I’m currently trying out a Digital Ocean VPS for a soon to launch Software as a Service I’m currently working on. So far I’m really liking it. The VPS (a 1GB droplet) is fast and is performing nicely.
This is also the first time I’m using Chef to provision the server. Chef is working nicely but I did had to do some manual installation and removal of specific Ruby gems. I’m still not entirely convinced about using Chef for this but that’s mostly because there’s a lot left to learn such as data bags.
My only complaint so far is that Digtal Ocean didn’t let me create a droplet (VPS) in Amsterdam. When working remotely via SSH the network latency (though only about 100ms) can get really annoying.
Aside from that I’m liking it!
Update: not long after this post Digital Ocean announced they had expanded their Amsterdam data center!
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.
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.
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.
To my surprise I hadn’t even announced here that I have recently started freelancing! As of August the 1st I now operate under the name Kras IT and am available as a freelance developer. Since it’s now the 1st of September this means I’m already in business for a month now which has been exciting. I’ve been with my previous employer for almost 7 years and after a lot of thinking and planning I decided to take the leap!
As a freelance developer you can hire me for all your PHP and Perl work. I mainly do webdevelopment but I do a lot of backend as well. Aside from that I also enjoy configuring Linux servers. I personally think being able to configure and optimize both your app and the server(s) the app is running on can be a great asset, as it gives a lot more insight in the overall workings of your software.
Aside from doing freelance work I also plan on doing product development. I’ve got a few ideas in the pipeline of which one I expect to launch within 5 months. I’m likely to blog about this in the near future as well as about freelancing and running your own business.
For a full list of skills you can take a look at my website at Kras IT. Currently the website is still Dutch only but my LinkedIn and résumé are in English. Do you’ve got any questions or are in need of a freelance developer? Feel free to contact me!
A nice gem (literally, it’s a Ruby program) I stumbled upon yesterday is called MailCatcher. Using MailCatcher you can catch all the mail that’s being sent by the app you’re developing and (re)view their contents.
MailCatcher makes this possible by running (or rather being) a simple SMTP server. All you’ve got to do is direct your app to use the SMTP server provided by MailCatcher. Mail sent with this SMTP server stays inbound so you don’t have to worry a test mail is receiving by a customer.
It also provides a neat web interface in which you can review the mails that have been sent. Aside from viewing the contents of the mail you can also do further inspection on it by taking a deeper look into the source of the mail to view headers and such.
By using WebSockets the webinterface immediately updates when a mail has been sent. You can also download the e-mail to load it up in your e-mail client. This can be useful to review HTML based e-mails to see how they render.
If you’re using Vagrant I suggest you add the port the webinterface runs on to the forwarded ports list. Also run
--http-ip 0.0.0.0 so you can reach the webinterface from the host OS.