My GSoC 2010 Proposal

Many students have been asking for sample proposals for reference so that they can understand how to write a good one. I'm sharing my GSoC 2010 proposal which was accepted for Gluon. Hope it helps smiley

 


 

Proposal for Google Summer of Code 2010

Gluon Player Plasmoid

Name:                                       Shantanu Tushar
Email Address:
Freenode IRC Nick                Shaan7
IM Service and Username:
Location (City, Country and/or Time Zone):  Bangalore, India, UTC +0530

Proposal Title: Gluon Player Plasmoid for the Plasma shell

Motivation for Proposal / Goal:

As the Gluon wiki describes it “Gluon is a cross-platform free and open source 2D game engine from KDE. It aims to make life easier for game developers by providing a simple but powerful API to handle 2D objects, sounds and inputs.”, Gluon will be a
revolution in the way we've seen 2D game creation. People will be able to create new games in a more flexible manner, while the Gluon web content system will allow them to earn rewards.

The Gluon Plasma applet is another step in this direction, it allows users to play games published using Gluon, straight on their desktops! This will be a very rewarding and fun experience for gamers and casual users alike. As there will be no need for a dedicated window for the game, it'll blend seamlessly with the interface they've been familiar with since KDE 4.

Use Cases:

  • Mary is a professional working in some industry and does most of her planning and work on the computer. In between, she takes small breaks to play the Gluon games on her desktop. She can pause the game and instantly return to work, resuming the game in the next break.
  • Jim is a game developer, he develops games using the Gluon Creator and publishes to the Gluon game distribution online service. People play the game on the Plasma desktop and if they like the game they can instantly donate. Jim is happy and feels motivated to create more engaging games.
  • City's Public School use the KDE Educational Software to teach young children and they have small Gluon games for the children as a reward for completing homework. Children have fun and are excited about learning more.

Expected Result-

When the Plasmoid is ready, a typical workflow can be the user Downloading a new game from the online service, in the process she can see the games ranked by votes and similar categories (similar to the download new Plasma Widgets). After deciding what game she's interested in, she can instantly download the game, and start playing.

After getting some experience, she might be able to make into the top scorers for the game, and can add her entry to the online high score list. Even before that, she can view the list to see how much is to be scored to get to the top.

The user should also be able to add comments and feedback about the game which the game author can then use to improve the game. Also, if she liked a game very much, she will be able to donate to the game author as a vote of thanks.

A sketch of the expected workflow can be found at http://www.flickr.com/photos/8748559@N04/4481943338/sizes/l/

Implementation Details:

The Game Display Area-
The area where the game's output is to be shown will be implemented using a GluonGraphics::GLWidget in the applet. This GluonGraphics::GLWidget will contain the output from the Gluon game engine to display the game content.

Deliverables – A area in the Plasmoid where the game is displayed.

Gluon Game Options-
Gluon game options will be implemented inside overlay menus. The overlay is already in action in the Plasma Add-On Creator – Plasmate where the previewer menus are displayed as overlays. This has an advantage of using space economically, and giving a nice overall experience.

The options that are intended to be implemented are-

Get More Games, Play, Read Description, High Scores, Achievements, Rate and Comment, Donate

Deliverables- UI elements for the options mentioned above.

Dataengines-
A very nice feature of Plasma is the concept of Dataengines, this helps keep the data provider separate from the application logic, or rather the view logic, in this case.
Dataengines will be implemented for fetching the following data about a particular game-

High Scores, Achievements, Ratings and Comments

Deliverables- Working Dataengines for the data mentioned above, Integration with the UI.

Fetch and Play New Games-
The Plasmoid will use Open Collaboration Services to fetch new games from the Gluon game server. The implementation will use the KDE library module libattica. This will be designed to be similar and consistent with the rest of KDE, say for example the Download New Plasma Widgets feature.

Deliverables- Working UI option for Fetching New Games and saving them locally for playing.

Tentative Timeline:

April 26 – May 24
Study thoroughly the Gluon Engine which will be used for the Player. Discuss with developers on what can be shared with the Gluon player application and the maemo version.

May 25 – June 13
Implement the Plama applet with the GluonGraphics::GLWidget so that it can display a loaded game correctly. Check if it works with the examples.

June 14 – July 18
Implement Dataengines as described in the implementation details. Implement Gluon player game options like High Scores, Comments, Donate to author etc, using the Dataengines to provide the data.

July 18 – August 8
Implement the Fetch New Games functionality through Open Collaboration Services using a familiar interface consistent with the rest of Plasma.

August 9 – August 20 (pencils down)
Test the Plasmoid to work with sample games and online services. Write documentation

Do you have other obligations from late May to early August (school, work, etc.)?
I will be having university exams in the end of June, but I'm confident that I will be able to manage my time well.

About Me:

I am a student pursuing an undergraduate degree course with Computer Science and Engineering as major in B.M.S College of Engineering, Bangalore, India. Apart from having lots of interest in computing in general, I have been a free software enthusiast from past 3 years and a member of our college's LUG and creating awareness in and around our college about Free and Open Source Software.

I've been using KDE (SC) since the time I started to use GNU/Linux (KDE 4.1 then) and have loved it from the beginning, which has been mostly due to the loving community. I've been contributing to KDE software for more than a year with bug fixes and feature requests. My favourite area of contribution has been Plasma, and so I'm comfortable with the Plasma API and KDE API in general.

On the non-code part, I've conducted various KDE/Qt workshops in my own college, and other colleges with the help of the KDE community. I'm thankful to the people for giving me the opportunity to co-ordinate the KDE Project of The Day at FOSS.IN 2009. The event was very rewarding as people really appreciated the beauty of the software and the vibrant community.
I blog my activities and work at my website http://www.shantanutushar.com and have CIA.vc stats at http://cia.vc/stats/author/shantanu.

Lastly, I assure dedication of at least 40 hours per week to the work and that I do not have any other obligations during the period of the program, with the obvious exception of regular academics. Also, if any part of the proposal is not clear, I'll be very happy to clarify.

 

printf(“Goodbye world”)

Dennis RitchieFew days back, there was an outbreak in the media – people all around the world were sad about the demise of Apple co-founder Steve Jobs. While the world was in grief, no one seemed to care that the one who designed the base that gave us the technology we have, left us – without asking for thanks;

Dennis M Ritchie, popularly known as “dmr”, died on October 8 following severe sickness, and was confirmed by a close friend Rob Pike on Google+. Going back in time, we find that Dennis had never thought that computers will be where he will be spending his time. He graduated with degrees in Physics and Mathematics from Harvard. However, Dennis notes that “My undergraduate experience convinced me that I was not smart enough to be a physicist, and that computers were quite neat. So there started his journey into the digital world – he joined Bell Labs in 1966, the pioneer of communications that time. He joined Ken Thompson to design and develop the Unix operating system;

“UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity” – Dennis Ritchie;

Compared to other operating systems of that time, Unix was very portable, the only shortcoming was that as it grew it became difficult to manage. This is where Dennis and Ken thought of developing a high level language for Unix. A language called B was already in place at Bell Labs and they improved it with data types and other nice features, leading to the C language. Although by today’s standards, C is regarded middle level, it was a very high level that time. It combined the flexibility of a high level language with the power of assembly language.

Followed by this, the duo rewrote Unix in C and tested it thoroughly, their company sold it to developers who really loved how C improved productivity. Where many would think that C no longer makes sense because there are more high level languages like Python, Java etc, the fact is that all these languages are in the end, implemented in C;

All this leads to just one conclusion – the modern computing world is nothing without his work. And we need to thank him for that, remember him for the fact that most of us got a job because of him. As Kernighan notes, “There’s that line from Newton about standing on the shoulders of giant. We’re all standing on Dennis’ shoulders”;

The tributes to Dennis Ritchie won’t match the river of praise that spilled out over the web after the death of Steve Jobs. But they should.” – Wired;

Lets remember that great person who built this strong foundation for us, and give him the respect and honor he deserves, and thank him for giving us wonderful technology and making our lives better. We salute the true genius of modern computing; return 0;

Software Freedom Day 2011 at BMSCE Bangalore

Who doesn't like pleasant surprises? I got one this September when Vinay S Rao, one of my juniors at my college told me that they will be celebrating Software Freedom Day 2011. I was happy, for the fact that the sprit of Freedom and Openness was still alive in my college, and there are people to carry it forward.

Come the day, 17th September 2011, when Software Freedom was being celebrated worldwide, from Boston to Berlin to Bangalore. I must say BMSLUG had really kept up to my expectations with the arrangements. What surprised me even more was the overwhelming response, there had been more than 150 participants where we expected something lesser than 100.

Software Freedom Day 2011 Crowd at SFD 2011

The event was started with Dr Guruprasad introducing the freshers on how the FOSS culture has been going on since years in BMSCE. He also noted about me, “This guy has been physically present in CSE, but his soul was always there with ISE”, he was kinda true smiley

This was followed by Deepak Mittal and Vinay introducting the FOSS philosophy and the reasons why using Linux is useful and effective. I must say that even after it being Deepak's first time experience for a talk, he handled it very well. Next was few words of wisdom from facultly of ISE, namely Anitha ma'm and Rajeshwari ma'm who talked what advantages students will find if they explore the FOSS world. I was surprised because they did their homework very very well, and could explain some pretty good points to the students.

Deepak Mittal on Linux Anitha and Rajeshwari ma'm

As a small break, we showed the classic Truth Happens video and proceeded to one of the most content-rich and interesting talks, which was on How FOSS Changed the Web by Krishna Bhardwaj, another BMSCE alumni. Attending his talks, even I learnt a lot about some of the stuff I never paid attention to, and people answering his questions was a proof of the fact that they were going to take a lot from the session.

Krishna Bhardwaj on FOSS and Internet Shantanu answering questions

We had a refereshing round of facts and quiz, thanks to Aishwarya and Suhas of ISE. We gave away KDE India badges, stickers, Google pens and few KDE India TShirts (for difficult questions). The part I loved the most was the question which asked people to identify the K logo – it was awesome, nearly 80% of the people raised their hands!

Later, I gave a talk answering the most common questions about Getting Started with contributing to FOSS. As always, I used the antigravity example for BBall plasmoid to show how simple it was to code, especially for those who get a feeling that writing real world code is difficult and/or complicated.

Shantanu Tushar Vinay S Rao

This was followed by Big Buck Bunny and a break, after which we screened Sintel.

The next talks were from our guest speakers, Smit Shah from RV College of Engineering who spoke about The Social Semantic Desktop, and Sinny Kumari from Dayananda Sagar College of Engineering, who alongwith Smit shared their experiences with Google Summer of Code 2011 with the audience. I congratulate both of them of giving an awesome talk, and we feel happy that BMSCE was the place where they gave their first ever talk, thanks a lot to both of you.

Smit Shah on Nepomuk Sinny on how to get started

We wanted to screen the full Revolution OS video, however falling short of time forced up to wind up very early.

Everything that has a beginning has and end, but there are some things that must be kept alive, thank you Vinay, Deepak, Shashank, Harsh, Aishwarya, Suhas and everybody else that were a part in making SFD 2011 successful.

Vinay and team :D Team SFD 2011

To all of these people, you ROCK!

(More photos at https://picasaweb.google.com/112323343893529275453/SoftwareFreedomDay2011)

 

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 🙂

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