Heaven!
Vi-Search … it has just dethroned google as my default search engine.
Update: and since people keep asking me, here’s a neat vi cheat sheet. Not as good as some of the other ones I’ve seen, but I’ll have to find that link and add it later.
Update 2: Ok, google is better than snap.com search, and there’s a nifty greasemonkey script that adds vi-keys to google. ‘nuff said.
14:37 CST | category / entries / links
permanent link | comments?
Advancements in UI
At work there was a discussion about scroll-bars as they related to web-pages. Some people were very much on the side of “don’t mess with the scroll-bars”, while others were more open to styling the scroll bars depending on the needs of the application / web-page. I was on the side of: “It’s a scroll bar, don’t mess with it” until I saw the following:

[source…]
…there are 101 things that you can get wrong if you try to implement a new scroll-bar from scratch, but the above shows that the scroll-bar is far from a solved-problem.
You can see other “innovations” in scroll-bars with video/audio editing software. Attack of the 80’s. :^)

Video tracks represent the timeline of your videos, just as if you layed real
photo film on horizontally on a table. The individual images you see on the
track are a sample of what is located at that particular time on the
timeline.
[source…]
11:49 CST | category / entries / links
permanent link | comments?
CBS 11 News on Yahoo! Video
Watch depressing local news on Yahoo!, of all places. But seriously, marvel at local news reports on the internet.
17:40 CST | category / entries / links
permanent link | comments?
Pretty sweet guitar playing
[source…]
Part of the Yahoo! TalentShow… one day I hope to play as nicely as he does. One day soon, I will also be slapping some of my own video’s up here, probably after I’ve practiced a bit more for the ~recital~ we’re having for guitar lessons on the 16th of December (exactly 1 month away, yikes!).
12:13 CST | category / entries / links
permanent link | comments?
PHP Session Handling
This guy does a great job of explaining thread-safety to people who really need to know what it means.
The problem arises, as is outlined in the cited articles above, when multiple
requests can be made at the same time. The built-in PHP session handler
handles maintaining exclusive access to the session data, so most simple,
low-load (meaning one one web server) websites don’t experience a problem.
And even if you use your own session handler that doesn’t implement any
locking, the progress that the users makes through your site, downloading a
page, viewing it, moving on to the next one, is so slow that contention for
the session data is rarely, if ever, an issue. But then Ajax enters the
picture.
[source…]
I am reminded muchly of when I worked at sell.com and I implemented the same. We weren’t using AJAX back then, but AJAX or no, you still need to provide some level of transactional security. I’m impressed with the level of thought that has gone into this guy’s document, and how he’s got everything segmented into individual variables by the end of it. I will disagree somewhat that per-variable locking is the right way to go because of transactional integrity (ie: if you have two variables, $SESSION['credits'] and $SESSION['debits'] and each of them is lock-safe, but not transactional-safe, then you end up in trouble).
The model that we ended up using was the single-thread model, above the picture saying “The process execution is interleaved, but access to the session data is serialized”. This is somewhat necessary for important data, but less important for things like access counters or maybe the rating of a particular song (independent / non-$$$ data), where per-variable locking could be a big performance win. Here’s another little bit of an idea… imagine $SESSION['batch']['toRate'] = array(1234=>"4stars", 999=>"3stars");, which gets processed at the end during session destruction / cleanup or at regular intervals during the user’s session. This being opposed to the standard practice of writing all the data to /logs/batch.txt and later processing that.
All in all a highly recommended read.
22:14 CST | category / entries / links
permanent link | comments?
Make sure you’ve eaten breakfast…
Then get the hook “Shakira, Shakira” stuck in your head. For those playing along at home, this video is making most fun of Whenever, Wherever, an earlier shakira video (which will soon work on Mac + non-IE / PC computers). Also check out Weird Al’s White & Nerdy as well as the fans-only version of it, which is pretty funny. Dancing legos. (more dancing legos?)
08:37 CST | category / entries / links
permanent link | comments?
Imagine, if you will, two roommates at Thesaurus U.:
“I aspire to obtain a beverage. The vending machine is where my path leads.”
“I wish to accompany you, since I have assembled a myriad of coins.”
“I possess coins, as well. Let’s embark.”
[source…]
10:51 CST | category / entries / links
permanent link | comments?
Software for learning the guitar?
So, I’m learning to play the guitar. The prior extent of my musical ability was playing “Hot Cross Buns” on the recorder in 4th grade. Needless to say I have a lot to learn. I am also a computer-dork, which makes me wonder why there isn’t the Dance-Dance Revolution of Music. Oh wait, there is, and it’s called “Guitar Hero”. The problem with Guitar Hero is that it’s about 0% related to actually playing music. Here follows my wish-list for a program that would help me learn to play the guitar or another instrument. If I were going to write it, I’d call it “Sheet Music Hero” (hereafter referred to as SMH).
- Integration with LilyPond
Lilypond is like HTML for music. If you can see it in Lilypond, I’d love to be able to push it over to SMH for learning / lessons. Or would MIDI be a better format?
- Rhythm practice
Since I’m still learning, I don’t have “rhythm” in my blood yet. Counting excercises, especially with metronome and/or integrated into aforementioned Lilypond music would be uber-helpful. Bonus points if it has a bouncing-ball, metronome, and microphone integration.
- Tone practice
As above, but integrated with normal guitar-tuner software that checks and makes sure you’re playing the right notes.
- Integrated practice
Good Rhythm + Good Notes == Good Music. With the above three items, it should be relatively straightforward to plug in an arbitrary piece of sheet music written in Lilypond and have the computer help you out while learning it.
- Record + Playback
It would also be nice to have the program record a certain number of lessons and allow you to play them back at a later date to see how you’ve improved, or perform some analysis and say: “This part is really difficult for you, practice it a few more times”.
- Slice + Dice
In some cases while I’m learning a piece of music, I learn too much by memory as to what comes next and not so much focusing on reading the music. To keep me on my toes, please mix in measures from a few different pieces of music, or mix around a few measures from the same piece of music.
The two most important things is that the program work with your real-live instrument (for me that’d be a non-electric, classical guitar) and also be interactive / corrective - that it can detect a mistake and give you some sort of percent-marker or crowd-feedback noise a-la Dance-Dance revolution when you lay down some smokin’ notes. :^)
It’d be wonderful if this was all free / open source (are the pieces all out there?), and if it worked on Mac / Linux at least. Even if I had to pay for it has anyone seen software out there that meets a significant portion of these requirements? Something like “Mavis Beacon Teaches Classical Acoustic Guitar”? Let me know.
22:56 CST | category / entries
permanent link | comments?
Mexico Part 1
We arrived in Tlapujahua around noon and went to work, asking where the different government offices were. One for the birth certificate of Bety’s grandmother, and two to file paperwork for registering vehicles. The birth certificates were finished in an hour, but registering the vehicle would take longer. Before leaving the town we visited a beautiful church of the Virgen del Carmen and spent a final few minutes checking out the local markets. At 5pm we entered another cobble-stoned village off the main road and sought out more of Bety’s relatives (the Rodriguez side).
We crested a final hill deep in the pueblo where we saw a man and two boys playing outside their home. Introducing ourselves to the various relatives we made our way inside and I listened in while family members caught up with one another. The smell of firewood (leña) was in the air as Sandra was pressing and cooking tortillas over the comal in the outdoor woodshed. We sat down to eat with the family and were treated to a kind of spicy beef stew and filetes de res which we ate with the aforementioned tortillas. The beef was the best I have ever tasted- local cattle that graze in the grass, no pesticides, few cars, and a simple, tranquil life.
I slept early after spending more time meeting, greeting, and talking with the family. Next morning we bathed with heated water and headed to a nearby home to visit the aunt of Bety’s grandmother. Ninety-eight years old. That night I drank my first glass of pulque, made from the juices of a maguey plant in their back yard. The next day I got a chance to see the maguey where the agua miel (a sweet liquid, like honey, that pulque is made from) was taken from it’s opened heart. Magueys live roughly thirty years, but once they are cut open for agua miel, they live about three months. We had planned to leave that night, but it threatened rain and the food was good so we stayed the night.
In Tlapujahua the vehicle paperwork would have taken two weeks but according to several sources doing things in Morelia would be faster and easier (plus it was on our way). We left Tlapujahua, again very early, headed towards Morelia. After a slight detour to Guanajuato (the signs in Maravatio were not very clear) we were again heading west to Morelia, the capitol of Michoacan. We arrived there just before noon and again sought the local government offices. After gathering all the necessary paperwork, eating lunch, and passing several times past the city’s aqueduct (built in the 1780s) we finally had the license plates for Raymundo’s truck and we left almost immediately for Paracho via Uruapan.
to be continued…
00:11 CST | category / entries
permanent link | comments?
Spreadsheets as Functional Languages
In some sense each cell may be thought of as an agent that monitors its
depended-upon cells and updates itself when it needs to. Spreadsheets
eliminate [the barrier of learning flow-control constructs] to end-user
programming by dispensing with the need for control constructs, replacing
them with functional constructs.
[source…]
Very interesting point-of-view shift… a state-machine has the (S) state [to indicate the start], but a spreadsheet does not. Why does a program need a start state, or a beginning? (public static void main( String[] args ) { /* ... */ }) The linked article is correct- flow control structures and state-management are difficult to grasp, it’s only when you throw in if-else / try-catch-finally that things get tricky.
(descriptions of my latest Mexico adventure is in the works, but since it’s longer, it’s taking me longer to pull it all together)
21:36 CST | category / entries / links
permanent link | comments?
Plethora of Links (now with more Ukulele)
With work, I have had less time to share insightful commentary with the world. With work, I have seen more videos than I would have thought possible. With guitar, I have a new appreciation for what it would actually take to rock the ukulele (hint: this man does the impossible).
00:06 CST | category / entries / links
permanent link | comments?
Are you aware?
Be slightly wary of sound effects, but this is a funny, slightly scary, probably very useful little trick. Also related to Mr. Templeton’s brief essay on the difficulties of remaining truly anonymous on the internet or in almost any situation (and Mr. Schneier’s linkage to similar).
11:57 CST | category / entries / links
permanent link | comments?
Hey Ya!
Hey Ya! like you’ve never seen it, but will probably want to see it again. Originally I wanted to record my progress with playing Malaguena (would that be podcasting?), but I don’t have a really good recording set up and I still occasionally make mistakes while playing the song so it would take me a few take’s before I got it right. Will have to watch the guy playing in the video a few more times and see if I can get the acoustic version down. Doesn’t seem too difficult, comparable to the times I’ve played around with Johnny Cash’s version of U2’s One
Work is good but busy (see 9.yahoo.com to get a rough idea of what type of stuff I’m working on). Got tickets to Mexico (luckily!!) and will be headed down until Sep 3. Wish me luck!
09:25 CST | category / entries / links
permanent link | comments?
Mr. Cash
Crockford on Hurt … does a great job of putting into words something that I’ve thought but never written down. My other favorite recent Cash song is: “Mercy Seat” … something about the rhythm, piano, and voice and the man’s story gets me. And if you haven’t seen Walk the Line yet, it’s rather excellent and worth watching.
And the mercy seat is waiting
And I think my head is burning
And in a way I’m yearning
To be done with all this weighing of the truth.
An eye for an eye
And a tooth for a tooth
And anyway I told the truth
And I’m not afraid to die.
13:24 CST | category / entries / links
permanent link | comments?
Upgrading from PHP4 to PHP5
So, I’ve spent some time upgrading the darwingames.com codebase to be PHP5 compatible. For those considering the transition (and language designers who are considering an incompatible source version upgrade), I offer the following observations.
The Good:
Relatively few files and/or lines needed to be changed. The major “classes” of changes were:
class var => class public/private/protected
This is a straightforward change due to the new scoping capabilities of PHP5. For bulk changes like this, making the scope public will match the default behaviour of var in PHP4.
cannot modify $this
We had used the idiom of:
$game = new GAME();
$game->load( $id );
…which modified this:
$this = unserialize( getData($id) );
Now that static functions are available, it’s simply easier to use the factory-method idiom as they recommend.
$game = GAME::fetchGame( $id );
static methods
I know that you could previously call methods via MyClass::myFunction();, but now that it feels more officially supported, it gives you more options and makes PHP feel more like a “real” language (that and: funcResult()->objectMethod(); call support!).
random =& stuff
Now that objects are passed by reference by default, most usages of =& and &function foo() {...} are unnecessary.
The Bad:
Most of the “PHP5 changes” taken individually really do make it a better language. However, there are some significant problems and barriers faced by PHP5 due to some of the decisions the implementors have made (remember, this is from a user’s/programmer’s perspective).
E_STRICT
I program with E_STRICT. No if’s, and’s, or but’s. PHP5 (or any PHP) with E_STRICT is nice because it can catch a lot of silly “-ism’s”, misspellings, bad habits, etc. That’s not the problem, the problem is how it interacts with existing PHP4 code and the PHP5 language changes…
var => public/private/protected
I know I said this was a good change above, but in the context of PHP4 and PHP5-E_STRICT, any existing class with var keywords (ie: every single PHP4 class) will not run on PHP5 using E_STRICT without changes. Ok, no big deal, but that leads us to the next point…
PEAR and/or other third-party libraries
Meaning that every library or third-party library must make a choice between being PHP4-compatible or PHP5-compatible. That’s a fork, and it’s pretty difficult to maintain something that’s both PHP4 and PHP5 compatible, dealing with STRICT-mode in both versions. Furthermore that’s a decision that’s tough for a project or module to make (support 85% of existing installs or go for the “new-hotness”), and it’s not a decision that is easy for you (an individual) to make yourself. Message to PEAR. Fork now. Pour all resources into the new-hotness (PHP5) and freeze features in PHP4 versions of the libraries.
is_a() vs. instanceof
Ok, so you remove function is_a() and make it operator: instanceof, life is good, less things to bugfix, etc. But WHY do you make instanceof not take a string as a paramter (only a $variable or actual class reference). I guess a minor issue in the long-term, but really annoying in the short-term.
So, when designing incompatible language changes let me offer this advice:
Take into account third-party libraries, they have 99% more code available than the average coder will write in their lifetime.
Have a transition plan in place (that takes into account third-party libraries)… ie: run E_ALL - E_STRICT for six-months, update silly syntax-changes, and then switch over after now() + $SIX_MONTHS.
Consider an E_PHP4_STRICT / E_PHP5_STRICT (or more generically: E_ALL_STRICT, E_COMPATIBLE_STRICT) to make maintaining PHP4/PHP5 code-bases easier what also might be nice is to do something like E_STRICT_ONLY_ON_NON_INCLUDED_FILES, as I’m perfectly OK with errors in included files, but I’d like to tag my own code as ‘needing to be strict’.
Having only browsed through the PHP codebase a few times in my years of using PHP, I am totally unqualified to make sure these recommendations are feasible, but from a user of the language’s perspective, they’d be items I’d appreciate (and if this experience report helps you in your PHP4-PHP5 transition, I’m glad :^).
22:46 CST | category / entries
permanent link | comments?
Music Theory and the Guitar
Guitar links! Actually mostly music theory with some misc stuff thrown in.
So, music theory has a lot of different aspects. I’ve been lucky enough to have a friend that let me borrow a “beginning solo guitar” book, which is helpful going through by myself, but it doesn’t have a “feedback” mechanism (ie: something to tell me that I’m doing it wrong). Same with the guitar program that Bety got for me… great info, no “slap on wrist / electric shock button”.
There’s a few different parts of playing guitar:
Music theory seems to concentrate on the sheet-music side of things, which is to say it’s not the physicality of moving your hands, fingers, and sounding the right notes, but instead how to interpret written musical pieces, and how / why notes sound the way it does. A little boring, but the little of it that that I’ve learned has actually already helped me.
My favorite guitar music theory lesson so far (for example) talks about the major scale. At first I thought the scale was “ABCDEFG”, which is partially true, but translating it to the guitar and reading through the lesson it turns out there’s a formula to the location of notes and how they’re placed on the guitar…
Since I can’t explain it better than the other guy, I’ll just copy and paste the relevent section:
4.0 - The Major Scale.
Possible the most important thing here. Everything from chords to scales is
derived from the major scale. You can even use the major scale when soloing
and writing, as it is a normal scale too. It’s just more important. The
formula, in steps for the major scale is W W H W W W H. You apply that in any
key (I’m using C again) and you get the major scale.
C D E F G A B C
W W H W W W H
Notice how those notes fit right into the formula? Let’s try it with E.
E F# G# A B C# D# E
W W H W W W H
Apply that to any note you want to find its major scale.
Cool, huh? So you can play CDEFGABC or follow the formula (WWHWWWH) and play a major scale starting from any other note. The neat thing to remember about it (and how it’s helped me so far) is that whenever you play any single note, you can “walk it up” and have it sound musically correct if you remember this little formula. Two Frets, Two Frets, One Fret, Two Frets and no matter where you started from, you can follow that pattern.
In my other wanderings, I found the following sites, which are all helpful…
Interactive practice for reading music, rhythm, chords, etc. This site is excellent because it does give you feedback as to whether you answer correctly or not. I also really like his revenue model (mix of free, sales to students and sales to instructors).
http://www.emusictheory.com/
Boring but useful information on music theory, appears to use flash because there’s no other good way to present interactive music information on the ‘net.
http://www.musictheory.net/
Reminder link for my “for fun” project of auto-ascii tab to sheetmusic stuff.
http://www.lilypond.org/web/switch/howto
Google Videos of playing, maintaining a guitar.
http://video.google.com/videosearch?q=expert+guitar+-bass+-hero
Frets.com, really accurate overview of caring for a guitar from somebody who really knows guitars. I wish I would have known about this site before I first tried to change my strings… it probably would have saved me slight gouge I put in the front of the guitar.
http://frets.com/
And that’s it.
23:25 CST | category / entries
permanent link | comments?
Quickies!
Job
Yahoo! I am Cookie Monster. And a Video Monster. Soon you will be able to blame me for all things streaming/video-related at the big Y! First impressions of the place are good, aside from all the Yellow and Purple everywhere. (yes those words are intentionally capitalized :^) You think you know what it’s like to work for a technical company until you work for a place like yahoo.com and start to realize the scale of what it takes to be visited by almost literally everybody on the internet. The coolest thing is their internal mailing lists, populated by the likes of Rasmus, Andy, Crockford, etc.
Reunion
http://mcc1996reunion.blogspot.com/ and http://www.mcculloughalumni.com/ and http://www.goot.com/.
GoogleBait: “Robert Ames attended McCullough High School in The Woodlands, TX Class of 1996 and links to McCullough’s 10 year reunion.”
Please link to Guinn’s mcc1996reunion blog with some kind of appropriate message so search engines pick it up. If you didn’t go to this school, you might think about doing something similar for your school, as ten years goes by quite a bit faster than you’d think. :^)
23:18 CST | category / entries
permanent link | comments?
Tomorrow Starts a New Chapter
“The wind was not the beginning. There are neither beginnings nor endings to
the turning of the Wheel of time. But it was a beginning.”
[source…]
I don’t know what to expect tomorrow. A part of me is sad to leave behind the good things and the good people, and part of me is excited to try new things and meet new people. It will be good (because it must be good) and the challenges that are to come will be a refreshing change of pace. Wish me luck…
23:09 CST | category / entries
permanent link | comments?
Fun Tennis Thing
Ping. Basically like bouncing a tennis ball on a racket. Fun viral. Came via aunts + uncles, and worth reposting, so you know it must be good. :^)
My high-score is 11, but before you respond with a “You suck, Robert, I got 54 with no problems”, keep in mind I’m lying on my stomach after eating tooo much Joe’s Crab-Shack and trying to chase a funny-little tennis ball with a track pad (unfortunately, lame-o haxors have “hacked” the SWF and the high-scores are all 999999… I can’t figure out who is more lame- the people who hack things like this or the poor-security goobers who make things vulnerable like this in the first place). Anyway, enjoy!
23:03 CST | category / entries / links
permanent link | comments?
Where does your company fall?
The first step is to determine whether a bozo explosion is happening. Here
are the top ten signs of bozosity to help you decide.
- The two most popular words in your company are “partner” and
“strategic.” In addition, “partner” has become a verb, and
“strategic” is used to describe decisions and activities that don’t
make sense.
[more]
Take an inventory- how many of these apply to your company?
22:06 CST | category / entries / links
permanent link | comments?
From the Mysterious Future…
Let me tell you a little story about backups and why it might be time for you to start doing them…
I was enjoying a quiet evening at home after surfing the ‘net when of a sudden I heard a strange “honk” noise come from my laptop. I figured it was some popup window or flash site that was trying to get my attention. Looked through all my browser windows and didn’t see anything, so I closed whatever ones had a lot of advert’s and thought nothing more of it.
A few days later, I heard it again. Since I had been pretty consistently visiting guitar sites (especially looking for spanish music), I figured that there was some advert or popup that was making it through FireFox and FlashBlock. Ignorance is bliss, so I closed some windows and went on with life.
At work the next day I was doing something (I forget what) and all of a sudden the computer locked up when it was accessing the hard-disk. Programs were behaving like they were trying to do something, but were not able to access the hard drive (I later found out this had something to do with the drive “heads”, the part that actually reads data from the disc). The programs seemed like they might have recovered if I had let them alone for a while, but since it was about 5pm on a Friday anyway, I just turned off the computer and went home for the weekend.
Since I finally had something to do for work, I fired up the laptop on Saturday / Sunday and finished what I had been working on Friday (Java stuff for extracting metadata from files if you really must know). It was then (after a few hours of relative java goodness) that I heard the noise again. No browser windows open, no popups, headphones cranking (so I knew it wasn’t from the computer’s speaker) … definitely a “strange noise” coming from the hard-drive / CPU-fan area.
Not quite crisis mode, but definitely got my attention- copied the most recent files off the HD and onto my USB stick, and immediately shut down the computer. Since the computer seemed to be fine for an hour or two at a time, and the only other failure mode I had observed was ~system lockup~ I had assumed that it might have been a failing CPU fan, but didn’t have anything more concrete than that.
Then came the nerve-wracking part. The computer booted up fine, programs opened and closed, everything appeared to be working, but that intermittent clicking noise could only be coming from the hard drive. Not trusting Apple techs to care much about my data, I immediately started figuring out how to back up the 60gb HD. CDR’s were out. I had cheaped out and not gotten the DVD burner, which might have been useful in this situation. Spamming the data over LAN / WiFi to my desktop would probably not be that great of a solution (take too long). I didn’t want to have to be repeatedly accessing the whole hard drive since I didn’t know how long it would last or what kind of corruption it might have, I really needed to prioritize my data rescue…
The sad thing is I had a 160gb external Hard Drive for situations just like this. Once upon a time I thought to myself that I have a fair amount of data and it couldn’t hurt to back it up. $150 later at Fry’s and I had a $160gb external USB hard drive. Yay. What I really wanted to do was put all my muzak (~20gb of legal OGG’s) on a shared drive / server so that my laptop could hit it, the desktop could hit it, and potentially my future XBMC media-center television thingy could hit it. Plus I wouldn’t be wasting 20gb across multiple PC’s and I could avoid the stupid sync issues that came up when I ripped new CD’s. Put them on the shared drive, all computers could access them.
In order to do that and not keep my 450W desktop PC on all the time I also found a neat little device, the Linksys NSLU2 (now also runs linux), for $100 that promised to turn any USB drive into a network accessible share. Sweet! $250 later and I had 160gb of network accessible storage that was small, modular, quiet, and didn’t use much electricity. One thing that Linksys doesn’t tell you about their NSLU2 is that it “eats” the disk you give it and reformats it to use a proprietary protocol (basically ext2/ext3 since it’s really just an extremely small linux computer designed specifically to serve files), but I didn’t find out about that until after I had copied all my crap to it. Oh well, not too big of a deal since my other computer runs Linux, but still a bit of a waste of time.
Fast forward to about 6-8 months ago and I’m pretty sure a lightning strike took out the venerable NSLU2, leaving me with a cute little hard drive in a cabinet next to the TV that wasn’t network accessible and I couldn’t be bothered to pay another $100 for another NSLU2, or even connect the Hard Drive to my main computer since I was backing up files to it, and didn’t ever need any data off of it (emphasis. ;^).
Fast forward to now, and I’m sweating bullets because my laptop is making dying goat sounds, the external hard drive is formatted to ext3 (which Mac can’t read or write by default), and my latest backups are 6-8 months old at best. Well, I persevered… copied most of the data off the external hard drive onto the 60gb internal drive on my desktop… nuked the data on the external drive and plugged it into the mac laptop. Can’t access it. Found the ext3 tools for OSX and briefly played with those, but figured: in case of catastrophe, the simpler the better, so reformatted the drive to be FAT32 (lowest common denominator) and set about copying files off the laptop.
Let me share with you my experiences with backing up stuff in a priority order. Luckily OSX is very amenable to backing stuff up (especially in the normal case). Simple “tar -czvf backup.tgz /Users/rames” is enough for almost everything non-system. Since I didn’t trust the Hard Drive, I figured I need my Documents folder more than my Music folder, so I was stuck dragging files onto the external HD directory by directory.
The order that I came up with was basically:
~/Documents — most everything I had created
~/Desktop — stuff I hadn’t gotten around to filing yet
~/Local Applications — I had a lot of funky / strange utilities that I didn’t want to have to find again
~/Downloads — all downloads go here. Technically this is low-value since I could just re-download it, but having the original source archives is like my security blanket.
~Shared — This caught some music files I was sharing with my wife as well as misc homework documents, resumes, etc
~/svn-rames — local SVN repository for some source-code type work
~/Pictures — managed by iPhoto
I want to talk specifically about Pictures for a minute… on OSX iPhoto rocks. Even the older version that I have is really cool. You plug in your camera, the pictures get imported, life is good. We had all our digital wedding pictures, family pictures, vacation pictures… everything, all those memories were hidden behind the friendly iPhoto interface. iPhoto is so cool, I had even forgotten that there were extra files that I needed to back up from there until I was almost totally done with the backup process. Given a choice between 1gb of Shareware programs from “~/Local Applications” or 1gb of irreplaceable memories from “~/Pictures”, it’s pretty clear what choice should be made.
The data transfer itself was a real treat. Since as the night progressed, the hard-drive was getting steadily worse and worse, I ended up having to quite literally “shake” the data out of the computer. If the drive stayed in one position too long, it started slowing down the data transfer (from 1-2mbps to 10-20kbps), so there I was with the computer balanced on my knee, gently rocking it from left to right, saying little prayers to the computer gods that this directory or file would indeed make it out of the laptop and onto the hard drive. Toward the very end, I was holding the laptop upside down directly over my head with one hand (applying gentle agitation to keep the system from locking up) while the other was trying to use the track-pad to drag one directory icon over to the hard drive icon. Fun.
Satisfied that I had copied as much data as possible, I turned off the laptop and went to bed.
In the next couple of days, I talked to Apple, made an appointment with their Dallas store and dropped it off for servicing. Free hard drive replacement, but they charge a $50 data transfer fee (“AppleCare covers the hardware not your data, you pathetic victim of MTBF”, very crappy attitude). Luckily I had done as much as possible to satisfy my own idea of “backing up important files”, and very luckily, they were able to recover pretty much everything onto a new drive and I got the laptop back with the same passwords, background images, everything as before the laptop started making noises (even my 20gb of music, which I hadn’t backed up due to concerns that might push the poor HD over the edge). So it cost $50, but it ended up being worth it to have the peace of mind of getting everything back instead of just 90% back.
The moral of this story is: Backup early, all bits are not created equal, remember your pictures, and don’t screw around if it sounds like your computer / HD is making funny noises.
17:42 CST | category / entries
permanent link | comments?
Ring in the New Year
Greetings, faithful reader. I missed making an entry last month, so you won’t find out what I got for Christmas. I’m down to the wire on this month and I don’t have any new year’s resolutions to share, but I can give you one of your own… Whatever you do this year, make sure it does not involve crocheting anything that looks like this (especially not gorilla woman!).
Friends, I have gifts for you but I am lazy and forgetful, so you will probably get them next time you come over if I remember.
For those who look for insightful commentary, interesting technical morsels, or agile xp resume’s, stay tuned- I’ve got a great rebuttal to one of Mr. Zawodny’s entries that I’ve had stewing on my laptop since October.
To keep you entertained in the meanwhile I’ll link you to my favorite moderately unknown bloggers.
I’m always excited when I see entries show up in their feeds, so if you’re disappointed when entries don’t show up in my feeds, please read the above feeds and pretend that I wrote them.
08:33 CST | category / entries
permanent link | comments?
Like what you just read? Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.