I Will Forget: Setting FileZilla Server On Windows Server

July 10, 2015

There are a lot of simple things which I usually forget how to do it again. I will post them under "I Will Forget" title and "iwf" tag.

You access a new pretty Windows Server with slick Metro interface and not some black and white console. You want to transfer files to that server manually via FTP. Then you download and install FileZilla server edition. Unfortunately, you can't access it from your FTP client. The message is "Error: The data connection could not be established".

First, ensure port 21 is open. You can also try to set firewall to allow FileZilla server program. If your server is hosted on EC2, ensure your security group doesn't block it.

Somehow your FileZilla server shows warning that your server is behind a NAT router.

You need to set up Passive mode settings. Set IP there to point to your server's IP and specify allowed ports.

Then you try your FTP client again. It says it can't list available directories.

Probably you forget to unblock the allowed ports in passive mode ?

Advanced Custom Field: A Really Useful Plugin For Wordpress

June 11, 2015

These past few months, I revert to use PHP for my office projects. It is not my fave language, but our projects uses Wordpress so it is unavoidable.

While my Wordpress experience is still relatively young, I have to admit its plugin ecosystem is really rich. A particular plugin which is really useful is ACF (Advanced Custom Field).

In Wordpress, the most common data type is "post". A post contains fields such as title, excerpt, slug, etc.

More often than not, your article needs additional field. Wordpress facilitates this via custom field.

However if you need to have a quick, user friendly and powerful solution you can try to use Advanced Custom Field plugin. It is commercial but is worth it.

ACF has a lot of additional field types. One of the most important is its Repeater field. Repeater field type allows us to create more complex parent child model easily.

Disclaimer: I have no relation with ACF developer.


February 7, 2015

Here I'm sitting behind my PC desk writing my first blog post in 2015.

Several events have happened :

  • My uncle, which lived in the same home, passed away. He has battled with illness for some years. He funded my junior hi school, senior hi school and university. I wouldn't be a programmer like now without him. So I thanked him for all his help and guidance.
  • Intel showcased Compute Stick (and NUC), a small PC as big as palm of your hand. Will 2015 be a big year for Internet of Things?
  • Pacquiao met Mayweather for first time at NBA game. I expect they will finally fight this year.
  • Inter Milan has acquired Shaqiri, their first big signing under Thohir.
  • And today Node.js finally reached version 0.12 after long-long wait !! Some projects like Node-webkit and Atom already switch from Node to io.js. Will need to monitor which platform be most supported by community.
  • Rust language will reach 1.0 soon! Although Rust is lower level language but it is already popular at least at Github. Will Rust popularity match Go at least ?

Year 2015 will bring more challenge and hopefully exciting events. Bring it on !!!

Desktop Apps In 2014

December 17, 2014

Nowadays web apps are getting more and more dominant.
It is kind of bittersweet for me, considering I'm more of a desktop app guy.
Ten years ago, during semester 3 of my university days, I studied my first desktop programming API, with Visual Basic 6.0.
Years went by, and now my office projects involves web only.

The last time I did desktop programming was an informal app for my friend, built with WPF.

Egg Farm System

Unfortunately it was not kind of app that make myself happy. But it was acceptable considering I haven't touched any desktop API for quite long, so I needed time to restudy API.

Now (end of 2014), if I were going to develop a desktop app for myself, I would probably consider the following APIs:

  • Qt Quick
  • WPF
  • Node-webkit

I have never tried node-webkit, but a lot of apps already use it. Personally I don't like the idea of using HTML + Js for developing serious desktop app, but it is worth a try for hobby project.

Node-gyp on Windows with Visual C++ 2013

December 12, 2014

A common thing to do after installing Node.js on Windows is setting up node-gyp's compiler settings.
Node-gyp is needed for compiling native modules.

In my pc & laptop, I use Visual C++ 2013 compiler, so I need to do the following steps:

  • Set compiler version
npm config set msvs_version 2013 --global 
  • Update MSBuild Toolset settings of node-gyp.
    To do this I need to edit common.gypi file, normally found inside C:\Users\{username}\.node-gyp directory.
    You can refer to gimelfarb's comment here.
  'target_defaults': {
     'configurations': {
        'Release': {
          'conditions': [
            ['target_arch=="x64"', {
              'msvs_configuration_platform': 'x64',
              'msbuild_toolset': 'v120_xp'            <--- THIS LINE!

Poirot is Back In The Monogram Murders

December 10, 2014

Hercule Poirot, the famous Belgian detective, is back in a new novel, The Monogram Murders.
This novel wasn't written by Christie, who died on 1976, but by Sophie Hannah, with the permission of Christie's family.

The Monogram Murders Indonesian Cover

It was released around September in Indonesia.
As an author with heavy burden, Sophie has tried to her best to follow Christie's style of writing. If the author's name was hidden, I wouldn't be able to tell easily if this is not Christie's.

My 2 cents:

  • A decent, not special Poirot novel.
  • It still had complicated plot, however the conclusion was a bit underwhelming
  • Catchpool, Poirot's new partner was Hastings 2.0
  • It was just my imagination or Indonesian translation felt a bit off / too wordy
  • Some details like Poirot's ego, and his obsessions with neat things, were there. You can also still find Shakespeare's line as usual.