[!] The blog has moved [!]

The blog has moved to http://carlitoscontraptions.com/.

You will be redirected to the new URL in 5 s. Sorry for the inconvenience.

March 18, 2007

Nice Linux Software

Forget about iTunes, and even Winamp. Amarok is the best music library organizer there is. I was a big fan of Winamp before now Amarok is my player of choice.

With Amarok, you can download album covers, lyrics, see songs related to the one you're playing, have artist info from Wikipedia, submit player tracks to last.fm, keeps lots of stats about your songs, manage your iPod (and other portable players), subscribe to podcasts, burn CDs (through k3b), and many many other features.

Inkscape is a free vector drawing program. It is full of features, allows to create professional quality vector drawing and is really light. Really, amazing software.

OO.o is the office suite you always wanted. Imagine an office suite where all the features work as they should. Where you can apply styles to your text and be safe to think the program wont mess it up by applying the formatting it thinks is right. Where you can do "advanced" page numbering (e.g. numbering only some pages while leaving other pages unnumbered for instance) without having to spend lots of time getting it right (if you ever manage to get it right). OO.o is all that and more (that I have not discovered yet).

For those wondering about M$ Office compatibility, I can say that Word compatibility is not that good, Powerpoint compatibility seems flawless, and I have not tried the rest.

Beagle allows to index and search files on the computer. IMHO it is much better than Google desktop search. It searches inside almost every file type and even in rss feeds very fast.

Although installing software on Ubuntu is quite easy (you simply select it in the package manager) some things may be slightly more tricky to install (such as nVidia drivers). Automatix allows you to install all the most popular programs with very few clicks.

Although you might be thinking that compared to all this, other mainstream OS seem useless and costly, they are sometimes necessary. For instance I need to use Photoshop, OrCad or SolidWorks (they have not released a Linux version for these programs yet) and sometimes (unfortunately) M$ word (if I have to write a text for someone who only uses M$ software).

There are many solutions for this situations: (1) using wine (which allows to natively run win apps on Linux, but compatibility is still poor), (2) dual booting (which is not very good since you have to restart each time you need to change OS), (3) using VMware (the best solution IMHO).

With VMware you can run any OS on top of Linux. The mainstream OS runs as fast (or just slightly slower) than its normal speed on top of Ubuntu on my system. VMware even allows to connect peripherals to the virtual machine so you can print or your an iPod for instance.
Note that many of these programs are cross platform so they work on other OS as well.

March 15, 2007

Switch Debouncer

For a project I'm doing at school, we needed a debouncer so my teammate David and I designed one.

When a switch or pushbutton is closed the metal contacts bounce before coming to rest, effectively opening and closing the switch many times. This is of no importance for many applications (e.g. a light bulb), but when you want the switch to trigger a single event (e.g. a keyboard key), bouncing is problematic since the switch would trigger many events.

A switch debouncer is a small circuit that generates a single “clean” pulse when a physical switch or pushbutton closes.

We implemented a debouncer that produces a single (or as many as you want) clock-cycle-wide pulse when a pushbutton is pushed. Also, it doesn't allow the creation of another pulse for the next 160 ms.

Here is a state transition diagram for the debouncer followed by a nice schematic.
Note: count_en, count and cout (carry out) refer to the inputs and outputs of the counter on the debouncer schematics (see below), Δt stands for the number of clock cycles the pulse should last, PB = 1 means that the pushbutton has been pushed, and Q₁ and Q₂ refer to the output of the S-R latches.
This implementation is nice in theory (and for FPGA boards) but in reality, 22-bit counters are impossible to find and using a mix of AND and OR gates is not very practical. This is not really a problem since the combinational logic can be easily mapped into NAND-NAND logic and the 22-bit counter can be replaced by a more standard 32-bit counter for instance (in that case cout should be generated using more combinational logic).
Note: The AND gates on the right-hand side (the ones that have NOTed inputs) are used to compare the counter count with the number of clock periods the pulse should last. By correctly setting their inputs, the pulse width can be changed to any number of clock cycles. Similarly, the 160 ms wait time is also easily customizable.

March 09, 2007

More Linux

The good thing about Linux is that it is light and manages the hardware well. This means that my computer runs fast nicely. This was not the case when I was running a commercial mainstream OS, my computer was so slow ans sluggish that i thought I needed a newer faster one.

Now I can run heavy applications such as Azureus without any trouble (before, I had to use Bitcomet since Azureus was really really excruciatingly slow). I can even run lots of applications at the same time fast and reliably.

Also, the startup time is pretty fast.

Desktop Environments

I thought Linux did not have any eye candy and that eye candy is heavy and makes your machine slow. Wrong. You can configure pretty much everything of the Gnome appearance. There are skins, wallpapers that support transparencies (PNG SVG), icons of any size you wish (PNG, SVG), nice transparent docks, etc.

For those who have a 3D graphics card (like me), there is Beryl. Beryls is truly beautiful. There are lots of screencasts on the net about it so I'll let the video speak for itself.

Amazingly enough all this beautiful eye candy works on my computer pretty well.
For further and really extensive customization there is KDE. If Gnome is configurable, then KDE is the definition of configuration itself. Pretty much all the parameters can be easily changed through a GUI in order to obtain a desktop experience that fully suits your personal needs and taste.

Here are some extra screenshots of Nautilus (the gnome file manager) and Konqueror (the KDE file manager, FTP/SSH client, internet browser, image viewer and coffee machine). Notice the nice nautilus thumbnails, the function packed Konqueror and the tight integration between the KDE applications (e.g. Konqueror and Akregator).

March 08, 2007


Today I received some supercapacitors. I'll will use them in an upcoming TOP SECRET project.

I have got a 10F, a 22F and a 50F capacitors.

Here are some pictures:

By the way, please only order free samples if you need them.

March 05, 2007

Compact Keychain

This is a nice keychain I've been using for more than a year now. Since it broke, I had to rebuild it so I took this chance to share it with the rest or the world.

  • 3 washers (number of keys + 1)
  • Some keys (I use only two keys)
  • A pop rivet (requires a river gun)
  1. Fasten the keys together using the rivet and put washers between them.
  2. Admire your creation.
That's it. It works well with my two keys, and it is very compact and quiet.