Showing posts with label money. Show all posts
Showing posts with label money. Show all posts

This Week I Learned 2018 - Week 41

Last week post or rather, old stuff from the archive.

Do we have an obsession with home ownership? (via /r/malaysia) While the discussion was referring to fresh graduates who are started out, the general rule of thumb still applies for everyone. Don't buy a house if you don't intend to stay more than ten years. Or don't buy houses 3 times more than your annual salary. Never equal home ownership like status symbol (just like car), you're taking a huge financial risk and long term repayment period. Another approach is to start small buy buying a low cost flat, stay in it, rent it, and sell it to buy a better house.

Judging by the current trend through NAPIC (National Property Information Centre), it's best to rent and wait before buying. Furthermore, the saving from your monthly mortgage installment into other investments will out weight the interest paid and potential capital appreciation of your property. By the time you're ready for retirement, might as well move to some where outskirts and rent again and live off the dividends of your investment in your golden years. Off course, if you're planning to get marry and owning a home is crucial to satisfy your SO and in-laws (another status symbol issue), first time homeowner can apply through PR1MA, which was created to prevent wealthier people from inflating the housing prices.

Now, instead of taking advice from armchair experts in the forum, why not do your own calculation using the The New York Times' rent or buy calculator.

Ignore this discussion if you're one of those crazy rich Asians.

And by the way, there have been quite a discussion where the upcoming Budget 2019 will have an impact of the housing prices. We will wait and see then.

Do you need a bigger house? No. We spend majority of our times in the kitchen, living room, and bed room. Perhaps a SOHO (Small Office Home Office) suite is a preferable choice if you don't have kids or big family.

How many ways to refresh a page in Google Chrome? Three. Only if you've open the Chrome Dev Tools and right click the refresh button as shown in the screenshot below illustrates this. Now, what are the differences between these three refreshing methods?  Normal reload will use re-validate and use cache files when needed. Hard reload will skip the cache and re-download everything again. As the name implies, empty cache and hard reload will clear the cache file and re-download everything.


What the fsck with Perl's constant? Besides the default `use constant` pragma, we have 21 (yes, bloody 21 ways) Perl's modules to deal with constant or readonly values. Worse still, none of these modules satisfy the needs of proper constant usage, it's a case by case basis. The recommended one is Const::Fast. More on this in coming posts.

This Week I Learned 2018 - Week 37

Something from the archive or last week post.

If you want to do a YouTube video on tutorial on photography, how should you do it? So far, nothing can top this video. Well choreographed, interesting topic, and relevant demonstration on applying Morandi (a famous 20th century Italian still life painter) colour style in your photography. What impressed me was the tutorial was not focusing on the post-processing but instead stressed on the importance on scene selection and model's clothing choices. Sometimes, you can't simply post process (photoshop) everything.


How easy to setup development workstation in Ubuntu these days? In seconds, if you exclude the time needed to download all the packages. I've been looking into TypeScript, React, and VS Code these days and it's the right time to setup a new development environment through Ubuntu's Snap.
$ sudo snap install node --channel=10/stable --classic
$ sudo snap install vscode --classic
$ sudo snap install --edge typescript --classic

What is the best approach to read a book? Reading with a pencil  (via HN) or also known as marginalia. The idea is simple, you're basically collaborating with the book author by scribbling down your questions, thoughts, and ideas in the free margin space (limited for some books). In other words, purposeful annotations while reading or active reading (suitable for research papers but not some book genres where you read for leisure).  Also, such reading method is not applicable for ebook reader (yes, reMarkable exists but the steep price does not justify it), which still does not provides a good paper experience for doodling.

Is JQuery dead? Not yet but soon, probably within these few years. Reading through the blog post by Github Engineering on removing JQuery from Github frontend, little have I realized that the frontend (JavaScript) have matured enough to deprecate JQuery. What does this indicates? The web have move beyond the dreadful old incompatible Internet Explorer versions, which the main reason of the existence of JQuery project. What next? TypeScript becomes ES Next (maybe?) and the standardization and popularity of custome web components. One thing for sure, old things will be rediscovered, reimplemented, and rehyped again and again, as usual. Same old same old. (ง'̀-'́)ง

How to teach yourself hard things? (via HN) Alternatively, the Richard Hamming tackled this in his The Art of Doing Science and Engineering: Learning to Learn course and Edward Kmett in his Stop Treading Water: Learning to Learn lecture. Furthermore, comments in HN provides us with a few good gems in area of exercising, programming, or physics. However, this is only applicable for those who are discipline, having intrinsic motivationgood quality sleep, and don't get burn out (you will eventually). In short, learning will come naturally if you interested in tackling the problem itself. Time is limited, pick your battle wisely.

Why Microsoft Word is a better writing tool than LaTeX? Reading through the post by Thorsten Bell on the tools he used to write his book (via HN) reaffirms the mistake I've made when typesetting documents, books, and thesis using LaTeX, ConTeXt, and pandoc. Fancy tools may distract you from doing what matter most, writing itself. If the writing is difficult, we can be sidetracked through fiddling with these tools under the pretense of productive procrastination.That's why, a slow and noisy typewriter (surprise that it's still expensive these days) was such an efficient tool for writing. You can't do nothing else but type or write. Which is why so many distraction-free editors exists in these Interweb days.

Why I still love PostgreSQL after all these years? 100-plus of custome data types (even table and view can be as well) supported in the database itself (via HN). Programming languages can change numerous times for a long maintained systems. Not sure for the database system. Some developers prefer strongly typed programming languages, but they seldom look into database systems with custome data types support.

How do we test web service API through console or command line? (via HN) There are so many choices like Strest, Newman (console version of Postman), shakedown (Bash script), karateDSL, UnRAVL, Artillery, and Tavern (Python-based). Coming from console background, I have preference for shakedown and Tavern due to its simplicity.

To rent or buy a house? HN user isostatic gave a practical answer to this question. Buy if you're investing, having kids, or don't want to be forced to move. Rent if you don't want to maintenance the house.

What is the symptom of midlife crisis in a good way? Extreme athleticism. (via HN) One key point I agree with the writer is that we're preparing for the coming old ages as highlighted in this quote. Interesting days ahead.
...... extreme fitness is less about being young again and more about building yourself up for the years ahead. In other words, getting better at getting older.

This Week I Learned 2018 - Week 32

Post from previous week or from the archive.

真的服了,句句都是绝句。第一次分手可能是对方有问题。第二次分手可能你们都有问题。第三次分手估计你肯定有问题。第四次分手表示你没搞懂问题。第五次分手表示你不改善问题。

What are the available wild Betta species? We're looking into Betta Brownorum as our next breeding project. Since this is a wild species, we can't find any stock from local breeders. It seemed you will have to capture it from the wild, in Sarawak.



Why there is a sign in Perl's hash key? Legacy reason.

Getting excited when buying stuffs (the highs is in the anticipation and it's more fun planning a vacation instead of the actual vacation) and have buyer remorse later? There is a quick tip on handling that. Take the amount you're going to spend and pay off any pending debts or loans. In the end, it's a divert and replace strategy. Any impulse purchase can be put off (delay strategy) if you set a goal before succumb to your materialistic needs. For example, lose a KG, indulge yourself into the stuff you desire for so long. Remember to reward yourself as you deserve it. Note that this is applicable to stuff and not really experience, especially spending on good experience with friends and family (moderation applies here as well). Another way, love shopping? Why not spends money on investment. Shop investment, not liabilities. Instead of getting the Nike shoes, buy Nike stocks. You have to ask yourself, which is more motivating? Watching your bills accumulates or your saving grows?

How to spend $0 each day? Meal prep. My friend. Meal prep.

How Europe Learnt to Swim? Like any forms of knowledge, observation, self-learned, trial and error, consolidation, and sharing of knowledge. I'm quite surprised that most island inhabitants can't swim properly to save their own life. Seriously?

What cloths to keep and throw away when cleaning up your closet? One key question to ask yourself is "If I saw this at the store right now, would I buy this again?" Throw away the cloth if the answer is no.

What is JSON PATCH? A combination of JSON and HTTP PATCH. You will see the HTTP content-type have been set to application/json-patch+json.

What was your most 'can't-put-down' book that you've ever read? Here are the list in random order. Overwhelm by the list? The quick way to filter out is to read the first few pages and if it caught your attention, proceed ahead. If not, ignore.
  1. Watership Down by Richard Adams (discussion)
  2. One Hundred Years of Solitude by Gabriel García Márquez (discussion)
  3. The Historian by Elizabeth Kostova (discussion)
  4. Night Watch by Terry Pratchett (discussion)
  5. 11/22/63 by Stephen King (discussion)
  6. The Book Thief by Markus Zusak (discussion)
  7. Killing Floor by Lee Child (discussion)
  8. Lonesome Dove by Larry McMurtry (discussion)
  9. Jurassic Park by Michael Crichton (discussion)
  10. Neverwhere by Neil Gaiman (discussion)

This Week I Learned 2018 - Week 27

Last week post or something from the archive.

How does we diagnostic aquarium tropical fish diseases? There are many ways and this diagnostic website (there is another one with better graphic) provides a quick way to identify the actual disease based on several symptoms. Aquarium Co-Op recommends three medications besides all quarantine any fishes into this aquarium store. MSR also used similar way. We're a bit concern on the usage of Erythromycin (which is an antibiotic) as it may cause antimicrobial resistance. Moreover, we're not sure about the side effect of long term exposure towards human to this medications. Unless you're managing a aquarium store, it's best to use natural ingredients (garlic or Indian Almond leaves) instead.

Buying new headphones? I've been asked this question numerous time for the past week. Just visit Audio Guide. One thing I've learned is that budget aside, you can pick the head phone based on different sound signatures such as V-shaped, bright, neutral, dark, warm, and mid-forward (names can be different). I was wondering how does this apply to Hi-Fi system? More posts on this in coming future regarding these audio signatures.

What sound track for testing your audio equipment? I recently rediscover Yosi Horikawa. His Vapor album is a good start. A mix of nature sounds, human voice, and music mixed together.

Can you suggest one way to improve your writing? Vary your sentence length. Gary Provost gave a good example in his book "100 ways to improve your writing" as shown below.

Monotonous 5-words sentence.
This sentence has five words. Here are five more words. Five-word sentences are fine. But several together become monotonous. Listen to what is happening. The writing is getting boring. The sound of it drones. It's like a stuck record. The ear demands some variety. 
Varying sentence length.
Now listen. I vary the sentence length, and I create music. Music. The writing sings. It has a pleasant rhythm, a lilt, a harmony. I use short sentences. And I use sentences of medium length. And sometimes when I am certain the reader is rested, I will engage him with a sentence of considerable length, a sentence that burns with energy and builds with all the impetus of a crescendo, the roll of the drums, the crash of the cymbals--sounds that say listen to this, it is important.
Picking up React? What the best way for seasonal developer to start? React from zero (via HN). Note that web components (custom HTML element) may seemed to overlap (some part of it) with React.

Is this capitalism? Regardless how much you earn, there should be a threshold amount where you will reach an equilibrium of having enough and not being a slave to your money.


How will the 2018/2019 NBA season looks like? This comic said it all (via 老崔愛叭噗). The weird thing was the NBA free agency was way more bizarre and shocking than the FIFA world cup. Talked to a few people and the general consensus was that FIFA this time was quite boring.

NASA and FBI, what the difference? The former is an abbreviation where you can pronounce it as a word. Meanwhile, the later is an initialism or alphabetism where you pronounce it as individual alphabet. 

This Week I Learned 2018 - Week 22

Last week post or something else instead.

为什么同级相斥,异级相吸呢?这不是指磁铁的原理,而是可以用来形容两个同样作风的领袖都会同样排斥。客观的见解来看待各国领袖的作风。

It actually dawned to me that `eval` is quite similar to try-catch block. If your language did not have the support of try-catch exception handling, `eval` (yes it's evil) is your friend. Even Try::Tiny have its own issues. Perl is really a f-up programming language.

VS Code can do that? (via HN) I still haven't have time to install VS Code in my lappy and set up all the necessary configuration and settings.

What's the point of Perl's map? To transform list without using for (each) loop. Is as simple as that and yet we still having hard time understand that? Another good discussion on different between `map` and `grep`, the former is to process a list, the later is to filtering a list.

Containers according to xkcd. Sometimes the simplest solution is the best solution.

30 is too old for tech job in China. (via HN)

REST API tutorial. Yes, I've done a few wrapper for third parties API and two common issues are not up-to-date documentation and inconsistency, especially when handling different HTTP responses.

Block EU users from accessing your site due to complication of implementing GDPR. Brilliant or just simply crazy. And then you have the GDPR compliance checklist or search through the whole GDPR legislation document instead from the original source or community curated info. GDPR is probably the best things that happened to protect user privacy and reduce the abuse of any organizations on handling our personal data.

"Just write. You'll find your own voice". Probably the best common advice given to anyone who wish to become better at writing. For something related to writing, Janki Method, an approach to learning. When you learn something new, write it down but in an approach of question and answer. Maybe you can use a flash card or something.

Stack Overflow for Team. Interesting, very interesting indeed. I chuckled when I saw this feature was released. Wonder how it likes to re-implemented someone else features. Yeah, we should see things from both ends. DRY can be violated if necessary, only if necessary.

Yeah, making money is nothing but how much you care about making money (emphasis added).
Caring a lot about specifically making money is, in my opinion, absolutely key to making money, because otherwise you just end up focusing on other things (family, pleasures, ideals, etc.). If I wanted to make money, I'd design a very different thing in a very different way compared to if I wanted to make something me and my circle of friends would find useful. These things are practically disjoint.

This Week I Learned - 2017 Week 48

The usual last week post or something from the archive.

Down with fever and flu. At certain age, you really need to love your body as much as possible. On the bright side, I'm almost off the grid for the past few days.

The Best Monitor for Programming: A Cheap 40″ 4K TV. (via HN) Not really a good choice if you want to reduce eye strain and myopia. Also, you will need to have a good distance in order to get the actual benefits. However, definitely not for me. A large screen size is suitable for people who love to have multiple opened windows at the same time. I always prefer one window at a time.

The Diderot Effect. We all will experience this someway or another. Picking up a new hobby, for example, photography. Well, not only you're just getting the camera body only, you will purchase the whole system (complementary accessories), which includes bags, lens, filters, books, magazine, and etc. The constant upgrades will lead to endless hoarding. James Clear have recommended a few ways to manage Diderot Effect. The main take away are reduce exposures, prevent impulsive purchases, self-imposed constraints, and downgrade. The last strategy seems interesting. We're seldom downgrading on stuff we owned but constant pursuit for latest greatest.

CS007: Personal Finance For Engineers (via HN) Worth every minute of your time to go through the whole thing. We have been taught and educated on different types of mathematics but not really on finance. This should be the compulsory subject for all students. Start them young and early.

Emulate the SRV tones? Forget the about the budget and get his signature guitar, amps, and pedals. Or without bursting the bank, something more affordable. While having similar gears does getting you closer to emulate original tones, do know that how a guitarist play, hold, pick, and grip guitar have a huge influence on the tone. Furthermore, post processing have a big impact on the final sound and tone. However, something related, PixxyLixxx gave a good advice on why you should have a limit on how much you can spend on a guitar (in his case, is USD 300 with certain exception). Unless you're freaking rich, when you past certain age, different priorities in life set in. You should put the extra money in your kids college funds or fixing your house.

This Week I Learned - 2017 Week 32

Last week post or something from the old TWIL archive.


Everything should be back on track this week after the "nature appreciation week". Lots of pending items to be checked off. Luckily, a few long delay items have been cleared off. As they said, one thing at a time. If you can't do it today, continue tomorrow but do not postpone for more than two days. Keep the streak going!

I've been quite effective in applying Scrum or Kanban at my workplace. Sadly, I can't say the same about my personal projects. What if I can obtain the same efficiency at my own stuff? Surely I will be surprised by the results. Lately, I have been thinking about what are the effective ways to get the best of each day, either at workplace and home. Discipline is definitely a must, of course with effective system. Another approach is to focus on overlapping what you done at work and your own personal projects. Focus on the important stuff, one thing at a time. Throw it the work life balance as well. Sometimes you just need to walk away from anything and just to unwind and recharge.


Invest in your own learning. Julia Evans shared her thought on this matter on keeping learning outside working hours. Learn and read something new but relevant to your work. That's it. However, it's best to set a time after work, for example, half an hour and learn or work on something new. This may sound easy but it's quite hard to do it in a constant manner. Consistency is always hard. Self-discipline is always hard.


What would you do if programming is made illegal overnight? Be a problem solver. Or do something else other than development works. There are millions of problems that need to be solved and and you can leverage your programming or IT knowledge one way or another. During the nature appreciation week, I've thought and discussed about this with my younger peers during the whole trip. Unfortunately, we are still caught into the tribalistic pressure or social conditioning in the name of team work or company culture. Someone told me before when I was starting out as a programmer, pick your battles, not everything is worth fighting for. These battles here refers to the things you want to do in your life, your bucket list, or something meaningful. And off course, at the same time, without starving yourself.


The morning paper and the Arxiv Sanity Preserver. I love reading research papers, even though most of the time I can't really understand most of it, especially those not within my domain of expertise. But the morning paper site makes everything fun and bearable. Beware, energy, attention, focus, and time are scarce, use it properly on things that matter to you. That's why social media are big time waster unless you're working in the digital content industry.


Ligne claire. French of clear line, the art style used by many illustrator, especially Moebius. Most recent illustrator who follows such style is Josan Gonzalez.


Money has a way of being the perfect "excuse" for vicious people to expose their viciousness. Interesting digression from the forum discussion which turned dark half-way.


Git bisect, the proper workflow. Didn't realize such things exists and probably won't bother to pick it up.

This Week I Learned - 2017 Week 29

Last week post or some ramblings from the past.


The quest of finance independence will influence or make your adhere to different life principles. Minimalist life style, waste free, child free, debt free, and other approaches. Some of these deliberate choices may against the normal social norms. Is all depends on how aggressively you want to proceed ahead. The biggest obstacle is consumerism, especially in this digital age. Reducing your social media usage (yes, this includes normal Internet surfing) is a good start.


Interesting part that the WiFi extender cannot connect through 5GHz because certain countries does not support channels other than Band 1. It's quite confusing where extending your WiFi coverage if you're using the same SSID as you have to check the BSSID to differentiate which SSID you're currently connecting to. But one thing for sure, I definitely love `nmcli` console tool, probably my favourite software. Always gave me the hidden surprise of its usages and features.
$ nmcli -f BSSID,ACTIVE dev wifi list


Nostalgia bucklespring keyboard sound. Instead of spending a fortune in getting the real physical keyboard, just install the software and enjoy the emulated sounds. Good for the electric typewriter I was thinking of setting up using the underutilized Raspberry Pi.


Chinese cleaver (菜刀), compare to other similar type, is a general purpose kitchen knife.


"We receive subsidies from the government." (more write up from MiniMachines). Now we know why Orange Pi is so cheap, everything is sold as Bill of Materials (BOM) price. It would be nice if the software support is better.


Why you should not use React now due to the the BSD+Patent license issue. Partially open source but with patent grant issue tagged along. Are we going to see more PATENTS file issue in coming future?


"Being unwilling to adopt a necessary amount of structure and process is just as much of a hindrance once you hit a certain size." Full context of the discussion. The observation when you organization reached certain size where formal process is unavoidable. Yet, people are still making the same old mistake over and over again.


Using Linux kernel >= 4.9? Switch to BBR TCP to control the network congestion and increase your Internet speed. It seems to increase the download speed tremendously. Alternative and more detail explanations from APNIC and ACM Queue.


The secret passion of Git checkout. Funny but very well-written guide on using Git checkout. Meanwhile, use rebase by default, if possible for all your branches. While we at it, user `merge --no-ff` if possible because we want to preserve the branch history.


Kindness is underrated (via HN). Being polite, empathy, professional, helpful, or kind? Neither one will get the message across if the receiving end fails or unwillingly to listen. I totally agree with the comment, "On the internet, nobody can hear you being subtle".

This Week I Learned - 2017 Week 07

Last week post or the whole series.

When come to getting new stuff, I really should have a one-item policy. For example, if I'm going to get a new bag, either I sell off the existing bag or donate it out. Otherwise, no point having two bags where you only going to use one. Not only is wasteful, it's also a hassle to store it and clean it as well. Something for me ponder upon when I'm thinking of getting any new stuff.

#1 Six modern keys to wealth. HN user, monodeldiablo describes six possible ways for anyone to accumulate wealth. In essence, you should be competent (both book smart and street smart), persistent (perseverance), and extraordinary lucky (right place, right time, and right people).

Developers are generally book smart but always having difficulties to monetize their projects or technical ability (turn it into a business). The most recent example is JWE, the author and maintainer for GNU Octave is looking for job after 25 years of maintaining the software (I think he is doing a great job since he have been doing it for 25 years but having some financial difficulties these few years). I've made a small contribution to him and being a FSF associate member can help too (just make a note in your monthly contribution). Expect some blog posts on GNU Octave in coming future.

#2 Coroutines in Perl? Use Coro module. More on asynchronous programming in Perl in coming posts. Busy week and I can't seem to allocate any time to look into this. So many things to follow up and so little time.

#3 Prioritize! Prioritize! This reminds me of Stephen Covey's four quadrants approach (similar to The Eisenhower Method) of prioritizing to-do list and time management.

#4 theXeffect subreddit. Fundamental approach to build habits and prevent procrastination. Also known as the "Seinfeld Strategy". Following Bombjoke advice, the steps as follow.
  • Buy a pack of index card. Get the one from Daiso with 5mm grid.
  • Start with Boléro by Maurice Ravel as your background music.
  • Pick a daily habit you want to develop. May I recommend meditation?
  • Write the reasons on why you want to develop the habit on the back of the card.
  • Start now. Do the habit. Once done, mark a big 'X' on the box. If you fail, mark a big 'O'.
  • Continue for 66 days or 2 months. A habit is formed after that period.
The index card by hardcase00 shown below is a good example to illustrate the steps mentioned. Look closely at the card. In order to continue the streak, he have different minimum meditation time ranging from 5 seconds till 15 minutes. Set your goal so low and easy that you don't have any excuses of not doing it. Remember the main purpose is not to focus on how long you can meditate but to develop a habit of daily meditation.



#5 Software developers who started after 35. I have mixed feeling about this. Is good that anyone who are diligent enough can pick up software development skill but Peter Norvig's post on teaching yourself programming in ten years reminded me otherwise. Well, it depends on how you see software development itself. Is it a tool for your to achieve your goal? Or a skill you wish to gain and master? Different people have different motivations.

#6 Is PostgreSQL good enough? (via HN) By far, best written technical post I've read this year. Sad about the font size though. Seriously, who read at such small font size? I've seen quite a few systems which can benefit greatly if they switch to PostgreSQL instead of MySQL. MySQL, being popular and easy to learn doesn't means that it's suitable for all scenarios.There are other requirements where PostgreSQL fits, for example, PostGIS. For a comparison between two to programming languages, MySQL is like dynamic-typed programming language and PostgreSQL is like static-typed programming language. If I'm going to develop any intranet web application which involves critical financial information, my first choice is definitely PostgreSQL.

#7 Goals are for Losers. Passion is Overrated. Provocative opinion but make sense. You need to implement a system or habit to achieve what you want in life. Not passions or goals. Example from the slide is losing 10kg is a goal but eating the right way is a system. To increase the success of what you want in life, use a system approach to acquire more skills which can increase your odd. Summary of this approach. Item #4 is also another good example of systematic approach increasing the success rate of what you want to achieve in life.

This Week I Learned - 2016 Week 40

Last week post or the whole series.

My sentiments exactly. See comment below regarding chasing fad in technology development and especially PHP programming language. Do I actually miss PHP? Not really. But I think most of the web development systems still can be solved using PHP-based solutions. Barrier of entry to web development using PHP still the best choice.
Incidentally, this isn't unique to the front-end. I've seen the same thing happen with the SQL->ORM->Mongo->Couch->SQL nonsense, or the myriad of templating engines written for PHP, a language that itself is a templating engine.

Using Node.js? Need a basic system with essential features to bootstrap your system? Look no further than Hackarthon Starter.

The difference between Ponzi, Pyramid, and Matrix Scheme. A lot of young people, especially fresh graduates need to aware and prevent themselves from falling for such scams. The pitch of being your own boss or retire early may sounds too good to be true.

Sometimes the documentation written for a certain API, Data::ICal was so confusing that you have to resolve to searching source code written by others using the same API itself at here, here, here, and here. Can't blame the API author as the standard itself, RFC 5455 is as confusing and complicated.

Google Interview University (via HN). Instead of working for a company, why not strive to work with great people instead? Google is so big and not every team is equal. Agree with one of the comment, this is a good compilation of resource for computer science study. Which reminds me again of the Programmer Competency Matrix. Instead of focusing on the computer science stuff, why not focusing on building stuff? Someone needs to read the interview of famous programmers on their background.

Getting older but still enjoy working as a programmer? Read Reflections of an "Old" Programmer, especially the comments from the blog post itself, HN, and Reddit. The main question here is how do you age gracefully as a programmer? Lifelong learning, especially the fundamentals (the core of computer science, not latest greatest fad frameworks), as those things never changed. I blogged about this last year, during my career detour as a non-programmer role, still technical though.

Didn't realize that to use PowerTop properly, first you will need to calibrate it after installation to collect measurement data. The whole process will take a while and networking will be disabled during that period.
$ sudo apt-get install powertop
$ sudo powertop --calibrate
$ sudo powertop --auto-tune

Besides that, you can turn off unwanted running services to save a bit more battery.
$ service --status-all

Upgrade to LXD 2.3 failed to due a spelling bug in bridge network upgrade script. Fixing the bug manually and restart the installation process again.
$ sudo apt-get install -f

However, new container created don't have a default network bridge. Re-enable this resolved the issue.
$ lxc network attach lxdbr0 test-alpine
$ lxc restart test-alpine

This Week I Learned - 2016 Week 01

In case you miss out, last week post.

#1 Flowgorithm: Flowchart Programming IDE. Creating application using simple flowcharts, yet another level of abstraction for coding. Screenshots, step-by-step tutorial, and file format. Similar flowchart-based programming environment tools are RAPTOR, Visual Logic, and LARP. Unfortunately Windows only (should try with Wine). Flowgorithm is written in C# and most probably can run in GNU/Linux since .NET Compiler Platform ("Roslyn"), the compiler for C# and Visual Basic has been open-sourced. If there any tools to do the reverse or something like Visualize Python which let us visualize the flow from the source code instead? Well all the mentioned tools catered for educational purpose, is there anything similar for the industry like those for Model-driven engineering?

#2 How to think visually or rather, which visualization diagram should I use? Which reminds me of another visual decision tool, the chart chooser and slide chooser by Andrew Abela and Paul Radich. I always interested with visualization tools as it's a form of storytelling with data. I've been exploring different chart tools these days to plot my daily walking steps.

#3 Dummy output sound adapter in Ubuntu? Nothing but a force restart (pulseaudio -k) of PulseAudio sound server can't solve. It has been so long since I last encountered any sound card issue in GNU/Linux. I still remember many years back I tried, for weeks, to get my sound card to workonly to realize that I picked the wrong driver for the Linux kernel. Although the is a Yamaha sound card, the driver only works with the chipset, if I remember correctly, Cirrus Logic.

#4 DNS Conformance Suite and Test Harness. Conformance or to be exact, conformance testing, "is testing to determine whether a product or system or just a medium complies with the requirements of a specification, contract or regulation". Enormous list of Request for Comments (RFC) just to make sure that the DNS implementation conformance to the standards. Standardization is always tricky where so many parties involved and each with their own agenda which sometimes, slow down the the adoption of the certain standards. Case in point, Hyper Text Markup Language (HTML).

#5 Software Testing Techniques. Class Report for 17-939A (PDF) by Annie Lu Luo. Comprehensive literature review of software testing techniques. So far, the best paper I read in 2016. How I wish all the software engineering papers were written in such way. Again, this remind me of Ke-Sen Huang's resource for computer graphic page. Unfortunately my lack of mathematics knowledge and patience prevent me from fully understand most of these papers. Nevertheless, you can appreciate the beautifully generated images of these computer graphic research papers. And off course, there is this Papers We Love, where a group of people who love to read academic computer science papers. Unfortunately, as usual, there is still MY chapter and judging by all the past meetups, its existence will not sustain for long.

#6 Books Scientists Should Read Before The Age of 20. Some books are questionable but nevertheless, a good starting list. Personally, I will like to start with George Pólya's How to Solve It: A New Aspect of Mathematical Method. If you're short of time, here is the summary of his method.

#7 100 Days of Swift. Progression notes on learning Swift programming language. Compare to other self-learner, he managed to create interesting UI related small projects just by applying a few concepts. Something that anyone should try out when picking up new programming language.

#8 Write code every day? Not necessary, as fellow redditor, EarLil advised that just "follow your rhythm and stay healthy" (make sense but which rhythm?) or you can just switch between coding and writing, "code doesn't have to be code". Github commit heatmap is a good motivator to encourage you to make an effort to write or code something, even one-liner. The question remains? How long should you allocate time in a day so that it will get you started and won't burn you out? For me, one line of record or code, or a sentence. Something so easy that you don't have any mental excuses not to do it. Getting started is always the hardest. But once you've started, everything else will fall into places. Just start!

#9 Valuing time over money is associated with greater happiness. First empirical evidence that people who value time over money are more happier. This reminds me of the personal finance book, Your Money or Your Life, where the authors asked "how much that we have trade our hourly life energy for money?". Once you realize that the actual amount of cost, time, and effort spent just to earn an hourly wage, you will have a change of opinion regarding your career and the money you earned..

How to Spend Less?

2014 is going to be a bleak financial year for most of us in .my due to recent price hikes in toll, electricity, petrol, and others. But most important changes is the introduction of Goods and Services Tax (GST), which will come into effect starting on April 1, 2015.

Hence, for us who are still living by paycheck to paycheck, is wise to spend wisely and aware of our purchases. Occasionally, due to work/life-related stress and idiocy or personality traits, we tend to succumb to temptation and spend impulsively. Which inevitably leads to buyer's remorse, causing more pressure and then the circle of pain continues.

Discussion at Reddit gave us a few tips on how to led a frugal life and don't easily spend away your money. Notable tips which inspired me.

1. Think over before making any purchase more than 100.
Divide it by 50 and you'll get the number of days for you to think over before making the purchase. For example an Iphone 5S 16G retail price is around 2,370. Divide that amount by 50 and you have 47 days to think through over whether you really want that mobile phone. Some may argue that you can pay by by credit card with zero interest installment. Well you can if you only going to buy that phone only and nothing else.

Furthermore, what you really need is a mobile phone. You may need a smart phone but do you really need an Iphone?

2. Don't go grocery shopping on empty stomach.
I will add that don't argue with significant other on empty stomach as well. Why ? Hunger depletes your willpower and you tends to say or make regrettable decision or purchases.

3. Buy quality items.
Redditor JarlesV3 offered a simple way to dictate his purchasing decision. Basically is how you intend to use the item. Is it for long term (durable) or just short while (consumable)? For the former, for example, if you run a lot, spend the best money you can on best running shoe for best comfort and to prevent injury. Be careful not to overpaying for brand rather than quality. For the later, spend more if you want quality and healthy food instead of instant noodle.

4. Money earned is hours worked.
Imagine you're earning 3,000 per month. After all the compulsory deductions, you nett pay is roughly around 2655. Divide that by 26 working days and basically you're earning 102 per day. Minus this amount with other expenditure like transport, rental, and others. You may end up with nett pay of 50 per day. Now if you want to buy that Iphone we mentioned just now, basically you've to work 47 days or 423 hours (if you work 9 hours per day) of your life just to afford that mobile phone.

5. 52-week money challenge.
Don't have enough money at year end to pay for your car insurance or vacation? Why not try this method. Start with first week, save 1. For the subsequent week, add 1 to the previous month. At the end of the year, you will save a surprising amount of 1,378. Or you can do the reverse way, start with 52 and start reducing 1 from previous month.

In short, be discipline and well aware of your spending. Know what you really need and what you want to resist any temptation.

Can you survive KL on RM10/day?

Someone posted this question in Reddit. Short answer, it depends, maybe is possible. But for me, not possible unless I eat instant noodle everyday, sacrifice lots of convenience, and discipline enough to be constantly aware and track my spending religiously.

Breakdown of the compulsory basic expenses of mine daily needs. Note the scenario excludes all other expenses like rental, entertainment, mobile phone, and others.

1. Transportation from and to workplace
Being a avid bike rider, my weekly petrol consumption is around RM12. That is like RM48 per month. Mind you, my bike is around 14-plus years old, hence fuel efficiency is not that great. In short, it will costs me around RM1.6 per day.

2. Breakfast
A tin of Milo (a very common morning drink around here) and Hup Seng Cream Crackers. 2kg Milo is around RM36 and the cream cracker is around RM 12. Both items can feed you for a month which will cost around RM1.6 per day.

3. Lunch
My co-worker told me there is a mixed rice or economy rice stall which sell 3 dishes and one bowl of rice for a price of RM3.5.

4. Dinner
Normally, mixed rice again at my place or mamak stall. Average price is around RM5.

To sum up, the calculated daily spending is roughly RM11.7 which is, RM351 per month. Unfortunately, still RM1.7 more than the expected daily RM10.

Even so, is so hard to limit yourself to this daily figure of RM11.7. Is best to limit the amount to RM600 per month or RM20 per day. There are so many unexpected influences of better half, stress, boredom, and myriad other reasons.

Best way so far for me is always keep and track your spending. Use paper money and pay everything with cash. The moment you pay anything, jot it down in your little notebook. You will feel the pain when you're aware of paying something with cash. This was proven to be scientifically true.

At least that should be a good start for me to try again to live within a monthly budget of RM600 and continue my journey for a more minimalist lifestyle.

Don't Be a Sheep

"Most Americans, for example, are deep in unnecessary debt, overweight and poorly nourished, inactive and stressed out, and self-sentenced to a mandatory career of unsatisfying work just to stay afloat. We constantly buy things we can’t afford and don’t need, and the majority of the trading we do does not increase our net happiness. And all of this is done with virtually no awareness of how we are affecting our own ecosystem – the tiny veneer of air and plants that is the only thing between us and the lifeless vacuum of space. In fact, it would be difficult to imagine a less efficient way to maximize “Utility” than what the modern consumer does."
-- Mr. Money Mustache, emphasis added
Not just America, but other part of the world as well. One way to reduce this insanity is to apply these age old golden rules of stop effing compare yourself to others, compare yourself to you from yesterday. Stop following the herd, the message the author tried to convey. To quote (emphasis by me):
" We design our entire lifestyles by looking around us to see what everyone else is doing. Most of us position ourselves in the middle of the herd, and start feeling deprived if we sense we are near the bottom. The problem arises when the herd is comprised mostly of sheep, responding blindly to their own irrational instincts. So as a society we have a tendency to automatically run ourselves straight off of the nearest cliff."
One thing I learned from the post is when buying something. Rather than comparing the relative prices of the item you want, check your intention with your needs and budget. Want that elegant watch? Ask yourself, do you need it and do you have the extra budget for it rather than wasting time looking for the best offer.

Borrowing Money While Saving is Absurd

"First in any investment strategy it is far better to pay off any debt first. Borrowing money while saving is absurd because the interest you incur on your debt is always higher than the interest you receive on savings. And borrowing while playing the stock market is even worse. Given the recent new of most people's debt, I suspect reducing debt should be most peoples concern. This includes things like checking if your mortgage agreement allows you to pay off more than the minimum to finish the mortgage early."_
-- polymatter, emphasis added
His comment echo my sentiments exactly. Unless you have extra spare money, is pointless to put your money in any investment that yield lower return than your debt, especially your mortgage debt.

The only doable approach is to change your lifestyle and live like a student regardless how much you earn. Still working towards a minimalist lifestyle and get rid of any unnecessary stuff. Is time to continue back taking my home inventory of my possessions. Not fun realize that you've became a hoarder.

Hopefully I can complete all this in coming September.


Cost of Living, Money, and Budgeting

Via HN. Interesting data on cost of living in Kuala Lumpur, Malaysia. While the data still cannot accurately reflect the the exact cost (example is renting a room instead of an apartment), the figure are good enough to serve as a baseline for budgeting.

On a related note, due to a bizarre incident at workplace, I had a long discussion with Mrs Hippo regarding our current financial situation and goals, both short-term and long-term. Different financial personalities, if not handled carefully, can be a relationship wrecker. Especially when one partner is an investor/spender and another a debtor.

The funny thing I noticed, when comes to money, the more you earn, the more you spend. Is like alternative version of Parkinson's Law, "Money spent so as to use the cash available for its fulfillment." Why so ? Lack of awareness. If you don't keep a budget, keep track, and monitor your spending, surely by the end of the month, you must be wondering where have all your money gone to?

How should we solve this? First, create awareness. How ? Develop a daily habit of tracking your spending. As the old saying, "You can't optimize what you can't measure". Start tracking your daily spending in any possible forms (electronic or pen and paper). The moment you spend on something, just jot it down. No blame and no judgement.

While you're doing that, unless necessary, start paying with cash instead of credit card. Having a plastic card change my spending habit. We started to eat out more and buy more unnecessary stuff impulsively (books, books, and books). For me, credit card should be used solely for one reason. Emergency. Example is making initial payment before admitting to hospital.

Once you develop that habit, you will start to spend less. While spending less money is the opposite of earning more money, both achieve the same result, your financial well-being. Having aware of your spending, you can start budgeting and if possible, automate your money allocation. After that, when you feel to be in control of your financial situation, start spending your extra money the right way to seek happiness.

My past experience has shown that is easy to create awareness but damn hard to sustain the habit. Change is always painful and is our tendency to avoid pain. Better suffer now rather than later. I foresee our economic is going downhill and the cost of living is rising in this coming years. Life is going to be tough, especially at my gaining age.

Survive on $16k/year in Malaysia ?

Clean up my bookmarks, found this old link via Slashdot on a foreigner claimed to be a programmer managed to survive on $16k/year (not including his travel) budget living in Malaysia.

USD 16k which roughly equivalent to MYR 48,560, according to today rate or USD 1 = MYR 3. Assuming that he works 5 days per week, or 25 days per month, or 300 days per year, and 8 hours per day. If we break this figure down,

In USD, 16k/year, 1.3k/month, 53.4/day, 6.7/hour
In MYR, 48k/year, 4.0k/month, 162/day, 20.3/hour

He is considered very well off being single with no dependencies and a monthly salary of USD1,300 / MYR 4,000. He can live comfortably with the remaining cash of USD 500/ MYR 1,600 after deducting his house rental (3 bedrooms where he can rent out the other two rooms) of USD 800/MYR 2,400.

Initially I thought the guy manage to survive by MYR 16k/year, but after further reading, I believes is USD 16k/year. Which make me think, it is possible for a person (single with no dependencies) survive in the big cities like Kuala Lumpur or Johore Bahru, with a yearly net pay of MYR16k / USD 5.3k or monthly net income of MYR1,300 / USD 428 ? If so, how?

Starting next month, except for mortgage loan, I will try to survive on my monthly budget of MYR 1,300 or less. Like they said, spend less than you earn and live within your means. This sure going to be a fun experiment.

On Moolah !

Unbelievable ! Simply unbelievable !

I'm striving to get out of debt. Consciously monitoring my cash flow, every cents that comes into and goes out of my life. Resist any temptation to buy anything I want rather than I need. Yet, there are people who still want to get into massive debt and thus increase their commitment further.

Why you want to spend the money you don't have ?
Do you really need a new house when you're just living alone ?
Do you really need to get a new car when the old one still works or fixable ?
Do you really need to get the latest greatest gadget ?

This is madness.