RSS feed [root] /



title search:


Sat Nov 21 22:02:03 HKT 2020

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

Wed Dec 02 21:08:20 HKT 2020 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) -

Psychological Safety -[..]tally-healthy-environment-for-developers[..]chological-safety-heres-how-to-create-it

‘As long as everyone got a chance to talk, the team did well. But if only one person or a small group spoke all the time, the collective intelligence declined.’ -[..]its-quest-to-build-the-perfect-team.html

(google search) (amazon search)

Wed Jun 03 15:55:56 HKT 2020 From /weblog/java/discussion


How to write a (toy) JVM -

(google search) (amazon search)

Wed Jun 03 08:20:56 HKT 2020 From /weblog/learning


How to train focus -

Once you build self-control through a chosen activity, you do a better job exerting self-control in other situations. -[..]r-thanks-to-the-science-of-self-control/

17 yrs don't speak... -

5 hours rule, every day spend an hour to read/reflect/experience, 5 times a week -[..]and-oprah-all-use-the-5-hour-rule-2017-7[..]-all-embrace-the-5-hour-rule-8836f554da1

Why focusing is important -[..]-practice-training-neuroscience-research

How To Dramatically Sharpen Your Attention And Focus =[..]en-your-attention-and-focus-416444802997

How to due with information overload -[..]-hurts-us-and-how-to-escape-4a2924800e16

接受專家高質量針對性的回饋(後期可以透過心智模型自我回饋) -[..]ecrets-from-the-new-science-of-expertise

How to concentrate -[..]-no-such-thing-as-motivation-e02edd7de30[..]-focus-and-get-more-meaningful-work-done

Ignoring distractions or temptation is harder when you’re tired, stressed, or trying to remember something -[..]ognitive-control-ignoring-cues-925346345

唐鳳愛用番茄鐘工作法是什麼?教你提高專注力、重新奪回生產力 -[..]icle/19127-how-to-use-pomodoro-technique[..]d/ss/slideshow-top-concentration-killers

(google search) (amazon search)

Tue Jun 02 17:50:40 HKT 2020 From /weblog/java/fundamental


Some overview articles -[..]/2011/04/garbage-collection-in-java.html[..]10/01/garbage-collection-references.html[..]work/java/javase/gc-tuning-6-140523.html[..]derstand-classic-java-garbage-collection

Interview with Azul, about the pauseless GC -

A story of how to tune GC -

NewRatio ( XX:MaxNewSize ) is important, but usually ignored -[..]ector/entry/the_second_most_important_gc

Java memory configuration and monitoring -[..]ry-configuration-and-monitoring-3rd-act/

How Garbage Collection differs in the three big JVMs -[..]ollection-differs-in-the-three-big-jvms/

Garbage Collection Bootcamp 1.0 -[..]1/03/27/garbage-collection-bootcamp-1-0/[..]ollection-interview-question-answer.html

How CMS work -[..]thecollector/entry/hey_joe_phases_of_cms

Compare between difference VM -[..]IsTheFastestGarbageCollectorInJava8.html

GC handbook -

Check what GC you are using -[..]16/04/determining-garbage-collector.html

About G1 Java Garbage Collector -[..]G1-Java-Garbage-Collector.html&Itemid=29

Tools to visualize GC -

Visualizing difference algorithm -[..]sualizing-garbage-collection-algorithms/

safepoints -

Few new GCs for huge heap -

Objects are allocated with extra space for an indirection pointer. When the Java threads access the object, they first read the indirection pointer to see whether the object has moved. When the garbage collector moves an object, it updates the indirection pointer to point to the new location. New objects are allocated with an indirection pointer that points to themselves. Only when an object is copied during GC will the indirection pointer point to somewhere else. -[..]agazine/understanding-garbage-collectors

JVM Pauses - It's more than GC -

(google search) (amazon search)

Tue Jun 02 10:14:53 HKT 2020 From /weblog/java/fundamental


Detailed decision of arraylist and linkedlist, consist of a lot benchmark results, take a look if interested:

One bug from java HashMap explaining it can be difficult to achieve fail-fast -

Performance difference of difference collection -[..]0/12/what-is-faster-jvm-performance.html[..]/2011/07/14/java-collection-performance/

A treelist implementation -

Implement LRU cache using LinkedHashMap -[..]11/06/java-secret-lru-cache-in-java.html

Problem of using soft-reference for automate cache clean up -[..]

if it claims that an element is contained in it, this might be in error, but if it claims that an element is not contained in it, then this is definitely true. -

Comment of various collections library -

List of FAQ of Java collections -[..]lections-interview-questions-and-answers

Java Collections – Performance (Time Complexity) -[..]1/java-collections-performance-time.html

Performance improvement for HashMap for Java8 -[..]hashmap-performance-improvements-in.html

Introduction to GS collection -[..]s/gs-collections-examples-tutorial-part1[..]s/gs-collections-examples-tutorial-part2

removeEldestEntry, interesting function of linkedhashmap -[..]/prevent-your-caches-from-exploding.html

How new version of java help immutable style -

(google search) (amazon search)

Tue Jun 02 10:14:05 HKT 2020 From /weblog/java/libraries


Efficient Java Matrix Library (EJML) is a linear algebra library for manipulating real/complex/dense/sparse matrices. Its design goals are; 1) to be as computationally and memory efficient as possible for both small and large matrices, and 2) to be accessible to both novices and experts. These goals are accomplished by dynamically selecting the best algorithms to use at runtime, clean API, and multiple interfaces. EJML is free, written in 100% Java and has been released under an Apache v2.0 license. -

(google search) (amazon search)

Tue Jun 02 08:58:22 HKT 2020 From /weblog/software_engineering/team


Cool diagram showing what slow us down -[..]m/blog/2012/01/faster-faster-faster.html

Usually, not a good idea to grow a team too big too soon -

Taken from Interview of Charles Simonyi ( ) , both the interview and the discussion are nice to read: , However, I will think if team work effective, 1+1 > 2

What we should really care about is effectiveness and not efficiency. and effectiveness is often inefficient -[..]our-obsession-with-efficiency-dan-north/

Handling emergencies or crisis situations
Handling work stress
Solving problems creatively
Dealing with uncertain and unpredictable work situations
Learning work tasks, technologies, and procedures
Demonstrating interpersonal adaptability
Demonstrating cultural adaptability
Demonstrating physical-oriented adaptability
-[..]2010/12/8-behavioural-dimensions-of.html <- a simple way to check what make team move faster, and things that slow team down.[..]icles/speed-in-software-development.html

The emergency team, in our understanding, was supposed to work as a point of entry for new developers, so they could know the codebase better. However, we didn’t get into account that newcomers needed to check on some things with the “old” developers. That hindered the work, and we eventually switched back to ~1 month rotation principle. -[..]/how-we-handle-bug-fixes-and-rework.html

Your team’s strength is not a function of the talent of individual members. It’s a function of their collaboration, tenacity, and mutual respect. -[..]-best-decision-we-ever-made-4c0a99728fde

(google search) (amazon search)

Tue Jun 02 08:56:24 HKT 2020 From /weblog/business


溝通的最高境界,如何像律師一樣爭論 -

Stick to one theme--one number--per slide. Your audience will thank you. -[..]ke-their-slides-instantly-memorable.html

The Tricks to Make Yourself Effortlessly Charming -[..]s-to-make-yourself-effortlessly-charming

(google search) (amazon search)

Tue Jun 02 08:55:15 HKT 2020 From /weblog/business


(google search) (amazon search)

Tue Jun 02 08:32:20 HKT 2020 From /weblog/java/features


JDK 14 Foreign-Memory Access API Overview -[..]-memory-access-api-overview-70951fe221c9

Pattern Matching for instanceof in Java 14 -[..]ttern-matching-for-instanceof-in-java-14

(google search) (amazon search)

Tue Jun 02 08:30:26 HKT 2020 From /weblog/java/features


The infamous sun.misc.Unsafe explained: object creation, native memory allocation, native concurrency -

Features that help for writing low latency application -[..]1/sunmiscunsafe-and-off-heap-memory.html

Tips of using unsafe -[..]

An overview of it -[..]A-Post-Apocalyptic-sun.misc.Unsafe-World[..]ine/the-unsafe-class-unsafe-at-any-speed

(google search) (amazon search)

Tue Jun 02 08:28:50 HKT 2020 From /weblog/java/features


Watch service, watch if directory changed -

Tips of using bytebuffer -[..]2/14/the-java-bytebuffer-a-crash-course/

path : ..\.\Java.txt
absolute path : C:\Users\WINDOWS 8\workspace\Demo\..\.\Java.txt
canonical path : C:\Users\WINDOWS 8\workspace\Java.txt

Read more:[..]getcanonicalpath-java.html#ixzz3A8Zya6YG

Jump to a position of a file, inputstream.skip() is faster than reader.skip(), and reader.skip() is faster than randomAccessFile.

Java & Files: An Introduction -

(google search) (amazon search)

Tue Jun 02 08:23:00 HKT 2020 From /weblog/design


Tired with duplicating Try-Catch for resource acquisition? Can try to create proxy method -[..]clarative-synchronization-with-java.html

Discussion of naming of if block -

Factors for choosing a strategic technology stack, runtime performance is not a factor for him, probably good idea -[..]1/04/factors-for-choosing-strategic.html

Don't think , stay focus -

Using class name as variable name is a bad thing? I doubt about it, but interesting idea -

The problem of using generic name -

Beware of where memory allocated, sometime there is no off side for lazy initalization -[..]ou-dare-to-change-hashmap-implementation

Some suggestion of how to code in order to prevent unreproducible bugs -[..]4/02/minimizing-unreproducible-bugs.html

More careful to check null -[..]et-paranoid-java-programming-techniques/

The fewer conditions you test for, the better your code “tastes”. -[..]ding-requirement-99749f37684a#.1glkhe7np

Think twice before running a loop -

Example of how to remove mutation status -

The Best Algorithm No One Knows About, linear randomization -[..]0/the-best-algorithm-no-one-knows-about/

Small change can make big difference -[..]ars-with-a-single-character-code-change/

Eager is Easy, Lazy is Labyrinthine -[..]s-easy-lazy-is-labyrinthine-b12605f13048

(google search) (amazon search)

Mon Jun 01 21:39:18 HKT 2020 From /weblog/photographic/tutorial


About marco photograhy -[..]7237/depth-of-field-in-macro-photography[..]018/08/22/Macro-photography-in-the-field

動 態 攝 影 分 享 -[..]ts/gymnastics-fundraiser-portfolio-shoot

世盃攝影師落場 三機三鏡是基本 -[..]om/realtime/all/latest/20140624/52618252

Street photographic - , 呈圓狀, 二等分, 重覆式, 同形狀

What is the real meaning of Aperture in zoom len -

How to take building photo look proper vertically -

How to take a good photo -

Think about composition rule -[..]or-beautiful-light-painting-photographs/

Using shifted len to create landscape photo -[..]-can-teach-you-about-street-photography/

Tutorial about using DSLR to take good movie -

進階對焦技巧 – 快門對焦分開處理 -[..]%A6%E5%88%86%E9%96%8B%E8%99%95%E7%90%86/[..]active-photography-skill-tree-beginners/

Zone system -

How to use flash in studio -

Tips of taking photo for wildlife -[..]ecipes-to-take-note-of-wildlife-shooting

用小電筒照出静物「封面相」 -

How to find your vision? practice, practice, practice -[..]3/how-to-find-your-vision-in-photography

How to show dimension -[..]the-construction-of-space-in-photography

How to take food photo -

How to tone color -[..]gh-ideas-learn-to-tone-and-color-control

想拍好出照片,不懂色彩怎麼行! -[..]re-do-not-understand-the-color-how-to-do

Common shutter speed -[..]professional-photographers-shutter-speed

想拍漂亮的散景靜物嗎?6步驟DIY一個超絢麗散景牆, with 鋁箔或銀色包裝紙 -[..]steps-to-a-super-gorgeous-diy-bokeh-wall

3D photographic technique -

相機帶「拍攝術」 -

【不用 PS 不用水氹】利用電話屏幕,拍攝類似「天空之鏡」效果照片 -

Effect of different focal length -[..]t-shot-for-a-portrait-four-shot-pro-test

PHOTOGRAPHY COMPOSITION: THE DEFINITIVE GUIDE -[..]hotography-composition-definitive-guide/


一個好背景,能決定拍攝者的功力 -[..]und-to-determine-the-photographers-skill

在拍極簡攝影之前,你得先了解負空間 -[..]ou-have-to-understand-the-negative-space

簡單圖解讓您立刻學會拍螢火蟲 -[..]-you-learn-to-shoot-fireflies-right-away

長鏡用家必學!高速鎖定目標有秘訣 -[..]y/how-to-get-started-with-birding-05232/

提升攝影水平的44個小建議 -[..]sts/10251-44-tips-for-lifting-the-camera

How to photograph minimalist landscapes? -[..]/how-to-photograph-minimalist-landscapes

告別手震!6個手持穩定相機的方式,你都學會了?? -[..]our-hands-6-ways-to-hold-a-stable-camera

(google search) (amazon search)

Thu May 28 21:44:28 HKT 2020 From /weblog/misc


AWS services explained in one line each ( -

(google search) (amazon search)

Mon May 25 23:29:39 HKT 2020 From /weblog/history


羽化成蝶的寄生蟲,「臺灣山林王」的一頁傳奇 -

(google search) (amazon search)

Sat May 23 12:22:23 HKT 2020 From /weblog/design


Refactoring to Patterns Catalog -

Article talk about the book:

Catagories smell into "smell in class" and "smell between class" -

Known but good to remind[..]10/01/6-steps-to-master-refactoring.html

An experience sharing -[..]m/2011/05/refactor-hudson-god-class.html[..]treme-Refactoring-with-Brian-Button.aspx

Refactoring should not introduce bug... -[..]01/so-why-are-you-refactoring-again.html

A way to have formal refactoring, through Feature Clustering, Rapid Scratch Refactoring and Twisting Classes -[..]rom-michael-feathers-brutal-refactoring/

Not all code change is refactoring - , and

Some common issues about refactoring code in a team -[..]/2008/01/28/dont-be-a-refactoring-bigot/[..]01/dangers-of-premature-refactoring.html , beware taking the balance -[..]ith-beautiful-code-the-refactor-syndrome

Refactory if needed -

Refactoring, when start, when stop? -

Refactoring metric -[..]rics-based-refactoring-for-cleaner-code/

Getting rid of util class
1) If the family of methods uses different parameters, depending on optional input or representations of the same input, then consider transforming the Helper via a fluent interface using the Builder pattern: from a collection of static methods like Helper.calculate(x), calculate(x, y), calculate(x, z), calculate(y, z) we could easily get to something like newBuilder().with(x).with(y).calculate(). The helper class would then offer behaviours, reduce its list of business methods and provide more flexibility for future extensions. Callers would then use it as internal field for reuse or instantiate it where needed. The helper class (as we knew it) disappeared.
2) If the helper class provides methods which are actually actions for different inputs (but, at this point, for the same domain), consider applying the Command pattern: the caller will actually create the required command (which will handle the necessary input and offer a behaviour) and an invoker will execute it within a certain context. You may get a command implementation for each static method and your code would move from an Helper.calculate(x, y), calculate(z) to something like invoker.calculate(new Action(x, y)). Bye bye helper class.
3) If the helper class provides methods for the same input but different logics, consider applying the Strategy pattern: each static method may easily become a strategy implementation, vanishing the need of its original helper class (replaced by a context component then).
4) If the given set of static methods concerns a certain class hierarchy or a defined collection of components, then consider applying the Visitor pattern: you may get several visitor implementations providing different visit methods which would probably replace partially or entirely the previously existing static methods.
5) If none of the above cases met your criteria, then apply the three most important indicators: your experience, your competences in the given project and common sense.[..]-to-get-rid-of-helper-and-utils-classes/

Converting forloop to streaming -

Refactoring JavaScript from Sync to Async in Safe Baby-Steps -

code-refactoring-dos-donts -

Let clean code guide you. Then let it go. -

(google search) (amazon search)

Mon May 18 11:41:19 HKT 2020 From /weblog/unix


Advisory Locking and Mandatory Locking -

Basic info of inode -

Explanation of /proc filesystem -[..]anual/ref-guide/s1-proc-directories.html

Linux file system structure -

File system for archive files -

BeOS file system, other than discuss about BeOS FS, also discussing about evolution of design of file system -[..]rce/news/2010/06/the-beos-filesystem.ars[..]03/past-present-future-file-systems.ars/

ZFS -[..]derstanding-zfs-storage-and-performance/

The file size of command "df" return is compressed data, raw disk usage
If we want compress amount, we need to get the compressratio using /usr/sbin/zfs
We can get more system detail via perl package Sun::Solaris::Kstat , we can google "" as an example

Using ZFS as version control -

(google search) (amazon search)

Sun May 17 01:10:13 HKT 2020 From /weblog/design/examples


(google search) (amazon search)

Sat May 16 23:34:15 HKT 2020 From /weblog/software_engineering/team

work from home

work from home guideline from sun -[..]y=designing_from_anywhere_best_practices

Comment about working as independence consultant, a good reading that discuss some issue at HK or China limited this area of jobs -

10+ productivity tips when working from home, in summary, treat is as office -[..]productivity-tips-when-working-from-home[..]work-from-home-do-it-better-f33dd0e150d1

I’ve Worked From Home for 22 Years. Here’s What I’ve Learned. -[..]years-heres-what-ive-learned-11585354640

(google search) (amazon search)

Sat May 16 23:18:14 HKT 2020 From /weblog/business


Using game as training - , and drawing for communication -

No control, but empower -[..]01/some-thoughts-on-managing-people.html

10 rules of success, not really very insighful ideas but still nice to take a look:

Another 10 tips for product manager -

An interesting example of how people gaming the reward system -

Interview of Jeff Bezos and learn about his management style -

Dos and Don'ts for line manager -

8 elements of dysfunctional management -[..]lements-of-dysfunctional-management.html

Talk verse Action:
All Talk and No Action -[..]ectives-go-wrong-all-talk-and-no-action/
All Action and No Talk -[..]ectives-go-wrong-all-action-and-no-talk/
A suggestion of taking the balance -

Discussion about issues of managing remote teams -

Team building with the way of "pointy haired boss" ?? -

Promote the problem maker to make them better?? Is that work? - May be it is true that problem maker are innovator, give them more work and reward can change their negative performance to more than expected positive performance.

The most consistent and intense complaint from team members was that their team leaders were unwilling to confront and resolve problems associated with poor performance by individual team members.

Manage to learn -[..]dd-80e9-0000779fd18c.html?nclick_check=1

Suggestion about how to delegate to other, spend time to explain to vision -[..]E6%88%96%E8%80%85%E5%B4%A9%E6%BD%B0.html

Allocate free time to employee is good for company -[..]12/08/today-is-goof-off-at-work-day.html

What management should be -[..]-people-can-you-manage-as-a-manager.html

1. 清楚意識到您的創新意圖
2. 為彈性的工作時間設計一個架構
4. 測量什麼是有意義的
5. 給予「無實質價值」的報酬
6. 象徵化
7. 不是標準化地複製他人的創新行為[..]6-ways-to-create-a-culture-of-innovation

1. 在公司裡跟別人吐露的心事越少,對你越好。你以為是無傷大雅的閑聊,其實有可能會造成嚴重傷害。把你的猜測和擔憂都埋在心裡吧。

2. 務必管理好和下屬的關系。花時間和公司裡的較低層員工在一起,盡量對他們友好。對電梯操作員禮貌問候,對郵遞員表示感謝,對助理說句友善的話,這些都會得到讚賞。打造名譽要從基層做起。同樣的,碰到不爽的事情,要自己消化情緒,不要在別人面前發泄。

3. 做領導是一份全職工作,職責的時鐘永不停止。每個微小的跡象都會被解讀,你的不耐煩、失望或不安全感都會被那些解讀你的人放大。不應做出隨意、毫無準備的坦白,信息必須經過深思熟慮才能發出。要特別小心書面的東西,尤其是電子郵件──它們永遠都不會消失。

4. 保持聆聽並索取建議。每周至少在公司餐廳吃一次午飯,或者時不時在咖啡機旁逗留,聽聽其他人都在聊些什麼。如果有人想跟你說話,那就沒有理由不聽。如果有人批評,即使你不讚同也要花時間仔細回應。

5. 你覺得很風趣的俏皮話通常並不風趣。你的幽默感很容易被解讀為自傲和笨拙。如果你仍然以為講笑話或引用某個幽默故事對陳述觀點很重要,那麼請先跟你的配偶或信任的朋友演練一遍。幽默是有風險的。千萬不要拿嚴肅的事情開玩笑。

6. 很重要的一點是,保証重要事務的重要性。應該經常解釋你的戰略,可以換個措辭,但要反復強調。

7. 絕不要抱怨和解釋,沒有人會聽。出了差錯就承擔責任。不要把錯誤怪到前幾屆管理層、天氣、運氣不好或競爭對手身上。但也不要露出防御姿態。向前看──除非上級要求你辭職。

8. 信任你的專業顧問,接受他們的專業意見。不要對市場做過多猜測。沒有所謂的完美數據。做出決策,往前走。

9. 謹慎使用“平均”這個詞──平均深度為6英寸河也可能淹死人。欣然接受“平均”,只會獲得虛假的安全感。假設最糟糕的情況會發生,因為通常就是如此。

10. 最後這條是陳詞濫調,但卻是至理真言:絕不要做或說你不希望在報紙頭條看到的事情。和媒體打交道時,不要回答假設性的問題,謹記麥克風永遠不會真正關閉,絕不要同意“私下”談。對一場危機唯一值得做的公開回應是誠實。[..]0001424052702303519404579353060931625306

給新手高管的10條建議 -[..]/causes-and-solutions-for-bystander.html

以競爭激發員工潛力有其道理,但就我過往所見,鼓催互鬥文化往往淪為非實力較量,最後變成內部互搞小動作放毒箭,對公司產生最嚴重的破壞 - 內耗。 -[..]%84%EF%BC%9F%EF%BC%8F%E5%BE%90%E7%B7%A3/

Good developer cannot be good manager? -

Manager guide in google -

Every person is a vector — add them all up, and you know how much progress your company is going to make. -[..]me-about-growing-a-business-c2c173f5bff3

The Seven Habits of One Highly Effective Manager of Managers: Things I Learned from Charity Majors -

SuperCell 的组织结构 -

(google search) (amazon search)

Sat May 16 23:10:40 HKT 2020 From /weblog/web/script


Prototype reference -

Discussion of javascript with a lot of pointers -

New version of Javascript -

15 javascript you cannot live without -[..]vascript-snippets-you-cant-live-without/

A tutorial -

Pointers of a lot of libraries -[..]/my-library-of-javascript-libraries.html

The 2020 Web Developer Roadmap -[..]-2020-web-developer-roadmap-76503ddfb327

(google search) (amazon search)

Wed May 13 18:33:01 HKT 2020 From /weblog/health/food


At least, we should not take too much per meal -

Get the Protein You Need -[..]y-eating-20/slideshow-how-to-get-protein

(google search) (amazon search)