Category: Debian & FLOSS

Such a big directory…

Posted by – 17/09/2014

There’s no easy way to list files in a 10-million-file directory. Our beloved find and ls will almost never do it without requiring your whole week. I know it’s a bad design to have such a beast in place, but hey… we don’t always control the design of things our customers like to deploy. And some customers seems to like to defy logic sometimes.

Anyway, having to work with such thing requires some special plumbing. I usually code something quick using getdents in C, but I always forget to put it around and end up coding everything again everytime. I was about to upload it to github this time, but I found something already there. So this is just a heads up if there’s anyone out there needing this.

Goodbye Jorte, hello ownCloud

Posted by – 30/05/2014

After I migrated from Palm Treo to Android phones, I was very displeased with the Calendar application. I don’t use Google Apps (my phone is AOSP), which only leaves me with (argh!) Exchange for online-synced calendar. Besides, the first incarnations of the Calendar application in AOSP were barely usable.

So I just went for a standalone free (as in beer) Calendar application named Jorte, which is really good. Recently, I’ve been investigating ownCloud and CalDAV, and decided to review the state of current AOSP Calendar application. To my surprise, it have evolved a lot (to the point of being usable), but still no CalDAV sync.

So I found DAVdroid in F-droid repository, which is an interesting application that can register a CalDAV account that is usable by AOSP Calendar. So, now, I am able to use ownCloud calendaring, ownCloud CalDAV server and my phone, and, since free-as-in-speech software is much better than free-as-in-beer, I decided to ditch Jorte.

But Jorte doesn’t have an option to export its data to an Icalendar file (why make things easy, right?). All it spits is a csv-file as a backup. (As a side-note, Jorte seems to intentionally not provide an Icalendar-file export option… as the ‘rrule’ field they use in the csv follow the same rules Icalendar standard dictates, they might be using it internally). Since this is pretty trivial stuff, I just coded a Ruby script to do the job. I released it to my github repo, just in case anyone else finds it useful.

ConQuest DICOM Server

Posted by – 03/04/2014

I’ve been busy with Real Life™ lately, but I managed to get some time to work on ConQuest DICOM Server packaging for Debian. I’m almost reaching upload state. The work can be checked at GitHub.

It’s compiled for i386 in an unsigned APT repo, if anybody wants to play with it before I upload. These are the sources:

# Wheezy
deb spectra-wheezy/
# Sid
deb spectra-sid/
# Ubuntu Saucy
deb spectra-saucy/

Enjoy it.

Nostalgia time

Posted by – 03/12/2012

My parents will soon be moving to a smaller home, so they are digging up a lot of stuff of my sister and mine past. Among my stuff, they just sent me my first computer (which was, of course, the first computer of my father’s company I was using in the spare time). I couldn’t believe they kept that. It was an Unitron Apple ][ 64K!! I just had it cleaned and took this picture:

Due to the closed informatics market Brazilians were subject to at the time, it came with a full set of manuals in Portuguese which taught me how to code in Basic (I was too young to learn English at the time)… Interesting how a bad policy like that can result in a Good Thing™ sometimes. 🙂

Is it just me or does this picture made you nostalgic also?

Decision-making by flipping a coin

Posted by – 20/11/2012

Yesterday I was discussing in an online board how to break a decision deadlock in life. There are real deadlocks, but I don’t think they are very frequent… most of the time, doing a pros and cons analysis is enough to decide what to do. Sometimes our judgement is impaired by lack of objectivity or by our inability to see things from a different point of view (it’s hard to think straight when everything seems to be falling apart around you); talking to a friend or relative can help in these situations.

But there are times when nothing helps. When you are really stuck and nothing seems to break the deadlock. At these times I give it one or two days, sleep on the issue and if I cannot come up with a decision I assume the alternatives are equivalent to me and just flip a coin.

Of course, this will do if you can postpone the decision, giving yourself (and your inner self) time to decide on a course-of-action. But is there some way to speed up the process? During the discussion, someone came up with a rather smart quote by Rothstein character in Boardwalk Empire TV series:

Flip a coin. When it’s in the air, you’ll know what side you’re hoping for.

I found it an interesting way to give your inner self an ultimatum: decide or luck will decide instead. I’ve never did it like that, for I would not flip a coin unless it’s my last resort. Being such a clever psychological idea, I doubted it originated in the TV series itself, so I went on pursue of the original idea. I found a Danish poet and mathematician called Piet Hein, who wrote a poem about it circa 1969:


Whenever you’re called on to make up your mind,
and you’re hampered by not having any,
the best way to solve the dilemma, you’ll find,
is simply by spinning a penny.
No — not so that chance shall decide the affair
while you’re passively standing there moping;
but the moment the penny is up in the air,
you suddenly know what you’re hoping.

And also, there are a Donald Duck comic called “Flip Decision” circa 1953 that introduces Flipism philosophy, which supports a rather radical anecdotal variant: make all decisions by flipping a coin.

Piet Hein or Rothstein character idea is much better than Flipism, of course. Does anyone knows any older sources of the same idea?

That’s a lot to do!

Posted by – 07/11/2012

Reading about Michael Stapelberg’s codesearch I bet a lot of people had the same idea. I just had to post a screenshot of it:

It seems we have a lot to fix 🙂

Zotero and note-taking

Posted by – 24/06/2012

I was looking for an excuse to try Zotero and the perfect opportunity appeared when I got a whole lot of references to group for a month of Magnetic Ressonance studies I am currently taking. I was also pleased to notice it is packaged to Debian.

I am used to note-taking software. Back when I used a Palm m130 (and a Treo 650), I managed a lot of Memos I eventually migrated to Note-Everything in my current Android phone. Zotero, unfortunatelly, is not interfaceable with my phone (or I was still unable to figure out how to do so), but it’s powerful in managing references… beyond simple note-taking.

Is anyone using Zotero in a more ambitious way? I’ve read about people using it to keep large researchs to support fiction and non-fiction book-writing… I also watched some YouTube videos on it. As far as I went with it, Zotero might become an important piece in my toolbox wrt reference keeping, so I was just trying to figure out how many other niches it can fill…

Timeout a process in Bash > v4

Posted by – 19/04/2012

Just for reference, this is really useful:

( cmdpid=$BASHPID; (sleep 10; kill $cmdpid) & exec some_command )

Update Apr 20, 2012 @ 16:54: As pointed in a comment by Timo Juhani Lindfors, if “some_command” exits early and the interval is long, another process can reuse its process number and get killed once the sleep runs out. Does anybody know a better way of doing that without using timeout from coreutils (better yet: using just bash)?

Key Signing Party at FISL13

Posted by – 16/04/2012

You know the drill. Official announcement is here (or here in portuguese). Anybody planning to drop by FISL13 should submit a key.

Using Gmail anti-spam with mutt

Posted by – 29/03/2012

OK, this is not another post on how to use Mutt and Gmail. This is just to comment on a feature I found in Mutt that was not obvious, and that helped me to stop running my own anti-spam tool.

So, for a number of reasons, my company stop filtering spams. I was setting up dspam to take over that job when I decided that it was just too much pain for a single account. Besides, although I am spammed a lot, I would never possibly be more efficient than Gmail anti-spam, given the load of emails their users classify everyday.

I am not migrating my old emails over to Gmail, though. And I am pretty comfortable with my current email work-flow… I am simply not going to use a webmail (even one as powerful as Gmail). OK, I am using GNOME 3 after being a Fluxbox and Bluetile user, but everything has a limit…

But how to keep the best of both worlds? And, more important, how to do that with minimum disruption of what I already have (my own IMAP server and Mutt managing my account there as spoolfile)? The answer is a little known trick using the “mailboxes” directive in .muttrc.

This directive accepts a fully-qualified imap mailbox address. So I just added something like:

mailboxes 'imaps://[Gmail]/Spam'

and added some shortcuts to save email from my inbox to that mailbox (the same as train-as-spam) and to rescue email from it (the same as train-as-ham):

macro index <F3> ";Wo;Wn;simaps://[Gmail]/Spam\n" "Train as SPAM"
macro index <F4> ";Wo;Wn;simaps://\n" "Train as HAM"

and that was it. In my IMAP machine I got a fetchmail downloading emails from Gmail’s INBOX so I can get trained-as-ham and new emails (all emails arrive first in my Gmail account) into my IMAP server. All my sieve rules are in place and nothing changed in my email work-flow.

It’s been working flawlessly for a week now. The only drawbacks are (1) Gmail knowing everything that arrives to me (not a big deal, since unencrypted emails aren’t private anyway), and (2) not getting the spam-count once Mutt is run: I have to change into that mailbox to log-in to Gmail.

Update: Mar 30, 2012 @ 18:15: I just found out that drawback number (2) above can be fixed by adding the following to .muttrc:

unset imap_passive

Annoyed by F10 key in gnome-terminal?

Posted by – 23/03/2012

I am one of those people that like to map Fx keys to special functions. After all, that’s what F-unction keys are for, right?

So, one of the first things I do once I have to configure a new Desktop is disable F10-capture by gnome-terminal. It has been working flawlessly, until I begin using GNOME3. No matter what, F10 was still being captured.

I found that this is a bug and that adding the following:

@binding-set NoKeyboardNavigation {
	unbind "<shift>F10"
* {
	gtk-key-bindings: NoKeyboardNavigation

to ~/.config/gtk-3.0/gtk.css serves as a workaround.

Hope this helps people with the same problem.

GNOME 3 is like Vim.

Posted by – 22/03/2012

You might know that I am testing GNOME 3. So far, so good. I was a little annoyed by the not-obvious and undocumented have-to-add-user-to-pulse-and-pulse-access procedure and the keyboard-shortcut-settings-bad-design-bug, but now sound works and my usual shortcuts are in-place…

I found myself liking the environment, but not sure about why I was liking it. I was always a minimalist user. At one time I convinced myself X11 (or Xorg) served as a terminal multiplexer… but now, GNOME 3 is changing that with its unobstructiveness (is there such a word?).

One thing that might be selling GNOME 3 to me is that it resembles Vim, my beloved text-editor and multipurpose IDE. Just think about the “Overview” mode as a command-mode in Vim. While working in Vim, I focus in one thing at a time, and everytime I want to do some “meta” thing, I Escape to the command-mode. It’s just the same in GNOME 3: “Overview” let me do “meta” things and gives me the whole power of the Desktop in one screen.

I am not sure I am going to keep GNOME 3… But thinking it’s like Vim is a compelling argument.

Time to change Window Manager again?

Posted by – 18/03/2012

Ten years ago I was a fan of NEXTSTEP desktops and a die hard user of Window Maker. I love dockapps, and used to collect them.

Things changed, and, as I moved from Desktops to Laptops, I began using simpler Window Managers. The powerful keyboard-shortcuts Fluxbox along with its capability to join windows with tabbing won me over and I began using it in my Laptop, while preserving Window Maker in my Desktop. In time, Fluxbox were used in both sides.

Then the netbooks came and I bought an EeePC. The screen was so small that even the non-obstructive nature of Fluxbox were not enough. I began to try tiling window managers and I settle for Awesome. I was using Fluxbox in my Desktop and my Laptop, but Awesome was running in my Netbook. Tiling was making a lot of more sense and I could be productive, even in a small Netbook. Eventually, I started using Bluetile in my Laptop. Also, Bluetile was written in Haskell, and I was interested in Functional Languages by that time…

Now I got a new Laptop, and, since it features a Realtek 8191SE Wi-fi card, I had to install Wheezy (in my laptop, I usually run stable). Wheezy comes with the new GNOME 3 desktop, of which I read a lot.

I decided to give it a try. I am missing advanced tiling (it seems that GNOME3 tiling works just in the side-by-side approach)… and I also think that creating custom launchers should be improved… but so far I am not disliking it, which is a good step toward adopting it. I’ll give it a week to convince me. Let’s see how it works its charm on me 🙂

Windows Laptop with Debian Recovery Partition

Posted by – 15/03/2012

I was playing with my new Laptop (a Philco 14E-P686WP) that comes with (argh!) Windows 7. I was gathering information in order to avoid surprises with regards to drivers and hardware-compatibility so I can proceed with the Debian installation… By doing that with a new machine, I, usually, peek and poke everywhere, including the Recovery System.

I was shocked to find out that this (argh) Windows 7 laptop has a bootable recovery partition loaded with a customized Debian just to run Partclone which installs a Windows factory image. I was about to take some pictures of the process, but I managed to find some in a forum post.

Debian is being used to re-install (argh) Windows… How sad is that! 😉

Migrating from Mephisto to WordPress

Posted by – 12/03/2012

Just as I promised yesterday, I pushed a new git repo with my fork of the tool I used to migrate my old Mephisto blog to this new WordPress one.

I forked because the tool have not worked the first time. First of all, I was missing uuidtools gem, and to install it would be a pain inside the jail system I used to run my blog. Too much trouble just to get a UUID we can get by other means… so I just added an environment variable UUIDGEN anyone can use to point to a tool to do the job. I know this have performance implications, but I am not talking about 10-thousand entries…

Then, I found out that, for some odd reason I still have to understand, WordPress was cutting my articles everytime it read a “à” character. I could study the subject, but I just added a #gsub in mephisto-to-wxr code and moved on. I was about to remove it from the repo, but I left it there since it could help other people. Also, since there might be other similar occurrences, leaving it there serves as a heads up.

Also, I added support for Categories and Tags to mephisto-to-wxr, that seemed to be limitedly accepted (I translated Mephisto Sections into WordPress Categories).

All other activities were just clean-up. That tool generated a .WXR with all the articles and comments from my Mephisto blog. Everything I had to do was import it using WordPress import tool.