RSS feed [root] /design /weblog




login:

password:

title search:




 


Mon Jan 16 22:20:20 HKT 2012

design



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

Thu Jan 26 20:48:16 HKT 2012 From /weblog/design/concurrency

thread


Intel Guide for Developing Multithreaded Applications - http://software.intel.com[..]or-developing-multithreaded-applications

Difference ways to stop a thread - http://www.ddj.com[..]ept_url=/hpc-high-performance-computing/

Interesting, I am not sure if I agree, but chrome ( which use fork ) are really cool in performance:
There’s another problem with Unix programming in Ruby that I’ll just touch on briefly: Java people and Windows people. They’re going to tell you that fork(2) is bad because they don’t have it on their platform, or it sucks on their platform, or whatever, but it’s cool, you know, because they have native threads, and threads are like, way better anyways.

Fuck that.

Don’t ever let anyone tell you that fork(2) is bad. Thirty years from now, there will still be a fork(2) and a pipe(2) and a exec(2) and smart people will still be using them to solve hard problems reliably and predictably, just like they were thirty years ago.

MRI Ruby people need to accept, like Python (you have seen multiprocessing, yes?), that Unix processes are one of two techniques for achieving reliable concurrency and parallelism in server applications. Threads are out. You can use processes, or async/events, or both processes and async/events, but definitely not threads. Threads are out.
http://tomayko.com/writings/unicorn-is-unix

1x1 win M*N - http://binkley.blogspot.com/2012/01/1-1-beats-n-m.html

(google search) (amazon search)


Mon Jan 16 22:20:20 HKT 2012 From /weblog/design

null


Use present and absent rather than NULL - http://binkley.blogspot.com/2012/01/better-than-null.html

Propose of enhancement, null handelers and null reference - http://shemnon.com[..]01/null-handelers-and-null-refere-1.html

How null breaks polymorphism - http://eureka3d.com[..]s-polymorphism-or-the-problem-with-null/ http://eureka3d.com[..]orphism-or-the-problem-with-null-part-2/

Discussion about forbid NULL as parameter and return - http://javablog.co.uk[..]5/07/null-parameters-and-returning-null/

(google search) (amazon search)


Wed Jan 11 00:00:51 HKT 2012 From /weblog/design

refactoring


http://c2.com/cgi/wiki?RefactoringLanguage

Refactoring to Patterns Catalog - http://www.industriallogic.com/xp/refactoring/catalog.html

Article talk about the book: http://www.oreillynet.com/ruby/blog/2006/03/transformation.html

Catagories smell into "smell in class" and "smell between class" - http://www.codinghorror.com/blog/archives/000589.html

Known but good to remind http://www.thecodejunkie.com[..]10/01/6-steps-to-master-refactoring.html

An experience sharing - http://www.javacodegeeks.com[..]m/2011/05/refactor-hudson-god-class.html http://www.peterprovost.org[..]treme-Refactoring-with-Brian-Button.aspx

Refactoring should not introduce bug... - http://jchyip.blogspot.com[..]01/so-why-are-you-refactoring-again.html

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

Not all code change is refactoring - http://parlezuml.com/blog/?postid=850 , and

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

Refactory if needed - http://dreamhead.blogbus.com/logs/24874404.html

Refactoring, when start, when stop? - http://martinfowler.com/bliki/OpportunisticRefactoring.html

Refactoring metric - http://www.grahambrooks.com[..]rics-based-refactoring-for-cleaner-code/

(google search) (amazon search)


Tue Jan 10 23:31:21 HKT 2012 From /weblog/design/distribute

nosql


Compare SQL ( RDBMS ) and noSQL ( object base {distributed??} ) data management - http://queue.acm.org/detail.cfm?id=1961297&ref=fullrss

The definition - http://martinfowler.com/bliki/NosqlDefinition.html`

(google search) (amazon search)


Wed Dec 28 23:45:41 HKT 2011 From /weblog/design

logging


http://www.codemonkeyism.com[..]08/12/16/7-good-rules-to-log-exceptions/ - look obvious but a lot of program still make those mistakes.

Do you prefer log more or log smarter? It is good to log smart but if you log more, even if you not smart enough, you still have the data. - http://www.codinghorror.com/blog/archives/001192.html

Basic log techniques - http://www.ddj.com/cpp/212902973?cid=RSSfeed_DDJ_All

Advances and Challenges in Log Analysis - http://queue.acm.org/detail.cfm?id=2082137&ref=fullrss

(google search) (amazon search)


Wed Dec 21 21:34:14 HKT 2011 From /weblog/design

API design guideline


This is a message from a management blog, but I think the arguement is also apply API design. In fact, I think most critical difference of good and bad API is knowing which small detail is important and which is not - http://www.goodproductmanager.com[..]er.com/2007/11/08/sweat-the-small-stuff/

Design tips:
http://www.artima.com/weblogs/viewpost.jsp?thread=142428
http://openide.netbeans.org/tutorial/api-design.html
http://www.cincomsmalltalk.com[..]gView?showComments=true&entry=3258158706
http://today.java.net[..]its-of-highly-profitable-developers.html
http://www.infoq.com/news/2007/08/why-api-design-matters
http://www.infoq.com/presentations/effective-api-design
http://neuroning.com/2006/11/19/on-api-design-guidelines

About Compatibility issues
http://wiki.eclipse.org/Evolving_Java-based_APIs

A blog of using interfaces-vs-abstract-classes
http://hoskinator.blogspot.com[..]6/04/interfaces-vs-abstract-classes.html

XOM design overview - http://www.xom.nu/designprinciples.xhtml#d0e309

You need to identify the business value but not pick any tools/design just because it is cool - http://myarch.com/what-is-good-soa

A lot of links here - http://kasparov.skife.org/blog-live/src/api-design-refs.writeback http://discuss.joelonsoftware.com/default.asp?design.4.527465

An introduction of good OSS project to study their source - http://techkriti.wordpress.com[..]com/2007/06/28/learning-from-the-source/

CCCCDPIPE - http://blog.objectmentor.com/articles/2007/08/02/which-came-first

Discussion of why getting feedback quick is important - http://blog.objectmentor.com[..]u-dont-know-until-you-take-the-next-step

Someone saying that routines is the greatest invention in CS, I agree - http://www.codinghorror.com/blog/archives/001129.html

New way of modeling system then layering, The Onion Architecture - http://jeffreypalermo.com/blog/the-onion-architecture-part-1/

SOLID - http://www.lostechies.com[..]of-the-month-march-solid-principles.aspx http://dotnet.dzone.com/news/solid-software-works <-- very good picture! http://www.blackwasp.co.uk/SOLIDPrinciples.aspx

Idempotent, Orthogonality, Immutability - http://www.codinghorror.com/blog/archives/001244.html

Some example of how to driven good API - http://jdegoes.squarespace.com[..]al/2009/5/11/good-api-design-part-3.html

It's not enough to write tests for an API you develop, you have to write unit tests for code that uses your API. When you do, you learn first-hand the hurdles that your users will have to overcome when they try to test their code independently. http://butunclebob.com[..]MichaelFeathers.TheGoldenRuleOfApiDesign

Active interface vs. Passive interface, for me this is another way to under "Tell, don't ask" - http://code-o-matic.blogspot.com[..]-on-api-design-call-stack-as-source.html

The Principles of Good Programming - http://www.artima.com/weblogs/viewpost.jsp?thread=331531

(google search) (amazon search)


Wed Dec 21 21:30:43 HKT 2011 From /weblog/design

term


Compare related words - http://caminao.wordpress.com[..]011/12/11/reflections-for-the-perplexed/

(google search) (amazon search)


Mon Nov 21 00:51:32 HKT 2011 From /weblog/design

persistence


Polyglot Persistence, choosing difference approach for storage - http://martinfowler.com/bliki/PolyglotPersistence.html

(google search) (amazon search)



Sun Nov 13 10:38:37 HKT 2011 From /weblog/design/concurrency

lock


10-ways-to-reduce-lock-contention-in-threaded-programs - http://www.thinkingparallel.com[..]ce-lock-contention-in-threaded-programs/

Discussion about lock the form and prevent 2 user edit it in the same time and currupt the object, what is the possible drawback. - http://www.dcmanges.com[..]-optimistic-locking-isnt-a-silver-bullet

futexes - http://en.wikipedia.org/wiki/Futex http://groups.google.com[..]ds/browse_thread/thread/3c3608a779dc6731

Spinning - http://www.1024cores.net[..]ome/lock-free-algorithms/tricks/spinning

Locks for rarely changed data, sound like good suggestion - https://groups.google.com[..]pic/comp.programming.threads/dyrbRKsj4gw

Try to use non-blocking approach if possible - http://mechanical-sympathy.blogspot.com[..]1/locks-condition-variables-latency.html

(google search) (amazon search)


Thu Oct 27 00:00:17 HKT 2011 From /weblog/design

code metric


Contain resource of measurable code metric information - http://thediscoblog.com[..]20/code-quality-for-software-architects/

Meaningful Metrics - http://www.developsense.com/2009/01/meaningful-metrics.html

http://programmers.stackexchange.com[..]ions/115839/how-clean-should-new-code-be

(google search) (amazon search)


Sun Oct 23 10:01:11 HKT 2011 From /weblog/design/interview

Hero of Java


http://blog.eisele.net/2011/09/heroes-of-java.html

(google search) (amazon search)


Wed Oct 19 21:04:52 HKT 2011 From /weblog/design/interview

K&R


Discuss about C and C++ - http://drdobbs.com[..]int?articleId=184408272&siteSectionName=

Discuss about history of C, UNIX and GO - http://drdobbs.com[..]rint?articleId=229502480&siteSectionName


(google search) (amazon search)


Sun Oct 16 23:59:13 HKT 2011 From /weblog/design

Event


How to build an event store - http://cqrsinfo.com/documents/building-event-storage/

A event base web backend - http://kasparov.skife.org[..]live/src/erlang/yaws-for-comet.writeback

Example code of domain events - http://www.udidahan.com/2009/06/14/domain-events-salvation/

Benefit of CQRS - http://blog.fohjin.com/blog/2009/11/12/CQRS_a_la_Greg_Young

(google search) (amazon search)


Sun Oct 16 23:52:23 HKT 2011 From /weblog/design/interview

Continuous Delivery


Overview of CD, and some Q & A - http://www.infoq.com/articles/humble-farley-continuous-delivery

(google search) (amazon search)


Sun Oct 16 23:51:03 HKT 2011 From /weblog/design/interview

Kent Beck


Passion of coding make a lot of difference - http://jimhighsmith.com[..]/07/interview-with-kent-beck-circa-2001/

(google search) (amazon search)


Fri Oct 14 00:51:35 HKT 2011 From /weblog/design

Implementation


Tired with duplicating Try-Catch for resource acquisition? Can try to create proxy method - http://hamletdarcy.blogspot.com[..]clarative-synchronization-with-java.html

Discussion of naming of if block - http://blog.objectmentor.com/articles/2008/09/26/if-methods-redux

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

Don't think , stay focus - http://www.threeriversinstitute.org/blog/?p=594

(google search) (amazon search)


Tue Oct 11 00:54:38 HKT 2011 From /weblog/design

prevent code debt


A nice article and nice term about prevent coding problem at first

http://www.stickyminds.com[..]bjectId=9860&tth=DYN&tt=siteemail&iDyn=2

In contrast, someone like to manage it - http://www.jamesshore.com[..]ardMeeting/Voluntary-Technical-Debt.html http://blogs.construx.com[..]archive/2007/11/01/technical-debt-2.aspx

Martin fowler's comment - http://martinfowler.com/bliki/DesignStaminaHypothesis.html

A blog about duplication is BAD - http://www.codinghorror.com/blog/archives/000805.html http://blog.objectmentor.com[..]/articles/2007/04/16/code-is-a-liability


(google search) (amazon search)


Sun Oct 09 10:09:16 HKT 2011 From /weblog/design

racing


Discussion about racing condition - http://www.slideshare.net[..]smatter/cqrs-race-conditionsandsagasohmy

(google search) (amazon search)


Sat Oct 08 13:03:24 HKT 2011 From /weblog/design

cache


5 Hints You're Using A Map When You Should Be Using a Cache? - http://dsoguy.blogspot.com[..]ints-your-using-map-when-you-should.html

How hibernate design the cache - http://www.javalobby.org/java/forums/t48846.html

Consider to do more careful update, not just update DB and dirty cache, but update DB and cache in a same time - http://dormando.livejournal.com/495593.html

Caching can be architectural smell, some hint and some alternative - http://www.codingthearchitecture.com[..]2/is_caching_an_architectural_smell.html

(google search) (amazon search)


Mon Oct 03 23:59:32 HKT 2011 From /weblog/design

High level software design discussion


A nice table:
Do Don't
1. Focus on interfaces. 2. Be worried about the implementation.
3. Mention semantic contract using interfaces. 4. Let subtypes break this semantic contract of their parent types.
5. Service decoupling using interfaces. 6. Be coupled with specific concrete implementation.
7. Family extension using interfaces. 8. Break the family relationship using concrete implementation.
9. Establish a family rule by abstract classes. 10. Impose your own rule through concrete classes.
11. Let interfaces answer all "what" about the system. 12. Forget to mention "how" are you answering all "what" from interfaces.
Also a good introduction of Strategy pattern

http://today.java.net[..]/03/28/testing-java-object-oriented.html How to determine the levels of abstraction - http://programmers.stackexchange.com[..]w-to-determine-the-levels-of-abstraction
(google search) (amazon search)


Mon Oct 03 01:04:16 HKT 2011 From /weblog/design

robust


Robustness, list of general design principle - http://www.makinggoodsoftware.com[..]2/robustness-the-forgotten-code-quality/ http://www.makinggoodsoftware.com[..]tics-of-a-robust-application-or-service/

How to write readable code - http://www.simple-talk.com[..]net-framework/writing-maintainable-code/

(google search) (amazon search)


Sat Oct 01 14:10:14 HKT 2011 From /weblog/design

quote


Quotations on simplicity in software design - http://www.jbox.dk/quotations.htm


(google search) (amazon search)


Wed Sep 28 23:59:12 HKT 2011 From /weblog/design/distribute

realtime


Few real time map reduce framework - http://www.infoq.com/news/2011/09/twitter-storm-real-time-hadoop

(google search) (amazon search)


Sun Sep 25 09:55:36 HKT 2011 From /weblog/design

style


Discussion of style of writing code, like always have valuable for return value, and use return for parameter check - http://www.beust.com/weblog/archives/000308.html

We should really delete the code if we need to... http://nedbatchelder.com/text/deleting-code.html

And more about programming style - http://www.codinghorror.com/blog/archives/001184.html http://www.onextrapixel.com[..]for-keeping-your-programming-code-clean/

About using Of() as factory name - http://blog.joda.org/2011/09/factory-names.html

(google search) (amazon search)