Number, number and more numbers.
Surviving is of course the priority. In order to survive in this modern society, we need the numbers to be enough. The income need to be there, saving have to be made, debt need to be paid, cash need to flow. Money buy food and shelter. We need the numbers to survive first. No question. Next? Bigger number as redundancy, as insurance o...
Silly me. Listen to the (Dart) Stream.
I was working on some form submission feature in the noon. Things were going well. I cleaned up the code and commit them before my dinner break. There are a few latest changes from the remote need merging prior to continuing my work later. Ate my food and wash everyone plates. I back at my desk to work. Rebuild, just to be sure. Then d...
My typical "working" day
8 hours of sleep later, I usually wake up to a bright day. The lazy morning routine kicks in: 1. continue laying in the bed for half hour. 2. get up to do neck and shoulder stretching. 3. Cold shower. Brush. 4. To the kitchen now. Drink 300ml plain water. 5. Put back all the dried dishes from the drying rack. 6. Back to the room. Make ...
I can't do 120 WORK hours per month
The usual hours for office, 8 hours per day, 40 hours per week, 120 hours per month. But I can't do it. More like, hours spent appeared to be working for the company. REALLY working? If one clocked 8 hours "at work" for a day, what amount to "really working" is less, way, way less. Ever since I became a freelancer, broke from my salari...
How to find a good team mate in software development?
This is not a clickbait questioning title with an answer post. It is a genuine question to ask, and this post is going to continue elaborating the question. Sorry if you came here for an answer. Do stay if you are interested or are in the similar situation or is my answer. Let us not bother about the kind of cooperation first. It can b...
Dart Stream journey 1: Stream everywhere
I have been enjoying writing "dot chaining" dart codes recently, something I really adore when I was building fp-svelte. The beauty of the codes is their declarative nature of them, as opposed to imperative codes. Let shows them here. Stream, Stream everywhere final _contacts = BehaviorSubject<List<Contact>>(); _contacts.addStream(remo...
Flutter: Text theme from other design language
I always know there are header 1 to header 6 and body text. Also, aware of the existence of subtitle, caption, paragraph, etc. Never understand what is their purpose, vaguely can guess they are different in size. Maybe few of them are naturally bold? I cannot be certain. Recently, my freelancing project's customer asked me to incorpora...
TTD: My way to keep my pet poject alive in trubulence time.
I have been working on my Flutter database pet project: FutonDB, on and off, for a couple of weeks. In a relatively easy week, I would spend one or two days on it. Busy weeks will see me contribute zero hour to it. Usually, this kind of sporadic schedule will kill my interest rather quickly in any pet projects I started. Not this time,...
CouchDB: Intentionally create conflict and getting it
Sounds like a thug. But, no pain, no gain. Yo! Conflict is the way of CouchDB, and life. Embracing it with love is how we live in harmony, with Database, and with people too. To learn to embrace CouchDB's conflict, one must first create it in a control environment, then slowly exposing it to the system for adaptation. a.k.a. test drive...
My new year and birthday wish
I didn't "use" my birthday (3 days ago) wish. And I heard there is one for new year. I will be combining the power of these two wishes into one: A quick recovery, and comfortable life afterward, for the little girl, Hannah Teng.
CouchDB: My open_revs confusion
New day, new confusion. Today solved puzzle is the `open_revs` query parameters used in a GET /{db}/{doc}. The official and correct definition for it is as follows: `open_revs` takes an array of leaf revision string, and return all of their corresponding document in the response. It is correct, but again, expecting the readers are Couc...
CouchDB: My new_edits confusion
`new_edits` is a boolean option to pass as query parameters for a PUT or BULK_DOCS operation. It is meant to be used by replicators only. I am writing a replicator! So I ought to use it. Then it costed me a day to learn what it really means and what are expected from it. Needless to say, since writing a replicator is not a common thing...
Happy Birthday to Linus Torvalds and me
38 years of living, 20 years of knowing Linux and 5 years of using Linux full time for all computing stuff. Today, I learned that I share the birthday with Linus Torvalds, the father of Linux. Cool. I bet the next similarity I can claim to have with Linus is both being a programmer. Writing codes is most likely our most overlapped non-...
Flutter web to not download stuff from external host
If you are building web application with Flutter Web and paid attention to the network tab during load, you would notice three downloads that's not from your host.canvaskit.js, canvaskit.wasm and a cryptic font from Google. This is not good if you are building a web application for companies that cares about data privacy, especially en...
Quietly, I made another "work mode" Linux, again.
This time, it is a Manjaro i3. I do not use this word lightly, but, I think I've got the perfect setup. Perfect. Manjaro because I still very much in love with their package managing. AUR is simply awesome. i3. The beauty is in the simplicity and cleaniness. Keyboard oriented too. Thanks to my previous adventure into Sparky's i3, I cam...
BeeHive 0.1 : Camp gears.
BeeHive is a codename for the ultimate old age house for my wife and me to live and die at. In our imaginary world, it is a decent little cottage up in the mountain, a misty garden and a quiet night. We are not there yet, and not even working hard towards it. We do, however, take baby steps towards it. The first step is a set of campin...
I saw a Monad in Dart Stream
I knew I had read it, briefly, in one or two of the articles about functional programming before. Or if I type something about "Functional Programming", "Reactive X", and "Dart Stream" into DuckDuckGo, the first page will be full of them. It is when I wrote these lines of code... Rx.combineLatestList( [_siteInfoController.stream, _prod...
50/50 of GUI development
50 fun works / 50 tedious works. Fun when the result gets better and prettier as time goes on. The colours are starting to match. The flow of pages to pages is coming to life. Tedious when each iteration is back and forth of tweaking a few numbers, or ONE number, rebuild and check out the result in the actual application. It may work a...
Overwatch 2 on Nitendo Switch
I downloaded the shiny, flashy, and free Overwatch 2 into my Switch this morning. It is actually a quick process. Download, link up Bnet account, wait it load and Tada! My past favourite shooter in my present favourite gaming console! But, still, a first person shooter with console controller? Does it work??? I've played Quake3, Counte...
What about integration test?
Flutter team defined an integration test similar to an end-to-end test: Run the real application in a real device or emulator, automate the user action (e.g. click on a button), and verify the actual result by reading the displayed information. A very slow process. The test is usually a long one to write too, involving a lot of differe...
The autonomous testing I like
I wrote a lot of tests: Unit tests, integration tests, good tests, bad tests, flickery tests, and so on. Unit tests are always my favourite because they are easy to reason, simple to write and quick to run. But, they are less effective when the goal is building a GUI application. Especially web applications. Modern GUI applications, we...
Why Flutter? Because Flutter Web makes sense now.
4 years ago, I learned about AngularDart during my Flutter journey. 2 years ago, I built 3 web applications with AngularDart. Two of them are for my startup. One out of three applications are still running and kicking in the wild, doing software stuff: fixing real-world problems. 2 years ago, there was news coming out of Flutter: The l...
Svelte development with Kakoune
Well, one can always works with .svelte files in Kakoune. In fact, I have been doing that for two days, with the pain of lacking language supports. Doable. But not ideal. Certainly not looking good for a programmer. We are supposed to be the productive bunch. Language supports are there to help us and we cannot say no. Today is the day...
Use bleeding edge tools, bleeds.
It is fun riding on the hype of the latest, shiny and paradigm shifting tools to build my boring web application. SvelteKit is still in early stage, but I loved Svelte so much I launch the next project with it as soon as I gave myself enough excuse to start yet another project. The bleeding edge nature of SvelteKit already bite me once...
WiFi in Linux: 5g okay, 2.4g not okay?
Problem My Manjaro used to NOT connecting to my 2.4g WiFi band. It connected to my 5g band no problem. It just keep asking me for the password again and again and again when I tried to connect to 2.4g. The new Sparky installation has the same issue! So I bit the bullet and search high and low to find the solution, which I present below...
Magic in SvelteKit
Magic sounds like a good thing, a wonderful thing that magically improved stuff. Not in building software though. When I call something "magic" in doing software development, it means I don't understand why something happens the way it is. Not always, but under the context that I thought it should have behaved the other way around. The...
Headhunting in GitHub
Today, I got an email. I got a lot of emails every day, but one that directed me personally and encouraged a reply is rare. How I wish there are more of these so that I can justify my Hey account better. Anyway, back to the email. A tech recruiter followed me on GitHub and sent me a personal email from the address he got from my GitHub...
Input field for images of Flutter, in all platforms
An input field, usually in a form, expects users to either pick an image from the gallery (disk) or take a new photo with a camera on the device. Both options result in an image file waiting to be read. Most modern devices can fulfil both functionalities. Users are certainly expecting it too. Flutter developers can build this into thei...
The unproductive days of seeking more productivity
For nine months, I have been working with my peak productive workspace setup: Kitty terminal (for tiling my CLIs), Kakoune as IDE, taskwarrior, timewarrior, todotxt, homemade pomodoro timer, an expansive of alias, etc. The theme here is keyboard-centric workflow. My Vivaldi and Chromium browsers even have Vimium C for full keyboard web...
Stable Sparky and Adventurous Manjaro
I installed the stable Sparky (Debian based Linux distro) not too long ago. To try out a lighter Linux installation with i3 Window Manager. Lean! The journey is bumpy. Explosive even. I nuked my configurations for Kakoune, nnn and Kitty in the process. I was trying to do a common configuration for common application by storing the conf...
Photo taking function in non-photo-taking Apps
Here are the Web Apps and Mobile Apps I've built since I left my games dev job, with their relationship to photo taking: 1. ANA: Asset Management enterprise software for Heavy Industry. Taking photos of the machine and its small parts is the major functionality. 2. ZASA (mobile apps) and B4TheDate (web apps): Apps to help household use...
Colorful Codes
I need my codes to be colorful. Nothing bothers me more than having a full page of codes having less than three colors. Nothing stood out! See: There are a few problems here. 1. Comments are the same colors as normal text. 2. Class's color is too close to normal text. 3. Method is the same as normal text. This is such a drain on eyes. ...
Set a Kitty theme and everyone follow suit
Before I nuked my Kakoune, Kitty, nnn and jrnl config folders, I used to set the theme on all CLI Apps I used in my Kitty. It never occurred to me that these CLI Apps may use my terminal colors directly if I never asked them to use their own colors. I was wrong. Earned another lesson from my painful nuke-my-config-lol lesson yesterday ...
Functional Programming in Svelte: Part 1
“Getting started without worrying a tiny bit about “Functional Programming”.” You will still be using functional codes, just do not bother with how and why. Follow through, enjoy the readability, expect the result, imagine the potentials and decide at the end. I wrote this article by assuming not everyone will follow these clone/coding...
Manjaro it is
On a fine morning, I realized I haven't used my Windows partition on my laptop, for a very long time. Casually checking and found out, to my horror, it had the luxury of taking up 100GB in my 250GB SSD! So, I decided to remove Windows from my laptop, and my life, completely. The last reason I was keeping my Windows around was my Steam ...
Why I Read
Book, it is. Physical bound papers, or virtually on screen. Fiction or non-fiction. Whatever the language. If a book wasn't the first object that pops into mind after reading the title, instead it was the online article, online news, tweets, worse of all, a Facebook post, then, please, grab a book, silent the phone and read the book. F...
I may be a boss, only if it's fun.
I am a boss, two and half a year, and counting. Am I rich? No, I am still living off my savings. Am I famous? No. I have 30 followers on Twitter. Am I smart? No. Just, no. Am I a proud leader with a bunch of underlings? No, I have a co-founder, graphic designer wife and an old friend helping out the project for a year++, which I haven'...
Finally, I quit Facebook, for good.
After almost a year of not visiting my Facebook feed, I decided to give it one last look before I start my quitting process. It was 10 in the morning and to my surprise, I saw enough online friends fill up the whole sidebar. That is a lot of active friends current using their Facebook! My friend list was kept purposedly low (100~200?) ...
Subscribe and get the latest posts in your email
Daily digest, no spam, unsubscribe any time
Or simply get the latest posts RSS.
https://world.hey.com/kuan
Posts: 38
New post: Monthly
Search using free-text and press