Author Archives: Boby



Zendcon 2010, here we come

by Boby

Just a small post to wish a good time to all the participants of Zendcon 2010 which starts today. Zendcon is THE PHP conference with 4 days of sessions and the presence of all the PHP scene.

And we are present there as well! Our ambassador, Alvaro Videla, will be giving a presentation on “Integrating PHP with RabbitMQ” tomorrow from 10 to 11am. He will talk about his experiences in deploying and running a messaging queue system on a high traffic website for one of our client. Don’t miss it!!

Erlang at the Netcircle

by Boby

Here is a small blog post to celebrate the company presence at the ECUG Con 2010 (ECUG stands Effective Cloud User Group, former Erlang China User Group) in Beijing this week end (16th and 17th of October 2010). Our most famous coworker, Alvaro Videla, will be giving a talk about scaling web application using RabbitMQ along with fellow erlangists from China but also Bob Ippolito, CTO of MochiMedia.

Stay put for the after-con report, meanwhile I will present quickly how we are using Erlang in our projects. Erlang is a functional language with built-in support for concurrency, distribution, messaging and fault tolerance; it was developed by Ericsson to run on telecommunication systems. Its nature permits to build robust, scalable applications that we can use to power our projects.

Here is a list of the tools we are using:

* RabbitMQ: The famous messaging system helped us to remove a lot of heavy processing in the background and increase the response time of our sites. For example, signing up is now a matter of milliseconds for our users as IP logging, statistics update, cache clearing is done asynchronously. But we also use it for thumbnails generation, email notifications, error logging… We are running a simple setup with 2 servers and processing 27 millions messages per day for the moment. The current load is very low so we could easily increase the queue penetration in our system.

* Ejabberd: This is an instant messaging server using the XMPP protocol. We use it to track if the user is online or not and as a in-browser chat. We also start building a real-time notification platform on top of it; so that we could notify the user in his browser window if one of his friends is logged in or if the user receives a poke/message. The current setup is one server keeping connection with up to 300 concurrent users and we are doing capacity testing to reach 30,000 sessions.

* Riak: For one of our project, we are storing around 200 millions messages send among users. We are storing currently them on 4 servers using master-slave setup and basic partitioning. To alleviate the situation, we want to use a distributed key-value database, as in Riak. We should then be able to grow easily and store enormous amount of data without having to worry. Also over the years, we realized that denormalization and partitioning are critical in improving our SQL databases, so why not give a try to a NoSQL database; the important thing is to understand the data and how it is used. One of our colleagues, Joseph Lambert, worked several weeks on a indexing solution for Riak to accelerate items retrieval based on some criteria, which worked much better than to rely on Map/Reduce. Promising stuff until Riak Search was finally released last week with indexing, Lucene syntax and what not. Well at least we had to play with Riak internals and have a better understanding of it. The next step will be finalizing the prototype and deploy it for live testing. Exciting :)

* Tsung: I nearly forgot this one but this is also important. The overall goal for us of using Erlang is to build performant systems able to respond to the quick users growth. Still this doesn’t make so much sense if we are not able to prove it and this is where Tsung intervenes. Tsung is a load testing tool that allows to generate different kind of load like MySQL queries, HTTP requests, XMPP connections… It works with scenario that can simulate user traffic and is distributed to simulate heavy loads. We use it to stress tests our system; for example we did some experiments for our migration from MyISAM to XtraDB on our main MySQL database so that we could see what will be the real impact in production and if the migration was worth with our kind of traffic (note: it is!).

Finally we are also looking into improving our skills in Erlang to understand better how those tools are working but also at some point build our own services more business orientated in a scalable way.

TheNetcircle at Symfony Live 2010

by Boby

Last week was held in Paris the second Symfony Live conference. Over 2 days, 350 (!!!) participants listened to 20 sessions; covering different subjects like usage of Symfony events, introduction to GIT and the first presentation/release of Symfony 2. It was a great gathering of the framework users but also of PHP and Open Source enthusiasts. We could exchange our experience with other developers, prepare some future collaboration and enjoy some french food.

Alvaro Videla at sflive2010

This was also the first presentation of our work to the outside world thanks to the session of one of our coworker, Alvaro Videla. His talk was about “Debugging and Profiling Symfony applications” presenting the tools developed and/or used in the company to run our main project. It also introduced some performance issue we had to deal with during our deployment of symfony 1.0 and 1.2. This was the first time the company’s work is publicized openly, due to its “special” nature, and the feedback is quite good so far, encouraging us to share more about our work.

The highlight of the conference was the first preview release of Symfony 2 (note the upper case S). This new version focused on speed and flexibility. By getting rid of the magic (magic methods, calls…) and using a few patterns (like dependency injection), the framework matures to a totally new level. Doctrine 2 was also revealed and follows the same path of speed/quality focus as well; this is very encouraging and I hope it will push for an increase of quality and reconnaissance in the PHP world. The final release is still far ahead, planned for late 2010, (beta available on github) but this already sounds very promising.

Another important point was the choice of using some Zend Framework components (logger, cache) instead of reinventing them; showing that collaboration, and not competition, is possible between the different frameworks. This is also quite interesting for the community; let’s see how it develops.

Stay tuned!

TNC HQ Photos, 2nd try

by Boby

(Click on ‘Read More’!)
Some visitors reported problems with the photo gallery we posted a while ago. To fix this, we created a TNC Flickr account and we’ve already uploaded the photos posted last time. We’ll keep uploading more photos so stay tuned!

However, we still like Flash so below is the embedded slide show from Flickr, which should work – fingers crossed.

Posted in TNC 1 comment(s)
Tagged ,

The NetCircle HQ in pictures

by Boby
The NetCircle Office Photos

Ever since we moved into our loft office we wanted to take a couple of photos to show off our workspace. That was something like 2 years ago and we felt that finally it was time to do it. Photos were taken on regular working day in April 2009.

Link to the gallery after the jump.

All right, now please go and enjoy the photos in the gallery!

Posted in TNC 7 comment(s)

Join Our Team in Shanghai

Now hiring PHP Developer in Shanghai