{ "2006.02.08-first-post": { "title": "First Post!", "date": "February 8, 2006", "timestamp": 1139368860, "tags": [ "life" ], "author": "sjs", "url": "/posts/2006.02.08-first-post" }, "2006.02.08-touch-screen-on-steroids": { "title": "Touch Screen on Steroids", "date": "February 8, 2006", "timestamp": 1139407560, "tags": [ "technology", "touch" ], "author": "sjs", "url": "/posts/2006.02.08-touch-screen-on-steroids" }, "2006.02.15-urban-extreme-gymnastics": { "title": "Urban Extreme Gymnastics?", "date": "February 15, 2006", "timestamp": 1140028860, "tags": [ "amusement" ], "author": "sjs", "url": "/posts/2006.02.15-urban-extreme-gymnastics" }, "2006.02.18-girlfriend-x": { "title": "Girlfriend X", "date": "February 18, 2006", "timestamp": 1140292200, "tags": [ "crazy", "funny" ], "author": "sjs", "url": "/posts/2006.02.18-girlfriend-x" }, "2006.02.18-jump-to-viewcontroller-in-textmate": { "title": "Jump to view/controller in TextMate", "date": "February 18, 2006", "timestamp": 1140303060, "tags": [ "hacking", "rails", "textmate", "rails", "textmate" ], "author": "sjs", "url": "/posts/2006.02.18-jump-to-viewcontroller-in-textmate" }, "2006.02.18-some-textmate-snippets-for-rails-migrations": { "title": "Some TextMate snippets for Rails Migrations", "date": "February 18, 2006", "timestamp": 1140331680, "tags": [ "textmate", "rails", "hacking", "rails", "snippets", "textmate" ], "author": "sjs", "url": "/posts/2006.02.18-some-textmate-snippets-for-rails-migrations" }, "2006.02.20-obligatory-post-about-ruby-on-rails": { "title": "Obligatory Post about Ruby on Rails", "date": "February 20, 2006", "timestamp": 1140424260, "tags": [ "rails", "coding", "hacking", "migration", "rails", "testing" ], "author": "sjs", "url": "/posts/2006.02.20-obligatory-post-about-ruby-on-rails", "styles": [ "typocode" ] }, "2006.02.20-textmate-snippets-for-rails-assertions": { "title": "TextMate Snippets for Rails Assertions", "date": "February 20, 2006", "timestamp": 1140508320, "tags": [ "textmate", "rails", "coding", "rails", "snippets", "testing", "textmate" ], "author": "sjs", "url": "/posts/2006.02.20-textmate-snippets-for-rails-assertions" }, "2006.02.21-textmate-move-selection-to-self-down": { "title": "TextMate: Move selection to self.down", "date": "February 21, 2006", "timestamp": 1140510360, "tags": [ "textmate", "rails", "hacking", "hack", "macro", "rails", "textmate" ], "author": "sjs", "url": "/posts/2006.02.21-textmate-move-selection-to-self-down" }, "2006.02.21-textmate-insert-text-into-self-down": { "title": "TextMate: Insert text into self.down", "date": "February 21, 2006", "timestamp": 1140562500, "tags": [ "textmate", "rails", "hacking", "commands", "macro", "rails", "snippets", "textmate" ], "author": "sjs", "url": "/posts/2006.02.21-textmate-insert-text-into-self-down", "styles": [ "typocode" ] }, "2006.02.22-intelligent-migration-snippets-0.1-for-textmate": { "title": "Intelligent Migration Snippets 0.1 for TextMate", "date": "February 22, 2006", "timestamp": 1140607680, "tags": [ "mac os x", "textmate", "rails", "hacking", "migrations", "snippets" ], "author": "sjs", "url": "/posts/2006.02.22-intelligent-migration-snippets-0.1-for-textmate" }, "2006.02.23-sjs-rails-bundle-0.2-for-textmate": { "title": "SJ's Rails Bundle 0.2 for TextMate", "date": "February 23, 2006", "timestamp": 1140743880, "tags": [ "textmate", "rails", "coding", "bundle", "macros", "rails", "snippets", "textmate" ], "author": "sjs", "url": "/posts/2006.02.23-sjs-rails-bundle-0.2-for-textmate", "styles": [ "typocode" ] }, "2006.03.03-generate-selfdown-in-your-rails-migrations": { "title": "Generate self.down in your Rails migrations", "date": "March 3, 2006", "timestamp": 1141450680, "tags": [ "rails", "textmate", "migrations", "rails", "textmate" ], "author": "sjs", "url": "/posts/2006.03.03-generate-selfdown-in-your-rails-migrations" }, "2006.03.03-spore": { "title": "Spore", "date": "March 3, 2006", "timestamp": 1141450980, "tags": [ "amusement", "technology", "cool", "fun", "games" ], "author": "sjs", "url": "/posts/2006.03.03-spore" }, "2006.03.03-i-dont-mind-fairplay-either": { "title": "I don't mind FairPlay either", "date": "March 3, 2006", "timestamp": 1141451760, "tags": [ "apple", "mac os x", "life", "drm", "fairplay", "ipod", "itunes" ], "author": "sjs", "url": "/posts/2006.03.03-i-dont-mind-fairplay-either" }, "2006.04.04-zsh-terminal-goodness-on-os-x": { "title": "zsh terminal goodness on OS X", "date": "April 4, 2006", "timestamp": 1144187820, "tags": [ "mac os x", "apple", "osx", "terminal", "zsh" ], "author": "sjs", "url": "/posts/2006.04.04-zsh-terminal-goodness-on-os-x" }, "2006.05.07-os-x-and-fitts-law": { "title": "OS X and Fitt's law", "date": "May 7, 2006", "timestamp": 1147059780, "tags": [ "mac os x", "apple", "mac", "os", "usability", "x" ], "author": "sjs", "url": "/posts/2006.05.07-os-x-and-fitts-law" }, "2006.05.07-wikipediafs-on-linux-in-python": { "title": "WikipediaFS on Linux, in Python", "date": "May 7, 2006", "timestamp": 1147060140, "tags": [ "hacking", "python", "linux", "fuse", "linux", "mediawiki", "python", "wikipediafs" ], "author": "sjs", "url": "/posts/2006.05.07-wikipediafs-on-linux-in-python" }, "2006.06.05-ich-bin-auslnder-und-spreche-nicht-gut-deutsch": { "title": "Ich bin Ausländer und spreche nicht gut Deutsch", "date": "June 5, 2006", "timestamp": 1149527460, "tags": [ "life", "munich", "seekport", "work" ], "author": "sjs", "url": "/posts/2006.06.05-ich-bin-auslnder-und-spreche-nicht-gut-deutsch" }, "2006.06.09-never-buy-a-german-keyboard": { "title": "Never buy a German keyboard!", "date": "June 9, 2006", "timestamp": 1149841020, "tags": [ "apple", "apple", "german", "keyboard" ], "author": "sjs", "url": "/posts/2006.06.09-never-buy-a-german-keyboard" }, "2006.06.10-theres-nothing-regular-about-regular-expressions": { "title": "There's nothing regular about regular expressions", "date": "June 10, 2006", "timestamp": 1149928080, "tags": [ "technology", "book", "regex" ], "author": "sjs", "url": "/posts/2006.06.10-theres-nothing-regular-about-regular-expressions" }, "2006.06.11-apple-pays-attention-to-detail": { "title": "Apple pays attention to detail", "date": "June 11, 2006", "timestamp": 1150014600, "tags": [ "technology", "mac os x", "apple" ], "author": "sjs", "url": "/posts/2006.06.11-apple-pays-attention-to-detail" }, "2006.07.06-working-with-the-zend-framework": { "title": "Working with the Zend Framework", "date": "July 6, 2006", "timestamp": 1152196560, "tags": [ "coding", "technology", "php", "framework", "php", "seekport", "zend" ], "author": "sjs", "url": "/posts/2006.07.06-working-with-the-zend-framework" }, "2006.07.13-ubuntu-linux-for-linux-users-please": { "title": "Ubuntu: Linux for Linux users please", "date": "July 13, 2006", "timestamp": 1152804840, "tags": [ "linux", "linux", "ubuntu" ], "author": "sjs", "url": "/posts/2006.07.13-ubuntu-linux-for-linux-users-please" }, "2006.07.17-ruby-and-rails-have-spoiled-me-rotten": { "title": "Ruby and Rails have spoiled me rotten", "date": "July 17, 2006", "timestamp": 1153140000, "tags": [ "rails", "ruby", "php", "coding", "framework", "php", "rails", "ruby", "zend" ], "author": "sjs", "url": "/posts/2006.07.17-ruby-and-rails-have-spoiled-me-rotten" }, "2006.07.19-late-static-binding": { "title": "Late static binding", "date": "July 19, 2006", "timestamp": 1153329780, "tags": [ "php", "coding", "coding", "php" ], "author": "sjs", "url": "/posts/2006.07.19-late-static-binding" }, "2006.07.21-class-method-instance-method-it-doesnt-matter-to-php": { "title": "Class method? Instance method? It doesn't matter to PHP", "date": "July 21, 2006", "timestamp": 1153493760, "tags": [ "php", "coding" ], "author": "sjs", "url": "/posts/2006.07.21-class-method-instance-method-it-doesnt-matter-to-php" }, "2006.08.22-where-are-my-headphones": { "title": "Where are my headphones?", "date": "August 22, 2006", "timestamp": 1156257060, "tags": [ "life", "seekport" ], "author": "sjs", "url": "/posts/2006.08.22-where-are-my-headphones" }, "2006.09.16-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo": { "title": "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo", "date": "September 16, 2006", "timestamp": 1158469860, "tags": [ "amusement", "buffalo" ], "author": "sjs", "url": "/posts/2006.09.16-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo" }, "2006.09.22-some-features-you-might-have-missed-in-itunes-7": { "title": "Some features you might have missed in iTunes 7", "date": "September 22, 2006", "timestamp": 1158969540, "tags": [ "apple", "apple", "itunes" ], "author": "sjs", "url": "/posts/2006.09.22-some-features-you-might-have-missed-in-itunes-7" }, "2006.12.17-coping-with-windows-xp-activiation-on-a-mac": { "title": "Coping with Windows XP activiation on a Mac", "date": "December 17, 2006", "timestamp": 1166427000, "tags": [ "parallels", "windows", "apple", "mac os x", "bootcamp" ], "author": "sjs", "url": "/posts/2006.12.17-coping-with-windows-xp-activiation-on-a-mac" }, "2007.03.06-full-screen-cover-flow": { "title": "Full-screen Cover Flow", "date": "March 6, 2007", "timestamp": 1173217860, "tags": [ "apple", "coverflow", "itunes" ], "author": "sjs", "url": "/posts/2007.03.06-full-screen-cover-flow" }, "2007.03.08-digg-v4-reply-to-replies-greasemonkey-script": { "title": "Digg v4: Reply to replies (Greasemonkey script)", "date": "March 8, 2007", "timestamp": 1173424740, "tags": [ "coding", "digg", "firefox", "userscript" ], "author": "sjs", "url": "/posts/2007.03.08-digg-v4-reply-to-replies-greasemonkey-script" }, "2007.03.25-diggscuss-0.9": { "title": "Diggscuss 0.9", "date": "March 25, 2007", "timestamp": 1174834980, "tags": [ "coding", "digg", "firefox", "userscript" ], "author": "sjs", "url": "/posts/2007.03.25-diggscuss-0.9" }, "2007.04.04-a-triple-booting-schizophrenic-macbook": { "title": "A triple-booting, schizophrenic MacBook", "date": "April 4, 2007", "timestamp": 1175754600, "tags": [ "linux", "mac os x", "windows" ], "author": "sjs", "url": "/posts/2007.04.04-a-triple-booting-schizophrenic-macbook" }, "2007.04.11-activerecord-base.find_or_create-and-find_or_initialize": { "title": "ActiveRecord::Base.find_or_create and find_or_initialize", "date": "April 11, 2007", "timestamp": 1176287040, "tags": [ "activerecord", "coding", "rails", "ruby" ], "author": "sjs", "url": "/posts/2007.04.11-activerecord-base.find_or_create-and-find_or_initialize" }, "2007.04.16-getting-to-know-vista": { "title": "Getting to know Vista", "date": "April 16, 2007", "timestamp": 1176746940, "tags": [ "windows" ], "author": "sjs", "url": "/posts/2007.04.16-getting-to-know-vista" }, "2007.04.26-quickly-inserting-millions-of-rows-with-mysql-innodb": { "title": "Quickly inserting millions of rows with MySQL/InnoDB", "date": "April 26, 2007", "timestamp": 1177596360, "tags": [ "linux", "mysql" ], "author": "sjs", "url": "/posts/2007.04.26-quickly-inserting-millions-of-rows-with-mysql-innodb" }, "2007.04.30-funny-how-code-can-be-beautiful": { "title": "Funny how code can be beautiful", "date": "April 30, 2007", "timestamp": 1177942020, "tags": [ "haskell" ], "author": "sjs", "url": "/posts/2007.04.30-funny-how-code-can-be-beautiful" }, "2007.05.01-typo-and-i-are-friends-again": { "title": "Typo and I are friends again", "date": "May 1, 2007", "timestamp": 1178081497, "tags": [ "typo" ], "author": "sjs", "url": "/posts/2007.05.01-typo-and-i-are-friends-again" }, "2007.05.03-a-scheme-parser-in-haskell-part-1": { "title": "A Scheme parser in Haskell: Part 1", "date": "May 3, 2007", "timestamp": 1178178470, "tags": [ "coding", "haskell" ], "author": "sjs", "url": "/posts/2007.05.03-a-scheme-parser-in-haskell-part-1" }, "2007.05.05-gotta-love-the-ferry-ride": { "title": "Gotta Love the Ferry Ride", "date": "May 5, 2007", "timestamp": 1178364300, "tags": [ "life", "photo", "bc", "victoria" ], "author": "sjs", "url": "/posts/2007.05.05-gotta-love-the-ferry-ride" }, "2007.05.05-a-new-way-to-look-at-networking": { "title": "A New Way to Look at Networking", "date": "May 5, 2007", "timestamp": 1178406600, "tags": [ "technology", "networking" ], "author": "sjs", "url": "/posts/2007.05.05-a-new-way-to-look-at-networking" }, "2007.05.09-dtrace-ruby-goodness-for-sun": { "title": "dtrace + Ruby = Goodness for Sun", "date": "May 9, 2007", "timestamp": 1178725500, "tags": [ "ruby", "dtrace", "sun" ], "author": "sjs", "url": "/posts/2007.05.09-dtrace-ruby-goodness-for-sun" }, "2007.05.09-i-cant-wait-to-see-what-matt-stone-trey-parker-do-with-this": { "title": "I Can't Wait to See What Trey Parker & Matt Stone Do With This", "date": "May 9, 2007", "timestamp": 1178746440, "tags": [ "crazy" ], "author": "sjs", "url": "/posts/2007.05.09-i-cant-wait-to-see-what-matt-stone-trey-parker-do-with-this" }, "2007.05.10-rails-plugins-link-dump": { "title": "Rails Plugins (link dump)", "date": "May 10, 2007", "timestamp": 1178756520, "tags": [ "rails" ], "author": "sjs", "url": "/posts/2007.05.10-rails-plugins-link-dump" }, "2007.05.10-enumerable-pluck-and-string-to_proc-for-ruby": { "title": "Enumurable#pluck and String#to_proc for Ruby", "date": "May 10, 2007", "timestamp": 1178838840, "tags": [ "ruby", "extensions" ], "author": "sjs", "url": "/posts/2007.05.10-enumerable-pluck-and-string-to_proc-for-ruby" }, "2007.05.15-dumping-objects-to-the-browser-in-rails": { "title": "Dumping Objects to the Browser in Rails", "date": "May 15, 2007", "timestamp": 1179261480, "tags": [ "rails" ], "author": "sjs", "url": "/posts/2007.05.15-dumping-objects-to-the-browser-in-rails" }, "2007.05.16-cheating-at-life-in-general": { "title": "Cheating at Life in General", "date": "May 16, 2007", "timestamp": 1179308760, "tags": [ "cheat", "vim", "emacs", "textmate" ], "author": "sjs", "url": "/posts/2007.05.16-cheating-at-life-in-general" }, "2007.05.18-iphone-humour": { "title": "iPhone Humour", "date": "May 18, 2007", "timestamp": 1179513240, "tags": [ "apple", "funny", "iphone" ], "author": "sjs", "url": "/posts/2007.05.18-iphone-humour" }, "2007.05.22-inspirado": { "title": "Inspirado", "date": "May 22, 2007", "timestamp": 1179865380, "tags": [ "rails", "inspirado" ], "author": "sjs", "url": "/posts/2007.05.22-inspirado" }, "2007.05.26-finnish-court-rules-css-ineffective-at-protecting-dvds": { "title": "Finnish court rules CSS ineffective at protecting DVDs", "date": "May 26, 2007", "timestamp": 1180175040, "tags": [ "drm" ], "author": "sjs", "url": "/posts/2007.05.26-finnish-court-rules-css-ineffective-at-protecting-dvds" }, "2007.06.08-301-moved-permanently": { "title": "301 moved permanently", "date": "June 8, 2007", "timestamp": 1181350800, "tags": [ "life" ], "author": "sjs", "url": "/posts/2007.06.08-301-moved-permanently" }, "2007.06.08-so-long-typo-and-thanks-for-all-the-timeouts": { "title": "so long typo (and thanks for all the timeouts)", "date": "June 8, 2007", "timestamp": 1181350860, "tags": [ "mephisto", "typo" ], "author": "sjs", "url": "/posts/2007.06.08-so-long-typo-and-thanks-for-all-the-timeouts" }, "2007.06.14-more-scheming-with-haskell": { "title": "More Scheming with Haskell", "date": "June 14, 2007", "timestamp": 1181783340, "tags": [ "coding", "haskell", "scheme" ], "author": "sjs", "url": "/posts/2007.06.14-more-scheming-with-haskell" }, "2007.06.14-testspec-on-rails-declared-awesome-just-one-catch": { "title": "test/spec on rails declared awesome, just one catch", "date": "June 14, 2007", "timestamp": 1181830860, "tags": [ "bdd", "rails", "test/spec" ], "author": "sjs", "url": "/posts/2007.06.14-testspec-on-rails-declared-awesome-just-one-catch" }, "2007.06.15-begging-the-question": { "title": "Begging the question", "date": "June 15, 2007", "timestamp": 1181933340, "tags": [ "english", "life", "pedantry" ], "author": "sjs", "url": "/posts/2007.06.15-begging-the-question" }, "2007.06.18-back-on-gentoo-trying-new-things": { "title": "Back on Gentoo, trying new things", "date": "June 18, 2007", "timestamp": 1182215100, "tags": [ "emacs", "gentoo", "linux", "vim" ], "author": "sjs", "url": "/posts/2007.06.18-back-on-gentoo-trying-new-things" }, "2007.06.20-reinventing-the-wheel": { "title": "Reinventing the wheel", "date": "June 20, 2007", "timestamp": 1182356820, "tags": [ "emacs", "snippets" ], "author": "sjs", "url": "/posts/2007.06.20-reinventing-the-wheel" }, "2007.06.22-embrace-the-database": { "title": "Embrace the database", "date": "June 22, 2007", "timestamp": 1182507240, "tags": [ "activerecord", "rails", "ruby" ], "author": "sjs", "url": "/posts/2007.06.22-embrace-the-database" }, "2007.06.23-emacs-for-textmate-junkies": { "title": "Emacs for TextMate junkies", "date": "June 23, 2007", "timestamp": 1182565020, "tags": [ "emacs", "textmate" ], "author": "sjs", "url": "/posts/2007.06.23-emacs-for-textmate-junkies" }, "2007.06.24-floating-point-in-elschemo": { "title": "Floating point in ElSchemo", "date": "June 24, 2007", "timestamp": 1182711180, "tags": [ "elschemo", "haskell", "scheme" ], "author": "sjs", "url": "/posts/2007.06.24-floating-point-in-elschemo" }, "2007.06.25-propaganda-makes-me-sick": { "title": "Propaganda makes me sick", "date": "June 25, 2007", "timestamp": 1182768900, "tags": [ "propaganda" ], "author": "sjs", "url": "/posts/2007.06.25-propaganda-makes-me-sick" }, "2007.06.26-rtfm": { "title": "RTFM!", "date": "June 26, 2007", "timestamp": 1182806340, "tags": [ "emacs", "rtfm" ], "author": "sjs", "url": "/posts/2007.06.26-rtfm" }, "2007.06.25-emacs-tagify-region-or-insert-tag": { "title": "Emacs: tagify-region-or-insert-tag", "date": "June 25, 2007", "timestamp": 1182809580, "tags": [ "emacs", "tagify" ], "author": "sjs", "url": "/posts/2007.06.25-emacs-tagify-region-or-insert-tag" }, "2007.06.28-recent-ruby-and-rails-regales": { "title": "Recent Ruby and Rails Regales", "date": "June 28, 2007", "timestamp": 1183058580, "tags": [ "rails", "rails on rules", "regular expressions", "ruby", "sake", "secure associations", "regex" ], "author": "sjs", "url": "/posts/2007.06.28-recent-ruby-and-rails-regales" }, "2007.06.30-controlling-volume-via-the-keyboard-on-linux": { "title": "Controlling volume via the keyboard on Linux", "date": "June 30, 2007", "timestamp": 1183245180, "tags": [ "alsa", "linux", "ruby", "volume" ], "author": "sjs", "url": "/posts/2007.06.30-controlling-volume-via-the-keyboard-on-linux" }, "2007.07.03-a-textmate-tip-for-emacs-users": { "title": "A TextMate tip for Emacs users", "date": "July 3, 2007", "timestamp": 1183481100, "tags": [ "emacs", "keyboard shortcuts", "textmate" ], "author": "sjs", "url": "/posts/2007.07.03-a-textmate-tip-for-emacs-users" }, "2007.07.05-rushcheck-quickcheck-for-ruby": { "title": "RushCheck: QuickCheck for Ruby", "date": "July 5, 2007", "timestamp": 1183665000, "tags": [ "quickcheck", "ruby", "rushcheck" ], "author": "sjs", "url": "/posts/2007.07.05-rushcheck-quickcheck-for-ruby" }, "2007.07.06-see-your-regular-expressions-in-emacs": { "title": "See your regular expressions in Emacs", "date": "July 6, 2007", "timestamp": 1183740300, "tags": [ "emacs", "regex" ], "author": "sjs", "url": "/posts/2007.07.06-see-your-regular-expressions-in-emacs" }, "2007.07.12-people": { "title": "people", "date": "July 12, 2007", "timestamp": 1184243280, "tags": [ "life", "people" ], "author": "sjs", "url": "/posts/2007.07.12-people" }, "2007.08.02-elschemo-boolean-logic-and-branching": { "title": "ElSchemo: Boolean logic and branching", "date": "August 2, 2007", "timestamp": 1186073940, "tags": [ "elschemo", "haskell", "scheme" ], "author": "sjs", "url": "/posts/2007.08.02-elschemo-boolean-logic-and-branching" }, "2007.08.09-snap-crunchle-pop": { "title": "Snap, crunchle, pop", "date": "August 9, 2007", "timestamp": 1186654620, "tags": [ "humans", "injury", "life" ], "author": "sjs", "url": "/posts/2007.08.09-snap-crunchle-pop" }, "2007.08.09-cheat-from-emacs": { "title": "Cheat from Emacs", "date": "August 9, 2007", "timestamp": 1186710960, "tags": [ "Emacs" ], "author": "sjs", "url": "/posts/2007.08.09-cheat-from-emacs" }, "2007.08.11-opera-is-pretty-slick": { "title": "Opera is pretty slick", "date": "August 11, 2007", "timestamp": 1186834260, "tags": [ "browsers", "firefox", "opera" ], "author": "sjs", "url": "/posts/2007.08.11-opera-is-pretty-slick" }, "2007.08.19-catch-compiler-errors-at-runtime": { "title": "Catch compiler errors at runtime", "date": "August 19, 2007", "timestamp": 1187561820, "tags": [ "ruby" ], "author": "sjs", "url": "/posts/2007.08.19-catch-compiler-errors-at-runtime" }, "2007.08.21-cheat-productively-in-emacs": { "title": "Cheat productively in Emacs", "date": "August 21, 2007", "timestamp": 1187720400, "tags": [ "Emacs" ], "author": "sjs", "url": "/posts/2007.08.21-cheat-productively-in-emacs" }, "2007.08.26-captivating-little-creatures": { "title": "Captivating little creatures", "date": "August 26, 2007", "timestamp": 1188131700, "tags": [ "games", "lemmings" ], "author": "sjs", "url": "/posts/2007.08.26-captivating-little-creatures" }, "2007.08.30-5-ways-to-avoid-looking-like-a-jerk-on-the-internet": { "title": "5 ways to avoid looking like a jerk on the Internet", "date": "August 30, 2007", "timestamp": 1188487500, "tags": [ "life", "netiquette" ], "author": "sjs", "url": "/posts/2007.08.30-5-ways-to-avoid-looking-like-a-jerk-on-the-internet" }, "2007.09.25-learning-lisp-read-pcl": { "title": "Learning Lisp? Read PCL", "date": "September 25, 2007", "timestamp": 1190714340, "tags": [ "lisp" ], "author": "sjs", "url": "/posts/2007.09.25-learning-lisp-read-pcl" }, "2007.09.26-python-and-ruby-brain-dump": { "title": "Python and Ruby brain dump", "date": "September 26, 2007", "timestamp": 1190802840, "tags": [ "python", "ruby" ], "author": "sjs", "url": "/posts/2007.09.26-python-and-ruby-brain-dump" }, "2007.10.29-gtkpod-in-gutsy-got-you-groaning": { "title": "Gtkpod in Gutsy Got You Groaning?", "date": "October 29, 2007", "timestamp": 1193692440, "tags": [ "broken", "gtkpod", "linux", "ubuntu" ], "author": "sjs", "url": "/posts/2007.10.29-gtkpod-in-gutsy-got-you-groaning" }, "2008.01.07-random-pet-peeve-of-the-day": { "title": "Random pet peeve of the day", "date": "January 7, 2008", "timestamp": 1199727720, "tags": [ "usability", "web" ], "author": "sjs", "url": "/posts/2008.01.07-random-pet-peeve-of-the-day" }, "2008.02.19-thoughts-on-arc": { "title": "Thoughts on Arc", "date": "February 19, 2008", "timestamp": 1203420360, "tags": [ "lisp arc" ], "author": "sjs", "url": "/posts/2008.02.19-thoughts-on-arc" }, "2008.03.03-project-euler-code-repo-in-arc": { "title": "Project Euler code repo in Arc", "date": "March 3, 2008", "timestamp": 1204561440, "tags": [ "arc", "project euler" ], "author": "sjs", "url": "/posts/2008.03.03-project-euler-code-repo-in-arc" }, "2009.11.21-using-emacs-to-develop-mojo-apps-for-webos": { "title": "Using Emacs to Develop Mojo Apps for WebOS", "date": "November 21, 2009", "timestamp": 1258790400, "tags": [ "emacs", "mojo", "webos", "lisp", "javascript" ], "author": "sjs", "url": "/posts/2009.11.21-using-emacs-to-develop-mojo-apps-for-webos" }, "2010.01.17-working-with-c-style-structs-in-ruby": { "title": "Working with C-style structs in Ruby", "date": "January 17, 2010", "timestamp": 1263715200, "tags": [ "ruby", "cstruct", "compiler" ], "author": "sjs", "url": "/posts/2010.01.17-working-with-c-style-structs-in-ruby" }, "2010.01.18-basics-of-the-mach-o-file-format": { "title": "Basics of the Mach-O file format", "date": "January 18, 2010", "timestamp": 1263801600, "tags": [ "mach-o", "os x", "compiler" ], "author": "sjs", "url": "/posts/2010.01.18-basics-of-the-mach-o-file-format" }, "2010.01.20-a-preview-of-mach-o-file-generation": { "title": "A preview of Mach-O file generation", "date": "January 20, 2010", "timestamp": 1263974400, "tags": [ "ruby", "mach-o", "os x", "compiler" ], "author": "sjs", "url": "/posts/2010.01.20-a-preview-of-mach-o-file-generation" }, "2010.11.04-37signals-chalk-dissected": { "title": "37signals' Chalk Dissected", "date": "November 4, 2010", "timestamp": 1288854000, "tags": [ "37signals", "chalk", "ipad", "javascript", "web", "html", "css", "zepto.js" ], "author": "sjs", "url": "/posts/2010.11.04-37signals-chalk-dissected" }, "2011.11.27-recovering-old-posts": { "title": "Recovering Old Blog Posts", "date": "November 27, 2011", "timestamp": 1322385300, "tags": [ "recover", "old", "blog", "posts" ], "author": "sjs", "url": "/posts/2011.11.27-recovering-old-posts" }, "2011.11.27-lights": { "title": "Lights →", "date": "November 27, 2011", "timestamp": 1322446260, "tags": [ ], "url": "/posts/2011.11.27-lights", "link": "http://lights.elliegoulding.com/" }, "2011.12.10-static-url-shortener-using-htaccess": { "title": "A Static URL Shortener Using .htaccess", "date": "December 10, 2011", "timestamp": 1323584949, "tags": [ "s42.ca", "url", "shortener", "samhuri.net", "url shortener" ], "author": "sjs", "url": "/posts/2011.12.10-static-url-shortener-using-htaccess" }, "2011.12.11-pure-css3-images-hmm-maybe-later": { "title": "Pure CSS3 images? Hmm, maybe later →", "date": "December 11, 2011", "timestamp": 1323635103, "tags": [ ], "url": "/posts/2011.12.11-pure-css3-images-hmm-maybe-later", "link": "http://calendar.perfplanet.com/2011/pure-css3-images-hmm-maybe-later/" }, "2011.12.15-i-see-http": { "title": "I see HTTP →", "date": "December 15, 2011", "timestamp": 1323964035, "tags": [ ], "url": "/posts/2011.12.15-i-see-http", "link": "http://calendar.perfplanet.com/2011/i-see-http/" }, "2011.12.19-my-kind-of-feature-checklist": { "title": "My kind of feature checklist →", "date": "December 19, 2011", "timestamp": 1324354805, "tags": [ ], "url": "/posts/2011.12.19-my-kind-of-feature-checklist", "link": "http://www.marco.org/2011/12/19/amazon-kindle-vs-ipad" }, "2011.12.22-new-release-of-firefox-for-android-optimized-for-tablets": { "title": "New Release of Firefox for Android, Optimized for Tablets →", "date": "December 22, 2011", "timestamp": 1324868051, "tags": [ ], "url": "/posts/2011.12.22-new-release-of-firefox-for-android-optimized-for-tablets", "link": "http://daringfireball.net/linked/2011/12/22/firefox-android" }, "2011.12.25-the-broken-pixel-theory": { "title": "The Broken Pixel Theory →", "date": "December 25, 2011", "timestamp": 1324868060, "tags": [ ], "url": "/posts/2011.12.25-the-broken-pixel-theory", "link": "http://jtaby.com/2011/12/25/the-broken-pixel-theory.html" }, "2012.01.04-yak-shaving": { "title": "Yak shaving →", "date": "January 4, 2012", "timestamp": 1325712240, "tags": [ ], "url": "/posts/2012.01.04-yak-shaving", "link": "http://blog.hasmanythrough.com/2012/1/4/yak-shaving" }, "2012.01.09-the-40-standup-desk": { "title": "The $40 Standup Desk →", "date": "January 9, 2012", "timestamp": 1326097000, "tags": [ ], "url": "/posts/2012.01.09-the-40-standup-desk", "link": "http://opensoul.org/blog/archives/2012/01/09/the-40-standup-desk/" }, "2012.01.17-recovering-from-a-computer-science-education": { "title": "Recovering From a Computer Science Education →", "date": "January 17, 2012", "timestamp": 1326787200, "tags": [ ], "url": "/posts/2012.01.17-recovering-from-a-computer-science-education", "link": "http://prog21.dadgum.com/123.html" }, "2012.01.17-sopa-lives-and-mpaa-calls-protests-an-abuse-of-power": { "title": "SOPA lives - and MPAA calls protests an \"abuse of power\" →", "date": "January 17, 2012", "timestamp": 1326797200, "tags": [ ], "url": "/posts/2012.01.17-sopa-lives-and-mpaa-calls-protests-an-abuse-of-power", "link": "http://arstechnica.com/tech-policy/news/2012/01/sopa-livesand-mpaa-calls-protests-an-abuse-of-power.ars" }, "2012.01.19-fujitsu-has-lost-their-mind": { "title": "Fujitsu has lost their mind →", "date": "January 19, 2012", "timestamp": 1327032333, "tags": [ ], "url": "/posts/2012.01.19-fujitsu-has-lost-their-mind", "link": "http://tablet-news.com/2012/01/17/fujitsu-lifebook-2013-concept-incorporates-a-tablet-for-a-keyboard-phone-and-digital-camera/" }, "2013.03.06-zelda-tones-for-ios": { "title": "Zelda Tones for iOS", "date": "March 6, 2013", "timestamp": 1362624673, "tags": [ "zelda", "nintendo", "pacman", "ringtones", "tones", "ios" ], "author": "sjs", "url": "/posts/2013.03.06-zelda-tones-for-ios" }, "2013.09.27-linky": { "title": "Linky", "date": "September 27, 2013", "timestamp": 1380343742, "tags": [ "linky", "north watcher", "ruby", "gmail", "links", "notifications" ], "author": "sjs", "url": "/posts/2013.09.27-linky" }, "2014.02.03-ember-structure": { "title": "Structure of an Ember app", "date": "February 3, 2014", "timestamp": 1391479549, "tags": [ "ember.js" ], "author": "sjs", "url": "/posts/2014.02.03-ember-structure" } }