in praise of the mundane

It's easy to fall into the trap of feeling special. From our own perspective we seem so original and in many respects we really are unique. Western society rightly encourages us to celebrate the things that make us special. Individuality is virtuous.
In reality, we're much more similar than we are different. The great ideas we have are at best incremental improvements on existing theory. At worst, they're complete plagiarism. Even the problems we face are just as commonplace. Nothing is new. Nothing is special. If you think otherwise, you're only deluding yourself. As the ecclesiast said so long ago:
That which has been is that which will be, And that which has been done is that which will be done. So there is nothing new under the sun. Is there anything of which one might say, “See this, it is new”? Already it has existed for ages Which were before us. (Ecclesiastes 1:9,10 NASB)
There is nothing new under the sun, and yet we act as though there is. I see this pattern all over the place in the software world. We worry and fret over our silly problems and bite our nails wondering how to solve the same problems that have been solved countless times before. We think, "Here is some problem that is uniquely mine. In fact, this problem is so unique that I must invent a new kind of solution."
Continue reading →getting started with cloud computing
I was talking to a friend (lets call him Dave) the other day. He had a good idea on how he could run his QuickBooks accounting software in the cloud. By running the software in the cloud, he wouldn't need to ship QuickBooks backup files back and forth to his accountants, he could just launch a cloud instance and let the accountants RDP into the instance and use the software.
It sounds great, but Dave is cheap and he wanted to run this on an EC2 t1.micro and the machine just couldn't handle it. So of course he wanted to upgrade the instance. Being the cloud computing guy that I am, he called me up and asked me how to do it. At first, I thought it was a silly question, and I told him that of course it is impossible to upgrade the memory on a running EC2 instance.
Continue reading →jQuery Deferreds and the jQuery Promise Method
jqXHR and the Promise Interface
jQuery 1.5 features a brand new mechanism for dealing with asynchronous event-driven processing. This system, called deferreds, was first implemented for jQuery's $.ajax method and so we'll be looking closely at that method.
$.ajax({
url: "/some/url",
success: function(r){
alert("Success: " + r);
},
error: function(r){
alert('Error: ' + r);
}
});
Continue reading →
hp 02 ciss for my photosmart c7280

Having been thoroughly satisfied with prior HP printer experiences, I made the mistake of purchasing a brand new HP Photosmart c7280. I'm a big fan of these all-in-one devices. I especially like having a WiFi interface, and scanning to a USB disk as opposed to some ridiculous TWAIN protocol is such a great idea it's hard to imagine why some devices still don't support it. But all the things I love about this printer are outweighed by the horrible ink system.
Lets start with the most obvious problem with these ink cartridges. They're way too small, the color cartridges are only 11 mL. I've seen claims that they can yield up to 500 pages. I have no data to argue with that figure, but I can tell you it seems very high compared to what I've seen. Continue reading →
Arduino WiShield + MAX7219 7 Segment Display

For this project, I wanted to build a device capable of displaying up to 8 digits on a seven segment display. Sounds easy, right? The catch is, I wanted to retrieve these digits from the Internet over WiFi.
I took this opportunity to try out the ever-popular Arduino platform. Arduino turned out to be a good choice for this project for several because it has:
- an easy to use, Arduino compatible WiFi adapter (WiShield) put out by asynclabs
- a library available for talking to the WiShield with examples included
- a MAX7219 interface library
- an onboard USB programmer and a software programmer that works on Ubuntu
new opportunities at rightscale
"To be honest, I was a little surprised it didn't happen earlier," was a common sentiment directed toward me as news spread that I was leaving the Fresno Bee. I had been carefully scanning job listings every day for at least a year and occasionally applying for one that seemed like a good fit. As time wore on, I become more and more aware of how lucky I was to have found the kind of job I did find in Fresno. I can count on one hand the number of Fresno-based job openings that piqued my interest over the course of a full year. None of them excited me enough to leave a perfectly good job at the Bee.
Strangely enough, my small effort in packaging uWSGI for Ubuntu was what prompted some communication with a RightScale employee who encouraged me to apply for a position. I almost didn't because I've grown so attached to my friends and family in Fresno, but the reality of my situation was apparent. If I wanted an exciting job with lots of growth potential, I would have to move.
The Fresno Bee was a great employer. It had fostered the growth of my skills and talents, my supervisors had always been kind and flexible, but the time has come for me to either move on to pursue growth or settle down in Fresno. I think I'm too young to settle down.
RightScale provides me with a new set of opportunities to really push the limits of technology and I am very excited to start work tomorrow.
serving up python with the quickness
Inspired by Justin Lilly, I spent some time looking at various ways of running python web applications with an eye to performance. Nicholas Piël has done some great work testing and documenting many of them. Gevent looks like a great option as does CherryPy, but uWSGI caught my eye because it provides an nginx module and I'm already running lots of nginx. Since its fairly new, my stock nginx from the Ubuntu Karmic repository doesn't come with uWSGI, but compiling it in is trivial.
So I've added uwsgi and nginx + uwsgi to my launchpad ppa for anyone out there who'd like to give it a spin on Karmic. My initial impressions are very positive. If you want to try it out, you can add my ppa to your apt sources and simply run:
sudo apt-get install nginx uwsgiContinue reading →
switched from drupal to wordpress
I'm not sure if anyone noticed this, but lithostech.com is using a drastically different theme. It's just a canned theme like the old one because I'm not a designer and also can't afford one. That's not the only difference though. I've also switched from Drupal to WordPress. Mainly, I made the switch because we're considering moving to WordPress from Movable Type at work and I wanted to get a feel for how it works.
Continue reading →details on the mysterious loan modification
No doubt many recent home buyers lauded the Federal Making Home Affordable program when it was announced. The program which began in 2009 promised to give some relief to certain homeowners struggling to pay their mortgages. The actual details on what it takes to get a lender to agree to a modification under this program are slim. Details on the nature of these modifications are even more scarce. What exactly can an applicant reasonably expect? Is it really worth all the time and effort to apply?
This is what I set out to discover as I began applying in June, 2009. I say began applying because I applied many times. The initial application process was nothing more than a long survey of my financial situation. Since my situation changes from day to day as paychecks come in and bills go out, I didn't lose heart as I got denied the first three times. Each time I answered the survey (once online and 3 times on the phone), I was able to truthfully give different answers especially when it came to the last few questions about how much cash was in my bank account at that moment. In August, I called CitiMortgage again and answered the survey. I was completely prepared for another denial and I probably wouldn't have applied many more times had I been denied again. Instead, I was accepted for a trial modification. The agent on the phone explained to me the basic terms of the trial plan and asked if I'd like to accept them.
Continue reading →
Recent Comments