Thứ Tư, 22 tháng 7, 2015

Cài đặt MySQL & phpMyAdmin

Bạn đã có PHP trên VPS rồi nhưng ứng dụng đó chỉ cho phép bạn thực thi các file PHP mà thôi, chứ chưa thể cài được WordPress bởi vì bạn sẽ cần thêm một ứng dụng rất quan trọng nữa là MySQL để hỗ trợ lưu trữ database cho website WordPress mà bạn sẽ cài vào sắp tới.

I. Cách cài MySQL vào VPS

Cài MySQL cũng rất dễ, chúng ta cũng vẫn sẽ sử dụng Yum package để cài đặt. Bạn chạy lệnh dưới đây để cài MySQL:
01
sudo yum install mysql-server -y
Sau đó khởi động MySQL (tên service là mysqld):
01
sudo service mysqld start
Và nó sẽ hiện ra rất nhiều thông tin như thế này:
[thach@vpscanban ~]$ sudo service mysqld start
Initializing MySQL database: WARNING: The host 'vpscanban' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h vpscanban password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems at http://bugs.mysql.com/

[OK ]
Starting mysqld: [OK ]

Điều này có nghĩa là chúng ta chỉ mới cài MySQL vào nhưng chưa thiết lập cho nó, vả lại chúng ta còn thiếu một thông tin cực kỳ quan trọng đó là MySQL Root Password. MySQL Root Password là mật khẩu cho database user tên là root để đăng nhập vào MySQL.
Bạn đừng nhầm lẫn giữa root password cho MySQL và root password của VPS, hai cái này hoàn toàn khác nhau.
Để thiết lập, bạn chạy đoạn sau:
01
sudo /usr/bin/mysql_secure_installation
Đầu tiên là nó sẽ hỏi:
Enter current password for root (enter for none):
Do bạn chưa thiết lập mật khẩu root cho MySQL nên ấn Enter mà không cần nhập gì cả.
Tiếp tục nó sẽ hỏi bạn muốn thiết lập mật khẩu cho user root hay không, gõ y và enter.
Set root password? [Y/n] y
Cuối cùng nó sẽ hỏi bạn thêm 4 câu hỏi nữa, cứ ấn Y rồi Enter hết.
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL
Ok, hãy khởi động lại MySQL nhé.
01
sudo service mysqld restart
Bây giờ bạn đã có một MySQL Server trên VPS và đã có mật khẩu root của MySQL rồi. Hãy thử đăng nhập vào MySQL với lệnh sau:
01
sudo mysql -u root -p123456
Trong đó, root là tên user root và 123456 là mật khẩu root của MySQL mà bạn vừa thiết lập.
Nếu nó hiện ra thế này là thành công:
Server version: 5.5.39 MySQL Community Server (GPL) by Remi

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
Gõ exit; để thoát ra.

II. Tạo database và database user trên VPS

Chắc các bạn cũng đã biết là khi cài WordPress trên Shared Host, chúng ta phải tạo cho nó một cái database đúng không? Ở đây cũng vậy, chúng ta cũng phải cần tạo ra một database và một database user để kết nối vào WordPress để lưu trữ dữ liệu.
Mặc dù bạn có thể sử dụng database user là root với mật khẩu root của MySQL nhưng việc này quá nguy hiểm nếu bạn có nhiều database khác nhau, vì hacker chỉ cần biết mật khẩu root của MySQL là có thể chiếm quyền quản trị toàn bộ databases có trên VPS.
Do đó, mình khuyến khích bạn sử dụng một database user riêng cho từng database để an toàn.

Đăng nhập vào MySQL

Để làm việc với MySQL chúng ta đều phải cần đăng nhập vào MySQL Server với lệnh mysql.
01
mysql -u root -p123456
Có thể bạn không cần viết thẳng cái mật khẩu ra đằng sau -p vì bạn có thể nhập nó sau khi thực hiện lệnh đăng nhập.
Lưu ý thêm một điều là trong MySQL bạn sẽ viết bằng lệnh SQL, nên mỗi câu lệnh bạn phải kết thúc bằng dấu hai chấm (;).

2.1) Lệnh tạo database

Để tạo database, chúng ta sử dụng lệnh sau trong MySQL Server:
01
CREATE DATABASE dulieu1;
Trong đó, dulieu1 là tên database mà mình cần tạo. Thông báo thực hiện thành công sẽ có dạng này:
01
Query OK, 1 row affected (0.00 sec
Để chắc chắn là bạn đã có database vừa tạo trên server, hãy gõ lệnh:
01
SHOW DATABASES;
Kết quả trả về:
01
02
03
04
05
06
07
08
09
+--------------------+
| Database |
+--------------------+
| information_schema |
| dulieu1 |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

2.2) Lệnh tạo database user

Để tăng khả năng bảo mật, MySQL không đơn phương cho phép ứng dụng gửi dữ liệu trực tiếp vào ổ cứng mà sẽ thông qua quyền kiểm soát của một database user. Và để tránh việc sử dụng user root làm user thực hiện lệnh kết nối vì lý do bảo mật, chúng ta sẽ cần tạo một database user khác để quản lý database dulieu1 mà chúng ta vừa tạo ở trên.
Lệnh tạo database user như sau:
01
CREATE USER dulieu1_user@localhost;
Trong đó, localhost là hostname của bạn, bạn không nên thay đổi cái này trừ khi bạn biết mình đang làm gì.
Bây giờ chúng ta đã có một user mang tên dulieu1_user, bạn có thể đặt tên bất kỳ nhưng mình đặt như thế này cho dễ nhớ.
Để chắc chắn bạn đã có user vừa tạo trên server, hãy kiểm tra bằng cách chạy lệnh sau:
01
SELECT User FROM mysql.user;
Kết quả trả về:
01
02
03
04
05
06
07
08
09
+--------------+
| User |
+--------------+
| dulieu1_user |
| root |
| root |
| root |
+--------------+
4 rows in set (0.00 sec)
Đã gọi là user thì phải có password, bây giờ chúng ta sẽ thiết lập password cho user dulieu1_user vừa tạo bằng lệnh sau:
01
SET PASSWORD FOR dulieu1_user@localhost= PASSWORD("123456");
Trong đó, 123456 ở cuối dòng lệnh là mật khẩu mà bạn cần thiết lập cho user dulieu1_user.
Bây giờ bạn có thể thoát ra khỏi MySQL Server bằng lệnh exit; và thử đăng nhập vô MySQL Server bằng user mà bạn vừa tạo.
01
mysql -u dulieu1_user -p123456
Sau đó gõ lệnh SHOW DATABASES; xem danh sách database mà nó đang sở hữu.
Bạn có thể thấy là nó chỉ có đúng một database mặc định tên là information_schema chứ không hề có database mang tên dulieu1. Và nếu nó chưa hiển thị database cần kết nối ở đây thì cũng đồng nghĩa với việc bạn sẽ bị báo lỗi kết nối database khi cài đặt WordPress.
Lý do là ở trên chúng ta chỉ vừa tạo database và database user mà thôi chứ chưa hề cấp quyền cho user dulieu1_user sử dụng database dulieu1. Ở phần dưới chúng ta sẽ làm công việc này.

2.3) Cấp quyền cho database user truy cập vào database

Hãy thoát ra và đăng nhập vào lại MySQL Server với tài khoản root nhé. Bây giờ ở đây chúng ta sẽ cần cấp quyền cho user tên là dulieu1_user có thể kết nối vào database tên dulieu1, thì chúng ta sẽ có lệnh như sau:
01
GRANT ALL PRIVILEGES ON dulieu1.* TO dulieu1_user@localhost IDENTIFIED BY '123456';
Hãy nhớ là nếu nó hiển thị Query OK, 0 rows affected (0.00 sec) thì mới là thành công nhé.
Trong đó, 123456 chính là mật khẩu của user dulieu1_user.
Cấp quyền xong, hãy gõ lệnh sau để nó tái tạo lại MySQL Server để cập nhật.
01
FLUSH PRIVILEGES;
Ok, bây giờ database user tên dulieu1_user đã có quyền truy cập database tên là dulieu1 rồi. Bạn có thể thử login vào MySQL Server với database user vừa tạo và ấn lệnh SHOW DATABASES xem nó có hiển thị database vừa được cấp quyền không.

III. Tối ưu MySQL

Mặc định khi cài MySQL vào nó chưa được tối ưu nếu bạn gửi nhiều request cùng lúc, bạn hãy mở file /etc/my.cnf lên và chèn đoạn sau vào dưới cuối của file đó:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
[mysqld]
 
key_buffer = 500M
table_cache = 4000
sort_buffer_size = 3M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
max_connections = 400
query_cache_type = 1
query_cache_limit = 5M
query_cache_size = 500M
tmp_table_size=20M
max_heap_table_size=20M
thread_cache_size = 64
Sau đó khởi động lại MySQL với lệnh service mysqld restart.

IV. Cài đặt phpMyAdmin

Có thể bạn sẽ cảm thấy hơi khó khăn nếu sử dụng các dòng lệnh để thao tác những tác vụ cần thiết như tạo database, sửa dữ liệu,…nên có thể bạn sẽ khá cần đến công cụ phpMyAdmin để quản trị database dễ hơn.
Chạy lệnh sau để cài đặt phpMyAdmin:
01
yum install phpMyAdmin
Mở file /etc/httpd/conf.d/phpMyAdmin.conf lên và tìm:
01
02
03
04
05
06
07
  # Apache 2.2
  Order Deny,Allow
  Deny from All
  Allow from 127.0.0.1
  Allow from ::1
Sửa 127.0.0.1 thành IP máy tính của bạn vì mặc định nó chỉ có thể truy cập bởi mạng nội bộ trên máy chủ.
Sau đó là khởi động lại Apache.
01
service httpd restart
Bây giờ bạn có thể truy cập vào phpMyAdmin với đường dẫn http://example.com/phpmyadmin. Bạn có thể truy cập với bất kỳ domain nào có trên VirtualHost.
Nếu bạn muốn thay đường dẫn từ http://domain/phpMyAdmin thành http://domain/hehe thì sửa 2 đoạn ở đầu file /etc/httpd/conf.d/phpMyAdmin.conf:
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
thành
Alias /hehe /usr/share/phpMyAdmin
Alias /huhu /usr/share/phpMyAdmin
Và khởi động lại Apache:
01
service httpd restart

Lời kết

Vậy là bây giờ ta đã có một webserver có đầy đủ các chức năng để chạy được một website WordPress rồi, còn chần chờ gì nữa mà không cài ngay một website WordPress lên nào. Ở phần sau, mình sẽ hướng dẫn bạn cách cài một website WordPress bằng cách nhanh nhất trên VPS.

Thứ Hai, 27 tháng 4, 2015

Những chuyện chưa kể về bộ não Einstein

Trong quá trình khám nghiệm tử thi Albert Einstein, bác sĩ Thomas Harvey là người phát hiện nguyên nhân cái chết do vỡ động mạch chủ. Sau này, ông cũng là người giữ bộ não trong nhiều năm.
82396396-smart-brains-624-side-4963-3704
Mô tả phần vỏ não Albert Einstein trong nghiên cứu của Dean Falk năm 2013. Ảnh:BBC
01h15 sáng 18/04/1955, nhà vật lý Albert Einstein thì thầm một vài từ tiếng Đức trước khi trút những hơi thở cuối cùng. Vì y tá tại bệnh viện Princeton không hiểu được tiếng Đức, những lời trăng trối của Einstein đã mất đi mãi mãi.
Lễ hỏa táng được tiến hành sau ngày hôm đó tại Trenton, bang New Jersey, nhưng con trai của Einstein là Hans Albert nhận thấy rằng cơ thể trong quan tài không nguyên vẹn. Trang nhất của New York Times đưa tin "Bộ não phát minh nên thuyết tương đối và phân hạch hạt nhân đã được gỡ bỏ để phục vụ nghiên cứu khoa học".
Hans Albert vô cùng tức giận vì biết rằng người cha của mình từng mong muốn tro cốt của ông được rải đi bí mật. Nhưng trên thực tế, các tư tưởng khi còn sống của Einstein khiến người ta tin rằng ông chấp thuận việc giới khoa học sử dụng cơ thể của ông cho mục đích nghiên cứu. Harvey thuyết phục Hans cấp phép cho một nghiên cứu với hy vọng làm sáng tỏ bí mật của thiên tài, một trong những bí ẩn lớn nhất của tự nhiên. Tuy nhiên, chưa nghiên cứu nào được thực hiện dù nhiều năm trôi qua.
Năm 1978, nhà báo trẻ tên Steven Levy tìm gặp Harvey. "Tôi nói với ông ấy rằng tôi đang viết một câu chuyện về bộ não của Einstein. Điều đầu tiên ông ấy nói với tôi là 'Tôi không thể giúp gì cho cậu'. Ông ấy không muốn nói chuyện", Levy kể lại. Để thuyết phục, Steven theo Harvey đến tới tận Wichita, Kansas và biết rằng Harvey vẫn mong muốn xuất bản một báo cáo khoa học về chủ đề này.
Sau khi được xem bộ não đó trong các hũ thủy tinh, Steven trở về và mô tả chúng trên tờ New Jersey Monthly: "Một miếng có hình dạng như vỏ sò, nhăn nheo màu đất sét nung. Một khúc cỡ nắm tay màu xám nhạt với những đường gân rõ và thẳng hàng, thống nhất như một miếng bọt biển. Và ở một chiếc lọ riêng biệt khác, những sợi màu hồng trắng phồng ra như những sợi chỉ nha khoa. Một chiếc lọ khác lớn hơn, chứa hàng chục khối mờ ảo hình chữ nhật và có kích cỡ tương đương hộp đậu phộng Goldenberg".
Trở lại năm 1955, khi được Hans Albert chấp thuận, Harvey đã đo đạc, chụp bộ não, thậm chí nhờ họa sĩ vẽ lại. Harvey chia bộ não thành 240 khối nhỏ và những lát cắt. Chúng được đưa đến những tổ chức nghiên cứu giải phẫu tốt nhất lúc bấy giờ. Tuy nhiên, họ đều nói rằng bộ não của Einstein không khác biệt so với não bình thường, giống kết quả Harvey từng nhận được khi cân não của Einstein.
Những năm tháng tìm hiểu
"Đó là một may mắn lớn, nhưng thật ra nó giống một lời nguyền hơn. Ông ấy đã mất mọi thứ kể từ ngày có bộ não đó. Thất nghiệp, ly hôn, mất việc ở Princeton. Sau những tranh cãi rằng Harvey tham lam ông không bao giờ còn khả năng xin lại việc ở bệnh viện nữa", một chuyên gia kể lại.
Khi bài báo của Levy được xuất bản năm 1978, Harvey lập tức trở thành tâm điểm. Việc nghiên cứu não Einstein thực sự bắt đầu.
82398307-de27-jar-624-1181-1429609924.jp
Một phần não trong lọ thủy tinh. Ảnh: BBC
Trong báo cáo năm 1985, chuyên gia Marian Diamond, Đại học California, Mỹ, chỉ ra rằng 4 vật mẫu não chứa thành phần gọi là tế bào thần kinh đệm nhiều hơn so với não thường. Tế bào thần kinh đệm cố định nơ-ron thần kinh, giúp cung cấp nhiều oxy và dinh dưỡng hơn. Diamond từng chỉ ra rằng môi trường kích thích có thể làm gia tăng số lượng tế bào này.
Năm 1996, chuyên gia Britt Anderson tại Đại học Alabama, Mỹ, công bố một nghiên cứu về vỏ não trước của Einstein. Ông phát hiện rằng số lượng nơ-ron không khác biệt so với với não bình thường, nhưng chúng được xếp gần nhau hơn, do đó xử lý thông tin nhanh chóng hơn.
Ba năm sau đó, Sandra Witelson của Đại học McMaster, Canada, nói rằng tiểu thùy đỉnh dưới, phần não liên quan đến nhận thức không gian và tính toán, rộng hơn và tích hợp tốt hơn so với bình thường. Witelson suy đoán hình dạng này của bộ não liên quan đến lối suy nghĩ của Einstein, trong đó "từ ngữ không có vai trò quan trọng".
Nhà nhân chủng học Dean Falk năm 2012 nhận định điểm nổi bật nhất là não Einstein có thêm một vạch kẻ rộng ở thùy giữa trong não, vốn được dùng để lên kế hoạch và ghi nhớ. Con người chúng ta chỉ có 3 vạch này, nhưng Enstein có tới 4. Bà cũng nhận thấy thùy đỉnh não của Einstein bất đối xứng rõ rệt và bộ não cũng có một phần nhô lên trên dải nếp nhăn. Đây được gọi là "dấu hiệu omega", phổ biến ở những nhạc công thuận tay trái. Trên thực tế, Einstein chơi được violin.
Một năm sau, Falk đứng đầu nghiên cứu về corpus callosum - vùng kết nối bán cầu não trái và phải. Các nhà khoa học nhận ra corpus callosum của Einstein dày hơn, tạo sự phối hợp nhịp nhàng hơn giữa hai bán cầu não.
Tuy nhiên, câu hỏi được đặt ra là những đặc điểm trên do bẩm sinh hay được cấu thành từ quá trình làm việc của Einsten. "Dấu hiệu omega" có thể phát triển khi Einstein thường xuyên chơi violin từ nhỏ, nhưng rất khó để hiểu nguyên nhân hình thành các đặc điểm khác.
Sau mỗi công trình khám phá đó, các tờ báo trên thế giới bắt đầu đăng tải thông tin rằng giới khoa học đã khám phá bí mật về thành công của nhà vật lý lỗi lạc. Tuy nhiên theo nhà tâm lý học Terence Hines, tất cả tuyên bố chỉ dừng lại ở mức độ lý thuyết.
Trên thực tế, các nhà khoa học thừa nhận họ không chắc chắn rằng những điểm khác biệt trên bộ não Einstein có quan hệ mật thiết với tài năng của ông hay không. Einstein không chỉ là một thiên tài, ông còn nói được nhiều ngôn ngữ, chơi đàn và mắc chứng tự kỷ.
Năm 1998, Thomas Harvey đã trao 170 phần não cho bác sĩ Elliot Kraus, Đại học Y Trung tâm Princeton. Krauss nói rằng đây là một vinh dự, nhưng cũng là một gánh nặng. Harvey đã thực hiện trách nhiệm đó suốt 40 năm.
82398308-de28-factory-7511-1429609924.jp
Harvey trong một bộ phim tài liệu của BBC năm 1994. Ảnh: BBC
Bích Ngọc (Theo BBC)

Thứ Sáu, 17 tháng 4, 2015

Vài thủ thuật để sử dụng Gmail một cách nhanh chóng và hiệu quả


Gmail. ​

Gmail là một trong số những dịch vụ email được nhiều người sử dụng nhất hiện nay vì sự đơn giản, tiện lợi và hỗ trợ đồng bộ tốt với nhiều thiết bị, nền tảng khác nhau. Ngoài những tính năng cơ bản ra thì Google còn bổ sung cho Gmail rất nhiều những tính năng giúp việc xử lý email hằng ngày của chúng ta trở nên đơn giản hơn rất nhiều. Trong bài viết này mình sẽ chia sẻ với các bạn những thứ đó, và nếu các bạn có đóng góp thêm gì thì hãy bình luận vào ngay trong topic này luôn nhé.

Dùng Chrome và Firefox để hiển thị thông báo ngay khi có thư mới

Chrome và Firefox có một hệ thống thông báo của riêng hai trình duyệt này và Gmail đã tận dụng rất tốt điều đó. Mỗi khi bạn có email mới, miễn là trình duyệt đang mở thì bạn có thể nhanh chóng được thông báo bằng một hộp thoại nhỏ nhỏ gần thanh đồng hồ (với Windows) hoặc ở góc trên bên phải màn hình (với OS X). Khi nhấp vào thông báo, bạn sẽ được chuyển đến ngay email vừa đến, từ đó xem hoặc trả lời một cách cực kỳ nhanh chóng. Thay vì sử dụng các ứng dụng quản lý mail riêng thì bạn có thể xài tính năng Notification này cho tiện và lại nhẹ nhàng nữa.

Notification.

Để bật tính năng này, bạn truy cập vào Gmail, nhấn vào biểu tượng hình bánh răng (Settings) > thẻ General > Desktop Notification. Nhấn vào dòng "..enable desktop notifications…". Tại đây bạn có 3 tùy chọn:
  • New Mail Notifications - xem thông báo khi mọi email được gửi vào hộp thư
  • Important Mail Notifications - chỉ thông báo các thư nào được đánh dấu quan trọng
  • Mail Notifications Off – không thông báo thư
Khi đã thiết lập xong thì nhấn nút Save Changes ở cuối màn hình là xong.

Notification_Settings.

Hủy gửi một email

Chắc hẳn có một lần trong đời bạn từng ước có nút Undo để hủy đi nội dung email lỡ gửi sai, ví dụ như thư tỏ tình với bạn gái nhưng chợt nghĩ lại chưa phải lúc, hoặc thư gửi sai địa chỉ. May mà Google hiểu được điều đó và đã biến điều ước thành hiệu thực. Mặc dù vẫn còn ở trong giai đoạn thử nghiệm nhưng bạn vẫn có thể kích hoạt nó bằng cách vào Settings > Labs > Undo Send > Enable, sau đó nhấn nút Save Changes. Lưu ý rằng bạn chỉ có thể hủy việc gửi thư trong vài giây sau khi nhấn nút Send, còn trễ hơn là không được nhé.

Undo.

Một số phím tắt thông dụng
  • Ctrl + b: in đậm văn bản
  • Ctrl + i: in nghiêng văn bản
  • Ctrl + u: gạch chân văn bản đã chọn
  • Ctrl + Shift + 7: Tạo danh sách đánh số đầu dòng.
  • Ctrl + Shift + 8: Tạo danh sách đánh bullet đầu dòng.
  • Ctrl + k: chèn nhanh đường link vào văn bản đã chọn
Ngoài ra bạn cũng có thể kích hoạt thêm một số phím tắt nâng cao bằng cách truy cập vào Settings > General > Keyboard shortcuts, chọn "On", nhấn Save Changes. Những phím này bao gồm:
  • C: tạo nhanh một thư mới
  • D: tạo thư mới trong một tab riêng biệt
  • F: chuyển tiếp thư
  • E: lưu trữ thư
  • #: xóa thư
  • /: thực hiện tìm kiếm
  • Shift + i: đánh dấu là đã đọc
  • Shift + u: đánh dấu là chưa đọc
  • Ctrl + S: lưu bản nháp của thư đang soạn thảo
Khai thác tính năng tự động phân loại thư đến

Hồi năm ngoái Gmail được bổ sung thêm tính năng tự động phân loại email theo nhiều mục khác nhau, chẳng hạn như quảng cáo, diễn đàn, thư cập nhật từ các trang tin hoặc thư chính (bao gồm thư bạn bè, người thân, đồng nghiệp, cơ quan...). Mặc định tính năng này chạy hoàn toàn tự động và cũng khá chính xác, tuy nhiên nếu bạn muốn tùy chỉnh nó lại thì vẫn hoàn toàn có thể làm được.

Ví dụ, khi bạn nhận thấy một bức thư của bạn bè thân thiết nhưng lại đi lạc vào inbox "Forum", bạn có thể chọn lấy thư đó, nắm kéo nó rồi thả vào inbox mang tên "Primary". Tương tự, nếu có thư quảng cáo mà lại lọt vào inbox "Primary" thì bạn hãy kéo thả nó sang inbox "Forum". Sau khi di chuyển xong, bạn sẽ được hỏi là có muốn áp dụng việc phân loại tương tự như thế cho các email tương lai hay không thì chọn "Yes" để chúng ta không mất công làm lại.

Inbox.

Ngoài ra, mặc định thì chỉ có thư mới gửi vào hộp thư "Primary" mới được thông báo ra thiết bị di động (nếu bạn xài app Gmail do Google cung cấp, dù là iOS hay Android). Nếu muốn app thông báo mọi thư đến, bất kể hộp thư được phân loại là gì, bạn hãy chạy app lên, vào Settings (biểu tượng bánh răng) > Thông báo > Tất cả thư mới.

iPhone. ​

Chèn nhanh nội dung đã soạn trước vào thư

Đây là tính năng của Gmail cho phép chúng ta chèn một đoạn nội dung đã được soạn trước vào thư một cách nhanh chóng. Canned response hữu dụng khi bạn cần gửi cùng một nội dung thư nhiều lần, như vậy bạn sẽ tiết kiệm được rất nhiều thời gian. Để kích hoạt nó, bạn cần vào Settings > thẻ Labs, sau đó bật Canned response lên và đừng quên nhấn nút "Save changes".

Canned_Res_2.

Bây giờ bạn hãy soạn thảo một thư mới và nhấn vào mũi tên nhỏ nhỏ nằm ở góc dưới bên phải cửa sổ viết thư, chọn Canned response > New Canned response để đặt tên và lưu lại nội dung. Trong những lần sử dụng sau, bạn chỉ việc vào lại menu Canned response này thì sẽ thấy những thứ mình đã soạn trước, muốn chèn nội dung nào thì chọn vào là xong.

Canned_Res.

Lưu trữ email

Bạn có biết rằng những thư đã đọc xong ngoài việc xóa đi thì bạn còn có thể lưu trữ (archive) chúng hay không? Tính năng này rất tuyệt vời bởi vì bạn có thể đảm bảo rằng hộp thư của mình luôn sạch sẽ trong khi vẫn giữ lại đầy đủ những email quan trọng, không lo đến chuyện khi cần thì đã lỡ xóa mất. Để lưu trữ thư, tất cả những gì bạn cần làm đó là chọn lấy các email mong muốn và nhấn nút Archive như đánh dấu trong hình bên dưới. Còn khi muốn tìm lại, bạn có thể tìm bằng hộp Search của Gmail.

Archive.

Ngoài ra, bạn có thể thiết lập cho email tự động được lưu trữ ngay sau khi bạn trả lời một bức thư nào đó. Như vậy bạn sẽ không phải tự mình thực hiện chuyện này nữa, tiết kiệm thời gian! Để cài đặt, bạn vào Settings > Send and Archive > Show "Send & Archive" button in reply. Từ đây về sau, mỗi khi bạn reply thì sẽ thấy một nút mới để áp dụng tính năng nói trên.

Cách chọn hết tất cả email trong inbox cùng lúc

Thủ thuật này nhỏ xíu nhưng lại cực kì mạnh, nó cho phép chúng ta chọn hết thư trong một inbox chỉ với một cái click chuột. Có thể bạn tưởng rằng dấu kiểm nằm ở đầu dòng dùng để chọn hết email là đủ, nhưng thực chất nó chỉ chọn những email đang hiển thị mà thôi, còn loạt bên dưới thì không. Muốn chọn hết thì bạn phải nhấn vào dòng "Select all conversation...".

gmail-tips.

Gmail Offline

Bạn có biết rằng bạn có thể đọc và trả lời thư ngay cả khi bạn không có kết nối Internet? Bạn có thể sử dụng trình duyệt Chrome kết hợp với Gmail Offline Chrome Apps để thực hiện các hành động của mình. Tất cả những hành động này sẽ được đưa vào một hàng đợi và ngay khi có mạng trở lại thì chúng sẽ lần lượt được thực thi.

Gmail_Offline.

Mute một đoạn hội thoại

Mệt mỏi khi phải theo dõi những email bay tay lui của đồng nghiệp trong khi mình và không liên quan? Không sao cả, Gmail cho phép bạn tắt thông báo của một cuộc hội thoại nhất định để đỡ phiền phức. Trong cuộc hội thoại đã chọn, vào More > Mute. Từ đó trở đi bạn chỉ thấy những email nào được gửi đến cho riêng mình hoặc khi địa chỉ của bạn xuất hiện trong trường To: hoặc CC:

Thêm danh sách việc cần làm

Bình thường bạn hay dùng các app bên ngoài để tạo một danh sách todo, nhưng với Gmail thì Google đã tích hợp sẵn tính năng này cho chúng ta. Bạn hãy vào giao diện chính của Gmail, chọn một bức thư nào đó (ví dụ, thư vợ nhắn mua đồ ăn cho con), nhấn nút More > Add to Tasks.

Task_1.

Ngay lập tức một tác vụ mới sẽ xuất hiện trong danh sách những việc cần làm, từ đó bạn có thể thêm ngày giờ hết hạn, ghi chú... Trong trường hợp bạn có xài những ứng dụng nhắc việc hỗ trợ đồng bộ với Google thì các tác vụ này cũng sẽ được đồng bộ xuống và thông báo khi đến thời điểm nhắc nhở. Sau này nếu cần xem lại email có liên quan đến tác vụ đó thì bạn hãy nhấn vào dòng Related email là xong.

Task_2.
Duy Luân
Source: https://www.tinhte.vn/threads/vai-thu-thuat-de-su-dung-gmail-mot-cach-nhanh-chong-va-hieu-qua.2311776/

Thứ Năm, 16 tháng 4, 2015

HƯỚNG DẪN SỬ DỤNG PHẦN MỀM DEV C++ PHIÊN BẢN 4.9.9.2

I. GIỚI THIỆU DEV C++ VÀ HƯỚNG DẪN BIÊN DỊCH VÀ THỰC THI CHƯƠNG TRÌNH
1.Khởi động chương trình Dev C++ bằng cách vào Start \ All Programs \ Bloodshed Dev-C++ \ Dev-C++
2.Để tạo mới một file bạn có thể sử dụng tổ hợp phím Ctrl + N hoặc vào trình đơn File \ New \ Source File
3. Kích chọn vào Tools \ Editor Options để vào chỉnh một số các tùy chọn về trình soạn thảo.
4. Lúc này cửa sổ Editor Options xuất hiện, kích chọn tab Display và các bạn có thể chỉnh sửa các thông số sao cho phù hợp với mình nhất. Ví dụ các bạn có thể chỉnh kích thước phông chữ. Sau đó kích chọn nút OK.
5. Dưới đây là hình ảnh chứa một chương trình code đầy đủ
6. Nhấn tổ hợp phím Ctrl + F9 để biên dịch, nhấn F9 để vừa biên dịch vừa thực thi chương trình hoặc nhấn F10 để thực thi chương trình.
7. Nhập các giá trị của biến và biến b, kết quả thực thi chương trình như sau:
II. HƯỚNG DẪN DEBUG TRONG DEV C++
1. Trước hết các bạn phải tạo các điểm dừng (Breakpoint) bằng cách kích chuột phía trước số dòng hoặc bấm tổ hợp phím Ctrl + F5, như trong hình dưới đang thực hiện tại dòng số 8.
2. Vào trình đơn Debug \ Debug hoặc bấm phím chức năng F8 để tiến hành debug
3. Kích chọn trình đơn Debug \ Next Step hoặc bấm phím chức năng F7 để di chuyển đến dòng code tiếp theo.
4. Lúc này có một cửa sổ dòng lệnh xuất hiện, nhập giá trị của a vào rồi bấm phím Enter.
5. Tiếp tục nhấn phím chức năng F7 và nhập các giá trị cho đến khi tương tự như hình dưới.
6. Lúc này cửa sổ Dev-C++ tương tự như sau:
7. Nhấn tổ hợp phím Shift + F7 để nhảy vào chương trình con. Lúc này màn hình của Dev-C++ như sau:
8. Tiếp tục bấm phím F7 cho đến khi đạt được trạng thái  màn hình tương tự như sau:
9. Nhấn tiếp phím F7 cho đến khi dòng được tô màu xanh ở cuối cùng của chương trình tương tự hình dưới.
10. Lúc này kết quả thực thi chương trình như sau:
11. Nhấn phím F8 để kết thúc Debug hoặc Ctrl + Alt + F2 để kết thúc thực thi.
12. Trong quá trình Debug chúng ta có thể xem giá trị của các biến, các hàm cũng như có thể thay đổi giá trị của chúng. Để thực hiện điều này các bạn có thể kích chọn trình đơn Debug \ Add Watch hoặc bấm phím chức năng F4 hoặc kích phải chuột để mở trình đơn ngữ cảnh và chọnAdd Watch.
13. Lúc này hộp thoại New Variable Watch xuất hiện, các bạn hãy nhập tên biến cần xem như sau, rồi kích chọn OK:
14. Để xem được các giá trị hiện tại của b và c chúng ta thực hiện tương tự như bước 12 và 13 ở trên. Ngoài ra, chúng ta có thể thay đổi được giá trị của biến bằng cách kích phải chuột vào biến, chọn Modify value như hình:
15. Giả sử thay đổi biến b với giá trị hiện tại đang là 63 thành giá trị mới là 65 như hình sau và kích chọn OK.
16. Nhấn phím chức năng F7 để thực hiện lệnh tiếp theo cho đến khi đạt được trạng thái như hình sau:
17. Lúc này, kết quả cuối cùng sẽ là
Source: http://www.khamphacntt.com.vn/huong-dan-su-dung-phan-mem-dev-c-phien-ban-492.html

Thứ Hai, 13 tháng 4, 2015

TỰ ĐỘNG TẠO TRÍCH DẪN CÓ HÌNH THU NHỎ BLOGGER (BLOGSPOT)

Mặc định với những bài viết trên Blogger (blogspot) nếu bạn muốn cho bài viết ngắn lại ở dạng trích dẫn, bạn sẽ sử dụng dấu ngắt của trình soạn thảo văn bản.
Tuy nhiên, làm như vậy sẽ khá thủ công và lượng kí tự hiển thị mỗi bài viết không đều, không thẩm mỹ. Hôm nay mình sẽ hướng dẫn các bạn cách tạo trích dẫn bài viết tự động với hình thu nhỏ (Auto read more with thumbnail) cho Blogger.
Tự động tạo trích dẫn có hình thu nhỏ Blogger (Blogspot)
1. Đầu tiên, các bạn vào Mẫu, chọn Chỉnh sửa HTML
2. Bấm Ctrl+F để tìm đến mã:
[code]</head>[/code]
Chèn đoạn mã dưới đây ngay sau mã vừa tìm được:
[code]<!-- Auto read more script Start -->
<script type='text/javascript'>
var thumbnail_mode = "yes"; //chọn yes để hiển thị ảnh thu nhỏ, ngược lại chọn no
summary_noimg = 430; //chiều dài trích dẫn với bài viết ko có hình
summary_img = 340; //chiều dài trích dẫn với bài viết có hình
img_thumb_height = 100; // chiều cao hình thu nhỏ
img_thumb_width = 120; // chiều rộng hình thu nhỏ
</script>
<script type='text/javascript'>
//<![CDATA[
function removeHtmlTag(strx,chop){ 
 if(strx.indexOf("<")!=-1)
 {
  var s = strx.split("<"); 
  for(var i=0;i<s.length;i++){ 
   if(s[i].indexOf(">")!=-1){ 
    s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length); 
   } 
  } 
  strx =  s.join(""); 
 }
 chop = (chop < strx.length-1) ? chop : strx.length-2; 
 while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++; 
 strx = strx.substring(0,chop-1); 
 return strx+'...'; 
}

function createSummaryAndThumb(pID){
 var div = document.getElementById(pID);
 var imgtag = "";
 var img = div.getElementsByTagName("img");
 var summ = summary_noimg;
        if(thumbnail_mode == "yes") {
 if(img.length>=1) { 
  imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>';
  summ = summary_img;
 }
 }
 var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>';
 div.innerHTML = summary;
}
//]]>
</script>
<!-- Auto read more script End -->[/code]
3. Tiếp tục, tìm đoạn mã: 
[code]<data:post.body/>[/code] 
Thay đoạn mã vừa tìm được bằng đoạn mã bên dưới:
[code]<!-- Auto read more Start -->
<b:if cond='data:blog.pageType == "item"'>
<data:post.body/>
<b:else/>
<b:if cond='data:blog.pageType == "static_page"'>
<data:post.body/>
<b:else/>
<div expr:id='"summary" + data:post.id'><data:post.body/></div>
<script type='text/javascript'> createSummaryAndThumb("summary<data:post.id/>");
</script>
<a class='more' expr:href='data:post.url'>Đọc tiếp ...</a>
</b:if>
</b:if>
<!-- Auto read more End -->[/code]
4. Các bạn bấm Lưu mẫu để hoàn thành!
Chúc các bạn thành công!
Source:http://www.dophuquy.com/2012/05/tu-dong-tao-trich-dan-co-hinh-thu-nho.html