Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Bài viết được dịch từ trang web Tutsplus
Lập trình hướng sự kiện thường gây bối rối cho những người mới bắt
đầu, điều đó có thể khiến cho người ta gặp khó khăn khi bắt đầu học
Node.js. Nhưng đừng để cho điều đó làm bạn nản lòng; trong bài viết này,
tôi sẽ dạy bạn một số kiến thức cơ bản của Node.js và giải thích tại
sao nó đã trở nên nổi tiếng.
Node.js có tốc độ nhanh gấp nhiều lần so với PHP
Giới thiệu
Để bắt đầu sử dụng Node.js, đầu tiên bạn phải hiểu sự khác nhau giữa
Node.js và các môi trường kịch bản máy chủ truyền thống (như: PHP,
Python, Ruby, v.v...). Lập trình bất đồng bộ (Asynchronous Programming)
Node.js sử dụng một kiến trúc module để đơn giản hóa việc tạo ra các ứng dụng phức tạp.
Rất có thể bạn đã quen thuộc với lập trình bất đồng bộ; sau tất cả nó
là chữ "A" trong Ajax. Mỗi function trong Node.js là bất đồng bộ. Vì
vậy, mọi thứ bình thường kẹt trong thread thì giờ đây được thực thi dưới
background. Đây là điều quan trọng nhất bạn nên nhớ về Node.js. Ví dụ,
nếu bạn đang đọc một file trên một hệ thống file, bạn phải xác định một
hàm callback sẽ được thực thi khi hoạt động đọc file đó hoàn thành. Bạn đang tự tay làm mọi thứ!
Node.js chỉ là một môi trường - nghĩa là bạn phải tự tay làm mọi thứ.
Không có một server HTTP mặc định, hoặc bất kỳ server nào cho vấn đề
đó. Điều này có thể gây bối rối cho những người mới học, nhưng bù lại
chúng ta sẽ xây dựng được ứng dụng web có tốc độ thực thi cao. Một
script quản lý tất cả truyền thông với các client. Điều này giúp giảm
đáng kể số lượng tài nguyên sử dụng bởi ứng dụng đó. Ví dụ, đây là đoạn
code cho một ứng dụng đơn giản bằng Node.js:
var i, a, b, c, max;
max = 1000000000;
var d = Date.now();
for (i = 0; i < max; i++) {
a = 1234 + 5678 + i;
b = 1234 * 5678 + i;
c = 1234 / 2 + i;
}
console.log(Date.now() - d);
Và đây là đoạn code tương đương được viết bằng PHP:
Bây giờ hãy quan sát các số liệu benchmark. Bảng danh sách sau đây
chứa thời gian response, đơn vị tính là millisecond, cho hai ứng dụng
đơn giản ở trên:
Số lần lặp
Node.js
PHP
100
2.00
0.14
10'000
3.00
10.53
1'000'000
15.00
1119.24
10'000'000
143.00
10621.46
1'000'000'000
11118.00
1036272.19
Tôi đã chạy hai ứng dụng ở trên từ command line vì vậy sẽ không có
server nào làm trì hoãn sự thực thi của các ứng dụng. Tôi chạy mỗi phép
thử 10 lần và lấy kết quả trung bình. PHP nhanh hơn đáng kể với số lượng
vòng lặp nhỏ hơn, nhưng lợi thế đó nhanh chóng biến mất khi số lượng
vòng lặp tăng lên. Và khi tất cả các phép thử hoàn thành, kết quả là PHP thì 93% chậm hơn Node.js!
Node.js có tốc độ rất nhanh, nhưng bạn sẽ cần học một số thứ mới để có thể sử dụng nó đúng đắn.
Các Module
Node.js sử dụng một kiến trúc module để đơn giản hóa việc tạo ra các
ứng dụng phức tạp. Các module hơi giống các thư viện trong ngôn ngữ C,
hoặc các unit trong Pascal. Mỗi module chứa một tập các chức năng liên
quan đến "chủ đề" của module đó. Ví dụ, module http chứa các
function xác định liên quan đến HTTP. Node.js cung cấp một số module lõi
để giúp bạn truy cập các file trên hệ thống file, tạo ra các server
HTTP và TCP/UDP, và thực thi những chức năng hữu ích khác.
Việc gọi sử dụng một module rất dễ; bạn đơn giản chỉ cần gọi function require(), giống như thế này:
var http = require('http');
Node.js chỉ là một môi trường; bạn phải tự tay làm mọi thứ.
Function require() đó sẽ trả về tham chiếu đến module xác định. Trong
trường hợp của đoạn code trên là một tham chiếu đến module http được lưu trữ trong biến http.
Trong đoạn code ở trên, chúng ta truyền vào tên của một module tới
function require(). Điều này khiến cho Node sẽ tiến hành tìm kiếm folder
có tên là node_modules nằm trong thư mục ứng dụng của bạn, và tìm kiếm module http nằm trong folder đó. Nếu Node không tìm thấy folder node_modules (hoặc module http
trong đó), thì nó sẽ tìm kiếm thông qua module cache toàn cục. Bạn cũng
có thể xác định một file thực sự bằng cách truyền một đường dẫn tương
đối hoặc tuyệt đối, kiểu như thế này:
var myModule = require('./myModule.js');
Các module được đóng gói thành những phần code riêng biệt. Code trong
một module hầu hết ở trạng thái private - nghĩa là các function và biến
được định nghĩa trong chúng chỉ có thể được truy cập từ bên trong
module đó mà thôi. Tuy nhiên bạn có thể phơi bày (expose) ra các
function và/hoặc biến được sử dụng bên ngoài của module đó. Để làm được
điều này, bạn sử dụng đối tượng exports và đưa ra các phương thức và
thuộc tính của nó với đoạn code mà bạn muốn cung cấp ra ngoài. Bạn hãy
xem module sau đây làm một ví dụ:
var PI = Math.PI;
exports.area = function (r) {
return PI * r * r;
};
exports.circumference = function (r) {
return 2 * PI * r;
};
Đoạn code trên tạo ra một biến PI mà chỉ có thể được truy cập bởi
code trong module đó; nó không thể bị truy cập từ phía bên ngoài. Tiếp
theo, hai function được tạo ra trên đối tượng exports. Những function
này có thể truy cập từ bên ngoài của module đó bởi vì chúng được định
nghĩa trên đối tượng exports. Kết quả là, PI hoàn toàn được bảo về khỏi
sự can thiệp từ bên ngoài. Vì vậy, bạn có thể hoàn toàn yên tâm rằng các
function area() và circumference() sẽ luôn luôn thực thi đúng đắn (miễn
là một giá trị được cung cấp qua tham số r).
Phạm vi toàn cục (Global Scope)
Node là một môi trường JavaScript chạy trên engine Google's V8 JavaScript.
Vì vậy, chúng ta nên tuân theo những chuẩn tốt nhất khi sử dụng phát
triển trên client-side. Ví dụ, chúng ta nên tránh việc đặt bất cứ thứ gì
vào trong một phạm vi toàn cục (global scope). Tuy nhiên, điều đó không
phải khi nào cũng có thể làm được. Phạm vi toàn cục trong Node là
GLOBAL (đối lập với window trong trình duyệt), và bạn có thể rất dễ tạo
ra một biến toàn cục của function bởi việc quên mất từ khóa var, giống
như thế này:
globalVariable = 1;
globalFunction = function () { ... };
Xin nhắc lại một lần nữa, phạm vi toàn cục (global) là nên tránh bất
cứ khi nào có thể. Vì vậy hãy cẩn thận và nhớ sử dụng từ khóa var mỗi
khi khai báo một biến nhé!
Cài đặt
Đương nhiên chúng ta cần cài đặt Node trước khi có thể viết và chạy
một ứng dụng. Việc cài đặt rất đơn giản, nếu bạn sử dụng Windows hoặc OS
X; chỉ việc lên trang web nodejs.org
để tải bộ cài về cho những hệ điều hành này. Đối với Linux, sử dụng bất
kỳ package manager nào. Hãy mở terminal của bạn lên và gõ:
sudo apt-get update
sudo apt-get install node
hoặc:
sudo aptitude update
sudo aptitude install node
Node.js nằm trong sid repositories; bạn có thể cần phải add chúng tới sources list của bạn:
sudo echo deb http://ftp.us.debian.org/debian/ sid main > /etc/apt/sources.list.d/sid.list
Nhưng nên biết rằng việc cài đặt sid packages trên những system cũ
hơn có thể làm hỏng system của bạn. Hãy cẩn thận, và nhớ gỡ bỏ
/etc/apt/sources.list.d/sid.list sau khi bạn kết thúc công việc cài đặt
Node.
Cài đặt những module mới
Node.js có một trình quản lý gói (package manager), được gọi là Node
Package Manager (NPM). Nó tự động được cài cùng Node.js, và bạn sử dụng
NPM để cài đặt những module mới. Để cài đặt một module, mở terminal/
command line của bạn lên, điều hướng tới folder mong muốn và chạy lệnh
sau đây:
npm install module_name
Không quan trọng việc bạn đang chạy hệ điều hành nào; dòng lệnh phía trên sẽ cài đặt module bạn xác định tại ví trí module_name.
Ứng dụng Hello World
Tất nhiên, script Node.js đầu tiên của chúng ta sẽ in ra dòng chữ 'Hello World!' tới console. Tạo ra một file, đặt tên nó là hello.js, và gõ vào dòng code sau:
console.log('Hello World!');
Bây giờ hãy chạy script đó. Mở terminal/command line lên, điều hướng tới folder chứa file hello.js, và chạy dòng lệnh sau:
node hello.js
Bạn sẽ nhìn thấy dòng chữ 'Hello World!' hiển thị trên console.
HTTP Server
Tiếp tục chuyển sang một ứng dụng nâng cao hơn; nó không phức tạp như
bạn nghĩ. Hãy bắt đầu với đoạn code sau. Bạn đọc thêm phần comment và
phần giải thích phía dưới đoạn code:
// Include http module.
var http = require("http");
// Create the server. Function passed as parameter is called on every request made.
// request variable holds all request parameters
// response variable allows you to do anything with response sent to the client.
http.createServer(function (request, response) {
// Attach listener on end event.
// This event is called when client sent all data and is waiting for response.
request.on("end", function () {
// Write headers to the response.
// 200 is HTTP status code (this one means success)
// Second parameter holds header fields in object
// We are sending plain text, so Content-Type should be text/plain
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Send data and end response.
response.end('Hello HTTP!');
});
// Listen on the 8080 port.
}).listen(8080);
Đoạn code trên rất đơn giản. Bạn có thể gửi nhiều dữ liệu hơn tới
client bằng cách sử dụng phương thức response.write(), nhưng bạn phải
gọi nó trước khi gọi response.end(). Lưu đoạn code trên vào file http.js và gõ dòng lệnh sau vào trong console của bạn:
node http.js
Mở trình duyệt của bạn lên và gõ vào địa chỉ http://localhost:8080. Bạn sẽ nhìn thấy dòng chữ "Hello HTTP!" trên trang đó.
Xử lý các tham số trên URL (Handling URL Parameters)
Như tôi đã đề cập ở trên, chúng ta phải tự tay làm mọi thứ trong
Node, bao gồm việc phân tích các tham số request. Tuy nhiên việc này khá
đơn giản. Bạn hãy xem đoạn code dưới đây:
// Include http module,
var http = require("http"),
// And url module, which is very helpful in parsing request parameters.
url = require("url");
// Create the server.
http.createServer(function (request, response) {
// Attach listener on end event.
request.on('end', function () {
// Parse the request for arguments and store them in _get variable.
// This function parses the url from request and returns object representation.
var _get = url.parse(request.url, true).query;
// Write headers to the response.
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Send data and end response.
response.end('Here is your data: ' + _get['data']);
});
// Listen on the 8080 port.
}).listen(8080);
Đoạn code trên sử dụng phương thức parse() của module url,
một module lõi trong Node.js, để chuyển URL của request thành một đối
tượng. Đối tượng trả về có một thuộc tính là query, nó truy xuất các
tham số của URL đó. Bạn lưu file này với tên là get.js và chạy nó bằng dòng lệnh sau:
node get.js
Sau đó điều hướng tới đường dẫn
http://localhost:8080/?data=put_some_text_here trên trình duyệt của bạn.
Tất nhiên là việc thay đổi giá trị của tham số data sẽ không làm đoạn
script bị lỗi.
Đọc và ghi file
Để quản lý các file trong Node, chúng ta sử dụng module fs
(một module lõi). Chúng ta đọc và ghi file sử dụng các phương thức
fs.readFile() và fs.writeFile() tương ứng. Tôi sẽ giải thích về các đối
số sau phần code ở dưới đây:
// Include http module,
var http = require("http"),
// And mysql module you've just installed.
fs = require("fs");
// Create the http server.
http.createServer(function (request, response) {
// Attach listener on end event.
request.on("end", function () {
// Read the file.
fs.readFile("test.txt", 'utf-8', function (error, data) {
// Write headers.
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Increment the number obtained from file.
data = parseInt(data) + 1;
// Write incremented number to file.
fs.writeFile('test.txt', data);
// End response with some nice message.
response.end('This page was refreshed ' + data + ' times!');
});
});
// Listen on the 8080 port.
}).listen(8080);
Node.js có một trình quản lý gói được gọi là Node Package Manager (NPM). Nó được cài đặt tự động cùng với Node.js
Lưu đoạn code trên lại trong file tên là files.js. Trước khi bạn chạy đoạn script này, hãy tạo ra một file có tên là test.txt trong cùng thư mục chứa file files.js.
Đoạn code trên minh họa cách sử dụng các phương thức fs.readFile() và
fs.writeFile(). Mỗi lần server nhận một request, đoạn script đó đọc một
con số từ file, tăng giá trị số lên một đơn vị, và ghi con số mới xuống
file. Phương thức fs.readFile() chấp nhận 3 đối số: tên của file cần
đọc, kiểu mã hóa mong muốn, và một callback function.
Việc ghi tới một file, ít nhất là trong trường hợp này, còn đơn giản
hơn nhiều. Chúng ta không cần đợi bất kỳ kết quả nào, mặc dù bạn nên
thêm phần kiểm tra lỗi trong ứng dụng thực tế. Phương thức
fs.writeFile() chấp nhận tên file và data như là các đối số. Nó cũng
chấp nhận các đối số thứ 3 và 4 (cả hai đều là tùy chọn) để xác định
kiểu mã hóa và hàm callback, tương ứng.
Bây giờ hãy chạy đoạn script trên bằng dòng lệnh sau:
node files.js
Mở nó trong trình duyệt tại địa chỉ (http://localhost:8080) và nhấn
refresh một vài lần. Lúc này bạn có thể nghĩ rằng có một lỗi trong đoạn
code đó bởi vì nó dường như tăng một lần 2 đơn vị. Đây không phải là một
lỗi. Mỗi lần mà bạn request URL này, thì có tới 2 request được gửi tới
server. Request đầu tiên thì được tạo tự động bởi trình duyệt, nó
request favicon.ico, và dĩ nhiên, cái request thứ hai là cho URL (http://localhost:8080).
Mặc dù về mặt kỹ thuật đây không phải là một lỗi, nhưng đó là kết quả
mà chúng ta không mong muốn. Chúng ta có thể sửa nó dễ dàng bằng cách
kiểm tra request URL. Đây là đoạn code được sửa lại:
// Include http module,
var http = require("http"),
// And mysql module you've just installed.
fs = require("fs");
// Create the http server.
http.createServer(function (request, response) {
// Attach listener on end event.
request.on('end', function () {
// Check if user requests /
if (request.url == '/') {
// Read the file.
fs.readFile('test.txt', 'utf-8', function (error, data) {
// Write headers.
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Increment the number obtained from file.
data = parseInt(data) + 1;
// Write incremented number to file.
fs.writeFile('test.txt', data);
// End response with some nice message.
response.end('This page was refreshed ' + data + ' times!');
});
} else {
// Indicate that requested file was not found.
response.writeHead(404);
// And end request without sending any data.
response.end();
}
});
// Listen on the 8080 port.
}).listen(8080);
Bạn hãy chạy thử lại đoạn code trên; nó sẽ hoạt động như mong muốn.
Truy cập cơ sở dữ liệu MySQL
Hầu hết các công nghệ server-side truyền thống có một phương tiện
built-in để kết nối và truy vấn cơ sở dữ liệu. Với Node.js, bạn phải cài
đặt một thư viện để thực hiện công việc đó. Đối với bài tutorial này,
tôi đã chọn sử dụng một thư viện ổn định và khá dễ sử dụng là node_mysql. Tên đầy đủ của module này là mysql@2.0.0-alpha2
(mọi thứ phía sau chữ @ là con số phiên bản). Mở console của bạn lên,
điều hướng tới thư mục nơi mà bạn đã lưu trữ những script của mình, và
chạy dòng lệnh sau:
npm install mysql@2.0.0-alpha2
Lệnh trên sẽ tải về và cài đặt module mysql, và nó cũng tạo ra folder tên là node_modules
trong thư mục hiện tại. Bây giờ hãy xem làm cách nào mà chúng ta có thể
sử dụng nó trong code của mình; xem đoạn code ví dụ sau:
// Include http module,
var http = require('http'),
// And mysql module you've just installed.
mysql = require("mysql");
// Create the connection.
// Data is default to new mysql installation and should be changed according to your configuration.
var connection = mysql.createConnection({
user: "root",
password: "",
database: "db_name"
});
// Create the http server.
http.createServer(function (request, response) {
// Attach listener on end event.
request.on('end', function () {
// Query the database.
connection.query('SELECT * FROM your_table;', function (error, rows, fields) {
response.writeHead(200, {
'Content-Type': 'x-application/json'
});
// Send data as JSON string.
// Rows variable holds the result of the query.
response.end(JSON.stringify(rows));
});
});
// Listen on the 8080 port.
}).listen(8080);
Việc truy vấn cơ sở dữ liệu bằng thư viện này rất dễ; chỉ đơn giản
nhập vào chuỗi truy vấn và một hàm callback. Trong một ứng dụng thực tế,
bạn nên kiểm tra xem liệu có lỗi xảy ra hay không (tham số error sẽ
không là undefined nếu có lỗi xuất hiện) và gửi mã response phụ thuộc
vào thành công hay thất bại của truy vấn đó. Ngoài ra cũng chú ý rằng
chúng ta thiết lập Content-Type thành x-application/json, đây là kiểu
MIME hợp lệ cho JSON. Tham số rows chứa kết quả của truy vấn đó, và
chúng ta đơn giản convert dữ liệu trong rows thành một cấu trúc JSON
bằng cách sử dụng phương thức JSON.stringify().
Lưu file này thành tên mysql.js, và chạy nó (nếu bạn đã cài đặt MySQL) bằng dòng lệnh sau:
node mysql.js
Điều hướng tới địa chỉ http://localhost:8080 trên trình duyệt của
bạn, và bạn sẽ thấy một cửa sổ hiện lện nhắc bạn tải về file có định
dạng JSON.
Kết luận
Mỗi function trong Node.js là bất đồng bộ (asynchronous).
Node.js yêu cầu thêm nhiều công việc phụ trợ, nhưng kết quả đạt được
là một ứng dụng tốc độ nhanh và mạnh mẽ thì cũng đáng đồng tiền bát gạo.
Nếu bạn không muốn làm mọi thứ ở những mức thấp nhất, thì bạn luôn có
thể chọn lấy một vài framework, như là >Express, để khiến công việc phát triển ứng dụng trở nên đơn giản hơn.
Node.js là một công nghệ đầy hứa hẹn và là một lựa chọn hoàn hảo cho
các ứng dụng có mức tải cao (high load). Nó đã được chứng minh bởi các
tổ chức lớn như Microsoft, eBay, và Yahoo. Nếu bạn chưa chắc chắn về
việc hosting ứng dụng hoặc website của mình, bạn luôn có thể sử dụng một
VPS giá rẻ hoặc rất nhiều dịch vụ cloud-based như Microsoft Azure và
Amazon EC2. Cả hai dịch vụ này đều cung cấp những môi trường có khả năng
mở rộng với một mức giá chấp nhận được.
Đừng quên để lại bình luận nếu bạn có bất kỳ câu hỏi nào nhé!
Valentine Đỏ ngày 14/2, Valentine Trắng ngày 14/3 và
chưa hết, có cả Valentine Đen ngày 14/4 nữa cơ! Cùng Lamsao đi tìm hiểu ý
nghĩa của ngày Valentine trắng, đỏ và đen - những ngày lễ tình yêu trên
thế giới nhé
Nội dung chi tiết
Có lẽ ai cũng biết, 14-2 là ngày Valentine, ngày lễ tình nhân, thế nhưng ý nghĩa của ngày Valentine là gì thì không phải ai cũng biết.
Tháng Hai vốn là một tháng được chờ đợi rất lâu, đó không chỉ là
tháng của ngày lễ Tết mà còn là tháng của tình nhân với ngày lễ
Valentine. Dưới đây, mời bạn đọc hãy cùng Lamsao.com tìm hiểu về ý nghĩa
của ngày Valentine.
1
Ý nghĩa của ngày Valentine Đỏ (14/2)
Valentine Đỏ là ngày lễ Tình nhân truyền thống, ngày mà tất cả những người yêu nhau trên thế giới mong chờ - 14/2.
Tìm hiểu ý nghĩa của ngày Valentine trắng, đỏ và đen
Chuyện kể rằng, ngày xưa, tại La Mã, có
một vị hoàng đế độc tài và tàn ác, ông ta cho rằng những người đàn ông
đã lập gia đình sẽ trở nên yếu mềm hơn và không thể trở thành những
người lính thiện chiến, chính vì thế, ông đã ban hành sắc lệnh cấm kết
hôn để đảm bảo chất lượng binh sĩ. Khi đó, những người muốn đến với nhau
đều cảm thấy bất lực bởi bức tường ngăn cản quá lớn. Lệnh cấm thực sự
là một cú sốc lớn đối với dân chúng thành La Mã. Nhưng họ không dám lên
tiếng phản đối lại đế chế hùng mạnh này. Khi đó, vị giám mục tên
Valentine đã nhận ra sự bất công của luật cấm. Ông cảm nhận được sự đau
xót của những người trẻ đang yêu, những người đã hy vọng vào tình yêu,
về một mái nhà ấm áp. Chính vì thế, ông đã bí mật lên kế hoạch để chống
lại lệnh cấm này. Bất cứ cặp đôi nào muốn tính tới chuyện kết hôn đều
tới gặp giám mục Valentine, ông sẽ là người chủ trì hôn lễ bí mật cho
đôi trẻ. Cứ như vậy, ông đã thực hiện được rất nhiều buổi hôn lễ cho
nhiều cặp đôi trong một thời gian dài.
Nhưng oan nghiệt rằng, vào đúng ngày
14/2/273 - ngày ông bị xử tử hình thì cũng là lúc những đôi lứa được
sống trọn đời bên nhau mãi mãi. Và từ đó trở đi, cứ đến mỗi năm đến ngày
14/2, người dân tại đây lại gọi đấy là ngày Valentine’s Day hoặc Saint
Valentine’s Day và giám mục Valentine được xem là vị thánh của tình yêu
của nhân loại.
Ý nghĩa của ngày Valentine - bạn đã biết chưa
Cũng có nơi cho rằng ngày Valentine
chính là ngày các cô gái thể hiện tình yêu của mình bằng cách tặng cho
chàng trai mình thầm thương trộm nhớ một món quà. Nếu chàng trai đó cũng
yêu thương cô thì chàng trai đó sẽ tặng lại cô gái một món quà vào ngày
14/3 - Valentine trắng.
2
Ý nghĩa của ngày Valentine trắng (14/3)
Tình yêu luôn luôn cần sự mới mẻ mỗi
ngày, chúng ta dường như yêu nhau nhiều hơn sau những giấc mơ dịu dàng,
nên một ngày Valentine dường như là không đủ. Chính vì thế mà ở Nhật Bản
- đất nước mặt trời mọc, sự ra đời một ngày lễ Tình nhân nữa ra đời và
nhanh chóng được các bạn thanh niên đón nhận.
Nếu ngày Valentine ở Nhật Bản là dành
cho các chàng trai thì ngày Valentine Trắng hay White Day là dành cho
các nàng. Đây chính là cơ hội để những chàng trai đã nhận được quà tặng
vào ngày Valentine có thể đáp trả lại tình cảm của những cô gái đã tặng
quà họ.
Ngày Valentine trắng ra đời như sau: Vào
năm 1965 tại Nhật Bản, một chàng trai bán kẹo dẻo muốn đáp trả lại tình
cảm của cô gái thầm thương trộm nhớ mình hôm Valentine Đỏ nên đã làm
tặng nàng một hộp kẹo thật bự, trắng như tuyết. Đó cũng chính là sự tích
Ngày Trắng.
Ý nghĩa của ngày Valentine trắng
Đến ngày nay, Ngày Trắng dần được mọi người “chuyển thể” lại thành
White Valentine, White Day, Ngày đáp trả. Trong ngày này, không còn gì ý
nghĩa hơn là việc bạn sẽ đáp trả lại người con gái đã yêu mến mình
trong suốt thời gian qua bằng những món quà hoặc lời nói thật cảm động,
dễ thương và chân thành.
Valentine trắng là một ngày mà các cô gái đều mong muốn được nhận lại
món quà để khẳng định tình cảm của chàng trai mình thương mến. Trong
ngày này, ở Nhật các chàng trai sẽ tặng lại các cô gái một món kẹo hoặc
socola màu trắng. Còn trên thế giới các chàng trai sẽ tìm cách thổ lộ
tình cảm của mình để đèn đáp sự mong chờ và tình cảm của các cô gái.
3
Ý nghĩa của ngày Valentine Đen (14/4)
Thoáng nghe qua bạn sẽ
nghĩ rằng đây có thể là ngày lễ dành cho những người vừa… tan vỡ chăng
vì nghe tên gọi đã thấy đen xịt rồi? Thực ra đây cũng là một ngày lễ bắt
nguồn từ Hàn Quốc dành cho những bạn trẻ đang độc thân (hay gọi thân
thương là “Hội FA”), sẽ tụ hội lại cùng nhau tổ chức tiệc tùng nhằm “tự
thưởng” cho bản thân cũng như tạo cơ hội cho chính mình.
Tại xứ sở Kim Chi thì “Hội độc thân” sẽ
rủ rê nhau đi ăn Jajangmyun (những bát mì đen) như một cách “hô to với
thế giới” rằng “FA” không hẳn là chán.
Ý nghĩa của ngày Valentine - bạn đã biết chưa
Thực tế, không phải đợi đến tận ngày
14/4 mà các bạn trẻ độc thân mới có cơ hội tụ tập ăn uống với nhau. Ngay
cả vào những ngày Valetine đỏ (14/2) và Valentine trắng (14/3) hội
những người độc thân vẫn gặp nhau và vui vẻ bên nhau. Xét cho cùng thì
sống là phải vui vẻ tận hưởng phải không?
Ngoài 3 ngày lễ chính kể trên thì ở một số nước trên thế giới còn có
những ngày “14” khác như: 14/1 là ngày nhật kí (bạn sẽ tạm biệt quyển
nhật kí cũ để thay bằng một quyển mới toanh như sang trang cho những
điều mới mẻ hơn đấy mà); 14/5 là ngày hoa hồng/ ngày vàng (bạn sẽ tặng
một bông hồng duy nhất cho người quan trọng nhất với bạn) hay 14/6 là
ngày của những nụ hôn (bạn có thể thoải mái hôn người thương thật lãng
mạn)… Với những người yêu nhau thì ngày nào cũng là Valentine hết.
Ý nghĩa của ngày Valentine - bạn đã biết chưa
Nếu các bạn muốn tìm mua socola tặng người ấy Valentine tới đây thì có thể mua nguyên liệu làm bánh, dụng cụ làm bánh trực tiếp tại BeeMart các bạn nhé. Ở đây có bán đầy đủ dụng cụ và nguyên liệu làm socola với giá cả rất phải chăng.
Cách chơi: Người điều khiển đứng giữa vòng tròn, vừa đi vừa
nói “Chim, thú, cá…” bất ngờ chỉ một người đứng trong vòng và hô “chim”, “thú”,
hoặc “cá”. Người bị chỉ định phải lập tức nói tên con “chim”, con “thú”, hoặc
con “cá” nào đó.
Thí dụ: như người điều khiển nói “Chim”, người bị chỉ phải
nói: họa mi, két, sơn ca, chào mào, v.v…
Chú ý: Người chỉ định không được lập lại con “chim”, “thú”,
hay “cá” đã được nói trước, hoặc ngập ngừng sẽ bị phạt.
2 KỂ CHUYỆN
Cách chơi: Người điều khiển bắt đầu câu chuyện tùy ý
(chuyện vui hoặc lồng mẫu chuyện đạo ...). Khi nghe người điều khiển nói đến
tên mình, người có tên đó phải tiếp tục câu chuyện sao cho tình tiết không bị
gián đoạn, cứ thế tiếp tục hết vòng.
Thí dụ: Người đầu tiên kể: (Sáng hôm ấy thời tiết thật dễ
chịu, tôi bỗng nhiên thích đi dạo. Tôi vào nhà khoác vội chiếc áo len xanh có
thêm vài đoá hồng...” Người có tên Hồng phải tiếp tục câu chuyện và lập lại từ
đầu “Sáng hôm ấy...”.
3. BỎ KHĂN
Cách chơi: Mọi người ngồi thành vòng tròn, một người tình
nguyện cầm khăn đi quanh vòng tròn và bất chợt bỏ khăn sau lưng một người nào
đó. Người được khăn lập tức rượt đuổi người bỏ khăn. Nếu người bỏ khăn có thể
chiếm được chỗ người bị bỏ khăn mà không bị khăn đập trúng, người bị bỏ khăn
phải cầm khăn tiếp tục trò chơi.
Chú ý: Khi người cầm khăn đi quanh vòng ngoài người ngồi
trong vòng không được ngó ra sau, chỉ được bỏ hai tay ra sau mà thôi.
4. CHỮ CẤM
Cách chơi: Một người được chọn (hoặc chỉ định) bước ra khỏi
vòng tròn. Những người còn lại đồng ý với nhau một chữ cấm nào đó, thí dụ như
chữ “không”, “có”, “vàng”, “xanh”, v.v... Khi người chỉ định bước vô vòng tròn,
người trong vòng hỏi những câu hỏi, yêu cầu, hoặc tìm mọi cách để người đó nói
ra chữ cấm.
Thí dụ: Người trong vòng hỏi: “Anh thích ăn bánh ngọt chứ?”
v.v...
Một người trong vòng bí mật đếm số lần người bị chỉ định
dùng chữ cấm. Trong khi đó người được chỉ định phải vừa trả lời vừa đoán chữ
cấm đó là gì. Nếu đoán đúng, người khác sẽ được chọn ra khỏi vòng và cứ như thế
mọi người thay phiên nhau. Kết quả người nào dùng số chữ cấm ít nhất sẽ thắng
cuộc.
5. HA HA HA
Cách chơi: Người thứ nhất cười “Ha”, người kế “Ha Ha”,
người kế nữa “Ha Ha Ha” tiếp tục như vậy cho đến người cuối cùng.
Chú ý: Mọi người phải nhìn thẳng mặt nhau, hễ ai cười, hoặc
nói sai số “Ha” sẽ bị loại.
6. KHĂN CƯỜI
Cách chơi: Người điều khiển đứng giữa vòng tròn tung khăn
tay lên trời vừa cười, vừa làm bất cứ động tác nào đó. Những người trong vòng
bắt đầu cười thỏa thích và làm theo động tác của người điều khiển. Khi khăn tay
chạm đất tất cả mọi người phải đứng yên theo tư thế đã làm, không được nhúc
nhích. Hễ ai cử động hoặc cười thành tiếng sẽ bị loại khỏi trò chơi.
Chú ý: Người trong vòng chỉ được cười khi thấy khăn rời
khỏi tay người điều khiển.
Ðể lừa người chơi, người điều khiển có thể giả bộ tung khăn
ra. Ðôi lúc chọc cho người trong vòng tròn cười sau khi khăn đã chạm đất.
Ðể tạo sự ngộ nghĩnh người điều khiển có thể cho phép người
chơi làm bất cứ động tác nào khi cười.
7. TÌM KHO TÀNG
Cách chơi: Một người tình nguyện bước ra khỏi vòng, trong
khi những người khác chọn một người trong vòng làm “kho tàng”. Khi người tình
nguyện bước vô vòng, người trong vòng vỗ tay để hướng dẫn; người tình nguyện
bước càng gần “kho tàng” tiếng vỗ tay càng to, càng xa tiếng vỗ tay càng nhỏ.
Chú ý: Tiếng vỗ tay phải liên tục. Người tình nguyện có thể
chỉ được 3 lần. Nếu sau ba lần người ấy đoán sai phải bước ra khỏi vòng, và
trong vòng phải chọn người khác làm kho tàng.
8. CHỤP KHĂN (HOẶC
BÓNG)
Cách chơi: Tập họp thành vòng tròn. Một người đứng giữa
vòng ném khăn (hoặc bóng) lên không trung đồng thời gọi tên của một trong những
người chơi. Nếu người bị gọi tên để cho khăn (hoặc bóng) rơi xuống đất người ấy
sẽ đứng ra tung khăn (hoặc bóng) để tiếp tục trò chơi.
9. CON MÈO ÐÁNG
THƯƠNG
Cách chơi: Một người trong vòng được chỉ định làm mèo. Con
mèo bò đến người mình thích, quỳ gối, chắp hai tay, kêu meo meo và làm những
động tác để chọc người ấy cười. Trong khi người ấy dùng tay xoa đầu con mèo ba
lần và nói “Tội nghiệp chưa, tội qúa hé, tội nghiệp con mèo...”.
Chú ý: Người bị con mèo chọc cười phải trở thành con mèo và
cứ thế tiếp tục trò chơi.
10. NHÀ ÐIÊU KHẮC
Cách chơi: Người điều khiển được chọn làm người điêu khắc,
sắp tất cả các người trong vòng tròn theo bất cứ hình thể nào (người được sắp
xong không cử động), xong đâu đấy nhà điêu khắc đi từng người và tìm mọi cách
để chọc người đó cười hoặc cử động. Người đầu tiên làm sai (cười hoặc cử động)
sẽ trở thành nhà điêu khắc.
Chú ý: Ðể trò chơi thêm vui nhà điêu khắc có thể cho biết
hình tượng mình nặn.
Thí dụ: Thưa quí vị đây là con khỉ phi châu nè. À! cái
miệng nó chưa được nhọn, tôi phải sửa lại một chút nè v.v...
11. GIÀNH GIÀY
Cách chơi: Tất cả những người tham gia trò chơi cởi giày để
dồn đống một nơi nào đó và đi đến vạch kẻ cách đó 5 đến 10 m. Sau tiếng còi của
người điều khiển tất cả chạy đến đống giày, tìm đôi giày của mình, mang xong
chạy đến vạch bắt đầu. Ai về trước sẽ thắng.
12. CHIMBAY, CHUỒNGBAY
Cách chơi: Vòng tròn đếm số (1,2,3) - (1,2,3)... cho đến
hết vòng. Số 1 và 3 của mỗi nhóm làm chuồng, số 2 làm chim. Người không thuộc
nhóm nào đứng giữa vòng làm chim. Khi người điều khiển hô “chim bay” tất cả
“chim” trong lồng phải đổi chổ, trong khi những người đứng giữa phải tìm cách
kiếm lồng của mình. Khi người điều khiển hô “chim bay - lồng bay” tất cả “chim”
và “lồng” phải đổi chổ. Khi người điều khiển hô “lồng bay” tất cả “lồng” phải
đổi chổ, “chim” có thể đứng yên hoặc đi tìm “lồng” của mình.
Chú ý: Những con chim trong ba lần trong cuộc chơi không
tìm được lồng sẽ bị loại khỏi vòng chơi.
13. TÔI ÐANG LÀM GÌ?
Cách chơi: Ba người được đưa ra khỏi vòng tròn. Khi đó tất
cả những người còn lại chọn một hành động nào đó. Thí dụ - rửa xe, chơi thể
thao vv....Một trong ba người được gọi trở vô và một người trong vòng tròn đại
diện diễn tả hành động cho người ấy xem, người thứ nhất gọi người thứ hai vào
lập lại tất cả động tác cho người ấy xem, người thứ hai lại gọi người thứ ba vô
và cũng làm lại y hệt những động tác người thứ nhất diễn tả cho mình. Người thứ
ba lúc đó có nhiệm vụ suy đoán đó là sự việc hoặc hành động gì. Nếu sai, người
thứ hai đoán, nếu người thứ hai sai, người nhất đoán. Nếu tất cả đoán sai, vòng
tròn nói cho họ biết sự việc hoặc hành động mình chọn.
Chú ý: Trò chơi này càng trở nên vui nhộn nếu những sự việc
chọn có tính khôi hài.
14. MỈM CƯỜI
Cách chơi: Chia vòng tròn thành hai nhóm đứng cách nhau đối
diện khoảng 2-3m. Mỗi nhóm được quy định “ngữa” hoặc “sấp”. Người điều khiển
dùng mũ tung lên. Nếu mũ “ngữa” nhóm “ngữa” cười trong khi nhóm khác nghiêm nét
mặt và cố gắng làm sao không cười cho dù nhóm “ngữa” tìm đủ mọi cách trêu chọc,
và ngược lại.
Chú ý: Nếu nhóm nào có người không làm đúng ba lần, nhóm ấy
sẽ bị thua cuộc.
15. GÂY RỐI
Cách chơi: Người điều khiển hướng dẫn như sau: tất cả đưa
tay phải nắm tai trái, và dùng tay trái nắm mũi. Khi tất cả làm xong, người
điều khiển bất ngờ hô “đổi tay”. Quí bạn sẽ mục kích được những sự việc thật
buồn cười khi đồng bạn cảm thấy lúng túng. Trò chơi nầy chỉ nên làm một hoặc
hai lần thôi và người điều khiển không nên tập trước cho người chơi.
16. ÐẦU, BỤNG
Cách chơi: Người điều khiển đi quanh vòng tròn, bất ngờ
dừng lại trước người nào đó. Nếu người điều khiển lấy tay xoa bụng, người trong
vòng phải xoa đầu và ngược lại nếu người điều khiển xoa đầu, người trong vòng
phải xoa bụng. Khi người điều khiển chạy đến một người mà không làm gì cả,
người ấy phải đứng yên. Ai làm sai sẽ bị loại.
Chú ý: Ðể làm trò chơi thêm thú vị, người điều khiển qui
định động tác người chơi phải nhanh, đồng thời người điều khiển phải liên tục
đổi động tác để người chơi rối bù lên.
17. NHẢY MŨI CỘNG
ÐỒNG
Cách chơi: Vòng tròn được chia thành ba nhóm. Nhóm thứ 1
“Hích sì”, nhóm 2 “Hắc sì”, nhóm 3 “Hóc sì”. Nếu người điều khiển chỉ nhóm nào,
nhóm đó nhảy mũi theo tiếng của mình. Nếu người điều khiển hô “Mưa” nhóm bị chỉ
nhảy mũi hai cái, “ Gió” nhảy mũi ba cái, “Bão” nhảy mũi bốn cái, “Mưa-Gió-Bão”
nhảy mũi một tràng.
Chú ý: Nếu người điều khiển không chỉ nhóm nào thì tất cả
phải nhảy mũi cùng một lần.
18. DANH Y
Cách chơi: Chia người chơi thành hai nhóm, đứng hoặc ngồi
đối diện nhau. Từng nhóm thay phiên nhau đưa ra bệnh và cách chữa cho người
điều khiển biết. Sau khi người đại diện của mỗi nhóm nói cho người điều khiển
biết ý định của mình, người điều khiển liền thổi còi cho hai nhóm cùng nói một
lần.
Thí dụ:
Nhóm 1 (nhóm bệnh): con chó bị thương...
Nhóm 2 (cách chữa): cho nó chết luôn...
Ðể cho dễ nhớ, mỗi nhóm chỉ được dùng 4 hoặc 5 chữ thôi.
Khi chơi, nhóm chữa bệnh nào cho phương pháp đúng phù hợp với căn bệnh sẽ thắng
cuộc. Ðể cho được công bình các nhóm nên luân phiên nhau để làm nhóm “Chữa
Bệnh”.
19. ÐOÁN CHỮ
Cách chơi: Chia người chơi thành 2 hoặc 3 nhóm, mỗi nhóm cỡ
chừng 10 hoặc 12 người. Mổi nhóm chọn một câu thành ngữ ngắn, hoặc một nhóm chữ
có ý nghĩa từ 4 đến 5 (hoặc nhiều) chữ. Nhóm thứ nhất sau tiếng còi hoặc dấu
hiệu của người điều khiển cùng nói một lần thành ngữ hoặc nhóm chữ mình đã
chọn, trong khi các nhóm khác đoán thành ngữ hay nhóm chữ đó là gì. Mỗi nhóm
chỉ đoán được 2 lần, nhóm nào đoán trước sẽ thắng. Lần lược các nhóm thay phiên
nhau.
20. CỌP, SÚNG, NGƯỜI
Cách chơi: Chia vòng tròn thành hai nhóm, mỗi nhóm cử một
người làm thủ lãnh. Người thủ lãnh phải họp nhóm mình bàn luận để tìm hành động
chung cho mỗi nhóm. Trước khi bắt đầu trò chơi người điều khiển qui định động
tác cho “Cọp”, “Súng”, “Người”.
Thí dụ:
Cọp: Ðưa cả hai tay ra theo kiểu vồ mồi đồng thời nhe răng.
Súng: Ðưa thẳng một tay, một tay co lại bóp cò.
Người: Ðứng thẳng người v. v...
Khi các nhóm bàn luận xong, tất cả tập họp thành hai hàng
(nhóm nào theo nhóm đó) đứng đối diện nhau. Sau tiếng còi hoặc dấu hiệu, tất cả
mọi người trong nhóm phải đồng thời làm động tác của nhóm mình.
Qui định chơi như sau: Súng thắng cọp, cọp thắng người,
người thắng súng. Nếu cả hai làm cùng động tác thì huề.
Chú ý: Người điều khiển có thề chơi trò chơi tương tự bằng
cách thay thế “cọp, súng, người” thành “đá, kéo, giấy” và chơi theo qui luật:
Ðá thắng kéo, kéo thắng giấy, giấy thắng đá. Ðồng thời qui định lại động tác
của từng vật.
gửi tới bạn đọc những hình ảnh cổng trại
đẹp cho ngày 26 tháng 3 cùng với những người bạn đồng hành, những thanh
niên đầy sáng tạo và say mê đã dựng lên rất nhiều mẫu cổng trại thật
đẹp, thật ý nghĩa với nguyên vật liệu làm bằng tre sẵn có, kết hợp với
những lá dừa, lá cọ, băng rôn, khẩu hiệu cho ước mơ, hy vọng về ngày mai
tươi sáng, tốt đẹp.
Những thanh niên trẻ đã có những giây phút thật
đáng nhớ với cổng trại độc nhất vô nhị của riêng họ, họ tụ họp nhau lại
cùng làm cho tất cả một công trình riêng và cùng cảm nhận những lều trại
đơn sơ, ấm áp đó. Nhìn cách các bạn trẻ cười đùa thoải mái, rạo rực,
tất bật và hăng say làm việc đủ để biết họ có những tâm tư tình cảm như
thế nào cho ngày thanh niên Việt Nam 26/3. Các bạn hãy xem những cổng
trại độc đáo cùng những người bạn trẻ để cảm nhận.
Một cổng trại làm bằng tre, lá dừa thật đẹp và đơn giản với khẩu
hiệu đầy chất thanh niên của các bạn học sinh lớp 10a4. Tiếp bước cha
anh. Đâu cần thanh niên có, đâu khó có thanh niên.
Cổng của trại này mang hình ảnh Văn miếu Quốc tử giám ở Hà Nội cũng
như phong cách của cổng làng, cổng đình đậm chất truyền thống.
Hội trại tại trường THPT Phan Bội Châu với sự sáng tạo của Chi đoàn nhà trường. Nguyên vật liệu hoàn toàn bằng tre Việt Nam.
Cổng trại ngày 26 tháng 3 này rất phá cách, thể hiện sự vô tư, hồn nhiên pha nhí nhảnh dáng yêu của bạn trẻ.
Chắp cánh bay đến những ước mơ về tình yêu thương và hòa bình cho tất cả mọi người. Cổng trại có khẩu hiệu thật ý nghĩa.
Hành tinh xanh – yêu thiên nhiên, bảo vệ môi trường, bảo vệ hành
tinh mang tên Trái đất. Các bạn trẻ hãy hành động ngay từ hôm nay – Tất
cả vì tương lai con em chúng ta.
Kết niên lại anh em chúng ta cùng nhau đi lên…
Bạn cũng có thể xem thêm 22 thiết kế rất đẹp mắt tại bài viết sau:
mẫu cổng trại đẹp nhất 26-3 bằng tre trang trí đơn giản
Đại đoàn kết – sức mạnh dân tộc Việt Nam.
Hình ảnh các bạn trẻ đang hăng say dựng cổng trại lớp mình sao cho thật đẹp, thật “độc đáo” và ý nghĩa.
Cổng trại mang tên Kim Đồng của các em Đội viên tham gia trong ngày 26 tháng 3 với quyết tâm trở thành cháu ngoan Bác Hồ.
Trại hè của các bạn học sinh lớp 10.
Những chủ nhân tương lai của đất nước đang chắp cánh bay cao vươn tới ước mơ.
Chúc các bạn tham khảo được mẫu trại ưng ý và có những ngày tham gia hội trại vui vẻ, ý nghĩa.