download zip of files only
Thu Jan 26 20:48:16 HKT 2012
From /weblog/design/concurrency
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)
Wed Dec 28 23:45:41 HKT 2011
From /weblog/design
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
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)
Mon Nov 21 00:51:32 HKT 2011
From /weblog/design
Polyglot Persistence, choosing difference approach for storage - http://martinfowler.com/bliki/PolyglotPersistence.html
(google search)
(amazon search)
Fri Oct 14 00:51:35 HKT 2011
From /weblog/design
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)
Sat Oct 08 13:03:24 HKT 2011
From /weblog/design
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
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)
Sat Oct 01 14:10:14 HKT 2011
From /weblog/design
Quotations on simplicity in software design - http://www.jbox.dk/quotations.htm
(google search)
(amazon search)
|