COWS Ajax - Ajax Evolved 142
nuttzy writes, "COWS Ajax takes over where Ajax leaves off. The web has gone through a great period of experimentation and there is now a dizzying array of frameworks, add-ons, howtos, and books. The common drawback these Ajax aids all fail to overcome is that, even with aids, apps take a long time to create and debug. Many times someone has already created a great tool and you'd really just rather use theirs instead of reinventing it (especially if it's a Google, Yahoo, or other trusted player). Wouldn't it be great to drop in a single line of code to gain a huge amount of functionality that frees you for something else? You can't do that with Ajax, but you can with COWS (Changeable Origin Web Services) Ajax. Now highly interactive third party services like SpellingCow are possible."
link to article (Score:1, Informative)
Re: (Score:2, Funny)
Re: (Score:1)
Re: (Score:1)
cool. (Score:2, Funny)
Re: (Score:1, Funny)
Re: (Score:1)
Re: (Score:1)
COWS Ajax (Score:5, Funny)
Sounds good. Developers should milk it for all its worth.
Re: (Score:2)
Re: (Score:2)
Well, it's udderly obvious that your boss certainly has a steak in your technology knowledge.
Dejavascript Vu (Score:3, Insightful)
Re: (Score:2)
From a would-be vendor of pre-fabricated blocks that would like to sell all the blocks to you, to any other would-be block developer, have exclusive control over all future block development and hopefully take a small slice of pie from the huge user base of endusers of the application you develop with pre-fabricated blocks.
The whole venture needs t
Re: (Score:2)
Not a developer (Score:5, Insightful)
- Does it work if the embedded page is offline?
- Does it slow down if the embedded page is under heavy load from somebody else?
- Does it break if some standard/lib/implementation/EULA changes?
- Can we customize it to our GUI?
- In the example given, how does it play with browserspellcheckers like the one coming in FF2.0?
- Why are we paying you if all you do is reuse thirdparty code wich doesnt belong to the company?
You get the idea. Not saying its a bad idea but I have my concerns and so would a lot of managers/devs. At least the ones I have the pleasure to work with.
Re:Not a developer (Score:5, Insightful)
You ever heard of libraries? Sheesh, you should pay the man more if he found a way to increase productivity for next to nothing.
Re: (Score:2)
Re: (Score:1)
Is your company a spell-checker company?
If not then what does it gain you to develop your own spell-checker?
How much do you gain by not spending the time/effort to develop your own spell-checker?
s/spell-checker/$non_core_technology/
You sound like a PHB to me: all soundbite no thought.
Re: (Score:2)
Re: (Score:3, Funny)
Re: (Score:2, Funny)
The ones in Alaska. They're still stuck on old tube technology, while the rest of us have dump trucks.
Re: (Score:2)
Seriously, pick something else that actually deserves your hate -- like Flash.
Re: (Score:1)
what's a browser anyway? (Score:1)
the famous google analytics also stuffs 18kb of Javascript crap to the client's computer (doesn't bother bandwidth on target site though), and forces a cookie rendering, all this done in client-side javas
Re:Not a developer (Score:4, Insightful)
Wow. That last question of yours would make some developers -- the best ones -- walk away from the job.
It's more like a remotely-hosted library. And no, the page would likely NOT work if that other server was down. A good developer could probably add some code to check the remote site and disable certain features on-the-fly if needed. I've done that for a lot of Salesforce stuff I do. Not too awful.
Seems like it would.
Not sure, because I don't know what you're referring to. Do you mean, what happens if you change a library on your own server? Probably shouldn't hurt -- it's all client-side JavaScript. If you mean, what happens if the site that hosts the JavaScript code changes a license or how a library works, then yes, that could likely screw you up.
Looks like a qualified yes.
It's not aware of the spellchecker in Firefox 2.0. But neither are any of the other spelling tools. This spelling tool works live on the text, and if you had Firefox 2.0 spellchecking it also, you'd simply have 2 tools running spellchecks. That could make for some interesting interface weirdness, but I doubt it would hurt anything.
That question is so completely insulting to a developer -- it so trivializes their attempt to do something smart and useful for you -- that if you asked that question, developer morale would immediately plummet. If you have ever asked such a question in the past, you need to know that your company has lost productivity because of it. Even if it never resulted in a missed deadline. Once you insult your developers, they're not going to want to work hard for you. They're going to stop caring. Do something smart and get insulted? OK, stop trying to be smart. If you've ever had to limit your scope or drop features or push out a deadline or worse, and such a thing happened after you asked such a question, now you know why. If you've ever released something that was buggier than people expected, or more difficult to refactor than the developers expected, you can probably bet that a member of your team was insulted and stopped caring.
Any question that is basically a "sounds like you're useless" kind of question is self-destructive to ask. Anyone with self-esteem will not accept it. You know how useful your developers are by their output. Do they hit deadlines? Do they build the things that are needed? Is the uptime good? Is the bug count low? Are the customers happy? Think about it. How are you going to feel if the developer replies to you by saying, "all you seem to do is push pencils around, so why are we paying you again?"
(And if you're inclined to respond by saying, "Unfair question, because I don't just push pencils, I provide real value!" ...then you understand the argumentative feeling you've instilled in your developers.)
Re: (Score:2)
Re: (Score:1)
But if I have to pay you it's going to be your job to convince me that I need to pay you for doing this.
Uh, no. It's your job, as manager, to know who you need and why. It's his job to develop applications. Wasting his time (and morale) to cover your responsibilities is antiproductive.
And no, being in a minor position of power does not mean you don't have responsibilities.
Invitation to Contribute (Score:2)
drawback (Score:2, Insightful)
And there I was, thinking that the common drawback was the lack of accessibility for disabled people and those of us who like to use links or the back button...
Re: (Score:2)
Examples/shameless self-promotion:
http://bloomd.home.mchsi.com/histapi/test.html [mchsi.com]
http://bloomd.home.mchsi.com/newhist/demo/ [mchsi.com]
Re: (Score:1, Insightful)
Re: (Score:1)
Re: (Score:2)
Re:also you have to sit waiting for the page 2 red (Score:2, Interesting)
Re:also you have to sit waiting for the page 2 red (Score:2)
Re: (Score:2)
Fatal Flaw? (Score:3, Insightful)
Re: (Score:1)
Re:Fatal Flaw? (Score:4, Insightful)
Overall, it seems to me like a solution to a problem that just doesn't exist. There are already ways to access web services from the server-side (SOAP, XML-RPC, REST, and so on). To make use of these sources with AJAX, you just need to code some AJAX glue to tie it together. Using the toolkits that most languages have now, this can literally be 5 or 10 lines of code.
You also get to control the code that gets returned - set your own timeout (server-side) for fetching data from the web service; not have to worry about the hosting site going down and possibly breaking your app; not worrying about the remote end getting comprimised (since it would be a bright shiny target, and you don't know anything about their security); not worry about them shutting down operations, switching to a pay-per-use model (see above), changing the API in a non-BC way, etc.
Looks Interesting (Score:1)
Re: (Score:3, Interesting)
The last part of this video [microsoft.com] shows an asp.net web page being AJAX enables (although ATLAS is not asp.net specific).
if Craig Nuttal is reading this... (Score:5, Insightful)
Re: (Score:1)
How is this different from TurboGears Widgets? (Score:2)
Cows (Score:5, Funny)
Oh come on (Score:4, Insightful)
From the spell checker:
That's so very AJAX.
DO NOT USE THIS (Score:5, Insightful)
It really is asking for trouble, once you have third party javascript on your site you are
basically at the mercy of whoever wrote that javascript.
They can do nice stuff, and not so nice stuff with your end users (popups, form content
hijacking and so on).
And possibly lots of stuff that I have not even thought of. Also, they're pretty much
in control of the timing on your site, some browsers do not display the page until all
java script has loaded and if you are loading it from a remote server then you are
basically as slow as that server.
ok guys, you heard the man (Score:1)
Your argument that "omg, the 3rd party tools can do whatever they want" also applies to any code you use. It's made even more [fill-in-your-own-derogatory-adjective] because it's pretty easy to find any naughtiness on the part of javascript code.
Re: (Score:1, Informative)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Insightful)
Re: (Score:1)
Since the third-party javascript loads each time you're dependent on it not ever changing, even if they're not malicious changes. And if they are, well, you're screwed.
Re: (Score:2)
Yes, what you really mean is remotely hosted JavaScript apps are problematic. Understood.
And you seem to be correct that by using such a remotely hosted service, you open yourself up to popups or other unwanted ads, at least in this case. Here's a quote fro
Re: (Score:2)
1. Create hugely popular web application and host it on your own domain
2. Convince web designers to link your application into their sites by adding script tags that load the code from your domain
3. Wait until a large number of popular sites implement it
4. Change your script to harvest these sites' users' usernames and passwords.
Re: (Score:1)
Secuuuuuuuurity (Score:2)
Besides, this stuff does not support Opera well.
Re: (Score:2, Interesting)
With anything on the net, you should only be running code from a trusted source. All sorts of nasty things can happen just by visiting a scammers website (XSS+phishing combo attacks and such). Obviously COWS Ajax introduces another layer of concern, but it can be mitigated by running tools/apps from trusted sources only (as I state in the opening blurb). If someone has a vested interest in offering a tool, then that should reduce the odds of a scam. There's a wealth to be gained from 3rd parties... just
Re: (Score:2)
To a point. The sites that are serving up this code will quickly become a target of crackers, as the only thing better than exploting one web server and putting your phishing code into their site is exploting one server and putting code into their site that's served up on hundreds or thousands of other websites.
Long to develop? What? (Score:3, Interesting)
What in the world is that supposed to mean? I implemented a autocomplete search text box in only a few minutes using RoR. It really is that simple. It has a rich interface to create all sorts of ajax effects, useful ones that reduce traffic to/from the server.
Also, debugging is a breeze with the Firebug plugin for firefox; you can see exactly what is getting sent to the server and what is returned.
Moooove along, nothing to see here. (Sorry, couldn't resist)
Won't this be disabled in future browsers? (Score:2)
Re: (Score:1)
Uses no resources? (Score:2)
Excellent. So you've finally perfected producing something from nothing? Brilliant, my man! Although with such a discovery you'd think you could do better than a spell check.
one word: Echo2 (Score:4, Informative)
http://www.nextapp.com/platform/echo2/echo/ [nextapp.com]
Slow? (Score:2)
Having recently re-written from scratch a very large project with two or more PHP developers and myself as the only front-end designer, I've found Ajax to be the fastest way to develop web apps for in-house use. If you write a spec for data I/O, then follow it exactly, the front end can be developed without the back end using sample data. The back end can be developed without the front end, since simulated posts/gets can be done to verify that the XML (or JSON or text or whatever) is valid. That means th
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (Score:2)
You either don't or won't understand current development models. Agile methods have nothing to do with avoiding good software design - that's ridiculous on the face of it.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Evolved? (Score:2)
Sounds like just a toolkit to me. One implementation among many. A simple Ajax implementation isn't even 20 lines of code client side, and then whatever server side code is needed to perform the necessary functions.
I find it ironic that their first example of COWS Ajax is a spell checker, which my Firefox already has built-in, client side, for ANY form field on ANY website.
Old trick, new buzzword (Score:4, Informative)
In fact, there are a number of project under way that use dynamic script injection to emulate cross-domain XHR. See http://ajaxian.com/archives/jsonp-json-with-paddi
But worse yet, the argument that developing web applications with Ajax is hard is a straw man. Imagine you had to design a desktop GUI by twiddling with the screen bits directly or, worse yet, implementing application logic in the graphics controller. Blech!
That's the situation with Ajax and webapps right now [pathf.com]: writing code in the wrong places and at the wrong level of abstraction.
If you want to simplify how you write webapps using Ajax, try a server side framework like Echo2 or ZK. These allow you to write webapps much like a desktop GUI while working in only one language context -- Java on the Server side.
Re: (Score:2)
What if you can't do that for some reason?
I think a cross-domain XHR would be much more useful than this pattern, but nobody seems to want to give us that.
A different way of making web apps (Score:2, Insightful)
Really bad idea! (Score:4, Insightful)
Seriously, by doing this, I'm not only trusting this bovine-fixated individual to not only (a) never change his API, (b) always be up, (c) never do evil things with my data, but also (d) actively prevent evil things from being done with my data.
Consider for a moment that you write an email client that "leverages" this technology. In this situation, not only are you handing your logs, you're also potentially passing your customer's email and passwords to this cow-speller.
Bad fucking idea...
Re: (Score:2, Insightful)
ooooch ouch! Not another! (Score:1)
And to call;
http://cows-ajax.sourceforge.net/includes/sc_ayt.j s [sourceforge.net]
a web service is outlandish. I give the 34k above include an F minus. The dict should be a "web service" & remain on server. !XSS
Not really... (Score:3, Insightful)
dang straight (Score:2)
>"something else" for us, but hey, thanks for your concern =P
Which is why I do all my data access code in assembler
Still trusted? (Score:1)
Just make sure you unplug your microphone first.
Having the motto 'Do no evil' makes me sure they won't do anything I wouldn't want after listening to my conversation. I know how seriously employees take their mottos, and wouldn't it be evil, to some, not to not take an opportunity to increase investors returns.
privacy concerns? (Score:2)
Given that, it's rather scary where I'd want to use this spellchecker on. I would never use spellchecker if my document was being sent from Word back to the Office group's spell checking server. Some things like these a crucial to be on the client side.
Does not work on Safari ... (Score:2)
angel'o'sphere
Re: (Score:2)
angel'o'sphere
Re: (Score:2)
Demo doesn't work in Safari? (Score:2)
Re: (Score:2)
AJAX for Lazy (Score:1)
AJAX for lazy (Score:2, Informative)
Light fingers... (Score:3, Interesting)
I hear that the audio protocol... (Score:2)
So is this working for everyone but me? (Score:1)
Firefox 1.5.0.6 on XP Pro
WhatWG (Score:2)
Program interactive AJAX websites like desktop app (Score:1)
Try Wt [sourceforge.net], its called the "Qt" of the web. It even uses signal and slots for event handling! Never has programming complex and highly-interactive web applications been this easier with this library. It is a C++ library and allows you to build high-performance AJAX web apps without ever writing a line of HTML, Javascript, XML, or even learning XmlHTTP. The library takes care of these complexities the same way Qt hides Xt/Xlib or Win32 primitives from the developer.
You may like Wt if you think programming we
Re:Yay! One more buzzword!!! (nt) (Score:5, Funny)
What's next, Python on a Plane???
Re:Yay! One more buzzword!!! (nt) (Score:5, Insightful)
That's brilliant.
Now third party websites can offer to check my spelling and eavesdrop on my conversations with only one line of code!
I know I'm excited.
Re: (Score:1)
Re: (Score:2)