RSS feed [root] /



title search:


Thu Feb 13 22:32:16 HKT 2020

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

Mon Feb 17 20:40:19 HKT 2020 From /weblog/unix


Web base vim as tutorials -

History of VIM -[..]f-productivity-vims-20th-anniversary.ars

Guide for editing text object, most already familiar with using 'w' for word editing, this blog discuss more about using 'p' for paragrahy and other related stuff. -[..]7/vim-text-objects-the-definitive-guide/

Seven habits of effective text editing , a lot of nice tip of using vim, like hlsearch , omni-completion

vimdiff tips -[..]cles/2008/04/30/vim-as-a-diff-merge-tool[..]9899-uid-36931-do-showone-type-blog.html

How to regex with line number -

cheat sheet of jumping around source code -[..]inux-HOWTO/C-editing-with-VIM-HOWTO.html

Nice analysis of good programming environment -[..]why-i-switched-from-textmate-to-vim.html

Creating macros in vim - <- introduction to Command-T and FuzzyFinder

Some VIM tips:

Essential Vim editor navigation commands
Vim search and replace – 12 powerful find and replace examples.
How To add bookmarks inside the Vim editor
How To record and play inside the Vim editor
Correct spelling mistakes automatically inside the Vim Editor
Automatic word completion using Ctrl-X
Enable thesaurus option in the Vim editor
Vim autocommand magic. Add custom header to your files automatically.
Convert Vim editor to a beautiful source code browser.
Use the Vim editor as a bash IDE, or C/C++ IDE, or Perl IDE.[..]com/2016/04/19/vim-commands-cheat-sheet/

ctrl+w, ctrl+w , vimdiff switch folder -

tutorial -[..]editor-in-unix-example-tutorial-and.html[..]s/3mfvdg/how_do_i_go_about_learning_vim/

Compilation plugin -

Highlight multiple searches at the same time, each with a different color. -

C/C++ IDE -[..]10/vim-plugin-for-navigating-c-with.html

Evil, putting vi in emacs -

Fixing syntax at solaris, "export TERM=xtermc", ":syntax enable" -

Graph your Vim undo tree in style. -

Introduction to Selecta and Command-T, tool for fuzzy mapping and open files easier -[..]d-the-vimrc-file-be-located-on-windows-7

Open Visual Studio config as XML -!topic/vim_use/HzVM9tjJP08

Snippert library ( e.g. function template ) -[..]3h7lca/which_snippet_library_do_you_use/[..]t_are_your_musthave_configs_and_plugins/[..]mments/2w22gf/edit_google_docs_with_vim/[..]nts/3ijsi2/original_post_a_vimrc_primer/[..]an_autocomplete_plugin_if_yes_which_one/

gUU to turn whole line upper case, and guu to turn whole line lower case -[..]_guu_makes_an_entire_line_lowercase_and/

can use :TOhtml to turn a text file to HTML -

set encoding=utf-8 -[..]how_to_reliably_switch_to_using_utf8_by/

If you like to test the regex for vi, can refer to this -[..]/blog/vim-creator-champions-charityware/

Another blog about using vim as IDE -[..]d_using_spacemacsevil_and_made_this_vim/

(google search) (amazon search)

Mon Feb 17 20:15:43 HKT 2020 From /weblog/languages


memory management -[..]s-switching-from-go-to-rust-a190bbca2b1f

Rust -[..]t-nix-easier-unix-systems-programming-3/

(google search) (amazon search)

Sun Feb 16 21:39:18 HKT 2020 From /weblog/java/performance

option list

-XX:+PerfDisableSharedMem , prevent locking by sharedmem in linux -

How linkedin turn the GC -[..]ughput-and-low-latency-java-applications

Using generational & concurrent GC collector -[..]/04/ibm-jvm-tuning-gencon-gc-policy.html

Full VM option list :, update for Java7 -[..][..]ost-complete-list-of-xx-options-for.html

A simplified list for some frequency use options -[..]rbage-collector-guidelines-and-tips.html

HotSpot JVM garbage collection options cheat sheet -[..]spot-jvm-garbage-collection-options.html[..]va/javase/tech/vmoptions-jsp-140102.html

An example and story about effect of difference VM parameter affecting the performance -

Clear the code cache automatically with -XX:+UseCodeCacheFlushing -[..]time-for-long-running-java-applications/

Discussion about -XX:MinHeapFreeRatio parameter -[..]

The other detailed guide for VM parameters tuning -

Here is a more simple cookbook -

A outdated (1.4) , compehensive but still not really too detailed, overview of various GC tuning -

Some say following VM parameter is good enough
-server -Xmx -XX:+UseParallelGC[..]/page/binublog?entry=java_tuning_for_xml

Some say is useful if you have huge memory

Some say below parameter keep GC in low pause
Some say below parameter are very optimal
-XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:NewSize=1200m -XX:SurvivorRatio=16[..]d.tss?thread_id=41258&ASRC=EM_NNL_347804
Some say those parameter is good

Just in case anyone is curious, the flags enabled by -XX:+AggressiveOpts in JDK 1.6.0_25 are:


Generate dump with OOME - -XX:+HeapDumpOnOutOfMemoryError

GC log sample of -XX:+UseConcMarkSweepGC -XX:PrintFLSStatistics=1 -XX:+PrintGCDetails -

A case study of tuning VM GC parameters -[..]ld-you-trust-the-default-settings-in-jvm

Explanation for few performance related VM parameters -[..]ine-options-jvm-performance-improvement/

Show the exact vm flag that java using -[..]/looking-inside-a-jvm-xxprintflagsfinal/

For G1GC -[..]e-first-garbage-collector-tuning-flags-1[..]otspot-jvm-performance-tuning-guidelines

(google search) (amazon search)

Sun Feb 16 21:37:24 HKT 2020 From /weblog/java/performance


A case showing java is faster than C++ -[..]mgroups#!topic/comp.lang.c++/7aNw3PzPvMI

Case show how to improve GC time spend on a java application -[..]11/java-vm-beware-of-younggen-space.html

A case study of solving thread contention -[..]fighting-thread-contention-in-your-code/[..]-of-java-application-performance-tuning/

Notes about measuring map performance -[..]ronicle-map-and-yahoo-cloud-service.html

High Performance Java - Binary instead of Objects - John Davies -

jemalloc, look like a really nice tool -[..]c-to-get-to-the-bottom-of-a-memory-leak/

story of finding why there is so many GC -[..]horough-jvm-thorough-analysis-ygc-part01

GC thread blocked by system call -

We always need benchmark -[..]2017/06/15/forward-vs-backward-loop.html

Investigation and solutions of performance issue caused by GC log -[..]c-pauses-caused-by-background-io-traffic

Using jemalloc to get to the bottom of a memory leak -[..]c-to-get-to-the-bottom-of-a-memory-leak/

Parallel Collection Processing: Leveraging Batching -

Maybe good to careful about collection initalization -[..]ars-with-a-single-character-code-change/

(google search) (amazon search)

Sun Feb 16 21:20:58 HKT 2020 From /weblog/misc


(google search) (amazon search)

Sat Feb 15 22:01:45 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)

Thu Feb 13 21:53:47 HKT 2020 From /weblog/science


我們現在看到的星星早已死亡了嗎? -[..]%B2%E6%AD%BB%E4%BA%A1%E4%BA%86%E5%97%8E/

相對論、量子力學、黑洞和反物質 -[..]uantum-mechanics-black-hole-anti-matter/[..]t-things-in-the-known-universe/?view=all[..]o-probe-images-that-will-blow-your-mind/[..]sics-allowed-earth-to-exist-195ecc0da9ca[..]ear-older-than-the-universe-71bee462c6be[..]ophysics-space/big-bang-history-15092017

5 questions you were too embarrassed to ask about the expanding Universe -[..]bout-the-expanding-universe-9433c4906a29

Are Space, Time, And Gravity All Just Illusions? -[..]-gravity-all-just-illusions-d1d088df6150[..]-the-big-bang-theory-you-might-not-know/

black hole -[..]c/science-abc-going-inside-a-black-hole/[..]/space/supermassive-black-hole-07122017/[..]s-in-outer-space-that-cant-be-explained/

Really interesting -[..]ence/news-science/why-solar-system-flat/

prehistoric-people-astronomers -[..]/prehistoric-people-astronomers-0432423/

The Scale of the Universe - Interactive -

Is the universe infinite? -[..]er/feature-post/is-the-universe-infinite

(google search) (amazon search)

Tue Feb 11 07:05:49 HKT 2020 From /weblog/java/fundamental


How difference platform implement nanoTime() -[..]12/02/what-is-behind-systemnanotime.html[..]62/is-system-nanotime-completely-useless

Java timezone ID reference -[..]etrive-locale-and-timezone-from-request/[..]m/java-date-time/java-util-timezone.html

setTimeZone affects calls to set(), but doesn’t change the existing Calendar time? So if we wanted to change the time zone we are working with, we have to adjust all the time fields too…but a SimpleDateFormatter still would show it as the current time zone. -[..]1/joda-time-the-future-of-java-datetime/[..]va-time-jsr-310-enhancements-java-9.html

deep dive into measuring time in Java - dihttps:[..]g-time-from-java-to-kernel-and-back.html

CronScheduler -[..]r-for-external-interactions-cb7ce4a4f2cd

(google search) (amazon search)

Wed Feb 05 19:22:00 HKT 2020 From /weblog/science


About PI -[..]i-%E6%98%AF%E6%B0%B8%E6%81%86-%E4%BA%8C/

Interesting maths -[..]-math-principles-to-challenge-your-brain

Napoleon was the Best General Ever, and the Math Proves it. -[..]ever-and-the-math-proves-it-86efed303eeb[..]tal-math-tricks-that-will-blow-your-mind

The mind-bendy weirdness of the number zero, explained -[..]/7/5/17500782/zero-number-math-explained

幾何世界新成員:scutoid -

Pattern of prime -[..]h/prime-numbers-crystal-lattice-17092018

莫比烏斯環 (Möbius strip或Möbius band) -

The most beautiful and important mathematical equations -[..]athematical-equations-beautiful-30112018[..]/the-man-who-invented-modern-probability

(google search) (amazon search)

Tue Jan 28 18:49:05 HKT 2020 From /weblog/health/food


Pros and Cons for vegi -[..]84%E5%BC%8A%E8%88%87%E5%88%A9-%E4%B8%80/

B12 is important -

熟吃損失多少維生素? -[..]0%91%E7%B6%AD%E7%94%9F%E7%B4%A0%EF%BC%9F

中國城市人的香椿情結 -

西蘭花如何幫助身體應對空氣污染 -

13 Easy Ways to Eat More Greens -

Recipes that use veggies from garden -[..]s-and-veggies-from-your-garden/?view=all

lutein-veggies-cognitive-protection -[..]n-veggies-cognitive-protection-01082018/

“If we wait to the point where we are beyond a shadow of a doubt, with double-blind studies translated to regulations, we’re going to be waiting decades,” Sonnenburg told me. “But right now, all the arrows are pointing in the same direction, toward fiber.” -[..]-western-diet-has-derailed-our-evolution

Becoming a Vegetarian -

“Without question, veganism can cause B12 and iron deficiencies, and without question they affect your intelligence,” he says. -[..]your-intelligence?ocid=global_future_rss

(google search) (amazon search)

Tue Jan 28 18:48:00 HKT 2020 From /weblog/java/concurrency


Another nice tutorial set of concurrency framework -

Java concurrency, Building and testing concurrent applications for the Java platform -[..]/training/kp/j-kp-concurrency/index.html

JVM concurrency: Java and Scala concurrency basics -[..]/java/library/j-jvmc1/index.html?ca=drs-[..]reading-interview-questions-answers.html

5 things you didn't know about ... Multithreaded Java programming -

266Threading Questions in Job Interviews (2/2) -

Parallel Collection Processing: Without Parallel Streams -

(google search) (amazon search)

Thu Jan 23 21:22:05 HKT 2020 From /weblog/science


(google search) (amazon search)

Thu Jan 23 07:59:58 HKT 2020 From /weblog/ai


(google search) (amazon search)

Wed Jan 22 20:38:44 HKT 2020 From /weblog/business


P2P filesharing can actually helping music sell, according to this article, if there is large amount of people download, this is a very good marketing tools -

After you spend so much effort of promoting your product, may be you miss promoting your product to YOU?? And there are millions of YOU all over the earth?

promotion, mix with free service and love -

Name is important -[..]4/pick-the-right-name-for-your-projects/

Sometime, it would be a nice promotion of comment your product in negative way, some how -

The official definition is that marketing creates demand, while sales fulfils demand, how Joel demo software -

First to release may be worst than the 2nd one -[..]window-as-part-of-your-product-strategy/ Timing is VERY important

Guessing if we have short and frequency release, we don't need to save any features. However, in case if our release cycle still long and big, this may be a good idea. -[..]2009/11/10/save-some-features-for-later/

Learning US. style of marketing -

Analysis why ice-bucket-challenge can be so popular -[..]/26/ice-bucket-challenge-viral-marketing

(google search) (amazon search)

Tue Jan 21 21:08:00 HKT 2020 From /weblog/business

starting business

Starting business at rentaroder, do you think this true o false ?[..]/2011/10/24/my-life-freelancer/#more-750

Speed of deliver rule -[..]up-suicide-%E2%80%93-rewriting-the-code/

My boss say that it brilliant, see if it good -

The other reference -

Joey recommendation -

And how to set price -[..]rd/Weblog/demand_curve_for_java_software

Successful case of home made game -

"You want to do your best, or you want to do the best of this world?" -

The cost and risk of starting business, may be as high as you thought - ; meanwhile, as an high paid employee may not that nice -

Fire startup staff??? -[..]tartup-lessons-i-learnt-at-protoinday-1/

How to parening software product and team?

Ideas are nice, but technical is still the key -[..]linator-and-not-death-by-popularity.html

Comment mistakes -

Haha, very true: 有一個重點我想說, 必須要有人願意付錢給你做你喜歡做的事情 -[..]dex.php?op=ViewArticle&articleId=2862620

Few examples of teen starting their own business -[..]ive-learned-from-founding-4-technology-2[..]ive-learned-from-founding-4-technology-b[..]y/feeding-a-startup-your-next-500-ideas/

Build something that do something you don't want to do -[..]2/paul-graham-how-to-get-startup-ideas-c

Confidence -[..]ence-is-the-pass-badge-for-entrepreneurs[..]efore-starting-their-very-first-business

Suggestion about starting business -[..]ting-meaningful-work/?fromcat=all#!sxLsH[..]e-learned-about-creating-meaningful-work[..]t-fab-ceo-learned-from-operating-company[..]014/01/21/success_entrepreneur_qualities[..]o-start-talking-about-what-you-want.html

Story of starting business in Japan -

*TA 就在身邊的好處,是可以快速 Iterate,更快找到PMF
*需要教育市場的新產品,要善用YouTube 的力量
*向下相容很重要 (美國小孩間本就有編織友誼手鍊互送的習俗)
*正向力量很重要 (與其打電動,父母更希望孩子動手)

How stock option work -

A Complete Guide to Startup Advisors and Mentors -[..]tartup-advisors-and-mentors-5d5704dc7e84

8 Brutal Questions to Ask Before Quitting Your Job to Become an Entrepreneur -[..]b-to-become-an-entrepreneur-396936cdfbe3

Startups go from Search to Build to Scale -[..]ups-stumble-at-40-employees-66312ac70fba

About how to validate and build idea -[..]ounders-need-to-be-aware-of-3a5f8c3acb76

burn-rate-101 -[..]rtups-a-15-min-introduction-6755936efc88[..]ing-i-learned-from-startups-5c27146ef0e1[..]torytelling-in-your-startup-d8b57db375fd

entrepreneurship is a calling -[..]nnovators-and-entrepreneurs-a430602ff8ea

Why I chose customer-funded growth over taking VC money -[..]growth-over-taking-vc-money-f1eba37e44a4[..]ings-to-do-as-a-startup-ceo-a22a0caec41f

他如何靠 15000 元卡債,建立市值 7 億的咖啡品牌?藍瓶咖啡的故事 -[..]7%9A%84%E6%95%85%E4%BA%8B-061200433.html[..]ld-a-billion-dollar-company-b0c31d7db0e7[..]article/18245-5-suggestions-for-startups[..]-from-experts-entrepreneurs-f6862778bee1

(google search) (amazon search)

Tue Jan 21 08:00:48 HKT 2020 From /weblog/software_engineering/testing


If you write the test after you've written the code, it's much more likely that you'll write the tests that will pass what you've written.

That's just how our brains work.

If you determine the criteria for whether a decision is good after you've already made the decision, it's much more likely that you'll create criteria that justifies the decision that was just made.

That's just how our brains work.

Determine how to assess whether something is good before you implement it and/or before you make a decision. Otherwise, you will tend to be emotionally attached to what you just did, what you just decided.

My Top 5 ways to reproduce a "Hard to Reproduce" Bug! -[..]/my-top-5-ways-to-reproduce-hard-to.html

Common TDD issue and suggested solution -[..]utomated-test-problems-address-root.html[..]om/biblio/StudiesOfTestDrivenDevelopment[..]ptions-with-test-driven-development.html[..]014/05/told-you-that-testing-is-a-waste/[..]-best-thing-has-happened-software-design[..]evelopment-is-dumb-fight-me-a38b3033280c

Does this mean I think you should skip TDD for programs you’re going to run once and then throw them away?

Well, I’m closer to OK with that than I am to the other cases here, but I often spend enough time editing and rerunning to make me think there was probably a central bit of the program that would have benefited from some TDD.

(google search) (amazon search)

Thu Jan 16 08:13:43 HKT 2020 From /weblog/software_engineering/team

pair programming

How work alone might be better than pairing -[..]/03/pair-programming-considered-harmful/

When to pair, when not to -[..]ramming-the-disadvantages-of-100-pairing

This is an excellent arguement -

It's only worth pairing on complex code, rote code yields no advantage.

I think there is a point to this - pairing is about improving design and minimizing mistakes. Rote code that's simple to write yields little opportunities for pairing to make a difference.

Except this: writing boring rote code is a smell. If I'm writing boring repetitive code it's usually a sign that I've missed an important abstraction, one that will drastically reduce the amount of rote code to write. Pairing will help you find that abstraction.

Common pitfall of pairing

Look like a good way to start pair programming[..]02/13/pairing-pattern-ping-pong-pairing/

Discussing pair programming -

Experience sharing of working with expert - here is the disclaimer of the blog

Why pairing -[..]n/opinion-on-the-technion/#why_pair_wise

Pair Programming smells
- Unequal access
- Keyboard domination
- Pair marriage
- Worker/Rester
- Second Computer
- "Everyone does their own work"
- 90% of work 90% done
- People who can't stand to program together
- Debates lasting more than 10 minutes without producing new code
Pair-programming smalls -[..]com/2009/02/pair-programming-smells.html[..]ir-programming-disadvantages-of-100.html[..]012/08/08/in-praise-of-pair-programming/

Programmer Pairing with a Tester -

Showing how pair programming is better than traditional code review -[..]ment/design/code-reviews-with-five-whys/

(google search) (amazon search)

Wed Jan 15 19:29:13 HKT 2020 From /weblog/ai


(google search) (amazon search)

Sat Jan 11 20:17:16 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 -

(google search) (amazon search)

Fri Jan 10 20:22:46 HKT 2020 From /weblog/java/concurrency


Even though

private List synchList = Collections.synchronizedList(new LinkedList());

is thread safe, serialize sync List is NOT thread safe for sure. The story is, if you only synchronized the collection, and if we try to get the iterator in concurrent access environment, it will throws currencymodificationexception .

For collection is small, may be making defensive copy is good. Otherwise, in java5, there is concurrency collection.


Map operation, include use of FutureTask and putIfAbsent() method from ConcurrentMap. -

Other then lterate through the elements, adding and removing elements can also be problem, this article document a few good cases about that -[..]en-a-synchronized-class-isnt-threadsafe/

Samples of using Queue.drainTo() -[..]rforming-fixed-amounts-of-work-with.html

Overview of blockingqueue -[..]/java-util-concurrent/blockingqueue.html

Simple benchmark -[..]jvm-performance-part-iii-concurrent.html

Multi-thread behaviour -[..]hread-safety-issues-with-vector-and.html

java.util.concurrent.ConcurrentHashMap VS openhft.collections.SharedHashMap -[..]autilconcurrentconcurrenthashmap-vs.html

Why are there so many concurrent queues implementations in Java? -

(google search) (amazon search)