reorganizing platforms

I just set up a new WordPress blog here. Over the past few days, I also got an experimental blog up and running at Caspershire. FYI, I’m running Caspershire by using Ghost, on Amazon EC2 platform. Since it is an experiment, I might be migrating Caspershire to somewhere else, as for now I’m thinking about RedHat’s OpenShift PaaS platform to set up a production version of Ghost.

I texted Piqaashi, asking her for advice on what should I do with my (upcoming) Caspershire, and then I came to a conclusion. I want to seperate my pieces into 2 sections: something that can make you think, and another one is technical stuffs (particularly computer and technology). So, it’ll be 2 of them, the Caspershire and NightlyArt.

NightlyArt Revival is hosted on because I don’t want to get into the hassle of deploying a self-hosted WordPress (technical reasons that you might not want to know), but since I’m quite into developer mode right now, I changed my mind and remake a new version of NightlyArt on the webhosting I own. I won’t delete this blog (100+ posts are here, and it really takes time if I want to export them, giving the fact that time is an essence). I keep this alive, and all of you can browse the archive whenever you want but few weeks or at least a month onward, my upcoming pieces won’t be hosted here anymore.

My soon-will-be-set-into-production Caspershire would be fully up and running mid December, and if you wanna be geek, you can head to NightlyArt now.

p/s: It is unlikely I will post a long article on Caspershire. I still have 94fs, remember? On Caspershire, my desire to write limited to something short and simple, and sometimes Caspershire’s pieces are going to be elongated a bit more later on at 94fs. Purrfect.


third time from scratch. worth it

My fingers were drenched in sweat (and blood.. typing commands and codes is no joke). I continued Ghost deployment today to fix several maddening issues (thank god Ghost didn’t haunt my sleep last night). This time, rather than using Amazon Linux AMI, I switched to Ubuntu and I felt better working on OS that I know ins and outs.

Moving on. Last night I wrote that I couldn’t get Forever and Ghost running properly, and today I uncovered why. A pesky permission issue with sqlite. Linux and permission issue can’t part. Forever mingling. I didn’t notice this permission issue because I didn’t bother looking at Forever‘s log. So, how did I catch that?

PM2. I was looking for Forever‘s alternative, and bumped into a much elegant script kickstarter, that is PM2. I fell in love with its interface (but I hated it right the seconds after PM2 failed too). This is the interface of the simpleton Forever.

the simpleton forever

Wanna something saliva dripping? Look at this PM2.

pm2 elegant

Better? Yes, much better. By taking a deep ponder into this status check, it came to me that PM2 developer(s) might have thought that each script that runs under PM2’s influence prone to error, so that’s why path to err logs included right after you summon PM2. Legit argument? I think so.

On the first attempt waking up Ghost by using PM2, it resulted in vain. Checked the log, found the culprit.

readonly write attempt

For the next attempt, I gave another try with Forever by running sudo forever start index.js, and sorcery happened. Ghost was up and running. Stopped Forever, cleared PM2 logs and re-ran it again with sudo pm2 start index.js and.. no luck. Checked the log and tadaa, a recurring issue among PM2 users. I lodged a report already on GitHub.

pm 2 error report

Theming on Ghost

Installed a new theme on Ghost, but core didn’t register the theme pack. Restarting Ghost is the only option (seems like that, for now). I hope that the next version of Ghost could add watcher inside the theme folder. When the watcher awares of changes, something will run a check on it and register the changes to core if a new theme is spotted.

Closing Word

Done with installation issues, moving to roll my Ghost by attaching NightlyArt subdomain on it. FYI, I’m working on Amazon EC2 Asia Pacific Region, running on Ubuntu 12.04 LTS Precise Pangolin.

– Aizan Fahri, Malaysia.

first 7 hours with Ghost

For those who were stalking my Twitter, you must have realized that today I’ve been tweeting quite a lot technical jargons. Here’s why: I subscribed Amazon EC2 Free Tier to launch the Ghost. I spent first 1 hour and half installing and configuring both NodeJS and Ghost but I failed, and I blame my carelessness. It has been quite a long time I haven’t used Linux. Realizing that I executed few commands with noticeable slip-ups, then I took a 2-hour break (DotA 2 included) before working on it again.

I deleted the first instance (or you can say a VM, tho not really an accurate term), then got a new one running. I used the Amazon Linux AMI (I should have used Ubuntu AMI, because I still don’t know what is the base distro of Amazon Linux AMI. CentOS, probably). Launched the second instance, still on Amazon Linux AMI but this time with extra care with what I typed.

ghost installation

First, according to the guide, is to run the update.  That’s the common task when working with any Linux distribution (we don’t bother any Windows update, do we?). Then, grab the NodeJS and install it by compiling it yourself (should be easy, with make and make install command). Then, fetch the latest version of Ghost, edit the config file (use command cp config.example.js config.js, then use command nano config.js). I used the default Development configuration (the first section). Don’t bother editing the rest sections in the config file, otherwise you know what you are doing.

ghost configuration file

Yerp, I prefer nano over vim, because I’m not that pro.

I got everything pretty right for the second attempt, then I start the npm inside the Ghost folder by using sudo /usr/local/bin/npm start command. Caught no error.

ghost running environment on ec2

Just leave the terminal open. Don’t close it. Once you close it, Ghost will stop running.. I think. So, let’s go to the Ghost’s web interface. Dealing with the CLI was quite nauseating, so I was hoping the GUI would give a pleasant smell of satisfaction. It did, btw.

create user screen

I was greeted with this registration page (with few warning messages below the browser’s navbar, about mail app and… something I couldn’t remember.. haha). As for now with Ghost 0.3.2, only 1 user can be created on a single Ghost installation. Maybe next time we can have multiple users on a Ghost, and maybe multiple Ghost from a single user (like the WordPress Multisite feature).

Once the registration was done, I logged out and tried logging in. Purrfect!

sexy login screen

No need to verify email address (maybe the developers might wanna add email verification feature next time).

If we talk about improvements?

Sure we want improvements. Here are few ideas.

1) Friendlier installation process. I won’t compare it with WordPress or any other PHP-based CMS, because Ghost isn’t built to run on PHP/Apache stack. It is built on NodeJS, and this NodeJS isn’t widely adapted yet. However, I think I can see quite a bright future with NodeJS.

2) Still on installation process, I sincerely hope that installation of Ghost in aspect of editing config.js file would be more easier in the coming future. Not that editing the config.js is troublesome (it wasn’t troublesome at all), but at least make it inviting. I can’t complaint anything other than that, given the fact that to run Ghost, command line is required to run the npm. Hands down.

3) Ghost’s Markdown editor is great, seriously. I would like to emphasis on how fast the reaction time of the preview pane. Unlike any other online Markdown editors I have used before, there was no noticeable lag when I was using Ghost’s editor. But, here’s something I think I want to tweak, if I know how. The font size is ridiculously big. Is there any standard says Markdown must use big fonts? The same case on iA Writer (OS X). I hate big fonts.

4) Err, can you please fix the code to display page header properly? Thanks!

fix this namepage

Few misconception. My misconception, at least.

Just learnt about the existence of NodeJS few days ago. I’m quite adept with the basics of Apache stack (and Nginx stack, too). Just the basic configuration stuffs only. The concept of deployment on NodeJS is quite different. Here’s why:

Once Apache stack is installed, it listens to any incoming request (in this example, we assume a connection comes from port 80). Once a request hit Apache, even tho the web folder (/var/www) is empty, it returns a page on browser like Error 404, or anything similar. But on NodeJS stack (in my case, on Amazon Linux AMI), NodeJS is running all the time (is it? I think it is), but NodeJS doesn’t listen to any incoming request. Only application listens to incoming request.

I was dumbfounded when I set up NodeJS but when I navigated to the browser, I got “Firefox can’t establish a connection to the server at bla bla bla”. I thought I skipped a part or two, but when I rechecked, I did nothing wrong.

When I ran the command sudo /usr/local/bin/npm start inside the Ghost installation directory, then I was served correctly. Lesson learned; NodeJS just runs the app, it doesn’t listen to any request.

Can’t keep running forever. For now.

Having trouble with Forever (npm module) and Cron. I tried these 2 methods to keep my Ghost alive, but I failed without knowing what was wrong. Also I tried running it as service but this time I was sure I did it wrongly (again, I don’t know what Amazon Linux AMI really is, I should’ve used Ubuntu AMI instead). But as long as my second attempt of running a usable Ghost came to fruition, I can sleep soundly tonight although the site went down the moment I logged out from the server.


Rating comes later, testing first. I wanna be enlisted in the developers’ team (a beta tester, maybe.. or working with Wiki. Sounds great).

Good night, sleep tight.

– Aizan Fahri, Malaysia.

p/s: Oh yea. I encountered permission error with npm install -g forever, and when I used sudo npm install -g forever, I was greeted with a freaking annoying npm: command not found. All you need is to fix permission error. No need to use sudo npm.

a doctor with noble intent

I saw a tweet last night. Let’s read that tweet first before I write my thoughts. It’d be deep.

“There was someone who asked me before, why I want to build a hospital with “profit-based” out of the picture as my main agenda?“.

A noble intent, I must say. Then, I replied his tweet like this.

“Sure, if you can stay alive with Honda City while your colleagues have Mercedes and superbike, you have my blessings”.

3 years ago

Still in high school, we adhered to the notion that being a doctor can make a person richer and have more assets compared to one’s friends. Going deeper, we argued what kind of doctor can do more money (we agreed that dentist can make more money than GP). Then, we came to a talk about working in the private sector in order to be richer than other doctors serving in the public sector.

This is madness.

I think Florence Nightingale might cry everyday if she knows this. Even though Florance was a nurse, but she was serving in public healthcare. What about Avicenna and Hippocrates? Both might be terribly disappointed to a point both of them might write new book and rewrite the oath; The Canon of Doctors – How To Be Rich and Hippocratic Oath (Business edition).

Stop this madness. If you are aiming to have boatloads of assets, be a businessman.

Dalvik. It is in the oven, being baked.

Before we delve further, I’d like to announce proudly that I’ve unlocked an achievement: procrastinator, even something I like doing. I’ve been skipping the research part for quite a long time (I swear I wasn’t slacking, in fact after I was assigned this task I immediately bookmarked relevant links and information.. yeah, only bookmarked. You know the how the rest of the story goes. Your surmise is correct if the word DotA 2 popped out).

the outline for dalvik vm

This is the outline. First draft is on its way. Thanks to @pali7x for the guides. The whole article is broken down into 4 parts. The first part is about the introduction to Dalvik, which might be featuring some analogies (yes, analogies, with s, that indicates plural). I’m writing to a quite broad range of readers, so I think the analogies would be on the noob tier, intermediate tier, and a-bit-above-intermediate-tier.

p/s: I’m eloquent and prowess with my language, so this is the time for me to shine bright like an amethyst (because shine bright like a diamond is too mainstream).

The second part spins around the workflow of the Dalvik VM. I don’t intend to put much effort on this, because the mechanism is extremely simple to be explained once the analogies are well-grasped by the readers.

Or maybe that part might be a bit long, if comparisons between native execution and process virtual machines are accounted. As usual, the nemesis of Android (each and every time) is iOS. To compare about native and vm, the easiest way to tell is Android vs iOS. A legit and geek battle.

p/s: It is Android and iOS. The war between technologies, not how gilded phone can be far superior than a plastic cheap-looking what-they-claim as smartphones. HAHA.

The third part is what does it do, making it unique than other solutions (again, native vs vm). Here I dive into a bit deeper of process virtual machine. The aim of Dalvik VM is to make it universally usable, no matter what kind of hardwares a phone uses.  Again, it explains why Android phones are ubiquitous.

The fourth part, a bit trickier part. History time. Everybody sucks at history. What makes an article stands out is how the writer can story-tell the history of a technology.

That’s all for today’s update on Dalvik. Gimme me a bit more time, and let Aizan Fahri be famous again. Haha.

the cobwebs syndrome

I know I know.. I haven’t updated everything (94fs and N/A Revival) for ages. Forgive me. The faults are mine. I got too carried away studying for my placement test, though it wasn’t scary as expected (because the real one didn’t chicken me out). Seriously if you have RM300 (or $90) and you don’t know what to do, take SAT. Later on I’ll write the breakdown of SAT (ambitious! ambitious!).

This cobwebs syndrome.. I don’t plan to let it consume my prowess, so I’ve drafted 4 articles (3 for 94fs, 1 for N/A Revival). Within a week, I want to gauge how many articles I can accomplish, so later on I can be more efficient handling writing task. Oh FYI, right now I’m writing an article for AmanzMY about Dalvik VM. Oh FYI, this is my dirty little secret: haven’t started anything, including researching. I might take up to 2 days for gathering information and sketching skeleton article at the same time, so I guess the article will be submitted to my boss around 14 – 16 October.

Writing about Dalvik VM is a piece of intimidating task: explaining Dalvik to muggles (I prefer to address myself as magician of codes and wizard of snippets) requires a certain degree of creativity. The tricks lie on how I’m gonna visualizing a (near-) technically correct analogy before techies go wild harassing the comment section if I wrote a bad analogy.

… and the interesting part is, the most interesting I assure you is: I have to write in Bahasa.

Kammpaaii ~

p/s: I’m waiting for blog CMS from John O’Nolan, the Ghost.  Since N/A Revival is serving as a site for me to rant and rave non-systematically, I might migrate to my own Ghost (on my webhosting) and then I’ll keep this site intact. Maybe I’ll need to use this again in the near future (read: if Ghost screwed everything.. idk).

rants on studying like a pro

As a typical Google-er, when I have an issue in my life I’d turn my laptop on and get Google Chrome running, in this case, I googled how to study. At the very same moment after I clicked on few search results, I decided the articles weren’t worth reading. I continued studying as usual. So question here is, WHY?

The tips and tricks to study like a pro are presented by using laundry-list style, as follows:

  • Obliterate any distraction.
  • Clear your mind and thought.
  • Take notes when you are reading.

How am I supposed to follow these abstracts advice? I mean, obliterate distraction how? Clear my mind and thought how? Can you be any more specific? If you can’t be more specific, how about telling us how you do it?

Ok this is the refurbished version that came out from my experience, let’s start with obliterate any distraction first.

To provide a distraction-free environment to study, I prefer not to study with my laptop running in front of me. If I want to let it running, I’d put it in the another room and let it downloading torrent files (movies, series, anime). I got a phone capable of playing audio files, so I downloaded Rainy Mood app to my phone and let it sings with the rhythm of gushing rain. It is soothing.

I got a specific rig for my earphone. Actually, I’m using Sennheiser HD 380 Pro Headphones because it can reduce surrounding noise. Guess what, nobody can disturb me when I’m studying.

What about clearing my mind and thought?

Before I start studying I’d be meditating for 3 – 5 minutes. That time I’d focus my mind and virtually breaking down tasks at hands into chunks, like how am I supposed to start, how the process would look like and what will I get the end of the process. With that, I know which part I should give extra priority and which part I can play a bit.


Be specific, don’t be generic.