GDC activity
by Leandro Lucarella on 2010-08-09 22:21 (updated on 2010-08-09 22:21)- with 0 comment(s)
There is a lot of activity lately in the GDC world, both the repository and the mailing list (mostly closed bug reports notification).
The reborn of GDC is a courtesy of Vincenzo Ampolo (AKA goshawk) and Michael P. (I'm sorry, I couldn't find his last name), but it received a big boost lately since Iain Buclaw (apparently from Ubuntu, judging from his e-mail address) got commit access to the repository in July.
They are working in updating both the DMD front-end and the GCC back-end and judging from the commits, the front-end is updated to DMD 1.062 and 2.020 (they are working on Druntime integration now) and the back-end works with GCC 3.4, 4.1, 4.2, 4.3 and 4.4 is in the works.
Really great news! Thanks for the good work!
Bacap
by Leandro Lucarella on 2010-07-01 22:02 (updated on 2010-07-01 22:02)- with 0 comment(s)
I've published my backup script (and named it Bacap, which is how it sounds when you pronounce "backup" in Spanish ;), as it suddenly became used by somebody else and received some patches =)
It has a simple home page for those wanting to see what is it about. I won't be doing formal releases thought, since is such a simple script, that would be overkill (just be thankful it has a git repo and a home page ;).
How can you don't love FLOSS?
by Leandro Lucarella on 2010-06-11 21:11 (updated on 2010-06-11 21:11)- with 0 comment(s)
Let me tell you my story.
I'm moving to a new jabber server, so I had to migrate my contacts. I have several jabber accounts, collected all over the years (I started using jabber a long time ago, around 2001 [1]; in that days ICQ interoperability was an issue =P), with a bunch of contacts each, so manual migration was out of the question.
First I thought "this is gonna get ugly" so I thought about using some XMPP Python library to do the work talking directly to the servers, but then I remember 2 key facts:
- I use Psi, which likes XML a lot, and it has a roster cache in a file.
- I use mcabber, which has a FIFO for injecting commands via the command line.
Having this two facts in mind, the migration was as easy as a less than 25 SLOC Python script, without any external dependencies (just Python stdlib):
import sys
import xml.etree.ElementTree as et
def ns(s):
return '{http://psi-im.org/options}' + s
tree = et.parse(sys.argv[1])
accounts = tree.getroot()[0]
for account in accounts.getchildren():
roster_cache = account.find(ns('roster-cache'))
if roster_cache is None:
continue
for contact in roster_cache:
name = contact.findtext(ns('name')).strip().encode('utf-8')
jid = contact.findtext(ns('jid')).strip().encode('utf-8')
print '/add', jid, name
print '/roster search', jid
g = contact.find(ns('groups')).findtext(ns('item'))
if g is not None:
group = g.strip().encode('utf-8')
print '/move', group
Voilà!
Now all you have to do is know where your Psi accounts.xml file is (usually ~/.psi/profiles/<your_profile_name>/accounts.xml), and where your mcabber FIFO is (usually ~/.mcabber/mcabber.fifo, but maybe you have to configure mcabber first) and run:
python script.py /path/to/accounts.xml > /path/to/mcabber.fifo
You can omit the > /path/to/mcabber.fifo first if you have to take a peek at what mcabber commands will be executed, and if you are happy with the results run the full command to execute them.
The nice thing is it's very easy to customize if you have some notions of Python, for example, I didn't want to migrate one account; adding this line just below the for did the trick (the account is named Bad Account in the example):
if account.findtext(ns('name')).strip() == 'Bad Account':
continue
Adding similar simple lines you can filter unwanted users, or groups, or whatever.
And all of this is thanks to:
Thank god for that!
| [1] | A few people will be interested in this, but I think the ones that are will appreciate this link :) (in spanish): http://www.lugmen.org.ar/pipermail/lug-org/2001-December/004482.html |
Plug Computing
by Leandro Lucarella on 2010-01-07 11:20 (updated on 2010-01-07 11:20)- with 0 comment(s)
A plug computer is a small form factor network-attached server for use in the home. It is a lower cost and lower power alternative to a PC-based home server. In effect, a plug computer is a network appliance that is fully enclosed in an AC power plug or AC adapter.
Look at this little bastard (up to 2Ghz CPU, 512MB of RAM + 512MB of flash memory, 1.8" hard drive, gigabit ethernet, SD reader, USB, Wi-fi, Bluetooth, under USD100):

Runs Linux and it's supposed to be fully open source.
I want one! =)
bpython
by Leandro Lucarella on 2009-12-03 11:56 (updated on 2009-12-03 11:56)- with 0 comment(s)
I'll just copy what the home page:
bpython is a fancy interface to the Python interpreter for Unix-like operating systems (I hear it works fine on OS X). It is released under the MIT License. It has the following features:
- In-line syntax highlighting.
- Readline-like autocomplete with suggestions displayed as you type.
- Expected parameter list for any Python function.
- "Rewind" function to pop the last line of code from memory and re-evaluate.
- Send the code you've entered off to a pastebin.
- Save the code you've entered to a file.
- Auto-indentation.

Tucan {up,down}load manager for file hosting sites
by Leandro Lucarella on 2009-10-06 11:02 (updated on 2009-10-06 11:02)- with 0 comment(s)
Meet Tucan:

Tucan is a free and open source application designed for automatic management of downloads and uploads at hosting sites like Rapidshare.
GDC resurrection
by Leandro Lucarella on 2009-10-05 11:31 (updated on 2009-10-05 11:31)- with 0 comment(s)
About a month ago, the GDC newsgroup started to get some activity when Michael P. and Vincenzo Ampolo started working on updating GCD. Yesterday they announced that they successfully merged the DMD frontend 1.038 and 2.015, and a new repository for GDC. They will be hanging on #d.gdc if you have any questions or want to help out.
So great news for the D ecosystem! Kudos for this two brave men! =)