41554 blogs · [ { "id": "01a0d93b-1b98-7089-881b-02fb3b3e9a71", "title": "Jarkko Laine : Courses", "url": "https://jlaine.net/jarkko/courses.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3c22c922", "title": "About Jarkko Laine", "url": "https://jlaine.net/jarkko/", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3c7bb7f1", "title": "Jarkko Laine : Computers and Internet", "url": "https://jlaine.net/jarkko/internet.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3d01e998", "title": "Create a kepardi.cc.tut.fi Mailing List", "url": "https://jlaine.net/jarkko/mailman.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3de5013e", "title": "XML-merkkauksesta", "url": "https://jlaine.net/jarkko/rakdok/book.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3e4cee70", "title": "Resume of Jarkko Laine", "url": "https://jlaine.net/jarkko/resume.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3e58f564", "title": "Jarkko Laine : Sports", "url": "https://jlaine.net/jarkko/sports.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3f411d95", "title": "Jarkko Laine : Studies", "url": "https://jlaine.net/jarkko/studies.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3fa9a741", "title": "TCP/IP-protokollaperhe ja internet-turvallisuus", "url": "https://jlaine.net/jarkko/tcp_ip-turvallisuus.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb3fe85d1a", "title": null, "url": "https://jlaine.net/jarkko/testi.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb400dad74", "title": null, "url": "https://jlaine.net/woc2011/sprint-women.html", "published_at": "2026-07-09T19:49:04+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d39b9aeda", "title": "Stop racing your VO2max", "url": "https://jlaine.net/2026/07/09/stop-racing-your-vo2max/", "published_at": "2026-07-09T00:00:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3ab53ae4", "title": "Change the game, not the player", "url": "https://jlaine.net/2026/05/28/change-the-game-not-the-player/", "published_at": "2026-05-28T00:00:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3b35851c", "title": "Your freedom is my prison", "url": "https://jlaine.net/2015/02/02/your-freedom-is-my-prison/", "published_at": "2015-02-02T10:56:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3b434f31", "title": "Project 4.5", "url": "https://jlaine.net/2014/01/21/project-45/", "published_at": "2014-01-21T12:16:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3b43ecfe", "title": "Open letter to specialty coffee roasters", "url": "https://jlaine.net/2013/09/26/dear-specialty-coffee-roaster/", "published_at": "2013-09-26T12:16:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3ba08b34", "title": "Let your data tell a story", "url": "https://jlaine.net/2013/09/23/let-your-data-tell-a-story/", "published_at": "2013-09-23T09:40:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3ba82279", "title": "It’s not about us, it’s about you (and not really about you, either)", "url": "https://jlaine.net/2013/08/29/not-about-us/", "published_at": "2013-08-29T09:40:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3c7eefa0", "title": "Runemployed", "url": "https://jlaine.net/2013/07/01/runemployed/", "published_at": "2013-07-01T20:40:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3ca9c8da", "title": "How to get started with bootstrapping", "url": "https://jlaine.net/2013/05/13/how-to-get-started-with-bootstrapping/", "published_at": "2013-05-13T00:00:00+00:00" }, { "id": "01a0878e-2f9f-709f-ae84-458d3cc7f770", "title": "Scaling your Frontend – Graphics in the Era of Retina Screens", "url": "https://jlaine.net/2012/11/10/scaling-your-frontend-graphics-in-the-era-of-retina-screens/", "published_at": "2012-11-10T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1f74e76e", "title": null, "url": "https://jlaine.net/2012/01/16/introduction-to-great-coffee/", "published_at": "2012-01-16T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1f3644d4", "title": null, "url": "https://jlaine.net/2012/01/02/ruby-meet-quickroute/", "published_at": "2012-01-02T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1eeb8474", "title": null, "url": "https://jlaine.net/2011/09/30/blade-runner/", "published_at": "2011-09-30T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1ee65811", "title": null, "url": "https://jlaine.net/2011/08/18/itunes-doesn-t-recognize-your-iphone-or-ipad-anymore-here-s-the-fix/", "published_at": "2011-08-18T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1e200bcb", "title": null, "url": "https://jlaine.net/2010/11/09/compensation-supercompensation/", "published_at": "2010-11-09T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1e020201", "title": null, "url": "https://jlaine.net/2010/11/01/the-road-to-rubyconf-xk-why-run/", "published_at": "2010-11-01T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1df7dd69", "title": null, "url": "https://jlaine.net/2010/06/09/how-to-quickly-fix-safari-5-reader-typography/", "published_at": "2010-06-09T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1d05f2c3", "title": null, "url": "https://jlaine.net/2010/03/23/speaking-at-frozen-rails/", "published_at": "2010-03-23T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1c7d0ef1", "title": null, "url": "https://jlaine.net/2010/03/06/6-bulletproof-ways-to-make-me-block-you-on-twitter/", "published_at": "2010-03-06T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1bfbb074", "title": null, "url": "https://jlaine.net/2010/02/14/new-zealand-in-black-and-white/", "published_at": "2010-02-14T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1b087c81", "title": null, "url": "https://jlaine.net/2009/10/19/adventures-in-online-shopping-with-shopping4net-com/", "published_at": "2009-10-19T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1ab2a3aa", "title": null, "url": "https://jlaine.net/2009/02/19/ruby-rails-bdd-training-in-helsinki-in-april/", "published_at": "2009-02-19T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb19cbfd35", "title": null, "url": "https://jlaine.net/2008/10/04/build-your-green-home/", "published_at": "2008-10-04T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb19afecdb", "title": null, "url": "https://jlaine.net/2008/10/03/unplugged/", "published_at": "2008-10-03T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb18f44bb2", "title": null, "url": "https://jlaine.net/2008/10/02/fernando/", "published_at": "2008-10-02T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb187766de", "title": null, "url": "https://jlaine.net/2008/09/24/a-week-of-ruby-rails-bdd-ajax-training-in-december/", "published_at": "2008-09-24T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1817dbc2", "title": null, "url": "https://jlaine.net/2008/09/16/making-emacs-keybindings-work-with-zsh-and-screen/", "published_at": "2008-09-16T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb175eca7a", "title": null, "url": "https://jlaine.net/2008/09/09/from-rails-ajax-helpers-to-low-pro-part-3-some-announcements/", "published_at": "2008-09-09T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb168eb3b9", "title": null, "url": "https://jlaine.net/2008/06/27/sonera-s-at-it-again/", "published_at": "2008-06-27T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb162da892", "title": null, "url": "https://jlaine.net/2008/06/02/specifying-indeces-in-datamapper/", "published_at": "2008-06-02T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1602296d", "title": null, "url": "https://jlaine.net/2008/05/25/start-from-the-heart/", "published_at": "2008-05-25T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb15092fb5", "title": null, "url": "https://jlaine.net/2008/05/08/amp-lified/", "published_at": "2008-05-08T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb14e5b278", "title": null, "url": "https://jlaine.net/2008/05/05/making-capistrano-not-pant-on-cleanup/", "published_at": "2008-05-05T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb14d960f2", "title": null, "url": "https://jlaine.net/2008/04/22/hate-to-say/", "published_at": "2008-04-22T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb144a8db6", "title": null, "url": "https://jlaine.net/2008/03/11/on-multitasking/", "published_at": "2008-03-11T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb13a553ad", "title": null, "url": "https://jlaine.net/2008/02/13/a-few-photo-fyi-s/", "published_at": "2008-02-13T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1354c78c", "title": null, "url": "https://jlaine.net/2008/02/12/the-stupid-thing-aka-region-codes/", "published_at": "2008-02-12T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb12d59ee0", "title": null, "url": "https://jlaine.net/2008/01/15/note-to-self-when-autotest-fails/", "published_at": "2008-01-15T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb126681ac", "title": null, "url": "https://jlaine.net/2008/01/09/sony-bmg-goes-drm-free-or-sony-bmg-the-dumbest-of-the-dumb/", "published_at": "2008-01-09T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1213bacc", "title": null, "url": "https://jlaine.net/2008/01/03/get-your-pan-ready/", "published_at": "2008-01-03T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb11b01d22", "title": null, "url": "https://jlaine.net/2008/01/01/harvest-time/", "published_at": "2008-01-01T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb10d983f9", "title": null, "url": "https://jlaine.net/2007/12/10/do-not-hire-itechart/", "published_at": "2007-12-10T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb10d3f099", "title": null, "url": "https://jlaine.net/2007/12/06/mikontalolights/", "published_at": "2007-12-06T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb104959f7", "title": null, "url": "https://jlaine.net/2007/12/03/leopard-terminal-doesn-t-like-profont/", "published_at": "2007-12-03T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb1047203b", "title": null, "url": "https://jlaine.net/2007/10/25/letting-the-users-choose/", "published_at": "2007-10-25T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0fc8311f", "title": null, "url": "https://jlaine.net/2007/09/20/gartner-wisdom/", "published_at": "2007-09-20T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0fbc31e8", "title": null, "url": "https://jlaine.net/2007/09/19/iphone-vs-nokia-e90-communicator/", "published_at": "2007-09-19T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0f068566", "title": null, "url": "https://jlaine.net/2007/09/06/making-globalize-play-nice-with-specs/", "published_at": "2007-09-06T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0efc0be2", "title": null, "url": "https://jlaine.net/2007/08/22/langaton-tampere/", "published_at": "2007-08-22T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0ef600d0", "title": null, "url": "https://jlaine.net/2007/08/06/from-rails-ajax-helpers-to-low-pro-part-2/", "published_at": "2007-08-06T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0ebdc5ca", "title": null, "url": "https://jlaine.net/2007/08/03/from-rails-ajax-helpers-to-low-pro-part-i/", "published_at": "2007-08-03T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0e04a4c7", "title": null, "url": "https://jlaine.net/2007/07/31/dubbing-of-the-simpsons-movie/", "published_at": "2007-07-31T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0d3b0baa", "title": null, "url": "https://jlaine.net/2007/07/27/a-tale-of-a-cheque/", "published_at": "2007-07-27T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0d214e9e", "title": null, "url": "https://jlaine.net/2007/07/03/advanced-concepts-in-ruby-on-rails-hosting/", "published_at": "2007-07-03T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0c6fd041", "title": null, "url": "https://jlaine.net/2007/05/28/railsconf-slides/", "published_at": "2007-05-28T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0c59f39d", "title": null, "url": "https://jlaine.net/2007/04/27/going-to-tiomila/", "published_at": "2007-04-27T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0c4eea18", "title": null, "url": "https://jlaine.net/2007/04/25/plan-your-railsconf-sessions/", "published_at": "2007-04-25T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0c425c5c", "title": null, "url": "https://jlaine.net/2007/04/16/dotherightthing-featured-in-san-francisco-chronicle/", "published_at": "2007-04-16T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0c2f0d49", "title": null, "url": "https://jlaine.net/2007/03/27/sad/", "published_at": "2007-03-27T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0b5164e3", "title": null, "url": "https://jlaine.net/2007/03/22/a-tumblin-down/", "published_at": "2007-03-22T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0c007664", "title": null, "url": "https://jlaine.net/2007/03/22/making-cached_model-and-observers-like-each-other-in-rails-1-2/", "published_at": "2007-03-22T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0b2eff33", "title": null, "url": "https://jlaine.net/2007/03/15/hello-and-goodbye-spanning-sync/", "published_at": "2007-03-15T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0a622e05", "title": null, "url": "https://jlaine.net/2007/03/14/ruby-rails-class-in-helsinki-in-may/", "published_at": "2007-03-14T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb09b59f64", "title": null, "url": "https://jlaine.net/2007/02/13/hippy-hippy-gem/", "published_at": "2007-02-13T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb09f3a3a5", "title": null, "url": "https://jlaine.net/2007/02/13/new-on-dotherightthing-com-atom-feeds/", "published_at": "2007-02-13T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0966edce", "title": null, "url": "https://jlaine.net/2007/02/08/form-and-function/", "published_at": "2007-02-08T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb08a40a0d", "title": null, "url": "https://jlaine.net/2007/02/07/nice-and-sunny/", "published_at": "2007-02-07T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb080349a5", "title": null, "url": "https://jlaine.net/2007/01/26/dotherightthing-com-is-live/", "published_at": "2007-01-26T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb07185e3c", "title": null, "url": "https://jlaine.net/2007/01/23/hidden-css-stuff-the-outline-property/", "published_at": "2007-01-23T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb06431893", "title": null, "url": "https://jlaine.net/2007/01/19/finally-take-2/", "published_at": "2007-01-19T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb059b1ae0", "title": null, "url": "https://jlaine.net/2007/01/18/finally/", "published_at": "2007-01-18T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0537bcd5", "title": null, "url": "https://jlaine.net/2007/01/16/dotherightthing-com-news/", "published_at": "2007-01-16T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb048a4539", "title": null, "url": "https://jlaine.net/2007/01/02/apress-blogging-contest-on-ruby/", "published_at": "2007-01-02T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb03e28771", "title": null, "url": "https://jlaine.net/2006/12/20/welcome-cairo/", "published_at": "2006-12-20T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0383f56e", "title": null, "url": "https://jlaine.net/2006/12/07/microsoft-provides-free-ie6-virtual-machine-for-web-developers/", "published_at": "2006-12-07T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb02236817", "title": null, "url": "https://jlaine.net/2006/11/08/beginning-ruby-on-rails-e-commerce-is-shipping/", "published_at": "2006-11-08T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb028544a6", "title": null, "url": "https://jlaine.net/2006/11/08/companion-site-for-the-book/", "published_at": "2006-11-08T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb012e9834", "title": null, "url": "https://jlaine.net/2006/10/26/spam-statistics/", "published_at": "2006-10-26T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0100a57c", "title": null, "url": "https://jlaine.net/2006/10/24/my-rails-presentation-at-openmind-2006/", "published_at": "2006-10-24T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb00976b0e", "title": null, "url": "https://jlaine.net/2006/10/03/installing-ruby-mysql-driver-on-os-x/", "published_at": "2006-10-03T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb00dea73c", "title": null, "url": "https://jlaine.net/2006/10/03/resetting-activerecord-object-columns-in-migrations/", "published_at": "2006-10-03T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0039568f", "title": null, "url": "https://jlaine.net/2006/09/30/installing-subversion-1-4-on-os-x/", "published_at": "2006-09-30T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fb0032046f", "title": null, "url": "https://jlaine.net/2006/09/26/do-the-right-thing/", "published_at": "2006-09-26T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02faff67ec66", "title": null, "url": "https://jlaine.net/2006/09/22/rubyonrails-fi-is-running/", "published_at": "2006-09-22T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02faff423c2f", "title": null, "url": "https://jlaine.net/2006/08/28/rails-blob/", "published_at": "2006-08-28T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fafe5d353b", "title": null, "url": "https://jlaine.net/2006/08/23/railsconf-europe-buzz-1-creating-a-passionate-conference/", "published_at": "2006-08-23T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fafd5f13bc", "title": null, "url": "https://jlaine.net/2006/08/20/peepcode-rjs-templates/", "published_at": "2006-08-20T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fafbe91b6a", "title": null, "url": "https://jlaine.net/2006/08/16/caboose-doc-project-wiki/", "published_at": "2006-08-16T00:00:00+00:00" }, { "id": "01a0d93b-1b98-7089-881b-02fafca18c70", "title": null, "url": "https://jlaine.net/2006/08/16/options-and-opinions/", "published_at": "2006-08-16T00:00:00+00:00" } ] posts Claim your blog
Back to jlaine.net
Blog · corpus.blog/blogs/jlaine.net/posts

jlaine.net

jlaine.net

2026

2015

2014

2013

2012

2011

2010

2009

2008

2007

2006