RSS feed [root] /



title search:


Tue Mar 17 14:56:13 HKT 2020

(google search) (amazon search)
download zip of files only

Thu May 23 22:45:47 HKT 2019 From /weblog/design


軟體相機時代來臨!Google Pixel 工程師來台揭秘相機技術 -[..]cle/16465-google-pixel-camera-background

(google search) (amazon search)

Tue May 14 00:05:38 HKT 2019 From /weblog/learning


1. Create a structure for requesting feedback.
2. Get specific.
3. Act and report back.[..]ee-tips-for-getting-better-feedback.html

3 Undisclosed Tips for Digital Creatives, 2 are getting feedback -[..]isclosed-tips-for-digital-creatives.html

5 tips of getting feedback quicker -[..]/04/02/5-tips-for-getting-replies-faster

Negative feedback antipatterns -[..]942984306/negative-feedback-antipatterns

How to give feedback -

孩子衝動易怒怎麼辦?玩這種遊戲有望快速學會冷靜 -

Asking for feedback isn’t the distraction — pretending that your employees don’t have feedback is. -

As a startup CEO, it is hard to take time to step back, reflect, and learn. But making it a mandatory routine — and actually calling it a captain’s log — has imbued the practice with power and meaning, both for me and the company I run.


Let's people complaint -

Don't fear of looking dumb -[..]arning-fast-is-looking-dumb-9166fb78c234

(google search) (amazon search)

Mon May 13 17:33:43 HKT 2019 From /weblog/software_engineering/SCM


Suggestful github project -

GIT to SVN command guide -[..]vs-svn-commandline-syntax-reference.html

pretty cool guide -[..]e-to-an-ioke-dev-env-from-source-part-1/[..]rticleId=240160261&siteSectionName=tools[..]&siteSectionName=architecture-and-design

Some comments about possible issues -[..]an-streamline-your-writing-projects.html

Several ppl blog about why GIT better than SVN -[..]tages-of-git-over-subversion-svn-a-brief[..]03/09/its-time-to-stop-using-subversion/

A suggested branching model -

Some advantage of GIT over Mercurial -[..]hy-i-switched-to-git-from-mercurial.html

#undo last commit
git reset HEAD^

#show files in a given commit
git show --pretty="format:" --name-only rev_number

#remove untracked files and directories
git clean -f -d

#track remote branch
git branch --track branch_name origin/master

# given you created a new local branch 'branch_name'
# pushes 'branch_name' to 'origin/branch_name', creating the remote branch for you
git push origin branch_name

#delete remote branch
git push origin :remote_branch_name


Some more suggested workflow -

Move from SVN, experience of JIRA -[..]from-subversion-to-git-and-the/240009175

Merge or Rebase?[..]13/10/git-team-workflows-merge-or-rebase[..]ntial-tips-for-git-and-github-users.html

change-default-git-commit-message-template -[..]nge-default-git-commit-message-template/

Git cheat list -[..]re-development/git/git-commands-tutorial[..]nds-in-less-than-10-minutes-c53922625a73

(google search) (amazon search)

Mon May 13 16:23:25 HKT 2019 From /weblog/design


Top Ten Software Architecture Mistakes -

Discussion about the balance of upfront design -[..]4/25/the-scatology-of-agile-architecture

There is no conflict in agile and architecture -[..]s-no-conflict-in-agile-and-architecture/

Experience of build instead of buy -[..]uy-one-companys-decision-to-go-it-alone/

Problem of too many layer -[..]/10/the-madness-of-layered-architecture/[..]are-architect-here-is-your-reading-list/

Sometime it is worth to build to throw -

Business Transactions
External Dependencies
Caching Strategy
Garbage Collection
Application Topology[..]s-to-capture-in-enterprise-applications/

invent a solution the majority of whose components depend on no others with those few components whose task it is to compose those other components being left largely to coordination roles. -[..]ting-started-with-big-data-architecture/

Twitter -[..]tter-handles-3000-images-per-second.html

Suning, more on HTTP -[..]oduct-details-system-architecture-design

Decision -

Some suggestion of making system simple, well, but the suggestion itself it is that simple -[..]ural-patterns-in-a-nutshell-a0b47a1e9013

(google search) (amazon search)

Mon May 13 00:11:07 HKT 2019 From /weblog/career/jobs

interviewer tip

The best way I've found to interview candidate developers is to pair program with them to do real work on the actual code of the project that is hiring. If not possible, give programming exercise which is:

The exercise must involve working with current development tools.
The exercise must require the candidate to apply important features of the language.
The exercise must involve understanding and working with existing code.
The exercise must involve error handling.
The exercise must involve testing.
The exercise must offer scope for domain modelling.
The exercise must involve asking questions.
The exercise must be realistic.
The exercise must involve changing requirements.
The exercise must offer the candidate enough rope to hang themselves.
The exercise must test many different skills and practices.

A good interview programming exercise takes at least an hour. -

The other interesting reading -[..]ass-kickin-interviewscreening-questions/

Phone interview -

Questions that somebody like to ask... although I think this guy is a bit arrogance -[..]y-favorite-java-developer-interview.html

Another interview question and answer -[..]/howto-pass-silicon-valley-software.html

How about lie at CV?[..]mon?entry=lying_on_your_r%C3%A9sum%C3%A9

Interviewing in google -

What interviewee should asked at interview -[..]programmer-should-ask-on-a-job-interview

What should not waste time to ask the candidate -[..]303_use-technique-ace-job-interview.html

Beware of the small things during interview -

The concern of putting negotiable in salary -

how-to-carry-out-technical-recruitment -[..]s/how-to-carry-out-technical-recruitment[..]ing-Process-is-your-engineering-process/

Assessing technical experience (a great idea) -[..]to-hire-the-best-developers-3ac0fa4e3f39

Bet you can’t solve this Google interview question. -[..]s-google-interview-question-4a6e5a4dc8ee

system-design-interview-questions -[..]stem-design-interview-questions-for-java

(google search) (amazon search)

Sat May 11 13:17:41 HKT 2019 From /weblog/photographic/tutorial


水底攝影入門(一):水底光線的考慮 -

Undersea macro -

(google search) (amazon search)

Sat May 11 13:16:20 HKT 2019 From /weblog/photographic/tutorial


勿加偏光鏡!水面有反光構圖更靚 -[..]-especially-landscape-photography-311376

India guide -

How to take astro landscape photo -

How to take cloud sea photo -

TimeLapse tutorial -

如何避免廣角鏡頭的失真 -[..]-avoid-the-distortion-of-wide-angle-lens

星芒的成因 & 拍攝技巧 -[..]01/diffraction-spikes-for-apertures.html

初學者也能拍出唯美畫面:攝影師教你捕捉絕美風景照的4步驟 -[..]ture-the-stunning-scenery-of-the-4-steps

Tips of taking sunrise photo -

(google search) (amazon search)

Mon Apr 29 10:54:01 HKT 2019 From /weblog/software_engineering/testing


Customer attitude will affect how the software engineering workflow a lot:[..]gprog/message/7420?threaded=1&var=1&p=24

Do you think this piece of code are too simple to have test case to cover? read this -[..]t-the-software-craftsmanship-conference/

Related blog, finding the common between taking photo and software testing -[..]hotographic-testing-lessons-learned.html . However, there is one big difference, it is harder to define a good photo than bug feel software

If it is good to put developer as tester? -[..].com/2011/03/programmers-as-testers.html

In fact I am kind of agree about this article, but maybe I just not TDD hard enough -[..]ectural-meltdown-around-iteration-three/

Tooling, Insight and Humility -[..]reasons-for-testers-to-learn-to-program/

Insufficient Requirements is not an excuse -[..]-blog-posts-9-insufficient-requirements/

What is the meaning of working -[..]14/03/very-short-blog-posts-14-it-works/

How Much is Enough? Testing as Story-Telling -

(google search) (amazon search)

Sun Apr 28 14:13:30 HKT 2019 From /weblog/trip


** 欣賞好風景, 就在花瓶頂 ** -

野外美食餐單大交流! -

(9:15)錦英>雁谷>靈猿守谷>猿頭>吊手岩>雁谷>110礦洞>耀安(12:30) -

路線:沙頭角公路→紅花嶺→礦山→紅花嶺→沙頭角公路 -

路線:落馬洲→鐵坑山→鳳崗 -

迪士尼後面山頭 -

紅花秘洞 -

丫髻穿鼻 -

石芽北脊 -

路線:警校道→南朗山北橫山徑→海馬→南朗山頂→南朗山南脊→南朗山路→黃竹坑 -

龍園 -> 外環單車徑 -> 流浮山老街 -> 蠔塚 -> 沙江天后廟 -[..]content=main&utm_campaign=weekend-120201

Valentino Chocolatier -> 半月灣 -> 橋咀洲地質景區 -> 吉光片羽 -[..]content=main&utm_campaign=weekend-120606

西貢街渡協會(9080 5794 / 9082 2057)

松柏 鶴嘴遊 -[..]22/albums/5764282192850561249?banner=pwa

路線:貝澳→十塱→芝麻灣監獄→長沙灣→61山頭→蝦鬚排→正生書院→芝麻灣郊遊徑→水塘→十塱→貝澳 -

青衣自然徑 城門水塘 鶴藪至鳳園 荔枝窩 青山寺 -

深涌野營 -

潛龍 -

全港五大長跑徑推介 -

石硤尾主教山 -[..]1%A4%E5%B0%BE%E4%B8%BB%E6%95%99%E5%B1%B1

屯門老虎坑 -

白燕岩 -

觀音石河 -

鶴咀 海角回憶1 -[..]/supplement/travel/art/20131013/18461339

花山 -[..]%B1%E5%B1%B1%E8%97%8F%E8%90%AC%E6%9F%B1/

長梯級路線 -

《衛奕信徑全征系列》第五、六段-沙田坳、九龍水塘及城門水塘[計劃出發中] -

米粉咀 -

火石洲上山下海之旅 -

Google Map 終於有遠足徑街景!你我都可以做 Map Maker -

由耀安邨出發,走半坳嶺北脊上馬鞍山村,跟著礦場脊上馬頷峽,落樹帶棧道,走至象門,so far so good…

維多利亞城界石尋寶遊 / 戴緻賢 -[..]B6%E9%81%8A-%E6%88%B4%E7%B7%BB%E8%B3%A2/

新界西北區水塘系列 -

下花山看荃青全景 -

Tunnels at High West -

十個你不知道的鳳凰山秘境 -[..]B1%E7%A7%98%E5%A2%83-%E5%BE%8C%E7%AF%87/

【假日親子遊】閒遊西貢橋咀島 -

鳳凰徑全征系列 -

【啹喀的後裔6】重遊昔日三大軍營 前軍人望活化軍營推啹喀文化 -[..]E%A8%E5%95%B9%E5%96%80%E6%96%87%E5%8C%96

(google search) (amazon search)

Sun Apr 28 00:48:00 HKT 2019 From /weblog/design/distribute


In one sentence, here's why: humans are notoriously bad at keeping "self" distinct from "other". Egomania, projection (transference), and enmeshment are well-known symptoms of this problem. OK, so I hear you saying, "yeah, but what does this have to do with programming?" It certainly seems absurd to suggest that if we are bad at something we know the most about (our "selves"), how could we possibly say that we have a good approach for the programming analogues - objects, modules, etc. -

Argue why space base design is better than n-tier design -[..]0The%20End%20of%20Tier-based%20Computing

Some key research of google for distributed computation -

Someone think we are not yet (per Oct 2007) have good language support for distibuted computing -

A blog contain a lot distributed computing information -

How Wikipedia manage their site -

Google tutorial for Design Distributed System -

The Hadoop Distributed File System: Architecture and Design -[..]-a-list-of-distributed-key-value-stores/

Applying experience from CPU design for distributed solution -[..]o/post/26909672264/on-distributed-memory

Distributed systems for fun and profit -

Monitor and design -[..]buted-mission-critical-applications.html

Uber case study -[..]les-their-real-time-market-platform.html

Load balancer design -

Some issues of distributing logic to difference systems -[..]t-f-up-your-microservices-in-production/[..]lised-solution-to-distributed-consensus/

(google search) (amazon search)

Sun Apr 28 00:45:21 HKT 2019 From /weblog/design/examples


ZeroMQ: The Design of Messaging Middleware -[..]&siteSectionName=architecture-and-design

When NOT to use a message queue -

现代IM系统中的消息系统架构 - 架构篇 -

(google search) (amazon search)

Fri Apr 12 00:44:19 HKT 2019 From /weblog/design


Nothing specific, mostly code clean up, refactoring and simplification, the performance boost was a surprise. <- This is a good one -[..]12/07/disruptor-v3-faster-hopefully.html

Is there anything we can do about this when designing algorithms and data-structures? Yes there is a lot we can do. If we perform chunks of work on data that is co-located, and we stride around memory in a predictable fashion, then our algorithms can be many times faster. For example rather than using bucket and chain hash tables, like in the JDK, we can employ hash tables using open-addressing with linear-probing. Rather than using linked-lists or trees with single items in each node, we can store an array of many items in each node. -[..]emory-access-patterns-are-important.html

Skip lists are used instead of b-trees because b-trees don’t scale. -[..]ast-mvcc-inmem-lockfree-codegen-and.html

Beware about the performance issue of static initalization -[..]-cause-problems-with-multi-threading-how

Experiment show why arraylist is better in most cases -

How to design low latency application in java -[..]5/chronicle-and-low-latency-in-java.html[..]ciples-of-high-performance-programs.html[..]principles-of-high-performance-programs/

Suggestion about how to determine number of thread pool -[..]rmine-Web-Applications-Thread-Poll-Size/

Beware the performance penalty of logging -

Keep thing dynamic -[..]ciples-of-high-performance-programs.html[..]st-rule-of-performance-optimisation.html[..]u/~rcs/research/interactive_latency.html[..]aling-data-platforms.html?SSLoginOk=true

Discuss about developing low latency financial application -

Discussion of object pooling -[..]-but-forgotten-trick-object-pooling.html[..]m_performance_part_1_object_pooling.html

Efficiency - the amount of work you need to do.
Performance - how fast you can do that work
Efficiency - governed by your algorithm
Performance - governed by your data structures.[..]e-difference-between-efficiency-and.html

Turning off power save mode on the CPU reduced brought the max latency from 11 msec down to 8 msec.
Guaranteeing threads will always have CPU resources using CPU isolation and thread affinity brought the maximum latency down to 14 microseconds.[..]eduler-jitter-using-cpu-isolation-a.html[..]

About design for performance for webapi -[..]y-decision-as-a-service-design-patterns/

check list -[..]ery-software-development-team-should-ask

Beware if system utilization over 80% -[..]/20/service-latency-and-utilisation.html

scalable-io-events-vs-multithreading-based -[..]lable-io-events-vs-multithreading-based/

How to find out bottleneck -[..]entile-latencies-in-Chronicle-Queue.html

Compiler Performance and LLVM -

(google search) (amazon search)

Wed Apr 10 17:06:39 HKT 2019 From /weblog/java/performance


Improvement from io -> nio, then -> MappedByteBuffer -[..]blog&show=File-IO-in-Java.html&Itemid=29

How to improve performance by tuning the IO -[..]enefits-of-stream-buffering-in-Java.html

(google search) (amazon search)

Tue Apr 09 18:38:55 HKT 2019 From /weblog/software_engineering/testing


Yet other discussion of Stubs, Fakes, and Mock Objects -

While reviewing this article, Marty Andrews pointed out an important insight: there are two ways to use a mock object, either as a testing technique or as a design technique, and the intended use helps shape the available choices.

Someone post some arguement that using mock probably a bad idea , which look like a endless arguement... -[..]xRuiz?entry=mocks_for_concrete_class_can

Alberto Savoia on Testing the Untestable, raise a point that mocking make testing more portable, it probably true, but database setup may be not that difficult to port. -[..]ut-isolation-but-about-responsibilities/[..]ing-the-invasion-of-dots-and-parentheses

Fakes should have their own tests -[..]/testing-on-toilet-fake-your-way-to.html

Again, other post on pros and cons for difference approach -

(google search) (amazon search)

Sat Apr 06 00:15:46 HKT 2019 From /weblog/software_engineering/team

Team work

Building trust for team -[..]nity-of-practice-and-trust-building.html

One nice article about teamwork:

Directing (hi directive + lo supportive, for "enthusiastic beginners")
Supporting (hi directive + hi supportive, for "disillusioned learners")
Coaching (lo directive + hi supportive, for "reluctant contributors")
Delegating (lo directive + lo supportive, for "peak performers")[..]bbthreads/showflat.php?Cat=&Number=64809

Is it a people problem or process problem -[..]01/21/people-problem-or-process-problem/

importance of teamwork -[..]leS.MichaelFeathers.ProgrammingOnYourOwn

5 Dysfunctions of a Team -

A Leaner Start: Reducing Team Setup Times - , I think article "letting-go" is really insightful -[..]007/09/24/onboarding-strategy-letting-go

A good explanation of what is courage, and the result of didn't have courage. It also mention a bit of how to bulit courage within the team, but not much about it -

A potential issue of focus too much on people, rely on few heros -[..]12/people-over-process-misses-point.html

Our agile process requires people to spend the effort to listen and talk to each other, working closely. You have to be a people person to like it. It doesn't suit sociopaths. Accidently hiring a sociopath is going to make XP impossible. Trust me, I know. To me this is XP's fundamental weakness.[..]12/extreme-programmings-fundamental.html

What important is team but not idea -[..]g/2010/01/cultivate-teams-not-ideas.html

A Measure of Your Team’s Health: How You Treat Your “Idiot” -[..]r-teams-health-how-you-treat-your-idiot/[..]ur-teams-health-how-you-treat-your-idiot

How to Create a Great Team Culture (and Why It Matters) -

(google search) (amazon search)

Sat Mar 09 23:33:41 HKT 2019 From /weblog/java/concurrency


(google search) (amazon search)

Sat Mar 09 23:32:04 HKT 2019 From /weblog/java/performance


(google search) (amazon search)

Thu Feb 28 12:47:16 HKT 2019 From /weblog/design/examples


Experience of using AWS Redshift -[..]on-events-a-day-the-shift-to-redshi.html

(google search) (amazon search)

Tue Feb 26 00:02:36 HKT 2019 From /weblog/trip/travelling


蘇丹之旅 -

博茨瓦纳乔贝国家公园之行 -

莫桑比克的魅力 -

遊搜好行:遊在最前 塞舌爾 -[..]/supplement/travel/art/20130322/18202846

The Complete Guide Of Things To See, Do And Eat In Madeira -[..]-of-things-to-see-do-and-eat-in-madeira/

走過500多年 奈及利亞傳統染坑等待復興 -

(google search) (amazon search)

Sat Feb 23 01:24:19 HKT 2019 From /weblog/history


Childhood memories of 1920s Hong Kong -

《 香港老字號:廖同合荳品廠 》 -

《 香港老字號:「慈善遮王」何希記造遮 》 -

Tram -

Inside Kowloon walled city -

1957-8: Andrew Suddaby's photos -

一樓一古:宅在摩星嶺文物屋 -[..]supplement/culture/art/20130527/18272607

Tong Lau / 唐樓, the Hong Kong shophouse -

Some old color photos -

【動畫●橫瀾島牛奶叔】最後的燈塔守護者 28年自給自足最開心 -[..]om/realtime/supplement/20161125/55956449

中環卅間唐樓-鬧市中的迷樣建築群 -中環卅間唐樓-鬧市中的迷樣建築群/

Tokwawan -[..]%96%E7%95%8C%E7%9A%84%E5%85%A8%E9%83%A8/

當銀行計劃書變成獨立宣言-滙豐銀行的建立與香港金融民族主義 -[..]%8D%E6%B0%91%E6%97%8F%E4%B8%BB%E7%BE%A9/

(google search) (amazon search)

Sat Feb 23 01:09:17 HKT 2019 From /weblog/health


(google search) (amazon search)

Thu Feb 21 00:30:42 HKT 2019 From /weblog/learning


It's never too late to reinvent yourself.txt -[..]ing_passionate_users/2005/01/you_20.html

Related interview -[..]/06/16/jill-abramson-commencement-speech[..]sons-commencement-speech-at-wake-forest/

How to improve yourself -[..]w-to-impress-an-interviewer-c210d9d8e84a

1. Connect to Your Emotions
2. Email Prompts and Reminders to Yourself
3. Get an Accountability Partner
4. Start a Mastermind Group[..]ccountable-for-achieving-your-goals.html

Don't set the goal too high -https:/[..]%88%E8%A8%82%E5%BE%97%E5%A4%A0%E4%BD%8E/

vision. A powerful vision has three elements: a significant purpose, a picture of the future, and a clear set of values. Goals speak to our brains, telling us what to do when. Vision speaks to our hearts, pulling us forward through a compelling sense of what can A powerful vision has three elements: a significant purpose, a picture of the future, and a clear set of values. Goals speak to our brains, telling us what to do when. Vision speaks to our hearts, pulling us forward through a compelling sense of what can be. -[..]by-truly-leading-your-life/#54bc6cba7ea0

Setting attainable goals makes us happier, even if we fail -[..]ience/attainable-goals-happiness-9536354

(google search) (amazon search)