• Skip to main content

MrHói's Blog

The simple is the best

You are here: Home / Archives for Lập trình

Lập trình

Thiết kế trang mạng những điều designer không thể không biết?

December 27, 2011 by mrhoi 1 Comment

634-ngoisao-dupliacte

Nếu bạn đã từng nghe tới khóa học “Thiết kế website trong vòng 2 ngày”, đừng vội trầm trồ về cả 2 khía cạnh mỉa mai hay thán phục, hay tin tôi, điều đó là có thể đấy. Chỉ đơn giản website đó như thế nào thôi.

Mở đầu việc này tôi chỉ muốn khẳng định một điều là làm một website không hề khó, nhưng lại cần một liều thuốc lớn nhất đó là thời gian và sự kiên nhẫn. Để làm một website tốt không chỉ nhờ người làm nội dung tốt, người kỹ thuật viên tốt, người thiết kế giao diện tốt… tất cả việc đó sẽ không thể tốt nhất nếu thiếu một người chủ nhân tốt, đó chính là webmaster. Đôi khi webmaster sẽ là tất cả những người tôi kể trên, chỉ vì đơn giản họ là người thai nghén và dần thực hiện làm chủ một mảnh đất của mình trên internet. Nhưng đó là điều kiện lý tưởng, vì một người không thể có khả năng nhiều đến thế.

Vậy Webmaster tốt sẽ là người như thế nào, hãy là người chăm chỉ, và tận tâm với sự phát triển của website, quan trọng là cần thay đổi đúng lúc và tiếp tục theo dõi việc thay đổi đó ảnh hưởng tới website của mình như thế nào.

Ngay khi trang Ngôi sao thay đổi giao diện tôi đã muốn viết một vài suy nghĩ của mình bấy lâu, cũng là để cho chúng ta cùng tư duy lại cách làm của đại đa số báo điện tử ở Việt Nam hiện giờ.

Trước tiên mô ta sơ bộ cho các bạn hình dung rõ một chút về quy trình triển khai, nâng cấp một tờ báo điện tử hay một trang thông tin điện tử hay còn gọi là trang web:

  • Sếp / ông chủ hứng lên, muốn thay đổi / làm mới / phát triển một trang web, kêu nhân viên họp, thống nhất ý tưởng, sao chép, chụp dựt theo chỉ dẫn của bạn Gúc…
  • Nhân viên thiết kế, thỏa sức sáng tạo bay bổng của mình, vui thì thêm 1 nút, buồn thì cắt đi một số nút / box / chức năng, đôi khi họ cung tham gia tư vấn ngược lại cho sếp / ông chủ… tất cả mọi góp ý đều được đặt đấy, tôi là nhà thiết kế, tôi phải có phong cách riêng, không được giống ai cả… đó là sáng tạo của tôi, đừng có làm khác. Sau giai đoạn này bạn thiết kế chỉ đơn giản là vài trang như thật… để sếp duyệt, sếp chưa hài lòng, xin vui lòng làm lại, còn xong rồi, chuyển tiếp cho bộ phận triển khai.
  • Nhân viên triển khai, thực tế có thể là 1, hoặc một 100 người, ngồi nhìn bản thiết kế rồi ngán ngẩm, nhìn lên cái deadline ngáp một cái để rồi bừng tỉnh. Hì hục ngồi ngào nặn với mấy đoạn mã chán ốm, lặp đi lặp lại. rồi chỗ này lệch một chút, chỗ kia thiếu một tẹo… kết quả là nặn ra được một cục gần giống với cái bản vẽ được đưa, nhưng có thể khác xa cái trong đầu sếp. May mắn, sếp dễ tình thì thôi thế cũng được, còn không may thì quay lại làm việc cùng các bạn thiết kế để làm tiếp những công đoạn chán ngắt vừa qua.
  • Xong tất cả các giai đoạn xây dựng nhà cửa, phải đến việc mua đồ đạc chất vào, đây là nhiệm vụ quan trọng của các bạn biên tập nội dung, mấy bạn này cũng nản cơ, động đến cái gì cũng thấy ức chế, mạng chậm, quản trị phức tạp, học mãi chả hiểu, hiểu rồi phải làm nhanh nhanh chóng chóng để đủ quota đã đề ra…. thingr thoảng gặp lỗi bất thình lình ức chế lòi mắt…
  • Sau khi hoàn tất giai đoạn phát triển / nâng cấp đôi lúc sếp sẽ lượn lờ xem qua qua, rồi nhìn vào hệ thống phân tích các chỉ số, ông sếp nào cũng thích cái này thì phải, nó cứ lên đều đều thì không sao, cứ tụt hoặc nghe ngóng đối thủ đang vươn lên là y như rằng tất cả các bạn lớn bé, xin mời họp để đưa ra chiến lược… có thể là phải tiếp tục nâng cấp 😀

Trên đây là một lố các công việc tôi đã từng biết và nhìn lại trên con mắt hài hước một chút, đơn giản tất cả chúng ta, nhất là những ông sếp luôn nhìn tới kết quả, mặc kệ trong quá trình nó được thực hiện ra sao, giết người cướp của cũng mặc, miễn là đạt mục tiêu đã đề ra.

Vậy chúng ta còn thiếu điều gì để có thể trở thành một tờ thông tin điện tử đáng giá trong con mắt của người sử dụng internet, tôi xin đặt mình ở vị trí người sử dụng nêu ra mong muốn của mình, cũng không đến nỗi quá khó:

  • Tốc độ, thông tin phải nhanh, tất nhiên sẽ đi kèm với tốc độ tải trang.
  • Nhẹn nhàng: Nếu bạn dạo một vòng các báo điện tử sẽ thấy máy mình chậm tưng bừng vì các quảng cáo, bỏ hết đi thì hơi quá, bản thân tôi cũng phải cài chương trình chặn quảng cáo, nhưng làm rồi thì lại thấy thiếu thiếu, vì bản thân quảng cáo cũng là thông tin mà, tốt nhất có cũng được nhưng đừng kiến nó làm chậm máy tính của độc giả.
  • Thiết kế khoa học: Tôi cực kỳ ghét việc đưa nguyên lý của mỹ thuật vào việc thiết kế trang web, tất cả các thiết kế đều cần phân tích dựa trên thói quen sử dụng của người dùng, cần nghiên cứu một cách khoa học và có số liệu chính xác để đưa ra một thiết kế đúng đắt nhất. Tôi nghĩ khó mà làm được khi phải đòi hỏi sự sáng tạo được giới hạn là 7-14 ngày công 😀
  • Thông tin: Nếu là người dùng internet, bạn lên mạng 1 là giải trí, 2 là tìm thông tin, mà nói đúng hơn điều thứ 2 đã bao trùm điều thứ 1 rồi, các hình thức khác như chat, download cũng vậy. Tóm lại chúng tôi cần thông tin, hay thể hiện nó một cách rõ ràng, càng “sạch sẽ” càng tốt, chúng tôi không cần hoa lá cánh, màu mè. Các thiết kế tốt nhất nên dựa trên màu trắng để dễ đọc, nội dung hình ảnh rõ ràng, không gây nhiều nầm lẫn, các box và các khối màu cần lớn, ít họa tiết hoặc màu chuyển tiếp làm khó phân biệt, các nhà phát triển hãy tự nhìn lại để thấy rằng các trang thông tin như nytimes, youtube, facebook đều có giao diện cực kỳ đơn giản đến mức xấu xí, nhưng tại sao người dùng lại vẫn sử dụng và dùng nhiều đến vậy, đơn giản là các tính năng vô cùng tiện dụng và phù hợp với đại đa số thành viên, quan trọng họ luôn cải tiến và lắng nghe những phản hồi tích cực và tiêu cực từ người dùng.

Những gì chúng ta thiếu, cần làm để cải thiện nhược điểm của chính mình để có một website tốt hơn và luôn phát triển:

  • Hãy lắng nghe phản hồi, bằng nhiều phương diện, đơn giản là box bình chọn để thấy được độ hài lòng của độc giả.
  • Sử dụng các công cụ như Web Master Tools, Google Analytics để biết được đâu là giao diện người dùng cảm thấy thân thiện nhất.
  • Theo dõi các xu hướng và nghiên cứu mới nhất của thế giới về phong cách thiết kế website
  • Tùy mục tiêu của từng website cần thay đổi vị trí của nội dung dựa theo bản đồ click
  • Không ngừng đưa ra những nội dung phù hợp với những độc giả trung thành, hãy nhớ rằng nội dung chính là linh hồn website của bạn.
  • Đừng bán mình vì tiền và nghe lời các nhà môi giới quảng cáo, hãy lắng nghe một cách khoa học, cân bằng giữa lợi nhuận và lượng độc giả trung thành, đừng tham bát bỏ mâm.
  • Dám nhìn thẳng vào sự thật, đừng ngại sửa sai khi biết. Không bao giờ quá trễ để thay đổi và làm cho sản phẩm tốt hơn.

Dù bạn là chủ một website lớn có hàng triệu người truy cập, hay chỉ là chủ nhân một blog nho nhỏ, hãy làm công việc quản trị website một cách thông mình và đầy lòng tận tâm. Xây dựng website giống như việc reo hạt giống xuống lòng đất, bạn càng chăm sóc tốt, cây sẽ cao lớn và cho những trái ngọt sau này.

Filed Under: Lập trình Tagged With: designer, Google Analytics, layout design, New magzine, sạch sẽ, Vậy Webmaster, Việt Nam, Web Master Tools

Làm việc với JW Player Skin

December 19, 2011 by mrhoi 17 Comments

Một vài ngày trước một người bạn hỏi làm sao JW Player của theoyeucau lại có hiển thị khác như vậy? Tất nhiên rồi, JW Player được viết lại Skin dành riêng cho TYC. Nghe nói chữ viết lại ghê quá, chỉ đơn giản là sửa lại skin sẵn có để phù hợp với cách hiển thị của TYC thôi.

Tất nhiên khi tôi bắt đầu xây dựng phiên bản thứ 11 của TYC, tôi đã thấm và tất nhiên sau khi phát triển hoàn thiện các module của TYC tôi cũng sẽ tính toán và viết thành Plugin hoàn thiện để chia sẻ với cộng đồng WordPress, nhất là cộng đồng người Việt.

Đây là Skin JW Player tôi đã sử dụng cho TYC, xin chia sẻ cùng những người cần và quan tâm. Cách sử dụng Skin của JW Player các bạn có thể tham khảo ở trang web chính thức, tôi chỉ xin giới thiệu cách đơn giản để sử dụng bằng mã javascript dưới đây

jwplayer(‘mediaplayer’).setup({

‘flashplayer’: ‘player.swf’,

‘id’: ‘playerID’,

‘width’: ‘480’,

‘height’: ‘270’,

‘file’: ‘/videos/bunny.mp4’,

‘image’: ‘/thumbs/bunny.jpg’,

‘skin’: ‘/skins/stormtrooper/stormtrooper.zip’

});

]]>

Tôi nghĩ việc tạo cho mình một Skin theo hướng dẫn cũng không quá khó, cần các bạn một chút kiên nhẫn, nghiên cứu và sáng tạo. Hy vọng các bạn sẽ có thể tạo được skin player cho riêng mình.

Filed Under: Hướng dẫn, Wordpress Tagged With: 'mediaplayer', flash player, JW Player, JW Player Skin, JW Player Skin Một, Skin JW Player, theoyeucau

WordPress database error MySQL server has gone away for query

August 26, 2011 by mrhoi Leave a Comment

Sẽ có nhiều người gặp vấn đề này đây, hướng dẫn thì có nhiều các bạn có thể tham khảo ở giải pháp trên The Social Media Guide, nhưng tôi cũng xin hướng dẫn qua để các bạn xử lý phù hợp cho từng phiên bản của WordPress.

Về nguyên lý chung chúng ta chỉ cần tăng thời gian Session Timeout của MySQL lên để tránh xảy ra lỗi trên bằng dòng lệnh:

$this->query(“set session wait_timeout=300″);

Các hướng dẫn thường thiết lập thông số này là 600 giây, nhưng theo tôi, nếu bạn đang chạy share hosting và giới hạn số lượng process xử lý, bạn nên để con số này thấp xuống để hệ thống của bạn ít bị ảnh hưởng. Thiết lập mặc định của MySQL là 10 giây.

Nhưng tùy với phiên bản của WordPress mà cách đặt dòng lệnh trên khác nhau, có phiên bản đặt trong Constructor khi tạo Object, có phiên bản đặt trong db_connect, tốt nhất chúng ta chỉ cần tìm đoạn thông báo lỗi của không kết nối được với Cơ sở dữ liệu để chèn thêm vào dòng lệnh trên.

Tìm kiếm cụm “!$this->dbh” trong file /wp-includes/wp-db.php, trong một số trường hợp tìm được sẽ có dạng

if ( !$this->dbh ) {

$this->bail( sprintf( /*WP_I18N_DB_CONN_ERROR*/”

Error establishing a database connection

This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at %s. This could mean your host’s database server is down.

  • Are you sure you have the correct username and password?
  • Are you sure that you have typed the correct hostname?
  • Are you sure that the database server is running?

If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.

“/*/WP_I18N_DB_CONN_ERROR*/, $this->dbhost ), ‘db_connect_fail’ );

return;

}

$this->query(“set session wait_timeout=300”);

Thêm dòng lệnh trên vào sau dòng lệnh if trên là xong, giờ chỉ cần theo dõi xem hệ thống con phun ra các lỗi liên quan tới vấn đề này không, nếu còn, bạn nên tăng thời gian đợi lên cho phù hợp với hệ thống của bạn.

Filed Under: Lập trình, Wordpress Tagged With: chỉ cần, CONN, database server, dPress Support Forums, ERROR, Error establishing a database connection, mysql, Session Timeout, set session wait_timeout=, The Social Media Guide, WordPress Support Forums

Khắc phục tình trạng không hiển thị phân trang trên WordPress với Hostgator

August 26, 2011 by mrhoi 3 Comments

Nếu bạn là người đã sử dụng wordpress trên hostgator, cũng ngịch ngầm và chỉnh sửa các thông số của PHP, thì rất có thể sẽ gặp tình trạng giống như tôi. Một ngày đẹp trời hệ thống vẫn chạy bình thường nhưng không thể tìm thấy các trang tiếp theo để click. Nguyên nhân ở đâu?

Sau một buổi tối ngồi hỳ hục tìm hiểu chỉnh sửa, tôi đã hiển thị được số trang cần theo một cách nông dân là debug từng dòng lệnh. Nhưng để rồi có một kiến thức mới hay ho không kém. Cái tội là WordPress sử dụng hàm FOUND_ROWS() để tính số lượng bản ghi nếu không có giới hạn LIMIT. Nhược điểm chính của việc này là dòng lệnh trên phải được xử lý ngay sau khi câu SELECT được thực hiện.

Tại sao hệ thống lại chạy không chỉnh xác khi tôi thay đổi config của PHP, lý do là tôi muốn kiểm tra hệ thống sẽ hoạt động ra sao khi vận hành, việc cần biết đó là nó truy vấn tới database ra sao. Tôi đã chỉnh sửa một số thiết lập của PHP trong đó có mysql.allow_persistent, điều này đã làm cho câu lệnh FOUND_ROWS() luôn trả về giá trị là 1, vì đơn giản sau khi thực hiện lệnh hệ thông sẽ truy vấn thêm log của MySQL ghi ra log file, tất nhiên những truy vấn này đều có 1 kết quả trả về.

Tiếp đó hệ thống của WordPress luôn tín sai và duy nhất chỉ có một trang. Cả buổi tối ngày hôm đó tôi loay hoay và cũng chỉnh sửa được bằng cách viết 1 hàm hook vào wordpress để thay đổi cách thức tính số trang, không sử dụng FOUND_ROWS() nữa. Các bạn gặp trường hợp trên tạm thời muốn chạy có thể sử dụng hàm này:

add_filter(‘found_posts_query’, ‘wpspider_fix_max_num_pages’);

function wpspider_fix_max_num_pages ($query) {

global $wp_query;

if ($query == ” || $query != ‘SELECT FOUND_ROWS()’) return $query;

$query = $wp_query->request;

$query = preg_replace(‘/SELECT\s.+\sFROM/’, ‘SELECT 1 as id FROM’, $query);

$query = preg_replace(‘/LIMIT\s.+$/’, ”, $query);

$query = preg_replace(‘/ORDER\s+BY\s.+$/’, ”, $query);

$query = sprintf(‘SELECT SUM(id) FROM (%1$s) as `count` ‘, $query);

return $query;

}

Hơi ngu ngốc một chút vì thỉnh thoảng hệ thống có phun ra một số log error query vì câu lệnh SQL không chính xác, nhưng sẽ là tạm đủ khi bạn vừa muốn debug hệ thống vừa muốn hệ thống hoạt động bình thường.

Filed Under: Hệ thống, Lập trình, Wordpress Tagged With: 'found_posts_query', 'SELECT 1 as id FROM', 'wpspider_fix_max_num_pages', FOUND, FROM, Hostgator Nếu, LIMIT, ORDER, ROWS, SELECT, SELECT FOUND, SELECT FOUND_ROWS, SELECT SUM, wordpress

Installing Xdebug on Ubuntu

June 26, 2011 by mrhoi Leave a Comment

Install Xdebug

sudo apt-get install php5-xdebug

Update xdebug.ini

Now we need to update the xdebug.ini file. Use the following command to open the file with gedit:

sudo gedit /etc/php5/apache2/conf.d/xdebug.ini

Change the file so it looks like this:

; configuration for php xdebug module

zend_extension=”/usr/lib/php5/20090626/xdebug.so”

xdebug.remote_enable=1

xdebug.remote_handler=dbgp

xdebug.remote_mode=req

xdebug.remote_host=127.0.0.1

xdebug.remote_port=9000

Restart Apache

All left to do now is restart Apache with the following command:

sudo /etc/init.d/apache2 restart

Now you can check if all is OK with phpinfo(). You should see the following text:

This program makes use of the Zend Scripting Language Engine:

Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans

with Suhosin v0.9.29, Copyright (c) 2007, by SektionEins GmbH

Filed Under: Lập trình Tagged With: Derick Rethans, Install Xdebug, Installing Xdebug, nEins GmbH, Restart Apache, SektionEins, SektionEins GmbH, ubuntu, Ubuntu Install Xdebug, Update xdebug.ini, Zend Engine, Zend Scripting Language Engine, Zend Technologies

Sự khởi đầu của những ước mơ

June 10, 2011 by mrhoi Leave a Comment

Ước mơ của tôi mới thực sự chỉ mới bắt đầu? Trong tuần vừa qua, tôi đã dành phần lớn thời gian của mình dành cho ước mơ của chính tôi, điều mà tôi luôn tin tưởng và tự hào. Nơi mà tôi có thể gặp gỡ những ước mơ khác, những con người đầy lòng yêu thương với cuộc sống này.

Có lẽ khi bạn làm điều gì đó vì mọi người, điều này không những không đem lại phiền phức cho bạn, nó còn đem lại cho bạn những sự bất ngờ khác về tình cảm của những người bạn ảo mà thật dành cho mình. Khi đến với nhau ở tâm hồn, đôi khi đơn giản chỉ là sự tin, với những người gặp lần đầu mà bạn không có chút ngần ngại, luôn tin tưởng không chút nghi ngờ, đó là điều tốt đẹp nhất.

Quyết dịnh sử dụng nền tảng cho Ước mơ của mình đã chiếm khá nhiều thời gian của tôi, nhưng cuối cùng để thực hiện nhanh chóng ước mơ này, tôi đã chọn WordPress, một phần mềm Publish thân thiện và tốt nhất mà tôi được biết. Khả năng tùy biết dường như lơn hơn mọi kỳ vọng của tôi. Cộng đồng phát triển quá nhiều và sẽ giúp tôi đẩy nhanh tính năng của sản phẩm hơn. Giờ đây tôi chỉ phải nghĩ giải pháp để kết hợp các tính năng và ý tưởng của tôi vào phần mềm tuyệt với này.

Một lý do khác để tôi chọn sản phẩm này đó là sự kiểm định chất lượng thông qua hệ thống Blog nổi tiếng, đã có hàng trăm ngàn Bloger sử dụng nền tàng miễn phí này cho sự kiếm Blogging của mình, tôi cũng đang làm việc đấy. Thú thật chưa bao giờ tôi cảm thấy thỏa mãn với một phần mềm như thế này.

Hi vọng với sự mền dẻo và tài nguyên vô tận của những ý tưởng, tôi sẽ sớm hoàn thành giấc mơ của mình.

Filed Under: Wordpress Tagged With: phần mềm

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3

Copyright © 2026 · Revolution Pro on Genesis Framework · WordPress · Log in