Jan
31
2011
--

MySQL & Friends Meetup @ FOSDEM

Kris Buytaert organized a MySQL Meetup at FOSDEM last year, and because of the success we’ll be doing it again this year, in the same restaurant: Sogno d’Italia.

Everybody is invited to come to the dinner. Just register on http://mysqlandfriendsfosdem2011.eventbrite.com/ so we have an idea how many reservations we should make. The maximum capacity is about 40 people.

We’ll plan to meet at 19:00 on Saturday, under the big tree in front of the AW building. Then we’ll walk to the restaurant, which is about 5 minutes walking distance.

 

Jan
31
2011
--

What is exec_time in binary logs?

If you’ve used MySQL’s mysqlbinlog tool, you’ve probably seen something like the following in the output: “exec_time=0″ What is the exec_time? It seems to be the query’s execution time, but it is not.

In most cases, the exec_time will be similar to the query execution time on the server where the query originally ran. If you’re running replication, then on the replication master, the exec_time will look believable. But on replicas, exec_time can be completely different. Suppose you execute an UPDATE that takes one second to run on the master. This gets logged into the binary log and copied to replicas for replay. Now suppose that you have also set log_slave_updates on the replica. When the statement executes in the replication thread, it will be logged to the replica’s binary log so it can be replicated to other servers in turn.

If you use mysqlbinlog to examine the replica’s binary log, you might see a very different exec_time, such as exec_time=1000, even if the statement did not take 1000 seconds to execute. Why is that?

The reason is that the exec_time is the difference from the statement’s original start timestamp and the time at which it completed executing. On the originating server, that’s accurate to within the tolerance of a one-second timestamp. However, replicas might execute the statement much later. And in those cases, the end timestamp will be much later than the start timestamp on the originating server, thus causing the statement to appear to have taken a long time to execute.

Jan
31
2011
--

Episode 35: Unit Testing in Zend Framework 1.8

Zend Framework 1.8 has improved and simplified how you can test your applications, providing you with excellent techniques to streamline your quality assurance processes and reduce your maintenance costs. Hear Michelangelo van Dam talk about how to best harness the unit testing features of Zend Framework.

Jan
30
2011
--

A week of symfony #213 (24->30 January 2011)

Symfony2 achieved this week a remarkable milestone: more than 500 pull requests have been submitted by tens of developers around the world. In addition, Symfony2 added some cool new features, such as a cache warmer to improve performance, definition inheritance support for DIC and a complete refactorization of the CSRF protection. Lastly, three new sessions were unveiled for the Symfony Live conferences.

Development mailing list

symfony 1 development highlights

Changelog:

  • r31890, r31893:
    [1.3, 1.4]
    fixed sfDomCssSelector on class names with hyphens
  • r31895:
    [1.3, 1.4]
    fixed _auto_link_urls() does not pick up URLs with complex fragments (as per RFC3986)
  • r31927:
    [1.3, 1.4]
    fixed “expired” tests
  • r31928:
    [1.3, 1.4]
    copied more values into a cachable partial’s cloned response when the partial is marked as contextual in cache.yml

Symfony2 development highlights

Changelog:

  • 9310eea:
    optimized templating layer (you must now explicitly register the templating engine you want to use)
  • 1c11d81:
    made all event listeners lazy loaded (the register() method on all listeners has been removed and instead, the information is now put directly in the DIC tag)
  • 0144dd8:
    added synthetic attribute to definitions (this attribute can be used to hint that the service is being injected dynamically at runtime, and not constructed by the DIC)
  • 49793c2:
    fixed event dispatcher
  • ca8c790:
    [Routing] added setContext() method to both matchers and generators
  • d0b4bfc:
    added a cache warmer sub-framework
  • 206b49a, 2860c26, 2499ac4, 03e51cc:
    [FrameworkBundle] added a cache warmer to pre-compute template paths
  • 8f6e8a4:
    [TwigBundle] added a cache warmer to generate all Twig templates cache
  • edb11ad:
    [FrameworkBundle] added a cache warmer for the router
  • 14e4b97:
    [HttpFoundation] fixed FileBag to handle sub-requests
  • 2bc6197:
    [DoctrineBundle] fixed bug in Auto Proxy Generation introduced with config merge refactoring
  • f29a5f7:
    made the DI config validation more strict to catch errors early
  • 79dce16:
    made a performance optimization (requires the modification of autoload.php file)
  • 561a3e4:
    [HttpKernel] made another speed optimization
  • 4d4eec6, 18c611a, 3eadf73:
    [DoctrineBundle] implemented Proxy CacheWarmer
  • 6f5c2e2:
    [Serializer] abstract classes now implement their respective interfaces
  • 08f8b22:
    [Serializer] added hasEncoder and getEncoder to the SerializerInterface
  • d341e8b:
    [Form] adding PHPDoc to many Field objects; added empty_value option on CountryField, LanguageField, LocaleField, and TimezoneField; dded missing date_pattern to DateTimeField; made the currency option on MoneyField required
  • 7848a7c:
    [Form] refactored CSRF implementation to be reusable and to work correctly with the session service
  • 0239d62:
    [Form] made the CSRF provider service public so that it can be used without forms
  • d017970:
    [Form] implemented FormFactory::buildDefault() to ease the use of the new CSRF implementation without the DIC
  • 0e66e38:
    added two interfaces: EventInterface and EventDispatcherInterface
  • 6bbfffb:
    added path, and domain to clearCookie() in accordance with RFC 2109, and RFC 2965
  • 40dec88:
    added helper method to normalize keys
  • fb4e7fb, 36dcce4:
    added KernelInterface
  • 8b62df7:
    changed the EventDispatcher and Event interfaces (the three notification methods do not return the Event instance anymore: notify() does not return anything, notifyUntil() returns the returned value of the event that has processed the event, filter() returns the filtered value)
  • db2f2b1:
    refactored template name parser to occur independently of the loaders

Documentation

New developers for hire

  • Webfit: is an Auckland, New Zealand web development studio with extensive experience in Symfony application development. We specalise in ecommerce websites, web applications and business process automation.

New plugins

  • icfbAutocomplete: provides symfony wiget for facebook style autocomplete which can be used in various of situations like sending messages.
  • sfGooglePropelLogin: allows a simple login via Google Accounts using OpenID.
  • buMixpanel: aims to provide an easy to use integration of mixpanel into your project.
  • assetPackages: provides you the ability to group stylesheet and javascript calls into packages that you can easily organise through a simple yaml config file, with a simple dependency system.
  • sfGenerateLibFiles: allows you to create model files with a visual tool.
  • drKint: basic integration of Kint (http://code.google.com/p/kint/)
  • apostropheExtraSlots: extra functionality for Apostrophe in the form of new and alternative slot types.
  • lbCart: more than a simple commercial cart, the “cart” of lbCartPlugin will receive any object with behavior (actAs) Cartable. Thus, it can be used for the user to reference contacts, books, movies, and any object present on the site, whether commercial or not.
  • sfDoctrineActAsSluggableAttachment: lets you bind an uploaded file to a model and rename the file into a slug version. It also handles thumbnailing of images.

Updated plugins

  • pmPropelGenerator:

    • generated excels now are ‘fitted to page’ when printing
    • generated excels now are horizontally centered when printing
    • the title of the ‘filter form’ in every module have been changed to “Show/Hide filters”
    • added CustomEditSuccess templates
  • sfPinba:

    • refactoring & added sfPinbaScriptNameFilter
    • added propel 1.5 logger
    • return ‘other’ by default in operation
    • fixed Oracle dsn parsing
  • ExtjsGenerator:

    • added check to not add empty fieldsets to the formPanel
    • fixed a bug where one to one related tables with the same column name were overriding the main table columns
  • sfAlyssaDoctrineObjectPath:

    • added missing where property path
    • improved documentation
  • sfDataSource:

    • implemented filter feature with doctrine datasource
    • updated filter method in DataSourceArray
  • sfGrid:

    • implemented basic processing of filtering data
  • sfAlyssaJqGrid:

    • implemented filtering feature
  • sfDoctrineActAsTaggable:

    • removed a call to stripslashes() on the output of json_encode
  • crBarcode:

    • fixed imagewidth and imageheight warning
  • dcReloadedFormExtra:

    • added dcWidgetFormJQueryActivator
    • fixed ‘evaluate_method_extra_params’
  • apostrophe:

    • to be sufficiently unique the crc used as an id for the email obfuscation must be based on the username, the domain and the label
    • allowed the transition duration to be set as a slideshow option (it still defaults to 300ms)
    • removed obsolete columns from apostrophe:migrate
    • fixed a bug with Crop when aspect width and height are used
    • it is now possible to easily override the way the name of a group is displayed in page settings
    • updated the javascript to use .find() when traversing down, and .closest() when traversing up, so that it is both more flexible and more specific
    • created a filters icon because it was missing
    • updated ‘filters’ button to have the same treatment as the ‘linked accounts’ button
    • added the css-colors-report task. This task generates a visual report of all CSS colors used in apostrophePlugin/web/css and web/css CSS files
    • lots of fixes to apostrophe:migrate-data-from-pkcontextcms and apostrophe:migrate
    • fixed a bug in the button slot where you ccouldn’t set the “tool” for the richtext
    • check formatOnly, then PDF support, not the other way round for performance boost
  • apostropheBlog:

    • migrate a_blog_category_user relationships to the new a_category_user table
    • migrate a_blog_category_group if it exists
    • made blog category migration more tolerant of things like bad foreign keys on the old tables
    • apostrophe:migrate now ensures that all blog items’ virtual pages have the same categories and tags as the blog items
  • apostropheExtraSlots:

    • created the first Extra Slot: the inset image slot lets text wrap around it

They talked about us


Be trained by symfony experts
Feb 21 Paris – Mar 02 Paris – Mar 02 Paris – Mar 14 Paris

Written by in: Zend Developer |
Jan
28
2011
--

Announcing Ignite Percona – San Francisco, Feb 16th.

We’re excited to announce that as well as Percona Live – we will also be holding an evening of Ignite talks on February 16th.

For those not familiar the format, you should check out the Best of Ignite from the MySQL conference last year, as well as Baron’s What is the Difference Between XtraDB and Others? talk.

Here are the key details:

  • Same Location as Percona Live (Bently Reserve, San Francisco).
  • A ticket to Percona Live also gets you into Ignite Percona.
  • Free registration is also available to Ignite Percona (space is limited).
  • We are also seeking speakers to submit talks until February 4th.  Be quick!

For more information, please check out the Ignite Percona event page on our website.

Jan
28
2011
--

PHP on Azure Contest

Microsoft is at it again. Every time I turn around the are finding new ways to engage the PHP community. Now they’ve gone and started another programming contest – this one involving their Cloud platform Azure. Click on in, I’ll give you what details I’ve got so you can get to coding.

Jan
28
2011
--

Symfony Live Conferences Updates

I’ve already posted about the Symfony Live Conferences schedule a few weeks
ago, but since then, we have added quite a few sessions from top-notch
speakers.

First, during the conference in San Francisco, Dustin Whittle, a Symfony core
team member and an ex-evangelist for Yahoo!, will examine how symfony and the
community around it has evolved since 2006.

Then, Kris Wallsmith, the symfony 1.3/1.4 release manager, will come and talk
about Assetic, his new asset management library for PHP 5.3. This is really
great news for PHP and Symfony as he is also working on a bundle for Symfony2.
Ping him and help me convincing him to come to Paris too.

I have also great news for the Paris conference. Weka Entertainment, a French
social gaming company, will share their experience migrating a very successful
Facebook game (more than 8 millions users) to Symfony2. And guess what! They
did that in less than three months. I really like those crazy people! They
will also talk about their platform, one of the biggest one hosted on the
Amazon cloud.

What are you waiting for? Register today and don’t
miss what I expect to be the most exciting Symfony conferences ever.


Be trained by symfony experts
Feb 21 Paris – Mar 02 Paris – Mar 02 Paris – Mar 14 Paris

Written by in: Zend Developer |
Jan
26
2011
--

PHPDay, come to Verona for the day (or 3)

PHP conferences continue to sprout up all over the world. While it’s not a new one, PHPD ay will be May 12-14, 2011 in Verona, Italy. If you click on through, I’ll give you more details.

Jan
26
2011
--

Modeling InnoDB Scalability on Multi-Core Servers

Mat Keep’s blog post on InnoDB-vs-MyISAM benchmarks that Oracle recently published prompted me to do some mathematical modeling of InnoDB’s scalability as the number of cores in the server increases. Vadim runs lots of benchmarks that measure what happens under increasing concurrency while holding the hardware constant, but not as many with varying numbers of cores, so I decided to use Mat Keep’s data for this. The modeling I performed is Universal Scalability Law modeling, which can predict both software and hardware scalability, depending on how it is used.

In brief, the benchmarks are sysbench’s read-only and read-write tests, and the server has two Intel SSDs, 64GB of memory, and 4 x 12-core AMD Opteron 6172 “Magny-Cours” 2.1GHz CPUs. It is a reasonably typical commodity machine except for the high core count, which is more than I can remember seeing in the wild. The database was MySQL 5.5.7-rc. I am not sure why they didn’t run the GA version of MySQL for this benchmark. Maybe they wrote the paper before 5.5 went GA.

The following are plots of the read-only and read-write scalability models that I generated, based on these benchmarks.

Read-Only Results

Read-Only Results

Read-Write Results

Read-Write Results

The model predicts that the server will continue to provide more throughput as the core count climbs into the mid-50s, although the bang for the buck isn’t very good at that point. Also, there appears to be some bottleneck that hits more sharply than the model predicts at high core counts. It would be great if the benchmark were re-run with the same core counts and with sysbench on another machine, instead of taking 12 cores away from MySQL and giving them to sysbench. That way we could test with 48 cores and see what happens. My gut feeling is that the results will not be as good as the model predicts at high numbers of cores. But as Neil Gunther says, this wouldn’t mean the model is broken; it would mean that there is potentially something to fix in the server at high core counts. Without the model, there wouldn’t even be a basis for discussion.

The biggest thing I want to point out here is the dramatic improvement over just a few years ago, when you could “upgrade” from 4 to 8 cores and see a reduction in throughput. Oracle (and Percona, and lots of others) have done great work in the last couple of years making InnoDB scale and perform better on modern hardware.

Jan
26
2011
--

Symfony Live 2011 – San Francisco Edition

The first Symfony Live conference in the US is approaching fast. In less than
two weeks, I hope to meet as much Symfony developers as possible. If you have
not done so yet, it’s not too late to
register.

Today, I want to sincerely thank all the great
sponsors we have for
this conference. As this is the first time we organize such an event in San
Francisco, I did not expect so many of them. And of course, without sponsors,
the conference would not have been possible.

First, thanks to Microsoft for hosting the
conference.

ServerGrove, P’unk Avenue,
NationalField, and Dell KACE are our silver sponsors
They all use Symfony2 and symfony to get their job done, and this is their way
to give back something to the community.

Last, but not the least, let me thank our two bronze sponsors,
PagodaBox, and
OSSCube.

Even if you cannot attend the conference, don’t forget that you can still help
us tweak Symfony2 during the
hacking days. Join us
online on the #symfony-dev IRC channel on freenode.


Be trained by symfony experts
Feb 21 Paris – Mar 02 Paris – Mar 02 Paris – Mar 14 Paris

Written by in: Zend Developer |

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com