Posts Tagged ‘atk’

ATK 5.3.RC1 released

October 25th, 2005 by Ivo

I've just released the first release candidate for ATK 5.3.

This is a release with numerous changes and improvements. You can help us stabilise ATK 5.3 by downloading the release candidate from:

http://www.achievo.org/atk/download/releasenotes/5_3_rc1

Some highlights:

  • Improved performance and reduced memory footprint
  • New debug console for tracing debug statements and debugging queries
  • Added a preliminary MS SQL driver
  • Improved atkMetaNode (see previous blog posts)
  • Recordlist caching for dramatically increased performance in admin pages
  • New attributes such as an atkLiveTextPreview
  • Direct linking feature for example for linking directly to edit pages from inside e-mails
  • New atkConfig class for easier per-module configuration settings
  • Added Traditional Chinese translation
  • Hierarchical group support in authorisation
  • Support for multiple named database connections

And many, many more fixes and improvements (you can see the complete change log on the release notes page).

Just a short note. We will be present at the International PHP Conference in Frankfurt, Germany from 7-9 November. Our booth will be located in the exhibition area near the entrance to the sessions. We'll be doing a demo of the upcoming ATK 5.3 release and the Open Office integration we're working on.

Meta Madness

October 21st, 2005 by Ivo

In the upcoming 5.3 release of ATK, there's some excellent new work on the atkMetaNode by Peter.

The atkMetaNode is the ultimate example in ATK's strive for code minimalisation. A regular ATK application has not many lines of code (essentially you just define the business logic), but the atkMetaNode brings that even more down. A simple application for managing a few tables of data can be around 1 line of code now.

There are already many libraries and scripts that turn a database into an application, mostly by generating code. The majority of them are still very database oriented, that is, they tend to be a 1:1 translation of the tables, and not very userfriendly. The atkMetaNode focusses more on the user. How an end user would want to interact with the data. Ofcourse it cannot always just 'guess' this (well, by default it does), but this is why this technology revolves around the so called 'atkMetaPolicy'. This is a class that determines the translation. You can adjust this policy to your very specific way of modelling your data. This sounds complicated, but in essence you teach ATK how to translate your datamodel to a user application. You can use different policies per table, or one smart policy for an entire database.

ATK 5.2 already had the atkMetaNode, but it could only handle simple table structures, without relations, and only worked for MySQL. The atkMetaNode in ATK 5.3 now recognizes Oracle, PostgreSQL and MySQL table structures. It recognizes 1:1, 1:N, N:1 relations between tables, and detection of datatypes has been improved. Peter also added some nifty features for translating table and fieldnames into more user friendly terms (noun pluralisation etc.).

Also, the API has become easier. Where in ATK 5.2 you had to do this:

[code]
class employee extends atkMetaNode
{
function employee()
{
$this->atkMetaNode(array("table"=>"emp"));
}
}
[/code]

You can now just do:

[code]
class employee extends atkMetaNode
{
$table = "emp";
}
[/code]

to create an admin application for employees.

Ofcourse, just

[code]class emp extends atkMetaNode {}[/code]

would've worked too as it uses the classname if no tablename is specified.

If you want to play with the meta stuff, you can download the latest ATK nightly from http://www.achievo.org/atk/download. It's a nightly but it's pretty stable as we're close to a release.

Peter also wrote a howto for the meta functionality. For questions, you can find him in the forum.

Nerd Puzzle

October 18th, 2005 by Ivo

Ok, this post has no use whatsoever, but I need to get this out of my system. I was in an incredibly dull meeting the other day, and at one point, I had on my sheet of notes 3 randomly placed dots:

 
.
 
             .
   .
 

For some reason, I don't know why, I started to wonder if there would be one or more circles that have an outline that touches these 3 dots. Yes I am a nerd (just imagine how boring the meeting was). :)

To put this puzzle in other words: is there, for any given set of 3 points, a 4th point that has an equal distance to the first 3 points?

My preliminary conclusion is that for each three points, there is exactly 1 circle that has a matching outline, unless the 3 points are positioned exactly in one line. I lack the mathematical background however to prove/disprove this in theory. I discussed this with a fellow nerd and he also concluded that there should be exactly 1 circle for each set of 3 points (as long as they are not in a straight line).

Now I'm curious. Am I right in the 'exactly 1 circle' assumption? If so, what would be the optimal way of determining the center of the circle? In other words, how would you implement:

 
/**
 * Determine the center point of a circle whose outline strikes 3 given points.
 * @param Point $a
 * @param Point $b
 * @param Point $c
 * @return Point The center point of the circle outlining point $a, $b and $c
 */
function centerpoint($a, $b, $c)
{
  ....
  return new Point($x, $y);
}
 

On to something else. The rumours of the Zend Framework are spreading quickly. I haven't been contacted by Zend so it's not going to be Zend ATK. :) I'm wondering what it is though. Whether it's anything like a business framework, or more of an IDE kind of thing, or just a set of classes providing some API.

Finally an update on ATK: we're wrapping up RC1 of ATK 5.3. It should be out real soon now.

Zend Webcast ‘The PHP Job Market’

August 12th, 2005 by Ivo

In my previous entry I already talked about how 9 of our employees already were certified, and that 3 were coming up. Right now, we have 12 ZCE's, which makes us the number 1 certified company in The Netherlands. Whoot! :-)

For this reason, Zend invited me to take part in their webcast about the PHP Job Market on august 24. I'm looking forward to it. If all goes well, there will also be a case study about ibuildings on Zend.com soon.

Some other bits of news: we've attracted 2 sponsors for the Achievo project management tool. The next few months we will be building quite some interesting features, among which finally a completion of the billing module, an Open Office export/template feature, an upgrade to ATK5 and parts of the 'task based time-registration' we've been planning for almost 2 years now.

The next release of ATK is around the corner. I've got some contributed translations to add, but besides that, the next release is almost ready.

Party!

June 26th, 2005 by Ivo

The past few days, I have had several reasons to celebrate.

Last friday, my sister Debby got married. She got married to my colleague and good friend Peter, who some of you know from his Achievo and/or ATK contributions. He's the original author of, among other things, the atkDateAttribute, the locking feature, the PostgreSQL abstraction layer and his latest achievement for ATK was the atkMetaNode. And now he married my sister. Where is the world going... ;-)

I got to be her witness, and I drove the wedding car. They both looked really nice in their wedding suits, and they had a very nice party (pictures online soon). Congratulations can be sent to debby at debby.org and peter at achievo.org. ;-)

A few days earlier, I passed my Zend Certification Exam. Although I'm not a fan of the questions in the exam (they tend to demonstrate ones ability to learn things out of a book, rather than ones ability to write good code), I'm happy that I didn't flunk it. :-)
My employer decided to get all their php developers certified. I think this will be a strategic advantage over our competition. Right now, of the 27 certified engineers in The Netherlands, 9 work at ibuildings, with 3 more colleages getting ready for their exam next week. We rule! ;-)

Zend Certified Engineer