Antelope Love Fan

Zen and the art of resource editing

Zen and the art of resource editing

I was a Macintosh guy for a long time.

I started with the Commodore 64, then a weird Sony word processor, and ended up with a Macintosh LC at the beginning of high school.

I got tired of just games after a while and set about learning other stuff to do with my Mac and that road lead me to ResEdit.

ResEdit was a utility which let you view and modify the resource fork of an application. While the resource fork primarily contained all of the image/icon/text resources for an application, it also contained the executable code for Classic 68k applications.

I figured out how make simple changes on my own (mainly changing to text of menu items to bad words) but I was pretty limited in what I could do.

And then I discovered Zen and the Art of Resource Editing.

They taught magical tricks like changing the Macintosh startup sound (I changed my to the THX sound) or even changing the startup screen.

My startup screen looked like this for the rest of high school.

I got my second Mac in college (where I met my future wife) which necessitated a startup screen update.

comments powered by Disqus

All posts

  1. Junior Developer, hard lessons learned
  2. Stories and thoughts
  3. I hate notifications
  4. The intimacy of smell
  5. My Geometry teacher was an alcoholic?
  6. You never know fear until you become a parent
  7. Im tired of all the gun violence
  8. Gaming handhelds I have loved
  9. The glorious act of creation
  10. The overwhelming drive to feed a child.
  11. Why I give coding test during interviews
  12. Pitbull dogs are family
  13. word.camera
  14. Highs and Lows
  15. I ride a bike to be a better person
  16. Just because you're allowed to curse doesn't mean you have to
  17. "I don't know" is an acceptable answer
  18. Naked body surfing in Ecuador
  19. Go fuck yourself with your atom bomb
  20. Never complain about having enough time
  21. Journalism is Dead
  22. Deep is the lizard's eye #tbt
  23. TARC's cashless fare system screws poor people
  24. Writing begets writing
  25. How much do I really remember?
  26. I love the Idaho-Stop
  27. Scary decisions are the best decisions
  28. Never trust your inputs
  29. That one-off thing with the terrible name will be around forever
  30. The joy of difficulty
  31. Anger and regret
  32. I am not a great programmer
  33. Free-writing: Lissie, Live at Brighton
  34. Don't get too hung up on tools
  35. The urge to grow things
  36. I refuse to let this city beat me
  37. Let's talk about interruptions...again.
  38. Bardstown Rd Businesses That Don't Care About Pedestrians (part 1)
  39. Bikejoring or, How to Wear Out Your Dog as Fast as Possible
  40. Thoughts on wasting time
  41. Tragedy and Perspective
  42. On the idea of admiration
  43. The joy of waiting for things
  44. Advice for junior developers
  45. The 4 common ways cars try to kill me
  46. I ran a marathon
  47. The Madness of Saturday
  48. Keeping a daily work log
  49. A frustrating Web.config transformation error
  50. My first century
  51. How _not_ to compare file versions in C#
  52. Auto-incrementing build numbers in Visual Studio 2012
  53. "The definition of the report 'XYZ' is invalid."
  54. Side effects of bike commuting
  55. By the numbers: Coldest ride ever
  56. The difference between 'git fetch' and 'git pull'
  57. Freshman Lunch Shenanigans
  58. Getting an '__doPostBack is undefined' error in IE10
  59. Noticing an odd difference between different implementations of JSON.stringify
  60. How not to make a sale
  61. Prayer for the repose of the dead
  62. You Meet All Kinds of People Cycling
  63. So iBooks Have a Hidden Unique ID
  64. The Three Most Important Pieces of Information for a Kid
  65. 20 Years Later, I Still Can't Read Ramona the Pest
  66. In which I decide not to bother with New Year's Resolutions
  67. I kinda regret deleting my Instagram account
  68. Hacking my eating habits
  69. I have been a dad for 10 years
  70. The most uncomfortable training session ever
  71. Minor hiccup with Google Drive
  72. I love living in The Highlands
  73. A dark start to the day
  74. Renting an Apartment in Boston
  75. I think I need to get over myself a little bit
  76. Making a mobile site behave like an iOS app
  77. Picasa data API fun: Creating albums and uploading images
  78. SVN working copy is nested?
  79. My one, feeble attempt at being a cracker of software.
  80. My Own Personal Daily WTF v1
  81. Get on your bike. No excuses
  82. Pixel level drawing with the canvas element
  83. New Year's Resolutions
  84. How to write a very simple jQuery Plugin
  85. Must-Have Chrome Extensions
  86. Preserving the $ with jQuery.noConflict
  87. Can't load XRegExp twice in the same frame
  88. Converting a Unix timestamp to a real Postgres date
  89. HTML5 Data Attributes and jQuery.data()
  90. Memories Wrapped Up in Music
  91. A poem for our daughters
  92. Handling Windows API Callbacks in VB .NET
  93. My Favorite Explanation of clip: rect();
  94. Basics of QR Codes
  95. Adding/Deleting Events with the Google Calendar API
  96. Basic Authentication with Titanium.Network.HTTPClient
  97. Even better overriding the Firebug console in IE
  98. SQL Management Studio 2008 says Saving changes is not permitted.
  99. Revert to a previous revision with Subversion
  100. Catching Ajax errors with jQuery
  101. Fun with Vim movement commands
  102. Copying ADODB Recordsets Across Databases
  103. The Proxy Pattern in Javascript
  104. Snippet for popping up a jQuery UI Dialog
  105. A Caveat When Declaring Javascript Arrays
  106. With jQuery, Awesomeness Abounds
  107. One-liner to syntax check a Python script
  108. Coding for Doctors in Haiti
  109. Changing an application's favicon in CherryPy
  110. Localizing PHP with gettext
  111. Running a CherryPy app with Apache and mod_python
  112. Basics of the Alternative PHP Cache (APC)
  113. Converting an RFC 3339 date to a Python timestamp(plus an update to my Google Docs backup script)
  114. Flickr REST API Basics
  115. Short list of required web developer tools
  116. Getting the caption of an image attached to a WordPress post
  117. Simple tabbed HTML navigation buttons
  118. Making sure FireBug console calls don't bomb in IE
  119. You have to be able to talk to people
  120. Not breaking the rules, but still being a jerk
  121. Fear
  122. Growing Up Pyro
  123. Locking Down Facebook
  124. Automatically blocking Twitter spam accounts
  125. File modification date/times in Python
  126. SSH Tunneling: Taming the series of tubes
  127. My single-handed destruction of an Ecuadorian cafe
  128. Basic page routing with CherryPy
  129. Demystifying Python Decorators
  130. Handy VBScript ASP syntax shortcut
  131. Twitter Trends: Experimenting with Adobe Air
  132. Getting started with CherryPy
  133. Installing things on Linux is still a pain in the tuchus
  134. Facebook's OpenID Support: Much Improved!
  135. Basic Lighttpd Setup
  136. Be Safe and Don't Be a Jerk
  137. Facebook's OpenID Support: It's cute and all but...
  138. Basics of the PHP PCRE functions
  139. This Bash trick will make your brain explode
  140. Saving the world with PHP array functions
  141. The PalmOS Browser War That Never Was
  142. 8 years today (and 14 years last March)
  143. It's not hard to avoid sounding like a moran moron
  144. Premature Optimization less harmful than Immature Stupidity
  145. Where am I? Where are you?
  146. Using PrototypeJS with Greasemonkey
  147. Yes, it's a camera. No, it doesn't need film
  148. Backing up your Google Docs
  149. Twitter Search API: Make millions, wow your friends.
  150. The shapening
  151. Writing a simple Twitter-bot in PHP
  152. Event handling with PrototypeJS
  153. Sometimes being a dad is all too real
  154. A refugee from the world
  155. HTML Emails for fun and profit
  156. Javascript awesomeness with Prototype
  157. Regular expressions in VBA
  158. Manipulating PDF files with Visual Basic .NET
  159. Google Client Logins
  160. Your data is your life. Why aren't you protecting it?
  161. RAID basics
  162. My .vimrc file
  163. I'm just a little bit starstruck
  164. In which handiness ensues
  165. It begins
  166. Profiling PHP with APD
  167. Fun with Branching Merging
  168. Comment Engine: Round 2
  169. Comment Engine: Round 1
  170. Foray into the Google App Engine
  171. Un-befuddling OpenID
  172. From Javascript to PHP and Back Again
  173. The fun solution is not always the right one
  174. Good Lazy vs. Bad Lazy
  175. Search Replace with vim
  176. The Editor War
  177. Interviewing is hard and annoying
  178. Further Adventures of a Domino's CSR
  179. How I Single-Handedly Further Disgruntled a Disgruntled Domino's Assistant Manager
  180. Further Tales of a Disgruntled Domino's Manager in Training
  181. Domino's Nightly Stoner Encounter
  182. Most bizzare lack of tip on a delivery
  183. The Saga of an Uhappily-Married-Disgruntled Manager at Domino's: Part 1