Quote: The most important characteristic of promises

The most important characteristic of promises is that it normalizes into predictable form how we handle the success or failure of any function call, especially if that call may be asynchronous in nature.

And in that normalization, it leaves our program in a position to control and trust how it will proceed, rather than handing that control (via a callback continuation) off to an untrustable third-party.



Break the promise chains flow

I like the idea of chaining the promises in my code so that it looks nice, pretty nice and easier to read. After several months following this pattern, I have a situation where I need to break the chain promise flow, like stopping the flow. See the below snippet code:

From the above code, I am expecting the code to stop chain and move on to the .catch handler, but is not. I learned the code will continue the flow as I return with no value at line 9.

So, here is the way to break the promise chains, instead of returning with no value, I throw an Error to stop the flow:

Oh, yeah I use Bluebird to working with Promise…

Implement Material Design in AngularJS

Last week I started working on a project to apply the Material Design into the AngularJS based application. I’m not quite sure how it goes since the application is already based on Bootstrap, and not quite sure which Boostrap themes I should use. Today, I kinda interested to use Polymer since it has a Paper elements, but not quite sure how Polymer can coexist in AngularJS application, so I google it using polymer in angularjs and found an interesting search result.

Angular Material

Angular Material

Angular Material! I’m started thinking like this is what I need. I think for now I will try Angular Material, and if its good then I will drop my intention to use Paper elements for now.

Updating to Node v0.12

Today I just noticed that I’m still using the old version of Node, v0.10.36 to be precise. So, I head over to Node blog to see what is happening. It seems to be there is an update for the v0.10.x contained a fix for CVE-2015-0278. I can just update the Node installed on my laptop to v0.10.37 and at the same time I’m curious what if I move forward to Node v0.12.0. I don’t really get into the Node v0.12.0 stuff, so I decided to update it to those version. At this point I’m not quite sure what changes that brought to the Node v0.12.0. There is a few great a places to start digging what’s new in Node v0.12:

  1. API changes between v0.10 and v0.12
  2. What’s New in Node v0.12

Cara tercepat mengetahui versi generator yang digunakan

Hi, ini catatan singkat cara tercepat untuk mengetahui versi generator-angular-fullstack yang digunakan untuk menghasilkan sumber kode aplikasi.

Untuk mengetahui versi generator yang digunakan untuk menghasilkan sumber kodenya, bisa dilakukan dengan mengikuti langkah umum berikut:

  1. Gunakan fitur pencari di editor untuk mencari berkas Gruntfile.js
  2. Lihat baris paling atas, akan terdapat komentar singkat yang menginformasikan kapan berkas tersebut dihasilkan dan versi generator-angular-fullstack yang digunakan
diff: Gruntfile.js antara kode yang lama dan yang baru

diff: Gruntfile.js antara kode yang lama dan yang baru

Cara terbaik untuk memperbarui sumber kode aplikasi yang lama

Semalam saya ragu bagaimana memperbarui sumber kode aplikasi yang lama. Singkat cerita, aplikasi ini adalah aplikasi web yang dihasilkan melalui generator-angular-fullstack. Saya sudah cukup lama menggunakan generator tersebut untuk membangun struktur aplikasi yang berbasis MEAN stack. Semalam merupakan titik dimana saya harus memperbaharui sumber kode aplikasi dengan versi generator yang baru (v2.x). Penyempurnaan yang dilakukan oleh kontributor generator tersebut cukup signifikan, terutama pada struktur aplikasi yang lebih modular. Jadi, alasannya cukup masuk akal, apalagi aplikasi yang sedang saya kerjakan akan memuat beberapa fitur baru.

Untuk memperbaharui ada beberapa cara yang sebelumnya sudah saya pikirkan sekaligus ditanyakan kepada kontributor. Berdasarkan issue (pertanyaan) yang saya buat tadi malam, berikut cara terbaik memperbaharui sumber kode yang dihasilkan melalui generator-angular-fullstack:

  • Jika sumber kode yang dihasilkan melalui generator v1.x, maka proses pembaharuan harus dilakukan secara manual dengan copy paste sebagian kode yang penting ke sumber kode aplikasi baru yang dihasilkan melalui generator v2.x. Konsekuensi penerapan cara ini mengharuskan saya untuk teliti dan menggunakan waktu yang relatif lebih banyak.
  • Jika sumber kode yang dihasilkan melalui generator v2.x, maka proses pembaharuan cukup mengulang proses pembuatan dengan mengeksekusi yo angular-fullstack pada direktori sumber kode aplikasi

Semoga teman-teman yang kebetulan juga menggunakan generator ini mendapatkan manfaat dari catatan saya ini.