Home » Archive by category "Programming" (Page 3)

Symfony 2 cheatsheet

A cool Symfony 2 website I ran in today is the Symfony 2 Cheatsheet by David Pérez. It sure would’ve been nice if I had this one around when I just started out with the Symfony 2 project I’m working on (which will be launching soon).

Check it out at http://www.symfony2cheatsheet.com.

Propel ORM for PHP

For the last couple of weeks I’ve have been working with Propel ORM for PHP and have really enjoyed using it. Coming from Perl I’m spoiled because it has DBIx::Class which is my ORM by choice and makes fetching data from your SQL database including relational data a breeze. Propel does a really nice job with this as well and though the API differs greatly from that of DBIx::Class I found it easy enough to pick up.

Propel nicely integrates with Symfony 2 and I’m happy with my decision to go with Propel. The alternative would’ve been Doctrine but decided against using it, mainly because of having to learn DQL (Doctrine Query Language). DQL is similar to SQL, but I liked the named methods of Propel better (e.g. filterByCampaign($object) or filterByCampaignId($id)) and in the end with Doctrine you’re still busy writing a dialect of SQL. With Propel and DBIx::Class you can still use SQL when needed (and to be honest I still find it to be a bit awkward at times in DBIx::Class but I understand why it is the way it is). I could also have looked at Zend_Db_Table from Zend Framework which I’ve used in the past but found too limiting.

All in all Propel a nice ORM library for PHP. Be sure to check it out if you haven’t already.

 

Go concurrency patterns

Golang (or Go) has had my attention for a while now. So far I’ve only played around with it for a bit and recently I decided to use it in a school project in which concurrency is required. Luckily Go has some nice mechanisms in place to take care of this such as channels and goroutines. Today I’ve found the slides Go concurrency patterns by Rob Pike and though I’d share it here.

Maximus has been taken down

As of today Maximus, the BlitzMax Module Manager, has been taken down. I’ve blogged about this some time ago and today I’ve decided it was finally time to go through with it. The website now redirects to the GitHub organization that hosts the code for the client and the website. These will still be available online of course.

So what does this mean for Maximus and BlitzMax?

  1. The Maximus client can no longer fetch the sources file from the Maximus website and thus it can no longer download modules from the website as well. You’re back to downloading and installing BlitzMax modules manually yourself. If you’ve got a Maximus webapp instance running somewhere you can however configure the client to use the sources file from there.
  2. Development on both the client and webapp had stopped some time ago, but I would still fix bugs if they popped up. With the cancellation of the hosted webapp this also means I won’t be doing any development on Maximus anymore.
  3. With the source code being available anyone is free to host their own Maximus instance. Since the webapp uses Vagrant and Puppet you should be able to get a local instance running quickly. There’s also an INSTALL file for manual installation on Ubuntu.

Developing Maximus and providing this service has been a fun ride of which I’ve learned a lot and resulted in a well crafted piece of software. I can however no longer provide the service and support it and so it’s time to move on. I want to thank everyone who has supported Maximus in any way possible. Thanks.

Google Tag Manager

Today I learned of the existence Google Tag Manager. With Google Tag Manager it becomes easier to place tags of any kind such as Google Analytics or any other tracking tag on your website and even on specific pages. All you’ve got to do is include the Google Tag Manager Javascript, setup your tags and you’re good to go.

I’ve added it to this website as well and it’s now managing the placement of Google Analytics for me.

It can of course be used for more than only Google Analytics. You could place tags to measure how many people have reached your sales page and have actually made a purchase.

You can always add these codes yourself but the added benefit from using Google Tag Manager is that it’s dynamic. No need to edit your website’s templates. Just set up a tag, define on which page(s) it must be shown and you’re good to go. It’s a nice and simple concept. Free as well.