Samstag, Dezember 30, 2006
Freitag, Dezember 29, 2006
Musik 2006 : Wer holt das Netz ein?
ZEIT online - Musik - - - Musik 2006 : Wer holt das Netz ein?
Die Wahrheit, die hinter Myspace steckt
Quelle: MYSPACE: MySpace: The Business of Spam 2.0 (Exhaustive Edition) - Valleywag
MySpace: The Business of Spam 2.0 (Exhaustive Edition) - Valleywag
By now, everyone knows what MySpace is--or at least, they think they do. The generally held assumption is that MySpace is a social networking site: "a place for friends," as their slogan puts it. In reality, MySpace is the next generation of marketing, advertising and promotion, exquisitely disguised as social networking. Simply put, MySpace.com is Spam 2.0.
Freitag, Dezember 22, 2006
Alles wird teurer! - Oder nicht? Der Preismonitor des Statistischen Bundesamtes
zum Preismonitor des Statistischen Bundesamtes
Montag, Dezember 11, 2006
Projekt Wortschatz
Projekt Wortschatz
mundmische.de - das andere deutsche Wörterbuch
http://www.mundmische.de/
Elfriede Jelinek
Elfriede Jelinek schreibt gegen Missstände (von ihr bevorzugt geschrieben: Mißstände, denn sie verabscheut die Rechtschreibreform von 1996) im öffentlichen, politischen aber auch im privaten Leben der österreichischen Gesellschaft, wie ihn auch Thomas Bernhard zum Ausdruck brachte. Dabei benutzt sie einen sarkastischen, provokanten Stil, der von ihren Gegnern („Nestbeschmutzer“-Diskussion), aber auch von ihr selbst mitunter als obszön, blasphemisch, vulgär oder höhnisch beschrieben wird.
Seit Jahren tobt eine heftige Kontroverse zwischen denen, die durch ihre Texte und auch ihre öffentlich kundgetane politische Meinung bis hin zur Schmähung und Aggressivität provoziert werden, und jenen, die sie als Sprachkünstlerin feiern.
http://elfriedejelinek.com/
Donnerstag, Dezember 07, 2006
Das Versicherungs Wiki
http://versicherungs-wiki.de/index.php/Hauptseite
Donnerstag, November 30, 2006
Samstag, November 18, 2006
Free fonts (true type fonts etc)
http://www.fontgarden.com/
More fonts here:
http://www.webpagepublicity.com/free-fonts.html
Freitag, November 17, 2006
Security Images in PHP (Captchas)
http://www.devshed.com/c/a/PHP/Security-Images-in-PHP/
http://www.sitepoint.com/article/toughen-forms-security-image
Dienstag, November 07, 2006
Evangelium nach Maria
Bei der Maria, die dem Evangelium den Namen gegeben hat, handelt es sich möglicherweise um Maria Magdalena. Da im Text selbst jedoch nur allgemein von „Maria“ die Rede ist, bleibt diese Zuordnung unsicher.
Das Evangelium besteht aus Dialogen zwischen dem auferstandenen Jesus und seinen Jüngern und Jüngerinnen.
Der Text wurde im koptischen Kodex Berolinensis gefunden.
href="http://www.rene-finn.de/Referate/mariaevangelium.html">http://www.rene-finn.de/Referate/mariaevangelium.html
Mehr Infos:
http://www.jonathan-dilas.de/Texte/evangelium-MM.html
Bibel der Häretiker - Die gnostischen Schriften aus Nag Hammadi
Die ,,Bibel der Häretiker`` ist die erste deutsche Gesamtübersetzung der im Dezember 1945 entdeckten Nag--Hammadi--Texte. Dieser Fund von gnostischen Handschriften kann ohne Übertreibung zu den größten Entdeckungen dieses Jahrhunderts gerechnet werden. Es war daher überfällig, die gesamte Nag--Hammadi--Bibliothek auch in deutscher Sprache zu publizieren, zumal bereits seit 1977 eine englische Gesamtübersetzung vorhanden ist.
Freitag, November 03, 2006
Web Developer's Handbook
http://www.alvit.de/handbook/
Dienstag, Oktober 17, 2006
Mittwoch, Oktober 11, 2006
Web based Video sharing and video editing
jumpcut.com
eyespot.com
watch jess85 there :)
And of course we have Youtube and Google Video ... that now have become one...
the top ten:
http://www.lightreading.com/document.asp?doc_id=100934
Mittwoch, Oktober 04, 2006
Most comprehensive Web 2.0 list
I have just divided it into several posts so that you can just read what you like. All in all it should be over 1000 Links:
Mittwoch, September 06, 2006
The Web Developer's List of Resources
devlisting.com
Dienstag, August 29, 2006
Bruce Tate: The Toy (about the opportunities for Ruby on Rails)
Samstag, August 19, 2006
Configure the GRUB boot loader
Freitag, August 04, 2006
Ubuntu software repositories
Donnerstag, August 03, 2006
Muslim-Jewish-Christian Alliance for 9/11 Truth Who We Are
Sonntag, Juli 30, 2006
bloggingbeirut.com
... It's simply unfair what's going on. From a civilized country like Israel we should expect more than bombing innocent civilians in Lebanon.
http://www.israelboykott.org
http://muslimmarkt.de/boykott/boykott.htm
Freitag, Juli 28, 2006
Ruby-GNOME2
http://ruby-gnome2.sourceforge.jp/
Donnerstag, Juli 27, 2006
Dienstag, Juli 25, 2006
Montag, Juli 24, 2006
Prototype Window Class
This javascript class allows you to add window in a HTML page.
This class is based on Prototype. The code is inspired by the powerful script.aculo.us library. You can even use all script.aculo.us effects to show and hide windows if you include effects.js file , but it's not mandatory.
It has been tested on Safari, Camino, Firefox and IE6.
Features
* Valid HTML/XHTML generated code
* Resizable windows
* Minimze/Maximize
* Modal dialogs
* Visual effects
* Skinnable
* And more...
http://prototype-window.xilinus.com/
Sonntag, Juli 23, 2006
Locomotive: Ruby on Rails package for Mac
http://locomotive.raaum.org/
Ruby Online Magazine: Ruby Code & Style
Ruby has gained a large mind share in the "agile language" arena in the last four years. There are testimonies of it being successfully used in scientific applications, network monitoring, simulations and visualization, point-of-sales systems, robotics, games programming, telephony, code-generation and much more. Of late, it is also gaining popularity as "the language" for Web development. The time is ripe for launching a zine focused on developments in the Ruby world. Introducing: Ruby Code & Style.
Path to Ruby 2 /Rite
http://wiki.rubygarden.org/Ruby/page/show/Rite
... don't know what the real status is - the slides are a bit out of date...
Samstag, Juli 22, 2006
Donnerstag, Juli 20, 2006
Articles on rapidred.com (written by Ruby on Rails experts)
http://rapidred.com/content/list?category=resources
Typing Strategies Beyond the Java Model (by Bruce Tate)
http://www-128.ibm.com/developerworks/java/library/j-cb05236.html
Ruby, Java, static, dynamic, typing
From Bruce Tate's "Paddle Like Hell"
http://blog.rapidred.com/
Bruce, usually coming from a Java background, now focus on rapid development with Ruby / Ruby on Rails. (Also check his previous blog http://weblogs.java.net/blog/batate/
20 professional Web Design tips
href="http://www.netmag.co.uk/zine/design-tutorials/20-pro-tips">http://www.netmag.co.uk/zine/design-tutorials/20-pro-tips
indirekter-freistoss.de
Am deutschen Fußballstammtisch wird so viel dummes Zeug geredet und geschrieben, daß einem jede Kuhhaut leid tut. Wenn Sie jedoch intelligente, kritische, hintergründige und witzige Fußball-Berichte bevorzugen, sind Sie hier richtig: auf indirekter-freistoss, der täglichen Fußball-Presseschau.
Auch als Newsletter
http://www.indirekter-freistoss.de/home/index.html
Mittwoch, Juli 19, 2006
MyEclipse and EasyEclipse
MyEclipse
EasyEclipse packages together Eclipse, the open-source software development platform, and selected open source plugins.
MyEclipse offers selected, assembled, tested, patched, built installers and document
a full IDE, offered as reliable distributions and plugins:
EasyEclipse
Montag, Juli 17, 2006
Top 71 CSS Menus Navigation Tabs from econsultant.com
http://www.econsultant.com/web-developer/css-menus-navigation-tabs/
Top 30 Ruby on Rails Tutorials from econsultant.com
http://www.econsultant.com/web-developer/ruby-rails-tutorials/
Freitag, Juli 14, 2006
Donnerstag, Juli 13, 2006
Lara Keromosemito: HR Training, Consulting, Coaching
Führung / Zielvereinbarung / Personalentwicklung
Verkauf
Interviewtechniken
Business Small-Talk
Präsentation & Rhetorik
Konfliktmanagement
Teambuilding
http://www.keromosemito.de/
Mittwoch, Juli 12, 2006
Dienstag, Juli 11, 2006
Montag, Juli 10, 2006
Wie schnell sich die Dinge doch ändern können...
Aber damit niemand auf den Gedanken kommt, die "Bild"-Zeitung und ihre prominenten Kolumnisten hätten schon immer an den Erfolg der deutschen Nationalmannschaft und ihres Trainers Jürgen Klinsmann geglaubt, eine nicht ganz untypische Auswahl von Kommentaren der letzten zwei Jahre.
http://www.bildblog.de/?p=1516
Freitag, Juli 07, 2006
irland-rundreise.de
http://www.irland-rundreise.de/
irelandman.de
"
http://www.irelandman.de
.. und so mieteten wir uns ein kleines, strohgedecktes Cottage hinter den zwölf Bergen in Connemara, Na Beanna Beola, wie sie auf Gälisch heißen. Zugegeben, die Cottages im Dörfchen Tullycross wurden speziell für Touristen wie uns gebaut und haben neben dem traditionellen Torfkamin auch eine Ölheizung und ein Bad. Das ist praktisch, doch man sieht es ihnen nicht an.
Doch zunächst einmal muss man hinkommen! Aer Lingus Flug EI 691 – die Flugnummer hat sich in all den Jahren nie geändert – landet gegen zwei Uhr in Shannon. Wir hatten uns von Deutschland aus einen Mietwagen reservieren lassen, bei Windsor Rent-a-Car. “Nein, einen Schalter hätte Windsor in Shannon nicht”, hatte uns das Vermittlungsbüro informiert, doch die würden sich schon bemerkbar machen. Wir kommen durch die Sperre, sehen einen Mann mit einem Besenstiel in der Hand, daran ein Pappschild mit der Aufschrift: VOGT-KULLMANN. “Das sind wir!” ruft mein Mädchen, und in der Tat, wir sind es. Der Träger des Pappschilds führt uns aus dem Flugplatz heraus, über die Straße auf einen Hotelparkplatz und zeigt uns einen schwarzen Nissan Micra. Wir akzeptieren, zahlen ihm für drei Wochen 500 Irische Pfund bar auf die Hand und fragen, wie und wo der Wagen wieder abzugeben wäre. Kein Problem, erklärt er: “Auto wieder auf den Hotelparkplatz fahren, Fahrertür abschließen, Beifahrertür offen lassen, Autoschlüssel unter die Fußmatte legen.”
Linksverkehr. Mein Mädchen ist mutig, fährt das erste Stück – sie war schon ’mal in England und gilt somit als Expertin für das Linksfahren. Hinter Galway wagt man sich dann selbst ans Steuer. Wir erwarten ein raues, steiniges Land. “Es wird schon viel steiniger”, heißt es hinter jeder Kurve, doch was steinig heißt, werden wir erst viel später erfahren. Hinter Oughterard und Maam Cross beginnt das, was einmal unser Connemara werden wird. Heide und Moor, ein Flüsschen, kleine und größere Loughs, dahinter im schrägen Licht der Abendsonne die Twelve Bens.
Ob das nun mit dem Cottage auch so gut klappt? Wir hatten alles telefonisch arrangiert, dann das Geld per Scheck im Briefumschlag nach Irland geschickt. Alles, was wir nun haben, ist eine Beschreibung des Wohnhauses einer Mrs Anne Jack, die die Thatched Cottages verwaltet. Doch sie weiß Bescheid: es ist das zweite nach der Kirche, der Schlüssel würde von außen an der Tür stecken. Und das tut er...
Donnerstag, Juli 06, 2006
Mittwoch, Juni 28, 2006
J2EE: Fear driven technology choices
I think more customers are choosing technology out of fear than good is and many developers are doing a shoddy job standing up to those fears. Customers fear that a world of risk and hurt will come unless they choose "a standard", like Java, C#, or PHP, and by silently bowing in agreement, developers are selling the customer short.
In the advent of highly agile and open source frameworks such as Ruby on Rails (and there are many others), it has never been easier or safer to "experiment" with new technology. Unlike the days of old, it no longer requires an engagement with a vendor and a blind bet on his treasury box of magic tricks. Vendor has turned community and the treasure box has turned transparent.
From the feedback I'm getting, most developers have a pretty good grip on how Rails is going to help them within a few hours. After about a day they're usually pretty convinced. And after a week, all I have talked to are turning out working software at high velocity.
With the barrier for examination so incredible low, there's simple no excuse to instinctively reach for the bow as the first response to fear. As much as it delights me to read Matt Raible write about his enthusiasm with Rails:
After watching the video this morning, it's enough to make me want to become a Ruby developer and use Rails to develop my next webapp.
I'm am equally disappointed by his defeat by default when he his mind wanders on to the possibility of actually using this stuff:
Then again, Ruby probably doesn't pay the bills nearly as well.
So maybe that's just Matt, right? Wrong. This depressing pessimism is pervasive. David Crow chimes in with enthusiasm:
Matt Raible points me to the Ruby on Rails quick setup video. Damn, that is impressive! After spending all weekend fighting with data objects and PHP, I need to spend more time with Ruby and Ruby on Rails.
And then follows the "self-evident truth" of Matt with an immediate dismissal for commercial viability:
Matt's got it right it might not pay the bills, but it looks like I can learn something.
As much as I commend both guys for their interest, kind words, and real enthusiasm, I'm frustrated beyond belief by their lack of energy to fight inertia. How can there ever be a better tomorrow if you're not even willing to contemplate fighting for your enthusiasms of today?
If I do anything of significance with Rails, I hope more than else that it's broadening the horizon of customers by inspiring developers to acquire the will to push for their beliefs and enthusiasms.
Customers are sold short when we as developers accept fear-driven technology choices.
Challenge by Oier on October 26, 12:52
In my last job when I asked the project manager about the reason of using Oracle instead of mysql for a symple webapp. He told me:
"Because if something goes wrong and we use mysql it's my fault , but if we use Oracle is oracle's fault. Nobody gets fired for buying Oracle". The fear is a strong force in the IT enterprise world.
Challenge by Guido Kollerie on October 26, 13:47
I don't think it's us developers that make "fear driven technology choices", but the companies we work by means of our managers.
Something that has always puzzled me in the IT industry is that non-technical people seem to be making the technical choices for us, eg. what programming language/environment to use. If it was up to me I'd be using the best tools for the job; I'd be writing my parsers in a functional programming language (Clean or Haskell), I'd probably be doing my web application development work in Ruby (on Rails), etc. However this will never happen because management is afraid they can't hire a Clean or a Haskell programmer in case I should ever leave. And Ruby, hell they don't even now what Ruby is.
Management should stop trying to solve the problems that form the developer's domain. Either they trust their developers to do the right thing or they don't in which case they hired the wrong developers.
Challenge by David Heinemeier Hansson on October 26, 13:55
I totally agree, Guido. What I'm railing against here is that developers by and large have accepted this defeat by ignorant managers.
But I have faith still. Not all managers are ignorant, not all customers are silly. But when developers start believing the opposite to be true and don't even try any more, then both enlightened customers and managers are going to get far less than what they would have otherwise gone along with.
That brings me back to one of the core approaches to moving Ruby on Rails into the enterprise. Don't tell, show! Since the barrier to experimentation is so low, it should be more than possible for the caring developer to create a slice of a system at some point to help bring credit to his argument.
It's about time that developers accepted at least part of the blame for mindless flowing in the mainstream. Develop your persuasion techniques, you're the knowledgeable one (about technical excellence).
Challenge by Mark Hudson on October 26, 17:02
Keep the faith. The progress that Rails has made already is very profound. I agree with Dave Thomas's observation that you posted yesterday -- Rails could well be the application that launches Ruby into the mainstream.
It is really up to everyone to evangelize and show, show, show! Show your fellow developers what Rails can do. Show your boss how quickly you can develop applications that are easy to maintain and extend. More importantly, show yourself that you can make a difference by promoting something you believe in.
There are managers and people out there who get it. Look at Linux. It had to overcome the same obstacles but look how much progress has been made.
Keep up the good work David and the extended Rails team.
--Mark
Challenge by Solomon Folks on October 26, 18:37
I could not agree with you more David. My exposure to Ruby came a few years ago while working in Japan. I dismissed the technology and it's alleged capability and even tried to persuade my customer to choose a language with vendor support and a larger developer community. Of course being the typical consultant, I had not even truly given Ruby a try. That was then. Today the system we implemented has been replaced, (the vendor for the COTS package we integrated went bankrupt) and we lost a client because we failed to embrace technology outside of our core expertise. From my perspective, I believe that it is suicide for a technology developer (or company for that matter) to not embrace new technology, especially those that dramatically improve productivity. We are placing two large bets on Ruby and Ruby on Rails....if you ask me we cannot afford not to.
Challenge by Fafner on October 26, 22:35
I, as a programmer, like neat toys too. But more important to a company than giving their programmers neat toys is to run a company. That requires several things: A willingness to pick tools and stay with what you picked. A company cannot choose new development languages because they hire a programmer who likes said language and then shift again when he leves after a few years and another one, with different preferences, comes along.
It is important for a company to have things like the ability to easily hire people with the necessary skills to pick up development and to be able to interoperate with existing software and new software from other developers.
As someone who is completely ignorent of Ruby I wonder about a lot of stuff that seems absolutely necessary to me for any development platform.
* Does Ruby support SOAP -- both as a client and a service provider?
* How do I call Ruby-programs/APIs from other languages?
* How do you make gui applications in Ruby? Web isn't the best solution for all types of applications.
* How do you handle integration into the OS? In windows it is pretty necesary to have some kind of integration to Active Directory for most enterprise-style applications. It is a bit easier to wrap similar studd in unix-style OS's.
* How about APIs for COM-interoperability? At least APIs for handling Microsoft Office documents?
* How about encryption? If I want to write an application that communicates securly am I then restricted to SSL/HTTP style development or is it possible to use other algorithms and write your own and will they perform?
You might want to address those concerns in another posting. If you can provide good and easily understood answers, then I think you have a better shot at winning people over than what you get form your "Ruby Good; Conventional Languages Bad" rants.
Challenge by gabriele on October 27, 0:04
yes, you have client/server soap (and xmlrpc), you use C libs directly from ruby (no need to write c bindings, even if you can), you have ssl and ssh, you have COM and win32 api access (and lots of win32utils).
I'm not sure that simple ActiveDirectory access exist but there is the standard, LDAP.
But (as I read it) the point was "push whatever you think is good enough in your domain". If you want to build a web thing maybe rails can be a good fit, even if it did' nt had good GUI toolkits (wich it has, FLTK,Tk,Gtk, Qt, Wx and Fox are the first I can think of)
Anyway, I partly agree with the spirit of your post's first part (" you should not change everytime a developer wants"). I would keep my cobol app even if the new Java one was much more shining, but this does not mean I won't ever change anything.
(my 0.02 euro)
Challenge by Morten Wittrock on October 27, 0:29
I still think your main problem is aversion to perceived risk, not failure to acknowledge increased developer productivity or decreased costs. Have a look at the Loud Thinking archives; back in '03 you'll find David the Java web app proponent while back in '02 PHP was all that. Catch my drift? What will '05 bring? Will Rails end up as yet another dead SourceForge project, when its supporters have moved on to something newer and shinier? I'm not saying I agree with that line of thinking, but those are some of the questions you need to answer.
Challenge by Fafner on October 27, 0:30
Thx Gabriele for your answers. What about calling ruby stuff from my C++ implemented windows exe? Just curious.
I don't really think xmlrpc is as interesting as soap, but that is another matter. I'd like to see someone demonstrate that Ruby can do all those things as easily as a .net framework language or java... I'm just a fairly sceptical guy.
Challenge by David Crow on October 27, 3:30
"Nobody ever got fired for buying Oracle" this is prevelant in many larger enterprises. While working for many smaller organizations my colleagues and I were focused on delivering value, this typically meant building the thing that customers would pay the most for in the shortest period of time. It was very simple, there were no politics it was all driven by business value and contribution to the bottom line. Tools like Ruby on Rails are great in these environments both technically and politically.
In larger organizations, the decision about which tools to use are often, as David identifies, are made by others, not developers and technologists. Whether that be Enterprise Standards, CIOs, VPs of IT, consultants or others that might not be developers. They want tools that work and are supported and are broadly accepted in the community. They want Java, C#, SQL (insert your list of acronyms this week its SOAP, WSDL, UDDI, etc.) because there is a large talent pool and a larger experience base. They want tools that are broadly supported that they read about in magazines at the airport.
Selecting a technology that has a single developer (or a much smaller developer base) can be very risky. This very similar to the Innovator's Dilemma (re: Clayton Christiansen). You can't stop doing the things that are your bread-and butter. Large companies want to be on the leading edge, not the bleeding edge. We are perceived as successful because of our risk aversion. This is the "management is afraid they can't hire a Clean or a Haskell programmer in case I should ever leave" sentiment. We have a lot of legacy applications that have a single developer left and a single point of failure. This is extremely scary when your business depends on the application as infrastructure.
The Ruby on Rails demonstration was convincing enough for me to decide to bring it back into our decision making because of the productivity. It is a harder sell but not impossible. But my sell will be over coming the fear experienced by upper management. "We don't have any Ruby programmers" why not just use J2EE it works for lots of other people. We decided on J2EE as our integration layer, you figure it out." Part of my responsibility isn't just to find tools to make my developers more productive, it's to make the business more productive, more effective, and more profitable (actually in my case it's to control expenses). I also have to manage the entire technology stack from hardware -> operating system -> database -> application/integration layer -> development tools -> desktop applications. Making changes requires understanding all of the implications for each of the layers in the technology stack. They like large proven companies, technologies with large talent bases with experience solving their problems. It's why we continue to evaluate and purchase tier-1 ERP systems even as other web services (SAP's xApps have allowed others to enter the fray). I have to select technologies and platforms that will last for an entire application generation (or longer, I still have COBOL programs that I must support and evolve).
It is all about finding the right tool for the right job. Ruby on Rails offers me some fast productive tools for web based solutions. It might not offer the flexibility I need for other enterprise applications. Fear (Only the Paranoid Survive) is what can keep an organization on top, it worked for Andy Grove and Intel. The goal is mitigate risk and yet to remain open to revolutionary ideas and technologies. Ruby on Rails looks very promising.
Challenge by Guido Kollerie on October 27, 8:53
I am not suggesting that companies should use whatever language or tool their developers come up with. There does need to be some consistency, but that doesn't mean it should be Java across the organisation.
It's my experience that the applications and systems developed are much, much more complex than a particular tool or language. As such learning a new language and or tool requires only a fraction of the amount of time it takes to become familiar with an application or system.
I don't think you need a COBOL programmer to maintain your COBOL programs. You need experienced and flexibel developers that can learn and come up to speed with COBOL quickly. It's just another imperative language.
It's indeed about finding the right tool for the right job. Management should not care whether they do or don't have any Ruby, COBOL, Java, C#, developers. They should care about having flexible and experienced developers that are using the right tool for the right job.
Somehow I doubt that when those managers hire construction workers to build them a house that they would go as far as telling those construction workers what tools to use. They trust the construction workers to know what they're doing. I want them to do the same with their software developers.
Challenge by Fafner on October 27, 9:22
The concept of programmers being able to switch from one language to another is not as simple as it may sound. Imagine that you are an experienced C#/Java-programmer and in your job interview you are told that you'd also have to maintain a very old COBOL application.
I personally might want to take another job offer :-).
Challenge by Andrew Donaldson on October 27, 10:22
Fafner: Part of the fun of those jobs are the sleepless nights trying to figure out the new language your 'can-do' attitude got you involved with. Oh, and the hair loss...
Challenge by Morten on October 27, 11:02
I've been a J2EE developer/consultant from 1998 an up until early 2004 where I joined the dark side and became a project manager. Before J2EE, I did my web-based apps using Perl CGI. The change from Perl CGI to J2EE was a thrill. The productivity gains were enormous, and the language features resulted in improved applications (types, exceptions, compile time errors..).
If I were to sit down and write a web-application now, I would go with Rails for the same reason I prefer J2EE over Perl: Productivity and language features. I'm certain that it will give me a competitive advantage. I miss a good code-completing Ruby editor/IDE and the equivalent of Jakarta/Codehaus projects, and I'm still a bit sceptic of performance - but that's a risk I'm willing to take.
I still like J2EE, and I think it has brought a lot of good as a technology. It's been misused and abused also, too many J2EE applications have failed because of "architects" who over-architected them to death in search of the one design to rule them all. I hold them personally responsible for the lack of J2EE successes.
Challenge by Morten Krog on October 27, 13:20
Andrew: I know enough about COBOL to know that there is no fun in learning what I don't know.
/Morten aka Fafner
Challenge by Morten Wittrock on October 27, 14:02
Be patient; come Y10K those COBOL skills will be in demand again :-)
Challenge by Ben C on October 27, 14:58
Rails IS NOT struts for the Ruby world. Just thought I'd clear that up after I mis-spoke on one of Matt's blog comments. ;)
Admittedly I don't know much about either Ruby or Rails, but the PHB arguments are valid. It's not that we're fearful of influencing them, but rather they just don't listen. I've been shot down on mySQL, Struts?!?! (had to use homebuilt framework), Spring, Tomcat, and Resin. What's one more to add to the list...
Challenge by David Crow on October 27, 15:45
"Finding the right tool for the job" this is exactly the reason I continue to explore and evaluate alternate technologies like Ruby and Ruby on Rails. We have a lot of legacy systems and applications written in a variety of languages. The COBOL ones are most difficult for me, but you are right it is a challenge. The hardest part about picking new technologies is understanding where they fit in my tools or application stack. Ruby looks like a great replacement for the ColdFusion and other web-tier apps we have been building. But can it replace my large-scale enterprise integration layer that currently integrates the web-tier, multiple data sources, (Oracle 8, Oracle 9i, old hierarchical mainframe databases), existing workflows/business process automation tool kits, document imaging, my payroll system, etc. I am convinced that it can eventually. So it's all about finding the right tool for your specific problem.
Challenge by rubyfan on October 27, 19:34
Use fear to your advantage. Something like:
Boss: "But who has ever heard of this Ruby on Rails thingy? Where am I going to find Ruby programmers anyway? ....blah...blah...blah"
You: "Using Ruby on Rails will easily boost our productivity over using J2EE by 2 or 3 X. Do you want our competitors to have that kind of advantage?"
Also, Paul Graham said in one of his essays that Lisp was his secret weapon since he could create applications so much faster in Lisp compared to competitors using C/C++/C#/Java. He doesn't care that Lisp isn't the most widely used language out there, in fact he almost didn't want more developers developing in Lisp so that he could maintain the advantage. Now of course, that means that if you want to use some 'out of the mainstream' tools to boost your productivity then you probably won't be working for PHB Inc. You'll probably be working for yourself.
Challenge by David Heinemeier Hansson on October 27, 19:37
I think that's a great point. I actually like the idea of Ruby on Rails not being available to big corporate companies because it gives the small guys a very nice edge. Just like the one we got and used to build Basecamp.
Challenge by Morten Krog on October 27, 23:52
Anyone that claims that Lisp can give a development speedup is not to be taken seriously. I've taught lisp at first year comp. science at the university of copenhagen at it is a language entirely unsuited for large scale development.
If someone claim otherwise I suggest that that someone should have his head examined.
Challenge by gabriele on October 28, 0:29
Lisp *is* used in large scale development.
At least if you consider airplanes big scale and consider the stuff from itasoftware (graham's society).
Oh, and Viaweb/yahoo store was the first known web application.
Most people don't even know that there are CL implementations as fast as C compilers and with support for 'enteprise' stuff like SOAP or CORBA. Maybe you fall in this category so your opinion on Lisp can be uninformated.
Challenge by Allan Odgaard on October 28, 0:49
Morten, seeing how I was taught LISP (or should I say S-expressions) at the university of Copenhagen, can I assume that your knowledge of LISP is more or less limited to the curricula of this 3 months course?
Cause then you should probably come to the same conclusion with regard to C++ based on the course also taught at DIKU, which touched a similar rather small subset of the actual possibilities with the language.
The beauty of LISP is how code, data, compile-time, and run-time all blends together and allow for a lot of powerful stuff to be expressed with very little code, and while this is certainly not for everybody, it certainly can make the expert extremely productive.
Challenge by Morten Krog on October 28, 0:49
Yeah, Visual Basic and fortran is also used in large scale development. Basically any language is used in any situation. That doesn't make me ignorant nor does it give everyone a competitive advantage,
Lisp is a crazy development language for anything that is not an academic exercise, I'll stand by that.
Challenge by Allan Odgaard on October 28, 0:56
Morten, recent trends in popular programming languages seems to be meta-programming and introspection. Something LISP has had all the time.
Academic ideas take time to mature, so Paul Graham just needs to be patient, not have his head examined!
And while he's patiently awaiting broad adoption of the ideas in LISP, he has the competitive advantage and is the more productive programmer.
Enough said...
Challenge by Morten Krog on October 28, 1:12
Okay that time stamp thing here is sorta scary. I posted before I saw your posting Allan...
I'm not an expert in lisp and I don't think I need to be in order to say what I say. I'm a bit disturbed by the fact that someone uncritically could consider the "blending of compile-time, run-time to allow for a lot of powerful stuff" a good thing.
A lot of languages allows one to express extremly complex things in a neat way that is almost impossible to decipher later. I consider both Lisp and Perl to be languages in that category. Sometimes a languages is better if it forces the programmer to state his intent rather than to have it infered from whatever construct that the language supported.
As an example that I am more fluent with is perl. Regular expressions are neat because you can precisely state your condition in a single expression. At the same time that code becomes unreadable to everyone else, because while it is easy to write a regular expression it is fairly hard to read one!
A language is good if it is good at supporting a programmers mental model of the program and if that language can easily be read. Lisp fails on the last condition.
And btw.: A language does not have to be for everyone, but it does have to be for a lot. Lisp is not for a lot, nor are most other functional language that I like.
Challenge by Allan Odgaard on October 28, 1:41
I think we are a long way from your original claim that LISP could not speed up the development, anyway:
To blend run-time and compile-time allows a) for the programmer to do less repetitive work when he's actually typing the code and b) to actually have the program adapt at run-time in ways otherwise not possible, which is for example what allows something like Rails (which add class methods at run-time AFAIK).
To say that LISP fails the readability-test is really subjective, I'm sure a LISP programmer thinks my C++ is completely unreadable, but have no problem read another LISP programmers source code.
To say that regular expressions are bad because they are not easily readable, well, yes, that's a valid point (although far from all are unreadable, and LISP is really not like regular expressions with 1-2 character codes for actual constructs), but
a) how often do you actually need to change an existing regular expression?
b) how much time do you save when writing a regular expression instead of a custom parser?
c) if there is a comment saying what the regular expression does, isn't that actually better than 20 lines of source code?
d) isn't the chance of doing a buffer-overflow, off-by-one or similar error when writing a custom parser instead of a regular expression a likely outcome? etc. etc.
So while you can point at one bad thing, I really would not like to be without them! I think a LISP programmer would say something similar about LISP, i.e. yes, the parenthesis suck and prefix notation is unnatural, but use it for a while, and you get used to it.
But as said at the top, this is a long way from whether or not LISP can speed up your development.
Challenge by Vincent Foley on October 28, 5:03
Well, if Lisp is unsuited for large systems, I think you oughta call Orbitz and tell them to stop their flight reservation system... Seriously, times change, people want more powerful systems and languages like Lisp, Smalltalk, Ruby and Python gain more and more popularity to create those, because in so-called "traditional" languages such as C, C++ and Java, the task is too hard, the languages are not flexible enough, which is why flexible languages can create software that is more flexible and in less time (cheaper!)
Challenge by nottlv on October 30, 19:37
While I am quite fond of LISP (though I am primarily a Java developer these days), the Orbitz reservation system is a not quite the example of an entire app coded in LISP that some here would like believe:
http://www.newarchitectmag.com/documents/s=2286/new1015626014044/index3.html
"Because of ITA's background in computer science and artificial intelligence, the founders weren't afraid to consider languages outside the normal realm of travel technology. For instance, the conventional programming language for building travel software is Assembly—yes, the same Assembly language from the early days of computing that's just one step up from machine code. Because it was building a Web-based system from the start, Orbitz ditched the travel agencies' assembler legacy and went with Java for about 80 percent of its development efforts. Code that touches data is written in C++, which is considered a more compact and efficient language for performing data-handling tasks.
The high-level algorithms are almost entirely in Lisp, one of the oldest programming languages. You're excused for chuckling, or saying "Why Lisp?" Although the language can be inefficient if used without extreme caution, it has a reputation for compactness. One line of Lisp can replace 20 lines of C. ITA's programmers, who learned the language inside and out while at MIT, note that LISP is highly effective if you ditch the prefabricated data structures. "We're something of a poster child for LISP these days," says Wertheimer. "Lisp vendors love us."
The downside of using a sometimes-maligned language is that it's hard to find good Lisp programmers. Today, only half of ITA's coders are Lisp gurus. For its own Web site, ITA relies on server-side Java, partly because of the availability of capable Java programmers."
I don't know which clients you are dealing with, but we're certainly not seeing any migration to Lisp, Smalltalk, etc. in any of the enterprise clients we deal with.
Challenge by setmajer on January 04, 16:04
Of course most outfits make technology choices out of fear. That's normal. Geoffrey Moore (see: http://www.amazon.com/exec/obidos/ASIN/0060517123/) explains it as clearly as anyone.
Rails cannot happen in a language like Java
Ruby on Rails approximations in Java
Ruby on Rails is stirring up the waters in the Java world. Matt Raible, the man behind AppFuse (kickstarting J2EE development), has been "thinking about Rails ever since I wrote a post about it".
The thoughts must have lead to some frustration with his current environment, though. Here's his description of why doing a CRUD on a single database table would flunk any productivity test:
...if I did it right now in AppFuse's current state, it'd be a disaster... To CRUD a database table using AppFuse you have to create 11 new files and modify 5 existing files. 16 files. What a beotch, huh? If I made a video of this - it'd be 20 minutes long!
While this might make AppFuse look silly, it's really more of a symptom of the patterns we have in J2EE and how we're supposed to architect our apps. 3 tiers, test-driven, loosely-coupled and internationalized.
Compare this to the Rails approach:
class Post < ActiveRecord::Base
# All attributes are given accessors
# through column introspection
end
class WeblogController < ActionController::Base
# The controller now has actions for all
# CRUD operations and uses introspection
# to select the input fields and columns
scaffold :post
end
I'd be depressed too if my environment forced me to go through a 20 minute setup phase (and that's for an expert, I'm sure creating and updating 16 files could easily take longer for people less skilled than Matt).
Naturally, this has spawned interest in remedying the situation for Java. Enter Trails by Chris Nelson:
The Trails framework is a domain driven development framework inspired by others that have gone before it such as Rails and Naked Objects. Its goal is to make developing database-driven web applications in Java radically easier, faster, and more fun. The basic approach is to eliminate as many of the steps as we can.
While I laud the aspirations for easing the pain that is J2EE, I'd advice treating the disease rather than the symptoms. Which is of course while I keep stressing the use of Ruby on Rails instead of just Rails. Rails cannot happen in a language like Java. Approximations will try, though.
So I would recommend trying the real thing before settling with an approximation. This realization came to both Python on Rails, Rails.NET, and Active Record in Tcl.
But if you're stuck with J2EE as a fear-driven technology choice made by higher powers, I most certainly recommend checking out Trails. Chris is picking the best infrastructure J2EE has to offer and will attempt to make it fit like Rails. That's a great starting point and a good vision. Best of luck!
Challenge by Keat on October 29, 12:55
I have been thinking about Rails, too, ever since the first article.
And I like it, having tried my hands in it too.
However, changing jobs (none yet, in Asiapac) or convincing the company to junk J2EE (used to build the several-year-old company core product) just isn't feasible. Yet?
I understand the language plays a big part of why Rails is Rails.. still, efforts to port over the "Rails-way" to Java (or other languages) give people like me a sliver of a chance to live it in our working hours. End of the day, what really captures me is the "Way".
Wiki is the Way for a niche purpose. PHP/Perl/Java/Python Wikis? The more the merrier.
Challenge by David Heinemeier Hansson on October 29, 13:00
Oh, I totally agree. If you're stuck in J2EE (can't change jobs, can't convince higher powers) then Trails sounds like a fantastic project!
If you're not stuck, though. Either because you are working on a personal project, have the power to influence the technology used at your company, or see an opportunity to work with Rails at one of the trend-setting companies, I'd wonder hard why you wouldn't go with the real thing.
Challenge by Marten Veldthuis on October 29, 16:27
Seems like you'll have to use those Jedi mind tricks once again. Remember the "show, don't tell" philosophy, which applies to convincing your management perhaps even more than to convincing fellow programmers. If at all possible, try simply starting off in Rails, and show how this makes your life easier and more productive, and at the end of the day, results in a better product.
Challenge by TobiasLuetke on October 29, 17:10
I agree with Marten,
Its not hard to convince anyone about superior technology if its a win win situation. The next time you have to make this boring admin interface for internal use, do with rails. Sit down, draft the entire thing up using scaffolding in a day. Than invite the people involved to talk about what you have and where you will be going. The question how the hell you got where you were at this point in the project will fall and you can share that you are "evaluating this technology the internet has been raving about" and how it amazes you.
The trick is to play the convinced instead of the convincer, if you tell them how well it worked they will agree and remember when the next projects are started up.
Challenge by Mr eel on October 30, 4:41
I know this is a bit off topic, but I figure it fits into the 'fear/dominant technology' theme kicking about here.
I have been hesitant to learn ruby or use rails.
I just can't seem to find any good web hosting for ruby projects. I'm not about to use the first host I can find. I've been burned before. I'd rather have one reccomended to me.
Anyone have suggestions?
Challenge by David Heinemeier Hansson on October 30, 11:15
TextDrive is the place you want to be. I'm personally involved with the operation and making sure that Ruby on Rails runs perfectly. They have the latest version of Rails installed as gems and you can even run FCGI.
Challenge by Will on November 01, 16:59
I've never used app fuse here, but we use spring/hibernate/xdoclet here at work, and I think it's the best solution to dealing with J2EE's design issues. Part of the problem is that J2EE is solving a much broader problem domain than building CRUD web applications so it's not exactly fair to judge it compared to a focused solution, and part of the problem is that J2EE sucks. I have the descision making power here to switch future projects to Ruby (or whatever) and it looks very interesting -- I've just starting looking into it and am certainly going to be messing around at home with it -- but there are currently too many unknowns.
I don't know if this is the right forum, but by main question is:
How does ruby scale? (i.e. what large sites have successfully used it?)
- Not supporting native OS threads seems like a major no-go to me.
- Non-generational mark-and-sweep GC strategy seems extremely lame.
Challenge by on November 01, 17:56
well, basecamp is the common example for rails.
There are lots of other ruby samples not built on it, so we can suppose it does scale, somewhat.
Ruby supplies to the non native os thread problem the way it is done in many other cases: using processes.
Given that on common unix implementations (i.e. linux) threads and processes are built upon the same syscall (clone() for linux, freebsd has something similar) this seems ok.
Anyway, to scale the core idea is to avoid sharing stuff, leaving the central coordination role to the DBMS. This way you can simply add another web frontend and another coordinated dbms to scale up your application.
Some stuff will be shared, anyway, I can think of the db connection pooling done from fastcgi. It is basically the same approach found in most enterprise solutions done in perl or python or php.
I never really found the need for something different, except in realtion to messaging.
I'd like to have something like JMS for ruby, to leverage al those great messaging engine out there. But I should dig a little into Rinda and Ring, to check if they can fit for some stuff (basically Rinda is similar to JavaSpaces, while Ring is similar to Jini)
About GC.. GC in ruby seems fast enough, but I'd like it to be a 3color generational with write barrier. It sounds much better, even if it may not have an dvantage ;)
HTH
Challenge by David Heinemeier Hansson on November 01, 20:17
Right, I'm only passing judgment on J2EE as a platform to create web-applications -- not it's ability to integrate with bank systems from the 70'ies. But it seems to me that plenty of companies are using J2EE for run-of-the-mill web stuff, which what I think is inefficient.
The problem is probably figuring out where that cut-off point is. When does heavy-handed frameworks like J2EE or .NET start to pull their own weight? I think that cut-off point is much higher than most people would expect.
And I think that people have this misconception that the dynamic languages are unsuitable for "mission critical" applications. Which I believe is a rather silly notion. As a recent example to the contrary, look at the Kapital system that Cincom Smalltalk has been touting as a big win for JP Morgan in advanced trading systems.
Please do let me know what those unknowns are and I'll try to make them 'knows ;) But you're certainly on the right direction. Ruby on Rails is so easy to get into that the only sane way to have a look is just by trying it out.
Rails uses a Share Nothing approach combined with either mod_ruby or Fast CGI, which means that threads and GC strategies doesn't really matter too much. Concurrency is something the database deals with and all the web processing is basically just serialized (through isolated parallel process, of course).
So Ruby on Rails basically scales as deep as your database is able to scale just by adding additional web/application servers.
Challenge by Will on November 01, 20:22
My main issue with ruby's threading approach is that I don't want to further complicated my code with interprocess communication in addition to dealing with multithreading issues. Shouldn't a smartly written threaded application get twice the speed if deployed on an SMP box? All of our production boxes now at at least 4 way, and its easier for me to bind the java vm across all the CPUs, and limit the multiple-process communication to JMS synchronization messages. (Everything else, as you say, is treated as a data issue and pushed to the DB.)
Is there any messaging solution like JMS for ruby? For things like batch-job queuing or the like? What does rails/ruby do for webservices or remoting?
Another issue I'm wondering about is database HA. Right now I favor using oracle in a veritas cluster, and database connections going through a veritas virtual ip. When the database goes down, the datasource drivers sitting ontop of the connection pooling is smart enough to catch SQL exceptions and attempt to reconnect to the new database. I haven't looked at the database pooling strategy of rails, but I would assume that you could build something similar on top without too much difficulty.
Challenge by Will on November 01, 21:45
Thanks for your replies, David and Mr. Anonymous.
I don't really see any issue with "dynamic" languages, per se. There's certainly something to be said about the benefits of programming with a type system to prevent a certain class of bugs from presenting itself, but I think the bigger issure has to do with raw performance. Namely, I think a lack of JIT/HotSpot type technologies is an actual problem. But that's more towards intepreter maturity than a language construct issue.
Its probably time for me to start poking under the hood rather than asking high level questions, but I've got one more anyway. How does the Share Nothing approach deal with maintaining inmemory session data? (My impression is that mod_ruby has everything running inside of the apache process, and that fastcgi passes everything off onto a long running ruby process.) Does whatever load balancing trick available use session affinity so that each session gets routed back to the same 'app server' instance or is there some sort of serializing/marshalling to a common datastore technique deployed?
I'm a big fan of app-level caching, even with the distributed cache coherence issue involved. It's fairly straightforward to send a "object x has been modifed flush from cache" message to a cluster using JMS, but the share nothing technique eschews all of that and trusts the database. (Hibernate, as an aside, also recommends not doing app caching and letting the DB deal with that.) But high volume browse type sites really benefit from the using memory io vs network+disk io of a database. The traffic metric I'm trying to hit is 300 req/second, for data which is effectively static (i.e. changes once a day).
Challenge by gabriele on November 02, 23:27
I don't think you'd get 300 req per second withouth large hardware and replication, but you may get it.
Anyway Rails is really non-optimized (david strictly followed the 'premature optimization is the roo of all evil' , it seems :)
Simple inteprocess comunication is really easy to do with RingServer and rinda, so you may do tour cache invalidation trick with 'em.
There are people (I'm thinking of noaa.gov) using ruby in large distributed environments, and they seem quite happy with it.
Anyway, on the side of EAI the java solution seems still better. I don't think Rinda can bridge MSMQ or Tibco the way jms does. But it's just yet another example of 'use the right tool for the job' :)
Challenge by Brian Rowe on December 21, 20:46
Have their been thoughts to find further performance optimizations in Rails to support higher transaction volumns? I'm looking at Rails as truly incredible for developer performance, but limited to low volumn applications. Its seems that performance degrades considerably even on simple queries. The webserver performance doesn't seem to be an issue.
Comments are closed
Why J2EE sucks
http://deadpelican.com/whyj2eesucks.html
Why J2EE sucks.
A lot of the problems with J2EE have to do with that first E. It stands for Enterprise. I assume we are to infer that it means it's scalable and can handle an obscene amount of usage. My experience has shown me otherwise.
Java's design philosophy is fundamentally flawed in that it conflicts with itself, strong typing AND sloppy garbage collection. One infers that the programmer is supposed to be aware of what his programs are doing, down to the letter, and the other allows him to make objects willy nilly and not worry about cleanup of memory, and since garbage collection is random, you have no ability to control critical performance sections of your program, to keep them from being interrupted by the garbage collector. Perhaps this has been addressed, but certainly if it has, it's a hack.
It is impossible to have the same message driven bean bind to multiple queue listeners. You must make numerous beans, one for each listener. There's no inherent way to scale message beans if you have any requirement of maintaining processing order of items off a queue. Not very Enterprise, if you ask me. A sea of beans makes for a universe of sloppiness that you can't organize or archive away somewhere.
Because the J2EE universe isn't modeled after reality, dealing with reality-tools (CVS for example) is sloppy because nothing else really relates to the paradigm.
Despite the fact that we've been building complex systems for well over 20 years, the idea of planning a build process for Enterprise applications has escaped our J2EE design friends. Ant is the hack designed to address this (yet another) not thought out problem. Make works nicely for the rest of us. �Form over function� they said. J2EE sure looks nice on a powerpoint presentation though, doesn't it.
Performance Performance Performance. (The lack thereof.) Be it local function calls, or using java in the first place, the Enterprise solution for performance is to inhibit it as much as possible.
Buzzword compliance is apparently a major design goal.
There are no less than FOUR layers of abstraction between your program and a queue implementation. How many times have you ever been able to just 'plug in' a new database or messaging service without a major porting effort? It just doesn't work that way.
Portability. How many times have you abandoned support your customer's hardware and switched to a new platform, but thank god, you wrote your applications in java, so they're portable, and will run on any hardware.
RE: Java: p-code didn't work in the 70's I don't see any reason it should now.
Local references are a hack when it was realized that most calls don't need to be remote, and a lot of overhead is caused by all that remoteness on a local machine. And even the local reference interface is still not as simple as a function call. At least 3 to 4 functions are called to call a local function in another bean.
One word: XML.
All this complicated abstraction separating the application from resources like databases works great for the positive test case. But what about when things go wrong? The application has no control over restablishing database connections after a network failure because the container and connection pooler is going to do it for you. And who tells the connection pooler not to open 1000 database connections at the same time? Oh that's right, you're talking about a big system. J2EE doesn't support that.
To say that IBM Websphere (studio and application server) sucks isn't necessarily a degrading comment. In fact, it's a complement. In order to arrive at a good implementation of J2EE, your software must suck. If Websphere ran with any measure of reasonable performance or ease of use, it would by definition be a failure of an implementation of J2EE.
I'll add more as I come across problems.
Dienstag, Juni 27, 2006
Ist Java scheisse? ;-)
"Ich weiß nicht wie ich hier hin komme, aber ich muss meine Meinung zu JAVA abgeben:
Java ist scheisse … eigentlich nur entwickelt damit sich ein paar Informatikstudenten nicht den ganzen Tag am Sack kratzen.
Resourcenfressend, unlogisch….
“To say java is nice, because it works on all platforms, is the same as to say: anal sex is nice, because it works on all genders”
Wenn ich mit C++ “Snake” programmiere, dann brauch ich ca 10 - 20 minuten. Mit Java sitze ich seit 6 Stunden zwischen irgendwelchen Threads…..und es kommt doch nichts... . "
Nun denn - da ist vielleicht ja was dran ;-)
Donnerstag, Juni 22, 2006
PHPTAL - lean and easy-to-use templating engine for PHP
While most web developpers continue to use ASP/JSP/PHP tags as the core language of their templates, the Zope community came with a refreshing idea named TAL. The idea was to move presentation actions inside XHTML attributes instead of using plain tags or elements.
http://phptal.motion-twin.com/introduction.html
Groovy
http://groovy.codehaus.org/
Mittwoch, Juni 21, 2006
AJAX tutorials
Part 2: http://www-128.ibm.com/developerworks/java...tro2/index.html
Part 3: http://www-128.ibm.com/developerworks/xml/.../wa-ajaxintro3/
Part 4: http://www-128.ibm.com/developerworks/web/.../wa-ajaxintro4/
How to Develop Web Applications with Ajax (Jonathan Fenocchi) http://www.webreference.com/programming/ja...pt/jf/column12/
Part 2: http://www.webreference.com/programming/ja...pt/jf/column13/
Part 3: http://www.webreference.com/programming/ja...pt/jf/column14/
Ajax Workshop http://www.ajaxlessons.com/2006/02/11/ajax...th-prototypejs/
Part 2: http://www.ajaxlessons.com/2006/02/18/ajax...tabbed-content/
Part 3: http://www.ajaxlessons.com/2006/02/19/ajax...-scriptaculous/
Part 4: http://www.ajaxlessons.com/2006/03/07/ajax...on-prototypejs/
Ajax with ASP.NET (Bill Pierce) http://www.codeproject.com/Ajax/AJAXWasHere-Part1.asp
Part 2: http://www.codeproject.com/Ajax/AJAXWasHere-Part2.asp
Part 3: http://www.codeproject.com/aspnet/AJAXWasHere-Part3.asp
Ajax: A New Approach to Web Applications (Jesse James Garrett) http://www.adaptivepath.com/publications/e...ives/000385.php
The AJAX Revolution http://www.telerik.com/Default.aspx?PageId=2692
Ajax: Getting Started http://developer.mozilla.org/en/docs/AJAX:Getting_Started
Ajax and JavaScript online books http://2020ok.com/3617.htm
Ajax Design Patterns http://www.ajaxpatterns.org/
Asynchronous JavaScript Technology and XML (AJAX) with J2EE (Greg Murray) http://java.sun.com/developer/technicalArt...AJAX/index.html
AJAX: Asynchronous Java + XML? (Coach K. Wei) http://www.developer.com/design/article.php/3526681
Ajax for Java Developers (Philip McCarthy ) http://www-128.ibm.com/developerworks/libr...=dgr-lnxw01Ajax
Using JavaServer Faces Technology (JSF) with AJAX (Greg Murray, et al) https://bpcatalog.dev.java.net/ajax/jsf-ajax/
AJAX in Action - AJAX and Java Technology http://developers.sun.com/channel/01_06/index.jsp
Fundations of Ajax (Ryan Asleson) http://www.intertech-inc.com/Resource/user...ons_of_Ajax.pdf
Ajax using XMLHttpRequest and Struts (Frank Zammetti) http://www.omnytex.com/articles/xhrstruts/
Using the XML HTTP Request Object (Jim Ley) http://jibbering.com/2002/4/httprequest.html
Dynamical HTML and XML: The XMLHttpRequest Object http://developer.apple.com/internet/webcon...xmlhttpreq.html
Free Trade Magazine Subscriptions & Technical Document Downloads http://i.nl03.net/ltr0/?_m=01.009i.nv.mfm.nv
Ajax Tutorial: Ajax What Is It Good For? http://dhtmlnirvana.com/ajax/ajax_tutorial/
A Simpler Ajax Path (Matthew Eernisse) http://www.onlamp.com/pub/a/onlamp/2005/05...ttprequest.html
Very Dynamic Web Interfaces via Ajax (Drew McLellan) http://www.xml.com/lpt/a/2005/02/09/xml-http-request.html
AJAX Site Design using Prototype http://snyke.net/blog/2006/03/25/site-desi...sing-prototype/
AdvancedAJAX 1.1 http://advajax.anakin.us/index-en.htm
Sprinkle Some AJAX Magic in Your Struts Web Application
This article shows a simple and elegant way to do this by including a couple of lines of JavaScript on your JavaServer Pages (JSPs). While we show how to reuse existing Struts actions, the techniques are equally applicable to the Java-Web framework of your choice. The method proposed will also allow a move to the next version of Struts (Shale) or JavaServer Faces (JSF) in the future.
http://today.java.net/pub/a/today/2005/10/27/sprinkle-ajax-magic-into-struts-webapp.html