"Host Your Web Site In The Cloud: Amazon Web Services Made Easy" is a pretty easy to read book. I wish there were more books on Amazon web services, best practices and hosting in the cloud in general. Amazon has so many services nowadays that it is hard to keep up with the offerings and it is always better to read about real-world issues and solutions from an independent source, than from Amazon documentation :)
I have seen this issue many many times throughout my career so i thought it might be worth to go through it in details and help others.
If you have international content in your database and suddenly you see things like "Ã©" or missing characters like "?" instead of "è" you may be in trouble. It is a symptom of lack of consistency in the ways you write, read and store unicode characters.
I hope my explanation, even that lengthy, will shed some light on the core of the problem and possible solutions :)
I am very happy to share my first-ever screencast.
Screencast is about my open source project called phpProxyBuilder. It is a PHP library aimed at code reuse and promotion of proxy design pattern in PHP. It is heavily inspired by AOP and helps to implement cross-cutting concerns once and reuse the same code forever. It also promotes some of my favourite design principles like decoupling, testability, single responsibility and code reuse.
I wanted to create some screencasts for a while but I found it difficult to get the right tools. Fortunately screencasting and video editing are much easier on linux now and i hope to share more screencasts about PHP, open source and software design in the future :)
I have read about mongodb quite a lot on-line last year and i also managed to pick up this book. I think it is a really easy to read and well written book. If you want to get some good basics on mongodb i think it is worth checking it out.
It is structured more like a tutorial / reference manual i guess as it focuses a lot on practical examples and usage of different commands.
Cacti is an awesome tool but it requires quite a lot of manual work to setup new metrics measurement and begin graphing. As i am a total monitoring freak i love to have insight into different aspects of my applications. I love to export custom metrics and graph them in cacti but i found it too time consuming so i hacked a cacti graph and input method generator this weekend. The code is a bit primitive so please forgive me but i needed it to do just one particular thing it is not a multi purpose code really :)
I think some of you may find it useful as learning cacti for the first time and manually setting up custom graphs can be difficult so this script should help, check it out.
That is just a quick hint about an issue i had today. I wasted so much time trying to find the cause of it when at the end it was just no space on the device!
If you have issue with ftp_get or ftp_nb_get and all you see in log is "ftp_get(): Transfer aborted. Broken pipe,,PHP code: 2" then it might be as in my case no space left for the target file!
First of all i would be lying if i said that i did not like RabbitMQ :) It is a pretty cool piece of software. Having said that, i could be a bit biased in favor of the technology but i will try my best to be objective here.
RabbitMQ in Action is a really nice book. I think Alvaro Videla and Jason Williams did very good job at describing how to use and leverage RabbitMQ in your web applications.
Just a quick post to help out anyone who might be stuck on this one. If you are trying to use PHP stomp client from fusesource together with rabbitmq stomp plugin you will probably get same issues that i did. Here are some notes that should help you solve the problem. Hopefully it will be integrated into the 2.0 client.
I have looked at the state of different messaging backends recently and i ran a little benchmark to see what is the rough comparison of message publishing throughput. Results that i got are quite surprising.
What i wanted to achieve was some sort of reassurance before choosing a messaging bus for my PHP project. PHP is usually a bit special as it's runtime environment is different than java / .net. I wanted to use rabbitmq because of it's routing flexibility and implementation of AMQP. After the simple benchmark i am not convinced any more if that is the best way to go for me right now.
Pecl extension does not compile with the version on rabbitmq-c library shipped with ubuntu so you will have to manually install the library. Here is step by step guide how to do it.
About the author
Hi, my name is Artur Ejsmont,
welcome to my blog. I am a passionate software engineer living in Sydney and working for Yahoo!
If you are into technology, you can order my book Web Scalability for Startup Engineers on Amazon. I would love to hear what are your thoughts so please feel free to drop me a line or leave a comment.