Showing posts with label Tools. Show all posts
Showing posts with label Tools. Show all posts

Saturday, July 25, 2015

HTML 5 Javascript API

Overview

HTML 5 bukan merupakan hal baru, pertama kali dipublish ke public pada tahun 2008, perkembangannya sudah sangat signifikan. Perlahan tapi pasti, browser-browser mulai memfasilitasi HTML 5, atau mungkin sudah memfasilitasi sepenuhnya.

Dari perspektif software development, HTML 5 memberikan API javascript baru yang bermanfaat untuk membuat Web App, beberapa diantaranya seperti Audio, Video memudahkan developer untuk membuat fitur-fitur tertentu yang sebelumnya sulit dilakukan.



Audio dan Video

Belum terlalu lama sebenarnya, untuk suatu halaman web bisa menayangkan video atau memutas musik, perlu download dan install plugin dari third-party vendor. Sekarang tidak lagi.

Saat ini HTML 5 men-support Tag Audio dan Video. Memasang video dan audio pada halaman web menjadi semudah memasang gambar, cukup dengan memberikan tag dan sumbernya


Web Workers

Adakalanya developer perlu membuat lebih dari satu thread untuk memfasilitasi kebutuhan tertentu, dan ini bukan hal gampang pada Web App sebelum HTML 5.

Dengan adanya Web Worker API pada HTML 5, developer bisa membuat background worker yang basically merupakan thread lain karena terpisah dari Main Thread web yang melakukan rendering UI.


Web Sockets

WebSocket merupakan teknologi menarik di HTML 5 karena memungkinkan Web App untuk berkomunikasi dengan server tidak hanya via Http tapi juga via Tcp.

Komunikasi dengan Tcp bersifat persisten dan bi-directional. Persisten memungkinkan Web menerima data tanpa request terlebih dahulu, sedangkan bi-directional memungkinkan server dan web saling mengirimkan data pada waktu yang sama.

LocalStorage

LocalStorage API memungkinkan browser untuk menyimpan data di browser tanpa membutuhkan jaringan. Data bisa dibuat, disimpan, di ambil meski sedang tidak ada koneksi internet.

Meski memiliki kemiripan dengan cookie, sebenarnya mereka memiliki kegunaan yang berbeda, masing-masing memiliki manfaat pada situasi dan kondisinya.


Lain-lain

Banyak API-API lain seperti geolocation, History API, File Writer dan lain-lain. Semua ini merupakan sebuah tools, yang memiliki skenario dan kegunaan yang apabila dimanfaatkan dengan pas, akan membantu developer dalam mengembangkan Web App.



Tuesday, July 21, 2015

Tips Mempercepat Development Web App

Overview

Web-App sudah menjadi mainstream, atau bahkan mulai bisa dikatakan old-school sekarang-sekarang ini, namun bukan berarti membangun Web-App lantas menjadi mudah dan cepat. Memang saat ini banyak sekali teknologi yang dapat digunakan untuk mempercepat proses development Web-App, bahkan mungkin terlalu banyak sehingga mungkin agak membingungkan untuk sebagian orang.

Berikut merupakan beberapa teknologi/konsep yang bisa dimanfaatkan untuk mempercepat development Web-App, antara lain:

  1. Develop dengan Arsitektur Front-End dan Back-End
  2. Manfaatkan Javascript Widget Libraries
  3. Gunakan PostgreSQL
  4. Manfaatkan Scaffolding / Source Code Generator
  5. Gunakan Bootstrap Admin Template

Arsitektur Front-End Back-End

Dewasa ini berkembang istilah Front-End dan Back-End, bahkan terdapat 1 halaman Wikipedia yang menjelaskan hal tersebut. Untuk mendevelop Web-App dengan tim tiga orang atau lebih, arsitektur ini sangat bermanfaat untuk mengelola kompleksitas, karena arsitektur ini memisahkan dengan jelas UI/UX dengan inner engine dibaliknya, sehingga comply dengan prinsip Separation of Concern, dimana prinsip tersebut merupakan best practice dalam Software Development.

Javascript Widget Libraries

Widget Javascript Libraries dapat mempercepat development karena menyediakan widget-widget yang langsung bisa dipergunakan dengan sedikit kode, bahkan umumnya tidak ada logic pada kode, hanya setting-setting dan konfigurasi saja. Selain itu, Widget umumnya bersifat komponen based sehingga dapat mengunakan berbagai macam libraries sekaligus atau dipadukan dengan Javascript Framework seperti AngularJS, EmberJS dll. Dengan kerugian hanya bentuknya yang standard dan mungkin loading time pertama kali lebih lama, trade-off-nya masih lebih condong ke positif daripada negatif.

PostgreSQL

Jika Oracle merupakan pilihan solid untuk database enterprise, maka PostgreSQL merupakan ekuivalent Oracle pada dunia open source. PostgreSQL memiliki fitur-fitur hebat yang umumnya tidak ada di database lain. Googling PostgreSQL vs Database lain akan memberikan perspektif kapan sebaiknya postgreSQL digunakan dibanding database lain, yang tampaknya lebih sering daripada tidak.

Source Code Generator

Dengan hanya sedikit menulis kode, generate, and BAM! jadilah simple version dengan fully functional features. Sayangnya, menggunakan source code generator ibarat pedang bermata dua, namun jika dipergunakan dengan pas, akan lebih banyak manfaatnya daripada kerugiannya. Salah satu prinsip untuk menggunakannya dengan baik adalah: Hindari men-Generate 2 kali untuk hal yang sama.

Bootstrap Admin Template

CSS Framework tidak hanya bootstrap, banyak pilihan lain yang sebenarnya tidak kalah bagus. Namun khusus untuk Admin Template yang based on Bootstrap, pilihannya sangatlah baaanyaaakk. Dari yang gratis sampai yang berbayar. Untuk menghemat waktu dalam melakukan design, akan jauh lebih efektif jika melakukan modifikasi dari Template yang sudah dipilih, tidak perlu memulai dari nol.




Bagaimana dengan anda, adakah teknologi/prinsip yang anda pergunakan untuk mempercepat proses development web-app?




Thursday, December 8, 2011

RSS atau Atom Reader Dengan Google Reader

RSS/Atom adalah teknologi yang sudah lama ada dan sudah banyak digunakan. Untuk orang-orang yang sering browsing internet mengupdate info-info terbaru tentang apapun, RSS/Atom ini memudahkan mereka melakukannya.

Apa itu RSS/Atom?
RSS/Atom adalah teknologi yang memungkinkan kita mendapatkan summary dari informasi terbaru pada website yang kita pantau. Summary ini kadang berupa Judul saja, kadang Judul dan beberapa kalimat awal, kadang seluruh isi informasi terbaru, tergantung dari website yang kita pantau.

Kenapa harus RSS/Atom, kenapa ga langsung aja ke websitenya?
Adakalanya suatu website mengeluarkan informasi baru dengan kecepatan yang tinggi, bisa ratusan per harinya. Dan belum tentu kita tertarik dengan seluruh informasi tersebut. Akan lebih enak jika kita punya summary untuk seluruh informasi yang ada, dan hanya membuka halaman dari informasi yang menarik untuk dibaca.

Ok, lalu bagaimana caranya untuk menggunakan teknologi ini?
prinsipnya ada 3 langkah utama, yang nantinya akan didetailkan, yaitu:

  1. Aktifkan RSS/Atom Reader software
  2. subscribe website favorit
  3. ulangi langkah 2
Banyak sekali software Reader baik yang diinstall ataupun Web App. Thunderbird atau outlook juga bisa digunakan sebagai RSS/Atom Reader. Namun Saya disini menggunakan Google Reader, karena Saya menggunakan gmail sebagai email pribadi utama, dan tidak ingin menambahkan aplikasi yang diinstall. 

Aktifkan Google Reader
login ke email google anda, Register jika belum punya, maka pada bagian teratas akan terdapat banyak link. Click more dan pilih Reader, seperti pada gambar berikut:
Maka halaman akan berpindah ke google Reader. Dengan begini, Google Reader telah aktif.

Subscribe Website Favorit
dengan mengclick tombol subscribe
akan muncul window kecil untuk memasukkan alamat website favorit, seperti gambar berikut:
Google Reader memudahkan proses website subscription. Biasanya kita perlu mencari link ke RSS/Atom Feed pada suatu website, pada Google Reader hal itu dilakukan secara otomatis. Namun mungkin saja pada software lain terdapat fitur serupa.

Tambahkan beberapa website-website favorit lainnya. Saya memiliki teman yang men-subscribe banyak website sehingga 1 harinya memiliki lebih dari 1000 item untuk dibaca. If you have no idea, Google Reader memiliki fitur rekomendasi untuk memudahkan kita men-subscribe website-website populer. Selamat mencoba.



Friday, June 3, 2011

Tunneling dengan SSH

Pengen nambah postingan tentang Linux, HowTo dan Tools, hehe. Umum aja sih, mungkin sebagian besar orang sudah tau, mungkin juga belum. Yaitu tentang tunneling dengan SSH.

Prerequisite: tau apa, kenapa, gimana SSH. Kalo ga tau, googling banyak pasti. Kalo males googling, email aja ke gw.

Tunneling sendiri sebenarnya sangat dalam pengertiannya dan maksudnya, tapi kalo dari pengalaman pribadi, tunneling paling sering digunakan untuk forwarding.

Misalkan ada suatu jaringan LAN yang menghubungkan banyak Linux komputer sekaligus, dan satu komputer di LAN tersebut memiliki IP public internet. Katakan IP lokalnya 192.168.10.10. Pada jaringan tersebut, terdapat 1 komputer lain (tidak punya IP public) yang didalamnya terinstall MySQL. Katakan IP-nya 192.168.10.15

Kita ga bisa nih, akses si 10.15, karena ga punya IP public, sedangkan 10.10 bisa kita akses. Hal ini dapat disiasati dengan tunneling ke 10.15 melalui 10.10.

Caranya gimana? cukup dengan SSH ke 10.10, tapi dengan command tambahan, sehingga jadinya seperti berikut:
ssh root@256.13.14.267 -L10000:192.168.19.15:3306

mari kita liat command tambahan "-L10000:192.168.19.15:3306". Sebenarnya command disamping memiliki format demikian:
-L::

Jadi dengan perintah diatas, seseorang dapat mengakses MySQL di 19.15 dengan cara konek ke localhost post 10000!! Dengan perintah diatas, setiap kita mengakses port 10000 di local, seolah olah kita menjadi 10.10 yang mengakses komputer IP 19.15 port 3306. In my opinion, tunneling is quite cool actually, hehe

Enaknya lagi, tunneling juga bisa dilakukan programmatically, but that is for another story.

Semoga bermanfaat

Saturday, May 21, 2011

Dark Theme Netbeans Java

Selera Personal aja sih, tapi gw lebih seneng dark theme untuk coding. Lebih enak buat mata apalagi kalo menghabiskan waktu berjam-jam.

Dibawah ini gambar salah satu editor yang dipake, Netbeans, dengan profile Norway Today yang di enhance lagi. Tentu saja enhancement-nya khusus untuk bahasa Java.



Enchancementnya antara lain:
  • Variabel dengan scope yang berbeda, yaitu variabel lokal, variabel member, dan variable parameter, memiliki warna yang berbeda, sehingga mudah dibedakan
  • unused variabel, scope apapun, apabila tidak digunakan akan berwarna merah
  • Method declaration dan Method usage memiliki warna sendiri
  • Class Declaration dan Class usage juga memiliki warna sendiri
Pengen tampilan netbeans java-nya jadi kayak diatas tapi males ngedit satu-satu? PM aja, ntar dikirimin export-annya, hehe

Friday, November 19, 2010

Pengalaman Menggunakan Git

Sudah hampir setahun PT. Sangkuriang menggunakan git, dan akhirnya sudah mulai berpindah dari workflow svn-centric menjadi workflow yang distributed, lebih tepatnya Workflow dengan Gatekeeper.

Workflow Gatekeeper sebenarnya sederhana. Programmer cukup 'mengambil' kode dari Repository pusat. Setiap perubahan yang dilakukannya di-commit ke komputernya saja. Kemudian secara berkala, ada seorang Gatekeeper yang mengambil kode-kode dari komputer programmer tersebut dan melakukan kegiatan quality assurance (functionality, code review, unit test, integration test, an so on). Apabila kode memenuhi kualitas, Gatekeeper akan nge-push kode ke Repository pusat. Terakhir Gatekeeper akan meng-inform programmer-programmer untuk meng-update kodenya.

Saya benar-benar puas dengan workflow ini. Kode repository pusat adalah kode yang 'stable', perubahan-perubahan kode dapat terlacak dengan mudah, dan kualitas kode terjaga dengan baik.

Meski terdapat beberapa drawback seperti kode repository tidak akan terupdate jika gatekeeper tidak hadir(sakit, atau cuti), namun masih tertutup dengan benefit yang diberikannya. Meskipun pada awalnya, migrasi dari SVN ke git memberikan banyak kesulitan karena git cukup kompleks untuk dipelajari, pada akhirnya membuahkan hasil yang memuaskan.

PS: Ada yang kesulitan menggunakan git? ada yang ingin konsultasi migrasi SVN ke git? tulis di comment aja ya, hehe

Monday, November 15, 2010

Trend Software Development Tahun Ini

Tahun ini memang masih ada satu setengah bulan lagi, tapi ga ada salahnya dong, kalo Saya buat review versi pribadi apa yang lagi ngetrend di tahun ini yang berhubungan dengan Software development, hehe. Without further ado, here:
  1. Distributed Version Control War
  2. Functional Programming
  3. NoSQL
  4. Java
  5. Cloud
Distributed Version Control War
Tak dapat disangsikan lagi, meski SVN masih paling umum digunakan dan terus dikembangkan, konsepnya yang Centralized akan tetap melekat. Meski tidak akan seluruhnya tergantikan dengan Version Control generasi selanjutnya yang mengusung teknologi distributed, namun secara fitur memang sudah 'terlewati'. Untungnya masih terjadi 'perang' antar 3 besar Distributed Version Control. Bazaar dari Canonical, Git dari Linus Torvald, dan Mercurial dari Selenic. Wajar saja, masing-masing memiliki kelebihan dan kekurangannya yang kebetulan saling kontras. Perang ini tampaknya masih akan terus berlanjut

Functional Programming
entah dimulai dari kapan, namun functional programming tahun ini sedang dalam sorotan. Berbagai bahasa imperative yang terkenal seperti C++, Java, C# mulai/sudah memfasilitasi functional programming. Banyak sekali claim yang beredar di internet yang menyatakan bahwa jika seorang programmer menguasai functional programming, maka skill codingnya akan meningkat exponensial, belum lagi perusahaan-perusahaan besar mencari developer yang menguasai bahasa imperativ DAN functional. Haha, terlepas benar atau tidak, tidak ada salahnya untuk memperlajari functional programming ini.

NoSQL
menurut Saya, NoSQL ini merupakan inovasi yang out of the box. Bagaimana tidak, NoSQL ini menghilangkan fitur SQL pada suatu database, sehingga yang tersisa adalah penyimpanan data berbasiskan Key-Value. Namun tak disangka, hal ini justru menghasilkan aplikasi database yang powerfull, robust dan scalable sehingga aplikasi semacam Facebook yang memiliki ratusan juta user tidak kesulitan menyimpan dan me-retrieve data dalam waktu yang dapat ditoleransi oleh penggunanya. Kabarnya, database google untuk menyimpan index-indexnya juga berkonsep NoSQL ini.

Java
The great Java. Terlepas dari kekurangan-kekurangannya, tak dapat dipungkiri jumlah library-nya yang tidak terbatas dan kemampuannya untuk multiplatform. Namun Java tahun ini ramai bukan karena Java 7-nya, namun karena dibelinya SUN oleh Oracle. Oracle terkenal suka meng-komersial-kan Software-software yang didapatnya dari membeli pemilik asli software tersebut. Kabarnya Oracle juga akan merilis JVM yang komersial. Bagaimana ya nasib Java kedepannya?

Cloud
Ah, Cloud Computing. Cloud computing ini mulai ramai pada saat aplikasi web menggantikan posisi aplikasi desktop. Contoh paling jelas adalah munculnya Google Docs, yang memiliki fitur mirip dengan Microsoft Office. Saat ini, banyak sekali aplikasi-aplikasi yang tadinya hanya terdapat pada aplikasi desktop, terdapat juga versi web-nya. Namun mungkin di Indonesia kurang begitu kerasa, karena koneksi internetnya yang tidak stabil. Meski begitu, tidak dipungkiri pergerakan software mulai menuju web, yang mana dapat mengcover baik PC maupun mobile device

Bagaimana ya dengan trend tahun depan? semoga terdapat hal-hal baru yang menarik


Thursday, January 21, 2010

Query-Helper, Kelas Java Simpel Untuk Membuat Query

Tampaknya sudah lama tidak posting di blog ini, hehe. Sebenarnya bukan gw males posting, tapi posting di blog lain, dengan identitas bukan asli tentunya, hihihi.

Anyway, ditimbang-timbang tadinya mo posting di mana, tapi akhirnya diputuskan disini saja. Bersama posting ini saya mau, eng ing eng, release Repo di github, hehe.

Namanya Query-Helper, kelas simpel untuk bikin query. Terinspirasi dari framework PHP, sedang iseng ingin reinvent the wheel, serta saran dari Breck Yunits untuk bikin project sampingan yang simple, akhirnya dibuat juga ini.

Feel free to give me comments, critics, bugfix, or contribute, hehe. Sementara sih sourcenya ga berlicense, hua ha ha ha, tapi kalopun nanti dikasih, paling BSD atau LGPL, hehe.

Wednesday, August 20, 2008

Translator Bahasa Indonesia

lagi baca-baca RSS, tiba-tiba ngeliat http://translator.iptek.net.id/

ngeliat performanya, masih belom bisa dibilang memuaskan, meski kalo disuruh bikin, belom tentu juga bisa kayak gitu, hehe.

Tapi bagus deh, semoga semakin lama semakin canggih, dan kalo dah bagus, mungkin ABC Software akan benar-benar bisa digunakan untuk mengajarkan baca tulis, hehe