Makzan’s Dispatch 19w45: My Coursera and edX experience

This week, I finished my first paid specialist series from Coursera. It is Applied Data Science with Python by University of Michigan.

I have been learning this on Coursera for months. Previously I learn from edX. They are both great resources. When I was considering which one to pay for, edX or Coursera, their different pricing and schedule model was my key decision.

edX is like traditional university model that they charge for the whole series, average 5 courses in total, a lump sum.

Take the data science MicroMaster as example, they charge $300 for a course and total $1000+ for the series.

The course schedule is either spring or fall. Since this is a series of 5 courses. I can’t take them all at once. And if I missed any one of them, I will need to wait for half a year to start the next course.

In contrast, Coursera also provides series of courses called Specialist. They are paid monthly for a specific series. As long as I haven’t completed all five courses, I pay for the monthly price. And once I finished it, my subscription to that series ends.

The specialist series charges for $49 per month and I took 6 months to finish it. That is around $300 for the whole series of 5 courses. Of course, the title “MicroMaster” from edX looks more promising than the word “Specialist” from Coursera.

I had July and August paused learning for the worldskills competition although the subscription has to be continued.

Both edX and Coursera also provides higher level courses such as courses that count towards university credits or even full online master degree. I may consider one of them in the future as well.

Now I subscribe to another course: learning how to learn. It is a very fun course material with neuroscientists telling how to optimize our habit and brain usage to learn better. I'm still in week 2 of the course and not completed yet, but the week 1 material is already with recommending.

Link worth sharing

This week, most links I found are news, from Adobe, Apple and DuckDuckGo.

Are There Random Numbers in CSS?

An interesting experiment to create randomness experience with pure CSS only.

New CSS for Styling Underlines on the Web

Now we have text-underline-offsettext-decoration-thickness and text-decoration-skip-ink. In addition, we have wavy decoration now with text-decoration-style: wavy;

Adobe released Photoshop for iPad

Photoshop on iPad receives quite terrible reviews so far.

Adobe chief defends Photoshop for iPad following poor reviews

Belsky explains Adobe made the decision to nail some fundamentals, like “perfect PSD support” and a user interface that works on a tablet, before tackling other things.

Adobe had no intention of porting a desktop app — with all its “baggage” — straight to iPad, he adds.

Apple updates privacy page

And if you care, please also check the privacy features page as well.

DuckDuckGo Privacy Essential for Safari is back

Quote worth sharing

“You don’t get it by wishing”—Nike

This quote is now wallpaper on my phone.

Until next week,

Makzan’s Dispatch 19w44: Tel Aviv University

This week, I’m in Tel Aviv University, Israel. 

It is a three day course about cyber security. There are sessions about DevSecOps, BlockChain, Private-Public-Partnerships. The following picture is the Cyber Horse that was built during Cyber Week 2016.

This week I also finished listening to the book digital minimalism. It is from the same author of the book deep work.

We are surrounded by digital devices and services all the time every day. And the book tells us to think twice which one this is essential and which is not.


Links worth sharing

The story of getting SSH port 22

The story on how SSH port is officially registered as port 22 in 1995. It is 22 because SSH is designed to replace both telnet (port 23) and ftp (port 21)

A tweet about client-side routing

There’s a chance I believe client side routing on the web is usually not preferred. Which is ironic. 

Might be best for screens where the majority of the UI persists, which is the edge case.

Browsers handle page transitions really well.

SQL Murder Mystery

This is a learning game to solve the mystery by using SQL commands.


A collection of bad practices in HTML, copied from real websites.

Everything about my (Louis Abraham’s) email

The query box below allows you to determine if the email you sent me is in my important inbox and unprocessed.

A stats about how much the website owner has processed his emails and whether your email sent to him get processed or discarded.

Dark Patterns at Scale: Findings from a Crawl of 11K Shopping Websites

Dark patterns are user interface design choices that benefit an online service by coercing, steering, or deceiving users into making unintended and potentially harmful decisions. We conducted a large-scale study, analyzing ~53K product pages from ~11K shopping websites to characterize and quantify the prevalence of dark patterns.

Quote worth sharing

“How we spend our days is, of course, how we spend our lives.” —Annie Dillard

Until next week,

Makzan’s Dispatch 19w43: Life Chart

I turned into 33 year-old this week, and added 12 more crosses to my life chart.

I read from somewhere long ago telling that we can put our entire life into a chart within one piece of paper. Expecting if we will be 80-year old, that is 960 months. If we represent one tiny tile as a month, we can plot a 24 x 40 grid into one piece of paper.

You can download a piece of life chart here →


Links worth sharing

Firefox 70 is out

Inactive CSS properties in the Rules view of the Page Inspector are now colored gray and have an information icon displayed next to them. The properties are technically valid, but won’t have any effect on the element. 

Book: Laying the Foundations by Andrew Couldwell

This is real talk about creating design systems and digital brand guidelines. No jargon, no glossing over the hard realities, and no company hat. Just good advice, experience, and practical tips.

This book is full of practical advices and tips.

JAM SF Videos

JAM stack stands for JavaScript + API + Markup stack. Their latest conference was hosted in San Francisco last week. Now the organizers are uploading the videos. They are all great speakers and valuable sharing. 

Free for Developers

A big list of software (SaaS, PaaS, IaaS, etc.) that provides free tier for developers.

CSS Mistakes

That should be corrected if anyone invents a time machine. :P

We learn from our mistakes. But first, we have to be honest to our mistakes.

UI: The problem with dropdown fields (and what you should use instead)

Dropdown fields are:

  • Sometimes being missed.

  • Not easy to use.

  • Hiding the available options.

  • Subject to mouse scroll accidental changes.

Video: The Real Fake Cameras Of Toy Story 4

A virtual camera in animation that simulate real world lens limitation.

Just for Fun: Can you draw a perfect circle?

My best score is 96.1%, using mouse. How about you?

Code worth sharing

After upgrading to macOS 10.15, I see many icons are updated with a gradient border. I mimic the same gradient border effect in CSS3.

The core CSS effect:

.demo:before {
  --border-width: 6%;
  content: '';
  background: linear-gradient(to bottom, white, #ccc);
  width: calc( 100% + var(--border-width)*2 );
  height: calc( 100% + var(--border-width)*2 );
  position: absolute;
  top: calc(-1 * var(--border-width));
  left: calc(-1 * var(--border-width));
  z-index: -1;
  border-radius: 50%;
  box-shadow: 0 2px 3px rgba(0,0,0,.4);

The full code example:

Quote worth sharing

“Top skill for entrepreneurs: Being great at ignoring what everyone else is doing.” — Jason Fried

Thomas Mak,
until next week.

Makzan’s Dispatch #19w42: Moving to Substack

It has been months since I sent out last newsletter. I was in deep focus work and time flies. I was in New York for the Adobe Certified Associate Championship during July. And then I was in Kazan running the WorldSkills Web Technologies skill. And then I was back to Macao running the local mobile web design skill competition. And suddenly, after all those intensive work, it is Q4 of 2019. 

I moved the newsletter from Mailchimp to Substack and now all my newsletter archive are in one place. The Substack reminds me the TinyLetter service, which I used during my writings at 2014. Both give me the simplicity to write without all those distractions.

By the way, I just finished reading the book Deep work and the Make Time. I highly recommend them.


How do I win in a packed category?
WorldWideWeb from 1990
The Lean Web ebook — The web without the complication
Firefox’s New WebSocket Inspector
The Web We Want
A Comprehensive Guide to All 120+ Settings URLs Supported by iOS and iPadOS 13.1
JSON.parse('{"foo":undefined}') — There is no undefined in JSON

Links worth sharing

How do I win in a packed category?

How about just making something that can sustain itself? Why do you need to win it all? Why would you ever want to make it that hard on yourself?

Start up is easy. Stay up is difficult.

WorldWideWeb from 1990

In December 1990, an application called WorldWideWeb was developed on a NeXT machine at The European Organization for Nuclear Research (known as CERN) just outside of Geneva.

This is screenshot of in the NeXT machine.

The Lean Web ebook — The web without the complication

Old techniques don’t become invalid just because new ones come out. Often, the older approaches are simpler and more reliable than the new ones.

Firefox’s New WebSocket Inspector

To use the inspector now, download Firefox Developer Edition, open DevTools’ Network panel to find the Messages tab.

This is handy tool for web socket development.

The Web We Want

If you end up throwing a ton of code at a problem, perhaps there’s a better way.

A Comprehensive Guide to All 120+ Settings URLs Supported by iOS and iPadOS 13.1

A long list of iOS Settings x-callback-url that can be linked into particular view in the Settings app. 

Code worth sharing


Do you know that there is no "undefined" in JSON. So `JSON.parse` throws error when it encounters `undefined`.

Or if you’re using `try` when doing the parse, check against `undefined` instead of `null` because null is a valid JSON.

function tryJSONParse(string) {
    try {
        return JSON.parse(string);
    } catch (e) {
        return undefined;

Quote worth sharing

“Slow down a little, turn down the noise of the modern world, and find more joy in each day”. — Make Time book

Thomas Mak,
Until next week.

Thanks again for reading my newsletter. 

You are receiving this newsletter because you signed up for it at

Makzan’s Weekly 2019w30: Busy summer

I share what I learnt

It is my busy summer again.

In the past years, I had been super busy during the summer time.

There are often many different projects happen together during summer. They interrupted my life routine.

  • I used to forgot to pay my rental fee during summer.

  • I had paused my newsletter 3 times during summer.

  • I didn’t realize the time flies from June to July to August most of the time.

Different kinds of competitions and project deadlines all happened in summer. Every time I’m fully packed, the schedule reminds me the importance of creating free time for self reflection and thinking. Also creating free time for opportunities.

Links worth sharing

50 years ago, Apollo 11 landed on the Moon.

There are also notable quotes on moon landing.

Shape Up from Basecamp

This book reminds me my long favorite book Getting Real from the same team.

The book is written from @rjs. I learnt a lot whenever I read his essays and sketches.

LEGO tower

7 years ago I enjoying tiny tower with those pixel arts virtual citizens. Now I enjoy those LEGO mini figures moving around my LEGO tower. What a nice crossover!

Microsoft To-Do for Mac

I mentioned the Microsoft To-Do app in last email, and now it comes with a Mac app companion.

Before the debut of the mac version, I sync it with macOS’ reminders and also created a web app for that with a web view wrapper.

Simple Rules for Organizing Information

To keep your data organized for maximum productivity, you need just 3 tools:

  1. A place to capture notes (for everything you need to remember).

  2. Task manager (for things to do).

  3. Calendar (for events that have a specific date and time).

These are the essential systems. I also have a personal relationship management.

For notes, I use DEVONThink. For tasks, I use Microsoft To-do, but any tasks tools work. For Calendar, I use native Calendar app.

Beyond these 3 tools, I also have a personal relationship management tool to store where and when I met someone.

Quote worth sharing 

“Stop Running in Circles and Ship Work that Matters”— Shape Up, Ryan Singer

Until next week,

I’m considering to move the newsletter from Mailchimp to Substack.

I’m using the MailChimp pay-as-you-go plan. But now MailChimp is making changes to their pricing model, doubling the price and expiring the credits in 12 months to force people moving to their monthly plan.

Loading more posts…