diff --git a/posts/2006/02/first-post.md b/posts/2006/02/first-post.md index fab2b2d..b6b3307 100644 --- a/posts/2006/02/first-post.md +++ b/posts/2006/02/first-post.md @@ -1,9 +1,9 @@ --- -Title: First Post! +Title: "First Post!" Author: Sami Samhuri -Date: 8th February, 2006 +Date: "8th February, 2006" Timestamp: 2006-02-07T19:21:00-08:00 -Tags: life +Tags: [life] --- so it's 2am and i should be asleep, but instead i'm setting up a blog. i got a new desk last night and so today i finally got my apartment re-arranged and it's much better now. that's it for now... time to sleep. diff --git a/posts/2006/02/girlfriend-x.md b/posts/2006/02/girlfriend-x.md index 03fbe89..8b42dcc 100644 --- a/posts/2006/02/girlfriend-x.md +++ b/posts/2006/02/girlfriend-x.md @@ -1,9 +1,9 @@ --- -Title: Girlfriend X +Title: "Girlfriend X" Author: Sami Samhuri -Date: 18th February, 2006 +Date: "18th February, 2006" Timestamp: 2006-02-18T11:50:00-08:00 -Tags: crazy, funny +Tags: [crazy, funny] --- This is hilarious! Someone wrote software that manages a "parallel" dating style. diff --git a/posts/2006/02/intelligent-migration-snippets-0_1-for-textmate.md b/posts/2006/02/intelligent-migration-snippets-0_1-for-textmate.md index 6a42fa5..4b62231 100644 --- a/posts/2006/02/intelligent-migration-snippets-0_1-for-textmate.md +++ b/posts/2006/02/intelligent-migration-snippets-0_1-for-textmate.md @@ -1,9 +1,9 @@ --- -Title: Intelligent Migration Snippets 0.1 for TextMate +Title: "Intelligent Migration Snippets 0.1 for TextMate" Author: Sami Samhuri -Date: 22nd February, 2006 +Date: "22nd February, 2006" Timestamp: 2006-02-22T03:28:00-08:00 -Tags: mac os x, textmate, rails, hacking, migrations, snippets +Tags: [mac os x, textmate, rails, hacking, migrations, snippets] --- *This should be working now. I've tested it under a new user account here.* diff --git a/posts/2006/02/jump-to-viewcontroller-in-textmate.md b/posts/2006/02/jump-to-viewcontroller-in-textmate.md index cddaba1..14f96b7 100644 --- a/posts/2006/02/jump-to-viewcontroller-in-textmate.md +++ b/posts/2006/02/jump-to-viewcontroller-in-textmate.md @@ -1,9 +1,9 @@ --- -Title: Jump to view/controller in TextMate +Title: "Jump to view/controller in TextMate" Author: Sami Samhuri -Date: 18th February, 2006 +Date: "18th February, 2006" Timestamp: 2006-02-18T14:51:00-08:00 -Tags: hacking, rails, textmate, rails, textmate +Tags: [hacking, rails, textmate, rails, textmate] --- Duane came up with a way to jump to the controller method for the view you're editing, or vice versa in TextMate while coding using Rails. This is a huge time-saver, thanks! diff --git a/posts/2006/02/obligatory-post-about-ruby-on-rails.md b/posts/2006/02/obligatory-post-about-ruby-on-rails.md index 49eb02c..42ea7d6 100644 --- a/posts/2006/02/obligatory-post-about-ruby-on-rails.md +++ b/posts/2006/02/obligatory-post-about-ruby-on-rails.md @@ -1,9 +1,9 @@ --- -Title: Obligatory Post about Ruby on Rails +Title: "Obligatory Post about Ruby on Rails" Author: Sami Samhuri -Date: 20th February, 2006 +Date: "20th February, 2006" Timestamp: 2006-02-20T00:31:00-08:00 -Tags: rails, coding, hacking, migration, rails, testing +Tags: [rails, coding, hacking, migration, rails, testing] Styles: typocode.css --- diff --git a/posts/2006/02/sjs-rails-bundle-0_2-for-textmate.md b/posts/2006/02/sjs-rails-bundle-0_2-for-textmate.md index 63d8695..1269aa8 100644 --- a/posts/2006/02/sjs-rails-bundle-0_2-for-textmate.md +++ b/posts/2006/02/sjs-rails-bundle-0_2-for-textmate.md @@ -1,9 +1,9 @@ --- -Title: SJ's Rails Bundle 0.2 for TextMate +Title: "SJ's Rails Bundle 0.2 for TextMate" Author: Sami Samhuri -Date: 23rd February, 2006 +Date: "23rd February, 2006" Timestamp: 2006-02-23T17:18:00-08:00 -Tags: textmate, rails, coding, bundle, macros, rails, snippets, textmate +Tags: [textmate, rails, coding, bundle, macros, rails, snippets, textmate] Styles: typocode.css --- diff --git a/posts/2006/02/some-textmate-snippets-for-rails-migrations.md b/posts/2006/02/some-textmate-snippets-for-rails-migrations.md index 22055e7..3ef6d00 100644 --- a/posts/2006/02/some-textmate-snippets-for-rails-migrations.md +++ b/posts/2006/02/some-textmate-snippets-for-rails-migrations.md @@ -1,9 +1,9 @@ --- -Title: Some TextMate snippets for Rails Migrations +Title: "Some TextMate snippets for Rails Migrations" Author: Sami Samhuri -Date: 18th February, 2006 +Date: "18th February, 2006" Timestamp: 2006-02-18T22:48:00-08:00 -Tags: textmate, rails, hacking, rails, snippets, textmate +Tags: [textmate, rails, hacking, rails, snippets, textmate] --- My arsenal of snippets and macros in TextMate is building as I read through the rails canon, Agile Web Development... I'm only 150 pages in so I haven't had to add much so far because I started with the bundle found on the rails wiki. The main ones so far are for migrations. diff --git a/posts/2006/02/textmate-insert-text-into-self-down.md b/posts/2006/02/textmate-insert-text-into-self-down.md index df9b935..63678b0 100644 --- a/posts/2006/02/textmate-insert-text-into-self-down.md +++ b/posts/2006/02/textmate-insert-text-into-self-down.md @@ -1,9 +1,9 @@ --- -Title: TextMate: Insert text into self.down +Title: "TextMate: Insert text into self.down" Author: Sami Samhuri -Date: 21st February, 2006 +Date: "21st February, 2006" Timestamp: 2006-02-21T14:55:00-08:00 -Tags: textmate, rails, hacking, commands, macro, rails, snippets, textmate +Tags: [textmate, rails, hacking, commands, macro, rails, snippets, textmate] Styles: typocode.css --- diff --git a/posts/2006/02/textmate-move-selection-to-self-down.md b/posts/2006/02/textmate-move-selection-to-self-down.md index f277402..0fa85b4 100644 --- a/posts/2006/02/textmate-move-selection-to-self-down.md +++ b/posts/2006/02/textmate-move-selection-to-self-down.md @@ -1,9 +1,9 @@ --- -Title: TextMate: Move selection to self.down +Title: "TextMate: Move selection to self.down" Author: Sami Samhuri -Date: 21st February, 2006 +Date: "21st February, 2006" Timestamp: 2006-02-21T00:26:00-08:00 -Tags: textmate, rails, hacking, hack, macro, rails, textmate +Tags: [textmate, rails, hacking, hack, macro, rails, textmate] Styles: typocode.css --- diff --git a/posts/2006/02/textmate-snippets-for-rails-assertions.md b/posts/2006/02/textmate-snippets-for-rails-assertions.md index 0e7cc1a..55f2109 100644 --- a/posts/2006/02/textmate-snippets-for-rails-assertions.md +++ b/posts/2006/02/textmate-snippets-for-rails-assertions.md @@ -1,9 +1,9 @@ --- -Title: TextMate Snippets for Rails Assertions +Title: "TextMate Snippets for Rails Assertions" Author: Sami Samhuri -Date: 20th February, 2006 +Date: "20th February, 2006" Timestamp: 2006-02-20T23:52:00-08:00 -Tags: textmate, rails, coding, rails, snippets, testing, textmate +Tags: [textmate, rails, coding, rails, snippets, testing, textmate] --- This time I've got a few snippets for assertions. Using these to type up your tests quickly, and then hitting **⌘R** to run the tests without leaving TextMate, makes testing your Rails app that much more convenient. Just when you thought it was already too easy! (Don't forget that you can use **⌥⌘↓** to move between your code and the corresponding test case.) diff --git a/posts/2006/02/touch-screen-on-steroids.md b/posts/2006/02/touch-screen-on-steroids.md index 14cea60..428a31d 100644 --- a/posts/2006/02/touch-screen-on-steroids.md +++ b/posts/2006/02/touch-screen-on-steroids.md @@ -1,9 +1,9 @@ --- -Title: Touch Screen on Steroids +Title: "Touch Screen on Steroids" Author: Sami Samhuri -Date: 8th February, 2006 +Date: "8th February, 2006" Timestamp: 2006-02-08T06:06:00-08:00 -Tags: technology, touch +Tags: [technology, touch] --- If you thought the PowerBook's two-finger scrolling was cool check out this touch screen: diff --git a/posts/2006/02/urban-extreme-gymnastics.md b/posts/2006/02/urban-extreme-gymnastics.md index fd09b10..6bc4803 100644 --- a/posts/2006/02/urban-extreme-gymnastics.md +++ b/posts/2006/02/urban-extreme-gymnastics.md @@ -1,9 +1,9 @@ --- -Title: Urban Extreme Gymnastics? +Title: "Urban Extreme Gymnastics?" Author: Sami Samhuri -Date: 15th February, 2006 +Date: "15th February, 2006" Timestamp: 2006-02-15T10:41:00-08:00 -Tags: amusement +Tags: [amusement] --- This crazy russian goes all over the place scaling buildings, doing all sorts of flips, bouncing off the walls literally. He'd be impossible to catch. diff --git a/posts/2006/03/generate-selfdown-in-your-rails-migrations.md b/posts/2006/03/generate-selfdown-in-your-rails-migrations.md index 0fd9e19..a05db58 100644 --- a/posts/2006/03/generate-selfdown-in-your-rails-migrations.md +++ b/posts/2006/03/generate-selfdown-in-your-rails-migrations.md @@ -1,9 +1,9 @@ --- -Title: Generate self.down in your Rails migrations +Title: "Generate self.down in your Rails migrations" Author: Sami Samhuri -Date: 3rd March, 2006 +Date: "3rd March, 2006" Timestamp: 2006-03-03T21:38:00-08:00 -Tags: rails, textmate, migrations, rails, textmate +Tags: [rails, textmate, migrations, rails, textmate] --- Scott wrote a really cool program that will scan `self.up` and then consult db/schema.rb to automatically fill in `self.down` for you. Brilliant! diff --git a/posts/2006/03/i-dont-mind-fairplay-either.md b/posts/2006/03/i-dont-mind-fairplay-either.md index 1493050..ac3a039 100644 --- a/posts/2006/03/i-dont-mind-fairplay-either.md +++ b/posts/2006/03/i-dont-mind-fairplay-either.md @@ -1,9 +1,9 @@ --- -Title: I don't mind FairPlay either +Title: "I don't mind FairPlay either" Author: Sami Samhuri -Date: 3rd March, 2006 +Date: "3rd March, 2006" Timestamp: 2006-03-03T21:56:00-08:00 -Tags: apple, mac os x, life, drm, fairplay, ipod, itunes +Tags: [apple, mac os x, life, drm, fairplay, ipod, itunes] --- I think that Jim is right about Apple's DRM not being all that evil. diff --git a/posts/2006/03/spore.md b/posts/2006/03/spore.md index 770ffbc..8409f75 100644 --- a/posts/2006/03/spore.md +++ b/posts/2006/03/spore.md @@ -1,9 +1,9 @@ --- -Title: Spore +Title: "Spore" Author: Sami Samhuri -Date: 3rd March, 2006 +Date: "3rd March, 2006" Timestamp: 2006-03-03T21:43:00-08:00 -Tags: amusement, technology, cool, fun, games +Tags: [amusement, technology, cool, fun, games] --- This game that Jim blogged about is probably the coolest game I've seen. diff --git a/posts/2006/04/zsh-terminal-goodness-on-os-x.md b/posts/2006/04/zsh-terminal-goodness-on-os-x.md index 93cda1d..d6924c6 100644 --- a/posts/2006/04/zsh-terminal-goodness-on-os-x.md +++ b/posts/2006/04/zsh-terminal-goodness-on-os-x.md @@ -1,9 +1,9 @@ --- -Title: zsh terminal goodness on OS X +Title: "zsh terminal goodness on OS X" Author: Sami Samhuri -Date: 4th April, 2006 +Date: "4th April, 2006" Timestamp: 2006-04-04T14:57:00-07:00 -Tags: mac os x, apple, osx, terminal, zsh +Tags: [mac os x, apple, osx, terminal, zsh] --- Apple released the OS X 10.4.6 update which fixed a really annoying bug for me. Terminal (and iTerm) would fail to open a new window/tab when your shell is zsh. iTerm would just open then immediately close the window, while Terminal would display the message: [Command completed] in a now-useless window. diff --git a/posts/2006/05/os-x-and-fitts-law.md b/posts/2006/05/os-x-and-fitts-law.md index ec1b553..25e06bf 100644 --- a/posts/2006/05/os-x-and-fitts-law.md +++ b/posts/2006/05/os-x-and-fitts-law.md @@ -1,9 +1,9 @@ --- -Title: OS X and Fitt's law +Title: "OS X and Fitt's law" Author: Sami Samhuri -Date: 7th May, 2006 +Date: "7th May, 2006" Timestamp: 2006-05-07T20:43:00-07:00 -Tags: mac os x, apple, mac, os, usability, x +Tags: [mac os x, apple, mac, os, usability, x] --- I've realized that OS X really does obey Fitt's law in all 4 corners now. Apple menu in the top left, Spotlight top right, and the bottom 2 are always accessible for drag n drop, unless the dock is hidden. I rarely ever use it because I usually have pretty good chunks of the desktop showing, but it is useful. diff --git a/posts/2006/05/wikipediafs-on-linux-in-python.md b/posts/2006/05/wikipediafs-on-linux-in-python.md index 97c2ccf..db92aba 100644 --- a/posts/2006/05/wikipediafs-on-linux-in-python.md +++ b/posts/2006/05/wikipediafs-on-linux-in-python.md @@ -1,9 +1,9 @@ --- -Title: WikipediaFS on Linux, in Python +Title: "WikipediaFS on Linux, in Python" Author: Sami Samhuri -Date: 7th May, 2006 +Date: "7th May, 2006" Timestamp: 2006-05-07T20:49:00-07:00 -Tags: hacking, python, linux, fuse, linux, mediawiki, python, wikipediafs +Tags: [hacking, python, linux, fuse, linux, mediawiki, python, wikipediafs] --- Until now I've been using my own version of pywikipedia for scripting MediaWiki, and it works well. But I read about WikipediaFS and had to check it out. It's a user space filesystem for Linux that's built using the Python bindings for FUSE. What it does is mounts a filesystem that represents your wiki, with articles as text files. You can use them just like any other files with mv, cp, ls, vim, and so on. diff --git a/posts/2006/06/apple-pays-attention-to-detail.md b/posts/2006/06/apple-pays-attention-to-detail.md index 59aebbe..2f3974a 100644 --- a/posts/2006/06/apple-pays-attention-to-detail.md +++ b/posts/2006/06/apple-pays-attention-to-detail.md @@ -1,9 +1,9 @@ --- -Title: Apple pays attention to detail +Title: "Apple pays attention to detail" Author: Sami Samhuri -Date: 11th June, 2006 +Date: "11th June, 2006" Timestamp: 2006-06-11T01:30:00-07:00 -Tags: technology, mac os x, apple +Tags: [technology, mac os x, apple] --- I think this has to be one of the big reasons why people who love their Mac, love their Mac (or other Apple product). I usually just have cheap PC speakers plugged into my Mac mini, but I didn't bring any with me to Munich and the internal Mac mini speaker isn't very loud, so I'm using headphones to watch movies. My Mac remembers the volume setting when the headphones ore plugged in, and when they're not, so I don't accidentally blow my ears. It's like my iPod pausing when the headphones are unplugged. It's excruciating attention to the smallest, (seemingly) most unimportant detail. I love it, and I'm hooked. diff --git a/posts/2006/06/ich-bin-auslnder-und-spreche-nicht-gut-deutsch.md b/posts/2006/06/ich-bin-auslnder-und-spreche-nicht-gut-deutsch.md index 3736759..22a410a 100644 --- a/posts/2006/06/ich-bin-auslnder-und-spreche-nicht-gut-deutsch.md +++ b/posts/2006/06/ich-bin-auslnder-und-spreche-nicht-gut-deutsch.md @@ -1,9 +1,9 @@ --- -Title: Ich bin Ausländer und spreche nicht gut Deutsch +Title: "Ich bin Ausländer und spreche nicht gut Deutsch" Author: Sami Samhuri -Date: 5th June, 2006 +Date: "5th June, 2006" Timestamp: 2006-06-05T10:11:00-07:00 -Tags: life, munich, seekport, work +Tags: [life, munich, seekport, work] --- How's this for an update: I'm working in Munich for the summer at a European search engine called Seekport. The search engine isn't all they do, as right now I'm programming a desktop widget that shows live scores & news from World Cup matches (in English and Arabic). I'm building it on top of the Yahoo! Widget Engine because it needs to run on Windows. Even though I quite like the Y! Engine, I would still prefer to be coding in straight HTML, CSS & JavaScript like Dashboard programmers get to use. The Y! Engine uses XML (it is somewhat HTML-like) and JavaScript. diff --git a/posts/2006/06/never-buy-a-german-keyboard.md b/posts/2006/06/never-buy-a-german-keyboard.md index de487e8..89833d4 100644 --- a/posts/2006/06/never-buy-a-german-keyboard.md +++ b/posts/2006/06/never-buy-a-german-keyboard.md @@ -1,9 +1,9 @@ --- -Title: Never buy a German keyboard! +Title: "Never buy a German keyboard!" Author: Sami Samhuri -Date: 9th June, 2006 +Date: "9th June, 2006" Timestamp: 2006-06-09T01:17:00-07:00 -Tags: apple, apple, german, keyboard +Tags: [apple, apple, german, keyboard] --- Nothing personal, but the backtick/tilde is located where the rest of the left shift key should be, and the return key is double-height, forcing the backslash/bar to the right of the dash/underscore (that'd be the apostrophe/double quote for pretty much everyone else who types qwerty). Note that I'm talking about using a German keyboard with an English layout. The German layout is flat out impossible for coding. diff --git a/posts/2006/06/theres-nothing-regular-about-regular-expressions.md b/posts/2006/06/theres-nothing-regular-about-regular-expressions.md index ca9cd48..abdda98 100644 --- a/posts/2006/06/theres-nothing-regular-about-regular-expressions.md +++ b/posts/2006/06/theres-nothing-regular-about-regular-expressions.md @@ -1,9 +1,9 @@ --- -Title: There's nothing regular about regular expressions +Title: "There's nothing regular about regular expressions" Author: Sami Samhuri -Date: 10th June, 2006 +Date: "10th June, 2006" Timestamp: 2006-06-10T01:28:00-07:00 -Tags: technology, book, regex +Tags: [technology, book, regex] --- I'm almost half way reading Jeffrey Friedl's book Mastering Regular Expressions and I have to say that for a book on something that could potentially bore you to tears, he really does an excellent job of keeping it interesting. Even though a lot of the examples are contrived (I'm sure out of necessity), he also uses real examples of regexes that he's actually used at Yahoo!. diff --git a/posts/2006/07/class-method-instance-method-it-doesnt-matter-to-php.md b/posts/2006/07/class-method-instance-method-it-doesnt-matter-to-php.md index 3bb1516..542ee3b 100644 --- a/posts/2006/07/class-method-instance-method-it-doesnt-matter-to-php.md +++ b/posts/2006/07/class-method-instance-method-it-doesnt-matter-to-php.md @@ -1,9 +1,9 @@ --- -Title: Class method? Instance method? It doesn't matter to PHP +Title: "Class method? Instance method? It doesn't matter to PHP" Author: Sami Samhuri -Date: 21st July, 2006 +Date: "21st July, 2006" Timestamp: 2006-07-21T07:56:00-07:00 -Tags: php, coding +Tags: [php, coding] --- *Update: This has been discussed for PHP6. A little late, but I guess better than never.* diff --git a/posts/2006/07/late-static-binding.md b/posts/2006/07/late-static-binding.md index 6d673b5..f1fb0ca 100644 --- a/posts/2006/07/late-static-binding.md +++ b/posts/2006/07/late-static-binding.md @@ -1,9 +1,9 @@ --- -Title: Late static binding +Title: "Late static binding" Author: Sami Samhuri -Date: 19th July, 2006 +Date: "19th July, 2006" Timestamp: 2006-07-19T10:23:00-07:00 -Tags: php, coding, coding, php +Tags: [php, coding, coding, php] --- *Update: This has been discussed and will be uh, sort of fixed, in PHP6. You'll be able to use static::my_method() to get the real reference to self in class methods. Not optimal, but still a solution I guess.* diff --git a/posts/2006/07/ruby-and-rails-have-spoiled-me-rotten.md b/posts/2006/07/ruby-and-rails-have-spoiled-me-rotten.md index e27f1dc..2d32f4e 100644 --- a/posts/2006/07/ruby-and-rails-have-spoiled-me-rotten.md +++ b/posts/2006/07/ruby-and-rails-have-spoiled-me-rotten.md @@ -1,9 +1,9 @@ --- -Title: Ruby and Rails have spoiled me rotten +Title: "Ruby and Rails have spoiled me rotten" Author: Sami Samhuri -Date: 17th July, 2006 +Date: "17th July, 2006" Timestamp: 2006-07-17T05:40:00-07:00 -Tags: rails, ruby, php, coding, framework, php, rails, ruby, zend +Tags: [rails, ruby, php, coding, framework, php, rails, ruby, zend] --- It's true. I'm sitting here coding in PHP using the Zend Framework and all I can think about is how much nicer Rails is, or how much easier it is to do [x] in Ruby. It's not that the Zend Framework is bad or anything, it's quite nice, but you just can't match Ruby's expressiveness in a language like PHP. Add the amazing convenience Rails builds on top of Ruby and that's a really hard combo to compete with. diff --git a/posts/2006/07/ubuntu-linux-for-linux-users-please.md b/posts/2006/07/ubuntu-linux-for-linux-users-please.md index 9c100d4..98a9d20 100644 --- a/posts/2006/07/ubuntu-linux-for-linux-users-please.md +++ b/posts/2006/07/ubuntu-linux-for-linux-users-please.md @@ -1,9 +1,9 @@ --- -Title: Ubuntu: Linux for Linux users please +Title: "Ubuntu: Linux for Linux users please" Author: Sami Samhuri -Date: 13th July, 2006 +Date: "13th July, 2006" Timestamp: 2006-07-13T08:34:00-07:00 -Tags: linux, linux, ubuntu +Tags: [linux, linux, ubuntu] --- Ubuntu is a fine Linux distro, which is why it's popular. I still use Gentoo on my servers but Ubuntu is fast to set up for a desktop. Linux for humans it certainly is, but dammit sometimes I want Linux like I'm used to. diff --git a/posts/2006/07/working-with-the-zend-framework.md b/posts/2006/07/working-with-the-zend-framework.md index 188ae38..1d10293 100644 --- a/posts/2006/07/working-with-the-zend-framework.md +++ b/posts/2006/07/working-with-the-zend-framework.md @@ -1,9 +1,9 @@ --- -Title: Working with the Zend Framework +Title: "Working with the Zend Framework" Author: Sami Samhuri -Date: 6th July, 2006 +Date: "6th July, 2006" Timestamp: 2006-07-06T07:36:00-07:00 -Tags: coding, technology, php, framework, php, seekport, zend +Tags: [coding, technology, php, framework, php, seekport, zend] --- At [Seekport](http://translate.google.ca/translate?hl=en&sl=de&u=http://de.wikipedia.org/wiki/Seekport&prev=/search%3Fq%3Dseekport%26client%3Dsafari%26rls%3Den) I'm currently working on an app to handle diff --git a/posts/2006/08/where-are-my-headphones.md b/posts/2006/08/where-are-my-headphones.md index a7edd27..0cac989 100644 --- a/posts/2006/08/where-are-my-headphones.md +++ b/posts/2006/08/where-are-my-headphones.md @@ -1,9 +1,9 @@ --- -Title: Where are my headphones? +Title: "Where are my headphones?" Author: Sami Samhuri -Date: 22nd August, 2006 +Date: "22nd August, 2006" Timestamp: 2006-08-22T07:31:00-07:00 -Tags: life, seekport +Tags: [life, seekport] --- Some people left Seekport this month and 2 of the remaining employees moved into the office I’m working in. That’s fine, and I’m leaving at the end of the week, but man I’m going crazy. This guy’s pounding on his keyboard like it’s a fucking whack-a-mole game! I don’t know what kind of keyboard he learned to type on but it must’ve been horrible. It sounds like he must go through at least 10 of those things in a year. I don’t know if I’ll make it until Friday without yelling "AGH! STOP THE MADNESS YOU CRAZY BASTARD YOU JUST HAVE TO TOUCH THE KEYS!" diff --git a/posts/2006/09/buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo.md b/posts/2006/09/buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo.md index eb178ab..b41b57b 100644 --- a/posts/2006/09/buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo.md +++ b/posts/2006/09/buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo.md @@ -1,9 +1,9 @@ --- -Title: Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo +Title: "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo" Author: Sami Samhuri -Date: 16th September, 2006 +Date: "16th September, 2006" Timestamp: 2006-09-16T22:11:00-07:00 -Tags: amusement, buffalo +Tags: [amusement, buffalo] Link: http://en.wikipedia.org/wiki/Buffalo_buffalo_buffalo_buffalo_buffalo_buffalo_buffalo_buffalo --- diff --git a/posts/2006/09/some-features-you-might-have-missed-in-itunes-7.md b/posts/2006/09/some-features-you-might-have-missed-in-itunes-7.md index acf1ae4..b0505f4 100644 --- a/posts/2006/09/some-features-you-might-have-missed-in-itunes-7.md +++ b/posts/2006/09/some-features-you-might-have-missed-in-itunes-7.md @@ -1,9 +1,9 @@ --- -Title: Some features you might have missed in iTunes 7 +Title: "Some features you might have missed in iTunes 7" Author: Sami Samhuri -Date: 22nd September, 2006 +Date: "22nd September, 2006" Timestamp: 2006-09-22T16:59:00-07:00 -Tags: apple, apple, itunes +Tags: [apple, apple, itunes] --- Besides the big changes in iTunes 7 there have been some minor changes that are still pretty useful. diff --git a/posts/2006/12/coping-with-windows-xp-activiation-on-a-mac.md b/posts/2006/12/coping-with-windows-xp-activiation-on-a-mac.md index 65dd185..281e6ba 100644 --- a/posts/2006/12/coping-with-windows-xp-activiation-on-a-mac.md +++ b/posts/2006/12/coping-with-windows-xp-activiation-on-a-mac.md @@ -1,9 +1,9 @@ --- -Title: Coping with Windows XP activiation on a Mac +Title: "Coping with Windows XP activiation on a Mac" Author: Sami Samhuri -Date: 17th December, 2006 +Date: "17th December, 2006" Timestamp: 2006-12-17T23:30:00-08:00 -Tags: parallels, windows, apple, mac os x, bootcamp +Tags: [parallels, windows, apple, mac os x, bootcamp] --- **Update:** This needs to be run at system startup, before you log in. I have XP Home and haven't been able to get it to run that way yet. diff --git a/posts/2007/03/digg-v4-reply-to-replies-greasemonkey-script.md b/posts/2007/03/digg-v4-reply-to-replies-greasemonkey-script.md index 283862a..c382b06 100644 --- a/posts/2007/03/digg-v4-reply-to-replies-greasemonkey-script.md +++ b/posts/2007/03/digg-v4-reply-to-replies-greasemonkey-script.md @@ -1,9 +1,9 @@ --- -Title: Digg v4: Reply to replies (Greasemonkey script) +Title: "Digg v4: Reply to replies (Greasemonkey script)" Author: Sami Samhuri -Date: 8th March, 2007 +Date: "8th March, 2007" Timestamp: 2007-03-08T23:19:00-08:00 -Tags: coding, digg, firefox, userscript +Tags: [coding, digg, firefox, userscript] --- It's nearly identical to the previous one but works with Digg v4 and should be slightly more efficient. I'm working on making it faster because I believe it is quite inefficient as it is. It was David Bendit's (the original author) first script though so kudos to him for starting this thing because I love it. I just hate a slow greasemonkey script on pages with hundreds of comments. diff --git a/posts/2007/03/diggscuss-0_9.md b/posts/2007/03/diggscuss-0_9.md index 884b769..c3a62c0 100644 --- a/posts/2007/03/diggscuss-0_9.md +++ b/posts/2007/03/diggscuss-0_9.md @@ -1,9 +1,9 @@ --- -Title: Diggscuss 0.9 +Title: "Diggscuss 0.9" Author: Sami Samhuri -Date: 25th March, 2007 +Date: "25th March, 2007" Timestamp: 2007-03-25T08:03:00-07:00 -Tags: coding, digg, firefox, userscript +Tags: [coding, digg, firefox, userscript] --- The biggest change is that it uses XPath for the dirty work, which makes it quite a bit more readable. It's 100 lines longer than the previous version, but it does twice as much. diff --git a/posts/2007/03/full-screen-cover-flow.md b/posts/2007/03/full-screen-cover-flow.md index 41fa62e..8170f1b 100644 --- a/posts/2007/03/full-screen-cover-flow.md +++ b/posts/2007/03/full-screen-cover-flow.md @@ -1,9 +1,9 @@ --- -Title: Full-screen Cover Flow +Title: "Full-screen Cover Flow" Author: Sami Samhuri -Date: 6th March, 2007 +Date: "6th March, 2007" Timestamp: 2007-03-06T13:51:00-08:00 -Tags: apple, coverflow, itunes +Tags: [apple, coverflow, itunes] --- Cover Flow now comes in a full-screen flavour. It's pretty sweet, but unfortunately the remote controls iTunes exactly the same so you need a mouse to flick through the covers. diff --git a/posts/2007/04/a-triple-booting-schizophrenic-macbook.md b/posts/2007/04/a-triple-booting-schizophrenic-macbook.md index c07629a..b20b341 100644 --- a/posts/2007/04/a-triple-booting-schizophrenic-macbook.md +++ b/posts/2007/04/a-triple-booting-schizophrenic-macbook.md @@ -1,9 +1,9 @@ --- -Title: A triple-booting, schizophrenic MacBook +Title: "A triple-booting, schizophrenic MacBook" Author: Sami Samhuri -Date: 4th April, 2007 +Date: "4th April, 2007" Timestamp: 2007-04-04T23:30:00-07:00 -Tags: linux, mac os x, windows +Tags: [linux, mac os x, windows] --- The steps are well documented so I won’t get into detail here but if you have a backup and can wipe your disk all you do is: diff --git a/posts/2007/04/activerecord-base_find_or_create-and-find_or_initialize.md b/posts/2007/04/activerecord-base_find_or_create-and-find_or_initialize.md index 17f86c2..1f095ac 100644 --- a/posts/2007/04/activerecord-base_find_or_create-and-find_or_initialize.md +++ b/posts/2007/04/activerecord-base_find_or_create-and-find_or_initialize.md @@ -1,9 +1,9 @@ --- -Title: ActiveRecord::Base.find_or_create and find_or_initialize +Title: "ActiveRecord::Base.find_or_create and find_or_initialize" Author: Sami Samhuri -Date: 11th April, 2007 +Date: "11th April, 2007" Timestamp: 2007-04-11T03:24:00-07:00 -Tags: activerecord, coding, rails, ruby +Tags: [activerecord, coding, rails, ruby] --- I've extended ActiveRecord with `find_or_create(params)` and `find_or_initialize(params)`. Those are actually just wrappers around `find_or_do(action, params)` which does the heavy lifting. diff --git a/posts/2007/04/funny-how-code-can-be-beautiful.md b/posts/2007/04/funny-how-code-can-be-beautiful.md index 731846d..816b774 100644 --- a/posts/2007/04/funny-how-code-can-be-beautiful.md +++ b/posts/2007/04/funny-how-code-can-be-beautiful.md @@ -1,9 +1,9 @@ --- -Title: Funny how code can be beautiful +Title: "Funny how code can be beautiful" Author: Sami Samhuri -Date: 30th April, 2007 +Date: "30th April, 2007" Timestamp: 2007-04-30T07:07:00-07:00 -Tags: haskell +Tags: [haskell] --- While reading a Haskell tutorial I came across the following code for defining the Fibonacci numbers: diff --git a/posts/2007/04/getting-to-know-vista.md b/posts/2007/04/getting-to-know-vista.md index c41f491..8213923 100644 --- a/posts/2007/04/getting-to-know-vista.md +++ b/posts/2007/04/getting-to-know-vista.md @@ -1,9 +1,9 @@ --- -Title: Getting to know Vista +Title: "Getting to know Vista" Author: Sami Samhuri -Date: 16th April, 2007 +Date: "16th April, 2007" Timestamp: 2007-04-16T11:09:00-07:00 -Tags: windows +Tags: [windows] --- ### It looks pretty good! ### diff --git a/posts/2007/04/quickly-inserting-millions-of-rows-with-mysql-innodb.md b/posts/2007/04/quickly-inserting-millions-of-rows-with-mysql-innodb.md index 2c0f4fe..74b88d7 100644 --- a/posts/2007/04/quickly-inserting-millions-of-rows-with-mysql-innodb.md +++ b/posts/2007/04/quickly-inserting-millions-of-rows-with-mysql-innodb.md @@ -1,9 +1,9 @@ --- -Title: Quickly inserting millions of rows with MySQL/InnoDB +Title: "Quickly inserting millions of rows with MySQL/InnoDB" Author: Sami Samhuri -Date: 26th April, 2007 +Date: "26th April, 2007" Timestamp: 2007-04-26T07:06:00-07:00 -Tags: linux, mysql +Tags: [linux, mysql] --- The absolute first thing you should do is check your MySQL configuration to make sure it’s sane for the system you’re using. I kept getting a ‘The table is too large’ error on my Gentoo box after inserting several million rows because the default config limits the InnoDB tablespace size to 128M. It was also tuned for a box with as little as 64M of RAM. That’s cool for a small VPS or your old Pentium in the corner collecting dust. For a modern server, workstation, or even notebook with gigs of RAM you’ll likely want to make some changes. diff --git a/posts/2007/05/a-new-way-to-look-at-networking.md b/posts/2007/05/a-new-way-to-look-at-networking.md index a927692..d8fbc68 100644 --- a/posts/2007/05/a-new-way-to-look-at-networking.md +++ b/posts/2007/05/a-new-way-to-look-at-networking.md @@ -1,9 +1,9 @@ --- -Title: A New Way to Look at Networking +Title: "A New Way to Look at Networking" Author: Sami Samhuri -Date: 5th May, 2007 +Date: "5th May, 2007" Timestamp: 2007-05-05T16:10:00-07:00 -Tags: technology, networking +Tags: [technology, networking] --- Van Jacobson gave a Google Tech Talk on some of his ideas of how a modern, global network could work more effectively, and with more trust in the data which changes many hands on its journey to its final destination. diff --git a/posts/2007/05/a-scheme-parser-in-haskell-part-1.md b/posts/2007/05/a-scheme-parser-in-haskell-part-1.md index 576eebe..2d02723 100644 --- a/posts/2007/05/a-scheme-parser-in-haskell-part-1.md +++ b/posts/2007/05/a-scheme-parser-in-haskell-part-1.md @@ -1,9 +1,9 @@ --- -Title: A Scheme parser in Haskell: Part 1 +Title: "A Scheme parser in Haskell: Part 1" Author: Sami Samhuri -Date: 3rd May, 2007 +Date: "3rd May, 2007" Timestamp: 2007-05-03T00:47:50-07:00 -Tags: coding, haskell +Tags: [coding, haskell] --- From Write Yourself a Scheme in 48 hours: diff --git a/posts/2007/05/cheating-at-life-in-general.md b/posts/2007/05/cheating-at-life-in-general.md index 28a3a9e..ae8a142 100644 --- a/posts/2007/05/cheating-at-life-in-general.md +++ b/posts/2007/05/cheating-at-life-in-general.md @@ -1,9 +1,9 @@ --- -Title: Cheating at Life in General +Title: "Cheating at Life in General" Author: Sami Samhuri -Date: 16th May, 2007 +Date: "16th May, 2007" Timestamp: 2007-05-16T02:46:00-07:00 -Tags: cheat, vim, emacs, textmate +Tags: [cheat, vim, emacs, textmate] --- *NB: My definition of life is slightly skewed by my being somewhat of a geek* diff --git a/posts/2007/05/dtrace-ruby-goodness-for-sun.md b/posts/2007/05/dtrace-ruby-goodness-for-sun.md index b6c4204..95ce7b0 100644 --- a/posts/2007/05/dtrace-ruby-goodness-for-sun.md +++ b/posts/2007/05/dtrace-ruby-goodness-for-sun.md @@ -1,9 +1,9 @@ --- -Title: dtrace + Ruby = Goodness for Sun +Title: "dtrace + Ruby = Goodness for Sun" Author: Sami Samhuri -Date: 9th May, 2007 +Date: "9th May, 2007" Timestamp: 2007-05-09T08:45:00-07:00 -Tags: ruby, dtrace, sun +Tags: [ruby, dtrace, sun] --- Suddenly I feel the urge to try out Solaris for i386 again. Last time I gave it a shot was when it was first released, and all I ever got out of the CD was a white screen. It's been 2-3 years since then and it should be well-tested. I'll try to install it into a VM first using the ISO and potentially save myself a CD. (I don't even think I have blank CDs lying around anymore, only DVDs.) diff --git a/posts/2007/05/dumping-objects-to-the-browser-in-rails.md b/posts/2007/05/dumping-objects-to-the-browser-in-rails.md index 13f7b4f..db5454a 100644 --- a/posts/2007/05/dumping-objects-to-the-browser-in-rails.md +++ b/posts/2007/05/dumping-objects-to-the-browser-in-rails.md @@ -1,9 +1,9 @@ --- -Title: Dumping Objects to the Browser in Rails +Title: "Dumping Objects to the Browser in Rails" Author: Sami Samhuri -Date: 15th May, 2007 +Date: "15th May, 2007" Timestamp: 2007-05-15T13:38:00-07:00 -Tags: rails +Tags: [rails] Styles: typocode.css --- diff --git a/posts/2007/05/enumerable-pluck-and-string-to_proc-for-ruby.md b/posts/2007/05/enumerable-pluck-and-string-to_proc-for-ruby.md index 37598bc..d85a6b7 100644 --- a/posts/2007/05/enumerable-pluck-and-string-to_proc-for-ruby.md +++ b/posts/2007/05/enumerable-pluck-and-string-to_proc-for-ruby.md @@ -1,9 +1,9 @@ --- -Title: Enumurable#pluck and String#to_proc for Ruby +Title: "Enumurable#pluck and String#to_proc for Ruby" Author: Sami Samhuri -Date: 10th May, 2007 +Date: "10th May, 2007" Timestamp: 2007-05-10T16:14:00-07:00 -Tags: ruby, extensions +Tags: [ruby, extensions] Styles: typocode.css --- diff --git a/posts/2007/05/finnish-court-rules-css-ineffective-at-protecting-dvds.md b/posts/2007/05/finnish-court-rules-css-ineffective-at-protecting-dvds.md index 4147df7..d2ab1b9 100644 --- a/posts/2007/05/finnish-court-rules-css-ineffective-at-protecting-dvds.md +++ b/posts/2007/05/finnish-court-rules-css-ineffective-at-protecting-dvds.md @@ -1,9 +1,9 @@ --- -Title: Finnish court rules CSS ineffective at protecting DVDs +Title: "Finnish court rules CSS ineffective at protecting DVDs" Author: Sami Samhuri -Date: 26th May, 2007 +Date: "26th May, 2007" Timestamp: 2007-05-26T03:24:00-07:00 -Tags: drm +Tags: [drm] --- It's nice to see people making sane calls on issues like this. Ars has a nice summary and there's also a press release. diff --git a/posts/2007/05/gotta-love-the-ferry-ride.md b/posts/2007/05/gotta-love-the-ferry-ride.md index a934ddd..ff90f35 100644 --- a/posts/2007/05/gotta-love-the-ferry-ride.md +++ b/posts/2007/05/gotta-love-the-ferry-ride.md @@ -1,9 +1,9 @@ --- -Title: Gotta Love the Ferry Ride +Title: "Gotta Love the Ferry Ride" Author: Sami Samhuri -Date: 5th May, 2007 +Date: "5th May, 2007" Timestamp: 2007-05-05T04:25:00-07:00 -Tags: life, photo, bc, victoria +Tags: [life, photo, bc, victoria] --- I lived in Victoria for over a year before I ever rode the ferry between Vancouver Island and Tsawwassen (ignoring the time I was in BC with my family about 16 years ago, that is). I always just flew in and out of Victoria directly. The ferry is awesome and the view is incredible, navigating through all those little islands. Last time I rode the ferry I snapped this shot. It's possibly the best picture I've taken on that trip. diff --git a/posts/2007/05/i-cant-wait-to-see-what-matt-stone-trey-parker-do-with-this.md b/posts/2007/05/i-cant-wait-to-see-what-matt-stone-trey-parker-do-with-this.md index beea637..eb5cb90 100644 --- a/posts/2007/05/i-cant-wait-to-see-what-matt-stone-trey-parker-do-with-this.md +++ b/posts/2007/05/i-cant-wait-to-see-what-matt-stone-trey-parker-do-with-this.md @@ -1,9 +1,9 @@ --- -Title: I Can't Wait to See What Trey Parker & Matt Stone Do With This +Title: "I Can't Wait to See What Trey Parker & Matt Stone Do With This" Author: Sami Samhuri -Date: 9th May, 2007 +Date: "9th May, 2007" Timestamp: 2007-05-09T14:34:00-07:00 -Tags: crazy +Tags: [crazy] --- I'd just like to say, bwa ha ha ha! diff --git a/posts/2007/05/inspirado.md b/posts/2007/05/inspirado.md index dc78cde..0161ae2 100644 --- a/posts/2007/05/inspirado.md +++ b/posts/2007/05/inspirado.md @@ -1,9 +1,9 @@ --- -Title: Inspirado +Title: "Inspirado" Author: Sami Samhuri -Date: 22nd May, 2007 +Date: "22nd May, 2007" Timestamp: 2007-05-22T13:23:00-07:00 -Tags: rails, inspirado +Tags: [rails, inspirado] --- spyderous is a Gentoo dev and I read his posts via the Gentoo planet (and again on the freedesktop.org planet). diff --git a/posts/2007/05/iphone-humour.md b/posts/2007/05/iphone-humour.md index 3aa8c4c..1775e6d 100644 --- a/posts/2007/05/iphone-humour.md +++ b/posts/2007/05/iphone-humour.md @@ -1,9 +1,9 @@ --- -Title: iPhone Humour +Title: "iPhone Humour" Author: Sami Samhuri -Date: 18th May, 2007 +Date: "18th May, 2007" Timestamp: 2007-05-18T11:34:00-07:00 -Tags: apple, funny, iphone +Tags: [apple, funny, iphone] --- Love it or hate it - even though it's not even out yet - the iPhone has spawned at least 2 good jokes. diff --git a/posts/2007/05/rails-plugins-link-dump.md b/posts/2007/05/rails-plugins-link-dump.md index 93d249d..6ad0e5d 100644 --- a/posts/2007/05/rails-plugins-link-dump.md +++ b/posts/2007/05/rails-plugins-link-dump.md @@ -1,9 +1,9 @@ --- -Title: Rails Plugins (link dump) +Title: "Rails Plugins (link dump)" Author: Sami Samhuri -Date: 10th May, 2007 +Date: "10th May, 2007" Timestamp: 2007-05-09T17:22:00-07:00 -Tags: rails +Tags: [rails] --- Some Rails plugins I find useful: diff --git a/posts/2007/05/typo-and-i-are-friends-again.md b/posts/2007/05/typo-and-i-are-friends-again.md index aa18b76..d9bf7bb 100644 --- a/posts/2007/05/typo-and-i-are-friends-again.md +++ b/posts/2007/05/typo-and-i-are-friends-again.md @@ -1,9 +1,9 @@ --- -Title: Typo and I are friends again +Title: "Typo and I are friends again" Author: Sami Samhuri -Date: 1st May, 2007 +Date: "1st May, 2007" Timestamp: 2007-05-01T21:51:37-07:00 -Tags: typo +Tags: [typo] ---

I've been really frustrated with Typo recently. For some reason changing my last post would cause MySQL to timeout and I'd have to kill the rogue ruby process manually before any other changes to the DB would work, instead of hanging for a minute or two then timing out. Luckily I was able to disable the post using the command line client, the bug only manifested itself when issuing an UPDATE with all the fields present. Presumably the body was tripping things up because most other fields are simple booleans, numbers, or very short strings. diff --git a/posts/2007/06/301-moved-permanently.md b/posts/2007/06/301-moved-permanently.md index 25516da..5b4c871 100644 --- a/posts/2007/06/301-moved-permanently.md +++ b/posts/2007/06/301-moved-permanently.md @@ -1,9 +1,9 @@ --- -Title: 301 moved permanently +Title: "301 moved permanently" Author: Sami Samhuri -Date: 8th June, 2007 +Date: "8th June, 2007" Timestamp: 2007-06-08T18:00:00-07:00 -Tags: life +Tags: [life] --- Last weekend I moved out of the apartment I lived in for the last 3 1/2 years. Moving was a cinch thanks to a friend's garage, conveniently placed smack between my old place and the new one. Google maps tells me that I moved just under 3.4 km, which is 2.1 mi for the metric impaired, so it wasn't much of a move at all! My roommate and I live in the basement of a house split into 3 apartments. Our upstairs neighbours are friendly and seem pretty cool, except one lady upstairs seems a bit strange. It's a great place though and in the winter the wood stove fireplace is going to be awesome. diff --git a/posts/2007/06/back-on-gentoo-trying-new-things.md b/posts/2007/06/back-on-gentoo-trying-new-things.md index 150e076..29d87f3 100644 --- a/posts/2007/06/back-on-gentoo-trying-new-things.md +++ b/posts/2007/06/back-on-gentoo-trying-new-things.md @@ -1,9 +1,9 @@ --- -Title: Back on Gentoo, trying new things +Title: "Back on Gentoo, trying new things" Author: Sami Samhuri -Date: 18th June, 2007 +Date: "18th June, 2007" Timestamp: 2007-06-18T18:05:00-07:00 -Tags: emacs, gentoo, linux, vim +Tags: [emacs, gentoo, linux, vim] --- I started using my Gentoo box for development again and there are a few things about Linux I didn't realize I had been missing. diff --git a/posts/2007/06/begging-the-question.md b/posts/2007/06/begging-the-question.md index 3f48a82..304498d 100644 --- a/posts/2007/06/begging-the-question.md +++ b/posts/2007/06/begging-the-question.md @@ -1,9 +1,9 @@ --- -Title: Begging the question +Title: "Begging the question" Author: Sami Samhuri -Date: 15th June, 2007 +Date: "15th June, 2007" Timestamp: 2007-06-15T11:49:00-07:00 -Tags: english, life, pedantry +Tags: [english, life, pedantry] --- I'm currently reading SICP since it's highly recommended by many people, available for free, and interesting. The fact that I have a little Scheme interpreter to play with makes it much more fun since I can add missing functionality to it as I progress through the book, thereby learning more Haskell in the process. Yay! diff --git a/posts/2007/06/controlling-volume-via-the-keyboard-on-linux.md b/posts/2007/06/controlling-volume-via-the-keyboard-on-linux.md index f154e5c..63c5df3 100644 --- a/posts/2007/06/controlling-volume-via-the-keyboard-on-linux.md +++ b/posts/2007/06/controlling-volume-via-the-keyboard-on-linux.md @@ -1,9 +1,9 @@ --- -Title: Controlling volume via the keyboard on Linux +Title: "Controlling volume via the keyboard on Linux" Author: Sami Samhuri -Date: 30th June, 2007 +Date: "30th June, 2007" Timestamp: 2007-06-30T16:13:00-07:00 -Tags: alsa, linux, ruby, volume +Tags: [alsa, linux, ruby, volume] --- I was using Amarok's global keyboard shortcuts to control the volume of my music via the keyboard but I wanted to control the system volume as well. A quick script later and now I can control both, and thanks to libnotify I get some feedback on what happened. It's not as pretty as OS X's volume control or Growl but it'll certainly do. diff --git a/posts/2007/06/emacs-for-textmate-junkies.md b/posts/2007/06/emacs-for-textmate-junkies.md index 5f02137..5c417da 100644 --- a/posts/2007/06/emacs-for-textmate-junkies.md +++ b/posts/2007/06/emacs-for-textmate-junkies.md @@ -1,9 +1,9 @@ --- -Title: Emacs for TextMate junkies +Title: "Emacs for TextMate junkies" Author: Sami Samhuri -Date: 23rd June, 2007 +Date: "23rd June, 2007" Timestamp: 2007-06-22T19:17:00-07:00 -Tags: emacs, textmate +Tags: [emacs, textmate] --- *Update #1: What I first posted will take out your < key by mistake (it's available via `C-q <`), it has since been revised to Do The Right Thing.* diff --git a/posts/2007/06/emacs-tagify-region-or-insert-tag.md b/posts/2007/06/emacs-tagify-region-or-insert-tag.md index 4957412..7b73768 100644 --- a/posts/2007/06/emacs-tagify-region-or-insert-tag.md +++ b/posts/2007/06/emacs-tagify-region-or-insert-tag.md @@ -1,9 +1,9 @@ --- -Title: Emacs: tagify-region-or-insert-tag +Title: "Emacs: tagify-region-or-insert-tag" Author: Sami Samhuri -Date: 25th June, 2007 +Date: "25th June, 2007" Timestamp: 2007-06-25T15:13:00-07:00 -Tags: emacs, tagify +Tags: [emacs, tagify] --- After axing half of wrap-region.el I renamed it to tagify.el and improved it ever so slightly. It's leaner, and does more! diff --git a/posts/2007/06/embrace-the-database.md b/posts/2007/06/embrace-the-database.md index 892113d..14726b4 100644 --- a/posts/2007/06/embrace-the-database.md +++ b/posts/2007/06/embrace-the-database.md @@ -1,9 +1,9 @@ --- -Title: Embrace the database +Title: "Embrace the database" Author: Sami Samhuri -Date: 22nd June, 2007 +Date: "22nd June, 2007" Timestamp: 2007-06-22T03:14:00-07:00 -Tags: activerecord, rails, ruby +Tags: [activerecord, rails, ruby] --- If you drink the Rails koolaid you may have read the notorious single layer of cleverness post by DHH. [5th post on the archive page] In a nutshell he states that it's better to have a single point of cleverness when it comes to business logic. The reasons for this include staying agile, staying in Ruby all the time, and being able to switch the back-end DB at any time. Put the logic in ActiveRecord and use the DB as a dumb data store, that is the Rails way. It's simple. It works. You don't need to be a DBA to be a Rails developer. diff --git a/posts/2007/06/floating-point-in-elschemo.md b/posts/2007/06/floating-point-in-elschemo.md index e599a5b..3ed018d 100644 --- a/posts/2007/06/floating-point-in-elschemo.md +++ b/posts/2007/06/floating-point-in-elschemo.md @@ -1,9 +1,9 @@ --- -Title: Floating point in ElSchemo +Title: "Floating point in ElSchemo" Author: Sami Samhuri -Date: 24th June, 2007 +Date: "24th June, 2007" Timestamp: 2007-06-24T11:53:00-07:00 -Tags: elschemo, haskell, scheme +Tags: [elschemo, haskell, scheme] --- ### Parsing floating point numbers ### diff --git a/posts/2007/06/more-scheming-with-haskell.md b/posts/2007/06/more-scheming-with-haskell.md index aa946d0..248b82b 100644 --- a/posts/2007/06/more-scheming-with-haskell.md +++ b/posts/2007/06/more-scheming-with-haskell.md @@ -1,9 +1,9 @@ --- -Title: More Scheming with Haskell +Title: "More Scheming with Haskell" Author: Sami Samhuri -Date: 14th June, 2007 +Date: "14th June, 2007" Timestamp: 2007-06-13T18:09:00-07:00 -Tags: coding, haskell, scheme +Tags: [coding, haskell, scheme] --- It's been a little while since I wrote about Haskell and the Scheme interpreter I've been using to learn and play with both Haskell and Scheme. I finished the tutorial and got myself a working Scheme interpreter and indeed it has been fun to use it for trying out little things now and then. (Normally I would use Emacs or Dr. Scheme for that sort of thing.) There certainly are interesting things to try floating around da intranet. And also things to read and learn from, such as misp (via Moonbase). diff --git a/posts/2007/06/propaganda-makes-me-sick.md b/posts/2007/06/propaganda-makes-me-sick.md index 7ae47d4..ada65b4 100644 --- a/posts/2007/06/propaganda-makes-me-sick.md +++ b/posts/2007/06/propaganda-makes-me-sick.md @@ -1,9 +1,9 @@ --- -Title: Propaganda makes me sick +Title: "Propaganda makes me sick" Author: Sami Samhuri -Date: 25th June, 2007 +Date: "25th June, 2007" Timestamp: 2007-06-25T03:55:00-07:00 -Tags: propaganda +Tags: [propaganda] --- Things like this in modern times are surprising. Can't people spot this phony crap for what it is? diff --git a/posts/2007/06/recent-ruby-and-rails-regales.md b/posts/2007/06/recent-ruby-and-rails-regales.md index bb05c40..9b03fa2 100644 --- a/posts/2007/06/recent-ruby-and-rails-regales.md +++ b/posts/2007/06/recent-ruby-and-rails-regales.md @@ -1,9 +1,9 @@ --- -Title: Recent Ruby and Rails Regales +Title: "Recent Ruby and Rails Regales" Author: Sami Samhuri -Date: 28th June, 2007 +Date: "28th June, 2007" Timestamp: 2007-06-28T12:23:00-07:00 -Tags: rails, rails on rules, regular expressions, ruby, sake, secure associations, regex +Tags: [rails, rails on rules, regular expressions, ruby, sake, secure associations, regex] --- Some cool Ruby and [the former on] Rails things are springing up and I haven't written much about the two Rs lately, though I work with them daily. diff --git a/posts/2007/06/reinventing-the-wheel.md b/posts/2007/06/reinventing-the-wheel.md index 3d42df3..16bc703 100644 --- a/posts/2007/06/reinventing-the-wheel.md +++ b/posts/2007/06/reinventing-the-wheel.md @@ -1,9 +1,9 @@ --- -Title: Reinventing the wheel +Title: "Reinventing the wheel" Author: Sami Samhuri -Date: 20th June, 2007 +Date: "20th June, 2007" Timestamp: 2007-06-20T09:27:00-07:00 -Tags: emacs, snippets +Tags: [emacs, snippets] --- Emacs is very impressive. I only felt lost and unproductive for minutes and now it seems natural to use and get around in. I've got ElSchemo set as the default scheme, and running inferior processes interactively is an absolute dream. My scheme doesn't have readline support (which bothers me to the point where I've thought about adding it just so I can use the thing) but when running it under Emacs there's absoutely no need for anything like that since I have the power of my editor when interacting with any program. diff --git a/posts/2007/06/rtfm.md b/posts/2007/06/rtfm.md index 34846d9..e299edf 100644 --- a/posts/2007/06/rtfm.md +++ b/posts/2007/06/rtfm.md @@ -1,9 +1,9 @@ --- -Title: RTFM! +Title: "RTFM!" Author: Sami Samhuri -Date: 26th June, 2007 +Date: "26th June, 2007" Timestamp: 2007-06-25T14:19:00-07:00 -Tags: emacs, rtfm +Tags: [emacs, rtfm] --- I should read the Emacs manual sometime, especially since I have it in dead-tree form. Check out skeleton pairs in the Emacs manual, or better yet C-h f skeleton-pair-insert-maybe. skeleton-pair has already been massaged to do what you most likely want if you set the correct options. Cool. I like Emacs more every day. diff --git a/posts/2007/06/so-long-typo-and-thanks-for-all-the-timeouts.md b/posts/2007/06/so-long-typo-and-thanks-for-all-the-timeouts.md index 31af818..08a5559 100644 --- a/posts/2007/06/so-long-typo-and-thanks-for-all-the-timeouts.md +++ b/posts/2007/06/so-long-typo-and-thanks-for-all-the-timeouts.md @@ -1,9 +1,9 @@ --- -Title: so long typo (and thanks for all the timeouts) +Title: "so long typo (and thanks for all the timeouts)" Author: Sami Samhuri -Date: 8th June, 2007 +Date: "8th June, 2007" Timestamp: 2007-06-08T18:01:00-07:00 -Tags: mephisto, typo +Tags: [mephisto, typo] --- Well for just over a year Typo ran the show. I thought I had worked out most of the kinks with Typo and Dreamhost but the latest problem I ran into was pretty major. I couldn't post new articles. If the stars aligned perfectly and I sacrificed baby animals and virgins, every now and then I could get it to work. Ok, all I really had to do was refresh several dozen times, waiting 1 minute for it to timeout every time, but it sucked nonetheless. diff --git a/posts/2007/06/testspec-on-rails-declared-awesome-just-one-catch.md b/posts/2007/06/testspec-on-rails-declared-awesome-just-one-catch.md index e4bae64..f2479d0 100644 --- a/posts/2007/06/testspec-on-rails-declared-awesome-just-one-catch.md +++ b/posts/2007/06/testspec-on-rails-declared-awesome-just-one-catch.md @@ -1,9 +1,9 @@ --- -Title: test/spec on rails declared awesome, just one catch +Title: "test/spec on rails declared awesome, just one catch" Author: Sami Samhuri -Date: 14th June, 2007 +Date: "14th June, 2007" Timestamp: 2007-06-14T07:21:00-07:00 -Tags: bdd, rails, test/spec +Tags: [bdd, rails, test/spec] --- This last week I've been getting to know test/spec via err's test/spec on rails plugin. I have to say that I really dig this method of testing my code and I look forward to trying out some actual BDD in the future. diff --git a/posts/2007/07/a-textmate-tip-for-emacs-users.md b/posts/2007/07/a-textmate-tip-for-emacs-users.md index 2be4215..7ba81c3 100644 --- a/posts/2007/07/a-textmate-tip-for-emacs-users.md +++ b/posts/2007/07/a-textmate-tip-for-emacs-users.md @@ -1,9 +1,9 @@ --- -Title: A TextMate tip for Emacs users +Title: "A TextMate tip for Emacs users" Author: Sami Samhuri -Date: 3rd July, 2007 +Date: "3rd July, 2007" Timestamp: 2007-07-03T09:45:00-07:00 -Tags: emacs, keyboard shortcuts, textmate +Tags: [emacs, keyboard shortcuts, textmate] --- *Update: The only place I've seen this mentioned is in a comment on the MacroMates blog.* diff --git a/posts/2007/07/people.md b/posts/2007/07/people.md index 25a9638..c81f3ee 100644 --- a/posts/2007/07/people.md +++ b/posts/2007/07/people.md @@ -1,9 +1,9 @@ --- -Title: people +Title: "people" Author: Sami Samhuri -Date: 12th July, 2007 +Date: "12th July, 2007" Timestamp: 2007-07-12T05:28:00-07:00 -Tags: life, people +Tags: [life, people] --- Sometimes this is difficult to remember for someone who (likes to think that he) thinks somewhat logically. diff --git a/posts/2007/07/rushcheck-quickcheck-for-ruby.md b/posts/2007/07/rushcheck-quickcheck-for-ruby.md index 7d477dc..e68ae8c 100644 --- a/posts/2007/07/rushcheck-quickcheck-for-ruby.md +++ b/posts/2007/07/rushcheck-quickcheck-for-ruby.md @@ -1,9 +1,9 @@ --- -Title: RushCheck: QuickCheck for Ruby +Title: "RushCheck: QuickCheck for Ruby" Author: Sami Samhuri -Date: 5th July, 2007 +Date: "5th July, 2007" Timestamp: 2007-07-05T12:50:00-07:00 -Tags: quickcheck, ruby, rushcheck +Tags: [quickcheck, ruby, rushcheck] --- I cannot wait to try out RushCheck. It is QuickCheck for Ruby. I don't have experience with QuickCheck or anything but it's clear to see how this helps you make certain your code is robust. diff --git a/posts/2007/07/see-your-regular-expressions-in-emacs.md b/posts/2007/07/see-your-regular-expressions-in-emacs.md index d52b7f2..edbe793 100644 --- a/posts/2007/07/see-your-regular-expressions-in-emacs.md +++ b/posts/2007/07/see-your-regular-expressions-in-emacs.md @@ -1,9 +1,9 @@ --- -Title: See your regular expressions in Emacs +Title: "See your regular expressions in Emacs" Author: Sami Samhuri -Date: 6th July, 2007 +Date: "6th July, 2007" Timestamp: 2007-07-06T09:45:00-07:00 -Tags: emacs, regex +Tags: [emacs, regex] --- First, if you are an Emacs newbie then be sure to read (at least) the introduction of Being Productive with Emacs. For some reason the PDF and HTML versions are slightly similar. diff --git a/posts/2007/08/5-ways-to-avoid-looking-like-a-jerk-on-the-internet.md b/posts/2007/08/5-ways-to-avoid-looking-like-a-jerk-on-the-internet.md index 808f2b6..abefb6e 100644 --- a/posts/2007/08/5-ways-to-avoid-looking-like-a-jerk-on-the-internet.md +++ b/posts/2007/08/5-ways-to-avoid-looking-like-a-jerk-on-the-internet.md @@ -1,9 +1,9 @@ --- -Title: 5 ways to avoid looking like a jerk on the Internet +Title: "5 ways to avoid looking like a jerk on the Internet" Author: Sami Samhuri -Date: 30th August, 2007 +Date: "30th August, 2007" Timestamp: 2007-08-30T08:25:00-07:00 -Tags: life, netiquette +Tags: [life, netiquette] --- Let me begin by stating that these are tips I have gathered by posting in many public forums on the Internet and I have learned most of these rules by making the mistakes myself. I'm not trying to point fingers at anyone or act all holier-than-thou. It's a cold, emotionless medium text is. It can be difficult to accurately convey one's feelings when typing a quick reply somewhere. John Gabriel's theory certainly plays a part as well, but I'll try and assume that you are generally a nice person. I also assume that we are talking about a text medium (IRC, forums, Slashdot/Reddit/Digg). None of that fancy voice or video conferencing stuff! diff --git a/posts/2007/08/captivating-little-creatures.md b/posts/2007/08/captivating-little-creatures.md index 9abb07c..585eca9 100644 --- a/posts/2007/08/captivating-little-creatures.md +++ b/posts/2007/08/captivating-little-creatures.md @@ -1,9 +1,9 @@ --- -Title: Captivating little creatures +Title: "Captivating little creatures" Author: Sami Samhuri -Date: 26th August, 2007 +Date: "26th August, 2007" Timestamp: 2007-08-26T05:35:00-07:00 -Tags: games, lemmings +Tags: [games, lemmings] --- Someone posted this JavaScript implementation of an old gem on Reddit, Lemmings! There goes my Sunday! :) diff --git a/posts/2007/08/catch-compiler-errors-at-runtime.md b/posts/2007/08/catch-compiler-errors-at-runtime.md index 602adfe..93f7a7d 100644 --- a/posts/2007/08/catch-compiler-errors-at-runtime.md +++ b/posts/2007/08/catch-compiler-errors-at-runtime.md @@ -1,9 +1,9 @@ --- -Title: Catch compiler errors at runtime +Title: "Catch compiler errors at runtime" Author: Sami Samhuri -Date: 19th August, 2007 +Date: "19th August, 2007" Timestamp: 2007-08-19T15:17:00-07:00 -Tags: ruby +Tags: [ruby] --- While coding just now I had a small epiphany about Ruby. Though Ruby is highly dynamic and compiled at runtime, that doesn't preclude one catching some mistakes at compile time. I'm not talking about mere syntax errors or anything either. The only proviso to catching mistakes at compile time is that you must have a decent chunk of code executed during compilation. One benefit of Ruby's blurring of compile time and runtime is that you can run real code at compile time. This is largely how metaprogramming tricks are pulled off elegantly and with ease in projects such as Rails. diff --git a/posts/2007/08/cheat-from-emacs.md b/posts/2007/08/cheat-from-emacs.md index c59a1f7..5e4ee75 100644 --- a/posts/2007/08/cheat-from-emacs.md +++ b/posts/2007/08/cheat-from-emacs.md @@ -1,9 +1,9 @@ --- -Title: Cheat from Emacs +Title: "Cheat from Emacs" Author: Sami Samhuri -Date: 9th August, 2007 +Date: "9th August, 2007" Timestamp: 2007-08-09T18:56:00-07:00 -Tags: Emacs +Tags: [Emacs] --- *Update: I had inadvertently used string-join, a function provided by something in my ~/.emacs.d. The script has been updated to work with a vanilla Emacs (23, but should work with 22 as well).* diff --git a/posts/2007/08/cheat-productively-in-emacs.md b/posts/2007/08/cheat-productively-in-emacs.md index 1d1648e..9486829 100644 --- a/posts/2007/08/cheat-productively-in-emacs.md +++ b/posts/2007/08/cheat-productively-in-emacs.md @@ -1,9 +1,9 @@ --- -Title: Cheat productively in Emacs +Title: "Cheat productively in Emacs" Author: Sami Samhuri -Date: 21st August, 2007 +Date: "21st August, 2007" Timestamp: 2007-08-21T11:20:00-07:00 -Tags: Emacs +Tags: [Emacs] --- By now you may have heard about cheat, the command line cheat sheet collection that's completely open to editing, wiki style. A couple of weeks ago I posted cheat.el which allows one to cheat from within Emacs. There's an update. However, before I get to cheat.el there's a small detour. diff --git a/posts/2007/08/elschemo-boolean-logic-and-branching.md b/posts/2007/08/elschemo-boolean-logic-and-branching.md index f3420e7..0312f41 100644 --- a/posts/2007/08/elschemo-boolean-logic-and-branching.md +++ b/posts/2007/08/elschemo-boolean-logic-and-branching.md @@ -1,9 +1,9 @@ --- -Title: ElSchemo: Boolean logic and branching +Title: "ElSchemo: Boolean logic and branching" Author: Sami Samhuri -Date: 2nd August, 2007 +Date: "2nd August, 2007" Timestamp: 2007-08-02T09:59:00-07:00 -Tags: elschemo, haskell, scheme +Tags: [elschemo, haskell, scheme] --- I've been developing a Scheme diff --git a/posts/2007/08/opera-is-pretty-slick.md b/posts/2007/08/opera-is-pretty-slick.md index f9a56d7..49c374a 100644 --- a/posts/2007/08/opera-is-pretty-slick.md +++ b/posts/2007/08/opera-is-pretty-slick.md @@ -1,9 +1,9 @@ --- -Title: Opera is pretty slick +Title: "Opera is pretty slick" Author: Sami Samhuri -Date: 11th August, 2007 +Date: "11th August, 2007" Timestamp: 2007-08-11T05:11:00-07:00 -Tags: browsers, firefox, opera +Tags: [browsers, firefox, opera] --- Though I usually prefer free software, I don't have any problems using proprietary stuff if I think it's good. I had Firefox open for a couple of days and noticed that it was using 700M of memory. That's not a problem at all since I have 4G but it's also a lot of RAM to be in use for just one window with one tab open. The fact that Firefox gets sluggish after some time and needs to be restarted tells me that this isn't expected behaviour and is likely not due to caching for quick back/forward or whatever they claim is taking up the leaked memory. diff --git a/posts/2007/08/snap-crunchle-pop.md b/posts/2007/08/snap-crunchle-pop.md index bc6c8dc..e691a43 100644 --- a/posts/2007/08/snap-crunchle-pop.md +++ b/posts/2007/08/snap-crunchle-pop.md @@ -1,9 +1,9 @@ --- -Title: Snap, crunchle, pop +Title: "Snap, crunchle, pop" Author: Sami Samhuri -Date: 9th August, 2007 +Date: "9th August, 2007" Timestamp: 2007-08-09T03:17:00-07:00 -Tags: humans, injury, life +Tags: [humans, injury, life] --- I think that every now and then we need to be reminded of the frail nature of our human bodies. Yesterday morning as I walked to my kitchen I was turning right by pivoting on my right foot when my 24 years of walking experience suddenly failed me. I clearly did something wrong, as I heard a crunching pop or two in my right ankle and went down. Luckily it's just a sprain but my foot is fairly bruised and still sore today. I'm trying to follow the RICE method for recuperating but one can only lay down for so long before having to eat, work, use the bathroom, etc. Thank goodness I don't work on my feet or I'd be out of commission. If it still hurts next week I'm going to see a doctor but until then I'm trying not to leave my house. The idea of hopping and hobbling to a bus to go to a doctor does not thrill me in the slightest. diff --git a/posts/2007/09/learning-lisp-read-pcl.md b/posts/2007/09/learning-lisp-read-pcl.md index 5d925ff..09ed009 100644 --- a/posts/2007/09/learning-lisp-read-pcl.md +++ b/posts/2007/09/learning-lisp-read-pcl.md @@ -1,9 +1,9 @@ --- -Title: Learning Lisp? Read PCL +Title: "Learning Lisp? Read PCL" Author: Sami Samhuri -Date: 25th September, 2007 +Date: "25th September, 2007" Timestamp: 2007-09-25T02:59:00-07:00 -Tags: lisp +Tags: [lisp] --- Yes, it's a book. But it's so well written you should breeze through it as if it were a Lisp tutorial! diff --git a/posts/2007/09/python-and-ruby-brain-dump.md b/posts/2007/09/python-and-ruby-brain-dump.md index 07d1f80..bc6459c 100644 --- a/posts/2007/09/python-and-ruby-brain-dump.md +++ b/posts/2007/09/python-and-ruby-brain-dump.md @@ -1,9 +1,9 @@ --- -Title: Python and Ruby brain dump +Title: "Python and Ruby brain dump" Author: Sami Samhuri -Date: 26th September, 2007 +Date: "26th September, 2007" Timestamp: 2007-09-26T03:34:00-07:00 -Tags: python, ruby +Tags: [python, ruby] --- It turns out that Python is the language of choice on the OLPC, both for implementing applications and exposing to the users. There is a view source key available. I think Python is a great choice. diff --git a/posts/2007/10/gtkpod-in-gutsy-got-you-groaning.md b/posts/2007/10/gtkpod-in-gutsy-got-you-groaning.md index e032d28..5d833fb 100644 --- a/posts/2007/10/gtkpod-in-gutsy-got-you-groaning.md +++ b/posts/2007/10/gtkpod-in-gutsy-got-you-groaning.md @@ -1,9 +1,9 @@ --- -Title: Gtkpod in Gutsy Got You Groaning? +Title: "Gtkpod in Gutsy Got You Groaning?" Author: Sami Samhuri -Date: 29th October, 2007 +Date: "29th October, 2007" Timestamp: 2007-10-29T14:14:00-07:00 -Tags: broken, gtkpod, linux, ubuntu +Tags: [broken, gtkpod, linux, ubuntu] --- I recently upgraded the Ubuntu installation on my workstation from Feisty Fawn to Gutsy Gibbon and for the most part I am happy with the changes. One thing I don't care much for is the fact that gtkpod-aac is a sham. Ubuntu provides the gtkpod-aac package for one to transfer aac files, and thus mp4 files with aac audio tracks, to their iPod. The version in the Gutsy repos is broken. This shows a weakness in Ubuntu, and though it's rather small it is one that will piss off a lot of people who expect things to just work. The kind of people who would buy an iPod. The kind of people who use Linux. The kind of Linux users that use Ubuntu. The kicker is that it doesn't look like they will ship a working version of gtkpod-aac for Gutsy at all. I know it's only 6 months but that seems like an eternity when you have the same old crap to watch on your iPod for that long. diff --git a/posts/2008/01/random-pet-peeve-of-the-day.md b/posts/2008/01/random-pet-peeve-of-the-day.md index eb43229..1111f4b 100644 --- a/posts/2008/01/random-pet-peeve-of-the-day.md +++ b/posts/2008/01/random-pet-peeve-of-the-day.md @@ -1,9 +1,9 @@ --- -Title: Random pet peeve of the day +Title: "Random pet peeve of the day" Author: Sami Samhuri -Date: 7th January, 2008 +Date: "7th January, 2008" Timestamp: 2008-01-07T09:42:00-08:00 -Tags: usability, web +Tags: [usability, web] --- So long since my last post, and all I'm going to do is complain. ;-) Seriously though, if you have a website and the content on said site is dated then please – for the love of our almighty saviour, the Flying Spaghetti Monsterput the date at the top of the page. Don't make me scroll down to the end of the article just to see how relevant it is or just to give me some context. Not to mention that I always end up doing a "Where is the end? Oh crap, I passed it and now I'm in the comments, blargh!" diff --git a/posts/2008/02/thoughts-on-arc.md b/posts/2008/02/thoughts-on-arc.md index e1556e4..ec7b6fd 100644 --- a/posts/2008/02/thoughts-on-arc.md +++ b/posts/2008/02/thoughts-on-arc.md @@ -1,9 +1,9 @@ --- -Title: Thoughts on Arc +Title: "Thoughts on Arc" Author: Sami Samhuri -Date: 19th February, 2008 +Date: "19th February, 2008" Timestamp: 2008-02-19T03:26:00-08:00 -Tags: lisp arc +Tags: [lisp arc] --- *NB: This is just a braindump. There's nothing profound or particularly insightful in this post.* diff --git a/posts/2008/03/project-euler-code-repo-in-arc.md b/posts/2008/03/project-euler-code-repo-in-arc.md index a7af391..985af0f 100644 --- a/posts/2008/03/project-euler-code-repo-in-arc.md +++ b/posts/2008/03/project-euler-code-repo-in-arc.md @@ -1,9 +1,9 @@ --- -Title: Project Euler code repo in Arc +Title: "Project Euler code repo in Arc" Author: Sami Samhuri -Date: 3rd March, 2008 +Date: "3rd March, 2008" Timestamp: 2008-03-03T08:24:00-08:00 -Tags: arc, project euler +Tags: [arc, project euler] --- Release early and often. This is a code repo web app for solutions to Project Euler problems. You can only see your own solutions so it's not that exciting yet (but it scratches my itch... once it highlights syntax). You can try it out or download the source. You'll need an up-to-date copy of Anarki to untar the source in. Just run arc.sh then enter this at the REPL: diff --git a/posts/2009/11/using-emacs-to-develop-mojo-apps-for-webos.md b/posts/2009/11/using-emacs-to-develop-mojo-apps-for-webos.md index e97ea95..ed8eb7f 100644 --- a/posts/2009/11/using-emacs-to-develop-mojo-apps-for-webos.md +++ b/posts/2009/11/using-emacs-to-develop-mojo-apps-for-webos.md @@ -1,9 +1,9 @@ --- -Title: Using Emacs to Develop Mojo Apps for WebOS +Title: "Using Emacs to Develop Mojo Apps for WebOS" Author: Sami Samhuri -Date: 21st November, 2009 +Date: "21st November, 2009" Timestamp: 2009-11-21T00:00:00-08:00 -Tags: emacs, mojo, webos, lisp, javascript +Tags: [emacs, mojo, webos, lisp, javascript] --- The latest technology I've been learning is Palm's SDK for webOS, diff --git a/posts/2010/01/a-preview-of-mach-o-file-generation.md b/posts/2010/01/a-preview-of-mach-o-file-generation.md index 0736e70..87fdb99 100644 --- a/posts/2010/01/a-preview-of-mach-o-file-generation.md +++ b/posts/2010/01/a-preview-of-mach-o-file-generation.md @@ -1,9 +1,9 @@ --- -Title: A preview of Mach-O file generation +Title: "A preview of Mach-O file generation" Author: Sami Samhuri -Date: 20th January, 2010 +Date: "20th January, 2010" Timestamp: 2010-01-20T00:00:00-08:00 -Tags: ruby, mach-o, os x, compiler +Tags: [ruby, mach-o, os x, compiler] --- This month I got back into an x86 compiler I started last May. It lives diff --git a/posts/2010/01/basics-of-the-mach-o-file-format.md b/posts/2010/01/basics-of-the-mach-o-file-format.md index 90c754d..bf9bcc2 100644 --- a/posts/2010/01/basics-of-the-mach-o-file-format.md +++ b/posts/2010/01/basics-of-the-mach-o-file-format.md @@ -1,9 +1,9 @@ --- -Title: Basics of the Mach-O file format +Title: "Basics of the Mach-O file format" Author: Sami Samhuri -Date: 18th January, 2010 +Date: "18th January, 2010" Timestamp: 2010-01-18T00:00:00-08:00 -Tags: mach-o, os x, compiler +Tags: [mach-o, os x, compiler] ---

This post is part of a series on generating basic x86 Mach-O files diff --git a/posts/2010/01/working-with-c-style-structs-in-ruby.md b/posts/2010/01/working-with-c-style-structs-in-ruby.md index f2f40aa..c2ea0c0 100644 --- a/posts/2010/01/working-with-c-style-structs-in-ruby.md +++ b/posts/2010/01/working-with-c-style-structs-in-ruby.md @@ -1,9 +1,9 @@ --- -Title: Working with C-style structs in Ruby +Title: "Working with C-style structs in Ruby" Author: Sami Samhuri -Date: 17th January, 2010 +Date: "17th January, 2010" Timestamp: 2010-01-17T00:00:00-08:00 -Tags: ruby, cstruct, compiler +Tags: [ruby, cstruct, compiler] --- This is the beginning of a series on generating Mach-O object files in diff --git a/posts/2010/11/37signals-chalk-dissected.md b/posts/2010/11/37signals-chalk-dissected.md index c03ed40..474447e 100644 --- a/posts/2010/11/37signals-chalk-dissected.md +++ b/posts/2010/11/37signals-chalk-dissected.md @@ -1,9 +1,9 @@ --- -Title: 37signals' Chalk Dissected +Title: "37signals' Chalk Dissected" Author: Sami Samhuri -Date: 4th November, 2010 +Date: "4th November, 2010" Timestamp: 2010-11-04T00:00:00-07:00 -Tags: 37signals, chalk, ipad, javascript, web, html, css, zepto.js +Tags: [37signals, chalk, ipad, javascript, web, html, css, zepto.js] ---

Update 2010-11-05: I dove into the JavaScript a little and explained most of it. Sam Stephenson tweeted that Chalk is written in CoffeeScript and compiled on the fly when served using Brochure. That's hot! (for those unaware Sam Stephenson works at 37signals, and is also the man behind Prototype.)

diff --git a/posts/2011/11/lights.md b/posts/2011/11/lights.md index 864c578..cfeb60b 100644 --- a/posts/2011/11/lights.md +++ b/posts/2011/11/lights.md @@ -1,9 +1,8 @@ --- -Title: Lights +Title: "Lights" Author: Sami Samhuri -Date: 27th November, 2011 +Date: "27th November, 2011" Timestamp: 2011-11-27T18:11:00-08:00 -Tags: Link: http://lights.elliegoulding.com/ --- diff --git a/posts/2011/11/recovering-old-posts.md b/posts/2011/11/recovering-old-posts.md index ab2bf59..aa1e0bb 100644 --- a/posts/2011/11/recovering-old-posts.md +++ b/posts/2011/11/recovering-old-posts.md @@ -1,9 +1,9 @@ --- -Title: Recovering Old Blog Posts +Title: "Recovering Old Blog Posts" Author: Sami Samhuri -Date: 27th November, 2011 +Date: "27th November, 2011" Timestamp: 2011-11-27T01:15:00-08:00 -Tags: recover, old, blog, posts +Tags: [recover, old, blog, posts] --- I'm in the process of recovering some old blog posts from the [Wayback Machine](http://web.archive.org). diff --git a/posts/2011/12/i-see-http.md b/posts/2011/12/i-see-http.md index 4b3cf4c..f1b3ec5 100644 --- a/posts/2011/12/i-see-http.md +++ b/posts/2011/12/i-see-http.md @@ -1,9 +1,8 @@ --- -Title: I see HTTP +Title: "I see HTTP" Author: Sami Samhuri -Date: 15th December, 2011 +Date: "15th December, 2011" Timestamp: 2011-12-15T07:47:15-08:00 -Tags: Link: http://calendar.perfplanet.com/2011/i-see-http/ --- diff --git a/posts/2011/12/my-kind-of-feature-checklist.md b/posts/2011/12/my-kind-of-feature-checklist.md index 28c0634..8a6eca7 100644 --- a/posts/2011/12/my-kind-of-feature-checklist.md +++ b/posts/2011/12/my-kind-of-feature-checklist.md @@ -1,9 +1,8 @@ --- -Title: My kind of feature checklist +Title: "My kind of feature checklist" Author: Sami Samhuri -Date: 19th December, 2011 +Date: "19th December, 2011" Timestamp: 2011-12-19T20:20:05-08:00 -Tags: Link: http://www.marco.org/2011/12/19/amazon-kindle-vs-ipad --- diff --git a/posts/2011/12/new-release-of-firefox-for-android-optimized-for-tablets.md b/posts/2011/12/new-release-of-firefox-for-android-optimized-for-tablets.md index e298fcb..b048634 100644 --- a/posts/2011/12/new-release-of-firefox-for-android-optimized-for-tablets.md +++ b/posts/2011/12/new-release-of-firefox-for-android-optimized-for-tablets.md @@ -1,9 +1,8 @@ --- -Title: New Release of Firefox for Android, Optimized for Tablets +Title: "New Release of Firefox for Android, Optimized for Tablets" Author: Sami Samhuri -Date: 22nd December, 2011 +Date: "22nd December, 2011" Timestamp: 2011-12-25T18:54:11-08:00 -Tags: Link: http://daringfireball.net/linked/2011/12/22/firefox-android --- diff --git a/posts/2011/12/pure-css3-images-hmm-maybe-later.md b/posts/2011/12/pure-css3-images-hmm-maybe-later.md index 2e6dade..df81f9e 100644 --- a/posts/2011/12/pure-css3-images-hmm-maybe-later.md +++ b/posts/2011/12/pure-css3-images-hmm-maybe-later.md @@ -1,9 +1,8 @@ --- -Title: Pure CSS3 images? Hmm, maybe later +Title: "Pure CSS3 images? Hmm, maybe later" Author: Sami Samhuri -Date: 11th December, 2011 +Date: "11th December, 2011" Timestamp: 2011-12-11T12:25:03-08:00 -Tags: Link: http://calendar.perfplanet.com/2011/pure-css3-images-hmm-maybe-later/ --- diff --git a/posts/2011/12/static-url-shortener-using-htaccess.md b/posts/2011/12/static-url-shortener-using-htaccess.md index 2337fc0..a794a5e 100644 --- a/posts/2011/12/static-url-shortener-using-htaccess.md +++ b/posts/2011/12/static-url-shortener-using-htaccess.md @@ -1,9 +1,9 @@ --- -Title: A Static URL Shortener Using .htaccess +Title: "A Static URL Shortener Using .htaccess" Author: Sami Samhuri -Date: 10th December, 2011 +Date: "10th December, 2011" Timestamp: 2011-12-10T22:29:09-08:00 -Tags: s42.ca, url, shortener, samhuri.net, url shortener +Tags: [s42.ca, url, shortener, samhuri.net, url shortener] --- This blog is statically generated. A few Ruby and Node.js scripts along with a Makefile and some duct tape hold it all together. All of [samhuri.net is on Github][GH] if you want to take a look. Most of it is quite minimal, sometimes to a fault. Little improvements are made here and there and the most recent one is a neat [.htaccess][htaccess-wiki] hack. I want to automatically announce new posts on Twitter so short URLs are in order. diff --git a/posts/2011/12/the-broken-pixel-theory.md b/posts/2011/12/the-broken-pixel-theory.md index 969cf1a..f575d16 100644 --- a/posts/2011/12/the-broken-pixel-theory.md +++ b/posts/2011/12/the-broken-pixel-theory.md @@ -1,9 +1,8 @@ --- -Title: The Broken Pixel Theory +Title: "The Broken Pixel Theory" Author: Sami Samhuri -Date: 25th December, 2011 +Date: "25th December, 2011" Timestamp: 2011-12-25T18:54:20-08:00 -Tags: Link: http://jtaby.com/2011/12/25/the-broken-pixel-theory.html --- diff --git a/posts/2012/01/fujitsu-has-lost-their-mind.md b/posts/2012/01/fujitsu-has-lost-their-mind.md index 9815063..2597d86 100644 --- a/posts/2012/01/fujitsu-has-lost-their-mind.md +++ b/posts/2012/01/fujitsu-has-lost-their-mind.md @@ -1,9 +1,8 @@ --- -Title: Fujitsu has lost their mind +Title: "Fujitsu has lost their mind" Author: Sami Samhuri -Date: 19th January, 2012 +Date: "19th January, 2012" Timestamp: 2012-01-19T20:05:33-08:00 -Tags: Link: http://tablet-news.com/2012/01/17/fujitsu-lifebook-2013-concept-incorporates-a-tablet-for-a-keyboard-phone-and-digital-camera/ --- diff --git a/posts/2012/01/recovering-from-a-computer-science-education.md b/posts/2012/01/recovering-from-a-computer-science-education.md index f61dadb..8d3a70f 100644 --- a/posts/2012/01/recovering-from-a-computer-science-education.md +++ b/posts/2012/01/recovering-from-a-computer-science-education.md @@ -1,9 +1,8 @@ --- -Title: Recovering From a Computer Science Education +Title: "Recovering From a Computer Science Education" Author: Sami Samhuri -Date: 17th January, 2012 +Date: "17th January, 2012" Timestamp: 2012-01-17T00:00:00-08:00 -Tags: Link: http://prog21.dadgum.com/123.html --- diff --git a/posts/2012/01/sopa-lives-and-mpaa-calls-protests-an-abuse-of-power.md b/posts/2012/01/sopa-lives-and-mpaa-calls-protests-an-abuse-of-power.md index 5f4bada..c2a48e4 100644 --- a/posts/2012/01/sopa-lives-and-mpaa-calls-protests-an-abuse-of-power.md +++ b/posts/2012/01/sopa-lives-and-mpaa-calls-protests-an-abuse-of-power.md @@ -1,9 +1,8 @@ --- -Title: SOPA lives - and MPAA calls protests an "abuse of power" +Title: "SOPA lives - and MPAA calls protests an \"abuse of power\"" Author: Sami Samhuri -Date: 17th January, 2012 +Date: "17th January, 2012" Timestamp: 2012-01-17T02:46:40-08:00 -Tags: Link: http://arstechnica.com/tech-policy/news/2012/01/sopa-livesand-mpaa-calls-protests-an-abuse-of-power.ars --- diff --git a/posts/2012/01/the-40-standup-desk.md b/posts/2012/01/the-40-standup-desk.md index b1a9f32..12ab2ed 100644 --- a/posts/2012/01/the-40-standup-desk.md +++ b/posts/2012/01/the-40-standup-desk.md @@ -1,9 +1,8 @@ --- -Title: The $40 Standup Desk +Title: "The $40 Standup Desk" Author: Sami Samhuri -Date: 9th January, 2012 +Date: "9th January, 2012" Timestamp: 2012-01-09T00:16:40-08:00 -Tags: Link: http://opensoul.org/blog/archives/2012/01/09/the-40-standup-desk/ --- diff --git a/posts/2012/01/yak-shaving.md b/posts/2012/01/yak-shaving.md index f1cd90d..60f6ec5 100644 --- a/posts/2012/01/yak-shaving.md +++ b/posts/2012/01/yak-shaving.md @@ -1,9 +1,8 @@ --- -Title: Yak shaving +Title: "Yak shaving" Author: Sami Samhuri -Date: 4th January, 2012 +Date: "4th January, 2012" Timestamp: 2012-01-04T13:24:00-08:00 -Tags: Link: http://blog.hasmanythrough.com/2012/1/4/yak-shaving --- diff --git a/posts/2013/03/zelda-tones-for-ios.md b/posts/2013/03/zelda-tones-for-ios.md index 9d185ec..7776934 100644 --- a/posts/2013/03/zelda-tones-for-ios.md +++ b/posts/2013/03/zelda-tones-for-ios.md @@ -1,9 +1,9 @@ --- -Title: Zelda Tones for iOS +Title: "Zelda Tones for iOS" Author: Sami Samhuri -Date: 6th March, 2013 +Date: "6th March, 2013" Timestamp: 2013-03-06T18:51:13-08:00 -Tags: zelda, nintendo, pacman, ringtones, tones, ios +Tags: [zelda, nintendo, pacman, ringtones, tones, ios] ---

Zelda

diff --git a/posts/2013/09/linky.md b/posts/2013/09/linky.md index 848e36e..5d49af3 100644 --- a/posts/2013/09/linky.md +++ b/posts/2013/09/linky.md @@ -1,9 +1,9 @@ --- -Title: Linky +Title: "Linky" Author: Sami Samhuri -Date: 27th September, 2013 +Date: "27th September, 2013" Timestamp: 2013-09-27T21:49:02-07:00 -Tags: linky, north watcher, ruby, gmail, links, notifications +Tags: [linky, north watcher, ruby, gmail, links, notifications] --- ## Send links from mobile devices to your computers. diff --git a/posts/2014/02/ember-structure.md b/posts/2014/02/ember-structure.md index 7f771a2..0fa3185 100644 --- a/posts/2014/02/ember-structure.md +++ b/posts/2014/02/ember-structure.md @@ -1,9 +1,9 @@ --- -Title: Structure of an Ember app +Title: "Structure of an Ember app" Author: Sami Samhuri -Date: 3rd February, 2014 +Date: "3rd February, 2014" Timestamp: 2014-02-03T18:05:49-08:00 -Tags: ember.js +Tags: [ember.js] --- I made a diagram of an Ember app. There's [a discussion about it](http://discuss.emberjs.com/t/diagram-of-an-ember-apps-structure/4060) on the diff --git a/posts/2015/05/a-bitcoin-miner-in-every-device-and-in-every-hand.md b/posts/2015/05/a-bitcoin-miner-in-every-device-and-in-every-hand.md index 6cf4d89..192cc3c 100644 --- a/posts/2015/05/a-bitcoin-miner-in-every-device-and-in-every-hand.md +++ b/posts/2015/05/a-bitcoin-miner-in-every-device-and-in-every-hand.md @@ -1,9 +1,8 @@ --- -Title: A bitcoin miner in every device and in every hand +Title: "A bitcoin miner in every device and in every hand" Author: Sami Samhuri -Date: 19th May, 2015 +Date: "19th May, 2015" Timestamp: 2015-05-18T19:53:54-07:00 -Tags: Link: https://medium.com/@21dotco/a-bitcoin-miner-in-every-device-and-in-every-hand-e315b40f2821 --- diff --git a/posts/2015/05/apple-watch-human-interface-guidelines.md b/posts/2015/05/apple-watch-human-interface-guidelines.md index 6c168b1..3de1b91 100644 --- a/posts/2015/05/apple-watch-human-interface-guidelines.md +++ b/posts/2015/05/apple-watch-human-interface-guidelines.md @@ -1,9 +1,8 @@ --- -Title: Apple Watch Human Interface Guidelines +Title: "Apple Watch Human Interface Guidelines" Author: Sami Samhuri -Date: 10th May, 2015 +Date: "10th May, 2015" Timestamp: 2015-05-09T18:57:19-07:00 -Tags: Link: https://developer.apple.com/watch/human-interface-guidelines/ --- diff --git a/posts/2015/05/constraints-and-transforms-in-ios-8.md b/posts/2015/05/constraints-and-transforms-in-ios-8.md index c92aaf2..43ac907 100644 --- a/posts/2015/05/constraints-and-transforms-in-ios-8.md +++ b/posts/2015/05/constraints-and-transforms-in-ios-8.md @@ -1,9 +1,8 @@ --- -Title: Constraints and Transforms in iOS 8 +Title: "Constraints and Transforms in iOS 8" Author: Sami Samhuri -Date: 15th May, 2015 +Date: "15th May, 2015" Timestamp: 2015-05-15T07:26:35-07:00 -Tags: Link: http://revealapp.com/blog/constraints-and-transforms.html --- diff --git a/posts/2015/05/github-flow-like-a-pro.md b/posts/2015/05/github-flow-like-a-pro.md index e275370..9a77f1d 100644 --- a/posts/2015/05/github-flow-like-a-pro.md +++ b/posts/2015/05/github-flow-like-a-pro.md @@ -1,9 +1,8 @@ --- -Title: GitHub Flow Like a Pro +Title: "GitHub Flow Like a Pro" Author: Sami Samhuri -Date: 28th May, 2015 +Date: "28th May, 2015" Timestamp: 2015-05-28T07:42:27-07:00 -Tags: Link: http://haacked.com/archive/2014/07/28/github-flow-aliases/ --- diff --git a/posts/2015/05/importing-modules-in-lldb.md b/posts/2015/05/importing-modules-in-lldb.md index beb74dd..52921cc 100644 --- a/posts/2015/05/importing-modules-in-lldb.md +++ b/posts/2015/05/importing-modules-in-lldb.md @@ -1,9 +1,8 @@ --- -Title: Importing Modules in LLDB +Title: "Importing Modules in LLDB" Author: Sami Samhuri -Date: 12th May, 2015 +Date: "12th May, 2015" Timestamp: 2015-05-11T19:03:35-07:00 -Tags: Link: http://furbo.org/2015/05/11/an-import-ant-change-in-xcode/ --- diff --git a/posts/2015/05/lenovo-thinkpad-x1-carbon.md b/posts/2015/05/lenovo-thinkpad-x1-carbon.md index 95e4b29..f1c5a51 100644 --- a/posts/2015/05/lenovo-thinkpad-x1-carbon.md +++ b/posts/2015/05/lenovo-thinkpad-x1-carbon.md @@ -1,9 +1,8 @@ --- -Title: Lenovo ThinkPad X1 Carbon +Title: "Lenovo ThinkPad X1 Carbon" Author: Sami Samhuri -Date: 22nd May, 2015 +Date: "22nd May, 2015" Timestamp: 2015-05-21T17:36:29-07:00 -Tags: Link: http://www.anandtech.com/show/9264/the-lenovo-thinkpad-x1-carbon-review-2015 --- diff --git a/posts/2015/05/magical-wristband.md b/posts/2015/05/magical-wristband.md index 40342c9..c16a82b 100644 --- a/posts/2015/05/magical-wristband.md +++ b/posts/2015/05/magical-wristband.md @@ -1,9 +1,8 @@ --- -Title: Magical Wristband +Title: "Magical Wristband" Author: Sami Samhuri -Date: 27th May, 2015 +Date: "27th May, 2015" Timestamp: 2015-05-26T22:17:29-07:00 -Tags: Link: http://www.wired.com/2015/03/disney-magicband/ --- diff --git a/posts/2015/05/undocumented-corestorage-commands.md b/posts/2015/05/undocumented-corestorage-commands.md index 2f1a325..97dcc80 100644 --- a/posts/2015/05/undocumented-corestorage-commands.md +++ b/posts/2015/05/undocumented-corestorage-commands.md @@ -1,9 +1,8 @@ --- -Title: Undocumented CoreStorage Commands +Title: "Undocumented CoreStorage Commands" Author: Sami Samhuri -Date: 24th May, 2015 +Date: "24th May, 2015" Timestamp: 2015-05-23T19:58:36-07:00 -Tags: Link: http://blog.fosketts.net/2011/08/05/undocumented-corestorage-commands/ --- diff --git a/posts/2015/06/debugging-layouts-with-recursive-view-descriptions-in-xcode.md b/posts/2015/06/debugging-layouts-with-recursive-view-descriptions-in-xcode.md index c4a79d2..f5f1fc8 100644 --- a/posts/2015/06/debugging-layouts-with-recursive-view-descriptions-in-xcode.md +++ b/posts/2015/06/debugging-layouts-with-recursive-view-descriptions-in-xcode.md @@ -1,9 +1,8 @@ --- -Title: Debugging Layouts with Recursive View Descriptions in Xcode +Title: "Debugging Layouts with Recursive View Descriptions in Xcode" Author: Sami Samhuri -Date: 2nd June, 2015 +Date: "2nd June, 2015" Timestamp: 2015-06-02T16:35:35-07:00 -Tags: Link: http://jeffreysambells.com/2013/01/24/debugging-layouts-with-recursive-view-descriptions-in-xcode --- diff --git a/posts/2015/06/the-unofficial-guide-to-xcconfig-files.md b/posts/2015/06/the-unofficial-guide-to-xcconfig-files.md index e4da317..093614c 100644 --- a/posts/2015/06/the-unofficial-guide-to-xcconfig-files.md +++ b/posts/2015/06/the-unofficial-guide-to-xcconfig-files.md @@ -1,9 +1,8 @@ --- -Title: The Unofficial Guide to xcconfig files +Title: "The Unofficial Guide to xcconfig files" Author: Sami Samhuri -Date: 1st June, 2015 +Date: "1st June, 2015" Timestamp: 2015-06-01T08:16:51-07:00 -Tags: Link: http://pewpewthespells.com/blog/xcconfig_guide.html?utm_campaign=iOS%2BDev%2BWeekly&utm_source=iOS_Dev_Weekly_Issue_200 --- diff --git a/posts/2015/07/scripts-to-rule-them-all.md b/posts/2015/07/scripts-to-rule-them-all.md index 6b0119c..c2150a1 100644 --- a/posts/2015/07/scripts-to-rule-them-all.md +++ b/posts/2015/07/scripts-to-rule-them-all.md @@ -1,9 +1,8 @@ --- -Title: Scripts to Rule Them All +Title: "Scripts to Rule Them All" Author: Sami Samhuri -Date: 1st July, 2015 +Date: "1st July, 2015" Timestamp: 2015-07-01T07:37:04-07:00 -Tags: Link: http://githubengineering.com/scripts-to-rule-them-all/ --- diff --git a/posts/2015/07/swift-new-stuff-in-xcode-7-beta-3.md b/posts/2015/07/swift-new-stuff-in-xcode-7-beta-3.md index 92e0715..371dbbd 100644 --- a/posts/2015/07/swift-new-stuff-in-xcode-7-beta-3.md +++ b/posts/2015/07/swift-new-stuff-in-xcode-7-beta-3.md @@ -1,9 +1,8 @@ --- -Title: Swift: New stuff in Xcode 7 Beta 3 +Title: "Swift: New stuff in Xcode 7 Beta 3" Author: Sami Samhuri -Date: 9th July, 2015 +Date: "9th July, 2015" Timestamp: 2015-07-09T09:17:13-07:00 -Tags: Link: http://ericasadun.com/2015/07/08/swift-new-stuff-in-xcode-7-beta-3/ --- diff --git a/posts/2015/08/acorn-5s-live-help-search.md b/posts/2015/08/acorn-5s-live-help-search.md index 5159e57..84687fc 100644 --- a/posts/2015/08/acorn-5s-live-help-search.md +++ b/posts/2015/08/acorn-5s-live-help-search.md @@ -1,9 +1,8 @@ --- -Title: Acorn 5's Live Help Search +Title: "Acorn 5's Live Help Search" Author: Sami Samhuri -Date: 25th August, 2015 +Date: "25th August, 2015" Timestamp: 2015-08-24T22:00:27-07:00 -Tags: Link: http://shapeof.com/archives/2015/8/acorn_5_search_index.html --- diff --git a/posts/2015/08/cloaks-updated-privacy-policy.md b/posts/2015/08/cloaks-updated-privacy-policy.md index b9a3077..099e7f8 100644 --- a/posts/2015/08/cloaks-updated-privacy-policy.md +++ b/posts/2015/08/cloaks-updated-privacy-policy.md @@ -1,9 +1,8 @@ --- -Title: Cloak's Updated Privacy Policy +Title: "Cloak's Updated Privacy Policy" Author: Sami Samhuri -Date: 27th August, 2015 +Date: "27th August, 2015" Timestamp: 2015-08-26T19:56:54-07:00 -Tags: Link: https://blog.getcloak.com/2015/08/25/updated-privacy-policy/ --- diff --git a/posts/2016/03/moving-beyond-the-oop-obsession.md b/posts/2016/03/moving-beyond-the-oop-obsession.md index fd3cb3a..89148bb 100644 --- a/posts/2016/03/moving-beyond-the-oop-obsession.md +++ b/posts/2016/03/moving-beyond-the-oop-obsession.md @@ -1,9 +1,8 @@ --- -Title: Moving Beyond the OOP Obsession +Title: "Moving Beyond the OOP Obsession" Author: Sami Samhuri -Date: 28th March, 2016 +Date: "28th March, 2016" Timestamp: 2016-03-28T09:08:47-07:00 -Tags: Link: http://prog21.dadgum.com/218.html --- diff --git a/posts/2016/03/reduce-the-cognitive-load-of-your-code.md b/posts/2016/03/reduce-the-cognitive-load-of-your-code.md index 5311ff4..397cc94 100644 --- a/posts/2016/03/reduce-the-cognitive-load-of-your-code.md +++ b/posts/2016/03/reduce-the-cognitive-load-of-your-code.md @@ -1,9 +1,8 @@ --- -Title: Reduce the cognitive load of your code +Title: "Reduce the cognitive load of your code" Author: Sami Samhuri -Date: 30th March, 2016 +Date: "30th March, 2016" Timestamp: 2016-03-30T07:10:29-07:00 -Tags: Link: http://chrismm.com/blog/how-to-reduce-the-cognitive-load-of-your-code/ --- diff --git a/posts/2016/04/tales-of-prk-laser-eye-surgery.md b/posts/2016/04/tales-of-prk-laser-eye-surgery.md index c7c5f5c..6acbade 100644 --- a/posts/2016/04/tales-of-prk-laser-eye-surgery.md +++ b/posts/2016/04/tales-of-prk-laser-eye-surgery.md @@ -1,9 +1,8 @@ --- -Title: Tales of PRK Laser Eye Surgery +Title: "Tales of PRK Laser Eye Surgery" Author: Sami Samhuri -Date: 12th April, 2016 +Date: "12th April, 2016" Timestamp: 2016-04-11T20:52:53-07:00 -Tags: --- Today I scheduled PRK laser eye surgery on April 19th. Exciting but also kind of terrifying because the procedure sounds a bit horrific. Most accounts from people don't sound very bad though so the operation itself should be a breeze! I scoured the web for PRK recovery stories to get an idea of what I was in for and found some good quotes. diff --git a/posts/2016/08/easy-optimization-wins.md b/posts/2016/08/easy-optimization-wins.md index edfcfd6..820aadc 100644 --- a/posts/2016/08/easy-optimization-wins.md +++ b/posts/2016/08/easy-optimization-wins.md @@ -1,9 +1,9 @@ --- -Title: Easy Optimization Wins +Title: "Easy Optimization Wins" Author: Sami Samhuri -Date: 10th August, 2016 +Date: "10th August, 2016" Timestamp: 2016-08-10T10:30:49-07:00 -Tags: ios, git +Tags: [ios, git] --- It's not hard to hide a whole lot of complexity behind a function call, so you have to be very aware of what the functions you are using actually do, and how long they take to do it. diff --git a/posts/2016/08/ios-git-pre-commit-hook.md b/posts/2016/08/ios-git-pre-commit-hook.md index 40398d3..389e392 100644 --- a/posts/2016/08/ios-git-pre-commit-hook.md +++ b/posts/2016/08/ios-git-pre-commit-hook.md @@ -1,9 +1,9 @@ --- -Title: A Git Pre-commit Hook for iOS +Title: "A Git Pre-commit Hook for iOS" Author: Sami Samhuri -Date: 4th August, 2016 +Date: "4th August, 2016" Timestamp: 2016-08-04T09:38:03-07:00 -Tags: ios, git +Tags: [ios, git] --- [Krzysztof Zabłocki][kztwitter] wrote [a nice article on using a git pre-commit hook to catch mistakes in iOS projects][link] before you push those mistakes out to the whole team/world. It's a great idea! But the shell script has some problems, so let's fix those. diff --git a/posts/2017/10/swift-optional-or.md b/posts/2017/10/swift-optional-or.md index eeaf03c..63591b7 100644 --- a/posts/2017/10/swift-optional-or.md +++ b/posts/2017/10/swift-optional-or.md @@ -1,9 +1,9 @@ --- Author: Sami Samhuri -Title: A nil-coalescing alternative for Swift -Date: 6th October, 2017 +Title: "A nil-coalescing alternative for Swift" +Date: "6th October, 2017" Timestamp: 2017-10-06T14:20:13-07:00 -Tags: iOS, Swift +Tags: [iOS, Swift] --- Swift compile times leave something to be desired and a common culprit is the affectionately-named [nil-coalescing operator][nilop]. A small extension to `Optional` can improve this without sacrificing a lot of readability. diff --git a/posts/2024/04/photos-navigation-url-scheme.md b/posts/2024/04/photos-navigation-url-scheme.md index b6db6a5..fe158de 100644 --- a/posts/2024/04/photos-navigation-url-scheme.md +++ b/posts/2024/04/photos-navigation-url-scheme.md @@ -1,9 +1,9 @@ --- Author: Sami Samhuri -Title: Reverse-engineering the photos-navigation URL scheme on iOS -Date: 18th April, 2024 +Title: "Reverse-engineering the photos-navigation URL scheme on iOS" +Date: "18th April, 2024" Timestamp: 2024-04-18T20:08:02-07:00 -Tags: iOS, Swift, hacking +Tags: [iOS, Swift, hacking] --- It would be cool to open up the Photos app to a specific asset on iOS, just like the Photo Shuffle lock screen. diff --git a/posts/2025/06/type-safe-notifications-and-async-stream-monitoring-with-swift-6.md b/posts/2025/06/type-safe-notifications-and-async-stream-monitoring-with-swift-6.md index 5b1e388..b64be1e 100644 --- a/posts/2025/06/type-safe-notifications-and-async-stream-monitoring-with-swift-6.md +++ b/posts/2025/06/type-safe-notifications-and-async-stream-monitoring-with-swift-6.md @@ -1,9 +1,9 @@ --- Author: Sami Samhuri -Title: Type-safe notifications and async stream monitoring with Swift 6 -Date: 6th June, 2025 +Title: "Type-safe notifications and async stream monitoring with Swift 6" +Date: "6th June, 2025" Timestamp: 2025-06-06T14:27:11-07:00 -Tags: Swift, iOS, notifications, async, concurrency, AsyncMonitor, NotificationSmuggler +Tags: [Swift, iOS, notifications, async, concurrency, AsyncMonitor, NotificationSmuggler] --- Swift 6 concurrency checking made handling notifications without warnings kinda tedious. The old Combine approach doesn't work with `@Sendable` closures and manually managing tasks gets repetitive. I made a couple of tiny Swift packages to help out with the situation: [AsyncMonitor](https://github.com/samsonjs/AsyncMonitor) which wraps task management, and [NotificationSmuggler](https://github.com/samsonjs/NotificationSmuggler) which adds a type-safe interface on top of `Notification` and `NotificationCenter`. diff --git a/pressa/Gemfile.lock b/pressa/Gemfile.lock index 5631ad3..88338b9 100644 --- a/pressa/Gemfile.lock +++ b/pressa/Gemfile.lock @@ -69,6 +69,7 @@ GEM guard (~> 2.1) guard-compat (~> 1.1) rspec (>= 2.99.0, < 4.0) + htmlbeautifier (1.4.3) ice_nine (0.11.2) io-console (0.8.1) json (2.16.0) @@ -203,6 +204,7 @@ DEPENDENCIES dry-struct (~> 1.8) guard (~> 2.18) guard-rspec (~> 4.7) + htmlbeautifier (~> 1.4) kramdown (~> 2.5) kramdown-parser-gfm (~> 1.1) nokogiri (~> 1.18) diff --git a/pressa/bin/validate-output b/pressa/bin/validate-output index cb39e3c..9debfdf 100755 --- a/pressa/bin/validate-output +++ b/pressa/bin/validate-output @@ -3,9 +3,17 @@ require 'optparse' require 'fileutils' require 'digest' +require 'json' +require 'nokogiri' + +begin + require 'htmlbeautifier' +rescue LoadError + # Optional dependency used only for nicer diffs. +end class OutputValidator - def initialize(swift_dir:, ruby_dir:, verbose:, ignore_patterns:, show_details:) + def initialize(swift_dir:, ruby_dir:, verbose:, ignore_patterns:, show_details:, dump_dir:) @swift_dir = swift_dir @ruby_dir = ruby_dir @differences = [] @@ -15,6 +23,8 @@ class OutputValidator @verbose = verbose @ignore_patterns = ignore_patterns @show_details = show_details + @dump_dir = dump_dir + prepare_dump_dirs if @dump_dir end def validate @@ -66,8 +76,9 @@ class OutputValidator swift_content = File.binread(swift_path) ruby_content = File.binread(ruby_path) else - swift_content = normalize_html(File.read(swift_path)) - ruby_content = normalize_html(File.read(ruby_path)) + swift_content = normalize_content(relative_path, File.read(swift_path)) + ruby_content = normalize_content(relative_path, File.read(ruby_path)) + dump_normalized(relative_path, swift_content, ruby_content) if @dump_dir end if swift_content == ruby_content @@ -85,6 +96,22 @@ class OutputValidator end end + def prepare_dump_dirs + FileUtils.rm_rf(@dump_dir) + FileUtils.mkdir_p(File.join(@dump_dir, 'swift')) + FileUtils.mkdir_p(File.join(@dump_dir, 'ruby')) + end + + def dump_normalized(relative_path, swift_content, ruby_content) + write_normalized(File.join(@dump_dir, 'swift', relative_path), swift_content) + write_normalized(File.join(@dump_dir, 'ruby', relative_path), ruby_content) + end + + def write_normalized(path, content) + FileUtils.mkdir_p(File.dirname(path)) + File.write(path, content) + end + def ignored?(path) return false if @ignore_patterns.empty? @@ -96,12 +123,64 @@ class OutputValidator %w[.png .jpg .jpeg .gif .svg .ico .woff .woff2 .ttf .eot].include?(ext) end - def normalize_html(content) - content - .gsub(/\s+/, ' ') - .gsub(/>\s+<') - .gsub(/.*?<\/lastBuildDate>/, '') - .strip + def normalize_content(path, content) + normalized = case File.extname(path).downcase + when '.html', '.htm' + normalize_html_dom(content) + when '.xml' + normalize_xml_dom(content) + when '.json' + normalize_json(content) + else + normalize_text(content) + end + + strip_dynamic_values(normalized) + end + + def normalize_html_dom(content) + doc = Nokogiri::HTML5(content) + html = doc.to_html + if defined?(HtmlBeautifier) && HtmlBeautifier.respond_to?(:beautify) + html = HtmlBeautifier.beautify(html) + end + html + rescue StandardError + normalize_text(content) + end + + def normalize_xml_dom(content) + doc = Nokogiri::XML(content) { |cfg| cfg.noblanks } + doc.to_xml(indent: 2) + rescue StandardError + normalize_text(content) + end + + def normalize_json(content) + JSON.pretty_generate(JSON.parse(content)) + rescue StandardError + normalize_text(content) + end + + def normalize_text(content) + content.gsub(/\s+/, ' ').gsub(/>\s+<').strip + end + + def strip_dynamic_values(content) + content.gsub(/.*?<\/lastBuildDate>/, '') + end + + # Legacy helper retained for backwards compatibility if needed elsewhere. + def html_save_options + Nokogiri::XML::Node::SaveOptions::AS_XHTML | + Nokogiri::XML::Node::SaveOptions::NO_DECLARATION | + Nokogiri::XML::Node::SaveOptions::FORMAT + end + + def xml_save_options + Nokogiri::XML::Node::SaveOptions::AS_XML | + Nokogiri::XML::Node::SaveOptions::NO_DECLARATION | + Nokogiri::XML::Node::SaveOptions::FORMAT end def print_summary @@ -151,7 +230,8 @@ end options = { verbose: false, ignore_patterns: [], - show_details: false + show_details: false, + dump_dir: nil } parser = OptionParser.new do |opts| @@ -168,6 +248,10 @@ parser = OptionParser.new do |opts| opts.on('--details', 'Include byte counts and hashes for differing files') do options[:show_details] = true end + + opts.on('--dump-normalized=DIR', 'Write normalized Swift/Ruby files to DIR/{swift,ruby}') do |dir| + options[:dump_dir] = dir + end end parser.parse! @@ -195,6 +279,7 @@ validator = OutputValidator.new( ruby_dir: ruby_dir, verbose: options[:verbose], ignore_patterns: options[:ignore_patterns], - show_details: options[:show_details] + show_details: options[:show_details], + dump_dir: options[:dump_dir] ) validator.validate