Code is Simply Code

Have you ever heard someone saying there were two types of programmers: those developping libraries and those developping applications. I don’t thing things can be sparated that easily. I just can’t see the difference between writing an application to access a database and a library that handles the requests and write files or anything. In the end, your code will be made out of classes and methods, loops and conditions and a bunch of variables. What’s the difference?

System - Buisness - User

The only real difference is that a library is meant to be re-used and will generally work at a lower level: closer to the system and architecture. System programming has complexities and particularities, it does require special knowledge of the context. So does buisness logic programming where the developper has to be aware of the structure of the organisation and work processes. Even interface design is not simple. Most applications have worthless interfaces that barely suit anyone’s need because it was created by a programmer, but a real good interface is made for the user.

In the end, all the different layers do is abstract the complexities of the underlying architectures to reach a fully usable application. In facts, much more layers can be required depending on the size of the application and no bold line can indicate the division between library and application. The different layers simply bring the technicalities of the system to the reach of the user. A well structured project would not have less programming quality in the upper layers and the documentation would be adequate at all levels. The fact that a library should have a better design or documentation simply makes no sense.

I Want My Feed!

About every university course has it’s website where professors place their slides and all kinds of information. The wrong part is those asking you to visit their website frequently to read news and updates on the course plan. I don’t like the idea of having to visit a website daily. I do visit Slashdot every day, because if I don’t I’ll miss content, but I don’t want to be forced to visit a course website every day! Why don’t they simply put up an RSS/RDF/Atom feed so I can simply see when new information is available?

It might be too high-tech for them, but I can’t accept this as an excuse in a software engineering program. Even a mailing list would be better than having to visit a website.

Are Geeks Hiding?

Linux logo with Tux

I have heard a complaint yesterday about F/OSS developpers being rare and that basically, all of them were workaholics. I don’t know where those people hang around at, but I don’t feel F/OSS developpers are rare. I might just live in a weird world, but those people are all around me. There are millions of members of the community worldwide, of course they don’t all work full time on open source, but it sure isn’t rare to talk to a programmer and hear he’s working, or at least contributed, to an open source application.

There are many reasons why a developper would want to contribute to a community-driven project and I don’t really thing the lack of affection is one of them.

  • Need the application: probably the best reason of them all
  • Learning or self improvement: Facing real problems is probably the best way to improve skills
  • Gain experience: It can’t be bad to see how other people solve problems
  • Improve his curriculum vitae: A few extra lines are never a bad thing
  • Simple interest for the purpose of the project: Being part of a project gives opportunities to gather knowledge
  • Desire to help others: Why not?

Multilingual Collaborative Websites

I18N

Due to the nature of the web, people from different nationalities can reach websites. Large websites and portals usually have the content available in multiple languages. On a static website or where the content is tightly controled by a maintenance team, the content can be updated as the changes are made by the team dedicated to it.

When it comes to a collaborative websites where any user can add content, the translation process becomes much more complicated. Since the modifications can be done at any time and the author of the modifications probably can’t translate in all languages, the pages which are supposed to contain the same content end up having huge differences. A good example of this is Wikipedia, which is a great website with tons of content, but sadly, most of the content is only available in english. It’s not rare to see a page where the english version contains 10 printed pages of content while the french version barely has one.

The rest of this post contains more details about the problems and ideas to improve those websites.

Continue reading “Multilingual Collaborative Websites”

Unification Divides?

Linux logo with Tux

One of the common complaints I see about Linux and Open Source in general is that there are no standards in the way things are handled. The most frequent example is the packaging systems that are different between distributions. You probably already heard things like They should do it this way! with a lot of vision and knowledge of the actual problems and situation. I think the real problem actually comes from those same idealistic people. Their ideas aim to unify the way things are made, but the new project they create simply becomes one of those other distributions.

There are currently two major trends: Debian’s apt-get style installers and RedHat’s RPMs. Distributions simply adapt the packages to their own needs and vision. Most distributions aim toward a different audience, have a different vision on what a release process should be and what is acceptable. Debian has very high quality standards and has a long release process. Gentoo intermediate to advanced power users with general knowledge of Linux. Mandrake is all about user-friendlyness. Xandros wants to be like Windows. YellowDog is for Macs. Each distribution has it’s own favor and it’s just fine as it is. As long as an application can be compiled on all of those systems, there is no problem to be seen. Isn’t the good old source code the most portable solution?

Your operating system shouldn’t tell you who you are or what your preferences are. Choose what you are comfortable with.

Moving from TikiWiki

Freedom - Ambition - Devotion

I decided to move from TikiWiki. Even if it’s a great project, it does not suit my needs very well as it contains way too many features and this website does not aim to build a community. The rare few readers probably know that it’s mostly inactive and only contains a few random ideas. A blog will allow me to post more often and with less importance.

I went for DotClear, which seemed simple and light. It’s also one of the first applications I felt on.

Anyway, I will continue working on TikiWiki, even if I no longer use it. It’s a very dynamic project with a lot of potential!