2013-01-11

Đi tới tương lai, bước nhảy alpha trong Doraemon ... và đôi điều suy nghĩ về việc training

Buổi tối rảnh rỗi ...

Mình ngồi nghĩ lại 1 chút về việc training. Đây là cũng là một phần công việc của mình. Có một điều mình luôn tự nhủ "đừng có giải thích gì đó cho một người không thể hiểu hoặc không muốn tìm hiểu". Tuy nhiên nhiều lúc mình lại không làm vậy. Nếu không thể làm được thì mọi công việc training hầu như vô nghĩa. Nó cũng giống như chuyện học vật lý cao siêu mà mọi người hay thấy: đi tới tương lai, không gian n-chiều ...

Mình đề cập chuyện này vì gần đây vừa nhậu và có nói chuyện vui với 1 thằng bạn. 2 thằng gặp nhau nhậu khuya nói chuyện phiếm từ kinh tế, chính trị, rồi qua dạy dỗ con cái ... rồi tới vật lý. Cũng là điều lý thú, nó gợi đến chuyện training kể cả cho bản thân và cho người khác, hoặc cho con trẻ sau này.

 Chẳng là lúc còn đi học phổ thông mình cũng có nghe qua những điều "cao siêu" về vật lý như vậy. Nhưng thực sự thì chẳng có bận tâm tìm hiểu nó là gì, cũng coi truyện Doraemon nào là bước nhảy alpha ... lúc đó game PS hấp dẫn hơn. Hẳn nhiều người cũng như thế. Thực sự nếu tìm hiểu cũng không khó tìm được tài liệu có thể đọc hiểu.

Bắt đầu bằng chuyện đầu tiên "đi tới tương lai", một khái niệm mà thực ra mình cũng không quan tâm cách giải thích bản chất cũng như mãi khi vào đại học mới có thể tìm được các giải thích dễ hiểu (nếu tính theo khái niệm thông dụng mà lớp Toán mình học thì không biết giải thích = ngu "cơ bản"). Mình nhận ra mức độ quan tâm của người muốn tìm hiểu, sự truyền tải và nâng cấp từ những điều người đọc đã biết và theo 1 quá trình mới chính là điểm mấu chốt.

Lúc mới vào ĐH mỗi lần về nhà mình thức rất khuya và hình như xem 1 chương trình trên TV hình như 2 hay 3h gì đó. Mà chẳng hiểu sao những chương trình như vậy rất ít khi chiếu buổi sáng. Cơ bản chương trình đó làm cho nó không có gì khó hiểu và mình nghĩ sau này cũng có thể giải thích cho con mình hoặc kiếm cho nó xem những gì tương tự.

Ý tưởng nó như sau: chấp nhận vận tốc ánh sáng là lớn nhất. Không chấp nhận chuyện này thì dừng ở đây. Còn nó có lớn nhất không thì chẳng ai biết, mà cũng chưa ai nói Einstein sai cả, nên mọi người vẫn cứ cho là vậy. Giả sử có một con tàu di chuyển với vận tốc thấp hơn vận tốc ánh sáng 5km/h. Và lúc đó trên tàu có một cô bé chạy với vận tốc lớn hơn 5km/h cùng chiều con tàu.

Như thế thì tính toán vận tốc tương đối với 1 người dưới đất sẽ phải lớn hơn vận tốc ánh sáng. Điều này là không thể được vì vi phạm việc chúng ta đã chấp nhận vận tốc ánh sáng lớn nhất. Như vậy thì đối với người dưới đất con bé "phải có" tốc độ nhỏ hơn 5km/h, tức cô bé trong mắt người dưới tàu (nếu thấy được, toàn bộ đang là lập luận) phải hoạt động chậm hơn (kiểu từ từ như trong film Matrix ...). Điều này có nghĩa là cô bé trên tàu thì hoạt động bình thường, còn đối với người dưới tàu thấy cô bé hoạt động rất chậm hay nói ngược lại thời gian những người ở dưới tàu trôi qua nhanh hơn.

Nếu con tàu này cứ chạy vòng vòng thì khoảng chênh lệch này càng ngày càng đáng kể. Có khi tàu dừng và cô bé xuống tàu thì thế giới đã trải qua mấy chục năm ... àh như vậy được gọi là đến tương lai nhưng mà chỉ đến rồi thôi ... 1 chiều. Có lẽ như vậy thì ít người muốn vì sẽ mất người thân, thành kẻ ngu ngơ trong 1 thế giới xa lạ. Hoặc họ là những người bị bệnh hiểm nghèo ... cần nền y học tiến bộ hơn. Đến đây thì mình nghĩ một đứa bé vẫn có thể hiểu chừng lớp 5 lúc đó mình nhớ đã tính toán cộng vận tốc.

Về chuyện thứ 2 để kết thúc và đi ngủ mình sẽ nói về bước nhảy alpha trong Doraemon với 1 cách giải thích mình coi được trong một chương trình dạy cho thiếu nhi của Pháp sau này mình mới biết là khá thông thường (xin lỗi lâu quá không nhớ chương trình nó tên gì nữa), lẽ dĩ nhiên không giống cách Doraemon giải thích cho Nobita. Đầu tiên phải nhắc đến khái niệm topology.

Để đơn giản thì hình dung với người không chuyên 1 ví dụ thường dùng là vẽ 1 vòng tròn lên 1 miếng cao su. Rồi chúng ta có thể kéo miếng cao su về 4 hướng, cái hình được vẽ sẽ là hình vuông hay hình chữ nhật hoặc đại loại cũng giống vậy. Như vậy hình tròn với hình vuông là 1 trong topo, nó khác nhau là do bạn cảm nhận được ra sao. Topo là một cái cơ sở cần cung cấp và tới đây mình sẽ nói đến sự hệ thống, quá trình và sự nâng cấp trong training.

Bước thứ 2 một ví dụ để chứng minh việc cảm nhận khác nhau và trong bước này liên quan đến khái niệm "hình dạng vũ trụ". Một game hầu như quen thuộc mà đến giờ nếu ai là game developer vẫn tập làm khi vào một platform mới là asteroid, astronoid hay spaceship, space war ... tiếng Việt đều gọi là "bắn phi thuyền".

Lấy ví dụ game 2D, khi con tàu đi lên hết màn hình phía trên nó lại xuất hiện ở dưới, tương tự như vậy khi đi 2 bên, kể cả đi chéo ...Nếu chỉ nhìn màn hình thì "chúng ta" sẽ giống những con người trong phi thuyền chỉ cảm nhận 2D cứ đi thằng hoài rồi lại về chỗ cũ. Họ có thể lái phi thuyền lên xuống qua, lại nhưng không thể bay ra khỏi màn hình video game được. Vậy liên quan gì đến topology và nâng cấp chứ?

Như vậy "vũ trụ" trong trò game này, có những điểm đầu và điểm cuối "vũ trụ" là một. Vậy có gì trong thế giới 3D đáp ứng được những hoạt động đó. Nếu chỉ băng ngang qua màn hình rồi lại xuất hiện phía bên kia ---> nó có vẻ giống đi vòng quanh 1 hình trụ mở rộng là hình cầu chẳng hạn. Chúng ta "những con người to lớn" nhìn thấy được toàn bộ mô hình 3D, còn những "con người nhỏ bé" trong phi thuyển vẫn tưởng rằng đang đi thẳng trên mặt đất bằng phẳng. Vì sao lại liên quan topology? Bởi về mặt căn bản hình cầu có thể đập dẹp xong rồi kéo ra cho giống màn hình PC :D.

Hay một ví dụ khác là minh họa trên Wikipedia tiếng Việt về topology, tách cafe, hay bánh donut là những topo có 1 lỗ thủng.


Dưới con mắt tôpô học, cái cốc và cái vòng là một


Một tách cà phê trở thành vòng xuyến qua sự biến dạng hình học bảo toàn các bất biến tô pô. Cả tách cà phê và bánh vòng đều có những tính chất tô pô hoàn toàn giống nhau.

http://offroadinghome.blogspot.com/2010/08/gps-maps-106-reading-topo-map.html


Vậy đi từ đầu này sang đầu kia trái đất thì đường nào nhất nhất. Hẳn nhiên nếu có đường xuyên trái đất thì đường thẳng xuyên trái đất đó là ngắn nhất. Vấn đề là trái đất không có một lỗ thủng như vậy.
Lỗ thủng :D là một đặc điểm mà topology nhiên cứu.

Trên Wikipedia có nêu:

"Như vậy có thể nói một cách nôm na rằng tô pô là một ngành nghiên cứu về đặc tính của các cấu trúc đặc có tính siêu co giãn, siêu biến dạng nhưng lại không thể bị cắt rời thành nhiều mảnh, không thể bị đâm thủng hay bị dán dính vào nhau."

Tuy nhiên có một cái hình hay hơn từ đó thêm nhiều hình dung, hình mà trong topo học hay ví dụ là hình cái bánh donut. Phi thuyền có thể đi thẳng lên, sang ngang vạch một đường tròn trên cái bánh donut, hoặc di chuyển chéo vạch một elipse.





Dĩ nhiên câu hỏi cũ đạt ra trong trường hợp này nếu đi từ đầu này sang dầu kia cái bánh (mũi tên xanh), đường nào ngắn nhất. Với những "con người nhỏ bé trong phi thuyền", "đi thằng" là ngắn nhất. Nhưng chúng ta biết rằng đường họ đi trên bề mặt cái bánh donut chẳng phải "đường thẳng". Nếu "tiến bộ", họ nên có 1 con tàu, đi xuyên qua khoảng không giữa cái bánh mới phải. Có thể họ gọi đó là bước nhảy alpha.

Cũng như chúng ta, giống trong một thế giới có nhiều hơn 3 chiều. Nhiều nhà khoa học cho rằng chiều còn lại chính là thời gian. Tuy nhiên ta chỉ cảm nhận được 3 chiều. Nó giống như những "người bạn nhỏ" trong phi thuyền 2D, chỉ cảm nhận được 2 chiều trong thế giới 3 chiều. Và thực sự không cách nào cảm nhận được hơn 3 chiều, tất cả chỉ là tưởng tượng. Ai mà biết hình dạng vũ trụ như thế nào.

Đến đây nếu hỏi không có topo học thì chúng ta sẽ nói bằng cái gì trước. Nếu không tìm ra video game, hay quả đất hay hình cái bánh donut, không đi từ 2D sang 3D chúng ta có thể nói 1 thứ mà chẳng biết có tồn tại không hoặc thậm chí có cũng chẳng có bất kỳ ai có thể cảm nhận. Đó là sự mở rộng, là sự quan trọng của công việc cung cấp cơ sở và phải có quá trình nâng cấp. Tất nhiên training những điều cảm nhận được tính ra phải dễ hơn giải thích bước nhảy "tào lao" alpha mà chẳng ai dám chắc có hay không. Good night ...




2013-01-03

Implementing RESTful clients on Android 4.0

Ai đã từng muốn phát triển một RESTful app trên Android hẳn đã xem qua Google I/O 2010
Developing Android REST client applications. Nếu chưa từng làm thì video này sẽ giới thiệu những vấn đề rất quan trọng khi làm app với REST. Tuy nhiên có nhiều thứ đã thay đổi từ lúc đó đến giờ như Fragment, AsyncTaskLoader ... Mình cũng rất lâu rồi không đụng Android từ lúc chưa ra 3.0, cần update thêm haizzzz...

Trên stackoverflow có một article về việc này
Is the rest client app design approach in google io 2010 still up to date?

Về các cách tiếp cận đề cập trong Google I/O 2010 thì không có source code demo. Để có thêm tham khảo thì link rất hữu ích của Neil Goodman với Part 1 và Part 2.

Có thể tham khảo Robospice
https://github.com/stephanenicolas/robospice