Android APK Auto Builder – Part 1 : Setting Up Server And Gradle

Over the past few weeks I've been toying with the idea of automatically build and send test APK to fabric when I pushed update to server repository server.

The very purpose of this research is, so that I don't have to manually build an APK and upload it to crashlytics. A process that could took time between 5-15 minutes between gradle build and actually find the generated APK and upload it to crashlytics. Sometime, it took more than 20 minutes on low internet connection. The time that I can use to drive home, since, usually, I upload APK to crashlytics at the end of the day.

Continue reading “Android APK Auto Builder – Part 1 : Setting Up Server And Gradle”

Share

Teach Your Kids To Understand How To Code

Being a programmers might not be for everyone. But, understand how program works can benefit almost everybody. I remembered how I learn to code, how to have the right mental blocks. Because, to be a programmer, you are not only have to understand the language but, you also need to understand logic. Why is something work like this, why the code produced that output.

Understanding variables, loops, functions, logical structure is the basic that every programmer must know. For kids these days, there are so many tools and apps to help them. They Don’t have to be a professional programmers. But, by understanding it, might open up a whole new point of view.

I am Programmer and honestly, I don’t push my children to be one. But, from their early age, I already teach them logic. I am not introducing them to actual languages though. The learning curve is too steep for them. They’re children after all. Games is their world.

So, I introduced them to the world of programming by playing with it. To do that, I use ScratchJr from MIT. It’s the stripped down version from the desktop. But, for now, it is quite enough for my children. With it, they can learn loop, object, and interactions. I plan to introduce them to the full version when they’re old enough and understand English. Here are some of the results that they’ve produced.

Another app that I use to teach them is “The Foos“. It came in the package of games with 3 star achievement. My kids loved both apps and I can’t wait to introduce then the a whole new level of learning to code!

Share

On Hosting Providers And Domain Names

These days, almost every business needs a website. Even a friend of mine who don't have a business, said he needed a website to express his point of view. If I count my friends, about 68% of them have websites and the rest are planning to have one. So how do you build a website?

Continue reading “On Hosting Providers And Domain Names”

Share

Stackoverflow And Rapid Code Learning

I've been learn programming from around 1997. I remembered back then, my first programming was, creating HTML documents using Notepad. Yep, you read that right. I know HTML is not programming and I know Notepad is BAD for coding. But, hey, I lived literally in the jungle and my only options for learning back then was books.

My learning pace was slow since I need to flip back and forth books. If I forgot a subject, I need to remember what page is it. If I stuck, I need more books. No internet at that time.

Few years after that, I went to college. Around 2004, I learn PHP. At that time, I started learning PHP4 other than the languages that was teaches officially. Read few books. I also learned how to google when issue arises. It is always a hit/miss situations. Sometime I got good result, most of the time, I need to ask into forums, lots of forums. I recalled that I need several searches to get to the result I needed.

Years goes by and I keep google to find an answer. My google fu became better and google's algorithm also upgraded. It became easier to use and results are more relevant to the question. However, sometime, the answer is not what I am looking. Sometime, the answer is old and no longer irrelevant. When the answer landed me to forum, I need to dig through reply after reply and still need to verify most of it.

And then, Stackoverflow.com came!

I remember reading Joel's post when he told the world about it and the post sums up my problem:

And sometimes, the first result looks like it's going to have the answer to their exact question, and they are excited, until they click on the link, and discover that it's a pay site, and the answer is cloaked or hidden or behind a pay-wall, and you have to buy a membership.

And you won't even get an expert answer. You'll get a bunch of responses typed by other programmers like you. Some of the responses will be wrong, some will be right, some may be out of date, and it's hard to imagine that with the cooperative spirit of the internet this is the best thing we programmers have come up with.

I've been using stackoverflow since it's inception. I still use google as my entry point and on result page, I always look for stackoverflow. Usually, it is on the very first result. Because google's search algorithm is way better than stackoverflow. After years of using, I no longer read programming books and I am sad about it. To compensate that, most of my time, I read articles about programming. You know, bite size knowledge ;).

Share

Bypass Internet Positif Dengan VPNGate

Pengguna speedy? website langganan ndak bisa dibuka karena kena internet positif atau dianggap gak ada sama mercusuar? Sama dong :D.

Selama beberapa minggu terakhir, jaringan speedy sangat tidak reliable. Ini bukan karena koneksi yang terbatas atau karena ada banyak yang download. Tapi karena telkom speedy menerapkan apa yang biasa disebut sebagai transparent proxy. Suatu mekanisme yang membuat semua request DNS (request yang bertujuan untuk mengubah alamat website menjadi IP), kemanapun server DNS kita setting, akan selalu dibelokkan ke alamat DNS milik telkom speedy. Kalau server itu reliable sih, saya ok saja. Masalahnya, server DNS milik speedy saaaaaaaangat tidak bisa diandalkan. Domain project management milik tomatech jadi sering kali tidak bisa dibuka. Akibatnya cukup fatal, karyawan jadi tidak bisa melakukan reporting pekerjaan, gagal melakukan push/pull/cloning repository, termasuk juga jadi gagal mengirimkan dan melakukan pengecekan tickets dari issue2 yang ada.

Solusinya? Dulu sih saya pakai solusi dengan SSH tunneling. Tapi… beberapa minggu terakhir, solusi ini sudah tidak bisa digunakan lagi. Akhirnya saya pakai solusi dengan menggunakan VPN. Layanan VPN yang saya pakai adalah dari VPNGate.net. Layanan ini memiliki banyak sekali server yang siap digunakan. Saya sampai membuat 3 profile VPN yang bisa diganti2 sesuka hati :D.

Cara penggunaannya juga sangat mudah:

  1. Cukup buka website vpngate.net
  2. Pada bagian “Server List”, centang hanya “L2TP/IPsec”. Karena konfigurasi L2TP/IPsec adalah yang paling mudah dan tanpa perlu download aplikasi tambahan.
  3. Setelah dapat daftarnya, ambil IP/server VPN yang diinginkan. Saya pribadi, menggunakan server Jepang dan Thailand.
  4. Selanjutnya, silahkan mengikuti tutorial yang ada di halaman berikut (sesuaikan dengan OS yang kalian pakai): http://www.vpngate.net/en/howto_l2tp.aspx
Share

How I consume contents

How I Interact With Contents

In the age of informations, news and contents are flooding our way aggressively. We will sometime feeling overwhelmed by it. Few weeks ago, a friend of mine throws a question: “How do follow news/informations?” My answer is simple, “Because I read it”. He then asked follow up question “How do you get the information?”. At that time, I didn’t answer the question. I just said that I’ll share how I know it all later. This is my take to answer the question. I will break down this writing into two different subject: Acquire and read.

Continue reading “How I consume contents”

Share

Bisakah Menggunakan PHP Untuk Membuat Aplikasi Firefox OS?

Saya sudah beberapa kali mengisi materi tentang cara membuat aplikasi Firefox OS. Pada setiap kesempatan, selalu saja ada yang menanyakan seperti judul tulisan di atas. Biasanya, pertanyaan ini timbul setelah saya menjelaskan kalau untuk membuat aplikasi Firefox OS, yang dibutuhkan hanya pemahaman mengenai HTML, javascript, dan CSS.

Lalu, apa jawaban yang saya berikan? Biasaya, saya jelaskan dulu tentang arsitektur aplikasi di Firefox OS. Aplikasi di Firefox OS memang menggunakan bahasa yang biasa digunakan untuk membuat website. Tapi… seperti halnya website pada umumnya, elemen2 tersebut (HTML, javascript, dan CSS) hanyalah bahan untuk membuat tampilan front-end (apa yang terlihat oleh user). Sedangkan logika dibelakang di sisi server, digerakkan oleh bahasa lain (saya sengaja tidak mengangkat nodejs, biar tidak membingungkan), misalnya PHP, JSP, ASP.NET, dll. Pada hosted WebApp, aplikasi sama saja dengan website pada umumnya. Yang membedakan hanya, terdapat definisi aplikasi berupa file manifest.webapp yang membuat website tersebut bisa dianggap sebagai aplikasi oleh Firefox OS. Sedangkan pada packaged WebApp, kita hanya membuat front-end (yang terdiri dari kode HTML, javascript, dan CSS).

Jadi, jawabannya apa? Jawabannya, seperti yang sudah dijelaskan mengenai perbedaan kedua jenis aplikasi di atas, kita tidak bisa menggunakan PHP untuk membuat aplikasi Firefox OS. Melainkan kita gunakan hanya di sisi server (apabila aplikasi kita membutuhkan data dari server). Bagaimana komunikasi data antara aplikasi packaged WebApp dengan server? Ya sama dengan seperti yang biasa kita lakukan saat membuat website. Yaitu, dengan menggunakan teknologi AJAX. Atau, dengan menggunakan HTTP request biasa, apabila kita membuat hosted WebApp.

Share

Object, Function, Scope, Prototype, dan Closure Pada Javascript

Sepanjang perjalanan saya menulis kode javascript, saya sadar walau saya senang dengan dialek bahasa yang ada, tapi sedikit sulit untuk dimengerti. Banyak yang mendasarkan ini pada (memang harus diakui memang tidak begitu bagus) desain bahasa, atau penyimpangan implementasi dari yang umum digunakan bahasa lainnya. Yang manapun itu, dengan mengerti sedikit kebenaran yang ada bisa membuat anda pergi jauh dengan javascript. Apa yang akan dijabarkan setelah ini adalah versi tertulis dan ringkas dari kelas pengenalan javascript yang saya berikan pada program pelatihan dan user groups.

Continue reading “Object, Function, Scope, Prototype, dan Closure Pada Javascript”

Share