How Hacker News Will Affect Your Site?

I have never expected that this little blog of mine will reach the 1st page of Hacker News.

Yeay! In Hacker News!

I dreamed of it. How wonderful it would be if I just reached the 1st page of Hacker News… but I never think that I’ll get to the 1st page.

Just out of curiosity, I submitted the post I wrote few months back to Hacker News. It’s basically a place where startup people read whatever happening in the startup world.

And a few minutes after I went away from my laptop to watch TV, I refreshed my blog.

And it’s Error 500.

And MySQL is down.

Ops. Oh oh.

Then I realised: my site IS trending up in Hacker News.

I’m elated. Electrified is the right word I guess?

So many people want to see what the fuss is all about the blog post but it’s not up?

So how do I get my site back up running again?

And… I did a classic mistake that many made.

I did not activate caching plugin.

Nope. I did not even download it.

What a foolish mistake to make.

I thought of enabling it, but I never bothered to download it in the first place.

I opened the Hacker News link and saw so many people bashing me. (Right now most of the comments have been deleted).

Damn.

I tried rebooting my droplet (I use DigitalOcean)… but it didn’t help much. There is just so many people coming in, even when I restarted it, the MySQL service instantly crashed.

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

No matter how many times I restarted it, the service keeps on failing.

Since I’m unable to get the site up running as usual, I do what I can do: put a placeholder page until I get everything up and running again.

So, I opened up Google cache (thanks Google!) and copied and pasted the article in a HTML file that I did in a haste. Bad formatting and all. Ah, just put it up so that at least people can see it when they opened the blog.

It’s not pretty but at least people can see it, right?

Instead of being greeted by server 500 error, I greet visitors who is coming to my blog with this ugly looking HTML page.

That’s a quite good lesson to learn. I need to have a static site as a failover just in case your WordPress site is down.

I mean, who knows, right? Especially with a small blog that is running on 512MB VM.

Oh well, that’s a start. At least it will free the MySQL from having to serve the people, right?

I waited a bit.

I restarted the droplet again and tried to enter the admin panel again.

Yeay! I can enter the admin panel!

But usually it will crash in just a few seconds after I entered it.

It’s not successful but at least it’s a start.

I replaced the front page with the same HTML and managed to get to the Plugins page.

I added WP Fastest Cache and enabled the following settings:

Not sure if settings I set is the best though. If you have a suggestion, do leave a comment!

After that I asked around for advice. I spammed Malaysian Open Source (Sumber Terbuka Malaysia) Telegram group and my friends for any advice they can give for someone in my situation.

One of the tips given by members of that group is I can just use CDN provided by Cloudflare for free. Why, in God green earth did I forgot about that?

That’s the next thing that I did.

I signed up for Cloudflare, followed the instruction, changed the nameservers to Cloudflare’s and also searched for Cloudflare plugin for WP if it exists. (It did, and it is developed by Cloudflare team).

By now, this blog was routinely restarted again and again.

I remembered using MySQL tuner to optimize an exam system that I helped configure and run for my current workplace (Albukhary International University).

So I used it on my blog.

But the sad part is I am running on the lowest plan so most of the suggestions are plain useless. I can’t use it.

I asked myself, can I just upgrade the droplet for a while? The RAM and the CPU just for a little while when the going gets tough?

It turns out that I can do it in DigitalOcean!

So yeah, what I do was, I powered off the droplet and then, I increase the CPU and RAM only. I use the $20/month option.

It’s getting smoother now.

I boot up the droplet and immediately feel the responsiveness of the blog. Right now I am able to browse the admin panel without having the dreaded server 500 error.

So right now, it’s a combination of caching, CDN and just a raw horsepower from bigger CPU and RAM.

How was the traffic, really?

The traffic surge from being in the Hacker News will last for 1 or 2 days.

As you can see from the graph above, I did not get much traffic after 1 or 2 days.

But you may get new links from unexpected places. Other blogs linking to you or people shared it through their social media account.

So you may get residual traffic from other websites too.

For example, I do get traffic from Reddit.

That’s good for SEO I guess. Google always love links. Lots of it, especially.

For someone who is accustomed with not being seen by anyone, scaling is hard. I have never expected my site to serve thousands of users in under few minutes.

After the fact

After all the dust has settled, I read all the comments at Hacker News that I linked in the first paragraph. A lots of comments… and there are some good advices too!

One of the advice given is to use load testing tool. One of the tools linked is Loader.io. I have never encountered this before, so maybe the next time I ever send my article to Hacker News, I’ll try to use this service first and see how it goes.

And I want to say thanks to all the tips given by members of Open Source Malaysia Telegram group. Another thing that they did was they also told me if my site was down from their sides, which is good. At least I have a realtime feedback of what’s going on from another visitor point of view.

I also want to thank a friend who proofread my blog post few hours after the blog post was hit by Hacker News effect. Or else, the article would read even worse.

Some of the plugins that I mentioned above but too lazy to link to can be easily searched from WordPress Add New Plugin page.

Malaysian Programmers Blog List

So how many programmers in Malaysia have their own blog?

In this post, I am going to put up a list of blogs that are written by Malaysian. It can be in either English or Malay.

Crynobone – by Mior Muhammad Zaki

Ful-Lamak! – by Saiful Yusoff

Shahrul Nizam – by Shahrul Nizam

Nasrul Hazim Mohamad – by Nasrul Hazim Mohamad

Blog Pisyek – by Pisyek Kumar

Amirul Abu – by Amirul Abu

Canang Technologies – by Faizal Abdul Manan

Malaysian Developer – by Nurul Haszeli Ahmad

Kerul.net – by Khirulnizam Abd Rahman

Software Development the Hard Way – by Hakim Ahmad

Mazamyblog – by Mohammad Aiman

The Kotak – by Umar Luqman

Ijat.my – by Ijat

Response.Write() – by Sharuzzaman Ahmat Raslan

me, myself & mbek – by Hairul Mbek Moktar

Integra Solid – by Muhammad Fathur Rahman

Rizal Mohd Nor – by Rizal Mohd Nor

fajarhac – by Fakhrullah Padzil

What I’ve Learned So Far As a Programmer?

Previously I wrote about how I learned programming. My history with programming.

So today, I would like to share with you what I learned so far as a programmer. Actually most of the lessons I learned in the past 2 years made me realize that I learned more in the past 2 years than many of the years before.

  • Try to learn a new programming language every year

… or at least “dive deep” into learning all features of the language you already know right now

This is important. One of the things I learned this 2 years is that you have to learn something new every year in order to keep up to date. It doesn’t necessarily mastering a new language, but at least try it so that you will be able to expand your understanding of how to program things.

  • Library can come and can go in less than one year…

But language usually lives much longer.

Usually this means that the library is not maintained anymore. This happens when there’s only one maintainer. This usually happened in Android where there are rapid changes from one version to another.

Language on the other hand usually have multiple contributors or maintainers. So they usually lived longer.

  • Learn to learn quickly

This got to be the most important thing I have ever learned. The faster I learn, the more I will be able to create.

Learning quickly is probably one of the single biggest multiplier effect that I can have in finishing project I’m involved in.

  • Try to know exactly what you don’t know…

So that you’ll be able to quickly find a solution for that.

When you are able to learn quickly, you will be able to know what you don’t know. And it become sort of a loop. You’ll be able to know what you want to look for in Google.

  • It doesn’t matter if you don’t know algorithms…

But it doesn’t hurt to learn about it (because it might help you in the future).

This is important. Usually you don’t use algorithm in programming a system but if it’s something that will scale fast, your understanding of algorithm might be useful.

  • Identify exactly what you’re weak at…

And see if you could try to fix your weakness in your understanding of software engineering.

In self-help world you will hear people talk about focus on your strength but in order to develop a technical skill, you need to identify exactly what you are weak at.

For me, I am weak at algorithm because I don’t have a formal engineering background. I come from an information field where I learned mostly about records and library.

  • Break project down into manageable bits

To me, basically a project = big problem statement.

Sometimes you don’t need to do any programming if you have another way to solve that problem.

So you have to break it down into something that you understand. For instance if you want to make a simple archiving system, what do you need?

Obviously you would need a database. a way to create a record, to modify and delete it which is the standard CRUD thing to do.

So by breaking things down into smaller and smaller piece, you will be able to to code it and make the functions required to solve that big problem statement.

I guess that’s all for now. What I’ve learned so far in programming. Obviously I will have more things to learn in the future.

Until next time!

THE BIGGEST LESSON I LEARNED TODAY

Don’t forget to turn on your caching plugin and CDN. I submitted this blog post to Hacker News and this website can’t be accessed.

And I HOPE it won’t crash right after I wrote this. I hope! Haha.

Focus

I guess the image above shows what focus is all about.

If you are focused, you can go far. Your energy basically will be used in one direction. So you can go far. If not, you might go in so many direction and you will lose focus.

Those energy that you have will be diluted and in the end, you won’t be able to reap the benefit quickly enough just because you go into too many directions.

Consider Elon Musk.

He do it one by one. From one company to another company. From a weak standing to a strong one. He gathered small wins and In the end, he is able to make big wins. And big bets too.

But he only did it after he has all of those small (well, it is big, actually) wins.

X.com, PayPal, and all those success keeps piling up enabling him to eventually diversify himself into many businesses.

How I Started Programming And Adventures Around the Computer

This is just me retrospecting how I learn to program.

Somehow, I don’t remember much about my (very) early years on computer. But let me try to remember some that I do remember.

6-7 years old (1996-1997)

The first computer I saw was in my grandfather’s house which is just next to my house.

At that time, I did not know English, not by much. But I know how to pronounce “Window” in English, and “95” in my mother tongue language (Malay). I forgot how old I was at that time… maybe I was 6 or 7 years old?

I didn’t start programming at that time.

It just me starting to know what computer is all about.

9 years old (1999)

Maybe when I was 9 years old, my father bought a computer, costing around MYR5,000 (if my memory serves me right) at that time. AMD K6 Duron is the processor if I’m not mistaken. That’s when my hand started to play around the computer. I plugged and unplugged, deleted, and then since I thought the computer is too slow, I tried deleting the Windows folder hoping that the computer go faster.

Obviously it didn’t.

There’s so many dll error missing when it booted up.

I did not have internet at that time.

Got myself a Pokemon season 1 CD in the nearby night market. And that’s my first CD that I popped into that computer.

And then the computer disappear and I don’t know where it went.

Just some boy trying to play around the computer.

Don’t have Internet here. So it’s just me trying to explore the computer.

11-12 years old (2001-2002)

When I was around 11 years old (2001), my father bought a computer where it was situated near the telephone. But then, at first, we did not have Internet line.

I saw that the telephone plug is similar to the one behind the computer. I plugged it in. Wow. It fits!

So what’s next?

I tried changing the settings. Ah, that sound of “something”. I don’t know what that sounds is all about.

Maybe I’ve read somewhere or talked to a friend, because after that I know that it’s used to connect to the Internet.

Somehow I asked a friend of mine, is it possible for me to connect to Internet using his username/password? Because he has internet access.

And yeah, somehow, he gave it to me. And that’s my first time online, through the Internet, courtesy of my friend. At 4 cents per minute.

At first I used it to download Counter-Strike’s map into my computer. It took a few minutes to download few MB worth of maps. Tried playing online as well with 300+m/s ping. But somehow it felt, liberating.

But the bill is too much, and got a scolding because of that bill.

I probably stumbled upon HTML around this time.

I did not remember where I read the tutorial, but maybe there’s a lot of websites that I refer too. There’s this http://meyerweb.com/eric/css/edge/ that I always looked at.

I think I uploaded one of my first web pages up into Geocities and I do my tinkering there.

So I did some digging, learning about table, table header. <b>, <i> and the likes. I think I copy pasted CSS too.

Another language that I played around with is the Visual Basic 6. ActiveX control. I never thought it is easy to make your own browser using IE control! with VB 6 I horsed around the GUI, and maybe downloaded some source codes too. I tried and just see the codes. What works? So I just see if there’s anything that I can make out of reading those lines.

I think I first encountered PHP around this time, but my understanding of English is not advanced enough to actually install it and play around with it inside the computer. I tried copy pasted the example but it doesn’t work inside my computer. I started wanting to host my website so I search for free web hosting. The first one doesn’t have any MySQL database. So I keep searching. I don’t remember any details though, because I’ve tried many and there’s not one that sticks to the memory.

I probably installed PHP Nuke around this time though. Playing around with the addons and such.

I think I learned about emulator too around this time. (Or earlier). So I kinda used the search engine to find out about it. I played Harvest Moon for PS1 on my computer.

2004-2007 (14-17 years old)

When I was 14 years old, I was involved with a forum of a web hosting. WebDiscussion. Actually, there’s an earlier one, but I forgot the name. But here, the free web hosting basically has more mysql databases that I need so I tend to remember this.

In that forum, I also in contact with a Singaporean and an Israeli where we discuss about technology, file sharing, history, and stuffs. All of these are done through MSN Messenger. I just take their contacts from that forum and just started saying, “hi” and chatting away.

This is where I started to explore more with PHP. I don’t think I really dig deep, I am more into editing the configuration files and tinker with whatever I stumble into at that time. I think my house got our first broadband at that time. Wow. 1mbps per second. It sure is fast for us.

I’m not sure when I started using XAMPP. (I think I started using WAMP way after that)

But then, it makes things easy. So I can do my development inside the computer.

I guess I liked trying things. I played around with Photoshop, Illustrator, or whatever things that I can download off the Internet even though the family’s computer that I used is just a Pentium 4 computer.

I downloaded tutorials, scripts, and software. I tried things.

Internet access become one out of two ways for me to get information, besides the newspapers. I learned about making money, business, religions, philosophy, and many areas of life. I became acquainted with self-development, learning how to learn, and whatever my mind takes me to, I probably googled it.

Sometimes when you take a look at things broadly, it means you don’t really master it well. You know more, but you don’t the specific thing that well.

But, there are things that I keep going back too, like Visual Studio as well as PHP.

I probably pay for my first domain around this time too, I blogged about anime and comics that I watched and read every time I went back from school. I am using WordPress for my blogging purpose.

Another thing that I started learning is copywriting. Persuading people through words. I don’t remember how I stumbled into it. I probably read it somewhere and decided to click through those affiliate links given on those emails or websites.

2008-2009 (18-19 years old)

Around this time I messed around with WordPress a bit more deeply here. Plugins and themes. I tried and tested them. I edit the WordPress theme to suit my needs here. Somehow I am more interested in doing business around this time. Learned how to make a “minisite” too (a simple one page site that people use to sell things – if you saw one of those extremely long one page site, I make those around this time).

2010-2013 (20-23 years old)

I was in the university here. Just play around with PHP here. Somehow I didn’t play with Visual Studio around here.

I also bought some domains more thinking that I could make money from it. Well, I made few cents from Adsense.

I keep myself updated with technologies through blogs. I read Smashing Magazine and Copyblogger a lot around this time.

In my 5th semester, my friends and I entered an innovation competition. We create a ticketing system except that it’s for the bus. In Malaysia, it’s kind of hard to buy a bus ticket online. So we were thinking, what if we combine the easiness of buying a cinema ticket and buying bus ticket? So we create a system that is just 4 steps to buy a ticket.

We present that and we won the best prototype award.

(Sidenote: you can see the similar concept by Catch that Bus http://www.catchthatbus.com/, should have pursued this idea to MVP!)

I landed an internship with a software vendor company. One of my tasks is to create a WordPress plugin. A membership site WP plugin.

I also migrated a website of a well known Korean cafe franchise from Malaysia to Singapore.

When I think back, I do a lot of WordPress customisation from my internship. I also created a website for a research company when I interned here.

But there’s one time where I need to create a whole system from scratch, and I need to do it in C# .Net. The system is a clinics appointment system. Fortunately I managed to do it.

Now

I guess the way I learn is to tackle things whatever I faced. Instead of saying no, I somehow say, “let me figure that out”.

I looked up tutorial on how to make apps. At first I started with a hybrid kind of app (HTML, CSS, JS) but now I make native apps. Right now I also started to get deep with all the languages I am using right now which is Java.

There’s this satisfaction of making things that people use. Something of value. Something that I think can bring value to people out there.

I still remember the feeling when I submitted an app to Play Store. The feeling of joy that I got out of it. It’s like I got my part of work is done and I can see what people think about it. What I think I do is that I try to understand and after that, I try to implement. I think I am just someone who try to understand and build something that I believe is good.

And that’s how I learn programming and the adventures around the computer.

But obviously it won’t stop here. Right now I am more into developing apps, but I think I’ll learn about JS with all these new developments too. There’s so much out there – and I can learn about it.

How to Install Intel Hardware Accelerated Execution Manager

You need to install Intel Hardware Accelerated Execution Manager (or HAXM) if you want to run Android emulator.

One of the things that I encountered when I tried to install Intel HAXM is that the installer said that my virtualization (vt-x) is disabled. If it is disabled, then the installer will refuse to install Intel HAXM.

There are three fixes for that.

1. Are you using Avast Antivirus?

If you are using Avast, it might disable your CPU’s virtualization feature. I’ve tried to allow it from Avast control panel, but unfortunately it doesn’t work. What I did was, I downloaded another antivirus (right now it’s Avira — Avira is right now has one of the highest virus detection rate) and then I uninstall Avast.

2. Turn off this Windows feature 

You need to turn off Hyper-V in order to install HAXM successfully. Go to your Control Panel and then go to Programs and Features. On the left hand side, you can see three options. Click on ‘Turn Windows features on or off’. Untick Hyper-V. After that click OK. Wait until Windows finished changing things in its features and then restart your computer.

3. Check your BIOS setting

This is important too. Make sure that you enable virtualization in your BIOS setting too. If not, all of the steps above are useless. You can see the video below if you don’t know how to enable it in your BIOS. You can Google or  search YouTube to see how to do this.

So there you go, three ways to enable virtualization. This is for Windows 8, 8.1 and maybe Windows 7 as well. I hope you are able to install Intel HAXM and learn more about making apps for Android.

Cheers mate! 🙂

Shit Happened. So What’s Next?

Shit will happen all the time. You know that. I know that. We all know that. Last week I lost my phone (RIP Arc S) and my wallet. That’s shitty thing happened to me.

That’s life.

Sometimes we doesn’t get the hand that we want and sometimes people do screw us. There are people out there that will steal things from you and will do nasty thing on you.

That’s life.

We are not prophet. We can’t predict future. We can plan but we are not the governor of fate. We will get screwed – and we don’t know how we are going to get screwed.

So shit happened.

What do we do?

We move on.

We do things that we think we should do. Don’t allow ourselves to weep too much. Don’t allow ourselves to feel sorry too much. Too much of anything is disastrous to our body. Too much food, too much ice cream, too much ice cream. It’s all dangerous.

How do we move on?

We do things. Mop the floor. Wash your car. Write. Plan how to live your life so well that people get jealous of you.

Do something.

Use the negative energy for positive things.

And of course, at one time in a day, reflect on the shitty things that happened to you. How does it happen? Why does it happen? Who make it happen? How can you prevent it from happening? And so on.

Know your time to be productive. And time to be reactive. Learn to know yourself. As I try to learn to know about myself.

What are you working at?

Good evening reader. As of now, it’s 11:09 PM, January 11. What I am writing to you today concerns about business and system.

Do you have a system working for your business?

If yes, are you part of the system, or are you detached from it? I don’t think there’s any way for you to be detached, other than appointing someone as a CEO and you be the chairman.

But what if you are small business, when your business has a momentum going on, do you have a set of strategies available for you to use to exploit that? And how that fits in the big picture?

Something for you to think about.

Long Enough To Make a Point

I should have said “sorry, I don’t do a daily blog post” because I break my own promise to you. But no, I won’t do that today. I will explain that later, and will explain what I will do for this blog in the future.

Today, what I would like to do is to give you a link to Leo Babauta’s new post, Do Interesting Things. Most of his articles are long, but this one is not long (and tiring), but it is long enough to keep people interested in reading till the end (and avoid skimming).

Here’s the link, and I’m sure you’ll like it.

Quick Update

Damn. It’s 2 August today and it’s my good friend’s birthday. I didn’t know what to buy for her.

Well, I do know this: I haven’t updated this blog for more than 2 months! What the heck. I should continue my journey on becoming a copywriting extraordinaire. Now, I think the best way to learn copywriting is to study, and analyze winning ads, or controls.

And maybe, the best way to learn is to post it here and use this blog as a stepping stone for me to see what others think of my analysis. Since I am learning and using English (right now) as a second language, I should speak to a lot more people, especially those who came from Britain and America.

I disliked the way I speak right now. It seems… stilted. Unnatural.

That’s my goal – to be a good writer in 2 languages. Malay (my mother tongue language) and English.

And to do that, I have to begin by writing for this blog in the next 30 days – straight.

Bye people. You’ll see me writing here for 30 days.