Excel file merge

Néha jól jönne, ha sok külön excel fájlt, egy nagy excel fájlban lehetne látni. Erre vannak mindenféle fizetős eszközök (mind lehúzás), az excel is csinál valamit, de egyik sem az igazi.

Ha programozni akarunk írhatunk rá pár nap alatt egy java programot, ha nem akarunk, akkor a lenti script segíthet…

#!/bin/sh

#environment setup: http://software.krimnet.com/xls2csv/guide-converting-xls-files-csv-with-xls2csv-ubuntu.htm

rm result.csv

cat files.txt | tr -d "\015" | while read XLS_FILE
do
if [ $XLS_FILE == "--EOF--" ]
then
break
fi

echo Processing xls $XLS_FILE
XLS_FILE_SNAME=`basename $XLS_FILE`
cat sheets.txt | tr -d "\015" | while read SHEETS
do
if [ $SHEETS == "--EOF--" ]
then
break
fi

xls2csv -x $XLS_FILE -w $SHEETS -b UTF-8 -c tempsheet.csv
cat tempsheet.csv | grep -v "Projekt azonosító" | LANG=hu_HU.UTF-8 sed "s/^.*\$/${XLS_FILE_SNAME};${SHEETS};&/" | LANG=hu_HU.UTF-8 sed "s/\./,/g" >> result.csv
rm tempsheet.csv
done
done

A files.txt fájlból olvassa a konvertálni kívánt fájlok neveit, –EOF– -ig. Pl: :
a.xls
b.xls
–EOF–

Magyar karakterek irssi alatt

Bizonyos linux-okon az irssi alatt furcsán viselkednek az ékezetes karakterek. A megváltást itt is (általában ilyen esetekben mindig) az UTF-8 jelenti.

Az alábbi 2 beállítást kell tenni:
A putty-ban be kell állítani, hogy UTF-8-at használjon:
Putty Configuration: Window - Translation - Recieved data assumed to be in which character set: UTF-8

Irssi alatt:


Q: How to make UTF-8 support work with irssi?

A: Make sure your terminal supports UTF-8 (for example, xterm -u8). If you use screen, you may have to do screen -U. And in Irssi do /SET term_charset utf-8. (for 0.8.9 and older: /SET term_type utf-8)

(forrás: http://irssi.org/documentation/faq)

Ezek után irssi-be érdemes még mondani egy /save és kész is vagyunk…

Ubuntu too many open files

Ha túl sok a megnyitott fájl (enterprise és java alkalmazások előnyben), akkor az alábbit kell tenni:

Ide kell írni a limiteket:

/etc/security/limits.conf

Az alábbi módon:

* soft nofile 65535
* hard nofile 65535

Ezek után ellenőrizhetjük a beállításunkat:

ulimit -n

Ha 1024-et ír ki a 65535 helyett, akkor annak az az oka, hogy nincs benn a megfelelő pam modul, amit az alábbi módon tudunk betenni.

/etc/pam.d/common-session

session required pam_limits.so

Levélküldés tesztelése

Manapság már nem nagy dolog olyan alkalmazást fejleszteni ami emailt tud küldeni. Ellenben fejlesztés alatt egyáltalán nem biztos, hogy szerencsés, ha a valódi felhasználók a fejlesztők viccesebbnél viccesebb tárgyú leveleit kapják kézhez (pl. szerződését díjrendezettség hiányában töröltük, stb). Ezt elkerülendő lehet mindenféle if-eket írni a kódba, de ez sajnos megváltoztatja a program működését, és ezzel a metódussal elég sok potenciális hibaforrást elrejthetünk a kódban. Célszerűbb csinálni egy saját smtp szervert, ami e leveleket fogadja, de nem küldi ki, hanem lementi egy könyvtárba.

Erre a legegyszerűbb megoldás linux alatt a fakemail nevű program, ami a phytonnal együtt jön.

Tehát a telepítés

sudo apt-get install python

Az indítás (pl. init.d-ből)

sudo su -c ‘fakemail.py –host=voji.hu –port=10025 –path=/var/samba/servers/smtp –background’ voji

A lényeg a ‘ ‘ jelek közötti rész, a su -c csak azért felel, hogy voji userként fusson a szerver.

A paraméterek:

  • host – a cím, ahol a szerver fut
  • port – port ahol hallgatózik majd az smtp szerverünk
  • path – könyvtár ahova a leveleket lementi amit a szerveren keresztül küldenek.
  • background – háttérben fusson, ne a konzolon

Vnc ubuntu alatt

Sokszor kell, mindig elfelejtem, most már leírom ide is:

Telepítés:
sudo apt-get install vnc4server

ezekután elindítjuk a vnc4servert (létrehoz mindenféle konfigokat, bekéri a jelszót, stb)
vnc4server

ezekután lelőjjük:
vnc4server -kill :1

kicsit átírjuk a konfigurációt ami az alábbi helyen található:
nano ~/.vnc/xstartup

A fájl tartalma ez legyen:
#!/bin/sh
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

Biztos ami biztos adjunk jogot az xinitrc-re:
sudo chmod 755 /etc/X11/xinit/xinitrc

Csatlakozhatunk a host:5901 porton… (ahány példányt indítunk annyiszot emelkedik a portszám 1-el)

Az UltraVNC ha kis porotot adunk meg alapból hozzáad 5900-at, tehát ott elég megadni így: host:1