Friday, August 13, 2010

Liferea tidak melakukan cache


Ternyata Liferea tidak melakukan cache terhadap file file multimedia yang di downloadnya.
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.

So Back to PenguinTV, dan harus bisa solve problemnya. Mungkin harus check penguinTV di Ubuntu 10.04, apakah bisa running smooth di versi tersebut.


Thursday, August 12, 2010

LifeRea Offline rss reader

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.

Wednesday, June 30, 2010

Interesting Project

Sorry guys, now I'm busy with a new project, Kohana + Dojo.
I will put other tutorial using Dojo, soon.

Monday, March 15, 2010

Dojo Grid

Looking for Dojo Grid Tutorial Pages.
Anyone knows ? please drop me a messages


Thursday, December 03, 2009

Belajar mengatur project

Hari ini saya hosting project di google code. Namanya project pawang. 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.

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.

Wish me luck

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.


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 :
  • 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()



  • Kemudian pada saat save_edit, kita juga harus memastikan kolom primary key ini tidak ikut diubah oleh sistem.
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.