Showing posts with label gnu. Show all posts
Showing posts with label gnu. 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 - 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:
backup

RESULT CODE: 1

ERROR OUTPUT:
cp: data2: Permission denied

STANDARD OUTPUT:

TRACE-ERROR OUTPUT:
+ 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'.

Testing Debian GNU/Hurd 0.6

It was so long since I last heard about GNU Hurd but most recent 0.6 release piqued my interest compare to last time as my laptop are powerful enough to test run in a virtualization environment.

Installation was done in Fedora 22 where I've spend most of my computing time. On a side note, Fedora, as a desktop Operating Ssytem, is way more integrated and stable compare to Ubuntu. To be more precise, user experience in Gnome 3 is just way better than Unity desktop, although the former came a long way, after being constant ridiculed before reaching that usable point.

Let's continue with the installation. We will run it as a Debian GNU/Hurd QEMU guest OS image. Before that, we will need to install all the necessary packages.
$ sudo dnf install aria2 qemu-system-x86

Download the image using Aria2 download client.
$ aria2c -x 4 http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz
[#aa5de7 10MiB/380MiB(2%) CN:4 DL:380KiB ETA:16m34s]

Instead of using Wget download client, we can create an alias which point to Aria2 instead, as shown.
alias wget='aria2c -x 4'

Extract image file which is roughly around 3G.
$ tar -xz < debian-hurd.img.tar.gz
$ qemu-img info debian-hurd-*.img
image: debian-hurd-20150424.img
file format: raw
virtual size: 2.9G (3146776576 bytes)
disk size: 1.2G

Following the documentation to boot the Operating System through QEMU through the image file.
$ qemu-system-i386 -m 512 -net nic,model=rtl8139 -net user -drive cache=writeback,index=0,media=disk,file=$(echo debian-hurd-*.img)
WARNING: Image format was not specified for 'debian-hurd-20150424.img' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions.

As the console message stated, to remove restriction on write operations on block 0, we have explicitly specify disk format by adding -drive format=raw option.
$ qemu-system-i386 -m 512 -net nic,model=rtl8139 -net user -drive format=raw,cache=writeback,index=0,media=disk,file=$(echo debian-hurd-*.img)

Once you see the login prompt screen as shown below, login as root user and press enter. Password is not needed.


To enter into the GUI interface, start the Window Manager, which is IceWM. Note that to exit mouse grab within QEMU, just press CTRL+ALT+G.
$ startx


The screenshot above which reminds me of the early days of GNU/Linux where there are no desktop environment but just a bunch of Windows Managers. I'm always wonder when can we really use GNU/Hurd as an alternative or replacement to GNU/Linux distros? Next century perhaps? Yes, the development is that dog slow as most or all kernel developers are working on GNU/Linux.