
March 28 2008 by

Andrew Powell
I'm a bit late to the table when it comes to
Twitter, but I've found it interesting so far. I think Twitter is best described as IRC 2.0 . Anyways, you can
follow me here.
Posted in ColdFusion | Flex | General |
1 comments

March 28 2008 by

Andrew Powell
re: Search API
Let me say this up front: I like Kayak's service. I use it all the time to book flights and hotels when I travel. I'm a big fan of Kayak.
I came across your API just by chance when googling "Kayak API" in hopes that you actually had published an API. To my surprise, you in fact had actually published an API and had documentation. A good start.
I decided to take a look at it and give it a try. It looked simple enough and with some work in ColdFusion and Flex, I was able to get some working API ports for these languages up and running.
Through the course of my testing and building, I come to find out that the API has not been updated in a while, is not fully documented, and is not exactly what I'd call reliable when it comes to availability. When I presented these issues to you, as a concerned developer, the response I got was:
"You'll notice that we've removed mention of the Kayak XML Search API from http://kayak.com/labs/ we did this because of poor monetization for the affiliates who were using it."
So, if I read this correctly, you basically stopped advertising your Search API because you weren't making any money off it, correct? Affiliates, obviously, will make money when you make money off of the Search API. Is it really honest and fair to say affiliates weren't making money (which may have been the case) when the fact, the root of the matter is that you weren't making any money off of it? I think not.
There are a TON of travel apis on the market. Just take a look at www.programmableweb.com. You'll see at least 7 other travel based APIs. Either get your act together or shut down your API.
If you embrace the RIA developer (i.e. Flex and AJAX) and provide us a good, working API, you can almost guarantee two things: tons of free publicity and a ton of killer apps written that will drive traffic and revenue to your site. It works for a ton of other services, why not yours?
All I want is for you to give us something we can work with, is supported, and is well documented, and is reliable.
Comments are open if you'd like to voice your opinions and/or respond.
Posted in ColdFusion | Flex | General | KayakAPI | Air | AJAX |
2 comments

March 27 2008 by

Andrew Powell
I was reading
an old post by a buddy of mine about bad SQL being the cause of a lot of application problems and decided to weigh in my two cents:
A lot of developers get forced into writing SQL as part of their jobs. Should they be doing it? I don't think so. It's not necessarily the best of ideas, and in MOST cases should probably be avoided at all costs. Besides, developers cannot be experts in every language or technology right? Something has got to give somewhere. It's usually their SQL skills that suffer.
Developers are, sometimes, forced into situations where they have no choice but to write their own SQL. There is either no DBA, a DBA who isn't interested in helping developers with their queries, or a DBA who isn't even in the development loop (never a good sign). In these cases, developers may have to write their own SQL. Sometimes developers have to know their limitations when it comes to writing queries, especially complex queries. I don't think a lot of developers do truly know their skill limitations. Yet, these intrepid souls will trudge on thinking they can write SQL just fine. When, in reality, they really and truly do not know the little tricks and tweaks that can make the SQL perform better.
I've seen it a thousand times. It's not an indictment of the developer, just a limitation of their skills that needs to be recognized. Don't lose hope though, there are ways to combat this and make your SQL as good as it should be, or as good as it can be.
What are these answers, then?
Personally, I opt for something like
Hibernate (Java) or
Transfer (ColdFusion) to abstract my SQL for me. What does this mean? It means that my queries will be optimized and I can spend my time focused on developing the business logic rather than spending that time mired in persistence. It also gives me the agility of being (most of the time) database agnostic. This lets us easily develop in one database locally, and port the same code to the server on a different database with minimal configuration changes.
If ORMs are not an option for you and you have access to a good DBA, engage them. Talk to them and mine them for all the information they're worth.
It's their job to know the database you're using and how to optimize queries. Make them earn their money by at least helping you write your queries, if not transferring the database functionality to them altogether (good luck).
None of these two options are viable? Well maybe you'll have to engage an outside consultancy to help you with your persistence layer optimizations, or pursue another path for optimizing your queries that has not been mentioned here.
The bottom line is this: If you optimize your persistence today, then you'll have to spend less time dealing with it later when it causes you problems tomorrow. You may be able to write SQL, you may be able to do complex joins and create some wicked stored procedures, but are you a SQL expert? If so, then never mind this post. If not, then don't be afraid to swallow your pride and ask for help.
Posted in Java | ColdFusion | General | BlazeDS | Universal Mind |
11 comments

March 21 2008 by

Andrew Powell
Download the SWC
A few days ago, I released the
ColdFusion version of my Kayak Search API. Well, as the night follows day, along comes the AS3 version for use in your Flex applications. It provides much of the same functionality as the CF version, but does not have any facilities for searching airport codes, cities, or airline codes.
I must say, that it was interesting building this library because there are some subtle differences to doing something in CF then porting it to AS3. I really like the way the AS3 version came together, because the event driven model flows a bit better, in my mind.
If you want to mashup the AS3 version and the ColdFusion version, I have done something to make it very easy to do. The AS3 value objects are a direct port from the CFC value objects. So you could, in theory, write a remoting call to the ColdFusion server in your Flex code that talks to a remoting facade in the ColdFusion code. This would give you the same functionality, but the data calls and processing are done on the server. It's your choice.
The source code for this is available
on my Google Code Site. You will also find a flight search sample and a hotel search sample on there in a separate project called "KayakSamples".
Kayak API spec
Happy Searching.
p.s. ASDocs are coming....
Download the SWC
Posted in ColdFusion | Flex | General | Adobe | Universal Mind | KayakAPI | Air |
0 comments

March 21 2008 by

Andrew Powell
View The Application
Download the Code
OK, so I got my AS3 API for Kayak
out the door. After I posted it, I started thinking... "People are going to wonder what this can do...." So I whipped up a mashup very quickly with the help of the
MapQuest API that
Universal Mind developed.
Basically, since Kayak returns Latitude / Longitude pairs with the hotel data, we can send that into the
MapQuest API as points to display on the map. We can also feed information about that point in with the lat/lon. So, I looped the data coming back from Kayak and added it to the MapQuest map. No server-side data calls needed. All done with free, publicly available APIs.
I think it's pretty slick, and yes, I know my design skills SUCK. All I was concerned with is a functionality demo.
Comments are open.
View The Application
Download the Code
Posted in Flex | General | Adobe | Universal Mind | KayakAPI |
0 comments