Mac: Deep Sleep

November 16, 2007 | Comments Off

When I was Windows-based, I always preferred using hibernate over standby. When I came to Mac I reluctantly got used to it. In fact there isn’t any obvious way to invoke the “deep sleep” (hibernate) function in Mac until the battery is practically dead. This has been annoying on planes when I want to switch batteries without shutting down. I just found this deep sleep widget on the Apple site that adds a deep sleep button to dashboard which will be handy on such occasions. It does prompt for your password in an abnormal way but looking through the code it is only used to chown/chmod the deepsleep binary to setuid root. Source for the deepsleep binary is also included.


On Shame

November 16, 2007 | Comments Off

From an IM conversation:

Friend: I want the syntax to find all files in /home older than 30 days so I can nuke them
Pablo: find /home -mtime +30 -type f
Friend: so find /home -mtime +30 -type f | rm -rf
Friend: thats all I need?
Pablo: find /home -mtime +30 -type f -print0 | xargs --null -- rm -f --
Friend: ok
Friend: I’m doing it with PHP right now….
Pablo: the print0/null parts are in case you have filenames with spaces
Friend: which is… fun… :(
Pablo: i hate you
Pablo: why do you need to make me feel so dirty


My printer can beat up your printer

November 4, 2007 | 2 Comments

Another notch on the lameness post, I’m totally stoked about the printer I bought. I selected the Brother MFC-9440CN based on excellent reviews and a price that was somewhat palatable. I have big ambitions of going paperless and our old printer had churned its last page*. I’ll try not to bore you with my requirements but I wanted an all-in-one print/fax/scan that did color laser output. After much research I had made my choice and ordered from  Newegg.

Now, after having set up the basic printing functionality on Leigha’s computer and my own I’m playing with the other features and this thing does so much more than advertised. That’s right, my printer can generate CSRs. I’ve worked on printers that had shell access but I thought that was reserved for the high end office printers; not anymore. Also, one of my personal favorite device features: email me when something goes wrong. It can also scan documents to an FTP server (in this case the NAS) which combined with the auto-document feeder can seriously move the needle on my paperless goal.

* The old printer was a good and trusty friend. I bought it when I first moved to Virginia in 2000 for $200 off Ebay. At last check it had something north of 150k pagecount. You’ll be missed Laserjet 4 Si MX (but not for your loudness, weight, or light-dimming power draw)!


Learning The Hard Way

November 2, 2007 | 3 Comments

When my role changed from developing to architecting I put a fair amount of thought into what I thought would make a good architect. My goal was instead of saying something was impossible to explain to the business folk what it would cost them in terms of money, people, and trade-offs. The philosophy is that technology should not be a barrier to the products and experiences that the business wants to create.

I’ve now come to a point where either I am completely incapable of articulating costs, or the business folks just don’t care or believe me. It is not a fun position to be in to explain to someone “doing X means horrible thing Y occurs” and they choose X anyway. If Y has no direct impact on the individual’s goals then it is understandable why they might want to proceed anyway. The typical case for this is when the technology is not designed to deliver the experience the product needs, which leaves me in a tough spot. We either:

  1. pay the (often prohibitive) cost of doing it correctly
  2. cram the square peg in the round hole
  3. come to a compromise
  4. don’t do it

The first two are (by the philosophy) successes, while options 2 and 3 are the more popular choices. Option 2 has costs as well, but they are the external types of costs I described above: the code becomes unmaintainable; the ability to deliver features will slow to a crawl; the complexity will eat us alive.

On the other hand, is there a practical difference between saying “that’s impossible” and proposing consequences of proceeding so dire that no reasonable person would proceed? It seems like the former would be significantly less frustrating and yield better results, but shameful at the same time.

This post is brought to you by late night rambling and sleep deprivation