August 31, 2011 – Thêm chút nữa

Đang có hứng viết blog, thêm bài nữa để đẩy cái bài không vui kia xuống dưới. Gần đây mình làm việc rất năng suất. Đi làm đúng giờ, làm được bao nhiêu việc. Về nhà cũng làm được không ít. Tinh thần thoải mái, làm việc hăng say. Từ ngày bọn MB thu phí, mình vẫn chưa biết phải làm như thế nào cho hiệu quả. Kiểu gì cũng mất 4%, thôi thì tự nhủ thế còn hơn chán những bọn khác. Chờ PP thì đến bao giờ mới được, mà lúc ấy trượt giá mất rồi còn đâu. Để lâu nó phí ra. 2 lần bị bỏng bô trong vòng 2 tuần. Mỗi lần một chân. Cháy hết lông chân rồi.

August 31, 2011 – Kết thúc

Không có bắt đầu thì sao gọi là kết thúc… Cũng đến lúc rồi. Như những lần trước, ngay từ đầu đã cảm thấy chán thì chẳng thể tiến xa được. Khởi đầu không thuận lợi, luôn nằm trong thế bất lợi và càng ngày càng rời xa mục tiêu, kết thúc là điều khó tránh. Cũng đúng, khi mà đã không lấy được sự tự tin vốn có + thế chủ động bị đánh mất, mình dễ dàng bị lâm vào tình thế khó. Đến mức không thể thoát ra được. Đến lúc rồi.

PHP: eval() without output to screen

Sometimes, we need to eval() some lines of code and grab the result without output to screen. As you know, eval() has only one parameter, so we have to use output buffer for that purpose. The following code can achieve that. Pretty clean and understandable: ob_start(); eval(‘echo “Hello world!”;’); $str = ob_get_contents(); ob_end_clean(); $str will hold the output returned by eval function.

August 21, 2011 – Overdue

Lâu lắm rồi không viết blog, quên mất cả format của title (không thêm ngày vào trước). Nản thật đấy. Blog là thứ nên viết thường xuyên. Viết được ra thì sẽ không phải nghĩ nữa, là cách giải tỏa stress rất tốt. Viết nhiều cũng làm cho khả năng diễn đạt cải thiện, là điều mà những người sử dụng bán cầu não phải như mình còn thiếu. Tư duy có tốt đến mấy mà không thể diễn đạt cho người khác hiểu thì cũng không để làm gì. Đặt ra những kế hoạch rồi lại tự tay phá nó. Chả cái nào cho ra hồn cả. Những nỗi lo lắng short-team rồi cũng được giải quyết ổn thỏa, từng cái một. Còn những cái long-term đã đặt ra thì lại chả giải quyết được cái gì. Chung quy cũng tại những vấn đề sau: Mình muốn rất nhiều. Cái gì cũng muốn. Và theo mình thì cái gì cũng cần. Nhưng tất nhiên là không thể có thời gian giải quyết được tất cả những thứ đó. Vấn đề ở đây là mình không định nghĩa được cái nào quan trọng hơn cái nào. Vậy là cái nào cũng có một ít nhưng chả cái nào hoàn hảo cả. Hay bị phân tán bởi những thứ linh tinh. Nhiều lúc mình nghĩ muốn tập trung được thì chỉ có lên đảo. Xa rời tất cả. Sức ì, mặc dù đã được cải thiện nhưng vẫn còn hơi lớn. Có những thứ (nhiều hơn 1) cả tháng rồi vẫn chưa làm được, nói đúng hơn là chưa bắt đầu. Mà đã không bắt đầu thì làm sao kết thúc được Có quá nhiều ràng buộc, và hình như là càng ngày càng nhiều thêm. Gỡ được một cái thì

Format post date in WordPress

We all know that $post->post_date will display post date in the following format: 2011-08-19 17:23:25. The problem is that, if we want to display post date in different format, what should we do? Fortunately, WordPress has a very useful function mysql2date. Suppose you want to display only Month and Year of the post, you should be able to do that using this snippet: < ?php echo mysql2date('F Y', $post->post_date) ?> The first parameter of this function can be referred in date function of php.net

How to count number of search results returned by WordPress

Suppose you want to create a custom search result for your theme. Apparently you will create a php script named search.php. One problem is that, you want to display total number of search results returned. Here is the solution for that. Searching for: < ?php echo get_search_query(); ?> < ?php $allsearch = &new WP_Query("s=" . get_search_query() . "&showposts=-1"); $count = $allsearch->post_count; ?> < ?=$count?> results found: Happy coding!

Host … is not allowed to connect to this MySQL server

Suppose you’ve installed LAMP (Linux, Apache, MySQL, PHP) in your server. Everything is working fine. One day, there was a problem on your server. You don’t want to use the command line mode of MySQL because it is very difficult to debug. So, you grab a tool, for example SQLyog to connect to that server. Surprisingly, you cannot connect and the sever give you a weird message: ERROR 2003: Can’t connect to MySQL server on ‘host_name’ (111) This is a very common problem. You forgot to change the bind address on my.cnf. Use Vim, Nano or any text editor to open /etc/mysql/my.cnf as root and change the bind address from 127.0.0.1 (default) to 0.0.0.0 Now your MySQL server are open to the world (be careful!) You might think now you will be able to connect. Things are not easy like that. You will get another error message: Host … is not allowed to connect to this MySQL server If you have nmap installed, you can see your server is already open port 3306 (which is MySQL default port). So, why you cannot connect? MySQL user table has something like ‘user’@’host’. By default, there is only 2 entries: ‘root’@’localhost’ and ‘root’@’127.0.0.1’. You have to add one more entry. Connect to MySQL server and type the following: GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘root-password’ WITH GRANT OPTION; Notice that ‘%’ is wildcard for “any host”. You will be able to login now. Good luck!

Dọn mốc

Dọn mốc tí nào. Hơn 2 tháng rồi chứ có ít đâu. 2 tháng với bao nhiêu chuyện đã xảy ra. Break up một mối quan hệ, nối lại rồi lại break up một mối quan hệ khác, và rồi đang chuẩn bị nối lại một mối quan hệ. Phỏng vấn VEF. 2 tháng vừa rồi tiêu hơi nhiều tiền, chung quy cũng vì cái VEF. Còn một khóa học ở Summit nữa nhưng chưa biết bao giờ mới đi học được. Tuần học 1 buổi và phải làm rất nhiều bài tập về nhà. Y hệt như năm ngoái, không biết kết quả VEF sẽ như thế nào đây. Dù sao thì mình cũng đã có sự chuẩn bị từ trước cho những kế hoạch tiếp theo. Sắp tới sẽ lại căng đây :|

Why are private fields not private to the instance?

In C# it’s perfectly legitimate to access private fields of other instances of the same type. C# specification also state that access to private fields is on a type, not an instance. Is there any reason for that? public class Foo { private bool aBool; public void DoBar(Foo anotherFoo) { if(anotherFoo.aBool) … } } One reason for this is that, access modifiers work at compile time. As such, determining whether or not a given object is also the current object isn’t easy to do. Another reason for this is that, the purpose of encapsulation is to lower mutual dependence of different pieces of code (classes in C# and Java), not different objects in memory. For example, if you write code in one class that uses some fields in another class, then these classes are very tightly coupled. However, if you are dealing with code in which you have two objects of the same class, then there is no extra dependency. A class always depends on itself. Source: stackoverflow.com