Donnerstag, 26. Februar 2009

The Design Patterns Smalltalk Companion

The Design Patterns Smalltalk Companion

excerpts:
http://stephane.ducasse.free.fr/FreeBooks/SmalltalkDesignPatternCompanion/

notes on page 29

Creational Patterns

1. Abstract Factory-- Provide an interface for creating families of related or dependent objects. Let clients create products in any family of products in an abstract fashion, without having to specify their concrete classes.

2. Builder-- Separate the construction of a complex object from its internal representation so that the same construction process in a client can be used to create different representations.

3.Factory Method-- Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets class defer instantiaton to subclasses.

4. Prototype--Specify the kinds of objects to create using aprototypical instance, and create new objects by copying this prototype.

5. Singleton--Ensure a class has only one instance, and provide a global point of access to it.



Montag, 23. Februar 2009

How to start squeak

Starting squeak


Place the .image and .change file in the same directory for delevlopment.

Could not open the Squeak image file `squeak.image'.

There are three ways to open a Squeak image file. You can:
1. Put copies of the default image and changes files in this directory.
2. Put the name of the image file on the command line when you
run squeak (use the `-help' option for more information).
3. Set the environment variable SQUEAK_IMAGE to the name of the image
that you want to use by default.

For more information, type: `man squeak' (without the quote characters).
[shiki2@localhost squeakhome]$


type : "squeak Squeak3.10.2-7179-basic.image "
in the directory where the .image and .change files are placed.



Dienstag, 17. Februar 2009

海森堡蟲--HeisenBug

EE4216/EE5816 Internet Client Server Programming

海森堡蟲--HeisenBug

Java Multithread Programming--Race Condition

1.[from Heisenberg's Uncertainty Principle in quantum physics] A bug that disappears or alters its behavior when one attempts to probe or isolate it.
http://catb.org/jargon/html/H/heisenbug.html

2. "The more closely you look at one thing, the less closely can you see something else."
http://en.wikipedia.org/wiki/Heisenbug#Heisenbug



Montag, 16. Februar 2009

EE4216/EE5816 java Concurrent Programming

EE4216/EE5816 Internet Client Server Computing

結城 浩--數學少女

1. 數學少女
http://blog.roodo.com/ching_win_comic/archives/6209305.html

2.Java Multithread Design Pattern--- Java 多執行緒與 平行處理
http://www.drmaster.com.tw/Bookinfo.asp?BookID=PG20138



Sonntag, 15. Februar 2009

EE4216/EE5816 java Concurrent Programming

EE4216/EE5816 java Concurrent Programming
Internet Client Server Computing

1.Concurrent Programming with J2SE 5.0
http://java.sun.com/developer/technicalArticles/J2SE/concurrency/

2. Good Book : << Java Concurrency in Practice >>>>



Freitag, 13. Februar 2009

EE4216/EE5816 java design patterns

EE4216/EE5816 Internet Client Server Computing

Java Design Patterns: Notes

1.The Design Patterns: Java Companion

http://www.patterndepot.com/put/8/JavaPatterns.htm


2. 設計模式 筆記--多執行緒 模式
http://caterpillar.onlyfun.net/Gossip/DesignPattern/DesignPattern.htm

3. http://www.vincehuston.org/dp/

4. Java 設計模式--學習心得 作者:板橋里人
http://tzuchieh.miroko.tw/Patterns/Jdon_DesignPatterns.htm



Donnerstag, 12. Februar 2009

沒有 欽定的 Linux 版本

Linus Torvalds 否決 "欽定 Linux " 觀念

中國文化

Linus Torvalds 否決了 "Linux 開發者 應該整合 他們的資源成為 單一 發行版" 這項論點, 不同的 Linux 發行版 有其存在 的必要,以符合 不同的 市場需求。

沒有 任何單一 Linux 發行版 能滿足 所有 的需求。

沒有 欽定的 Linux 發行版

http://linux.slashdot.org/article.pl?no_d2=1&sid=09/02/03/1555216



Montag, 9. Februar 2009

EE4216/EE5816 java locks

EE4216/EE5816
Internet Client Server Computing

java locks

notes on Liang(2009), page 975

1. A lock is an instance of the Lock interface. It has methods for acquiring and releasing locks.
They are the lock() and unlock() methods.

2. A newCondition() method is used to create a Condition object. A Condtion object is used for thread communications.

3. Lock is an interface. ReentrantLock is a concrete implementation of Lock for creating mutually exclusive locks.

For example:

// create a lock
private Lock lock = new
ReentrantLock();
. . .
. . .
// use this pattern !!

lock.lock() //acquire a lock
try {
//access the resources
//protected by this lock . . .
}
catch (InterruptedException e) {
}
finally {
lock.unlock();
// release the lock
}

notes:
http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/package-summary.html