<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jansch.nl &#187; ajax</title>
	<atom:link href="http://www.jansch.nl/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jansch.nl</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Sun, 31 Jul 2011 14:58:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>My First Mashup</title>
		<link>http://www.jansch.nl/2007/07/27/my-first-mashup/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-first-mashup</link>
		<comments>http://www.jansch.nl/2007/07/27/my-first-mashup/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 11:33:44 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[cal]]></category>
		<category><![CDATA[dpc]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[frekfly]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[webservices]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=641</guid>
		<description><![CDATA[I have been inspired by Cal Evans' mashup experiment, which he did a presentation on at the Dutch PHP Conference last month. Also, I was annoyed with having to consult many different resources when I plan a business trip. So I began building frekfly, my own little mashup. Version 1 The first version, which took [...]]]></description>
			<content:encoded><![CDATA[<p>I have been inspired by <a href="http://www.calevans.com">Cal Evans'</a> <a href="http://www.myfirstmashup.com/">mashup experiment</a>, which he did a presentation on at the <a href="http://www.phpconference.nl">Dutch PHP Conference</a> last month. </p>
<p>Also, I was annoyed with having to consult many different resources when I plan a business trip. </p>
<p>So I began building <a href="http://www.frekfly.com">frekfly</a>, my own little mashup.</p>
<p><b>Version 1</b></p>
<p>The first version, which took me only a few hours to built, offered only a google map, basic weather information, flickr images and currency conversion. To built this, I used the following tools:</p>
<ul>
<li>PHP5's Webservices API, which made it possible to consume webservices with only very few lines of code.
<li>The <a href="http://www.flickr.com">Flickr</a> API to retrieve images
<li><a href="http://maps.google.com">Google Maps</a> for the map display
<li>Some <a href="http://www.webservicex.com">webservicex</a> services, for weather, geographical and currency information.
<li><a href="http://framework.zend.com">Zend Framework</a>, mainly for its Zend_Service_Flickr class, which makes consuming the flickr rest service easy.
<li><a href="http://www.achievo.org/atk">ATK</a>, for its debugging console and file-caching.
</ul>
<p>It's really easy to construct an application like this in PHP, given that a few lines of code give you access to any available webservice. The first version of the app did not even use a database, everything was retrieved from webservices and cached in files.</p>
<p><b>Version 2</b></p>
<p>Then, I wanted more. When I travel for work, I usually need hotels that are located close to the airport, so I looked for a webservice that could provide me with hotel information. I requested access to the API at <a href="http://www.expedia.com">expedia</a>, but they have a manual approval process and I'm still waiting for a response. Luckily the people at <a href="http://www.booking.com">booking.com</a> were a lot more helpful and they provided me with an iframe based interface to their hotel reservation engine, and they even styled their pages according to the design (well ok, that's not really a design yet, is it <img src='http://www.jansch.nl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) of frekfly. </p>
<p>The only thing missing from their API was the ability to search by latitude and longitude, which was my close-to-the-airport criterium. However, they kindly send me a dump of their hotel database including the coordinates. </p>
<p>So in version 2 I had to add a database, and I used the database abstraction layer of ATK to easily access it.</p>
<p>Version 2 is what is <a href="http://www.frekfly.com">currently online</a>. I may post some code examples of the webservice interfaces later on, because I found this to be a very instructive experience.</p>
<p><b>Future plans</b></p>
<p>In the next version, I want to add other nifty web-two-point-oh features to the site, including the ability to have visitors enter comments and details, so they can help complete the airport information. (such as 'are there better restaurants before or after security?'). Here I plan to use the JSON functionality of Zend Framework, to make this very 2.0-ish.</p>
<p><b>Issues to deal with</b></p>
<p>One of the major disadvantages of mashups is the fact that you're dependent on external systems. At night, the site is hardly usable because webservicex is very busy at that time and gives a lot of timeouts. Of course, this is countered by caching, but I can't cache every output for every airport on the planet, so caching is based on a 'retrieve the first time its needed' approach. So that's a disadvantage at this point.</p>
<p>Another interesting issue you have to deal with when writing mashups is standardization in naming, or rather, the lack thereof. For example, I consult 2 different webservices and a few file based airport resources to get airport information, but each of them use different names for the same airport. Where possible, I use the official 3-letter IATA code, but some of them do not support that. </p>
<p>So instead of actually matching data from different sources, you have to use a more probabilistic approach, where you say "hmm, 'Schiphol Airport Amsterdam' and 'Amsterdam, Schiphol' are probably the same airport. </p>
<p>I had a similar issue with the weather service; it doesn't support latitude and longitude, so what it does is 'guess' what the nearest weatherstation is, based on the airportname, the nearest town name, the biggest city close to the airport and finally the country capital if all else fails.</p>
<p>These are all issues to deal with in a mashup-based application, and I would encourage everyone to built a mashup at some point, because it teaches you things that you don't usually encounter with standard mysql+php based websites.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2007/07/27/my-first-mashup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ATK6 released</title>
		<link>http://www.jansch.nl/2007/06/12/atk6-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atk6-released</link>
		<comments>http://www.jansch.nl/2007/06/12/atk6-released/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 08:45:49 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=621</guid>
		<description><![CDATA[Today it's exactly one year since ATK 5.6 was released. So the new release was long overdue. It's finally here, along with a new website which has a lot less fuzz, and is more to the point. The changelog is a whopping 1056 lines. This translates to rougly 300 changes for this release. We might [...]]]></description>
			<content:encoded><![CDATA[<p>Today it's exactly one year since ATK 5.6 was released. So the new release was long overdue.</p>
<p>It's finally here, along with a new website which has a lot less fuzz, and is more to the point.</p>
<p>The changelog is a whopping 1056 lines. This translates to rougly 300 changes for this release. We might say this is a new generation, which is marked with a new major version number, and a new default layout. And it finally has ajax support (the way you are used to in ATK: add a flag to add autocompletion to a field, add one line of code to make things refresh on the fly). Most of you have been using the nightlies for months now, so this may not be new for you, but many companies are still using 5.6 for their apps. </p>
<p>The new release can be <a href="http://www.achievo.org/atk">downloaded here</a>.</p>
<p>Given the amount of changes, upgrading might not be trivial. Consult the <a href="http://www.achievo.org/forum">forum</a> if you need help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2007/06/12/atk6-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATK 5.6.0 released</title>
		<link>http://www.jansch.nl/2006/06/12/atk-560-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atk-560-released</link>
		<comments>http://www.jansch.nl/2006/06/12/atk-560-released/#comments</comments>
		<pubDate>Mon, 12 Jun 2006 20:02:08 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=411</guid>
		<description><![CDATA[We've just released ATK 5.6.0, the next stable version of the Achievo ATK framework. The new release can be downloaded here. This release contains over 140 changes and improvements. Some highlights of the changes since ATK 5.5: 5 new attributes, from a simple attribute for manipulating URLS to a flexible calculator that can add columns [...]]]></description>
			<content:encoded><![CDATA[<p>We've just released ATK 5.6.0, the next stable version of the Achievo ATK framework. The new release can be <b><a href="http://www.achievo.org/atk/download/releasenotes/5_6_0">downloaded here</a></b>.</p>
<p>This release contains over 140 changes and improvements.</p>
<p>Some highlights of the changes since ATK 5.5:</p>
<ul>
<li>5 new attributes, from a simple attribute for manipulating URLS to a flexible calculator that can add columns containing arbitrary calculations of other attributes, and a generic attribute that can turn any other attribute into an internationalised data field.</p>
<li>A new 'shuttle' relation for easy selection of records in many-to-many relationships.
<li>2 new themes, 'macoslike' and 't3skin'. The latter creates a Typo3 4.0 look for ATK, useful for integrating ATK applications into a Typo3 environment.
<li>An AJAX based generic data structure search functionality.
<li>An atkMessageQueue for relaying messages to the user.
<li>Many API enhancements (new methods, new features and new flags)</ul>
<p>And many more fixes and improvements. The complete change log can be found on the <a href="http://www.achievo.org/atk/download/releasenotes/5_6_0">release notes page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/06/12/atk-560-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Achievo 1.2.1 release and ATK news</title>
		<link>http://www.jansch.nl/2006/05/30/achievo-121-release-and-atk-news/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=achievo-121-release-and-atk-news</link>
		<comments>http://www.jansch.nl/2006/05/30/achievo-121-release-and-atk-news/#comments</comments>
		<pubDate>Tue, 30 May 2006 19:12:36 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[achievo]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[epointment]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=391</guid>
		<description><![CDATA[My decision to hand over project maintenance of the Achievo project has turned out to be a good one. Since Sandy took over, we've had 3 new releases. A first release candidate for Achievo 1.2 was out when he was at the helm hardly one month, and yesterday, he released Achievo 1.2.1, which contains several [...]]]></description>
			<content:encoded><![CDATA[<p>My decision to hand over project maintenance of the <a href="http://www.achievo.org">Achievo</a> project has turned out to be a good one.</p>
<p>Since Sandy took over, we've had 3 new releases. A first release candidate for Achievo 1.2 was out when he was at the helm hardly one month, and yesterday, he released <a href="http://www.achievo.org/download/releasenotes/1_2_1">Achievo 1.2.1</a>, which contains several important bugfixes for the 1.2 branch.</p>
<p>I've had several remarks from users who were 'glad the project was apparently still alive after months without a release'. I think the project would've died prematurely if Sandy hadn't taken over.</p>
<p>As a result of the takeover, I was able to finally take the time to do some other things I've been planning to do for a while now. I've written a <a href="http://www.achievo.org/forum/viewtopic.php?t=1134">Typo3 ATK bridge</a> that makes it possible to develop Typo3 backend modules in ATK. This reduces Typo3 backend modules from hundreds of lines of code to the minimal amount of coding we're used to from using ATK. This extension is currently being tested internally and will be released with a howto soon.</p>
<p>Also, I'm finishing up ATK 5.6. It contains some interesting new features, among which is an atkCalculatorAttribute for arbitrary calculations on fields and an atkMlWrapper which can turn any attribute into an internationalised field (sponsored by our friends at <a href="http://www.zicht.nl">Zicht</a>). ATK 5.6 should be out within 2 weeks.</p>
<p>Finally I've been spending a lot of time on <a href="http://www.epointment.com">epointment.com</a>. We're finally getting somewhere with the features we need. I will be writing a 'syncing Achievo with epointment.com' howto soon. Although at its current state, we have a lot of competition from <a href="http://www.google.com/calendar">the big guys</a>, we're seeing quite an amount of interest from Dutch people (probably because Google Calendar only has an English interface at the moment), so we're coming along nicely. We're also talking to the guys from <a href="http://www.markthisdate.com">MarkThisDate</a> for cooperation (open standards rule!).</p>
<p>The largest benefit for ATK will be that we're pushing the development of the Ajax functionality in the framework. In ATK 5.7 (which might become ATK 6) you can expect a lot of (optional, ofcourse) Ajax powered functionality such as autocompletion and Partial Page Rendering.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/05/30/achievo-121-release-and-atk-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Web 2.0 &#8211; Welcome to the future</title>
		<link>http://www.jansch.nl/2006/05/11/the-web-20-welcome-to-the-future/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-web-20-welcome-to-the-future</link>
		<comments>http://www.jansch.nl/2006/05/11/the-web-20-welcome-to-the-future/#comments</comments>
		<pubDate>Thu, 11 May 2006 23:30:17 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=381</guid>
		<description><![CDATA[Tobias today had a post about the term 'Web 2.0'. He's not the first to disagree to using the term, but I feel that Web 2.0 is not about technology, it's a movement. So I felt compelled to write a reply to his post. Since the comment got rather lengthy, and expresses my opinion about [...]]]></description>
			<content:encoded><![CDATA[<p>Tobias today had <a href="http://schlitt.info/applications/blog/index.php?/archives/453-The-Web-2.0-misery.html">a post</a> about the term 'Web 2.0'. He's not the first to disagree to using the term, but I feel that Web 2.0 is not about technology, it's a movement. So I felt compelled to write a reply to his post. Since the comment got rather lengthy, and expresses my opinion about Web 2.0, I thought it would be appropriate to post the comment on my blog as well. Here's Tobias' point:</p>
<pre>'So, please, stop that stupid "Web 2.0" term. It simply sucks.'</pre>
<p>And here is my reply:</p>
<p>I disagree. Technically, you're correct. Yes, the technology has been around much longer, and yes, the web technically consists of hypertext and other technologies. </p>
<p>But that is not what Web 2.0 is about. Web 2.0 is a movement, not a technology. It is the next generation of the internet. It is much broader than the set of technologies it is built upon. </p>
<p>For starters, it is the difference between the early, mostly static, web that was just a way of presenting information in various ways, and the new, more interactive, collaborative, way to deal with information on the web.</p>
<p>And it's not just about Ajax. It's also about how sites like Flickr, del.icio.us and digg.com thrive and make the web to the collaborative experience it currently is. </p>
<p>It's also about how RSS and podcasts provide new ways of distributing information. </p>
<p>In many ways, the web is growing up. What better techie-term to apply to that than 'Web 2.0'? If you ask me, the term fits perfectly.</p>
<p>Also, it's not about marketing. The best 'web 2.0' sites hardly do marketing. They grow because their communities embraced them for what they provide, for their usefulness.</p>
<p>Was the renaissance bullshit because paints and brushes already existed years before? No. So the fact that the technologies that make up Web 2.0 are older than the realisation that we're moving in a new direction does not make Web 2.0 bullshit either. </p>
<p>It's evolution. </p>
<p>It's combining existing technologies in creative ways and making them work in a way beyond what their inventors had thought of.</p>
<p>So please, stop the 'the web 2.0 is bullshit because the technologies already existed for years' bashing and start to realize that the internet *IS* evolving and maturing to a degree where we can truly speak of a 'next generation'.</p>
<p>We're all already a part of it, whether we want to or not. </p>
<p>Welcome to the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/05/11/the-web-20-welcome-to-the-future/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New ajax powered smart search functionality in ATK</title>
		<link>http://www.jansch.nl/2006/04/16/new-ajax-powered-smart-search-functionality-in-atk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-ajax-powered-smart-search-functionality-in-atk</link>
		<comments>http://www.jansch.nl/2006/04/16/new-ajax-powered-smart-search-functionality-in-atk/#comments</comments>
		<pubDate>Sun, 16 Apr 2006 09:42:01 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[peter]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=361</guid>
		<description><![CDATA[Together with comunication firm Effectiv we developed a marketing tool for Cirque du Soleil in ATK. For this application, we needed a better way to search through the myriad of data in their database. Peter solved this by adding a new nifty Ajax powered search functionality to ATK, that can be used to traverse all [...]]]></description>
			<content:encoded><![CDATA[<p>Together with comunication firm <a href="http://www.effectiv.nl">Effectiv</a> we developed a marketing tool for <a href="http://www.cirquedusoleil.com">Cirque du Soleil</a> in ATK. For this application, we needed a better way to search through the myriad of data in their database. Peter solved this by adding a new nifty Ajax powered search functionality to ATK, that can be used to traverse all data, following relationships and exposing the entire database through a single interface.</p>
<p>An example of the type of searches that a user can do: 'show all employees that work in a department whose manager lives in a city that has at least 10.000 inhabitants'. </p>
<p>This functionality is available in the current <a href="http://www.achievo.org/files/nightly/atk-main-branch-latest.tar.gz">nightly build</a>. (This contains only the atk subdir, if you don't have an ATK app already, download the <a href="http://www.achievo.org/atk/download">sample application</a> first.)</p>
<p>Here is a screenshot:</p>
<p><img src="http://www.oeli.org/smartsearch.jpg" alt="screenshot"></p>
<p>In this screenshot, I am looking for all employees whose manager is 'ivo', and that work in a department which is currently hiring. (this is taken from lesson 3 of the demo application)</p>
<p>In ATK tradition, to enable the functionality you need only one line of code. Just add the following code to any node (constructor or action_admin override):</p>
<pre class="php"><span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">setExtendedSearchAction</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'smartsearch'</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>(Note1: if you do not have AF_SEARCHABLE attribs, make sure you set NF_EXTENDED_SEARCH to force display of the search bar. Note 2: in a future nightly this will be even easier through the use of a new NF_SMART_SEARCH flag)</p>
<p>Now, click the 'extended' link in your application's search bar to get the new search.</p>
<p>Another neat feature is the possibility to save and load sets of search criteria. To enable this, you need to have the atk_smartsearchcriteria table:</p>
<pre class="sql">&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> atk_smartsearchcriteria
<span style="color: #66cc66;">&#40;</span>
  nodetype VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,
  name VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,
  criteria TEXT <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,
  <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span>nodetype, name<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p>Peter did a great job with this feature. I think this opens the road for advanced reporting functionality in ATK.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/04/16/new-ajax-powered-smart-search-functionality-in-atk/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Love at first sight / PHP Conference Wrapup</title>
		<link>http://www.jansch.nl/2005/05/05/love-at-first-sight-php-conference-wrapup/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=love-at-first-sight-php-conference-wrapup</link>
		<comments>http://www.jansch.nl/2005/05/05/love-at-first-sight-php-conference-wrapup/#comments</comments>
		<pubDate>Thu, 05 May 2005 14:08:27 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=91</guid>
		<description><![CDATA[Love.. I fell in love. I was doing some post-conference reading this morning, and came across SAJAX. A wrapper that makes AJAX extremely easy. I'm going to experiment with this. If it works in the common browsers, I'm going to put it in ATK. Dynamic contents for listattributes, recordlist paging without reload, frameless application with [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Love..</strong><br />
I fell in love. I was doing some post-conference reading this morning, and came across <a href="http://www.modernmethod.com/sajax/">SAJAX</a>. A wrapper that makes <a href="http://www.ajaxmatters.com/">AJAX</a> extremely easy.</p>
<p>I'm going to experiment with this. If it works in the common browsers, I'm going to put it in ATK. Dynamic contents for listattributes, recordlist paging without reload, frameless application with dynamic menu loading, I think the possibilities are endless, or, as is the slogan at Ibuildings, 'even the sky is no limit'.</p>
<p><strong>Conference wrapup</strong><br />
The <a href="http://www.phpconference.com">PHP Conference</a> was nice. The second day had a lot less traffic than the first, but we still had some nice conversations. Several people came around for a second chat about ATK or more questions.</p>
<p>One of the features that people particularly liked in the demo, was Peter's <a href="http://www.achievo.org/docs/atk/latest/atk/atkMetaNode.html">atkMetaNode</a>. The one-line employee admin mini application came down to:</p>
<p>[code]<br />
class employee extends atkMetaNode<br />
{<br />
function employee()<br />
{<br />
$this-&gt;atkMetaNode(array("type"=&gt;"employee", "table"=&gt;"lesson1_employee"));<br />
}<br />
}<br />
[/code]</p>
<p>(Ok, that's 7 lines, but I only count the ones that matter <img src='http://www.jansch.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>This was a very nice part of the demo, after first showing off with the 10 line demo. <img src='http://www.jansch.nl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  I should encourage Peter to finish his howto on the metanode. Sandy already created a 'lesson6' about the atkMetaNode for inclusion in the ATK demo application.</p>
<p>Near the end of the day, I had a short chat with IBM's <a href="http://coffeecode.blogspot.com/">Dan Scott</a>. He suggested adding IBM DB2/Cloudscape support to ATK. It shouldn't be too difficult. I'm thinking about setting up a test server to create the drivers. atkDb2Db should not be hard to create, and creating an atkDb2Query for the SQL query abstraction would require some experimenting, but sounds doable. It might bring us a whole new set of users, and give DB2 users an easy way to start a web application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2005/05/05/love-at-first-sight-php-conference-wrapup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

