Showing posts with label fsf. Show all posts
Showing posts with label fsf. Show all posts

This Week I Learned - 2017 Week 26

Last week post or browse the archive of mindless ramblings.

Week 26 of 2017. We've finally reaching the half part of the year. So many things to do, so little time available.

"Eat food, not too much, mostly plants.". Avoid white processed food or any kind of fast food. Sounds simple right? Hard for us to follow. With a tendency of bridge, especially during dinner and sedentary life style, I doubt anyone have the time to eat a proper good healthy meal. What can we do then? Read discussion on forum and read scientific papers, and develop your own methodology. Good example of such research. However, some studies were paid studies to fit certain agendas, checking for a reputable sources is quite difficult due to signal to noise problem. Furthermore, most discussions are just personal anecdotal, which you know, is just a sample size 1 observation or N = 1 situation. To reduce all these noises and personal anecdotal, do your own research and refer to few reputable sites like NHS Choice and Harvard Health Online (paid subscription). Everyone mileage may varies, as we tends to trust our body and conduct N = 1 experiments on ourself.

Be careful when going to any chiropractors, don't let anyone have a quick jerk of your head. Better still, see an orthopedist with chiropractic knowledge.

MySQL, seriously, what an effed up database system. Conversion from one character set and collation to another was rather tricky. Resolving "ERROR 1071" was not as straightforward at it seems.

Interesting idea. Just focus on 3 things. 3 things per day, per week, per month, and per year. Experience have taught me figuring out which three things is the hardest part. We're constantly fighting over on the should and want.

This is what happened when an organizational system have been practiced rigorously. Way overboard for my taste. But different people have different working style and culture. While it's good to go for simplicity with an analogue approach, but managing index cards the manually way is just way too cumbersome. Pen and paper is good when you don't need to archive the information and can simply throw it away.

Meanwhile, the post on electric typewriter and reading environment gave me an idea on converting my Raspberry Pi into one digital typewriter. I just need to setup my writing environment with a monitor, mechanical keyboard, a mouse, and a good reading lamp. Just fire up the tiny box and start writing. Jot down what ever come to you without any prejudices and judgement. And eff grammar.

Why process is important? Cognitive errors more likely to happen than procedure errors. Stick to the process.

Fanny pack and Underbone (kapchai). These are like almost like everyday carry (EDC) and yet I don't even know the actual names.

Seeking job fulfillment? Depends on what you want or to sugar coat it, whether its align with you moral and ideological compass. Some don't dream big and content with their role, even through with minor contributions. Some based on ideology. If you want better pay, you will likely to end up with job you don't like, just like 98% people out there. Or maybe you should take a different view, the job itself is just your bread and butter, use the money to do something you find more fulfilling. Provided that you save your income aggressively like 25 times annual expenses.

Something of similar nature, how not to bring emotion from work back to home or how do you decompress after work?

Another day, another weird validation rule when using Vim and LaTeX.

GNU GPLv3 turns 10. What a long way to go since the first decade. Like it or hate it, this license have significantly changed the whole computing industry, especially free and open source software development. Without it, we are still at the mercy of proprietary licenses in all our computing devices. If you ever use any free and open source software and benefits from it, it's time for you to help out, sign up and be a member!

"TDD failed for economic reasons, not engineering ones." This is so true for legacy system when you want to add new feature but don't want to break existing stuff.

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 19

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

Mithridatism, the practice of gradually building immunity towards poison through self-administering smaller and non-lethal dose. The first thing that came to my mind is the fictional sect  of Five Poisons Cult in the Wuxia, a genre of Chinese fiction focus on chivalry and martial arts in ancient China.

Surviving the Framework Hype Cycle. Crucial presentation for those working in web development. Either you go with the fad and endure the mid-life crisis. Which is coincident with what I learned last week regarding emerging technologies and how to interpret it through Gartner Hyper Cycle

Why are developers always chasing the latest shinny new things in the development world? Two reasons. First, the resume-driven development where we all wanted to use the latest, greatest, or sexiest technologies to build system regardless the suitability. Second, to join the league of 10x developer. Someone actually jokes that x represents the original estimation, which is true sometimes.

Bradon Hays' letter to an aspiring developer. In short, learn and work with smart people to level up your skill. But I do agree, regardless the experiences, it takes a developer around 6 to 12 months to be comfortable with any programming languages and frameworks. And most importantly, don't be those 10-plus years developer who have SAME year of experience, 10-plus times. Something interesting that he mentioned about masking "honesty" or "humility" as pessimism, contrary to what Dijkstra wrote in his Turing Award Lecture, The Humble Programmer.

New GNU Emacs website. (HN discussion) I think Free Software Foundation (FSF) finally realize the needs to have suitable way to promote free software and attract developers, especially Emacs. I suspect the release of Visual Studio Code might have something to do with it. For a start, why not  have a more sensible default configuration? FSF needs a good re-branding and marketing, not the philosophy but the brand itself. Maybe is time for me to help out with the development as well? But first, how much evil I need in Emacs?

Sticky keys. I was aware of it but didn't pay much attention but was reminded again. Interesting way to reduce the possibility of Repetitive Strain Injury (RSI).

Cure for Cron's cronic problem. I'm not sure why this feature was not added to the Cron itself? While the moreutils' chronic provides similar feature, Cronic have better error reporting as shown below.
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron  cronic backup

Cronic detected failure or error output for the command:


cp: data2: Permission denied


+ cp -rp data1 /backup
+ cp -rp data2 /backup
cp: data2: Permission denied

Someone sent me this good advice on finding happiness. I'm not sure who wrote this, but the advice seems thought provoking.
  1. Make a list of things that make you happy
  2. Make a list of things you do every day
  3. Compare the list
  4. Adjust accordingly

This Week I Learned - 2016 Week 15

Last week post or the whole series.

Stop using numbering system to make the post feels more like an essay. It seemed to change my writing style as well. Variations is good for writing and it took me 14 weeks to make necessary changes. The next step is to build a writing ritual to write at any time and any where.

The recent released of native Bash (HN thread) through Ubuntu in Windows (think of this as the reverse of Wine, mapping Linux system calls to Win APIs) though Windows Subsystem for Linux (WSL) caught everyone by surprise or not (some see this as the return of Embrace, extend, and extinguish by Microsoft). Historically, Apple and Oracle have done this (different approach) and continue to do so and I was surprised it took Microsoft this long. Compare to last time, this strategy basically a response to recapture the developer base rather than the user base.

And also, it proved that calling GNU/Linux now make more sense now than ever and and how significant importance of GNU system. Now that Microsoft and Canonical slapped the GNU system (user space) on top of Windows kernel, should we address this combination as GNU/kWindows (HN thread) instead, similar to GNU/kFreeBSD? Note the 'k' stands for kernel. How will this affect other GNU/Linux distros and FSF itself? Red Hat responded by letting developers download its distro for free. However, there is always the issue of lock-on when free software depends on nonfree. Since the embrace phase have started, the extend phase will follow suite. Is history going to repeat itself again?This shall be seen. Interesting days ahead in the technology scene in coming years.

Biggest regret as a programmer? Andrew Wulf's reflection did raise some interesting and thoughtful discussion in HN, Reddit, and Lobsters. In the end of the day, don't compare, do what you love but take care of your finance.

Hitler uses Docker. The parody-subtitled video making fun of the Docker, the overhyped container technology. If you don't understand the context of the video, read the annotated notes to the video. This reminds me of similar satire of MongoDB is web scale during the hype of NoSQL fad few years back.

Picking up Perl? While Peter Norvig said it's not possible to learn any programming languages in 21 days, but you can learn enough Perl in 2 hours and 30 minutes or in Y minutes instead. For starter, two things you will need to understand which are using strict and warnings as well as why use 'my'.

Note to self - 2014-06-08

One of the benefit of writing a journal is that you'll have the opportunity to reflect back and monitor your progress of your life. Especially how you got where you are right now.

Due to nature of my workplace, I'm slowly getting into the habit of weekly review and keep track of my time usage, something that may be frowned upon by others, but I believe is the right approach if you want to be very aware of you time usage.

For the past two days, I've switched my working style. No more coding with a lappy while lying down. Just sat at my table with dual-monitors and code and write. The noisy workstation still bother me but I'm slowly getting used to it. Productivity seems to increase and you seemed to accomplish something. Whether this is the right thing? Not sure.

While I'm a firm believer in computer user freedom and even set up a monthly donation to them, but what's my Free Software Activities? Sadly, none. However, what if I allocate two to three hours per week for such activities. Let's see how this goes.

More on Bash scripting. I've learned and relearned quite a few things today while writing a small script for setting up my development machine.