Archive for April 2014

The importance of having a working knowledge of your products

Rob Young is back in the MySQL ecosystem (now working at Percona), but he was previously at MongoDB (formerly known as 10gen), and he made a really interesting observation:

10gen places a huge importance on all employees having a working technical knowledge of its products. 

I joined 10gen with years of application and database development experience, mostly using relational models. While most concepts apply to a document-oriented model there are enough technical differences that leave me as a complete novice when it comes to specific MongoDB details and its practical use cases. I have spent my first month in a series of self-guided and instructor led technical training sessions and a practical, real-world bootcamp that have proven to be a welcome quickstart to my understanding and working with the technology. This will pay great dividends as I get more overwhelmed with my true PM duties.

I cannot agree more with this stand that MongoDB takes. All employees should have a working technical knowledge of the products that the company makes. 

I remember back in MySQL AB, it was a requirement that support engineers spent their first 3 months on support requests but were also required to get certified during that timeframe. That’s fine and dandy when you have a certification program that you’re selling ;)

I think its important for everyone to know what their products do, instead of just the engineering/consulting/sales engineering teams. It is important for the executive team to know what products they really offer. It is important for the sales team to go beyond what they are given in product brochures. It is important for the marketing team to know what they’re marketing (else they just spout garbage that no one listens to).

Kudos MongoDB for the smarts!

Four MariaDB books available now

It’s quite exciting to see the amount of MariaDB books out there (first GA release of software: February 2010).

MariaDB Books

From left-to-right:

  1. MariaDB Crash Course (August 2011)
  2. Getting Started with MariaDB (October 2013)
  3. MariaDB Cookbook (March 2014)
  4. Real MariaDB in Korean (April 2014). (note)

MariaDB 10.0.10 uploaded to Debian experimental

If you’re watching the NEW queue, you’ll notice that MariaDB 10.0.10 has been uploaded targeting Debian/experimental. Package description, and to think the bug was only opened on April 2nd – pretty quick turnaround.

Ubuntu 14.04 – some MySQL ecosystem notes

Following my previous post on the launch, I just rolled Ubuntu 14.04 LTS on an Amazon EC2 t1.micro instance (not something you expect to run a database server on, for sure – 1 vCPU, 0.613GiB RAM). If you do an apt-cache search mysql you get 435 return result sets with the default configuration (trusty: main & universe).

If you do apt-get install mysql-server, you get MySQL 5.5. You enter the password of choice, and before you know it, MySQL is installed (a SELECT VERSION() will return 5.5.35-1ubuntu1).

Next you decide to install MariaDB. I run an apt-get install mariadb-server. It pulls in libjemalloc (for TokuDB) and I expect future releases to ship this engine by default. You enter the password, and you get a new message (as pictured).

MariaDB Ubuntu 14.04 LTS
 

I verify my test database that I created exists. It does. A SELECT VERSION() returns 5.5.36-MariaDB-1. The innodb_version returns 5.5.36-MariaDB-33.0.

I’m curious about MySQL 5.6 now. So I run apt-get install mysql-server-5.6. Not so straightforward. 

start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.6 (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
Errors were encountered while processing:
 mysql-server-5.6
E: Sub-process /usr/bin/dpkg returned an error code (1)

Looks like MySQL 5.6 is more memory hungry… I edited /etc/mysql/my.cnf to ensure that innodb_buffer_pool_size = 64M (I increased this to 128M and it worked too) was set (there was nothing in the default config) and re-ran apt-get install mysql-server-5.6 and it started. My test database was still around ;-)

I wanted to make sure that MySQL 5.6 isn’t more memory hungry just on that instance so I created yet another clean t1.micro instance and did an apt-get install mysql-server-5.6. Same error. Reported lp#1311387.

Nothing to report in particular about Percona – 5.5.34 Percona XtraDB Cluster (GPL), Release 31.1 (Ubuntu), wsrep_25.9.rXXXX. One thing is for sure – if you’re playing around with the ecosystem, installs and upgrades aren’t exactly straightforward.

MySQL Community Awards: Community Contributor of the Year 2014

MySQL Community Contributor of the Year 2014As one decompresses from the active month that April brings to the MySQL ecosystem, its worth noting that I received a MySQL Community Award – Community Contributor of the Year 2014 award at the Percona Live MySQL Conference & Expo 2014 in Santa Clara. I was extremely happy and thankful to receive such an award and I still am. Thank you MySQL Community.

My reason for winning, now immortalised:

Colin’s list of service to the MySQL Community goes back almost 10 years. He was a community engineer starting in 2005, chaired some of the O’Reilly MySQL conferences, ran the MySQL projects for Google Summer of Code. As a partner and Chief Evangelist for Monty program, he continues to promote and grow the MySQL ecosystem. Though it’s his job, he goes above and beyond, driven by his passion for open source and MySQL.

I was amongst very good company (congratulations to all the winners). Thank you to whom nominated me, and to the committee for vetting it. Frederic wrote a nice post with a little selfie. Tomas expresses heartfelt thanks from Oracle.

Anyway, not to rest on one’s laurels – while its great to be given an award after years of being involved in the community, I will work harder in the coming months to make things better in any way I can. Thank you again, MySQL Community.

(more pics of the award: #1, #2)

Apps should be conduits for web services

Beautiful designed apps should be conduits for web services. Or provide some form of “desktop” capability. Sync is important.

Brent Simmons recently wrote of Marco Arment

You know him from Tumblr, Instapaper, The Magazine, and (coming soon) Overcast.

You may think of Marco as an iOS developer – but every single one of those apps is a web service.

This thought process works very well with a presentation John Gruber gave at Web 2.0 Expo NY – watch the 10 minute video on Apple and the Open Web. He describes Apple as a “ht” company: they’ve embraced HTML and HTTP.

I look at my iPhone and think to myself what apps I use (i.e. have an icon on my screen) that are web apps:

  1. Google Calendar (direct web app, opens a browser window)
  2. RunKeeper
  3. Fitbit
  4. Withings
  5. Cardiio
  6. MyFitnessPal
  7. Chrome
  8. Mail
  9. TripIt
  10. Evernote
  11. Instapaper
  12. Kindle
  13. NewsBlur
  14. Hello (by Evernote)
  15. Skype
  16. Instagram
  17. Vine
  18. Rdio
  19. Spotify
  20. Google
  21. Reminders (stock Apple app, wonderful sync at work)
  22. Safari
  23. Facebook
  24. Foursquare
  25. Twitter
  26. KakaoTalk
  27. Line
  28. Messenger
  29. Hangouts
  30. Telegram
  31. Tweetbot
  32. Google+
  33. Dropbox
  34. 1Password
  35. Expensify
  36. MyTeksi
  37. Uber
  38. YouTube
  39. Paper
  40. Bloomberg

What isn’t a web app? Photos (though there is an iCloud Sync that I don’t use – I prefer it going to Dropbox), Camera, most of Apple’s standard apps (of course, FaceTime, Notes, Calendar – they all sync), DocScanner (syncs to Dropbox, but has no web app behind it), Snapseed, Camera+, 360 (has a web component though I never use it). Music/Podcasts theoretically sync with the web, but again, not my use case. I don’t consider Google Authenticator a web app either though I use it in conjunction with the web. Messages has iMessage but there isn’t a web interface (yet?).

We can argue that the messaging apps aren’t really web services. KakaoTalk/Line have desktop clients. Whatsapp is notoriously mobile-only. Viber/WeChat seem to be mobile only for me. Telegram leads the way by having a nice Chrome browser plugin. Skype is a desktop app.

That makes the majority of my apps that I use, really, web apps. My phone is a conduit to the Internet. This is why I consume data and WiFi.

My iPad is not much different – I use it a lot more for reading, and that includes the FT (fully HTML5 web + mobile app), WSJ, NYTimes, New Yorker, The Economist. OK, there’s GoodReader, iBooks, Zinio for offline reading too, a lot more magazines, and some office software – the iWork suite (which syncs to iCloud). A cool app like Penultimate (now free after Evernote purchased them – again syncs online).

This is the success metric for an app. No point building an application to have a F1 racing timetable (I get that from F1.com or a simple Google search). No point building an application that collects Malay proverbs (I can search for that if I was interested; or if it was the English context, I’d just look up wikiquote).

Games seem to be an exception to this, but as I have never played games and don’t intend to start (I don’t grok the mind of a gamer, sorry), I’ll pass on overall commentary. 


i