Chủ Nhật, 7 tháng 9, 2014

10 lỗi thường gặp trong Photoshop

Mình mới học Photoshop hay bị lỗi, lên ngồi tìm hiểu thấy bài này khá muốn chia sẻ với mọi người, để những ai cũng mới bắt đầu học photoshop như mình nếu không may bị mắc phải mấy nội này có thể tực giải quyết được. 
1. Con trỏ của bạn biến mất hoặc thay đổi hình dạng
Vấn đề: Sau khi làm việc với một số công cụ khác, bạn bất ngờ nhận thấy con trỏ của mình đã thay đổi hình dạng, và rất khó nhìn thấy. Điều gì đã xảy ra?
Giải pháp: Nếu con trỏ của bạn trông giống như hình trên, bạn đã có thể chuyển sang chế độ “precise cursors”. Bạn chỉ cần nhấn CapsLock để trở lại chế độ bình thường. Bạn cũng có thể thay đổi chúng theo sở thích của bạn, bằng cách nhấn phím tắt Ctrl + K.
2. Bảng điều khiển bến mất
Vấn đề: Sau khi thao tác, tất cả các bảng điều khiển đã biến mất khỏi màn hình của bạn. Trình đơn vẫn hiện hữu, nhưng điều gì đã xảy ra?
Giải pháp: Thông thường, tất cả các bảng điều khiển được ẩn đi nếu bạn vô tình ấn vào phím Tab. Chỉ một cú ấn nhầm lẫn, tất cả các bảng điều khiển sẽ biến đi, và cú ấn thứ 2 sẽ đưa chúng trở lại như cũ, không cần phải kích hoạt lại trong menu Window.
3. Công cụ Brush Tool ngưng làm việc
Vấn đề: Bạn đang cố gắng để vẽ, xóa, nhân bản, chữa lành cọ vẽ... và Photoshop chỉ đơn giản là sẽ không thực hiện bất kỳ một dấu hiệu nào trên bức tranh của bạn hoặc cho phép bạn sử dụng các công cụ như bình thường.
Giải pháp: Vào Select> Deselect nếu bạn có một khu vực được lựa chọn với công cụ marquee (công cụ loại bỏ các chấm bao quanh một ô hoặc một dãy ô mà bạn đã cắt hoặc sao chép xong). Từ đó, điều hướng đến bảng điều khiển các kênh của bạn, và kiểm tra để chắc chắn rằng bạn đang không thực hiện chế độ lọc kênh, hoặc bất cứ một chế độ nào khác không liên quan. Nếu bạn thực sự đang thực hiện những chế độ trên có, nhấp vào kênh kết hợp RGB (hình ở trên, trung tâm) hoặc kênh kết hợp CMYK, nếu bạn đang thực hiện chế độ CMYK. 

Nếu bạn đang làm việc trong chế độ QuickMask (hình trên bên phải), bạn có thể nhấn phím tắt Q để trở lại bình thường, hoặc chỉ cần nhấp vào biểu tượng trong hộp công cụ.
4. Clipboard Export mắc lỗi khi chuyển các chương trình
Vấn đề: Photoshop bị treo mỗi khi bạn cố gắng để chuyển đổi các chương trình, và thường tạo ra những lỗi kỳ lạ về clipboard.
Giải pháp: Bấm phím tắt Ctrl + K để hiển thị cửa sổ Preference, trong mục General, bạn sẽ thấy tùy chọn “Export Clipboard.” Tùy chọn này đã ngăn chặn bạn không thể sao chép-dán dữ liệu hình ảnh từ Photoshop.
5. Document và các file mới luôn luôn mở trong các tab

Vấn đề: Bạn sử dụng một phiên bản mới của Photoshop, trừ trường hợp bạn buộc phải sử dụng tính năng tab bất cứ khi nào bạn mở một tài liệu hoặc tạo một hình mới.
Giải pháp: Vào Preferences bằng cách nhấn phím tắt Ctrl + K. Tiếp tục vào “Interface,” (Giao diện) nơi các tab có thể được vô hiệu hóa đối với các tài liệu mới mở, theo như minh họa ở trên. Để đưa một hình ảnh vào một tab, chỉ cần kéo nó đến khu vực ở trên cùng của chương trình, trực tiếp dưới tùy chọn bảng điều khiển và menu trên cùng.
6. Những file hình ảnh quan trọng không thể liên kết với Photoshop
Vấn đề: Bạn nhấp đúp vào tập tin mở theo định dạng Photoshop, nhưng một chương trình đã được cài đặt và tự động liên kết file đó.
Giải pháp: Nhấn chuột phải lên tập tin trong Windows Explorer, hoặc tập tin bất kỳ tương tự. Tìm "Open With", sau đó chọn “Choose default program.”
Từ đó, bạn có thể kết hợp các tập tin với Photoshop, và mặc định Windows luôn luôn sử dụng chương trình này cho loại tập tin đó.
7. Không thể kiểm soát chế độ “Smart Quotes” tự động 
Vấn đề: Có thể vì nhiều lý do khác nhau, bạn thích chế độ “Straight Quotes” hơn là “Smart Quotes,” nhưng lại không thể kiểm soát được chúng.
Giải pháp: Ít ai biết rằng, chế độ “Straight Quotes” không bao quát được tất cả hình ảnh, mà chỉ ở một số kích thước nhất định. Hầu hết các chương trình đều tự động thay thế chế độ “Smart Quotes” để sửa chữa lỗi này, nhưng điều này có thể tạo ra rất nhiều vấn đề. Cách đơn giản nhất là tắt hẳn chế độ “Smart Quotes”. Sử dụng phím tắt Ctrl + K để mở Preferences và chọn “Type”. Bạn sẽ thấy một tùy chọn để tắt chế độ tự động Smart Quote.
8. Bạn liên tục Thay đổi kích thước Windows sau khi zoom
Vấn đề: Bạn liên tục phóng to và thu nhỏ các hình ảnh. Khi bạn phóng to, cửa sổ của bạn vẫn giữ nguyên kích thước nhỏ tương tự như khi bạn thu nhỏ, và bạn phải liên tục thay đổi kích thước.
Giải pháp: Preferences có một tùy chọn để hạn chế vấn đề này. Nhấn phím tắt Ctrl + K và chọn tab "General". Bạn sẽ thấy các tùy chọn cho "Phóng to Thu nhỏ Windows", mà sẽ tự động thay đổi kích thước cửa sổ của bạn khi bạn phóng to hoặc thu nhỏ một file ảnh.
9. Đĩa đã quá đầy
Vấn đề: Photoshop chạy tồi tệ hơn bao giờ hết, và ổ đĩa hệ thống có vẻ đã quá đầy. Khi bạn muốn thực hiện các thao tác phức tạp hoặc lọc file, máy sẽ báo lỗi.
Giải pháp: Nhấn phím tắt đơn giản Ctrl + K để mở Preferences, chọn  “Performance.” Bạn sẽ có các tùy chọn trên Scratch Disks để thực hiện thêm bất kỳ ổ đĩa miễn phí nào khác của bạn cho Photoshop để sử dụng như là đĩa tăng thêm.
Đồng thời, bạn cũng có thể xóa bớt những chương trình không cần thiết. Vào Start Menu, chọn "Disk Cleanup" để xóa bớt những chương trình thừa và tạo thêm không gian trống trên đĩa hệ thống.
10. Photoshop chạy quá chậm 
Vấn đề: Bạn mất rất nhiều thời gian chờ bộ lọc chạy? Photoshop chạy chậm quá mức bình thường, bạn có thể làm gì?
Giải pháp: Câu trả lời rõ ràng là bạn cần nâng cấp máy tính, đặc biệt là thêm RAM. Tuy nhiên, một chiếc máy tính mới hoặc các bộ phận mới không phải lúc nào cũng là sự lựa chọn tốt nhất. Bạn có thể thực hiện theo cách đơn giản hơn nhiều. Vào Preferences bằng phím tắt Ctrl + K. Trong mục "Performance", bạn sẽ thấy một menu con cho phép bạn cung cấp cho Photoshop nhiều “năng lượng” hơn, lên đến 100% của RAM có sẵn. Tuy nhiên, cần lưu ý tới “Ideal Range” (Phạm vi lý tưởng), trừ khi bạn không có kế hoạch chạy bất kỳ chương trình nào khác cùng với Photoshop.

Cài đặt Plug-in và themes cho wordpress

Trước khi cài đặt Plug-in và themes cho wordpress chúng ta cần tìm hiểu xem Plug-in và theme là gì?
Nó có tác dụng gì trong thiết kế web với WordPress?
Plug-in là gì?
Plug-in đơn giản là những tính năng chúng ta thêm vào cho trang web. Giống như Firefox cũng cần phải có thêm 1 số tính năng tiện ích giúp chúng ta …
Cài đặt Plug-in như thế nào?
Bước 1: Trước tiên, các bạn phải xác định xem, Plug-in nào cần thiết với các bạn. Tôi sẽ có 1 bài viết thêm về các Plug-in quan trọng, các tính năng và công dụng của nó. Hiện tại, các bạn có thể xem tại đây
Bước 2: Biết được plugin nào quan trọng rồi thì ta tiến hành download
Bước 3: Download về và giải nén, sau đó các bạn tiến hành upload thư mục chứa các file plugin mà các bạn đã giải nén vào thư mục:
Trong thư mục đó các bạn sẽ nhìn thấy 2 plug-in mặc định là Akismet (rất quan trọng)và Hello Dolly.
Tại sao tôi lại ghi là FTP mà không phải là HTTP? Để các bạn hiểu rằng NÊN upload bằng 1 số soft FTP như Cute FTP, SmartFTP, …
Bước cuối: Đăng nhập vào Admin Panel (Vùng quản trị) bằng tài khoản admin của bạn. Nhấn chọn vào Plugins, Bạn sẽ nhìn thấy 1 bảng có tên là Manage Plug-in. Bạn tìm đến plug-in vừa upload và nhấn Activate (kích hoạt) nó.
Vậy Themes là gì?
- Theme là cái để tạo nên giao diện của 1 trang web. Các website [Only registered and activated users can see links. ] khác nhau nhờ sử dụng theme khác nhau. Nếu không cài theme, trang web của bạn sẽ có giao diện giống như trong bài 2, khi tôi vừa mới cài đặt.
Theme quan trọng như thế nào?
- Không những chỉ là vẻ bề ngoài, nhiều tính năng của trang web phụ thuộc vào theme (Seo, Quảng cáo …) nên việc chọn theme là rất quan trọng.
Như vậy là xong bước chọn theme.
Cách Cài đặt theme mới ra sao?
Bước 1: Download theme: hiện nay, có rất nhiều theme đẹp của người Việt Nam thiết kế Còn nếu muốn tìm theme khác, các bạn có thể Search trên Google rất nhiều hoặc tìm trong diễn về Wordpress.
Bước 2: Upload, bạn upload bằng FTP, thay vì up vào thư mục Plugin, bạn up và thư mục theme.

Bước 3: Login vào tài khoản Admin của bạn. Trong mục Apperance bạn chọn themes, Nhấn vào Preview trên theme của bạn để xem trước (Chú ý: Rất quan trọng. Nếu nó hiện ra màu trắng thì cấm Active kẻo trang sẽ xuất hiện màu trắng, không thể vào được.) Nếu bạn cảm thấy tốt thì Active (kích hoạt) nó.

Một số vấn đề khi truy xuất dữ liệu trực tiếp trong MySql từ PHP

Trong thiết kế lập trình web với PHP và MySql việc thiết kế cơ sở dữ liệu là một việc hết sức quan trọng. Nhưng đôi các bạn thường gặp phải một số vấn đề khi truy xuất dữ liệu. Sau đây là một số cách truy cập cơ sở dữ liệu trong mã PHP và cách sửa chữa những lỗi phát sinh trong quá trình truy xuất dữ liệu sử dụng MySQL trực tiếp
Khi sử dùng các hàm mysql_ để truy cập trực tiếp vào cơ sở dữ liệu có một vấn đề phổ biến là mã PHP đã cũ. Cách truy cập trực tiếp vào cơ sở dữ liệu.
Access/get.php
<?php
function get_user_id( $name )
{
  $db = mysql_connect( 'localhost', 'root', 'password' );
  mysql_select_db( 'users' );
  $res = mysql_query( "SELECT id FROM users WHERE login='".$name."'" );
  while( $row = mysql_fetch_array( $res ) ) { $id = $row[0]; }
  return $id;
}
var_dump( get_user_id( 'jack' ) );
?>
Hãy lưu ý việc sử dụng hàm mysql_connect để truy cập vào cơ sở dữ liệu. Cũng chú ý truy vấn trong đó có dùng sự liên kết chuỗi để bổ sung tham số $name vào truy vấn đó.
Kỹ thuật này có hai sự lựa chọn tốt: mô đun PEAR DB và các lớp PHP Data Objects (PDO-Các đối tượng dữ liệu PHP). Cả hai đều cung cấp sự trừu tượng từ việc lựa chọn của một cơ sở dữ liệu cụ thể. Do đó, mã của bạn có thể chạy mà không cần điều chỉnh quá nhiều trên IBM® DB2®, MySQL, PostgreSQL, hoặc cơ sở dữ liệu khác bất kỳ mà bạn muốn kết nối đến.
Các giá trị khác trong việc sử dụng các tầng trừu tượng của mô đun PEAR DB và PDO là bạn có thể sử dụng toán tử ? trong các câu lệnh SQL của bạn. Việc này làm cho SQL dễ dàng bảo trì hơn và bảo vệ ứng dụng của bạn khỏi các cuộc tấn công nội xạ SQL.
Mã thay thế khi sử dụng PEAR DB được hiển thị dưới đây.
Access/get_good.php
<?php
require_once("DB.php");
function get_user_id( $name )
{
  $dsn = 'mysql://root:password@localhost/users';
  $db =& DB::Connect( $dsn, array() );
  if (PEAR::isError($db)) { die($db->getMessage()); }
  $res = $db->query( 'SELECT id FROM users WHERE login=?',
  array( $name ) );
  $id = null;
  while( $res->fetchInto( $row ) ) { $id = $row[0]; }
  return $id;
}
var_dump( get_user_id( 'jack' ) );
?>
Chú ý rằng tất cả các đề cập trực tiếp của MySQL đã diễn ra, trừ chuỗi kết nối cơ sở dữ liệu trong $dsn. Ngoài ra, chúng ta sử dụng biến $name trong SQL thông qua toán tử ?. Sau đó, dữ liệu với truy vấn này được gửi đi thông qua array ở cuối phương thức query().
Không sử dụng chức năng tăng tự động
Giống như hầu hết các cơ sở dữ liệu hiện đại, MySQL có khả năng tạo các trình nhận dạng (identifier) duy nhất tăng tự động trên một cơ sở cho mỗi bản ghi. Mặc dù vậy, chúng ta vẫn thấy mã lần đầu tiên chạy một lệnh SELECT để tìm mã nhận dạng (id) tối đa, sau đó bổ sung thêm một vào id đó, cũng như một bản ghi mới. Phần mã code sau cho thấy một lược đồ mẫu bad (xấu).
 Badid.sql
DROP TABLE IF EXISTS users;
CREATE TABLE users (
  id MEDIUMINT,
  login TEXT,
  password TEXT
);
INSERT INTO users VALUES ( 1, 'jack', 'pass' );
INSERT INTO users VALUES ( 2, 'joan', 'pass' );
INSERT INTO users VALUES ( 1, 'jane', 'pass' );
Trường id ở đây được quy định đơn giản là một số nguyên. Vì vậy, mặc dù nó sẽ là duy nhất, chúng ta có thể thêm vào bất kỳ giá trị nào mà chúng ta muốn, như đã chỉ ra trong câu lệnh INSERT tiếp theo câu lệnh CREATE. Mã PHP bổ sung thêm users (những người sử dụng) vào kiểu lược đồ này.
Mã thêm users: Add_user.php
<?php
require_once("DB.php");
function add_user( $name, $pass )
{
  $rows = array();
  $dsn = 'mysql://root:password@localhost/bad_badid';
  $db =& DB::Connect( $dsn, array() );
  if (PEAR::isError($db)) { die($db->getMessage()); }
  $res = $db->query( "SELECT max(id) FROM users" );
  $id = null;
  while( $res->fetchInto( $row ) ) { $id = $row[0]; }
  $id += 1;
  $sth = $db->prepare( "INSERT INTO users VALUES(?,?,?)" );
  $db->execute( $sth, array( $id, $name, $pass ) );
  return $id;
}
$id = add_user( 'jerry', 'pass' );
var_dump( $id );
?>
Mã trong add_user.php đầu tiên thực hiện một truy vấn để tìm ra giá trị tối đa của id. Sau đó tệp này chạy một câu lệnh INSERT với giá trị id cộng thêm một. Mã này có thể không chạy thành công trong các điều kiện ganh đua (race) trên các máy chủ có một tải nặng. Hơn nữa, nó không hiệu quả.
Vì vậy, sự thay thế là gì? Sử dụng tính năng tăng tự động trong MySQL để tạo các ID duy nhất cho mỗi lần chèn tự động. Lược đồ cập nhật được hiển thị bên dưới như sau:
Goodid.php
DROP TABLE IF EXISTS users;
CREATE TABLE users (
  id MEDIUMINT NOT NULL AUTO_INCREMENT,
  login TEXT NOT NULL,
  password TEXT NOT NULL,
  PRIMARY KEY( id )
);
INSERT INTO users VALUES ( null, 'jack', 'pass' );
INSERT INTO users VALUES ( null, 'joan', 'pass' );
INSERT INTO users VALUES ( null, 'jane', 'pass' );
Chúng ta thêm cờ NOT NULL để chỉ ra rằng các trường này không rỗng (null). Chúng ta cũng đã bổ sung cờ AUTO_INCREMENT để chỉ thị rằng trường này tăng tự động, cũng như cờ PRIMARY KEY để chỉ thị trường nào là id. Những thay đổi này cho phép tăng một chút tốc độ. Liệt kê 6 cho thấy mã PHP đã cập nhật, mã này chèn users (những người dùng) vào bảng.
Add_user_good.php
<?php
require_once("DB.php");

function add_user( $name, $pass )
{
  $dsn = 'mysql://root:password@localhost/good_genid';
  $db =& DB::Connect( $dsn, array() );
  if (PEAR::isError($db)) { die($db->getMessage()); }
  $sth = $db->prepare( "INSERT INTO users VALUES(null,?,?)" );
  $db->execute( $sth, array( $name, $pass ) );
  $res = $db->query( "SELECT last_insert_id()" );
  $id = null;
  while( $res->fetchInto( $row ) ) { $id = $row[0]; }
  return $id;
}
$id = add_user( 'jerry', 'pass' );
var_dump( $id );
?>
Thay vì nhận được giá trị id tối đa, tôi bây giờ chỉ cần sử dụng câu lệnh INSERT để chèn dữ liệu, sau đó sử dụng một câu lệnh SELECT để lấy id của bản ghi vừa mới được chèn vào. Mã này đơn giản hơn nhiều và hiệu quả hơn so với phiên bản gốc và lược đồ liên quan của nó.
Một lựa chọn khác đối với chức năng tăng tự động của MySQL là sử dụng phương thức nextId() trong hệ thống PEAR DB. Trong trường hợp của MySQL, điều này tạo ra một bảng tuần tự mới và quản lý việc sử dụng một cơ chế khóa phức tạp. Lợi thế của việc sử dụng phương thức này là nó sẽ hoạt động trên các hệ thống cơ sở dữ liệu khác.

Dù bằng cách nào, bạn nên sử dụng một hệ thống quản lý sự tăng các ID duy nhất cho bạn và không dựa vào hệ thống mà bạn truy vấn đầu tiên, sau đó tăng giá trị của chính bạn và thêm bản ghi. Cách tiếp cận thứ hai dễ bị ảnh hưởng theo các điều kiện ganh đua trên các trang có khối lượng cao.

CÁC LOẠI ĐIỀU KHIỂN RÀNG BUỘC DỮ LIỆU trong ASP.net

Bạn dang cố gắng học thiết kế web với ASP.net. Bạn cần chú ý tới các điều khiển bên trong mà ASP.net hỗ trợ cho bạn.
Dưới đây là danh sách các loại điều khiển ràng buộc dữ liệu (validation server controls) :
Điều khiển ràng buộc dữ liệu (validation server controls) 
Mô tả / Diễn giải
RequiredFieldValidator
Bắt buộc người sử dụng phải nhập dữ liệu.
CompareValidator
So sánh dữ liệu người sử dụng nhập vào với một giá trị nào đó hoặc với giá trị của một điều khiển (control) khác với nhiều phép so sánh (>, >=, <, <=, ...).
RangeValidator
Kiểm tra, so sánh giá trị người sử dụng nhập vào với khoảng giá trị cho trước. Với RangeValidator, bạn có thể sử dụng nhiều kiểu dữ liệu để so sánh, kiểm tra.
RegularExpressionValidator
Kiểm tra giá trị nhập vào theo một khuôn mẫu định sẵn như email, số điện thoại, mã vùng, ... Với RegularExpressionValidatior, bạn có thể xây dựng các khuôn mẫu cho riêng bạn bắt buộc người sử dụng nhập đúng dữ liệu theo khuôn mẫu này.
CustomValidator
Trong thực tế thì sẽ có rất nhiều phát sinh trường hợp các Validator trên không đáp ứng được các ràng buộc dữ liệu theo yêu cầu. Do đó, bạn phải cần đến CustomValidator để xây dựng các ràng buộc phát sinh này. Để sử dụng CustomValidator, bạn phải tự xây các hàm trong javascript hay vbscript để ràng buộc dữ liệu.
ValidationSummary
Tổng hợp và hiển thị tập trung các lỗi phát sinh từ các Validator được sử dụng trong Form.


Một số module cơ bản nhất cần "phải có" trong một trang Drupal

Sau đây là một số module cơ bản nhất cần "phải có" trong một trang Drupal

1 - Module Chaos tool suite hay còn gọi là Ctools. Đây là một bộ thư viện cho hoạt động của Drupal như trang quản trị, css, cache ... Bạn cần cài module này để làm nền cho các module cài thêm khác hoạt động như module Views, Panels,....

2 - Module Token. Có thể nói đây là module không thể thiếu trong Drupal, hàng loạt các module quan trọng khác phải sử dụng các thư viện của module này để sử dụng. Nếu xem lại bạn sẽ thấy trong nhiều bài hướng dẫn của Thủ thuật Việt Nam, có rất nhiều các đoạn dạng [site:name], [site:url],... như trong bài cài đặt và cấu hình module metatag chẳng hạn.
Có thể nói rằng module này không trực tiếp tham gia vào quá trình sử lý, nhưng nó cung cấp các thư viện giúp các module tương tác dễ dàng thông qua các dạng token.

3 - Module Pathauto. Module này thì quá quan trọng, module tạo ra các URL ngắn gọn, thân thiện Search engine, và các quá trình thực hiện được tự động, công việc của bạn đơn giản chỉ là thiết lập các dạng url và việc còn lại Pathauto sẽ tự lo.

4 - WYSIWYG. Đây là một module cũng không kém phần quan trọng. Nếu thiếu module này bạn sẽ thấy mệt mỏi thế nào khi làm một bài viết. Bạn sẽ phải thêm nào là thẻ <a> nào là thẻ <p>, <div>,.... Khi có module này bạn sẽ dễ dàng tích hợp các Editor như CKEditor, TinyMce, ... Công việc viết bài của bạn sẽ trở nên đơn giản như làm Word, các thẻ sẽ tự động được tạo ra. Thủ thuật Việt Nam cũng đang sài module này để viết bài hướng dẫn bạn.

5 - Module Views: Nếu không có module này thì chắc chắn Drupal không có gì nổi trội hơn các CMS khác. Sử dụng views bạn dễ dàng tạo ra các form, các giao diện page, các blocks khác nhau chỉ trong thời gian rất ngắn. Thực sự thì đây là một module quá lớn và trong khuôn khổ một bài viết không thể mô tả hết sức mạnh của nó. Trong thời gian tới Thủ thuật Việt nam sẽ dành cả serial bài để viết về Views, điều cơ bản và tiện ích Views mang lại cho bạn là các công việc khó khăn khi phải code, có khi chỉ phải làm với vài thao tác kéo thả, tích chọn trong views


6 - Module XML Sitemap. Bạn sẽ làm gì nếu bạn đứng trước một căn nhà có hàng trăm phòng và nhiệm vụ của bạn là tìm một quyển sách trong đó? Công cụ tìm kiếm cũng vậy, nó sẽ lạc lối trước nội dung đồ sộ của website bạn. Và XML Sitemap như kim chỉ nan, chỉ cho biết nó phải tìm thông tin ở những nơi nào. Bạn có thể xem thêm về module này trong bài viết Cách làm sitemap cho các trang web được thiết kế bằng Drupal.