ORM Designer

Here is a tool that might help you with your MVC framework, like CakePHP, Symfony, and others – ORM Designer.  In essence, it is a graphical user interface for drawing a visual representation of your project (such as an Entity Relationship Diagram (ERD)) and than converting it into the code.  You can specify which framework and which  ORM you want to use and it will generate the appropriate bits and pieces.  What’s even more interesting is that it has import functionality, which means that you can start using it with an existing project.  Here is the video that shows and explains more.

[youtube=http://www.youtube.com/watch?v=FNlmU6zX5Ug]

Of course, I got excited about it, downloaded and installed.   Two things that disappointed me were:

  1. It’s a native Windows application, which runs on Linux through the wine emulator.  While it works fine, I’d much prefer a native application that I could integrate with the rest of my development environment.
  2. CakePHP import is not supported at this time.

Other than that though, it looks very promising.  I’ve seen quite a few applications that help with database design, and ORM Designer stands well in that row.  You can create entities, define fields, specify indexes, and associate entities with each other using relationships.  Many-to-many relationships are supported, as are entity inheritance.  While inheritance does make it for a bit more complicated structure of the project (with app/models/base/ folder for CakePHP), it’s very nice to have such support for bigger, more complex projects.

The project is commercial, with a 14 days evaluation version available for download. If you like it enough to buy, the price is very reasonable – 99 EUR per license.

Try and see if you like it, and provide some feedback to the guys who are developing it.  ORM Designer has all the chances of becoming an extremely useful tool and since it is still in its early development, your feedback would be of the most value.

Shell keyboard shortcuts

I came across a very useful post with the listing of many shell keyboard shortcuts.  The article covers a mix of bash, csh, zsh, and Cisco shell keyboard shortcuts.  The article is in Russian, but I think it will be helpful for more people, so I took the liberty to translate it.  Continue reading for the translation.

Continue reading Shell keyboard shortcuts

On Linux philosophy

Here is a brilliant passage from an article “Too Smart for Git“:

Git follows Linux’s philosophy of refusing to protect you from yourself. Much like Linux, Git will sit back and watch you f*ck your sh*t right up, and then laugh at you as you try to get your world back to a state where up is up and down is down. As far as source control goes, not a lot of people are used to this kind of free love.

Excellent!

On complexity

Sometimes I find wisdom in the most unexpected places.  Not that Matt’s blog is such a place, but I wasn’t expecting to find anything that enlightening in the comments to such a simplistic blog post – about centered backgrounds for Twitter.  The quote that I think more people should know is:

it’s hard to anticipate the complexity of something you didn’t write

Here is a beautiful screenshot for too.

A few times I found myself in the situation that I couldn’t even explain the complexity of a change that seemed so simple from the outside.  And for some time now, when I hear the question “Why can’t they just do it? It’s so simple”, I have the answer ready – “They probably have more than one good reason for not doing it”.