RSS feed [root] /design /weblog




login:

password:

title search:




 

Wed Jun 23 00:22:39 HKT 2010

design



(google search) (amazon search) second
download here

Wed Jun 23 00:22:39 HKT 2010 From /weblog/design

Event


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)


Fri Apr 30 01:24:06 HKT 2010 From /weblog/design/distribute

Idempotence


Sample chater of REST book , which contain a nice discussion of why Idempotence is important - http://www.infoq.com[..]dson-ruby-restful-ws/en/resources/04.pdf

New Acid:
* A – Associative
* C – Commutative
* I – Idempotent
* D - Distributed

http://www.eaipatterns.com/ramblings/68_acid.html

Idempotency patterns - http://jonathan-oliver.blogspot.com[..]ot.com/2010/04/idempotency-patterns.html

(google search) (amazon search)


Thu Apr 01 01:59:44 HKT 2010 From /weblog/design

datetime


Look like Java standard library already handle the 400 years leap day. However, there are still a lot to take care. - http://discuss.joelonsoftware.com/default.asp?design.4.326089

P.S.: an article about java timezone handling - http://www.javaworld.com/javaworld/jw-10-2003/jw-1003-time_p.html

Basic about computer time - http://blogs.windwardreports.com[..]ry-developer-should-know-about-time.html

Difference of time function provided by IPP - http://software.intel.com[..]g-function-for-measuring-ipp-api-timing/

Detail explanation of nano second and millisecond in java at windows platform - http://blogs.sun.com/dholmes/entry/inside_the_hotspot_vm_clocks

How to model thing that change with time - http://www.martinfowler.com/ap2/timeNarrative.html

Timezone handling issues of most application - http://martinfowler.com/bliki/TimeZoneUncertainty.html


(google search) (amazon search)


Thu Mar 25 02:07:15 HKT 2010 From /weblog/design

date


Date handling look simple but easy to fail in trap. Even worst is this is easy to have bad data which hard to fix. Here is an example - http://blogs.msdn.com/jensenh/archive/2005/11/23/496246.aspx

One tip for testing application with time dependence, treat it as random - http://googletesting.blogspot.com[..]pot.com/2008/04/tott-time-is-random.html

Explanation of issues of Joda-time, basically it still haven't map the human view of time close enough than machine view of time - http://www.jroller.com/scolebourne/entry/why_jsr_310_isn_t

Screencast of how to driven a fluent Date API - http://tedyoung.blogsome.com[..]-apis-in-java-episode-1-comparing-dates/

(google search) (amazon search)


Thu Mar 11 14:55:11 HKT 2010 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

(google search) (amazon search)



Mon Feb 22 11:00:07 HKT 2010 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

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!

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

(google search) (amazon search)


Fri Feb 19 17:10:33 HKT 2010 From /weblog/design

algorithm


What O(log n ) mean - http://kevinrodrigues.com[..]log/2010/01/06/analysis-of-an-algorithm/

(google search) (amazon search)


Thu Feb 18 12:21:18 HKT 2010 From /weblog/design/concurrency

concurrency


How to write safer concurrency code - http://www.artima.com/forums/flat.jsp?forum=276&thread=178345

reentrant and thread safe functions - http://kevinrodrigues.com[..]/31/reentrant-and-thread-safe-functions/

Libraries / toolkits for multicore process - http://www.ddj.com[..]intableArticle.jhtml?articleID=212900103

Introduction - http://www.ddj.com[..]QQSNDLRSKHSCJUNN2JVN?articleID=212903586 http://www.ddj.com[..]CQSNDLRSKHSCJUNN2JVN?articleID=213001517

Collections of links - http://dobbscodetalk.com[..]rallel-Or-Get-Left-Behind.html&Itemid=29

Briefing of difference modeling of threading system - http://www.ddj.com[..]intableArticle.jhtml?articleID=215900465 http://software.intel.com[..]inners-guide-to-multithreaded-libraries/

(google search) (amazon search)


Wed Feb 17 23:56:43 HKT 2010 From /weblog/design/distribute

mapreduce


Showing that map reduce can support real time transaction processing - http://googleblog.blogspot.com[..]09/12/relevance-meets-real-time-web.html

Using map-reduce in cloud - http://horicky.blogspot.com/2010/02/cloud-mapreduce-tricks.html

(google search) (amazon search)


Tue Feb 16 22:09:21 HKT 2010 From /weblog/design/distribute

nohup



(google search) (amazon search)


Tue Feb 16 18:49:09 HKT 2010 From /weblog/design/distribute

performance


Basically, cache as much as you can, limit the bandwidth as much as you can - http://horicky.blogspot.com[..]2009/08/skinny-straw-in-cloud-shake.html

(google search) (amazon search)


Tue Feb 02 15:07:01 HKT 2010 From /weblog/design

interface


Arguement of overuse interface, I trend to support - http://blog.sidu.in[..]ramming-to-interfaces-strikes-again.html

A very long discussion related, Test-friendly, but not caller-friendly? - http://www.nabble.com[..]ring-your-development--t2039307i120.html

Comparison of interface vs. abstract class - http://blogs.sun.com[..]ry/api_design_interfaces_versus_abstract

Some issue of marker interface, may be annotation can help. However, I don't think those so call issue are really problem, those just poor usage of marker interface - http://java.dzone.com/articles/are-marker-interfaces-dead

(google search) (amazon search)


Tue Feb 02 12:03:55 HKT 2010 From /weblog/design

indexing


twelve things you should know about indexing - http://www.ademero.com[..]elve-things-you-should-know/indexing.php

(google search) (amazon search)



Thu Jan 21 01:46:26 HKT 2010 From /weblog/design/IoC

Inversion of Control


When these containers talk about how they are so useful because they implement "Inversion of Control" I end up very puzzled. Inversion of control is a common characteristic of frameworks, so saying that these lightweight containers are special because they use inversion of control is like saying my car is special because it has wheels.

http://www.martinfowler.com[..]ticles/injection.html#InversionOfControl

This guy think IoC is going to use is more and more place as GC. However, I will think quit a lot of time IoC is use incorrectly, somebody even try to use it everywhere and replacing constructor... - http://howardlewisship.com[..]endency-injection-mirror-of-garbage.html

IMHO jetty is the first widely used program about IoC idea, even before spring - http://kasparov.skife.org/blog/2004/08/30/

Explain when IoC is overkill - http://blog.objectmentor.com[..]010/01/17/dependency-injection-inversion

(google search) (amazon search)


Thu Jan 14 19:13:15 HKT 2010 From /weblog/design

aspect


Article with example to show how aspect can help in most common case - http://www.infoq.com/articles/aspects-of-domain-model-mgmt

http://veerasundar.com[..]se-cases-of-aspect-oriented-programming/

(google search) (amazon search)


Wed Jan 06 01:47:53 HKT 2010 From /weblog/design

Version


A Theory of Compatible Versions, and introduction of how and why difference versions are comptible or not - http://www.xml.com/lpt/a/1684

XStream offers some support for refactorings (aliases can help). But very soon you will run into big troubles and will have to make some decisions. Either avoid refactorings (just a little tweak here and there, will weaken your architecture over time) or start implementing workarounds – e.g. custom converters (much work, bad code). - http://blog.cedarsoft.com[..]ts-wrong-with-xstream-and-similar-tools/

(google search) (amazon search)


Thu Dec 31 00:46:40 HKT 2009 From /weblog/design/interview

Rod Johnson


Lessons Learned From Java EE’s Evolution, discuss about value of standard and opensource - http://www.infoq.com/presentations/Lessons-Learned-from-Java-EE

(google search) (amazon search)


Sat Dec 12 10:43:54 HKT 2009 From /weblog/design

login


Batch login Authentication - http://www.udidahan.com[..]us-high-performance-login-for-web-farms/

(google search) (amazon search)


Thu Dec 10 00:01:54 HKT 2009 From /weblog/design/interview

Ralph Johnson


http://www.infoq.com[..]h-Johnson-Parallel-Programming-Patterns#

(google search) (amazon search)


Wed Dec 09 15:27:52 HKT 2009 From /weblog/design/concurrency

queue


Fast synchronization between a single producer and single consumer - http://www.bluebytesoftware.com[..]eenASingleProducerAndSingleConsumer.aspx

Lock free queue idea. - http://groups.google.com[..]read/thread/82066179448783da?hl=en&pli=1

(google search) (amazon search)


Sat Nov 28 18:22:14 HKT 2009 From /weblog/design

samples


A comment about jsch library, discuss about how the author compare this with commerice library, how easy to use, what make it easy or not easy to user, and how to make it easier a nice reading for writing library

http://www.logemann.org[..]?permalink=jsch_a_SFTP_java_library.html

A simple implementation of cache - http://weblog.plexobject.com/?p=1568

Good examples of bad codes - http://isagoksu.com[..]ike-a-senior-developer-about-clean-code/

(google search) (amazon search)


Fri Nov 27 15:56:17 HKT 2009 From /weblog/design/distribute

eventual-consistency


A short example to show how eventual-consistency work - http://sbtourist.blogspot.com[..]/11/eventual-consistency-by-example.html

(google search) (amazon search)


Wed Nov 25 01:22:31 HKT 2009 From /weblog/design/distribute

cloud


1. Use Cloud for Scaling
2. Use Cloud for Multi-tenancy
3. Use Cloud for Batch processing
4. Use Cloud for Storage
5. Use Cloud for Communication

http://horicky.blogspot.com/2009/11/cloud-computing-patterns.html

http://horicky.blogspot.com/2009/11/nosql-patterns.html

(google search) (amazon search)