Skip navigation

Category Archives: Open Source

So I got accepted as a maintainer of  maemo extras repository. I also released and uploaded the the first version of Retro Conversations to extras-devel. I decided to do it early so as to have some credit in Open Source world when my GSOC proposals get reviewed.

I quickly wrapped things up,  made sure the app won’t crash/refuse to start/ behave funnily and went through creating a package process which made me suffer for 2 days. I couldn’t get happier when the application manager showed retroconv!

I will post later a short tutorial on how create deb package from python code for maemo. For now, just one advice, NEVER USE UPPER CASE IN DESCRIBING AN APP’S CATEGORY IN “SECTION” PART INSIDE CONTROL FILE!! (thanks to guys over irc..)

Retroconv Announcement

Retroconv Package Overview

Advertisements

So I got myself a Nokia N900 and couldn’t be more pleased with it! I was however little disappointed when I couldn’t import my contacts and SMS from my other Nokia phone like I always used to do before with previous phones. I worked around the contacts thing by copying them to my simcard then recopying to the N900. For the old SMS I found this guide on maemo talk forum for importing them to Nokia N900. I don’t really recommend it because of 2 issues:

  1. Old SMS appear to be received after new already existent SMS in conversations
  2. Not deletable

3 days ago I decided to get my hand dirty write my own Old SMS reader. It will show up as a separate application not integrated inside the original conversation application. This my first app on maemo and things could not get easier! Using Python and Qt I can say that I’ve done quite good progress in no time. I’ll post up the project features and progress shortly

In a surprise announcement today, Microsoft President revealed that the Redmond-based company will allow computer resellers and end-users to customize the appearance of the Blue Screen of Death (BSOD), the screen that displays when the Windows operating system crashes.

The move comes as the result of numerous focus groups and customer surveys done by Microsoft. Thousands of Microsoft customers were asked, “What do you spend the most time doing on your computer?”

A surprising number of respondents said, “Staring at a Blue Screen of Death.” At 54 percent, it was the top answer, beating the second place answer “Downloading XXXScans” by an easy 12 points.

“We immediately recognized this as a great opportunity for ourselves, our channel partners, and especially our customers,” explained the excited Ballmer to a room full of reporters.

Immense video displays were used to show images of the new customizable BSOD screen side-by-side with the older static version. Users can select from a collection of “BSOD Themes,” allowing them to instead have a Mauve Screen of Death or even a Paisley Screen of Death. Graphics and multimedia content can now be incorporated into the screen, making the BSOD the perfect conduit for delivering product information and entertainment to Windows users.

The BSOD is by far the most recognized feature of the Windows operating system, and as a result, Microsoft has historically insisted on total control over its look and feel. This recent
departure from that policy reflects Microsoft’s recognition of the Windows desktop itself as the “ultimate information portal.” By default, the new BSOD will be configured to show a random selection of Microsoft product information whenever the system crashes. Microsoft channel partners can negotiate with Microsoft for the right to customize the BSOD on systems they ship.

Major computer resellers such as Compaq, Gateway, and Dell are already lining up for premier placement on the new and improved BSOD.

Ballmer concluded by getting a dig in against the Open Source community. “This just goes to show that Microsoft continues to innovate at a much faster pace than open source. I have yet to see any evidence that GNU/Linux even has a BSOD, let alone a customizable one.”

chromium_header_full

So I’ve been fed up lately with Firefox. Firebug is clashing with Gmail, websites are running extremely heavy and slow that I can’t even get a smooth decent scrolling. I decided to try another browser, so what would be better than Google Chrome to try out? But oops, there is no Chrome for Linux?! But there is Chromium!

Chromium is an open source web browser project, on which Google Chrome is based. The aim is to build a safer, faster, and more stable lightweight web browser. It also uses Google’s new open source JavaScript engine; V8. I’ve been playing with Chromium for a couple of hours and I can certainly say IT IS a “Lightweight” web browser! Very very very smooth in performance even though it’s still under development. You can add the PPA for Ubuntu from here.

Maemo-Multitask

(Image Courtesy of maemo-guru.com)

This picture shows 20 different applications (+4 hidden) running simultaneously on the upcoming Nokia flagship; Nokia N900. I bet you’ve never experienced anything similar on a smartphone before (Hello iphoners? :P)

In case you’ve been living in a cave the last couple of months, this is the new Nokia beast that will smash any other existent phone (yes, the iphone and any lame Windows mobile).

Running on Linux-based Maemo 5 software, and the Maemo open-source community applications, over a powerful 600 MHz ARM Cortex processor and up to 1GB of application memory , the Finnish company will certainly score with this gadget. Take a look:

We were introduced to Bespin in the last Open Source Software class. Bespin is an open source Mozilla project that lets you code in the cloud and in real time collaboration with other participants in a project. I have actually tried Bespin a while ago, so it wasn’t something really new to me. I also tried installing Bespin on my computer at that time (which we spent doing for probably more than an hour because of stupid network issues at the university). Although I completely failed at that time, I was successful to download and build it in less than 15 minutes (I had my USB modem :P).

It’s a nice thing to be able to edit in the cloud, but they certainly should give us more than that (something like more motivation, why should we use Bespin?) Here is something to get them started 😀

bespin error

I will however try to make Bespin my default code editor in the future. Who knows, maybe I will end up contributing new features to it 🙂

I was playing with Abdallah El Guindy’s “very useful” Ubiquity mashup. Its objective is to fetch the every week Todo list from the G-OSC Wiki. There were few glitches however in his script that I managed to fix.

The best thing about this script and Ubiquity is the preview function. Just popout Ubiquity, type gosc-watsup and the preview should get you the information immediately. However, preview didn’t work.

I Fixed it by adding the missing parameter pblock to the preview function gosc_watsup_preview_page, so it finally appeared.(took me some time to reach that btw)

Then I noticed the previewed items were not complete. I examined the code a little. Abdallah traverses the tags using JQuery.  He greps the To do List anchor with the find function, jumps twice to the next  siblings (siblings are other tags at the same level) and fetches the content using next(). The problem with that is sometimes the To do list is not just one block. There may be a list, then a block of text, another list ..etc. So the last next() invoke may sometimes bring only part of the Todo list.

I managed to solve that too, by calling next() repeatedly in a loop until there are no more siblings. This however brought another problem as the References, Feedback and other items at the same level are brought into preview. I solved that too by added a condition to check we are not leaving the To Do List section.

Okay preview is working and nothing is missing. But it doesn’t look very nice, even though the items are in an Unordered List.

Apparently this is a bug in Firefox. This is what happens:

div.innerHTML=”<ul>”;

div.innerHTML=”<li>Item</li>;”

div.innerHTML=”</ul>”;

is treated differently than

div.innerHTML=”<ul><li>Item<li><ul>”;

So I had to switch to the second one as the in the first, the <ul> is totally ignored.

So, is that all? No! There is one last problem (hopefully), but I’ll just leave that to another post 🙂

This is my updated version of gosc-watsup.

var GOSC_WATSUP_BASE_URL = ‘http://se.bigbuddysociety.net&#8217;;
var GOSC_WATSUP_TODO_PAGE = “http://se.bigbuddysociety.net/wiki/index.php?title=To-Do&#8221;;

function gosc_watsup_go_to_page() {
jQuery.get(GOSC_WATSUP_TODO_PAGE, {}, function(html) {
var url = jQuery(html).find(‘#bodyContent’).children(‘ul’).children(‘li:last’).children(‘:first’).attr(‘href’);
Utils.focusUrlInBrowser(GOSC_WATSUP_BASE_URL + url);
});
}

function gosc_watsup_preview_page(pblock) {
jQuery.get(GOSC_WATSUP_TODO_PAGE, {}, function(html) {
var url = jQuery(html).find(‘#bodyContent’).children(‘ul’).children(‘li:last’).children(‘:first’).attr(‘href’);
jQuery.get(GOSC_WATSUP_BASE_URL + url, {}, function(html2) {
pblock.innerHTML = ‘<h2>Latest TODO list</h2>’;
var innerHtml=””;
temp=jQuery(html2).find(‘a’).filter(function(index){
return jQuery(this).attr(‘name’) == ‘To_Do_List’;
}).next().next();

innerHtml+=”<ul>”;

do
{
innerHtml+=jQuery(temp).html();
temp=jQuery(temp).next();
if(jQuery(temp).attr(‘name’)!=null)break;
//alert(todo);
}
while((jQuery(temp).next().html())!=null)

innerHtml+=”</ul>”;
pblock.innerHTML=innerHtml;

});

});
}

CmdUtils.CreateCommand({
names: [“gosc-watsup”],
author: { name: “Abdallah El Guindy and Tarek Galal”, email: “abdallah.elguindy@gmail.com”},
contributors: [“Tarek Galal”],
description: “Go to the latest TODO list page.”,
execute: gosc_watsup_go_to_page,
preview: gosc_watsup_preview_page
})

CmdUtils.CreateCommand({
	names: ["gosc-watsup"],
	author: { name: "Abdallah El Guindy and Tarek Galal", email: "abdallah [dot] elguindy [at] gmail [dot] com"},
	contributors: ["Tarek Galal"],
	description: "Go to the latest TODO list page.",
	execute: gosc_watsup_go_to_page,
	preview: gosc_watsup_preview_page
})

This  is one of the best things that ever happened in my Uni. An Open Source Development course. This is actually one of the main reasons why I started this blog. In 2 weeks we will be modifying Mozilla. This is just awesome! Tomorrow’s class is about Build Automation (like building with make, cmake, qmake in linux). I always wondered how they work.