Archive for April, 2009

Tutorials for Learning C ?

April 28th, 2009

During most of programing experience I used C# and python.I decided to take on C after I finished an intership working with C++.

So I am looking for tutorials and I am willing to blog about my experience of what I am learning, so I can contribute/modify/extend Zeitgeist, Shell, Mayanna and Tracker.

Here is one of the tutorials I am following but I could use more if possible. Feel free to link me with more tutorials. Does GNOME have a tutorials or a collection of tutorials for other programing languages?

Exhausting week with Zeitgeist.

April 25th, 2009

The past week development on Zeitgeist was very intense. A release is pretty near we need to get done with our “Release” TODO list and fixed the high and medium priority bugs on launchpad.

But it is really hard when only 2-3 active developers are working. And some bugs and features dont really need Zeitgeist code knowledge like this one. Also a quick mock-up or code for an “item tag editor” would be very helpful.

Please feel free to visit us as #gnome-zeitgeist we are happy to walk you through the code and help you contribute.

On the other hand I am pretty psyched abotu SoC and already am sniffing around the Shell Code to help my student RainCT integrate zeitgeist into the GNOME Shell.

I will take this weekend off. I could use some outside time.

Thoughts on Superman!

April 23rd, 2009

First things first. Read the title carefully! If you are sensitive towards homosexuality or insecure of your favourite superhero sexual preferences please avoid reading! I am not homophobic (at least not anymore), I am just sharing my stance towards some superheroes and how they present themselves. All these points do not apply and are just some stupid thoughts of a geek.

As Clark Kent, he has to keep a low profile and be as ‘Joe the plumber’ as possible. He was only ever in two big relationships in his life, one with Lana Lang and the other with Lois Lane! But there’s simply no way Clarky ever got to third base. I mean, come on let’s face it, the guy would probably literally shoot right through his lady friend. Clark Kent may be somewhat boring but whenever crime roams the streets of Metropolis…well that’s when it gets interesting! The tight rainbow coloured outfit (gotta love those red speedos), his shiny ringlet and his oh so white teeth. I mean as a superhero you probably wanna go more with something that says “badass” like Batman’s black outfit (though seriously Bruce the fake abs are so 1983).  When Batman shows up people freak out! But did you ever see criminals running away from Superman?… Why would they? His outfit just spreads joy and for crying out loud people first confused him with a bird!! More likely Superman, after ordering the culprits to surrender, would get something along the lines of “Ey, sweetheart parade’s on the other side of town”.
Now, if you never got laid and people constantly took a piss on you, it would be perfectly understandable for you to go haywire….but Clarke Kent isn’t the slightest bit inconvenienced by these things, thus asserting the conclusion that our beloved hero is not a bird.. not a plane… it’s a sexually unreferenced metro.
To put it in a nutshell: Superman dresses up like a metro, fakes sexual interests, and his only true sexual encounter was with himself! Thus the conclusion that Superman is metrosexual with no sexual preferences.

Naming my Gadgets and Electronic Devices

April 21st, 2009

I have been reading a lot of blog entries about how people call their computer etc….
I tend to use names from the peanuts….

Desktop: Snoopy
Virtual Machine on Desktop: Virtual Snoopy
Laptop: Schroeder
Virtual Machine on Laptop: Virtual Schroeder
iPod: Charlie
Home Netwrok: Snoopyland
Cellphone: Linus
Girlfriend/Fiance’s Laptop: Lucy

Since I am changing my life I thought I should change all that. So here are other themes i would love to name after:

1.Star Wars
2.Southpark
3.Spongebob
4.Simpsons
5.He-Man
6.Nintendo Characters

Any suggestions or preferences?

Howto install Hauppauge WinTV HVR 1100 under Ubuntu(Jaunty)

April 20th, 2009

This howto is for installing Hauppuage WinTV HVR 1100 under Ubuntu “might work for other wintv cards” no guarantee though…

I used this froum its in french though –> http://forum.ubuntu-fr.org/viewtopic.php?id=73834&p=1

Here we go first check if your card got detected

lspci

    you should get something like:

    0000:00:12.0 Multimedia controller:Philips Semiconductors SAA7133 Video Broadcast Decoder (rev d1) Subsystem: Hauppauge computer works Inc.: Unknown device 6701 Flags: bus master, medium devsel, latency 32, IRQ 12 Memory at eb101000 (32-bit, non-prefetchable) [size=2K] Capabilities: [40] Power Management version 2

      first make sure you have the packacges required for the configuration of the card, open a console and type:

      sudo apt-get install build-essential mercurial linux-headers-`uname -r` dvb-utils

        then get the v4l-dvb files:

        cd /opt/ hg clonehttp://linuxtv.org/hg/v4l-dvb cd v4l-dvb

        make sudo make install

        sudo -s

          then modprobe:

          sudo modprobe -r saa7134-alsa saa7134-dvb saa7134 && sudo modprobe saa7134 card=101 && sudo modprobe saa7134-dvb echo “saa7134-dvb” >> /etc/modules

            now get the firmware compatible with your card from http://thadathil.net:8000/dvb/ then “sudo” copy it to /lib/firmware

            sudo reboot

              I think that was it use scantv or mythtv to scan for channels i will write a tutorial as soon as i get to it

              Understanding Zeitgeist

              April 18th, 2009

              First things first…

              Zeitgeist never intended to replace the hierarchical file-system. It is not doable. And it cannot replace the classic file browser either. Zeitgeist is more or less a layer over the file hierarchy to reduce browsing into folders etc. It is just an alternative experience of easily finding your files whatever type they may be.

              This being said…

              Zeitgeist is based on and works with chronologically logged  data of the users working with their personal computer.

              Our focus currently is on supporting activity (files,websites,notes and mails) management by tagging (manually and automatically), chronological organizing and bookmarking. This is all provided by the current UI plus searching. An RDF model will also be developed to provide for interoperability. This way, Zeitgeist will reduce and ease the experience for going back to information already used thus orienting oneself in one’s information, resuming work and task switching.

              This is already tackled by common desktop search engines, but they rather fail to find and present the user’s information in the context of their, possibly repeated, usages and exploit the thereby implicitly or explicitly established relationships.

              The journaling data can be understood as providing extensions to or a generalization of the “recently used” information access method common to most operating systems, where extension is meant time‐wise and spans potentially all data types and information which one touches on one’s desktop, including, for example, text documents, pictures, web resources, instant and email messages, but also contact information, calendar items and other information items related to planning.

              As opposed to the intimacy expressed by many people, and in particular knowledge workers, interacting with their personal computing devices throughout the everyday and across private, professional and educational domains, today, it is striking to observe that this very personal computing environment is not really prepared and in fact offers only limited support in answering the central questions of orienting oneself: “What did I do?” (retrospective perspective), “What am I currently doing?” (current perspective, where ‘current’ turns out to be a very vague term), and “What have I planned for the future?” (prospective perspective).

              Now the fun part…

              The engine (in python :P ) is stable, we have a D-Bus interface working (thanks to Siegfried), running constantly for one day I have around 18 MB memory usage (logging and sending to UI via D-Bus). There is the classic Journal UI and a new “Project Viewer” based on project Gothenburg concept.

              We fixed a lot of bugs and memory leaks and still on it but not many new features will be coming soon. Jason Smith is working on a new project in Mono that uses the Zeitgeist engine.

              A first release could be soon. Just some fixes and tweaks…

              A snippet of the GNOME Zeitgeist Todo list

              April 11th, 2009

              Since Alex Gabriel the maintainer of Mayanna is on vacation we got stuck with some issues! So while he is gone we started working on the old GNOME Zeitgeist again. The development is great. Me more or less absent because of work, Mr RainCT joined the developers during the week and almost finished the DBUS bindings. The code is cleaner. We have a daemon running and we are looking forward to write several UI’s that communicate with the daemon! So whoever feels like writing in a UI in MONO, C, Vala or Javascript DBUS is there for you.

              Here is a shor t snippet of our TODO List for the next couple of days:

              TODO:

              - Backend:
              + Add on Tracker support.
              + Extend DB to support location of usage
              + Auto Tagging e.g: tasks, locations, and relations.
              + Finish the D-Bus interface. (We need to insert items via DBUS , maybe patch up the datasink to have an insert in string tuples)
              + Reduce the amount of “changed” signals send.
              + Fix the Firefox DB detection (see comment in code).
              + Is RecentlyUsedDocuments the best place for text/plain files?

              - Frontend:
              + Separate it from the backend and let it only use D-Bus for communication.
              + Do not show an item twice one beneath the other.
              + Use a generic CellRenderer to display stars for bookmarking instead of checkboxes!
              + create a bar displaying the related files to currently opened files (inspired by Gimmie)

              GNOME-Zeitgeist meets Mayanna THE ULTIMATE FAQ

              April 6th, 2009

              Perhaps as a result the recent news about GNOME 3.0 mentioning GNOME-Zeitgeist (Yay!). A lot of people have been visiting our IRC channel lately asking about the project. In the chats that evolved we told them about our merging with the Mayanna project which led to some questions regarding Mayanna. Since many people have the same questions, we compiled this little FAQ.

              1. Why do you merge again? I didn’t get that part.

              We have a little problem in GNOME-Zeitgeist. Our dataprovides reside in the same process as everything else and therefor block our GUI quite undesirably. Mayanna provides a solution to our problem that involves little work and has some additional benefits. More of it in Q5

              2. What is this Mayanna no one was talking about just 5 minutes ago?

              Mayanna is not Mayanna-legacy (an optimized fork of Gimmie). Instead it’s a complete rewrite without any of the obvious problems Gimmie used to have. Mayanna is basically a plugin architecture (plugin platform) written in python to manage and view objects-of-interest (emails, files, contacts, events, tasks, whatever).

              3. What is Mayanna/Zeitgeists’s goal?

              Both have the ultimate goal of providing you a personal interface to all the information you store on your PC and on the web. Complete with means to organize and search the stuff and with enhanced interaction subroutines.

              4. Plugins eh? Like Add-ons in Firefox right? Now what use would that be, an application just babysitting plugins, doing nothing of itself?

              Not exactly like Add-ons and well, not exactly plugins either. A plugin in Mayanna is a thin wrapper around so called Services which is used to manage them more easily. So what does a Service? It creates, manipulates or displays Items (the internal representation of the aforementioned objects-of-interest).

              5. So every thing’s a plugin, right. Why not supply the GUI via plugin also?

              In fact, that’s exactly the thing we want to do. Of cource Mayanna itself will have to provide a GUI to manage the services and to set some preferences. But apart from that the GUI will be supplied by plugins (some of which the Mayanna project will write). Why? Because everyone uses their computer differently and Mayanna wants to supply more than one possible solution to your every day computing needs. Different solutions require different GUIs. That’s why the Mayanna Team dances the plugin dance.

              6. So what is that solution you mentioned in Q1?

              Mayanna’s Services can be run in separate processes and it’s modular design makes merging very easy. Some parts of GNOME-Zeitgeist will be ported to Mayanna’s plugin system, others become core parts of Mayanna. The plugin parts will be a default part of Mayanna that comes with the application. We see Mayanna as a very robust framework for building apps. It isn’t quite a MVC, but its something equally neat. Besides, we really like the idea and realization of Mayanna and see the potential which lies in it’s services working together and using one another. We think Zeitgeist may very well profit from 3rd party services that way.

              7. What about the name “GNOME-Zeitgeist”?

              Although we (and a lot of other people) like the name Zeitgeist, Mayanna has a much broader scope and calling the combination of the two “Zeitgeist” or “GNOME-Zeitgeist” would be misleading and hurting the project in the long run. We know of course about the publicity connected with the name “GNOME-Zeitgeist” (we read the news as well) and we expect to lose some of that while merging. This FAQ is part of our effort to keep as much of it as possible and in the meantime to extend it to the Mayanna Project. The newly created plugin will still bear the name Zeitgeist. So it should not be forgotten. Zeitgeist will be the AI and partly a UI of Mayanna.

              8. What about the developers?

              The GNOME-Zeitgeist and Mayanna maintainers have worked together before and helped each other set the first milestones of their respective projects. With this reunion the developer teams will merge (as team Zeitgeist) to improve the Mayanna engine as well as the Zeitgeist algorithms.

              9. What about GNOME 3.0

              It is still our aim to be included in GNOME 3.0 as is the aim of the Zeitgeist (GNOME-Zeitgeist and Mayanna) developers. We see this merge as an important step towards that goal.

              10. So how is it going?

              It’s done. The most part that is. We are in the progress of tieing together the last lose ends on the Item producing part and looking forward to hacking away at the GUI code. Memory consumption is low as ever and we even see some improvements compared to the old code.

              The week merging Mayanna & Zeitgeist !

              April 1st, 2009

              Mayanna was supposed to be a fork of Gimmie, Alex Gabriel and me started together (very creative name which is basically my girlfriends and his girlfriends name put together May + Anna). We then decided to write from scratch and started designing! While i still felt I couldn’t just leave the Gimmie code behind I started taking it apart looking for all the memory leaks and fixing it, while Alex continued on Mayanna! During the struggle to free the Gimmie code of memory leaks ,during the time I worked on Thorsten Prante’s Journaling System(Context Drive), and going through Federico’s Jorunal Idea, I prototyped a quick mayanna journal. I then contacted Throsten again and at some point we ended up with Zeitgeist. While I stayed in good contact with Alex Gabriel I always found it interesting how his ideas were actually being realized!

              So here it is. Mayanna is a kick ass engine with Zeitgeist as its main plugin. To sum it up here is what it will look like. To put it in a nutshell: Mayanna is a very generic plugin engine.

              All Dataproviders from Zeitgeist will be ported to Mayanna and will run as separated processes communicating with a hub where the data from the providers are then written in the database. Zeitgeist which is another plugin will talk to the hub requesting items from other plugins (in this case data providers). The hub will throw the items in Zeitgeists datasink to modify the UI if necessary. Now all that is actually happening without the use of D-Bus. We will the wrap some D-Bus around the Zeitgeist plugin for other apps to take advantage of the journal system.
              Right now I am porting the data providers and modifying the database where necessary to make Mayanna optimal for Zeitgeist! Alex is working on making searching as flexible as possible. We are intending to make plugins easy writeable and create a two way communication between the data providers and the loggers. Example: If I bookmark a website in Zeitgeist it should be bookmarked in Firefox and Epiphany too.
              Another thing that will happen is modifying the database of old Zeitgeist and then merge Mayanna+Zeitgeist. We want to differentiate between Activities and Events.
              Activities happen because the user initiates them, e.g: Reading mail, editing text or watching movies.
              Events happen and the user can’t prevent them from happening, e.g: Receiving mail, RSS, files on my disk being modified by other over the network, Contacts on the IM logging in and out, and receiving Skype calls.

              This allows the user to view 3 separate timelines. Own activities, events (allowing the user to catch up on things he/she missed), and both together. We should be done within 2 weeks maximum with the merge.

              Hopefully Natan can continue working on Zeitgeist within the next week while I am preparing the whole porting. So in case something goes wrong we still have the old code to rely on. I added some little experimental feature where I try to show data related to the item selected in the timeline.

              The week merging Mayanna & Zeitgeist !

              April 1st, 2009

              Mayanna was supposed to be a fork of Gimmie, Alex Gabriel and me started together (very creative name which is basically my girlfriends and his girlfriends name put together May + Anna). We then decided to write from scratch and started designing! While i still felt I couldn’t just leave the Gimmie code behind I started taking it apart looking for all the memory leaks and fixing it, while Alex continued on Mayanna! During the struggle to free the Gimmie code of memory leaks ,during the time I worked on Thorsten Prante’s Journaling System(Context Drive), and going through Federico’s Jorunal Idea, I prototyped a quick mayanna journal. I then contacted Throsten again and at some point we ended up with Zeitgeist. While I stayed in good contact with Alex Gabriel I always found it interesting how his ideas were actually being realized!

              So here it is. Mayanna is a kick ass engine with Zeitgeist as its main plugin. To sum it up here is what it will look like. To put it in a nutshell: Mayanna is a very generic plugin engine.

              All Dataproviders from Zeitgeist will be ported to Mayanna and will run as separated processes communicating with a hub where the data from the providers are then written in the database. Zeitgeist which is another plugin will talk to the hub requesting items from other plugins (in this case data providers). The hub will throw the items in Zeitgeists datasink to modify the UI if necessary. Now all that is actually happening without the use of D-Bus. We will the wrap some D-Bus around the Zeitgeist plugin for other apps to take advantage of the journal system.
              Right now I am porting the data providers and modifying the database where necessary to make Mayanna optimal for Zeitgeist! Alex is working on making searching as flexible as possible. We are intending to make plugins easy writeable and create a two way communication between the data providers and the loggers. Example: If I bookmark a website in Zeitgeist it should be bookmarked in Firefox and Epiphany too.
              Another thing that will happen is modifying the database of old Zeitgeist and then merge Mayanna+Zeitgeist. We want to differentiate between Activities and Events.
              Activities happen because the user initiates them, e.g: Reading mail, editing text or watching movies.
              Events happen and the user can’t prevent them from happening, e.g: Receiving mail, RSS, files on my disk being modified by other over the network, Contacts on the IM logging in and out, and receiving Skype calls.

              This allows the user to view 3 separate timelines. Own activities, events (allowing the user to catch up on things he/she missed), and both together. We should be done within 2 weeks maximum with the merge.

              Hopefully Natan can continue working on Zeitgeist within the next week while I am preparing the whole porting. So in case something goes wrong we still have the old code to rely on. I added some little experimental feature where I try to show data related to the item selected in the timeline.