skoop.dev

  • About
  • @skoop@phpc.social
  • Zend Studio for Eclipse

    February 12, 2008
    eclipse, ide, php, software, zend, zend studio

    I have already tried Zend Studio for Eclipse when it was still called Neon, which was the public beta of this software. I was not impressed. Aside from the fact that it was built on a platform I was far from a fan of, some key features were not yet working, things like code hinting and code completion for included libraries.

    So when the stable version came out, I was reluctant to give it another try. Given my bad experiences with Eclipse and the early beta, I postponed it, and actually kept postponing it. But eventually, after some comments from others, I decided to give it a try.

    But man, how wrong I was in waiting this long! Sure, there are still some things in the Eclipse platform that I dislike, but overall, everything that I didn’t like about the beta was fixed, and the IDE as it stands here right now is not just highly usable, it seems faster and less heavy (which is a new for Eclipse in my experience) than the previous versions of Zend Studio. And it brings some of the great advantages of the Eclipse platform (yes, they are there!) such as the great plugin infrastructure combined with the enormous amount of available plugins. I’m sure there’s a few features I don’t use as often as others that I haven’t encountered yet, so over time my opinion may change, but my first impression is really positive, and I’m quite surprised about that. When they first announced the new version would be based on Eclipse I’d have never thought I’d say this but: I highly recommend Zend Studio for Eclipse as a PHP IDE!

    Full disclosure: I am employed by a Zend Partner, but this hardly changes my opinion on things. I still prefer symfony over the Zend Framework and until recently preferred Zend Studio 5.5 over Zend Studio for Eclipse 😉

  • Backwards compatibility

    February 8, 2008
    backwards compatibility, meta

    In the article, which I recommend to every developer and especially those involved in Open Source projects, he covers the ground of why backwards compatibility can be important, why it is caused, and how to deal with it. He handles several methods of how to deal with backwards compatibility, listing pro’s and cons of that approach. An excellent read that makes you consider the code you’ve written yourself, and makes you think a bit harder about code you’re about to write.

  • Deployment as it should be

    January 30, 2008
    deployment, php, symfony

    Most web developers have a lot of focus for writing quality applications. They ensure their markup and style is displaying correctly in multiple browsers, and they focus on their code, some even write unit tests and functional tests 😉

    Additional measures are having seperate development, test, staging and production servers. Having seperate test teams. Have client tests. But all this focusses on the workings and looks of the application.

    I’ve worked for quite a few companies, and I’ve seen some methods of deploying. The worst was using ftp for deploying an application. Usually this resulted in errors as parts of the application were updated already and other parts weren’t. And especially with bigger applications, this causes problems for a longer period of time.

    Slightly less bad was deploying from version control (CVS or svn). Usually we’d make an export in a temporary place and then simply move the files to the correct position. This works pretty OK I must say, but when moving away the old version (backup!) uploaded files were also gone and so this required quite a lot of work.

    One of the options of symfony’s commandline interface is the ability to deploy applications to servers using the symfony sync command. In a configuration file, you can define a list of servers that you want to deploy to. Each server has a snippet in there similar to this:

    [production]
    host=ftp.leftontheweb.com
    port=22
    user=skoop
    dir=/home/skoop/symfony_sites/www.leftontheweb.com

    As you see, this is basically all information you need to deploy an application, aside of course from the password which you wouldn’t want to specify in a configuration file if it isn’t required. Instead, as soon as you issue the symfony sync command for this server, it will ask you for your password. There are, in the case of the above server, two commands you can issue:

    symfony sync production
    This will do a dry run, to see if the deployment of the files might cause a problem

    symfony sync production go
    This will actually send the files over to the specified server.

    Now, because the symfony sync command uses rsync, only those files that have changed are deployed to the specified server. Aside from the first deployment, in which case all files need to be sent to the server, this speeds up deployment big time as only a selection of files are transferred.

    Aside from easily transferring the necessarily files, symfony also makes sure that the files you don’t want to have deployed won’t. For this, there is the rsync_exclude.txt file. In this file is a simple list of files (which can include wildcards, so you can exclude whole directories or files with a certain naming convention) that should not be deployed. Good examples of files you’ll want listed in this file are the _dev.php development environments, your databases.yml (to ensure you don’t overwrite your database configuration with an incorrect one) and your cache and log directories (listed by default).

    Now we have transferring files covered. But database changes also need to happen as you deploy of course, because your new code will depend on those. In symfony 1.0, I personally always use batch job which can be called from the commandline. In symfony 1.1 it will be even easier, as the recommended way to do it then is to use actual symfony tasks (which can easily be written, in 1.0 already by the way).

    So, in short, deployment will then be:

    • deploy code using symfony sync
    • call the batch job/symfony task to update the database and possibly do other required stuff
    • symfony cc (clear cache) – though this could be done from the above batch job/symfony task as well

    And what is left is testing if everything went well.

    Of course, having a powerful tool such as this at your fingertips does still require you to keep your head clear and keep thinking about what you are doing, but it definitely makes it much easier and ensures you don’t have to think about everything.

  • Steer CMS

    January 21, 2008
    cms, opensource, php, steer cms, symfony

    Since I am working on quite some sites for myself, I was quite interested when I read the Steer CMS announcement on the symfony-users mailinglist. I took some time to evaluate it, specifically for symfony-framework.nl . And even though I decided against migrating to Steer CMS, I am still mighty impressed by the work the Steer developers have put into it and the product they’ve been able to present.

    Steer is highly customizable. It offers a basic and very interesting system of maintaining regular content, as well as a weblog system and event calendar. Another great idea is the idea of being able to create themes simply by having a theme be a plugin. This will make it very easy to install new themes into a website. 

    One thing though that still needs quite some work is the documentation. Granted, when you’re used to the quality and abundance of the symfony documentation, other projects will have a hard time to come near to it. Yet, the Steer documentation is still a bit limited. 

    But, it’s not that weird. Steer CMS is only available as version 0.1.0, so there’s still much coming. And given that fact, I think Steer CMS will have a big future in the open source CMS world. I am 99% sure I will use Steer at some point in the future for a website. 

  • Introduction to symfony podcast

    January 18, 2008
    php, phpabstract, podcast, symfony

    It actually is a very fun thing to do, so if you have a topic you can tell the world about, you really should contact Cal (info on this page). Anyway, back to my podcast. I am introducing symfony with this podcast, so I give a basic overview of some of it’s features and characteristics. But, why am I explaining this, while the podcast can do so much better. Check it out here!

  • Yara

    January 17, 2008
    family, personal

    It took only about 45 minutes between the first contractions and the moment Yara was born. A very very *very* short period of time, but everything went well. Yara is healthy, and a lovely baby girl. Marjolein is also doing fine, and Tomas is so far really happy with his new baby sister.

  • Flexible systems are not always good

    January 15, 2008
    dreamhost, flexibility, software

    Yes, I am talking here about the big problem over at DreamHost today , where just about every customer of theirs got billed incorrectly. The reason? Their billing application, which has been designed to be as fail-safe as possible, had been implemented in such a way that it was possible to re-bill customers as if today were a day in the future manually.

    Usually their billing and re-billing happens automatically, but over the past weeks some issues arose with recently-upgraded servers, due to 64-bit incompatibility. After fixing this, one of the DreamHost engineers decided to manually re-bill the past three weeks, except he forgot to change the 2008 to 2007 when he switched to december. Result: Nearly all of the DreamHost customers got invoiced as if today was december 31st 2008, and those that had automatic charging turned on even got charged for this! Several accounts also automatically got suspended because they hadn’t paid for too long!

    Now, there is no situation possible that I can think of in which you would want to manually re-bill clients from a future date. None at all. But I guess this wasn’t spec-ed in too much detail and the developer who made this thought “let’s make it flexible”. Obviously, it’s also the fault of the engineer doing the manual runs, but the original developer is as much at fault here in my humble opinion. Aside from using your head for the code you’re writing, also use your head to think about the functionality you’re giving to your users.

    Luckily, as a post on their weblog shows, it seems they learned their lesson. Now, all of us developers should take up a lesson from this as well. Don’t just think about your code, also consider the power you are giving to your users! 

  • The certificate is in!

    January 11, 2008
    certification, php, zend
  • The status of Symfony 1.1

    January 8, 2008
    php, symfony

    Symfony 1.1 is a (long-awaited?) new version of symfony that is under development for quite some time already. It is a first step towards a simpler, lighter and more flexible symfony 2.0 which is meant to be more explicit, and contain less “magic”.

    Even though the biggest parts of the development work on symfony 1.1 have been finished now (most notably the new form framework), there is still much to be done. Polishing up, and introducing a new feature that only recently got discussed. 

    So aside from the new form framework, which has been discussed over and over already, what else can be expect? According to the Trac milestone , the 1.1 release exists of three main changes:

    • UJS support
    • Form and validation new sub-framework
    • CLI tasks as classes

    This list is actually very much self-explaining. Support for Unobtrusive JavaScript is I think a quite often requested feature. Form and validation is something discussed in a lot of places already, and the third one I believe (but I’ve not read into this one yet) is more of a best practices change.

    Anyway, now what exactly is the status, most features are done now, right? Yes, and one could easily build an application with version 1.1 when getting it from Subversion. However, there might be changes requiring you to change your code (one last week for instance). And, quite some documentation is missing for 1.1, and to quote (I think it was) Fabien: If it isn’t documented, it doesn’t exist. So, if you know what you’re doing, or you can easily figure things out, you can start getting into 1.1, however if you’re new to symfony then stick to 1.0 for now. Also, don’t migrate your production applications to 1.1 for now 😉

  • Now it’s up to PHP5

    January 3, 2008
    php, php5

    And this is good news. I’ve quite regularly on this weblog called for a better adoption for PHP5. PHP5 is in just about every aspect better than PHP4. Unfortunately adoption has not been very good in the past. It was a bit of a chicken/egg situation, where hosting providers didn’t want the hassle of upgrading because so many of the popular PHP software was still in PHP4, and on the other end a lot of the popular PHP software didn’t want to make the jump because so many hosting providers were only offering PHP4.

    Well, guess what? Now is the time to make the jump. With more and more hosting providers offering some kind of support for PHP5, it’s now possible to make the jump. Do it! Go for it! Any serious developer won’t regret it. 

Previous Page
1 … 32 33 34 35 36 … 61
Next Page

skoop.dev

  • Bandcamp
  • Mastodon
  • Bandcamp