Introducing YippieMove '09. Easy email transfers. Now open for all destinations.

Since Playing With Wire switched to WordPress, we’ve had categories. Two months have passed since then and we now have a couple of ideas about how to make our categories work better for you readers.

So today’s we’re introducing these two changes:

Fewer Categories
We want our categories to be like ‘channels’. If you want, you can tune in on our ‘Business channel’ for all the Business related stuff we do. Or you can check out the latest we’ve got on Open Source. But when you thought about it this way the question that immediately came up was: why do we have three channels with unspecified content? We didn’t know either so we’ve taken ‘Other’, ‘Generic’ and ‘Uncategorized’ and combined all of them into a single section: Other.

New How To’s Category
After removing two channels, we decided to go ahead and add one too. Turns out we’ve written quite a few guides about this and that. Now you can read them all by heading over to our How To’s and Guides category. Enjoy!

Author:
Introducing YippieMove '09. Easy email transfers. Now open for all destinations.

The record and movie industry has expressed a lot of concern about copyright infringement lately. In the ideal world, these organizations would argue, anything ever made by any of their members would be forever copyrighted. Since they own this information, or ‘intellectual property’, nobody should be allowed to reproduce it without their explicit permission.

I have to say I agree absolutely. Without this form of protection, there would be no culture at all. Copyright is an essential part of society. What does distress me though is the laissez-faire attitude even these organizations have when it comes to enforcing this fundamental right of artists and creators in the world. While RIAA and MPAA have a lot of opinions they do not seem to walk the walk. In particular, there is a special copyright infringement technique through which perpetrators are virtually unhindered to reproduce materials without paying for this privilege. To any reasonable person it must be obvious that this is an unmaintainable situation. If I write a book, a blog entry, create a piece of music, or design a game, I should be allowed to reap the benefits of the hard work I put into these pursuits. If anyone coming into contact with this information product would be allowed to copy, retain and spread my product, they would be depriving me of a basic right to my own work. They would in fact be stealing my work.

In many cases these organizations do protect us artists. They will prosecute thieves of physical goods; they will sue criminals engaging in blatant copyright infringement online and elsewhere. But for some reason which I cannot fathom, they let one of the most commonly used techniques for copyright infringement today go unpunished.

What I am referring to is of course the theft of intellectual property by people with eyesight.

Without any enforcement whatsoever of applicable laws, these individuals are unhindered to make unlimited copies of any material they come across by using the technology of ‘bio copying’ – also known as ‘remembering things’ in layman terms. Even now as you read this, there are less scrupulous people also reading this very blog entry. And as opposed to you, dear reader, these users are at the same time storing the data for later reproduction using extremely sophisticated neural networking technology. At a later time these ‘pirates’, as they are known, will be able to freely reproduce important concepts, ideas or industrial secrets expressed in this entry.

And to my amazement nobody goes after them. “But it’s too hard to suppress this behavior,” it is argued. This statement holds no water with me. We can lock down computers with Digital Restrictions Management (DRM). We can shut down whole companies for producing software or hardware which enable copyright infringement. We can spend millions of tax payer dollars on hunting down illegal information trading. We can even impose economical sanctions on countries with too liberal copyright laws.

Surely this one problem should then be easy to resolve. A small modification of today’s neural networking systems should suffice; perhaps a little chip in the bio copying devices. The chip would prevent access to Stored Intellectual Property – also sloppily referred to as ‘memories’ – without proper authorization and correct dues paid. If that doesn’t work, we can just go after the producers (colloquially called ‘pregnant women’) of this technology. Strict laws, lawsuits and legal enforcement will stem this crime wave at the root.

Support culture – don’t remember illegally.

Author: Tags:
Introducing YippieMove '09. Easy email transfers. Now open for all destinations.

Ever tried to write a web page and make it work in all major browsers?

In this video I make a change to Cuzimatter. Then I test it in Safari, Firefox, Internet Explorer 7 and Internet Explorer 6 in a row. Warning: trying this at home may melt your RAM chips. And your brain.

What’re we looking at?

It’s the fix of a spelling error in our Cuzimatter, which by the way is written using symfony. The software used is TextMate to edit, Virtue Desktop to do virtual desktops, and two instances of Parallels – one running Windows XP and the other running Windows Vista in Coherence mode.

We wrote a slightly negative article about Parallels last week, but we gotta hand it to them. They write some pretty solid virtualization software.

Music is Marooned by Zale. This video is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

Author: Tags: , , ,
Introducing YippieMove '09. Easy email transfers. Now open for all destinations.

Here’s a little trick we’ve been using for a long time here at Playing With Wire. Virtual desktops. The idea with a virtual desktop is that it’s like having multiple monitors, except that you don’t have multiple monitors. Instead you have several ‘spaces’ or separate desktops and you can go to them very quickly.

The only way we can really explain how amazing this is is by video (Flash Required):

As you can see I went from checking out Playing With Wire in Safari, to iTunes and then back over Safari and on to to an entirely clean desktop where I could have launched the next program I needed.

Why is this useful? Well, imagine if you’re a person who likes to work in more than one application at the same time (lets face it, that’s pretty much everyone). Well before, you might have been forced to minimize your applications or leaf through them using Exposé in order to go from one to another. With virtual desktops each application can have its own space to live in, and you can get there in the blink of an eye.

Not only does this make us so much more productive, but it also garners plenty of ‘ohhs’ and ‘ahhs’ from our impressed friends. It’s just plain cool to spin to a different desktop as you work. On one desktop I’ll have Safari, perhaps composing my latest Playing With Wire post. On the other desktop I’ll have iTunes. When I want to switch to another track, I can go to the desktop with iTunes and I don’t even have to reach for my mouse. It’s computer wizardry at its best.

Where’s the magic?

A little app called Virtue Desktops. If you have a Mac without an enormous screen you need to have this software. It’s productivity and style in one.

Author: Tags: ,
Introducing YippieMove '09. Easy email transfers. Now open for all destinations.

Picture of The Definitive Guide to symfony.Symfony is a PHP web development framework, similar to Ruby on Rails. The framework is currently gaining in popularity; a few months ago it was announced that it is used by Yahoo! Bookmarks, for instance. Recently, version 1.0 of symfony was released. A print manual, “The Definitive Guide to symfony” by François Zaninotto and Fabien Potencier, was prepared in conjunction with this major update of symfony.

As the title suggests, the Definitive Guide to symfony is a guide book. Every chapter explores a certain component or part of symfony, ordered in such a manner that someone who hasn’t touched symfony before can easily get started. The book is not a tutorial; even that the chapters are sensibly ordered, the book does not take the reader through the process of developing an application.

The sections of the guide are,

  1. The Basics: An introduction to symfony, who made it and why, and a primer to the underlying technologies used by symfony including PHP itself. Later chapters in the first part delve into an overview of how symfony works and how to set up an application in the framework.
  2. The Core Architecture: This part of the book is essentially a description of the MVC pattern and how it is employed in symfony. The chapters talk about how the Control, View and Model layers work in symfony.
  3. Special Features: If the previous parts are about the foundation of symfony, the Special Features part of the book is really about the bells and whistles of the framework. The routing system, the form helpers, Ajax, caching and internationalization are described here.
  4. Development Tools: A description of the tools and mechanisms in symfony used during the development tools, just like the name would imply. Generators, unit testing and other important tools are described here. Towards the end there is an oddly placed chapter about extending symfony.
  5. Becoming a symfony Expert: This is a very interesting section which gets into performance optimization for symfony. The authors pool some very valuable practical experience about deploying symfony applications into this part of the book.

The book places almost no requirements on the reader. Obviously you will need to know PHP 5, but apart from that the book carefully introduces almost every concept used in the framework. At the same time I don’t think that a more experienced programmer would find the hand-holding excessive – the 450 or so pages went by quickly when I read the book, and I have worked with symfony before.

The book also features a good selection of sample code and examples. This is in line with the general pragmatic feeling of the book. There is no key concept left without an illustrative code sample. Anyone who has worked with symfony and its developers before will recognize this. The official website is absolutely brimming over with code samples, and Mr. Zaninotto in fact even wrote ‘snipeet’, a code snippet repository. The book is right in line with this demonstrate-by-code philosophy.

The book has some shortcomings. The chapter about Generators feels incomplete for one. Ostensibly the chapter is about the automatic generation of code, called scaffolding, that is a common feature for many modern web development frameworks. This kind of generation makes it faster to develop web applications since it creates a foundation (hence the term scaffolding) for building the web application. But the Generators chapter is really hijacked by the automatic admin generation feature of symfony. While this is a very powerful and impressive feature, the very strong focus on this feature may leave the reader wondering about the ordinary, non admin, scaffolding functionality. For example, it is not at all clear how to customize what generated scaffolding should look like. With such a lengthy description about how to customize the generation of the admin interface, the omission of a corresponding general section is conspicuous.

(For the record, this is how to theme or customize the generated scaffolding:

  1. Copy the default theme from

    $sf_symfony_data_dir/generator/sfPropelCrud/default/theme

    to

    data/generator/sfPropelCrud/default/theme

  2. Edit the files in data/generator/sfPropelCrud/default/theme/templates as you would with an admin template.
  3. Generate like usual: symfony propel-generate-crud <app> <module> <base>.

The generated code will be built to specification.)

Another shortcoming of the book is that there are a few instances of bugs in the provided source code. It might have been useful if the authors had taken a day to test-run their code. For example, in the database section, page 156, the following sample databases.yml listing can be found:


all:
  propel:
    class:                sfPropelDatabase
    param:
[...]
      encoding:           utf-8     # Default charset [...]
[...]

When I tested this code I got an error message: Unknown character set: 'utf'. Turns out that “utf-8″ is not the correct identifier – “utf8″ is correct.

These shortcomings are minor though. A few typos are to be expected, and with so much to cover omissions may accidentally be made. All in all the book is a friendly and pragmatic one. The material is described in a light and fluffy way – there is no ‘academic’ dead weight or terse theoretical descriptions, but rather a hands on description about what symfony programming is like. The book can be used both as a primer and as a reference for a person who is not yet a symfony expert.

If you want to know more about the book, you can actually finds its whole contents online. At the time of this writing, the online edition is available at The Definitive Guide to symfony. This is very generous and a great aid when you want to quickly search for something. Curiously enough Apress, the publisher of the book, has a full page ad for an eBook version in the print edition. They charge $10 for this pleasure, which is a bit odd.

Update 1: The original article credited Mr. Potencier with the Snippeet application. Snippeet was in fact written by Mr. Zaninotto. I apologize for the mistake.
Update 2: Jason Gilmore, the book’s editor, wrote to let us know that Apress sells the $10 ebook as an additional means to support GFDL work. Take a look at the comments section below for the full clarification.

Author: Tags: , ,

© 2006-2009 WireLoad, LLC.
Logo photo by William Picard. Theme based on BlueMod © 2005 - 2009 FrederikM.de, based on blueblog_DE by Oliver Wunder.
Sitemap