Asudahlah.com

Programming, tutorials, mechatronics, operating systems, and other tech stuff

Cek informasi status baterai laptop di linux via terminal

No comments
Di linux, kita dapat mengetahui informasi dan status baterai bahkan dari terminal sekalipun. Berikut saya tutorial yang sangat singkat tentang bagaimana cara melihat status baterai melalui terminal dengan program upower, beserta cara untuk mempermudahnya.

Upower adalah sebuah abstraksi untuk enumerasi perangkat power, memantau aktivitas device, dan meng-query history dan statistik. Dibuat oleh freedesktop.org. Informasi dan dokumentasi lengkap bisa anda kunjungi di http://upower.freedesktop.org/.

Untuk melihat informasi baterai, langkah pertama adalah cari path untuk device baterai dengan perintah:

[code class="zem_slink" href="http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29" title="Bash (Unix shell)" rel="wikipedia" 1="target="_blank">bash</a>"" language=""]upower -e[/code]



Lalu akan muncul beberapa path device seperti berikut:

[code lang="bash"]/org/freedesktop/UPower/devices/line_power_ADP0
/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/DisplayDevice[/code]


Apabila tidak muncul list path device seperti diatas, melainkan pesan error "command not found" artinya upower belum terinstal (Dimana jarang sekali saya menemui distribusi OS linux yang tidak menyertakan upower). Silahkan install dulu upower dengan perintah :
sudo apt-get install upower

untuk ubuntu, debian, mint dan sebangsanya.

Ketiga path diatas masing-masing menunjuk ke device(perangkat) power, misalnya pada contoh diatas adalah line power(Adaptor AC), batterai, dan display device.

Nah setelah path untuk baterai diketahui, dalam kasus diatas yaitu /org/freedesktop/UPower/devices/battery_BAT0, kita bisa cek status baterai dengan perintah:

[code lang="bash"]upower -i /org/freedesktop/UPower/devices/battery_BAT0[/code]



maka akan tampil kurang lebih seperti ini:

[code lang="bash"] native-path: BAT0
vendor: NOTEBOOK
model: BAT
serial: 0001
<a class="zem_slink" href="http://en.wikipedia.org/wiki/Power_supply" title="Power supply" rel="wikipedia" target="_blank">power supply</a>: yes
updated: Sat 29 Aug 2015 10:51:07 PM WIB (107 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
<a class="zem_slink" href="http://en.wikipedia.org/wiki/Energy" title="Energy" rel="wikipedia" target="_blank">energy</a>: 19.9911 Wh
energy-empty: 0 Wh
energy-full: 31.3797 Wh
energy-full-design: 48.84 Wh
energy-rate: 12.9156 W
voltage: 14.8 V
time to empty: 1.5 hours
percentage: 63%
capacity: 64.25%
technology: <a class="zem_slink" href="http://en.wikipedia.org/wiki/Lithium-ion_battery" title="Lithium-ion battery" rel="wikipedia" target="_blank">lithium-ion</a>
icon-name: 'battery-full-symbolic'
History (charge):
1440863467 63.000 discharging
History (rate):
1440863467 12.916 discharging
[/code]



Artinya, status baterai laptop saya sedang tidak di charge(state=discharging). Energi baterai sekarang (energy)19.9911 Wh atau dalam persentase (percentage) 63%.

Baterai penuh(energy-full) 31.3797 Wh. Yang artinya umur baterai saya sudah berkurang, dan hanya bisa di charge hingga 31.3797 Wh, dimana seharusnya (energy-full-design) 48.84 Wh. Kapasitasnya (capacity) sudah berkurang 64.25% dari semula(baru).

Silahkan anda bereksperimentasi dan amati informasi-informasi yang lainnya.

Membuat shortcut (alias) perintah cek baterai


Sekarang untuk mempermudah cek informasi baterai, kita buat sebuah perintah shortcut/alias untuk perintah-perintah diatas.

Caranya cukup mudah yaitu edit file .bashrc di direktori home anda:

nano ~/.bashrc

Jika file tersebut tidak ada(kosong), coba ganti dengan file .bash_profile atau .profile.

Lalu pada baris paling atas, tambahkan baris:


[code lang="bash"]alias baterai='upower -i /org/freedesktop/UPower/devices/battery_BAT0'
[/code]


Ganti baterai sesuai dengan keinginan anda, yang penting tidak sama dengan perintah-perintah yang sudah ada.

lalu simpan dan jalankan perintah:


[code lang="bash"]source ~/.bashrc[/code]

untuk memuat ulang file .bashrc atau .bash_profile atau .profile.

Kemudian silahkan uji coba alias yang telah dibuat tadi, dimana pada contoh saya adalah perintah baterai.

baterai

No comments :

Post a Comment

Pengolahan citra dengan html5 dan javascript bagian 2: Mengakses data pixel

1 comment
Tutorial ini merupakan lanjutan dari tutorial Pengolahan citra dengan html5 dan javascript bagian 1:Menampilkan citra

Mengakses, membaca dan mengubah data pixel adalah salah satu elemen penting dalam pengolahan citra(image processing) dimana nantinya dari data pixel tersebut akan diolah dengan metode-metode olah citra, kemudian mengubah data pixel tersebut untuk memanipulasi citra.

Pada tutorial sebelumnya, kita sudah bisa mengubah gambar kedalam object canvas html 5. Sekarang saya akan membahas tentang bagaimana cara membaca data pixel dan tentu saja menggunakan javascript.

Mari kita ambil script dari bab sebelumnya.

[code lang="html"]
<html>
<head>
<title>Image processing menggunakan canvas dan javascript</title>

</head>
<body>
<img src=jeruk.jpg style=display:none; id=gambarSumber >
<canvas id=kanvasSumber ></canvas>
<script type=text/javascript>
//membuat variabel javascript yang memuat kedua elemen diatas.
var gambarSumber=document.getElementById('gambarSumber');
var kanvasSumber=document.getElementById('kanvasSumber');

//buat variabel yang memuat tinggi dan lebar gambar
var tinggi=gambarSumber.height;
var lebar=gambarSumber.width;

//samakan tinggi dan lebar kanvas dengan gambar
kanvasSumber.width=lebar;
kanvasSumber.height=tinggi;

//membuat objek 2d dari canvas kemudian menggambar gambarSumber kedalam objek tersebut
var kanvas2d = kanvasSumber.getContext("2d");
kanvas2d.drawImage(gambarSumber,0,0,lebar,tinggi);
</script>
</body>
</html>[/code]

Langkah selanjutnya yaitu membuat variabel baru yang memuat image data dari kanvas2d yang sudah kita buat. Dengan parameter sebagai berikut:

kanvas2d.getImageData(x awal, y awal,lebar,tinggi);

[code lang="html"]//mengambil image data yg memuat data pixel. kita namai dengan variabel idata
            var idata=kanvas2d.getImageData(0,0,lebar,tinggi);

[/code]

Dalam script diatas kita ambil seluruh pixel gambar mulai dari koordinat 0,0.

Sekarang variabel idata memuat clamped array yang berisikan data pixel secara berurutan dari pojok kiri atas hingga pojok kanan bawah.
Masing masing pixel diwakili oleh 4 elemen dari array, dimana:

  • elemen pertama adalah angka desimal(0-255) nilai warna merah/red

  • elemen kedua adalah warna hijau/green

  • elemen ketiga warna biru/blue

  • elemen keempat nilai alpha/transparansi. dimana 0 artinya tidak terlihat sama sekali.


Contoh dari image data yang berisi 2 pixel warna merah dan biru:
255,0,0,255,0,0,255,255 yang dapat diakses melalui idata.data[0] untuk mengambil nilai merah pada pixel pertama jadi sangat sulit untuk menentukan pixel yg akan diolah. Kita perlu cara mudah untuk mengambil nilai satu pixel hanya berdasar kordinat yaitu dengan membuat sebuah fungsi.

Fungsi javascript untuk membaca pixel


Kita namai fungsi dengan nama getPixel, dan menerima 2 variabel parameter yaitu x dan y.

[code lang="html"]function getPixel(x,y){
//membuat array kosong untuk menampung hasil
var arr=Array();
//mengambil posisi pixel dari idata dalam variabel i dengan:
//membagi 4 hasil dari (y*lebar)+x
var i=((y*idata.width)+x)*4;

//masukkan 4 array dari posisi yang sudah ditemukan(i)
arr[0]=idata.data[i]; //warna merah
arr[1]=idata.data[i+1]; //warna hijau
arr[2]=idata.data[i+2]; //warna biru
arr[3]=idata.data[i+3] //transparensi/alpha

//kemudian return array yg memuat hasil
return arr;
}[/code]

Script diatas sudah saya beri comment untuk setiap baris yang saya rasa sudah dapat menjelaskan cara kerja dari fungsi diatas.

Untuk menguji fungsi yang telah dibuat tadi, buka javascript console pada browser dengan klik kanan lalu inspect element, lalu plih tab console. Dan jalankan fungsi diatas misalnya:

[code lang="javascript"]getPixel(0,0);[/code]

untuk mendapatkan pixel paling pojok kanan atas.Screenshot from 2015-08-25 16:16:26maka hasilnya akan seperti berikut:

Screenshot from 2015-08-25 16:19:32

Hasil dari getPixel berupa array yang berisi [67,91,17,255]. yang artinya pixel pada koordinat 0,0 memuat warna:

R/Red/Merah = 67

G/Green/Hijau = 91

B/Blue/Biru = 17

A/Alpha/Transparansi(0=Transparan, 255=Solid) = 255

Mari kita coba dengan koordinat lain misalnya 1,1:

Screenshot from 2015-08-25 16:20:30Artinya :

R/Red/Merah = 43

G/Green/Hijau = 62

B/Blue/Biru = 255

A/Alpha/Transparansi = 255

Script keseluruhan:

[code lang="html"]<html>
<head>
<title>Image processing menggunakan canvas dan javascript</title>

</head>
<body>
<img src=jeruk.jpg style=display:none; id=gambarSumber >
<canvas id=kanvasSumber ></canvas>
<script type=text/javascript>
//membuat variabel javascript yang memuat kedua elemen diatas.
var gambarSumber=document.getElementById('gambarSumber');
var kanvasSumber=document.getElementById('kanvasSumber');

//buat variabel yang memuat tinggi dan lebar gambar
var tinggi=gambarSumber.height;
var lebar=gambarSumber.width;

//samakan tinggi dan lebar kanvas dengan gambar
kanvasSumber.width=lebar;
kanvasSumber.height=tinggi;

//membuat objek 2d dari canvas kemudian menggambar gambarSumber kedalam objek tersebut
var kanvas2d = kanvasSumber.getContext("2d");
kanvas2d.drawImage(gambarSumber,0,0,lebar,tinggi);
var kanvas2d = kanvasSumber.getContext("2d");

//mengambil image data yg memuat data pixel. kita namai dengan variabel idata
var idata=kanvas2d.getImageData(0,0,lebar,tinggi);
//dalam kasus ini kita ambil seluruh pixel gambar mulai dari koordinat 0,0

function getPixel(x,y){
//membuat array kosong untuk menampung hasil
var arr=Array();
//mengambil posisi pixel dari idata dalam variabel i dengan:
//membagi 4 hasil dari (y*lebar)+x
var i=((y*idata.width)+x)*4;

//masukkan 4 array dari posisi yang sudah ditemukan(i)
arr[0]=idata.data[i]; //warna merah
arr[1]=idata.data[i+1]; //warna hijau
arr[2]=idata.data[i+2]; //warna biru
arr[3]=idata.data[i+3] //transparensi/alpha

//kemudian return array yg memuat hasil
return arr;
}

</script>
</body>
</html>[/code]

 

Sekian tutorial pengolahan citra dengan javascript bagian 2 tentang membaca data pixel. Pada tutorial selanjutnya akan saya bahas tentang mengubah data pixel dan me-render ulang gambar pada kanvas, dengan menggunakan library yang sudah saya sediakan.

Untuk video tutorial bisa anda saksikan di youtube:

Indeks tutorial pengolahan citra menggunakan html5 dan javascript:

1 comment :

Post a Comment

Pengolahan citra dengan html5 dan javascript bagian 1: Menampilkan citra

1 comment
Pengolahan citra atau image processing biasanya dilakukan menggunakan bahasa pemrograman compiler seperti C, Java, Pascal, dsb atau pemrograman yang dikhususkan untuk tujuan matematis seperti matlab dan scilab.

Namun seiring perkembangan teknologi, kini pengolahan citra juga bisa dilakukan dengan teknologi web yaitu menggunakan canvas html5 dan javascript.

Canvas adalah sebuah elemen yang hadir pada html5, yang berguna untuk menampilkan, objek grafis 2d. Dan tidak menutup kemungkinan untuk grafis 3d. Sedangkan javascript dalam kasus ini berguna sebagai bahasa pemrograman untuk membuat, mengolah, menampilkan, dan memanipulasi elemen canvas tersebut.

Kelebihan dan kelemahan


Kelebihan


Kelebihan teknologi web untuk pengolahan citra jika dibandingkan dengan teknologi konvensional diantaranya:

  • Hampir bisa dijalankan dimana saja (selama ada browser yang mendukung html5).

  • Tidak perlu compile (seperti web pada umumnya, tinggal edit dan refresh).

  • Bisa dijadikan online (karena pada dasarnya merupakan halaman web biasa).

  • Perkembangan teknologi cepat (mengikuti perkembangan teknologi web yang sangat pesat).

  • Sangat banyak kemungkinan (bayangkan, desktop environment seperti gnome menggunakan javascript dan css, bahkan aplikasi android banyak yang mengandalkan basis web).


Kelemahan


Tentu saja cara ini juga memiliki kelemahan diantaranya :

  • Kurangnya kemampuan untuk mengakses hardware langsung (karena berjalan diatas browser).

  • Kemungkinan lebih lambat untuk prosesnya (karena resource seluruhnya diatur oleh browser, jadi performa antar komputer antar browser bisa saja berbeda).


 

Persiapan pembuatan aplikasi image processing


Kebutuhan



  • Yang perlu disiapkan adalah komputer dengan sistem operasi (pasti :P)

  • Webserver XAMPP atau terserah anda.

  • Sebuah file gambar dengan ukuran tidak terlalu besar, sekitar 640x480 px sudah cukup besar.

  • Text editor terserah anda, saya sarankan menggunaan geany atau notepad++.

  • Browser terbaru (google chrome, mozilla firefox).


Persiapan


Install webserver dan pastikan bisa berjalan dengan baik.

Screenshot from 2015-08-05 20:58:32Buat sebuah folder di htdocs dengan nama imageprocessing(nama bisa terserah anda), kemudian copy file gambar yg sudah disiapkan kedalam folder.

Buka text editor lalu buat sebuah file dengan nama index.html, dan simpan menjadi satu dengan gambar tadi dalam folder imageprocessing.

Isi file index.html dengan html dasar berikut kemudian simpan:

[code lang="html"]

<title>Image processing menggunakan canvas dan javascript</title>


<img src="jeruk.jpg" style="display:none;" id="gambarSumber">
<canvas id="kanvasSumber"></canvas>
<script type="text/javascript"></script>

[/code]

Penjelasan script diatas adalah:

Kita memuat file gambar jeruk.jpg menggunakan tag html img, kemudian sembunyikan gambar tersebut agar tidak tampil, lalu beri id gambarSumber untuk memanggilnya di javascript nanti.

Lalu buat sebuah elemen canvas dengan id kanvasSumber yang nantinya akan kita gunakan untuk menampilkan gambar menggunakan javascript sekaligus menjadi sumber citra untuk proses-proses selanjutnya.

Buat tag ;, bagi anda yang belum tahu.

Sekarang kita buat variabel yang memuat elemen img dan canvas, masing-masing kita namai gambarSumber dan kanvasSumber.

[code lang="javascript"]var gambarSumber=document.getElementById('gambarSumber');
var kanvasSumber=document.getElementById('kanvasSumber');[/code]

script diatas mengambil elemen html yang mempunyai ID gambarSumber kedalam variabel javascript gambarSumber dan ID kanvasSumber kedalam variabel kanvasSumber, menggunakan DOM (apa itu DOM? singkatan dari Document Object Model, bisa anda baca lebih lengkapnya di wikipedia).

Selanjutnya kita memerlukan tinggi dan lebar dari gambar sumber

[code lang="javascript"]var tinggi=gambarSumber.height;
var lebar=gambarSumber.width;[/code]

Lalu kita buat object context 2d dari elemen canvas

[code lang="javascript"]var kanvas2d = kanvasSumber.getContext("2d");[/code]

Lalu gambar gambarSumber kedalam canvas dengan fungsi drawImage.

[code lang="javascript"]kanvas2d.drawImage(gambarSumber,0,0,lebar,tinggi);[/code]

fungsi drawImage diatas membutuhkan 5 parameter yaitu: elemen gambar sumber, x awal , y awal , lebar gambar, tinggi gambar.

Sekarang akses melalui browser ke alamat http://localhost/imageprocessing/ . Jika sudah benar, maka akan tampil gambar kita tadi.

Screenshot from 2015-08-05 21:39:02

Jika kita inspect element, maka bisa dilihat bahwa yang tampil bukanlah elemen html image, melainkan sebuah canvas.

Screenshot from 2015-08-05 21:39:23Screenshot from 2015-08-05 21:40:10Setelah tahap ini, pengolahan citra bisa dilakukan dengan mengambil data dari canvas tersebut yang akan saya lanjutkan pembahasannya pada artikel lanjutan Pengolahan citra dengan html5 dan javascript bagian 2: Membaca data pixel.

Jika anda lebih suka tutorial berbentuk video step by step, bisa anda simak pada video berikut:



Script keseluruhan seperti:

[code lang="javascript"]

<title>Image processing menggunakan canvas dan javascript</title>



<img src="jeruk.jpg" style="display:none;" id="gambarSumber">
<canvas id="kanvasSumber"></canvas>
<script type="text/javascript">
//membuat variabel javascript yang memuat kedua elemen diatas.
var gambarSumber=document.getElementById('gambarSumber');
var kanvasSumber=document.getElementById('kanvasSumber');

//buat variabel yang memuat tinggi dan lebar gambar
var tinggi=gambarSumber.height;
var lebar=gambarSumber.width;

//samakan tinggi dan lebar kanvas dengan gambar
kanvasSumber.width=lebar;
kanvasSumber.height=tinggi;

//membuat objek 2d dari canvas kemudian menggambar gambarSumber kedalam objek tersebut
var kanvas2d = kanvasSumber.getContext("2d");
kanvas2d.drawImage(gambarSumber,0,0,lebar,tinggi);
</script>

[/code]

Indeks tutorial pengolahan citra menggunakan html5 dan javascript:

1 comment :

Post a Comment

Buat, edit, dan mainkan tabulature guitar pro di linux dengan TuxGuitar

No comments
Bagi anda para gitaris yang sudah kenal dan biasa memainkan tabulature dengan aplikasi Guitar Pro di windows, maka di linux ada versi alternatifnya yg open-source, yaitu TuxGuitar. Hebatnya, aplikasi open-source ini mendukung format ekstensi file tabulature PowerTab, Guitar Pro 2, Guitar Pro 3, Guitar Pro 4, dan Guitar Pro 5. Jadi kita bisa mendownload dan memainkan tab gitar dari berbagai macam situs.

Selain mendukung banyak format, TuxGuitar juga dilengkapi dengan fitur export kedalam file MIDI, PDF, dan teks biasa(ASCII). Sehingga memungkinkan untuk men-sintesis ke dalam aplikasi lain(fruity loop, rosegarden atau muse) dan mencetak tabulature.

Instalasi dan Konfigurasi TuxGuitar di Linux Ubuntu


Aplikasi TuxGuitar sudah ada di repository ubuntu, anda hanya tinggal menginstall menggunakan software center, synaptic (di section Multimedia/universe), maupun melalui terminal dengan perintah berikut:

[code lang="bash"]sudo apt-get install tuxguitar[/code]

atau anda bisa mendownload dari website resminya di http://tuxguitar.herac.com.ar/download.html, disana juga terdapat installer TuxGuitar untuk windows dan mac os.
Versi tux guitar yang saya install disini adalah versi 1.2

Berikut adalah tampilan awal dari TuxGuitar.

Screenshot from 2015-08-03 19:53:15TuxGuitar secara default menampilkan music score, tabulature, dan fretboard.

Berikutnya kita atur konfigurasinya supaya bisa memainkan tabulature. Klik menu Tools > Settings, lalu klik tab Sound di paling bawah, kemudian pada drop-down MIDI Port, pilih Gervill.

Jika tidak ada pilihan Gervill, Install dahulu Java sound API untuk TuxGuitar dengan perintah:

[code lang="bash"]sudo apt-get install tuxguitar-jsa[/code]

Setelah itu, tutup window "Configure Tuxguitar", lalu klik "Yes". Sekarang coba mainkan tabulature dengan klik tombol Start pada toolbar. Silahkan mendownload tabulature dari situs guitar pro, ultimate guitar, atau situs-situs lain terserah anda.

Sebagai contoh, saya memainkan tabulature Dream Theater - On the backs of angels

Tutorial singkat penggunaan TuxGuitar


Mengubah tabulature


Sebelum mengubah tabulature, sembunyikan music score terlebih dahulu agar kita lebih leluasa. Dengan menghilangkan centang pada menu view > view Score.

Untuk mengubah tabulature, klik pada tabulature hingga muncul kursor berupa persegi seperti gambar berikut:

tampilan tabulatureLalu klik pada fretboard keynote yang diinginkan misalnya seperti gambar berikut:tampilan fretboardDan hasilnya :

tampilan tabulature2


Meng-export tabulature menjadi PDF dan teks


Setelah edit tabulature, agar kita mudah untuk ber-gitar dengan lebih nyaman tanpa harus menghadap layar komputer, alangkah baiknya jika kita cetak tabulature-nya. Untuk mencetaknya, ada dua cara yg paling mudah. Pertama menggunakan PDF, yang kedua menggunakan file teks. Saya lebih suka cara pertama karena lebih praktis.

Untuk mengekspor kedalam bentuk teks, klik menu File > Export > Export ASCII. Kemudian pilih tempat untuk menyimpan hasil eksport. Hasil Eksport biasanya berformat .tab dimana bisa anda rename menjadi .txt karena pada dasarnya file tersebut hanya memuat teks karakter ASCII saja.

Untuk mengekspor kedalam bentuk PDF, klik menu File > Export > Export PDF. Disini, muncul window Options.

export pdf option

Pada dropdown "Track", pilih track yang akan di ekspor karena biasanya satu file dapat memuat beberapa track seperti lead guitar, rythm guitar, bass, atau distortion guitar.

Pada "Range", kita bisa menentukan jumlah bagian tab yang di ekspor, biarkan default untuk mengekspor dari awal sampai akhir.

Pada "Options", kita bisa menentukan apa saja yang dicetak. Misalnya kita hanya memerlukan tabulature saja, maka centang "Show Tablature", dan hilangkan centang yg lain.

Lalu klik OK dan pilih tempat untuk menyimpan.

Catatan Tambahan


Dalam contoh ini, kita menggunakan java sound API (Gervill) untuk memainkan tabulature, dan bunyi yang dihasilkan menjadi kurang menarik. Untuk mengatasi masalah ini, kita bisa menggunakan synthesizer lain untuk meng-sintesis suara gitar yang lebih mendekati bunyi gitar sungguhan.

Salah satu synthesizer yang populer di linux adalah fluidsynth, menggunakan tampilan gui QSynth. yang akan saya bahas di artikel berikutnya.

No comments :

Post a Comment