All blogs / Software / engineering practice
Programming Zen
Programming Zen is a blog about programming and emerging technologies, authored by Antonio Cangiano, a Software Development Manager and AI Evangelist at IBM.
- Posts
- 385 from 22 Dec 2005 to 13 Oct 2026
- Posting
- now and then (1 in the last year)
- Kind
- personal blog
- Feed
- https://programmingzen.com/feed/
2026 1
2024 2
2023 3
2021 1
2020 10
- What to Study to Become a Web Developer
- Front-End vs Back-End Developer
- How to Become a Web Developer and Get a Job With No Experience (Guide)
- Removing Duplicates From a List in Elixir
- Specify a Port when Booting a Phoenix Application
- Developing with Elixir/OTP Course Review
- iPad Pro 11″ vs 12.9″: Which One Should You Buy?
- Sorting Results by Specific Values in SQL with CASE
- 4 Tech Innovations That Could Change Smartphones
- IBM Summer 2020 Internship Positions
2019 12
- Get Technical Blogging for 40% off
- New IBM Internship Positions in My Team
- String Length in Elixir
- Elixir Hello World
- Choosing an Executive Laptop Backpack
- Installing rbenv on Zsh (on MacOS)
- Programming on an iPad
- Join My Team at IBM
- Exploring Mathematics with Matplotlib and Python
- 19 Gadgets I Use and Love
- Kindle vs Kobo: Choosing the Right E-reader Ecosystem
- New Book and YouTube Channel
2018 2
2017 1
2016 22
- Programming Zen Will Be on a Hiatus Due to Tragic Circumstances
- So You Want Your Programming Language to Be Popular
- Balancing Your Programming Skills Portfolio
- Dual Booting GalliumOS and Chrome OS on a Toshiba Chromebook 2
- And That’s How I Ended up Developing with a Chromebook
- Developer Laptops in 2016
- 15 Sites for Programming Exercises
- Giveaway: 4 Rails and React.js Ebooks by Arkency
- In Praise of Function Pre and Postconditions
- US Giveaway: Learn to Program with Small Basic
- Notice What You Didn’t Do
- A Language for the Next 10 Years
- 10 Lesser-Known Programming Languages Worth Exploring
- Tip #4 for Young Programmers: Get Familiar with the Command Line
- Survey Results
- Please Take My Programming Survey
- Tip #3 for Young Developers: Master an Editor
- Tip #2 for Young Programmers: Learn Revision Control
- Tip #1 for Young Programmers: Specialize in Something
- Big Data University: Educating One Million Data Scientists
- Data Scientist Workbench: IBM’s All-in-One Tool for Data Scientists
- A Review of the Amazon Books Store
2015 2
2014 16
- Logitech Type+ for iPad Air 2 Review
- Backing up large amounts of photos
- Rails Is Old Hat, and That’s Okay
- 10 Programming Challenges Sites
- Learn New Programming Languages with Project Euler
- On Programming Languages as Languages
- 3 Upcoming Languages That Are Worth Exploring
- 40 productivity apps I use on a regular basis
- 10 Tips for Interacting with the Geek in Your Family
- Choosing a Tablet (aka iPad Air 2 vs Nexus 9 vs Samsung Galaxy Tab S 10.5)
- A Few Thoughts on iOS vs Android Market Share
- Meteor is going to be big
- Learn to Secure Apps in Vancouver, and Calgary SMAC Meetup
- IBM Is Offering Free Bluemix Training Days
- Join My Vancouver SMAC Meetup for People in Tech
- Pebble Smartwatch Review: A Useful Dumbwatch
2013 4
2012 12
- The Good Enough
- A Review of the TV Show Start-Ups: Silicon Valley
- Why I Won’t Be Publishing New ‘Great Ruby Shootouts’
- Join the Upcoming IBM Big Data Developer Day in Boston
- Two Big Data Events in Silicon Valley Next Week
- New jobs available at IBM in Toronto
- New Release of the Ruby Driver and Rails Adapter for DB2
- RubyMotion brings serious Ruby development to the iOS world
- DB2 Express-C 10 is now out
- Discount coupon for the Rails Tutorial (2nd Edition)
- On the Usability of Codecademy
- The Strange Case of John Dillinger and the Fraudulent Apple ID
2011 36
- A Big List of Interesting Programming Books Released in 2011
- Download DB2 Express-C 9.7.5
- The Real Reason Italy Sucks at the Startup Game
- Requiem for a Dreamer
- The Hadoop Programming Challenge Has Been Extended
- My Technical Blogging Book Is Now Available in Beta
- Mobile Development Marketshare Among Hacker News’ Participants
- Learn Hadoop and Get a Chance to Go to Vegas
- An Update On My Technical Blogging Book
- My First Impressions of Android
- Speeding up queries by a factor of 100 or more with DB2 Text Search
- The need for good vocational schools for programmers
- Programming in Objective-C, 3rd Edition is out
- jQuery Air: An outstanding introduction to jQuery
- IBM is Looking for a University Student with PHP skills in Toronto
- 10 Ruby One Liners to Impress Your Friends
- Interview with the Compilr.com team
- The Great Web-Reality Divide
- Installing Python, Django, and DB2 on Ubuntu 11.04
- Installing Ruby on Rails and DB2 on Ubuntu 11.04
- Download DB2 Express-C 9.7.4
- Google I/O developer event in Waterloo, Canada
- Results of the Technical Blogging survey
- Review of Rails Best Practices
- I’m thinking of writing an ebook and would love your feedback
- Running Radiant CMS on DB2 in the Cloud
- FAQ: What programming language should I learn first?
- Programming is a Super Power
- Getting Stuff Done With the Pomodoro Technique
- Interview with Michael Hartl, author of the Rails 3 Tutorial
- Eloquent Ruby Review
- Jenga Driven Development
- Try the next version of DB2 today
- An In-Depth Comparison of the Kindle DX Vs. iPad as Reading Devices
- The Art of Computer Programming, Volumes 1-4A Boxed Set
- DB2 University goes live
2010 39
- Give your programmers professional tools
- The recommended Ruby and Rails book pages have been updated
- In-Depth Book Review: Authoring eBooks
- Why would you use a commercial database anyway?
- StreamSend is looking for a senior (Rails) web developer
- Things I’ve learned from hiring interns for IBM
- Get weekly emails about new Programming books
- The Great Ruby Shootout (July 2010)
- In-Depth Book Review: Practical Clojure
- How to setup Clojure from scratch
- Thoughts on Clojure
- The pursuit of excellence in programming
- The Great Ruby Shootout (Windows Edition)
- Ten recent programming books that will make you a better developer
- A new domain name for Zen and the Art of Programming
- Would you use a Mac mini as your development machine?
- Follow up to my Gmail third-party access post
- Who is accessing your Gmail account?
- Padrino: a Ruby framework built upon Sinatra
- Adobe AIR as the cross-platform solution of choice
- The world according to Android
- Enabling LIMIT and OFFSET in DB2 9.7.2
- IBM releases DB2 Express-C 9.7.2
- Upgrading to Rails 3
- Web or iPhone OS applications to make money?
- Benchmarking MacRuby 0.6
- The most important programming language today
- IBM_DB 2.5.0 with support for Rails 3 is out
- On the iPhone, iPad and Android Market Share
- Rails, DB2 and the Enterprise
- ThinkCode.TV’s English Catalog Goes Live
- A tale of two search engines
- My kingdom for an iPad
- DB2 support for Django 1.2 is here
- Free Python screencast about solving mazes
- Simple suggestions for implementing passwords correctly
- Switching from Feedburner Email to AWeber for my newsletter
- Heads up: IBM is looking for top notch student hackers
- DB2 support for Ruby/Rails turns 2.0
2009 58
- Grab DB2 Express-C 9.7.1 now and join the DB2Night Show
- Setup Ruby Enterprise Edition, nginx and Passenger (aka mod_rails) on Ubuntu
- What is DB2 pureScale?
- Add code highlighting to your Google Waves
- Getting MacRuby’s compiler to work
- The CRTC tries to eliminate ISP competition in Canada
- Benchmarking Tornado vs. Twisted Web vs. Tornado on Twisted
- Installing and configuring DB2 Express-C 9.7 on Ubuntu 9.04 Server
- Improve the speed and security of your SQL queries
- Enabling support for DB2 and Python/Django/SQLAlchemy on Mac OS X Snow Leopard
- Cell Phone Cost Calculator Killed In Canada. Enough Is Enough!
- Installing the Ruby driver for DB2 on Mac OS X Snow Leopard
- Startup for sale on eBay (and it’s a great deal)
- DB2 on Mac OS X Snow Leopard
- Recommended Ruby and Rails books (August 2009)
- Do programmers still buy printed books?
- My latest order of programming books
- How much faster is Ruby on Linux?
- On Scala’s future
- The DB2 adapter now supports Django 1.1
- A faster Ruby on Windows is possible (benchmarks for 4 implementations inside)
- Comparing the performance of IronRuby, Ruby 1.8 and Ruby 1.9 on Windows
- On JRuby’s importance for the future of Ruby
- Why technical marketing is important for programmers
- Serving Django Static Files through Apache
- In defense of ad-based business models
- Reasons to switch to DB2 9.7
- Apple “Genius”
- DB2 Express-C 9.7 and the Django adapter released
- Selling my old MacBook Pro
- Discussing code reading and testing with Dave Thomas, Cory Foy and Tim Bray
- Do Androids Count Electric Sheep with DB2 or MySQL?
- Of labels and limits
- Announcing ThinkCode.TV’s new English newsletter
- TextMate bundle for DB2
- Memoization in Ruby and Python
- Startup Interviews: Zooppa.com
- Ruby 1.9 screencasts plus an announcement
- Screencast on how to install DB2 Express-C on Mac OS X
- The Best DB2 Ever
- Canadians, fight Internet Usage Based Billing (UBB)
- Startup Interviews: Balsamiq Studio LLC
- Better Software 2009 and Pycon Italia Tre
- Why MacRuby Matters (Present & Future)
- Ruby’s Biggest Challenge for 2009
- IBM Cloud Computing Webinar
- Do you read the Rubyist and Rails Magazine?
- IBM’s Python driver is out of beta
- New look and feel. Do you like it?
- Introducing Redis: a fast key-value database
- Scaling Rails Screencasts
- Do you really need Venture Capital funding?
- DB2 support for Django is coming
- Unlocking intermediate resolutions on Sony Vaio FWs
- Sony Vaio FW Series: A Developer’s Review
- Let’s all grow up
- Install DB2 on Mac OS X and give us feedback
- Monte Carlo simulation of the Monty Hall Problem in Ruby and Python
2008 80
- Developers are blinded by the light
- Random thoughts on software piracy and open source business models
- DB2 on Mac officially released
- Download DB2 on Mac
- Learn Merb
- DB2 on Mac to ship before Christmas
- Reflections on the Ruby shootout
- The Great Ruby Shootout (December 2008)
- IBM’s XML Challenge (lots of prizes inside)
- My visit to the Apple Store
- Resolving the gray window when running db2setup
- Merb, Rails Myths, Language Popularity and other Zenbits
- And the winner is…
- The Rise of the Functional Paradigm
- Take this survey and win a free ticket for the Professional Ruby Conference
- Thank you, America!
- Benchmarking DB2 pureXML against 1 TB of XML data
- Pygments TextMate Bundle
- Integrating TextMate and Pygments
- What Arc should learn from Ruby
- Review of the first two Envycasts
- Ruby on Rails at IOD 2008
- Free version of Ruby in Steel
- Don’t alienate developers
- How companies should hire developers
- Advertise on Zen and the Art of Programming
- Django turns 1.0
- A status update
- Ruby on Rails for Microsoft Developers available for pre-order on Amazon.com
- This Week in Ruby (July 26, 2008)
- Goodbye Randy
- Be life savvy: my new non-programming blog
- Rogers has reached a new low
- A close look at three Rails 2.1 bugs
- This Week in Ruby (July 11, 2008)
- Ruby Shootout Status Update
- Ruby and Rails books, two years later (photo)
- IBM’s crazy DB2 videos. What do you think?
- This Week in Ruby (June 26, 2008)
- Heads up regarding the shootout
- This Week in Ruby (June 16, 2008)
- Review of the screencast series The Ruby Object Model and Metaprogramming (episodes 1-3)
- The future of This Week in Ruby
- MagLev handles trees like a monkey
- Let’s create a Ruby Benchmark Suite
- MagLev rocks and the planning of the next Ruby shootout
- WordPress 2.5.1 breaks your Atom feed
- This Week in Ruby (May 29, 2008)
- Random Thoughts on Social Sites
- Ruby on Rails for Microsoft Developers
- This Week in Ruby (May 20, 2008)
- This Week in Ruby (May 12, 2008)
- This Week in Ruby (May 5, 2008)
- Finally on Twitter
- This Week in Ruby (April 28, 2008)
- Agile Web Development with Rails, Third Edition
- This Week in Ruby (April 21, 2008)
- Is the Enterprise world Rails ready?
- On the value of conciseness
- This Week in Ruby (April 14, 2008)
- On The Last Lecture
- This Week in Ruby (April 7, 2008)
- 7 soon to be released Ruby and Rails books
- Announcing Ruby on Crack
- This Week in Ruby (March 31, 2008)
- ‘inject’, ‘each’ and ‘times’ methods much slower in Ruby 1.9 on Mac OS X
- Django’s tipping point
- Using Python to detect the most frequent words in a file
- Losing my blog title (oh no, I’ve said too much…)
- Rails is the best thing that ever happened to Python
- On Rails and DB2
- IBM releases DB2 adapter for SQLAlchemy
- Essential guide to the Ruby driver for DB2
- Ruby.NET is dead
- RailsConf, Arc, Apple and other Zenbits
- Why Engine Yard, Rubinius and Merb matter
- Great Ruby and Rails books
- Ramaze: a Ruby framework that will amaze
- Zed’s Show
- Welcome to IBM, Damien Katz
2007 49
- Installing Django with PostgreSQL on Ubuntu
- How to install Django with MySQL on Mac OS X
- Programmers Ad Community: 50 invites for Adroll’s private beta
- Ruby on Rails 2.0 has been released and other Zenbits
- The Great Ruby Shootout
- More on Fibonacci. Oops, Sorry Lisp… Haskell runs it 5 times faster
- Holy Shmoly, Ruby 1.9 smokes Python away!
- TextMate is the king of Rails editors
- Ruby, Python, Haskell and Objective-C Feed Survey
- Give Ruby.NET 0.9 some love
- Guide to setting up the IBM Ruby and Python drivers for DB2 on Linux (32 or 64 bit)
- Installing DB2 9.5 on Ubuntu 7.10
- DB2 Express-C 9.5 is available for download
- IBM’s Python and DB2 drivers released
- Don’t you feel like this sometimes too?
- Are you interested in a DB2 driver for Lua?
- A great combo of lenses for Canon Digital SLRs that won’t break the bank
- DB2 on Mac
- Python, Django and DB2 Status Update
- Guess who’s back? Finally!
- A preliminary review of three Cocoa and Objective-C related books
- Cocoa is my Cup of Tea
- Desktop Applications are not dead!
- In praise of IronRuby’s Source Code
- The most submitted sites on Reddit.com
- Is IronRuby mathematically challenged?
- The end of my Best Buy saga
- Redirecting Atom feeds from Typo and WordPress to FeedBurner
- Arrivederci Typo
- The Ugly Truth about Best Buy Refunds
- 23 Programming Languages compared through their Amazon book sales
- Ruby and Rails books, Textmate and FastRi
- The Apple approach (aka first impressions of the MacBook Pro)
- On Ruby and Rails Criticism
- Switching to Mac
- Looking for a good laptop for Ruby development
- Getting even more serious about blogging
- PlanetDB2.com and a couple of updates
- Python, Django and DB2: we need your input!
- Haskell Eye for the Ruby Guy
- Ruby Implementations Shootout: Ruby vs Yarv vs JRuby vs Gardens Point Ruby .NET vs Rubinius vs Cardinal
- Top 10 Ruby on Rails performance tips
- Acts As Suggest plugin
- How to run Ruby from Komodo Edit 4
- Put DB2 in your search bar
- January’s goodies
- Typo errors on postponed articles
- Collage of Ruby and Rails books
- Ruby is the Programming Language of 2006
2006 30
- acts_as_one_year_blogging
- DB2 9 for Windows Vista
- Ruby on Rails won’t make it in 2007?
- DB2 on Rails v2.1 released
- Keep an eye on djangobook.com
- CASCON 2006 presentation material
- CASCON 2006: Day One
- A step by step guide on how to install Django with PostgreSQL on Windows
- XML Webcast with IBM’s team plus free book
- Italian Ruby book and cool suggested reading
- Molecule: a much better name ;-)
- Download Ruby 1.8.5 for Windows
- Django is great
- Pure XML Technology in DB2 9
- Typo 4 released
- Ruby.NET Compiler
- Rails hosting review, 7 months later
- Typo and Lucid theme error
- Starter Toolkit for DB2 on Rails Update
- Download the Starter Toolkit for DB2 on Rails
- Putting IBM databases on Rails
- Download Ruby 1.9 for Windows
- Working at IBM
- self.move_to(Canada)
- How to parse decimal numbers within a string
- Solving mathematical problems with Ruby
- Ruby Cookbook: Rough Cuts Version
- Ruby rocks and Java sucks?
- How to exclude an action from the controller’s layout processing
- Rails Hosting review