Category Archives: Informatics

Mount HD Eksternal dengan OS Windows di Dalamnya

Masih berhubungan dengan tulisan sebelumnya, di SSD yang baru ini saya memutuskan untuk hijrah ke OS (Operating System) Ubuntu. Sebelumnya di hard disk (HD) yang lama saya menggunakan Windows 8. HD yang lama itu kemudian saya jadikan sebagai HD eksternal. Di dalamnya masih terinstall Windows 8.

Namun ada hal yang perlu diperhatikan ketika ingin menjadikan hard disk dengan OS Windows (versi 8 ke atas) sebagai HD eksternal. Pastikan bahwa Windows benar-benar telah dalam kondisi fully shutdown, bukan hybrid shutdown (setengah shutdown dan setengah hibernate) yang memang adalah default configuration dari Windows 8 (dan juga 10).

Jika tidak, maka HD tersebut tidak akan bisa diakses saat berada di OS Linux (dalam kasus saya, saya menggunakan Ubuntu). Mounting bisa, tapi hanya dalam mode read-only saja.

Untuk melakukan full shutdown ini cukup simpel. Kita bisa melakukannya dari Command Prompt dengan menjalankan perintah sebagai berikut:

shutdown /s /t 0

Kata “shutdown” sudah jelas adalah perintah untuk melakukan shutdown (atau reboot). Sementara itu parameter “/s” menyatakan shutdown, bukan reboot (dinyatakan dengan “/r”) atau hybrid shutdown (dinyatakan dengan “/hybrid”). Sementara parameter “/t 0” menyatakan berapa detik komputer harus melakukan shutdown sejak perintah itu dieksekusi. Karena itu parameter “/t 0” menyatakan bahwa komputer akan melakukan shutdown seketika command line dieksekusi.

Apabila OS sudah benar-benar shutdown, HD tersebut pun bisa di-mount dengan sebagaimana mestinya di OS Linux. Kita bisa melakukan aksi read & write terhadap HD tersebut.

 

Advertisements
Rekomendasi film dari Netflix

Eranya Rekomendasi

Pernah kepikiran nggak sih kalau sekarang ini kita hidup di eranya “rekomendasi”? Mau ngapa-ngapain — terutama untuk sesuatu hal yang baru yang belum pernah kita lakukan atau temui sebelumnya — secara naluri kita akan melihat (atau mendengar) terlebih dahulu review orang lain.

Nah, yang namanya review itu biasanya sih kalau nggak mengandung pujian, ya kritikan, atau juga dua-duanya sekaligus. Ujungnya si pe-review biasanya ngasih rating, entah itu dalam skala 5, 10, 100 atau suka-suka dia :D. Rating yang diberikan itu kemudian akan masuk dalam pertimbangan orang yang membaca review. Apabila si pe-review juga ngasih kesimpulan dalam kata-kata seperti recommended atau nggak recommended (atau kata-kata yang sejenis), wah itu tentu bakal semakin membekas pada si pembaca. Jadi polanya review → rating → recommendation.

Kenapa saya sebut “era”, karena memang seiring dengan perkembangan teknologi informasi saat ini, akses terhadap review-review tersebut menjadi sangat mudah. Banyak sekali Continue reading

putty

Mengunggah Git Repository ke Shared Hosting Menggunakan Git-FTP

Apa itu Git? Bagi para developer tentunya sudah tak asing lagi dengan kakas (tool) yang satu ini. Git adalah sebuah kakas yang memudahkan para developer untuk mengelola versi aplikasi mereka.

Bagi mereka yang bekerja dalam sebuah tim, Git ini akan sangat membantu mengolaborasikan pekerjaan antar developer. Tak perlu itu copy file secara manual antar personel.

Direktori projek aplikasi yang berisi kode dan resource lainnya yang menggunakan Git biasa disebut dengan Git repository. Bitbucket dan Github adalah contoh website penyedia hosting Git repository secara gratis. Kita bisa meletakkan kode projek aplikasi di sana. Atau bisa juga kita men-setup sendiri Git Repository di komputer kita.

Ketika aplikasi sudah siap untuk di-deploy pada stage production alias live, kita tinggal menjalankan perintah “git pull” saja di server tempat aplikasi akan live. Nah, kendalanya adalah jika kita hosting web kita pada shared hosting. 

Umumnya penyedia jasa shared hosting ini tidak menyediakan fasilitas git. Pengguna shared hosting hanya bisa Continue reading

Google Location History

Aku baru tahu belakangan ini bahwa Google ternyata memiliki fitur location history setelah membaca artikel di TechChrunch ini kemarin. Sebenarnya sekitar 1-2 minggu yang lalu juga pernah membaca artikel serupa, cuma lupa di website mana. Nah, di artikel TechCrunch itu disebutkan bahwa sebenarnya fitur ini tuh sudah ada sejak 4 tahun yang lalu. Wew, kenapa aku bisa baru tahu. 😯

Location history itu bisa diakses di alamat https://maps.google.com/locationhistory. Ini dia salah satu screenshoot dari location history punya ane.

Riwayat lokasi

Riwayat lokasi

Location history ini bisa kita lihat secara detail per tanggal dan bahkan juga per jam. Jadi pada tanggal sekian jam sekian kita berada di mana, Google sudah merekamnya ternyata.

Google tahu dari mana? Jika Anda adalah seorang pengguna Android, ketika melakukan setup account pertama kali di hp Anda, pasti akan muncul prompt dengan tulisan “Google wants to know your location” atau “Google could transmit your location…” atau yang semacamnya (aku lupa tepatnya). Nah, bila Anda menyetujuinya, artinya pada saat-saat tertentu Google bisa saja mengakses lokasi Anda dan mengirimkannya ke server Google. Selain di initial setup, opsi pengaturan izin akses lokasi ini dapat diubah kapanpun di menu Settings. Aku kurang begitu tahu apakah di device lain selain Android, apakah Google melakukan hal serupa (baca: meminta akses lokasi).

Alasanku kenapa aku memilih menghidupkan servis Google ini sebenarnya sebagai tindakan preventif saja sih seandainya aku terkena musibah hp hilang, dicuri orang, dan sebagainya. Nah, lucunya aku baru tahu jika ternyata Google juga menyediakan ‘fasilitas’ untuk melihat riwayat lokasi kita itu. Kelebihan lainnya jika menghidupkan servis lokasi ini, Google bisa menebak di mana rumah dan tempat kerja/sekolah/kampus kita berdasarkan rutinitas kita sehari-hari.

Tahu kan fitur “Google Now” yang diunggulkan Google sebagai saingannya Siri-nya Apple, yang berperan (seolah) sebagai asisten pribadi. Nah, di fitur Google Now itu Google akan menanyakan apakah alamat ini tuh rumah kita atau kantor kita. Kalau kita mengiyakan atau mengoreksinya, besok-besoknya Google akan memberikan reminder jam berapa kita berangkat kerja dan jam berapa kita waktunya pulang, serta rekomendasi jalan mana yang sebaiknya kita lalui, berdasarkan ya rutinitas tadi. Pernah suatu saat aku stay di hotel di Kuala Lumpur beberapa hari karena ada urusan kerja, eh, hebatnya dia bisa langsung meng-adjust di mana “home” dan di mana “work”.

Mind blowing bukan? 😀

Nah, setelah mengetahui itu kadang-kadang aku merasa ngeri sendiri. Di sisi lain aku memang merasa terbantukan dengan adanya “asisten” pribadi ini. Tapi di sisi lain tetap saja aku merasa khawatir dengan disalahgunakannya data pribadiku ini (kayak orang penting aje, haha). Tahu sendiri kan beberapa waktu lalu sempat heboh berita penyadapan di Indonesia-Australia dan beberapa negara lainnya. Thanks to Edward Snowden yang telah membocorkan informasi-informasi “sakral” terkait dengan dunia perintelijenan.

Yep, itulah teknologi yang terkadang bisa menjadi pisau bermata dua. Yang penting perlu dicamkan sih bahwa sekarang ini kita hidup di zaman di mana informasi mudah didapat. Karena itu, kita perlu bijak membagikan suatu informasi. Di halaman location history itu kita bisa menggunakan fitur hapus riwayat, baik per lokasi, per hari, ataupun seluruh riwayat, jika kita tidak ingin riwayat lokasi kita diketahui oleh Google. 😀

Menggunakan Stanford NER dengan Spring MVC

Pada tulisan kali ini saya ingin berbagi mengenai bagaimana membuat aplikasi sederhana memanfaatkan Stanford NER dengan framework Spring MVC (versi 3). Oke, pertama-tama apa itu Stanford NER? Sederhananya, NER, sebagaimana kepanjangannya Name Entity Recognizer, berguna untuk melabeli kata-kata dalam suatu teks menurut entitasnya, antara lain seperti nama orang, organisasi, atau lokasi. Sedangkan yang disebut dengan Stanford NER itu sendiri adalah implementasi NER dalam Java yang dibuat oleh The Stanford Natural Language Processing Group.

Di tulisan ini saya tidak membahas mengenai bagaimana implementasi NER tersebut dilakukan atau model yang mana yang digunakan dalam Stanford NER itu. Semua pembahasan mengenai itu sudah tersedia di webnya → http://nlp.stanford.edu/software/CRF-NER.shtml. Bahkan ada pranala juga menuju paper terkait dengan model yang digunakan. Di web tersebut juga, tepatnya di bagian menu Download, kita bisa mengunduh file JAR Stanford NER yang akan digunakan.

Masih belum beranjak dari situs Stanford NER itu, di sana kita juga bisa mencoba secara live Stanford NER itu melalui pranala berikut → http://nlp.stanford.edu:8080/ner/process. Di form aplikasi Stanford NER tersebut kita bisa memilih classifier yang akan kita gunakan, kemudian memasukkan input berupa teks. Dalam contoh saya, saya menggunakan sebuah kalimat yang saya kutip dari artikel situs BBC. Dari input kalimat yang saya berikan, saya mendapatkan output 4 labeled words (baik berupa kata tunggal ataupun majemuk) dengan entitasnya masing-masing.

Contoh input & output pada Stanford NER

Contoh input & output pada Stanford NER

Dari contoh di atas setidaknya terlihat dengan jelaslah ya apa sih kegunaan NER ini, terutama bagi rekan-rekan yang mungkin baru mendengar apa itu NER. NER ini akan sangat berguna untuk aplikasi-aplikasi yang menyediakan fitur auto-tagging. Yah … semacam fitur recommendation tag-nya Wordpress lah.

Nah, selanjutnya adalah bagaimana cara memanfaatkan Stanford NER ini untuk Continue reading

Library untuk Theming Aplikasi Android

Seperti yang sudah diketahui, sebagaimana ‘termaktub’ dalam design principles Android apps, Android memiliki template layout aplikasi yang sudah diikuti oleh sebagian besar aplikasi-aplikasi Android belakangan ini.

Nah, bagi Anda para Android developer, telah tersedia — kayak iklan aje, hehehe — beberapa open source library yang bisa kita gunakan untuk mempermudah pengembangan aplikasi kita agar mengikuti design principles itu. 

Di artikel ini saya hanya ingin berbagi mengenai 4 library yang saya gunakan untuk theming aplikasi Android.

1. ActionBarSherlock

Actionbarsherlock

Sampel Actionbarsherlock

Boleh dibilang inilah “a must have” library dalam suatu project Android. Library ini sudah sangat populer. Cukup banyak aplikasi populer di Play Store yang menggunakan library ini. Yang obvious menyebutkan menggunakan library ini dalam aplikasinya, salah satunya adalah aplikasi Otaku Camera. Yang lain misalnya, Foursquare dan GitHub.

ActionBarSherlock sebenarnya adalah extension dari native ActionBar-nya Android. Nah, dengan library ini kita akan dengan mudah membuat action bar untuk aplikasi kita. Kelebihannya, action bar tersebut akan kompatibel dengan berbagai versi Android (versi 2.x ke atas).

Kita dapat mengunduh library itu di sini. Di dalamnya ada project demo yang dapat kita pelajari dan menjadikanya sebagai referensi. Ada berbagai macam variasi penerapan action bar yang dicontohkan pada project demo tersebut. Thanks to Jack Wharton yang sudah mengembangkan library ini. 🙂

 

2. ViewPagerIndicator

Sample ViewPageIndicator

Sample ViewPageIndicator

ViewPagerIndicator sebenarnya merupakan extension dari ViewPager yang native-nya Android. Bedanya, dengan menggunakan library ini kita akan dengan mudah mengkustomisasi style atau theme dari top atau bottom bar yang akan kita buat.

Kita dapat mempelajari berbagai variasi penerapan ViewPagerIndicator ini dari project demo yang terdapat di dalamnya. Mulai dari tab view standar, tab view dengan kombinasi icon + title, dsb. Selain itu, untuk kasus di mana ada beberapa tab view yang mungkin akan tak tampak oleh user karena limitasi dari lebar screen, dapat diakali dengan meletakkan indicator baik berupa icon, garis, bulatan, dsb yang bisa kita kustom. Dengan ViewPagerIndicator ini juga fitur swipe untuk navigasi antar view langsung terimplementasi.

Beberapa aplikasi PlayStore yang menggunakan library ini di antaranya Beautiful Widgets, FriendCaster, TV Show Favs, dan SeriesGuide. Lagi-lagi, thanks to Jack Wharton yang sudah mengembangkan library ini. 🙂

 

3. Android Menu Drawer

Sample MenuDrawer

Sample MenuDrawer

Ingin membuat menu drawer seperti pada Facebook, Uber Social, atau Foursquare di Android? Library MenuDrawer karya Simon Vig Therkildsen ini boleh dicoba. Anda bisa mengunduhnya di GitHub, di sini.

Sebagai catatan, mungkin ada beberapa library menu drawer lain. Tapi hasil baca-baca di stack overflow, sepertinya inilah library paling direkomendasikan untuk membuat menu drawer. Ternyata lagi-lagi Jake Wharton juga ikut berkontribusi dalam mengembangkan library ini.

Sama seperti dua library yang disebutkan sebelumnya, di dalam project pada GitHub itu juga include project demo-nya. Kita bisa mempelajari variasi penggunaan library ini dari contoh-contoh yang ada.

 

 

 

4. PullToRefresh

Sampel PullToRefresh

Sampel PullToRefresh

Sebenarnya ini agak out of topic dengan topik dalam tulisan ini yang lebih menekankan library-library yang mempermudah kita dalam mengembangkan aplikasi Android yang sesuai dengan design guideline-nya Android. Tapi okelah, anggap saja ini sebagai bonus (emang apaan … kuis berhadiah kalee, hehehe). 😀

Para pengguna aplikasi Android tentu sudah familiar dengan action “pull to refresh”. Tulisan itu biasanya akan muncul ketika kita menarik suatu bidang view konten aplikasi — baik berupa list atau view biasa — hingga ke batas maksimum atau minimumnya. Setelah itu yang terjadi adalah aplikasi akan menge-load konten sebelum atau sesudah current content yang tengah ditampilkan.

Nah, untuk menambahkan fitur tersebut pada aplikasi, kita tak perlu membuatnya dari nol lagi karena sudah ada library yang membantu kita untuk mengimplementasikan itu. Sebagai catatan, library untuk pull to refresh itu mungkin ada banyak. Tapi sejauh ini yang sesuai dengan kebutuhan saya sehingga saya rekomendasikan di tulisan ini adalah library PullToRefresh karya Chris Banes. Anda bisa mengunduhnya di sini.

Salah satu fiturnya yang sesuai dengan kebutuhan saya adalah bisa pull to refresh dari kedua sisi, atas dan bawah. Selain itu, yang penting adalah tersedianya demo dan penjelasan mengenai bagaimana penggunaannya, sehingga mudah saya mengerti. View yang bisa di-pull to refresh tidak hanya ListView saja, tapi WebView, ScrollView, GridView, dsb. pun juga didukung dan diberikan contoh penggunaannya. Sayang, kekurangannya adalah hanya support Android untuk versi 2.3 ke atas.

Kesimpulan

Ada banyak sebenarnya library-library yang mempermudah kita dalam mengembangkan aplikasi Android yang sesuai dengan guideline. A must havelibrary yang akan sangat membantu adalah ActionBarSherlock.

Perlu dicatat, sebenarnya kita pun bisa mengimplementasikan action bar atau view pager native dari Android Support Library. Tapi dengan menggunakan ActionBarSherlock dan ViewPagerIndicator akan lebih mudah bagi kita untuk mengimplementasikannya. Keduanya adalah karya Jake Wharton.

Apabila ingin membuat menu aplikasi yang ‘tidak biasa’, seperti Facebook atau Uber Social dengan menu drawer-nya, sudah ada library yang tersedia untuk itu yang bisa kita manfaatkan, yaitu karya Simon Vig Therkildsen yang bisa diunduh di sini. Begitu pula fitur pull to refresh” untuk memperbaharui konten, juga telah tersedia library-nya, salah satunya adalah karya Chris Banes yang bisa diunduh di sini.

Anda punya rekomendasi library yang lain? Silakan share di sini. 🙂

Template Layout Aplikasi Android

Kalau Anda memperhatikan, beberapa aplikasi Android (yang non-game) sebenarnya memiliki kesamaan template layout. Beberapa di antaranya:

SuperSU

SuperSU

Runkeeper

Runkeeper

Quora

Quora

Tweetcaster

Tweetcaster

Google PlayStore

Google PlayStore

Path

Path

Foursquare

Foursquare

Facebook

Facebook

Gmail

Gmail

Toresto

Toresto

—————————————————————————————————————

Hmm… coba tebak apa persamaan dari layout aplikasi-aplikasi di atas? 😀

Bagi yang pernah mengembangkan aplikasi Android (atau mungkin juga aplikasi mobile lainnya) tentu akan paham. Pada layout aplikasi-aplikasi tersebut terdapat adanya pengelompokan yang jelas antara action button dan view control.

Di design principles yang ditulis Google di dokumentasi pengembangan aplikasi Android di http://developer.android.com/design/patterns/actionbar.html juga sudah digambarkan secara mendetail bagaimana ‘seharusnya’ layout suatu aplikasi Android didesain. Yak, mengutip dari link tersebut, kurang lebih secara umum bisa dijelaskan seperti ini:

Layout aplikasi

Layout aplikasi (sumber: developer.android.com)

  1. Main Action Bar 

Kalau di web mungkin bisa dibayangkan seperti header. Umumnya di align kiri terdapat icon dan nama aplikasi. Lalu di align kanan terdapat item-item action menu.

  1. Top Bar

Biasanya berupa view controls atau navigation bar. Fungsinya adalah memudahkan user untuk berpindah antar halaman view

Varian bentuknya cukup banyak. Aplikasi-aplikasi di atas selain Google PlayStore, Facebook, dan Foursquare adalah contoh bentuk fixed tabs. Semua tab langsung terlihat dalam satu layar. 

Sedangkan PlayStore sendiri menggunakan scrollable tabs. Tidak semua tab view ditampilkan dalam satu layar. Untuk melihat tab-tab yang lain, kita perlu men-swipe layar ke kiri atau ke kanan.

Facebook dan Foursquare adalah contoh aplikasi yang menggunakan bentuk drawers. Memang secara eksplisit sangat berbeda ‘penampakan’-nya dengan top bar pada aplikasi standar. Action button untuk menampilkan drawers itu biasanya berupa icon berbentuk strip 3 horizontal menggantikan icon atau nama aplikasi di bagian kiri action bar.

  1. Bottom Bar

Fungsinya persis dengan top bar. Bedanya tentu adalah letaknya di dalam aplikasi itu. Pada gambar aplikas-aplikasi di atas, Toresto dan  Gmail adalah salah satu yang menggunakan bottom bar tersebut.

Sejauh ini rasanya aku belum pernah menemui sebuah aplikasi yang bersamaan menggunakan top dan bottom bar. Selain karena kegunaannya yang sama, juga karena pertimbangan space yang tersedia untuk konten menjadi berkurang ketika keduanya muncul bersamaan.

—————————————————————————————————————

Untuk mengetahui lebih detail design principle dalam membangun aplikasi Android, bisa baca-baca di http://developer.android.com/design/index.html. Nah, untuk tulisan berikutnya aku akan mencoba membagi pengetahuan mengenai apa saja library yang bisa kita manfaatkan untuk memudahkan pekerjaan kita dalam membangun aplikasi Android yang sesuai dengan guideline tersebut. Because sharing is caring. 🙂