Menu

Thứ Hai, 21 tháng 2, 2011

Windows 8 thử nghiệm bản beta sẽ xuất hiện vào tháng 9

Trang Winrumors đưa tin, Microsoft chuẩn bị hoàn thành giai đoạn Milestone 2 trong kế hoạch phát triển hệ điều hành thế hệ mới cho PC và dự kiến tung ra bản beta trong vòng 7 tháng nữa.

Các giai đoạn phát triển hệ điều hành Windows thường qua các bước Milestone 1, 2, 3 rồi chuyển sang beta, RC, RTM rồi mới đến bản chính thức cho người tiêu dùng. Giai đoạn Milestone 3 bắt đầu vào tháng sau và dự kiến hoàn thành trong 3 tháng. Bản thử nghiệm đầu tiên sẽ được Microsoft phát hành trong mùa hè năm nay.

Windows 8 được Microsoft tập trung phát triển cho cả PC và máy tính bảng. Hệ điều hành này chạy được trên cả nền tàng chip ARM, tập trung vào chơi game và có giao diện 3D.
Theo bảng kế hoạch của Dell vừa bị rò rỉ cách đây không lâu, tablet mang tên mã Peju chạy Windows 8 sẽ có mặt trên thị trường vào khoảng tháng 1 năm sau.

Lộ trình phát triển máy tính bảng của Dell.
>> Đọc thêm ...

Thứ Ba, 3 tháng 8, 2010

Diệt virus “shortcut” cho PC

Thống kê từ BKAV cho biết số lượng máy tính nhiễm virus “shortcut” mới xuất hiện tại Việt Nam rất nhiều, có thể được xem là hầu hết. Chính vì vậy, việc diệt virus này như là một nhiệm vụ quan trọng nhất đối với người dùng PC ngay từ lúc này
Và nhằm cung cấp giải pháp diện virus mới này, BKAV vừa phát triển một tiện ích dành riêng cho việc diệt virus này có tên là BkavDetectShortcutFileVirus. Đây là tiện ích hoàn toàn miễn phí được cung cấp tại địa chỉ http://www.bkav.com.vn/tool/BkavDetectShortcutFileVirus.exe
Công cụ làm việc rất đơn giản, sau khi tải về bạn chỉ việc kích hoạt tập tin thực thi của nó mà không cần tiến hành cài đặt vào hệ thống.
Để tiến hành quét, bạn nhấn vào nút Scan trên giao diện hiện ra. Chương trình sẽ tiến hành quét tất cả các tập tin shortcut có trên hệ thống của bạn có đuôi là *.lnk. Bạn có thể nhấp vào nút Cancel để ngừng việc quét lại.
Khi quá trình quét hoàn tất, bạn sẽ nhận được thông báo hiển thị với nội dung là số lượng các tập tin bị nhiễm virus mà BKAV đã phát hiện và tận diệt nó.
>> Đọc thêm ...

Thứ Sáu, 30 tháng 7, 2010

Tối ưu hóa mã nguồn PHP

Với một chương trình PHP hoàn chỉnh hoặc với số lượng lớn người sử dụng cùng lúc, nếu mã nguồn được viết hợp lí, chương trình của bạn được tăng tốc đáng kể. 
Trong những năm gần đây, PHP đã trở thành một trong những ngôn ngữ phổ dụng nhất trong lập trình ứng dụng web. Ưu điểm của PHP là mã nguồn mở, miễn phí và không yêu cầu cấu hình hệ thống máy chủ cao. Tuy nhiên, PHP có một số điểm yếu, một trong số đó là tốc độ. Dù vậy, nếu mã nguồn được viết hợp lí, sử dụng PHP bạn hoàn toàn có thể tạo được ứng dụng chạy với tốc độ vượt trội.
Các thủ thuật tăng tốc
Để có thể giải thích rõ ràng, chúng ta bắt đầu bằng một ví dụ:

require_once 'my_functions.php';
function format_str($str) {
$str = str_replace('0', '1', $str);
return $str;
}
$my_array = array();
// Mã nguồn để đưa dữ liệu vào $my_array ở đây
for ($i = 0; $i < count($my_array); $i++) {
if (ereg('^[0-9]+$', $my_array[$i]) && (strlen($my_array[$i]) > 1)) {
$my_array[$i] = format_str($my_array[$i]);
print $my_array[$i].”
”;
}
}


Vấn đề đầu tiên là việc sử dụng require_once làm chương trình chậm đi, khi đó PHP sẽ phải kiểm tra xem file đã được nạp trước đó chưa. Tất nhiên, trong nhiều trường hợp, điều này là không tránh khỏi. Nhưng nếu không thực sự cần thiết, bạn nên sử dụng require hoặc include thay vì require_once/include_once.

...
require 'my_functions.php'
...

Với đoạn mã trên, ở mỗi vòng lặp, PHP sẽ phải chạy count($my_array) và so sánh kết quả với $i. Tuy nhiên, vì dữ liệu của $my_array là không đổi, chạy count với mỗi lần lặp là không cần thiết. Vòng lặp trên có thể được viết lại nhanh hơn như sau:

...
$c = count($my_array);
for ($i = 0; $i < $c; $i++) {
...
Hoặc gọn hơn, có thể viết:
...
for ($i = 0, $c = count($my_array); $i < $c; $i++) {
...


Như vậy, count($my_array) sẽ chỉ phải chạy một lần duy nhất, ngay cả khi mảng có vài nghìn phần tử.

Một vấn đề nữa với đoạn mã trên là việc sử dụng print, trong trường hợp này bạn nên sử dụng echo vì echo nhanh hơn khoảng 20% so với print. Lí do đơn giản là vì print làm nhiều việc hơn echo. Một là print thêm vào cuối chuỗi tham số một dấu xuống dòng (\n), hai là nó cũng trả về kết quả (luôn là 1). Khi dùng echo, bạn còn có thể đưa cả 2 chuỗi vào làm tham số, như vậy PHP sẽ không phải làm thao tác nối 2 chuỗi lại với nhau và chỉ đưa từng chuỗi ra màn hình một.

Đoạn mã trên còn sử dụng dấu nháy kép bao quanh
. Nếu sử dụng nháy đơn, PHP sẽ không phải tìm biến PHP cũng như các giá trị đặc biệt khác trong chuỗi (ví dụ như \n, \r, \t) và vì vậy mặc nhiên sẽ nhanh hơn.
Dòng mã in dữ liệu ra màn hình vì vậy có thể viết thành:

...
echo $my_array[$i], '
';
...

Ngoài ra, đoạn mã trên sử dụng ereg để kiểm tra xem chuỗi chỉ bao gồm một hoặc nhiều chữ số. Bạn không nên dùng ereg mặc dù ereg có vẻ dễ sử dụng hơn với nhiều người. Thay vào đó nên sử dụng preg_match, lí do là vì preg_match có tác dụng y hệt kèm theo ưu điểm vượt trội về tốc độ. Kể từ PHP 5.3.0, ereg không còn được khuyến khích sử dụng, dùng ereg sẽ gây ra khuyến cáo E_DEPRECATED. Dòng trên có thể viết lại thành:

...
if (preg_match('!^[0-9]+$!', $my_array[$i]) && (strlen($my_array[$i]) > 1)) {
...

Thay vì sử dụng strlen như ở trên, bạn cũng có thể sử dụng isset($my_array[$i]{1}). isset là một cấu trúc ngôn ngữ, không phải là hàm như strlen vì vậy sử dụng isset sẽ nhanh hơn strlen. Tất nhiên bạn hoàn toàn có thể thêm kiểm tra độ dài vào ngay trong preg_match – tuy nhiên, đây chỉ là một ví dụ để giúp bạn đọc hiểu được vấn đề.

...
if (preg_match('!^[0-9]+$!', $my_array[$i]) && isset($my_array[$i]{1})) {
...

Đoạn mã trên cũng sử dụng str_replace để thay thế toàn bộ 0 thành 1 trong chuỗi. Nếu mục đích chỉ đơn giản có vậy, bạn nên sử dụng strtr thay vì str_replace vì strtr có thể thực thi nhanh hơn 4 lần. Tương tự, str_replace cũng nhanh hơn preg_replace và preg_replace cũng nhanh hơn ereg_replace rất nhiều. Tùy vào hoàn cảnh, đôi lúc bạn không thể đơn thuần sử dụng strtr mà phải sử dụng str_replace hay thậm chí preg_replace, nhưng dù trong trường hợp nào bạn cũng không nên sử dụng ereg_replace vì mọi việc đều có thể làm được với preg_replace.

...
$str = strtr($str, '0', '1');
...

Tham số $str cho hàm format_str hoàn toàn có thể là tham chiếu (reference), sử dụng tham chiếu trong trường hợp này sẽ nhanh hơn vì PHP sẽ không phải copy tham số để đưa vào hàm.

...
function format_str(&$str) {
$str = strtr($str, '0', '1');
}
...

Tuy vậy, bạn cũng nên cẩn thận khi dùng cách này vì nếu như trong trường hợp bạn vô ý đổi giá trị tham số bên trong hàm, bạn hoàn toàn có thể gây ra một lỗi rất khó tìm.

Hàm format_str rất đơn giản, bạn hoàn toàn có thể loại bỏ hàm này và viết trực tiếp luôn vào trong vòng lặp giúp PHP không phải gọi hàm tự tạo, do vậy tăng tốc được chương trình:

...
$my_array[$i] = strtr($my_array[$i], '0', '1');
...

Hết sức cẩn thận khi dùng bởi lẽ cách trên cũng đồng nghĩa với việc bạn đánh đổi cấu trúc chương trình của bạn lấy tốc độ.

Thay vì gửi dữ liệu về máy tính người dùng nhiều lần, bạn cũng có thể tạo bộ đệm (buffer) và chỉ gửi dữ liệu một lần duy nhất. Làm như vậy sẽ giúp giảm thiểu băng thông sử dụng và cũng sẽ làm cho dữ liệu đến được người dùng nhanh hơn. Bạn có thể sử dụng buffer bằng cách thêm ob_start(); vào đầu chương trình.

Chương trình hoàn thiện vì vậy cuối cùng sẽ trở thành:

ob_start();
require 'my_functions.php';
$my_array = array();
// Mã nguồn để đưa dữ liệu vào $my_array ở đây
for ($i = 0, $c = count($my_array); $i < $c; $i++) {
if (preg_match('!^[0-9]+$!', $my_array[$i]) && isset($my_array[$i]{1})) {
$my_array[$i] = strtr($my_array[$i], '0', '1');
echo $my_array[$i], '
';
}
}
Các phương pháp khác
Để tăng tốc độ của chương trình, nhất thiết phải biết tốc độ thực thi chương trình, quan trọng hơn là phải biết chương trình chậm ở chỗ nào. Làm thế nào để có được thông tin này?

Bạn có thể sử dụng cách đơn giản nhất là tính thời điểm bắt đầu chương trình bằng time(), và thời điểm kết thúc cũng bằng hàm này. Nhưng như vậy bạn chỉ có thể biết được từng file trong chương trình của bạn chạy mất bao lâu mà không thể biết được đến mức hàm hay dòng mã nguồn.

Cách tốt hơn và cũng đơn giản hơn là sử dụng xdebug (http://www.xdebug.org). Với xdebug bạn có thể biết được đến từng hàm – mỗi hàm được gọi bao nhiêu lần, tốc độ thực thi của mỗi hàm, mỗi file cũng như của toàn bộ chương trình là bao nhiêu, và còn nhiều thông tin bổ ích khác.

Ngoài ra, một cách đơn giản và thường được sử dụng để tăng hiệu năng xử lí của chương trình PHP mà không phải sửa mã nguồn là sử dụng extension tăng tốc cho PHP. Phần lớn các extension này hoạt động bằng cách biên dịch mã nguồn PHP và lưu vào bộ nhớ để có thể được lấy ra sử dụng ngay thay vì phải biên dịch lại mỗi khi chương trình được sử dụng. Một số extension miễn phí phổ dụng:

- Alternative PHP Cache (http://php.net/manual/en/book.apc.php)
- eAccelerator (http://eaccelerator.net/)
- XCache (http://xcache.lighttpd.net/)
Kết luận
Với một đoạn mã ngắn như ví dụ trong bài viết này bạn khó có thể nhận thấy được khác biệt về tốc độ trừ khi tính tốc độ chạy bằng “xdebug”. Tuy nhiên, với một chương trình PHP hoàn chỉnh hoặc với một số lượng lớn người sử dụng cùng lúc, áp dụng các phương pháp nêu trong bài này có thể giúp chương trình của bạn tăng tốc đáng kể.
>> Đọc thêm ...

Virus “Shortcut” xâm nhập gần 30.000 máy tính Việt

Hệ thống máy tính trên toàn cầu cũng như các máy tính tại Việt Nam đang đứng trước nguy cơ bị virus tấn công do lỗ hổng trong file Shortcut của Windows. Lỗi này được phát hiện từ ngày 10/7/2010 và đến nay vẫn chưa có bản vá.
 

Chỉ cần người dùng mở USB có chứa file Shortcut bị lỗ hổng, virus sẽ tự động thâm nhập vào máy tính ngay cả khi chức năng Autorun đã bị vô hiệu hóa. Từ đó, hacker có thể chiếm toàn quyền điều khiển máy tính để thực hiện hành vi ăn cắp thông tin, phá hủy dữ liệu...

Trong khi nhà sản xuất Microsoft vẫn chưa đưa ra bản vá cho lỗ hổng nguy hiểm này, hệ thống giám sát của Bkav phát hiện đã có 3 dòng virus lợi dụng lỗ hổng trên để thâm nhập và phá hoại máy tính của người dùng. Tính đến ngày hôm nay, 27.500 máy tính ở Việt Nam bị nhiễm loại virus này.

Ông Vũ Ngọc Sơn, Giám đốc Bộ phận nghiên cứu của Bkav, cho biết: “Hiện có tới 97,4% máy tính tại Việt Nam dùng hệ điều hành Windows, bao gồm Windows XP, Vista, Windows 7... Do đó, hầu hết các máy tính này có nguy cơ nhiễm virus lợi dụng lỗ hổng trong file Shortcut”.
>> Đọc thêm ...

Thứ Sáu, 23 tháng 7, 2010

Sản phẩm độc đáo dành cho người mê công nghệ

Gối "mạng xã hội", túi thời trang làm bằng bàn phím máy tính và đũa ăn hình thanh kiếm phim Star Wars là các vật dụng thông thường dành riêng cho dân hi-tech.
Gối "mạng xã hội" dành cho các tín đồ Facebook, Twitter.
Nhà thiết kế có tên Jared Kohn thiết kế ra chiếc bàn mang phong cách game xếp hình nổi tiếng Tetris.
Túi thời trang làm từ các nút bàn phím.
Bộ ghế Sofa mang phong cách game Pacman.
USB Secure Pro của hãng Victorinox (Thụy Sĩ) được cho là bảo mật nhất thế giới vì có thể tự hủy khi phát hiện nguy cơ mất trộm dữ liệu. Ngoài ra, nó còn kèm theo dao, kéo và cắt móng tay cho chị em phụ nữ.
Bộ nam châm với hình thù là biểu tượng trong điện thoại iPhone.
Móc treo lấy cảm hứng từ con trỏ máy tính hình bàn tay.
Đôi đũa có hình thù giống thanh kiếm trong phim và game Star Wars.
Hộp tiết kiệm tiền giống nút "save" trên bàn phím máy tính.
Chuột Mus 2 có hình dáng giống con trỏ trên hệ điều hành Windows.
Quần thời trang tích hợp bàn phím. Sản phẩm có khả năng kết nối với máy tính qua Bluetooth.
Decal dán tường hình game Mario vui nhộn.
Cốc uống bia khổ lớn khắc hình trò chơi trực tuyến số 1 thế giới World of Warcraft.
Bộ ghế trò chơi xếp hình Tetris.
Nhà thiết kế người Nhật Bản Jose Jorge Hinojosa Primo mang đến ý tưởng ghế ngủ hình game Pacman.
Mành che được in biểu tượng cảm xúc bằng ký hiệu giống như chat trên Yahoo Messenger.
>> Đọc thêm ...

Thứ Ba, 13 tháng 7, 2010

Netbook của VN hỗ trợ 3G giá chỉ 8 triệu đồng

ICbook G1 của CMS tích hợp module 3G cắm trong và có sẵn khe cắm SIM 3G cho phép sử dụng Internet tại các nơi có phủ sóng 3G của các nhà mạng. 

ICbook G1. Ảnh: CMS.
ICbook G1. Ảnh: CMS.
Chiếc netbook đầu tiên có thể hoạt động trên mạng 3G của CMS này chỉ nặng 1,2 kg bao gồm pin 3 cell đi kèm cùng thiết kế nhỏ gọn với màu đen truyền thống.
ICbook G1 được trang bị màn hình đèn nền LED kích thước 10,1 inch độ phân giải 1.024 x 600 pixel cùng cấu hình phần cứng bao gồm vi xử lý Intel Atom N450 tốc độ 1,6GHz, bộ nhớ RAM 1GB (nâng cấp tối đa lên 2GB).
CMS Sputnik E. Ảnh: CMS.
Model này cũng sẽ hỗ trợ kết nối như Wi-Fi, LAN và HSPA 3,75G, cài đặt sẵn hệ điều hành Windows 7.
ICbook G1 sẽ lần đầu tiên xuất hiện tại triển lãm Vietnam Computer Electronics WorldExpo vào ngày mai và sẽ bán ra trên thị trường với giá 7.990.000 đồng (đã bao gồm VAT).
Ngoài chiếc netbook 3G, CMS cũng giói thiệu dòng CMS Sputnik E với màn hình đèn nền LED kích thước 14 cùng cấu hình bao gồm tùy chọn các dòng vi xử lý của Intel là Core 2 Duo, Pentium, Celeron cùng bộ nhớ RAM chuẩn DDR2 hoặc DDR3.
CMS Sputnik E series dự kiến sẽ có giá bán ra chỉ khoảng 6 triệu đồng.
>> Đọc thêm ...

Thứ Hai, 12 tháng 7, 2010

Pentium P6000, dòng chip giúp giảm tiêu hao điện năng

Pentium P6000 sử dụng công nghệ 32 Nanomet (Mn) với tên gọi Arrandale, nối tiếp các dòng Clarkfield chạy chip T4xxx công nghệ 45Mn trước đây.

Dòng chip mới này được đánh giá là có hiệu năng sử dụng cao hơn và giảm tiêu hao điện năng hơn so với Clarkfield.
Cũng như trước đây, Acer là hãng đầu tiên tung ra laptop sử dụng chip Core i thì giờ đây họ cũng là hãng đầu tiên đưa Intel P6000 vào các thiết kế của mình thông qua hai dòng mới là Acer Aspire 4741Z và eMachines eMD730.
Clarkfield T4xxx vẫn là CPU thuộc thế hệ vi xử lý được sản xuất trên dây chuyền công nghệ 45Mn và sử dụng trong các nền tảng laptop 3 chip truyền thống, bao gồm CPU (Central Processing Unit - bộ vi xử lý), GMCH (Graphics and Memory Controller Hub - bộ điều khiển bộ nhớ và đồ họa), ICH (Iinput/Output Controller Hub - bộ điểu khiển vào ra). Theo mô hình đó, GMCH sẽ điều khiển bộ xử lý đồ họa và bộ nhớ, ICH điều khiển các thiết bị vào ra khác như ổ cứng, USB, card mạng... GMCH sẽ đứng giữa trong quá trình liên thông của bộ ba này, GMCH truyền dẫn thông tin với CPU theo tuyến truyền dẫn FSB (Front Side Bus) và với ICH theo tuyến DMI (Direct Media Interface). Mô hình này có nhược điểm là các dòng dữ liệu đi từ GMCH lên CPU dễ bị "nghẽn cổ chai" do tại mỗi thời điểm, FSB chỉ có tính truyền dẫn một chiều, hơn nữa các dòng dữ liệu trao đổi giữa CPU và ICH cũng phải đi qua trung gian GMCH nên hiệu quả tổng quan có nhiều hạn chế.
Mô hình 3 chip áp dụng cho các vi xử lý Intel Pentium Dual-Core T4000 series.
Trong khi đó, Arrandale là vi xử lý áp dụng cho nền tảng 2 chip, tương tự như nền tảng sử dụng trong các hệ thống Intel Core i5 mới ra gần đây. Nếu nhìn vào Intel P6000, có thể thấy nó đã được tích hợp bộ điều khiển bộ nhớ và đồ họa và liên kết với một chip PCH (Platform Controller Hub). Rõ ràng mô hình này dễ cho phép hệ thống đạt hiệu suất cao hơn vì quy trình điều khiển và truyền dẫn đã được tối ưu. Đồng thời Pentium P6000 cũng tích hợp luôn cả bộ vi xử lý đồ họa (GPU - Graphic Processing Unit) trong nó, có nghĩa là cùng với mức điện năng cực đại 35w thì nó đã bao gồm cả điện năng cấp cho GPU, trong khi với T4xxx thì cần tốn thêm một phần năng lượng cho GPU ngoài phần 35w đã cấp cho CPU.
Mô hình 2 chip áp dụng cho vi xử lý Intel Pentium P6000.
Các thay đổi về bộ đệm cũng hứa hẹn những cải thiện mạnh mẽ hơn về hiệu năng. Nếu T4xxx sử dụng bộ đệm hai cấp ngoài cùng là Cache L2 với dung lượng 1MB chia sẻ cho hai nhân và mỗi nhân có Cache L1 dung lượng riêng 32KB thì Pentium P6000 sử dụng bộ đệm 3 cấp, ngoài cùng là Cache L3 với dung lượng 2MB chia sẻ cho hai nhân, kế tiếp là Cache L2 riêng biệt mỗi nhân 256KB và trong cùng là Cache L1 có dung lượng 32KB cho từng nhân.
Arrangdale Intel P6000 còn mạnh mẽ hơn nữa khi hỗ trợ bộ nhớ DDR3-1066MHz trong khi đó Clarkfield T4xxx chỉ hỗ trợ tối đa DDR2-800MHz
Để so sánh giữa hai dòng chip P6000 và T4500, Intel đã cho các kỹ sư đo đạc tốc độ xử lý video và ghi dữ liệu giữa hai dòng này với Intel Celeron T3300. Kết quả, xử lý video từ camera: T4500 nhanh hơn 14%, trong khi T6000 nhanh hơn là 25% và tốc độ ghi nhớ từ hình ảnh từ camera vào máy tính: T4500 nhanh hơn 9%, trong khi T6000 nhanh hơn 19%.
>> Đọc thêm ...

Chủ Nhật, 11 tháng 7, 2010

Intel sẽ không hỗ trợ chuẩn USB 3.0 trong năm 2011

Nền tảng vi xử lý tiếp theo của Intel, Huron River gây bất ngờ khi không hỗ trợ chuẩn USB tốc độ cao nhất hiện nay.


Intel sẽ không hỗ trợ USB 3.0 ở nền tảng vi xử lý mới. Ảnh: Usbfirewire.

Dù đã được biết đến từ cách đây khá lâu khi sẽ là nền tảng thay thế cho Calpella trong năm 2011 tới, nhưng báo cáo của Fudzilla đã đem đến một thông tin khá bất ngờ khi Huron River sẽ không hỗ trợ chuẩn kết nối USB 3.0.

Thay vào đó, thế hệ vi xử lý thứ 6 của Intel sẽ cung cấp tối đa từ 12 đến 14 cổng USB 2.0, hỗ trợ kết nối SATA tốc độ lên tới 6GB/giây và chuẩn SATA 3.0 giúp cải thiện khả năng trao đổi dữ liệu của hệ thống.

Cũng theo nguồn thông tin trên, nền tảng Huron River sẽ giúp cung cấp thời lượng pin lâu hơn với công nghệ vi xử lý 32nm. Loại chip này sẽ có mức tiêu thụ điện năng (TDP) thấp hơn so với công nghệ 45nm hiện nay.

Các nguồn thông tin khác nhau đều khẳng định trong năm 2011, chuẩn USB 3.0 sẽ trở nên phổ biến và thay thế hoàn toàn chuẩn cũ nhưng với việc nền tảng mới của Intel không hỗ trợ sẽ khiến các nhà sản xuất máy tính sẽ phải cung cấp thêm một loại chip để hỗ trợ chuẩn USB nhanh nhất thế giới từng được giới thiệu này.
>> Đọc thêm ...

Phân trang