Code and Bugs

Coding things

Compiling GHC from sources

I’ve decided that the best way to learn about the internals of GHC is to actually look at it’s source code in parallel with some experiments. This is the first part of a series of articles related to some GHC experiments, maybe going towards a ghcd command. But, until then, we have much work to do.

Read the rest of this entry »

When do you know a language?

One of my teacher used to say that we don’t know Matlab because we don’t know that there is a guide command which does what it does. Yesterday, I’ve created my Haskellers profile and I saw that there are a lot of topics in Haskell about which I know almost nothing. This made me write this post, trying to get the answer to the following question: «How much should you know about one language to be certain that you can say you know the language?».

Read the rest of this entry »

Dependency tracking

Let’s say you work on a project on your favourite language (for the purpose of this article, we will assume that that language is either C or Haskell, you’ll see why at the end of the article). Your project is complicated that you’ve split it across several libraries and several other files. Of course, you need a Makefile to build it. But, on that Makefile you need to be sure that all dependencies are listed as they should be, that they are up to date. The question arises: aren’t there any tools for automatic dependency tracking?

Read the rest of this entry »

Programmer’s context switch

Say you are working on one project when someone calls you or sends you a mail asking you to look into another project, either a bug in one of your old projects or problem in his. Although programmers don’t like interruptions, this is a case where you have to do that context switch and return to your project afterwards. So, how to do this efficiently?

Read the rest of this entry »

Enter HaCoTeB

I am dissatisfied with the WordPress.com code posting capabilities. All of the possible solutions (using the included <code> tag or the included [ code ] plug-in or posting the entire html generated from the code via vim’s TOhtml or via highlight) were incomplete.

Read the rest of this entry »

Craft or art?

One of my teachers once said to some of his students: «Your job is both beautiful and cursed». He was referring to the fact that, in Computer Science, one has to always learn something new while being certain that what he learns will become obsolete in a shorter or longer period of time.

However, this is only a partial reason. At least, for the programming part of Computer Science.

Read the rest of this entry »

New Window Manager

I started looking for a new distribution because I needed a window manager which could be easily configured (that is without waiting for compilation steps or anything else) and which will boost productivity when coding and will not interfere with other activities. That meant tiling wm for coding, stacking wm during other sessions.

And, i3 came to the rescue. After trying Xmonad, Bluetile, Awesome, Luchbox, Enlightenment, Fluxbox, Openbox and several others this offered me the satisfaction I looked after.

Small screenshot and goodbye for now :)



New Distribution (part 1)

Since the day Ubuntu Lucid Lynx was released I planned to get a day when I’ll install Arch instead of the old Ubuntu I used. I did this a few days ago or, to say it better, tried to do this. The end result is that I have Lucid on my laptop for this week :)

Read the rest of this entry »

Enter Bucharest-fp group

A few days ago a new group was founded in Bucharest: Bucharest-fp group [0]. It is a place where people with a passion for functional programming can get together and discuss technical details and more.

The first meeting took place two days ago and it was a startup meeting. Te next meeting should be more interesting and I eagerly await it.

[0]: Right now, the content is little and in Romanian but this will not be a problem in the future when we will add more English content

Raptors

All xkcd‘s fans know the raptor problem: suppose you are standing at the centre of an equilateral triangle with three raptors in the corners, one of them injured (thus going with a slower speed). Knowing the speeds of all entities and the edge of the triangle determine the direction in which you will have to run to maximize your life time.

Read the rest of this entry »

Follow

Get every new post delivered to your Inbox.