This Week I Learned - 2016 Week 21

Write-up for last week or you might want to read the whole series.

My time with Rails is up. This sure brings back the memory of Zed Shaw's infamous rant post, Rails is a Ghetto. I think the author major issue is Ruby on Rails tight coupling architecture. I can understand why he prefers building web application from a bunch of independent libraries (more like Unix's philosophy of 'Do One Thing and Do It Well' approach). This is Gartner's Hype Cycle at work here and this excellent reply provides another point of view and suggestions. What's next in Ruby land if you want to build a web application but not using Rails? Traiblazer, Hanami, ROM, and dry-rb. One good thing the came out from all the Rails hype was that more developers were made aware of PostgreSQL instead of the default MySQL.

How I Vim. Interviews of Vim's user on how they customized and use Vim. Due to the recent changes in life, I've been evaluating Sublime Text and have a different perspective and understanding on why this editor was popular among non-Unix users. There is nothing unique about Sublime Text that both Vim or Emacs can't reproduce. The only things missing in both these legacy editors is good sensible default. For examples, searching multiple files or jumping through definitions without resorting to external plugins and customization.

Remember that you always search for "asdfasdksfdasdf" just to clear the highlighted search results, even after restarting the Vim? There is a way, although still manual, to toggle off the highlighted search. This is coming from :best of Vim.
nnoremap  / :nohlsearch

Again, another unsolved Vim's customization cleared today! Auto-reload your '.vimrc' file upon saving.
augroup reload_vimrc
    autocmd BufWritePost $MYVIMRC source $MYVIMRC
augroup END

The machine is acting up again and I can't get anything much done today. Most probably it has reaches its end of life. Maybe is time to get a new machine instead.

This Week I Learned - 2016 Week 20

Write-up for last week or you might want to read the whole series.

Automate your daily computing life. I noticed that the only two application that are crucial for me in my daily computing usage is Gnome Terminal and Google Chrome. To prevent me from starting both applications manually on daily basis, why not start both applications when I log into Gnome?
  1. Press 'Alt + F2' and enter the command 'gnome-session-properties'
  2. Add a Startup Program
  3. Add name as 'Gnome Terminal'
  4. Add command as 'gnome-terminal --window --maximize'

Upgraded my almost four-plus years old D-link router. My Google-fu leads me to to TP Link's Archer C7 wireless dual band gigabit router. Features and values wise, this is probably the most suitable upgrade. Due to some absurd coincident, IPTV does not work by default, and TM gave me a replacement HyppTV Android Box IPTV set-top-box (Huawei EC6108V8). However, the issue remains and HyppTV still won't work. In the end, found the workaround which is to disable the Hardware NAT, which is only useful if your Internet connection is above 100MB/s.

Should I flash the device with OpenWrt? Nah, the default is good enough for now.

Updating classic workplace sabotage techniques. (HN discussion) After all this while, people still don't realize, the case against open-plan offices has been studied and it was suggested, terrible for employee. Someone joked that this is decade-long strategy by headphone companies to sell more "noise cancellation devices". To be fair, it depends on your personality, either you're introvert or extrovert, the office environment, and the people in the office.

Web application is "database skin". Another interesting metaphor in addition to what I always use, web application is a "glorified spreadsheet".