24-11-2008


Openbox

In one of the last posts we saw how to achieve a lightweight Debian installation with LXDE, a Desktop Environment with netbooks in mind. But there are a lot of reasons to get simple and let behind the Desktop Environment concept (DE from now on) for a Window Manager (WM from now on). The step we are taking now is Openbox.

Openbox is a WM, and just to keep the record, it is the WM LXDE uses (so if we followed the last how-to we are somehow familiarized with it). What is a WM? It is an application that manages the position, size, movement and usually, the decoration (title bar) of windows, besides cool features. The smartest will probably understood by now that every DE uses a WM. There are two types of WM; floating and tiling. The first one is similar to what we can find on DEs: overlapping floating windows we can drag and drop with our mice. The second one is geared towards keyboard users and tries to share the screen space amongst windows following user specified rules, so when the user runs applications the WM adjusts all windows size and position. Openbox is of the first type.

One thing users must deal with with WMs is that a lot of them haven’t panel as is. It is possible to install a lot of different panels, though, but as I see it, Openbox is nearly perfect without one. To realize this, we must think about for what we use panels and how this tasks are accomplished with Openbox:

  • In panels we have menus -> In Openbox we can right-click (default) anywhere to get a configurable menu where we clicked.
  • In panels we have a list of opened applications -> In Openbox we can middle-click (default) anywhere to get a list of applications in each virtual desktop.
  • In panel we have a tray notification area -> In order to achieve this we need to install other software like docker
  • In a panel we have widget-like elements like clocks, mixers… -> For this we have to install additional software too, like conky or lal.

Most common features of panels are not only already present in WMs, but usually are better and more usable. Given WMs are simpler than DEs, they are usually more configurable.

The curious thing about this is that as time goes by as a GNU/Linux user and you understand better how things work, you find new ways to achieve what you need easier, getting your user experience better. Those of us who have used Windows for a long time are usually used to getting things in a static, non-customizable way, ad I think it is important to understand what you need and how you can adapt the system to work like you want it to. Habits aren’t that good usually!

Soon I’ll write a Openbox how-to. Stay tuned ;-)

9-06-2008


Books, books, books…

It looks I’m getting old. Nothing I can do about it, though! I always defended , ad-hoc, “electronic documentation”, but lately I’m more into reading technical books let the first one to when it’s worth: ad-hoc problem solving

That’s how I got to propose in the e-ghost mail list to create a recommended books thread (here!) that I hope will be growing with the knowledge of the people of e-ghost.

When I finish some of them probably I’ll write about them here. Anyway, txipi, one of the most knowledgeable members of e-ghost, has published in bubok, lulu and his blog some C lessons in GNU/Linux (Only spanish, sorry!). Haven’t read it yet, but I’m sure it will be great!

I would like to publish something in lulu someday… What geek or nerd hasn’t dreamed about publishing it’s own writings?

Written by crimsomshadow under Free software, Leisure, Opinion, Software development | Comments... » (2) |
21-05-2008


Subversion and Trac

It’s kind of sad that, even though I know Subversion (svn from now on) existed since long ago, it was just until a month ago or so when I finally started working with it. What can I say? It has totally changed the way I work not only on group projects, but on individuals too! Easy to install, easy to use, plug-ins for each IDE I use… Version control isn’t only a good way to keep a project history and work with more people, but a development philosophy catalyst that ensures changes in a project will have sense.

Just a moment after my first two commits (true story) I became interested in the project management possibilities svn granted, even though my work philosophy tended always to ad-hoc and little to none organization, always enphasizing the work core.

Now is when Trac comes in. Trac is simply awesome. Each time I browse to a trac project page I get really excited. Trac is project management system that has what I consider to be the best feature: As non-intrusive as possible. Svn integration is wonderful, it is really easy to install too, and it lets you manage your project as you feel right.

And how does this work? The project lives in a single host as a repository in the svn server. There are two basic operations we can do with each repository item

  • Update ->Update our local version, if we have one, with the one in the repository if it’s higher. This is the way to get the last version of what we need.
  • Commit -> Update the repository with the changes we made. The client first checks if the version we used to develop the changes is the one on the repository. If not, another developer changed the base in which the changes have been done, so it is mandatory to check the new version and get things good. All of this is really easy to do. It is possible (I would call it a must-do!) to asign a record text to each commit so we can track all those changes easily.

Regarding basics, that’s svn. Regarding trac, it’s a web application with the following elements:

  • Wiki: A useful wiki to keep the project documentation or info about the project development stage. Extremely easy to use.
  • Timeline: Lists all project related events: wiki edits, svn commits, ticket creation and closure… Everything that has happened since day one!
  • Roadmap: Here we can create milestones or assign tickets to one already created. Each milestone has a percentual gauge that will fill when all tickets of that milestone are closed.
  • Browse Source: A handy svn repository explorer with diff capabilities. Sweet!
  • Tickets: Tickets are trac’s power backend and the organization magic for our projects. A ticket can be anything: a task, a bug, a feature request, a comment… Each ticket belongs to a milestone and it is possible to assign tickets to a user of the system.

This way, trac becomes our project’s main page, and a reference about what to do and when to do it. A task gets more complex? Create more tickets. We finish something? Close it’s tickets. Easy! There are also hook scripts with which we can automagically close tickets, do incremental backups and more.

Some links:

http://ariejan.net/2006/12/01/how-to-setup-a-ubuntu-development-server-part-1/

http://ariejan.net/2006/12/02/how-to-setup-a-ubuntu-development-server-part-2/

http://cachi.temiga.org/2008/02/11/montando-apache-ssl-subversion-webdav-websvn-en-ubuntu-server/

http://blog.odonnell.nu/32.html

http://www.reviewingit.com/index.php/content/view/62/1/

http://www.hosted-projects.com/trac/TracDemo/Demo

http://subclipse.tigris.org/

http://ankhsvn.open.collab.net/

http://www.assembla.com

Written by crimsomshadow under Free software, Software, Opinion, Software development | Comments... » (3) |
5-04-2008


Freedom to choose

Update: Since I wrote this, experience tought me that the vast majority of examples here work in great part because of inexperience, habit or lack of knowledge, but I keep the central point of this post ;-)

I still remember how some years ago I really despised radical free software activists. And well, I must confess it still annoys me somehow. But I don’t want to confuse no one here, I also fight for free software: My preferred O.S. is Debian, I prefer and use free alternatives when possible and the “not-so-many” things I develop are free…

But this isn’t always about how much you like free software and it’s philosophy. Sometimes one has an objective that must be developed, and typically there is no time to find alternatives or investigate. In those situations, the tool that gives out a fast and painless solution s the one that prevails. For example, should I need now to reencode some videos and can’t find a tool I can’t work with easily (Let’s clarify: I am a real noob in that scope), what I should choose is crystal clear. Of course, with time and the task done, searching for a similar free tool or learning to use the one I discarded is guaranteed.

There are even other situations in which, very exceptionally, there is propietary software that because one or more of it’s features gets the work done faster and easier. And I personally find dificult sometimes that when I want to do something, the software I use is a tool, and as tool it is all about how handy it is. Is that enough reason to point me with your fingers? Since when, in a environment in which freedom is defended no matter the cost, judging people that uses it’s freedom to choose is any good?

I understand and fight alongside the idea that we live in a world that even though the outstanding communication capacity (internet being the huge central pillar) there is, misinformation is everywhere. There is too much people that doesn’t choose because they don’t know about the alternatives o the information they has been manipulated and is false. But there is no excuse for going from one extreme to the other. Everyone has the right to choose, and the real need right now is to try and inform people so they can decide by themselves and choose. Imposing ideas, even if they were the best, still is an imposition and therefore, a deprivation of freedom.

For example, why lie? I like .NET technology, but I despise Microsoft politics. Should I because of that not develop in C# anymore, probably using the “for-me-worst” Java API? Now that Mono Project is advancing so much this question is easier to answer. But even though, is that important whether I used Java or .NET? A lot of people will think about philosophy and sacrifice, but a I see it, we should not throw trash onto something beacuse of it’s origin. I think there is a “not-so-thin” line between following the free software philosophy and imposing that everything must be free.

I don want a world in which free software establishes itself by activism and social pressure. I prefer it to establish itself because people has chosen it with judgment: because it is a better built piece of software, beacuse it’s reliability, because it’s flexibility and because with the truth in one hand, because it really is better. Let’s develop better software instead of use politics. Let’s give free software what it deserves making it stronger and stronger!

Written by crimsomshadow under Free software, Opinion | Comments... » (4) |