For a multitude of reasons, I am no fan of ad-supported apps or contents. Unfortunately, I am in the minority there, and major net services overwhelmingly rely on increasingly sneaky ad-placement strategies to “monetise” their eyeball traffic.

Twitter does it in a particularly irritating way, by inserting ads “promoted content” straight into the feed, with only the tiniest of indication that what you are seeing was not posted by someone you know, but by some random paying customer.

Fortunately, if you use Safari on a mac, there is an easy fix for that:

  1. Open a command shell.
  2. Copy-paste the following two lines (make sure to hit return at the end):

    echo '.promoted-tweet {display:none;!important;}' > ~/Documents/hide_promoted_tweets.css
    defaults write UserStyleSheetEnabled 1 && defaults write UserStyleSheetLocationURLString "~/Documents/hide_promoted_tweets.css" && defaults write WebKitUserStyleSheetEnabledPreferenceKey 1 && defaults write WebKitUserStyleSheetLocationPreferenceKey "~/Documents/hide_promoted_tweets.css"

  3. Done!

Note 1: you can easily modify the above to highlight/mark promoted tweets rather than hiding them completely, by changing the ‘display:none’ part (e.g. replacing it by ‘background-color:yellow‘).

Note 2: alternatively, if you don’t want/know how to run command lines in OS X:

There’s nothing new in whining about tech monopolies: the companies that enjoy them and the doom that awaits us for foolishly trusting them.

At this point, we have all been at either end of a speech on the dangers of letting Microsoft/Google/Facebook’s dominion over our life go unchecked and unbalanced. A speech that usually ends with one party’s eyes glazing over and excusing themselves to the restroom.

The problem with standard denunciations of these potential abuses is that they tend to rest on abstract, distant and mostly theoretical arguments. It’s not that we don’t care about fair competitive practices and healthy markets, it’s just that we care a lot more about convenience and not messing with things that run kinda-ok. If the Galactic Empire could ensure that the Alderaan-Tattooin express shuttle runs on time, most of us would be fine with their hegemonic market practices, and tell that troublemaker Luke Skywalker to go seek therapy for his Freudian issues instead of blowing things up.

But the reality is that, if you use any of the services provided by these monopolistic behemoths (and even if you don’t), there is a statistical certainty that it will bite you in the arse at some point. And when it does, that monopolistic behemoth status means you will be absolutely without recourse.

Ever felt somewhat powerless, troubleshooting your internet connection with some underpaid cable company support rep? Now picture the same thing if you were an ant and the support rep a 100 foot-high concrete wall, and you may have an accurate allegory of dealing with Google or Facebook as an end-user.

Allow me to illustrate with two absolutely-true real-life examples of the hopeless situations one deals with, when a glitch occurs in the Matrix:

Freshly back from two weeks in Kyoto where I attended a Machine Learning Summer School organised at Kyoto University. The whole event was impeccably organised and featured some of the biggest names in the field lecturing on fundamental aspects of machine learning: two highly productive weeks leaving barely enough time in the evening to catch up with friends and enjoy life in my former hometown…

A few random thoughts and observations:

Can we instigate a rule wherein any internet company with more than 10 users that is found not to be using salted encrypted hashes for their user password database… gets to have its website shut down, servers sold for scrap and entire web development team slowly impaled on sharpened Aeron chairs?

People keep harping on the stupidity of end-users in their choice of passwords, but with proper hashing and salting, even password123 would make a halfway-decent password.

Rekindling with childhood activities fifteen-some year later… Turns out unlike bicycle, you do forget ice-skating. Couple hours later I was merely happy to stay up and move forward at a reasonable speed without breaking any bones. We’ll leave the figures for next year…

During Winter, Kyoto Aquarena (near Saiin, in the South-West of the city) turns its very large swimming pool into an ice-skating rink. Entrance is ¥1400 and skate rental is ¥600.

Pro-tip: show up after 5 on weekends and you get discount entrance and considerably less kids running into you at every turn (crowd thins out after 4 and they cut the ice again at 5).





If like me you deal with your typical Japanese administration office on a regular basis, you probably receive your fair share of documents, some of them occasionally packaged as a Zip archive

If also like me, you are not using a Windows machine, but a Mac running OS X or some flavour of Linux, you routinely end up with files bearing such poetic names as “Åuäwà ò_ï∂ä÷åWèëófiíÒèoìÕ.pdf”, “äwà ê\êøìÕÅyÉfÅ[É^Åz.xls” etc. This is due to some incompatibility between the way each system stores Japanese characters1 and the fact the Zip format was never conceived to handle such differences. Not a big problem if you have one file, bit tedious if the archive contains 300 of them.

In the spirit of sharing the fruit of my last productivity-sink effort to fix that problem, I present you with a small script that takes such a Zip archive as input and correctly extract all the files (with their properly encoded filenames):

  1. To be specific: Windows seems to be using good-old antiquated Japanese-only SJIS, whereas OS X and others prefer spiffy universal encodings like UTF-8. []

A very nifty trick I discovered while working on making KanjiBox accessible to blind users.

I previously mused that an iPhone/iPod made a much better and more cost-efficient language-studying tool than any dedicated electronic gizmo out there. This is now a thousand times truer…

One of the coolest features brought by version 4 of iOS (the software that runs on all iPhone/iPad/iPod Touch) is also one of the least known and used: VoiceOver is a built-in screen-reader geared at making Apple devices accessible to blind and visually impaired users. If you are such a user, you know about it already and will learn nothing here. For everyone else, this feature still has much to offer!

VoiceOver supports a dizzying collection of languages: from English to Japanese, Mandarin and Cantonese, most European languages, hell, even regional accents (English comes in US-, Brit- and Aussie-accented variants… Canadian-French as well). While the quality for English is about what you would expect from late-90s speech synthesis, the quality of some other languages is vastly superior. This is particularly true of the Japanese and French voices. To my very limited ear, Mandarin and Mexican-Spannish also sound quite close to human quality (Spain-Spanish, on the other hand, is pretty robotic).

As it turns out, your iPhone (/iPad/iPod Touch) comes with a native pronunciation teacher, out of the box. For hard-to-read languages like Japanese or Chinese, it can be a life-saver: helping you decipher SMS, emails or web pages, instead of relying on clunky, time-consuming, copy-pasting to a dictionary app.

Below are detailed instructions on how to enable VoiceOver and use it to read any text in any language on your iPhone (setup should be near-identical for iPads and iPod Touchs):