Tor Flashproxies on your browser

Tor is one of those things that you don’t really need at all until you really really need it. I don’t need it right now, but I still try to help it as much as possible. One of the easiest way to do so is to run a flashproxy (has nothing to do with Adobe!) on your browser – super simple to setup, and effective for people looking for bridges.

The easiest way to use it if you’re a Chrome user is to use the CupCake extension (the initial colorscheme is a bit… geocities-y, but I’ve sent in a patch to fix that). You can also add this snippet to your Mediawiki wiki either as a userscript or gadget. If you’re running a site, you can simply use the snippet on the flashproxy site to have it run for all your visitors.

Experiencing ‘Embrace, Extend & Extinguish’

I am too young to remember Microsoft doing anything that could be considered effective ‘Embrace, Extend & Extinguish’ (my first browser when using internet at home was Firefox 0.9), and hence could never appreciate the general suspicion with which everything Microsoft was viewed with. Google’s handling of Reader has remedied that for me, however. I was around to witness all the events that Ed Bott at ZDNet discusses, and hopefully I have learnt my lesson.

Fool me once…

On Whatsapp

Whatsaapp (and GTalk) has completely replaced SMS for me. The only sore point was that it was not ‘Android’y enough – looked too much like an iOS port, but it worked well enough (and had enough people in it) that my forays into Hike were never long enough. The latest update fixes the design to be a lot more flat and pleasing to the eyes, and I’m quite happy to stick to it. (Plus I just ran into their post about why Advertising sucks, so doubly happy to support them :) )

Android RegEx bug: ‘null’ replacement with Matcher.replaceAll

Android’s Regular Expressions engine is API compatible with the generic Java implementation, but under the hood uses ICU’s RegEx engine. This usually causes no problems, until it does and then you’re sortof fucked, but not really.

On a recent project, a subtle bug in Android’s Matcher.replaceAll behavior bit me. When replacing values of captured groups ('$1'</code,<code>'$2', etc), Android’s implementation replaced a reference to an empty group with the literal string 'null' instead of just skipping it (aka replacing with empty string ''), which is what most other Java implemetations do. The string 'null' is, I think, never the right behavior. And the inconsistency causes unit tests to pass when run on the desktop JRE to fail when run in Android, which is a major pain.

Fortunately Android is Open Source, and I was able to track down the offending piece of code, and just write myself a simple replacement that has the bug fixed:

You’re welcome. Yay Open Source!

Blogging more often, bye bye Twitter

I’ve been mostly off Twitter for a while now, interacting with it rarely, and only on my Phone. While I’ve had a vague feeling of uneasiness ever since they unveiled their now business friendly developer policies, it really hit home when my favorite Android twitter app, Falcon Pro, hit Twitter’s arbitrary user token limit (and Twitter declined to care). That, plus the Google Reader saga have jolted me out of complacency a bit.

It may be cliche, but “If you are not paying for it, you are the product” rings rather true at the moment.

So I’ll mostly be off Twitter (and Facebook too) now. Identi.ca seems inactive, but I will probably give it a shot too. I’m going to pick up the slack by actually blogging instead. Twitter seems to have completely killed my long form text writing ability. My Nexus 7 and bluetooth keyboard will hopefully help bring it back! Twitter is still good for publicity, so I’ll need to find a way to feed my blog links into Twitter.

Choices

They suck. It’s easy when it is ‘useless test to take’ vs ‘GSoC’. Painful for a lot of other things. Ugh.

Open License everything!

Should have done this a while back. Added a CC BY mark to the blog. Will add a notice to the front page as well, stating that all media I produce (when not bound to someone else’s copyright) is CC BY. I think code is already taken care of, but I’ll add a note here saying that all code I release (unless explicitly licensed otherwise) is CC0 Licensed.

Now to actually produce something of value…

(Thanks to Ironholds for the push)