Linux, browser operating systems, user interfaces and more

I like the idea of open source software and I try to use the open source alternative to any closed source software I may need whenever possible, though sometimes I just choose for the closed source software instead of the open source solutions. Such a choice might have a couple of reasons.

On my laptop, I have Ms Windows 7 and Ubuntu 11.10 (just reïnstalled today) in dual boot. I mainly use Windows, however, as the ugly ubuntu user interface bugs me, and then I’m not only talking about Unity but also about Gnome 2. (By the way: Gnome 3 is not an option for me. I *need* multiple windows open). One of the things that bugs me about Unity is the global menu that they borrowed from Mac. It is all but user-friendly or intuitive and the fact that, by default, the Unity application bar (or whatever it is called) disappears when you maximize an application is just plain stupid. Of course, you can change it, but if you want a gui to change it? Guess what, you have to install an application! Well, that is *very* user-friendly, Ubuntu…

So, let’s talk about office suites. I use Ms Office, Google Docs and Libreoffice, in that order. I use Google Docs because I like the idea of having everything in the cloud and installing as little as possible, but for some stuff, you just need more. However, when it comes to Ms Office vs Libreoffice, I can choose without a doubt. Again, when being used to the beauty and convivialité (that must be one of the few french words that I like and spontaneously use) of Ms Office, using Libreoffice is like going back in time 10 years. The disorganized and unstructured UI, the endless menu’s, … I didn’t really like the ribbon at first, but now I must say that Microsoft nailed it.

It seems like a general thing, open source being less convivial and good-looking then its closed-source counterpart.

There is also the ever-lasting conflict between much configuration options for advanced users and few configuration options for novice users. I don’t see why that has to be a problem. Haven’t software installers had options for that for quite some years now? “Click here if you would like to change the default options (advanced users)” or something like that? Why can’t we just, when making accounts on an operating system, indicate which level of experience the user has? For example: when I’m installing ubuntu and I make my user account I could indicate that I am an advanced user and thus which to see more configuration options. For novice users, these options could be hidden, totally hidden or hidden behind the click of a button.

I already said that I like having my stuff in the cloud. I mainly use Google Chrome as my browser (dev channel, synced through my google account) and I have many tabs open. The tabs from my previous session open by default so most of the times I have between 10 and 30 tabs open at the same time. I, however, like having some web applications in separate windows and chrome lets me solve this elegantly with the “Create application shortcuts” option. The application, in a seperate window, launched right from my windows taskbar! Great! I am also planning to do some research on Chromium OS in the next few months.

However, as I understand it and as I’ve seen so far, you can’t run classical applications on that thing, which is logical. However, sometimes that may be needed. To come to the point of my post, I want to try to combine these three things: A linux distribution with (a) a simple, up-to-date and elegant UI; (b) A difficulty setting for user account based upon which options can be hidden or shown; (c) A web-first strategy going as far as being a bit of a browser on it’s own.

Now, that may be a little vague. How do I see this concretely? As for the first part, I’ll explain how my windows is set up: I have the task bar to the right of my screen with the small icons option on. Now, why do I do that? The small icons option is just because I like the smaller icons and I think the big icons are too big (and, truth be told, because I have so many icons on there, that windows shows a scroll bar to display them all if I use big icons). Second of all, I have it to the right of my screen because (a) it doesn’t draw much attention; and (b) most screens are wider then they are high, these days. So that is what I would propose for this distro: an application bar, default to the right, with combined application launchers and indicators, like in Windows 7/Unity.

As for the web-first thing: I imagine switching between webkit (default) and GNOME 2 as is needed per application. Either webkit could be directly built-in to the operating system, or a chromium-build could be built in. Of course, advanced users should probably be able to configure this, but switching from webkit/chromium to gecko/firefox could be a bit of a hassle. I also imagine a different kind of desktop. One where it would be more like a home screen with a search bar (internet and local) and widgets (both stuff like facebook status updates and your computer’s CPU usage should be possible). So, that would be kind of a combination of the Unity lens-stuff and a traditional desktop. Optimally, this would also be implemented in HTML5/CSS 3/JS.

I do realize that these are all rough concepts and I am not a designer nor a software programmer (I am a webdeveloper) but I am planning to actually look into this because I am sick of searching for a linux distro with a UI that I like to just end up with the same old stuff.

Webdevelopers gezocht voor interview (GIP)

Als laatstejaars in het secundair onderwijs moet ik een GIP, ofte Geïntegreerde Proef, maken. Deze bestaat uit verschillende onderdelen, waarvan ik er één vrij kon kiezen. Ik koos voor een vergelijking tussen ASP.NET, JSP en PHP. In het kader van deze opdracht zoek ik webdevelopers die hoofdzakelijk met één of meerdere van deze talen werken en willen vertellen (irl ontmoeting of per mail) waarom ze voor hun taal hebben gekozen. Continue reading

Forking WordPress, bbPress & BackPress

I’m unhappy with the recent developments in WordPress, bbPress and BackPress. WP 3.0 features the new custom post type system, but there is no way of altering the default post types, or deleting them. The minimum requirement is still php 4.3 and almost nothing is object oriented, which makes developing a pain in the ass. The bbPress project is stonedead. Matt, the founder of WP, will transform it into a plugin for wordpress and the standalone project will disappear (it might be forked by community members though). BackPress doesn’t have a real future because the biggest project, WordPress doesn’t use it. Therefore, I will fork the three of them.

Continue reading

Using a framework or a code library

(It’s been a long time since I last posted, I know..)

Some time ago I wrote a tutorial here how to install symfony 2.0. Since then I also explored Symfony 1.4 and BackPress (WordPress sister project). These experiences made me think. I didn’t like Symfony 1.4 and I didn’t like BackPress either. I, however, liked the concept of BackPress (a code library) instead of a framework. I also couldn’t use Symfony 2.0 yet (still in development) so I decided to start writing my own code library. It will contain some basic and more advanced functionality. Once I get something working which is good enough to release, you will find it somewhere here. You will be able to download the full package or only parts of it.

This project, currently called WimWebStandardsLibrary, will contain (in its first version):

  • User system with meta table, group system, roles system (user and group based)
  • Database wrapper for pdo
  • Forum system with (sub)categories, topics, posts
  • Personal Message system
  • Blogging system
  • General Content Management system
  • (suggestions are welcome)

It is very likely that most or all of my future websites will be based on this.

Update 16/04/2010 : I decided to work together with coding kid for this project. We started from scratch and the project is now named BaZic PHP. More info on this later.

Preparing for Symfony – Part II : First steps with CLI and Doctrine

Here is the second post on Symfony. Yesterday I prepared my development environment for Symfony 2.0. Today I learned that Symfony 2 is just a rewrite and it’s not rewritten from scratch. This means that there are some Symfony 1.4 pieces in it that aren’t yet rewritten. Because of this, I decided to go with the stable 1.4 version. I downloaded the sandbox and installed it. To see that it was linking to my stylesheets in a wrong way. After some searching, it became clear to me that it expected to be in the server root, but in my setup it wasn’t. I searched for the code that generates the stylesheet links, but I was unable to find it.

After some time I decided to just try the Jobeet tutorial available on the Symfony website, which starts with a clean symfony installation. This worked way better. Everything is explained well and by learning it this way you understand how symfony works. This is also my advice to people wanting to start with symfony : don’t start with the sandbox, start with the official Jobeet tutorial. At the time of writing I’m doing part 4. This means I’ve got a virtual host for this project, my database is set up with testdata and initial data. And I generated models, controllers and views with one line of batch. Symfony comes with a bat script (for windows) and shellscript for linux that make use of the php CLI for automating many tasks. This comes in very handy.

One of the big featuresets the CLI has, is database, SQL and MVC generation by doctrine, one of the default ORMs. In the jobeet tutorial, you provide 3 YAML (.yml) files and with one line of batch code, doctrine makes a database, puts data in it, sets up validation and sets up your models, controllers and views. After that, you’ve just got to change your views and maybe your controllers too, and you’ve got a working application.

I now have finally decided to use Symfony (1.4 at first, 2.0 when it becomes available) as my new PHP framework. When I get used to it, I will post bundles (plugins) for it on this blog, and I may also cast aside wordpress for my own Symfony bundles. There, however, is one potential problem with that, being that to make it fully secure, you have to use virtual hosts and aliases. This may become difficult on free, shared hosting.

Preparing for Symfony 2.0 – Part I : Introduction & APC

Thanks to the phpbb “future plans” announcement, I discovered Symfony 2, a php 5.3 framework. It will be used for phpBB 4.0, which will also be more framework a-like itself. I had tried some php frameworks in the past, like CakePHP, Kohana and some others I can’t remember, and none of them were of that much use to me. When I read about the Symfony 2 I was interested, however. They happen to have a similiar architecture to the cms I was busy developing. Notice that I’m using the past here? Indeed, if my experiences with Symfony are positive, I will drop my cms, as it would create double functionality.

I decided I wanted to try to make a simple blog with Symfony, to get to know it. First was deciding which version I should take, I could take the stable Symfony 1.4 or go for Symfony 2, which used php 5.3 features but was still in an alpha phase. After some thinking I decided to take Symfony 2. I downloaded the sandbox and unzipped it to my server. I must note that I’m using Windows 7 and a XAMPP server for local development. I ran the check file and noticed an info box saying that it’s recommended to have the APC module enabled. I had never heard the name before, so I googled it and it happened to be A caching extention for php. I also searched for installing instructions. And this is where the difficult part started.

Appereantly, pecl.php.net only had the source, and no windows dll’s. I first installed cygwin, but using it didn’t go quite well. I can work with linux and I know some basic bash, but I had never worked with the cygwin system before, so I didn’t know how to access files on my windows disks. Thinking about it now I also could have booted one of my ubuntu virtual machines and compile it there, but I didn’t think of it at the time. I searched on the internet for precompiled dll’s. That was a hard search, almost everywhere they point to pecl4win.php.net, but it is down for maintenance at least since April 2009 and it doesn’t look like it will come back soon. After an hour of searching I found a dll. I copied it to my php/ext folder only to get a message that there was already a file named php_apc.dll. So, I didn’t even have to search at all. I should have checked first.

So well, I went to my php.ini and opened it in jEdit. I uncommented the line that said extention=php_apc.dll, and saved the file, and then refreshed my phpinfo page. Luckily I realised quickly that I still needed to restart my server. After doing that it still didn’t show up in my phpinfo. I googled again for problems with APC on windows and windows installing instructions. After more then half an hour one configuration line spotted my attention. I had seen some configuration in my php.ini but hadn’t really read it. I looked at the line in the article, which was apc.enabled = 1. I went to check in my php.ini, and indeed, it wasn’t there. I pasted it there and restarted my server and indeed, that worked.

So, to recap (so you wont have to search for hours). You can install APC on XAMPP (and in general) by doing this:

  • check if there is a file in your php/ext folder. If there is one, proceed. If there isn’t one search for it on the internet. If you e-mail me I can send it, but I can’t upload it here due to security settings in the wordpress uploader.
  • Open php/php.ini . Find the part about extentions and scroll down to the block with the pecl extentions (using xampp) or just find or add the line extention=php_apc.dll
  • Scroll down to apc configuration (in xampp it is already there) or just add [apc] and in all cases add apc.enabled = 1
  • Save your php.ini and restart your server
  • Check your phpinfo to see if there is an apc block in it. If there is, it works, if there isn’t try to redo this steps and if it still doesn’t work, explain your problems in the comments.

I hope this article was usefull to you and that it works for you.

Thinking about my new website

No, I’m not talking about this website :) I am talking about my next website, the runner-up to this temporary place. While this wordpress blog is good for now, I’d like something more advanced later, and for that I will write my own system and, as it looks now, it will have these features :

  • Liv/fe feed : A live feed about my life. Everything will come together at the liv/fe feed on the homepage : twitter, facebook, netlog, blog, … It will become the center of my activity on the web, and ideally later my activity in real life too.
  • Blog : A blog where you can comment on things I write.
  • Forum : A forum where you can discuss about many things.
  • Powerfull adminpannel where I can tweet, update netlog and facebook and much more…

And that all with my current blog layout. Good plan or not? any comments?