Archive for the ‘Tech’ Category

com.apple.bird getting large?

I was wondering why my disk space was reducing pretty quickly on my Mac, and it turns out my ~/Library/Caches/com.apple.bird/ directory was 92GB in size! Inspecting some of the larger files, I notice that it has a WhatsApp header, which suggests that these are my WhatsApp iCloud backups.

There obviously seems to be some kind of bug as I have files, one per day, from sometime in April. They all start around 800MB and grow to 2GB in size. Each.

It seems like there are other files there too, and I wasn’t sure if deleting it would just make sense. The solution? System Preferences -> iCloud then toggle iCloud Drive off. There is a warning about how it will delete all iCloud documents from your Mac. Its all good considering this is supposed to be saved in the cloud right? Restart it, and voila, you see the directory go down to 0 bytes.

Something up with the bird daemon? I don’t know if brctl would help in any way, so I’m happy there’s an easier way to recover lost space.

Apple’s problem – lacking roadmaps

I’ve been an Apple Mac user for a very long time. I didn’t buy the first iPhone (still believing in Nokia and loving the idea of the open Android, and the second phone was the BlackBerry) personally getting on the bandwagon with the iPhone 4. I did buy the first iPad, at a huge 64GB, because it was the only one available on day 2 of the launch.

In recent times, my main Mac has been the MacBook Air. I have a retina iPad Mini and an iPhone 6 Plus. I also sport an Apple Watch. I am generally satisfied with the Apple ecosystem.

However, I’m in the market for new hardware. I’m quite satisfied with the iPhone 6 Plus, so I have no idea if I’ll get the next iPhone that gets released in 2016. Pricing does play a role – a 64GB iPhone 6s Plus is RM4,199! When I bought the 64GB iPhone 6 Plus, the Ringgit-USD exchange rate was a lot better and it only cost me RM3,149 (really on the upper band of what I’d want to pay for a mobile phone that gets about 2 years of use; the 64GB iPhone 6 used to cost RM2,749).

So what do I want? An iPad Pro with a keyboard is likely something I will grab in due time (probably the 9.7″ version since I’m OK with the old size). Do I buy it now, considering its got a different release cycle compared to its bigger brother?

I would love to grab a MacBook and a Mac Mini, but I want to see if there are new updates to the MacBook Air or if that line gets killed (major reason: retina display). And as of this writing, the Mac Mini hasn’t been updated for 655 days. I’m mixed between that and an iMac to be honest. Its all about the fact that I will get more storage out of these machines (512GB on the MacBook Air/MacBook just isn’t enough!)

The MacRumors Buyers Guide states that everything is either a don’t buy/caution/neutral, with the exception of the MacBook (which as I said, has a retina display but brings other pain over my MacBook Air that I’ll have to price in).

NYT says Apple’s iPhone Sales Drop Again, but Services Are a Bright Spot, while Business Insider says It’s time to take a serious look at Tim Cook’s leadership of Apple. The WSJ reports In China, Apple’s Local Competition Takes a Bite Out of Its Revenue. Bloomberg reports Apple’s China Problem Is That Local Phones are Good – and Cheap.

Which brings me to the main point of what I’m after: clear roadmaps. We need modern hardware and predictable release cycles. Because everyone wants to buy the latest, greatest, piece of hardware since these prices don’t go down and Apple doesn’t discount. I think I’m not alone in wanting this, enterprises want this too (in addition to amazing turnaround times for warranties).

I hope Apple goes back into some cycle of predictability even if they don’t release roadmaps. Like we all know we get a new iPhone in September. I’d like this replicated for Macs as well as iPads. This will ensure they probably start churning out better quarterly results as people start planning their purchases.

Ad blocking

I know I run ads here, but I really don’t think Google AdSense is bad. What is really annoying me? Video, animated graphics, heavy ads, even on sites that I’m paying subscriptions for to read. I’m happy with a subscription and AdSense, but they’re not doing just that! They are consuming my CPU cycles, ensuring that when I’m working on the battery, these tabs are just taking away precious power.

I thought of using AdBlock Plus, but I recall there were some issues with it in the past (maybe around being paid to be whitelisted). So my solutions of choice in the Chrome browser now:

I’m whitelisting some sites, logging into some others (e.g. Forbes), or finding out that some extensions like Buffer is broken (easy fix: on the first site that you try to use the extension on, just whitelist it in Privacy Badger and things will “just work”).

I’ve been on the Internet for over 20 years, and this is the second time I’ve decided to use ad blocking software. Maybe when we’re respected as readers (see: going back to Google AdSense), I will disable the above extensions. Till then, I’m more productive on a battery for just that little longer…

Notes from Config Management Camp 2016

Config Management Camp is becoming a great addition to the post-FOSDEM crowd. Short train ride away from Brussels to Ghent, lots of good content for an overnighter in a hotel (2d/1n). It routinely sells out (the cost is unbeatable, free ;)), so go early. Some quick notes:

Jonathan Boulle – CoreOS – etcd @baronboulle

  • /etc but distributed with a clustered key-value store with GET/SET operations
  • Support SkyDNS, Kubernetes, etc.
  • CoreOS mission is to “secure the internet” and they like to provide automatic updates. Updates = rebooting. They didn’t like ZooKeeper so much.
  • etcd: strong consistency guarantees, simple/fast HTTP API, OSS
  • Uses the Raft consensus algorithm (replicated log to model a state machine; append only log). Concepts: leaders, elections, terms
  • Written in Go, statically linked – etcd daemon and etcdctl cli

Service discovery using SmartStack – John Billings – billings@yelp.com

  • http://nerds.airbnb.com/smartstack-service-discovery-cloud/
  • Load balancing was done via something called create-lb-config and it was a lot of manual stuff which was deployed via puppet. Very labour intensive.
  • They created something called PaasTa as a Paas (https://github.com/Yelp/paasta). And they found out about AirBnB’s SmartStack
  • HAProxy allows you to re-dispatch on connection failures and easy to add connection logging as well. Each HAProxy instance also has a status page
  • http://engineeringblog.yelp.com/2015/04/true-zero-downtime-haproxy-reloads.html
  • Originally Nerve & Synapse made a Zookeper connection per service so it would make Zookeeper slow. Modify Nerve/Synapse to multiplex all operations over a single Zookeeper connection
  • Use Zookeeper + AWS without issue for service discovery
  • etcd would probably also work and supported by SmartStack but they already know Zookeper. SmartStack is conceptually similar to consul/consul-template

Platform Orchestration with Kubernetes and Docker

  • Julian Strobl – julian@endocode.com – experts in linux/OSS dev, trainers, consultants located in berlin
  • They have a 4-node Raspberry Pi cluster that one of them made
  • There used to be a Master/Minion relationship, but now its a Master/Worker relationship when you are dealing in the Kubernetes world
  • https://github.com/saturnism/gcp-live-k8s-visualizer

How CoreOS is built, modified and updated – Brian “redbeard” Harrington, Principal Architect, CoreOS

  • @brianredbeard / brianredbeard.com
  • repo sync – allows for managing many git repos at once
  • cros sdk is used to build Chromium OS, but its truly an SDK (lots of bash scripts that do things the way you want them)
  • OMAHA protocol created by Google to handle updates to desktop applications (eg. ChromeOS, Browser, etc.). There are OSS bindings provided by CoreOS in Go.

Shorter cables

I travel a lot and I one of the things I constantly do is refine what goes into my backpack (and luggage). For this trip, I decided to add a refinement — reduce cable clutter.

Apple gives you 1m USB to Lightning cables when you buy the iPhone or iPad. Its nice, but folding this all is quite a burden even when I have a cord pouch to organise it all. For almost a year now, I’ve had to carry an Apple Watch charger as well.

So why not get shorter cables? Apple makes 0.5m USB to Lightning cables which are much shorter and are all I need. After all, I’m charging on the desk with an Anker 5-port USB charger. Apple decided against making a 0.5m Apple Watch charger, so I’ve settled on the 1m Apple Watch Magnetic Charging Cable.

This is a good setup. I’m saving space when it comes to folding cables. The desk looks neater no matter where I am. I found one caveat though – the 0.5m USB to Lightning cable might not be long enough for you to charge your device on a plane. For this, I still have a spare 1m cable that is attached to my powerbank.

Backing up or taking out your data from Flickr with flickrdownloadr

I’ve been a Flickr Pro subscriber since 2005. I consume 75.36GB of storage, spread across 25,765 photos. I spent a lot of time on it since 2005, creating albums, joining groups, etc. I love the product and I’m paid up till 2018 and do not intend to stop subscribing to Flickr Pro. But I’m worried about Yahoo! and their future.

I read the Wired piece on how to get your photos off Flickr and thought it might be nice to have a backup of photos using their new Camera Roll feature. Simply put, I can get my data out but it involves me clicking “Select all” quite a lot. This is not a good solution naturally.

I found flickrdownloadr, a Mono app. It installed quickly on the Mac, it pulled in a whole bunch of Mono libraries, but after an initial login with Flickr, I would get an unhandled exception (you can’t tell from the GUI, it just crashes silently; I manually ran the app from /Applications/flickrdownloadr).

Unhandled Exception:
System.Net.WebException: Error: SendFailure (Error writing headers) ---> System.Net.WebException: Error writing headers ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: The authentication or decryption has failed.
at Mono.Security.Protocol.Tls.RecordProtocol.ProcessAlert (AlertLevel alertLevel, AlertDescription alertDesc) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Mono.Security.Protocol.Tls.SslClientStream.EndNegotiateHandshake (IAsyncResult result) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
at System.Net.HttpWebRequest.GetResponse () [0x00000] in <filename unknown>:0
at FloydPink.Flickr.Downloadr.Logic.UpdateCheckLogic.UpdateAvailable (FloydPink.Flickr.Downloadr.Model.Preferences preferences) [0x00000] in <filename unknown>:0
at FloydPink.Flickr.Downloadr.Presentation.LoginPresenter.ApplyUser (FloydPink.Flickr.Downloadr.Model.User user) [0x00000] in <filename unknown>:0
at FloydPink.Flickr.Downloadr.Logic.LoginLogic+<CallApplyUser>c__async0.MoveNext () [0x00000] in <filename unknown>:0

It looked like the fix might have been related to this github issue and the best way to fix it was: mozroots --import --ask-remove. I did that. I tried mozroots --import --sync, especially after reading the Mono Security FAQ, but to no avail.

Turns out, the fix was cleaning out Flickr’s Sharing & Extending — there were accounts that had access for companies that had closed down (remember Qoop anyone?). But weirdly, there were two varying “flickr downloadr” authorisations (one had a version string attached to it).

Glad that was fixed but it seems like an app that would take a long time to actually get going. My next plan is to install this on a Linux box and sync it to an always on box. Presumably all this will “just work”, since Mono/GTK looks the same everywhere.

Its a shame that Flickr doesn’t provide an easy exit path. I mean I cancelled my Basecamp account not long ago, and it was not the refund bit that impressed me the most — it was the fact that I could take all my data out, and it would be a generated ZIP file that I could unzip and consume in my browser. Things just worked.

Here’s to Flickr’s long future. And I guess, Yahoo!’s…


i