Semantic Thoughts on Model, View, Controller (MVC)

Semantic Web is a technology family (or, a disparate set of sometimes non-related technologies) that allows computing applications to understand each other. It has the potential of transforming the way we do computing in the very near future… and power to make software developers’ lives easier.

I’ve been having lots of random thoughts about how to connect independent apps to work, talk, and walk together. Several components need to be identified. I call them Actors, Messages, and Translators.

Actors are objects that can perform actions, in the traditional OO sense it has state and behavior. In Java EE or SOA they might be called stateless or stateful session beans. We can consider a web browser and a web server both are actors. The model, view, and controller in an MVC app are all actors.

To communicate with other actors, one sends a Message to each other. Traditional messages don’t have any behavior, and I’d rather think not (at least for the moment). Messages are basically data, but to be useful as “information”, it has to have content, and language. Examples of “languages” in this sense are Atom and RDF.

It can also have a message header, message envelope, or metadata, or a schema. However, I don’t consider those as “language”, because languages are identifiable, and can be inferred from message content (with some effort), while a metadata is usually not. For example, given an document, a script can be written to determine if it’s in Atom format. However, given a message body, it’d be though to determine its title or creation date if it’s not inscribed the message itself (somewhere).

Metadata, headers, and schemas also have languages. Therefore, actors need to understand these languages (as well) in order to process a document/message. In addition, languages themselves need to be know, not necessarily understood. A bit like saying, “I know you’re talking in Turkish, but I can’t understand what you’re saying. But at least I know you use Turkish.” Getting an actor to know what language a message is made of is a useful thing, as we’ll see later. A kind of universal language identifier is MIME types. If it can be inscribed somewhere of inferred in the message, the actor will at least know the next step of interpreting the message; if not, then it’d be much tougher.

Someone that can make two actors communicate in different languages is needed, Translator. They take a message from one actor, does whatever it takes to get the other party to understand this message. An example of a translator in the computing world is Mule, Apache Synapse, and OpenESB.

Actors need to agree upon use of translators, at least one of the parties and preferably both parties. Security is paramount when using translators. Messages may or may not be translated in full to translators. Partial translation shall be possible, i.e. translating parts of a message that the actor doesn’t understand, but not the entire message.

Translator may also gain non-repudiation privileges, and may perform limited set of actions on behalf of the requesting actor. Think of it as your lawyer.

Overall, some kind of cryptosystem is needed between the actors and translators. Otherwise, this kind of distributed knowledge architecture has lots of security holes of varying severities.

So, where do we start?

NVidia NForce 610i / GeForce 7050 in Ubuntu Gutsy 7.10

We recently upgraded a server from a Jetway P4M9AP motherboard to a Zotac N73V-AC7V, which is actually very good… except that they (the motherboard, NForce 610i chipset, NVidia GeForce 7050 integrated graphics adapter/VGA, sound) doesn’t work out of the box with our Ubuntu Gutsy 7.10.

Fortunately, there is a solution: nForce 610i : audio and nVidia graphic drivers How-to, that actually works. Now we’ve got screamingly fast display (although we rarely use it… it’s a server anyway) and a working sound card.

Here’s and HOW-TO make work audio, video proprietary drivers for the motherboard GA-73VM-S2 that has nforce 610i chipet with GeForce 7050 graphic card. Maybe this will work for other motherboards that has nforce 610i.


First, with the fresh install of download ubuntu 7.10, the audio did not work. I made all the updates of ubuntu over internet and after I did the code proposed by Temüjin :


sudo update-pciids

I also ran the scripts proposed by Temüjin:…4&postcount=24
I’m not sure what of these did fix my audio but know it works!


After that, I had a problem to set the native resolution. I have a wide screen monitor that runs with 1440×900 but with the vesa graphic driver, when I tried to set to 1440×900, it did not work. When I tried to install the restricted driver with the graphical utility in System/Administration/Restricted Drivers Manager the display manager did not work. So here’s how to make nVidia drivers work :

First uninstall the nVidia drivers provided by the Restricted Drivers Manager.

After go to Select Linux IA32 latest version if you have 32bits distribution or AMD64 if you have ubuntu AMD64. Download and save it on your desktop.

Go where you saved the file and right click on it, select propreties. Go into permissions and mark the box “Allow executing file as a program”.

Now you have to close your display manager. Close all you programs, log out and press ctrl+alt+F1. You will enter in a console that is not on the display manager. Log with your normal user and password.

First close your display manager. Type :


killall gdm

replace gdm by kdm for KDE display manager.

Go to the directory where you saved the nVidia driver for linux. Type :


cd Desktop

and then


sudo sh

verify the version that is written. If the version is different, change it on the command above. To see the files you have in the directory you are, type “dir”.

Now follow the step by step installer. At the end it is asked if you want to configure your xorg.conf. Say yes, this will select the nvidia driver. Now nVidia driver is installed!

When you return to the console type:


sudo gdm

You should see the nVidia logo before the login screen.


NOTE: the new nVidia drivers from their web site were uploaded by nVidia on the February 26, 2008.

There is also a detailed thread, nForce 610i chipset not supported, about this issue, and a Ubuntu bug report: NVIDIA GeForce 7050 onboard VGA on nForce 610i unsupported.

TVR 856C 3

Ubuntu Gutsy 7.10 di Axioo Neon TVR856C/TVR016C

TVR 856C 3

Baru-baru ini kami “mendapat” laptop alias notebook dengan model Axioo Neon TVR 856C. Tugas yang kami terima adalah, “si bos” mengharuskan laptop ini diinstall Ubuntu Gutsy 7.10. Sayangnya, laptop ini tidak dapat diinstall Ubuntu dengan “cara biasa.” Ah, sedikit petualangan nih, pikir saya…

Sekedar petualangan ini ternyata berbuah puluhan kali restart, menunggu, googling, dan menggaruk2 kepala yang udah botak hahahha 😛

TVR856C 1

Masalahnya adalah:

  1. Live CD Ubuntu tidak bisa booting, hang sebelum instalasi karena tidak kompatibel dengan VGA onboard yaitu VIA UniChrome IGP.
  2. Live CD Ubuntu Alternate installer menampilkan tampilan teks yang kacau balau.
  3. WiFi sempat tidak terdeteksi (?)
  4. Bahkan setelah driver diganti “vesa”, resolusi terbaik yang dapat ditampilkan hanyalah 800×600 dengan monitor autodetection.
    Dengan manual setting, baru bisa menampilkan hingga 1024×768.

Santai aja, semua ada solusinya (kata Pak Purdi?) 😉

Peralatan dan sarana yang dibutuhkan:

  1. Laptop yang dimaksud (Axioo Neon atau laptop dengan chipset VIA hix hix…)
  2. Koneksi Internet, disarankan yang koneknya tinggal pakai kabel UTP/Ethernet misalnya Telkom Speedy. Kalo pake modem, wah nggak tau lagi deh.
  3. Keberanian, ketelatenan, dan kesabaran yang luar biasa… 🙂

Tutorial cara install…

  1. Cari/download CD Ubuntu Gutsy 7.10, Desktop edition, 32-bit PC version, Alternate installer.
  2. Tekan F6 untuk memunculkan kernel parameters. Ganti “quiet” dengan “vga=791” (tanpa tanda kutip) lalu tekan Enter. Setting ini untuk mengeset mode VESA/VGA text framebuffer menjadi resolusi 1024×768 16-bit. Jika belum cocok, coba juga “vga=788” untuk 800×600 atau “vga=785” untuk 640×480.
    Tip: Ada juga yang menyarankan menggunakan parameter “noapic”, tapi dalam kasus saya tidak berhasil.
  3. Tampilan instalasi harusnya muncul dengan normal, bahkan lebih lebar dari resolusi standarnya. Malah enak, kan? 🙂
    Install Ubuntu seperti biasa.
  4. Saat booting, kemungkinan Anda nggak bisa masuk ke GUI maupun GDM, karena VGA-nya gak cocok.
    Solusinya, reboot laptop lalu pada saat “GRUB loading, please wait…” segera tekan ESC, lalu pilih “… (recovery mode)” untuk masuk ke console.
  5. Ketik:
    dpkg-reconfigure xserver-xorg

    Pilih driver “vesa”, lalu pilih resolusi yang “nggak neko-neko”, misalnya 800×600.
    Untuk menggunakan resolusi 1024×768, jangan gunakan monitor autodetection, saat ditanya cara memilih monitor, pilih “Medium”, lalu pilih “1024×768 @60Hz”.

  6. Reboot (pencet Ctrl+Alt+Del atau ketik “reboot”), dan setelah itu harusnya Anda sudah bisa masuk GDM/GUI Ubuntu Gutsy yang nan aduhai itu lhooo…
    Tampilannya akan agak aneh karena tidak sesuai dengan rasio display laptop ini yang widescreen, but we’ll get to that on a sec, I promise! At least now “you’re in.” 😉
  7. Saat ini sepertinya Anda tidak bisa masuk ke TTY console mode teks (Ctrl+Alt+F1). Untuk itu, login aja dulu.
    Buka Applications -> Accessories -> Terminal.
    Ketik: gksu gedit /boot/grub/menu.lst
    Edit bagian “# defoptions=”, tambahkan “vga=791”. Contoh:

    # defoptions=vga=791 splash

    Simpan file lalu close Text Editor tersebut.

  8. Untuk mengaktifkan konfigurasi barusan, ketik di Terminal:
    sudo update-grub

    Reboot komputer.

  9. Driver WiFi di tempat saya awalnya tidak terdeteksi, lalu otomatis terdeteksi setelah saya melakukan update.
    Jadi, di step ini coba koneksikan laptop Anda ke Internet, lalu lakukan update total system ke package terbaru menggunakan System -> Administration -> Update manager. Reboot komputer dan seharusnya Anda sudah bisa menggunakan WiFi.
  10. Yang kurang lagi adalah display/screen resolution, yaitu menggunakan driver OpenChrome.
    Masuk ke Terminal, lalu ikut tutorial di halaman tersebut yang intinya seperti ini:

    sudo apt-get build-dep xserver-xorg-video-via
    sudo apt-get install subversion autoconf automake1.9 libtool
    svn checkout openchrome
    cd openchrome
    ./ --prefix=/usr
    sudo make install
  11. Driver OpenChrome sudah terinstall, tapi belum diaktifkan. Untuk mengaktifkannya, sebaiknya Anda reboot komputer dulu dan masuk ke modus “recovery mode” seperti sebelumnya. Ketik:
    dpkg-reconfigure xserver-xorg

    Saat konfigurasi, pilih driver “openchrome”, gunakan monitor autodetection, lalu pilih resolusi 1280×800 atau sesuai kemampuan laptop Anda.

  12. Di laptop ini, ada kemungkinan mouse cursor tidak ditampilkan dengan konfigurasi standar. Untuk memperbaikinya, edit file /etc/X11/xorg.conf:
    vim /etc/X11/xorg.conf

    Lalu tambahkan Option “SWCursor””true” di bagian Section “Device” sehingga menjadi seperti ini:

    Section "Device"
      Identifier "Generic Video Card"
      Driver "openchrome"
      BusID "PCI:1:0:0"
      Option "SWCursor" "true"
  13. Reboot komputer, kembali ke modus normal.

TVR 856C 2

Saat ini, laptop Axioo Neon TVR 856C kami cukup berjalan mulus dengan Ubuntu Gutsy Gibbons 7.10:

  1. Audio/sound/multimedia: WORKING PERFECTLY
  2. Video/graphics: WORKING PERFECTLY
  6. Webcam: ?
  7. 3D: I don’t care
  8. Compiz: Not working at all
  9. Memory card reader: Kayanya sih bisa…

Artikel lain:

P.S.: Untuk 3D, ada yang bilang kalo dengan menginstall DRM + XGL server bisa untuk mengaktifkan Compiz di VIA UniChrome IGP. Tapi, setelah berusaha untuk mengambil ‘jalur itu’, dan mumet, akhirnya saya memutuskan untuk nggak pake itu dulu deh…

P.P.S.: Informasi hardware Axioo Neon TVR-856C kami…

Ayat-ayat Cinta, film poster

Ayat-ayat Cinta: A romantic Indonesian movie, beautifully executed

Ayat-ayat Cinta, film poster

Ayat-ayat Cinta is an Indonesian movie about Fahri, a college student at Al-Azhar Islamic University, and his shortly portrayed but fruitful adventures in life and love. Along the way he’ll meet several pretty and not-so-pretty girls Maria, Aisha, Nurul, and Noura; and what’ll happen? Let’s just say that I think this is really a must watch movie!

Unfortunately, I’m too lazy right now to write something original, so I’ll just let these nice guys (or gals? 😉 at The Jakarta Post do the job for me:

The main character, Fahri (Fedi Nuril), is believably sincere in a too-good-to-be-true manner, which unsurprisingly attracts not less than four women during his stay and study in Cairo, Egypt. They are his college mate Nurul (Melanie Putria), whose high-profile family makes Fahri feels inferior; Noura (Zaskia Adya Mecca), a hapless victim of domestic violence who turns against Fahri; Maria (Carissa Putri in a somewhat mind-bogging dubbed voice), his jovial neighbor; and Aisha (Rianti Cartwright), who Fahri meets in very unlikely circumstances.

These four greatly different women, each with their own desire to love and have Fahri, provide the film with a succession of grand events that verges on melodrama.

Of course, as a side note, criticizing a critic, like most so-called “movie reviews” do, that article also didn’t explain much about the story in the movie itself, as I think it’s the most interesting part of a movie review. Who doesn’t love stories?

Fahri, as it turned out… starts in the movie currently doing his thesis (or some sort of academic document, whatever). Then, his documents got corrupted. Luckily, he got some support from a cute girl named Maria, and (not very portrayed) his male friends. Let’s say that he doesn’t just get support, but also love, and you don’t have to watch the movie to guess that–I suppose.

Now, the problem is, Fahri happens to be a guy that’s too irrestible. Because of his willingness to help basically everybody, and sometimes Islamic idealism, he’s attracted several other girls: the girl he helped on the bus, Aisha; the girl he helped on the streets, Noura; and his female friend in college, Nurul. It’s a problem, indeed. Why? Because most of you guys would have a different problem: no girl. Fahri has a much more deeply rooted problem: Too many admirers, all of them women. Either way, it’s still a problem.

The problem gets worse after Fahri married just one of these girls, disappointed the other(s), got accused of raping one of the them, and then marrying another one of these girls in order to survive his crime charges!! What a convoluted plot. But I have to say it’s quite enjoyable for me, and I think you’ll like it too! 🙂

A little closing that will hopefully satisfy you movie critics rather than actual mortal readers: This is a beautifully orchestrated movie, from cinematics, picture, sound, actors, story, basically everything. Yet I do think that this movie is too unrealistic. It’s so out-of-the-world. I mean the setting, and the plot (it’s beautiful and weird at the same time,) and the actors and actresses. Come on, get some real foreign actors. Using Indonesian actors as a replacement for foreign people just doesn’t cut it, and makes me a bit annoyed. But that’s OK.

Another side note, is that I watched the movie in a near perfect setting, time, and I wasn’t late: I watched right from the very beginning to the credits. Although the cinema was extremely crowded, they unwittingly managed to get me the lucky seat, which is right in the middle center, and no seats in front of me, which means the only lip kissing I see is in the movie, not in front of me. Talk about maximum viewing pleasure! 🙂

Go watch this movie…

You may also want to view these links and materials related to Ayat-ayat Cinta:

P.S. My favorite quote in this movie? “Sabar dan Ikhlas. Itu adalah Islam!” (Patience and Sincerity. Those are what Islam is.)