Upgrade Kernel Di Elementary OS

Distro Elementary os yang sehari hari saya gunakan ini kernel nya masih versi 3.2, sebenarnya gak ada masalah juga cuma agak ngerasa jadul gitu, karena kernel terbaru sekarang kalau gak salah sudah versi 3.15, dari 2 ke 15 ya lumayan jauh versinya meski peningkatan di versi minor saja bukan versi mayor kernel. Dari pihak elementary sendiri kernel yang versi 3.2 ini sudah beberapa kali mengalami update, terakhir kemarin ada update build ke 61.
kernel 3.2

Tapi namanya pengguna biasanya memang kurang puas kalau gak coba-coba yang terbaru. Untuk itu jika pengen update ke kernel 3.14 bisa gunakan cara dari sini.

Langkah-langkahnya:
$ mkdir kernel
$ cd kernel/
$ wget http://goo.gl/s9nC21 -O kernel-3.14
$ chmod +x kernel-3.14
$ sudo sh kernel-3.14

download kernel

Perintah terakhir ini akan mendownload dan kemudian menginstall file-file kernel yang dibutuhkan. Setelah proses selesai reboot komputer, kemudian saat booting pilih kernel yang barusan di download dan diinstall.
kernel 3.14

Kalau misalnya ada masalah bisa di uninstall dengan cara berikut:
$ sudo apt-get purge linux-image-3.14.0*
$ sudo update-grub

Sebenarnya tanpa menggunakan script seperti diatas bisa kok dengan langsung download dari http://kernel.ubuntu.com/~kernel-ppa/mainline/ tinggal download versi yang ingin digunakan dan untuk install nya bisa menggunakan dpkg. Oya script yang digunakan pada cara diatas sebenarnya juga mengambil build kernel dari website ubuntu itu kok jadi ya sama saja.

Intinya jika upgrade kernel jangan uninstall kernel yang lama, soalnya kalau ada masalah tinggal kembali ke versi kernel lama. Kalau penulis sih sekarang sebisa mungkin menggunakan lebih dari 1 versi kernel soalnya pas kapan itu pernah kejadian ada update terus dapat bonus “kernel panic” dan akhirnya install ulang, kalau ada 2 versi kernel atau lebih kan bisa booting dengan versi kernel yang lain untuk kemudian memperbaiki masalah yang timbul.

Contoh Sederhana Marionettejs

Setelah sekian lama menggunakan javascript secara biasa saja, ya sekedar load javascript gunakan fungsi2 nya dll dll. Beberapa waktu ini baca-baca mengenai beberapa cara lain menggunakan javascript, atau mungkin lebih tepatnya penggunaan teknologi baru, setidaknya bagi saya, dalam ber javascript. Mungkin sudah banyak yang tahu mengenai angularjs, emberjs, backbonejs dll. Semacam framework dan library javascript yang menggunakan pattern mvc. Katanya sih untuk memudahkan, tapi bagi saya tetap mempersulit karena harus belajar lagi. Setelah baca-baca entah kenapa saya pribadi tertarik mencoba marionette js, semacam plugin(atau apalah namanya) yang dibuat untuk backbonejs. Sila cari dan baca-baca sendiri apa itu backbone dan apa itu marionette. Kenapa tertarik dengan marionettejs? jujur karena namanya, awalnya pengen nyoba emberjs tapi kok namanya gimana gitu, ember, kurang menarik bagi saya, lebih keren marionette :))
Oke, simple saja, untuk uji coba saya implementasikan untuk bagian “panel” (klik tulisan panel di kiri atas akan muncul kotak berisi last post dan last comment). Masih sangat sederhana karena ini pertama kali menggunakan marionettejs.
Pertama, silahkan download dulu dari file-file javascript yang dibutuhkan dari website nya ada link download nya kok disitu gak usah takut, setelah itu extract dan seperti biasa load file-file javascriptnya di halaman web.
Siapkan template untuk menampilkan datanya:

<script type="text/template" id="last-post-ul">
<h3>Last Post</h3>
<ul></ul> 
</script>
<script type="text/template" id="last-post-li">
 <a href="{{ URL::to('/view/<%= slug %>') }}"><%= subject %></a>   
</script>
<div id="panelcontent" class="span12" style="display:none;">
    <div id="last-post" class="span4"></div>
</div>

Buat aplikasi marionette js nya:

var App = new Backbone.Marionette.Application();
App.addRegions({
    mainRegion:"#panelcontent",
    lastpost:"#last-post",
});
App.on("initialize:after",function(){
    if(Backbone.history) {
        Backbone.history.start();
    }
});

Untuk menampilkan last post, saya buat sebuah module:

App.module("LastPostModule",function(Mod,App,Backbone,Marionette,$,_){
})

didalam module ini nantinya akan dibuat model, proses mengambil data dan menampilkannya lewat controller dan view.
Untuk view nya sendiri dibuat seperti ini:

var postRow = Backbone.Marionette.ItemView.extend({
    template: '#last-post-li',
    tagName: 'li'
});
var PostList = Backbone.Marionette.CompositeView.extend({
    template: '#last-post-ul',
    itemViewContainer: 'ul',
    itemView: postRow
});

di view ini kita mendefinisikan tampilan untuk daftar last post yang akan ditampilkan.
Untuk modelnya, kita definisikan seperti berikut:

var LastPost = Backbone.Model.extend({
    defaults: {
        'slug': null,
        'subject':null
    }
});

slug dan subject merupakan variabel isi dari data modelnya. Kemudian kita definisikan bahwa data model adalah collection, ini mungkin semacam array/object yang berisi data last post yang akan kita gunakan, untuk datanya sendiri nanti akan berformat json, kira-kira seperti ini:

[
   {
      "subject":"Terlalu Fanatik Itu Tidak Baik",
      "slug":"terlalu-fanatik-itu-tidak-baik"
   },
   {
      "subject":"Ikuti Yang Sesuai Keinginan",
      "slug":"ikuti-yang-sesuai-keinginan"
   },
   {
      "subject":"RSS Feed",
      "slug":"rss-feed"
   },
   {
      "subject":"Sego Wiwit",
      "slug":"sego-wiwit"
   },
   {
      "subject":"Codeigniter Dijual?",
      "slug":"codeigniter-dijual"
   }
]
var PostC = Backbone.Collection.extend({
    model: LastPost
});

Setelah itu kita buat controllernya:

var Controller = Marionette.Controller.extend({
});

kemudian kita buat fungsi dari controller yang akan dieksekusi untuk menampilkan data:

initialize: function(options) {
    this.region = options.region
},
lastpost: function() {
    var post = new PostC();
    var postList = new PostList({ collection:post });

    post.fetch({url: '{{ URL::to("lastpost") }}',reset:true });

    this.region.show(postList);
}

bagian:

var post = new PostC();
var postList = new PostList({ collection:post });

mendefinisikan data dan view yang akan digunakan.
bagian

post.fetch({url: '{{ URL::to("lastpost") }}',reset:true });

untuk mengambil data last post yang akan dieksekusi via request ajax
dan terakhir

this.region.show(postList);

untuk menampilkan data.
Setelah itu kita buat initialisasi agar fungsi lastpost tersebut dijalankan:

Mod.addInitializer(function() {
    Mod.controller = new Controller({
        region: App.lastpost
    });
    Mod.controller.lastpost();
});

dan terakhir jalankan aplikasi marionette nya:

App.start();

Sebenarnya masih ada banyak sekali fitur yang bisa membuat script contoh diatas lebih singkat dan lebih efisien, tapi berhubunng baru nyoba sebatas itu ya itu dulu saja, mohon dimaafkan kalau kurang jelas karena saya sendiri juga belum terlalu ngerti. Jika ingin melihat script secara lengkap bisa dengan melihat source halaman ini.

Pake Markitup

Entah kenapa setelah nyoba beberapa text editor untuk menulis artikel di blog ini akhirnya kembali pake markitup lagi, padahal gak jelas gini, bukan WYSIWYG (opo sek tok delok yo kuwi hasile) tetapi benar2 menampilkan markup html di textarea, gak beda sama kalau kita nulis pake textarea thok yang tanpa dikasih apa-apa.

Mungkin karena bentuknya raw gini jadi lebih enak kalau mau nambah markup sendiri, pokoke bebas 😀