Subscribe: romej dot com - the feed still burns
Added By: Feedage Forager Feedage Grade B rated
Language: English
back  bag  books  day  dogs  file  ford  michelle  new  night  posts  rewrite  rsync  site  time  transmission  work  years 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: romej dot com - the feed still burns - the feed still burns

Steven Romej's personal site


rsync backups on OS X

Thu, 28 Apr 2016 00:00:00 -0400

OS X El Capitan (10.11.4) comes with an outdated version of rsync (2.6.9) due to licensing issues. It's easy to build the latest rsync from source. I followed this guide, adapted for rsync 3.1.2. cd ~/Desktop curl -O curl -O tar -xvf rsync-3.1.2.tar.gz tar -xvf rsync-patches-3.1.2.tar.gz cd rsync-3.1.2 patch -p1 < patches/fileflags.diff patch -p1 < patches/crtimes.diff patch -p1 < patches/hfs-compression.diff ./configure make Once rsync is built, you can optionally run sudo make install to put the binary in /usr/local/bin. Patches for OS X fileflags preserves the st_flags stat() field (see sys/stat.h). Adds --fileflags option, as well as some --force-* options. crtimes preserve create times. Adds --crtimes (-N) option. hfs-compression adds support for HFS+ compression. Adds --hfs-compression and --protect-decmpfs options. [...]

Another world, another time

Sun, 26 Jul 2015 00:00:00 -0400

In the age of wonder, our books were made of paper. I love the way my old books smell. It seems to be some quality of the paper, the ink, and perhaps even a bit of Mom's old cigarette smoke.

I pick one off the shelf every now and then to read through it. Most of the books Michelle and I have are high school and college era. I typically kept my receipt to use as a bookmark. A part of me looked forward to the nostalgia of looking at it again.


I'm surprised my copy of Walden is nearly 20 years old now. I bought it for a couple dollars at the now-defunct Media Play in Morrow, whose phone number didn't need to include an area code, with 5% sales tax. The receipt is printed on a dot matrix. For some reason I actually had $2.31 in cash too.

The Wild West

Sat, 02 May 2015 00:00:00 -0400

Part of the fun of going to Las Vegas is leaving Las Vegas. At the very least we typically drive the scenic loop at Red Rock Canyon and walk some of the trails. Ah, back to the air conditioned halls, cigarette smoke, and perfumes. It's own kind of refreshing. See more in the auto-generated photo story on Google+. [...]

Zion from AZ-389 N

Wed, 29 Apr 2015 00:00:00 -0400


Michelle took this picture of Zion from the car as we were driving back to Las Vegas. She looked at her phone after taking the photo and was disappointed that it didn't capture the expansive view. I like the way it turned out, especially with the road stretching toward the horizon on the left. Drop the Maps guy around Cherry Ave to check it out.

Tips on driving a Honda Accord in snow

Wed, 29 Jan 2014 00:00:00 -0500

Yesterday cars started filling the roads outside my window around noon. As the hours passed it got worse. Initially concerned that Michelle couldn't leave her ER shift until 5pm, I started to think that might be a good thing.

The last major snow storm in Atlanta was in 2011. We were living in Augusta at the time and didn't have to worry about it. After witnessing the second fender bender in a couple hours on the street below, I decided I needed to review some safe snow-driving literature.

Our 2003 Accord has an automatic transmission. There are a handful of shift lever positions, but we've never needed anything but (D), Drive.

I tried to figure out whether I should tell her to use 2 or D3 on the way home. I came across dozens of forum posts with conflicting information. Everybody knows something on forums. I wanted something definitive.

Eventually I found the owner's manual, so here's a summary. This is applicable to 2003-2007 models, maybe some others (the new 2014 Accords have different shift positions).

Drive (D)

Normal driving. The transmission automatically selects a suitable gear for the vehicle speed and acceleration.

Drive (D3)

Similar to D, limited to first 3 gears. Use when towing a trailer in hilly terrain or to provide engine braking when going down a steep hill. D3 can also keep the transmission from cycling between third and fourth gears in stop-and-go driving.

Second (2)

This position locks the transmission in second gear. It does not downshift to first gear when you come to a stop. Use second gear for more power when climbing, to increase engine braking when doing down steep hills, for starting out on a slippery surface or in deep snow, to help reduce wheel spin, and when driving downhill with a trailer.

First (1)

To shift from Second to First, press the release button on the bottom of the shift lever. This position locks the transmission in first gear. By upshifting and downshifting through 1, 2, D3, and D, you can operate this transmission much like a manual transmission without a clutch pedal.

Quite a few forum posts claimed Second (2) restricted the transmission to gears 1 and 2, which is clearly incorrect (as it turns out, the meaning of the positions vary by manufacturer). Another person claimed you get more torque at higher gears. That's one of the reasons I decided to write this.

The reason Second (2) helps with slipping in snow is that it produces less torque (force) at the wheels than first. The snow and ice reduce traction (the maximum force from the adhesive capability between tire and ground), and the hope is that Second will keep you from exceeding the traction the icy road can provide. If you do exceed it, the wheels slip.

Yesterday, in Atlanta, it took Michelle almost 2 hours to make the 4 mile drive home from the hospital. A good 50 minutes of that was spent traveling a single block by West Peachtree and 10th St due to a broken down bus and people blocking the intersection trying to get to the highway. She drove in second gear the whole time.

Saving a bird after it hit a window

Sat, 14 Sep 2013 00:00:00 -0400

Michelle's working the wards this month, so we're often up before the sun. I walk the dogs while she drives to work. This morning I spent a little more time than usual strolling and letting the dogs sniff all the things club-goers dropped on the ground last night, enjoying the suddenly cool temperature and low humidity.

As I was approaching the entrance to our building I heard a noise above and then saw a bird fall on the sidewalk twenty feet away. The dogs were naturally excited. Fitz sat down; he knows I give him things when he sits patiently.

I assumed the bird died but noticed its feet, pointed toward the sky, twitching slowly as we passed.

I fed the dogs and put them in our bedroom so they wouldn't freak out about me leaving and went back downstairs to try and move the bird. I couldn't find a shoebox but I had a Godiva bag with some tissue paper in it.

Luckily no dogs had been out since we had come up; the bird was just a few feet from the door and would be the first thing any dog saw on its walk. Good morning!

The bird was back on its feet but seemed stunned and wouldn't fly. I moved the bag towards its body and managed to get it inside.

I brought the bag upstairs and set it on the balcony. I didn't touch the bird but sanitized enthusiastically after this, just to be safe.


A couple hours later, it flew away into the tree next door. Happy ending.

Places of Doom - Where id Software built games

Sat, 23 Jun 2012 00:00:00 -0400

I read David Kushner's Masters of Doom a few years ago and just finished re-reading it again last night, inspired by Fabien Sanglard's awesome Doom 3 code review. It's a fun read that chronicles the rise of id Software and will leave you wanting to code, eat pizza, and slam Diet Cokes. The book is interesting to me in the same way books like Founders at Work and Coders at Work are. While I hope to glean insights and learn from great programmers, they're entertaining as a kind of People magazine for entrepreneurs/programmers. I got my first computer in high school, after Keen, Wolfenstein, Doom, and Doom II, so I never really played them, though I had friends that did. Thanks to my roommate at Georgia Tech, I did get a copy of Quake II. I didn't spend much time deathmatching but I liked firing rockets down dark corridors to light them up while exploring. At my first co-op job at Tech, I downloaded the Quake source code and got it running with Visual Studio. I made my rockets fly faster. It was amazing to have the source, though I didn't do much with it. Later, Michelle and I played a lot of Quake III Arena on Dreamcast. Her favorite character was the eyeball. She was ruthless, but prone to falling accidents despite being all eye. As I read the book I found myself cross-referencing things I encountered: names, games, other companies, and locations. The locations are uninspiring (especially if you read TechCrunch), beginning in hot, humid, economically depressed Shreveport in 1989. Softdisk offices, 606 Common St.. This is where they all met and worked. Carmack developed smooth 2D side-scrolling. They hauled Softdisk 386 PC's off in the night to work from their lake house on their own projects. Bridge over Cross Lake to Lakeshore Drive in Shreveport, LA. One night, this bridge (or one around here), washed out during a storm. Romero waded through water to get to the house, where he and Carmack worked through the night. A view from South Lakeshore Drive. The lake house they lived and worked in was somewhere around here. They cloned Super Mario Bros. 3 here and wrote Commander Keen. La Prada apartments, Mesquite, TX, where they moved after a short, cold stint in Madison, WI. Wolfenstein development was completed here. Romero worked in an upstairs loft, Carmack sat at his NeXT workstation downstairs by the kitchen. Carmack, fed up with noise, eventually hauled his computer off to his own apartment to work alone. Town East Tower in Mesquite, near Big Billy Barren's Used Cars and Sheplers Western Store. The black cube. One of the few offices in the area. Doom development. id offices in Mesquite, across from Hooters and Olive Garden. Quake II, and probably most of the others. "In the information age, the barriers just aren't there. The barriers are self-imposed. If you want to set off and go develop some grand new thing, you don't need millions of dollars and capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on, and the dedication to go through with it. We slept on floors. We waded across rivers." - John Carmack I'm fighting, unsuccessfully, the urge to end this with big things have small beginnings. [...]

One more year

Sat, 23 Jun 2012 00:00:00 -0400

Yesterday Michelle took the last shelf exam of her M3 year. This summer and fall will be, once again, very busy, but it's yet another big milestone. We saw a movie, ate popcorn, walked around the mall, flipped through books at Barnes and Noble, and had tacos with margarita-flavored slushies. The dogs continued the festivities today: Fitz caught his first squirrel (so many previous attempts) and I had to chase after him (he truly believes I want it for myself) and pry it out of his mouth with a rake handle. We've seen him bite calculatingly at his stuffed toys, severing limbs. The real-life version wasn't pretty. Poor squirrel.

Welcome Ava

Sat, 16 Jun 2012 00:00:00 -0400

(image) My brother and Megan welcomed Ava Eileen into the world last night. Now we have a niece! It was a little surreal looking at her first picture this morning, despite being past the age where the majority of my Facebook feed pertains to photos of children.

Looking forward to meeting her.

Morning ride

Fri, 08 Jun 2012 00:00:00 -0400

(image) Sometimes the dogs slip past our feet when we're leaving. At that point it's just easier to take them along for the ride. Bingley hops around the truck like that Corgi that loves to eat.

After Michelle gets out she rolls the window down so they can enjoy the ride home.

Rise and rise early again

Thu, 07 Jun 2012 00:00:00 -0400

We've been waking up at 5am for Michelle's current peds rotation. We naturally gravitate towards falling asleep around midnight, so any rotation like this (surgery, last fall), is a departure from the norm.

Getting up before the sun has its bright spots. Once she's at the hospital I do any dishes we have, make some coffee, and feed the dogs. Then I start work, typically 2-3 hours before many of my programmer brethren. It's quiet and cool, and it's always amazing to think, around 2pm, that the typical 8-hour workday is over.

How we wake: After my five-minute morning ritual of walking to the bathroom, washing my face, brushing my teeth, I walk back to the bed and turn on the lights and some noise (Pandora, or something from Hulu/Netflix). I like to think this helps her wake up gently, like those $100 gradual light-and-music alarm clocks. The truth is that she has a sleep sentinel that guards her from my waking advances. It dutifully pins up extra-thick opaque sheets behind her eyes, commandeers her ossicles, and installs itself somewhere in her brain stem, with just enough control to swat me away when I shake her. Eventually, after some more shake-then-recoil moves and lots of time to wake up, sweetie, this sentinel retreats. Her eyes open and she smiles at me, unaware of the little skirmish I fought.

Fitz rejects 5:00 am. He'd normally get up and follow us about the house, but at this hour he sleeps, staying in bed until we approach the door to leave, but he is too late, like Joey.

Joey: Ooh, I'll play! I'll play!
Phoebe: No-no! You need your sleep. Night-night! Shh!

TRANS FAULT in my Ford F-150

Thu, 24 May 2012 00:00:00 -0400

Last week I started my truck and, 5 seconds later, heard a beep. I looked down at the dash and noticed a message in the console. TRANS FAULT no O/D I shut it down and restarted it, hoping it was a glitch. The same message popped up. I backed out, didn't hear or feel anything unusual, and parked it so we could pull our car out. The next day I drove it to the nearest Ford dealer to have someone take a look at it. The truck drove and shifted fine. From what I had read after seeing the message, I expected a sensor would need replacement. Investigating the transmission codes would cost $99, and it'd be another $99 if they needed to look in the transmission pan. The service department called later to say that there were metal chunks in the transmission pan. They recommended installing a remanufactured Ford transmission ($2800) or installing a new torque converter ($1330 labor + any parts that turned out to be necessary). The second option was a little more open-ended price-wise, and was the more invasive of the two options. Now, some details about my truck. It's a 2004 F-150 with a 4.6L V8, 2WD. I towed a small U-Haul trailer years ago during a move. It only has 58,000 miles, and most of that is highway. When we lived in midtown Atlanta, it remained parked for the better part of two years. I contacted the Ford Customer Service department to tell them about my problem. I also wrote to @FordService on Twitter. The Twitter team is fast and responded within minutes; they noticed I had already filed an issue using the contact form on their website. I heard back from someone in the Customer Relationship Center (CRC), but it wasn't what I had hoped for. My truck is out of warranty, and though they wish they could help, they can't. (I wish all companies could be like Apple - with any major failures we've had, Apple handed us brand-new equipment, even when out-of-warranty) Hope for the future The person at the CRC did say that if a recall or Customer Satisfaction Program is initiated in the future based on any discoveries, I'd obviously be eligible for a refund. I did come across a few posts in the forums at and mentioning similar issues and early transmission replacement. There were also a few listed at CarComplaints. The problem is that if people are randomly posting to forums or not posting at all, Ford may not know how extensive the issue is. Have you had a similar problem? File a report describing your issue with the NHTSA. Contact the Ford CRC. File a report of your problem at Epilogue I took my truck to Bobby Jones Ford in Augusta for service. Ford CEO Alan Mulally visited this dealer just a couple months ago during Masters. The person that handled managing my service was nice; she would check on my truck occasionally and give me status updates. The new transmission was installed a day ahead of the original estimate and cost a bit less than originally quoted. Unfortunately, ten minutes after driving away, the check engine light came on and I entered limp mode. After waiting around for the tech to get back from lunch, the diagnosis was that the ignition timing was off after a battery disconnect. That should not have happened, and forgetful things like that are the reason I stayed away from the labor-intensive torque converter replacment - just more that can go wrong. They reflashed my PCM to get the latest timings and things, so far, have been fine. [...]

When your Mac won't sleep

Thu, 29 Mar 2012 00:00:00 -0400

Sometimes my iMac won't sleep. I've tried closing various applications as well as logging out of my account before entering sleep mode, but I still hear it humming quietly when I come back minutes later. It happened to me last year with Snow Leopard but went away after a reboot. Lately, using OS X Lion 10.7.3, it's happening again.

If this is happening to your iMac or MacBook, try running pmset, a command-line tool to manipulate power management settings. Open the Terminal app and type the following:

pmset -g assertions

Roughly translated, this reads get me a list of the power management assertions, or reasons the computer might not be able to enter sleep mode. (image) The first time I ran this, I noticed the CUPS printing system was preventing sleep. The screenshot doesn't reflect that. I killed that process (you can use the Activity Monitor app to do this).

I noticed another assertion from the audio system. I did not kill that process as it was related to PreventUserIdleSystemSleep. If you're listening to music, this shows up to keep you from having to touch your trackpad/keyboard to keep your system awake and playing.

I opened System Preferences > Energy Saver and restored defaults for good measure.


Tue, 27 Mar 2012 00:00:00 -0400

(image) It's fun to look for design trends you're accustomed to seeing on the web in everyday products. You've seen circles for profile pictures in Google+ Circles.

(image) The new Basecamp also uses them, as well as OS X Lion's login screen.

(image) They're also used on boxes of Lipton tea.

I'm sure the iOS linen background that originated as the background behind pages in mobile Safari will one day feel like Aqua buttons, but I like them, and variants of the pattern are probably all over your house. (image)

Bound journal for iOS

Tue, 27 Mar 2012 00:00:00 -0400

(image) Michelle built a Bound journal for my birthday. We first saw these at the SHU box.

(image) For what I do every day, mine's ideal. I'm currently sketching some screens for Chronicle and Meetings for iPad.

The bag in bag

Mon, 26 Mar 2012 00:00:00 -0400

Malcolm Gladwell writes about the 10,000-hour rule in his book, Outliers. While I doubt I've spent 10,000 hours on any one topic, between my undergraduate years, MBA, and almost 3/4 (!) of medical school I have spent 10,000 studying. And like his examples, I've gone through several iterations of how I like to study.

I've had my notecard phase which consisted of buying paper drill (I ended up getting a modestly priced McGill) and calling Mead about the possibility of wholesale ordering their half-sized colored index cards after exhausting the local office store supply as well as Amazon's (btw - the paper drill was so I could use a book ring to hold them together).

I tried recopying all of my notes from class and texts into a single 3-ring notebook.

For the past year or so I've settled into a highlighter scheme where diseases are red, pharmacology is green, risk factors yellow, diagnostic tests blue, pathophys purple, and sequelae pink. There are also lighter colors that are associated with 2nd line drugs, tests, etc. I also make notes in my books (something my college freshman self would never have done) with ink pens of the corresponding color (most often Hi-Tec-C). While this has worked well, there have been some issues. Rather than carrying one highlighter, I need almost 10. I also need a similar number of pens. I also need a ruler so I don't write too off line in my books. In the end, I study with around $50 of highlighters/pens/etc. Rather than duplicating these items for all the places I study - desk, sunroom, school, couch, I use my bag-in-bag from invite.L.


It has 10 pockets that fit all of my writing instruments and are sturdy enough that I can store them in the tip up (for highlighters) or tip down (for pen) position. It has a handle built into the top which is nice. Other bags with handles on the outside tend to change the weight of the bag and can cause it to tip over. The bag-in-bag also has two button snap closures at the top which gives my inside pens a little more protection from jostling when I'm traveling. It's also large enough to fit a book or two and stands nicely in the bottom of my bookbag.


All in all, I think the bag-in-bag, though a more recent addition to my study style, will be here to stay.

Countdown to match day

Sun, 18 Mar 2012 00:00:00 -0400

Match Day for the class of 2012 was Friday. It's been especially fun to see the pictures, videos, and posts this weekend because we know some of these people and because Michelle's next. By this time next year we'll know where we're headed for residency.

The match list for Match Day 2012 at MCG (GHSU).

A sunny Saturday sandwich

Sat, 10 Mar 2012 00:00:00 -0500

Today we were making lunch together, trying as we could to do preparation and cleanup in parallel so that as we sat down to eat there would be nothing left to do in the kitchen. I grabbed the chips, she finished making the sandwiches. I went to put something on the Roku and, as I was walking back to the kitchen, she passed with a plate in each hand, smiling. Cute I thought. I put some things up, grabbed a drink, and went to join her. As I settled onto the couch and started to eat I noticed my sandwich was flimsy, light, a pile of cardboard boxes falling all over my plate. (image) We both started laughing, and I realized I misread the smile a minute earlier. Then I stared at her. Everything was wrapped, put up, the tuna fork already washed. She sabotaged the parallelized process, created rework...and made me laugh more.

Back to static with Jekyll

Wed, 07 Mar 2012 00:00:00 -0500

A return to simpler times The last version of my site was far from complex, consisting of a few custom php files and a MySQL database. It served its purpose for a few years and worked well for the short posts I tended to write. Last year something happened to the MySQL database the posts were stored in during some kind of Dreamhost migration. It was enough to get me thinking about moving the blog back to a statically-generated site. At this time I had been using Jekyll for a couple years at slide to rock. I liked it because it was simple, let me manage posts as markdown files, and made it easy to keep the site backed up. It also reminded me of the C# program I wrote to generate my website years ago while learning Mono. I recently got around to redoing the site. Migrating old blog posts I used the YAML export feature of phpMyAdmin to download my old posts. I then set out to parse the file into a bunch of separate Markdown files to drop into the _posts directory using Ruby but became frustrated when I couldn't remember any of the string parsing and file IO methods off-hand. Rather than look them up I wrote the program in Objective C and soon had a few hundred post files. Mapping old URLs On my old site, I used Apache's rewrite rules for permalinks like: I wanted to maintain the same link structure for old posts on the migrated site and started by setting the YAML front matter of the generated posts to: --- layout: post title: "Visiting Boston" permalink: /archives/717/visiting-boston --- This was close to what I needed, but Jekyll generates, as it should, the actual HTML at: _site/archives/717/visiting-boston/index.html I forked Jekyll and added some settings to help with generating URLs without the trailing slash, essentially making the last path component a file and not a directory. Sticking with the example above, the --noslash option generates a file at the following path: _site/archives/717/visiting-boston.html I added noslash: true to the site's _config.yml instead of passing it via command line all the time. My plan was to rely on Nginx's rewrite rules to handle mapping the extensionless URLs to the actual .html files. One issue I ran into was testing locally using Jekyll's built-in WEBrick server. My generated pages were referencing posts that looked like directories (links that would work fine when rewritten on the server). I added a --prewrite option for local testing that simply generates the full path to each HTML file in the permalink. You can see the commit with these changes at GitHub. Rewriting URLs with Nginx My Nginx configuration got a little funky because I had some paths that I wanted to behave as usual (eg, /iphone resolves to /iphone/index.html) Here's most of my nginx.conf. If you see anything below that makes you go dude, no let me know. server { listen 80; server_name; rewrite ^$uri permanent; } server { listen 80; server_name; autoindex on; #rewrite_log on; root html/; location / { index index.html; rewrite ^/rss/blog$ /rss/blog.xml break; } # # The following locations add .html to urls, while also # making sure direct requests to a-post.html or /a-post/ # are redirected to /a-post # # By specifying locations can avoid doing if (-f) tests. # # new permalinks look like /2012/03/some-post # uggh, not sure how to match [\d]+ or [\d]{4} location /20 { rewrite ^(.+)/$ $1 permanent; rewrite ^(.+).html$ $1 permanent; rewrite ^(.[...]

Resize a Google+ photo

Tue, 06 Mar 2012 00:00:00 -0500

One of Google App Engine's features includes dynamic image resizing. You can store an image and simply modify the URL to request resized or cropped versions of the photo. On App Engine this can be done efficiently.

From the image transformation docs (scroll down on that page to see it), the arguments for resizing and cropping:

The available arguments are: =sxx where xx is an integer from 0–1600 representing the length, in pixels, of the image's longest side. For example, adding =s32 resizes the image so its longest dimension is 32 pixels. =sxx-c where xx is an integer from 0–1600 representing the cropped image size in pixels, and -c tells the system to crop the image.

This same technique and syntax appear to apply to any photos you have on Google+. Hover over an photo from one of your albums and copy or open the image URL in a new tab. Look for the /sXXX/ portion of the URL.

(image) Resized to be 500px on longest side (s500)


(image) Resized to be 100px, cropped square (s100-c)


This makes it easy to resize an image for posting or using elsewhere.