Syncing your iOS device (either iPod, iPhone or iPad) with multiple iTunes libraries

With Apple's changes surrounding iCloud, managing media on iOS devices has become much easier and it is no longer absolutely bound to a single computer. However, I have still found it tricky to sync a single iOS device with multiple computers (different iTunes libraries) without having to entirely wipe the device first.

I synchronize my iTunes library between two computers regularly, so both machines have up-to-date copy of all media files. Furthermore, I set them up with the same username (but different hostname), so the iTunes media file paths are identical between machines.

Searching Apple forums revealed this solution by turingtest2: apparently, each iTunes library is assigned a randomly-generated "library ID". This identifier is stored on the iOS device, so if it doens't match when connecting to a new computer, it will request to wipe the device before proceeding with the sync. Simply copying my entire ~/Music folder from one machine to the other was enough copy all the iTunes metadata (including the library ID) and my device now happily synchronizes on either machine. For those wanting to save time and not copy their entire ~/Music folder, see the forum post for the exact files you'll need to copy.


Microsoft's Office 2013 licensing changes

I recently gave a few price quotes for a client and in that process, I did some background research regarding the new Office 2013.

The licensing for Microsoft Office 2013 states that copies are installable on a single PC only, non-transferable. If your disk or motherboard fails, that Office installation was tied to the PC and you must purchase another.

I just don't know what Microsoft was thinking. As of last week, was selling copies of Office 2010 Home & Student (3 user) DVD media for $144.99 and Office 2013 Home & Student (single user, non-transferable) for $139.99. If you ignore the non-transferability of Office 2013 and just consider the raw cost per user-license, then Office 2013 is 2.89 times more expensive! Then consider in the fact that should your PC ever fail, you would have to get another brand new copy for $139.99... The cost per user-license of Office 2013 could therefore rise to nearly 6 times as expensive per user-license compared to Office 2010 after your first PC failure.

Many (myself included) saw this as a money-grab and an attempt to force users to their Office 365 subscription-based service, a $99.99 per year subscription grants access to the latest Microsoft Office software for up to 5 users in a household. The pricing scheme for this is a little more reasonable per-user, but a static fee each year means that Microsoft inevitably makes more money... Say a PC lasts 5 years, then they're making 5 x $99.99 instead of selling a single copy of Office for ~$150.

Last week it look like Microsoft gave in to the massive outcry from users and announced an updated clause for the Office 2013 license agreement:

You may transfer the software to another computer that belongs to you, but not more than one time every 90 days (except due to hardware failure, in which case you may transfer sooner).

Well, at least that's a little more reasonable.


Spam comments with Mollom

I have used the free Mollom plan to protect the forms on this site with CAPTCHA or text analysis. For the past few months, it has been working very poorly to be honest. Comment posts that were very obviously spam were getting though consistently and I have been removing 20-30 spam posts en masse about once a week.

I submitted a ticket when I first noticed this happening with Mollom support and got a quick reply, but after my initial replies the request was waiting a follow-up from them for quite some time (and twice, at that).

Today I got news that it was a service-wide issue and it has been resolved. Hopefully you will notice a significant reduction in spam posts! Honestly I am not very happy with Mollom at the moment and may look to other alternatives if this doesn't pan out, but then again it's a free service and it worked wonderfully in the past so I can't complain. You get what you pay for.

The issue was more that I was looking at taking 5-10 clients to their basic paid plan, but after my experience with their customer service I am hesitant to do so. As always, I guess time will tell.


Bootstrap responsive theme

I have been reading a lot of buzz around Twitter's Bootstrap responsive theme and although I am a huge fan of the Omega theme, I think bootstrap has a lot of potential and wanted to experiment with it.

My blog is long overdue for a facelift, so I now present to you my Bootstrap-ized blog! At the moment it is simply using the base theme, but I will be implementing a customized sub-theme shortly. I am interested to hear what you think (and if it does or doesn't work on mobile devices) in the comments!

Update 2013-02-08: I have performed minimal customization to the theme and after working with it for a bit I can start to see Bootstrap's strengths and weaknesses. Although Omega is very flexible and has a bunch of responsive options, I feel like they could use a little more polish; Bootstrap's responsive design implementation feels so quick and smooth and it also scales well at all viewport sizes. I also like Bootstrap's barebone styles (font, text layout, etc) much better than Omega's defaults which I believe use serif fonts (*ugh*). That said, such a thing is very easy to change in CSS and so it's not a huge disadvantage for Omega.

Where Omega also beats Bootstrap (and by a large margin) is when it comes to theme customizability. The Bootstrap theme settings page offers few options and in several instances I found that several common Drupal-specific CSS rules (such .indent) were missing entirely. Omega has been around for quite some time and as a result has excellent integration and provides a plethora options to modify the zone, region and block grid right the theme's settings page.

If I had to do it over I would stick to Omega, but Bootstrap will be giving it a run for its money once it picks up on some of the grid customization tricks Omega has.


Code editor: Sublime Text 2

I have been looking for a decent code editor for a long time, as my favourite was previously Smultron but it's been slewed with problems in newer OS X releases ever since it was discontinued (and then subsequently forked and re-started as a closed-source application). I tried Eclipse, TextWrangler, Coda, and Xcode at different times but each had little things that I didn't like about them so I kept putting up with Smultron's little glitches.

I came across this thread in r/apple on reddit that suggested Sublime Text 2 and I absolutely recommend it to everyone! I have been using it ever since I first installed it.

The UI is very simple and clean and there's no button toolbar giving it a minimalistic feel (which I prefer in text editors; this is where Eclipse failed me). I should also mention that the whole program is very snappy and it responds very quickly to any query, even complex regex finds across several files or editing large files.

It has some really nice features (some very unique) which are worth mentioning (for simplicity's sake I use Ctrl below as the modifier of choice, on OS X simply substitute with Command):

Cross OS with per-user license

This strictly speaking isn't a "feature" but it certainly is worth mentioning. ST2 merits its $59.99 pricetag based on its features alone but what makes it even more attractive is that it runs very well on Windows, OS X and Linux with portable editions available and the licensing is per-user... Use it at work, at home, on the go, on any number of your computers with any OS. Oh, and did I mention you can even sync your packages & settings across all these machines and OSs via Dropbox? Awesome sauce.

Multi-line editing

After trying it in ST2, the feature now seems so obvious and natural that I wonder how I ever got by without it. Each line receives to receive its own cursor and copy/paste buffer, so you can very easily perform multi-line edits or variable renames. There are also several ways to create several cursors:

  • Select a block of text and then use Ctrl+L to select the whole lines, follow up with Ctrl+Shift+L to split each line give each selected line its own cursor.
  • Hold Ctrl and click where you want to place a new cursor
  • Highlight a text symbol (variable, associative array index or other) and matches will be highlighted. Press Ctrl+D to select them in sequence
  • Open the Find Text (Ctrl+F) and enter your query then click Find All

There's a good animated demo of this feature on the ST2 homepage.

Command palette

Press Ctrl+Shift+P to bring up the Command Palette, where various ST2 or plugin actions such as setting file syntax, changing themes, inserting code snippets. The menu updates as you type and displays the best matches to your query. Enter confirms and Esc cancel.

It is particularly handy for add-on packages, as a package may provide some custom snippets or git integration (yes, you can diff and commit)!

Function search

Hit Ctrl+R and start typing a part of a function name. ST2 will filter through all function names in your file and jump to the best match as you continue typing. Enter dismisses the search, Esc cancels.

Package management

ST2 has built-in package management via the Sublime Package Control extension. Simply copy the command from the page and enter it into the Console (opened via Ctrl+`) and it auto-installs. From there, hit Ctrl+Shift+P/Command+Shift+P to install, list or remove a slew of extensions right from with ST2 itself. There's even no need to restart it after installing or removing a plugin, it reloads what's necessary to get you going straight away.

Build system

Although ST2 is a text editor, not an IDE, it does have limited support for compiling & running files directly from within the editor. Its pluggable build system system allows add-ons to supply details on how to compile or run different file types. Ctrl+B runs the one associated with the current file type/syntax. SublimeREPL is a great extension that provides a build system plugin and can also run interpreters as a new tab inside ST2.

Extremely customizable preferences

The ST2 preferences file is simple a JSON-like file where you place the parameters. Getting it set up the way you like may be a bit tricky since there is, at the moment, no preferences UI. That said, ST2 is one of the most flexible text editors I have encountered and practically every aspect can be tweaked provided you can find the configuration parameter's key name.

Edit single file in many places

Smultron had this feature as well but it was horribly buggy so I never was able to use it much... It works flawlessly in ST2. Just select File > New View Into File... and it opens up a new tab of the current file. You can view and edit in different portions, both buffers update simultaneously and undo/redo history works across views into the same file.

Layout customization

Alt+Shift on Windows or Command+Alt on Windows allows you to layout the window in various configurations such as right/left or top/bottom. Triple column/row or 2x2 grid modes are also supported. These prove to be very useful in combination with the multi-view feature mentioned earlier, as you can setup to have 2+ views editing same file at different locations in a single window.