One of the best learning tools I have found in my career is to take someone else’s code, and to modify it slightly to see what happens, to play with it, and eventually to release that code in this blog, or send it to the original author, fixing it somehow or adding some feature:
- I fixed a small bug in Matt Gemmel’s iCal Birthday Shifter (written in AppleScript);
- I am running a custom version of Apple’s own World Clock Dashboard widget that temporarily fixes the bad time zone information given the recent shift in my birth country (pure JavaScript);
- I have a custom Twitterlex version (again, pure JavaScript);
- And finally, this blog is using a custom version of Erik Range’s SyntaxHighlighter WordPress plugin (written in PHP).
This last one, is a small modification so that you can use the “firstline” CSS modifier, like this:
[source:javascript:firstline(150)]
// your code here...
[/source]
You can download this modified version of the syntax.php file here or get the diff file with the modifications here.
This is the freedom of modifying software, as RMS talked about. This is how the community goes forward.