<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14408514</id><updated>2011-11-28T06:19:22.992+07:00</updated><category term='mozila'/><category term='postgresql'/><category term='pinax'/><category term='ubuntu'/><category term='open source'/><category term='django'/><category term='python'/><category term='general'/><category term='software engineering'/><title type='text'>K4N6 B3D70</title><subtitle type='html'>Ordinary People with an eye glass.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14408514.post-2797854702855968332</id><published>2010-08-13T09:58:00.020+07:00</published><updated>2011-07-12T14:05:53.503+07:00</updated><title type='text'>Liferea tidak melakukan cache</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;br /&gt;Ternyata Liferea tidak melakukan cache terhadap file file multimedia yang di downloadnya.&lt;br /&gt;Jadi setiap kali kita buka konten RSS yang berisikan file multimedia, file image, maka file file tersebut tidak bisa dimainkan. Padahal kebutuhan daku adalah membacanya saat offline. &lt;br /&gt;&lt;br /&gt;So Back to PenguinTV, dan harus bisa solve problemnya. Mungkin harus check penguinTV di Ubuntu 10.04, apakah bisa running smooth di versi tersebut.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-2797854702855968332?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/2797854702855968332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=2797854702855968332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2797854702855968332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2797854702855968332'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2010/08/liferea-tidak-melakukan-cache.html' title='Liferea tidak melakukan cache'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-4648360702339405617</id><published>2010-08-12T10:12:00.005+07:00</published><updated>2010-08-24T16:16:25.693+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>LifeRea Offline rss reader</title><content type='html'>Daku sudah menggunakan &lt;a href="http://penguintv.sourceforge.net/" target="_blank" title="PenguinTV"&gt;PenguinTV&lt;/a&gt; cukup lama. &lt;a href="http://penguintv.sourceforge.net/" target="_blank" title="PenguinTV"&gt;PenguinTV&lt;/a&gt; sebagai offline rss reader cukup handal, karena dia memiliki kemampuan untuk cache multimedia file, seperti flash file, image, movie dan sound. Tetapi beberapa minggu yang lalu, setelah daku memproses update otomatis dari repository ubuntu, secara tiba tiba PenguinTV saya tidak bisa bekerja dengan normal. Setiap ada news baru, maka ia akan membuka beritanya di http browser daku menuju alamat local.&lt;br /&gt;Setelah berkali kali install dan uninstall, dan browsing di google untuk mencari solusi, akhirnya daku menyerah. Intinya tidak bisa lagi. Mungkin ada crash dengan salah satu library yang terinstall di tempat laptop. Kemudian dimulailah mencari cari offline rss reader yang lainnya. Berbagai alternatif dicoba dan akhirnya jatuh pada LifeRea. LifeRea ada di dalam repository ubuntu. Instalasinya cukup mudah dan bisa import opml dari PenguinTV saja. So here we come, dimulailah era LifeRea di laptop daku.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-4648360702339405617?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/4648360702339405617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=4648360702339405617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4648360702339405617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4648360702339405617'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2010/08/liferea-offline-rss-reader.html' title='LifeRea Offline rss reader'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-3345267120501711706</id><published>2010-06-30T09:01:00.003+07:00</published><updated>2010-08-16T14:19:10.966+07:00</updated><title type='text'>Interesting Project</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Sorry guys, now I'm busy with a new project, Kohana + Dojo.&lt;br /&gt;I will put other tutorial using Dojo, soon.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-3345267120501711706?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/3345267120501711706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=3345267120501711706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3345267120501711706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3345267120501711706'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2010/06/interesting-project.html' title='Interesting Project'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-3898012389279848728</id><published>2010-03-15T09:19:00.004+07:00</published><updated>2010-08-24T16:16:19.680+07:00</updated><title type='text'>Dojo Grid</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Looking for Dojo Grid Tutorial Pages.&lt;br /&gt;Anyone knows ? please drop me a messages&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-3898012389279848728?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/3898012389279848728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=3898012389279848728' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3898012389279848728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3898012389279848728'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2010/03/dojo-grid.html' title='Dojo Grid'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-4820664784456884781</id><published>2009-12-03T11:18:00.001+07:00</published><updated>2009-12-03T11:18:14.774+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Belajar mengatur project</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Hari ini saya hosting project di google code. Namanya &lt;a href='http://code.google.com/p/pawang/' target='_blank'&gt;project pawang&lt;/a&gt;. Project ini adalah project belajar bahasa pemrograman python bersama sama. Jadi project tutorial, kita buat artikel artikel step by step belajarnya di fasilitas wiki, dan kita hosting contoh contoh programnya di google code. Project ini ber-licence MIT , apa dan bagaimana saya juga kurang tahu detailnya :D. Mohon petunjuknya.&lt;br/&gt;&lt;br/&gt;Bagi diri pribadi, harapan saya adalah bisa belajar bersama sama secara virtual dengan rekan rekan pengguna python di indonesia. Selain itu saya juga belajar untuk mengatur project secara virtual. Semoga project ini bisa memiliki team member yang cukup banyak sehingga bisa atraktif.&lt;br/&gt;&lt;br/&gt;Wish me luck&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=6883915a-adef-8dd8-b16f-1bd8150d0e22' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-4820664784456884781?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/4820664784456884781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=4820664784456884781' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4820664784456884781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4820664784456884781'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/12/belajar-mengatur-project.html' title='Belajar mengatur project'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-8022353977352291658</id><published>2009-11-19T17:09:00.003+07:00</published><updated>2009-12-02T10:38:22.190+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='pinax'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Membuat applikasi baru di dalam pinax</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;So, setelah kita belajar meng-install pinax, berikutnya adalah membuat applikasi di dalam pinax.&lt;br /&gt;Step nya sebagai berikut :&lt;br /&gt;&lt;br /&gt;1. Kita start dulu website "mysite" yang sudah kita buat dengan pinax. Diartikel terdahulu, kita membuat project "mysite" ini berbasis "social-project". Mari kita start webserver "my-site" kita.&lt;br /&gt;&lt;br /&gt;(pinax-env)$ cd mysite&lt;br /&gt;(pinax-env)$ python manage.py runserver&lt;br /&gt;&lt;br /&gt;2. Setelah server kita bisa di start, kita lihat di web-browser kita di http://localhost:8000, dan mari kita coba untuk login.&lt;br /&gt;&lt;br /&gt;3. Nah setelah kita bisa login, maka kita akan melihat deretan tab di bagian atas. Ada profile, photos, blogs, tribes dan seterusnya. Di deretan tab inilah kita akan mencoba untuk membuat applikasi kita. Jadi kita buat Tab applikasi kita, "my_app". Untuk itu kita harus edit file templates/site_base.html dan tambahkan kode dibawah ini di area dimana tab-tab tersebut di daftarkan. Setelah itu file kita save.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;lt;li id="tab_my_app"&amp;gt;{% trans "My App" %}&amp;lt;/li&amp;gt; &lt;br /&gt;&lt;br /&gt;4. Refresh web-browser anda. Nah seharusnya sekarang muncul tab baru yang ber-title "My App". Nah ini kita baru saja mendaftarkan applikasi kita di halaman pinax. Itu adalah link-nya. Applikasinya sendiri harus kita buat terlebih dahulu. Untuk itu kita perbaharui dulu syntax di point-3 tersebut menjadi berikut :&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;lt;li id="tab_my_app"&amp;gt;&amp;lt;a href="{% url my_app_index %"&amp;gt;{% trans "My App" %} &amp;lt;/a&amp;gt; &amp;lt;/li&amp;gt; &lt;br /&gt;&lt;br /&gt;Nah sintak tersebut akan terbaca "applikasi kita bernama my_app, kita registrasikan tab-nya dengan nama tab_my_app, dengan title My App, jika di click dia akan mencari url dengan alamat my_app_index".&lt;br /&gt;&lt;br /&gt;5. Nah alamat url "my_app_index" tersebut berada dimana&amp;nbsp; ? tentu saja dia harus berada didalam applikasi my_app kita. Mari kita buat applikasi kita di dalam pinax terlebih dahulu, dengan sintak :&lt;br /&gt;&lt;br /&gt;(pinax-env)$ python manage.py startapp my_app&lt;br /&gt;&lt;br /&gt;7. Sayangnya applikasi my_app ini tidak berada di dalam directory apps, sehingga akan mengurangi kerapian dari project ini. Mari kita pindah directory my_app ke dalam directory apps.&lt;br /&gt;&lt;br /&gt;(pinax-env)$ mv my_app/ apps&lt;br /&gt;&lt;br /&gt;8. Nah applikasi yang telah kita buat tersebut harus kita daftarkan ke dalam file daftar alamat url di pinax. Kita edit file urls.py milik pinax dan kita tambahkan baris perintah dibawah ini di area urlpatterns :&lt;br /&gt;&lt;br /&gt;(r'^my_app/', include('my_app.urls')),&lt;br /&gt;&lt;br /&gt;9. Sintak diatas itu akan terbaca seperti berikut "Apabila ada yang mencari alamat applikasi my_app, coba baca juga dari file urls milik applikasi my_app".&amp;nbsp; Saat ini kita masih belum memiliki file urls.py di dalam direktory my_app, jadi mari kita buat file urls.py di dalam directory my_app dan berisikan sintak sintak sebagai berikut :&lt;br /&gt;&lt;br /&gt;from django.conf.urls.defaults import *&lt;br /&gt;from django.views.generic.simple import direct_to_template&lt;br /&gt;&lt;br /&gt;urlpatterns = patterns('', url(r' ^$', direct_to_template, {"template": "my_app/index.html"}, name="my_app_index" ),&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;10. Nah dari sintak diatas terlihat bahwasannya alamat url my_app_index itu akan menggunakan tempat "index.html" yang berada di directory template. Saat ini kita tidak memiliki directory my_app di dalam directory template jadi kita harus membuatnya terlebih dahulu dengan sintak sebagai berikut :&lt;br /&gt;&lt;br /&gt;(pinax-env)$ mkdir templates/my_app&lt;br /&gt;&lt;br /&gt;11. Setelah itu kita buat file index.html di dalam directory template my_app, dan berisikan sintak sintak html seperti di bawah ini :&lt;br /&gt;&lt;br /&gt;{% extends "site_base.html" %}&lt;br /&gt;&lt;br /&gt;{% load i18n %}&lt;br /&gt;&lt;br /&gt;{% block head_title %}{% trans "My App" %}{% endblock %}&lt;br /&gt;&lt;br /&gt;{% block body %}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {% blocktrans %}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;Ini testing, UI Interface kita harus kita buat di file ini. &amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {% endblocktrans %}&lt;br /&gt;{% endblock %}&lt;br /&gt;&lt;br /&gt;12. Setelah itu kita kembali ke web-browser kita, kita refresh homepage-nya pinax, dan kita klik tab "My App" atau address bar kita isi http://localhost:8000/my_app/&lt;br /&gt;&lt;br /&gt;Nah sekarang kita sudah bisa membuat applikasi kita, dan kita sudah mendaftarkannya di dalam pinax.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=e7913c76-ab61-85f1-bc5f-a556139365d3" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-8022353977352291658?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/8022353977352291658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=8022353977352291658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/8022353977352291658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/8022353977352291658'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/11/membuat-applikasi-baru-di-dalam-pinax.html' title='Membuat applikasi baru di dalam pinax'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-7133693933051990980</id><published>2009-11-05T13:52:00.003+07:00</published><updated>2009-12-02T10:39:03.776+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Solusi composite primay key di Django</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Mahalo, akhirnya setelah berkutat kesana kemari dengan ORM Django, akhirnya dapat juga solusi untuk mengatasi Composite Primary Key di Django. Django ORM menganut paham active_record, yang salah satu featurenya ada "1 kolom sebagai primary key" dalam suatu tabel. Persyaratan ini merupakan keharusan dalam sistem ORM Django. &lt;br /&gt;&lt;br /&gt;Hal ini akan menimbulkan masalah pada saat kita akan memakai Django untuk sistem yang telah berjalan / legacy system, karena design tabel database di sistem tersebut banyak yang menggunakan composite key, atau lebih dari satu kolom sebagai primary key-nya.&lt;br /&gt;Sebagai contoh kita ambil tabel kota, maka composite key nya adalah (kode_negara, kode_kota).&lt;br /&gt;&lt;br /&gt;Nah solusi yang saya tawarkan adalah sebagai berikut :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;buat satu kolom baru didalam tabel yang anda inginkan, dan jadikan kolom ini sebagai target untuk membuat primary key yang baru&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;alter table kota add column kota_id&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;kemudian di function save dari class model kota tersebut kita tambahkan perintah yang akan mengisi kolom kota_id dengan gabungan dari kolom kode_negara dan kode_kota&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;def save(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not self.kota_id:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.kota_id = "%s%s" % (self.kode_negara, self.kode_kota)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super(Kota, self).save()&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Kemudian pada saat save_edit, kita juga harus memastikan kolom primary key ini tidak ikut diubah oleh sistem. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Solusi yang saya tawarkan ini memang tidak 100% membuat saya puas, tetapi ini yang menurut saya terbaik saat ini. Dengan cara seperti ini, sistem yang sudah ada hanya perlu di ubah sedikit saja, tanpa merusak sistem yang lama.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=78cbffdf-6085-8128-a8ad-6542ff30bbc5" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-7133693933051990980?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/7133693933051990980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=7133693933051990980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/7133693933051990980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/7133693933051990980'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/11/solusi-composite-primay-key-di-django.html' title='Solusi composite primay key di Django'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-2286203273743304841</id><published>2009-10-31T10:32:00.003+07:00</published><updated>2009-12-02T10:39:10.651+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='pinax'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Installing Pinax</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Hello All, berikut adalah catatan bagaimana instalasi pinax dilakukan di sistem Ubuntu 9.0.4 dan versi pinax adalah 0.7.1.&lt;br /&gt;&lt;br /&gt;1. Download Pinax.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pinax software bisa kita download dari website &lt;a href="http://pinaxproject.com/download/" target="_blank"&gt;pinaxproject&lt;/a&gt; dan ambil &lt;a href="http://downloads.pinaxproject.com/Pinax-0.7.1-bundle.tar.gz" target="_blank"&gt;official release yang terakhir&lt;/a&gt; yakni versi 0.7.1. Django sudah termasuk didalam pinax software ini.&lt;br /&gt;&lt;br /&gt;2. Extract file Pinax-0.7.1-bundle.tar.gz tersebut didalam directory project anda.&lt;br /&gt;&lt;br /&gt;3. Selelah itu jalankan script untuk instalasi pinax di virtual environtment&lt;br /&gt;&lt;div&gt;&lt;pre&gt;$ python scripts/pinax-boot.py&amp;lt;path-to-virtual-env-to-create&amp;gt;&lt;/pre&gt;&lt;/div&gt;4. Setelah virtual environtment nya siap, berikutnya adalah mengaktifkan virtual environtmentnya&lt;br /&gt;&lt;div&gt;&lt;pre&gt;$ source &amp;lt;path-to-virtual-env-created&amp;gt;/bin/activate&lt;/pre&gt;&lt;/div&gt;5. Setelah aktif, maka di prompt di console kita akan berubah seperti berikut &lt;br /&gt;&lt;div&gt;&lt;pre&gt;(pinax-env)$&lt;/pre&gt;&lt;/div&gt;6. Berikutnya kita bisa melihat "template" project yang dimiliki oleh pinax, perintahnya seperti berikut :&lt;br /&gt;&lt;div&gt;&lt;pre&gt;(pinax-env)$ pinax-admin clone_project -l&lt;/pre&gt;&lt;/div&gt;7.&amp;nbsp; Favorite saya adalah membuat project yang berbasis "social-project", command nya sebagai berikut :&lt;br /&gt;&lt;div&gt;&lt;pre&gt;(pinax-env)$ pinax-admin clone_project social_project mysite&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Mengapa saya memilih "social-project" walaupun pinax juga memiliki tempate "cms" ? reason-nya adalah multiple blogging nya. Dengan blogging ini knowledge management bisa dishare diantara pengguna sistem.&lt;br /&gt;&lt;br /&gt;Oke sekian dulu.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=55410145-8e3d-8582-b1c4-fcd528811da0" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-2286203273743304841?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/2286203273743304841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=2286203273743304841' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2286203273743304841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2286203273743304841'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/10/installing-pinax.html' title='Installing Pinax'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-7992486746285683384</id><published>2009-10-20T14:57:00.003+07:00</published><updated>2009-12-02T10:39:21.170+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='pinax'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Django + Pinax</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Hi there,&lt;br /&gt;&lt;br /&gt;Mau belajar Django + Pinax ?&lt;br /&gt;Silahkan mengikuti Tutorial dari &lt;a href="http://fernandoacorreia.wordpress.com/?s=pinax" target="_blank"&gt;Fernando Correia&lt;/a&gt; ini, disana dia menjelaskan step by step menggunakan pinax. Harap di ingat saat tulisan ini di buat, versi dari pinax sudah di 0.7.1 sedangkan tutorial dari Fernando itu dibuat di versi 0.5. &lt;br /&gt;&lt;br /&gt;Tetapi saya masih bisa memakainya, except project yang dipakai adalah "social-project" bukan "completed-project" seperti yang Fernando tulis.&lt;br /&gt;&lt;br /&gt;Nah apa yang saya lakukan dengan Django dan Pinax ini ?.&lt;br /&gt;Ide-nya begini, saya ingin punya applikasi yang bisa berkolaborasi dengan "CMS" atau "Social Networking" applikasi.&amp;nbsp; Jadi applikasi yang saya buat itu merupakan extention / bagian / component dari "CMS" atau "Social Networking" itu. Nah dengan pinax ini saya merasa bisa terwujud. &lt;br /&gt;&lt;br /&gt;Pinax tetap merupakan suatu "library", yang di maintain oleh developer2-nya pinax, sementara applikasi yang saya buat merupakan extentionnya, dan yang memaintenance ya saya sendiri.&lt;br /&gt;Begitu Pinax mengeluarkan release update terbaru, itu tidak akan mengganggu applikasi yang saya buat.&lt;br /&gt;&lt;br /&gt;Hanya saja untuk versi saat ini, masih banyak yang harus di kejar dari Pinax. Terutama soal UI dan Functionalitynya yang masih terlalu sederhana.&lt;br /&gt;&lt;br /&gt;Oke silahkan mencoba kombinasi django + pinax + applikasi-mu, dan mari kita belajar bersama.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=8167a009-8728-8725-a569-0ae0c985d2fc" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-7992486746285683384?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/7992486746285683384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=7992486746285683384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/7992486746285683384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/7992486746285683384'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/10/django-pinax.html' title='Django + Pinax'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-5652540669721458209</id><published>2009-10-08T11:44:00.001+07:00</published><updated>2009-12-02T10:42:28.417+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Rss again</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Rasanya saya semakin kecanduan memakai feature rss nih. Sayangnya beberapa website yang saya ikuti, terutama website local tidak memiliki feature rss ini. Sehingga saya harus selalu melihat website tersebut jikalau saya ingin membacanya. Mungkin ada baiknya website website local yang banyak berisikan berita berita mulai memasukkan feature rss sebagai salah satu feature andalannya.&lt;br /&gt;Biar saya juga mudah membaca beritanya.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=10f95982-15cd-8fa5-9a56-172996a9d28d" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-5652540669721458209?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/5652540669721458209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=5652540669721458209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/5652540669721458209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/5652540669721458209'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/10/rss-again.html' title='Rss again'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-2278239131320485202</id><published>2009-09-16T09:49:00.002+07:00</published><updated>2009-12-02T10:42:28.797+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Orientation, should I review mine ?</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Akhir akhir ini, saya sudah jarang coding. Membuat satu modul utuh, saat ini lebih sering memperbaiki code code yang bermasalah dan tugas tugas yang tidak ada hubungannya dengan pekerjaan coding. Semisal melengkapi wiki, membuat sop, mereview ticket ticket dan koordinasi dengan departemen lain. Saya merasa ada sesuatu yang hilang, dan itu adalah coding. &lt;br /&gt;&lt;br /&gt;Sensasi membuat code yang bagus, dalam artian enak dibaca, mudah di mengerti dan diikuti, dan penuh dengan optimasi, sudah membumbung di benak dan di jemari ini. Rasanya gatal ingin membuat sesuatu untuk code-code. Tetapi task task yang non-coding ini juga sangat banyak dan sangat menyita waktu. &lt;br /&gt;&lt;br /&gt;Kapan ya saya bisa coding lagi, membuat suatu applikasi yang bagus lagi, yang bisa dipergunakan oleh orang banyak ?&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=3b429c44-dba6-863e-b48f-0b2185819aa5" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-2278239131320485202?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/2278239131320485202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=2278239131320485202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2278239131320485202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2278239131320485202'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/09/orientation-should-i-review-mine.html' title='Orientation, should I review mine ?'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-3896966137815177606</id><published>2009-09-04T11:23:00.002+07:00</published><updated>2009-12-02T10:42:36.769+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>igoogle</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Pada awalnya tidak seberapa faham apa fungsi dari igoogle ini, tetapi setelah kunjungan ke beberapa site yang membahas pengenai rss-reader, rasanya penasaran juga. Akhirnya dikunjungilah site homepage &lt;a href="http://www.google.com/ig%20" target="_blank"&gt;igoogle&lt;/a&gt; ini, ternyata saya bisa akses dengan account google saya. &lt;br /&gt;&lt;br /&gt;Wow, ternyata penampilannya mirip dengan dashboard. &lt;a href="http://www.google.com/ig%20" target="_blank"&gt;igoogle&lt;/a&gt; ini memiliki widget yang masing masing punya fungsi tertentu, contohnya ada widget untuk facebook, widget untuk gmail, widget untuk news dan sebagainya. Selain itu kita bisa mengatur "TAB"-nya, semisal seperti yang saya lakukan, ada tab untuk "Home", ada tab untuk "Berita", ada tab untuk "Programming". Jadi saya bisa meletakkan widget widget yang akan dipakai berdasarkan kategori TAB-nya tersebut.&lt;br /&gt;&lt;br /&gt;So, jadilah ini adalah dashboard yang harus terbuka di internet browser ku secara default. widget yang paling sering saya pakai nih adalah sbb : widget google reader, widget berita-olahraga, widget google-news, widget detikinet, widget gmail.&lt;br /&gt;&lt;br /&gt;So tell me your igoogle widget ?&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=b0f2b774-7840-836c-b08c-63063d667c9d" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-3896966137815177606?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/3896966137815177606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=3896966137815177606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3896966137815177606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3896966137815177606'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/09/igoogle.html' title='igoogle'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-222152487980506755</id><published>2009-09-03T11:00:00.002+07:00</published><updated>2009-12-02T10:44:39.864+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><title type='text'>3 hal yang menggangu dalam membuat applikasi yang besar</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Applikasi yang kita bangun sekarang boleh dikatakan cukup "jelek". Jelek dalam arti "developer point of view". Jadi kejelekannya itu dilihat dari cara pandang developer. &lt;br /&gt;Berikut adalah daftar kejelekannya :&lt;br /&gt;1. Ugly Foot-Print&lt;br /&gt;Applikasi yang kita bangun menempal pada suatu software CMS. Kita membangun-nya sebagai component dari sistem CMS tersebut. Untuk suatu halaman yang sederhana, let say "hello world", masih terdapat foot-print yang cukup besar yang digenerate oleh CMS tersebut, ini bisa dilihat pada saat kita "view source" dari document html yang di generate. Hal ini memang tidak bisa dihindari akibat sistem kita yang menempel ke sistem CMS tersebut. &lt;br /&gt;Solusi-nya :&lt;br /&gt;Kita harus lepas dari sistem CMS tersebut.&lt;br /&gt;&lt;br /&gt;2. Too many programming language&lt;br /&gt;Yup, kita memakai banyak bahasa untuk membangun sistem kita ini. Php, Javascript, Pascal &amp;amp; Java adalah bahasa bahasa pemrograman yang kita pakai. Mungkin ini salah satu akibat dari kurangnya pengalaman dalam membangun sistem, banyaknya developer yang keluar masuk di sistem kita dan adanya keyakinan "yang penting jalan dulu". &lt;br /&gt;Solusi-nya :&lt;br /&gt;gunakan general-purpose language dan bangun ulang keseluruhan sistem dalam bahasa pemrograman tersebut&lt;br /&gt;&lt;br /&gt;3. Our code is not easy to read&lt;br /&gt;Walaupun kita memiliki standard penulisan code code di sistem kita, perbedaan antara developer yang satu dengan developer yang lain tetap terlihat di source code applikasi kita. Hal ini tidak mempengaruhi sistem yang berjalan ditempat kita, tetapi hal ini mempengaruhi pada saat kita akan memodifikasi source code tersebut. "Cara membaca" dari source code yang berbeda beda "pattern" penulisannya tentu akan sangat menyulitkan developer, dan ini adalah problem yang kita hadapi saat ini.&amp;nbsp; Tidak mengganggu jalannya sistem yang ada tapi cukup merepotkan pada saat memodifikasi source code-nya.&lt;br /&gt;Solusi-nya :&lt;br /&gt;tulis ulang code yang ada dan buat standard penulisan&lt;br /&gt;&lt;br /&gt;Sementara baru tiga hal ini lah yang menurutku cukup "mengganggu" dalam kita membangun sistem kita. Sementara sistem kita terus berjalan, problem ini tetap tidak bisa teratasi tanpa kita memiliki momentum untuk memutus mata-rantai tersebut.&lt;br /&gt;&lt;br /&gt;What do you think ?&lt;br /&gt;ada usul ?&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=3a4112c9-5780-85ab-b03d-239bf81aab1b" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-222152487980506755?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/222152487980506755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=222152487980506755' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/222152487980506755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/222152487980506755'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/09/3-hal-yang-menggangu-dalam-membuat.html' title='3 hal yang menggangu dalam membuat applikasi yang besar'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-1392032455766066110</id><published>2009-08-19T09:29:00.002+07:00</published><updated>2009-12-02T10:39:26.265+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Play again with django</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Yup, Django lagi. Why ? karena sekarang mereka sudah ada di V1.1, dan aku rasa cukup berharga untuk di lihat kembali apa yang mereka bisa. Oke, after installation yang smooth tidak ada masalah. Testing dengan applikasi poll mereka hingga ke tutorial ke 2, akhirnya problem yang ada terlihat. Berikut keterbatasan dari Django yang mungkin akan menimbulkan masalah bagi applikasi yang aku buat di kemudian hari :&lt;br /&gt;&lt;br /&gt;&amp;nbsp;1. Single DB Connection&lt;br /&gt;Django hanya memperkenankan 1 koneksi database. Ini artinya applikasi DB yang dibangun dengan Django hanya akan bekerja dengan 1 database saja, sehingga applikasinya tidak bisa&amp;nbsp; berperan sebagai "bridge application".&lt;br /&gt;Solusi-nya : mungkin ada cara untuk membuat database connection sendiri, terpisah dari django. masih harus research mengenai hal ini.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;2. Composite Primary Key&lt;br /&gt;Yup, Django masih memiliki keterbatasan dalam hal composite primary key. Django masih prefer dengan "single column as their primary key column" atau "Active Record" istilahnya.&lt;br /&gt;Solusi-nya : &lt;br /&gt;&amp;nbsp;&amp;nbsp; a. menghindari "Identity/Sequence" value sebagai primary key, sebagai gantinya pakai "select max(x)+1" atau generate "unique value" sendiri.&lt;br /&gt;&amp;nbsp;&amp;nbsp; b. merubah design database ke "Active Records" pattern.&lt;br /&gt;&lt;br /&gt;So, dengan dua problem besar yang muncul ini dan alternatif solusinya, aku rasa worthed untuk di mencoba Django v1.1. So Lets play with it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=f83c0d67-e4fd-894b-9939-897f3211b204" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-1392032455766066110?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/1392032455766066110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=1392032455766066110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/1392032455766066110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/1392032455766066110'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/08/play-again-with-django.html' title='Play again with django'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-6228977921853052645</id><published>2009-08-07T09:25:00.002+07:00</published><updated>2009-12-02T10:43:54.544+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Internal Speaker Solved</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Kemarin ada informasi dari repository ubuntu untuk melakukan update terhadap package package Ubuntu. Terus terang masih ada sedikit trauma untuk melakukan update package dikarenakan terakhir update prosess yang kulakukan membuat aku harus menginstall ulang driver linuxantaudio.&lt;br /&gt;&lt;br /&gt;But akhirnya aku lakukan juga prosess update tersebut. &lt;br /&gt;Setelah check disana sini, sepertinya tidak ada problem dan woalah... ternyata internal speaker problem yang aku hadapi kemarin sudah solve. Internal speaker sekarang hanya bisa berfungsi jika tidak ada jack audio external speaker yang terpasang.&lt;br /&gt;&lt;br /&gt;Mantap dah hari ini.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=4449d76f-4856-8936-bbb7-11c887006069" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-6228977921853052645?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/6228977921853052645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=6228977921853052645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/6228977921853052645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/6228977921853052645'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/08/internal-speaker-solved.html' title='Internal Speaker Solved'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-1207884838899790521</id><published>2009-08-06T13:32:00.002+07:00</published><updated>2009-12-02T10:43:44.767+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu Jaunty 9.0.4</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Just update my Dell inspiron 1420 with Ubuntu Jaunty 9.0.4. Overall work fine, except for compiz and internal speaker. My Dell inspiron usage intel vga, so I have to set my xorg.conf to "UXA" mode, and it made my compiz run faster.&amp;nbsp; The only problem left is my internal speaker is still running while I used external speaker on my sound jack-port. Still no clue, can you help me ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=f1de51cc-9b46-8f50-afe9-12ce96ebc08f" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-1207884838899790521?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/1207884838899790521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=1207884838899790521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/1207884838899790521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/1207884838899790521'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/08/ubuntu-jaunty-904.html' title='Ubuntu Jaunty 9.0.4'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-5071048499466022570</id><published>2009-05-22T17:22:00.002+07:00</published><updated>2009-12-02T10:44:27.285+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><title type='text'>Getting Bigger and Ugly</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Our Application project&amp;nbsp; is big enough, and its getting bigger.&lt;br /&gt;Many collegue is get an eye on our application, they can see the benefit of our integrated system and they demand us to build a system for them. &lt;br /&gt;Its good since they recognize our system already. &lt;br /&gt;&lt;br /&gt;But, when u go deep into our application source code, you will realize that our source code is getting ugly. Its not goes beauty. Every developer bring their on style of develop codes. Their tend to "ignoring" our naming standard. Its fine if you deal with 2 or 3 programmers but if you deal with more than that, than you will have a problem. &lt;br /&gt;&lt;br /&gt;This is what we saw on our project. When I have to fix a resign developer code, I amaze by seeing the code. it was different than what we followed and it force me to learn. Not easy, but I know what its mean. I said its not readable. At the end, I have to create my own style again, and I will apply it to our future application.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-5071048499466022570?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/5071048499466022570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=5071048499466022570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/5071048499466022570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/5071048499466022570'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/05/getting-bigger-and-ugly.html' title='Getting Bigger and Ugly'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-4766662187289639620</id><published>2009-04-21T13:21:00.000+07:00</published><updated>2009-04-21T13:21:00.111+07:00</updated><title type='text'>Rss addict</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I think I became a RSS addict.&lt;br/&gt;I prefer read from my RSS browser, the mozilla thunderbird.&lt;br/&gt;The way it give me the news instantly is wonderful to me.&lt;br/&gt;But off course not everything I can found from my RSS subscription.&lt;br/&gt;But Its still good. &lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=f0705293-a644-8fb4-a6ac-5e92c75e8b94' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-4766662187289639620?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/4766662187289639620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=4766662187289639620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4766662187289639620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4766662187289639620'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/04/rss-addict.html' title='Rss addict'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-4903525711649835249</id><published>2009-04-21T09:18:00.002+07:00</published><updated>2009-12-02T10:44:53.079+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Where's my happy coding place ?</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Slashdot just had a question regarding &lt;a href="http://developers.slashdot.org/article.pl?sid=09/04/20/1820222&amp;amp;from=rss"&gt;wheres my happy coding place ?&lt;/a&gt;&lt;br /&gt;I say, I like to have a coding in mountain, surrounded by rice field ... and it must near the white sand beach.&lt;br /&gt;I love bali.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=a4a5771a-3fad-8530-8397-79b136bbfeb9" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-4903525711649835249?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/4903525711649835249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=4903525711649835249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4903525711649835249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4903525711649835249'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/04/where-my-happy-coding-place.html' title='Where&amp;#39;s my happy coding place ?'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-4113429297924143967</id><published>2009-04-08T14:49:00.002+07:00</published><updated>2009-12-02T10:45:15.040+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Scalability challenges</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Our Application Data is getting bigger and bigger.&lt;br /&gt;This data growing is our challenges.&lt;br /&gt;&lt;br /&gt;I need a replication on our Postgresql database.&lt;br /&gt;Please give us advice.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=5a013802-deca-8d20-8978-40e291bf194d" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-4113429297924143967?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/4113429297924143967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=4113429297924143967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4113429297924143967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/4113429297924143967'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/04/scalability-challenges.html' title='Scalability challenges'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-725575816368125546</id><published>2009-03-06T12:35:00.001+07:00</published><updated>2009-03-06T12:35:39.228+07:00</updated><title type='text'>Imagine</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Lets Imagine,&lt;br/&gt;I'm working with Open Source Software&lt;br/&gt;I'm working from a village near big mountain at Central Java&lt;br/&gt;I'm getting a good salary using OSS&lt;br/&gt;I'm a member of International OSS Project&lt;br/&gt;&lt;br/&gt;Just my 2cent&lt;br/&gt;:-)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=61876089-7ac9-4497-ace6-a62272bf39a7' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-725575816368125546?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/725575816368125546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=725575816368125546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/725575816368125546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/725575816368125546'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/03/imagine.html' title='Imagine'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-3918323391161468779</id><published>2009-03-02T12:27:00.002+07:00</published><updated>2009-12-02T10:40:49.925+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Database Replication on Postgresql</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Its already become a major issue, since our data growing faster, 2GB each year in average until this day. I predict next year, we will have around 3GB growing data each year. Thats big enough. &lt;br /&gt;&lt;br /&gt;By looking the type of application we developed, we realy think we need multi-master replication on our database. Planned to install a DB server on each site and use replication mechanism to handle the data.&lt;br /&gt;&lt;br /&gt;So, please, if anyone know a OSS tools to do multi-master replication for Postgresql-DB, let me know okay ?&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=b317cb2c-bd0c-4877-95b3-ef536f89b3b3" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-3918323391161468779?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/3918323391161468779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=3918323391161468779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3918323391161468779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3918323391161468779'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/03/database-replication-on-postgresql.html' title='Database Replication on Postgresql'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-2626343168631139880</id><published>2009-02-03T14:35:00.001+07:00</published><updated>2009-02-03T14:35:59.425+07:00</updated><title type='text'>Wondering</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Seandainya aku punya kesempatan untuk bergelut dengan python + database dan raise income money yang cukup seperti sekarang ... mungkin akan menyenangkan sekali ...&lt;br/&gt;&lt;br/&gt;what do you think ?&lt;br/&gt;working and learning and satisfy your soul, would it be nice ?&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-2626343168631139880?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/2626343168631139880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=2626343168631139880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2626343168631139880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2626343168631139880'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/02/wondering.html' title='Wondering'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-6805902296008851641</id><published>2009-02-02T16:02:00.002+07:00</published><updated>2009-12-02T10:41:42.235+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Postgresql Replicator</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;looking for Postgresql replication tools.&lt;br /&gt;message me if you knew one of it.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-6805902296008851641?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/6805902296008851641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=6805902296008851641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/6805902296008851641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/6805902296008851641'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2009/02/postgresql-replicator.html' title='Postgresql Replicator'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-6906344876378097090</id><published>2008-12-16T10:20:00.002+07:00</published><updated>2009-12-02T10:41:39.797+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Living with open source software</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;simple question ... can we living with open source software ? &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-6906344876378097090?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/6906344876378097090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=6906344876378097090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/6906344876378097090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/6906344876378097090'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/12/living-with-open-source-software.html' title='Living with open source software'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-5358200916192136419</id><published>2008-12-02T15:25:00.001+07:00</published><updated>2008-12-02T15:25:59.933+07:00</updated><title type='text'>Long time no blog</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;long time no blog. Busy and busy yang jadi alasannya. Not good ya. But promise, I'll blog more often.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-5358200916192136419?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/5358200916192136419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=5358200916192136419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/5358200916192136419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/5358200916192136419'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/12/long-time-no-blog.html' title='Long time no blog'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-3675733104683534893</id><published>2008-08-15T18:40:00.001+07:00</published><updated>2008-08-15T18:40:03.951+07:00</updated><title type='text'>Sylabus for a High School Students in indonesia</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;One of my friends is a teacher. She works for a high school in center of java. "Do you have a sylabus for student on high school ?" yesterday she asked me. "I dont know", I replied. Then we chat many things, many features on internet that students need to know, specially in indonesia area, where computer still consider as a expensive material. &lt;br/&gt;Then we found what kind of things we should teach to them.&lt;br/&gt;&lt;br/&gt;Here are our sylabus&lt;br/&gt;1. Internet Overview&lt;br/&gt;2. How To Email &lt;br/&gt;3. How to Blogging &lt;br/&gt;4. How to Wiki's&lt;br/&gt;5. Google tips n tricks.&lt;br/&gt;&lt;br/&gt;Its a simple things we think sufficient for first semester of first grade high school student.&lt;br/&gt;What do you think ?&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-3675733104683534893?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/3675733104683534893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=3675733104683534893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3675733104683534893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/3675733104683534893'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/08/sylabus-for-high-school-students-in.html' title='Sylabus for a High School Students in indonesia'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-1858672891863025352</id><published>2008-06-30T14:10:00.002+07:00</published><updated>2009-12-02T10:45:40.176+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='mozila'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Thunderbird Lightning Extention Problem</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Setelah laptop siap, ternyata ada satu hal yang kurang yakni lightning extention di thunderbird email client saya. Ternyata lightning terbaru 0.8 masih belum compatible dengan thunderbird yang ada di ubuntu hardy repository. Akhirnya terpaksa deh downgrade, aku uninstall lightning 0.8-nya dan install kembali lightning versi 0.7 di ubuntu hardy repository. &lt;br /&gt;&lt;br /&gt;Ternyata ada pesan kegagalan yang mengatakan data calendar-ku itu dibuat pakai versi terbaru jadi lightningnya tidak bisa enable. Setelah browsing kesana kemari di google, akhirnya ketemu juga. Ternyata ada file yang namanya storage.sdb, nah ini file minyimpan calendar kita. Berhubung tidak ada data yang penting di calendar nya, saya delete lah file itu dan restart thunderbird nya kembali. woa, it goes normal.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-1858672891863025352?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/1858672891863025352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=1858672891863025352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/1858672891863025352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/1858672891863025352'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/06/thunderbird-lightning-extention-problem.html' title='Thunderbird Lightning Extention Problem'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-6651907069333572720</id><published>2008-06-23T11:45:00.001+07:00</published><updated>2008-06-23T11:45:34.137+07:00</updated><title type='text'>My Laptop is served by Ubuntu 8.0.4</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Oke sudah, sekarang laptop nya sudah bekerja dengan normal.&lt;br/&gt;Ini Dell Inspiron 1420 dengan Ubuntu 8.0.4, dan kerennya semua component laptop ini bisa berjalan dengan normal, wifi dan webcam otomatis langsung di kenali oleh Ubuntunya.&lt;br/&gt;Menarik nih, karena tidak perlu cari cari driver yang aneh aneh lagi.&lt;br/&gt;&lt;br/&gt;Oke, now back to the empire, hehehehe.&lt;br/&gt;Compiz, Emerald, Avant Window Navigator, Gnome Global Menu, its done. So sekarang aku punya interfacenya mac di ubuntu. ya biar terlihat beda saja dari default instalasi ubuntu dengan gnome-nya.&lt;br/&gt;&lt;br/&gt;Oke next problem adalah instalasi python dan semua program programnya, spesial turbogear 2 development version. wish me luck ya.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-6651907069333572720?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/6651907069333572720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=6651907069333572720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/6651907069333572720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/6651907069333572720'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/06/my-laptop-is-served-by-ubuntu-804.html' title='My Laptop is served by Ubuntu 8.0.4'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-2231299288923587790</id><published>2008-06-18T10:32:00.001+07:00</published><updated>2008-06-18T10:32:13.259+07:00</updated><title type='text'>Setup a new laptop</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Just got a new laptop, so its time to install with Ubuntu 8.04. So I got a free Operating System on my laptop, and some cool decorator, like compiz, emerald, avant-window-navigator. Wait a moment okay.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-2231299288923587790?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/2231299288923587790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=2231299288923587790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2231299288923587790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/2231299288923587790'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/06/setup-new-laptop.html' title='Setup a new laptop'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-345020375777802762</id><published>2008-05-30T11:00:00.001+07:00</published><updated>2008-05-30T11:00:20.049+07:00</updated><title type='text'>Turbogears 2 development version on ubuntu</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Finaly, akhirnya bisa juga &lt;a href='http://docs.turbogears.org/2.0/'&gt;TurboGears versi 2 development version&lt;/a&gt; terinstall di mesin ubuntu. Pertamanya bingung juga bagaimana cara instalasinya, karena masih awam di linux dan python, untungnya saya menemukan copy script shell dari &lt;b&gt;Nathan McBride&lt;/b&gt;, sebagai berikut :&lt;br/&gt;&lt;br/&gt;&lt;i&gt;&lt;small&gt;#!/bin/bash&lt;br/&gt;&lt;br/&gt;# TG2 Installer&lt;br/&gt;# Nathan McBride&lt;br/&gt;# May 22, 2008&lt;br/&gt;&lt;br/&gt;echo “Making Directories”&lt;br/&gt;mkdir svn&lt;br/&gt;mkdir src&lt;br/&gt;echo “Running SVN Checkouts”&lt;br/&gt;cd svn&lt;br/&gt;svn co http://svn.turbogears.org/projects/tg.devtools/trunk tgdev&lt;br/&gt;svn co http://svn.turbogears.org/trunk tg2&lt;br/&gt;svn co http://svn.turbogears.org/projects/tgrepozewho/trunk tgrepozewho&lt;br/&gt;cd ..&lt;br/&gt;echo “Running SRC Downloads”&lt;br/&gt;cd src&lt;br/&gt;export http_proxy&lt;br/&gt;wget --proxy-user "user_proxy" --proxy-passwd "pass_proxy" http://dbsprockets.googlecode.com/files/RuleDispatch-0.5a0.dev-r2306.tar.gz&lt;br/&gt;wget --proxy-user "user_proxy" --proxy-passwd "pass_proxy" http://dbsprockets.googlecode.com/files/PyProtocols-1.0a0dev-r2302.zip&lt;br/&gt;echo “Extracting SRC Downloads”&lt;br/&gt;tar xzf RuleDispatch-0.5a0.dev-r2306.tar.gz&lt;br/&gt;unzip PyProtocols-1.0a0dev-r2302.zip&lt;br/&gt;cd ..&lt;br/&gt;echo “Starting the Installation”&lt;br/&gt;easy_install -f http://pylonshq.com/download/0.9.7 -U Pylons&lt;br/&gt;easy_install -i http://dist.repoze.org/who/latest/simple repoze.who&lt;br/&gt;easy_install Paver&lt;br/&gt;cd src&lt;br/&gt;cd PyProtocols-1.0a0dev-r2302&lt;br/&gt;python setup.py develop&lt;br/&gt;cd ..&lt;br/&gt;cd RuleDispatch-0.5a0.dev-r2306&lt;br/&gt;python setup.py develop&lt;br/&gt;cd ../..&lt;br/&gt;cd svn/tgrepozewho/&lt;br/&gt;python setup.py develop&lt;br/&gt;cd ../tg2&lt;br/&gt;paver develop&lt;br/&gt;cd ../tgdev/&lt;br/&gt;python setup.py develop&lt;br/&gt;cd ../..&lt;br/&gt;echo “Installation Finished”&lt;br/&gt;&lt;br/&gt;&lt;/small&gt;&lt;/i&gt;Simpan file ini dalam nama &lt;small&gt;&lt;i&gt;install_tg2.sh&lt;/i&gt;&lt;/small&gt; dan beri dia chmod 755. &lt;br/&gt;Untuk mengeksekusinya masuk sebagai root&lt;br/&gt;&lt;br/&gt;&lt;big&gt;&lt;i&gt;&lt;small&gt;&lt;small&gt;$ su&lt;br/&gt;$ ./install_tg2.sh&lt;/small&gt;&lt;/small&gt;&lt;br/&gt;&lt;/i&gt;&lt;/big&gt;&lt;br/&gt;Setelah selesai coba eksekusi perintah &lt;i&gt;&lt;small&gt;$paster --help&lt;/small&gt;&lt;/i&gt; dan perhatikan ada section TurboGears2 atau tidak, kalau ada berarti sukses instalasinya.&lt;br/&gt;Berikutnya kita pelajari step tutorialnya &lt;a href='http://compoundthinking.com/tg2/'&gt;disini&lt;/a&gt;.&lt;br/&gt;Selamat Mencoba.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-345020375777802762?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/345020375777802762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=345020375777802762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/345020375777802762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/345020375777802762'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/05/turbogears-2-development-version-on.html' title='Turbogears 2 development version on ubuntu'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-978492541783917007</id><published>2008-05-29T13:44:00.001+07:00</published><updated>2008-05-29T13:44:05.447+07:00</updated><title type='text'>Install IronPython di Ubuntu</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Penasaran juga dengan &lt;a href='http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython'&gt;ironpython&lt;/a&gt;, terus search di google.&lt;br/&gt;Ternyata &lt;a href='http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython'&gt;ironpython&lt;/a&gt; bisa di install di &lt;a href='https://wiki.ubuntu.com/'&gt;ubuntu&lt;/a&gt;.&lt;br/&gt;Iseng coba dengan ketik &lt;i&gt;sudo apt-get install ironpython&lt;/i&gt;, ternyata ada packagenya di ubuntu hardy heron.&lt;br/&gt;Wah keren, tapi sekarang mau buat apa ya ? bingung juga, soalnya belum ada keperluan bikin program pakai python.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-978492541783917007?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/978492541783917007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=978492541783917007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/978492541783917007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/978492541783917007'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/05/install-ironpython-di-ubuntu.html' title='Install IronPython di Ubuntu'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-537554481785897617</id><published>2008-05-28T08:34:00.001+07:00</published><updated>2008-05-28T08:34:29.823+07:00</updated><title type='text'>Looking for Next Frameworks</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Another Frameworks ? lagi ? yes, definitely.&lt;br/&gt;&lt;br/&gt;Applikasi yang sedang kita buat saat ini di bangun diatas php, dan terus terang kita sedang mencari framework berikutnya. Tentu saja bukan php pilihannya, ada 2 pilihan pakai python atau java. Dua dua nya memiliki kelebihan dan kekurangan, dan yang pasti mereka sudah di skala enterprise. &lt;br/&gt;&lt;br/&gt;Framework di dunia python ada beberapa yang menarik untuk di pergunakan, &lt;a href='http://www.djangoproject.com/'&gt;Django&lt;/a&gt; dan &lt;a href='http://www.turbogears.org/'&gt;Turbogears&lt;/a&gt;. &lt;a href='http://www.djangoproject.com/'&gt;Django&lt;/a&gt; memiliki kekurangan yang saat ini sedang saya butuhkan dengan sangat, yakni tidak support dengan composite primary key didalam default ORM mereka, tetapi mereka memiliki solusi dengan membuat side-project, &lt;a href='http://code.google.com/p/django-sqlalchemy/'&gt;django-sqlalchemy&lt;/a&gt; hosting di google codes, tetapi sepertinya project ini stagnan, tidak terlalu kelihatan perkembangannya. &lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.turbogears.org/'&gt;Turbogears&lt;/a&gt; sudah memiliki integrasi dengan &lt;a href='http://www.sqlalchemy.org/'&gt;SqlAlchemy&lt;/a&gt;, tetapi masih belum default. Next version dari &lt;a href='http://www.turbogears.org/'&gt;Turbogears&lt;/a&gt; versi 2 akan membuat &lt;a href='http://www.sqlalchemy.org/'&gt;SqlAlchemy&lt;/a&gt; sebagai default ORM mereka.&lt;br/&gt;&lt;br/&gt;Why &lt;a href='http://www.sqlalchemy.org/'&gt;SqlAlchemy&lt;/a&gt; is important for me ? karena kita berusaha memakai legacy database yang sudah ada dengan berusaha meminimalkan efek perubahan struktur database karena pemakain ORM yang baru ini.&lt;br/&gt;&lt;br/&gt;Bagaimana dengan JAVA ?&lt;br/&gt;Pilihannya sudah bagus ORM-nya pakai Ibatis atau Hibernate.&lt;br/&gt;Cuman belum di coba.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-537554481785897617?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/537554481785897617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=537554481785897617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/537554481785897617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/537554481785897617'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/05/looking-for-next-frameworks.html' title='Looking for Next Frameworks'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-8172119001335997722</id><published>2008-05-14T15:43:00.002+07:00</published><updated>2008-05-14T16:08:54.124+07:00</updated><title type='text'>Trac Project management</title><content type='html'>Kita pakai &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt; sebagai project management di dalam lingkungan kerja kita.&lt;br /&gt;Featuresnya cukup banyak, yang aku suka karena dia ada link ke SVN, ada wiki buat dokumentasi, ada issue tracking dan segudang plugins dari &lt;a href="http://trac-hacks.org/"&gt;tracHack&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Trac ini berbasis web, jadi bisa diakses oleh developer dimana saja asal masih termasuk dalam jaringan kerja kita.&lt;br /&gt;&lt;br /&gt;Nah salah satu pluggin yang kita butuhkan saat ini adalah Gannt Chart, waduh susah sekali cari pluginsnya, yang setting tanggal dari masing masing task itu bisa di set di ticket systemnya. Dulu kalau tidak salah filenya dalam bentuk *.egg, tapi sekarang sepertinya sudah tidak ada.&lt;br /&gt;&lt;br /&gt;Mungkin harus cari gannt chart yang versi baru.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-8172119001335997722?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/8172119001335997722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=8172119001335997722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/8172119001335997722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/8172119001335997722'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/05/trac-project-management.html' title='Trac Project management'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-8520518117317383193</id><published>2008-04-12T10:33:00.002+07:00</published><updated>2008-04-12T10:42:14.894+07:00</updated><title type='text'>Database Designer on Linux</title><content type='html'>Hi all,&lt;br /&gt;Long time no see. Hehehe busy ya.&lt;br /&gt;Setelah lama mencari cari akhirnya menemukan juga database designer for linux.&lt;br /&gt;Namanya &lt;a href="http://www.sqlpower.ca/page/architect"&gt;PowerArchitech&lt;/a&gt;, Open Source BSD Licence, jadi bisa dipakai nih buat menggantikan ERWin / Sybase Power Designer.  &lt;a href="http://www.sqlpower.ca/page/architect"&gt;PowerArchitech&lt;/a&gt; ini dibuat pakai java5, support postgresql, mssql dan mysql. Cukuplah untuk saat ini, karena memang kebutuhan kerja nya masih pakai 3 database ini.&lt;br /&gt;&lt;br /&gt;Sebelumnya memang ada namanya &lt;a href="http://www.fabforce.net/dbdesigner4/"&gt;DBDesigner&lt;/a&gt; yang khusus untuk mysql database saja.&lt;br /&gt;&lt;br /&gt;Nanti kalau sudah mencoba PowerArchitech akan kita informkan reviewnya.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-8520518117317383193?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/8520518117317383193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=8520518117317383193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/8520518117317383193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/8520518117317383193'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2008/04/database-designer-on-linux.html' title='Database Designer on Linux'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-8134404488865941317</id><published>2007-02-27T10:29:00.001+07:00</published><updated>2007-02-27T10:45:32.255+07:00</updated><title type='text'>Turbogears and SQLAlchemy with SQLSoup</title><content type='html'>Finnaly, I have a chance to try Turbogears with sqlalchemy last night.&lt;br /&gt;I used a fresh instalation, python 2.4.1 on windows, and a python extentions on windows.&lt;br /&gt;Then I used an "offline instalation method" for TG installation, basically I download all the TG requirement files, and using my own batch file to install it.&lt;br /&gt;Then I install the SQLAlchemy manualy from egg file.&lt;br /&gt;&lt;br /&gt;so next I create a TG Project, and add&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;from turbogears.database import metadata, session&lt;br /&gt;from sqlalchemy.ext.sqlsoup import SqlSoup&lt;br /&gt;&lt;br /&gt;db = SqlSoup(metadata) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;then I test it with &lt;span style="font-weight: bold;"&gt;tg-admin shell&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;woaaaaa I can get all my legacy data with that soup ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;db.M_SITE.select()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;see, with this format db.&lt;my_table&gt;.&lt;action&gt;,  i can access all my legacy data, no more creating class&lt;br /&gt;&lt;br /&gt;but I guess, I has to make an impact somehow, I hope not the performance.&lt;br /&gt;cause I will use an assign_mapper function with this one&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-8134404488865941317?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/8134404488865941317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=8134404488865941317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/8134404488865941317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/8134404488865941317'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2007/02/turbogears-and-sqlalchemy-with-sqlsoup_27.html' title='Turbogears and SQLAlchemy with SQLSoup'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-116122672391852847</id><published>2006-10-19T09:57:00.000+07:00</published><updated>2006-10-19T09:58:43.943+07:00</updated><title type='text'>Busy session</title><content type='html'>I'm busy right now, sorry, no post, perhaps next month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-116122672391852847?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/116122672391852847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=116122672391852847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/116122672391852847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/116122672391852847'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/10/busy-session.html' title='Busy session'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-115155815429651206</id><published>2006-06-29T11:30:00.000+07:00</published><updated>2006-06-29T12:15:54.336+07:00</updated><title type='text'>dojo.io.bind</title><content type='html'>YES !&lt;br /&gt;Actualy, I tried to submit a form to our server, but it has to go through AJAX protocol. I wish I could do it on mochikit library, but in order to mr.Bob Ipolito said, "there no plan to add a POST mechanism on mochi library". So I'm stuck.&lt;br /&gt;&lt;br /&gt;Lucky me , Dojo library support it, they support form submit via XMLHTTPRequest protocol. Its little be hard to find how to do it, since dojo still under heavy development, but thanks to mr.google, heres the way I did on my code :&lt;br /&gt;&lt;br /&gt;This is part of my button action / signal&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;var my_url = this.ajax_url+"ajax/ajax.items.php?task=test";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            dojo.io.bind({ url : my_url,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                             load: function(type, data, evt)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                     { &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                          alert(type);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                          alert(data);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                          alert(evt);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                       var rows = data.rows;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                       var cols = data.columns;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                       alert(cols[0]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                       alert(rows[0]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                       the_object.value = data;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                     },&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                           formNode: getElement("aoiForm"),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                           mimetype:'text/json' });&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;You may found in this part of javascript code,  there's as simple as mochikit did. Thats why I'll stick my GET method with mochikit and do the POST method with dojo.&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-115155815429651206?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/115155815429651206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=115155815429651206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/115155815429651206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/115155815429651206'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/06/dojoiobind.html' title='dojo.io.bind'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-114420726223105942</id><published>2006-04-05T10:19:00.000+07:00</published><updated>2006-04-05T10:21:02.243+07:00</updated><title type='text'>Twisted - adbapi example</title><content type='html'>this is a simple example of adbapi use pymssql module to connect to MSSQL server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;from twisted.internet import reactor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;from twisted.enterprise import adbapi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;def getSites():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    return dbpool.runQuery("select * from m_site")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;def printResult(l):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    for item in l:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        print item&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;dbpool = adbapi.ConnectionPool("pymssql", user="sa", password="bedjo", host="192.168.31.31", database="bedjo")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;getSites().addCallback(printResult)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;reactor.callLater(4, reactor.stop)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;reactor.run()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thats all ... cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-114420726223105942?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/114420726223105942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=114420726223105942' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114420726223105942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114420726223105942'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/04/twisted-adbapi-example.html' title='Twisted - adbapi example'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-114420208510711188</id><published>2006-04-05T08:49:00.000+07:00</published><updated>2006-04-05T08:54:45.126+07:00</updated><title type='text'>pymssql - example script</title><content type='html'>This is a simple script to test a connection of pymssql.&lt;br /&gt;It's easy, but I always forgot. It seems  that I'm getting old. lol.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on win32&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Type "help", "copyright", "credits" or "license" for more information.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; import pymssql&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; con = pymssql.connect(user="sa", password="bedjo", host="192.168.31.31", database="bedjo"); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; cur = con.cursor();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; cur.execute("select * from m_site");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; print cur.rowcount;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; print cur.fetchall();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; cur.execute("insert into log_message values ('succes') ");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; con.commit();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;&gt;&gt; con.close();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thats all, the simple things to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-114420208510711188?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/114420208510711188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=114420208510711188' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114420208510711188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114420208510711188'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/04/pymssql-example-script.html' title='pymssql - example script'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-114257035841067438</id><published>2006-03-17T11:18:00.000+07:00</published><updated>2006-03-20T15:51:42.993+07:00</updated><title type='text'>Twisted - A Network Framework</title><content type='html'>Its on my radar.&lt;br /&gt;Fuih, so many application or framework come up on my radar. Why ? Its happend for my office purpose actually.  We build our integration application  on PHP front end application. But we did not decided yet our back end application. I tried to found a good platform for our back end.&lt;br /&gt;&lt;br /&gt;Zope is still my first consideration, but yes, I still have some problem to implement it. Many things come up to things. One of the main reason is ZODB. It doesnt mean I dont like it, but Zope is depend on it and it hard to remove. Some people may say, "we can build application on zope without ZODB".  But I thinks its hard.&lt;br /&gt;&lt;br /&gt;Next, is &lt;a href="http://twistedmatrix.com/"&gt;Twisted&lt;/a&gt;. I got attract to twisted by reading many blog post on python daily. Then letter on, someone drop me a pdf file about twisted. Its interesting. It has a flexible DBConnection, it has a many network protocol. I might gonna use one of those protocol for my application, but not decided yet which one of them.&lt;br /&gt;&lt;br /&gt;My application it work like this : It should be work as a robot application. It will start and monitor many transaction table. It can make transaction summarize, report and calculate many background process. It should made a history log on file or DB. It can make to daemon/service.&lt;br /&gt;At advance, it can provide an XML-RPC or SOAP, to retrieve document generate or xml data.&lt;br /&gt;It may run every 15 minutes or End of Day process.&lt;br /&gt;&lt;br /&gt;I think twisted is suite enough.&lt;br /&gt;&lt;br /&gt;But recently, Zope 3.2 come up with twisted 2.1 on it. I dont know the combination between these two, but if it does, it would be a great combination tools on hand. So what should I do ?&lt;br /&gt;Take pure twisted or Zope 3.2 with twisted included ? give me a light.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-114257035841067438?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/114257035841067438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=114257035841067438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114257035841067438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114257035841067438'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/03/twisted-network-framework.html' title='Twisted - A Network Framework'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-114249660116896889</id><published>2006-03-16T14:56:00.000+07:00</published><updated>2006-03-16T15:25:41.116+07:00</updated><title type='text'>Dojo Toolkit as my DHTML Library</title><content type='html'>A month ago, I was looking for various DHTML Library for my office project. I have define 3 DHTML groups which on my radar. Finally, none of them is fit with my requirements. Then, I saw on Mochikit mailinglist, many mochikit users take dojo toolkit as their DHTML Library.&lt;br /&gt;&lt;br /&gt;Dojo is still on beta version, but please dont ignore it, even if this is beta version, it work quite good. You may take a look at TurboAJAX site, they provide many tools build on top of Dojo Toolkit. They are an awesome product.&lt;br /&gt;&lt;br /&gt;So, After collecting many information from mochikit mailinglist, I can able to make dojo and mochikit work together. Heres the sample code on one of my page&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt; type="text/javascript" src="http://localhost/js/mochikit/MochiKit.js"&gt;&lt; / script &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt; type="text/javascript" src="http://localhost/js/dojo022/dojo.js"&gt;&lt; / script &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt; type="text/javascript" src="http://localhost/js/dojo022/src/widget/TabPane.js"&gt; &lt; / script &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt; type="text/javascript" src="http://localhost/js/inventories.js"&gt;&lt; / script &gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt; type="text/javascript"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  //initialize dojo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  dojo.require("dojo.widget.ContentPane");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  function qc_search()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  { alert("masuk sini");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    doc_manager = new DOCManager("order_response", "qc_search");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    alert("initialize");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That all part of my code. As you can see, we have to load mochikit before dojo. If not then we have to mention mochikit function completly which was ugly to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-114249660116896889?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/114249660116896889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=114249660116896889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114249660116896889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114249660116896889'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/03/dojo-toolkit-as-my-dhtml-library.html' title='Dojo Toolkit as my DHTML Library'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-114102383474448246</id><published>2006-02-27T13:34:00.000+07:00</published><updated>2006-02-27T14:03:54.776+07:00</updated><title type='text'>Thick Client or Thin Client</title><content type='html'>While I'm surf the net, I found Brad Neuberg blog entry, speak about &lt;a href="http://codinginparadise.org/weblog/2006/01/ajaxdhtml-tutorial-should-i-render-my.html"&gt;Thick Client and Thin Client architecture&lt;/a&gt;. He's clearly explain the difference between those two architecture. I believe, my current office project is Thin Client architecture, which its mean use a simple UI. On the other side, I feel that my office commarade project module is Thick Client architecture, which is heavy UI.&lt;br /&gt;&lt;br /&gt;One of readers comment mention about &lt;a href="http://qooxdoo.oss.schlund.de/"&gt;Qooxdoo&lt;/a&gt; Library for Thick Client. I've check their website, and take alook at their example/demo page. Woaa Extremerly heavy UI. I dont think I wanna use this one for my project. But, Its interesting to learn it.&lt;br /&gt;&lt;br /&gt;Other reader XFORMS, XHTML which belong to next generation of web application. He also deliver an &lt;a href="http://skimstone.x-port.net/index.php?q=introduction-to-xforms"&gt;introduction&lt;/a&gt; link, I should have to take alook at it and learn it little bit. Its W3C standard complient for web 2.0 application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-114102383474448246?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/114102383474448246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=114102383474448246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114102383474448246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114102383474448246'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/02/thick-client-or-thin-client.html' title='Thick Client or Thin Client'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-114066339711825822</id><published>2006-02-23T09:24:00.000+07:00</published><updated>2006-02-23T09:56:39.863+07:00</updated><title type='text'>Desperately need for DHTML Effect Library</title><content type='html'>Currently, I'm joining our company developer teams to build our internal integrated system. It will build using some of open source project, such as PHP, MySQL, AJAX, MAMBO, and so on. The biggest challange we've found is The Rich GUI Web. Yes, we dont have any skill about this, but we will take this path.&lt;br /&gt;&lt;br /&gt;So far for The AJAX toolkit is solve through &lt;a href="www.mochikit.com/"&gt;Mochikit&lt;/a&gt; which provide JSON as their primary data exchange format, and we realy happy about it. It's work now with our application. But &lt;a href="www.mochikit.com/"&gt;Mochikit&lt;/a&gt; is lag of visual effect or widget. I hope their &lt;a href="http://script.aculo.us/"&gt;script.aculo.us&lt;/a&gt; port version will be deliver as soon as posible.&lt;br /&gt;&lt;br /&gt;We had many candidate for our DHTML Effect Library, and it hard to choose one of them, because it will need time to learn and the other limitation is our skill in javascript arena.&lt;br /&gt;Here the list :&lt;br /&gt;- &lt;a href="http://www.backbase.com/"&gt;BACKBASE&lt;/a&gt; Community Edition --&gt; we had a problem with their licencing term.&lt;br /&gt;- &lt;a href="http://script.aculo.us/"&gt;Script.aculo.us&lt;/a&gt;, &lt;a href="http://openrico.org/"&gt;Open RICO&lt;/a&gt;, &lt;a href="http://moofx.mad4milk.net/"&gt;Moo.fx&lt;/a&gt; which are base of &lt;a href="http://prototype.conio.net/"&gt;Prototype&lt;/a&gt; AJAX Library --&gt; Prototype doesnt support JSON right now.&lt;br /&gt;- &lt;a href="http://developer.yahoo.net/yui/"&gt;Yahoo UI Library&lt;/a&gt; provide by yahoo teams  ---&gt; just release in this week&lt;br /&gt;&lt;br /&gt;So, while we waiting to choose the right one, we go directly by our self. We search and download available DHTML trick and try to run it on our application. We also had an idea to go get hire someone out there whos expert on javascript arena, but its hard to find around our city.&lt;br /&gt;&lt;br /&gt;If you had any DHTML Effect Library candidate, please let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-114066339711825822?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/114066339711825822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=114066339711825822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114066339711825822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114066339711825822'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/02/desperately-need-for-dhtml-effect.html' title='Desperately need for DHTML Effect Library'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-114022980479793108</id><published>2006-02-18T09:15:00.000+07:00</published><updated>2006-02-18T09:30:04.816+07:00</updated><title type='text'>PyMSSQL got broken</title><content type='html'>Woa, something goes wrong on my TG installation.&lt;br /&gt;&lt;br /&gt;It said an error message "can't commit" when I tried to execute "DBNetLib ... bla bla bla ... server does not exist ... bla bla bla ... access denied". I dont know why it happend, but I guess it happend because I just re-install my operating system last time. So, I had to go to &lt;a href="http://www.sqlobject.org/"&gt;sqlobject site&lt;/a&gt;, &lt;a href="http://pymssql.sourceforge.net/"&gt;pyMSSQL site&lt;/a&gt;, and &lt;a href="http://www.turbogears.com/"&gt;turbogear site&lt;/a&gt;. Finaly, I found something on python ADO-DB site, Its about an &lt;a href="http://starship.python.net/crew/mhammond/win32/"&gt;extention of python on Windows&lt;/a&gt;. So, after I installed this extention, my pyMSSQL can connected to our SQL Server Machine.&lt;br /&gt;&lt;br /&gt;Then here comes another error message ... "can't commit" when I execute "tg-admin sql create" which are create our model class. It contains 5 classes. I dont know why, but I'll solve it somehow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-114022980479793108?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/114022980479793108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=114022980479793108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114022980479793108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/114022980479793108'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/02/pymssql-got-broken.html' title='PyMSSQL got broken'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-113902233509833693</id><published>2006-02-04T09:58:00.000+07:00</published><updated>2006-02-04T10:05:35.110+07:00</updated><title type='text'>Activate TG 0.9</title><content type='html'>A while back, I had a TG 0.88 installed on my machine, and then accidently I execute the setup.py intall from my TG trunk directory, and wollaa.... my TG broke down. I dont know why. Sorry, Im just a newbie on python world, so after long googling, I found that I execute TG 0.9 development source code to replace my TG 0.88.&lt;br /&gt;&lt;br /&gt;So, in order to make my TG running again, I had to use TG 0.9, I dont mind about it, so here's the stuff that I had to execute first :&lt;br /&gt;&lt;br /&gt;1. Install the pre-request. The RuleDispatch&lt;br /&gt;&lt;span style="font-style: italic;"&gt;easy_install -f http://peak.telecommunity.com/snapshots/ RuleDispatch&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. go to the TG 0.9 trunk directory and run this below command&lt;br /&gt;&lt;span style="font-style: italic;"&gt;python setup.py develop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. go to on eachside of thirdparty directory which are cherrypy and sqlobject and run this below command on each of them &lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;python -c "import setuptools; execfile('setup.py')" develop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Then the lasting is install the Nose for testing purpose&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;easy_install nose&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and wollaa.... my TG is back&lt;br /&gt;hehehehehehe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-113902233509833693?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/113902233509833693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=113902233509833693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113902233509833693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113902233509833693'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/02/activate-tg-09.html' title='Activate TG 0.9'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-113893479773802771</id><published>2006-02-03T09:37:00.000+07:00</published><updated>2006-02-03T09:55:14.363+07:00</updated><title type='text'>Mochikit on PHP</title><content type='html'>Hi there, hehehe, frankly enough huh ?&lt;br /&gt;yes, I manage to run &lt;a href="http://www.mochikit.com/"&gt;mochikit&lt;/a&gt; on my office project, built on top of php.&lt;br /&gt;Here's the tips :&lt;br /&gt;1. on your html file put a javascript like this one :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;script type="text/javascript"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &lt;!--&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  // define the DOCManager Object classes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  DOCManager = function()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  {   // define the property&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      this.target_div = getElement("response");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      this.parameter  = "&amp;company_id="+ getElement("company_id").value +&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                        "&amp;grin_type="+ getElement("grin_type").value +&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                        "&amp;grin_no="+ getElement("grin_no").value +&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                        "&amp;ref_type="+ getElement("ref_type").value +&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                        "&amp;ref_no="+ getElement("ref_no").value +&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                        "&amp;order_no="+ getElement("order_no").value;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      // bind the methods&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      bindMethods(this);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;             &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  // define the DOCManager methods&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  DOCManager.prototype =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  {   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      "loadDOC" : function()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      {  alert( " will gonna define the JSON Doc" );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         var doc = loadJSONDoc("{FRONTCOMPONENTURL}ajax/ajax.bedjo.php?task=search"+&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                               this.parameter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                              ); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         alert( " define DOC, and we will proccess the doc" );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         doc.addCallbacks(this.processDOC, this.errorDOC);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         alert( "DOC process complete" );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      },&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      "processDOC" : function(data)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      {  alert("come to processDOC baby");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         var rows = data.rows;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         var cols = data.columns;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         var newTable = TABLE({"id":"repeat_table", "name":"repeat_table", &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                               "width":"100%", "border":"0", "cellpadding":"1",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                               "cellspacing":"0"},&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                            THEAD(null, map(this.colDisplay, cols)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                            ),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                            TFOOT(null, TR(null,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                           TD({"colspan":"3", "class":"sectiontableheader"}, " "),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                           TD({"colspan":"5", "class":"sectiontableheader"}, " ")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                                          )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                            ),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                            TBODY(null, map(this.rowDisplay, rows)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                            )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                           );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         swapDOM('response', newTable);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      },&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      "errorDOC" : function(data)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      { &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         alert( data.message );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      },&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      "rowDisplay" : function (data) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;          return TR({"class":"sectiontableentry2"}, map(partial(TD, null), data)); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      },&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      "colDisplay" : function (data) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;          return TR(null, map(partial(TD, {"class":"sectiontableheader"}), data)); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  function search_grin()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  { doc_manager = new DOCManager();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    doc_manager.loadDOC();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; //--&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;!--&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt; &lt;br /&gt;  // define the DOCManager Object classes&lt;br /&gt;  DOCManager = function()&lt;br /&gt;  {   // define the property&lt;br /&gt;      this.target_div = getElement("response");&lt;br /&gt;      this.parameter  = "&amp;company_id="+ getElement("company_id").value +&lt;br /&gt;                        "&amp;grin_type="+ getElement("grin_type").value +&lt;br /&gt;                        "&amp;grin_no="+ getElement("grin_no").value +&lt;br /&gt;                        "&amp;ref_type="+ getElement("ref_type").value +&lt;br /&gt;                        "&amp;ref_no="+ getElement("ref_no").value +&lt;br /&gt;                        "&amp;order_no="+ getElement("order_no").value;&lt;br /&gt;      // bind the methods&lt;br /&gt;      bindMethods(this);&lt;br /&gt;  };&lt;br /&gt;            &lt;br /&gt;  // define the DOCManager methods&lt;br /&gt;  DOCManager.prototype =&lt;br /&gt;  {  &lt;br /&gt;      "loadDOC" : function()&lt;br /&gt;      {  alert( " will gonna define the JSON Doc" );&lt;br /&gt;         var doc = loadJSONDoc("{FRONTCOMPONENTURL}ajax/ajax.bedjo.php?task=search"+&lt;br /&gt;                               this.parameter&lt;br /&gt;                              );&lt;br /&gt;         alert( " define DOC, and we will proccess the doc" );&lt;br /&gt;         doc.addCallbacks(this.processDOC, this.errorDOC);&lt;br /&gt;         alert( "DOC process complete" );&lt;br /&gt;      },&lt;br /&gt;     &lt;br /&gt;      "processDOC" : function(data)&lt;br /&gt;      {  alert("come to processDOC baby");&lt;br /&gt;         var rows = data.rows;&lt;br /&gt;         var cols = data.columns;&lt;br /&gt;         var newTable = TABLE({"id":"repeat_table", "name":"repeat_table",&lt;br /&gt;                               "width":"100%", "border":"0", "cellpadding":"1",&lt;br /&gt;                               "cellspacing":"0"},&lt;br /&gt;                            THEAD(null, map(this.colDisplay, cols)&lt;br /&gt;                            ),&lt;br /&gt;                            TFOOT(null, TR(null,&lt;br /&gt;                                           TD({"colspan":"3", "class":"sectiontableheader"}, " "),&lt;br /&gt;                                           TD({"colspan":"5", "class":"sectiontableheader"}, " ")&lt;br /&gt;                                          )&lt;br /&gt;                            ),&lt;br /&gt;                            TBODY(null, map(this.rowDisplay, rows)&lt;br /&gt;                            )&lt;br /&gt;                           );&lt;br /&gt;         swapDOM('response', newTable);&lt;br /&gt;      },&lt;br /&gt;     &lt;br /&gt;      "errorDOC" : function(data)&lt;br /&gt;      {&lt;br /&gt;         alert( data.message );&lt;br /&gt;      },&lt;br /&gt;     &lt;br /&gt;      "rowDisplay" : function (data)&lt;br /&gt;      {&lt;br /&gt;          return TR({"class":"sectiontableentry2"}, map(partial(TD, null), data));&lt;br /&gt;      },&lt;br /&gt;     &lt;br /&gt;      "colDisplay" : function (data)&lt;br /&gt;      {&lt;br /&gt;          return TR(null, map(partial(TD, {"class":"sectiontableheader"}), data));&lt;br /&gt;      }&lt;br /&gt;     &lt;br /&gt;  };&lt;br /&gt; &lt;br /&gt;  function search_grin()&lt;br /&gt;  { doc_manager = new DOCManager();&lt;br /&gt;    doc_manager.loadDOC();&lt;br /&gt;  };&lt;br /&gt; &lt;br /&gt; //--&gt;&lt;br /&gt; // define the DOCManager Object classes&lt;br /&gt; DOCManager = function()&lt;br /&gt; {   // define the property&lt;br /&gt;     this.target_div = getElement("response");&lt;br /&gt;     this.parameter  = "&amp;company_id="+ getElement("company_id").value +&lt;br /&gt;                       "&amp;amp;grin_type="+ getElement("grin_type").value +&lt;br /&gt;                       "&amp;grin_no="+ getElement("grin_no").value +&lt;br /&gt;                       "&amp;amp;ref_type="+ getElement("ref_type").value +&lt;br /&gt;                       "&amp;ref_no="+ getElement("ref_no").value +&lt;br /&gt;                       "&amp;amp;order_no="+ getElement("order_no").value;&lt;br /&gt;     // bind the methods&lt;br /&gt;     bindMethods(this);&lt;br /&gt; };&lt;br /&gt;          &lt;br /&gt; // define the DOCManager methods&lt;br /&gt; DOCManager.prototype =&lt;br /&gt; { &lt;br /&gt;     "loadDOC" : function()&lt;br /&gt;     {  alert( " will gonna define the JSON Doc" );&lt;br /&gt;        var doc = loadJSONDoc("{FRONTCOMPONENTURL}ajax/ajax.bedjo.php?task=search"+&lt;br /&gt;                              this.parameter&lt;br /&gt;                             );&lt;br /&gt;        alert( " define DOC, and we will proccess the doc" );&lt;br /&gt;        doc.addCallbacks(this.processDOC, this.errorDOC);&lt;br /&gt;        alert( "DOC process complete" );&lt;br /&gt;     },&lt;br /&gt;   &lt;br /&gt;     "processDOC" : function(data)&lt;br /&gt;     {  alert("come to processDOC baby");&lt;br /&gt;        var rows = data.rows;&lt;br /&gt;        var cols = data.columns;&lt;br /&gt;        var newTable = TABLE({"id":"repeat_table", "name":"repeat_table",&lt;br /&gt;                              "width":"100%", "border":"0", "cellpadding":"1",&lt;br /&gt;                              "cellspacing":"0"},&lt;br /&gt;                           THEAD(null, map(this.colDisplay, cols)&lt;br /&gt;                           ),&lt;br /&gt;                           TFOOT(null, TR(null,&lt;br /&gt;                                          TD({"colspan":"3", "class":"sectiontableheader"}, " "),&lt;br /&gt;                                          TD({"colspan":"5", "class":"sectiontableheader"}, " ")&lt;br /&gt;                                         )&lt;br /&gt;                           ),&lt;br /&gt;                           TBODY(null, map(this.rowDisplay, rows)&lt;br /&gt;                           )&lt;br /&gt;                          );&lt;br /&gt;        swapDOM('response', newTable);&lt;br /&gt;     },&lt;br /&gt;   &lt;br /&gt;     "errorDOC" : function(data)&lt;br /&gt;     {&lt;br /&gt;        alert( data.message );&lt;br /&gt;     },&lt;br /&gt;   &lt;br /&gt;     "rowDisplay" : function (data)&lt;br /&gt;     {&lt;br /&gt;         return TR({"class":"sectiontableentry2"}, map(partial(TD, null), data));&lt;br /&gt;     },&lt;br /&gt;   &lt;br /&gt;     "colDisplay" : function (data)&lt;br /&gt;     {&lt;br /&gt;         return TR(null, map(partial(TD, {"class":"sectiontableheader"}), data));&lt;br /&gt;     }&lt;br /&gt;   &lt;br /&gt; };&lt;br /&gt;&lt;br /&gt; function search_grin()&lt;br /&gt; { doc_manager = new DOCManager();&lt;br /&gt;   doc_manager.loadDOC();&lt;br /&gt; };&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Please remove the // sign in front of the &lt;script&gt;&lt;/script&gt; tag, since It forbiden in here&lt;br /&gt;and you have to made an on-click action on your submit-button, I'll bet you know what I meant.&lt;br /&gt;&lt;br /&gt;2. Create the ajax file , I named it  ajax.bedjo.php, and heres the sample code with a JSON and XML return doc :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;$task = $_REQUEST["task"];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;switch ( $task )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  case 'create':&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        header("Content-type: text/xml");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo "";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo "&lt;response&gt;";&lt;/response&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo "&lt;action id="\"&gt;";&lt;/action&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo $action;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo "";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo "&lt;success&gt;&lt;id&gt;kembang jepun kembang krampung, aku mlembung kakean diambung &lt;/id&gt;&lt;/success&gt;";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo "";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  case 'find':&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '[{';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '"id" : "8370",';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '"name" : "KANG BEDJO EMANG EMOY"';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '},';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '{';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '"id" : "8360",';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '"name" : "TESTING SODARA SODARA SEKALIAN"';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '}]';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  case 'list':&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '{';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '    "columns": [[ "domain_name", "create_date", "expiry_date", "organization_name"]],';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '    "rows": [';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '        ["json.org", "2000-05-08", "2006-05-08", "Douglas Crockford"],';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '        ["mochibot.com", "2005-02-10", "2007-02-10", "Jameson Hsu"],';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '        ["pythonmac.org", "2003-09-24", "2006-09-24", "Bob Ippolito"],';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '        ["undefined.org", "2000-01-10", "2006-01-10", "Robert J Ippolito"],';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '        ["python.org", "1995-03-27", "2007-03-28", "Python Software Foundation"]';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '    ]';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        echo '}';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Ok thats all, now u can use it. Anyway this is a simple tutorial on using &lt;a href="http://www.mochikit.com/"&gt;mochikit&lt;/a&gt; with php.&lt;br /&gt;&lt;br /&gt;Ok, cu next&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-113893479773802771?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/113893479773802771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=113893479773802771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113893479773802771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113893479773802771'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/02/mochikit-on-php.html' title='Mochikit on PHP'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-113711801068879004</id><published>2006-01-13T08:47:00.000+07:00</published><updated>2006-01-13T09:12:48.973+07:00</updated><title type='text'>pymssql</title><content type='html'>After tried to run &lt;a href="http://www.turbogears.org/docs/wiki20/20MinuteWiki.mov"&gt;wiki20 demo&lt;/a&gt;,  its time to try to connect to MS-SQL Server Database. The wiki20 demo used &lt;a href="http://www.sqlite.org/"&gt;SQLITE&lt;/a&gt; db for their database backend. Its mean I have to modify the dev.conf file and change the &lt;a href="http://sqlobject.org/"&gt;SQLOBJECT&lt;/a&gt; db-URI from SQLITE configuration to MS-SQL configuration. But I remembered on my last visit to sqlobject, it seems they'd not yet support MS-SQL DB. So I take a chance to look at their website again and they said they on version 0.7, so I check my sqlobject package version, its older than the one in their website.&lt;br /&gt;&lt;br /&gt;So, I go to dos-prompt and try to update our turbogears package with this command : "easy_install -f http://www.turbogears.org/download/index.html TurboGears", and its get all the latest package from &lt;a href="http://www.turbogears.org"&gt;TURBOGEARS&lt;/a&gt; website, such as &lt;a href="http://www.cherrypy.org/"&gt;cherrypy 2.1.1&lt;/a&gt; and &lt;a href="http://sqlobject.org/"&gt;sqlobject 0.7&lt;/a&gt;. Then I had to download the &lt;a href="http://pymssql.sourceforge.net/"&gt;pymssql,&lt;/a&gt; the python binding for MSSQL DB, I take the latest one, and installed onto my machine.&lt;br /&gt;&lt;br /&gt;Then I take my dev.conf file on my project directory, and give the MSSQL DB-URI on it, and then I run "tg-admin sql create" on my dos-prompt. Woa, it says "Using database URI mssql://..." which mean I succesfully create all my object into MSSQL DB-URI.&lt;br /&gt;&lt;br /&gt;Now, Its time to dig deep into SQLOBJECT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-113711801068879004?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/113711801068879004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=113711801068879004' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113711801068879004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113711801068879004'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/01/pymssql.html' title='pymssql'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-113651451098516260</id><published>2006-01-06T09:17:00.000+07:00</published><updated>2006-01-06T09:28:30.996+07:00</updated><title type='text'>Installed TurboGears</title><content type='html'>Hi there, This week I tried to give a look at turbogears.&lt;br /&gt;I'd go to &lt;a href="http://www.turbogears.org/"&gt;turbogears project homepage&lt;/a&gt;  and start to took how to install the software on my Windowz machine with Python 2.4.1 engine.&lt;br /&gt;&lt;br /&gt;Here's the step that I take :&lt;br /&gt;&lt;br /&gt;1. download &lt;a href="http://www.turbogears.org/download/ez_setup.py"&gt;ez_setup.py&lt;/a&gt;&lt;br /&gt;2. go to dos-prompt and run ez_setup.py, after it done then closed the dos-prompt.&lt;br /&gt;3. after that... edit the environment variable and put ";C:\Python24;C:\Python24\Scripts" from My System Computer environtment variable edit box.&lt;br /&gt;4. go to dos-prompt and go to your project directory and run easy_install -f http://www.turbogears.org/download/index.html TurboGears. It will imediatly download all the turbogears packages and install automaticaly into my windowz machine.&lt;br /&gt;5. your packages should get download and install now.&lt;br /&gt;6. If you wanna use the SQL Lite DB, then you have to download the python to sqlite binding. I take &lt;a href="http://initd.org/tracker/pysqlite"&gt;pysqlite&lt;/a&gt;. Run it and it will install on your windows machine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then, I download &lt;a href="http://www.turbogears.org/docs/wiki20/20MinuteWiki.mov"&gt;Wiki20 Demo Movies&lt;/a&gt; and try to run it on my machine.&lt;br /&gt;So far so good. I'll see what I can do next. CU Next&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-113651451098516260?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/113651451098516260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=113651451098516260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113651451098516260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113651451098516260'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2006/01/installed-turbogears.html' title='Installed TurboGears'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-113230100902925362</id><published>2005-11-18T14:02:00.000+07:00</published><updated>2005-11-18T15:10:04.110+07:00</updated><title type='text'>Zope SIP Application</title><content type='html'>There was an anouncement on &lt;a href="http://www.pythonware.com/daily"&gt;daily python&lt;/a&gt; about &lt;a href="http://sourceforge.net/projects/sampleinventory"&gt;Simple Inventory Program&lt;/a&gt;, and I feel interest with this program. They said The SIP can run without ZODB instead they use Sybase and PostgreSQL as their Database backend.&lt;br /&gt;&lt;br /&gt;If it is true, then the SIP wont store any metadata on ZODB, cause they dont use it. Then this is the feature that I've been looking for. This program run on top of Zope 3. On Zope 2.X, all our metadata should store at ZODB, now in Zope 3 it can be bypassed as The SIP claim. Another interesting one is SQLOS component which they use.&lt;br /&gt;&lt;br /&gt;It would be good, since I like the Zope and their framework, but I dont like the way Zope 2.x store the metadata, that why I look on an other solution which Django and TurboGears offers. If I can make my application work like The SIP with Zope 3, I hope Twisted will join with Zope to give me an great power.&lt;br /&gt;&lt;br /&gt;I'll check on this one later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-113230100902925362?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/113230100902925362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=113230100902925362' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113230100902925362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113230100902925362'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/11/zope-sip-application.html' title='Zope SIP Application'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-113176963754287200</id><published>2005-11-12T11:17:00.000+07:00</published><updated>2005-11-12T11:27:17.553+07:00</updated><title type='text'>TG with CatWalk</title><content type='html'>Its bean a while since my last try on TurboGears, seem they move quite fast. They had a CatWalk right now and they set up on it. So right now you will have a administration backend features. It will similar to the one that Django had.  It sound promissing.&lt;br /&gt;&lt;br /&gt;Also, I'd check on Twisted, a python network application framework. One of TG User, said that it would posible for TG with their CheryyPy to run with Twisted. I dont know the teory behind it, but it might so. It realy interesting, since my office application would need some of Twisted Features. It would be good if we can utilize it with TG.&lt;br /&gt;&lt;br /&gt;I'm quite busy right now with my php office application. I'll check TG again later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-113176963754287200?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/113176963754287200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=113176963754287200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113176963754287200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/113176963754287200'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/11/tg-with-catwalk.html' title='TG with CatWalk'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112718424323345446</id><published>2005-09-20T09:34:00.000+07:00</published><updated>2005-09-20T09:44:03.236+07:00</updated><title type='text'>TurboGear : Another Identified Python Web Framework.</title><content type='html'>For loast couple days, I watch a new python web framework come in out. It named &lt;a href="http://www.turbogears.org"&gt;TurboGear&lt;/a&gt;. This web framework based on CherryPy, combined with SQLObject ORM, Kid template engine, and Mochikit javascript library.&lt;br /&gt;&lt;br /&gt;As you know before, theres already a new python web framework come in on a last couple months, I was &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;. I had been dive in it, until now. So, What is the different between the &lt;a href="http://www.turbogears.org"&gt;TurboGear&lt;/a&gt; and&lt;a href="http://www.djangoproject.com/"&gt; Django&lt;/a&gt; ? The way they create the framework. Django had beed create from scracth. TurboGear is take available tools out there and combined it to work.&lt;br /&gt;&lt;br /&gt;I dont know which one of this framework gonna be survive.&lt;br /&gt;The most interesting part of TurboGear get my eyes is AJAX features.&lt;br /&gt;I think I'm gonna take a look on it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112718424323345446?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112718424323345446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112718424323345446' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112718424323345446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112718424323345446'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/09/turbogear-another-identified-python.html' title='TurboGear : Another Identified Python Web Framework.'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112677320694881573</id><published>2005-09-15T14:55:00.000+07:00</published><updated>2005-09-15T15:33:26.953+07:00</updated><title type='text'>ActiveGrid</title><content type='html'>Today, Mr.Reza Pahlevi, point me to &lt;a href="http://www.activegrid.com"&gt;ActiveGrid Project&lt;/a&gt;. Its good to hear one of my friend had an  eye on linux and python. Its a project which gonna bring linux further. &lt;br /&gt;&lt;br /&gt;Here, you'll deploy all your application onto couple linux box worked as a grid computing. It will use Linux , Apache, MySQL, and P-Programming language capability.  So, its mean you can bring all your linux box, set them up as a linux box and tranform them into grid computing readibly, then deploy your application in it.&lt;br /&gt;&lt;br /&gt;Its good right ?, cause, it would be a good and cheap solution. Build an Grid Computing using an Intel based architecture with a no-cost Linux Operating System, and also Develop your application using LAMP.&lt;br /&gt;&lt;br /&gt;I had to eye on it man. You too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112677320694881573?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112677320694881573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112677320694881573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112677320694881573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112677320694881573'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/09/activegrid.html' title='ActiveGrid'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112658444774984400</id><published>2005-09-13T10:02:00.000+07:00</published><updated>2005-09-13T11:07:27.763+07:00</updated><title type='text'>Multiple Column on Primary Key</title><content type='html'>Some People might known about this topic, specialy if you one of DBA or DB Architect.&lt;br /&gt;Its common used on Client/Server Technology, or Datawarehouse.&lt;br /&gt;&lt;br /&gt;The purpose of Multiple Column on Primary Key Definition is Referential Integrity.&lt;br /&gt;We can adopt this integrity into many table through foreign key mechanism, and it is help alot.&lt;br /&gt;&lt;br /&gt;But, when you decided to used a web based application, you might face unflexiblity if you try to use this method. Unflexible huh ? yes, because a web based application always mention every single record with one unique id, based on a single column primary key. Thats why its not flexible for web based developer view.&lt;br /&gt;&lt;br /&gt;Lets assume, If we decided to use a single column primary key, we might have a de-normalize problem. The DB Design might "not good" enough. Next, when soft.developer try to create their own query, they might face an "unnecessary column" in join command, since the term of "single column" in this case is not a subtitute column rather than an added column.&lt;br /&gt;&lt;br /&gt;On the other side, If we keep moving with a Multiple Column on Primary Key, it will put an extra effort on an application for web developer when they define the CRUD (Create, Replace, Update and Delete) page.&lt;br /&gt;&lt;br /&gt;So, how to solve this problem ?&lt;br /&gt;&lt;br /&gt;For now, I choose a Multiple Column on Primary Key Design. It still made me satisfy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112658444774984400?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112658444774984400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112658444774984400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112658444774984400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112658444774984400'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/09/multiple-column-on-primary-key.html' title='Multiple Column on Primary Key'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112590321987382924</id><published>2005-09-05T13:44:00.000+07:00</published><updated>2005-09-05T13:53:39.876+07:00</updated><title type='text'>I cant wait with Zope3</title><content type='html'>Realy, I can not wait to play with Zope 3 within Plone environtment. The current Plone still use Zope 2.8 engine with Five technology in it. U know, I dont think it would be good for me to put my application on top of The current plone. Why ? because I want my application should run on top of Zope 3. Thats why I can not wait anymore. Any idea ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112590321987382924?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112590321987382924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112590321987382924' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112590321987382924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112590321987382924'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/09/i-cant-wait-with-zope3.html' title='I cant wait with Zope3'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112538464176089167</id><published>2005-08-30T13:46:00.000+07:00</published><updated>2005-08-30T13:50:41.763+07:00</updated><title type='text'>WSGI</title><content type='html'>I like this one.&lt;br /&gt;&lt;br /&gt;Yes, with a WSGI included, I can able to create an application without install a Web Server. &lt;br /&gt;It suited for my notebook.  It doesnt require much memory and cpu process, but It has all the basic feature.&lt;br /&gt;&lt;br /&gt;Django support WSGI, thats why I like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112538464176089167?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112538464176089167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112538464176089167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112538464176089167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112538464176089167'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/08/wsgi.html' title='WSGI'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112478336704418274</id><published>2005-08-23T14:28:00.000+07:00</published><updated>2005-08-23T14:51:19.150+07:00</updated><title type='text'>I take Django</title><content type='html'>Its been a while since I started take a play with django web framework. I run their tutorial and take alook how to deal with it. At the moment, I compare django with plone. I like plone and I wish to used it as my production area, but I got stuck with their SQL Storage capability.&lt;br /&gt;&lt;br /&gt;Plone allows you to store your data on any other RDBMS like MS-SQL, Oracle, PostgreSQL and etc. But, Plone required to store your object metadata at ZODB, and it must. This is it. This is the one that I dont want, Its mean, as my RDBMS data grows, then my metadata on ZODB will grows either. I dont want it. Thats why I keep delay my application to jump to Plone.&lt;br /&gt;&lt;br /&gt;Then, I try to find other solution. I was take look at CherryPy, Webware, Quixote, and Ruby on Rail. I do like RoR and the features they have. It was amazing compare to Webware and Quixote. I want to have a python as my chosen language, I dont want to go to RoR. Then Django came. It made an explotion on Daily Python WebLog. Then I decided to take alook on it. It should be worted to test.&lt;br /&gt;&lt;br /&gt;Now, I have a 2 nice web framework. &lt;a href="http://www.plone.org/"&gt;Plone&lt;/a&gt; for Protoyping and &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt; for production area.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112478336704418274?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112478336704418274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112478336704418274' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112478336704418274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112478336704418274'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/08/i-take-django.html' title='I take Django'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112409026870799014</id><published>2005-08-15T14:12:00.000+07:00</published><updated>2005-08-15T14:17:48.713+07:00</updated><title type='text'>The Django Tutorial</title><content type='html'>I've finaly finish to learn the first series of Django Tutorial.&lt;br /&gt;I'm still amase with the way django works. Its looks like rails.&lt;br /&gt;Even I never user rails completely.&lt;br /&gt;&lt;br /&gt;Good Job Django Team. !&lt;br /&gt;I'll wait for your release version, and now, I shall continue my learning cycle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112409026870799014?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112409026870799014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112409026870799014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112409026870799014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112409026870799014'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/08/django-tutorial.html' title='The Django Tutorial'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112381708350574593</id><published>2005-08-12T10:18:00.000+07:00</published><updated>2005-08-12T10:24:43.510+07:00</updated><title type='text'>Plone 2.1 and Django Source</title><content type='html'>Plone 2.1 will release by www.plone.org. Now they provide a release candidate version. I'm able to download it and install it. The good thing is my ZBedjo component was able to install-in it smootly.&lt;br /&gt;Will see about it.&lt;br /&gt;&lt;br /&gt;I just got to use tortoise SVN client to grab django source code with a little bit problem, which is our proxy squid wont allow me to get the source. After fix by our network admin, I'm able to get the source, now i need to learn how to use it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112381708350574593?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112381708350574593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112381708350574593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112381708350574593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112381708350574593'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/08/plone-21-and-django-source.html' title='Plone 2.1 and Django Source'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112167426063137837</id><published>2005-07-18T14:24:00.000+07:00</published><updated>2005-07-18T15:12:04.043+07:00</updated><title type='text'>Django : Python on Rails ?</title><content type='html'>Matt Croydon on planetpython ask about the posibilities of &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt; to be come a "Python on Rails?". Yes, It looks like rails. Matt give a suggestion to put a tiny webserver like Rails did. Rails use a webrick.&lt;br /&gt;&lt;br /&gt;This is interesting, you can build a web based application in a minute, fast enough. Yes it was like Rails. I think we should try on it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112167426063137837?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112167426063137837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112167426063137837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112167426063137837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112167426063137837'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/07/django-python-on-rails.html' title='Django : Python on Rails ?'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112139379539240101</id><published>2005-07-15T09:02:00.000+07:00</published><updated>2005-07-15T09:16:35.396+07:00</updated><title type='text'>Startin' play with Zope</title><content type='html'>It's been 3 months now since I decided to install a copy of Zope 2.7 on my windows desktop.&lt;br /&gt;After that, I try zope 2.x family, plone 2.0.5 and Zope X3. Its a good product which can work as a web portal, web framework, application server. Yes, not all of zope features I use it right now, but it sound promising for my next gear, at least another gear for next 5 year from now on.&lt;br /&gt;&lt;br /&gt;Last year, I decided to left my DBA World, and decided to come to open source community. Since then I watch all the open source language such as php, perl, python, ruby, and qt.  After spend some time to research on it, and support from some friends, I decided to move to php and python. Allright u may arque it, but its allready my decision. :D&lt;br /&gt;&lt;br /&gt;Back to Zope, I made a small mistake couple days ago. I learned with my Zope X3 to looking around what he can do, and letter on, while I restarted my Desktop, suddenly my Zope X3 default homepage changed. When I installed it at the first time, all the menu is english language, and then it become german language. Geeez man, I can not read it, and I dont know how to switch it back to english language.&lt;br /&gt;&lt;br /&gt;What I did next is,  unistalled my Zope X3 and reinstall it again , but the german language still appear. What should I do man ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112139379539240101?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112139379539240101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112139379539240101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112139379539240101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112139379539240101'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/07/startin-play-with-zope.html' title='Startin&apos; play with Zope'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14408514.post-112113924330951338</id><published>2005-07-12T10:33:00.000+07:00</published><updated>2005-07-12T10:34:39.853+07:00</updated><title type='text'>Hello World</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic; color: rgb(255, 102, 102);"&gt;Hello World&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14408514-112113924330951338?l=b3d70.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://b3d70.blogspot.com/feeds/112113924330951338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14408514&amp;postID=112113924330951338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112113924330951338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14408514/posts/default/112113924330951338'/><link rel='alternate' type='text/html' href='http://b3d70.blogspot.com/2005/07/hello-world.html' title='Hello World'/><author><name>kang bedjo</name><uri>http://www.blogger.com/profile/15026495898312217641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_y7Pgzja3w14/SqsSjtrgF6I/AAAAAAAAA6A/REAqlcKR0-E/S220/bedjo.jpg'/></author><thr:total>0</thr:total></entry></feed>
