Jumat, 31 Desember 2010

Python : Membuat GUI dengan PyGTK

    Berbagai macam toolkit GUI untuk python diantaranya tk, wxPython, PyGTK, dan lain-lain. Kali ini source code menggunakan PyGTK. Kelebihan PyGTK adalah toolkit ini melakukan manajemen memory GUI secara otomatis, sehingga memudahkan programmer tanpa perlu untuk bersusah payah dalam urusan memanajemen memori. Di bawah ini adalah source code untuk menampilkan tombol dengan text "Hello world". Jika tombol ditekan maka pada commandline akan tercetak "Hello world".

    1   #!/usr/bin/env python
    2
    3   # example helloworld.py
    4
    5   import pygtk
    6   pygtk.require('2.0')
    7   import gtk
    8
    9   class HelloWorld:
   10
   11       # This is a callback function. The data arguments are ignored
   12       # in this example. More on callbacks below.
   13       def hello(self, widget, data=None):
   14           print "Hello World"
   15
   16       def delete_event(self, widget, event, data=None):
   17           # If you return FALSE in the "delete_event" signal handler,
   18           # GTK will emit the "destroy" signal. Returning TRUE means
   19           # you don't want the window to be destroyed.
   20           # This is useful for popping up 'are you sure you want to quit?'
   21           # type dialogs.
   22           print "delete event occurred"
   23
   24           # Change FALSE to TRUE and the main window will not be destroyed
   25           # with a "delete_event".
   26           return False
   27
   28       # Another callback
   29       def destroy(self, widget, data=None):
   30           gtk.main_quit()
   31
   32       def __init__(self):
   33           # create a new window
   34           self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
   35
   36           # When the window is given the "delete_event" signal (this is given
   37           # by the window manager, usually by the "close" option, or on the
   38           # titlebar), we ask it to call the delete_event () function
   39           # as defined above. The data passed to the callback
   40           # function is NULL and is ignored in the callback function.
   41           self.window.connect("delete_event", self.delete_event)
   42
   43           # Here we connect the "destroy" event to a signal handler.
   44           # This event occurs when we call gtk_widget_destroy() on the window,
   45           # or if we return FALSE in the "delete_event" callback.
   46           self.window.connect("destroy", self.destroy)
   47
   48           # Sets the border width of the window.
   49           self.window.set_border_width(10)
   50
   51           # Creates a new button with the label "Hello World".
   52           self.button = gtk.Button("Hello World")
   53
   54           # When the button receives the "clicked" signal, it will call the
   55           # function hello() passing it None as its argument.  The hello()
   56           # function is defined above.
   57           self.button.connect("clicked", self.hello, None)
   58
   59           # This will cause the window to be destroyed by calling
   60           # gtk_widget_destroy(window) when "clicked".  Again, the destroy
   61           # signal could come from here, or the window manager.
   62           self.button.connect_object("clicked", gtk.Widget.destroy, self.window)
   63
   64           # This packs the button into the window (a GTK container).
   65           self.window.add(self.button)
   66
   67           # The final step is to display this newly created widget.
   68           self.button.show()
   69
   70           # and the window
   71           self.window.show()
   72
   73       def main(self):
   74           # All PyGTK applications must have a gtk.main(). Control ends here
   75           # and waits for an event to occur (like a key press or mouse event).
   76           gtk.main()
   77
   78   # If the program is run directly or passed as an argument to the python
   79   # interpreter then create a HelloWorld instance and show it
   80   if __name__ == "__main__":
   81       hello = HelloWorld()
   82       hello.main()

oleh : alvin
source code : Pygtk tutorial 2.0 by John Finlay
READ MORE - Python : Membuat GUI dengan PyGTK

Menampilkan bilangan fibonacci dengan python

Berikut ini adalah source code python untuk menampilkan bilangan fibonacci.

angka = input("masukkan limit deret fibonacci (angka) = ")
fibo = [0,1]
for a in range(angka):
    if a>1:
        print fibo[a-1] + fibo[a-2],
        fibo.append(fibo[a-1] + fibo[a-2])
    else:
        print fibo[a],

oleh : alvin
READ MORE - Menampilkan bilangan fibonacci dengan python

Berselancar secara anonymous dan secure menggunakan vpn

     VPN merupakan sebuah protocol yang memungkinkan kita untuk melakukan koneksi secara aman antar host ke host, seolah-olah kita mempunyai private line pada jaringan internet. VPN yang akan saya bahas kali ini adalah server-server vpn yang dapat difungsikan untuk browsing web secara anonymous dan secure, dan juga membypass firewall-firewall yang memblock website yang tidak boleh dikunjungi atau dilarang pemerintah. Misalnya saja, menggunakan vpn untuk mengunjungi situs veoh.com yang secara default tidak bisa diakses oleh pengguna internet indonesia secara langsung.

1. Your-Freedom.net

     Vpn server yang satu ini merupakan yang paling bagus yang pernah saya coba. Karena vpn server satu ini mendukung berbagai platform yaitu windows, linux, MacOS. Berhubung saya menggunakan operating system linux, kelebihan ini sangat berguna sekali. Sebelum menggunakan layanan ini, user harus melakukan registrasi terlebih dahulu pada website nya, lalu mendownload software client. Koneksi menggunakan software ini lumayan, tetapi untuk freeuser hanya dibatasi sampai 10 koneksi saja, dan freeuser hanya dapat menggunakan beberapa server.

2. Ultravpn

    Ultravpn juga menyediakan layanan koneksi vpn, hanya saja tidak mendukung platform linux. Bagi pengguna windows tidak akan kesulitan dalam melakukan instalasinya. Koneksi menggunakan Ultra vpn server dalam segi kecepatan relatif cepat ketika siang hari. Namun bagi freeuser koneksi dibatasi hanya 10 koneksi per ip. Sama seperti Freedom vpn server, user harus registrasi terlebih dahulu di website ultravpn.

Untuk saat ini hanya dua buah serrver vpn server saja yang baru saya review. Kedepannya post ini akan saya update. Silahkan beri komentar atau referensi vpn server lainnya...

oleh : alvin
READ MORE - Berselancar secara anonymous dan secure menggunakan vpn

Instalasi openssh-server pada ubuntu




     Openssh server merupakann sebuah software yang sering digunakan untuk melakukan koneksi remmote dari client ke server. Untuk koneksi ke server yang telah terinstall Openssh-server, client dapat menggunakan openssh-client yang dapat dijalankan melalui command line dengan sintaks yang secara umum seperti dibawah ini :
    ssh username@hostname
contohnya :
    ssh it_support@telkom.net
Instalasi openssh-server pada Ubuntu atau distro debian lainnya sangat mudah langkahnya. Pertama-tama ketik pada console/terminal windows :
    sudo apt-get install oppenssh-server
Setelah terinstall, service opensssh-server harus di start terlebih dahulu dengan cara :
    sudo service ssh start
Service openssh-server akan running dan memantau port 22 jika terjadi koneksi ssh dari client. Untuk mengkonfigurasi ssh server lebih lanjut, modifikasi dapat dilakukan pada file "sshd_config" yang terletak pada folder /etc/ssh. Contoh file konfigurasinya dibawah ini :

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile    %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
READ MORE - Instalasi openssh-server pada ubuntu

Me-resume download dari megaupload atau rapidshare

     Megaupload dan Rapidshare merupakan situs file sharing yang lumayan populer. Tetapi banyak kendala untuk mendownload berbagai media dari situs ini sebagai free user. Free user hanya diizinkan untuk melakukan satu koneksi per ip ke server selama selang waktu yang lumayan lama. Juga yang momok bagi pengguna free adalah download tidak dapat di resume kembali. Saya sempat mencoba menganalisa berbagai macam cara yang diinternet untuk mengatasi masalah ini. Diantaranya kita dapat menggunakan layanan rapidleech. Kekurangan rapidleech adalah kita harus terganggu oleh banyaknya iklan atau server rapidleech yang sering down. Dalam tulisan ini saya akan menerangkan bagaimana cara lain untuk meresume download tanpa menggunakan rapidleech.
     Biasanya ketika akan mendownload file dari Megaupload atau Rapidshare, kita harus menunggu countdown time link download. Countdown ini merupakan aktivasi session bagi free user untuk mendownload.



Misalnya saja anda mempause download dan ingin meresume kembali download tersebut. Anda harus melakukan aktivasi session ulang agar ip anda diizinkan untuk melakukan koneksi



Untuk melakukan aktivasi session, free user harus menunggu paling sedikit 30 menit. Jika sudah 30 menit atau lebih, barulah kita melakukan aktivasi session ulang dengan cara mengunjungi reference link download tersebut. Tunggu sampai waktu countdown selesai, maka akan muncul tulisan "Download now", tetapi jangan klik tulisan/link tersebut. Maka session download akan tercipta dan anda dapat meresume download yang tertunda lewat download manager.

oleh : alvin
READ MORE - Me-resume download dari megaupload atau rapidshare

Me-resume kembali download dari mediafire dengan DownThemAll

      Situs mediafire terkenal karena kelebihannya dalam memberikan kemudahan bagi user untuk mendownload file dari servernya. User bisa melakukan koneksi secara serentak ke server sehingga download manager dapat menggunakan kelebihan ini untuk mendownload file dengan lebih cepat. Namun sekarang ini terjadi kasus, download yang di pause lebih dari 24 jam/ 1 hari akan error ketika proses mendownload di resume kembali. Hal ini terjadi pada saya beberapa kali, dan saya coba cek sana sini untuk mengetahui penyebabnya. Akhirnya setelah beberapa hari menganalisa, saya menemukan penyebabnya. Ternyata, link download file pada mediafire akan di regenerate atau berganti setiap pergantian hari, misalnya hari senin sebuah file memiliki link :
http://download405.mediafire.com/nqiozs308wzg/nh2dkdmnjzo/%5BKHnF+-+ZAnF%5D+The+Gazette+-+The+invisible+wall+%5BDVDRip%5D%5BB01C4A2E%5D.part1.rar
esok harinya pada hari selasa link akan berubah menjadi :
http://download844.mediafire.com/uzhgjxmmjdxg/jj1m1tyojdj/%5BKHnF+-+ZAnF%5D+The+Gazette+-+The+invisible+wall+%5BDVDRip%5D%5BB01C4A2E%5D.part2.rar
karena link yang ada di mediafire berubah tetapi link download yang tersimpan pada Download Manager adalah link yang lama, maka ketika kita me-resume download akan error karena link yang lama sudah tidak ada. Yang menjadi pertanyaan, bagaimana caranya merubah link download yang lama menjadi yang baru? Masalahnya, pada beberapa Download Manager, link download dikunci dan tidak bisa dirubah begitu saja. Kebanyakan Download Manager menyimpan data dan link download pada sebuah database yang ada pada folder instalasi software tersebut, jadi untuk merubah linknya kita harus merubah value pada database yang digunakan oleh Download Manager tersebut.
         Karena saya menggunakan "DownThemAll" yang merupakan download manager/plugin pada web browser "Mozilla Firefox" dan Operating system "Ubuntu linux", cara-cara yang akan dijelaskan juga hanya spesifik untuk software tersebut. Pada downthemall link download tidak dapat diubah sehingga mengharuskan kita untuk mengedit langsung databasenya. Downthemall menggunakan database sqlite untuk menampung entri-entri link download. Untuk mengedit database dengan mudah, saya rekomendasikan menggunakan tool "sqlitebrowser". Melalui command line dapat menginstallnya dengan perintah :
$ sudo apt-get install sqlitebrowser
  1. File database sqlite milik dTA biasanya disimpan di folder konfigurasi mozilla dengan nama "dta_queue.sqlite. Pada sistem saya, file ini terletak di folder ~/.mozilla/firefox/3wrx8dt2.default.


  2. Jika telah ditemukan filenya, buka tool "sqlitebrowser" untuk mengedit file databasenya. Karena tool ini berbasis GUI, untuk pemula tidak akan kesulitan untuk mengoperasikan software ini.


  3. Klik tombol open, lalu akan muncul file browser window, arahkan pada file database yang akan diedit

  4. Pilih tab "Browse Data", lalu pilih entry yang akan dirubah value-nya


  5. klik dua kali pada entry tersebut, nanti akan muncul jendela editor, lalu carilah link download lama, seperti terlihat pada gambar di bawah ini:

  6. Rubah kedua link yang lama menjadi link yang baru kemudian close window editor dan save.
Setelah melakukan langkah-langkah tersebut, download dapat diresume tanpa error.

oleh : alvin
READ MORE - Me-resume kembali download dari mediafire dengan DownThemAll
Add to Technorati Favorites Add to Technorati Favorites
OrangUNIX © 2008 Template by:
SkinCorner