- Những đứa học khối kỹ thuật, công nghệ thông tin ... chưa hẳn là những đứa tư vấn giỏi. Đó là điều hiển nhiên :)). Nhưng mình hay thấy các bạn ngành khác hay hỏi tụi CNTT về mua máy. Thực ra hiếm có đứa nào chuyên về mua bán máy, ... Nên tụi nó chỉ có ích khi giải thích các định nghĩa khó hiểu về phần cứng mà thôi. Còn nhờ tụi nó mua máy thì không nên :)).
- Chuyện đầu tiên cần xác định đó là khoảng tiền mà mình định mua nó và fix nó, đừng cố gắng thay đổi. Đôi lúc ta sẽ có cảm giác ham hố một số model mới mà mua máy xịn. Vừa tốn tiền mà đôi lúc lại không hay cho lắm. Vì dù có mua máy xịn thêm một chút, thì cũng ngày giờ đó năm sau, máy của bạn cũng đã thành hàng lạc hậu với sự phát triển của công nghệ hiện giờ.
- Nhu cầu của bản thân hơn là độ "gấu" của máy. Đây là điều sai lầm của mình. Mình đã mua một cái máy khá xịn thời đó, có cả card rời, HDD cao ... khá tốn kém. Nhưng sau đó phát hiện ra, nhu cầu chơi game của mình không lớn lắm. Onboard là quá đủ, card rời đôi lúc lại rất nóng máy (mình đang xài DELL). Mua HDD dung lượng lớn thì 2 năm sau lại mua thêm ổ cứng rồi. Và rồi phát hiện ra, chỉ cần mua 1 cái HDD tầm tầm thôi, đủ chứ OS và các chương trình. Còn tài liệu, hình ảnh, nhạc film các kiểm ta có thể tìm ổ cứng rời. Vừa portable vừa gọn nhẹ, lại có dung lượng lớn, mà lại ngày càng rẻ nữa.
- Không nhất thiết phải tới các siêu thị, trung tâm điện máy lớn để mua, dù được khuyến mãi các kiểu nhưng thực ra vẫn bị hố một tí. Mình nghĩ có thể mua hàng xách tay, hoặc các shop nhỏ lẻ uy tín. Có thể tham khảo trên vozforums.com, tinhte, webtretho ...
- Chọn hãng mà mình thích, chứ không phải là hãng mà thằng bạn mình thích. Lời khuyên của tụi bạn chỉ có giá trị tham khảo.
- Không nên quá ham hố những tính năng phụ kiểu như backlit keyboard (bàn phím phát sáng), khóa vân tay. Những tính năng mà với người dùng phổ thông cũng chả cần dùng nhiều làm gì. Bỏ qua các tính năng thừa này và đầu tư vào phần khác thỉ ổn hơn.
- Độ mát của máy là ưu tiên ... khá là cao. Mặc dù máy nóng tí thì chả chết ai, nhưng dùng mà có cảm giác nóng dưới tay thì rất là bất an. Ít ra thì nó cũng khiến mình bất an gần 2 năm nay. Có cảm giác Asus mát hơn DELL.
"Science is what we understand well enough to explain to a computer. Art is everything else we do." - Donald Knuth
May 2, 2014
Kinh nghiệm khi đi mua laptop
Sep 21, 2013
Bật chế độ God Mode trong Windows 7/8
Đây là một trong những tính năng ẩn của Windows. Sau 1 ngày vật vã để sửa lại driver Windows 8, mình tình cờ phát hiện ra em này.
Chức năng: Liệt kê tất cả các chức năng cho phép và hợp pháp để chỉnh sửa, cấu hình trong Windows 7/8.Thực hiện:
- Ra ngoài Desktop và tạo 1 thư mục
- Đối với Windows 7. Nhập tên thư mục như sau:
GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
Đối với Windows 8:
GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
Gõ xong phát hiện 2 cái này giống nhau :)). Kết quả sau đó ta được một thư mục liệt kê như sau:
Sep 19, 2013
Driver Wifi trên Windows 8
Vụ này không share không được, kể từ khi cài Windows 8 lên trên em Dell dòng Inspiron thì có hiện tượng mạng cực kỳ chậm và dễ gây ức chế kinh khủng. Đã vậy còn chập chờn.
Giải pháp là đây: Link download . Trong hàng tá cách, thì đây là cách đơn giản nhất, và là giải pháp hữu hiệu nhất. Xóa Driver cũ của Windows đi và cài cái mới này.Chi tiết từng bước:
- Vào Control Panel - > Device Manager. Ta Click chuột phải vào Broadcom 802.11n rồi chọn Disable
- Sau đó chọn tiếp Uninstall
- sau khi xóa xong, Windows sẽ cố gắng tìm driver trong hệ thống để cài lại, và nếu nó cài thành công thì mọi chuyện vẫn hoàn cũ. Lúc này nhanh chóng cài driver mới tải kia về. Vậy là mọi chuyện được ổn thỏa.
- Trường hợp không tắt được dịch vụ tự tìm driver: ta click vào Properties của driver đó, chọn thẻ Driver chọn button Driver Details Trong đó liệt kê tất cả các file liên quan đến driver. Ta chỉ cần vào từng file rồi xóa. Sau đó cài lại driver mới.
May 18, 2013
Tùy chỉnh giao diện Dynamic View của Blogspot
Bài viết đang được hoàn thiện
Dynamic View được Blogspot hỗ trợ rất là lâu. Tuy nhiên, sau một thời gian dài không đụng đến em ý. Giờ đây, mình lại thấy sự tiện dụng và linh hoạt của giao diện này. Dưới đây là một số tùy chỉnh hay ho mà mình góp nhặt được. Nó có thể giúp blog trở nên lung linh lấp lánh ánh sao mai
Tất cả các thao tác trên được thực hiện ở phần Mẫu - Tùy Chỉnh - Nâng cao - Thêm CSS
- Tùy biến thanh tìm kiếm: Danh sách các kết quả sự hiện trước tiếp, như một combobox ở khung tìm kiếm
#header input#search { -moz-transition: all 0.3s ease-in-out; -ms-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out; -webkit-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } #header input#search:focus { width: 450px; }
- Xóa hiệu ứng viền, đổ bóng của các ảnh được chèn trên phần nội dung bài blog
.entry-content img{ box-shadow: none !important; padding: 0px !important; border: 0px !important; }
- Tuy biến thanh sidebar bên trái
#sidebar:hover { width: 350px; } #sidebar { -webkit-transition: width 500ms ease-in; z-index: 99; }
- Hiện thông tin ngày giờ đăng bài trong phần nội dung
.sidebar .article .article-header .date, .ss { display: block !important; }
- Thêm phần "Read more" vào chế độ hiển thị magazine.
.magazine .summary:after, .ss{ content: "Đọc thêm ..." !important; color: red !important; }
Apr 28, 2013
Phụ thuộc vòng
Bài viết đang được hoàn thiện
Phụ thuộc vòng - một cách dịch đầy thô thiển. Tên chính xác của nó "Circular Dependency". Nghe khá rờm rà. Từ giờ trở đi gọi là CDepend cho gọn. Wiki có hẳn 1 bài về nó: link đây. Đại để có thể hiểu theo ngôn ngữ C++ như sau: File header A dùng để khai báo lớp A, file header B dùng để khai báo lớp B. Trong lớp A có 1 attribute (thuộc tính) là thể hiện của B, và trong lớp B có một thuộc tính là thể hiện của A. Và như vậy, theo lẽ thông thường, Trong file header A sẽ có dòng #include"B.h" và trong file header B có dòng #include"A.h". Mọi sự rắc rối rồi.
Hậu quả:
- Phát sinh những vấn đề không mong muốn trong quá trình thiết kế lớp. Như ví dụ nêu trên chắc chắn là sẽ chẳng thể cài đặt với thiết kế và giải pháp đó
- Gây rò rỉ vùng nhớ (memory leak). Vì sao ư? Đối với các ngôn ngữ không có hỗ trợ việc tự dọn rác (automatic memory management), việc tự thiết kế các phương thức hủy (destructor) hay giải phóng vùng nhớ đối với các lớp phụ thuộc lẫn nhau như thế này rất khó chịu. Nếu "lỡ tay" giải phóng hết các thuộc tính trong A, tức là giải phóng luôn có bé thể hiện B trong đó. Mà bé ý vẫn còn đang sống nhăn răng, vẫn chưa muốn bị hủy thì coi như tách. Cài đặt fail và số quá nhọ. Dĩ nhiên, điều "may mắn" là compiler không bao giờ coi đó là syntax error để thông báo ngay từ đầu cả.
- Gây hiệu ứng domino: một tác động nhỏ lên lớp này ảnh hưởng đến toàn bộ các lớp khác. Theo nguyên tắc thiết kế, các lớp phải độc lập khi sửa chữa. Tức thay đổi của lớp này không ảnh hưởng đến lớp kia.
Một số điểm thuận lợi:
Không phải cái gì xấu, hại thì xấu hoàn toàn. Cái gì nó cũng có 2 mặt của 1 vấn đề. CDepend cũng có một số điểm tích cực
- Có những thiết kế bắt buộc phải dính tới CDepend. Và như vậy buộc ta phải cài đặt nó. Ví dụ: danh sách liên kết, đồ thị ...
Giải quyết
- Có những tool chuyên trị cái này: JDepend (cho Java), Code Analysis Plugin (cho Java).
- Sử dụng mẫu thiết kế Observer, Visitor, Factory... blah blah
Một số vấn đề trong C++
Phần này sẽ nêu 1 số ví dụ thường gặp, thường dính khi lập trình trên C++
Tài liệu tham khảo:
Hầu hết những gì chém gió phía trên đều được trích lược và tran sờ lai (translate) sang Tiếng Việt. Những nguồn này khá bổ ích
Dec 19, 2012
Sự khác biệt về hàm main của C và C++
Cho 2 đoạn mã sau.
Đoạn 1: Viết bằng c:
#include <stdio.h> float main(int a, int b, int c) { printf("Chao cac ban\n"); }Đoạn 2: Viết bằng cpp:
#include <iostream> using namespace std; int main( int n, char x, float t) { cout << "Chao cac ban" <<endl; return 0; }Cả 2 đoạn mã điều chạy được, tuy nhiên nếu compile đoạn mã cpp sẽ dính 2 cái Warning. Còn đối với c thì không có gì. Điều thú vị hơn là nếu trong đoạn mã cpp ta thay đổi kiểu trả về của 'main' từ 'int' sang 'float' thì lại dính error.
Đây là lí do:
- Trong C, nó chỉ yêu cầu tồn tại một hàm tên 'main', vậy là đủ, nó không quan tâm đến chuyện tham số đầu vào hay kết quả trả về.
- Trong C++, nó khuyến cáo sử dụng 2 mẫu:
int main(int argc, char** argv); // hoặc int main() //
Dec 18, 2012
Giải quyết vấn đề laptop nóng và hao pin khi dùng Linux
Bài viết này tập hợp các thủ thuật, phương pháp nhằm giải quyết các vấn đề sau trên linux
- Laptop quá nóng khi sử dụng trên Linux.
- Thời lượng dùng pin trên Linux quá ngắn.
- Chế độ tiết kiệm pin của Linux không ổn định.
1. Sử dụng các tools:
- PowerTOP:Một ứng dụng được viết của Intel giúp giải quyết các vấn đề về sử dụng tài nguyên trên Linux. Khá hay dành cho máy nào dành kiến trức Intel.
- cpufrequtils:Quản lí tài nguyên CPU.
- pm-utils: Xem hướng dẫn chi tiết ở đây: Pm-utils ArchWiki
- lm_sensors: Cách dùng khá đơn giản. Chỉ việc tải về và chạy lệnh "sensors-detect" rồi nhấn 'y' mỗi khi chương trình thông báo là xong.
- laptop-mode-tools: Hướng dẫn sử dụng https://wiki.archlinux.org/index.php/Laptop_Mode_Tools. Đây là chương trình khá hiệu quả và có các tùy chỉnh rất phong phú.
- powersave: Tổng hợp các script để mở rộng khả năng dùng pin của Linux. Trong trang git của tác giả đã có hướng dẫn khá chi tiết và cụ thể.
debugfs /sys/kernel/debug debugfs 0 0Dùng một trình soạn thảo bất kì để mở file /etc/modprobe.d/blacklist.conf thêm vào cuối file dòng sau:
blacklist radeonSau đó mở file /etc/rc.local ở cuối file thêm vào dòng sau:
modprobe radeon echo OFF > /sys/kernel/debug/vgaswitcheroo/switch exit 0
Đây là một giải pháp cực kì hiệu quả, giải quyết được vấn đề nóng máy, tốn pin, chạy không ổn định bên Linux. Và nếu không cần đến quá nhiều tài nguyên bên card đồ họa rời, thì đây là 1 thủ thuật rất nên sử dụng. Phương pháp chuyển đổi giữa 2 chế độ card đồ họa được gọi là "Hybrid graphics". Đây là 1 tài liệu rất hay về chủ đề này: link đây. Trong đó có cả cách tắt card ATI và NVIDIA.
3.Các biện pháp khác. - Giảm nguồn sáng của laptop.
- Để làm mát laptop có thể dùng quạt tản nhiệt. Loại từ 100k đến vài triệu tùy vào hầu bao.
- Dùng một trình soạn thảo bất kì mở file /etc/default/grub tìm đến dòng GRUB_CMDLINE_LINUX_DEFAULT và sửa thành:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1"Sau đó ta gõ lệnh sau để tùy chỉnh lại grub:
sudo grub-mkconfig -o /boot/grub/grub.cfg
- Đối với các sản phẩm của Dell. Vào Ubuntu Software Centre hoặc các package manager đối với các bản Linux khác và search keyword là dell, trong phần technical item cài đăt các gõi hỗ trợ laptop của hãng này. Điển hình có gói i8kutils, aircraft-manager...
- Tắt bluetooth: Mở /etc/rc.local và thêm dòng sau:
rfkill block bluetooth- Cập nhật thường xuyên các driver của hệ thống. Nâng cấp các phiên bản linux mới để fix các bugs cũng như cải thiện tốc độ.
4. Nguồn tham khảo:
Jul 16, 2012
Hướng dẫn cài đặt Qt library trên Visual Studio 2010.
Lưu ý: Cài đặt hoặc nâng cấp Visual Studio 2010 lên Service Pack
Download và giải nén source code của Qt: Link download. Đối với các bản trên 4.8 cần cài đặt Perl.Giả sử giải nén và chép sang thư mục: C:\QtFw
Cài đặt biến môi trường. Dùng cmd:
QTDIR = C:\QtFw QMAKESPEC = win32-msvc2010 Code cmd: Setx QTDIR C:\QtFw Setx QMAKESPEC win32-msvc2010
Thêm C:\QtFw\bin vào biến PATH (Trong System Properties--Advanced--Enviroment Variables ).
Để sử cài đặt Qt cho x86 ( ngay cả khi dùng win 64bit nhưng tạo ứng dụng x86 thì vẫn phải xài bản này): Mở Visual Studio Command Prompt. Đối với 64bit Qt library - để xây dựng các ứng dụng 64bit: Mở Visual Studio x64 Win64 Command Prompt.
Gõ lệnh sauCd C:\QtFw Configure -platform win32-msvc2010 -debug-and-release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-multimedia -no-qt3support -fast Nmake.
Ngồi đợi …
Download và cài đặt Qt Visual Studio Add-in.
Trong menu Qt trong VS2010. Qt < Qt Options < Qt Versions < Add.
Sau đó có thể create 1 project Qt trong VS2010 giống như tạo một project thông thường.
Cách này chỉ hiệu quả cho bản thương mại của VS2010, còn bản Express không cài Qt Visual Studio Add-in được nên có cách khác. Sẽ được post sau.


