Wednesday, December 10, 2008

Net in KDE4 works finally

After a total recompile of Qt4, KDE4 apps can finally access the internet.
Too bad the weather plasmoid can't find my city :))

Monday, December 8, 2008

KDE4 got a lot better

After I installed Debian, I wanted a KDE4 desktop, just to play with it.
My first option would have been installing the kde 4.1.3 packages from the experimental repository. This would remove my kde3, which I wanted to avoid.
My other option would have been to use this tutorial to make a chroot environment in which I could install these packages without removing kde3.
I did this, it worked, but chroots aren't notorious about their comfort, besides KDE 4.2 beta was out. So I decided that I'll build the current SVN snapshot.
I followed this techbase article. But, you can use kdesvn. My friend, DjDarkman, has written a nice tutorial for Intrepid, although this one is good too.

After resolving many dependencies, getting optional packages, checking out from svn, stuff like that, I was ready to compile a subset of my choice of kde4 modules. Again, I have to give credit to Debian, most of the dependencies can be easily installed from apt and if you need something very new (like the last version of cmake), you can install it from the experimental repository.

After a few hours of compiling KDE4 was ready to use, it still needed some configuring and fine tuning though. Now it's up and running as my default desktop environment.
My desktop:

Dolphin is looking nice too:

As you can see, the look and feel of the desktop is very nice and professional, a bit mac like, but still original.
Mostly everything runs fast and smooth. The desktop effects are light years faster than compiz. They are very subtle, they don't attract my attention, but I'm sure I'd miss them if I would turn them off.
Amarok 2 looks very promising too.

I have some problems with kopete kde4, but it's better than the last time I tried it. It's too buggy for me. I did report some of those bugs. So ,for the time being, I'm using kopete kde3. I installed a nice kde4 like theme for kde3, so the apps blend in. Also, there is a nice theme for firefox. The gtk-qt engine takes care of gtk apps. So the desktop is pretty much uniform.

My biggest problem is that kde4 apps except kopete kde4, can't access the net.
I can ping google.com from konsole kde4, but amarok can't retrieve lyrics, the weather plasmoid can't get data from it's servers, gethotnewstuff can't access it's serverlist and krusader kde4 can't connect to my favorite ftp servers.
I tried asking everywhere on irc and it seems that only I have this problem.
I tried recompiling kdebase with the networkmanager backend, but no results.
I simply don't have net in kde4 apps (except a few of them). Not even in konqueror.
kde-devel@debian:~$ solid-network query status
solid-network(8683)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-kde-devel/ksycoca4"
solid-network(8683)/Solid (NetworkManager) NMNetworkManagerPrivate::fillNetworkInterfacesList: Got device list
solid-network(8683)/Solid (NetworkManager) NMNetworkManagerPrivate::fillNetworkInterfacesList: adding: "/org/freedesktop/NetworkManager/Devices/eth0"
solid-network(8683) Solid::Control::ManagerBasePrivate::loadBackend: Backend loaded: "NetworkManager"
solid-network(8683)/Solid (NetworkManager) NMNetworkManager::isNetworkingEnabled:
solid-network(8683)/Solid (NetworkManager) NMNetworkManager::isNetworkingEnabled: got state: 3
networking: is enabled
solid-network(8683)/Solid (NetworkManager) NMNetworkManager::isNetworkingEnabled:

As I saw in many cases, the net should work regardless of the network management backend in solid, so I guess that's not the problem.
I'm sure that I set kde to connect directly, without proxies.
I use pppoe, and the internet works in every non kde app, in konsole kde4 and in kopete kde4, so I have no idea what causes this problem.
Anyway, I'm sure it will be fixed till the release. But if anyone has any idea please leave me comments.

Yesterday, I decided that it's time I tried writing software with the KDE api.
So I headed to the kde techbase programming tutorials. After doing a few variations of the Hello World! application, I decided to write the application that I write every time I learn a new language/toolkit/api, the BMI calculator application. I used Qt-designer for the ui. I quickly familiarized myself with cmake and the guys from freenode #kde-devel helped me when I got stuck.
So here it is, along with the other BMI calculators, the KBMICalc application:

Top-left : Qt, top-right: Java (Eclipse RCP, SWT) , bottom-left: Java (Swing), bottom-right: KDE.


It is pretty nice for a first app, the KDE api is a great complement of the Qt toolkit.
The last year of high school is pretty rough on me, so I doubt I'll have time for any serious kde app. Also I would like to see how KDE4 works on Windows, it will be a very nice cross platform development framework.
So in conclusion, my faith in KDE4 is restored, I'm excited again about this project and I can't wait till January for a truly stable and functional release, aimed at the masses.


P.S. : Tomorrow I'll have an exam to obtain the Cambridge University Certificate in Advanced English (CAE), so wish me luck :).



Sunday, November 23, 2008

Shifting to Debian

Well, it has been a long time and no post. So I reckon it's time for an update.
Since I need a stable and usable system, I wasn't willing to upgrade to Kubuntu Intrepid. I heard a lot about Debian from friends and I knew that it's a great distribution, so I thought I'd give it a try.
I went to the site and downloaded the latest torrent for the testing DVD.
The installer was very friendly; I chose the expert gui mode.




It was simple and straightforward, it even allowed me to choose what modules to load. As an example, I could load a pppoe module to set up my networking.
It simply asked me if I wanted to install non-free software, I answered yes and it installed all the codecs and drivers I needed. No questions asked. No need to google forums to find out which packages to install to get my mp3 working.
It automatically detected my video card, installed the open source radeon driver and set up the optimal video mode. I was impressed.
It installed Gnome by default, but I downloaded the kde packages with one command from the Romanian Debian mirrors. In 4 minutes I had kde. Great.

I disabled the services I don't need and now it boots really fast.
KDE works better. I can see everyone's avatars in kopete (I couldn't under kubuntu), and even amarok works great (even with crossfading).
I was really happy with it.

I enabled the unstable (sid) repositories and installed qOrganizer with one command. Yes, there is a qOrganizer package in the Debian repository, and now Ubuntu has one too.

This is what my desktop looks like:



After I configured my system, I went on and compiled kde4 by hand from the SVN repositories. It wasn't hard and SVN is a lot better than the release.
But it's still not good enough for me (I'm too picky).

So, in conclusion, Debian rulz! :)

Sunday, October 26, 2008

KDE4 Mixed feelings

I've been keeping my eye on KDE4 for a long time and now that I heard that Kubuntu was adopting it as the default in Intrepid I was very curious.So I went on and downloaded the Kubuntu Intrepid RC live cd just to see if KDE4 was better on a fresh install.

I had the kde4 packages installed on my Kubuntu hardy since the first release and after every update I tried it to see if I would be able to use it daily.
I would like to point that this post is by no way a rant, I love KDE4 and I wish it was ready and everyone would be able to use it.I am also a long-time fan of KDE3, which I have been using from the first day I was introduced to Linux.

That said, I ran into some serious usability problems.I like the new kopete-kde4 interface and I can see from the shell that it has new long awaited features like the ability to block messages from outside the contact list (for which I wrote a patch once, because I needed it badly in 0.12).
But the kde4 version has serious bugs handling the Yahoo protocol.
Don't get me wrong, I don't like yahoo, but everyone I know uses it.If I could , I would make everyone use Jabber with SSL, but it's not my choice.
I need instant messaging really bad. The kde4 kopete is unable to retrieve avatars, sometimes status message and it takes and awful lot of time for it to recognize which of my contacts are online and even after it does, it shows it only partially.I didn't test the file sending, which is really important for me (it didn't work in kopete-kde3 either).

Just to make things worse the kde3 version of kopete has the exact same problems using the kde4 libs.I don't know what workaround kubuntu will provide for this, but I sure hope they fix it.Maybe it will get fixed when telepathy/decibel will be ready.
I'm afraid that issues like this will leave a bad first impresion about kde4 in the new users of Kubuntu Intrepid.Of course, I could just use pidgin, but thats not the point.

The new folderview plasmoid bothers me too.Of course it's innovative but it really misses any form of configurability.What bothers me most is that it doesn't preview image files on the desktop.I know, it's a minor issue, but I miss that feature.

On the positive side the new KDE4 has stunning animations and they all work seamlessly by default on my 5 year old ATI Radeon 9200SE.
I also like the look and feel of kde4, it's really friendly and everything is in the right place, it's really elegant and all but it the default theme reminds me too much of Mac OS X, with that aluminium-like look, so that will get changed (I don't like Mac or anything Apple, don't even get me started on it).

Overall, things have improved and maybe making it the default in Kubuntu 8.10 is just the radical action it needs to push kde4 in the right direction and make it as great (or hopefully a lot better) as it's legendary predecessor.

Saturday, September 27, 2008

qSslChat v1.1 Released

New qSslChat version :)

Changelog:

-Integrated link recognizing patch by Sydney Troz.Now it automatically recognizes links

and opens them (when clicked) in the default browser.

-Improved OpenSSL handshake options.Certificate errors are reported but ignored.

-Fixed a bug in the anticipating mechanism.

-Now the file-send dialog closes when the file is successfully sent.

Saturday, September 13, 2008

Eclipse RCP - First impressions

So here I am again :).
I have finished rewriting qOrganizer's database handling function.I cleaned up most of the saving/loading mechanism.It still needs some optimizations though, but it works and it is a lot faster.But don't get your hopes up.I didn't even dare to commit it to CVS yet.It's still really far from release.

I got a nice qSslChat patch from Sydney Troz, a user.Now qSslChat automatically recognizes and opens links.
I also received a Polish translation for qOrganizer.I fixed a huge bug that caused memory consumption to go wild when running qOrganizer on 64 bit systems.
I silently updated the release not long ago.The current version is 3.1-4.
qOrganizer is now on the verge of getting into Debian Lenny unstable.

During the last two days I decided to give Eclipse a try.I heard about it's famous Rich Client Platform and since it was constantly praised I thought I should seriously look into it.
The main atraction towards Eclipse RCP consists of the fact that it has a bussiness friendly license.Many small businesses use it to develop their own applications.Businesses which otherwise couldn't afford a .NET or a Qt license.
Eclipse was originally developed by IBM after which it was handed over to the Eclipse organization.I really like everything IBM :).Lotus Notes uses Eclipse RCP too.
It's good enough for NASA too.They used it in an application that processed data sent by the Spirit Mars rover.

About a year ago I already started to learn Eclipse RCP but I wasn't really motivated (since that was when I learned Qt too and I found it a lot more interesting) and the tutorial I found wasn't the best so I kind of gave up on it.But now I decided to look into it again.
I do like it very much.Every application is based on plugins.It's a very extensible and flexible framework.It gives code reusability paramount importance.Another big advantage is that it uses SWT, so everything looks native everywhere in sharp contrast with other UI toolkits like Swing.
Last time I programmed in Java I remembered it being slow and very memory intensive.
Too my surprise Eclipse is really fast and responsive.The Eclipse IDE makes it a joy to develop plugins.Code almost writes itself.It supports autocompletion and reference documentation is easily accessible within it.
So it left me with a very good first impression although it has a really slow learning curve and it takes some time to familiarize yourself with eclipse specific concepts I think it has huge potential.
So here is a screenshot comparing a BMI (Body Mass Index) calculator application written in Qt (the one on the bottom), Swing (the one on the right, you can't miss it) and Eclipse RCP (the one on the left).
The one thing I really miss is the signal-slot mechanism from Qt.Event listeners are a lot more painful.




Since the LHC went online I read a lot about it and about space in general.
I found this really cool wallpaper featuring our galaxy, The Milky Way.

It's a really fascinating sight :)

Anyway, school starts Monday so I'll be really busy, but I'll try to free up some time to keep up with my projects.

Thursday, September 4, 2008

qSslChat v1.0 Beta released

So today I released qSslChat v1.0 Beta.
It's still a little buggy but I guess it's usable.
The project got accepted on SourceForge and I made a webpage for it.
Here it is:

http://qsslchat.sourceforge.net

Give it a try.If you bump into bugs please report them.Enjoy everyone. :)

Sunday, August 31, 2008

Summary of summer 2008

So here we are, two weeks left out of the vacation.This summer was really short.I had big plans but it didn't quite work out the way I planned.Still, many things happened and I reckon that it's about time I wrote a blog post.
When summer began I had plans for qOrganizer.These involved optimizing the database handling and removing the option of storing all data in text files.The database needed optimization because qOrganizer was my first project and I was quite a noob.I made many mistakes and if I want to continue this project I have to clean up that mess.But people can't use data so I have to write an importer tool to convert data into the new database format.
I did write that.It uses threads and it's quite a nice piece of code.I call it DBConvert module.
It makes efficient use of inheritence.But database optimization is one of those things that don't require too much creativity.Frankly it's quite boring and I would have someone else do it if I could.So I left it half incorporated, and haven't touched the code ever since.
I still have my plans though, like implementing a nice plugin system to enable third parties to write extensions for it.Among other things I would have liked to do a nice statistics module.
Lets face it, people are lazy.I'm lazy too.I'm too lazy to write every event on every day and keep my stuff organized.It's too much for me.So I want qOrganizer to count recurring events, to search for a pattern and present me with a list of the most frequent events so I can just click them and focus on writing only new events.This is one of the small things that separate something good from something great.But none of this is implemented yet, these are still plans.

My summer was very busy.My main aim, which I did acomplish, was to get my drivers license.
I'm 18 now.And this summer was the only time where I had the time to learn how to drive and learn the legislation and everything else.I was right, it took me a while.I started it on June 17, on the first day of vacation, and got my license in august.I'm still glad to be over it, some of my friends still couldn't pass the exams.It's really not easy that easy to get a driver's license in Romania.It's mostly because of the new examination system.Now we have touchscreens and cameras staring at us.The new questions are harder and they do differ from a lot from the things we learned.Anyway, this is done.Thank God.

Among other things I did, I spent a wonderfull week at the shores of the Balaton in Hungary.
Lasting friendships have developed there.The only one I missed was my girlfriend.
Yes, I'm defying a stereotype.Open source developers do have girlfriends.I'm in this relationship for 2 and a half years now.And it's ok.Altough she does have a hard time understanding how important coding is to me.

I titled this blog "The place where I coredump when my brain segfaults", yet all I did was write articles about coding, so I reckon it's about time I get a bit more personal.This won't change the main topic of this blog though.
I know a lot of open source developers and many people ask us why we do what we do,why write code for free and make it accessible to everyone, why bother, we don't get paid for it.
I had a donate link on my site for almost a year now but I didn't even get 1 Euro from it.
I did win a contest in Hungary with qOrganizer and I got a 400GB sata hard drive out of it, but other than that it's not a really profitable bussiness.Of course I'm not disapointed by this fact, it was never ment to be that way.I wouldn't have it any other way and neighter would my friends.
But in this cutthroat capitalist world we live in outsiders find it hard to understand why anyone would ever do anything for free.That's the reason why many people attributed Linux with communism, although this is very far stretched.
I had the rare opportunity to meet someone with poetic inclinations, someone who writes poems and makes them available for other poets and literature lovers to see, on the Internet.
So I was curious.Me, an outsider to poetry, asked this person about the reason for writing, just like outsiders ask us why we code for free.
I was told that writing poems is something that comes from the hearth, it is an uncontrolable urge to express one's feelings in this form of art, to exploit one's creativity.
I was also told that this person wants to print a book someday and the reason for that was not making profit out of it, it was to reach a bigger audience.
So, I feel like poetry is a lot like writing code.My friends and all the developers I know have this curiosity about how things work, how ideas can be implemented.It's something that also comes from the hearth, it's a natural consequence of ones personality.And in my opinion it is an art form, just like poetry,scultpure and painting.
At first this seems like a bit of an absurd affirmation, code seems to have the same logic, the same structure, no matter who writes it.Every ftp client has a method of connecting to the server.Every word processor has a function to save files.It seems like writing code leaves no space for self expression and creativity.Well nothing could be further from the truth.
Every developer has an unique style of coding.Everyone thinks differently.Every code is different, even if it does the same.It contains the fingerprint of it's author.It's like there are many surrealistic paintings but every painter has his own style.
Altough, many problems follow a pattern.I recently looked into implementing design patterns.
I'm not really good at following the rules.I like to have the freedom of making my own rules, I like to think outside the box, but if an existing solution has obvious benefits when comparred to my own idea, I'm happily willing to compromise.It's the only way to learn.

Another important event of this summer was that I started a new project.
I was talking to a friend one day, and I had a nice little story to tell, one that happened to me when I'm was 16, but it just wasn't the same when I wrote it down, I had to tell it in person, and I knew that.So here I was messing with my friend, his curiosity grew bigger by every minute, he was wandering what secret I had, that I wasn't willing to let it pass the yahoo servers.Of course it wasn't a secret or anything big in fact, it was just one of those nice stories one tells to make time pass faster.But it raised an interesting point.Secure chat.We started talking about security.
What can one trust to be sure of his privacy?Well the answer was obvious for me.Encryption.
Banks use it, companies use it.What better option do we have? Oh, of course.Direct connection, we don't want our messages to pass one centralized server where who knows what happens to them.One centralized server owned by big company.We joked about the guys at yahoo having good laughs at our stories.So I started searching the net for a little utility.Something that lets you connect directly and uses SSL to encrypt all data.To my surprise I couldn't find one I was happy with.I don't like java, I don't like .net.I want it to work under linux too.I couldn't find one written in Qt.So I decided to write one, I figured it would be nice and I eagerly awaited seeing what kind of code I would write, having all the experience I had with qOrganizer.So I looked into the use of QSslSocket and QTcpServer.And started writing my new program, cleverly and creatively entitled qSslChat :)).At least I gave it a name that would give a great hint to what the program does.And yes.Here I am.It works.It also has smileys, file sending everything to cover our chatting needs.I would call it beta quality.Today I filled the form at SourceForge to host it.
So maybe tomorrow the code will reach the CVS repository.
Anyway it's a nice project.I'm really enjoying it.I learned a lot.And the code is pretty readable too.

So now the summer is on it's last legs.I guess it was ok, but I do regret not doing more.
The biggest cause of this regret is that now school will start.This is my last year of highschool so it will be even worse than the other ones.And by worse I mean that it will require even more dedication.My school is pretty Spartan and takes things really seriously.I'm not familiar with the notion of free time during school.The Romanian education system is harsh enough but my school takes it to whole new levels.And since coding is art, I require it to be the only thing on my mind to do it right, so I can't really do a lot of coding during school.Anyway, I'll try my best in making things work out.

I think this concludes this long and boring blogpost no one will ever read.I figure that at this point I could write anything, because no one ever reads this far.
Take care everyone.