Wednesday, September 24, 2008

Ruby's Best Feature?

It's the title of Rich Kilmer's 2008 first post. You should read it even if you are not a Ruby programmer.
.
.
.
.
.
.
He concluded that:
In my experience, this is the single most important feature of the Ruby language---capturing the domain in a language the entire team can speak. If you believe clear communications is an essential quality of highly effective teams, this feature is something that you should strive to exploit in your own Ruby projects.
Do you want to know what do I feel after reading this post?

I want to read Martin Fowler's Domain Specific Languages Book immediately and write DSL's patterns described in the book in Ruby.

Google behind the screen

Review



Related posts:
* "Speed is king" or "how to prepare for future?"
* The Machine is Us/ing Us

Next generation databases for Web 2.0 written in Erlang

Just purchased "CouchDB with Rails" screencast from PeepCode.

If you don't want to purchase above screencast to learn about an next generation, document-oriented database. You can view some CouchDB talks (source CouchDB Wiki):


2008 August 27th: CouchDB to BBC web developers (Slides, Notes)




2008 June 27th: CouchDB, Erlang eXchange (Slides)




2008 March 17th: CouchDB from cover to cover (Slides)

Part 1:

Part 2:


Another database I'm tracking is Scalaris: a young, peer-to-peer, distributed, academic awards storage engine.
The concept of Scalaris is very simple: Scalaris is a transactional data store for online services based on the peer-to-peer principle. It provides self-management and scalability by replicating services among peers. Without system interruption it scales from a few PCs to thousands of servers. Servers can be added or removed on the fly without any service downtime.

Scalable Wikipedia with Erlang, Google Scalability Conference, Seattle, June 2008 (slides)


Building a transactional distributed data store with Erlang, Erlang eXchange, London, June 2008 (slides)

Monday, September 22, 2008

Dynamic programming advantage

Want to show you some pieces of Ruby code that do the same thing.

Original version:
FIELDS = [ 'first', 'last',      'band' ]
DATA = [['Kurt', 'Cobain', 'Nirvana'],
['Jimi', 'Page', 'Led Zeppelin'],
['Noel', 'Gallagher', 'Oasis'],
['Thom', 'Yorke', 'Radiohead']]

def combine_fields_and_data(fields, data)
new_data = []
data.each do |row|
row_hash = {}
row.each_with_index do |column, i|
row_hash[fields[i].to_sym] = column
end
new_data.push(row_hash)
end
return new_data
end

Small_logo

And Adam's refactoring

def combine_fields_and_data(fields, data)
data.map { |row| Hash[*fields.zip(row).flatten] }
end

Adam code utilize Ruby built-in Array and Hash utilities that make his code extremely short.

Read more about Array utilities here.

English-Vietnamese Translation Service (3)

Dùng XMPP để phân tán từng đoạn (hoặc câu) tài liệu dịch tới hàng chục / hàng trăm người dịch. Giúp dịch tài liệu dài vài trang A4 cực nhanh (dưới 10 phút).

Saturday, September 20, 2008

Ruby x.kind_of?


module M; end

class A; end

class B < A
include M
end

b = B.new

b.kind_of? A # => true
b.kind_of? B # => true
b.kind_of? M # => true

b.class == A # => true
b.class == B # => false
b.class == M # => false

A === b # => true
B === b # => true
M === b # => true



Reference:
http://refactormycode.com/codes/487-x-kind_of-myclass-or-x-class-myclass

Khoa học máy tính là cội nguồi của nền công nghiệp phần mềm

Làm nghiên cứu về khoa học máy tính khó hơn làm phần mềm
Làm nghiên cứu nhiều khi gặp bài toán khó, không biết tìm lời giải ở đâu. Không biết hỏi ai. Cần phải tự tìm tòi, nghiền ngẫm, sáng tạo.

Làm phần mềm, gặp bài toán khó, phần nhiều tìm được lời giải trong nghiên cứu.
Nếu bài toán thực sự chưa giải được mà có triển vọng trong tương lai, nhờ các nhà nghiên cứu giải hộ.

Công nghiệp phần mềm là hoa trái của khoa học máy tính
Nếu không có những bộ óc lớn khởi đầu ý tưởng về máy tính như Alan Turing, Von Neumann... thì không có hàng triệu triệu máy vi tính như ngày nay và chắc chắn rằng không có công nghiệp phần mềm.

Mọi phần mềm hoặc ý tưởng LỚN, giúp kiếm tiền tỷ đô đều bắt đầu từ nghiên cứu:
  • Hệ điều hành (UNIX from Bell Lab, SUN from Stanford)
  • Mạng Internet (Bộ quốc phòng Mỹ)
  • World Wide Web (Tim Berners-Lee from European Organization for Nuclear Research)
  • Hệ quản trị cơ sở dữ liệu quan hệ (Edgar F. Codd from IBM lab)
  • Search Engine (Google founders from Stanford)
  • .....
Người làm phần mềm mà xem thường hoặc chối bỏ khoa học máy tính chẳng khác gì con cái không nhận mặt cha mẹ. Sẽ gây khó khăn cho chính mình và cho người làm khoa học.

Friday, September 19, 2008

More freedom from Yahoo for Web Developers

Just read a very interesting news from "The Noisy Chanel" that Yahoo is going to release Yahoo Query Language. You can read YQL Open Hack Day slides or YQL doc for more details. It seems to be that Yahoo will open all it's data through YQL and never before developers can get a lot of freedom to use Yahoo flatform to create incredible applications.

Want to extract some words from The Noisy Chanel:
"Skimming the documentation, I had the impression that it might allow functionality that I’ve never seen a web search API allow–namely, the ability to pick your own sort. To be useful (at least in my view), this has to be an operation applied before the results are truncated to the top results based on the search engine’s default ranking."

After reading above news, I'm really looking forward that Vietnamese programmers can combine Yahoo Open Search API with Vietnamese Language Processing to build our own Free Customized Search Engine for Vietnam People.

Thursday, September 18, 2008

Phusion daemon_controller gem

Just re-read a nice introduction about daemon_controller. It will be very useful for me because I often use background jobs and full-text-search daemon.

Extracted from Phusion blog:

daemon_controller is not a replacement for Monit or God, or for tools like launchd, daemons tools, inittab, etc. Rather, it is a solution to the following problem:

Hongli: hey Ninh, do a ‘git pull’, I just implemented awesome searching features in our application!
Ninh: cool. *pulls from repository*
Ninh: hey Hongli, it doesn’t work.
Hongli: what do you mean, it doesn’t work?
Ninh: it says “connection refused”, or something
Hongli: oh I forgot to mention it, you have to run the Sphinx search daemon before it works. type “rake sphinx:daemon:start” to do that
Ninh: great. but now I get a different error. something about BackgrounDRb.
Hongli: oops, I forgot to mention this too. you need to start the BackgrounDRb server with “rake backgroundrb:start_server”
Ninh: okay, so every time I want to use this app, I have to type “rake sphinx:daemon:start”, “rake backgroundrb:start_server” and “./script/server”?
Hongli: yep

Imagine the above conversation becoming just:

Hongli: hey Ninh, do a ‘git pull’, I just implemented awesome searching features in our application!
Ninh: cool. *pulls from repository*
Ninh: awesome, it works!

Wednesday, September 17, 2008

Active Record new_record? method

Want to know an instant of Active Record is a just created or loaded from database?


model_instant.new_record? # => true: just created
model_instant.new_record? # => false: created sometime ago

I use this method quite often but can't remember the name so I write a post about it with the hope that the method name will be burned in my brain :D

Monday, September 15, 2008

Powerset use GPU to do linguistic processing :)

"I just recently saw a talk on using CUDA to do linguistic processing for Powerset’s engine. One of the major pain points was pushing data to the card."

Extracted from http://kirindave.tumblr.com/post/50255490/tim-sweeny-on-the-twilight-of-the-gpu

Note that KirinDave is a Ruby guru at Powerset.

Active Record tips and tricks

Found a great post about active record tips and trick here:
http://m.onkey.org/2008/9/15/active-record-tips-and-tricks

One more thought about the use of concerned_with. I prefer to use require_dependency directly. So I don't need to add and load concerns.rb for every new Rails project and get more flexible to organize related files.

For example:


class Listing < ActiveRecord::Base
require_dependency "listing/property_related"
require_dependency "listing/price_related"
require_dependency "listing/contact_related"
require_dependency "listing/address_related"
require_dependency "full_text_search/listing_config"
....
end



When you want to separate full text search config code to another file, remember to inherit the class from ActiveRecord::Base in order to let enable ThinkingSphinx plugin or UltraSphinx plugin methods.

For example:


# full_text_search/listing_config.rb
class Listing < ActiveRecord::Base
define_index do # ThinkingSphinx plugin
...
end
end

Tâm an

Trích từ langmai
Thiền sư Thích Nhất Hạnh

Có thể là trong lúc này, có những điều không vừa ý đang xảy ra trong gia đình, trong cộng đồng hay trong công việc của bạn. Những điều bất như ý đó đã và đang khiến cho bạn lo lắng và bực bội, làm cho bạn không được nhất tâm trong khi thực tập thiền. Bạn có khuynh hướng muốn nghĩ tới những điều bất như ý ấy, và cứ suy nghĩ phải làm thế nào để giải quyết mọi chuyện để tình trạng có thể chuyển đổi và đi theo ý mình muốn. Những lo lắng, bực bội và suy nghĩ đó làm cho tâm bạn bất an, rối rắm, và làm cho năng lượng của niệm và của định yếu đi.

Nếu đó đang là tình trạng của bạn thì bạn phải lập tức nhìn kỹ để thấy được một sự thực: Khi tâm ta bất an, buồn bực và rối rắm thì những suy tư của ta sẽ không sáng suốt và những gì ta làm trên căn bản của sự rối rắm và buồn bực sẽ có thể làm cho tình trạng xấu hơn.

Căn bản là ở nơi tâm, và điều quan trọng nhất là làm cho tâm an lại.

Tâm an lại thì suy tư mới sáng suốt và hành động mới không sai lầm. Vì vậy bạn quyết định buông bỏ những lo lắng, những tính toán, những suy tư ấy để trở về làm cho tâm an lại. Tâm mình không an, thì mình không có hạnh phúc, dù hoàn cảnh có tốt đẹp và thuận lợi.

Phải lo cho tâm trước, đừng vội lo cho cảnh. Tâm an thì ta mới thấy được cảnh rõ ràng và chuyển hóa được hoàn cảnh. Và bạn quyết định: phải làm cho tâm an trước. Mà muốn làm cho tâm an thì sự thực tập là quan trọng nhất. Tâm an rồi, sự bực bội và lo lắng không còn nữa, thì ta đã có hạnh phúc rồi, và ta có thể chấp nhận được hoàn cảnh.

Hạnh phúc là tùy tâm chứ không phải là tùy cảnh. Bạn hãy nhắc nhở bạn điều ấy nhiều lần, và đoạn này bạn có thể đọc lại mỗi ngày để thấy cho rõ cái ưu tiên là tâm chứ không phải là cảnh. Và mỗi khi đang thực tập mà những bực bội, lo lắng hay tính toán nỗi dậy thì bạn hãy mỉm cười nhận diện chúng và nói: Ta lo cho tâm ta trước đã, rồi trở về với sự thực tập.

Sunday, September 14, 2008

How to do search business and don't have to compete with Google?

Do like Endeca did: "CUSTOMIZED search for NARROW MARKET". That is the RIGHT way.


Find out more about Enterprise Search at:
http://www.nxtbook.com/nxtbooks/infotoday/enterprisesearchsourcebook08

Saturday, September 13, 2008

Thiền: chất liệu nuôi dưỡng, trị liệu và chuyển hóa

Lược trích từ langmai

Thiền sư Thích Nhất Hạnh

Thiền, nói cho đủ là thiền na, là phần thực tập nòng cốt của đạo Bụt. Thiền có mục đích giúp người hành giả đạt tới một cái thấy sâu sắc về thực tại, cái thấy này có khả năng giải phóng cho mình ra khỏi sợ hãi, lo âu, phiền muộn, chế tác chất liệu trí tuệ và từ bi, nâng cao phẩm chất của sự sống, đem lại cho mình và cho kẻ khác nhiều thảnh thơi và an lạc. Bản chất của thiền là niệm, định và tuệ, ba nguồn năng lượng được chế tác trong khi thực tập. Ta thực tập thiền không phải chỉ trong tư thế ngồi mà còn trong các tư thế khác như tư thế đi, tư thế đứng, tư thế nằm, trong những lúc làm việc như giặt áo, bổ củi, gánh nước, tưới rau hoặc lái xe. Bất cứ trong tư thế nào, bất cứ đang làm gì và ở đâu mà trong thân tâm mình có được ba loại năng lượng ấy là mình đang thực tập thiền. Sự thực tập này, nếu được chỉ dẫn đúng mức, có thể đem lại sự thoải mái và an lạc ngay trong lúc thực tập. Thực tập thiền có tác dụng nuôi dưỡng và trị liệu cho cả thân và tâm, đem lại nguồn vui sống cho người thực tập và cho những người xung quanh. Không phải chỉ đi vào chùa hoặc thiền viện mới thực tập được thiền. Sống trong xã hội, đi làm, hay chăm sóc gia đình, ta cũng có thể tập thiền được.

Niệm

Niệm là nguồn năng lượng giúp ta ý thức được những gì đang xảy ra trong giây phút hiện tại, trong thân, tâm ta và trong hoàn cảnh. Nói cho đầy đủ là chánh niệm. Những gì đang xảy ra trong giờ phút hiện tại trong lĩnh vực thân, tâm và hoàn cảnh thì nhiều lắm, ta không thể nhận diện được tất cả một lượt. Nhưng ta có thể nhận diện những gì nổi bật nhất, hoặc nhận diện những gì mà ta cần nhận diện nhất. Nếu ta để ý tới hơi thở vào, hơi thở ra và nhận diện được đấy là hơi thở vào hoặc hơi thở ra, đó gọi là phép niệm hơi thở. Nếu ta để ý tới bước chân và nhận diện được từng bước chân ta đặt lên sàn nhà hoặc mặt đất, đó gọi là phép niệm bước chân. Ta có thể gọi đó là chánh niệm về hơi thở hoặc chánh niệm về bước chân. Niệm bao giờ cũng là niệm một cái gì, nghĩa là niệm luôn luôn có đối tượng của niệm. Nếu ta đang giận mà ta có ý thức được là ta đang giận, đó gọi là niệm cơn giận. Trong lúc ta thực tập như thế, có hai loại năng lượng đang biểu hiện trong ta: năng lượng đầu là cái giận, năng lượng thứ hai là chánh niệm do ta chế tác bằng bước chân hoặc bằng hơi thở chánh niệm. Năng lượng thứ hai nhận diện và ôm ấp năng lượng thứ nhất. Nếu sự thực tập kéo dài năm bảy phút thì năng lượng chánh niệm sẽ đi vào trong năng lượng giận hờn, và sẽ có sự thuyên giảm và chuyển hóa. Năng lượng niệm mang theo nó năng lượng định, và năng lượng này có thể làm phát sinh năng lượng tuệ. Năng lượng Tuệ có thể chuyển hóa được cơn giận thành năng lượng của hiểu biết, chấp nhận, xót thương và hòa giải.

Trong đời sống hàng ngày, tâm ta thường có khuynh hướng nhớ tưởng về quá khứ hoặc lo lắng cho tương lai. Thân ta có mặt nhưng tâm ta không có mặt. Chánh niệm là năng lượng giúp ta đưa tâm về lại với thân để ta có mặt đích thực trong giờ phút hiện tại. Có mặt như thế để có thể tiếp xúc với những nhiệm mầu của sự sống trong ta và chung quanh ta. Theo tinh thần thiền, sự sống chỉ có mặt đích thực trong giây phút hiện tại. Bụt dạy: "Quá khứ đã qua, tương lai chưa tới, sự sống chỉ có thể được tiếp xúc trong giây phút hiện tại". Tiếp xúc được với những gì nhiệm mầu có mặt trong giây phút hiện tại là để được nuôi dưỡng và trị liệu. Nếu năng lượng chánh niệm đã trở nên vững vàng, ta có thể sử dụng nó để nhận diện và ôm ấp những nỗi khổ niềm đau của ta như giận thù, tuyệt vọng, tham đắm, bạo động, ghen tuông... để có thể chuyển hóa chúng từ từ. An trú được trong hiện tại có thể đưa đến sự trị liệu mầu nhiệm: một phen an trú được trong hiện tại là ta có thể vượt thoát ra ngoài những nanh vuốt của sự tiếc thương và vương vấn về quá khứ hoặc những lo lắng và sợ hãi về tương lai; những năng lượng tiêu cực thường đưa tới các chứng bệnh tâm thần.

Có bốn lĩnh vực làm đối tượng cho sự tu tập chánh niệm: thân thể, cảm thọ, tâm ý và đối tượng tâm ý.

Năng lượng chánh niệm khi nhận diện thân thể giúp ta trở về thân thể với niềm ưu ái: trong khi theo dõi phép quán niệm hơi thở ta chiếu cố tới thân thể ta, giúp cho thân thể được buông thư, phép thực tập này rất hữu hiệu để đối phó với sự căng thẳng của thần kinh và của cơ thể. Ta có thể thực tập phép an tịnh thân hành trong tư thế nằm cũng như tư thế ngồi. Sự thực tập này giúp cho cơ thể tự trị liệu lấy một cách tự nhiên. Trong trường hợp ta đang chữa trị bằng thuốc men thì phép an tịnh thân hành này có thể giúp cho ta bình phục mau chóng hơn. Thực tập phép niệm thân, ta cũng sẽ biết ăn uống và tiêu thụ trong chánh niệm để đừng đưa vào cơ thể những thức ăn thức uống có độc tố gây nên tật bệnh. Thực tập niệm thân còn giúp ta đi, đứng, hành xử và làm việc một cách thảnh thơi và nâng cao phẩm chất của sự sống hàng ngày.

Sự thực tập chánh niệm hướng về cảm thọ giúp ta nhận diện những cảm thọ đang có mặt: cảm thọ dễ chịu, cảm thọ khó chịu và cảm thọ trung tính. Nếu đó là một cảm thọ dễ chịu, ta biết được là cảm thọ đó phát xuất từ đâu và sẽ có tác dụng lâu dài như thế nào vào thân tâm; tác dụng nuôi dưỡng hoặc tàn phá. Nếu đó là một cảm thọ khó chịu, ta cũng biết được là nó đã phát xuất từ đâu, và năng lượng chánh niệm sẽ làm dịu lại cảm thọ đó và cuối cùng với năng lượng định và tuệ ta có thể chuyển hóa nó. Nếu cảm thọ ấy là trung tính thì với chánh niệm nó sẽ trở thành một cảm thọ dễ chịu. Ví dụ: Khi nhức răng, ta có khổ thọ. Ta nghĩ nếu hết nhức răng ta sẽ có lạc thọ. Nhưng thường thường trong giờ phút không nhức răng mà ta chỉ có xả thọ. Ý thức về điều này, sẽ giúp ta chuyển xả thọ thành lạc thọ.

Thực tập chánh niệm hướng về tâm ý giúp ta nhận diện được tất cả các hiện tượng tâm ý thường phát hiện trong tâm thức như vui, buồn, thương, ghét... Theo tâm lý học đạo Bụt, ta có 51 loại hiện tượng tâm ý, gồm có những tâm ý tích cực như thương mến, bao dung, những tâm ý tiêu cực như giận hờn, tuyệt vọng, và những tâm ý bất định như tư duy, hối tiếc.

Nhận diện là để tìm tới cội nguồn của những tâm hành ấy để biết rõ bản chất chúng và để chuyển hóa chúng. Ví dụ: Nhận diện trầm cảm với năng lượng chánh niệm ta có cơ hội nhìn thấu bản chất và cội nguồn của nó để biết được những nguyên do xa gần đã làm cho nó có mặt. Với năng lượng của niệm, định và tuệ; ta có thể khám phá ra được bản chất của khối trầm cảm. Dùng chánh niệm để chăm sóc trầm cảm, để đưa tâm ý tiếp xúc với những hiện tượng tươi mát có hiệu năng nuôi dưỡng và trị liệu, ta có thể làm thư nhẹ chứng trầm cảm. Dùng chánh niệm để đừng sử dụng, tiếp xúc và tiêu thụ những hình ảnh, âm thanh và ý tưởng có công dụng đưa tới những sự căng thẳng, lo lắng và buồn phiền, không cho chứng trầm cảm được tiếp tục nuôi dưỡng bởi những độc tố đó, ta có thể chuyển hóa được trầm cảm.

Thực tập chánh niệm hướng về đối tượng tâm ý nghĩa là tất cả những đối tượng của tri giác ta: núi, sông, cây, cỏ, người, vật, xã hội... ta có cơ hội nhìn sâu để thấy được tự tính vô thường, liên hệ sinh khởi và tồn tại của mọi hiện tượng. Khi năng lượng của niệm, định và tuệ đã hùng hậu, ta đạt tới một cái thấy sâu sắc về thực tại và ta đạt tới tự do lớn, không còn vướng mắc vào sự sợ hãi, thèm khát, hận thù và tuyệt vọng. Bụt và các vị hiền thánh đã đạt tới cái thấy ấy cho nên họ có tự do lớn, gọi là giải thoát. Thực tập thiền, chúng ta cũng đạt được tới tự do, và dù tự do của ta tuy chưa lớn, nhưng chúng ta cũng đã tháo gỡ được rất nhiều tri giác sai lầm và thành kiến, do đó ta không còn đau khổ nhiều như trước mà lại có thể có nhiều an lạc trong sự sống hiện tại.

Niệm, Định và Tuệ là những năng lượng chế tác ra do sự thực tập thiền. Thực tập thiền giúp ta xóa bỏ thái độ cố chấp, giáo điều, trở nên bao dung, độ lượng, biết hiểu, biết thương sâu sắc hơn và chuyển hóa được nhiều đau khổ trong tâm như thèm khát, vướng mắc, kỳ thị, hận thù, nhỏ nhen, ích kỷ, sợ hãi, tuyệt vọng... Người Tây phương từ cuối thế kỷ 20 đã bắt đầu chú ý tới thiền và rất đông người, nhất là giới trẻ và giới trí thức, đã tìm tới để học hỏi và thực tập thiền. Những tiện nghi vật chất không đủ để làm ra hạnh phúc. Những sầu khổ ưu tư và thắc mắc của ta chỉ có thể được giải đáp bằng một đời sống tâm linh. Đạo Bụt và sự thực tập thiền hiện đang đáp ứng cho đông đảo quần chúng về những nhu yếu đó. Đạo Bụt có khả năng đi đôi với tinh thần khoa học, hợp tác với khoa học trong lĩnh vực khám phá những sự thực tâm linh, sinh học và vật lý học. Đạo Bụt rất chuộng thực nghiệm và Bụt Thích Ca thường khuyên dạy đệ tử không nên mất thì giờ luận thuyết về những chuyện siêu hình.

Kết Sử

Kết sử là những gút thắt hoặc những khối đam mê, đè nén, sợ hãi, lo lắng, v.v.. đã kết tụ lại trong chiều sâu tâm thức, có khả năng trói buộc và sai sử ta làm, nói và nghĩ những điều ta thật sự không muốn làm, nói và nghĩ. Kết sử được gieo trồng và nuôi lớn bằng nếp sống không chánh niệm hàng ngày. Chánh niệm có khả năng nhận diện chúng mỗi khi chúng được phát hiện trên bề mặt của tâm thức. Những kết sử này đã được hình thành trong quá khứ, có khi dưới dạng thói quen được cha mẹ trao truyền lại trong gia sản di truyền. Ta không cần đi về quá khứ để tìm kiếm, không cần phải đào bới trong ký ức để tìm ra nguyên do của những rối nhiễu về tâm trí. Năng lượng chánh niệm có khả năng nhận diện những kết sử khi chúng trồi lên và nhìn sâu vào chúng, ta đã có thể thấy được cội nguồn của những rối nhiễu kia. Thiền pháp chánh niệm chú trọng tới giây phút hiện tại, thấy rằng nhìn sâu vào hiện tại ta có thể thấy được cả quá khứ và tương lai. Mười loại kết sử chính là: đam mê; thù hận; tri giác lầm lạc; tự cho mình là hơn người, kém người hay bằng người; nghi ngờ; cho rằng hình hài này là ta; nhận thức nhị nguyên; có những cái thấy sai lầm, cố chấp; không có khả năng buông bỏ nhận thức hiện tại để có thể vượt tới một nhận thức cao hơn; và mắc kẹt vào các tư tưởng mê tín, dị đoan và hình thái nghi lễ. Sức khỏe và hạnh phúc của ta tùy thuộc rất nhiều tới sự chuyển hóa những kết sử nói trên.

Mạn

Thiền tập giúp ta thấy được tính tương quan tương duyên của vạn vật: không có hiện tượng nào, người hay vật, có thể tự mình sinh khởi và tồn tại độc lập. Cái này phải nương vào cái kia mà sinh khởi và tồn tại. Đó là cái thấy duyên sinh, có khi gọi là tương tức hoặc vô ngã. Vô ngã nghĩa là không có một thực tại biệt lập và vĩnh hằng nào nằm trong lòng sự vật. Tất cả đều chuyển biến hàng giờ hàng phút. Cha và con chẳng hạn không phải là hai thực tại biệt lập: cha có trong con và con có trong cha, con là sự tiếp nối của cha về tương lai, cha là sự tiếp nối của con về nguồn cội. Hạnh phúc của con có liên hệ tới hạnh phúc của cha; nếu cha không có hạnh phúc thì hạnh phúc của con cũng không thể nào toàn vẹn. Vì cái này liên hệ tới cái kia, cái này nằm trong cái kia, không có cái kia thì cái này không có cho nên bản chất của vạn hữu là vô ngã. Người có tuệ giác không thấy có những cái ta riêng biệt và độc lập.

Trong giới tâm lý trị liệu, có mặc cảm mình thua kém người là một chứng bệnh. Trong thiền học, có mặc cảm hơn người hay có mặc cảm bằng người cũng vẫn còn là bệnh. Bởi vì cả ba thứ mặc cảm đều được xây dựng trên ý niệm về một cái ta riêng biệt. Cả ba thứ mặc cảm đều được gọi là mạn: ưu mạn, liệt mạn, đẳng mạn. Những khổ đau do giận hờn, ganh tỵ, thù hận, tủi hổ, v.v.. gây ra chỉ có thể được hoàn toàn chuyển hóa khi ta đạt tới cái thấy vô ngã. Đây là nền tảng sự thực tập trị liệu của thiền.

Tàng thức

Thiền sư Thường Chiếu dạy rằng nếu biết được đường lối vận hành của tâm thì sự thực tập thiền sẽ trở nên dễ dàng. Tâm lý học đạo Bụt rất phong phú. Duy Thức Tông của đạo Bụt nói tới tám thức: năm thức cảm giác, ý thức, mạt na thức và tàng thức. Mạt na là năng lượng bám víu vào ý tưởng có một cái ta riêng biệt độc lập và thường tại, đối lập với những cái không ta. Tàng thức là phần sâu thẳm nhất của tâm thức, chứa đựng tất cả những hạt giống của tất cả các tâm hành như buồn, vui, giận, ghét... Những hạt giống này khi được tưới tẩm hoặc tiếp xúc thì trồi lên ý thức thành những vùng năng lượng. Tàng thức giống như một mảnh vườn chứa đủ các loại hạt giống, còn ý thức thì giống như người làm vườn.

Trong công phu thiền tập, ý thức làm việc nhưng tàng thức cũng làm việc âm thầm ngày đêm. Nhận diện và chuyển hóa những kết sử nằm sâu trong tàng thức đưa tới sự giải thoát và trị liệu. Đó gọi là chuyển y, nghĩa là sự chuyển hóa được thực hiện ngay ở cơ sở hạ tầng của tâm thức.

Sự lưu thông của tâm hành

Khi những ước muốn, sợ hãi hoặc uất ức bị dồn nén, sự lưu thông của các tâm hành có thể bị tắc nghẽn và nhiều biến chứng có thể xảy ra trong lĩnh vực thân và tâm. Tuy bị dồn nén, chúng vẫn có tác dụng sai sử và ràng buộc ta, vì vậy chúng là những khối kết sử quan trọng. Ta có thói quen lẩn tránh chúng, làm như chúng không có mặt, và vì vậy để cho chúng không có cơ hội trồi lên trên ý thức. Ta đi tìm sự quên lãng trong tiêu thụ. Ta không muốn trở về với ta, vì ta có cảm tưởng khi trở về với ta, ta sẽ phải đối diện với những nỗi khổ đau và những niềm thất vọng ấy. Ta muốn cho ý thức được chiếm cứ để các nỗi khổ niềm đau trong ta không có chỗ phát hiện. Vì vậy ta xem truyền hình, nghe truyền thanh, xem sách, đọc báo, nói chuyện, đánh cờ, bài bạc, uống rượu... để tìm lãng quên. Có thể ta không ý thức rằng ta tiêu thụ, và giải trí như thế chỉ là để cho ý thức bên trên luôn luôn bận rộn và để cho các kết sử bên dưới không có dịp trồi lên. Đó là sự dồn nén; sự dồn nén này tạo ra tình trạng thiếu lưu thông của các tâm hành. Cũng như khi máu huyết không được lưu thông thì nhiều triệu chứng bệnh hoạn xuất hiện nơi cơ thể. Khi các tâm hành bị dồn nén không lưu thông thì các triệu chứng tâm bệnh, và cả thân bệnh nữa, cũng bắt đầu xuất hiện. Vì vậy ta phải can đảm chấm dứt sự dồn nén, để các tâm hành: ước muốn, sợ hãi hoặc uất ức được dịp phát hiện, nhận diện và chuyển hóa. Nếu không thực tập thiền, nếu không có năng lượng của chánh niệm thì ta không đủ sức làm việc này. Cho nên chế tác chánh niệm bằng thiền tập hàng ngày giúp ta nhận diện, ôm ấp và chuyển hóa được những nỗi khổ niềm đau của ta. Nếu không có năng lượng chánh niệm thì ta không có khả năng đối diện và xử lý chúng, và ta sẽ bị chúng làm cho tràn ngập. Mỗi lần nhận diện và ôm ấp chứ không phải đè nén hoặc đàn áp thì những năng lượng tiêu cực kia sẽ yếu bớt đi một chút, và dăm bảy phút sau đó chúng sẽ trở về tàng thức dưới dạng những hạt giống. Lần sau phát hiện, chúng cũng sẽ được nhận diện ôm ấp như thế và cũng sẽ trở về tàng thức. Như vậy, ta không còn sợ hãi chúng, đàn áp chúng, dồn ép chúng như thế và tình trạng lưu thông của tâm ý sẽ được thiết lập trở lại; những biến chứng tâm lý và cơ thể kia sẽ không còn.

Mũi tên thứ hai

Chánh niệm trước hết là khả năng nhận diện đơn thuần về sự có mặt của một đối tượng, không phê phán, không xét xử, không tham đắm vào đối tượng ấy, cũng không chán ghét xua đuổi đối tượng ấy, và nhất là không xem thường hoặc không quan trọng hóa nó. Ví dụ: ta có một vùng đau nhức trong cơ thể. Ta chỉ nhận diện sự đau nhức ấy. Với năng lượng của định và tuệ ta có thể thấy và hiểu được tầm quan trọng và nguyên do đích thực của vùng đau nhức ấy, và sự chữa trị sẽ được căn cứ trên tuệ giác mà niệm và định đem lại. Nếu ta lo lắng nhiều quá, nếu ta tưởng tượng nhiều quá, thì những lo lắng và những tưởng tượng ấy sẽ làm ta căng thẳng, và sự đau nhức sẽ tăng lên. Nó không phải là ung thư mà ta tưởng tượng nó là ung thư, ta có thể lo lắng và sầu não đến mất ngủ. Khổ đau vì thế tăng lên gấp bội và sẽ đưa tới một tình trạng nghiêm trọng hơn. Trong kinh Tạp A Hàm Bụt đưa ra ví dụ về mũi tên: nếu một mũi tên thứ hai bay tới và cắm đúng ngay vào vết thương gây ra do mũi tên đầu thì sự đau nhức sẽ không nhân thành hai mà sẽ nhân thành mười. Vì thế ta đừng để cho một mũi tên thứ hai hay một mũi tên thứ ba (tưởng tượng và lo lắng) bay đến.

Tai họa của dục

Theo thiền quán, hạnh phúc chân thực là sự có mặt trong giây phút hiện tại; là khả năng tiếp xúc được với những mầu nhiệm của sự sống có mặt trong giây phút ấy, và khả năng hiểu biết, thương yêu chăm sóc và làm hạnh phúc cho những người chung quanh. Đeo đuổi theo những đối tượng của dục như tiền tài, danh vọng, quyền hành và sắc dục, người ta đã không tạo dựng được hạnh phúc chân thật mà còn tạo ra nhiều khổ đau cho bản thân và cho kẻ khác.

Con người đầy dẫy ham muốn và ngày đêm chạy theo dục là con người không có tự do; không có tự do thì không có thảnh thơi, không có hạnh phúc. Ít ham muốn, bằng lòng với một nếp sống giản dị và lành mạnh, để có thì giờ sống sâu sắc từng phút giây của sự sống hàng ngày, và chăm sóc thương yêu cho những người thân; đó là bí quyết của hạnh phúc chân thật. Trong xã hội bây giờ, quá nhiều người đang đi tìm hạnh phúc trong đường hướng của dục, vì vậy chất lượng của khổ đau và tuyệt vọng đã tăng trưởng rất nhiều. Kinh Ở Rừng nói tới dục như một chiếc bẫy. Bị sập vào bẫy dục, người ta sầu khổ mất hết tự do, và không thể nào có được hạnh phúc chân thật. Sợ hãi và lo lắng cũng đóng một vai trò quan trọng trong sự tạo tác khổ đau. Nếu ta có đủ tuệ giác để chấp nhận một nếp sống thiểu dục và tri túc thì ta sẽ không cần phải lo lắng và sợ hãi nữa. Chỉ vì nghĩ rằng ngày mai ta có thể mất công ăn việc làm và sẽ không thể có được lương bổng hàng tháng như bây giờ nên ta thường trực sống trong sự lo lắng phập phồng. Do đó con đường tiêu thụ ít và có hạnh phúc nhiều, được xem như là con đường thoát duy nhất của nền văn minh hiện tại.

I'm yours

Tặng cún yêu :*

Ruby Paramater's Default Value


def foobar(a, b='b', c)
...
end

foobar(1, 2, 3)
# a => 1
# b => 2
# c => 3

foobar(1, 2)
# a => 1
# b => 'b'
# c => 2


define bar(a, b='b', c='c', d)

bar(1, 2, 3)
# a => 1
# b => 2
# c => 'c'
# d => 3


---
Prefer using default value for parameter from right to left direction

References:

Friday, September 12, 2008

Ruby Equality


a = "a string"

a === "a string" # => true
a === String # => false

String === "xyz" # => true
"xyz".kind_of? String # => true

(1..5) === 3 # => true
(1..5).include? 3 # => true

/\d/ === "123" # => true

# === is used in "case" statement

b = a
a.equal? b # Returns true if the object_id’s are equal.

1 == 1.0 # => true (do type conversion)
1.==(1.0) # underlying of ==
1.eql? 1.0 # => false (don't do type conversion)



References:

Wednesday, September 10, 2008

Amazon Search does not have spelling suggestion function


Quite surprise !!
Spelling suggestion is like a standard feature for search engines (Yahoo, Google, MSN, Ask.com, PowerSet, AltaVista, Vivisimo, Clusty, Lycos, SearchMe.com, and xalo.vn (Vietnamese) )

I found that Cuil and Baidu (Chinese) also don't have English spelling suggestion.

Sunday, September 7, 2008

Sống hết mình

Bố tôi bảo "con thật thà quá".
Chị gái tôi bảo "em suy nghĩ đơn giản quá".
Bạn gái tôi bảo "anh chẳng lãng mạn gì cả nhưng được cái chân thật và nhiệt tình".

Vậy nên có thể nói tôi là người thật thà, suy nghĩ đơn giản, không lãng mạn nhưng sống nhiệt tình. Tính tôi thích cái gì thì làm tốt cái đó. Không thích không làm nên đôi khi có phần ương bướng, cứng đầu.

Hôm nay có người comment trên blog của tôi ở bài viết này và để lại thêm lời nhắn "btw, còn nhớ em là ai không nhỉ :P". Thú thật tôi chịu. Lên giường đi ngủ rồi, nhưng vẫn bị ám ảnh bởi câu hỏi. Cố nhớ lại xem cao thủ JavaScript này là ai mà lại biết mình từ trước vậy ta?

Liên tưởng một hồi nhớ tới một em trai K46 học cùng trường đại học, dưới tôi hai khóa. Hồi tôi mới tốt nghiệp và còn đi làm ở phòng nhận dạng và công nghệ tri thức thuộc viện khoa học việt nam. Hồi đó phòng tôi nhận sinh viên thực tập và tôi hướng dẫn em đó làm đề tài. Tôi nhiệt tình lắm, vì nghĩ tới hồi sinh viên, bơ vơ không có ai chỉ đường dẫn lối, nên tôi hết lòng chỉ bảo cho em đó. Tiếc là em không theo đề tài nữa. Trước lúc chia tay, em có lên phòng gặp tôi và tặng tôi một món quà chia tay. Đó là một cây bút bi Packer. Tôi rất xúc động vì với sinh viên thì đó là một cây bút quý. Người ta quý mình thực sự thì mới tặng quà như vậy. Lúc đó chẳng biết nói gì hơn là chúc em trai thành công trên con đường đã chọn. Đã hơn 3 năm rồi. Cây bút đó tôi vẫn giữ.

Chắc các bạn đang cười tôi viết lăng nhăng lải nhải, chuyện này vắt sang chuyện kia không có logic. Tôi cũng đang cười đây. Có cảm hứng thì viết thôi, nội dung lộn xộn cũng không sao phải không :)

Sống hết mình để lại những kỷ niệm đẹp và không phải tiếc nuối khi nghĩ lại. Đó là kết luận tôi rút ra với chuyện cây bút packer trên.

Hồi còn làm ở phòng tôi thích nghiên cứu về xử lý tiếng nói lắm. Hồi được VEF 2005, nhất định chỉ theo ông thầy Alan Black làm về tổng hợp tiếng nói ở CMU mà không theo ai khác. May mà được ông ấy nhận. Tiếc là VEF không có tiền cho tôi đi học. Nghĩ lại cũng thấy mình lúc đó extreme quá. Không chọn những trường khác để dự phòng.

Nghĩ lại cũng hơi tiêng tiếc. Đó là thêm một lần sống hết mình nữa. Lần này khiến tôi bị mất tinh thần vài tháng. Kết luận rút ra, sống hết mình, quá tin tưởng có thể khiến bạn bị sa sút tinh thần nặng nề nếu mọi chuyện diễn ra không theo ý mình mong muốn.

Thêm một lần sống hết mình nữa với sở thích làm web apps. Tốt nghiệp master ở NUS, nhất định đi làm công ty ngoài về web. Sau mấy tháng lặn lội đi đường vòng (vì lúc đó kinh nghiệm về web của tôi là zero) thì cũng xin được việc ở Spiragram. Làm được vài thàng thì bị stress nặng nề đến mức ốm liên tục. Stress do thay đổi môi trường đột ngột, stress vì project đầu tay nặng ký (làm startup cho khách hàng bên Mỹ). May mà hồi phục được nhờ gia đình, người yêu hết lòng động viên, an ủi và nhờ đọc sách của thiền sư Thích Nhất Hạnh.

Lần này kết luận. Sống hết mình khá nguy hiểm. Có thể khiến mình bị bệnh nếu không có chuẩn bị trước về tâm lý.

Được cái là sau mỗi lần phục hồi đều thấy mình trưởng thành hơn. Có câu "no pain, no gain" kể ra cũng đúng :) Giờ thì khả năng "chịu đau" đã tăng rất nhiều. Trở nên tự tin hơn, lỳ lợm hơn, điềm tĩnh hơn. Không kỳ vọng nhiều (để rồi thất vọng). Biết cười nhiều và vui sống hơn trước.

Kết luận cuối cùng, sống hết mình nói chung là tốt. Nó giúp mình có những tiến bộ vượt bậc trong khoảng thời gian ngắn.

Thursday, September 4, 2008

Ba làn sóng công nghệ thông tin

Bài này tớ viết tùy hứng, không có references và không kiểm định tính đúng sai :)

Làn sóng thứ nhất: máy tính cá nhân và nhu cầu ứng dụng máy tính trong công việc kinh doanh

Được bắt đầu từ khi Bill Gate bỏ đại học Havard để thành lập Microsoft vào đầu năm 80s. Một đế chế hùng mạnh nhất trong ngành công nghiệp thông tin được trào đời. Lúc đó tôi vẫn còn bú mẹ :)
Bạn có bao giờ tự hỏi: Điều kiện thuận lợi nào đã khiến cho một Microsoft trẻ người non dạ qua mặt được đàn anh dày dạn kinh nghiệm, tên tuổi lẫy lừng IBM để vươn lên ngôi bá chủ?
Theo tôi đó chính là do "môi trường thay đổi" khiến chú khủng long ăn cỏ IBM phải lao đao và tạo điều kiện cho Microsoft tí hon trở nên thành khủng long bạo chúa:

Trước năm 80, máy tính là thứ hàng xa xỉ phẩm. Chỉ có những trường, viện nghiên cứu lớn được nhà nước tài trợ mới có máy tính để tìm tòi nghiên cứu. Còn nhớ Bill Gate hồi mới tiếp xúc với máy tính phải dùng một máy đầu cuối, gửi chương trình của mình dưới dạng băng giấy tới một máy tính trung tâm ở nơi khác. Máy tính trung tâm đó sẽ chạy chương trình và trả lại kết quả cho máy đầu cuối. Bill Gate xem kết quả trả về, nếu có lỗi thì phải sửa chương trình, viết lại chương trình trên băng giấy khác rồi tiếp tục vòng lặp nói trên. Tưởng tượng thế thôi đã thấy việc lập trình trước năm 80 vất vả và mất thời gian như thế nào. Gần giống truyện "thầy bói mù xem voi" của Việt Nam :)

Đầu năm 80 bắt đầu xuất hiện máy tính cá nhân với giá rẻ nhờ công nghệ với và việc được sản xuất hàng loạt. IBM lúc đó đã bán máy tính giúp trợ giúp việc kinh doanh (IBM = International Bussiness Machine) với giá tiền rất cao và chỉ có những công ty lớn, việc quản lý kinh doanh phức tạp mới cần và có tiền mua được. Chính IBM khởi đầu cho máy tính cá nhân và đặt hàng Microsoft viết hệ điều hành (sau này là DOS) cho dòng máy tính đó. Rất tiếc là IBM lúc đó chỉ tập trung vào việc bán máy (phần cứng) mà thương thảo hợp đồng với Bill Gate không cẩn thận, để Bill Gate nắm thế chủ động trong việc kiểm soát hệ điều hành (phần mềm). Tiếp sau đó là thời kỳ phát triển rực rỡ của máy tính cá nhân. Hàng loạt các hãng sản xuất máy tính theo kiến trúc máy tính của IBM với giá ngày càng rẻ va tốc độ xử lý ngày càng tăng. IBM dần dần mất thì phần bán máy. Ngược lại Microsoft càng ngày càng mở rộng được thị trường phần mềm nhờ hệ điều hành DOS gần như được đính kèm sẵn với những máy tính cá nhân giá rẻ đó.

Microsoft bắt đầu phát triển các sản phẩm hỗ trợ việc kinh doanh và ứng dụng văn phòng trên nền hệ điều hành của mình. Bộ Microsoft Office, bộ quản trị dữ liệu Access cùng ngôn ngữ lập trình BASIC ngày càng trở nên phổ biến và thống trị thị trường máy tính cá nhân.

Làn sóng thứ hai: mạng Internet, web, và sự bùng nổ thông tin

Năm 1992 Internet ra đời. 1997, Internet đến Việt Nam. Lúc đó tôi học cấp 3, và bắt đầu có chiếc máy tính đầu tiên. Internet là gì, tôi không hề biết.
Sự khởi nguồn và những thay đồi do làn sóng này mang lại cũng giống như làn sóng trước. Bắt đầu từ nhu cầu của bộ quốc phòng Mỹ, cần truyền thông liên lạc nội bộ (mạng intranet). Bộ quốc phòng Mỹ bỏ tiền để các nhà khoa học chế tạo nên một giao thức truyền thông đơn giản mà hiệu quả. Giao thức TCP/IP ra đời từ đó và trở thành nền tảng của mạng Internet kết nối hàng tỷ máy tính và người dùng trên thế giới hiện nay. Tiếp đó giao thức HTTP ra đời giúp người dùng trao đổi tài liệu một cách hết sức dễ dàng. Tôi tạo một trang web, "bỏ" vào một "địa chỉ" trên mạng. Tôi báo cho bạn biết địa chỉ này, bạn dùng nó để xem tài liệu tôi viết. Rất đơn giản và tiện lợi. Ai cũng làm được. Việc tạo và trao đổi thông tin dễ dàng khuyến khích người dùng tạo ra nội dung số và truyền thông với nhau qua mạng máy tính. Giúp xóa bỏ khoảng cách địa lý và tạo ra những cơ hội có một không hai cho toàn nhân loại. Microsoft lúc này đã yên vị ở ngôi khủng long bạo chúa và ở vào tình huống tương tự như IBM hồi trước. Lần "môi trường thay đổi" đã/sẽ khiến Microsoft lao đao và trở nên lụi bại.

"những cơ hội có một không hai cho toàn nhân loại" đó là: Tự do thương mại (điện tử) => Amazon và eBay hoặc như Hai Lúa ở Vietnam có thể tạo website chào hàng với toàn thế giới. Tự do liên lạc với các sản phẩm chat trực tuyến như Yahoo Messenger, voice chat như Skype. Tự do sáng tạo => online Games, Forum, Blog. Nhờ sự tự do mà Internet mang lại, càng nhiều người sử dụng và đóng góp tri thức của mình vào nó. Internet đã trở nên một kho tri thức khổng lồ, một sân chơi bao la, một môi trường làm việc, thông tin liên lạc không thể thiếu với toàn thế giới. Với tôi, ngày nay mà thiếu Internet cũng giống như là thiếu điện thiếu nước vậy.

Microsoft đã không đánh giá đúng tiềm năm của Internet, say sưa kiếm tiền với những sản phẩm trên "máy tính cá nhân" mà bỏ lơ các sản phẩm cho "máy tính toàn cầu" - mạng Internet. Google ra đời năm 1998 là nhờ các ông lớn (Microsoft, Yahoo, NEC) bỏ lơ thị trường search engine. Với chiến lược đúng đắn, sau 10 năm (2008) Google đã trở thành bá chủ của Internet. Microsoft tuy nhiều tiền lắm của cũng không thể cạnh tranh được. Vì sao vậy? Bạn có bao giờ tự hỏi?

Đó là vì sự phát triển cần một thời gian ấp ủ và nuôi dưỡng lâu dài theo hướng đi đúng đắn. Cái Microsoft không thể dùng tiền để mua là thời gian và sự sáng tạo. Có thể bỏ rất nhiều tiền để thuê nhân công, để mua máy tính, để xây dựng khu công nghiệp phần mềm. Nhưng không thể bỏ tiền để ý tưởng trưởng thành một sớm một chiều. Ý tưởng cần những bộ óc lớn phôi thai, và nuôi dưỡng. Ý tưởng cần những bộ óc khoáng đạt, không bị cái lợi nhỏ làm mờ mắt để phát triển. Ý tưởng cần niềm cảm hứng, niềm đam mê bồi đắp để ngày càng trở nên mạng mẽ. Những cái đó, tiền hoặc rất rất nhiều tiền đều không thể mua được.

Theo tôi Microsoft không nắm được làn sóng thứ hai vì tư tưởng Microsoft lúc đó không đủ khoáng đạt bằng hai cậu sinh viên bộ môn khoa học máy tính của Stanford (hai thành viên sáng lập Google). Làm nghiên cứu với niềm đam mê thực sự và nhờ có niềm đam mê đó ý tưởng đã phôi thai đã tới và trưởng thành nơi họ.

Hiện tại tôi đang làm lập trình viên phát triển ứng dụng web phần lớn là vì tôi yêu thích Internet. Yêu thích sự khoáng đạt, và kho tri thức khổng lồ nơi Internet. Một sản phẩm web app có thể phục vụ triệu triệu người dùng hết sức hiệu quả với giá rẻ hoặc hoàn toàn miễn phí (như Google Search, Mails, Chat ..). Tôi nhận ra làn sóng thứ hai hơi chậm do những yếu tố chủ quan và khách quan. Khách quan là do hồi đó Vietnam còn nghèo, sinh viên còn nghèo hơn, làm sao có tiền mà kết nối mạng Internet. Tôi bắt đầu dùng Internet vào năm 2003, lúc đó đã tốt nghiệp và đi làm, phần nhiều vẫn dùng Internet ở cơ quan. Ở Vietnam lại nhớ mạng Internet đã mang cơ hội đến với Netnam đầu tiên. Nhưng thật tiếc họ đã không biết tận dụng để phát triển thành một tập đoàn lớn. Để VDC và FPT dù đến muộn vài năm qua mặt dễ dàng. Tôi tự hỏi mình "có phải Netnam không đủ khoáng đạt nên ý tưởng và cơ hội đã dời đi tìm chỗ khác?".

Từ khi sang Singapore học tập, tôi có điều kiên trau dồi tiếng Anh và đọc được nhiều tài liệu tốt về Khoa học máy tính, programming và Web 2.0. Từ đó giúp tôi định hình và nắm bắt được làn sóng thứ hai này. Tôi tự hào nói rằng tôi đã không bị tụt hậu :) Tôi đang cưỡi trên làn sóng thứ 2 này. Nó sắp tiến tới mốc phát triển đỉnh cao nhất. Bạn sẽ thấy ngày càng nhiều ứng dụng web ra đời. Và các nước nghèo sẽ khai thác Internet để rút ngắn khoảng cách với các nước phát triển ra sao.

Làn sóng thứ 3: Tự do tính toán với chip đa lõi và xử lý song song

Rất mới thôi, năm 2007, làn sóng này manh nha hình thành với việc Intel công bố chip đa lõi sẽ là bước phát triển chiến lược tiếp theo của hãng và Nvidia cho ra đời kiến trúc bộ xử lý đồ họa Tesla cho phép người dùng tận dụng sức mạnh tính toán (khủng khiếp) của card đồ họa cho các tác vụ khác. Lúc đó nhờ việc học lập trình Game mà tôi quan tâm tới cấu hình máy tính bình dân nhưng mạnh về khả năng tính toán. Cũng như những làn sóng trước. Lúc khởi đầu, rất ít người để ý tới nó. Bạn hãy tưởng tượng với chip đa lõi và card màn hình mạnh, vào năm 2009, một cậu sinh nhiên nhàng nhàng cũng có thể lắp được một dàn máy với khả năng xử lý vài TeraFLOPS (mạnh gấp hàng trăm lần siêu máy tính Deep Blue đánh bại kiện tướng cờ vua thế giới). Chàng sinh viên mơ mộng này có thể dùng sức mạnh tính toán này để làm gì? Tôi cũng không thể biết :D Có thể là:
  • Dự báo thời tiết để giúp cha mẹ cậu chủ động việc đồng áng?
  • Dự đoán kết quả xổ số để trúng to hơn?
  • Phá mật mã kiếm tiền ăn quà vặt?
  • Giải bài toán phân luồng giao thông cho Hà Nội đỡ tắc nghẽn hơn?
  • .........................................
Tôi mời bạn hãy làm dài thêm danh sách ở trên và cùng nhau nhìn nhận cơ hội khi làn sóng thứ 3 này chảy qua.

Cuối cùng, xin cảm ơn những ông tổ đã khai sinh ra nền khoa học máy tính và điện toán hiện đại. Bạn hãy đọc một bài viết rất hay của anh Hưng về những con người đó.

Tuesday, September 2, 2008

My team

I'm a lucky guy because my current team (Jason, Dinh Hai and Tien Dung) is GREAT.

The team leader, Jason, is an artist. He write songs, design nice web front-ends. He is also a great programmer. In past few years, he used Prototype, Scriptaculous for most JavaScript works. When we decided to switch to jQuery, he just need few days to master it. How about Ruby and Rails? Well, he can do Ruby meta-programming and write Rails plugins. He is the bridge among us, our boss and customers.

Another teammate, Dinh Hai, is the only person I know that can smile in every situation. He has a GREATE attitude while working. No matter hard the jobs are, if he said he will do it, sure it will be done well. Dinh Hai is well know for his rich experience: he do a lot of projects using various programming languages and tools. He know Java, PHP, ASP, .NET equally well. Before become a Web Developer, he was a enterprise developer at Singtel (the biggest telecom company in south-east asia) that explains why he is great at back-end system (servers, databases, networks).

The last one, Tien Dung. I have a strong background in computer science and good at problem solving. I have no difficulty in understanding algorithms, reading research papers and applying newest technologies.

One of us have different strengths and combining together we are a world-class web development team :)

One more reason that make our team GREATE is that we all know:
United we will.
Divided we fail.

Monday, September 1, 2008

10 năm

* 10 năm để thành thạo lập trình (xem ở đây)
* 10 năm để sản phẩm chín muồi (xem ở đây)
* 10 năm để trưởng thành
* 10 năm để thử độ bền của team
* 10 năm để xây dựng sự nghiệp
* 10 năm để thành công

10 năm! Bạn có dám?