To continue my previous post, but this time tie it to the Zend Framework (version 1), I have added a ZF application resource plugin to my library which redirects the visitor to the correct language sub-domain according to his browser’s settings. This plugin will take care of the redirection logic, and keep all the necessary information for the application to provide the user with the GUI elements for switching languages.
One of the biggest challenges in software development is multi-lingual support. Surely you could create different versions of the application, and translate the bits of text where translation is needed. But this is not practical, as you would then have to maintain a multitude of versions.
In this post I hope to shed light on some tasks to make your application multi-lingual.
Recently I became curious about Hadoop and Cassandra and decided to read more about them. The current trend in information technology creates a demand for different approaches for data storage. With an unimaginable amount of data flowing through the Internet (think Facebook, Twitter and Google), there has been a demand for distributed data storage which is also reliable and fast.
Hadoop is, simply put, a framework for creating a cluster of worker nodes, managed by a master node, which distributes tasks among the worker nodes. It is maintained by the Apache Software Foundation, and runs on Java.
Cassandra is a distributed and scalable database system, open-sourced by Facebook in 2008, and now maintained by the Apache Software Foundation. It is totally different from a relational database system, which has been a hype in the ’90s. Everything I learned about databases, did not apply to Cassandra.
So I decided to buy a book – the O’Reilly book on Cassandra – in Japanese.
SDLTutorials.com offers a nice set of tutorials to get you started in game programming with the SDL library. SDL stands for “Simple DirectMedia Layer” and is a convenient layer between your application and audio, mouse, keyboard, joysticks and the screen. It also supports 3D via OpenGL.
And the good thing about SDL is that it is cross-platform: it works not only on Unix-based operating systems such as Linux and BSD flavors, but also on Windows, MacOS and MacOSX.
The first set of tutorials introduce the SDL video screen and the SDL events. You will also learn about the basic composition of a typical game, and how to deal with animations and object collisions. The second set of tutorials deal with separate subjects within SDL which may be useful in your projects. There is an SDL playground project using C++ on my GitHub which is based on these tutorials. Don’t forget to check out the branches. Feel free to fork from it!
I have different projects in mind with SDL, such as object detection from webcam streams, and an artificial world with artificial entities in a client/server architecture. And you, what would you make?
Sticking to old habits is bad – people need to develop, especially programmers, because the rate of development in software engineering is amazingly fast. I have been a SVN user for a long time, and found myself comfortable with it, so comfortable I didn’t bother checking out other revision control systems, such as the popular Git.
I should have done this a long time ago: I created myself a GitHub account. I have made quite a few projects in the past, but they are kind of lost. I am going to recreate them, and keep them in this GitHub account. To start with, I have uploaded the code of the base controller class from the previous post in the ZF1E project.
If you have a GitHub account, or know of interesting repositories, why don’t you share it with me?
When you make a new website or work on a new project, you want to keep it as easy as possible to add new pages. Zend Framework 1 offers a few ways to do this, for example if all the actions in your controller share some common code, you would put that in the controller’s
init() function. But what if your whole site shares some common code?
Famous quote from a lot of forums, and yet it carries no meaning. Same with this post: it is just a first post, gotta start somewhere, and that is probably the whole meaning of this post.