Tails: quick review


, , , , , ,

Like all trendy, privacy-conscious, NSA-suspicious self-respecting journalist, I am interested in Tails, an operating system that aims to “preserve privacy and anonymity”. But I didn’t have the inclination to try it until recently.

Tails uses Tor for anonymity, GPG for email encryption, and OTR for chat encryption. You can set them up in standard Linux distribution (like I have done), but in Tails all of these are already prepared for you and ready to use. It is also designed to be run from CD or USB drive, thus won’t leave any trace on the computer.

As the screenshot shows I run it on a virtual machine (VirtualBox instance), which is not really recommended for typical usage. But I am only curious about how it looks. It seems Tails is based on Debian Squeeze, which is really old (it uses, for instance, GNOME 2). But the kernel is rather modern (Linux 3.12), which ensure it to be compatible with latest hardware. The browser is also quite up-to-date (based on Firefox 24).

Because I have only used this OS for two days I haven’t tried feature(s) like persistent storage. I may provide further updates, so stay tuned.

Update: It turns out that persistent storage requires two things: Tails Installer (which is only found in Tails images) and a USB storage, with space larger than 4 GB. I failed at the last requirement, because I only have got 2 GB flash drives. No luck yet.

Wikipedia and voter education



April 9 2014 will be the day of election in Indonesia. From quick observation I find there are still a lot of people who can’t make up their mind yet. Who to choose? Who is the suitable candidates as members of local and national legislatures?

Many will just select the party, not the candidates him/herself. This simplifies things: voters do not need to concern themselves with track records, programmes, etc. Just the party. Just the political tribe. This is not ideal (at least not to me): sometimes the parties do not rank the candidates by their capabilities, but by  connections to party leaders. Good, promising candidates are put in lower ranks. In this case it’s better for voters to choose the candidate directly. In the case of regional representatives (DPD) you can’t choose parties, so information about candidates is even more important.

The Election Commission (KPU) have actually put the information about the candidates on their website. But as usual it is poorly presented, and the information is sparse. Several sites and apps have sprung up to offer better presentation and visualisation, but the data are still mainly sourced from the KPU database.

Here I think Wikipedia can, and should help. It is a crowdsourced platform (so every one can contributes), well-known, and also easy to search. Wikipedians can create entries for politicians and public office holders, and document their successes and flaws. Wikipedia biography articles usually reference public sources (news, government publications, etc), so they are very easy to check. It won’t really replace election apps and sites (such as presented in pemiluapps.org), but it can be complement and perhaps an additional database to such apps.

Unfortunately Indonesian Wikipedia coverage of the country’s politicians is rather sparse, and existing articles are not always of good quality.  Adding and editing politicians biography articles can be a theme for future Wikipedia editathons.  It might be too late for choosing MP candidates, but it still can be done when the results are out and the elected candidates are known. Over the time Indonesian Wikipedia should have better coverage of Indonesian politicians and help the voters to educate themselves in the next election.

On that Pywikipediabot presentation


, ,

So I agreed to do a presentation on Pywikipediabot for Indonesian Python community. The only problem was I hadn’t really understand it yet. I also didn’t really trust my ability in doing (and reading) Python. Luckily there was still time (a month) before presentation. I should have got plenty time for preparation.

My first step was to take a quick refresher course, A Gentle Introduction to Python from Mechanical MOOC. Because I had exposure to Python before I didn’t really follow the exact time table. I picked some topic I didn’t really understand, mainly object-oriented programming part of Python, and I did the exercises.

Of course this didn’t really cover the Pywikipediabot framework itself, which was rather intimidating to me. I had used it before in limited way, and I found it rather easy to use (not to read or modify though).  But some changes had complicated things (at least for me).

First is the move to git from subversion. I had read that git was hard to use, and I rather dreaded the change. The pywikipediabot manual had been updated to cover the git usage, but I found errors if you didn’t do daily update (I only tried to update about a week after initial installation).  Subversion was rather more forgiving in this respect. I just deleted and did the clone operation again.

Second the configuration (and installation). There are steps that needs doing after downloading the whole framework that was not documented (the most important one is setting PYTHONPATH). Well at least for the new version of Pywikipediabot. The documentation of the framework was for the old branch (the compat branch), and there are some things that needs to be updated. It seems to be better now.

So for the last days before presentation I decided to tackle the framework itself. I didn’t think I would be really able to master it, so I focused on some things I really wanted to do. That is, mass creating of articles. Admittedly this can be done with other tools (it seems to be easier to be done with Auto Wiki Browser for instance) but Pywikipediabot seems to be more flexible for other uses.

My strategy for creating articles was to put necessary  data in a csv (comma separated value) file, then read the records from the file to patch together a wiki formatted text which can be uploaded to Wikipedia. To read the csv file I use csv module from Python standard library, and Pywikipediabot is only necessary to upload the text into Wikipedia.

The script itself is quite simple. I’ve put my presentation online, where you can see yourself the implementation of the strategy. I intended to create articles on our members of parliament, but I couldn’t find good structured data for it. So I did manual data entry just for five MPs, which served the purpose for demonstration.

The difficulty for finding good database of MPs lead me to interest on Open Data, and encouraged me to attend a meetup about that topic on 4 September. But that will be another blog post.

I am rather pleased to agree to do the presentation. First I am much better motivated at programming Python now. I also find some interesting projects to do, like learning to scrape data from websites. My interest on data journalism is also rekindled

Ingress, four months later


, ,

I wanted to write about Ingress some time ago, but I hadn’t really got around to it. Perhaps I was too busy playing. I have installed Ingress in January and messed around with it, but I got really serious about it in February.

If you don’t know what Ingress all about, take a look around the web. Plenty of web pages can be read for introduction. After four months and have reached the highest level possible, I am not really interested in explaining much about the game itself to newcomers. I’ll just say here that it is a multiplayer Android game, and often dubbed as augmented reality game. I’ll just focus on how it changes me.

At the beginning I tried not to have much interaction with other players. I am a lone wolf after all, and rather uncomfortable interacting with new people. But it was then clear it would be easier to advance to upper levels with the help from other players.

So I began to socialise with other players, mostly from my faction (Enlightened) but also from the adversary (Resistance). Some players (agents in Ingress terminology) are in the thirties, lots are in the twenties. Some are even younger.  They are usually interesting characters, although some of them can be irritating. Along the way, I make new friends and acquaintances. Most are outside my usual social circle, although there are one  or two exceptions (well, actually maybe four).

A lot of active players are passionate about the (roleplaying) game, and sometimes there are clashes. Later changes to the game demand even more coordination from the agents, so the game is getting more social than ever.

Unlike other videogames which can be played in front of the screen, Ingress forces you to move around. So, I move around, like other players too. I walk a lot, and uses public transportation more. It gives me reasons to go to places I don’t normally go, like Pulau Untung Jawa (see the linked video about an awesome project we did back in early June)

I started to notice more details about the City: statues, museums, cemeteries, monuments. People watching is an old hobby of mine, but I began to observe some other people that usually not interest me: street pedlars, security guards …. and petty criminals. I know gated communities exist, but after playing in Tangerang I saw them for the first time. Suffice to say I think I know Greater Jakarta  better now after playing much Ingress, which is nice if you live and work here.

Adventures in DVD ripping


, , , , , , ,

I haven’t found a good system for ripping DVDs in Linux until recently. I have tried AcidRip and DVD::Rip. It somewhat works, but I am unsatisfied with the interface. Both are also seems unmaintained (last updates are in 2010). Some modern portable devices (phones, tablets) don’t have DVD player, so it is desirable to convert DVDs to more appropriate digital format.

HandBrake is a nice option, but it has several problems. First it can’t read encrypted DVDs without external help. When it can read DVDs at all (unencrypted, or, it can’t copy the content to hard disk first, which is my preferred procedure. Fedora repositories don’t have it, and the developers have stopped offering Fedora builds since version 0.9.8. Last Fedora builds offered are for version 0.9.5 (from 2011).

Even so I decided to use HandBrake to rip some DVDs I borrowed to a more readable format for tablets. First problem is to find a convenient program to copy DVDs to disk. Various options exist: for command line program I guess you can use dd or ddrescue, but I have only tried vobcopy. It works, but coughes on some bad DVDs.

K3b is often touted for working with DVDs. It can write DVD images (ISO format) to disk, but again it stutters when facing scratched DVDs. A more flexible application is K9copy. It can copy DVD chapters selectively, a feature I use when I found a DVD can be copied well except for the last (unimportant) chapter.

For subtitles you can use the subtitle tracks from DVD (VOBSUB). This usually means you shouldn’t only copy the VOB files (which is the default action of vobcopy), but also the subtitles. The easiest way to ensure this is to copy the whole DVD content.

The subtitles in DVD are actually pictures. If you prefer text format, you can either run text recognition program on it or just download available subtitles from sites like AnySubs. Handbrake can handle both format: VOBSUB and text (SRT) with no problem.

DVD ripping is a very computationally intensive task. I found that HandBrake consumes almost all computing power from the processor.  It needs about 30 minutes to 2 hours to convert the DVD, depends on the quality setting you choose. The trick is to find a setting that do the task in convenient time length without compromising the quality too much.

2012 in review

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog. Not really interesting report, nevertheless, I’ll share it with you, dear readers.

Here’s an excerpt:

600 people reached the top of Mt. Everest in 2012. This blog got about 10,000 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 17 years to get that many views.

Click here to see the complete report.

Reading the data journalism handbook



At last I found the time to peruse the data journalism handbook. For me this kind of journalism is interesting: I am a journalist (although not a very good one), with some interest and (slight) education in programming and math. I have skimmed the book before, and it gave me the impression that data journalism needs exactly those skills, plus some knowledge in graphics. So I read the handbook more closely to get better idea about this kind of journalism.

Other than my own background, my interest in learning data journalism comes from the desire to find out how computers impact modern journalism. A lot of discussions have been made about how the Internet influence the publishing world, how it obsoletes and marginalises printing media. More recently, more attention has been paid to social media. But I haven’t heard much about discussion about how computers (and Internet) impact the process of journalism itself. There are some mumblings about “citizen journalism”, which is enabled by easy Internet access but it seems it doesn’t have significant effect.

Statisticians have long known that computers make it easy to analyse data, and more recently computer scientists have developed algorithms and tools to learn from the web and social networks. The tools have been used for various purposes, like decision making and business intelligence. With data journalism, journalists use data analysis and code to tell stories. The handbook tells how data analysis can change journalism: for example, journalists can shifts their main focus from the first ones to report to telling us what a development might actually mean.

In the handbook we can find some case study and examples how media organisations did data journalism to tell their stories. Sadly there are not enough details in the book if you want to start doing data journalism, but it is a great starting point. I am still digesting the information in the book. Hopefully I can tell you more about data journalism.

Jakarta’s public wi-fi


, , ,

A typical Jakarta citizen will know that the gubernatorial election has finished. The current governor (soon to be former) Fauzi Bowo doesn’t get his second term, and Jakarta will get her new governor. A more observant, technology-oriented person will note that one of the last acts of Fauzi Bowo administration is the  installation of free public wireless access points at several places in Jakarta.

I only noticed the existence of the public wi-fi system yesterday, when I was trying to use a borrowed iPhone on the go. The phone was supposed to be connected to XL cellular data network, which seemed to be nonexistent not long after I paid the fee. The iPhone seems to refuse to connect to other data network other than 3G (EDGE or GPRS might have existed). I might haven’t been able to use the phone on the the Transjakarta bus if the access points hadn’t been installed yet. Not all Transjakarta bus stops have the access points: it seems only the ones on the Kota-Blok M route get it. I also noted the existence of several access points in the Monas area.

The Wi-Fi system may be helpful to me, but I really question the usefulness of the access points at the bus stops in general. People generally don’t sit down and open their laptops or tablets at such places, and more often will access the  Internet using their phones, which have their own connection to cellular data network. As my friend said, adding more buses to  the Transjakarta fleet will be much more useful to Jakarta residents than free Wi-Fi at the bus stops.

Udacity CS101 impressions


, , ,

If you’ve read my previous post about online free courses, wanted to join one, but haven’t done so yet, well it’s too late. The enrollment has been closed now. In fact, one of the courses has ended this week. Time to stop and do some reviewing.

I am not doing well. Model Thinking class seems interesting and intellectually challenging, but I’ve missed some quizzes. They are not that hard if you pay attention to videos then read the notes and additional materials. I simply do not have time (or failed to motivate myself to allocate the necessary time).

Algorithm Design seems not that interesting at first, but after I dive in it is quite fun. And hard. So hard that I haven’t even finish the first assignment, although I am already on my way into the third week’s materials. I have already covered topics about algorithm analysis, mergesort and quicksort. I doubt I can obtain the certificate of accomplishment, but I intend to complete the assignments.

The only course I am certain to complete is the Udacity’s CS101. It was aimed at pure beginners. I am not really one, so you can say I am a wimp for choosing the course. Still, it was interesting and harder than I thought. The course taught several basic computer science concepts, and basics of Python programming language. I’ve read and practiced Python a little bit, so I didn’t really find that part hard. I’ve also learned some programming in formal courses, and concepts like variables, for-while loops and conditions are familiar.

The challenging parts for me in Udacity’s CS101 were concepts like hashing and recursion. I’ve read about recursion before, but never had the practice. Hashing is only a hazy concept for me. Combined with Algorithm course from Coursera, this course gave me good grounding in recursion and good introduction to hash tables.

In the discussion forums, it was said that the course was somewhat easier than the version taught by the teacher in the University of Virginia. Still, I learn some useful things.


Get every new post delivered to your Inbox.

Join 892 other followers