Nguồn: https://blog.engineyard.com/wp-content/uploads/Gearman-Communication-Diagram-1.png |
Một weblog bé tí của một con người bé tí, nhằm chia sẻ những điều bé tí để hy vọng những thứ ấy kết hợp lại thành một cái to lớn.
November 24, 2013
Gearman persistent queue with MySQL
Location:
Ho Chi Minh City, Vietnam
Install Gearman on Ubuntu 12.04
Cài đặt Gearman 1.1.11 có một số vấn đề trên môi trường Ubuntu. Bài viết sau đây mang tính chất ghi chú lại việc cài đặt này, nhằm thuận tiện cho những bạn nào thích cài đặt thử nghiệm.
Đơn giản hơn, dùng lệnh như bên dưới
1 - Cài đặt các gói phụ thuộc
Việc cài đặt này đòi hỏi 1 số gói phụ thuộc, thông tin cụ thể các bạn có thể xem tại link sau: http://gearman.info/build/ubuntu.htmlĐơn giản hơn, dùng lệnh như bên dưới
sudo apt-get install gcc autoconf bison flex libtool libboost-all-dev libcurl4-openssl-dev curl libevent-dev uuid-dev libsqlite3-dev libmysqlclient-dev
Labels:
Gearman,
Install,
Ubuntu 12.04
Location:
Ho Chi Minh City, Vietnam
October 24, 2013
PHP - Design Pattern - Observer
Nguồn: http://mydevelopedworld.files.wordpress.com/2013/03/observer-pattern-uml.png |
Labels:
Design Patterns,
Event,
Event-Driven Programming,
PHP,
Web Developer
Location:
Ho Chi Minh City, Vietnam
PHP - Design Pattern - Observer
Nguồn: http://mydevelopedworld.files.wordpress.com/2013/03/observer-pattern-uml.png |
Labels:
Design Patterns,
Event,
Event-Driven Programming,
PHP,
Web Developer
Location:
Ho Chi Minh City, Vietnam
October 21, 2013
Developer Round Table Lần 1 - Sự im lặng đến nghẹt thở
Sự kiện Developer Round Table được trung tâm tin học Hoàng Nguyễn tổ chức, với mục đích chia sẻ giao lưu là chính. Và lần thứ nhất đã được diễn ra tại ngay trung tâm của Hoàng Nguyễn, lúc 9h ngày 20/10/2013 (Đúng vào ngày phụ nữ VN) với một không khí hết sức im lặng, im lặng đến mức nghẹt thở chứ không như mình tưởng tượng ban đầu, sẽ rất ồn ào náo nhiệt, điều khá lạ tại hội thảo IT
October 1, 2013
Install MongoDB, Redis, Memcached on Ubuntu 12.04
Bài viết chỉ mang tính chất note lại việc cài đặt các ứng dụng MongoDB, Redis, Memcached trên Ubuntu Server 12.04, không nhằm tính chất giải thích hay các vấn đề khác.
Version cài đặt như sau:
Ubuntu Server 12.04
MongDB Server: 2.4.6
Redis Server: 2.6.16
Memcached Server: 1.4.15
Version cài đặt như sau:
Ubuntu Server 12.04
MongDB Server: 2.4.6
Redis Server: 2.6.16
Memcached Server: 1.4.15
Labels:
Install,
Memcache,
MongoDB,
Redis,
Ubuntu 12.04
Location:
Ho Chi Minh City, Vietnam
September 24, 2013
MongoDB - Something to note
MongoDB.org |
Loạt bài này sẽ nhiều phần, vì như mình nói, mình đang nghiên cứu nghiền ngẫm, thấy hay gì là note lại chứ không logic hay chuẩn bị gì cả.
Labels:
Map-Reduce,
MongoDB,
NoSQL,
Tip,
Web Developer
Location:
Ho Chi Minh City, Vietnam
September 13, 2013
Zend Framework 2: Integrate MongoDB By Doctrine ODM
ZF2 - Doctrine - MongoDB |
Location:
Ho Chi Minh City, Vietnam
September 7, 2013
Zend Framework 2 - Model is also event
ZF2 - Event manager |
Labels:
Event,
Model,
Zend Framework 2
Location:
Ho Chi Minh City, Vietnam
August 6, 2013
PHP - Tốc độ giữa Foreach vs For
Làm việc với PHP cũng có được vài năm kinh nghiệm, lại là một người yêu thích về mặt tốc độ khi triển khai ứng dụng web. Ngày hôm qua, sau khi đọc 1 bài viết phân tích sâu về ARRAY PHP và trong bài viết này đã cho rằng foreach chậm hơn for đã làm cho mình thật sự không tin. Benchmark không biết bao lần, dẫn chứng cho bao người xem, cuối cùng sau khi đọc hết bài viết, test thử và gật gù thừa nhận. Và phải nhìn lại rằng PHP là một ngôn ngữ tuy rất dễ chịu nhưng cũng thật huyền bí, thay đổi 1 vài thứ sẽ lật ngược ván cờ về performance. Bài viết không có ý định trình bày lại những gì tác giả kia đã viết, chỉ một chút minh họa để nhìn lại vấn đề performance thôi.
Labels:
High Performance,
PHP,
Tip,
Web Developer
Location:
Ho Chi Minh City, Vietnam
July 17, 2013
Zend Framework 2: Paginator with NULL adapter
Tiếp nối theo chuỗi bài viết về ZF2, hôm nay mình giới thiệu mọi người cách phân trang data với Adapter NULL được cung cấp trong Zend. Có lẽ khi mọi người tìm kiếm cách phân trang với ZF2 thì đều có nhiều cách, đa số sẽ dùng TableGateWay, nhưng bài hướng dẫn trước của mình lại dùng PDO để truy xuất database nên cũng sẽ có bạn thắc mắc cách xử lý thế nào. ZF2 cũng hiểu điều này nên cung cấp 1 loại Adapter đặc biệt - Adapter NULL - dùng cho chuyện phân trang với PDO.
Labels:
Adapter NULL,
Database,
MySQL,
Paginator,
PDO,
Zend Framework 2
Location:
Ho Chi Minh City, Vietnam
June 30, 2013
Zend Framewok 2: Create custom library
Đã lâu rồi mới có dịp quay lại cái blog của mình mà viết thêm bài vào đây. Thời gian gần đây mình bị cuốn vào công việc, nên cũng ít chăm lo cho cái blog thân yêu này, hôm nay quay lại, tiếp tục chủ đề Zend Frameword 2 (ZF2) mà bấy lâu vẫn theo đuổi. Bài viết này sẽ giới thiệu tới các bạn kỹ thuật tạo một library riêng dùng chung cho tất cả module trong ZF2. Điều này chắc hẳn bạn nào từng làm việc với ZF1 sẽ dễ nhận ra ngay, và với cả mình, khi tiếp xúc với ZF2 cũng đã đặt ra câu hỏi là làm sao có một thư viện riêng mà các module đều xài được.
Labels:
Autoload,
Custom Library,
Namespace,
Own Library,
Zend Framework 2
Location:
Ho Chi Minh City, Vietnam
April 30, 2013
Zend Framework 2: Login ZF2 using session basic
Việc dùng session trong một ứng dụng web là chuyện rất bình thường và gần như là một điều bắt buộc trong việc lập trình ứng dụng web ngày nay. Bài viết không có ý định giải thích session là gì, cách khai báo, cơ chế như thế nào... trong session. Bài viết chỉ đơn giản làm một ví dụ minh họa cách dùng session đơn giản nhất trong Zend Framework 2 (ZF2). Việc ứng dụng hay dùng nhất và cũng đơn giản nhất đó chính là việc login/logout trong một website, như vậy mình cũng sẽ dựa vào đây để làm ví dụ minh họa cho bài viết này.
Labels:
Login,
PHP,
Session,
Web Developer,
Zend Framework 2
Location:
Ho Chi Minh City, Vietnam
April 9, 2013
Xdebug - Profiler website for high performance
Trong phần 1, mình đã giới thiệu tới mọi người tính năng thứ nhất của XDebug đó là debug code PHP. XDebug không chỉ dừng lại mỗi tính năng này, cái hay của nó là ở phần Profiler website - tính năng rất hữu ích cho việc tìm ra bottle-neck (nút thắt cổ chai) của website, từ đó đưa ra giải pháp cải tiến, nâng cấp, tối ưu nhầm mang lại hiểu quả cao hơn cho website. Hôm nay mình sẽ chia sẻ 1 phần kỹ thuật này, giúp mọi người có thể tự tay tìm ra điểm "chậm" của website mình
Labels:
Bottle neck,
High Performance,
Profiler,
WAMP,
Web Developer,
Xdebug
Location:
Ho Chi Minh City, Vietnam
April 3, 2013
Zend Framework 1.x - Work Flow - Part 2
Sau khi tiến trình xử lý Routing kết thúc, ZF sẽ kích hoạt tiến trình preDispatch, đây là tiến trình được xử lý trước các action trong controller của ZF.
Tiến trình được xử lý đầu tiên bằng việc Plugin Broker kiểm tra xem có một controller plugin nào được thiết lập phương thức dispatchLoopStartup hay không, nếu có thì thực thi phương thức này của controller plugin, sau đó Plugin Broker sẽ thông báo ngược lại với Front Controller đã hoàn tất quá trình loop startup và từ đây Front Controller sẽ gắn trạng thái TRUE vào cờ isDispatch của đối tượng Request (xem lại phần 1), Front controller sẽ tiến tới quá trình xử lý preDispatch, như vậy tại đây chúng ta sẽ thấy rằng Loop Dispatch là tiến trình chạy trước preDispath.
Tiến trình được xử lý đầu tiên bằng việc Plugin Broker kiểm tra xem có một controller plugin nào được thiết lập phương thức dispatchLoopStartup hay không, nếu có thì thực thi phương thức này của controller plugin, sau đó Plugin Broker sẽ thông báo ngược lại với Front Controller đã hoàn tất quá trình loop startup và từ đây Front Controller sẽ gắn trạng thái TRUE vào cờ isDispatch của đối tượng Request (xem lại phần 1), Front controller sẽ tiến tới quá trình xử lý preDispatch, như vậy tại đây chúng ta sẽ thấy rằng Loop Dispatch là tiến trình chạy trước preDispath.
Labels:
Web Developer,
Work Flow,
Zend Framework
Location:
Ho Chi Minh City, Vietnam
March 28, 2013
Zend Framework 2 - Routing - Part 2
Tree Routing |
Ngoài ra, với tree routing còn giúp cải thiện tốc độ load web nhanh hơn. Nhưng đây cũng là một khái niệm khá mới nên có vẻ cũng hơi khó làm quen với nó. Mình cũng chỉ mới tập tành làm quen với dạng routing này.
Labels:
Friendly Url,
Rewrite Url,
Routing,
Web Developer,
Zend Framework 2
March 25, 2013
Zend Framework 2 - Routing - Part 1
Trong ZF2 chức năng routing được thay đổi rất đáng kể so với ZF1. Đối với ZF2, sẽ không còn cái được gọi là routing mặc định để áp dụng cho tất cả những uri được request tới. Mà thay vào đó là mọi router đều phải được đăng ký. Việc này sẽ làm cho lập trình viên hơi bị mệt nhọc và nặng nề cho việc viết rule routing, tuy nhiên nó lại giúp cho ứng dụng ZF2 chạy nhanh hơn.
Việc cải tiến nữa trong routing ZF2 đó là cơ chế routing cơ bản nhất cũng yêu cầu sử dụng regular expression - cái thứ mà rất làm nản lòng dân developer.
Bài viết sẽ cố gắng giúp mọi người có thể cài đặt routing trong ZF2 và cũng không dám mong rằng đây là một hướng dẫn xuyên suốt cho phần routing ZF2
Việc cải tiến nữa trong routing ZF2 đó là cơ chế routing cơ bản nhất cũng yêu cầu sử dụng regular expression - cái thứ mà rất làm nản lòng dân developer.
Bài viết sẽ cố gắng giúp mọi người có thể cài đặt routing trong ZF2 và cũng không dám mong rằng đây là một hướng dẫn xuyên suốt cho phần routing ZF2
Labels:
Friendly Url,
Rewrite Url,
Routing,
Web Developer,
Zend Framework 2
Location:
Ho Chi Minh City, Vietnam
March 22, 2013
Zend Framework 1.x - Work Flow - Part 1
nguồn: http://www.kurttest.com/zfa/dispatch.html |
Bài viết mang một khía cạnh minh họa và giảng lược bằng hình ảnh để giúp những người đã từng có kinh nghiệm làm việc với ZF hiểu rõ cơ chế vận hành như thế nào.
Để rào trước đón sau, mình chỉ dám nói đây là tiến trình xử lý của ZF1 chứ không dám khẳng định ZF2 cũng y như vậy. ZF2 đã có 1 số cải tiến rất rõ về bộ library không biết có thay đổi về work flow không thì mình vẫn chưa thể khẳng định tại thời điểm này.
Labels:
Web Developer,
Work Flow,
Zend Framework
Location:
Ho Chi Minh City, Vietnam
March 18, 2013
Zend Framework 2 - Access Db via PDO
Tiếp nối cho bài viết về Zend Framework 2 - Startup, chỉ đơn giản là cài đặt và chạy bộ khung của ứng dụng ZF2, hôm nay mình sẽ viết tiếp sự tương tác của ZF2 với Database. Cụ thể trong bài này mình sẽ dùng database là Mysql server và bộ thư viện PDO để tương tác. Đại đa số các bài hướng dẫn trên mạng về sự tương tác DB với ZF2 chủ yếu tập trung với việc dùng class TableGateway, bài viết của mình đơn giản hơn là dùng chính PDO để tương tác với MySQL server luôn.
Labels:
Database,
MySQL,
PDO,
Web Developer,
Zend Framework 2
March 5, 2013
Zend Framework 2 - Startup
Hôm nay mình sẽ viết loạt bài hướng dẫn sử dụng Zend Framework 2 (ZF2) để xây dựng ứng dụng web. Bài viết được viết dựa trên sự tham khảo từ website chính thức của Zend, và sự tìm tòi của cá nhân. ZF2 không còn làm mới mẻ gì nếu như bạn từng là một tín đồ của ZF1, vì chỉ tính từ khi phiên bản stable ra đời tới nay đã hơn 6 tháng rồi.
Labels:
Virtual Host,
WAMP,
Web Developer,
Zend Framework 2
March 4, 2013
Xdebug (part1) - Debug code PHP with Netbeans
1 – Giới thiệu
Viết một ứng dụng PHP điều gặp khó khăn nhất so với các ngôn ngữ lập trình khác đó là việc debug – dò lỗi trong source code. Nhưng điều đó không có nghĩa là không thể làm được. Xdebug là một công cụ dùng để debug source web viết bằng PHP, một việc làm rất quan trọng cho việc lập trình và tìm ra lỗi nhanh nhất. Ngoài ra, Xdebug còn là một công cụ profiler rất tốt cho website. Đây là một tính năng giúp tìm ra thắt cổ chai (bottleneck) nhằm cải thiện tốc độ website.Trong bài viết này, tôi xin giới thiệu với mọi người sử dụng Xdebug cho việc dò lỗi trong ứng dụng web. Và để thực hiện điều này, tôi sẽ dùng Netbeans để tích hợp công cụ này và debug lỗi.
Labels:
Netbeans,
PHP,
Tools,
Web Developer,
Xdebug
January 1, 2013
2013 - New Year Resolutions
Một năm mới lại bắt đầu, kính chúc cho tất cả mọi người mọi nhà một năm mới an khang thịnh vượng, ấm no tiền tình, thành công trong sự nghiệp và tất cả những gì tốt đẹp nhất sẽ đến với mọi người.
Một năm nữa lại trôi qua - một năm với biết bao thăng trầm, biến cố của cuộc sống. Có lúc vui tươi, có khi buồn bã; khi cuồn cuộn nhiệt huyết, khi trầm lắng nội tâm. Năm 2012 vừa qua là một năm để lại rất nhiều kỷ niệm, rất nhiều điều đọng lại trong lòng của mình. Có thể cùng nhìn lại 20 khoảng khắc đáng nhớ nhất trong năm 2012 trên Facebook tại địa chỉ sau: "Year In Review - 2012"
Một năm nữa lại trôi qua - một năm với biết bao thăng trầm, biến cố của cuộc sống. Có lúc vui tươi, có khi buồn bã; khi cuồn cuộn nhiệt huyết, khi trầm lắng nội tâm. Năm 2012 vừa qua là một năm để lại rất nhiều kỷ niệm, rất nhiều điều đọng lại trong lòng của mình. Có thể cùng nhìn lại 20 khoảng khắc đáng nhớ nhất trong năm 2012 trên Facebook tại địa chỉ sau: "Year In Review - 2012"
Subscribe to:
Posts (Atom)