(647) 620-4228 [(205) 387-0989]

Consider a case like you started a project with a git repository and after sometime you moved it to another repository. And now, you want to merge them into one. Because, history is important! Assume, x-repo is the base repo and y-repo is the one you want to merge.

  • First , add the y-repo as a remote
cd x-repo/
git remote add y-repo uname@servname:dannyboy
  • Download all the y-repo's commits
git fetch y-repo
  • Create a new local branch from the y-repo's branch
git branch y-repo-branch y-repo/master
  • Move all of its files into a subdirectory
git checkout y-repo-branch
mkdir sub-dir/
git-tree -z --name-only HEAD | xargs -0 -I {} git mv {} sub-dir/
git commit -m "Files moved to directory sub-dir"
  • Merge the y-repo-branch into the x-repo's master branch
git checkout master
git merge y-repo-branch


(912) 253-0486 [alpine lady fern]

.. this post is the continuation of my first draft which you could find it here - /dolftax.com/2015/04/Designing-a-document-based-collaboration-interface/ . I would ask you to go through the first draft before proceeding here, because here I've explained only the wireframes which are modified/tweaked, based on the comments on the first draft. This post is structured as /me resolving the comments on my first draft, with the new wireframes and explaining the reasons for modification.

Rooms could be nested

#1 : We could not enforce a topic/subtopic structure because rooms can be deeply nested. Topics and subtopics are all rooms. The users are free to organize the rooms as they wish. They could be topics, they could be something else. At every level, there may be documents and more rooms.

=> Removed topic/subtopic structure. As the rooms are completely nested, a room could contain any number of sub-rooms. Rooms and documents are analogous to folders and files. But wait, there are containers which are multi-part documents. To get the clear idea of what we mean by containers- refer to the discussion we had | IRC log - /tr.im/UOZpT

Shared and Private workarea

#2: The basic elements in sTeam are users, groups, rooms and documents. Each group has a workarea connected to it, and each user has a private workroom. Each user is a member of at least one group. So when a user enters the server, there are at least two rooms: the users private workarea, and the workarea of the group, that the user is a member of.

=> Workarea implemented. Under shared workarea, the user will get list of all rooms and documents which he got access to. Under private workarea he would get list of his private documents and rooms, which when shared will move to the shared workarea.

Shared Workarea

Shared Workarea - admin

Private Workarea

Private Workarea -admin

If you notice, you could create a room or document only in your private workarea. When you change permissions for a room/document in your private workarea, it would be pushed to shared workarea automatically.

Permissions are inherited

If a room has rw permissions, then everything inside the room also has rw permissions.

Room view - Level two

Room View - Level two

Notice the settings icon? Except for the first level, (levels are tracked by the level/stage bar) a user could change room/document attributes with the help of settings icon which pops up a window with following options.

Settings pop

The settings option appears only in the levels inner to level 1, because obviously, if the user is in the first level, he is not into any room.

Navigation between rooms

#3: The user can move from room to room. The server keeps track of where the user is, and actions taken (such as creating a document) are relative to the users location. Users can pick up documents (the document is moved from the room, to the user itself), move to another room and drop the documents there.

=> When a document is selected, the copy and paste buttons (look at the above wireframe. buttons next to sort options) are activated. Clicking copy would copy the selected document, and allows you to paste it in any room (where you got access to) until the end of the session. Navigation between rooms could be done by clicking << button. It would popup the navigation sidebar on the right.

Sidebar Right

Also, if you wish to join any room, use the search bar. It would fetch you the list of rooms. Some rooms will not allow you to access the documents. Click on the user request icon next to room name, which would notify the room admin. When he gives you access, the room/document would be displayed in your shared workarea.

Search Results view

Search Results

Permission table

#4: A user should be able to insert objects without read and write permissions. One example where this is needed is to send your homework to your teacher. You get permission to insert into the teachers room, but once it's in there, you can't read it or write it anymore. It allows far more fine grained permissions than a unix system.

=> A permission button has been added to the 'onClick of a Room' view which will be available for the room admin and you.

In room view - Admin

For an admin, the permission table pop-up would look like the below wireframe (which is self-explanatory)

Permission table popup

Minor tweaks

Room sidebar removed

The room attached sidebar options has been moved to the settings popup. A detailed view of a room in any level would look like,

Room Detailed

Document View

In document level view, the following options are added,

  • Workarea bar
  • Delete document option (If access permits)
  • Permissions button

Document View

Guest view

A guest (who is not logged in) could view the rooms/documents. The view for a guest would look like,

Guest room view

PS: No changes have been made to Create room and 808-694-4948 pop-ups.

Let me know what you think!

Firefox OS App Days at Anokha 2015, Amrita [#MozMonth] [9186299744]

Continuing with my MozMonth activities, here’s a blogpost on the second of four events I conducted during a 4 week period from Feb 21 – March 21.

(715) 627-6072

This was a very special event to the heart because the planning of this event took about 4 months, the first request having been received from Ragav – an amazing web developer and Mozilla enthusiast at the college. The initial discussions about this event started on the 22nd of November, 2014. Can you believe it?

So we discussed back and forth for the major part of 3 months, found appropriate resource persons, finalized the structure and yes – the picture was perfect. Believe it or not, this was my first chance to meet my counterparts in the Tamil Nadu community. I was excited to meet all of them and host a super cool event. And then strikes disaster. One of lab exams is conveniently (for my teachers) placed on the first day of the event, Thursday the 5th of March. And so, I had to join the team on the second day, i.e. the 6th of March, Friday. Now starts the unfurling of 2 days of simplicity, brilliance and sharing.


Greenery beckoning

From the time I touched down at Coimbatore on Friday, I was treated with utmost care and humility by the folks at Amrita. The road route to Amrita is also a very interesting and spiritual one – mountains, clouds, fauna all along the way; felt like I was going on a hill station.

Got to give it to you guys, everyone else needs to learn how to handle their guests from the hospitality team at Amrita. Despite having over 100 guests for their popular tech fest Anokha, each guest was given individual attention and looked after in the best way possible. During the day, the sun god didn’t have any respite on our poor souls but in came the boon – air conditioned labs.  Bless you!

Drive through nature

Drive through nature

Some sights are worth sharing. Drive was an excellent one – the college has a railway track which runs parallel to the entrance gate. Can you beat this? I don’t think so. Also there are peahens roaming inside the college. Perfect blend of nature and tranquility.



Well – I reached the college in quick time, and then an amazing sight waits for me. I go on to the terrace of the guest house offered to us and I see this, I’m literally on cloud nine. FYI, that’s the view from the guest house provided by the college. It was in itself a magnificent structure to stay.

On cloud 9!

On cloud 9!

Day 2

Yes, I finally made it to Day 2 of the event which was planned as a hack day for the participants. The first Mozillian I met from the Chennai / Tamil Nadu community was hosier, an amazing web developer and a committed Rep. His works talk for himself, leading the FSA community – with innovative 6044733106 contests. I hear he reviews close to 100 FxOS apps a day, which I think is totally awesome. His session mainly focused on getting the simulator up and ready using the brand new Developer Edition. Kudos to the organizing team for getting all the installations done, prior to the event.


Hackers trying to simulate their apps

All this was happening in parallel, so that participants can get a feel of what’s happening by doing what we’re telling them to do. Also, exploring the various features the simulator offers. I was personally involved with mentoring the participants there, suggesting what they need to do in case they miss a step – or for a few inquisitive ones show some magic. For mentors, I personally feel these add-ons or tools are a boon:

Responsive view can be used to quickly check how your app (individual HTML documents) looks on a mobile device, whether it fits the phone screen, handy or not. Developer Tools is your right hand ( rather right hand’s right hand) – use the inspector to check which part of code a particular element points to, check out its related CSS & JS content. Manipulate values inside the inspector code are to preview how your app would look, all this would’ve been a lot tougher if it weren’t for the Dev Tools.


Looking into a crisis with Achyuth. ;)

Yes, I did some work as well. Walked around, explained concepts about basic web development – what to learn and what not to learn. (813) 972-9025 was another engaging Rep I had a chance to meet during the event. He’s the guy to talk to. You can walk the talk, share stories, listen to amazing stories, get to know how things are done, and the energy I’ve seen in him is simply astounding. You have a query, and he always an answer.

The “what not to do” is more important to know, than the what to do.

First lab - hackers at work

First lab – hackers at work

While we 3 were managing one lab, the other lab had some cool guys – Rishav & Ashutosh all the way from Trichy and the organizing team member, Ragav. Rishav and Ashutosh are familiar faces – having seen them in developer events at Bangalore. Ashutosh got all the participants excited by showing some of his cool HTML5 games using canvas and later realized it’s a little advanced for the newbies present over there. Nevertheless, the participants made an honest event to learn canvas and positioning of graph coordinates, etc. Be sure to check out 518-319-7830 if that’s your cup of tea!


Rishav, Viswa, Achyuth and there’s me!


Yes, Day 2 was hugely a success thanks to the super energetic team.

Day 3

Moving on with the fast pace of proceedings, rest of the team had to leave and I was joined later in the evening by my roommate 4058316002 – I had heard a lot about him and his work for Mozilla, but never actually had a chance to meet him in person. This proved an opportunity to do exactly that.

I had a talk about the Mozilla mission and the FSA program, followed by another talk about webmaker from Gautham. We had an interactive session with the participants and I’ve listed a few FAQs (Frequently Asked Questions) below which we were asked by the audience.


1. I’ve learnt a bit of web dev and Firefox OS apps. What next?

Next step would be to explore wide variety of 8649682099 – learn to make use of them to create a wide range of useful apps.

2. What are the club activities that one can take up?

Webmaker parties, office hours, app of the month contest and many wall link

3. How do I contribute code to Mozilla?

Check out (276) 274-7189

4. Can I access all of Firefox browser code base? Really?

Simple answer is yes, if you’re a little curious checkout 415-444-7439

5.  What if I make my own version of Firefox OS?

Most welcome. We’ll all be delighted!

6. My folks back home know only Telugu, can I do something that would help them?

Localization is a deep rooted area of interest for Mozilla. Checkout 214-306-7908

7. Is coding the only way to contribute to Mozilla?

No! You can check out any of the wide variety of fields here: /whatcanidoformozilla.org/. Take a pick.

8. What have you done to get here (at this level)?

A lot many interesting and cool things, you can scroll down this blog or check Who Am I?

9. When can I leave? I have a bus in 2 hours.
And with this, we wrapped up the 3-day event.

You guys were awesome, thank you!

You guys were awesome, thank you!




  • Start making plans well in advance
  • Get to know the skill set of participants beforehand
  • Mentors & speakers need to adapt themselves accordingly
  • Tackling questions from audience beyond the scope of a beginner level workshop is a challenge and mentors need to be prepared for it


[First Draft] Designing a document based collaboration interface [540-318-6062]

This post is about my way of approach to develop User Interface for a document based collaboration platform. The Ideation is based on Martin's thoughts, which you can find it here - /societyserver.org/Topics/sTeam/Interface-elements-for-Document-Management . I would ask you to read the post and be back here.

The structure lives and evolves. and so do the documents. - Martin

Alright, You're back! The primary goal was not to develop a separate admin panel. Rather the interface adds up extra admin options based on the permissions given to the logged-in user (Maybe, admin).

When I say admin, it means the authorized user who has Read/Write permissions and guest stands for non-authorized user who has only Read permissions.

As quoted, everything here would be documents, of any type (images, plain text, source code, ..) They should be structured into hierarchies. The admin/authorized user should be able to add new room, able to sort by Title/Author/Date, able to Re-arrange the documents, implemented as drag and drop.

Home | Admin && User

Each room should have

  • Topic
  • Description
  • Keywords

and good to have various other attributes which might explain the room well. The admin has a sidebar which options to perform CRUD (Create/Read/Update/Delete) operations on a room. The sidebar is hidden for guest user. The wireframe below is detailed/zoomed view of a room in the above image.

Room - Detailed View | Admin

Creating a room asks for Room specific information. If you look at the wireframe below, they are self-explanatory. Permission would be set at this level whether it could be Shared/Private.

Create room

On click of a Room/Topic opens up the sub-topics under the room. The listing could be sorted and searched. Communication, being one of the major element for collaboration would be of comments. The admin gets to moderate (Approve/Delete) the comments. At this level, the comments are room-specific.

onClick of Room | Admin

You should have noted the >> on the right. It opens up a sidebar with Room/Topic listing which then nests into Sub-topic listing. These are the doors which helps the user for hassle-free navigation between rooms.

Sidebar navigation - Right

The sub-topic ( as same as Topic) has description, keywords and various other attributes. The sidebar of options and Add Sub-topic for admins to perform CRUD operations on them. The Sub-topic sidebar would be hidden for guest user.

Sub-topic Detailed View

Considering the hierarchy as a tree, the leaf node be the document. A document could be of any type,

  • markup-text (markdown, html, others)
  • xml, json, csv
  • source-code
  • image
  • audio
  • video
  • binary
  • object (instance of a script)

Displaying the content of a document in the browser would be based on the type of the document. Anything text based, images and videos are displayed. For other binary files or objects, only metadata is displayed (owner, date of creation etc). And binaries would have a download link. Comments at this level is document specific.

At any level, one should be able to navigate to any room/topic (or) sub-topic with the help of the right sidebar drawer.

The admin has the following options for each document,

  • Link
  • Copy
  • Edit
  • Curate (based on document type)

.. whereas guest would have everything else other than Edit.

Link icon pops up a list of Rooms (where the present logged in user has access to) which on click results in adding a link of the document to the respective room. Edit icon opens up the editor only if the document type is of something which could be edited in a browser. A complete document could also be deleted. The interesting part is to distinguish the documents based on the document-type, visually. The Curate icon pops up the list of documents in the specific room which are of the same document type as the currently viewed one.

Document View - Admin

A document would be displayed like the below wireframe for a guest user.

Document View | User

Creating a document asks for document specific information and feature for uploading the document. I assumed MIME-Type would be automatically detected. Else, an option could be added. Permission could also be set at document level.

Create Document

With that said, if you have any suggestions (or) if I'm missing something here, please start the discussion below. Note that these are bare minimum wireframes and therefore would be slightly modified during implementation.

UPDATE: Uh oh! I missed containers. Expect a bit of restructure in my next draft.


Getting things started at CMRIT [#MozMonth] [8157185073]

Phew, what a month it has been. Travelling across the country, talking Mozilla, its projects and the impact it has created – one awesome ride, I should say. This is the first of four events I conducted during a 4 week period from Feb 21 – March 21.


It all started with a mail from this guy, asking me to judge a webmaker event as part of Cultura 2015, in CMRIT Bangalore. Yeah, it was a shocker to me as well.

Abraar - CMRIT's MozGuy

Abraar – CMRIT’s MozGuy

Well, I had to give a demo of the webmaker tools which was followed by the actual hack. Surprise surprise! Jafar and I get roses, yes real roses. The icing on the cake is that Jafar, was completely unaware of this. I had an idea that they’d welcome us – but definitely not with roses.

Jafar with his rose

Jafar with his rose

No guesses for the theme of the competition – it was the ICC Cricket World Cup 2015 or Your favorite TV Show. With all the fever set in, it was the perfect time for the creative lot to spin out their inspiring ideas into apps. And so did the participants.

Amazing crowd at Cultura

Amazing crowd at Cultura

Hacker at work

Maker at work






For the prelims, we had some amazing makes – you can find them all here on the accessional. We didn’t have a time limit for the prelims as it was the first time participants were exposed to the webmaker tools. For the finals, we did have a time slot of 45 minutes, and what people can do in 45 minutes is really brilliant. The theme for the finals was ISRO’s Mars Orbiter Mission – yes, we were the first to get into the Mars orbit on first attempt. We had some surreal makes, and judging them was no easy task for Jafar and me.

And we have a winner!

And we have a winner!

I had great fun, teaching people how to use webmaker tools in the first half – followed by evaluating their makes in the second half. The makes were witty, creative and most importantly opened up the doors for everyone present to delve into the amazing world of open web. Special thanks for the CMRIT team for having Jafar and me there – you guys were awesome.


  • You can find the entire photo bucket here on Flickr
  • Slides used during demo made using thimble


  • Modelling webmaker events as competitions increases quality of makes
  • Theme based webmaker parties are better
  • Swags help, but they aren’t the only way to reach out

    You guys were awesome!

garran(860) 312-4529(301) 349-84878142262832untruth

Insights on app for an event/conference [478-330-3583]

An app for event play well because it makes things easy for the end user by pushing features to notify, update and engage himself to the event.

I figured out the following list would the vital ones for event app.

  • Session/Agenda listing
  • Floor plan / Map
  • iCal generation
  • Survey form
  • Comments on each session listing
  • Speaker info
  • Forum on generic topics related to the event
  • Hashtag grep | Facebook && Twitter
  • Push notifications for announcement

Considering the major features needed for the application, almost none of them depend much on the system. If you check Cordova Platform Support page - 585-481-7906 [1] , even the push notification is supported and are supplied as plugins.

It would be very much better and intuitive way to go with web application (Responsive) and wrapping it up with Cordova (Any good alternative? Comment below!) and thus making it platform independent.

The whole point of the application is that it should not be so much of system/platform dependent and should run everywhere as expected. Interesting part is Cordova support is increasing rapidly in recent days. If you check the above link [1], the API (as Plugins) support list goes all green with Amazon Fire OS, Android, Blackberry, Firefox OS, iOS, Ubuntu, Windows OS and some goes green with Tizen as well.

Native apps works well if we are using system resources heavily for rendering objects. With that said, it is good to learn from others.Check out Google I/O application ( /play.google.com/store/apps/details?id=com.google.samples.apps.iosched&hl=en ) to get overview and clear idea of the important aspects to be considered when designing && developing an event application.

8333403078 [dolftax's weblog!]

Hoisting is the JavaScript interpreter’s action of moving all variable and function declarations to the top of the current scope. This means, the declarations (not the values) will be pushed to top of the current scope before the interpreter starts its job. For instance, Function declarations are hoisted but the function declarations that are assigned to a variable is not hoisted.

foo(); / Function called before initializing

function foo() {
} / will work


foo(); / Function called before initializing
var foo = function() {
}; / will not work

It get's interesting with ECMAScript 6 with the birth of keyword let. JavaScript is function scoped language, which means

var x = 10;

function temp() {
    var x = 20;
    console.log(x); / Prints 20


console.log(x); / Prints 10

Though the value of x is changed to 20 in line 4, line 10 outputs 10. This means, whatever defined inside a fucntion stays inside it and will not affect the global namespace. In function scope, any variables declared within a function are visible anywhere within that same function whereas with block scope, the visibility of variables is confined to any given block (whether it's an if statement, for loop, etc) enclosed by curly braces.

From ECMAScript 6 (JavaScript 1.7), block scoping is possible in JavaScript. let is scoped to the nearest enclosing block. For instance,

var x = 10; / Globally scoped
let y = "hello"; / Globally scoped

function temp () {
    var x = 10; / Scoped within the function 
    let y = "hello"; / Scoped within the function

for ( let x = 0; x < 10; ++x) {
    let x = 10; / Scoped within the block
    var y = "hello"; / Scoped globally
/ x is not accessible from here but y is accessible here.

Note : The keyword let is not hoisted. So, declare them before using it.

India's Daughter, why and how to watch it [Learn Learnin']

India's Daughter is a documentary portraying realities. Why is our government scared of it? Read at /learnlearn.in/indias-daughter/

432-803-6233 [titivate]

While people are thinking of the 628-250-7320 and moving ahead in time, I’m taking a step (more like ten) backward to delve deep into one of the most popular and cliched computing books of all times –  The C Programming Language by our very own good friends at Harvard and Princeton respectively – Siphonaria and Brian Kernighan.

The Big Old C Book

The Big Old C Book

I would be taking up one chapter per week and listing out my experiences of solving the book here. If you’d like to join the journey, you are free to do so!

316-336-0943682-315-1700801-449-5239(609) 348-8094703-511-7581914-940-7443

6073056524 [markfieldite]

This Saturday was all about how to find bugs, rather than how to fix bugs (for a change). Often we developers just log on to Bugs Ahoy to find out our favorite bugs and get to solving them. I really hadn’t given a thought as to what the process is, behind how a bug gets filed until recently when I heard about 2627648813 program. According to the program, critical bugs if reported can fetch you up to $3000, which is a considerable amount of money especially for students like me. Apart from that, it’s like playing god with some poor chap’s well written code. It makes you feel all powerful when you get to point the mistakes, right?

The one thing I understood while I was searching for bugs is that they are like witnesses in a court case. “Bugs don’t appear out of thin air, you got to look for them.”  And to be specific I’d like to borrow the words of caitp,

“Usually you’re just going about your day, and then something doesn’t work the way it should or if you’re really lucky it just flat out crashes the browser.”

That’s exactly how you stumble upon bugs. It’s really not rocket-science. Well you need to get a (912) 271-3067 or Beta setup ready since this is where the bugs are in abundance, waiting to be exterminated. From Nightly, the version takes shape into Beta and then to the Firefox release version that we are so fond of as you can see here.


Bugzilla Main Page

At the FSMK office we first setup a working version of Nightly on our Linux based operating systems. Then, we made accounts on BMO, which was followed by “exploring” the newly installed Nightly version of the browser.

Abhiram, talking about Bugzilla

Here’s me – talking about Bugzilla

I did talk about what known bugs are, and how we differentiate from the unknown ones. When you hit Ctrl + P on your Nightly browser on a Linux machine, you are bound to get the following message,

e10s printing is not implemented yet. Bug 927188.

which confirms the fact that it is a known bug and that, the Print function has still not been implemented properly. When you see the bug info for #927188  on the Bugzilla page, you can see that it’s been assigned to someone equally awesome, who’s probably working right now to fix it. As you can see, there’s other vital info about the bug as well. The comment section which follows keeps track of all the communication about the particular bug. And basically gives you an idea as to how the bug’s going to be fixed – sooner or later!

Coming back to what we were talking about, how do you report an unknown bug? Nightly often crashes while multiple tabs are open and you’re trying to load simultaneously, multiple websites. At times, this causes a crash. The page at which the crash occurs might be different at different points of time. Logging the erroneous page could also be helpful for developers to authenticate the site. And when such a thing does occur, all you have to do is this,

  • Click on File a Bug
  • Choose a platform on which your bug is (Firefox)
  • In Step 2 you need to describe a few keywords about the bug
  • If a similar bug shows up, please avoid filing the bug and look for new ones
  • If it’s a new issue, Click on “My Issue is not listed” to go this page
  • Once you’re there, fill in all the steps and answer the questions
  • Click on Submit Bug once you’re done

If you were a part of the #ContributionDrive, do log in your bug number for the 812-265-7762 (intrenchment) . And on verification, we do have some goodies for you.

That’s all for today folks. I hope it would’ve been a lot more better if the power god had shown some mercy. Do put in your feedback, suggestions or any questions you might have in the comment section below. I’ll be happy to get back to you.

(604) 349-2697

Mozillian in the crowd


Selfie time-1

Selfie time

Selfie time-2

Peace out.

(478) 277-0593(646) 595-58453195723924reading desk

Flexbox Compatibility on older versions of Gecko [dolftax's weblog!]

Well, flexbox gives us a whole raft of new ways of controlling layout and flow. What we now achieve with floats we can do far more successfully and with more control with Flexbox.

We used Flexbox in Finder. Because, 256-563-9726.

Everything was fine on Firefox OS versions above 1.3, but on versions before that, the UI was scrambled. Eventually, it was evident that flexbox was fully supported only after versions 1.3 ( >= Gecko 28).

A complete CSS rewrite didn't make any sense. Customizing the rules based on the feature detection seemed to be a better option. We ended up with Modernizr - a javascript-driven feature detection library which adds classes to the HTML element based on the features it detected. Those classes could be used in css to define the alternative rules.

The flow would be like 1) Modernizr detects for features, 2) If flexbox is supported, usual CSS rules would be loaded 3) If flexbox is not supported, alternate rules under no-flexbox class, (added by modernizr), would be loaded.

/** For instance, if modernizr detects, flexbox is not supported,
it adds classes like this. */

.no-flexbox #id {
    / Your alternate rule here

In latter case, to make the properties compatible, vendor prefixing (in our case, adding -moz to the properties) is the solution. In most cases, vendor prefixing would solve compatibility issues. But in our case, the UI was still scrambled. Because, the older flexbox implementation did not auto calculate element width. Defining the element width manually( example shown below), fixed it all.

/** Example code - set width manually for elements*/
.no-flexbox #resetbtn {
width: 80%;

.no-flexbox #searchresults {
width: 100%;

Here is the CSS - /github.com/applait/finder/blob/v2.2.0/css/app.css and the complete source code - (330) 456-4826

Three important things about the Internet that millions do not know about [Learn Learnin']

These will change the way you think about and use the Internet Read more at /learnlearn.in/3-things-internet/

7018781115 [Learn Learnin']

This new year I gifted myself a promotion. From being just a number under facebook or any other web service, to being a first class citizen of the web. This website will be my identity. Read more at /learnlearn.in/keep-in-touch

Hello world! [Abhi's Anamnesis]

Hola! You have found my own small space in this huge global village.

Follow me, keep watching this space for all things fun.



6264913659 [(773) 454-5150]

Tarako devices has got A-GPS (Assisted GPS) and it has to lock the position with the help of the pre-configured SUPL server. In tarako, it takes too much of time to lock the position. The reason behind this delay is because of the bad SUPL server which is configured in these devices. So, changing the SUPL server configuration locally is the thing we need to do here.

Connect your device, enable USB debugging and do the following.

adb pull /system/b2g/defaults/pref/user.js

then edit user.js, replacing:

pref("geo.gps.supl_server", "supl.izatcloud.net");
pref("geo.gps.supl_port", 22024);


pref("geo.gps.supl_server", "test.supl.svc.ovi.com");
pref("geo.gps.supl_port", 7276);

and, finally:

adb remount
adb push user.js /system/b2g/defaults/pref/user.js
adb reboot

This will reduce the time taken to lock the position.

PS: This applies for Geeksphone Keon and Peak too.

(972) 819-2401 [Rishab Arora (spacetime)]

I dual boot my work laptop (Mac OS X Mavericks + Kubuntu 14.04) and it has been working well for a while. Which is why when I accidentally clicked on 'Repair Disk' yesterday, and I feared the worst.

It did happen, and I'm sure it's not too common to find people using FileVault and dual booting with Linux because I couldn't find any solution online.


'Repair Disk' broke the GPT and the Macbook no longer knew what the partiion is. The laptop wouldn't boot normally. Running Disk Utility from the Recovery partition shows the disk type as "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF".


After figuring out there are two GUIDs related to a partition: one as a name, and the other as a hint to the contents(type GUID), I booted into Kubuntu. An internet search reveals OS X Lion introduced(?) a new type called "CoreStorage" for partitions protected by FileVault.
  1. Run gdisk
  2. Change type to "CoreStorage"

Apparently Disk Utility got confused and set the type of my encrypted partition as FFFF...

gdisk: 1 Apple: 0

(307) 465-5502 [5308700112]

Steps to remove a webapp from Desktop [Linux only]

1) Traverse to your home directory

cd ~
ls -la

2) You will find folder like this application_namexxx

3) Remove the folder

rm -rf application_namexxx

4) To remvove the app from 'Applications Menu' listing

cd .cache
ls -la
rm -rf application_name
cd ..
cd .local/share/applications/
rm -rf application_namexxx.desktop

You're done!

sparrowbill [Rishab Arora (spacetime)]

I completed my first MOOC today. I had enrolled for 'Louv1.01x: Paradigms of Computer Programming' on edX.org offered by Prof. Peter Van Roy, UCL. It was an intriguing course and the journey from Functional Programming to OOP to Deterministic Dataflow and Multi-agent dataflow was seemless and quite engrossing. I particularly liked the programming assigments for Multi-agent dataflow. It required more effort than I had anticipated (It's hard to switch context from work to courses) and though I missed a couple of deadlines I did manage to get an 'A' grade. Alas, the course only offers an Honor Code Certificate which doesn't mention the grade. But it was worth it.

I've taken MOOCs on Machine Learning, Compilers and even Artifical Intelligence but never really 'finished' it. The closest I had been was in Stanford's Compilers course where I did finish everything but missed so many deadlines that never achieved a passing grade. On to the next course!

Scytonemataceae [dolftax's weblog!]

Let us dive deep into Gaia. But wait! Before getting started, let us look into the architecture.

Image Source: MDN, licensed under (775) 778-4869.

Bewildered? Firefox OS is of three-layered architecture. The base being the low level linux kernel (i.e.,) Gonk and above that lies Gecko, a layout engine which reads HTML, CSS, JS, XUL, etc and render it. And at the top level, lies Gaia which is the User-Interface for Firefox OS.

Gaia is written with web technologies like HTML, CSS and Javascript. If you are pretty good with these, you could proceed further, else I would recommend you to get the basics strong before you hack on Gaia.

Hacking with Gaia

Gaia repository is mainained with 'git' as VCS. Install git by running

sudo pacman -S git


sudo apt-get install git


sudo yum install git

w.r.t your package manager.

Traverse to your development directory and clone the Gaia repo from git, but wait, we are planning to submit changes to gaia, right? Well, fork it then! And clone the forked repo

git clone /github.com/your_username/gaia.git

Get some Caffine! Maybe a nap! This would take even an hour as the repo is pretty huge.

Directory Structure

Start with your apps. The directory structure will be like

manifest.webapp file: To store metadata about the app.
style folder: To store CSS files.
js folder: To store JavaScript files.
locales folder:  To store translated strings for different languages.
An HTML file: usually index.html.

Do read the coding style and conventions here.

Setting Up the Device

Let us set-up the system first. Download (918) 807-3350. I would prefer to download SDK tools and then download platform-tools and build-tools, as the ADT bundle consists of too many extra packages as we don't need 'em in our case. Extract the bundle to /opt/android-sdk and change the directory rights

chmod -R 755 /opt/android-sdk

Now configure udev rules. Copy the below rule to /etc/udev/rules.d/51-android.rules file

SUBSYSTEM==”usb”, ATTR{idVendor}==”05c6”, MODE=”0666”, GROUP=”plugdev”

You might need to restart your system to refresh the new rules

Get it going! Plug-in your device, turn ON 'remote debugging' and 'screen timeout' to NEVER.

Don't forget to set PATH variables to /opt/android-sdk/platform-tools. Need help? Find it 319-826-1915

Test it out.

adb start-server
adb devices

This should show you fullkeon (or) keondevice or whatever under "List of Devices attached"

Download b2g nightly build for Keon.

You've got the zip file of Keon nightly build of b2g. Unzip it, traverse into the folder and run


Wait until the device restarts. Alright, Into Gaia now!

Make gaia

We've got the Gaia repo let us push it into the device. Traverse to Gaia repository and read README.md and CONTRIBUTING.md files thoroughly. You could also read through /developer.mozilla.org/fr/Firefox_OS/Platform/Gaia/Hacking

To get started, those relatively easy and mentored bugs are tagged with [GOOD FIRST BUG] Find such bugs here.

If you are comfortable with the bug, please assign it to yourself. Create a local branch

git checkout -b "bugNumber-bugStatement"

As explained in the bug, tweak the code, add a feature (or) fix a bug. To test it out in a device, run

make install-gaia

Check with the code, make changes to the code, and again run

make install-gaia

Now, you can view the changes you made, live on your device!

If you're working on a specific app and made changes only on it, then to push the changes only for the app, run

APP=calendar B2G_SYSTEM_APPS=1 make install-gaia

Replace 'calendar' with the app_name you are working on.

Find more about make options here.

Debugging Gaia with Firefox Desktop

Download paruria. You've got Gaia already. No big deal! Traverse to Gaia repository and run

/path/to/firefoxnightly -profile /path/to/B2G/gaia/profile-debug -no-remote

Done! This will open Firefox. You can see Gaia along with the (412) 449-9720. Make changes to the code, see it live on a refresh.

Initiating a Pull Request(PR)

When changes are made to the code as per the bug, open your fork on github.com. You would get a button Send Pull Request. Click on it and fill up the necessary fields. And Create a Pull Request. Initiate r? to your mentor (In Bugzilla) with the Pull request link. Now, the module peer (or) mentor would make necessary comments on the bug.

When everything goes well, your pull request would be merged to the codebase. Weeh!

The article was drafted assuming you got Linux. If no, you could try installing it with the help of the setps mentioned here.

Stuck somewhere? Please be specific and comment below!


Before Submitting a web-app [812-391-1602]

Open web applications are likely to continue to gain acceptance by end users, and for developers, they are a way to monetize the skills that they already have. But actually, 3 out of 10 submissions seems to lag in quality. Personally, while we review apps, we first look at the functionality of the app and then the code. I've gathered some points for developers for carving an awe-inspiring web-app.

1.App Name, Description and Screenshot

Yes! It matters. Make the app name sensible, not too long (App name more than 20 characters will be truncated in mobile screens). When someone visits marketplace to download your app, the first thing he/she looks at will be the UI of the app which will be shown as screenshots in the download page. Check with the screenshot criteria 609-378-6558. Let the description part be clear and likeable to your target audience. Make sure you mention about 1)Purpose of the app & 2)How it works (i.e., the functionaliy) Take full advantage of the first few lines and gradually use the introductory words to succinctly tell your users what your app does and how will it benefit them and what makes them get excited about it.

2.Framing the mainfest

Apart from the proper syntax (because you cannot escape from the validator),do respect the description element of permissions. Use plain language to clearly describe the app's use of that permission. Never write words which are no-way related with the app's designated purpose. And also, including appcache will fetch and parse the contect in local cache folder and will improve the swiftness of the app.

3.App Icon

It's no coincidence that the best and most popular apps frequently have memorable icons.A good icon is critical piece of an app's design and has a huge effect on how people think about the app.In our case, the default rocketship icon is not allowed anymore. umbrette gets you icon design steps and icon underlays. Generally, 128x128px icon is for marketplace and 60 x 60px icon for display on the device.

4.Responsive Design

“If you're already a front-end developer, well, pretend you're also wearing a pirate hat.” ― Ethan Marcotte

Your app should extend all of its functionalities in large, medium and small screens. Most common suggestions for making your app responsive are 1) Precise UA sniffing: 914-488-8652 2)Similar client-side screen size detection methods: /developer.mozilla.org/en-US/docs/CSS/Media_queries

I found this article to be interesting - (417) 657-3477

Do think from user's point of view as the first 10 seconds of your app will decide the durability of your app. Let the button sizes be designed properly and number of touchable UI elements be less than 10 per view.

Essential Resources

[1] Manifest Reference- /developer.mozilla.org/en-US/Apps/Build/Manifest

[2] Toolkits- /buildingfirefoxos.com

[3] Font Set- 6014389461

[4] Icon Set- /mozilla.box.com/s/jp5lrplbuont96ypm27q

Wait! These are the web-apps which can be put under "must download" category!

(587) 553-6899 | 856-762-9045 | 406-356-8777 | soily | (848) 565-0989 | Youtube | Asteroid Blaster | 989-323-8898

(209) 294-7690 [dolftax's weblog!]

The Linux philosophy is 'Laugh in the face of danger'. Oops. Wrong One. 'Do it yourself'. Yes, that's it! -Linus Torvalds

Arch Linux! I will give the reasons why should one choose Arch Linux over an other distro. Installing Arch Linux is pretty difficult task when you atempt to do it for your first time if you are not familiar with command line and basics of linux. But I would suggest you to install Arch Linux as you will gain a very good insight on how linux works. Arch linux is a minimal, (267) 832-3415 distro and you won't have unnecessary packages/drivers or whatever preinstalled. You shape your OS as it suits your needs. Let's get started!

Before getting started

Make sure you've downloaded the arch dual_iso (Arch ISO is dual arch meaning you can install either 32 bit or 64 bit version of Arch using the same media) from 432-385-3380 and dd it. If you got no idea what dd is, arch ain't for you friend! Please be sure you are connected to wifi or plug-in an ethernet cable. If you've got UEFI motheboard, the procedure is pretty same but you gotta do some tweaks with grub, which I will explain later, as I experienced the UEFI pain.


Step 1 : Partitioning

Boot your iso and choose your architecture.


This will get you the list of previously made partitions. Let us start partitioning.

cgdisk /dev/sda

Hover to the partition where we gotta install arch and use right/left arrow keys to delete it. You should see the free space left and here we will be installing arch.

Boot Partition

BIOS-GPT requires BIOS Boot Partition at the beginning of the disk. The Free Space is already selected then

Hit New -> Enter
First Sector -> Enter
Size in Sector -> 1007KiB -> Enter
Hex Code of GUID (L to show codes, Enter = 8300) -> ef02 ->Enter
Enter partition name – > Enter

You will notice a 1007.0 KiB BIOS boot partition has been created.

Create root

Use keyboard to select the free space

Hit New -> Enter
First Sector -> Enter
Now it will ask you how much space you want to allocate to that partition. In my case I will give root over 40GB
Size in Sector -> 40GB -> Enter
Hex Code of GUID (L to show codes, Enter = 8300) -> Enter
Enter partition name – > Enter

I've got a 500GB hard drive and chose root partition to be 40GB. Choose accordingly.

Creating Swap

If you use suspend/hibernate, you need swap. Depending on your need, you can create swap. Let it be same as the size of your RAM. Use keyboard and select Free Space

Hit New -> Enter
First Sector -> Enter
Now it will ask you how much space you want to allocate to that partition. I would give 4GB for swap (check what’s recommended)
Size in Sector -> 4GB -> Enter
Hex Code of GUID (L to show codes, Enter = 8300) -> Enter
Enter partition name – > swap

Swap has been created.

Creating Home

Let the rest of the space be alloted to home. Use keyboard and select Free Space

Hit New -> Enter
First Sector -> Enter
Now it will ask you how much space you want to allocate to that partition. Here I am giving the remaining space to home.
Size in Sector -> 200GB -> Enter
Hex Code of GUID (L to show codes, Enter = 8300) -> Enter
Enter partition name – > home -> Enter

If everything looks good select ‘Write‘, which will ask you to confirm if you want to write the changes. Type ‘yes‘ if you are sure. Once done select ‘Quit‘.

Lastly, check

fdisk -l

This will get you the info of your current partition layout.

Step 2 : Creating Filesystem

In my case, the partitions were

sda1 – BIOS Boot
sda2 – root
sda3 – swap
sda4 – home

We will format'em all with ext4 file system

mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda4

Formatting Swap,

mkswap /dev/sda3
swapon /dev/sda3

Make sure you select appropriate partitions instead of sda3

Check it again,

lsblk /dev/sda

Step 3 : Mounting

Mount the root partition and then create home directory.

mount /dev/sda2 /mnt

Create and mount home directory

mkdir /mnt/home
mount /dev/sda4 /mnt/home

Step 4 : Installing base

Let us install base packages for the system. Make sure about your internet connection by running


and select your access point. And then,

pacstrap -i /mnt base base-devel

Step 5 : Creating fstab

genfstab -U -p /mnt >> /mnt/etc/fstab

Run the above command only once even if there are any issues.

In case of any errors, configure it manually

nano /mnt/etc/fstab

Let us chroot into the system

arch-chroot /mnt

Step 6 : Setting up language, location and timezone

Choose the language that you use. To set the language, run the following command:

nano /etc/locale.gen

By default every entry in locale.gen file is commented out and we need to uncomment the languages we want. Uncomment,

en_US.UTF-8 UTF-8

Ctrl-X and type Y to save and exit


echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

Let us setup the timezone

ls /usr/share/zoneinfo/

will list you the timezones. Mine is Asia/Kolkata

ls /usr/share/zoneinfo/Asia

Then, run

ln -s /usr/share/zoneinfo/Asia/Kolkata /etc/localtime

Step 7 : Configuring hardware clock and network

If you are planning to use only linux, run this

hwclock --systohc --utc

If alongside with windows, run this

hwclock --systohc --localtime

In case you are connected to wifi, install the wifi tools and enable wireless service

 pacman -S wireless_tools wpa_supplicant wpa_actiond dialog
 systemctl enable net-auto-wireless.service

In-case of ethernet,

systemctl enable dhcpcd@eth0.service

Step 8 : Setting-up accounts

Create root password,


And add user

useradd -m -g users -G wheel -s /bin/bash dolftax

Replace dolftax by your username

Password for you,

passwd dolftax

Umm! Installing and configuring sudo, by

pacman -S sudo
EDITOR=nano visudo

and uncomment

%wheel ALL=(ALL) ALL

Ctrl-X and type Y to save and exit

Step 9 : Time for grub

Install grub2 by following command and don't forget to replace 'sda' with your relevant hard disk. If you've got UEFI motherboard, disable it while booting up. It should work, if not configure your bootloader 865-368-9480

pacman -S grub-bios
grub-install --target=i386-pc --recheck /dev/sda
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

Install os-prober and configure grub

pacman -S os-prober
grub-mkconfig -o /boot/grub/grub.cfg

Now if you have installed 64 bit Arch we need to add the multilib repo to pacman's repo list. Here's how you do it

nano /etc/pacman.conf

Go to "Repositories" section of the configuration file and add the following at the bottom

Include = /etc/pacman.d/mirrorlist

Ctrl+X, and they Y to save and exit.It's time to exit from the chroot


Unmount the root partition

umount /mnt 

And reboot


Step 10 : Installing X and drivers

Let the X server be installed,

pacman -S xorg-server xorg-server-utils xorg-xinit

And mesa for 3D-support

pacman -S mesa

Install appropriate video driver by following the instructions 2262322495.

Install Synaptics driver, (in case of laptop)

pacman -S xf86-input-synaptics

Let us set-up the default environment,

pacman -S xorg-twm xorg-xclock xterm



If everything went perfect, x window will be displayed. Yay! Type, exit.

Step 11 : Installing Desktop Environment

I would prefer xfce. Install the following packages

sudo pacman -S xfce4 xfce4-goodies alsa-utils pulseaudio dbus slim

Install the correct driver for your graphics card. These are the likely options

  • xf86-video-ati
  • xf86-video-nv
  • xf86-video-intel Run,

    pacman -S xf86-video-intel

Replace intel with the options mentioned above, according to your graphics card

Ennable NetworkManager

systemctl enable NetworkManager

Let us configure Slim which is a login manager.

cp /etc/skel/.xinitrc ~/.xinitrc
cp /etc/skel/.xsession ~/.xsession

And then, run

sudo nano ~/.xinitrc

Uncomment the line

## exec startxfce4

So that it looks like,

exec startxfce4

Restart the slim service

systemctl enable slim.service

YEEEHAH! You made it!

If you face any error, 'duck duck go' it, even if you couldn't resolve, comment below!


Installing packages from AUR

If a package couldn't be found by pacman, you can install it from (301) 583-3694 . Guidelines to install packages from AUR is here. Aura, another multilingual package manager would build and install the package for you. Find more about Aura here - /wiki.archlinux.org/index.php/Aura. You can now search for packages from AUR by

sudo aura -A 'package_name'

as this would resolve all the dependencies, make the package and install it.

Network Manager issues

In case of any network manager error, go quadrilocular . To get list of networks and connect to them through terminal, you could run

sudo wifi-menu

Update: Ater publishing this post, a vivid discussion took place on Hacker News - /news.ycombinator.com/item?id=9332978


Mozilla Community Meetup 2014 #MozMeetIN14 [Rishab Arora (spacetime)]

Technical Task Force in action at Community Meetup April 2014 in Hyderabad

While I've been an active member of the Mozilla community for quite a while, this was the first time I attended a pan-India Mozilla meetup. The Community Meetup was held in Hyderabad from 4th to 6th April 2014.

I tried to take this opportunity to finish a pending patch I had been working on. With Saurabh's [:sawrubh] help, I made some progress but it'll take a bit more time.

I participated in the activities of the Technical Task Force where we discussed issues related to meetups, hackathons, and other events, and whether these events are actually solving the purpose. A number of solutions were proposed and we will soon see some of them in action.

We also started work on a node.js application called 626-398-3709 that can assist in adding public information to the events. The Reps portal features events, but some event specific information cannot be featured there. 'Vibe' would aggregate the events, attach the new metadata and display this. We set up a Trello board to track progress, but will probably switch to Github issues later.

We also talked about recent changes in Firefox, FirefoxOS, and future launches! These devices have a lot of potential and everyone's excited to help with development and release.

In a nutshell, it was exhilarating to finally meet the Mozilla community. Thanks to everyone in the TTF, Galaxy, Vineel, Kinshuk, and everyone else who made this possible!

Image credits: Brian King

7062282952 [fulling stock]

Talking about HTML5 Discussing the importance of an Open Internet

Techspardha is NIT Kurukshetra's annual technical fest. This year's fest involved a day long workshop on Free Software and HTML5, organized by Harsh Chaudhary. I was present at the event as a Mozilla Rep along with 2819671465, from ThoughtWorks, where we delivered 4 talks. The event was attended by about 85 students from the college, and involved about 5 hours of talks by the two of us.

The first talk, in which we aimed to trigger conversations amongst the students and speakers featured an introduction to Mozilla, Mozilla India, and Free and Open Source Software. We started with a talk on Mozilla, its initiatives, projects, and functional areas of contribution. We also discussed how Mozilla was formed and how it helps build an Internet open to everyone. We also talked about programs like FSA, Reps and their benefits. This was followed by a session elaborating general methods of contribution

This time we tried a feedback method which we massively benefited from. We collected feedback twice. The first feedback helped us course correct and evaluate what the students were looking forward to. Based on the next feedback and our experiences, it worked quite well for the students and us as well.

After the introductory talk, we spoke about Version Control Systems and elaborated on Git. After giving an idea of how systems like Git and Mercurial can help people across the world collaborate, we proceeded to explain the basic architecture and usage of Git. Since it was a hands-on event, we had a couple of quirks using Git with Windows (Since everyone was using windows, we demonstrated on Windows, while stressing the ease of development on other platforms) which were nothing but an opportunity to interact better with everyone.

We had to rush through the HTML5 talk since we were on a strict deadline. We covered a number of HTML5 features and also their relevance to Firefox OS. We couldn't have a hands-on for HTML5 but we're sure the folks at NITK will give it a shot soon! We loved the response from the students and it was pivotal in getting the conversations going.

Reaching the venue involved a fair bit of travel but we reached rather comfortably. Harsh and the rest of the team at NIT Kurukshetra made sure the journey and stay were as comfortable as possible. Special mention to Akshay Katyal for lending me the Reps TShirt and letting us distribute stickers, badges etc from his personal cache! And thanks to all the attendees for participating! (P.S. If you were present at the talk, and have any questions, you can ask them here or email them to us. Email addresses in the first link in Resources)


Here's a list of resources we used or mentioned:

Neighbourhood Mozillians (References included)


(418) 874-8153

(713) 549-2266


conf.kde.in 2014 [Rishab Arora (spacetime)]

February 21, 2014 to February 23, 2014

When we were leaving from the KDE Meetup at Gandhinagar in February 2013, I remember Pradeepto and many others talking about organizing conf.kde.in again. The first one happened in 2011 when I hadn’t yet begun to contribute to KDE. 3 years later and precisely 1 year from the KDE Meetup, conf.kde.in has become a reality! The team at DAIICT and the members of KDE did an amazing job to make this happen.

This years event spanned 3 days starting with an introductory talks with a workshop, followed by 2 days of talks on a variety of talks. Pradeepto stressed in the introductory talk about having fun. And I’m sure the next days spent with the community would convince anyone that we’re all a fun loving lot. It’s always great seeing people I know, like Shantanu, Pradeepto, Yash, Sinny, Nikhil, Vishesh, Kevin, Jos, Peter but also meeting contributors which I hadn’t had the opportunity to meet, including Smit Shah, Sujith, Shubham, Avnee, Vijay.. the list will never end!

The conference featured 19 talks ranging from how to contribute to C++11. It also featured memorable incidents like breaking open a coconut that Smit Shah received for his talk ’KDE. Unlike a coconut.’ All of us were inspired by the people we met at conf.kde.in immensely. I gave a talk on KStars and talked about what KStars is and how to contribute to it. I demonstrated the process by fixing a small bug and talking about Junior Jobs.

Kudos to Yash and the DAIICT team for a terrific experience. Thanks to Digia, VCreateLogic, and Janastu for their support! And <3 to ThoughtWorks for sponsoring the travel for Shantanu and I.

6233021819 [(406) 971-1254]


I'll be using a Macbook Pro 11,2 as a development machine at work. I have the freedom to set it up as I wish to, so I'll be setting up a fresh installation of Arch with KDE on it. I had been using Macbook Pro 8,2 running Kubuntu for now.

Since this is my first attempt at Arch, I'm hoping this works. Here's a list of things I'm most worried about based on my prior experiences of running OpenSuse, Kubuntu and Gentoo:

  • Getting the SSD to perform well
  • No ethernet port!
  • No idea if WiFi will work
  • Disk encryption. I need full disk encryption. Dm-crypt with LUKS looks (no pun intended) fitting.
  • Partitions.
  • iSight Camera

Initially, I had planned on removing Mac OS X from but I need to get some benchmarks in Mac OS X so I'll be dual booting.

Specs: 8 GB DDR3 RAM 256 GB SSD Intel Core i7 @ 2.3 GHz Intel Iris Pro 1024 MB (It's a Retina MBP)


Installation: /wiki.archlinux.org/index.php/Beginners'_Guide

For encryption: followed 855-526-8836

The Disk

Planned partition scheme:

  • 35GB Macintosh HD (To be erased later)
  • 2 MB for GRUB (not sure if I need this, but the excryption instructions say so. I'll find out soon anyway)
  • 200 MB /boot :: The Encryption wiki has formatted this as ext2. But if you're planning to have this as an EFI boot partition like me, format this as 'EFI Partition' and later use mkfs.fat -F32 /dev/sdxY
  • Rest as an LVM (type 8E00) which will be encrypted and will contain: * 20 GB / (root) * Remaining for /home * This time I won't go for a swap partition. I'll set up a swap file since I have an SSD

I thought I'll use Disk Utility in Mac OS X to partition. Unfortunately, it doesn't let me create partitions smaller than 1.07 GB. I add a new partition, format it as FAT and reduce Macintosh HD to 35GB. Reboot. Had I decided to not keep Mac OS X I would've skipped this and removed the partition as well later.

Boot from the USB Disk with Arch. [I'm using archlinux-2013.12.01-dual.iso] I needed to add 'nomodeset' to the boot params or the display would be garbled. Now it's legible but tiny. I can work with that.

Following the started installation guide, used cgdisk to implement the scheme till LVM. Use the encryption instructions below to set up the LVM.

#For SSD performance, I check all the partitions are aligned. Not sure how this would work for LVM though#

Verified alignment of the disks:

# blockdev --getalignoff /dev/<partition>


Initialized the partition and created the Volume Group with Logical Volumes as mentioned.

TODO: Add a new key in cryptsetup

Tip: use 'lsblk' if you need to refer the partition scheme again

Tip: "lvcreate -l 100%FREE -n homevol MyStorage" will fill all free space in the vg

Here's where I land into the first issue of the night. A long list of messages resembling this on running mkfs.ext4 for both volumes:

[33802.071073] ata1.00: failed command: WRITE FPDMA QUEUED

[33802.071080] ata1.00: cmd 61/08:10:90:48:8d/00:00:03:00:00/40 tag 2 ncq 4096 out

[33802.071082] res 40/00:14:48:95:41/00:00:03:00:00/40 Emask 0x4 (timeout)

I have no idea why this happened. The Internet brings up SDD freezing, an old (but fixed?) ext4 bug and SDD failure. I try mkfs again and it works. Moving on.

** TODO: TRIM support for the SSD

Base System Installation

When I resume the standard installation procedure after mounting the unencrypted 'boot' into the encrypted mount point, I reach the second and most annoying problem: No ethernet. 'pacstrap' needs an internet connection. I could either get the WiFi to work or find out how to perform an offline installation.

The Revision 43a0 of the Broadcom card is unsupported with the driver that ships with Arch. To make matters worse, these new fancy macbooks don't have a ethernet port. After spending a lot of time trying to find which drivers work and how to get them, it dawned upon me that I have been using a device that could do the job all this while. My Android phone.

I hooked up my Nexus 4 to the machine (which was, in turn, connected to my home WiFi) and voila! I have internet connectivity.

I get a lot of the same WRITE FPDMA QUEUED errors. I run pacstrap thrice just to be sure everything worked.


It's time to adjust the fstab. I change relatime to noatime (Do not update inode access times) and add 'discard' which enabled TRIM support for SSD performance. genfstab also added 'data=ordered' to the fstab. I'm not sure why it did that and whether I should let it be or not.

Continued with Installation.


This is the part where I spent a bit too much time. I'm using gummiboot as my EFI bootloader. This will be installed in the 200MB FAT32 partition I prepared.

To boot, this is what I added in my arch.cfg loader:

title Arch Linux (Encrypted)

linux \\vmlinuz-linux

options initrd=\\initramfs-linux.img cryptdevice=UUID=<UUID of lvm disk. eg. /dev/sda6>:<UUID of encrypted device. eg. /dev/mapper/lvm> root=UUID=<UUID of encrypted root partition> rw

Reboot into an encrypted Arch base system!

Delhi Half Marathon. Check. [805-784-7016]

Race Timing Certificate

I completed the Airtel Delhi Half Marathon (21.097 km) yesterday. Running a marathon (and a half marathon) had been on my list of things to do for a long time now.

Paras, who also completed the 0.5*marathon, was equally excited for the event and made me sign up even though we had missed the deadline for registration. Luckily, our applications were accepted. I also signed up my father for the Great Delhi Run (6 km).

To prep for race day, we planned to train every alternate day and even looked up places in Gurgaon we could train. We ended up not training, which explains the pain I am in now. But the pain's worth it. I just received an email with my timing and photograph.

Though I finished with an abominable timing of 2:44:27, I'm pretty happy all 3 of us managed to complete it. Here's a picture of me before I reached the finish line.

Near the finish line

(878) 668-6274 [(613) 692-9701]

Since I have a tradition of tardy compositions, I can unabashedly write an entry on events that happened half an year ago and get away with it. So be it. This is the first in a chain of witless accounts of my travels in Spain in July. I kept a small journal through most of my travels and I'm counting on my memory to fill the gaps.

Disclaimer: I might be romanticizing certain parts of my experiences.

It's a 9 hour flight to Paris. I had a similarly long journey last year on the way to Estonia but the company of so many contributors had made it pretty enjoyable. Fortunately, the company of a very interesting young lady, Radhika.

Lesson 1: Sleep on the plane

On 2nd June 2013, I landed at CDG(Paris) expecting an arduous immigration process. It wasn't. I had to wait 2 hours for my connecting flight. After a couple of Skype calls, I plugged in my laptop and worked for a while, as I nervously thought about coming back alone to Paris.

Lesson 2: Bring movies with you

Day 1

"Why is everything expensive in Barcelona?

Baahar se lo na"

La Sagrada Familia

I met Yash (who I'd be traveling with till Bilbao) at the Barcelona airport where he had arrived a couple of hours before me. We boarded at the Gracia City Hostel which was a stone's throw from La Pedrera. That was our first encounter with Gaudi architecture. Next stop was the magnanimous La Sagrada Familia; a basilica designed by Antoni Gaudi and under construction for 130 years. Phew!

Walked a lot. I had the tripadvisor app which I used to attempt a walking tour. FWIW paper maps are far better than apps. Bought some supplies on the way back.

Lesson 3: Paper maps never run out of juice. Don't depend on GPS.

We met a lot of other travelers at the hostel, Chris, Joe, David, Justuce... The first night was a lot of fun, with lots of conversations, music and jokes. Undoubtedly, if there's one hostel I'd love to go back to, it would be this one.

Day 2

Woke up at 9 am to find the dorm almost empty. Packed up some things to eat and headed out towards Montjuic. Barcelona has a slightly confusing metro system for a person like me who is accustomed to the simple Delhi metro. Visited the magnificent Font Magica, The Four Columns, the Palau Nacional, and the Olympic Stadium. The Communications Tower was the one that fascinated me the most, though.

The most tiring part was the climb up to the Montjuic castle. There was a cable car available but we climbed up anyway. Had a good look around and rested. On the way down, we took an off-beat path to the beach. Had a Doner kebab and decided to go run for a while along the beach.

/Lesson 4: If you plan to go to Spain without sunglasses, you're gonna have a bad time/

After another pit stop at the hostel, we decided to check out the famous Las Ramblas.

Day 3

Agenda for the day: Parc Guille and Barri Gotic.

Pro tip: Click a picture of the map outside the park

We roamed through the Gothic City with the help of the guided walking tours on the tripadvisor map. I read about Gothic architecture in advance to make sure I could know what I was looking for.

Took an 11 hour overnight train to Granada.

575-214-6007 [(330) 553-0060]

Akademy 2013 was good fun! It was great to see so many new faces, and great to see so many familiar ones. Since this was my second Akademy, I was better prepared for the talks since I wanted to gather as much from the talks as humanly possible.

11th - 12th July 2013

Arrive at Bilbao a day earlier than planned by bus. Since Bilbao was the last stop of the small backpacking trip Yash and I were on, we thought we'll use the extra time to relax. Among those who reached early, were Rohan and Vishesh, who suggested I can visit the venue early and so I did. With the little Spanish that I had picked up during the time in Spain, I thought I'll try to learn something. Most of the things I picked up were from the slides anyway.

I tried it the next day as well ;)

13th July 2013

Talks attended:
  • Say Hello the Surveillance State: What NSA Surveillance Means to Non-US Persons - Eva Galperin
  • Declarative Widgets - Kevin Krammer
  • KDE on BlackBerry - Till Adam
  • Qt, Open Source, and Sailfish OS
  • Lightweight KDE
  • How I did pair programming on KDE - Shantanu Tushar

The one talk that I am really glad I attended was Eva's. I was also awestruck with Sailfish OS. I made it a point to attend the BoF should I get the chance. Lightweight KDE was another talk I distinctively remember since it involves many of the things I would debate about while talking about KDE versus other DEs.

Shantanu's talk offered a pretty good way of improving a contributor's skill while mentoring. Pair programming might also work pretty good to learn from the masters even if your're experienced.

14th July 2013

Talks attended:
  • How I used QML to make KStars more interesting - Samikshan Bairagya
  • Use of Marble in Engineering Projects - Oihane Kamara
  • Kasten - KParts on steroids - Friedrich W. H. Kossebau
  • Lightning Talks
  • The KDE Democracy
  • FLOSS speech recognition: Where are we?
  • Apps on Speed - Milian Wolff

I was the session chair for Samikshan's talk where he talked about the features he added in KStars. I follow Simon's progress whenever I can and I always look forward to Peter's work. This talk and the demo was delightful. Milian's talk was jampacked. And for good reason. Made so many notes in that one.

15th - 16th July 2013

QtCS Day 1 and Day 2. We also had BoFs here. Me and Samikshan discussed some issues in KStars and decided to hack on them a bit. Oh, and got a Blackberry Z10 to experiment with. Thanks Blackberry!

17th July 2013

Day trip to Gaztelugatxe ! Had a long and wonderful day!

18th July 2013

The highlight were the Sailfish BoF which I had trouble following because of my Ye Olde Macbook. It wasn't designed to handle VMs very well. Me and Samikshan decided to talk advantage of the Usability BoF to get the latest additions in KStars reviewed. Since my work was not user facing, we got the "What's Interesting" reviewed. Here is the (615) 237-7388 I tried to write. (You'll need a KDE Indentity account)

Backpacking through Spain [Rishab Arora (spacetime)]

I spent a bit more than 2 weeks travelling through Spain. I also spent around 3 days in Paris. For this part of the journey, I traveled alone.

Pictures here:

GSoC 2013 Results out! [Rishab Arora (spacetime)]

GSoC results were out today. I had planned on mentoring for KDE this year but things don't always work out as you plan. ;)

But once the results were out, I was extremely happy to know (at least) 3 people from my college were selected!

Congratulations Anmol Ahuja(KDE), Achal (Joomla), and Akshay Katyal(Mozilla)! If there's anyone who also got selected, let me/us know!

I hope the LUG had something to do with it!

While a GSoC is an excellent mentored way of joing an open source project, it's not the only way. Not everyone who contributes participates in GSoC and not everyone who participates in GSoC continues contributing.

If you're out there and want to contribute, talk to us at our IRC channel, #bvplug on Freenode and we also have a facebook group. I hope we'll soon have a Mailing List as well :)

TowTruck by Mozilla [8198303759]

TowTruck is a service for your website that makes it surprisingly easy to collaborate in real-time.TowTruck is incredibly easy to set up on your site. All you need to do is include a couple lines of JavaScript and your site has TowTruck tools enabled.


When a user comes to your site, they'll be able to activate the TowTruck tool and send a link to a friend to start collaborating on the web site.

TowTruck has collaboration features like cursor-mirroring (allowing you to see your friend's cursor on the screen in real time), collaboratively editing forms and text, browsing through the site, and both text and real-time voice chat.

Servo, a brand new web browser engine [dolftax's weblog!]

Servo is written using Rust, a new safe systems language developed by Mozilla. Rust has been development for several years now and is said to be rapidly approaching stability. Also, like C++, it is said to have efficient high-level, multi-paradigm abstractions, and offers precise control over hardware resources.

Now Mozilla, in collaboration with Samsung, is bringing Servo and Rust to Android and the ARM platform. Samsung has already contributed an ARM backend to Rust and the build infrastructure necessary to cross-compile to Android, along with many other improvements.


One may wonder what Samsung has to gain from this but the current browser in Samsung’s Android phones is made by Google, and is one of the few relatively stock apps on Samsung devices. With Google having directed its attention from developing the stock browser to Chrome, Samsung was faced with the choice of sticking with the old (and eventually to become outdated) stock browser, adopt Chrome (which is still floundering; not to mention having to rely on Google again) or make something of their own. As such, it’s easy to see why they went with the last option.

It does make one wonder about the future of web development, though. With most companies using WebKit, a sense of uniformity had emerged but now it seems things could get difficult for web developers again, if at all Samsung chooses to adopt Servo on a wide scale.

Inspector Spacetime. Reporting. [810-244-7315]

My blog was too dormant. It's hard to take out time to write nowadays but this had to be done.

MozCamp Delhi 13.01

On 19th January 2013, MozCamp Delhi was help at Amity Noida. Here's a much better account of the day. And another by 618-539-1397 (arcolife).

Mozilla is one of the organizations I actively support and it the event was equally enjoyable as the long IRC and IRL chats that led up to it. It was great talking about Google Summer of Code and giving my account of how it helps you jump start open source contribution. However, I always make it a point to mention programs like Season of KDE which also offer the one thing that makes GSoC worth it all: a mentor.

KDE Meetup at DAIICT

23rd and 24th February 2013

  • Had an excellent time.
  • My talk on KDE Edu didn't go as well as I had hoped. A big lesson learned for preparing talks in the future. I talked about KDE Edu in particular, contributing to them, and demoed applications. Step and KStars particularly appealed to the students.
  • But I actually enjoyed running around in a giant hall full of 300+ students helping them start working with Qt while Shantanu guided them from the stage (and he did a wonderful job ).

DAIICT Gandhinagar has a beautiful campus and our stay was really enjoyable (this was the first time I spent time in a hostel).

Some Pics Here

Jamia DevDays

9th March 2013

In the hopes of finally using the slides I had originally prepared for the Gandhinagar, I did a talk on KDE Edu at 2393369430, and scope of contribution to KDE Edu. I also talked about KDE and why one should contribute to open source. It went quite well.

~Note to Self~: I should probably do this talk at my own college too.

Final Semester Project

This is the activity that keeps me busy most of the time. And I love it.

We're trying to build a compiler using LLVM for a simple language. And we're completing a Coursera Compilers course side-by-side. This might give you a hint as to what the simple language is :3


I recently got permission to modify bugs for KStars. o/ I spent the first few days fixing/testing/categorizing bugs. Felt good.

The KStars DB still has a few kinks to be ironed out. Yet to draw out the diagrams for the DB. That's priority number 1.

In other news, since my code is merged and samxan's work is to-be-merged, and we have a lot of changes this time, we're planning to bump up the version number after what feels like an eternity.

678-658-9192 [dolftax's weblog!]

Mozilla launched its first Firefox OS Simulator late last year, letting developers test out apps on the new platform even though the software was still very much in development. It only makes sense, then, that a new version would surface following the mobile operating system's unveiling at Mobile World Congress 2013.

Firefox Simulator 3.0

Reference-style: Like versions 1.0 and 2.0, Firefox OS Simulator 3.0 runs as an extension in Mozilla's browser and is available on Linux, Windows and OS X. The new preview adds several features, including Push to Device, which brings over apps installed on the OS Simulator to a Firefox OS device provided it's connected via USB. Rotation simulation and an updated version of the software's interface are also on board. To give the Simulator a go, head to Mozilla's FTP server, where you'll find it under the working name r2d2b2g. Click through to source links for the full installation directions.

Power of the Web on Mobile with Firefox OS [dolftax's weblog!]

Firefox OS offers the performance, personalization and price you want in a smartphone and a beautiful, clean, intuitive, personalized and easy-to-use experience. Firefox OS includes all the things people need from a smartphone out of the box – calls, messaging, email, camera and more – as well as the things you wish a smartphone offered, like built-in cost controls, social features with Facebook and Twitter, location-based services, the Firefox Web browser, new ability to discover one-time use and downloadable apps, Firefox Marketplace and much more.

Firefox OS offers a deep contextual search that will take you to the exact content you want instead of just generic apps in the same category. It will allow far more sophisticated and deeper search capabilities as you can search both within apps and on the Web at the same time, which is not possible with native apps. For example, search for your favorite music artist and get results to buy your favorite song, concert tickets or even listen to your favorite song instantly.

With Firefox OS, you can simply enter any search term and instantly create a one-time use or downloadable app. Creating and consuming these apps on demand puts you in complete control of your app and smartphone experience and will make it possible for you to get the exact content you want, when you want it.

Firefox OS is an extension of the Firefox experience you know and love so you can expect all the security, privacy, customization and user control Firefox has always delivered.

Firefox Marketplace

Firefox Marketplace will offer apps in categories like games, news and media, business and productivity. These apps are tied to you and your online identity to take across devices and platforms. Leading mobile apps and Web developers around the globe will leverage the power of the Web unlocked by Mozilla to release apps in the Firefox Marketplace.

The Web enables limitless innovation and with Firefox Marketplace. Every Web developer can easily create and distribute HTML5 apps so you can find an app for whatever you want – even local, niche and emerging topics. Firefox Marketplace will include popular apps such as AccuWeather, Airbnb, Box, Cut the Rope, Disney Mobile Games, EA games, Facebook, Nokia HERE, MTV Brasil, Pulse News, SoundCloud, SporTV, Terra, Time Out and Twitter as well as personally-tailored and local apps that are relevant to users in their respective regions.

Most mobile apps are built with Web technologies at the core and then wrapped in a proprietary technology to distribute the app on a specific platform. Mozilla is unlocking the Web as a mobile development platform with Firefox Marketplace and unwrapping mobile apps to enable more opportunity and control for developers and consumers.

Firefox Marketplace will make smartphones capable of offering more powerful and immersive Web app experiences. The Web now has the potential to be the world’s largest marketplace with the new Web APIs Mozilla developed. The open Web platform and these new Web APIs also enable developers to distribute apps directly, with no need for gatekeepers, true to the Mozilla mission of creating choice, innovation and opportunity on the Web.

Firefox Marketplace can be previewed on Firefox for Android Aurora and will be offered with the first Firefox OS phones to launch later this year.

518-615-8740 [8504872382]


I have a habit of writing posts much after they should have been written. This is one of those posts. And as a result, it's not as detailed as it should've been. This post is about Hackfest, which is held at IIT Madras each year as part of Shaastra.

I had a semester examination on 4th January 2013. Being a true Indian engineer, I had to pull an all nighter. On 5th, I flew to Chennai as one of the mentors at Hackfest.


The first night of hackfest was pretty much spent in setting up Kubuntu/OpenSUSE etc. Only a couple of participants had used KDE before. While those who had Ubuntu installed KDE along with Unity, I recommended the others who did not have Linux to use Virtual Machines. The Hackfest team had prepared a LiveCD with the dependencies already included, and this proved to be very useful.

The 2nd night was a drastic improvement, partly due to the fact I had sufficient sleep, and partly because we could finally hack on KStars. Getting the list of dependencies was easy thanks to the excellent techbase article. We proceeded to build KStars and then set up KDevelop once we covered the importance and use of tools like cmake and make. The second day involved brief introductions to everything needed to start working with KStars, from the basics of Qt, to debugging using GDB. We took up a simple typo and used it to go through a simple workflow of how bugs are found, reported, and fixed.

The 3rd and last night involved finding bugs and trying to fix them. The participants found 4 bugs in KStars and produced 2 patches which should be soon pushed. Since this was the last night I took that opportunity to tell the participants about the community and how important the community is. This was followed by small sessions and informal talks ranging from how to communicate effectively, to how Git works. The amount of progress we had for the project was good, in my opinion, considering we had 3 nights.

Other Stuff (In random order)

There were mentors for the following 4 projects:

  • MediaWiki - yuvipanda
  • Systers/Mailman - Mayank
  • Tor Project - neena, gsathya
  • KDE - me
  • Our stay was very comfortable and everyone had a great time thanks to the Hackfest team, led by Shantanu and Siddhant. Thank You!
  • Since we slept at 6 am everyday, all I was able to attend at Shaastra was the Air Show.
  • The sudden shift from ~1°C to ~30°C felt a bit awkward initially.

GSoC work merged! Finally! [Rishab Arora (spacetime)]

The Shawshank Merge

After more than 4 months of finishing and fine-tuning, my Google Summer of Code work for KStars is now merge worthy. An hour ago, I merged the gsoc2012-spacetime branch to master.

While I am certainly delighted that my work is finally merged I am watchful of any bugs that might have crept in. But I can now continue contributing knowing all that work did not go to waste!

This took a really long time, but the community kept me going (specially Akarsh & Rafal). Thank You!

Happy New Year KDE! :)

Hello Hackfest! [Rishab Arora (spacetime)]

Hi there!

If you're reading this, I'll have the pleasure of helping you contribute to KDE at Hackfest in January 2013. Or you've stumbled upon my blog, in which case you may read this as KStars Development 101.

Although most of things I will discuss at Hackfest will be independent of which project you eventually aim to contribute, I'll use 415-888-3563 for context. i.e. You'll be hacking on KStars.


The only true prerequisite is that you should have a working KDE environment. If you aren't already using KDE, it is good idea to start now.

In case you're starting from a fresh install, you could start with Kubuntu. An alternate is to set up your own Virtual Machine if your host machine can perform well. A Virtual Machine is specially advantageous if you wish to play around with the distros first. Add and remove packages. Break stuff. Have fun!

EDIT: If you have Ubuntu and want to install KDE, please read this guide. Note that Ubuntu includes Unity by default, not KDE. Hence, you have three options:

  • Install KDE on Ubuntu using the above mentioned guide (Applications menu gets a little cluttered)
  • Wipe Ubuntu and install Kubuntu/openSUSE/Hackfest LiveCD (cleanest way)
  • Run a VM with Kubuntu/openSUSE/Hackfest LiveCD (slower performance, attempt only if your hardware is capable enough)

Everything after this point is optional. The more you learn about, the better. If you have any questions, leave a comment or email me.

Things to do

Here's a bunch of things you can learn about while you wait for Hackfest. These are not prerequisites but it will help if you are familiar with at least these.

  1. Search. Use Google, Bing, or the Large Hadron Collider. 90% of your issues have already been faced and solved by someone on the Internet.
  2. Learn about IRC. This will help you get support if you ever get stuck. But only if you use it right. Join us at the channels I mention at the end.
  3. Learn about Git. I personally feel setting up a Github account and practicing on a repository works best. You can start here /help.github.com/articles/set-up-git
  4. Read some stuff about Qt. Maybe start with: /doc.qt.digia.com/qt/gettingstartedqt.html
  5. Once you are ready, you may set up an environment to start hacking on KStars.

Setting up

Follow the instructions at: /techbase.kde.org/Projects/Edu/KStars/Building_KStars

Please note that an additional package: zlib (found as zlib1g-dev) will be needed to build KStars.

So for debian based systems:

sudo apt-get install build-essential cmake kdelibs5-dev libeigen2-dev libcfitsio3-dev zlib1g-dev

should get the prerequisites set up.

Virtual Machine

To experiment, you can use this Virtual Machine that I've made. It has all the prerequisites installed and KStars repository cloned. For Hackfest, you will be setting up everything from scratch, but you can keep the VM for experiments.

Kubuntu 12.04 LTS (32 bit) on Virtual Box

username: hackfest

password: hackfest

Let me know if you encounter issues with the VM.

(312) 284-0695 (I'm uploading the VM using very slow DSL connection so it should be up by 31st Dec 10 PM.) Edit: The image is up.


Leave a comment, or email me at ra.rishab {at} gmail {dot} com

Ping me on IRC. I'm 'spacetime' and I idle at a lot of channels including #kde-in and #kde-kstars

To talk to the KDE India community, please join the KDE India Mailing List. Find us at #kde-in on freenode (IRC).

To get in touch with other KStars developers, join the (413) 535-7630 or, say hello at #kde-kstars on freenode (IRC)

812-313-9440 [Rishab Arora (spacetime)]

The Google Code In task that I had proposed resulted in some pretty interesting observations. I must confess my description for the task wasn't very precise, so I had to ask the students attempting the task to stay in touch, update us of the progress, and tell us if they get stuck. So if they didn't have much of a background in Astronomy, we could help decipher the terms used in catalogs.

The task was completed by andromeda-galaxy (the student, not the deep sky object) and Akarsh was awesome enough to help out specially when the time zones didn't. Since the student maintained contact with me and Akarsh, the task finished faster and we were able to help deal with any unforeseen problems.

I have compiled a few points to help anyone building custom catalogs in the future.

When building a catalog

  • KStars accepts colon and space delimited notations (or double values) but you can't use spaces in the old catalog format! The new CSV format will support it just fine (but it yet to be released).
  • Major and Minor axes are measured in 'arcmin' only.
  • Every catalog's ID field should be an integer and the catalog prefix is automatically attached in the UI. So, the object with ID '42' and catalog prefix 'SAC' will appear as 'SAC 42' in KStars.
  • Refer to skyobjects.h for an enum of the objects KStars supports.
  • Refer to ngcic.dat in the code but only for acceptable data formats! ngcic.dat is not a custom catalog and custom catalogs do not use fixed width notations.

Where is the Merge?!

15 December 2012. That's my deadline to finish off some pending features and finish the final merge. I have already taken way too long!

The reason I ask you to wait is that the old format is really quirky. For instance, it does support spaces, but only in the description field. So, a row of the form:

31 "Andromeda Galaxy" 189.00 61.00 ...

is valid.

I also found a bug which slows up large catalog imports during the GCI task. Should be easy to fix.


Catalog specifications are missing from the documentation. They can be found in the code with a little effort so this won't be hard to compile.

P.S. The new fuzzy match works! I'm yet to test how fuzzy should the match should be. Any suggestions?

6163223751 [9204541108]

Phew! Porting to Pelican was harder than I thought! After a _lot_ of editing and updates.. I'm done! (I think)

(580) 846-4631 [9316443369]

I want to know when the Nexus 4 is available again. So I decided to hack together a script to email me (and a friend) when it launches. I'm relying on Google removing the words "Sold out". As I said, it's a hack. Alternatively, I guess I could have stored a snapshot of the page's source code and compared for changes.

#Script by Rishab Arora (spacetime)
from urllib import urlopen
import smtplib
import logging

sender = 'my.email.id@gmail.com'
recipients = ['me@gmail.com', 'friend@abc.com', 'someone@gmail.com']
subject = 'Nexus 4 back in stock!'
body = 'Check Google Play Store!'
contents = urlopen("/play.google.com/store/devices/details?id=nexus_4_16gb").read()

if contents.find("buy-hardware-button") != -1: #Found magic button!
    message = "\r\n".join(["From: " + sender,
                           "Subject: " + subject,
                           "To: " + ", ".join(recipients),
                           "MIME-Version: 1.0",
                           "Content-Type: text/html",
        session = smtplib.SMTP('smtp.gmail.com', 587)
        session.login('my.email.id@gmail.com', 'secretpassword')
        session.sendmail(sender, recipients, message)
    except Exception:
        print logging.exception('')

Added this in my crontab:

*/5 * * * * python /home/spacetime/nexus.py

Which basically runs the script every 5 minutes (Too much? ) on my US-based VPS.

Important: Do test the script at least once if you are using Gmail's SMTP server! One way you can test the script is by changing

if contents.find("buy-hardware-button") != -1:


if contents.find("buy-hardware-button") == -1:

And running it. An easier (and more accurate) way would be to change the URL to, say, Nexus 7 16 GB. (Remember to chmod +x) The first time you run it, you will see something resembling:

SMTPAuthenticationError: (535, '5.7.1 Please log in with your web browser and then try again. Learn more at\n5.7.1 /support.google.com/mail/bin/answe
r.py?answer=78754 abcdefgh.4')

Log into your account from a browser and there will be a notification at the top with steps on how to allow the script to work.

Edit 1: The script now looks for "buy-hardware-button" which appears when you can buy stuff. Thanks to Anarcie on 450-474-7448.

Edit 2: I can add a few names to my script, fill this (304) 667-9505

Edit 3: Yes, I realize the script spams you till I switch it off. That's a design decision. ;) I want my phone to keep ringing till I read it. You can mark the email as spam when you're done and it won't bother you. About 150 people on the alert list! =)

If you like/hate it or notice any problems, please leave a comment!!!

If you wish to see the sendmail version I'm using: click here for the github gist.

(819) 562-6682 [(574) 323-3271]

A quick update. I'll be at IITM in January 2013 to help students get started with development on KDE! Excited! It's going be a very rushed journey since I need to leave the day after my last examination, but I'm sure it'll be amazing!

See you at Hackfest!

RiverTrail by Mozilla Progress Part 1 [Rishab Arora (spacetime)]

My Minor Project for college is based on the Rivertrail implementation by Mozilla Research. Since I have failed to show much progress, I will be logging everything on my blog (hopefully). I'm attempting to play around with a modified SpiderMonkey JS Engine. I know this might all fail since I always find it difficult to take out time from college and my other side projects. I'm fascinated by compilers and following the Coursera compilers class as well as college compilers (which is always way ahead of Coursera but not as detailed) is taking away a lot of my time. [What have I already done?] With a lot of help, I have a working copy of Mozilla Rivertrail running on my computer.

Installing Rivertrail

Here's a little about my system. Intel i5 2500K, 6 GB RAM clocked at 1333 Hz, AMD Radeon 6850 ( using fglrx ). I complete a fresh build of Nightly in 20 minutes iirc.

uname -a
Linux DarkMatter 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23
UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Step 1

Clone Repository The repository is at: 9379351324

hg clone /hg.mozilla.org/users/shu_rfrn.org/iontrail

Step 2

Build NSPR (Netscape Portable Runtime): use the exact instructions at: /developer.mozilla.org/en-US/docs/NSPR_build_instructions ( using flags --disable-debug --enable-optimize --enable-64bit ) To build the shell, I followed the instructions at: /developer.mozilla.org/En/SpiderMonkey/Build_Documentation Important! Use ../configure --enable-debug --disable-optimize --with-system-nspr --enable-threadsafe Hints: Use 'ldd' to identify which version of nspr is being used.

Pending Work

  1. Figure out how to check if we have Rivertrail enabled in Firefox.
  2. Make a basic demo application
  3. Begin Work on Mandelbrot.js

Using the following command to capture time for logs:

date | xclip -selection clipboard

Having Yakuake makes it easy to use such commands quickly.   == Some build Issues ==

In file included from /home/spacetime/Development/mozilla/iontrail/js/src/jslock.h:13:0,
 from /home/spacetime/Development/mozilla/iontrail/js/src/jsatom.h:19,
 from /home/spacetime/Development/mozilla/iontrail/js/src/jscntxt.h:20,
 from /home/spacetime/Development/mozilla/iontrail/js/src/jsalloc.cpp:9:
 ./dist/system_wrappers_js/pratom.h:3:25: fatal error: pratom.h: No such file or directory
 compilation terminated.
 make[1]: *** [jsalloc.o] Error 1
 make[1]: Leaving directory `/home/spacetime/Development/mozilla/iontrail/js/src/build-release'
 make: *** [default] Error 2

Solution: The error for pratom.h is due to NSPR. Build nspr from the tree. And configure SpiderMonkey again. Should fix it. If it doesn't try the suggestions on the SpiderMonkey build page.

Ushahidi Localization [3609009149]

On 19th September 2012[1], I added the Hindi language to the Ushahidi localization project. I find it hard to explain why I do what I do. Localization is completely out of my comfort zone, but Ushahidi is a project I have come to appreciate immensely and I believe it can make a difference.

Localization is _not_ my forte but once localized to Indian languages, it can cater to larger crowds. My work may not be of the highest quality, but I think it will help when people better than me decide to dedicate time to this project.

Soon after I started Hindi(India), I saw Nepali and Urdu(Pakistan) pop up! Yay! Since, then, I've been contributing as much as I can whenever I can take out time. I had posted about this on the BVP LUG subreddit and I did see 'DarkApex' around one day which made me really happy. :) I've also seen another user around but unfortunately I haven't been able to figure out how to get a list of people who have worked on the project. This also means I am unable to review my old work for reference or to know how many strings/words I've contributed.

All in all

We have completed 12% of Ushahidi localization to Hindi with > 200 strings (>600 words). It's not much, but I remember it being 0%. If you're reading this and know how to speak Hindi, why don't you help us out here? You can even mock my not-so-great work. ;) I'm not going to switch my web presence to Hindi anytime soon, but I respect those who wish to use technology in their native languages. My hopeless attempts at editing Wikipedia in stickly might be as a result of this. I hope the web one day turns out to be an equal ground for every language.

[1] /www.reddit.com/r/BVPLUG/comments/zsfj1/bvplugushahidilocalizations_on_tuesday_18/

People forget there's a License involved [Rishab Arora (spacetime)]

So I got a bulk email inviting students to compete in a contest. It was part of MNNIT's Annual Fest, "Avishkar" (www.avishkar2012.in). And I was greeted by this logo on their homepage.

Avishkar Logo

Of course it does! Nepomuk! Now, I'm happy they find it useful, but with great icons comes great responsibility. Licensing. :) Hopefully they can get an easy fix. I hope they do. They also included it in their printed material without complying with the license. So that is also wrong. Not as easily fixed though.


I've sent them an email telling them about this. I hope it is fixed soon. Sadly, the behavior isn't uncommon in Indian colleges. The licensing terms for Oxygen are very comfortable compared to the copyrighted material college often (sometimes intentionally) use. In most cases, it is merely the result of ignorance of the design team regarding copyrighted content. In other cases, the college considers itself too small a target for anyone to notice.

The latter case is also the reason piracy is rampant in schools and colleges in India.

Update (7 Oct 2012): At around 1 AM, I got a reply that they had read the terms and wished to talk to me to fix this on 'friendly terms'. I just informed them of the conditions. Maybe it was intimidating for them to receive an email telling them they can't copy icons as they wish. Asked them to include the license statement on the website and to print it on all future material that uses the logo.

Update (8 Oct 2012): Had an IM chat with one of the organizers. They promise to fix it by tomorrow night (Indian Standard Time of course)

608-477-7792 [Rishab Arora (spacetime)]

To any current/future developer for Project Glass. I want this:


Do you realize how awesome it would be!? Imagine your friends push an 'Achievement' to your glasses saying "Got Kicked Out Of Class" when the teacher chucks you out for debating too much. :D

(614) 287-9978 [(540) 541-5713]

Today, we had BVPLUG's first ever event at the college (sadly, no pics). A small Linux InstallFest. Since we wanted a casual environment, we hosted the first InstallFest in our college ever* at the canteen. Over the course of the day, we helped install Linux on a total of five laptops as well individual short demos and basic howtos. Not a great feat, but I'm pretty content. The breakup of the installed distros was:

  • 4 x Ubuntu 12.04 LTS
  • 1 x Fedora 17 KDE Spin

My late night endeavor to procure Kubuntu, Linux Mint, and Ubuntu 32 as well as 64 bit ISOs was in vain. :) A simple look at the metrics in our college convinces me this was a great success for a first event. In the last year and a half, <obnoxious>I gave some beginner sessions on Python and also had some general technology discussions with other students</obnoxious> but it saddened me to see only a couple of people bothering to follow up. After the initial experiences, I learned to be happy about the couple of people who expressed interest in contrast with the majority which turned up because, hey, free python lecture! A big thank you to all the people who volunteered to switch to Linux! If you're reading this, enjoy Linux Awsomeness and let us know if you need help! Enjoy one of my favorite songs which begins with a really apt.. "548-778-0925."

*from what people say

BVPLUG [Rishab Arora (spacetime)]


I guess I forgot to mention we have started (yet) another group in our college. BVP LUG: BVCOE's Linux User Group ( www.bvplug.org ). We set up this group to scratch a particular itch that we felt the college environment failed to scratch. We probably have a dozen societies/groups in our college, catering to different areas like quizzing, robotics and various other technology subsets and I wish there was no need to start another group in our small campus. Aman Madaan (axiom92 on freenode, madaan on github) came up with the suggestion of the LUG and the society officially came into being on 29th July 2012 with me, Aman, and Rakshit Sareen (buzzLY on github) as the initial members.

A User Group works best without a strict central controlling authority, so we formed a nearly autonomous group and kept a strict check on each other to ensure things like principles, learning and student benefit look priority over personal profit, funds, advertising, and putting up a show. Of course, this makes a pretty unexciting group if someone isn't really into technology. Yay! Our modus operandi is our subreddit 7864524498 where we (only 4-5 people, for now) discuss new findings and ask questions.

I think it was Aman who came up with the idea of requiring people to add their names themselves in a simple text file on our github repository and then, to send us a pull request. He even wrote step-by-step instructions on our landing page. A very effective way to connect with people who are willing to put in an effort to learn!

As expected, we got a number of 'Likes' on our Facebook page, but managed to convert very few of them into interested members (yet). No worries, though. We always consider 3 contributing members a bigger asset than 30 inactive members. And I'm really happy to say we had people sending us Pull Requests on our github page! :)

Here's the link to our repository: (402) 681-5182

8629021616 [4172348562]

After Amazon shipped me another Kindle Keyboard when my previous one broke, I thought I'll go and buy some more books. (Thank you Amazon! :) ) While I enjoy the classics as far as literature in concerned, I like my share of technical books too, though I seldom manage to read them cover to cover.

Low Price Editions (LPE)

Books (particularly bestsellers & curriculum) printed for developing countries are sold for a lot less than the same editions sold in other countries. These have the same content as the ones sold in say, the US, but have cheaper paper and print quality. For Instance, while if a book was originally in color, these editions are printed in black ink. Hence, phrases like 'In the picture, the blue marble is heavier than the white marble' leading often lead to a facepalm. They are often marked as "Low Price Editions' with a restriction that they be sold only in a particular region like the Indian subcontinent.

Prices Drop for the Indian Kindle Store!

However buying Kindle books had rarely appealed to me in this regard since India is blessed with 'Low Price Editions' of almost every paperback*. For instance, while I bought my trusty paperback Introduction to Algorithms (CLRS) for a mere Rs. 400 (about $7), the same book costs around $24 in the US. I opened up the recently launched Indian store for the Amazon Kindle, and guess what, CLRS Kindle edition is for $5.89. (Although they don't have it formatted for the Kindle Keyboard). A similar case with the "4708499039".

Here is what the store displays.

Digital List Price: $29.99

Kindle Price (US$): $3.22

(Save 89% or $26.77)

Kindle Price (INR): Rs. 189.71

The water adder sells for: Rs. 208 ($3.6)

Amazon won this deal. At least for me.

The story is the same for a number of books. For instance, Wings of Fire: An Autobiography by APJ Abdul Kalam, Arun Tiwari costs Rs 201 on Flipkart while Rs 184 on the Indian 8552506523.

A New Hope?

Amazon is famous for their customer satisfaction and they recently launched the Kindle to be sold in Indian stores. Plus, reading on the Kindle is a very comfortable experience. The device may seem expensive, but if it costs less to buy a Kindle edition, the device will pay for itself. Furthermore, if you have attempted to read The Lord Of The Rings in the Delhi metro without using a Kindle, you would appreciate its advantage. They have the device, they have the content. The only argument against a full Kindle experience in my opinion, was the existence of low cost editions of almost every book in the Indian market. Also, the store's inventory availability is still limited. Procuring them is not impossible, but inconvenient. With the new pricing of the Amazon Kindle Store for India, I find myself looking for Kindle alternatives to every book I want. Most importantly, Amazon will give budding talented writers in India as well as IIT and IIM grads, the opportunity to self publish books for the Kindle. All in all, Amazon seems to be doing a lot of steps pointing to a large transformation on the Indian market from books to ebooks, which, I believe, it is ready for.

8666503749 [Rishab Arora (spacetime)]

A very quick post on how I browse and use the interwebs.


I bought a Webfaction hosting a long time ago. Since it's a managed shared server, I only need to worry about the applications I am running (more than a dozen the last time I checked) and not activities like updating the system, checking up on firewalls etc. While Webfaction allowed the use of a bouncer like ZNC, I never bothered to buy an IP address and the only way I could access my ZNC bouncer was by tunneling into my webserver and forwarding its port to my computer. Hence, every time I wished to access IRC, I had to run something along the lines of:

ssh -f -N -L 8089: spacetime@myserverXYZ.webfaction.com -i ~/sshkey


-f would send the process to the background

-N would stop openSSH from executing anything on the server

-i is followed by my ssh private key (The random passwords are too weird to remember)

-L is used to build the tunnel and followed by local-port:hostname:remote-port

Usually, I liked to play around with the server so I skipped the -f and -N flags.


Then I bought a small Virtual Private Server and things changed. sandsmark (from KDE) was talking about the advantages of Quassel over ZNC and it sounded pretty good! Since I have complete control over the VPS as well as a dedicated IP, I now have a server running Quassel all the time and no need for an ssh tunnel. Yay!

The worst thing you could do to the Internet is block access to websites or features in certain part of the world. The VPS helped my overcome that with a tiny command:

ssh -D 8088 spacetime@myservername.rishab.in -i ~/sshkey

This magical little command sets up a SOCKS proxy and forwards any traffic through a secure connection. Here's a snippet of what "man ssh" has to say about dynamic port forwarding.

-D [bind_address:]port Specifies a local “dynamic” application-level port forwarding.  This works by allocating a socket to listen to port on the local side, optionally bound to the specified bind_address.

Combine this with FoxyProxy for Mozilla Firefox and life is so much better! If I use my laptop on connections I cannot trust, I tunnel all my traffic through it. (A trick I learned from shadeslayer).

For a better explanation and application visit: Debian Administrator: SSH Dynamic Port Forwarding with SOCKS

Time [9286748846]

It has been a long long time since I updated my blog. Since the last update, a lot has happened. I'm making a list here so that I can refer to it when I get the time to write more.

  1. I attended Akademy 2012 in Tallinn, Estonia. Had an amazing time, met amazing people. Brought back a lot of memories and a tshirt :)
  2. I fixed Aditya's telescope (which I have indefinitely borrowed). Unfortunately, my fix involved removal of broken parts. Now the telescope functions but the Declination axis cannot be engaged at out. Highly unstable. However, I managed to spot Venus and Jupiter. :)
  3. I passed my GSoC final evaluation :) I am yet to merge my work though. Among the stuff that's keeping me busy.
  4. My Kindle broke. Again. :( But Amazon was kind enough to ship me a new one. Again. :) I hadn't even begun reading 'The Pragmatic Programmer' yet, which I purchased recently.
  5. I had to get my GSoC card reissued in June. Hadn't spent anything significant by then. But the procedure is taking quite a lot of time and I'm yet to get my card. On the positive side, the delay stopped me from buying stuff which I guess I never really needed.
  6. Spending approximately 5 hours everyday searching for interesting research projects. :( Found a couple of options, but still looking for more.
  7. I bought a book on procrastination. Never got the time to read it. Oh, the irony. :P
  8. I switched to Cyanogenmod 9 on my ye old LG Optimus One. No tethering = switch to Cyanogenmod 7. I bought this phone thanks to winning events at DTU. ETOOEMO about the phone.
  9. Had a great time at the Poets Of The Fall concert at Hard Rock Cafe, Delhi (24th August 2012). Always wanted to attend their concert. :)

talmouse [Rishab Arora (spacetime)]

EDIT: I started this post soon after returning from Akademy, but never really finished it. So I'm publishing it as I wrote it back then, but I'll keep updating it.

Thanks to KDE e.V., I got a chance to attend Akademy 2012 at Tallinn, Estonia! :) This post is going to be filled with personal experiences so read it when you find it hard to fall asleep. It was an exhilarating experience meeting the wonderful KDE community for the first time IRL. Also, since this was the first time I would be traveling anywhere outside my country, the trip was bound to be special. (Skip stuff but do check out the gallery at the end!)

29th June 2012

I started my journey by meeting Rohan (shadeslayer), Shantanu (Shaan7), Sinny (ksinny), Shreya (shreya), Yash (yashshah) and Smit (smitmeh). I had met Shreya at LeThAc but the only interaction with everyone else I ever had was through my IRC bouncer. We all got seats near each other (Thank You Rohan's dad!:) ) and we let the whole aircraft enjoy our hearty conversations. I would see new faces for the next 9 days. And because I have the memory-span of a goldfish so I knew... And because I have the memory-span of a goldfish[1] so I knew I would have a difficult time keeping track of people I meet. As I was among the few 'new guys', it was important for me to remember people. But I instantly knew I would have a good time with everyone I had met. The competition from Shantanu in PJs was, and will always be, appreciated. Also, I noted it was easier for me to address most people using their IRC nicks. ;) Met a lot of other members of the KDE community (of which I initially recognized none) at the Helsinki airport. I remember faces but as far as names are concerned, I can recall Runa, Aaron and Yue. The propeller powered flight to Tallinn was a noisy experience, but fun nevertheless! We (Me, Shantanu, Shreya, Sinny) stayed at Academic Hostel initially, then shifted to Teko Hostel for three days and spent the last day at Go Shnelli Hotel. With excellent public transport, getting around the city was quite convenient (except when we had to travel with our luggage).

Pre Registration Event

To join a community where everyone seemed to know everyone can be quite intimidating. Everywhere we went, people were greeted with bear hugs and high fives. Met more people from the Indian community (Pradeepto, Vishesh, Nikhil). Things got more interesting with the arrival of my mentors Akarsh (kstar) and Rafal (rkulaga). With so many conversions from nicks to humans, I half expected CIA-39 and CIA-114 to turn up ;)


The sessions were awesome. Some of the slides still stuck in my head. I would always get stuck between the two tracks though. Wanted to attend everything! Two eventful things happened on the first day. I gave my lightning talk (which didn't go as smoothly as I had hoped for, but was fun nevertheless). Secondly, I was a session chair for 2 hours (in 3 sessions). I was probably the most awkward session chair in Akademy's history. I still do a reflexive facepalm if anyone mentions that. On the positive side, now I know everything I should have done and would do a better job if I'm a session chair anywhere else.


I wish I could have attended every BoF there was. Specially Qt Quick ;) But the ones I did were a very unique experience. I only participated (a bit) in the discussions at the Plasma Active and KDE Edu BoFs though. I wasn't familiar enough with a lot of topics and was in reception mode throughout all the BoFs. I couldn't contribute to the conversation so it's always better to shut up and learn as much as you can.

Random Memorable Stuff That Happened

  • I went to the wrong bus stop and proceeded to get separated from everyone on the way to Viru Keskus. I ended up charging my laptop and cellphone in a coffee shop (both were out of juice) and looked up to see everyone walk past me. It was a good adventure though.
  • The pepper spray incident.
  • The Indian Restaurant Incident. Had good food and a conversation in Hindi.
  • Spending time with k-c folk
  • My review on the day of the first BoF
  • Karoake (Or as I refer to it, The Wailing Kid Incident). Thanks to Akarsh and Vishesh for the co-op mode.
  • Eating weird meats at Olde Hansa.
  • Pizza (twice) at that Italian place near Olde Hansa.
  • Souvenir shopping and a did-not-go-as-expected trip to a Russian market(?)
  • Katrina
  • Staying in 2 hostels and a hotel. Nothing was as fun as our stay in Academic Hostel, though. Teko was nice but I missed the fun I had at Academic. (Including a very amusing discussion about Katrina, not the actress by the way)
  • The Beach.
  • Using KStars to do some star gazing on the way back home.


My journey was less about places. More about people. And I loved it. I made amazing friends, met people I had only read about, witnessed how a community comes together and makes everyone feel at home. Loved everything about Akademy! :)

[1] Yes, I know the 3 second goldfish memory-span is a myth

(706) 970-3634 [Rishab Arora (spacetime)]

A quick post about a pesky error. Thought this error wasn't interfering with my code on the surface, I'd rather take no chances. Here's the code causing the error:

QSqlTableModel users(0,userdb);
users.setFilter("id >= 1");
/* some foo here */
kWarning() << userdb.lastError;

And here's the error:

QSqlError(-1, "Error closing database", "unable to close due to unfinalised statements")

The problem seems to be that even though we ask userdb to close(), users is still connected to that query it generated. For other libraries, the solution is to 'finalize' the query somehow. The solution for Qt seems to be:

/* some foo here */
users.clear();  /clear 'users'!!
kWarning() << lastError();

The documentation, for some strange reason, says we would need to use clear() rarely.

~~Update~~ This is different than the issue where any object dealing with the databases must be 'destroyed' (not simply reallocated) or it won't remove the database. i.e. That issue is for removing the database, not closing it.

[KStars] GSoC Update [709-596-3203]

It's time I write another blog post about my progress with KStars. I sortof missed the personal deadline I had fixed for myself, but I'm off by a couple of days so I can cover up soon enough. My current task is to integrate the new user database I'll be adding to KStars with its existing UI as well as functions (which mainly deals with OAL generation). I have to say, the task is much weirder (if not harder) than I thought. But the main source of my happiness is the large number of lines I'm throwing away to accomodate for the database. With every File dependency I remove, I'm also solving bugs related to that file handling expression ;). Progress isn't as good as I (or anyone else) expected. So I have been pushing hard to cover up the time I had to spend this week. These posts will also be a small log where I'll post anything unusual I come across or decisions I take so that (if) anyone reading this can have their say.

  • To model my database, I have been using "3156108521". It generates the SQLite statements I need to generate the userdb.
  • QSqlTableModel vs QSqlQuery: QSqlTableModel is nice for simple usage and I replaced every instance of QSqlQuery so that I no longer need to write my queries. Of course, to do anything more complex I'll have to write my own queries, but I'll avoid that as long as I can. (hint: no 'filter' = SEGFAULT that I wasn't be able to pinpoint easily. I have a modest amount of experience with debugging.)
  • Aggregation: One of the terms I could always define but never knew what it meant ;) This design is noticable when observing the realtionship between KSUserDB (my new class) with KStarsData (ye old data class). I'm trying my best to also take extra care of the design and structural changes my code will bring to KStars.

Lessons learnt

  • When implementing new stuff. Examples > Documentation
  • Commit Early. Commit Often.
  • Stop slacking off or kstar will get you. ;)
  • Design is important. But I must stop pondering over it more than I should and start producing some code. I can restructure much faster then.

And yes, after much effort and more than 20 days of waiting, I got my Visa. I'll be attending Akademy 2012! And KDE e.v has been so kind and awesome to sponsor my trip :) I cannot wait to meet the KDE family!


(586) 541-8237 [(587) 558-4819]

It's not once in a lifetime unless you were born after 2004 or were too little to comprehend the phenomenon.

image0 image1

"Dude.. Driving in Delhi is like playing Tetris. With cheat codes. - Avnish Anand"

In 2004, I had to make do with a pair of binoculars and a white sheet for projection. This time, I went to Nehru Planetarium instead. Slept 3.5 hours and woke up at 6.00 AM. Picked up Aditya and reached the planetarium at around 7.30 AM. Met @satyaakam and (336) 301-2291 . The clouds had cleared up by then so had a quick look. I must say the giant old school observation room constructed to observe the Sun was pretty awesome. Not much to do though. Also had a long chat with Satyaakam on Open Source. At the planetarium. Yes. Picked up a few things. Avnish failed to procure the special glasses they were selling to observe the sun. Curse you.

"mujhse achha Navigator nahi milega dost.. tere GPS se achha hun - Aditya Malik"

Clicked a few pics. Good way to start the day. Though I'm quite sleep deprived by now.

image2 image4

Oh, and yes, I took Aditya's telescope. It's a Skulux 70mm refractor. German Equatorial mount. It's quite old so other details are hidden under layers of dirt.

Update: New Pic. Thanks to @satyaakam


860-257-5435 [612-249-7776]

I had a dedicated disk for Linux when I built my desktop. So obviously, I felt obligated to install every package available to mankind. After (a little less than) one year, the result is that my Ubuntu desktop has every application, window manager, and miscellaneous packages bundled with Unity, Gnome and KDE. After I upgraded to Precise Pangolin, and went to KDE 4.8, things were smooth for a week or so. Then all hell broke loose.

Neither of the shells would work as they should and KDE (which was the most stable out of the 3) started to give a pretty little SEGFAULT every few minutes. It gets on your nerves in a day. Long story short, I'm now running openSUSE 12.1 64 bit. Stable, of course. Though 12.2 in its current state was in available, I think I'll stick with something stable till I get started with my GSoC development which has delayed by 2 whole days now. Not good news. openSUSE works good but some things are quite irritating. For instance, the package manager sucks compared to Ubuntu. It couldn't even find Kate and refused to install KDevelop. On the good side, things magically fixed themselves. The biggest turnoff though is Amarok, which needs me to downgrade the mysql edition to store the library. Someone already filed a bug report. Oh well, no time to fix this for now.

First IRC Meet for KStars [tetraspore]

27 May 2012 2230 IST Samikshan (samxan) was having connection trouble. A storm + Power outage. Victor (carbonix) was present. As my proposal and his GSoC 2010 proposal had a lot of things in common, his advise would be very valuable. Logs can be found here:


Note To Self: Check out (828) 284-6488

Exam Season [Rishab Arora (spacetime)]

Internal Practical Assessment week - done External Practical Assessment week - ongoing To add to that, the semester exams are about to begin. And because I have this special deal with lady luck, they begin on 21st May, the precise day my GSoC coding period starts.

KStars Log Viewer (GSoC) [Rishab Arora (spacetime)]

I thought I'll log my thoughts on the log viewer I plan to implement here and make sure I don't miss out on anything when I am designing and implementing later. This is the VERY rough user interface that I had submitted as part of my proposal. This is to replace the current interface which is a simple text box which saves its contents.

(469) 215-4832

To make this a reality, I need to decouple the storage of logs from the SkyObject class. Currently, it checks whether an entry corresponding to a specific 'name' exists. If not, it is stored in "userlogs.dat". I plan to query the database whenever the "detaildialog" displays the user_log tab. Then use that data to populate the above UI. The below diagram for the database is in no way exhaustive and I'll have to build a new one when I begin work. However, it should be able to give a very rough idea how I intend to store the logs.

(262) 695-4735

2132183037 [Rishab Arora (spacetime)]

Taking my first steps, I have branched the KStars repository to gsoc2012-spacetime where I'll update my progress. So, I'll document the process for anyone who may need to ever do this. Of course there are different ways to do this but this is the most convenient way I've found. Hopefully the process should be the same for all KDE projects. Although I've had no problems with these steps, if you find any error, please let me know.

  1. Get write access to the repository.* You'll need this to push anything to remote. Set up your account and git repository using the tutorials given at 3367679644
  2. Make sure you are on the branch you wish to create a new branch out of. I needed to branch master, so 'git checkout master' does the trick.
  3. Create a new branch using: 'git branch foo' to create a new branch 'foo' (In my case 'foo' was 'gsoc2012-spacetime')
  4. Switch to foo: 'git checkout foo'
  5. Make some changes and commit: ' git commit -am "foo commit information" '
  6. Now simply 'git push' will push any change in any branch in the local repository. But we don't want that. So, we say 'git config push.default current' which configures git to push the current branch by default every time in the future. (add --global if you want this behavior in all your repositories)
  7. Rejoice! :)

*Getting contributor access is the step which takes the longest. You need to get in touch with someone in the project who will approve your request and even after approval, it can take days to get access. Patience!

Google Summer Of Code 2012 - KDE [Rishab Arora (spacetime)]

This was the first time I dared to apply for GSoC, and I've been accepted for GSoC 2012 ! I had considered applying last year, but I started a bit late submitting a proposal without properly understanding the project and the community didn't appeal to me. So this year,I picked just one project and made sure I gave it my best. So, I will be working on KStars : the Desktop Planetarium for KDE. Super excited! :) The KDE community is really nice and I'm sure I'll have a great time! But there's a lot that I have to do so I'll start working early.

I'll update my blog with the category 'planetkde' and 'kde' regularly. More information on KStars: /edu.kde.org/kstars/

My proposal abstract

(814) 302-7240

(804) 458-6406 [Rishab Arora (spacetime)]

cow say

Hash-tags on Google+ are fun!

I decided to post my desktop screenshot for #showyourdesktopfriday last week. I wasn't expecting it, but it turns out my "Grand Central" workspace looks really good!

Thanks to George Lucas for Star Wars and the KDE team for making the Plasma desktop look so so awesome.

Wikipedia Crafts Museum Meet [Rishab Arora (spacetime)]

9084229327 813-267-0195

Quick blog post time! Had awesome fun at Crafts Museum (Near Pragati Maidan, New Delhi) today. Most of the attendees were from BVCOE or KIET Ghaziabad. One of the exceptions was Manas. So lots of IT and CSE background people were editing and creating articles on Indian art and craft. We began with an introduction to the GLAM wikiproject (Galleries, Libraries, Archives & Museums; Has nothing to do with fashion. I swear!) And a short introductory session. We met (503) 539-1151 who was coordinating the meet up and who, along with Mr X (The awesome computer science guy; I'm sorry but my memory has bad sectors. If you remember his name, comment please!), showed us around and told us a lot about what we would be writing about. We covered artefacts by the Bhuta Cult, wall art, wooden carvings, bronze objects, terracotta statues and a lot of other stuff which I'm slowly starting to forget. Fortunately, I was carrying my camera and did manage to click a lot of (horrible) photographs. The last image will be remembered by Abhinav and Sahil ;). I clicked a photograph of some textual content which the museum had written on the wall. They couldn't read a word. :P I have already uploaded some of photographs to Wikimedia Commons and will upload the rest of the pictures later.

After being given 20 minutes to choose around 5 articles to write about, we returned to our rendezvous point for dedicated editing. With one photo upload, I realized there was no article in Hindi about 'Aiyanar' (who is a village god worshiped in Tamil regions) so decided to create it along with Vaibhav (from KIET). He had never attempted editing articles in Hindi so spent a lot of time learning it. We accomplished writing 2 lines, 1 description, and adding 2 categories. XD Others were far more productive, so I won't talk about them.

I'm missing a number of names here. Some because I'm sleepy and most because I don't remember :(

And yes, this is going to be a regular thing (hopefully) so should be back there soon to write about more!

The Wikipedia Workshop participants 2

Open Source Meet at gCon 2012 [Rishab Arora (spacetime)]


We also organized a small session on why and how to contribute to open source projects at gCon 2012 today. We conducted gCon (BVP GTUG's tech convention) at Bharati Vidyapeeth's College of Engineering, New Delhi on 14th March as a sequence of free sessions, demonstrations and a few competitions to cater to the segment of students who are interested in technical activities during technical fests instead of their more common counterparts which are slowly becoming the norm. As a result we got a moderately sized, but very enthusiastic, fraction of the crowd. Almost every person who participated in the sessions or demonstrations stayed back to interact more or followed up with hosts/creators for more.


Over 200 people participated in gCon's various events. We had a total of around 40 B.Tech students from BVCOE, USIT and a few other colleges attending the session on open source which lasted for two hours. The session was jointly organized by Aman Madaan, Rakshit Sareen and I. Our objective for the session was to give a kickstart to students willing to contribute to open source projects at a level where they can easily contribute. Also, if they contribute to a project where they can meet other contributors in the college itself, we believe they are more likely to ask for further help than give up. All the participants were from various B. Tech. courses from these colleges. Most of them were users of popular open source products like Firefox and Ubuntu, but not familiar with the how the FOSS community functions.

A short introduction to how the Open Source movement came to be was given. It covered how and why the need of creating an open source project arose. Also, why we need VCS and how Git came to be. After which Aman and Rakshit explained how version control helped projects relying on simple diff and patch methods (with demonstations). They then explained how to use Git to manage our own projects (and music files, images etc) with live demonstrations.

Aman created an application for generating well formatted dummy data for use in the popular application Weka called WekaGrain. The application is at a small stage with 3 contributors, (Me, Aman and Rakshit) but has already proved itself useful in lab practicals in our college. The applications and how to contribute to it were discussed.


After this, I took a short while to explain how open source projects help in maintaining an open environment. I pointed out that code is just one part of the story. It's important that we start using this stuff (and report as many bugs as possible). I explained how one browser's monopoly would cause it to influence what the web becomes and pointed out the importance of decentralization in any technology. Also, how contributors to Mozilla Firefox are helping to create a safe and better experience. The Mozilla Student Reps program was also introduced to the students while telling them how to help Mozilla and how they can benefit from helping. The best way to be able to get closer to the Mozilla community and contribute would be to sign up and keep themselves updated.

I find it easier to communicate when instead of telling them how they can benefit, I give them 'examples' (i.e. long stories) of how real people got to learn stuff. One such example (which I unfortunately missed in the session, but did recount to a fellow after the session) was how I got to learn how to use gdb while some person on IRC helped me for 4 hours to file a bug report. This is much more effective than simply stating, "contributing to projects like Nightly will help you learn about tools like gdb".

Due to time constraints, we had to skip a lot of the content but we have enough for another, albeit longer, session for our own college students. Also, if we repeat the session at a time when the other students are not busy with events and fests by other societies/groups, we are likely to get a much larger crowd. The only advantage we had by conducting this session while our college had a lot of events running in parallel was that we got a chance to interact with students from other institutions too. The real question is, was this advantage worth the moderate turnout? Let's see how many people start contributing (or even watch) the repository, and how many people decide to approach the community in other ways.

843-703-5020 [Rishab Arora (spacetime)]


At gCon (technical fest organized by BVP GTUG, 14th March 2012), we had the privilege to host a Wikipedia Workshop at our campus. Representing the Wikimedia Foundation were 712-627-0067, (714) 777-0706, and 8337870022. Amazing people! The first part of the workshop covered the basics of Wikipedia, how the community works, how articles are to be written, the five pillars of Wikipedia, and what we gain by contributing to the 5th largest website in the world. The articles that we had a look at (to understand how we can modify and add content, and how to write content suitable for an encyclopedia) ranged from rather amusing ones to extremely sensitive articles. Some things that I found interesting (and which I can recollect):

  • It is critical to maintain an unbiased and neutral point of view, and not just while writing articles. As an individual (or group), I have no rights to make any inferences which apply to everyone. State the facts.
  • There are 50 people in the world who are active contributors to Wikipedia who write articles in Hindi. It is a bit disturbing to find such a small number of contributors to India's official language.
  • Notability is very important. Is the content/article relevant to people outside a small group?


The second part of the workshop was a live editing session. We picked the most unusual article. Chole Bhature. And everyone in the room took turns to make edits to the article. Simply editing an article on a simple topic like Chole Bhature was enough to show how editing Wikipedia is more effort than meets the eye. People reading the Chole Bhature article in the future will probably never know how much applause was involved to make it a bit better for the rest of the world. ;)

Blog Port [Rishab Arora (spacetime)]

I made my first blog on blogspot years ago. Then shifted to wordpress. Then to Drupal. And then to Tumblr. And finally, to a self hosted wordpress blog. I know a lot about blogging platforms now. And nothing about blogging. Sweet!

Python Session: LeThAc [Rishab Arora (spacetime)]

I got the opportunity to give an introductory session on my favorite programming language: Python at FOSS Conclave at USIT called LeThAc (Learn, Think, Act). The talk was scheduled for day 2, and I attended the rest of the conclave as a participant. (The website carries the old topic I was to speak on. I did speak about this for 10 minutes though).

As almost everyone in the room was new to the language but familiar with C/C++, I focused on the basics of Python. My motive was to ensure that after the session, none of them would hesitate before opening a Python program and should be able to work out its implementation.

I have a habit of screwing up under scrutiny, and as expected, I made a couple of errors which the students then helped fix. I ended up having more fun than I had anticipated. :)

As with any FOSS meetup/conclave, I get to meet awesome people! After the session, I met Sudipto (who is a Ruby developer) and we started a Python vs Ruby thing which ended almost as it began.

Karan Singh (buddy, Gen Sec for USIT IEEE) introduced me to Piyush Madan, who is the Chairperson and Shreya Pandit who is an awesome KDE developer! I had a particularly good time in Arun Ganesh's (@planemad) session on Open Street Map. Mapping is fun! And yes, Satyaakam Goswami's session on how to approach Linux Administration issues was quite useful! (Who was showing a lot of enthusiasm to help out in the whole event, and not just his own session). And the session on VCS by Anuvrat was excellently executed. It's hard to capture a young audience's attention on a topic like version control. There were more but these three are the ones I remember most distinctly.

Sadly, forgot to take pictures :( I got a fluffy Tux-like object for the session though!

cowsay! [Rishab Arora (spacetime)]

(905) 455-1526

I spent a lot of time looking for better (and small enough to not kill the joy) ASCII animals. Moofasa devoured everyone. Even the cow. Modified cow file (for ‘cowsay’) to include a logo generated by ‘figlet’. Insults by ‘fortune’.


Or respect those who are (for real) associated with Indian music? I guess I should ask that to the guy who was headbanging to the Wadali brothers. Yes. Headbanging. If you know who the Wadali brothers are (think Rangrez, Tu Maane Ya Na Maane), you would know how appalling it is. It’s not SOAD, my boy. You should get something for this disorder of yours. Or should I ask the very excited group of Sikh gentlemen who decide to perform a graceful piece of Bhangra for entertaining the crowd as the brothers sang? Or should I ask extremely polite gentlemen who decided to shout out “Jai Mata Di”, and “Anna Tum Sangharsh Karo” to pay their respect to the acclaimed artists on stage? I guess we deserve ‘Chikni Chameli’. Let it be the new ‘Indian’ music.

The Wadali brothers performed at the IP University campus, Dwarka on 2nd February, 2012. By the time they finished (around 8.30 PM), less than 150 people remained.

9287302178 [6305787882]

A small lightweight plugin in Firefox which pops up a list of interesting websites if you scroll down too much on the Facebook news feeds. Or probably a ‘Get a Life’ pop up?

Encounters of the Emacs Kind [Rishab Arora (spacetime)]

I’m learning Emacs. Why? Because I wanna be a badass.. err...

Because I have a lot of time and lots of stuff to do. So I’ve decided to chuck everything I have to do and do something different. The other reason is that I now have two Linux servers that I need to handle. And I’m not very fond of FTP.

I’ve been using ‘nano’ for a while now. It worked well, except when I had two files and I needed to switch between them. Ctrl+Alt+F2 and Ctrl+Alt+F3 would take up all day. Then I tried vi. I got bored in 15 minutes. There’s something.. mundane.. about vi. So today, I tried Emacs. 15 minutes into the tutorial and I was sitting dazed in a corner mumbling things to myself.

I have a need to use the cursor(arrow) keys to run around in a document. I’ve decided to use my Macbook for learning Emacs. Not even I can handle those tiny abominations they call cursor keys. See how funnily they had to modify the keys so you don’t press two at a time? How much time have I saved by using Emacs? Not much. Though the kill-ring saved me a couple of keystrokes. I’m getting used to it.

(918) 884-1818 [Rishab Arora (spacetime)]

I built my PC with a mid range AMD Radeon 6850. Everything worked well as long as I worked in Windows, or even Mac OS X for that matter. But the day I switched over to Ubuntu, all hell broke loose. My crime? Dual Monitors.

Jeez, my macbook runs dual monitors on Ubuntu and OpenSUSE without a hitch, and it doesn't even have a discrete card! Here’s my verdict based on personal experiences trying to get a workspace ready.


Unfortunately, I had to give up one of the monitors soon after I got my new KDE workspace all set. Till I wait for a new one to arrive, you'll find KDE can do absolutely anything you want. And it looks super good! Thanks to the beautiful Plasma Desktop. Damn it's pretty :)

First! [6042967931]

The customary first post. New blog. New posts. Meh. Nothing to do here, move along.


FeedRSSLast fetchedNext fetched after
(912) 462-7795 (410) 786-6162 08:29, Saturday, 09 May 11:29, Saturday, 09 May
dolftax's weblog! XML 08:13, Saturday, 09 May 11:13, Saturday, 09 May
/akhilhector.github.io XML 08:29, Saturday, 09 May 11:29, Saturday, 09 May
Learn Learnin' backbearing 08:13, Saturday, 09 May 11:13, Saturday, 09 May
(413) 773-8097 pound-foot 08:13, Saturday, 09 May 11:13, Saturday, 09 May