Thứ Tư, 10 tháng 4, 2013

TÌM HIỂU NHỮNG CÔNG NGHỆ SỬ DỤNG TRÊN FACEBOOK


TÌM HIỂU NHỮNG CÔNG NGHỆ SỬ DỤNG TRÊN FACEBOOK

Là một trong những mạng xã hội có số lượng thành viên lớn nhất thế giới, Facebook phải sử dụng những công nghệ cực kì hiện đại mới có thể vận hành cỗ máy khổng lồ như vậy.

Facebook hiện đã trở thành một mạng xã hội quen thuộc với cộng đồng dân cư mạng trên toàn thế giới. Với số lượng người tham gia lên đến 400 triệu, lớn hơn rất nhiều lần dân số trung bình của một quốc gia, Facebook đang chiếm ngôi vị số 1 trong lĩnh vực mạng xã hội.

Tuy nhiên, để quản lý và vận hành một trang web lớn như vậy chắc chắn không phải là một việc đơn giản. Trong bài viết này, chúng tôi sẽ giúp các bạn có cái nhìn tổng quan về những công nghệ đang được Facebook sử dụng.

Trước tiên, chúng ta sẽ tìm hiểu về tình hình thực tế hiện nay của Facebook.

* Mỗi tháng có khoảng 630 tỉ lượt page views. (Theo Google Ad Planner) * Số ảnh có trên Facebook nhiều hơn tất cả các trang chia sẻ ảnh gộp lại. (Bao gồm cả những trang lớn như Flickr) * Hơn 3 tỉ bức ảnh được tải lên Facebook hàng tháng, trung bình có 1,2 triệu bức ảnh mỗi giây (Không tính những bức ảnh thông qua hệ thống CDN của Facebook) * Hơn 25 tỉ dữ liệu về thông tin (status, comment…v.v) được chia sẻ mỗi tháng. * Facebook có hơn 30.000 máy chủ. (Đây là số liệu thông kê cách đây 1 năm)

Những phần mềm và công nghệ đang được Facebook sử dụng:

Về cơ bản, Facebook hoạt động dựa trên nền tảng LAMP (Linux, Apache, MySQL và PHP) nhưng chúng đều được thay đổi, chỉnh sửa rất nhiều để phù hợp với nhu cầu riêng của mình, với những công nghệ chủ yếu sau:

Memcached


Memcached là một hệ thống cache mà hầu hết các trang web lớn trên thế giới như: Youtube, Wikipedia, Flickr, Twitter… sử dụng. Không khó hiểu khi nó được Facebook sử dụng cho hệ thống của mình.

Facebook chạy hàng nghìn máy chủ Memcached với dung lượng dữ liệu cache là 10 terabytes tại bất kì thời điểm nào. Đây có thể coi là hệ thống Memcache lớn nhất thế giới.

HipHop cho PHP

PHP là một dạng ngôn ngữ lập trình kịch bản, do đó tốc độ của nó khá chậm so với các ngôn ngữ có thể chạy trực tiếp trên máy chủ. HipHop sẽ chuyển mã PHP sang thành mã C++ nhờ đó có thể được biên dịch để đạt tốc độ cao hơn. Điều này giúp Facebook tận dụng tốt hơn sức mạnh của máy chủ do Facebook chủ yếu dùng PHP.

Nhóm kĩ sư của Facebook (gồm 3 người) đã mất 18 tháng để phát triển HipHop và giờ nó đã thành một sản phẩm hoàn thiện.

 Haystack
Haystack là hệ thống lưu trữ và quản lý ảnh tốc độ cao của Facebook (nói một cách chính xác là hệ thống lưu trữ đối tượng, đối tượng không nhất thiết phải là ảnh).

Facebook đang lưu trữ hơn 20 tỉ bức ảnh và mỗi tháng lại có thêm 3 tỉ bức ảnh mới được tải lên. Mỗi bức ảnh được lưu dưới 4 độ phân giải khác nhau. Như vậy tổng cộng Facebook có hơn 80 tỉ bức ảnh. Hơn nữa, có tới 1.2 triệu bức ảnh cần phải xử lý mỗi giây. Chính vì vậy, hệ thống quản lý này không chỉ giúp xử lý đơn thuần mà còn giúp tăng tốc độ xử lý dữ liệu cho Facebook.

BigPipe

BigPipe cũng là một hệ thống do Facebook phát triển. Facebook dùng hệ thống này để xử lý mỗi trang web theo từng phần nhỏ một (hay còn gọi là theo luồng) nhằm mục đích tăng tốc độ cho người dùng.

Ví dụ, cửa sổ chat hoàn toán tách biệt với mục feed. Điều này không chỉ giúp tăng tốc độ tải trang mà còn có tác dụng hạn chế sự cố xảy ra đồng thời.

Cassandra

Cassandra là hệ thống lưu trữ dữ liệu được Facebook sử dụng cho tính năng tìm kiếm trong Inbox.

Đây là một phần mềm nguồn mở (hiện tại đang là một dự án của Apache) được rất nhiều trang web lớn sử dụng.

Varnish

Varnish là trình tăng tốc HTTP hoạt động như một load balancer (bộ phân tải) và hệ thống cache nội dung giúp tốc độ tải trang là nhanh nhất.

Facebook sử dụng Varnish để xử lý ảnh thông thường và các ảnh trong profile người dùng. Nó có thể xử lý hàng tỉ requests (yêu cầu) trong một ngày. Tương tự các phần mềm khác được Facebook sử dụng, Varnish cũng là một phần mềm nguồn mở.

Kết luận

Với một mạng xã hội có quy mô khổng lồ như Facebook, việc hệ thống chạy nhanh và ổn định không chỉ đơn giản là việc sử dụng công nghệ tiên tiến mà còn phải phụ thuộc vào rất nhiều yếu tố khác. Với việc sử dụng phần mềm nguồn mở, Facebook đã đóng góp không ít cho sự phát triển của cộng đồng.

View status of ALL CPU on Linux

Command:

#mpstat -P ALL 5

Chủ Nhật, 7 tháng 4, 2013

limit.conf


limits.conf - configuration file for the pam_limits module,

/etc/security/limits.conf

The syntax of the lines:

<domain> <type> <item> <value>

The fields listed above should be filled as follows:

<domain>
    * A username

    * A groupname, with @group syntax. This should not be confused with netgroups.

    * The wildcard *, for default entry.

    * The wildcard %, for maxlogins limit only, can also be used with %group syntax.
<type>

hard
    for enforcing hard resource limits. These limits are set by the superuser and enforced by the Kernel. The user cannot raise his requirement of system resources above such values.
soft
    for enforcing soft resource limits. These limits are ones that the user can move up or down within the permitted range by any pre-exisiting hard limits. The values specified with this token can be thought of as default values, for normal system usage.
    -

    for enforcing both soft and hard resource limits together.
Note, if you specify a type of '-' but neglect to supply the item and value fields then the module will never enforce any limits on the specified user/group etc.

<item>
core
    limits the core file size (KB)
data
    maximum data size (KB)
fsize
    maximum filesize (KB)
memlock
    maximum locked-in-memory address space (KB)
nofile
    maximum number of open files
rss
    maximum resident set size (KB)
stack
    maximum stack size (KB)
cpu
    maximum CPU time (minutes)
nproc
    maximum number of processes as address space limit
maxlogins
    maximum number of logins for this user
maxsyslogins
    maximum number of logins on system
priority
    the priority to run user process with (negative values boost process priority)
locks
    maximum locked files (Linux 2.4 and higher)
sigpending
    maximum number of pending signals (Linux 2.6 and higher)
msqqueue
    maximum memory used by POSIX message queues (bytes) (Linux 2.6 and higher)
nice
    maximum nice priority allowed to raise to (Linux 2.6.12 and higher)
rtprio
    maximum realtime priority allowed for non-privileged processes (Linux 2.6.12 and higher)

In general, individual limits have priority over group limits, so if you impose no limits for admin group, but one of the members in this group have a limits line, the user will have its limits set according to this line.

Also, please note that all limit settings are set per login. They are not global, nor are they permanent; existing only for the duration of the session.

In the limits configuration file, the '#' character introduces a comment - after which the rest of the line is ignored.

The pam_limits module does its best to report configuration problems found in its configuration file via syslog(3).
Examples

Example lines which might be specified in /etc/security/limits.conf.

*               soft    core            0
*               hard    rss             10000
@student        hard    nproc           20
@faculty        soft    nproc           20
@faculty        hard    nproc           50
ftp             hard    nproc           0
@student        -       maxlogins

# Feel the city breakin and everybody shakin, and we're stayin alive, stayin alive # ~ The Bee Gees

Related:

/etc/security/limits.conf
quota - Display disk usage and limits
ulimit - Control the resources available to a process
Fork bomb - Wikipedia
pam_limits(8), pam.d(5), pam(8)

sysctl.conf

Tunning settings in sysctl.conf really help speeding things up under heavy usage..

Basically just edit your /etc/sysctl.conf file (you will need to be root)...

Here are my settings (you may or may not have some of these already), I tried to put a short comment for each, you can google them if you need more info:


# Disables packet forwarding
net.ipv4.ip_forward = 0
# Enables source route verification
net.ipv4.conf.default.rp_filter = 1
# Disables the magic-sysrq key
kernel.sysrq = 0
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 25
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 3600
# Turn on the tcp_window_scaling
net.ipv4.tcp_window_scaling = 1
# Turn on the tcp_sack
net.ipv4.tcp_sack = 1
# tcp_fack should be on because of sack
net.ipv4.tcp_fack = 1
# Turn on the tcp_timestamps
net.ipv4.tcp_timestamps = 1
# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1
# Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Don't Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 0
# Make more local ports available
net.ipv4.ip_local_port_range = 1024 65000
# Increase maximum amount of memory allocated to shm
kernel.shmmax = 1073741824
# Improve file system performance
vm.bdflush = 100 1200 128 512 15 5000 500 1884 2
# This will increase the amount of memory available for socket input/output queues
net.ipv4.tcp_rmem = 4096 25165824 25165824
net.core.rmem_max = 25165824
net.core.rmem_default = 25165824
net.ipv4.tcp_wmem = 4096 65536 25165824
net.core.wmem_max = 25165824
net.core.wmem_default = 65536
net.core.optmem_max = 25165824

# If you are feeling daring, you can also use these settings below, otherwise just remove them. (Should increase performance)

net.core.netdev_max_backlog = 2500
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1

After you make the changes to the file, you can make them effective immediately by typing in /sbin/sysctl -p

Also, you will need to issue sysctl -w net.ipv4.route.flush=1 to flush the routing table to make some of these changes happen instantly.

Lastly, you can increase the size of the interface queue by typing /sbin/ifconfig eth0 txqueuelen 1000

Thứ Sáu, 5 tháng 4, 2013

Lost all Redo log file -- why does rman backup DB without redolog ?


 -- Thanks for the question regarding "Lost all Redo log file", version 9208

You Asked

Hi Tom,
I am practising Recovery .
CASE 1)I have Development TEST DB in NON-ARCHIVE Mode. NEVER backed up.

All Redo log files including the active one ,are dropped from the OS.

How to recover such a DB. I dont mind loosing Transactions.

Is it possible ?

CASE 2 )I have Development TEST DB in ARCHIVE Mode. NEVER backed up.

All Redo log files including the active one ,are dropped from the OS.
Have all the archived logs.

How to recover such a DB. I dont mind loosing Transactions.

Is it possible ?

and we said...

1) if the database was open and you removed the redo and the database is not shutdown normal (eg: it crashed), you have just lost all of your data.

If your redo was lost and the database was either

a) not running, had been shutdown NORMAL (not abort, not crashed), then you have no problem.

b) running - but you were able to shutdown normal (since in unix, erasing a file doesn't really erase it if someone has it open), then you have no problem.

But if the database was shutdown abort or otherwise crashed - you have lost it all.

sys%ORA9IR2> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG

sys%ORA9IR2> select member from v$logfile;

MEMBER
-------------------------------------------------------------------------------
/home/ora9ir2/oradata/ora9ir2/redo01.log
/home/ora9ir2/oradata/ora9ir2/redo02.log
/home/ora9ir2/oradata/ora9ir2/redo03.log

sys%ORA9IR2> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys%ORA9IR2> !rm /home/ora9ir2/oradata/ora9ir2/redo01.log

sys%ORA9IR2> !rm /home/ora9ir2/oradata/ora9ir2/redo02.log

sys%ORA9IR2> !rm /home/ora9ir2/oradata/ora9ir2/redo03.log

sys%ORA9IR2> startup
ORACLE instance started.

Total System Global Area  235999648 bytes
Fixed Size                   450976 bytes
Variable Size             201326592 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/home/ora9ir2/oradata/ora9ir2/redo01.log'


sys%ORA9IR2> shutdown
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
sys%ORA9IR2> startup mount
ORACLE instance started.

Total System Global Area  235999648 bytes
Fixed Size                   450976 bytes
Variable Size             201326592 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
Database mounted.
sys%ORA9IR2> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery


sys%ORA9IR2> recover database until cancel;
Media recovery complete.
sys%ORA9IR2> alter database open resetlogs;

Database altered.

sys%ORA9IR2> select member from v$logfile;

MEMBER
-------------------------------------------------------------------------------
/home/ora9ir2/oradata/ora9ir2/redo01.log
/home/ora9ir2/oradata/ora9ir2/redo02.log
/home/ora9ir2/oradata/ora9ir2/redo03.log

sys%ORA9IR2> !ls -l /home/ora9ir2/oradata/ora9ir2/redo01.log
-rw-rw----  1 ora9ir2 ora9ir2 104858112 Jul 16 12:13 
/home/ora9ir2/oradata/ora9ir2/redo01.log





2) same thing as above. If your database was shutdown clean AND THEN the logs were lost - no problem.

If your database was shutdown crashed - we needed those redo logs to perform instance crash recovery and you have just lost all of your data - your archives are useless.
Reviews    
4 stars Please elaborate   February 8, 2011 - 11am UTC
Reviewer: Arvind from St. Louis, USA
Hi Tom,

From the above explanation "since in unix, erasing a file doesn't really erase it if someone has it 
open"

Can you please elaborate it a little, what would be the case when we would erase the online redo 
log file but they will not be deleted? How would someone have it opened? What did you mean by this 
in context of the redo logs?

Another non-related question -- Can we get a notification email when you post a reply to our 
queries here on AskTom?

Thanks a lot!

Arvind



Followup   February 10, 2011 - 3pm UTC:
say the oracle database is writing to redo01.log. It has it open, the file is opened by that process.

say you rm redo01.log. The file is still open by the oracle process, but the rm will SUCCEED. The rm simply unlinks the filename in the directory - it doesn't remove the file data. The oracle process will continue to write to the file - the file just won't exist in the directory (the directory entry is gone)

When the last process that has that redo01.log file opens it - because the directory entry is wiped it - the file data will become unlinked to - then the file is truly erased.


Notifications can be had if you are the one that asked the original question only.
3 stars   July 19, 2012 - 1am UTC
Reviewer: Bhuban from Delhi, India
It is a good example. After recovery database in mount status the redo files are created by oracle 
process itself as the naming conventions are already in controlfile.
--Thanks!!!


4 stars Lost redo log   September 13, 2012 - 2pm UTC
Reviewer: Huru from Azerbaijan Baku
HI TOM!
I am practising Recovery and lost my redo log files

[oracle@localhost orcl]$ ls
control01.ctl redo01.log system01.dbf undotbs01.dbf
example01.dbf sysaux01.dbf temp01.dbf users01.dbf

1.SQL> startup
ORACLE instance started.

Total System Global Area 975081472 bytes
Fixed Size 1340664 bytes
Variable Size 620759816 bytes
Database Buffers 348127232 bytes
Redo Buffers 4853760 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 2289
Session ID: 125 Serial number: 5

2.SQL> startup mount
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
3. SQL> alter database open resetlogs;
ERROR:
ORA-03114: not connected to ORACLE

4.SQL> recover database until cancel;
ERROR:
ORA-03114: not connected to ORACLE


Followup   September 14, 2012 - 6pm UTC:
you do not give sufficient information to help you. tell us about your datafiles, how you shutdown the database, what you actually *did* 

Thứ Năm, 4 tháng 4, 2013

Oradb admin work

- Create backup spfile by pfile
- Create backup controlfile by script(trace)
- Backup controlfile by rman.

Controlfile Administrator:
-------------------------
+ duplicate controlfile
1. create pfile from spfile
2. shutdown db
3. copy controlfile to duplicate
4. edit pfile add entry to new controlfile(or delete in case lost of controlfile)
5. startup db with the pfile
6. create spfile from pfile...



Thứ Tư, 3 tháng 4, 2013

Apache as Reverse Proxy


Configuring mod_proxy support for Apache

To configure an instance of Apache HTTP Server to support proxy access to RWP, you must configure the Apache HTTP Server with proxy support supplied by the Apache mod_proxy module. Detailed information about how to do this is available athttp://www.apache.org/. The following is a summary of the steps you will need to take:
  1. Configure the Apache HTTP Server to load the mod_proxy module and the other modules upon which it depends. This typically requires you to uncomment various LoadModule directives related to mod_proxy support in the Apachehttpd.conf file. For example:
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_http_module modules/mod_proxy_http.so 
  2. Uncomment the ProxyRequests On directive in the <IfModule mod_Proxy.c> block in httpd.conf:
    <IfModule mod_proxy.c>
    ProxyRequests On
    </IfModule>
    If you are configuring reverse proxy support, change the ProxyRequests parameter value from On to Off. For forward proxy support, leave this parameter set to On. Setting ProxyRequests to Off does not disable use of ProxyPass directives.
  3. Add the appropriate ProxyPass and ProxyPassReverse directives within the <IfModule mod_proxy.c> block in httpd.conf.ProxyPass and ProxyPassReverse directives are application specific.In this example, the hostname is the name of the RWP server host and port is an optional port number, which you must specify if you have changed the default port on which RWP listens for HTTP requests (see To change the default RWP HTTP port).
    ProxyPass / http://hostname[:port]/
    ProxyPass /cqweb/ http://hostname[:port]/cqweb/
    ProxyPass /wre/ http://hostname[:port]/wre/
    ProxyPass /common/ http://hostname[:port]/common/
    ProxyPass /px/ http://hostname[:port]/wre/px/
    ProxyPass /wpf/ http://hostname[:port]/wre/wpf/
    ProxyPass /dct/ http://hostname[:port]/dct/
    ProxyPass /scripts/ http://hostname[:port]/scripts/
    ProxyPass /view/ http://hostname[:port]/view/
    ProxyPass /siteconfig/ http://hostname[:port]/wre/siteconfig/
    ProxyPass /help/ http://hostname[:port]/view/browser/help/
    ProxyPass /doc/ http://hostname[:port]/doc/
    ProxyPass /html/ http://hostname[:port]/wre/common/html/
    
    ProxyPassReverse / http://hostname[:port]/
    ProxyPassReverse /cqweb/ http://hostname[:port]/cqweb/
    ProxyPassReverse /wre/ http://hostname[:port]/wre/
    ProxyPassReverse /common/ http://hostname[:port]/common/
    ProxyPassReverse /px/ http://hostname[:port]/wre/px/
    ProxyPassReverse /wpf/ http://hostname[:port]/wre/wpf/
    ProxyPassReverse /dct/ http://hostname[:port]/dct/
    ProxyPassReverse /scripts/ http://hostname[:port]/scripts/
    ProxyPassReverse /view/ http://hostname[:port]/view/
    ProxyPassReverse /siteconfig/ http://hostname[:port]/wre/siteconfig/
    ProxyPassReverse /help/ http://hostname[:port]/view/browser/help/
    ProxyPassReverse /doc/ http://hostname[:port]/doc/
    ProxyPassReverse /html/ http://hostname[:port]/wre/common/html/
    For example, the following directives would configure the proxy server to support access by the Rational ClearQuest Web interface to an RWP process listening on port 81 of a host named RWP_host.
    ProxyPass / http://RWP_host:81/
    ProxyPass /cqweb/ http://RWP_host:81/cqweb/
    ProxyPass /wre/ http://RWP_host:81/wre/
    ProxyPass /common/ http://RWP_host:81/common/
    ProxyPass /px/ http://RWP_host:81/wre/px/
    ProxyPass /wpf/ http://RWP_host:81/wre/wpf/
    ProxyPass /dct/ http://RWP_host:81/dct/
    ProxyPass /scripts/ http://RWP_host:81/scripts/
    ProxyPass /view/ http://RWP_host:81/view/
    ProxyPass /siteconfig/ http://RWP_host:81/wre/siteconfig/
    ProxyPass /help/ http://RWP_host:81/view/browser/help/
    ProxyPass /doc/ http://RWP_host:81/doc/
    ProxyPass /html/ http://RWP_host:81/wre/common/html/
    
    ProxyPassReverse / http://RWP_host:81/
    ProxyPassReverse /cqweb/ http://RWP_host:81/cqweb/
    ProxyPassReverse /wre/ http://RWP_host:81/wre/
    ProxyPassReverse /common/ http://RWP_host:81/common/
    ProxyPassReverse /px/ http://RWP_host:81/wre/px/
    ProxyPassReverse /wpf/ http://RWP_host:81/wre/wpf/
    ProxyPassReverse /dct/ http://RWP_host:81/dct/
    ProxyPassReverse /scripts/ http://RWP_host:81/scripts/
    ProxyPassReverse /view/ http://RWP_host:81/view/
    ProxyPassReverse /siteconfig/ http://RWP_host:81/wre/siteconfig/
    ProxyPassReverse /help/ http://RWP_host:81/view/browser/help/
    ProxyPassReverse /doc/ http://RWP_host:81/doc/
    ProxyPassReverse /html/ http://RWP_host:81/wre/common/html/
    Note: The Web addresses specified in this example must be written in the httpd.conf file exactly as specified, with the exception of the host name and optional port number.
    For the ClearCase Web interface, add these ProxyPass and ProxyPassReverse directives:
    ProxyPass /ccweb http://hostname[:port]/ccweb
    ProxyPassReverse /ccweb http://hostname[:port]/ccweb
    ProxyPass /Java_Plugins http://hostname[:port]/Java_Plugins
    ProxyPassReverse /Java_Plugins http://hostname[:port]/Java_Plugins
    The hostname is the name of the RWP server host and port is an optional port number, which you must specify if you have changed the default port on which RWP listens for HTTP requests (see To change the default RWP HTTP port). For example, the following directives would configure the proxy server to support access by the ClearCase Web interface to an RWP process listening on port 81 of a host named RWP_host.
    ProxyPass        /ccweb http://RWP_host:81/ccweb
    ProxyPassReverse /ccweb http://RWP_host:81/ccweb
    ProxyPass        /Java_Plugins http://RWP_host:81/Java_Plugins
    ProxyPassReverse /Java_Plugins http://RWP_host:81/Java_Plugins
    For the ClearQuest Web interface, add these ProxyPass and ProxyPassReverse directives:
    • For the ClearQuest Web interface, add the ProxyPass and ProxyPassReverse directives of the following form for theccweb Web address.ProxyPass /wpf/ http://hostname[:port]/wpf/
      ProxyPass /px/ http://hostname[:port]/px/
      ProxyPass /images/ http://hostname[:port]/images/
      ProxyPass /dct/ http://hostname[:port]/dct/
      ProxyPass /common/ http://hostname[:port]/common/
      ProxyPass /../view/ http://hostname[:port]/view/
      ProxyPass /view/ http://hostname[:port]/view/
      ProxyPass /cqweb/ http://hostname[:port]/cqweb/
      ProxyPass /cqattachments/ http://hostname[:port]/cqattachments/
      ProxyPassReverse / http://hostname[:port]/
      The hostname is the name of the RWP server host and port is an optional port number, which you must specify if you have changes the default port on which RWP listens for HTTP requests. The following example supports proxy access by the ClearQuest Web interface to an RWP process listening on port 81 of a host named RWP_host.
    ProxyPass         /wpf/ http://RWP_host:81/wpf/
    ProxyPass        /px/ http://RWP_host:81/px/
    ProxyPass        /images/ http://RWP_host:81/images/
    ProxyPass        /dct/ http://RWP_host:81/dct/
    ProxyPass        /common/ http://RWP_host:81/common/
    ProxyPass        /../view/ http://RWP_host:81/view/
    ProxyPass        /view/  http://RWP_host:81/view/
    ProxyPass        /cqweb/ http://RWP_host:81/cqweb/
    ProxyPass        /cqattachments/ http://RWP_host:81/cqattachments/
       ProxyPassReverse / http://RWP_host:81/
    The Web addresses used by Web interfaces to IBM products may change when you install a new release of ClearCase, ClearQuest, or any other IBM products on the RWP host. To find the currently valid Web addresses for IBM products on the RWP host, examine the *.conf files in the RWP conf/include directory. The application Web addresses are embedded as arguments to Alias or JkMount directives. For example: JkMount /CQWeb/* ajp13 indicates that /CQWeb is a Web address that supports (omit the trailing /* ). Similarly: Alias /ccweb "_CC_HOME_/web" indicates that /ccweb is a Web address that RWP supports.

setup java jre on linux


chmod a+x jre-1_5_0_02-linux-i586-rpm.bin
./ jre-1_5_0_02-linux-i586-rpm.bin

How To Install Apache 2 with SSL on Linux (with mod_ssl, openssl)


1. Download Apache

#cd ~
#wget http://www.eng.lsu.edu/mirrors/apache//httpd/httpd-2.2.17.tar.gz
#tar xvfz httpd-2.2.17.tar.gz

install by yum:

[root@localhost ~]# yum install httpd

2. Install Apache with SSL/TLS
#cd httpd-2.2.17
#./configure --help
--------------------------------------

#./configure --enable-ssl --enable-so
#make
#make install

3. Enable SSL in httpd.conf

# vi /usr/local/apache2/conf/httpd.conf
 adding this text:
-----------------
Include conf/extra/httpd-ssl.conf
-----------------

vi /usr/local/apache2/conf/extra/httpd-ssl.conf
# egrep 'server.crt|server.key' httpd-ssl.conf
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

4. Create server.crt and server.key file

#cd ~
Making a private key:
#openssl genrsa -des3 -out server.key 1024

Next, generate a certificate request file (server.csr) using the above server.key file.

#openssl req -new -key server.key -out server.csr


Finally, generate a self signed ssl certificate (server.crt) using the above server.key and server.csr file

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

5. Copy the server.key and server.crt

cd ~
cp server.key /usr/local/apache2/conf/
cp server.crt /usr/local/apache2/conf/


6. Start the apache and verify SSL

/usr/local/apache2/bin/apachectl start
Apache/2.2.17 mod_ssl/2.2.17 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server www.example.com:443 (RSA)
Enter pass phrase:
OK: Pass Phrase Dialog successful.


------------------------------

can't see option to declare SSL Engine ON

Oracle Indexes


Creating Oracle Indexes


Once you have decided you need to create an index you use the create index command. The command is pretty straightforward as seen in this example:

CREATE INDEX
   ix_emp_01
ON
   emp (deptno)
TABLESPACE
   index_tbs;

This statement creates an index called IX_EMP_01. This index is built on the DEPTNO column of the EMP table. We also defined the tablespace that the index should be created in using the tablespace keyword, in this case we created it in the INDEX_TBS tablespace.
You can create indexes on multiple columns in a table. Say, for example, we wanted an index on the EMP table columns EMPNO and DEPTNO. This is known as a concatenated index, and it’s created this way:

CREATE INDEX ix_emp_01 ON emp (empno, deptno) TABLESPACE index_tbs;

Altering Oracle Indexes

If we create indexes, there may be times that we will want to change some attribute of that index, such as where it is stored. Also, sometimes an index needs to be rebuilt to help with performance. For cases like these, the alter index command is what we want.
Let’s look at an example of the use of the alter index command:

ALTER INDEX ix_emp_01 REBUILD TABLESPACE new_index;

In this example we use the alter index command to rebuild an index. The rebuild keyword is what tells Oracle to rebuild the index. When we use the tablespace keyword, followed by a tablespace name, we are telling Oracle which tablespace to recreate the rebuilt index in. By default Oracle will create the rebuilt index in the same tablespace.
The alter index command allows you to rename an index using the rename to keyword as seen in this example:

ALTER INDEX ix_emp_01 RENAME TO ix_emp_01_old;

In this case we have renamed the ix_emp_01 index to ix_emp_01_old. All of the data dictionary entries will be changed by Oracle to reflect the new name (we will discuss indexes and the data dictionary in a moment)

Dropping Oracle Indexes

Sometimes what we create we must destroy. When it’s time to remove an index, the drop index command is what is needed. The drop index command is pretty straight forward as seen in this example:

DROP INDEX ix_emp_01_old;

Generate create index syntax

You can punch create index DDL syntax is using the dbms_metadata package, something like this:select 
   dbms_metadata.get_ddl('INDEX',index_name) 
from 
   user_indexes
where
   xxxx;

For more information on creating indexes see these articles:

Thứ Ba, 2 tháng 4, 2013

How to install GUI for Centos ?

To install KDE Desktop, type this:

yum groupinstall "X Window System" "KDE (K Desktop Environment)"

To install Gnome Desktop, type this:

yum groupinstall "X Window System" "GNOME Desktop Environment"

After the installation is finished, type this to start KDE or GNOME:

startx



Thứ Hai, 1 tháng 4, 2013

Quy trình thiết kế GUI cho Web site (IWP 1.1)



Quy trình thiết kế GUI cho Web site (IWP 1.1)

Quy trình thiết kế GUI cho Web site dựa trên quy trình IWP 1.1 của iGURU Việt Nam.

Web là một kênh media mới, một kênh kinh doanh mới nhưng trong bài viết này iGURU Việt Nam chỉ đề cập khía cạnh kỹ thuật của thiết kế giao diện Web. Khi thiết kế Web như một media mới, quy trình thiết kế sẽ khác nhiều.

Bài viết của iGURU được đăng dưới dạng bản quyền Creative Commons Some Rights Reserved, theo Attribution-NoDerivs 2.5.

Xem Creative Commons tại http://my.opera.com/iguru/blog/2008/03/09/ban-quyen-creative-commons

Quy trình phát triển GUI cho Web site.

Thiết kế Giao diện dành cho Người sử dụng là một công việc trong quy trình phát triển một Web site. Tại Việt Nam, nhiều doanh nghiệp vừa và nhỏ không quan tâm chất lượng phần mềm, dịch vụ sau bán hàng mà thường quan tâm đến giao diện Web có đẹp hay không. Tuy nhiên đây lại là hạn chế của hầu hết các doanh nghiệp thiết kế Web. Trong phạm vi cho phép, chúng tôi xin trình bày các bước xây dựng Giao diện Web cho người sử dụng, nhằm giúp các bạn đạt hiệu quả thiết kế giao diện cao hơn.

Bài viết này không có tham vọng chỉ ra Marketing với Web như thế nào, nhưng việc hiểu về quy trình làm Web giúp các Marketer có phương pháp phối hợp tốt hơn qua đó phối hợp với nhà cung cấp dịch vụ Web của công ty, sản phẩm, dịch vụ đạt hiệu quả cao hơn.

Bài viết không đi sâu vào nghệ thuật thiết kế Web, bài viết chỉ ra các bước nên làm với một dự án thiết kế giao diện Web.
Quy trình được dựa trên Chuẩn IWP phiên bản 1.0 của IGURU. Bài viết có sử dụng 02 giao diện của Website bán hàng trực tuyến, Web site tin tức do iGURU thiết kế

Quy trình bao gồm các bước sau:
Bước 1: Xác định yêu cầu của khách hàng.
Bước 2: Phác thảo ý tưởng trên giấy
Bước 3: Đánh giá mẫu phác thảo
Bước 4: Thiết kế đồ hoạ bản đơn sắc
Bước 5: Phối màu cho giao diện Web
Bước 6: Xây dựng tài liệu về chuẩn CSS, clientsite script, ảnh, folder cho trang Web
Bước 7: Sử dụng các ngôn ngữ đánh dấu, lập trình để thiết kế giao diện.
Bước 8: Test giao diện trên các trình duyệt
Bước 9: Chuyển mã nguồn tới bộ phận phát triển Web

Bước 1: Xác định yêu cầu của khách hàng.
Mục tiêu của giai đoạn này là xác định chính xác yêu cầu hoặc tư vấn cho khách hàng. Yêu cầu là một điều kiện hoặc khả năng mà hệ thống phải tuân theo hoặc có. .

Nhiều khi khách hàng cũng không biết họ cần gì, nên khi xác định yêu cầu bạn nên xây dựng trước một biểu mẫu câu hỏi để lấy yêu cầu của khách hàng. Yêu cầu phải đạt những tiêu chí sau:

  • Yêu cầu phải bao quát giao diện, chức năng, cấu trúc nội dung, đối tượng xem Web site.
  • Trao đổi thông tin dựa trên các yêu cầu đã xác định trước khi tiếp cận khách hàng. Bạn phải nghiên cứu về yêu cầu chung của khách hàng trước khi tiếp cận.
  • Xây dựng bảng câu hỏi logic để chuyển đổi sang phân tích yêu cầu nghiệp vụ, yêu cầu hệ thống đơn giản, dễ dàng.
  • Đặt độ ưu tiên, lọc và theo dõi các yêu cầu.
  • Đánh giá khách quan các chức năng và hiệu năng.


Mẹo: để có thể hoàn thành Web nhanh chóng và chính xác nên đặt những câu hỏi:
  • Sau 3 năm nữa Web site sẽ phục vụ mục đích gì?
  • Hãy liệt kê các tính năng mà bạn nghĩ ra được và đặt theo thứ hạng: Bắt buộc, Mong muốn và Tuỳ chọn.
  • Bạn cho biết 03 Web site bạn ưa thích nhất, trong đó những điểm nào làm bạn thích và những điểm nào bạn chưa thích?


Bước 2: Phác thảo ý tưởng trên giấy
Mục tiêu của bước này là định hình bố cục của trang Web.

Nào giờ là lúc bạn thể hiện hoa tay của mình, để linh hoạt trong việc phác ý tưởng, bạn nên sử dụng bảng vẽ, bút chì, thước kẻ và tẩy. Dựa vào kinh nghiệm thành công của bạn, bạn thấy những tiêu chuẩn nào nên có, ví dụ các tiêu chuẩn sau của IWP 1.0:

  • Banner không quá 1/3 màn hình thực của người sử dụng (màn hình thực là màn hình của trình duyệt có thể xem được trang Web, đã bỏ đi các thanh tool bar của trình duyệt Web).
  • Sitebar không lớn quá 25% chiều rộng trang Web.
  • ....


Bạn cũng nên xây dựng chuẩn bố cục dựa trên nội dung đối với toàn bộ Web site. Web site là tập hợp của những trang Web, mỗi trang Web tập hợp các nội dung có mối liên quan hoặc không giữa các trang Web. Dựa vào nội dung, bạn chia trang Web làm 02 vùng:

  • Vùng template (theo chuẩn IWP)
  • Vùng hiệu chỉnh.


Vùng template là vùng không hiệu chỉnh hoặc hiệu chỉnh rất ít xuyên suốt các trang Web của Web site.
Vùng hiệu chỉnh là vùng có thay đổi nội dung trong hầu hết các trang Web của Web site.
Bạn nên cân nhắc trước khi xác định vùng nào là vùng template hoặc vùng hiệu chỉnh, vì việc này sẽ ảnh hưởng đến xây dựng mã CSS, HTML chung của giao diện Web site.

Bạn cũng nên quy chuẩn các đối tượng trong bố cục để dễ trình bày, quản lý, theo dõi. Ví dụ: Ảnh là hình chữ nhật có đánh dấu x; chữ là đường kẻ,...
Nếu đây là một dự án phức tạp bạn nên tham khảo quy trình RUP và kết hợp với quy trình này để ra một giải pháp quản lý dự án phù hợp hơn.

Ví dụ:



Bước 3: Đánh giá mẫu phác thảo
Mục đích của bước này là đánh giá mẫu phác nào phù hợp với yêu cầu, mong muốn của khách hàng. Để tìm hiểu sâu hơn về thiết kế Web và Thương hiệu bạn xem các bài viết khác tại iGURU Blog.

Bạn nên có tối thiểu 03 mẫu phác trên giấy, sau đó bạn treo lên tường và mời những người khác cùng xem và đánh giá. Mẫu phác thảo đạt những yêu cầu phải trả lời được những câu hỏi như sau:

  • Họ thích mẫu nào?
  • Mẫu thiết kế có đáp ứng các yêu cầu của khách hàng không?
  • Tìm thông tin, chức năng có dễ không?
  • Đứng xem, bạn có thấy bố cục có rời rạc không? Có thẩm mỹ không?


Nếu câu trả lời không đạt yêu cầu trên bạn nên ngồi lại và vẽ tiếp, điều này sẽ giúp bạn giảm chi phí nhiều nếu bạn sử dụng máy tính để thiết kế. Sau khi chọn được một mẫu chúng ta chuyển sang bước 4.

Bước 4: Thiết kế đồ hoạ bản đơn sắc
Mục tiêu của bước này là đánh giá bản phác trên giấy khi chuyển sang Đồ hoạ vi tính bố cục có phù hợp với yêu cầu và mong muốn của khách hàng hay không.

Sau khi phác thảo xong, bạn sử dụng công cụ đồ hoạ máy tính để thiết kế mẫu giao diện Web. Đầu tiên chúng ta cần xem bố cục trên Máy tính có hợp lý không, chính vì vậy chúng ta chưa phối màu cho các mảng màu, đường kẻ, chữ cho trang Web, tất cả các bạn để thang màu xám để bước tiếp theo phối màu dễ dàng hơn. Nếu bạn phối màu trong giai đoạn này bạn sẽ phải đối mặt với hai rủi ro: Sai bố cục và sai phối màu. Tuyệt đối không để màu trắng và đen với những vùng muốn phối màu khác hai mầu trên.

Nếu bạn sử dụng công cụ đồ hoạ, chúng tôi đề xuất sử dụng Photoshop CS2 để áp dụng các chuẩn thiết kế giao diện dễ dàng hơn. Ví dụ đặt tên, sắp xếp folder, phân cấp folder, áp màu cho layer,...

Với iGURU, một số chuẩn dùng trong thiết kế đồ hoạ vi tính được định nghĩa như sau:
  • Web site chia ra 3 phân vùng chính với tên viết hoa bằng tiếng Anh: TOP, MIDDLE, BOTTOM. Ba phân vùng này tương ứng với phần trên cùng, phần thân và chân trang Web.
  • Trong các phân vùng, để phân biệt các vùng khác nhau thì được đặt tên tương tự nhưng có dấu chấm “.” trước tên. Ví dụ: .TOP, .MIDDLE, .BOTTOM, .LEFT, .RIGHT
  • Hình ảnh và Chữ được phân bố vào 02 thư mục riêng: IMG và TXT

Sau khi căn chỉnh bố cục và thiết kế xong, bạn nên in ra và lại treo lên tường mời mọi người đến đánh giá giống như bước 3. Đánh giá hiện giờ cần phải trả lời những câu hỏi như sau:

  • Tìm thông tin, chức năng có dễ không? Không dễ vì sao? Do độ tương phản, kích cỡ, …?
  • Trình bày thông tin quan trọng có dễ tìm với giới hạn của màn hình thực hay không?
  • Giao diện có dễ đọc, dễ sử dụng với người dùng mục tiêu hay không?
  • Giao diện có thể hiện ra tính cách riêng hay không?
  • ….


Ví dụ:



Bước 5: Phối màu cho giao diện Web
Khi bản đơn sắc đạt yêu cầu, bạn chuyển sang phối màu cho giao diện Web. Khi phối màu cho giao diện bạn nên tuân thủ các phương pháp chẳng hạn như sau:

  • Dựa vào màu sắc yêu cầu từ bảng câu hỏi để đưa ra phương pháp phối màu cho Web site. Có 1 màu chủ đạo, 1 màu thứ cấp và các màu chỏi để tăng phần sinh động cho Web.
  • Với màu nền là màu pha gam xám sẽ có kiểu phối màu riêng. Ví dụ phần nội dung sẽ có màu đỏ, vàng chanh, vàng, cam, xám, da trời,… tuỳ thuộc vào mục đích của Web site.
  • Với text nên tối đa 3 màu, 3 font, 3 cỡ chữ, 3 kiểu chữ, 3 kiểu trace, kerning.


Mẹo: Giai đoạn phối màu rất dễ bị ảnh hưởng bởi màu sắc của ảnh ( ví dụ banner).
Đây là điểm có lợi nhưng cũng là điểm có hại cho thiết kế giao diện Web site. Nhiều người ban đầu chọn ảnh cuốn hút và truyền đạt chính xác thông điệp của Web site và giờ họ chèn vào để lấy cảm hứng thiết kế từ ảnh. Một số người không có kiến thức về media hoặc không có đánh giá đúng mức hiệu quả của ảnh đem lại cho Web site, họ chọn những tấm ảnh không đúng thông điệp, từ đó họ thiết kế nhầm mầu sắc do ảnh hưởng từ ảnh.

Ví dụ:





Bước 6: Xây dựng chuẩn CSS, clientsite script, ảnh, folder cho trang Web
Mục đích của giai đoạn này giúp Web site dễ bảo trì, giảm mã, nội dung hiển thị tốt hơn với tỉ lệ mã thấp, linh động trong định nghĩa kiểu. Và quan trọng hơn, nó giúp cả quy trình sản xuất, triển khai, bảo trì ít rủi ro hơn.

Các chuẩn bao gồm:
  • Định nghĩa vùng của site, trang Web, các vùng trong một thẻ DIV
  • Chuẩn đặt tên cho nhãn CSS, ảnh
  • Chuẩn đặt tên cho các thư mục chứa các thành phần của trang Web
  • Chuẩn đặt tên cho tệp tin CSS, HTM, JS, XML


Ví dụ trong một thẻ DIV chúng ta định nghĩa như sau:
  • TL: Top-Left: Chỉ vị trí trên cùng, bên trái
  • TC: Top-Center: Chỉ vị trí trên cùng chính giữa
  • TR: Top-Right: Chỉ vị trí trên cùng, bên phải
  • ML: Middle-Left: Chỉ vị trí làm việc bên trái
  • MR: Middle-Right: Chỉ vị trí làm việc bên phải
  • BL: Bottom-Left: Chỉ vị trí dưới cùng, bên trái
  • BC: Bottom-Center: Chỉ vị trí dưới cùng chính giữa
  • BR: Bottom-Right: Chỉ vị trí dưới cùng, bên phải

Mẹo: người thực hiện bước 1 5 phải có tư duy về HTML, CSS và lập trình để từ đó đưa ra một giải pháp GUI tận dụng được điểm mạnh của các công nghệ ứng dụng vào phát triển Web. Ở mức độ cao cấp hơn, những người này phải có kiến thức sâu rộng về Thương hiệu, Media, Marketing, Bán hàng, Chăm sóc khách hàng, từ đó cô đọng quy trình hoạt động trên thành những vòng lặp có thể kiểm soát từ đó áp dụng vào thiết kế giao diện.

Bước 7: Sử dụng các ngôn ngữ đánh dấu, lập trình để thiết kế giao diện
Mục đích của giai đoạn này là thiết kế Web bằng HTML, CSS ( Flash, JS, AJAX, … nếu có)

Chúng ta chuyển tải giao diện đồ hoạ sang trang Web.
  • Nếu bạn chỉ sắp xếp bố cục, kết cấu của trang Web thì nên dùng HTML. Bạn có thể sử dụng chương trình Adobe ImageReady CS2 để cắt ảnh ra thành trang Web.
  • Nếu bạn muốn dàn trang, định kiểu cho các kết cấu của trang Web, bạn nên sử dụng CSS và bước 6 rất có ích với bạn.


Công việc của một người thiết kế Web lúc này giống như một người lập trình nhiều hơn là một nhân viên thiết kế. Anh ta chỉ cần hiểu rõ cách biểu diễn phông chữ, màu sắc, canh lề, các loại đường, nét, chiều cao, độ rộng, ảnh nền các loại, ảnh, xác định vị trí cho các khối… sao cho giống các bản thiết kế đồ hoạ nhất.

Mẹo: người thực hiện thực hiện bước này phải hiểu thấu đáo về HTML, CSS, JS nếu không giao diện sẽ hiển thị không như bản vẽ đồ hoạ vi tính trên nhiều trình duyệt khác nhau.

Bước 8: Kiểm thử giao diện trên các trình duyệt
Mục tiêu của giai đoạn này là kiểm soát việc hiển thị chính xác trang Web như giao diện đồ hoạ của bước 5 trên các trình duyệt Web khác nhau.

Tối thiểu chúng ta phải kiểm soát việc hiển thị đúng như giao diện thiết kế trên các trình duyệt:
  • Microsoft Internet Explorer các phiên bản 5, 6, 7 và thời gian tới là 8
  • Firefox 1.5+
  • Safiri
  • Opera
  • Netscape
  • Mozilla


Mỗi Web site đều nhắm đến một số phân khúc khách hàng, có một định vị và thị trường mục tiêu. Rất ít Web site có thể phục vụ tốt toàn bộ các trình duyệt Web, nên bạn cần nghiên cứu người dùng cuối mục tiêu của mình dùng trình duyệt Web nào và thiết kế sao cho hiển thị tốt trên các trình duyệt đó.
Nghe đến đây chắc hẳn bạn sẽ vò đầu bứt tai sao mà phức tạp thế! Bạn yên tâm, với kinh nghiệm của iGURU Việt Nam, một người chưa biết về CSS chỉ cần học với chuyên gia 4 giờ/ ngày trong vòng 1 tuần là có thể sử dụng thành thạo CSS.

Mẹo: người thực hiện bước này nên tìm các đoạn mã hack CSS để ứng dụng vào việc thiết kế trang Web cho nhiều trình duyệt. Tải sách tại: http://iguru.vn/forum/forumdisplay.php?f=33
Người thực hiện việc thiết kế CSS cũng nên theo dõi người truy nhập vào Web ( ví dụ từ Google Analytics), từ đó tổng hợp số liệu sử dụng trình duyệt Web của họ để có thể liên tục cập nhật mã CSS cho trang Web, giúp trang Web hiển thị tốt theo xu hướng sử dụng trình duyệt của người dùng cuối.

Bước 9: Chuyển mã tới bộ phận lập trình
Mục tiêu của giai đoạn này là chuyển các trang Web hiển thị tốt trên các trình duyệt chính cùng với các thành tố của trang Web tới bộ phận lập trình.

Phải chắc chắn bộ phận lập trình cũng hiểu được yêu cầu bắt buộc của giao diện và chuẩn thiết kế của bước 6. Thông thường các yêu cầu và chuẩn này được quản lý dự án hoặc trưởng nhóm thông báo trước để các bộ phận không hiểu nhầm nhau.

Các yêu cầu bắt buộc và chuẩn thiết kế không chỉ được chuyển tới bộ phận lập trình mà còn chuyển tới bộ phận kiểm thử ( test) để họ có thể xây dựng các kịch bản kiểm thử, thông qua đó họ kiểm tra được chất lượng của dự án. Nếu có phát sinh lỗi, họ sẽ thông báo lại bộ phận thiết kế và lập trình để sửa lỗi.

Nguồn: http://my.opera.com/iguru/blog/quy-trinh-thiet-ke-gui-cho-web-site-phat-trien-web-iguru-viet-nam-iwp1-1



HTML5 là gì, tại sao phải quan tâm?


HTML5 là gì?

Có lẽ nhiều bạn đã nghe về thuật ngữ “HTML5″ xuất hiện bên cạnh những sản phẩm của Apple và Google. HTML5 là sự tiến triển tiếp theo của HTML, viết tắt của cụm từ Hyper Text Markup Language, đây là hình thức định dạng cốt lỗi của hầu hết các trang web trên mạng Internet. HTML4, là ngôn ngữ cuối cùng mạng tính chất lặp lại, xuất hiện vào năm 1997 và đã được nhiều lập trình viên sử dụng để đáp ứng nhiều nhu cầu về trang web.

Như chúng ta đã biết, HTML 4 đã được chỉnh sửa, kéo dài và bổ sung ngoài phạm vi ban đầu của nó để mang lại mức độ tương tích cao và cung cấp nhiều đa phương tiện cho trang web. Các plugin như Flash, Silverlight và Java được tích hợp vào web nhưng không phải hoàn toàn là miễn phí. Trong việc khảo sát “các kinh nghiệm của người dùng” và xét về khía cạnh tuổi thọ pin, Apple đơn giản là bỏ sự hỗ trợ cho một số plugin phụ thuộc vào các thiết bị di động để các phương tiện truyền thông Internet có thể tương thích, Tuy nhiên việc đó rất khó thực hiện với iPads và iPhone. HTML5 đã mở ra nhiều nhiều tính năng mới, và chức năng sắp xếp hợp lý để làm cho các bộ xử lý tiện ích cấp độ cao.

Giả sử các nhà cung cấp nội dung đăng tải lên mạng, điều này có nghĩa bạn sẽ không phải lo lắng về cài đặt thêm một plugin chỉ để nghe một bài hát được nhúng vào blog hoặc xem video trên YouTube. Tương tự như vậy, đây là một việc lớn cho các nền tảng đó hoặc là không hỗ trợ Flash (ví dụ, iPhone và iPad), hoặc có tài liệu tốt vấn đề với nó (ví dụ, Linux). Nó sẽ là một lợi ích cho những điện thoại thông minh mà hỗ trợ Flash đã chứng minh luôn vấn đề bất cập.

Chính xác thì HTML có thể làm những gì?

HTML5 trong hầu hết các phương tiện truyền thông luôn có tính năng phát lại và lưu trữ offline. Với HTML4, các trang web thường phải dùng Flash (hoặc Silverlight) để chỉ hiển thị một video hoặc nghe nhạc. HTML5 cho phép các trang web trực tiếp nhúng phương tiện truyền thông với các thẻ HTML đơn giản “” và “” – và không cần có bổ sung plugin nào khác. Tuy nhiên, vẫn có một số vấn đề hiện đang được tranh luận bởi các quyền hạn người dùng và thẻ đánh dấu định dạng file. Một số công ty, đặc biệt là Mozilla, đang thúc đẩy việc áp dụng định dạng Ogg mã nguồn mở, một dạng miễn phí cho bất cứ ai sử dụng. Những công ty, như Apple, lại thích định dạng H.264 với chất lượng cao hơn, điều cuối cùng là sẽ yêu cầu các nhà sản xuất trình duyệt nộp lệ phí cấp giấy phép để hỗ trợ nó.


Các điểm quan trọng nữa mà đã thu hút sự chú ý là khả năng lưu trữ dữ liệu offline cho các ứng dụng Web. Một trong những trở ngại lớn thay thế các ứng dụng desktop truyền thống là người dùng lướt web sau trong khoảng thời gian mất mạng. Google phát triển một giải pháp tạm thời với Gears, nhưng sản phẩm đó đã được nghỉ hưu khi công ty này đang chuyển tập trung của mình cho HTML5. Điều này có nghĩa là có thể tạo ra các tập tin trong Google Docs án, dự thảo e-mail khi đi từ một kết nối Internet. Những thay đổi này sẽ được tự động đồng bộ hoá trong thời gian tới bạn đang online.

HTML 5 cũng cho biết thêm các tính năng tương tác mới, giống như kéo và thả, họ đã thực hiện giải pháp đó trong Gmail.

Làm thế nào người dùng có thể tận dụng lợi thế của HTML bây giờ?

Nhiều khả năng, bạn đã tận dụng lợi thế của nó mà không biết. Safari (cả di động và máy tính để bàn), Google Chrome và Firefox 3.6 tất cả các hỗ trợ ít nhất một số yếu tố của HTML 5. (tuy nhiên Internet Explorer 8 hỗ trợ cho các HTML5 là rất hạn chế.) Và nhiều sản phẩm Google đã sử dụng một số tính năng của giao thức thế hệ tiếp theo. Nếu bạn đang sử dụng Safari hay Chrome, bạn có thể kiểm tra phiên bản thử nghiệm của YouTube mà làm cho việc sử dụng các tính năng video của HTML5. Gmail và Google Reader đã thông qua các bộ phận của tiêu chuẩn, như là tốt. Ngoài ra, bất kỳ trang web liệt kê ở đây như The New York Times, CNN và CBS đã sử dụng HTML5. Thêm nữa, gần đây đã có nhiều tuyên bố sẽ sớm bỏ Flash trong phiên bản HTML5 cho tất cả các nội dung video. Nếu người dùng muốn tìm hiểu thêm, họ có thể kiểm tra một loạt các thí nghiệm từ Mozilla cho thấy chỉ là những gì HTML5 có thể làm.
Flash sẽ không được đi xa trong tương lai, tất nhiên, nó vẫn được dùng rộng rãi và hỗ trợ, và những trò chơi dựa trên Flash mà người dùng yêu thích không thể tái tạo bằng cách sử dụng HTML. Nhưng điều quan trọng cần biết rằng khi bạn nghe thấy mọi người tung hô về cụm từ “HTML5,” nó không phải là chỉ là một số lời đồn vô nghĩa, mà họ đang nói về tương lai của Internet.

Nguồn
http://saga.com.vn/HTML5_la_gi_tai_sao_phai_quan_tam/26735.saga