"Lung linh bóng nước con đò, Nhớ sao Chợ Mới câu hò thủy chung
Quê tôi miền đất anh hùng, Hôm nay vẫn đẹp vô cùng ai ơi!"

"Giờ thăm lại trường xưa trong khoảnh khắc
Cảnh còn đây người đi mất từ lâu..."

"對我而言台灣留下非常深刻的印象,我所去的每一個地方,我所見過的每一個人,這都是緣分!
再見大家,再見台灣!"

A greeting from Vietnam.

Showing posts with label Hoctap. Show all posts
Showing posts with label Hoctap. Show all posts

Friday, December 21, 2018

[CTU project] Self-driving robot with OpenCV

This project is done by Huỳnh Long and Nguyễn Hùng Khanh (IT cohort 40) as their graduation thesis at ICT College, Can Tho University.
Summary: This project focuses on building a self-driving robot model capable of detecting signs, traffic lights, and obstructions. To perform these functions, Haar cascade method was used to identify signs and traffic lights, then trigger the stop or continue command. Moreover, ANN was adopted to determine the movement direction (go straight, turn left, turn right) of robot from a training set of road lines' photos.
List of hardware components:
  • Raspberry pi 3
  • Raspberry Pi Camera
  • Raspberry Pi Battery
  • HC-SR04 Ultrasonic Sensor
  • Robot frame
  • 4 DC Motors & Wheels
  • L298N motor controller



Author: Huỳnh Long, Nguyễn Hùng Khanh
Advisor: Thái Minh Tuấn, Nguyễn Ngọc Mỹ
Year: 2018.

Thursday, February 1, 2018

MQTT Protocol

MQTT Protocol Overview

MQTT protocol is a power-saving M2M protocol widely used in Internet of things. MQTT protocol is used to send and receive data from smart objects.
This protocol used publish-subscriber paradigm in contrast to HTTP based on request/response paradigm. It uses binary messages to exchange information with a low overhead. MQTT uses TCP stack as transmission substrate.

Message Pattern

MQTT protocol implements publish-subscriber paradigm. This paradigm decouples a client that publishes a message (“publisher”) to other clients that receive the message (“subscribers”). Moreover, MQTT is asynchronous protocol, that means that it does not block the client while it waits for the message. In contrast to HTTP protocol, that is mainly a synchronous protocol. Another interesting property of MQTT protocol is that it does not require that the client (“subscriber”) and the publisher are connected at the same time.

MQTT Publisher-Subscriber Pattern (MQTT Broker, MQTT Client)

The key component in MQTT is the MQTT broker, which dispatches messages to the MQTT clients (“subscribers”). In other words, the MQTT broker receives messages from publisher and dispatches these messages to the subscribers. While it dispatches messages, the MQTT broker uses the topic to filter the MQTT clients that will receive the message.
A topic is a virtual channel that connects a publisher to its subscribers. This topic is managed by the MQTT broker. Through this virtual channel, the publisher is decoupled from the subscribers and the MQTT clients (publishers or subscribers) do not have to know each other to exchange data. This makes this protocol highly scalable without a direct dependency from the message producer (“publisher”) and the message consumer (“subscriber”).
The schema below describes the MQTT architecture:

How To Use MQTT Protocol

There are several implementations of MQTT, for example, Mosquitto, an implementation developed by Eclipse. The first step is installing the MQTT broker.
The MQTT server (aka MQTT broker) is installed on Raspberry Pi. This server is our MQTT broker. Then we need to install the client, or in other words, the publisher and the subscriber. You can install client and server on the same Raspberry, or install it on a different pc/server or IoT board.

How To Send An MQTT Message

We have installed and configured the client and the server, now we can register a subscriber to a specific topic and wait for an incoming message from a publisher. 

Monday, February 15, 2016

DANH NHÂN CHỢ MỚI

Click VÀO ĐÂY để thay đổi cách hiển thị nội dung bên dưới. Nhấn vào XEM TIẾP để xem danh sách đầy đủ.

Nhà văn NGUYỄN QUANG SÁNG

- Sinh năm 1932 tại xã Mỹ Luông.
- Nhà văn Nguyễn Quang Sáng nổi tiếng với các tác phẩm như: Cánh đồng hoang, Mùa gió chướng, Đất lửa, Dòng sông thơ ấu, Chiếc lược ngà,...
- Hai giải thưởng cao quý nhất của ông: Giải thưởng Hồ Chí Minh năm 2000; Huy chương vàng Liên hoan phim Mát-xcơ-va 1981 cho bộ phim Cánh đồng hoang.
- Ông có một tiểu thuyết viết về quê hương Chợ Mới là tiểu thuyết Dòng sông thơ ấu, Đất lửa.
- Con trai ông là đạo diễn Nguyễn Quang Dũng (đạo diễn phim Nụ hôn thần chết,...).

Linh mục Phanxicô TRƯƠNG BỬU DIỆP

- Ông sinh ngày 1-1-1897 tại xã Mỹ Luông.
- Ông là người đã hi sinh cho giáo dân Tắc Sậy năm 1946. Ông được chôn cất trong phòng thánh nhà thờ Khúc Tréo. Ðến 1969, hài cốt ông được dời về nhà thờ Tắc Sậy. Nhiều người tin tưởng rằng ông rất linh thiêng và họ thường tìm đến mộ ông, trưng hình ông để cầu bình an và mong được làm ăn suôn sẻ.

Nhạc sĩ HOÀNG HIỆP

- Sinh năm 1931 tại xã Mỹ Hiệp.
- Các nhạc phẩm nổi tiếng của nhạc sĩ Hoàng Hiệp: Trường Sơn Đông Trường Sơn Tây, Câu hò bên bờ Hiền Lương, Lá đỏ, Nhớ về Hà Nội, Viếng Lăng Bác,... Ngoài ra, ông còn sáng tác nhạc cho phim Mùa gió chướng, Biệt động Sài Gòn,...
- Giải thưởng cao quý nhất của ông: Giải thưởng Hồ Chí Minh năm 2000
- Bài hát ông viết về quê hương: Về miền thương nhớ, Chốn đó quê ta, Trở về dòng sông tuổi thơ,...

Cố Bộ trưởng Bộ y tế NGUYỄN VĂN HƯỞNG

- Sinh năm 1906 tại xã Mỹ Hiệp. Mất năm 1998.
- Ông là giáo sư, bác sĩ vi trùng học và Đông y, cố Bộ trưởng Bộ Y Tế 1969-1974, Uỷ viên Đoàn Chủ tịch Uỷ ban Trung ương Mặt trận Tổ quốc Việt Nam, Đại biểu Quốc hội khóa I, Phó Chủ tịch Quốc hội khóa II, III.
- Ông được trao tặng danh hiệu Anh hùng lao động, Thầy thuốc nhân dân và Giải thưởng Hồ Chí Minh đợt I (1996).

Wednesday, November 25, 2015

BÀI HỌC CUỘC SỐNG

1. Bạn sinh ra không phải để làm hài lòng tất cả mọi người. Vậy nên đừng quá bận tâm tới những gì người khác nói về bạn, hãy cứ là chính mình.
2. Nếu bạn muốn đạt được những thứ bạn chưa từng có, bạn phải làm những điều bạn chưa từng làm.
3. Nếu bạn tin rằng những đường chỉ tay nói lên số phận của bạn thì bạn cũng đừng quên rằng, chúng cũng chỉ nằm trong lòng bàn tay bạn mà thôi.
4. Cuộc sống luôn cho bạn cơ hội thứ hai. Nó được gọi là ngày mai.
5. Toàn bộ đại dương cũng không thể làm đắm được một con tàu trừ khi nước ngập vào trong. Tương tự, toàn bộ những gì tiêu cực trên đời cũng không thể nào hạ gục được bạn trừ khi bạn cho phép nó thấm vào người mình.
6. Hãy học cách trân trọng những gì bạn đang có trước khi thời gian dạy cho bạn biết trân trọng những gì bạn đã từng có.
7. Chính trải nghiệm chứ không phải thứ gì khác, là thứ làm nên con người bạn.
8. Hãy ở bên người làm cho bạn cười, ngay cả khi bạn mệt mỏi, không vui.
9. Đừng vội vàng từ bỏ người mà bạn yêu thương, bởi tình yêu đâu phải ai cũng may mắn tìm được nhau.
10. "Hãy đếm số tuổi của bạn bằng số bạn bè, chứ không phải số năm. Hãy đếm cuộc đời của bạn bằng nụ cười chứ không phải những giọt nước mắt." - John Lennon
11. Không có ai hoàn hảo cả. Đó là lý do tại sao bút chì có cục gôm.
12. Thứ đắt giá nhất trên đời này là lòng tin. Để có được có khi cần rất nhiều thời gian, nhưng để đánh mất thì chỉ cần vài giây ngắn ngủi.
13. Một cái đầu đầy nỗi sợ hãi sẽ không còn chỗ trống cho những ước mơ.
14. Tiền xu luôn gây ra tiếng động, nhưng tiền giấy lại luôn im lặng. Bởi vậy, khi giá trị của bạn tăng lên, hãy giữ cho mình khiêm tốn và ít nói đi.
15. Đôi khi bạn phải tự mình đứng dậy và bước tiếp, bởi không ai làm điều đó thay bạn đâu.
16. "Tôi không biết chìa khóa của thành công là gì, nhưng tôi biết chìa khóa của thất bại là cố gắng làm vừa lòng tất cả mọi người." - Bill Cosby
17. "Sống trong đời sống cần có một tấm lòng." - Trịnh Công Sơn [Để gió cuốn đi]
18. Mỗi ngày hãy sống như thể đó là ngày cuối cùng của bạn.
19. Khóc cũng sống, cười cũng sống. Tại sao ta không chọn nụ cười để sống?
20. Thứ quý giá nhất đối với mỗi người không phải là tiền bạc hay địa vị,... mà chính là sức khỏe. Bởi vậy, hãy quan tâm tới sức khỏe trước khi quá muộn bạn nhé!
(Sưu tầm từ Internet)

Tuesday, June 23, 2015

libsvm - How to use?

libsvm is a popular library for performing Support Vector Machine algorithm. This library is developed by Chih-Chung Chang and Chih-Jen Lin, professor at National Taiwan University. Next, I will show you how to install the libsvm in MATLAB.

1. Installation

Monday, June 22, 2015

Useful chunks of MATLAB code

1. Nominal to numeric mapping

The following code will convert from a nominal value vector to a numeric value vector.
Example: suppose that Yno is the nominal value vector and Ynum is the numeric value vector. The casting line is as follow:
Ynum = double(nominal(Yno));

2. Sum one field of a struct

The following code will compute the summation from the field "true" of a struct called "recall".
result=sum(cell2mat({recall.true}));
(Nguyen My - 2015/06/23)

Monday, June 15, 2015

Convert struct of single-value fields into a 2D matrix

Suppose that we have a dataset of N records, each records is a struct of M fields, and each field has just a single numeric value. Now, we want to convert this struct-type dataset into a matrix for further manipulation. What should we do? The following figure will tell you the way:
 Following is the brief description for functions used:
  • struct2cell(): converts the m-by-n structure s (with p fields) into a p-by-m-by-n cell array c.
  • B=squeeze(A): returns an array B with the same elements as A, but with all singleton dimensions removed.
And here is the sample MATLAB code:
Xstruct = importdata([getCurrentFolder() '\..\data\somename.mat']);
Xcell=struct2cell(Xstruct);
X=squeeze(Xcell)';
X=cell2mat(X);
Thank for reading!
(Nguyen My - 2015/06/16)

Sunday, April 19, 2015

Useful chunks of MATLAB code for file/folder manipulation

1. Read all file names inside a range of folders

The following code will look into folders, with regarding to the folder name pattern, and read all file names inside the dedicated folder.
Example: Data files are collected from many user, and each user has it own folder with the name u001, u002,...These user folders belong to a root folder (as in the following photo).
The MATLAB code to read all data file names in this case is:

fileCfg=struct(...
            'rootFolder','D:\Experiment\BodyDyn',...
            'userFolderPattern','^u\d+$',... %regular expression for user folder names
            'extension','set'); %File extension filter
userf = dir(fileCfg.rootFolder);
userf = regexpi({userf.name},fileCfg.userFolderPattern,'match');
userf = [userf{:}];
%userf is now a row matrix that holds all user folder names

dataFiles=[];
for i=1:size(userf,2)
    temp=char(strcat(fileCfg.rootFolder,'\',userf(i),'\*.',fileCfg.extension)); %full path to data folder
    temp2 = (dir(temp)); %this will cause error if the file date is empty
    temp2 = { temp2.name };
    dataFiles=[dataFiles; temp2'];
    %dataFiles is now a vector that holds all file names
end
Important functions that you may need to understand: dir (list folder contents), regexpi (match regular expression with case insensitive).

2. Save results to file

In the following code, it will generate the file that packs the variables varX and varY. This file will be saved in the same folder of the current M file.

fileFullPath=mfilename('fullpath');
temp=strsplit(fileFullPath,'\'); %decompose the fullpath into folder parts and file name part
temp(end)=[]; %remove file name part
temp=strjoin(temp,'\'); %temp is now the path to the folder of current M file
filepath=strcat(temp, '\', datestr(now,'yyyymmdd_HHMM'), '_myData.mat');
save(char(filepath),'varX', 'varY'); %save file with timestamp
disp(['File is saved to: ' filepath]);
(Nguyen My - 2015/04/20)

[Sưu tầm] Người khôn ngoan quá chưa hẳn là tốt

Trước kia, mỗi khi qua mặt được ai đó để đạt chút gì, bạn bè sẽ trầm trồ: “khôn quá ta, dùng chút mánh lới là có được thứ mình muốn“, nghe xong liền cảm thấy dương dương tự đắc. Nhưng khi trải qua nhiều chuyện trong cuộc sống, mới biết đó chỉ là khôn vặt, về lâu dài chỉ gây tổn hại cho bản thân. Làm người trong đời, chữ đức quan trọng lắm thay.
Trước đây không lâu, một chương trình truyền hình của Đài Loan với tên gọi “Cuộc đời sang giàu”, khách mời là nhà điều hành của một công ty rất nổi tiếng. Khi chương trình gần kết thúc, người dẫn chương trình đưa ra câu hỏi cuối: “Anh cho rằng nhân tố then chốt làm nên thành công của công ty là gì?”
Trầm tư một lát, vị này cũng không trực tiếp trả lời mà bình tĩnh kể một câu chuyện:
“12 năm trước, một chàng trai vừa tốt nghiệp liền sang Pháp, bắt đầu cuộc sống vừa học vừa làm. Thời gian dần qua, anh phát hiện nhà ga địa phương hầu hết đều có lỗ hổng, không có chỗ kiểm vé, cũng không có người kiểm vé, thậm chí ngay cả camera kiểm tra cũng rất ít.
Dựa vào trí thông minh của mình, người thanh niên này tính toán được tỉ lệ trốn vé mà bị tra ra chỉ có 3/10.000. Anh rất đắc ý với phát hiện này của mình. Từ đó về sau, anh thường xuyên trốn vé. Anh còn biện hộ cho bản thân rằng, vì mình là học sinh nghèo mà, có thể tiết kiệm chút nào hay chút nấy.
4 năm qua đi, với tấm bằng đại học danh tiếng và thành tích xuất sắc, anh tự tin nộp đơn vào các công ty đa quốc gia, nhưng kết quả lại khiến anh hụt hẫng.

Friday, April 17, 2015

A geometric interpretation of the covariance matrix

Introduction

In this article, we provide an intuitive, geometric interpretation of the covariance matrix, by exploring the relation between linear transformations and the resulting data covariance. Most textbooks explain the shape of data based on the concept of covariance matrices. Instead, we take a backwards approach and explain the concept of covariance matrices based on the shape of data.
In a previous article, we discussed the concept of variance, and provided a derivation and proof of the well known formula to estimate the sample variance. Figure 1 was used in this article to show that the standard deviation, as the square root of the variance, provides a measure of how much the data is spread across the feature space.
Normal distribution
Figure 1. Gaussian density function. For normally distributed data, 68% of the samples fall within the interval defined by the mean plus and minus the standard deviation.
We showed that an unbiased estimator of the sample variance can be obtained by:
(1)   \begin{align*} \sigma_x^2 &= \frac{1}{N-1} \sum_{i=1}^N (x_i - \mu)^2\\ &= \mathbb{E}[ (x - \mathbb{E}(x)) (x - \mathbb{E}(x))]\\ &= \sigma(x,x) \end{align*}

Thursday, April 16, 2015

[Sưu tầm] 8 câu chuyện nhỏ chứa đựng bài học lớn

Có những câu chuyện tuy chỉ vọn vẻn mấy chữ nhưng lại có thể chứa đựng đạo lý sâu xa. Thế nên trong cuộc sống này, đôi khi lời ít ý nhiều, quan trọng ở sự cảm thụ của người nghe.

Câu chuyện thứ nhất
Ngày xưa, một cặp vợ chồng nọ đã phải đi gặp Thần Chết.
Vị Thần Chết nói: “Hai người các ngươi chỉ có thể sống một người, các người hãy oẳn tù tì, người thua thì phải chết”.
Hai lần oẳn tù tì trước đó cả hai vợ chồng đều ra giống nhau; đến lần thứ ba, người chồng lại thua…Thần Chết thở dài nói: “Vốn dĩ chiếu theo lệ của ta, nếu như các ngươi ba lượt đều ra giống nhau, ta sẽ thả các ngươi ra, không muốn phải dùng đến lần thứ tư để phân thắng bại”.
Nghe xong, người vợ ôm chằm lấy người chồng tấm tức mà rằng: “Đã nói là 3 lần đều cùng nhau ra búa, tại sao lần thứ ba tôi ra cái kéo thì anh lại ra bao.”
Thực tế, đây chính là nhân tâm, là sự ích kỷ và ngốc ngếch của bộ phận một nhóm người, tính toán với người khác cuối cùng thành ra tính toán với chính mình. Khi người ngu ngốc muốn thua, kỳ thực anh ta đã thắng rồi. Cho nên, nếu lúc nào cũng lương thiện…thì bạn đã là người thắng cuộc! Làm người hãy luôn giữ trong tâm sự phúc hậu, lương thiện vậy.

Tuesday, April 7, 2015

[Sưu tầm] Nói thật để làm gì?

Đúng ngày Cá tháng Tư năm nay, người được chính thức ghi nhận kỷ lục Guinness sống thọ nhất thế giới đương đại, cụ bà Misao Okawa người Nhật Bản, đã qua đời ở tuổi 117. Hồi sinh nhật thứ 113 của cụ, có phóng viên đến hỏi: Bí quyết sống thọ của cụ là gì? Cụ Okawa trả lời: Tôi sống thật, nói thật, chắc thế nên sống lâu, thế thôi.
Cụ Okawa qua đời, giờ đây người già nhất hành tinh là sư cụ Luang Pu Supha. Hòa thượng sinh ngày 17/9/1896 ở tỉnh Sakon Nakhon, đông bắc Thái Lan, tức là thậm chí còn cao niên hơn cụ bà ở Nhật. Khi được vấn về vụ sống thọ, sư cụ Supha cô đọng: "Ăn ít, nói ít và nói thật".
...
Có cái gì đơn giản hơn sự thật? Và có gì dễ biến mất hơn sự thật?
Bàn tay là thật - nhưng cái bắt tay có thể là giả dối.
Đôi mắt là thật - nhưng giọt nước mắt có thể là giả dối.
Trình độ là thật - nhưng bằng cấp có thể là giả dối.
Cái thật có giá trị tự thân, nhưng cái giả dối mang lại nhiều lợi ích hơn.
Giữ giá trị hay chạy theo lợi ích, đó là mâu thuẫn mà con người luôn phải đấu tranh. Trước hết là tự đấu tranh. Nhưng có nhiều khi, chúng ta cảm thấy cô đơn trong cuộc đấu tranh cho sự thật ấy. Nhiều khi vì thế chúng ta thỏa hiệp. Và khi chúng ta thỏa hiệp hết ngày này sang tháng khác với vô vàn sự dối trá, thì làm gì có một môi trường xã hội trung thực - nơi mà những mầm sự thật có cơ hội vươn mình lên thành đại thụ.
Hai người sống thọ nhất của xã hội con người hiện đại đều nói rằng muốn sống thọ hãy sống thật. Đó có thể là một bí quyết, nhưng cũng có thể là một thông điệp. Suy nghĩ về nó có thể sẽ giúp chúng ta có lựa chọn giữa hai câu hỏi quan trọng bậc nhất của thời đại này: Nói thật để làm gì? Và nói dối để được gì?
Nguồn: trích từ bài viết của tác giả Gia Hiền

Friday, April 3, 2015

[Sưu tầm] Điều gì quý nhất trên đời

Trước miếu Quan Âm mỗi ngày có vô số người tới thắp hương lễ Phật, khói hương nghi ngút. Trên cây xà ngang trước miếu có con nhện chăng tơ, mỗi ngày đều ngập trong khói hương và những lời cầu đảo, nhện dần có Phật tính. Trải nghìn năm tu luyện, nhện đã linh.

Một ngày, bỗng Phật dạo đến ngôi miếu nọ, thấy khói hương rất vượng, hài lòng lắm. Lúc rời miếu, ngài vô tình ngẩng đầu lên, nhìn thấy nhện trên xà.Phật dừng lại, hỏi nhện:

"Ta gặp ngươi hẳn là có duyên, ta hỏi ngươi một câu, xem ngươi tu luyện một nghìn năm nay có thật thông tuệ chăng. Được không?" Nhện gặp được Phật rất mừng rỡ, vội vàng đồng ý. Phật hỏi: "Thế gian cái gì quý giá nhất?" Nhện suy ngẫm, rồi đáp: "Thế gian quý nhất là những gì không có được và những gì đã mất đi!". Phật gật đầu, đi khỏi.

[Sưu tầm] Nhặt hòn đá

Ngày xửa ngày xưa, có một cô bé nhỏ luôn mong muốn tìm kiếm được cho mình một cuộc sống vẹn toàn. Một hôm, cô cầu xin Thượng Đế ban cho cô mọi thứ cô ao ước.

Thế là Thượng Đế xuất hiện và bảo với cô bé rằng: "Con hãy đi theo con đường lộng gió phía trước, ở đó có hàng trăm triệu hòn đá nhỏ. Ta cho con kỳ hạn là 365 ngày để nhặt một hòn đá lớn nhất mà con có thể tìm thấy. Hòn đá càng to thì ta càng ban cho con nhiều hơn. Điều kiện đặt ra là khi con đi qua rồi thì không được quyền quay lại. Vì vậy, hãy suy nghĩ thật cẩn thận trước khi con chọn hòn đá cho mình".

Cô bé cảm thấy thât sung sướng và bắt đầu bước vào hành trình của mình trên con đường lộng gió để tìm kiếm "hạnh phúc lớn nhất" cho cuộc đời cô. Tuy nhiên, mỗi khi bắt gặp một hòn đá to dọc lối đi, cô lại do dự và tự nhủ với lòng mình "chắc hòn đá kế tiếp sẽ to hơn nhiều". Nhiều ngày, nhiều tuần và nhiều tháng trôi qua rồi cô cũng đi gần hết con đường và chợt nhận ra rằng cô đang không còn đủ thời gian và cơ hội để chọn những hòn đá to. Vì vậy cô đành phải nhặt vội vàng một hòn đá nhỏ ven đường.

Cuộc sống cũng y như vậy. Chúng ta luôn tìm kiếm một người bạn đời hoàn hảo, một công việc hoàn hảo, một căn nhà hoàn hảo, một chiếc xe hoàn hảo... và không bao giờ nhận ra được rằng ta đang bỏ phí biết bao thời gian và cơ hội.

Không bao giờ có cái gọi là "hết sức đúng lúc" để nói một cách chính xác những gì bạn muốn bày tỏ vào chính xác một thời điểm nào đó với chính xác môt người nào đó, hay làm một cách chính xác một công việc mà bạn muốn làm trong đời. Vậy thì, sao bạn lại không sống "cho hôm nay" và tận hưởng mỗi phút giây bạn có được trên cõi đời này.
(Sưu tầm)

[Sưu tầm] Dại cũng chết mà khôn cũng chết, biết mới sống

Trang Tử dẫn một đoàn môn sinh lên núi thăm bằng hữu.Đến chỗ rừng sâu heo hút, thấy đám tiều phu đang đốn cây. Trang Tử hỏi:
- Vì sao các anh chặt hết mấy cây kia, chỉ lưu lại mỗi một cây to này?

Tiều phu nói:
- Cây này xem bề ngoài đẹp đẽ vậy chứ vô dụng lắm, chẳng xài được gì cả!

Trang Tử quay đầu ngó môn sinh bảo:
- Cây này nhờ vô dụng mà được lưu lại, các anh phải học theo như vậy!

Đi qua núi, trời sắp sụp tối, Trang Tử dẫn môn sinh đến nghỉ đêm nơi nhà người bạn. Người bạn đã lâu không gặp Trang Tử, mừng rỡ sai con:
- Hãy mau giúp cha làm thịt chim đãi khách!

Con cầm dao lên, hỏi cha:
- Nhà mình có hai con chim, nên giết con nào?

Người cha bảo:
- Tất nhiên là con không biết hót!

Nói xong, người cha mỉm cười bảo Trang Tử:
- Con tôi khờ quá, có vậy mà cũng hỏi, con chim không biết hót thì vô dụng quá, giữ lại làm chi?

Trang Tử quay đầu bảo môn sinh:
- Con chim được sống là nhờ biết hót, các anh phải học tập điều này.

Sáng hôm sau, các trò không nhịn được, hỏi Trang Tử:
- Thưa thầy, chiều qua vào rừng, thấy cây vô dụng được chừa lại, thầy bảo học nó. Rồi đến lượt con chim, nhờ có tài mà được sống, thầy cũng bảo học nó. Lời thầy dạy thực mâu thuẫn quá, rốt cuộc chúng con phải theo bên nào? - Hữu tài hay vô tài? Hữu dụng hay vô dụng?

Trang Tử cười to, nói:
- Các anh phải dùng trí phán đoán, tùy thời mà cư xử, ứng biến chứ! Hễ thấy cần hiển tài thì phô tài, cần vô dụng thì hiện vô dụng. Còn bình thường thì hãy trụ ở giữa hữu và vô, vậy thôi.

Trang Tử là một vị thầy được đời tôn xưng là bậc hiền trí, cư xử ôn nhu dịu dàng. Người trí thì không chấp chặt hay thiên về một bên. Giữa vô dụng và hữu dụng họ đều khéo rút ra phương pháp hay để sống. Bao giờ cũng thức thời, khéo nắm bắt cơ hội để ứng xử thích hợp. Tùy lúc mà họ thể hiện có tài hay vô dụng. Dù không phải là bậc toàn trí toàn năng, song giữa hữu và vô tài họ luôn nhận định sáng suốt và thể hiện phù hợp.

Thực ra đúng, sai; phải, quấy; tốt, xấu; tài và bất tài… đều tùy thuộc vào sự uyển chuyển, tỉnh sáng của tâm. Phật pháp vốn là pháp bất định, nếu sống cứ chấp chặt một bên, ứng xử không hợp lúc hợp thời thì dễ chuốc lấy tai họa, khổ lụy. Bởi vậy, người trí tuy hay nhìn vào nội tâm, song ứng đối với ngoại giới luôn nhanh lẹ, khế cơ khế thời. Đôi lúc thấy như hay, đôi lúc nhìn như dở! Họ tùy duyên, song lại bất biến! Điểm chính là tâm tư phải bình an, tĩnh lặng thì mới có được sự hành xử sáng suốt, ít lỗi lầm.

Người ta thường nói, dại cũng chết mà khôn cũng chết, biết mới sống. Biết chính là tuệ giác biết tùy lúc tùy thời ứng xử nhịp nhàng. Không trụ, không chấp sống an nhiên, tùy duyên tiếp vật, lợi mình và lợi người v.v… chính là minh triết trong cuộc sống mà mỗi người cần phải thực tập để thành tựu.
Nguồn: phattuvietnam

Monday, September 23, 2013

INTRODUCTION TO RESPONSIBLE CONDUCT OF RESEARCH

1. Shared values
There are, however, some important shared values for the responsible conduct of research that bind all researchers together, such as:
HONESTY — conveying information truthfully and honoring commitments,
ACCURACY — reporting findings precisely and taking care to avoid errors,
EFFICIENCY — using resources wisely and avoiding waste, and
OBJECTIVITY — letting the facts speak for themselves and avoiding improper. 
Research misconduct policies provide guidance on responsible conduct in three areas. They are:
(1) establish definitions for misconduct in research, 
(2) outline procedures for reporting and investigating misconduct, and 
(3) provide protection for whistleblowers (persons who report misconduct) and persons accused of misconduct.

Saturday, September 21, 2013

ANDROID PROGRAMMING 3

1. Sound
1.1. Put the audio file into res/raw. 
1.2. Declaration
MediaPlayer mp;
mp = MediaPlayer.create(MainActivity.this, R.raw.btnsound); 
1.3. Call
mp.start();

Thursday, September 19, 2013

ANDROID PROGRAMMING 2

1. Running your application
+ AndroidManifest.xml: describes the basic characteristics of the app. You should set the  android:targetSdkVersion as high as possible and test your app on the corresponding platform version.
+ src/: contains main source files.
+ res/: contains some sub-directories for app resources. Here are just a few:
        ++ drawable-hdpi/: for drawable objects that are designed for high-density (hdpi) screen.
        ++ layout/: for files that define your app's user interface.
        ++ values/: for other various XML files that contain a collection of resources, such as string and color definitions.

ANDROID PROGRAMMING 1

1. Some terminologies:
+ JRE (Java Runtime Environment): is basically the Java Virtual Machine, covers the need of running applications. It also includes browser plugins for Applet execution. 
+ JDK (Java Developper Kit): include JRE, compiler, debugger,... for creating and compiling programs. It is a subset of SDK. 
+ Eclipse: provides comprehensive facilities for software development in some languages.  
+ Android SDK: include API libraries and developper tools for creating, test and debug Android apps. 
+ ADT Bundle: include Eclipse and Android SDK. It helps streamline your Android app development. 
+ ADT Plugin: extends the capabilities of Eclipse to let you quickly set up new project, create an app UI, add packages based on Android framework API, debug and export .apk files.

Sunday, August 25, 2013

Some useful procedures for Oracle

1. Drop everything in a user tablespace:
BEGIN
   FOR cur_rec IN (SELECT object_name, object_type
                     FROM user_objects
                    WHERE object_type IN
                             ('TABLE',
                              'VIEW',
                              'PACKAGE',
                              'PROCEDURE',
                              'FUNCTION',
                              'SEQUENCE'
                             ))
   LOOP
      BEGIN
         IF cur_rec.object_type = 'TABLE'
         THEN
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '" CASCADE CONSTRAINTS';
         ELSE
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '"';
         END IF;
      EXCEPTION
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line (   'FAILED: DROP '
                                  || cur_rec.object_type
                                  || ' "'
                                  || cur_rec.object_name
                                  || '"'
                                 );
      END;
   END LOOP;
END;
2. Truncate all tables of the current user:
BEGIN
    FOR T in (SELECT table_name FROM user_tables) LOOP
      EXECUTE IMMEDIATE 'TRUNCATE TABLE '||T.table_name;
    END LOOP;

    FOR T in (SELECT table_name FROM user_tables) LOOP
      EXECUTE IMMEDIATE 'ALTER TABLE '||T.table_name||' ENABLE ALL CONSTRAINTS';
    END LOOP;
END;