tag:blogger.com,1999:blog-19002723.post1488138334992664017..comments2023-02-21T00:14:00.325-08:00Comments on Tagneto: Searchable Ajax with JavaScript controllers and a headless GeckoJameshttp://www.blogger.com/profile/12067100302830600925noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-19002723.post-48720595825694189102008-03-11T00:52:00.000-07:002008-03-11T00:52:00.000-07:00James, I figured out an interesting hack that work...James, I figured out an interesting hack that works, at least for my purposes. Turns out there's plugin for Firefox called jssh that provides telnet access to a javascript shell inside of a running copy of firefox. From there, you can trigger events, inspect the inner workings of the chrome, and manipulate the DOM. The Firewatir team (which is working on porting the popular WATIR framework for browser interaction testing) is using jssh so it must be pretty full featured. I wrote up some instructions based on what I learned getting started here: <A HREF="http://www.urbanhonking.com/ideasfordozens/archives/2008/03/automating_fire.html" REL="nofollow">Automating Firefox for Web Application Integration</A>.Greghttps://www.blogger.com/profile/06870195551606487141noreply@blogger.comtag:blogger.com,1999:blog-19002723.post-75090939714871077432008-03-04T06:56:00.000-08:002008-03-04T06:56:00.000-08:00Greg: I think there is hope using Aptana's Jaxer. ...Greg: I think there is hope using <A HREF="http://aptana.com/jaxer" REL="nofollow">Aptana's Jaxer</A>. It runs gecko on the server. The thing I have not figured out yet is how to tell Jaxer "you can run the whole page at the server and client".<BR/><BR/>It looks like you can get it to work if you put a runat="both" for all the script tags in your page, but I have not done a lot of experiments on it. I would prefer to just point Aptana at a directory and have it work.<BR/><BR/>If you find anything that works, feel free to leave a comment about it.Jameshttps://www.blogger.com/profile/12067100302830600925noreply@blogger.comtag:blogger.com,1999:blog-19002723.post-50103806819786469602008-03-03T18:09:00.001-08:002008-03-03T18:09:00.001-08:00(forgot to check the box for follow up emails, so ...(forgot to check the box for follow up emails, so I'm posting again to get another shot at it -- sorry)Greghttps://www.blogger.com/profile/06870195551606487141noreply@blogger.comtag:blogger.com,1999:blog-19002723.post-41024587015349072272008-03-03T18:09:00.000-08:002008-03-03T18:09:00.000-08:00Wondering if you've made any progress on finding/b...Wondering if you've made any progress on finding/building the headless gecko you talked about in the post. I've got a similar problem to the one you express but in a real running app (which thoroughly muddies the situation). I've got a particular page where I need to log the state of the javascript application any time a user visits it. So, obviously, I built a logging class and the javascript app posts in to the right url to trigger the server to create a record. Thing is, I sometimes I want this same logging to be triggered without a user having to visit the page. So, I need to either recreate all the logic of my javascript application to calculate the necessary data for logging (ugly), or to be able to programmatically load and render my existing page in an environment that will run the javascript triggering the ajax callback just as would happen if a normal user loaded the page. After an afternoon researching the current state of play in the mozilla/gtkmozembed/etc space, I'm about to tie something together with glue and string (cron jobs, automator, and Firefox Beta 3). Why can't I just say "gecko 'http://myurl.com'" after running a straightforward install process on my server? Grr...Greghttps://www.blogger.com/profile/06870195551606487141noreply@blogger.comtag:blogger.com,1999:blog-19002723.post-35490075387456870512007-11-24T09:33:00.000-08:002007-11-24T09:33:00.000-08:00See my posts about a future web framework at http:...See my posts about a future web framework at http://mv.asterisco.pt/Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-19002723.post-73193865268604203352007-05-31T13:55:00.000-07:002007-05-31T13:55:00.000-07:00james: Thanks for the thoughts. I don't consider m...james: Thanks for the thoughts. I don't consider myself qualified to recommend any technology/architecture choices so all I can say is go for it. You never know, you might create something that can "survive in the long run". This approach to building web apps is only going to grow if you ask me. I hope to see you continue your efforts with this. I'm subscribed so if there's ever anything I have to offer I'll chime in.Humbly B.https://www.blogger.com/profile/15166267738667819108noreply@blogger.comtag:blogger.com,1999:blog-19002723.post-55654041235550144552007-05-25T22:56:00.000-07:002007-05-25T22:56:00.000-07:00mitchell: Thanks for the link. Authenteo does seem...mitchell: Thanks for the link. Authenteo does seem like it has similar motivations behind it.<BR/><BR/>I'm not too keen on the Narrative JavaScript approach. I prefer the straight JavaScript language, but that is surely a personal preference thing. I'm also not clear on the need for the JavaScript Persistent Object Notation. My first thought is just to make the JSON objects smaller and have specific APIs to load and aggregate the JSON objects. But maybe I haven't hit the use case that might make it useful.<BR/><BR/>Authenteo seems to have created/used a few newer concepts (Narrative JavaScript, JS Persistent Object Notation, custom templating) that I'm not sure will gain enough traction in the long run, (and I say this as creating something myself that probably won't survive in the long run). It could also just be my ignorance though. I think I'll try straight JavaScript, JSON/XML/ATOM with Dojo widgets and see how far that takes me. But Authenteo certainly has made a significant achievement by having something working.<BR/><BR/><A HREF="http://htmlunit.sourceforge.net/" REL="nofollow">HTMLUnit</A> for the server-side HTML renderer is a nice option, but it requires Java, and it seems harder to get that deployed on non-Java based server systems. I was liking the headless gecko support since it would be a C/C++ compiled thing that would most likely fit into different web servers. Plus it is a full, real browser. But maybe HTMLUnit could be used on a server farm, and just use a proxy module on the actual web servers to forward the render requests to the Java-based HTMLUnit farm (I was considering that approach for the headless Gecko too). That might work, just not sure how robust the JavaScript/DHTML support is in HTMLUnit. I'll have to look at that more.<BR/><BR/>One small thing reading their blog post on <A HREF="http://authenteo.net/#Dynamic%20JavaScript%20Loading" REL="nofollow">dynamic javascript loading</A>. The xdomain version of Dojo loading uses script tags, which is asynchronous loading.<BR/><BR/>Overall, an interesting, although commercial, project.Jameshttps://www.blogger.com/profile/12067100302830600925noreply@blogger.comtag:blogger.com,1999:blog-19002723.post-4163268443220742852007-05-25T14:41:00.000-07:002007-05-25T14:41:00.000-07:00Thanks for the post. This sounds a whole lot like ...Thanks for the post. This sounds a whole lot like how I wish to build web apps too. I'm fuzzy on all the details but it seems similar to what authenteo.net is doing. Have you seen that before? It's a commercial product, but check it out if you haven't already. Of course it would be interesting to hear your thoughts on it too.Humbly B.https://www.blogger.com/profile/15166267738667819108noreply@blogger.com