Monday, October 06, 2008

Linux/Ubuntu Shift keyboard bug when using VMware Player or Workstation

Symptom: "your keyboard outside the vm client stops working correctly no capslock, shift nor control is working" - https://bugs.launchpad.net/ubuntu/+bug/187165 Same bug here also: https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/195982

Fix: Run the command setxkbmap in a terminal window

Update: Seems to be fixed in VMware Workstation 6?

Tuesday, September 16, 2008

2008 GSOC Participants

View Larger Map

Monday, September 08, 2008

Connecting Ubuntu Linux 8.04 (Hardy) to eduroam (INHOLLAND Diemen)

1) Make sure you are root (sudo su)

2) Create a file called /etc/wpa_supplicant/wpa_supplicant.conf and add the following lines in it:

network={
ssid="eduroam"
scan_ssid=1
key_mgmt=WPA-EAP
eap=PEAP
identity="STUDENT_ID@student.inholland.nl"
password="STUDENT_PASSWORD"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
subject_match="CN=radius.inholland.nl"
}

Replace STUDENT_ID with your student number and STUDENT_PASSWORD with our password. If you copy/paste from this document, make sure that the quotes (“) above are real quotes, and not a character that looks like a quote.

3) Run the following command (as root):

sudo wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dwext

where wlan0 is your wireless interface. Don't close the terminal.

4) Run dhclient wlan0 as root in another terminal, where wlan0 is your wireless interface:

sudo dhclient wlan0

After you get an IP address you can close this terminal, but leave the other one open.

Happy browsing!

Troubleshooting:
If you get certificate error problems, make sure that the contents of /etc/ssl/certs/ca.pem is the same as the file located here: http://secure.globalsign.net/cacert/sureserverEDU.pem

Friday, September 05, 2008

Too many open files - change ulimit values in Ubuntu 8.04 (Hardy Heron)

1) Add line
* hard nofile 51200

to /etc/security/limits.conf

Note:
The * means every user except root
Note: 51200 represents the number of concurrent open files. This number must by a multiple of 1024

2) Add line
session required pam_limits.so

to /etc/pam.d/common-session

3) Stop all processes that need the new limit

4) Restart SSH server

5) Login again

6) Run ulimit -a to check the values

7) If the values haven't changed, reboot and try step 6 again

8) Start new processes from command line

Upgrade Ubuntu 6.10 (Edgy Eft) to 7.04 (Feisty Fawn) to 7.10 (Gutsy Gibbon), then to 8.04 (Hardy Heron)

From 6.10 to 7.04:

sed -e 's/\edgy/feisty/g' -i /etc/apt/sources.list
apt-get update && apt-get upgrade && apt-get dist-upgrade


From 7.04 to 7.10:

apt-get install update-manager-core
do-release-upgrade


From 7.10 to 8.04.1:

do-release-upgrade

Thursday, September 04, 2008

Remove/delete/clean .svn folders

find /absolute/path/to/folder -name ".svn" -exec rm -rf {} \;

Tuesday, September 02, 2008

VPN Server + NAT on Ubuntu

(should work with Microsoft Windows Vista/XP and Apple Mac OS Panther/Tiger/Leopard etc clients also)

Tested on Ubuntu Hardy (8.04)

1) Install pptpd

sudo apt-get install pptpd


2) Edit /etc/pptpd.conf and add the following two lines:

localip 10.2.2.1
remoteip 10.2.2.2-5

localip is the address of t he VPN (ppp0) interface on the VPN server (this interface will be create automatically).
remoteip is the range of IP addresses that will be given to the VPN clients

Please add an empty newline at the end of /etc/pptpd.conf, or the daemon will hang.

3) Edit /etc/ppp/chap-secrets and add one line for each VPN user:

USERNAME pptpd PASSWORD *


where USERNAME is the username, pptpd should remain as it is, and PASSWORD is the password. The * at the end means that this particular user can connect to the VPN server from any IP address. You couldd replace it with an ip address range:

"Any following words on the same line are taken to be a list of acceptable IP addresses for that client. If there are only 3 words on the line, or if the first word is "-", then all IP addresses are disallowed. To allow any address, use "*". A word starting with "!" indicates that the specified address is not acceptable. An address may be followed by "/" and a number n, to indicate a whole subnet, i.e. all addresses which have the same value in the most significant n bits. In this form, the address may be followed by a plus sign ("+") to indicate that one address from the subnet is authorized, based on the ppp network interface unit number in use. In this case, the host part of the address will be set to the unit number plus one." (pptpd manual)

4) Add the following lines in /etc/rc.local

# pptp VPN NAT
iptables -t nat -A POSTROUTING -s 10.2.2.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 10.2.2.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 10.2.2.0/24 -m state --state ESTABLISHED,RELATED -i eth0 -j ACCEPT
route add -net 10.2.2.0 netmask 255.255.255.0 dev ppp0
where eth0 is your "Internet" interface on the server, the one connected directly to the Internet.

5) Start pptpd

/etc/init.d/pptpd stop
/etc/init.d/pptpd start


6) Run /etc/rc.local

7) If you run a firewall on the server make sure to open port 1723. I do this with the following command:
# pptp VPN
/sbin/iptables -A extern -p tcp --dport 1723 -j RETURN
Notice that I am using a chain named "extern". This is probably not the case at your end.

8) Connect from your VPN client

Friday, August 08, 2008

MySQL JDBC Memory Usage on Large ResultSet

MySQL JDBC Memory Usage on Large ResultSet

Wednesday, August 06, 2008

Apache Velocity Servlets + UTF-8 = love

If you have problems outputting UTF-8 with Apache Velocity, create a file called velocity.properties under the WEB-INF folder and add the following 2 lines:

input.encoding=utf-8
output.encoding=utf-8
XML-RPC for PHP Library + UTF-8 = love

If you have problems with the XML-RPC for PHP library (http://phpxmlrpc.sourceforge.net/) and UTF-8, please be advised that in xmlrpc.inc you will find the following lines:

// The charset encoding used by the server for received messages and
// by the client for received responses when received charset cannot be determined
// or is not supported
$GLOBALS['xmlrpc_defencoding']='UTF-8';

// The encoding used internally by PHP.
// String values received as xml will be converted to this, and php strings will be converted to xml
// as if having been coded with this
GLOBALS['xmlrpc_internalencoding']='ISO-8859-1';

As you can see, internally everything seems to be converted to ISO-8859-1, no idea why. If you change this to
$GLOBALS['xmlrpc_internalencoding']='UTF-8';
you will be able to use UTF-8 correctly with the library.

Monday, August 04, 2008

MySQL + PHPMyAdmin + UTF-8 = love

Add the following to the [mysqld] section in /etc/mysql/my.cnf:

character_set_server = utf8
collation_server = utf8_general_ci
default-character-set=utf8

Adding AddDefaultCharset UTF-8 to /etc/apache2/conf.d/charset also helps with some web apps.

Tested on Ubuntu 8.04 Hardy

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` );