Tuesday, June 17, 2014

My affair with Travel

As a kid, travelling is very exciting as I get to go to places outside the boundary of home and school: seeing the big city, order pizza for the first time, stop by a small town for a special meal recommended by dad, or picnic and swimming at the beach. It is all fun and adventurous, with no worry.

In my early twenties came the tour group concept, which bring me to many uninteresting places in a day, and won’t allow me to stay longer at places which I love. It is tiring, unsatisfying, and not exactly cheap.

I guess the tour group experience kill my enthusiasm for travel, and my logical mind believe there is nothing to be gained from travelling. I just spend money and getting nothing in return. If I spend money buying a computer, I get a computer; my money got burned in travelling, offering neither material or happiness in return.

I started joining some some friends for some self-organised trip: firstly to the national park, then to climb mountain Kota Kinabalu. I realise it could be affordable, fun, and there are interesting places to visit outside of city and monuments. I found something which would change part of my life.


I met some hiking friends and we started hiking and camping around Malaysia, an experience which no tour group could offer. We walk for 5-8 hours into the mountain, swim in the cool river stream, set up our camp at the perfect spot and a capable cook will prepare a delicious dinner. The friendship and the experience is priceless, and I owe them a lot for showing me what travelling (or hiking)  is all about. Sometimes we travel oversea in extremely big group (20-30+) and still manage to go through it without too much unhappy incident, simply amazing!


I started travelling more often with Mei Ru (my girlfriend cum wife). Oversea travel planning is more time consuming as we need to figure the transport, accommodation, places to visit, route, prices, booking, etc. At first we hire a small travel agency for our Nepal trip, then we rely on Rough Guide for our India trip, then planning got more time consuming and complex for our China, Europe, Vietnam and Japan trip. I always want to build a website to simplify travel planning, allowing less painful planning and more happy travelling. In the meanwhile, I would need to suffer the planning part until I succeed.



I was thrilled to see the snow mountain in Nepal, the big castle and desert in Rajasthan, the nice and beautiful Japan and the grassland of XinJiang. Travelling could be very tiring if we have to move from one place to another every other day, so I have to learn to travel at a slower pace. Travelling have many uncertainty so I have to learn emotionally handle surprises.


I think I got a bit tired of travelling. The big mountains no longer amazed me like the first time, and I never quite like the cities. No matter how beautiful the scenery is, my heart is not a peace; it feels like emotionally or spiritually I didn't blend in with nature, where I feel like watching the beautiful mountain behind a glass. I no longer yearn to be a traveller which move across places at a fast pace, I want to find a little heaven which I could blend in and stay a little longer.

Now, I feel like I am travelling to find the little heaven which could made me stay behind. I imagine a wooden house with a green grassland in front, where the river is not far away and the mountain is my everyday view, and the weather is just nice all year long. I would do my work (with Internet access) in the morning, where I would hike into the nearby hills for a picnic and afternoon nap.This would be my new dream home for a week, a month, a year or for a lifetime.

Now I travel to look for my little heaven. Perhaps it’s in Chiang Mai, perhaps it’s in Japan, perhaps I have yet to travel near it yet, perhaps it’s very near.

Sunday, March 23, 2014

Lessons I learned from playing Dota 2

Failure is necessary and painful

Everyone would like to be the undefeatable champion, and champion are not born but trained. Can I be a champion without losing or dying (in the game)? Nope. You could fast forward your newbie period by reading guides, but learning is accelerated through the adrenaline of PVP which end in frustrated death.

The more you fail the more you should rethink

Failure is the mother of success. Does that mean the more I lose/die the better I will become? Yes, only if you give thoughts to why you lose/die, and thinks of ways how to be better. If you just blindly keep dying and playing without refinement, you are just being insane: repeating the same thing and expecting different results.

You don’t learn much if you win occasionally

Sometimes you got lucky (killed a noob a few times), and sometimes your team mate is a champion; you won and found the game to be too easy, and then you lose the next game and start to wonder why. Loosing make you thinks for new strategy, and winning based on luck only helps your ego, and winning constantly validate your strategy.

Keep calm and take over the world

Keep clam, don’t just rush into battle even though you are a tank. Know your position (Attacker or Support), and wait for your comrades. If you are alone, wait or retreat. Not dying is as good as a kill.

It’s a Team Game

“I am damn good, but my comrades suck”. Dota 2 is a team game, and it does not guarantee victory even though you are a champion hero (though it increases the odds). Coordinate attack with your comrades (doesn't mean you can shout and boss people around by massive clicking, and be angry when people ignore you).

You can blame your comrades, but it doesn't help you win.You can choose to party with a champion player, but make sure you learn something from it.

Choose your hero based on your style/character.

Choose your hero wisely based on your playing style or character. If you are aggressive, chose an attacker and melee hero. If sneaky is your nature, choose an invisible assassin. If you like support from a safe distance, choose a ranged hero. There is not best hero, only hero who suits you; you might start with a popular hero, and it takes times to find your real hero.

Leadership is not bossing

Some people expect others MUST follow their orders else these bosses will click their minions to death followed by deteriorating comments. Understand than each player play differently based on their style, hero and skill; respect them and you shall be respected, help them and you shall be helped. Leadership is not demanded, it is earned.

Blaming others only make it worse

If you die, it’s mostly your fault. Even if someone make a mistake (like trapped you to be killed), blaming them doesn't improve teamwork or the odds of winning, just move on and look forward to the next battle. If they can, they will avenge you; if they can’t, they have their reasons and limitations; if they run away, it’s because they know they are going to die (besides, one less death on friendly side contribute to the odds of winning). Angry people have natural tendency to blame others, learn to refrain it.

Be a real Champion Leader

A champion win even though the odds are against him, with noob or disconnected players in the team, when the team is losing yet be able to turn the tide around. A champion does not play the blame game, doesn't boss people, but help and lead others to victory.

I must not Quit

Repeat the above before every game. If you are a real champion, you don’t quit because there are a few noobs in your team, you don’t quit because your team is losing, you don’t quit because you are constantly being killed, you don’t quit because your team mates doesn't listen to you, and you don’t quit because someone says you sucks. You play the game until the end: you die with honour defending your team mates, and you don’t abandon them.

Ignore the Assholes

They are bad people in the real world, and sadly they exist in the game as well. With an asshole in your team, the best you can do is not to let his remark and clicking affect you. You know what your are doing, and you know your capabilities and limits, and you play the game as best as you can.

Let the metrics be your mirror of reality

If you lose more than 75% of the time, you are either a noob or you sucks, admit it (your death is not due to others incompetency, admit it). Rethink your strategy or playing style, and try again. If you win 50% of the time, you are average and doing fine. When you are a real champion, you will know it.

It's not fair

Some people are more talented than others. Is this the right game for you?

It is competitive; it's a game

You could take it seriously, but don't forget to explore, have fun and make friends.

Sunday, January 26, 2014

What did I learn from 1 week of Dogecoin mining

I am a late “adopter” of cryptocurrency. I heard of Bitcoin many years ago, but couldn’t truly understand it or take serious in it. When too many cryptocurrency news keep popping up, perhaps it’s time to get my hands on some coins.

How to get my hands on some coins? Mining of course, unless I sell something which accepts cryptocurrency as payment. I come across 3 cryptocurrency: Bitcoin (2009), Litecoin (2011) and Dogecoin (2013). Based on my understanding, mining get exponentially more difficult as times go (depending on how much had been mined). So it would be extremely difficult to mine Bitcoin, and Dogecoin is fairly new with light humour in it, so Dogecoin it is.

Below are a few of my observation as a Dogecoin miner for a week.

The Wallet

Firstly, I need a Dogecoin wallet, which is a piece of software which can store Dogecoin in a file. After the wallet is installed, it needs to download the blockchain, which is supposed to be ALL the Dogecoin transaction data as of today, which takes about 8 hours to download before I could start using the wallet. When someone else use Dogecoin to send to receive (a transaction), it will add to the blockchain, which will get bigger and bigger overtime.

There is no username for your wallet, so there is some basic anonymity. You could password protect your wallet (like a password protected zip file), just in case someone get their hands on your wallet. I think you can keep multiple copy of your wallet on multiple machines (I might be wrong).

How does people send money to you? You can generate an address (a string of characters), and ask them to send money to this address using their wallet software. You can generate multiple addresses to identify what money come from whom.

The Mining

There are CPU-based and GPU-based (using NVIDIA or AMD graphic cards) mining. Somehow GPU-based mining perform much better.

Somehow pool-mining perform better than solo mining, so join a pool.

Mining on my 2013-end Notebook (Gen4  i7-4500U @ 1.8Ghz, Nvidia Gefore 740M)

Mining speed in measured in khash/s, where each machine (or worker) should at least produce 10 khash/s in order to make mining minimally worthwhile at the current state.

The i7-4500U can run 4 threads, where each thread yields 10 khash/s, so my notebook is capable of 40 khash/s. I found that I can run on 3 threads in the background and my OS and virtualbox still run normally without much slowdown while I do web development in Python. The heat is slightly hot, and it isn’t noisy.
The Nvidia Gefore 740M only have 1 core and is capable of 40 khash/s. The heat is quite hot, and I am afraid it might damage the notebook if running for a long time.

So my notebook is capable of 80 khash/s, but I only run CPU-based mining on 3 threads (30 khash/s) for 12 hours per day.

Using a Dogecoin calculator, at 30 khash/s  (current difficulty=1771, assuming block reward=500000), I could mine 7 Dogecoin per hour, 170 Dogecoin per Day. At the current exchange rate (BTC per DOGE) of 0.00000212, the daily income is USD 0.35 (about 500 Doge to 1 USD). Since I am only running 12 hours a day, so I only get half of it.

Mining difficulty goes up fairly fast (it was 385 on 1st Jan 2014). Current Block Reward is 0 to 1,000,000 DOGE (500,000 is used as Average), but it is estimated to drop to half in 18 days.

Mining on my 2010 Notebook (Gen1 i5 M460 @ 2.5Ghz)

The i5 M460 could run on 4 threads, where each thread yields 3 khash/s, so my notebook is capable of 12 khash/s (it means my 2013 Notebook’s CPU is 3.33 times more powerful). The AMD Radeon performance is too pathetic, clocking only 3 khash/s.

Given the cost of power consumption and all that, I am afraid mining isn’t marginally worthwhile on this machine.

Mining on Digital Ocean (2 CPU, USD 20/month)

The DO server with 2 CPU could run on 2 threads, where each threads yields 6 khash/s, and the instance is capable of 12 khash/s (it means 2 CPU on DO is equivalent to the processing power of Gen1 i5 M460 @ 2.5Ghz).

At 12 khash/s, it could generate 67.5 Dogecoin per day (difficulty=1771, block reward=500000) and about USD 0.13 per day. The cost of server is USD 0.66 per day. So this is definitely not profitable at the current state.

Mining on AWS Spot Instance (c3.2xlarge, 8 CPU, USD 0.112/hour)

c3.2xlarge on-demand instance cost USD 0.60/hour, so the spot instance provide about 80% discount.

The AWS server with 8 CPU could run on 8 threads, where each threads yields 4 khash/s (DO CPU performs 50% better), and the instance is capable of 32 khash/s (it means 8 CPU on AWS is equivelant to 80% of processing power of Gen4  i7-4500U @ 1.8Ghz).

At 32 khash/s, it could generate 7 Dogecoint per hour (difficulty=1771, block reward=500000) and about USD 0.02 per hour. The cost of server is USD 0.112 per hour. So this is definitely not profitable at the current state.

Conclusion

Dogecoin mining is hardly profitable at the current state of 25 Jan 2014.

If you have a new and powerful CPU, you could mine in the background and hopeful of getting 500 Doge (about 1 USD) within a week. If you have desktop with powerful GPU, you might do better. But the future isn’t getting brighter for Dogecoin mining, just mine for fun.

I didn’t try to build a GPU-based miner or try GPU rig or AWS GPU-based instance as I believe I am too late into the game. Those with earlier experience mining Bitcoin or Litecoin would have a better advantage.

If somehow you get your hands on some free idle server or nvidia super computer, it could still be fun.

A CPU on DO yield 6 khash/s while AWS yield 4 khash/s. A Gen1 i5 M460 @ 2.5Ghz could yield 12 khash/s. A Gen4  i7-4500U @ 1.8Ghz yield 40 khash/s. I overestimated the CPU capability on AWS and DO. 10 CPU on AWS or 6.66 CPU on DO is equivalent to the processing power of Gen4 i7-4500U on a 2013-end notebook.

Monday, January 20, 2014

The Forbidden Path

It’s not actually forbidden, just that no one encourage you go there, your seniors and peers don’t go there, you heard of someone gone there and struck gold, and you are drawn there by mysterious forces.

I am not the type who would take the forbidden path. I study and work hard, fairly obedient and follow instructions pretty well, and would probably live a normal life with a normal career. I think the only things which tick me off is that Bill Gates the Techie could be a billionaire, and my brother saying there is no future in employment.

After 7 years of employment in two companies, my normal career kind of ended. I had been freelancing while working and I freelance full-time when I quit my job while I try to develop some product. Some people don't know where to get customers for freelancing projects, and I guess when you are doing it for a while, word will spread with referrals, and you will get repetitive business. I think things are better nowadays with Elance and oDesk, plus various online community and offline meetup; plenty of jobs, it’s a matter if you are interested or not. Though freelancing is pretty common, but I don’t have a friend who is actually a freelancer as well, until much later. I would assume less than 5% of people in IT embark on freelancing? So this path is still less than normal.

I thought I could build a product and sell it for money, but I don’t have the sales and marketing skill, and I didn’t meet someone who could help me. Then I just follow my passion and build something which I found useful, without much market study or business model. I developed a website to list new property launches, and another one to list restaurant reviews. It took about 3 years to generate USD 100 per month (luckily I live in Malaysia), and without knowing or planning for it, I have the most bizarre form of income: Adsense money. I have the hard time explaining how I manage to make money without selling anything or soliciting advertiser myself. Then I realize it’s like those free newspaper, give it for free to increase readership and get money from the advertiser, except I have an advertisement broker which is Google (less money, but no sales and marketing cost). How many of my friends actually make money from online advertisement (including bloggers)? None, except the new found bloggers which I came to know after running the food review site.

I guess there are many forbidden paths where we heard of, and people around us doesn’t seems to do it: freelancer (programmer, designer, photographer, etc.), blogger, people who sell things online, renting out room with airbnb, people who do a start-up, or people who start a conventional business. Sometimes you get people who work from home and people who don’t sell anything, or professional gamer (make a living by playing computer games).

If you kind of doing a startup (or just making a product), there is the thing with funding, market study, business model, validating your idea with customers, etc. What if you are a person who builds a product but you do none of the above? Does that make you a planned failure or irrational optimist? There is a Chinese saying 性格决定命运 (your character decide on your fate), so I am guessing its happening to me. I am not motivated with the business and customer stuff, and I am delusionally building a product which interest me, and hoping others would like it as well. I am pretty sure I am not an entrepreneur, probably just someone having fun building stuff. I accepted the fact I probably wouldn’t become filthy rich, but I shall become someone happy building things which I like. It might be difficult to make tons of money, but it shouldn’t be that hard to make a decent living while doing what we love, in a way which makes us happy most of the time.

Life is of many choices: I can choose to live the life I desire or give in to society norm; I can try to enhance the sales and business skill which doesn’t interest me, or I could seek an alternative model like Google Adsense; I could insist on making lots of money, or live a more meaningful life with less money; even though I am not a successful entrepreneur, there are still options besides employment. There is the normal path, less than normal path or the forbidden path that almost no one could guide or encourage you.

Some say normal equal mediocre. I think normal or mediocre is alright if this is the path you have truly chosen for yourself. I always assumed people have the naturally tendency to make more money, then I realise this is not true. Most people might choose the path with the least hardship and uncertainty, and some indeed feels more money isn’t really more attractive.

The forbidden path is mysterious, but not everyone wanted an adventure, as it’s filled with great uncertainty, with the promise of great reward or nothing at all, depending on how you look at it.

Every time when you want to claim that you have no time or no choice or no money, pause for a moment and think again, think about alternative choices.

If the logical mind doesn’t favour the forbidden path, where does the logical mind leads to?

Have a look at some of my projects: Malaysia Most Wanted, hackerio (new) and travelopy (work in progress).

Tuesday, January 14, 2014

2014: a Brave new year

It’s time to bravely set some new and old adventures for 2014, after saying goodbye to 2013.

Build Travelopy to ease my travel planning by helping me with where to go, when to go, how to go, what to do, what to eat, etc. (Booking.com handles where to stay pretty well most of the time). Create a beautiful album/journal of my travel experience. It shall be a place where traveller came together and share things in a meaningful and fun way. This shall be the 8th year since I hatched the idea, and this shall be the year to deliver it.

Make hackerio a useful resource page: Wikipedia + Delicious for Hacker. It shall be a playground for hackers.

Make Malaysia Most Wanted a playground for foodie.

Use Travelopy to plan for my travel in 2014. 2 months of holiday + 10 months of work seems reasonable. Taiwan? Xinjiang? New Zealand?

Build a few more "stupid idea" apps. A database of fictional character? An app to help disposal of useful junk like freecycle? Build a game.

Have a kid, if God permits.

Finally became a millionaire, as usual.

In 2014, remember what I am doing through Sprint + Kanban + Pomodoro.

May I find peace and meaning in life.

PS: In 2014, I shall go into coding spree to build plenty of stuffs.

Monday, January 13, 2014

Goodbye 2013.

It’s the time of the year, where I can hardly recall what I had done for the past year, and bravely set up to do magnificent things in the coming year. First, let's recall back what I set out to do in 2013 ...

In 2013 I wish to build a version of Food and Travel web app which I am really proud of, but sadly little progress is made. The only consolation is I did launch a very basic of Travelopy (learn about Python and Google App Engine in the process), and Malaysia Most Wanted’s Python Migration is 50% completed. It sadden me that I set out to build Travelopy 7.5 years ago, yet it's no launched yet.

In 2013 I manage to attend an Arduino hacking session at Google DevFest, then I realise I really doesn't have the leisure time to pick up this new hobby.

In 2013 I did manage to work on a “Stupid Idea”: hackerio help hackers to discover and organize online resources, which involve tagging of web links, bookmarking, collaborative list of things, startup database, etc. Why I manage to deliver? Thanks to Google Cloud Developer Challenge 2013, and at least I won a consolation prize of Nexus 7 for about 20 days of work.

In 2013, I didn’t manage to make a game.

In 2013, I travel to Europe and Japan for almost 2 months, which is great. Only through traveling I can break away from the anxiety of life, replaced by the stress and enjoyment of travelling.

In 2013, I pick up the responsibility to be on the committee of my apartment (reluctant "hero" scenario). It’s pretty stressful and unrewarding, which tormented my quiet life, yet it still feels like the right thing to do. It made me understands in order for the apartment to function and make the residents happy, someone needs to sacrifice; in order to build a better country, someone need to sacrifice as well, though some people are more suitable for the job.

In 2013, it had been 8 years since I quit my job and work from home. Malaysia Most Wanted is probably 7.5 years old, and I am happy it’s still relevant today, and I am sadden I didn’t do more for it. I am happy that I manage to adapt to working from home, and even happier that I “retire” from freelancing, and very happy to spend time on projects which interest me. I guess I am having my unicorn job. Now, only if I manage to make a game, complete Travelopy, make Malaysia Most Wanted fun to use (besides useful), travelling as a lifestyle …

In 2013, I came to accept the idea of having children of my own. My logical mind always wonder why create more "problems" to oneself, I still can't figure it out, but it feels like the right time and right thing to do.

In 2013, I bought "hackerio", replacing optimus.
hackerio

In 2013, I wanted a “True Life”, yet the image of a “True Life” is very vivid in my mind, then I saw message I left for 2013: May everyone find peace and meaning in their life. I am still feeling very restless now, so many things I wanted to do, with so many distractions and so many things not done. I need to find peace within my heart: it is a journey which I don't have the map.

Goodbye 2013.