Friday, June 20, 2008

Psyco - massively speed up your Python programs without modifying the source code

http://psyco.sourceforge.net/index.html

"Think of Psyco as a kind of just-in-time (JIT) compiler, a little bit like what exists for other languages, that emit machine code on the fly instead of interpreting your Python program step by step. The difference with the traditional approach to JIT compilers is that Psyco writes several version of the same blocks (a block is a bit of a function), which are optimized by being specialized to some kinds of variables (a "kind" can mean a type, but it is more general). The result is that your unmodified Python programs run faster."
Parallel Python - an awesome distributed computing library for Python

http://www.parallelpython.com/

Parallel Python helps you execute your Python code on multiple cores on the same machine, or on a whole cluster of network machines, all transparently, load balanced and with fault tolerance.

"Features:
  • Parallel execution of python code on SMP and clusters
  • Easy to understand and implement job-based parallelization technique (easy to convert serial application in parallel)
  • Automatic detection of the optimal configuration (by default the number of worker processes is set to the number of effective processors)
  • Dynamic processors allocation (number of worker processes can be changed at runtime)
  • Low overhead for subsequent jobs with the same function (transparent caching is implemented to decrease the overhead)
  • Dynamic load balancing (jobs are distributed between processors at runtime)
  • Fault-tolerance (if one of the nodes fails tasks are rescheduled on others)
  • Auto-discovery of computational resources
  • Dynamic allocation of computational resources (consequence of auto-discovery and fault-tolerance)
  • SHA based authentication for network connections
  • Cross-platform portability and interoperability (Windows, Linux, Unix, Mac OS X)
  • Cross-architecture portability and interoperability (x86, x86-64, etc.)
  • Open source"
I tried it, it's very easy to set up.

A review: http://www.devchix.com/2007/08/03/parallel-python-review-in-a-nutshell-wow/

Tuesday, June 10, 2008

Keep alive SSH session

SSH sessions time out normally if you leave them open for a few minutes. You can fix this by configuring SSH to send keep alive packets from time to time. To do this, add the following line:

ServerAliveInterval 5
in

/etc/ssh/ssh_config

Tuesday, May 20, 2008

Tsung stress testing tool

http://tsung.erlang-projects.org/

"Tsung (formerly known as idx-Tsunami) is a stress testing tool written in the Erlang language. It can currently stress test HTTP, PostgreSQL , SOAP and Jabber/XMPP servers. Tsung is distributed under the GPL license. Tsung can simulate hundreds of simultaneous users on a single system. It can also function in a clustered environment." (wikipedia description)

Friday, May 09, 2008

Convert a pdf to jpg/jpeg files in Hardy Heron

apt-get install imagemagick

then

convert -density 200x200 file.pdf file.jpg

Each page will be saved in a separate jpg file (file-0.jpg, file-1.jpg etc).

Wednesday, May 07, 2008

I used foremost to recover files from my formatted SD CARD under Ubuntu Linux

http://foremost.sourceforge.net/ - free, open source

"Foremost is a console program to recover files based on their headers, footers, and internal data structures. This process is commonly referred to as data carving. Foremost can work on image files, such as those generated by dd, Safeback, Encase, etc, or directly on a drive. The headers and footers can be specified by a configuration file or you can use command line switches to specify built-in file types. These built-in types look at the data structures of a given file format allowing for a more reliable and faster recovery.

Originally developed by the United States Air Force Office of Special Investigations and The Center for Information Systems Security Studies and Research , foremost has been opened to the general public."

Wednesday, April 30, 2008

Manele noi campaign

Manele noi
Manele noi campaign

Wednesday, April 23, 2008

How to convert .daa to .iso in Ubuntu 7.10 (Gutsy)

Use AcetoneISO2 (AcetoneISO). It cannot mount .daa files directly, but you can convert the file to .iso if you click on Conversion > Convert (it will ask if it can automatically install poweriso).

Features:

- Mount automatically ISO, MDF, NRG, BIN, NRG
- A nice interactive display
- Convert2iso / Extract2folder :
*.bin *.mdf *.nrg *.img *.daa *.dmg *.cdi *.b5i *.bwi *.pdi and much more
- Play a DVD Movie Image inside Kaffeine / VLC with cover downloader
- Generate an ISO from a Folder or CD/DVD
- Check MD5 file of an image and/or generate it to a text file
- Encrypt / Decrypt an image
- Split / Merge image in X megabyte
- Compress with High Ratio an image in 7z format
- Rip a PSX cd to *.bin to make it work with epsxe/psx emulators
- Restore a lost CUE file of *.bin *.img
- Convert Mac OS *.dmg to a mountable image
- El-Torito support to create ISO bootable Cd
- Mount an image in a specified folder from the user
- Create a database_of_images
- Extract the Boot Image of a CD/DVD or ISO
- Backup a CD-Audio to a *.bin image
- Service Menu for Konqueror
Loading GeoNames data into MySQL

http://forum.geonames.org/gforum/posts/list/80.page

Get and unzip allCountries.zip and alternateNames.zip.

Create a database named geonames. Select it, then run the following SQL queries:

CREATE TABLE `geonames` (
`geonameid` int(10) unsigned NOT NULL default '0',
`name` varchar(200) NOT NULL default '',
`ansiname` varchar(200) NOT NULL default '',
`alternames` varchar(200) NOT NULL default '',
`latitude` double NOT NULL default '0',
`longitude` double NOT NULL default '0',
`feature_class` char(1) ,
`feature_code` varchar(10) ,
`country_code` char(2),
`cc2` varchar(60),
`admin1_code` varchar(20) default '',
`admin2_code` varchar(80) default '',
`admin3_code` varchar(20) default '',
`admin4_code` varchar(20) default '',
`population` int(11) default '0',
`elevation` int(11) default '0',
`gtopo30` int(11) default '0',
`timezone` varchar(40),
`modification_date` date default '0000-00-00',
PRIMARY KEY (`geonameid`)
) CHARACTER SET utf8 ;


CREATE TABLE `alternateNames` (
`alternateNameId` int(11) NOT NULL,
`geonameid` int(11) NOT NULL,
`isolanguage` varchar(7) NOT NULL,
`alternatename` varchar(200) NOT NULL,
`isPreferredName` enum('','1') NOT NULL,
`isShortName` enum('','1') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


load data infile '/permanent1/www/geonames/allCountries.txt' INTO TABLE geonames;
load data infile '/permanent1/www/geonames/alternateNames.txt' INTO TABLE alternateNames;

(your path will be different)

ALTER TABLE `geonames` ADD INDEX ( `name` );
ALTER TABLE `geonames` ADD INDEX ( `ansiname` );
ALTER TABLE `geonames` ADD INDEX ( `population` );
ALTER TABLE `geonames` ADD INDEX ( `alternames` );

ALTER TABLE `alternateNames` ADD INDEX ( `alternatename` );
ALTER TABLE `alternateNames` ADD INDEX ( `geonameid` );

Monday, April 21, 2008


Accepted in the Google Summer of Code 2008 program

I have been selected to participate in the Google Summer of Code program. I submitted two applications, to the WinLibre and Coppermine Photo Gallery projects. As both of them were selected, I got to choose which one I wanted. It was a difficult decision as I'm getting along very well with the WinLibre guys, but I chose Coppermine in the end. The reason is that the Coppermine project is more in line with my future career, which will involve distributed systems and data mining (~Artificial Intelligence).

Here are my two applications, if you're interested: mtodo and Scaling Coppermine.

Looking forward to try on the T-Shirt :D
Converting .img or .ccd to .iso with Ubuntu 7.10 (Gutsy)

apt-get install ccd2iso

then

ccd2iso myimage.img myimage.iso

or

ccd2iso myimage.ccd myimage.iso

Update:

smarty@smarty:~$ apt-cache search bchunk
bchunk - CD image format conversion from bin/cue to iso/cdr

Friday, April 18, 2008

Convert text/txt files to Palm pdb doc format in Ubuntu 7.10 (Gutsy)

sudo apt-get install txt2pdbdoc

then you can use the converter like this:

txt2pdbdoc pdas pdas.txt pdas.pdb

Where pdas is the title of the new document, pdas.txt is the source text and pdas.pdb is the destination pdb file.

Then you can upload it with jpilot.

Wednesday, April 16, 2008

S.M.A.R.T HDD Monitoring Commands

Drive: WDC WD1600JS-00NCB1
OS: Ubuntu 6.10 (Edgy Eft)

To install:
apt-get install smartmontools

To activate SMART on the HDD:
smartctl -s on -T permissive -d ata /dev/sda

Print all SMART information about the disk:
smartctl -a -d ata /dev/sda

Run a long test on /dev/sda:
smartctl -t long -d ata /dev/sda

Output:

smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 64 minutes for test to complete.
Test will complete after Thu Apr 17 09:55:21 2008

Use smartctl -X to abort test.

Friday, April 11, 2008

Decent (background) colors for mcedit

export MC_COLOR_TABLE="normal=lightgray,black:selected=black,green"

OR

export MC_COLOR_TABLE="$MC_COLOR_TABLE:editnormal=lightgray,black:editbold=yellow,black:editmarked=black,cyan"

Thursday, April 10, 2008

Operating System / OS Development Links

http://www.osdev.org/

http://www.osdev.org/wiki/Main_Page

http://www.nondot.org/sabre/os/articles

http://www.osdever.net/

Monday, April 07, 2008

.asia top level domain "invalid emails" fix for phplist

FYI, if you have a .asia website you need to change the is_email($email) function on line 341 in admin/commonlib/lib/userlib.php

Change it from

$pattern =
"^[\&\'-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ac|ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dev|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|home|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|je|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|loc|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|quipu|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$";

to

$pattern =
"^[\&\'-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ac|ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|asia|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dev|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|home|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|je|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|loc|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|quipu|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$";

I just added asia after as in the list of top level domains.

The above lines are actually very long, but are not shown in Blogger. You can see them correctly if you copy/paste the text of this post.

Wednesday, March 19, 2008

Writing a Compiler - Links

The LLVM Compiler Infrastructure - http://llvm.org/Features.html

How Difficult is it to Write a Compiler? - http://tratt.net/laurie/tech_articles/articles/how_difficult_is_it_to_write_a_compiler

Lex and YACC primer/HOWTO - http://www.ds9a.nl/lex-yacc/cvs/output/lexyacc.html

Compiler Books - http://www.amazon.com/exec/obidos/tg/detail/-/0201100886/002-8651299-9372828?v=glance

Flex (The Fast Lexical Analyzer) - http://www.gnu.org/software/flex/

Bison - GNU parser generator - http://www.gnu.org/software/bison/bison.html

Let's Build a Compiler, by Jack Crenshaw - http://compilers.iecc.com/crenshaw/

http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=amazon+Brinch+Hansens

Grammar (formal language theory) - http://en.wikipedia.org/wiki/Formal_grammar

An Incremental Approach to Compiler Construction - http://scheme2006.cs.uchicago.edu/#anincrementalapproachtocompilerconstruction (pdf link on the right side)

Thursday, March 13, 2008

Compiling clamav-0.92.1 under Ubuntu 6.06 (Dapper)

If you get this error:

checking for gcc bug PR28045... configure: error: your compiler has gcc PR28045 bug, use a different compiler, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28045
add --disable-gcc-vcheck CFLAGS="-O0" to ./configure, like this:

./configure --prefix=/usr/local/clamav-0.92.1/ --disable-gcc-vcheck CFLAGS="-O0"

Thursday, February 21, 2008

Fighting against the Microsoft Tax

"The goal of this blog is to publish news and links about the so called Microsoft Tax. The Microsoft Tax is the “tax” added to almost every computer sold in computer shops today. This tax represents the cost of the preinstalled Windows shipped with most computers, as it is forced upon buyers, which usually don’t have a say in which Operating System is preinstalled on their computers.

The End User License Agreement that comes with Microsoft Windows states that “By using the software, you accept these terms. If you do not accept them, do not use the software. Instead, return it to the retailer for a refund or credit.”. So in theory buyers have the option of returning Windows and getting a refund. In reality, this turns out to be almost impossible."

Tuesday, February 12, 2008

Why oppose the standardization of OOXML

(Following text copied Verbatim from a Slashdot comment)

Many reasons:
1. There is already an ISO standard for this same purpose.
2. There are exclusions in Microsoft's Open Specification Promise, meaning Microsoft can sue over other parties writing implementations of some of the things that the OOXML standard references (ActiveX and VBA are examples).
3. OOXML is designed so that fully-compliant applications can only be written by Microsoft, and mostly-complaint applications can be written by other parties but only to run on a Windows platform. Therefore OOXML is not inter-operable with other applications and especially not with non-Windows platforms, and the whole purpose of making something a standard is to facilitate such inter-operation.
4. OOXML is technically very inferior to the existing standard, ISO 26300. For example, OOXML specifies three different implementations of "a table", instead of just one common to different Office applications. This means that you cannot write a "table handling class" as a library, but instead you have to duplicate equivalent functionality several times over.
5. OOXML includes deliberately mandating bugs (such as dates before 1900) just to pander to errors in Microsoft software.
6. OOXML is controlled by just one corporation
... ISO 26300 belongs to ISO.
7. ISO 26300 already has many implementations by many vendors on multiple platform. OTOH even Office 2007 running on Windows Vista does not implement OOXML ... there is not one compliant application for the OOXML that is being proposed as the standard.
8. ISO 26300 even works with Microsoft Office (up to Office 2003) using a free plugin written by Sun. Microsoft deliberately broke Office 2007 file filters so that this plugin (or any other plugin not written by Microsoft) would not work in Office 2007.
9. ISO 26300 has a compliance test suite. You can use this test suite to make sure a given application works properly with ISO 26300. No such thing exists with OOXML.
10. It makes no sense to have "choice in standards" ... that just costs everybody a lot of money. It is fine to have "choice in applications" ... but ideally they should all read and write to the same standard file format ... and ISO 26300 is by far the best choice for that.