January 2009 Archives

Everyone who is using a relational database and has a good concept, meaning a loose coupling and a low redundancy of the data, needs from time to time complex/multipart queries in (My)SQL.
Zend Framework is supporting relationships within the Zend_Db class, which are quite nice implemented. But there is one big restriction: You need a concrete row to access the dependent rows declared in the model. For larger queries, e.g. for an overview or a list containing multiple rows, the relationships can be built with different solutions. All in all, I have found three different ways of establishing the relationship for one concrete row:

  1. Build a View Helper (or a function) an run it on every row.
  2. Use the Join-Command within Zend_Db_Table respectively Zend_Db_Select.
  3. Run complex queries constructed in SQL-Language over Zend_Db.

Previous to an example of the last method, I want to discuss some Pros and Cons of the presented solutions.

View Helpers
The View Helpers are a nice solution. The function can be designed for re-usability and the Helper itself can be registered with the bootstrap for the usage within of all modules.

The clear disadvantage of this solution are the many queries needed for the multiple entries. Theoretically do you need for every entry one query. Which is not a big problem as long as you do not have a lot of queries at the same time. But if the application grows and your server gets some traffic you will get problems.

Join-Command
The Join-Command is a stronger method, since you need only one query to find the results for all rows. This reduces the load on your server and makes it easier to handle the request, since you have only one variable to deal with. Additionally this methods allows you to stay within the methods of the framework and thus having a consistent solution.

But there are some technical difficulties and problems with this method. You can only use it, if you want to use exactly 2 different tables. More than two are not allowed or at least have not worked for me (Version 1.7.2) and the query returned an error message, that the requested columns could not be found.

SQL-Statements
This method offers you the biggest flexibility, because you have no restraints from the framework and can work as usual known.

But you need some knowhow and may be not consistent with the framework. Additionally the queries can become very large and thus make your system slow as well.

I have already written here about the Dojo Editor. Generally this is a nice and clean Rich Text Editor (RTE), but with some deficits in the standard configuration. Two examples to this point: First the inserting of URLs respectively links is not enabled by default and second the inserting of images is not enabled either.

But this two options can be enabled quite easy. You can see a nice example of a quite good configured editor on this page here. The corresponding article for the how to is found on the page of rubicorp.com

Skype_Logo_middle.png

The new year brings a new version of the internet telephony software Skype to the users of Macs. The version has brand new features, only available so far for Mac. As soon as I did hear from this, I had to download the new version, which is now available as Public Beta.

The new features are actually two, but I could have tested only one for now. To name it, the first innovation is called "Skype Access" and enables the users of Skype to access WiFi spots around the world. So far this should be over 100'000. I do not have to say, that you can pay the access via your Skype Credit.

The second innovation, now exclusive for Mac users, is the new built in Screen Sharing, which is actually only a desktop presentation. Anyway a great thing for us, since we to use until now plugins for screen sharing, such as the Yugma Team Collaboration.

Skype_28_Mac_Toolbar.png

brain-small.jpg The first post in this year is about digital identities in the internet and the threats upon the privacy of internet users imposed by changes in the structure of our digital society. It is based on a seminar paper for the course "Digital Technology and Society" at the University of St. Gallen. You will find the paper at the end of this article for the download.

But first of all a little overview on the topic. The IT-magazine iX (german) has had an issue on this social networks and presents on the homepage a rich collection of links to this topic.

First of all, we need to know what digital identities are. Everybody talks about the digital identity management and in connection to this, there is another buzzword: social engineering. Since many internet users have multiple accounts and profiles on different so called social communities, a digital identity is, at least for me, the sum of all available data to one human being available on the internet. Specialised search engines around the topic of persons and/or names have been popping up in the recent years (e.g. Yasni).