Daku sudah menggunakan PenguinTV cukup lama. PenguinTV 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.
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.
Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts
Thursday, August 12, 2010
Thursday, November 19, 2009
Membuat applikasi baru di dalam pinax
So, setelah kita belajar meng-install pinax, berikutnya adalah membuat applikasi di dalam pinax.
Step nya sebagai berikut :
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.
(pinax-env)$ cd mysite
(pinax-env)$ python manage.py runserver
2. Setelah server kita bisa di start, kita lihat di web-browser kita di http://localhost:8000, dan mari kita coba untuk login.
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.
<li id="tab_my_app">{% trans "My App" %}</li>
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 :
<li id="tab_my_app"><a href="{% url my_app_index %">{% trans "My App" %} </a> </li>
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".
5. Nah alamat url "my_app_index" tersebut berada dimana ? tentu saja dia harus berada didalam applikasi my_app kita. Mari kita buat applikasi kita di dalam pinax terlebih dahulu, dengan sintak :
(pinax-env)$ python manage.py startapp my_app
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.
(pinax-env)$ mv my_app/ apps
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 :
(r'^my_app/', include('my_app.urls')),
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". 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 :
from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template
urlpatterns = patterns('', url(r' ^$', direct_to_template, {"template": "my_app/index.html"}, name="my_app_index" ),
)
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 :
(pinax-env)$ mkdir templates/my_app
11. Setelah itu kita buat file index.html di dalam directory template my_app, dan berisikan sintak sintak html seperti di bawah ini :
{% extends "site_base.html" %}
{% load i18n %}
{% block head_title %}{% trans "My App" %}{% endblock %}
{% block body %}
{% blocktrans %}
<p>Ini testing, UI Interface kita harus kita buat di file ini. </p>
{% endblocktrans %}
{% endblock %}
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/
Nah sekarang kita sudah bisa membuat applikasi kita, dan kita sudah mendaftarkannya di dalam pinax.

Step nya sebagai berikut :
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.
(pinax-env)$ cd mysite
(pinax-env)$ python manage.py runserver
2. Setelah server kita bisa di start, kita lihat di web-browser kita di http://localhost:8000, dan mari kita coba untuk login.
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.
<li id="tab_my_app">{% trans "My App" %}</li>
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 :
<li id="tab_my_app"><a href="{% url my_app_index %">{% trans "My App" %} </a> </li>
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".
5. Nah alamat url "my_app_index" tersebut berada dimana ? tentu saja dia harus berada didalam applikasi my_app kita. Mari kita buat applikasi kita di dalam pinax terlebih dahulu, dengan sintak :
(pinax-env)$ python manage.py startapp my_app
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.
(pinax-env)$ mv my_app/ apps
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 :
(r'^my_app/', include('my_app.urls')),
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". 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 :
from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template
urlpatterns = patterns('', url(r' ^$', direct_to_template, {"template": "my_app/index.html"}, name="my_app_index" ),
)
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 :
(pinax-env)$ mkdir templates/my_app
11. Setelah itu kita buat file index.html di dalam directory template my_app, dan berisikan sintak sintak html seperti di bawah ini :
{% extends "site_base.html" %}
{% load i18n %}
{% block head_title %}{% trans "My App" %}{% endblock %}
{% block body %}
{% blocktrans %}
<p>Ini testing, UI Interface kita harus kita buat di file ini. </p>
{% endblocktrans %}
{% endblock %}
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/
Nah sekarang kita sudah bisa membuat applikasi kita, dan kita sudah mendaftarkannya di dalam pinax.
Labels:
django,
open source,
pinax,
python
Thursday, November 05, 2009
Solusi composite primay key di Django
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.
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.
Sebagai contoh kita ambil tabel kota, maka composite key nya adalah (kode_negara, kode_kota).
Nah solusi yang saya tawarkan adalah sebagai berikut :

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.
Sebagai contoh kita ambil tabel kota, maka composite key nya adalah (kode_negara, kode_kota).
Nah solusi yang saya tawarkan adalah sebagai berikut :
- buat satu kolom baru didalam tabel yang anda inginkan, dan jadikan kolom ini sebagai target untuk membuat primary key yang baru
- alter table kota add column kota_id
- 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
- def save(self):
if not self.kota_id:
self.kota_id = "%s%s" % (self.kode_negara, self.kode_kota)
super(Kota, self).save()
- def save(self):
- Kemudian pada saat save_edit, kita juga harus memastikan kolom primary key ini tidak ikut diubah oleh sistem.
Labels:
django,
open source,
python
Saturday, October 31, 2009
Installing Pinax
Hello All, berikut adalah catatan bagaimana instalasi pinax dilakukan di sistem Ubuntu 9.0.4 dan versi pinax adalah 0.7.1.
1. Download Pinax.
Pinax software bisa kita download dari website pinaxproject dan ambil official release yang terakhir yakni versi 0.7.1. Django sudah termasuk didalam pinax software ini.
2. Extract file Pinax-0.7.1-bundle.tar.gz tersebut didalam directory project anda.
3. Selelah itu jalankan script untuk instalasi pinax di virtual environtment
4. Setelah virtual environtment nya siap, berikutnya adalah mengaktifkan virtual environtmentnya
5. Setelah aktif, maka di prompt di console kita akan berubah seperti berikut
6. Berikutnya kita bisa melihat "template" project yang dimiliki oleh pinax, perintahnya seperti berikut :
7. Favorite saya adalah membuat project yang berbasis "social-project", command nya sebagai berikut :
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.
Oke sekian dulu.

1. Download Pinax.
Pinax software bisa kita download dari website pinaxproject dan ambil official release yang terakhir yakni versi 0.7.1. Django sudah termasuk didalam pinax software ini.
2. Extract file Pinax-0.7.1-bundle.tar.gz tersebut didalam directory project anda.
3. Selelah itu jalankan script untuk instalasi pinax di virtual environtment
$ python scripts/pinax-boot.py<path-to-virtual-env-to-create>
$ source <path-to-virtual-env-created>/bin/activate
(pinax-env)$
(pinax-env)$ pinax-admin clone_project -l
(pinax-env)$ pinax-admin clone_project social_project mysite
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.
Oke sekian dulu.
Labels:
django,
open source,
pinax,
python
Tuesday, October 20, 2009
Django + Pinax
Hi there,
Mau belajar Django + Pinax ?
Silahkan mengikuti Tutorial dari Fernando Correia 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.
Tetapi saya masih bisa memakainya, except project yang dipakai adalah "social-project" bukan "completed-project" seperti yang Fernando tulis.
Nah apa yang saya lakukan dengan Django dan Pinax ini ?.
Ide-nya begini, saya ingin punya applikasi yang bisa berkolaborasi dengan "CMS" atau "Social Networking" applikasi. Jadi applikasi yang saya buat itu merupakan extention / bagian / component dari "CMS" atau "Social Networking" itu. Nah dengan pinax ini saya merasa bisa terwujud.
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.
Begitu Pinax mengeluarkan release update terbaru, itu tidak akan mengganggu applikasi yang saya buat.
Hanya saja untuk versi saat ini, masih banyak yang harus di kejar dari Pinax. Terutama soal UI dan Functionalitynya yang masih terlalu sederhana.
Oke silahkan mencoba kombinasi django + pinax + applikasi-mu, dan mari kita belajar bersama.

Mau belajar Django + Pinax ?
Silahkan mengikuti Tutorial dari Fernando Correia 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.
Tetapi saya masih bisa memakainya, except project yang dipakai adalah "social-project" bukan "completed-project" seperti yang Fernando tulis.
Nah apa yang saya lakukan dengan Django dan Pinax ini ?.
Ide-nya begini, saya ingin punya applikasi yang bisa berkolaborasi dengan "CMS" atau "Social Networking" applikasi. Jadi applikasi yang saya buat itu merupakan extention / bagian / component dari "CMS" atau "Social Networking" itu. Nah dengan pinax ini saya merasa bisa terwujud.
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.
Begitu Pinax mengeluarkan release update terbaru, itu tidak akan mengganggu applikasi yang saya buat.
Hanya saja untuk versi saat ini, masih banyak yang harus di kejar dari Pinax. Terutama soal UI dan Functionalitynya yang masih terlalu sederhana.
Oke silahkan mencoba kombinasi django + pinax + applikasi-mu, dan mari kita belajar bersama.
Labels:
django,
open source,
pinax,
python
Wednesday, August 19, 2009
Play again with django
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 :
1. Single DB Connection
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 berperan sebagai "bridge application".
Solusi-nya : mungkin ada cara untuk membuat database connection sendiri, terpisah dari django. masih harus research mengenai hal ini.
2. Composite Primary Key
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.
Solusi-nya :
a. menghindari "Identity/Sequence" value sebagai primary key, sebagai gantinya pakai "select max(x)+1" atau generate "unique value" sendiri.
b. merubah design database ke "Active Records" pattern.
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.

1. Single DB Connection
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 berperan sebagai "bridge application".
Solusi-nya : mungkin ada cara untuk membuat database connection sendiri, terpisah dari django. masih harus research mengenai hal ini.
2. Composite Primary Key
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.
Solusi-nya :
a. menghindari "Identity/Sequence" value sebagai primary key, sebagai gantinya pakai "select max(x)+1" atau generate "unique value" sendiri.
b. merubah design database ke "Active Records" pattern.
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.
Labels:
django,
open source,
python
Friday, August 07, 2009
Internal Speaker Solved
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.
But akhirnya aku lakukan juga prosess update tersebut.
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.
Mantap dah hari ini.

But akhirnya aku lakukan juga prosess update tersebut.
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.
Mantap dah hari ini.
Labels:
open source,
ubuntu
Thursday, August 06, 2009
Ubuntu Jaunty 9.0.4
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. 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 ?

Labels:
open source,
ubuntu
Wednesday, April 08, 2009
Scalability challenges
Our Application Data is getting bigger and bigger.
This data growing is our challenges.
I need a replication on our Postgresql database.
Please give us advice.

This data growing is our challenges.
I need a replication on our Postgresql database.
Please give us advice.
Labels:
open source,
postgresql
Monday, March 02, 2009
Database Replication on Postgresql
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.
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.
So, please, if anyone know a OSS tools to do multi-master replication for Postgresql-DB, let me know okay ?

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.
So, please, if anyone know a OSS tools to do multi-master replication for Postgresql-DB, let me know okay ?
Labels:
open source,
postgresql
Monday, February 02, 2009
Postgresql Replicator
looking for Postgresql replication tools.
message me if you knew one of it.
message me if you knew one of it.
Labels:
open source,
postgresql
Tuesday, December 16, 2008
Living with open source software
simple question ... can we living with open source software ?
Labels:
general,
open source
Monday, June 30, 2008
Thunderbird Lightning Extention Problem
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.
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.
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.
Labels:
mozila,
open source,
ubuntu
Subscribe to:
Posts (Atom)
