Desktop Summit 2011 Day 1

Today was another exciting day in the Free Software Desktop – The Berlin Desktop Summit 2011 – The meetup of KDE and GNOME contributors (yes, where the gearheads meet smiley).

After the awesome pre registration event last evening at the C Base – Berlin's hackerspace, today was exciting with welcome talks from GNOME's Karen Sandler and KDE eV's President Cornelius Schumacher where he stressed on increasing coordination and understanding between the two projects.

Dirk Hohndef gave a very good talk about how Free software contributors should look at large companies, that the companies thinking about their profit first is something that shouldn't be surprising. For us, the most important suggestion was to listen to our users more and more, which we undoubtely welcome in KDE.

Another interesting talk was Martin's talk about KWin and its plans of supporting Wayland and how to make the “transition” from X to Wayland. This was followed by KDE and GNOME Google Summer of Code (and KDE's Season of KDE) students. The Copyright Assignment panel discussion was pretty interesting (and even funny wink ) with Open SUSE's Michael Meeks made some important points, while Mark Shuttleworth made some attempts to defend project Harmony, though in vain cheeky

And then the awesomest part – had very nice dinner with the Calligra team at a fine Indian Restaurant, thanks Boudewijn 🙂

Advertisements

Gluon GSoC update

(Quite some time since I last blogged, have been busy with life's “last exams” and a project work demonstration in which the examiner says I need to relax and enjoy more. Yeah, right cheeky)

I will be spending this summer working on Gluon as a part of Google Summer of Code 2011. The work will be mainly to add features that Gluon needs for the next release.

As the post title says, here is the stuff completed till now-

  • One problem with Gluon Player's library code was it didn't do the abstraction between Gluon Player's logic and Attica (KDE's OCS client library), thereby putting a lot of duplicate code at places. This has now been fixed by providing a proper abstraction layer between Gluon Player and Attica. This also gives the additional benefit of being able to use other protocols, if needed in the future.
  • Second, Gluon is now able to download and install games from the gamingfreedom.org server. This is not implemented in GUI, so usual testers will have to wait for some more time, as we are still working on using a standard archive library for our work, and resolve some non-technical issues.
  • Finally, the library has support to rate games. Again, the GUI for this is not yet ready.

Because GUI for some functionality is missing, there are no screenshots sad. But no need to worry,  it is one of the tasks I will be taking up next. Thanks for reading smiley

Calligra is now Active !!

[update] Steps to build have been updated, please note the new cmake flags

Its been quite some time since I started working on a QtQuick GUI for Calligra targeted for mobile devices.

Being available on a spectrum of devices has been one of the goals Calligra had, from the very beginning. We even had awesome releases of FreOffice – Calligra running on Maemo Fremantle with full blown support for viewing and editing supported documents.

The next step in our endaevour is Calligra Active, which was started as Calligra Mobile under a project supported by a collaboration between Nokia and Visvesvaraya Technological University. With continous support from the community, we have finally reached our first milestone – a QML GUI which can be used to view office documents (Text Documents, Spreadsheets, and Presentations).

Without further delay, I present some screenshots (these are running on my desktop machine, as I am still not successful in compiling it for my N900, which is the only touch device I have) –

Home Screen (Type filters, and Recent Documents)

Presentation View (The navigation fades off when in case of inactivity)

Text Document View

Spreadsheet View

 

If you find it interesting, please try it out-

  • Get the Calligra sources from https://projects.kde.org/projects/calligra
  • While running cmake, pass -DTINY=ON to enable building active
  • Once its built, run kbuildsycoca4
  • Finally, run calligraactive /path/to/document
  • The application will keep saving a list of recent files so if you run calligra-active without any arguments, you will see, on the right hand pane, a list of recent documents. The list can be further filtered to only one type of document using the buttons in the left pane

While its on a working stage for viewing stuff, there's a lot of stuff to be done on modularizing the code, and adding support for editing. So if you feel this is exciting, that you can make a difference, please contribute. We are there on Freenode at #Calligra, #CalligraMobile, and #active. See you there smiley

In the end, thanks again to everyone who helped, starting from Suresh and Mani for the idea way back in January to Boudewijn and Arjen Hiemstra throughout the process, and everyone else in the Calligra team. You guys rock!

How to access more than 3 GB of RAM on ubuntu linux without installing 64-bit kernel

I recently upgraded my ThinkPad to 4GB RAM. However to my surprise I learnt that 32-bit OSes can only access 3GB of the RAM. Sad, isn't it? But, here's how to get happy –

Linux is to the rescue, if you are running a recent variant of an Ubuntu system, just install the PAE version of the kernel, reboot your computer, and you're done smiley

  1. First check if your CPU supports PAE, run “cat /proc/cpuinfo | grep pae”, any output is success.
  2. Run this command to install the PAE enabled kernel-

sudo apt-get install linux-image-generic-pae linux-generic-pae linux-headers-generic-pae

Enjoy!

Why conf.kde.in

With all of the foss-y events going on, its been an exciting month, and will be so for the month to come. Most of you would have heard about conf.kde.in this year, and some wondering what its all about. Thats what this post is all about.

KDE Booth at foss.in 2008
So a bit of history about my experiences with KDE. My first encounter with KDE was the KDE booth at foss.in 2008 with the cool posters and super people like Pradeepto, Sharan, Adriaan etc. Even the people who didn't contribute to KDE were present at the booth. The reason was simple, that is the way KDE is, the most important thing is the community and whoever is a supporter of freedom is welcome.


I wasn't very used to the GNU/Linux system and had just begun using Ubuntu, and had installed Kubuntu separately for the KDE workshops. Those were the days of KDE 4.0 which was in a very early phase. Even with the coarse experience with the desktop, I loved the Plasma intro by Adriaan and I dedicated the whole day for that simple plasmoid tutorial. Thanks to his help and patience in helping me, I was successful.


At the closing of the KDE workshops, I got a Qt book gifted for helping with the banners setup etc. I felt obliged and thought its a good opportunity to learn Qt and some C++ in the process. I learnt Qt for a month and built KDE from source and fixed a bug I had myself reported few weeks back. I never expected that I would be the one fixing it smiley


I applied for GSoC 2009, but due to lack of experience, I didn't get selected, however Season of KDE gave me a chance to contribute to the project I had applied for GSoC, Plasmate. (The only mistake I did was assuming that SoK didn't require me to inform Lydia that I am working for it). Working with Diego Casella and Yuen Ho I added an editing part to Plasmate. However I didn't get the tshirt as I never asked for it cheeky


This was followed by patches for bug fixes and feature requests. I slowly gained confidence and fell in love with KDE [nerdgasm]. Come foss.in 2009 and I was the person who coordinated KDE PoTD and the sessions. It was a huge success and made me feel even more happy.


I was also thrilled at giving Qt talks at events like NITC FOSSMeet and MSRIT's Mukthi and even more in the same year. That also made me realize something I inherited from my father, the urge of teaching people how to do practical stuff.
Come 2010 and I applied for GSoC again, and hurray I got selected, and got a chance to work with cool people such as Leinir, Arjen and Sacha. And that wasn't enough for my happiness, I got a chance to go to Akademy at Tampere, Finland and meet all KDE folks, and it was great – um .. Wait I don't think great is the word great enough.


I would go on explaining all the coolness KDE gave me, but I guess the above gives an idea. Oh and for the people who are very concerned about college “placements”, all the contribution to KDE SC made the interviewers go crazy wink They never asked me technical questions, just asked me to explain my KDE work (well except Google, they're just algorithm addicts). So KDE gave me the practical experience that helped me a lot.


After that long introduction, I think I need not explain the importance of meeting other community members so to understand where you can make a difference. Thats exactly what conf.kde.in has been designed to provide students and pros alike. Its one of the once in the lifetime opportunities that you certainly don't want to miss.


Oh and by the way, friends who are unsure about the registration fees, think about it, the experience you will have at conf.kde.in will be priceless. (So why is there a fee? Well, some things ain't free of cost, so the fee pays the delegates' lunch/snacks etc). And in the end, delegates attending any conference don't go home empty handed. I've always got tshirts and goodies worth more than the conf fee itself wink at many conferences I have attended.


Hope that helps you decide whether to attend the conf. But as always, feel free to ask.
Register NOW! http://kde.in/conf/register.

NOTE: As pointed out by my friend Nikhil here, make sure you bring your laptop to the conf if you have one. Even if it doesn't have GNU/Linux, we will help you setup one smiley

conf.kde.in 2011

conf.kde.in banner


KDE-IN Logo

KDE India community has announced its first KDE/Qt conference in India. The 5 day event titled conf.kde.in will be held in March 2011 at the R.V. College of Engineering, Bangalore.


RVCE was established in 1963 and now offers 12 undergraduate engineering programmes, 16 master degree programmes and doctoral studies. It is located 13 km from the heart of Bengaluru city, the Silicon Valley of India, also known as Bangalore. The college has a sprawling campus spread over an area of 52 acres set in sylvan surroundings. RVCE is rated amongst the top ten self-financing engineering institutions in India.

The main conference will be of 3 days followed by 2 days of code sprint.
Main conference will consist of talks, tutorials about KDE/Qt for students, teachers and professionals alike. The talks will be delivered by KDE and Qt veterans.
The following code sprint will be where existing KDE contributors will sit and work on their respective projects. A code sprint is beneficial as different developers can collaborate together and work on implementing ideas.

More info about the event at http://conf.kde.in and http://kde.in

It will be a lot of learning and of course, fun! I will be there, will you?

How to connect N900 to Internet through another phone having GPRS

This is the Nokia N900, the day you think that you've had enough of the features, you end up with finding that you're wrong.

Ok, so the scenario is that I have two phones, a Nokia 6630 and a Nokia N900 having Airtel 2G and BSNL 3G SIMs respectively.

Right now, my N900 is mainly put on tablet mode (offline mode + WiFi + Bluetooth) because I don't use the 3G Internet (too costly right now). My N900 connects to the Internet using an Ad-Hoc network I create using my laptop.

At times my laptop isn't on, and I want to access the Inernet from the N900 (say for installing a package). Until now, I used to put the 6630's Airtel SIM into the N900 to use GPRS and then put it back. This is a tedious process and there is a risk of the SIM pins getting damaged.

Today, I just got this idea – I use the 6630 to connect to the GPRS from my laptop when on the move, why not do the same thing with the N900! After all N900 = Small laptop.

Here's what I did and what you need to do if you want the same (Beware, for advanced users only, this can kill your cat). This is the general procedure you can follow to connect a computer to GPRS Internet using a Bluetooth enabled mobile phone –

Install the packages ppp, power kernel, and rootsh from extras-devel. Now we can run the following commands-

  • hcitool
  • rfcomm
  • pon

Open a terminal and gain root –

user@Nokia-N900~ $ sudo gainroot

Next, turn on Bluetooth on both the phones and execute this on the N900 –

/home/user # hcitool scan

This will scan for bluetooth devices and the output –

Scanning …
        00:11:9F:D7:62:FA       Nokia 6630

The first column is the Bluetooth address of the phone, note it down.

Next, we have to find the channel for DUN –

/home/user # sdptool browse 00:11:9F:D7:62:FA

This gives a large output, locate the entry for “Dial Up Networking” –

Service Name: Dial-Up Networking
Service RecHandle: 0x1003e
Service Class ID List:
  “Dialup Networking” (0x1103)
Protocol Descriptor List:
  “L2CAP” (0x0100)
  “RFCOMM” (0x0003)
    Channel: 3
Language Base Attr List:
  code_ISO639: 0x454e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  “Dialup Networking” (0x1103)
    Version: 0x0100

Note down the channel number (in my case, 3).

Next, we have to configure rfcomm to connect to our phone, to do this (vi can be used in place of nano) –

/home/user # nano /etc/bluetooth/rfcomm.conf

Modify the file to look like this (obviously, put your phone's address and channel) –

rfcomm0 {
        device 00:11:9F:D7:62:FA;
        channel 3;
        comment “Example Bluetooth device”;
}

The last step, we need to configure pppd to connect to this Bluetooth modem –

/home/user # nano /etc/ppp/peers/provider

In this file, change the following lines to what is shown –

user ” “

connect “/usr/sbin/chat -v -f /etc/chatscripts/pap -T *99#

# Serial device to which the modem is connected.
/dev/rfcomm0

All is set, lets connect! –

/home/user # rfcomm connect 0 &

Connected /dev/rfcomm0 to 00:11:9F:D7:62:FA on channel 3
Press CTRL-C for hangup

/home/user # pon

If everything went fine, your other phone should connect to the Internet and N900 will use that smiley

Plasma Devel Bangalore Meet at Mantri Square

I met with some of my friends on Sunday for a get together. I realized that all four of us are the only contributors to Plasma from Bangalore, so I thought it will be cool to call it Plasma Devel Bangalore Meet :)

We had loads of fun and some discussion. Also, warm welcome to the new contributors who have joined us, Sinny and Sudhendu. Here are some pictures I was able to take-

[bg|http://picasaweb.google.com/data/feed/base/user/jhahoneyk/albumid/5516057472127542257?alt=rss&kind=photo&hl=en_US|3|200|random|6|#FFFFFF]

See all the photos here.

The Gluon story so far

Beginning of The Plasmoid –

It all started with a GL Applet, one with the ability to provide a OpenGL context in a Plasma applet, put to use. Thanks to Arjen who made some improvments to make it more compatible with some configurations.

The plasmoid then wasn't much fancy, but you could play Invaders on it. I had posted on it here.

Doing the job, libGluonPlayer –

This came as a surprise to me, because till now I was under the impression that I have to just design a well functioning and good looking plasmoid look-alike of an existing Gluon Player application. Actually, the player was in a very initial stage and I couldn't just port it to Plasma, I was supposed to write the library.

I'm still thankful to the fact that this was the case, because I learnt a lot in the process. I had only fixed bugs till now, and loaded a kpart in Plasmate, but when I was writing the library, I got a strong hold over one of the foundations of Qt – the Model/View architecture.

Designing the models –

It wasn't as glamorous as the title seems to be wink, but it was indeed very interesting and challenging. I wrote the following models for the library-

  • HighScores – Keeps track of the players' high scores so far, and other information.
  • Comments – Keeps track of the comments on a particular game. This was a tree model, and the most challenging to implement.
  • Games – As the name suggests, this model loads the available games locally. The remote fetching feature will be implemented soon when the server is ready to serve the games.

Writing all of these models was fun, and the joy of the work was even more when I could see how easily it can be used in both the Plasmoid, and the Qt based player. This tells us that we indeed reached our goal of providing a base library for a more specific implementation.

Viewing the models –

No, I wasn't at Milan wink, it was the views which I wrote for displaying the game information. Though Qt provides convenience views for all types of models, I thought it would be better to write Plasma specific views. After all, thats the whole idea behind the Model/View architecture, that the views can be specific.

[flickr-photo:id=4885585239,size=m] [flickr-photo:id=4886188534,size=m] [flickr-photo:id=4885584117,size=m]

Using lots of layouts, and the beautiful Plasma themed widgets, I designed the views, which contained still smaller QGraphicsWidgets which served as items in the views. The whole design worked out very well, layouts are really a much better idea that positioning the graphics items entirely through code.

Using Plasma guns –

Plasma is a really nice platform for effective GUI, the themed widgets such as the tab widget are simple, yet effective solutions to page content. Other cool things include the dynamic size adjusting Plasma ItemBackground, and the mobile flick-friendly Plasma scroll area.

Techbase contribution –

I had earlier made few corrections to some techbase articles, but I am really happy on revising and updating an Attica example at http://techbase.kde.org/Development/Tutorials/Collaboration/Attica/Introduction

Using the GDL –

When writing the tree model for comments, I used a hierarchy of GluonObjects because the Gluon core libraries have a feature by which one can export the entire GluonObject tree to GDL (Gluon Definition Language) and similarly import the tree from an existing GDL. This made saving and loading comments consistent with the rest of Gluon. Below is a sample of GDL-

{ GluonCore::GluonObject(HighScores)
    { GluonCore::GluonObject(Shantanu)
        HighScore int(2000)
        Level int(10)
    }
    { GluonCore::GluonObject(Arjen)
        HighScore int(1000)
        Level int(1)
    }
    { GluonCore::GluonObject(Leinir)
        HighScore int(500)
        Level int(2)
    }
}

Translation frendliness –

I was very happy to find that people have already started trying out Gluon and giving feedback. Thanks to Johannes Obermayr, I realized that I forgot to i18n the plasmoid's strings.

The Social part-

This is the most important and rewarding part of the library, where the application meets the web. We use the Open Collaboration Services to collaborate between many content servers and the Gluon Player. The KDE library used to access OCS services is called libAttica and was very helpful in the process.

The Gluon Player Library is now able to update comments from the test server (currently at test.gamingfreedom.org) and keeps a local copy so that the user doesn't necessarily need to be online.

Gluon Player Comments

Right now, Attica uses the credentials from its KCM in the KDE System Settings dialog. However, as the library is going to be used on other platforms too, I plan to provide a separate credentials support in the player library.

Finally

This year has been very very nice, from getting selected in Google Summer of Code, to realizing my dream of meeting other fellow KDE developers at Akademy, all has been just awesome.

Ok, lets get back to work so that we can make a player to play! Invaders Lasers – Pew Pew smiley

Akademy Day5, my Day4 – Devices, Specs and Pics

Today was a rather productive day as I sat with Leinir and Arjen, hacking on Gluon (while Sacha was trying to get his Qt Creator to work with his N900) and as a result, the comments model is now editable 🙂

As mentioned in my previous blog post, the Gluon Team has received a Nokia N97 mini for testing Gluon Player o S60 platform. Though we currently are focusing more on Maemo/MeeGo devices, we'll be very excited to bring the social gaming experience to Symbian.

[flickr-photo:id=4771565105,size=m]

We had a very exciting and comprehensive meeting on the Open Collaboration Services Specifications/API update. We added few new modules/properties to support the needs which are currently arising.

[flickr-photo:id=4772207310,size=m] [flickr-photo:id=4771567203,size=m]

In the evening, had to skip dinner as everyone else went to had, and I couldn't locate them :-/ Did some photography outdoor and came back to do the laundry and hack some more on Gluon.

[flickr-photo:id=4772204786,size=m]

Oh, and Ryan, Chani and others had some Karaoke stuff too! 🙂