2010-12-15

Python Component dan IDE yang penting

Buat catetan gua biar tidak lupa .. ini daftar component python yang perlu dan kudu ada

 

1. python-pymssql : buat connecting ke SQL Server dan Sybase

2. python-psycopg2 : Buat connecting ke PostgreSQL 8x

3. python-sqlalchemy : SQL Toolkit python dan ORM 

4. SPE ( Stani Python Editor ) dan atau Ulipad (Punya fungsi "Column Mode" seperti UltraEDIT)

5. formAlchemy : HTML Form generator

6. webpy : Buat bikin web application kecil kecilan

 

Semuanya bisa didapet lewat sudo apt-get  di Debian / Ubuntu .. atau lewat easy_install . dan ada versi windowsnya

 

 

 

 

2010-08-31

Backup Folder using Python (tarfile)

Backup folder pake scripting ? python bisa !

syntaxnya kurang lebih seperti ini 

 

#! /usr/bin/env python

#coding=utf-8

import tarfile

t = tarfile.open(name = "/home/zergling/backup.tar.gz", mode = 'w:gz')

t.add("/home/zergling/DFiles/")

t.close()   

Script diatas membackup semua file didalam folder /home/zergling.DFiles ke tar.gz

2010-08-18

[troubleshoot] Error connecting to MSSQL 2005 using python-pymssql

Pernah ketemu error seperti ini  "Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier" saat connect ke  MS SQL 2005 menggunakan Python-PyMSSQL?

Ini solusinya ... semua string mesti di cast ke  nvarchar didalam querynya...
ini kutipannya
http://pymssql.sourceforge.net/faq.php
( "It means that SQL Server is unable to send Unicode data to pymssql, because of shortcomings of DB-Library for C. You have to CAST or CONVERT the data to equivalent NVARCHAR data type, which does not exhibit this behaviour.") 

ini contohnya menggunakan DB dari SAP B1

#!/user/bin/env python

import pymssql
 
conn = pymssql.connect(host='192.168.1.9', user='sa', password='xxxxxx', database='TestDB')
cur = conn.cursor()
cur.execute(' select top 30 docnum, convert(nvarchar, cardcode) , doctotal   \
                from dbo.oinv a   ')
row = cur.fetchall()
print row()

#print row
conn.close()





Powered by ScribeFire.

2010-08-10

10 Tool Wajib di Linux versi gua

Dari pengalaman gua main dilinux (Ubuntu)  ini 10 Tool wajib yang mesti kudu ada

1. Ulipad : Text editor yang cukup handal .. buat ngoding dari ASP, T-SQL , ampe Python ... ada fungsi "Column Mode" seperti di ultraedit
2. Datastudio : Ini tools yang ga bisa lepas dari gua, dan teramat penting (soalnya udah ga ada lagi :D) , buat admin database  ( MSSQL , PostGresSQL , MySQL), dari ngoding Store procedure sampe export import data
3. TSClient + VNCViewer : Ini buat remote destkop ke server server windows.
4. TeamViewer : Buat ngeremote komputer dari rumah
5. SSH Client : buat mainin server-server Linux / atau user yang udah pake Linux
6. OpenOffice : Nyatet, corat-coret, dan bikin laporan sederhana ( dengan bantuan OO Base + Sun Report builder)
7. DownThemAll (Plugin Firefox) : Apalagi kalau bukan buat nyedot file
8. Mercurial + Google Code : buat ngoding yang serius biar ga ilang / lupa
9. Python : Untuk mempermudah administrasi lintas platform, plus ngoding ngoding ringan
10. Pidgin : Buat cuap cuap .. sms-an dan transfer data di internal dan external network



Powered by ScribeFire.

2010-07-02

IredMail + Openfire

Lanjutan posting sebelumnya ... sekarang gua mau nambahkan OpenFire di Server IredMail gua ..  
Untuk debian Lenny ada sedikit tricky ... setelah install openfire.deb  .. install patchnya, bisa didapet disini  http://steffenzieger.de/index.php/2009/03/25/install-openfire-on-debian-lenny/

Di IredMail .. semua port kecuali email di blok... untuk aktifin XMPP tinggal edit di 
    sudo nano /etc/default/iptables

Unremark yang xmpp .. dan tambahin port 9090 (Untuk openfire Admin)
Setelah selesai , install plugin export/importnya .. kemudian tinggal nambahin user dan buddy list di openfire

caranya :
 
gua siapin data usernya nya dulu (ambil dari CSV untuk import ke IredMail). gua masukkin ke postgreSQL database  untuk manipulasi datanya. 
 
gua create database  dengan nama User_export_temp

create database user_export_temp;
create table export_user();
alter table  export_user add column domain_name varchar(30);
alter table  export_user add column usercode  varchar(30);
alter table  export_user add column userpassword varchar(30);
alter table  export_user add column username  varchar(30);
alter table  export_user add column groupuser varchar(30); 
/* Insert data dari CSV yang udah gua modif sesuai table diatas */

copy user_export_temp from '/home/yoshizuki/myUser.csv' csv;  

kemudian gua create python script untuk retrieve data tersebut kemudian diproses sesuai dengan template import user dari Openfire. Untuk buddy list gua asumsikan semua user yang ada saling terhubung dan dipisahin berdasarkan group bagian aja.

#!/usr/bin/python

import psycopg2, sys,os

outp = file("user.xml","w")

conn = psycopg2.connect("\
dbname='testing'\
user='postgres'\
host='localhost'\
password='postgres' ");
d = conn.cursor()
d.execute (" select a.usercode , \
a.userpasswd,\
a.username ,\
a.usercode || '@' || a.domain_name \
    from tmp_data as a \
    order by a.usercode ")

c = conn.cursor()

records = d.fetchall()
outp.write ("<?xml version='1.0' encoding='UTF-8'?>\n")
outp.write ("<Openfire>\n")

for record in records:
        outp.write("\n<User>")
        outp.write("<Username>" +  record[0] +"</Username><Password/>\n")
        outp.write("<Email>" +  record[3] + "</Email>\n")
        outp.write("<Name>" +  record[2] + "</Name>\n")
        outp.write("<CreationDate>1277954250096</CreationDate>\n")
        outp.write("<ModifiedDate>1277954250096</ModifiedDate>\n")
        outp.write("<Roster>\n")
        
        c.execute("select a.usercode , \
   a.userpasswd, \
            a.username , \
            a.usercode || '@' || a.domainname , \
            b.usercode || '@' || b.domainname , \
            b.username , \
            b.groupname  \
            from export_user as a \
            inner join export_user as b on a.usercode <> b.usercode \
            where a.usercode = '%s' \
            order by a.usercode , b.usercode      " %record[0])
        records2 = c.fetchall()
        for record2 in records2:
            outp.write ('<Item jid="' + record2[4] + '"  askstatus="-1" recvstatus="-1" substatus="3" name="'+ record2[5] + '" >\n')
            outp.write ('<Group>' + record2[6] + '</Group></Item>\n')   
        outp.write("</Roster>\n")
        outp.write("</User>")
outp.write ("</Openfire>\n")        
outp.close()

script ini akan menghasilkan file user.xml, nah file ini yang akan gua upload melalui plugin import user di Openfire..

restart openfire 
sudo /etc/init.d/openfire restart

selesai... semua user  sudah terhubung lewat email dan XMPP ... 

 


IredMail --> import user via CSV

Di IredMail ada fasilitas import user dengan format csv...  templatenya  sebagai berikut

[domain name],[user name], [password],[common name], [quota] , [group]

Untuk  [quota] satuannya dalam byte .... 

Daftar usernya kebetulan  ada di zimbra server gua, tinggal gua query lewat OpenOffice.base untuk selanjutnya dicopy  ke OpenOffice.calc dan disave kedalam CSV .. sesuai dengan template nya

install python dan komponennnya

sudo apt-get install python2.5 python-ldap

kemudian masuk ke dalam direktory iredMail/tools
buka file create_mail_user_OpenLDAP.py
sudo nano create_mail_user_OpenLDAP.py

edit BASEDN , BINDDN, dan BINDPW sesuai dengan konfigurasi IredMail yang ada

jalankan sudo python create_mail_user_OpenLDAP.py csvName.csv

nanti akan keluar file csvName.csv.ldif

masukkan file itu ke LDAP

sudo ldapadd -x -D 'cn=Manager, dc=example,dc=com' -W -f  csvName.csv.ldif  (Kalau ada user yang sama di IredMail akan keluar error)

coba cek di https://[ip server]/iredadmin

semua user harusnya sudah masuk semua di daftar user.




  

Instalasi IredMail

Instalasi IredMail sangat mudah sekali ( kalau punya koneksi Internet :D)  .... 
Gua coba pake Debian Lenny NetInstal di PowerEdge SC440

Gua install Debian dulu .. dengan konfigurasi kosong... tanpa gui... package tambahan yang diinstall hanya  

sudo apt-get install build-essential sudo openssh-server htop nmap mc lynx sun-java6-jdk sun-java6-jre

downlaod IredMail nya  

Kemudian ektrak file  iRedMailnya 

masuk ke folder pkgs
jalankan  sudo bash get_all.sh

setelah itu jalankan sudo bash iRedMail.sh

Ikutin petunjuknya ... setelah selesai  bisa langsung digunakan .... (kurang lebih 1 Jam ... udah termasuk waktu donload package dan install debian)

Tinggal cek disini 

http://[ip server]/mail  --> roundcubemail
http://[ip server]/webmail --> roundcubemail 
https://[ip server]/iredadmin --> untuk adminnya 
https://[ip server]/ldap --> Settingan OpenLDAP







2010-06-21

Mercurial with nautilus

Download dulu packagenya 

sudo apt-get install tortoisehg tortoisehg-nautilus

restart komputer

kemudian gua clone project gua dari code.google.com 


tinggal buka nautilus 

pilih menu tortoiseHQ > clone 

ikutin petunjuknya ...





2010-06-16

Send Message via XMPP/Jabber/Googgle Talk using Python

Di python kita juga bisa kirim message ke user / friends via Google Talk atau messenger lain yang berbasis XMPP  ( Jabberd, openfire, Ejabberd). Scriptnya cukup sederhana. Sample ini gua udah test lewat google dan Openfire dikantor

Download / install dulu packagenya
sudo apt-get install python-xmpp

Kemudian ketik
nano test01.py

isi dengan

FROM_JABBER_ID = "myname@openfire"
JABBER_PASS = "123456"
JABBER_PORT = "52222"

JABBER_SERVER = "IPserver_openfire_jabber"
TO_JABBER_ID = "friends@openfire"

jid=xmpp.protocol.JID(FROM_JABBER_ID)
cl=xmpp.Client(jid.getDomain(),debug=[])
if not cl.connect((JABBER_SERVER,
JABBER_PORT )):
    raise IOError('Can not connect to server.')
if not cl.auth(jid.getNode(),JABBER_PASS):
    raise IOError('Can not auth with server.')

cl.send( xmpp.Message( TO_JABBER_ID ,"Hello World again" ) )
cl.disconnect()


Kemudian run
python test.py

selesai



Powered by ScribeFire.





, , ,

2010-06-08

Sending Email with attachment using Python

nyari di google akhirnya nemu ini ... ternyata simple juga buat attach email pake python ... library -nya juga standar.. ga perlu install lagi.. source aslinya liat disini

#!/usr/bin/python

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders
import os

gmail_user = "gmail.account@gmail.com"
gmail_pwd = "gmail_password"

def mail(to, subject, text, attach):
   msg = MIMEMultipart()

   msg['From'] = gmail_user
   msg['To'] = to
   msg['Subject'] = subject

   msg.attach(MIMEText(text))

   part = MIMEBase('application', 'octet-stream')
   part.set_payload(open(attach, 'rb').read())
   Encoders.encode_base64(part)
   part.add_header('Content-Disposition',
           'attachment; filename="%s"' % os.path.basename(attach))
   msg.attach(part)

   mailServer = smtplib.SMTP("smtp.gmail.com", 587)
   mailServer.ehlo()
   mailServer.starttls()
   mailServer.ehlo()
   mailServer.login(gmail_user, gmail_pwd)
   mailServer.sendmail(gmail_user, to, msg.as_string())
   # Should be mailServer.quit(), but that crashes...
   mailServer.close()

mail("destination@somewhere.outhere",
   "Hello from python!",
   "This is a email sent with python",
   "filename_attachment")





Powered by ScribeFire.

2010-06-07

export Query dari SQL server ke CSV via Python+pymssql

Ternyata export import data lebih mudah di linux dibanding Windows, beberapa hari ini nyari caranya ternyata sangat mudah via Linux...
Pertama install dulu python dan pymssql

sudo apt-get install python2.5 python-pymssql python-csv

test dulu diterminal seperti ini

python
>>>import pymssql ,csv
>>>


kalau tidak ada error berarti packagenya sudah terinstall dengan baik.. selanjutnya ngoding, buat file test.py
##############
# test.py          #
##############
import pymssql , csv
conn = pymssql.connect(host='IP SQL server' , user='sa', password='password sa', database='nama databasenya') # connection to database
cur = conn.cursor() # set cursor
writer = csv.writer(open('export.csv','wb')) # Declaration for CSV file and CSV Object
cur.execute( 'select * from table1 ') # Execute query
row = cur.fetchall(row) # Retrieve result in tuple object
writer.writerows(row) # Write row Object into csv file
conn.close # close database connection


Selesai.. mantab kan ... cuman < 10 baris doank ... hehehehehehe









, , ,



Powered by ScribeFire.

2010-05-27

extract audio cd ke mp3 di ubuntu

install softwarenya :
sudo apt-get install sound-juicer
nanti di menu sound akan muncul shortcut Audio CD extractor. Kalo suka format ogg, flac, dsb ga perlu macem2 karena secara default dah ada. Nah kalo mau konvert ke mp3 ada bbrp tahapannya

1. musti install file yg nyupport konversi mp3 :
sudo apt-get install gstreamer0.10-plugins-ugly-multiverse
Eh td gw bilang ada beberapa tahapan ya? wakakak nggak, cman satu itu aja. dah selese :P
setelah proses instalasi selesai, akan muncul opsi tambahan yaitu mp3 di Edit-Preferences



Kalo kita ingin merubah bitratenya, ada beberapa tahapan :
  1. klik edit profile, akan muncul :



  2. Mau Edit atau buat baru terserah, disini gw buat baru aja



  3. Edit isinya, deskripsi boleh diisi kalo mau :P, kemudian isikan
    audio/x-raw-int,rate=44100,channels=2 ! lame name=enc bitrate=320 ! d3v2mux
    di bagian GStreamer pipeline, bitrate ini yg bikin audionya jd bermutu tinggi, tapi file-nya ya jadi gede jugak. Semangkin tinggi bitrate, akan semangkin bagus mutu suaranya brur. Rubah File Extension menjadi mp3 dan klik checkbox aktip. selese deh! Tinggal masukkin audio cd trus diconvert .. sesuai dengan pilihan di preferences sound juicer/Audio CD Extractor



2010-02-19

OpenOffice.org Base 3.2 + Sun Report Builder + Database Server = Simple & powerfull report

Thanks to OpenOffice.org, sekarang bisa buat report sederhana lebih mudah dan cepat... databasenya bisa apa saja asal support JDBC atau ODBC ( Untuk mySQL kl tidak salah ada connector langsung)

Kita coba menggunakan database SQL server 2005 dikantor, dengan OpenOffice 3.2 di LinuxMint Gloria

Pertama cari JDBC untuk SQL server
Mudah banget ..... tinggal menggunakan JDBC (JTDS) [download di sini ],
Kemudian buka OpenOffice Masuk ke menu -> Tools -> Option -> Java
add class path -> pilih file jtdsnya ....



Kedua connect ke database server
Caranya Buka OpenOffice Base kemudian ikutin wizardnya ... pilih JDBC
kemudian isi seperti dibawah ini (Sesuaikan dengan server )



Kemudian isikan sql server user dan passwordnya



Connection sudah selesai, sekarang persiapan untuk report

Download Sun Report Builder

Buka OpenOffice.org , Tools -> Extension manager -> File Sun report Builder (*.oxt)
restart openOfficenya

Buka OpenOffice Base .. Buka database yang tadi

Pilih report -> Design View akan keluar sun report buildernya



Tinggal click n Drag ke reportnya ....

Tinggal atur saja mbatiknya ...





Powered by ScribeFire.

2010-02-08

Komputer yang sudah pernah ditest menggunakan LinuxMint (Helena, Gloria)

 Daftar komputer yang sudah gua install dengan LinuxMint,

Server :
DELL PowerEdge SC 440 , 430 : Jalan Mulus, tanpa trouble

Desktop :
DELL Optiplex 210L,170L,330,360 : Semua berjalan Mulus ...dengan Memory minimal 512Mb
Compaq CQ2030L,2035D (Atom) : Semua kebaca, kecuali yang seri CQ2030L soundcardnya masih trouble ... kedetect tapi tidak keluar suaranya (udah diotak atik alsaconf masih bisu :( ) ....

Laptop / Netbook :

DELL Latitude D510 : Mulus lus lus lus ....
Sony Vaio CR220E : Di Gloria, MotionEye dan Compiz tidak jalan , Di Helena masih trouble di motionEye .. mesti otak atik lagi.....
DELL Inspiron S10 Mini  : Mulus dengan Helena, VideoCam, Bluetooth, wifi kedetect semua ...
DELL Inspiron S10s Mini  : Mulus dengan Helena, VideoCam, Bluetooth, wifi kedetect semua ...
Compaq B1200  : Mulus ... bluetooth masih trouble ....
Axioo (Seri tidak tahu) : Wifi ga kedetect, chipsetnya VIA
LACIN (Laptop China)  : Wifi ga kedetect (lspci outputnya RAlink ), lain lain mulus...











Powered by ScribeFire.

Membuat Linux Live CD di FlashDisk

Bingung dengan distro Linux yang banyak banget? pengen nyobain tapi males burn ke CD? Mesti coba tools yang namanya UnetBootIn, buat bikin Flashdisk berfungsi sebagai Live CD ..
Di Ubuntu tinggal ketik

sudo apt-get install unetbootin

setelah selesai jalankan sudo unetbootin di terminal, nanti akan muncul tampilan seperti ini



Tinggal Pilih ISO nya atau langsung donlod Live berdasarkan distribusinya ....

Note : Flashdisk mesti format FAT32

Enjoy ....




Powered by ScribeFire.