Date: 2015

I’m using Basecamp for almost everything

I really stick to Basecamp 3. I’m now using it for almost everything, including coding projects, design projects, promotionals, book writings, daily office works, inspirations…

On Font-resize component

Recently I’m checking if I should include a font-resizer component in a web site. According to WCAG: WCAG 1.4.4 Resize text: Except for captions and…

Refactor Until You Feel Almost Comfortable

Link: Refactor Until You Feel Almost Comfortable How do you know when you’ve refactored enough and when you’ve refactored too much? I asked Sandi Metz about this once;…

Link: Japanese bookshop stocks only one book at a time

Link: Japanese bookshop stocks only one book at a time “This bookstore that sells only one book could also be described as ‘a bookstore that organises…

Tabs in HTML is not easy

Link: How Tabs Should Work REQUIREMENTS: WHAT MAKES THE PERFECT TAB? All content is navigable and available without JavaScript (crawler-compatible and low JS-compatible). ARIA roles. The…

Link: Regular Expression Crossword Puzzle

Link: Regular Expression Crossword Puzzle Good game for holidays.

The process of building native app vs web app

This is the graph that I use when comparing building app with web technology (HTML5) or native IDE (Xcode + Swift or Android Studio +…

Link: (Webkit) More Responsive Tapping on iOS

Webkit has disabled click delay on non-scalable web page in its nightly build 2 months ago. And here is an update with mention of the…

Link: Accessible dialog tutorial

Link: Accessible dialog tutorial This is an step-by-step example to make a fully accessible dialog according to WAI-ARIA 1.0 Authoring Practices, by using the Ally.js…

Link: The web accessibility basics

Link: The web accessibility basics And while I always thought that it is not so difficult to find resources about these basics, the recurrence of…

“Force enable zoom” in Opera 34 for Android

Link: “Force enable zoom” in Opera 34 for Android Did you know that 61% of mobile sites don’t allow you to zoom? We’ve fixed that…

Opera Mini and it’s data saving

Link: https://www.designernews.co/comments/193811 So basically, feature support is important. But for those in countries that don’t have unlimited (or essentially unlimited) internet access, Opera Mini’s data…

The concept of working directory and Git add, commit and reset

I drew this graph to explain the working directory concept and the changes tracking status among git add, commit and reset.

Trying Voice theme

I moved the site to WordPress to try several themes, mainly iA and NADA theme. I thought I would be happy with those minimal themes.…

Floating action button and the distraction

Link: Material Design: Why the Floating Action Button is bad UX design The search FAB thus distracts the user from an immersive photo-browsing experience. By taking up…

Customizing screen on app switcher

We want to customizing app screen on app switcher in the following situations. Hide sensitive information on app switcher Enhance what user see on app…

Link: Text To HTML Menu/List

Link: Text To HTML Menu/List Useful utility.

CSS Toggle Switch

Link: CSS Toggle Switch The beauty of this CSS toggle switch is that it is accessible when JS/CSS is not available. The following is the…

HTML5 Game Development by Example: Beginner’s Guide – Second Edition

The second edition of the book makes the most of HTML5 techniques to create exciting games from scratch. Published by Packt Publishing.

Demo of autolayout differently in portrait and landscape

This short video, without audio at the moment, demonstrates how to create an interface with AutoLayout with different layout on portrait and landscape.

HTML5 Game Development [Video]

This video course shows you how to build two HTML5 games in two hours with fast-paced beginner-friendly style.

Flexbox.website

A short book that demonstrates building website layout with CSS Flexbox.

HTML5 Game Development HOTSHOT

HTML5 Game Development HOTSHOT is a book that lets you build interactive games with HTML, DOM, and the CreateJS game library. Published by Packt Publishing.

Link: How to animate “box-shadow” with silky smooth performance

Link: How to animate “box-shadow” with silky smooth performance Box-shadow transition Takeaway note: Use :after to apply the box shadow. Transition opacity of :after element instead of box-shadow.

IBM Swift Sandbox

Link: Introducing the IBM Swift Sandbox The IBM Swift Sandbox is an interactive website that lets you write Swift code and execute it in a server…

Old Web Today

Link: OldWeb.today I miss those day I was using netscape to learn web design.

What we can do today

In the post Engaging users with web, we see how we can use web technologies to build interaction with users. Link: WhatWeCanDo.today This website let…

Engaging users with web

Link: Native or Not? The Untapped Power of Web Apps This essay lists what we can do on web, which is more powerful than you may…

Link: Git pretty

Link: Git pretty, a chart to handle mess in you git commits. A chart to help you clean up a messy git commit history.

From Adobe Flash to Animate

Link: Welcome Adobe Animate CC, a new era for Flash Professional To more accurately represent its position as the premier animation tool for the web and…

Course material for Git

Recently I’m writing a course material for learning Git version control. It’s still in early draft. But better than having nothing. You may find the…

Link: Froggy, a game to learn CSS Flexbox

Link: Learning CSS Layout with Flexbox Froggy The goal of the game is to help the frogs get to their lilypads by writing CSS code. See…

My experience on Pomodoro technique

Link: The simple technique to fit a 40-hour workweek into 16.7 hours That’s 25 minutes of steady, focused work on one task. No multitasking. No emails. No phone…

Trying iA Theme

I’m trying the minimal iA wordpress theme to see how it works. Ideally, I’ll be able to focus on writing only.

Material Design is for Google only

The way people talk about Material Design makes it feel as through it’s a new discovery in design. There are interesting principles in there, but…

ReactJS Examples

I’m writing some ReactJS examples to demonstrate how we use React as the view rendering library. It also shows how we do data-view separation. You…

Rails from request to response

I need to draw a chart to explain the flow from a client’s browser sending a request to Rails server. Then Router dispatches the request…

How I write everyday

Here is how I write everyday. I use Drafts to write on iPhone. I share every writings to Day One, which syncs to my Mac. I collect the…

Tween.js examples

I’m recently trying to use the TweenJS library with DOM elements. Here is my first attempt. Here is the core part of the source code. I didn’t…

One third of FWA Site of the Day winners uses CreateJS

According to the HTML5Ads documents by CreateJS. CreateJS is robust and mature. The suite was created and is maintained by a highly experienced team of interactive developers and…

Basecamp 3

Link: Launch: Basecamp 3 I have been a fans of both the Basecamp product and the company behind it, formerly 37signals and now Basecamp. I clipped an interview to…

Writing in Scrivener

I purchased the writing application Scrivener for years. But I didn’t really get used to it. I switched to use others writing apps, namely Editorial, iA Writer,…

A easy-to-understand vim tutorial

Link: A vim Tutorial and Primer Vim as Language. Arguably the most brilliant thing about vim is that as you use it you begin to think…

Move from CoffeeScript to ES6, the beginning

I’m working on a book that shows how we can integrate canvas into our daily web design and application. I converted that book into AsciiDocrecently. Now I’m making…

AgileBits never tells you to make the keychain in Dropbox public accessible

Re: 1Password Leaks Your Data Being a curious kind of guy I opened the file to see what was in there. The answer is the name…

OS X El Capitan License in Plain English

Link: OS X El Capitan License: in Plain English Slideshows made with Photo; same deal, don’t even think about using them for some commercial purpose. I…

Blend—Generate simple and beautiful CSS3 gradients

Link: http://colinkeany.com/blend/ Useful tool to create CSS3 gradients, by @colinkeany. It works in mobile too.

Jason Fried on Writing

Two quotes from Jason Fried on writing, from issue 12 of Offscreen Magazine. I guess I’ve grown to love it [writing] because it forces me to…

Webkit disables click delay on non-scalable web page

Link: https://trac.webkit.org/changeset/191072 When a viewport is unscalable (specified through the meta viewport tag) we do not add a delay to our single tap gesture recognizer. When…

Writing book in code editor

I recently changed my writing tool from those distraction-free text editors[1] to code editor.[2] It’s mainly because I focus on writing technical books with code examples…

Practical CreateJS

I wrote a half-done book, Practical CreateJS, in early 2015. I’m exploring a new approach to write my book in AsciiDoc. I restart the writing process of…

Corpus—A collection of CSS

Link: Corpus—A collection of CSS Useful CSS resource. Bookmark here.

ECMAScript 6 Cheatsheet

Link: ECMAScript 6 Cheatsheet Useful cheatsheet. Bookmark here.

The problem of AMP HTML

Link: Get AMP’d: Here’s what publishers need to know about Google’s new plan to speed up your website Now, AMP essentially asks you to build a…

A simple comparison between AsciiDoc and Markdown

I created a simple comparison between AsciiDoc and markdown. It uses my previous article. You can find both editions in the following Gist: And here is…

Quote—On the side of the majority

Whenever you find yourself on the side of the majority, it is time to pause and reflect. — Mark Twain

Steve Jobs Simplicity

Link: The One Thing Jony Ive Remembers Most About Steve Jobs Quite honestly, what’s remained, I never would have predicted four years ago. What’s remained is…

Setup Textastic app to write AsciiDoc on iOS

I’m writing my next technical book and course material with AsciiDoc. In Mac, there is plenty of options to write the AsciiDoc with syntax highlight.…

AsciiDoc Book Starter

I keep exploring different ways to write my next book. I’ve tried using Markdown, Markua, Pollen. They are all good at certain area, but none of them really…

Minimal Desktop

Yesterday I posted my minimal iPhone homescreen. Here is my desktop: One desktop folder to store all my temporary files, which I’m too lazy to file…

Minimal Homescreen

I posted my home screen last year. Here is my latest one. 2 folders and 2 often used apps on dock. Nothing more. If there are too…

Wave form of iOS voice memos app

Link: Little Big Detail The icon for Voice Memos is a waveform representation of the word “Apple.” Interesting detail found.

Cron build makzan.net (revised)

When I setup this blog with periodically building and deploying, I used a local cron. Now I changed to use WebTask and CodeShip to automatically generate the static site and…

Props in getInitialState Is an Anti-Pattern

Link: Props in getInitialState Is an Anti-Pattern This isn’t really a React-specific tip, as such anti-patterns often occur in code in general; in this case, React…

How to undo (almost) anything with Git

Link: How to undo (almost) anything with Git A good document that worths clipping down here for future reference.

keyup event and Chinese input in mobile Safari

A student of mine asked me this question when he is making an input text filtering with Chinese content. The user needs to input some…

Saying No

This week, the page Product strategy means saying No from Intercom is popular. Saying no is hard, but a great product manager isn’t afraid to make tough decisions to…

CSS Pattern with Repeating Linear Gradient

Link: Why Do We Have repeating-linear-gradient Anyway? I like the idea of using repeating-linear-gradient to generate pattern. They look cool! background: linear-gradient(135deg, #000 .25em, #0092b7 0); background-size: .75em/sqrt(2) .75em/sqrt(2);

Do serifs make you tap?

Link: Do serifs make you tap? As a result of this test, we are considering shifting our mobile ads’ default font from Helvetica to Times New…

3D Touch Force value in mobile Safari with touchEvent.force

Link: 3d-touch/3dtouch.js By using touchEvent.force, we can get the force of the touch in 3D Touch screen. Obviously it only works in the iPhone 6s and 6s…

Probabilities for years left to live

You may have heard of 900 months—The months you have assuming you’ll live until 75 years old. And you can draw 900 squares in a…

A collection of desk

Link: Issue 34 of The Modern Desk I’ve recently come across several interesting desk concepts, so I thought why not create a special edition of TMD…

The first draft is always perfect

Link: The first draft is always perfect That’s right. The first draft is always perfect. perfect. Its only job is to exist. Like minerals. Like dirt.…

Accepting Custom Domain in Rails

Link: Adding Support for Custom Domains in Rails There are three main steps necessary for adding custom domain support to your Rails project: Have your users…

Foundation 6 and CSS Preprocessor

Link: Foundation 6: Leaner, Meaner and Cleaner Sass Yep, let’s start with the bottom line: when writing Sass, remember that you’re always one step removed from…

Exploring Rails-React

I’m going to explore the Rails-React way to create my next web app. You may call me traditional, but I still don’t think pure client-side frameworkis a good…

Link Indicator

Link: Browser Link Indicator I was wondering why there are no indicators in our browsers, letting us know if a link is internal or external. Same…

Features vs. Benefits

I clipped example of selling benefits instead of features. Here is another one. Link: Features vs. Benefits People don’t buy products; they buy better versions of themselves.…

Dealing with long words in CSS

Link: Dealing with long words in CSS Final solution This solution will show hyphens for every browser supporting it and will break lines in every other…

Say — Text-to-Speech Command in OSX

The text-to-speech function in Mac OSX works in command line too. A simple say command with a string provided: $ say “Thank you for calling…

The web as at 2006

I came across this Flash website which was made in 2006. I miss those days with stunning websites. Link: Archive of Nike Air site In case…

Make inline text bold and italic in Paper app

It’s so easy to forget that we can mark inline text as bold, italic and even strikethrough by using the iOS styles when selecting the…

Pattern for Discussion Thread

Link: How to display threaded discussions on the web A nice discussion on the pattern of discussion thread.

Stop breaking the web

Link: Stop breaking the web Do use a framework, but look into frameworks that are progressive-enhancement-friendly

19 Tips For Everyday Git Use

Link: 19 Tips For Everyday Git Use By the way, here is my git alias setup:

New books bought from ChengDu

I bought these books in this ChengDu trip: 100 個基本—松浦彌太郎的人生信條 The End of Eternity 創業時,我們在知乎聊什麼? 造物有靈且美 Ship of Theseus 你只是看起來很努力

My visual log book

I keep a visual log book. It logs my every day’s thoughts and the special things I did that day visually.

Tricks for Chrome Developer Tool

Link: How to use Chrome DevTools like a Pro I find the $0 reference in console useful: Get the current element with “$0”

Pending blog post for future in Middleman

By using the middleman-blog gem, the middleman build command won’t build posts that’s in the future timestamp. By using the periodically deploy script. I can now set a pending post…

I draw sketch in Paper horizontally

It’s more nature for me to draw in Paper app in horizontal orientation. My left hand holds the phone. My left thumb chooses between tools.…

Single Task

Link: I’m Returning to Single-Tasking I’ve been a fan of Leo Babauta. I gave out his book to my friends as Christmas gifts. I just realise that I…

Have a well defined done state

Productivity is not about doing things faster. It’s about thinking and planning better. If things are well planned, it won’t take much time to complete…

Makzan.net archive

I have archived the old makzan.net into archive.makzan.net. I have kept the 4 courses URL unchanged. They are: Mobile web app development Ruby on Rails 101…

Restore deleted documents from iCloud Drive

Link: Quick Tip: Restore deleted documents from iCloud Drive To restore files, sign into your iCloud account through the browser, and go to Settings → Data & Security.…

Configure files to copy without middleman building process

While building the new makzan.net on top of middleman site generator. I faced an issue that for certain files, I don’t want middleman to process it during…

Periodically deploying Middleman static site

The new makzan.net is built on top of Middleman static site generator. Then I deploy the site as a Github pages. I use middleman-deploy gem to setup the Github pages deployment,…

New Makzan.net in beta

I’ve been thinking not to use the blog style in my personal website—makzan.net. I think I can put all my tutorial here and keep the…

The role of Paper ideas and Apple Notes

Paper is for sticky notes. It’s the idea that I don’t know how it forms and improves. I can freely draw and type my ideas. And…

New life

Today marks my new journey. My first child is born.

Put script after content

By default, we should put the script tag after our content. It usually means putting them just before the closing of the body tag. The…