June 20th, 2008
I still remember the old time, few years back, when I still use dial-up for my connection. It was slow. Painfully slow. There was one time I need to download 2MB of important files for my study, and it took more than 30 minutes to get the file. The connection was unstable, and the server didn’t support resume download.
But those days are over. Now is the era of broadband. If you live in India, there’s only one reliable place to get broadband. It’s indiabroadband.net. It’s one stop place to get everything you need for broadband. You could check Reliance Broadband to get service from one of the best ISP in India.
If you’re living in India and still using dial-up, you need to get broadband connection. It will save you plenty of time. Time is money, right? With broadband connection, you could get your job done. No more wait. Just check the BSNL Broadband to retreive all information you need.
May 28th, 2008
Now Banshee 1.0 Beta 2 is released. If you want to try the music player in your ubuntu hardy box, you could add sources.list entry from banshee PPA team.
Open software sources (System > Administration > Software Sources). In Third-Party Software tab, click Add and paste the code below
1
| deb http://ppa.launchpad.net/banshee-team/ubuntu hardy main |
If you need the source, you could repeat the Add proccess, and paste this
1
| deb-src http://ppa.launchpad.net/banshee-team/ubuntu hardy main |
Close the Software Sources. Wait for a few moment while the software update your package database. Then open the terminal, and type
1
| sudo apt-get install banshee-1 |
Yes, use banshee-1. If you use banshee, you’ll get the old Banshee 0.13.2 from universe repository.
And, enjoy your new Banshee 
May 27th, 2008
I created this tutorial because I was having a hard time finding good simple CodeIgniter + JQuery tutorial for newbie like me. The one I found, created by MR Forbes, is hard to understand and apparently isn’t working. Another one, pr0digy’s, is using Mootools for the AJAX framework.
So I decided to create my own CodeIgniter and JQuery tutorial based on pr0digy’s tutorial. I’m assuming you already know how to code using CodeIgniter. If you’re new to CodeIgniter, you need to find others tutorial first. The videos given in CodeIgniter’s site is a good start.
This tutorial is about creating simple CodeIgniter + database + ajax system. User will be shown a form to post a message. Then after he/she press the submit button, the system will save the message using ajax and then show the message. You could see the result first if you want.
Database
The first thing we need to do is creating a table to save the message. For this tutorial, We will use this:
1
2
3
4
5
| CREATE TABLE IF NOT EXISTS `messages` (
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
`message` varchar(256) NOT NULL,
PRIMARY KEY (`id`)
) |
Controller
Then, we need to create a controller. My controller is named message. You could name your controller any name you like. After that, create 2 functions/methods, view and add.
view is used to get the default view and list of messages from the database. The codes are:
1
2
3
4
5
6
7
8
9
10
| function view($type = NULL)
{
// get data from database
$data['messages'] = $this->Message_model->get();
if ($type == "ajax") // load inline view for call from ajax
$this->load->view('messages_list', $data);
else // load the default view
$this->load->view('default', $data);
} |
We fetch messages from the database using Message_model->get() function. Then the data is passed to the view. Here, we have 2 views called. One for the default view, where we called the page using message/view, and the other is for calling from ajax.
add is a proccess used to insert the message to the database. The codes are:
1
2
3
4
5
6
7
8
9
| function add()
{
// if HTTP POST is sent, add the data to database
if($_POST && $_POST['message'] != NULL) {
$message['message'] = $_POST['message'];
$this->Message_model->add($message);
} else
redirect('message/view');
} |
This function is accessed when we press the submit button from the form. This function will save the message using Message_model->add() function.
Model
The next thing we need to create is the model. I use Message_model for the name. Here we create two functions, add and get. add is a function to insert the data into the database. get is a function to retrieve data from database. I think the codes are pretty self-explainatory, but you could drop me a message if you need some explainations on the codes.
1
2
3
4
| function add($data)
{
$this->db->insert('messages', $data);
} |
1
2
3
4
5
6
7
| function get($limit=5, $offset=0)
{
$this->db->orderby('id', 'DESC');
$this->db->limit($limit, $offset);
return $this->db->get('messages')->result();
} |
View
I use 2 files for view section. default.php and message_list.php. The message_list is used for displaying the messages taken from the database.
1
2
3
4
5
6
7
8
| <div id="form">
<input type="text" id="message" name="message" />
<input type="submit" id="submit" name="submit" value="submit" />
</div>
<div id="content">
<?php $this->load->view('messages_list') ?>
</div> |
1
2
3
4
5
| <ol>
<?php foreach ($messages as $message): ?>
<li><?= $message->message ?></li>
<?php endforeach ?>
</ol> |
Hey, Where’s the JQuery?
Here we go. The last, and maybe the most important part of this tutorial. So, we the our controller, we had the model, and we had the views. I assume you already know how to include a jquery script to your view. The jquery codes are this:
1
2
3
4
5
6
7
8
9
10
11
| $(document).ready(function() {
$('#submit').click(function() {
var msg = $('#message').val();
$.post("<?= site_url('message/add') ?>", {message: msg}, function() {
$('#content').load("<?= site_url('message/view/ajax') ?>");
$('#message').val('');
});
});
}); |
So, when we click the submit button, the javascript will take the value of input textbox then send it to message/add using post method. When the action succeed, the script will call message/view/ajax. Note the ajax keyword. It will call the message_list view instead of the default one. Then the view will replace the content in div#content tag.
Well done. You could see the demo I made from the tutorial.
You could download the whole files used in this tutorial in tutorial.zip (1.98 KB).
Or, if you prefer to get one by one,
controller: message (904 bytes)
model: message model (583 bytes)
view: default (782 bytes)
view: message_list (111 bytes)
I hope this tutorial helps newbie like me. If you have any question, just drop a comment below 
May 20th, 2008
There is a great script created to check whether your system is compiz ready or not. It’s called Compiz-Check.
Gathering information about your system...
Distribution: Ubuntu 8.04
Desktop environment: GNOME
Graphics chip: nVidia Corporation G70 [GeForce 7300 GT] (rev a1)
Driver in use: nvidia
Rendering method: Nvidia
Checking if it's possible to run Compiz on your system...
Checking for texture_from_pixmap... [ OK ]
Checking for non power of two support... [ OK ]
Checking for composite extension... [ OK ]
Checking for FBConfig... [ OK ]
Checking for hardware/setup problems... [ OK ]
If you got [ OK ] in every check, like mine, then your system is ready to run compiz. If something fails, go check the forum 
May 13th, 2008
So, despite the low penetration of internet in Indonesia, apparently its internet “society” is keep growing bigger and bigger. The Web 2.0 era is really expanding here.
It’s started with the large number of blogs created and written by Indonesian few years back. Thanks to blogger like Boy Avianto, Priyadi, Enda Nasution, and some others, people started to create blog to share their stories and knowledges.
Then, following the increasing number of Indonesian bloggers, Indonesian web 2.0 services started to show up. Some are Lintas Berita — a digg-like news site, Sharing Foto — a photo sharing website (too bad it’s closed), kronologger — a microblogging service. A believe there are plenty others I haven’t heard.
And now, we Indonesian have our own free blogging services. Blog Detik and and daddigdug two biggest free blogging services available. Blog Detik has the largest (citation needed) Indonesian news site behind it, detik.com, while daddigdug has some great Indonesian blogger working on it.
I believe there is still more to come. Internet offers limitless posibilities. Everyday, I always exited to find out what’s new from Indonesia. I eagerly read every blog I know, and hoping for something new. And talking about new innovation, I have names that I believe will bring new innovations to web 2.0 in Indonesia, some are Akhmad Fathonih and Kukuh TW.
May 12th, 2008
While you’re thinking by installing 64 bit linux you’re standing in the edge of new technology era, it sucks knowing our 64 bit system is less supported than the old 32 bit system. We have to install 32 bit flash since Adobe didn’t have the 64 bit one. We have to install 32 bit oracle xe since Oracle also didn’t have 64 bit version.
And now I will try explain how to install oracle xe into the 64 bit system, ubuntu way. Of course we couldn’t follow the guide from oracle, since apt-get will detect our system architecture and we won’t get the 32 bit packages list.
Before we start, make sure you have the 32 bit library installed. It’s in reposity, all you have to do is
sudo apt-get install libc6-i386
The next thing to do is download the files needed. It’s libaio_0.3.104-1_i386.deb and oracle-xe-universal_10.2.0.1-1.1_i386.deb. You could use wget for this
wget -c http://oss.oracle.com/debian/dists/unstable/main/binary-i386/libaio_0.3.104-1_i386.deb http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb.
After your downloads are finished, we continue to the main issue, forcing the package to be installed. You could try to install with usual dpkg -i first to make sure your system is really 64 bit.
sudo dpkg -i libaio_0.3.104-1_i386.deb
You’ll get error,
dpkg: error processing libaio_0.3.104-1_i386.deb (--install):
package architecture (i386) does not match system (amd64)
Errors were encountered while processing:
libaio_0.3.104-1_i386.deb
Added guide from Venka A
sudo apt-get install bc
To force the installation, do these
dpkg -i --force-architecture libaio_0.3.104-1_i386.deb
dpkg -i --force-architecture oracle-xe-universal_10.2.0.1-1.1_i386.deb
And after the installation is finished, you need to configure it
sudo /etc/init.d/oracle-xe configure
and edit your ~/.bashrc
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH
And, voila, the oracle xe is ready. You could go to http://127.0.0.1:8080/apex from your browser.
References:
May 11th, 2008

Since I’m not using any window decorator for my gnome setup, I always count on keyboard and mouse combination shortcut for managing my windows. These are my regularly used shortcuts when I’m working.
- Alt + mouse button 1 (left mouse button): move window. Remember this, and your life would be lot easier. Seriously. I even bring this habbit to MS Windows. You don’t need to move your mouse to title bar and click it there to move the window. Just hold Alt button, and click anywhere inside the window, and you could move it anywhere.
- Ctrl + Alt + d: show desktop. Easily “minimize” all your opened windows. Very useful when your desktop is cluttered and you want to open new application.
- Alt + F9: minimize current window.
- Alt + F8: resize current window. Having no window decorator makes resizing window a little bid harder. But Alt + F8 really helps a lot.
- Alt + F7: move current window.
- Alt + F10: maximize current window.
- Alt + F5: unmaximize current window.
- Alt + F4: close window. Some application could also use Ctrl + W, Alt + Q.
May 8th, 2008
OpenOffice.org 3.0 Beta is ready for testing.
OpenOffice.org 3.0 will support the upcoming OpenDocument Format (ODF) 1.2 standard, and is capable of opening files created with MS-Office 2007 or MS-Office 2008 for Mac OS X (.docx, .xlsx, .pptx, etc.). This is in addition to read and write support for the MS-Office binary file formats (.doc, .xls, .ppt, etc.).
See more features in the website, or go try yourself.
May 5th, 2008

Finally. This is the first VirtualBox version since being acquired by Sun Microsystems. The major update is support for Solaris. The release itself has over 2000 improvements. Go get the binary. I’m downloading now.
April 28th, 2008
Maybe it’s very suprising to know that very easy task could be very complicated when it comes to non-tech user. Apparently, what we think easy enough is actually hard to do when the information isn’t clear. Content Consumer had a great experiment on how regular non-tech user (in his case, his girlfriend) doing things in Ubuntu 8.04.
The main issue with the desktop experience is that the geeky programmers and designers assume too much from the average user. They assume the user knows about the way in which programs are installed, or how the file system is set out. The average user will not go out of their way to google for help or even read the associated documentation that comes with Ubuntu and its default software. The little information pop-ups and guided wizards are critical to explaining how the user can accomplish the basic tasks they most probably are trying to do.
– The Great Ubuntu-Girlfriend Experiment
Great article, and definitely great input for ubuntu development team.