summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/ajaxian.xml
blob: 68a2581df6c9b9d5c8cce5857a00a062a952394d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/1.5.2" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ajaxian</title>
	<link>http://ajaxian.com</link>
	<description>Cleaning up the web with Ajax</description>
	<pubDate>Tue, 28 Nov 2006 14:55:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>
	<language>en</language>

		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://ajaxian.com/index.xml" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
		<title>Tasks added to Google Calendar by Milkers</title>
		<link>http://ajaxian.com/archives/tasks-added-to-google-calendar-by-milkers</link>
		<comments>http://ajaxian.com/archives/tasks-added-to-google-calendar-by-milkers#comments</comments>
		<pubDate>Tue, 28 Nov 2006 14:55:53 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Showcase</category>
	<category>Calendar</category>
		<guid>http://ajaxian.com/archives/tasks-added-to-google-calendar-by-milkers</guid>
		<description><![CDATA[	The Remember the Milk folks have added task management to Google Calendar (something many wish Google had added themselves).
	We know that many of you are managing your tasks with Remember The Milk and your events with Google Calendar, and we thought it would be very cool if we could bring the two together. This new [...]]]></description>
			<content:encoded><![CDATA[	<p>The Remember the Milk folks have added <a href="http://blog.rememberthemilk.com/2006/11/add-your-tasks-to-google-calendar.html">task management</a> to Google Calendar (something many wish Google had added themselves).</p>
	<p>We know that many of you are managing your tasks with Remember The Milk and your events with Google Calendar, and we thought it would be very cool if we could bring the two together. This new feature adds a small task icon to the top of each day in Google Calendar &#8212; click on the icon to:</p>
	<ul>
	<li>Review your tasks for the day</li>
	<li>Add new tasks and edit existing ones</li>
	<li>Easily complete and postpone tasks</li>
	<li>Review your overdue tasks</li>
	<li>Optionally show tasks with no due date</li>
	<li>See where your tasks are located on a map (Google Maps integration)</li>
	</ul>
	<p>This is really interesting. An outside group was able to add an important feature that we can not all use in a Google app itself.</p>
	<p><a href="http://blog.rememberthemilk.com/2006/11/add-your-tasks-to-google-calendar.html"><img src="http://tech.cybernetnews.com/wp-content/uploads/2006/11/RememberMilkGC1.jpg" border="0" /></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=fbhz2iq1"><img src="http://feeds.feedburner.com/~f/ajaxian?i=fbhz2iq1" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=yMSQUquM"><img src="http://feeds.feedburner.com/~f/ajaxian?i=yMSQUquM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=eoFosWuU"><img src="http://feeds.feedburner.com/~f/ajaxian?i=eoFosWuU" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=pYIIcHPu"><img src="http://feeds.feedburner.com/~f/ajaxian?i=pYIIcHPu" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/tasks-added-to-google-calendar-by-milkers/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>YUI Resizable Component</title>
		<link>http://ajaxian.com/archives/yui-resizable-component</link>
		<comments>http://ajaxian.com/archives/yui-resizable-component#comments</comments>
		<pubDate>Tue, 28 Nov 2006 13:38:06 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Examples</category>
	<category>Yahoo!</category>
		<guid>http://ajaxian.com/archives/yui-resizable-component</guid>
		<description><![CDATA[	Jack Slocum keeps 'em coming with his detailed post on a reusable component for resizing elements.
	Jack's YAHOO.ext.Resizable component does what it says on the tin, and he shows you:
	
	Basic Resizable div
	Wrapped elements (e.g. text area inside)
	Preserve Ration (e.g. image resizing)
	Transparent Handles
	Customizable Handles
	Snapping to increments
	Animated Transitions
	
	

	
var animated = new YAHOO.ext.Resizable&#40;'animated', &#123;
&#160; &#160; width: 200,
&#160; &#160; height: [...]]]></description>
			<content:encoded><![CDATA[	<p>Jack Slocum keeps 'em coming with his detailed post on <a href="http://www.jackslocum.com/blog/2006/11/24/resizable-reloaded/">a reusable component for resizing elements</a>.</p>
	<p>Jack's YAHOO.ext.Resizable component does what it says on the tin, and he shows you:</p>
	<ul>
	<li>Basic Resizable div</li>
	<li>Wrapped elements (e.g. text area inside)</li>
	<li>Preserve Ration (e.g. image resizing)</li>
	<li>Transparent Handles</li>
	<li>Customizable Handles</li>
	<li>Snapping to increments</li>
	<li>Animated Transitions</li>
	</ul>
	<div class="syntax_hilite">
<div id="javascript-2">
	<div class="javascript">
<span style="color: #003366; font-weight: bold;">var</span> animated = <span style="color: #003366; font-weight: bold;">new</span> YAHOO.<span style="color: #006600;">ext</span>.<span style="color: #006600;">Resizable</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'animated'</span>, <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; width: <span style="color:#800000;">200</span>,<br />
&nbsp; &nbsp; height: <span style="color:#800000;">100</span>,<br />
&nbsp; &nbsp; minWidth:<span style="color:#800000;">100</span>,<br />
&nbsp; &nbsp; minHeight:<span style="color:#800000;">50</span>,<br />
&nbsp; &nbsp; animate:<span style="color: #003366; font-weight: bold;">true</span>,<br />
&nbsp; &nbsp; easing: YAHOO.<span style="color: #006600;">util</span>.<span style="color: #006600;">Easing</span>.<span style="color: #006600;">backIn</span>,<br />
&nbsp; &nbsp; duration:.<span style="color:#800000;">6</span><br />
<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp;</div>
	</div>
</div>
	<p><a href="http://www.jackslocum.com/blog/2006/11/24/resizable-reloaded/"><img src="http://ajaxian.com/wp-content/images/yuiresizable.png" alt="YUI Resizable" border="0" width="208" height="108"/></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=JsRk5j9d"><img src="http://feeds.feedburner.com/~f/ajaxian?i=JsRk5j9d" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=8EjVkg8A"><img src="http://feeds.feedburner.com/~f/ajaxian?i=8EjVkg8A" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=h5DmJGoc"><img src="http://feeds.feedburner.com/~f/ajaxian?i=h5DmJGoc" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=dGR1OTXo"><img src="http://feeds.feedburner.com/~f/ajaxian?i=dGR1OTXo" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/yui-resizable-component/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Mootools Primer</title>
		<link>http://ajaxian.com/archives/mootools-primer</link>
		<comments>http://ajaxian.com/archives/mootools-primer#comments</comments>
		<pubDate>Mon, 27 Nov 2006 15:58:12 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Examples</category>
		<guid>http://ajaxian.com/archives/mootools-primer</guid>
		<description><![CDATA[	Aaron Newton has posted a Mootools Primer / Tutorial that includes "a how-to tutorial on the Mootools library. Most of the code examples will allow you execute them by clicking on the "execute this code" link above the example. Clicking this will echo out the code and the result in the Firebug debugging plugin for [...]]]></description>
			<content:encoded><![CDATA[	<p>Aaron Newton has posted a <a href="http://clientside.cnet.com/examples/mootools-primer/">Mootools Primer / Tutorial</a> that includes "a how-to tutorial on the Mootools library. Most of the code examples will allow you execute them by clicking on the "execute this code" link above the example. Clicking this will echo out the code and the result in the Firebug debugging plugin for Firefox. You'll need that plugin installed to see any results of most of the code examples."</p>
	<p>Currently the tabbed widget shows documentation for the core Moo.js, extensions of JavaScript objects and helpers, Addon libraries, and plugins.</p>
	<p>It behaves a little weird for me with FF2 + Firebug 1.beta, but I can get to the meat of the matter.</p>
	<p><a href="http://clientside.cnet.com/examples/mootools-primer/"><img src="http://ajaxian.com/wp-content/images/mootoolsprimer.png" alt="Mootools Primer" border="0" width="590" height="324"/></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=vfTLBHWH"><img src="http://feeds.feedburner.com/~f/ajaxian?i=vfTLBHWH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=RmZz7WHX"><img src="http://feeds.feedburner.com/~f/ajaxian?i=RmZz7WHX" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=nEOsta0N"><img src="http://feeds.feedburner.com/~f/ajaxian?i=nEOsta0N" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=zmZsFXoa"><img src="http://feeds.feedburner.com/~f/ajaxian?i=zmZsFXoa" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/mootools-primer/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Google Docs and Spreadsheets Team: Web native matters</title>
		<link>http://ajaxian.com/archives/google-docs-and-spreadsheets-team-web-native-matters</link>
		<comments>http://ajaxian.com/archives/google-docs-and-spreadsheets-team-web-native-matters#comments</comments>
		<pubDate>Mon, 27 Nov 2006 15:25:50 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Editorial</category>
		<guid>http://ajaxian.com/archives/google-docs-and-spreadsheets-team-web-native-matters</guid>
		<description><![CDATA[	Richard MacManus linked to a Gizbuzz interview of Jen Mazzon and Sam Schillace of the Google Docs and Spreadsheets team (both ex-Writely).
	Nothing ground-breaking, but it is interesting to hear about their thoughts on Ajax:
	
	Browser compatibility issues - like the early graphic Web
	Next was a question about browser compatibility issues and how that affects D&#038;S - [...]]]></description>
			<content:encoded><![CDATA[	<p>Richard MacManus <a href="http://www.readwriteweb.com/archives/google_docs_and_spreadsheets_interview.php">linked to</a> a <a href="http://gizbuzz.co.uk/2006/podcast-episode-3-google-docs-and-spreadsheets/">Gizbuzz interview of Jen Mazzon and Sam Schillace</a> of the Google Docs and Spreadsheets team (both ex-Writely).</p>
	<p>Nothing ground-breaking, but it is interesting to hear about their thoughts on Ajax:</p>
	<blockquote>
	<h3>Browser compatibility issues - like the early graphic Web</h3>
	<p>Next was a question about browser compatibility issues and how that affects D&#038;S - and indeed the future of rich web applications. Sam responded that "it is definitely an issue [...] these apps are all cutting edge - it kind of reminds me of the early days of the graphical web, when you couldn't count on the browsers to render tables correctly [...]".</p>
	<p>But he thinks it's "just growing pains" and it'll take about a year to sort those issues out.</p>
	<p>Also on the question of whether Ajax is better than Flash and Laszlo etc, Sam thinks that Ajax is currently more web native.</p>
	<h3>It's about being Web native, not cloning desktop apps</h3>
	<p>Later in the interview, Jen stresses that they're "not trying to clone desktop apps". They want to be familiar to people, "but we're trying to do something that's actually more native to the Internet, more usable on the Internet."</p>
	<p>Sam says they've had a lot of feedback that people like the fact they're not trying to copy desktop apps. He said "copying the existing stuff just feels irrelevant to us - we're not trying to copy, we're trying to re-invent."</p>
	<p>Both Jen and Sam re-affirmed that collaboration and sharing is their main focus with D&#038;S, as well as being web native - rather than trying to compete on features with desktop apps.
</p></blockquote>
	<p>If you were asked "why is Ajax a better fit for some apps than Flash?" what would you say? Do you agree? Does the open web matter? What if Adobe fully opened up their format?
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=NCLw33w0"><img src="http://feeds.feedburner.com/~f/ajaxian?i=NCLw33w0" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=gjXowiT4"><img src="http://feeds.feedburner.com/~f/ajaxian?i=gjXowiT4" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=HeKJhsYv"><img src="http://feeds.feedburner.com/~f/ajaxian?i=HeKJhsYv" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=CWr8mgGL"><img src="http://feeds.feedburner.com/~f/ajaxian?i=CWr8mgGL" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/google-docs-and-spreadsheets-team-web-native-matters/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Review of ‘Pro Ajax and Java Frameworks’</title>
		<link>http://ajaxian.com/archives/review-of-pro-ajax-and-java-frameworks</link>
		<comments>http://ajaxian.com/archives/review-of-pro-ajax-and-java-frameworks#comments</comments>
		<pubDate>Mon, 27 Nov 2006 14:14:42 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
		
	<category>Front Page</category>
	<category>Book Reviews</category>
		<guid>http://ajaxian.com/archives/review-of-pro-ajax-and-java-frameworks</guid>
		<description><![CDATA[	
	This is a review of Pro Ajax and Java Frameworks by Nathaniel T. Schutta and Ryan Asleson. This book seeks to give the experienced developer of Java web applications the knowledge necessary to add Ajax to their webapps. This is another Ajax book that goes broad rather than deep. Instead of investigating one or two [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://ajaxian.com/wp-content/images/bcm.gif"><img src="http://ajaxian.com/wp-content/images/bcm_tn.jpg" style="DISPLAY: inline; FLOAT: left; WIDTH: 125px; HEIGHT: 164px" title="bcm.gif" height="164" width="125" alt="bcm.gif" border="0" id="bcm.gif"/></a></p>
	<p>This is a review of <em>Pro Ajax and Java Frameworks</em> by Nathaniel T. Schutta and Ryan Asleson. This book seeks to give the experienced developer of Java web applications the knowledge necessary to add Ajax to their webapps. This is another Ajax book that goes broad rather than deep. Instead of investigating one or two frameworks, it delves into more than a half dozen, both Javascript and Java.</p>
	<p>Quick summary: Chapters 2, 3 and 5 are the strongest in the book with useful information on tools, Javascript libraries and enhancing Struts applications with Ajax. The other chapters are not as strong and spend too much time covering old ground.</p>
	<p>The book is divided into two parts. Part 1 is an introduction to a variety of Javascript and Java Ajax libraries and frameworks. Part 2 shows how to integrate those libraries and frameworks into existing Java web frameworks such as Struts and JSF. One place that this book differs from other Ajax books is that it doesn't have a chapter introducing the reader to the browser technologies that comprise Ajax. It doesn't dwell on the basics of Javascript, DOM and CSS. It expects you to have already read the Apress books on those topics. Instead, chapter 1 covers what I would call best practices and patterns -- autocomplete, partial page update, draggable DOM.</p>
	<p>Read more of the review <a href="http://blogs.pathf.com/agileajax/2006/11/review_of_pro_a.html">here</a>.</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=5FIDIG43"><img src="http://feeds.feedburner.com/~f/ajaxian?i=5FIDIG43" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=5aOiDdHp"><img src="http://feeds.feedburner.com/~f/ajaxian?i=5aOiDdHp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=hunPILOJ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=hunPILOJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=GTSOXqVS"><img src="http://feeds.feedburner.com/~f/ajaxian?i=GTSOXqVS" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/review-of-pro-ajax-and-java-frameworks/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Minus(MO)R a.k.a. Let me write JavaScript but help me!</title>
		<link>http://ajaxian.com/archives/minusmor-aka-let-me-write-javascript-but-help-me</link>
		<comments>http://ajaxian.com/archives/minusmor-aka-let-me-write-javascript-but-help-me#comments</comments>
		<pubDate>Mon, 27 Nov 2006 14:03:41 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>JavaScript</category>
	<category>Library</category>
	<category>Rails</category>
		<guid>http://ajaxian.com/archives/minusmor-aka-let-me-write-javascript-but-help-me</guid>
		<description><![CDATA[	Dan Webb has created two Rails plugins to make RJS even better. He has realised that although for some cases RJS is a great thing, you often do want to just use JavaScript, and it looks really ugly to do this:
	

	
page &#38;lt;&#38;lt;'if (someClientSideVariable) {'
page['a'].replace_html :partial =&#38;gt; 'thing'
page &#38;lt;&#38;lt;'} else {'
page['b'].replace_html :partial =&#38;gt; 'thong'
page &#38;lt;&#38;lt;'}'

	

	He first [...]]]></description>
			<content:encoded><![CDATA[	<p>Dan Webb has created two Rails plugins to make RJS even better. He has realised that although for some cases RJS is a great thing, you often do want to just use JavaScript, and it looks really ugly to do this:</p>
	<div class="syntax_hilite">
<div id="ruby-5">
	<div>
page &amp;lt;&amp;lt;'if (someClientSideVariable) {'<br />
page['a'].replace_html :partial =&amp;gt; 'thing'<br />
page &amp;lt;&amp;lt;'} else {'<br />
page['b'].replace_html :partial =&amp;gt; 'thong'<br />
page &amp;lt;&amp;lt;'}'
</div>
	</div>
</div>
	<p>He first came out with <a href="http://svn.danwebb.net/external/rails/plugins/minus_r/trunk/">MinusR</a> which takes of your rjs files and lets you code in JS, but still call out to the ruby style. For example:</p>
	<div class="syntax_hilite">
<div id="javascript-6">
	<div class="javascript">
<span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>someClientSideVariable<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span>&amp;lt;%=js render<span style="color:#006600; font-weight:bold;">&#40;</span>:partial =&gt; <span style="color: #3366CC;">'thing'</span><span style="color:#006600; font-weight:bold;">&#41;</span> %&amp;gt;<span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'b'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span>&amp;lt;%=js render<span style="color:#006600; font-weight:bold;">&#40;</span>:partial =&gt; <span style="color: #3366CC;">'thong'</span><span style="color:#006600; font-weight:bold;">&#41;</span> %&amp;gt;<span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp;</div>
	</div>
</div>
	<blockquote><p>
MinusR gives you the js helper that calls to_json on any value passed to it so you can drop nicely escaped and formatted data into your script as before. Everyone’s a winner. Well, not quite, I could be going out on a limb here but I really think this is the better way. Go on, give it a go. A bit of javaScript won’t hurt you….
</p></blockquote>
	<p>Then a bunch of people wanted this to be doable, but in a separate file, so Dan created <a href="http://www.danwebb.net/2006/11/24/minusmor-released">MinusMOR</a>, which let's you do the same thing in .ejs files.</p>
	<p>It is great to be able to choice your poison, even on a case by case basis, and decide whether JS or Ruby is the ruler.
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=KzOPpBLk"><img src="http://feeds.feedburner.com/~f/ajaxian?i=KzOPpBLk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=tyZWuMpT"><img src="http://feeds.feedburner.com/~f/ajaxian?i=tyZWuMpT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=cYtOaSvj"><img src="http://feeds.feedburner.com/~f/ajaxian?i=cYtOaSvj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=e2UryVSj"><img src="http://feeds.feedburner.com/~f/ajaxian?i=e2UryVSj" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/minusmor-aka-let-me-write-javascript-but-help-me/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Zamzar: Online file conversion</title>
		<link>http://ajaxian.com/archives/zamzar-online-file-conversion</link>
		<comments>http://ajaxian.com/archives/zamzar-online-file-conversion#comments</comments>
		<pubDate>Mon, 27 Nov 2006 13:23:12 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Showcase</category>
		<guid>http://ajaxian.com/archives/zamzar-online-file-conversion</guid>
		<description><![CDATA[	Zamzar is a simple, single page ajax application that lets you upload a file and convert it to something else. E.g.
	
	Make your PDF documents editable by converting them to MS Word
	Convert your ITunes (aac) files to mp3
	Upload up to 5 files at a time to convert simultaneously
	Take advantage of over 150 different conversion types
	
	

]]></description>
			<content:encoded><![CDATA[	<p><a href="http://www.zamzar.com/">Zamzar</a> is a simple, single page ajax application that lets you upload a file and convert it to something else. E.g.</p>
	<ul>
	<li>Make your PDF documents editable by converting them to MS Word</li>
	<li>Convert your ITunes (aac) files to mp3</li>
	<li>Upload up to 5 files at a time to convert simultaneously</li>
	<li>Take advantage of over 150 different conversion types</li>
	</ul>
	<p><a href="http://www.zamzar.com/"><img src="http://ajaxian.com/wp-content/images/zamzar.png" alt="ZamZar" border="0" width="778" height="549"/></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=2bVY3cIM"><img src="http://feeds.feedburner.com/~f/ajaxian?i=2bVY3cIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=YNCLGcXg"><img src="http://feeds.feedburner.com/~f/ajaxian?i=YNCLGcXg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=qgnycv1k"><img src="http://feeds.feedburner.com/~f/ajaxian?i=qgnycv1k" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=wnoUHPGJ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=wnoUHPGJ" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/zamzar-online-file-conversion/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>CSS Evolution</title>
		<link>http://ajaxian.com/archives/css-evolution</link>
		<comments>http://ajaxian.com/archives/css-evolution#comments</comments>
		<pubDate>Sat, 25 Nov 2006 17:12:26 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Fun</category>
	<category>CSS</category>
		<guid>http://ajaxian.com/archives/css-evolution</guid>
		<description><![CDATA[	
	Evolution of the web in real-time. I hope you are having a good weekend (a Thanksgiving one for the US folk).

]]></description>
			<content:encoded><![CDATA[	<p><img src="http://mboffin.com/stuff/designline-openair.gif" width="512" height="384" border="0" /></p>
	<p>Evolution of the web in real-time. I hope you are having a good weekend (a Thanksgiving one for the US folk).
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=0Oe2jHNg"><img src="http://feeds.feedburner.com/~f/ajaxian?i=0Oe2jHNg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=dnGk0cRj"><img src="http://feeds.feedburner.com/~f/ajaxian?i=dnGk0cRj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=Tt4f4R3d"><img src="http://feeds.feedburner.com/~f/ajaxian?i=Tt4f4R3d" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=G46q0PCO"><img src="http://feeds.feedburner.com/~f/ajaxian?i=G46q0PCO" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/css-evolution/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Poly9’s Polyvalent Javascript URL Parser</title>
		<link>http://ajaxian.com/archives/poly9s-polyvalent-javascript-url-parser</link>
		<comments>http://ajaxian.com/archives/poly9s-polyvalent-javascript-url-parser#comments</comments>
		<pubDate>Sat, 25 Nov 2006 15:00:34 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>JavaScript</category>
	<category>Library</category>
		<guid>http://ajaxian.com/archives/poly9s-polyvalent-javascript-url-parser</guid>
		<description><![CDATA[	Denis Laprise and the Poly9 Group needed a robust URL parser in JavaScript, so they created the Polyvalent Javascript URL Parser.
	

	
var p = new Poly9.URLParser&#40;'http://user:password@poly9.com/pathname?arguments=1#fragment'&#41;;
p.getHost&#40;&#41; == 'poly9.com';
p.getProtocol&#40;&#41; == 'http';
p.getPathname&#40;&#41; == '/pathname';
p.getQuerystring&#40;&#41; == 'arguments=1';
p.getFragment&#40;&#41; == 'fragment';
p.getUsername&#40;&#41; == 'user';
p.getPassword&#40;&#41; == 'password';
	p.setURL&#40;'another.url.com'&#41;;
p.getHost&#40;&#41; == 'another.url.com';
p.getProtocol&#40;&#41; == '';
	p.setURL&#40;'dsdsad'&#41;; // throws an exception
&#160;
	

	This smells like a Java group writing JavaScript to [...]]]></description>
			<content:encoded><![CDATA[	<p>Denis Laprise and the Poly9 Group needed a robust URL parser in JavaScript, so they <a href="https://code.poly9.com/trac/wiki/URLParser">created the Polyvalent Javascript URL Parser</a>.</p>
	<div class="syntax_hilite">
<div id="javascript-8">
	<div class="javascript">
<span style="color: #003366; font-weight: bold;">var</span> p = <span style="color: #003366; font-weight: bold;">new</span> Poly9.<span style="color: #006600;">URLParser</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'http://user:password@poly9.com/pathname?arguments=1#fragment'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
p.<span style="color: #006600;">getHost</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'poly9.com'</span>;<br />
p.<span style="color: #006600;">getProtocol</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'http'</span>;<br />
p.<span style="color: #006600;">getPathname</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'/pathname'</span>;<br />
p.<span style="color: #006600;">getQuerystring</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'arguments=1'</span>;<br />
p.<span style="color: #006600;">getFragment</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'fragment'</span>;<br />
p.<span style="color: #006600;">getUsername</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'user'</span>;<br />
p.<span style="color: #006600;">getPassword</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'password'</span>;</p>
	<p>p.<span style="color: #006600;">setURL</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'another.url.com'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
p.<span style="color: #006600;">getHost</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'another.url.com'</span>;<br />
p.<span style="color: #006600;">getProtocol</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">''</span>;</p>
	<p>p.<span style="color: #006600;">setURL</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'dsdsad'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color: #009900; font-style: italic;">// throws an exception</span><br />
&nbsp;</div>
	</div>
</div>
	<p>This smells like a Java group writing JavaScript to me with the camelCase and thus p.getUsername() instead of p.username.</p>
	<p>You can check out <a href="https://code.poly9.com/trac/browser/urlparser/urlparser.js?format=txt">the implementation</a> and the <a href="https://code.poly9.com/files/urlparser-0.1.zip">test suite (zip)</a>.
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=ZVMtMQRn"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ZVMtMQRn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=TTsAAACX"><img src="http://feeds.feedburner.com/~f/ajaxian?i=TTsAAACX" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=LDXEbvr2"><img src="http://feeds.feedburner.com/~f/ajaxian?i=LDXEbvr2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=Uk6myWFs"><img src="http://feeds.feedburner.com/~f/ajaxian?i=Uk6myWFs" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/poly9s-polyvalent-javascript-url-parser/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>DOMContentLoaded.Next</title>
		<link>http://ajaxian.com/archives/domcontentloadednext</link>
		<comments>http://ajaxian.com/archives/domcontentloadednext#comments</comments>
		<pubDate>Sat, 25 Nov 2006 14:29:00 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>JavaScript</category>
	<category>Tip</category>
		<guid>http://ajaxian.com/archives/domcontentloadednext</guid>
		<description><![CDATA[	Andrea Giammarchi has taken the work of Dean Edwards, Mark Wubben, and Paul Sowden to create his DOMContentLoaded Final Solution.
	The work comes with a test page for http and https, and is documented in this function:
	

	
function onContent&#40;callback&#41;&#123; // (C) webreflection.blogspot.com
&#160; &#160; // [please note that this code doesn't work]
	&#160;// private scope variable
	&#160;var IEStringToWrite =&#160; // [...]]]></description>
			<content:encoded><![CDATA[	<p>Andrea Giammarchi has taken the work of <a href="http://dean.edwards.name/weblog/2005/09/busted/">Dean</a> <a href="http://dean.edwards.name/weblog/2006/06/again/">Edwards</a>, <a href="http://novemberborn.net/colophon">Mark Wubben</a>, and <a href="http://delete.me.uk/">Paul Sowden</a> to create <a href="http://www.3site.eu/jstests/onContent/final.html">his DOMContentLoaded Final Solution</a>.</p>
	<p>The work comes with a test page for <a href="http://www.3site.eu/jstests/onContent/final.html">http</a> and <a href="https://server3.phpsoft.it:8111/antrea/">https</a>, and is documented in this function:</p>
	<div class="syntax_hilite">
<div id="javascript-10">
	<div class="javascript">
<span style="color: #003366; font-weight: bold;">function</span> onContent<span style="color:#006600; font-weight:bold;">&#40;</span>callback<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color: #009900; font-style: italic;">// (C) webreflection.blogspot.com</span><br />
&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// [please note that this code doesn't work]</span></p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// private scope variable</span></p>
	<p>&nbsp;<span style="color: #003366; font-weight: bold;">var</span> IEStringToWrite =&nbsp; <span style="color: #009900; font-style: italic;">// this is IE dedicated string</span></p>
	<p>&nbsp; <span style="color: #3366CC;">"&lt;script defer src='//:' onreadystatechange='<br />
&nbsp; (function(element){<br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp;// if readystate is complete<br />
&nbsp; &nbsp;if(element.readyState === "</span>complete<span style="color: #3366CC;">")</p>
	<p>&nbsp; &nbsp; // call the global variable<br />
&nbsp; &nbsp; window.__onContent__();<br />
&nbsp; })(this);<br />
&nbsp; '&gt;&lt;/script&gt;"</span>;</p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// the above string is necessary to use onreadystatechange property</span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// with an undefined page. In this way IE tell us the readyState</span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// of the current document</span></p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// to call callback function IE need a global scope variable</span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// this variable could call one or more callback</span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// then if it's already created we need to call the old callback</span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// then this new callback</span><br />
&nbsp;window.__onContent__ = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>oldCallback<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #009900; font-style: italic;">// returns a function that will delete __onContent__</span><br />
&nbsp; <span style="color: #009900; font-style: italic;">// to remove multiple callbacks with different </span><br />
&nbsp; <span style="color: #009900; font-style: italic;">// events and different ways for each browser</span></p>
	<p>&nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></p>
	<p>&nbsp; &nbsp;<span style="color: #009900; font-style: italic;">// clear __onContent__ as generic function</span><br />
&nbsp; &nbsp;window.__onContent__ = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp;<span style="color: #009900; font-style: italic;">// checks if oldCallback isn't null or undefined</span><br />
&nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>oldCallback<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; oldCallback<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color: #009900; font-style: italic;">// call them to preserve the right order</span></p>
	<p>&nbsp; &nbsp;callback<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; <span style="color: #009900; font-style: italic;">// call this scope callback function </span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// (sent calling onContent)</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp; <br />
&nbsp;<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span>window.__onContent__<span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color: #009900; font-style: italic;">// undefined if is the first time we use __onContent__</span></p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// __onContent__ is my function to use as callback</span></p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// I need to add this function as event</span></p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// Opera 9 and FireFox both support DOMContentLoaded as well as </span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// addEventListener document method</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>document.<span style="color: #006600;">addEventListener</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; document.<span style="color: #006600;">addEventListener</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"DOMContentLoaded"</span>, __onContent__, <span style="color: #003366; font-weight: bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// if some browser supports addEventListener but doesn't support DOMContentLoaded </span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// event I don't need to care about that because this event will never be fired</span></p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// at the same time if Safari or KDE one day will support DOMContentLoaded </span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// I prefere use this dedicated in-core</span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// event instead of next trick that's quite horrible but works with Safari, </span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// KDE as Opera 8.5 and lower too</span></p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// that's why I don't use an else if but an if ... because the first time </span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// event will be fired __onContent__ </span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// became an empty function ... then calling them twice is not a problem</span></p>
	<p>&nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><br />
&nbsp; <span style="color: #009900; font-style: italic;">// Safari and KDE</span><br />
&nbsp; <span style="color: #0066FF;">/WebKit|Khtml/i</span>.<span style="color: #006600;">test</span><span style="color:#006600; font-weight:bold;">&#40;</span>navigator.<span style="color: #006600;">userAgent</span><span style="color:#006600; font-weight:bold;">&#41;</span> ||</p>
	<p>&nbsp; <span style="color: #009900; font-style: italic;">// Opera less than 9</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#40;</span>window.<span style="color: #006600;">opera</span> &amp;&amp; parseInt<span style="color:#006600; font-weight:bold;">&#40;</span>window.<span style="color: #006600;">opera</span>.<span style="color: #006600;">version</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>&amp;lt;<span style="color:#800000;">9</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp;<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color: #009900; font-style: italic;">// runtime anonymous function</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></p>
	<p>&nbsp; &nbsp;<span style="color: #009900; font-style: italic;">// checks if document.readyState is loaded or complete</span><br />
&nbsp; &nbsp;<span style="color: #0066FF;">/loaded|complete/</span>.<span style="color: #006600;">test</span><span style="color:#006600; font-weight:bold;">&#40;</span>document.<span style="color: #006600;">readyState</span><span style="color:#006600; font-weight:bold;">&#41;</span> ?</p>
	<p>&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// then call __onContent__ , stopping internal loop</span><br />
&nbsp; &nbsp; window.__onContent__<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> :</p>
	<p>&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// or loops itself with the faster timeout</span><br />
&nbsp; &nbsp; setTimeout<span style="color:#006600; font-weight:bold;">&#40;</span>arguments.<span style="color: #006600;">callee</span>, <span style="color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
	<p>&nbsp;<span style="color: #009900; font-style: italic;">// at this point I've setted the DOMContentLoaded event for every browser</span><br />
&nbsp;<span style="color: #009900; font-style: italic;">// but not for Inernet Explorer.</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #0066FF;">/MSIE/i</span>.<span style="color: #006600;">test</span><span style="color:#006600; font-weight:bold;">&#40;</span>navigator.<span style="color: #006600;">userAgent</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span></p>
	<p>&nbsp; <span style="color: #009900; font-style: italic;">// I can write dedicated string</span><br />
&nbsp; document.<span style="color: #006600;">write</span><span style="color:#006600; font-weight:bold;">&#40;</span>IEStringToWrite<span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
&nbsp;</div>
	</div>
</div>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=luo1Gwyw"><img src="http://feeds.feedburner.com/~f/ajaxian?i=luo1Gwyw" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=aQvBKJJ3"><img src="http://feeds.feedburner.com/~f/ajaxian?i=aQvBKJJ3" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=TJtOXhwL"><img src="http://feeds.feedburner.com/~f/ajaxian?i=TJtOXhwL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=LNNtLH7H"><img src="http://feeds.feedburner.com/~f/ajaxian?i=LNNtLH7H" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/domcontentloadednext/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Using the Eclipse AJAX Toolkit Framework (ATF) Webinar</title>
		<link>http://ajaxian.com/archives/using-the-eclipse-ajax-toolkit-framework-atf-webinar</link>
		<comments>http://ajaxian.com/archives/using-the-eclipse-ajax-toolkit-framework-atf-webinar#comments</comments>
		<pubDate>Sat, 25 Nov 2006 04:04:00 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Presentation</category>
		<guid>http://ajaxian.com/archives/using-the-eclipse-ajax-toolkit-framework-atf-webinar</guid>
		<description><![CDATA[	We don't normally post webinars, but thought "what the hell it's Friday".
	On November 30, the Eclipse foundation will be hosting a 1 hour webinar titled Using the Eclipse Ajax Toolkit Framework (ATF).
	Eclipse ATF provides exemplary tools for creating and debugging Ajax applications.  These tools include enhanced JavaScript editing features such as edit-time syntax checking, [...]]]></description>
			<content:encoded><![CDATA[	<p>We don't normally post webinars, but thought "what the hell it's Friday".</p>
	<p>On November 30, the Eclipse foundation will be hosting a 1 hour webinar titled <a href="http://www.eclipse.org/community/webinars2006.php">Using the Eclipse Ajax Toolkit Framework (ATF)</a>.</p>
	<p>Eclipse ATF provides exemplary tools for creating and debugging Ajax applications.  These tools include enhanced JavaScript editing features such as edit-time syntax checking, an embedded DOM browser, CSS Tools, JavaScript debugger, a JavaScript console, and an embedded Mozilla web browser.   This webinar will demonstrate how to use ATF to create, debug, and deploy an Ajax application on both Apache and J2EE servers.</p>
	<p>Register by emailing <a href="mailto:webinar-atf@eclipse.org">webinar-atf@eclipse.org</a></p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=Qh1EpBSt"><img src="http://feeds.feedburner.com/~f/ajaxian?i=Qh1EpBSt" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=SHKUMbcJ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=SHKUMbcJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=xZxME2vY"><img src="http://feeds.feedburner.com/~f/ajaxian?i=xZxME2vY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=ZLlrYLtO"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ZLlrYLtO" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/using-the-eclipse-ajax-toolkit-framework-atf-webinar/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Another trick to allow Array subclasses</title>
		<link>http://ajaxian.com/archives/another-trick-to-allow-array-subclasses</link>
		<comments>http://ajaxian.com/archives/another-trick-to-allow-array-subclasses#comments</comments>
		<pubDate>Fri, 24 Nov 2006 15:59:15 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>JavaScript</category>
	<category>Tip</category>
		<guid>http://ajaxian.com/archives/another-trick-to-allow-array-subclasses</guid>
		<description><![CDATA[	Dean Edwards talked about his hack that got us the ability to subclass the Array object in JavaScript.
	Hedger Wang has a new hack that uses window.createPopup instead of an iframe to for IE to fix some issues.
	If you take a view source to see what is in there, you get the gem:
	

	
;&#40;function&#40;&#41;&#123;
&#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://dean.edwards.name/weblog/2006/11/hooray/">Dean Edwards</a> talked about his hack that got us the ability to subclass the Array object in JavaScript.</p>
	<p><a href="http://www.hedgerwow.com/360/dhtml/js-array2.html">Hedger Wang has a new hack</a> that uses <a href="http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/createpopup.asp">window.createPopup</a> instead of an iframe to for IE to fix some issues.</p>
	<p>If you take a view source to see what is in there, you get the gem:</p>
	<div class="syntax_hilite">
<div id="javascript-12">
	<div class="javascript">
;<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>!window.<span style="color: #006600;">createPopup</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span><span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> fs = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066FF;">/==/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> Array2 = parent.<span style="color: #006600;">Array2</span> ;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> p1 = Array.<span style="color: #006600;">prototype</span> ;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> p2 = Array2.<span style="color: #006600;">prototype</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">for</span><span style="color:#006600; font-weight:bold;">&#40;</span>i <span style="color: #000066; font-weight: bold;">in</span> p2 <span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p1<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006600; font-weight:bold;">&#93;</span> = p2<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006600; font-weight:bold;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; parent.<span style="color: #006600;">Array2</span> = Array;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; parent.<span style="color: #006600;">document</span>.<span style="color: #006600;">title</span> = <span style="color: #3366CC;">'Array2 is ready'</span>;<span style="color: #009900; font-style: italic;">/*debug msg*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066FF;">/==/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; document.<span style="color: #006600;">title</span> = <span style="color: #3366CC;">'Prepare Array2'</span>;<span style="color: #009900; font-style: italic;">/*debug msg*/</span></p>
	<p>&nbsp; &nbsp; &nbsp; &nbsp; fs = <span style="color:#006600; font-weight:bold;">&#40;</span>fs + <span style="color: #3366CC;">''</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">split</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'/==/'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; window.<span style="color: #006600;">createPopup</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">document</span>.<span style="color: #006600;">body</span>.<span style="color: #006600;">innerHTML</span> = <span style="color: #3366CC;">'&lt;img src=&quot;null&quot; onerror=&quot;'</span> +&nbsp; fs + <span style="color: #3366CC;">'&quot; /&gt;'</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
	<p><span style="color: #003366; font-weight: bold;">var</span> Array2 = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Array2.<span style="color: #006600;">prototype</span> = <span style="color: #003366; font-weight: bold;">new</span> Array;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Array2.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">bar</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">alert</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"this.bar() --&gt; This.Length="</span> + <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">length</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp;</div>
	</div>
</div>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=SCY03YAX"><img src="http://feeds.feedburner.com/~f/ajaxian?i=SCY03YAX" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=sBDwsM9P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=sBDwsM9P" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=dlKtpJWr"><img src="http://feeds.feedburner.com/~f/ajaxian?i=dlKtpJWr" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=HXHKOiMI"><img src="http://feeds.feedburner.com/~f/ajaxian?i=HXHKOiMI" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/another-trick-to-allow-array-subclasses/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Dropboks: File Storage on One Page</title>
		<link>http://ajaxian.com/archives/dropboks-file-storage-on-one-page</link>
		<comments>http://ajaxian.com/archives/dropboks-file-storage-on-one-page#comments</comments>
		<pubDate>Fri, 24 Nov 2006 15:51:41 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Prototype</category>
	<category>Showcase</category>
		<guid>http://ajaxian.com/archives/dropboks-file-storage-on-one-page</guid>
		<description><![CDATA[	Dropboks is a single page application build on Prototype and friends, that allows you to simply upload files for safe keeping.
	The application is ad free, and survives on user donations. They do a good job at letting you use it pre-signup, and giving good info via tooltips.
	

]]></description>
			<content:encoded><![CDATA[	<p><a href="http://www.dropboks.com/">Dropboks</a> is a single page application build on Prototype and friends, that allows you to simply upload files for safe keeping.</p>
	<p>The application is ad free, and survives on user donations. They do a good job at letting you use it pre-signup, and giving good info via tooltips.</p>
	<p><a href="http://www.dropboks.com/"><img src="http://ajaxian.com/wp-content/images/dropboks.png" alt="Dropboks" border="0" width="491" height="447"/></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=7bnp189c"><img src="http://feeds.feedburner.com/~f/ajaxian?i=7bnp189c" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=IvtaWoMQ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=IvtaWoMQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=b96Y4b2A"><img src="http://feeds.feedburner.com/~f/ajaxian?i=b96Y4b2A" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=ZVgVpc8A"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ZVgVpc8A" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/dropboks-file-storage-on-one-page/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Spelling Cow: JS Spell Checker</title>
		<link>http://ajaxian.com/archives/spelling-cow-js-spell-checker</link>
		<comments>http://ajaxian.com/archives/spelling-cow-js-spell-checker#comments</comments>
		<pubDate>Fri, 24 Nov 2006 15:46:11 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
		<guid>http://ajaxian.com/archives/spelling-cow-js-spell-checker</guid>
		<description><![CDATA[	Spelling Cow allows you add a script tag, and spell check is enabled on your website. There are also some variables you can tweak too if advanced features are needed.
	This means that you can add spell checking to your applications, but as the latest browsers have added inline spell check, is there use to it?
	

]]></description>
			<content:encoded><![CDATA[	<p><a href="http://www.spellingcow.com/">Spelling Cow</a> allows you add a script tag, and spell check is enabled on your website. There are also some variables you can tweak too if advanced features are needed.</p>
	<p>This means that you can add spell checking to your applications, but as the latest browsers have added inline spell check, is there use to it?</p>
	<p><a href="http://www.spellingcow.com/"><img src="http://ajaxian.com/wp-content/images/spellingcow.png" alt="Spelling Cow" border="0" width="438" height="213"/></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=dBmR5JBn"><img src="http://feeds.feedburner.com/~f/ajaxian?i=dBmR5JBn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=GL67PTiz"><img src="http://feeds.feedburner.com/~f/ajaxian?i=GL67PTiz" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=PM8SsmlP"><img src="http://feeds.feedburner.com/~f/ajaxian?i=PM8SsmlP" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=038oiFok"><img src="http://feeds.feedburner.com/~f/ajaxian?i=038oiFok" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/spelling-cow-js-spell-checker/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>CSS Tab Designer</title>
		<link>http://ajaxian.com/archives/css-tab-designer</link>
		<comments>http://ajaxian.com/archives/css-tab-designer#comments</comments>
		<pubDate>Fri, 24 Nov 2006 15:40:05 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>CSS</category>
		<guid>http://ajaxian.com/archives/css-tab-designer</guid>
		<description><![CDATA[	Now we are getting niche. A tool that lets you design CSS tabs:
	With the CSS Tab Designer, you can: 
	
	Quickly design your list visually.
	Choose from a variety of styles/colors (60+ different designs/colors supported).
	Generate strict xhtml compliant code.
	
	

]]></description>
			<content:encoded><![CDATA[	<p>Now we are getting niche. A tool that lets you <a href="http://www.highdots.com/css-tab-designer/">design CSS tabs</a>:</p>
	<p>With the CSS Tab Designer, you can: </p>
	<ul>
	<li>Quickly design your list visually.</li>
	<li>Choose from a variety of styles/colors (60+ different designs/colors supported).</li>
	<li>Generate strict xhtml compliant code.</li>
	</ul>
	<p><a href="http://www.highdots.com/css-tab-designer/"><img src="http://www.highdots.com/static/css-list/images/vertical-tabs.png" border="0" /></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=J8dJMlWf"><img src="http://feeds.feedburner.com/~f/ajaxian?i=J8dJMlWf" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=3ahtUcPZ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=3ahtUcPZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=rLuj7mAO"><img src="http://feeds.feedburner.com/~f/ajaxian?i=rLuj7mAO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=S5YYTws3"><img src="http://feeds.feedburner.com/~f/ajaxian?i=S5YYTws3" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/css-tab-designer/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Open-jACOB Draw2D</title>
		<link>http://ajaxian.com/archives/open-jacob-draw2d</link>
		<comments>http://ajaxian.com/archives/open-jacob-draw2d#comments</comments>
		<pubDate>Thu, 23 Nov 2006 16:44:35 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>JavaScript</category>
	<category>Library</category>
	<category>Showcase</category>
		<guid>http://ajaxian.com/archives/open-jacob-draw2d</guid>
		<description><![CDATA[	Open-jACOB Draw2D is a JavaScript library that allows you to create drawings and diagrams.
	The User interface allows interactive drawing by using your standard browser.
No additional software; no third party plug ins. Just run it and use it.
	Open-jACOB Draw2D is the graph component of the Open-jACOB online
Workflow editor. The purpose of this experiment is to see [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://www.openjacob.org/draw2d.html">Open-jACOB Draw2D</a> is a JavaScript library that allows you to create drawings and diagrams.</p>
	<p>The User interface allows interactive drawing by using your standard browser.<br />
No additional software; no third party plug ins. Just run it and use it.</p>
	<p>Open-jACOB Draw2D is the graph component of the Open-jACOB online<br />
Workflow editor. The purpose of this experiment is to see if a Visio-type workflow<br />
editor tool could be developed in a web browser - It is possible.</p>
	<p>Check out an <a href="http://www.openjacob.org/draw2d/simple_interactive/index.html">interactive demo</a>.</p>
	<p><a href="http://www.openjacob.org/draw2d.html"><img src="http://www.openjacob.org/images/draw2d/screen1.png" border="0" width="414" height="215" /></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=Yd5t6AMQ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=Yd5t6AMQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=2P9Evaik"><img src="http://feeds.feedburner.com/~f/ajaxian?i=2P9Evaik" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=GexsRwE8"><img src="http://feeds.feedburner.com/~f/ajaxian?i=GexsRwE8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=IySCRpjz"><img src="http://feeds.feedburner.com/~f/ajaxian?i=IySCRpjz" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/open-jacob-draw2d/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Google Pages Adds Nice Image Editing</title>
		<link>http://ajaxian.com/archives/google-pages-adds-nice-image-editing</link>
		<comments>http://ajaxian.com/archives/google-pages-adds-nice-image-editing#comments</comments>
		<pubDate>Thu, 23 Nov 2006 16:15:04 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>JavaScript</category>
	<category>Showcase</category>
	<category>Google</category>
	<category>UI</category>
		<guid>http://ajaxian.com/archives/google-pages-adds-nice-image-editing</guid>
		<description><![CDATA[	When I heard about JotSpot heading to the Googleplex I was excited to know that Abe Fettig (Jot) would be teaming up with the brains at Google Pages, and I can't wait to see what happens in the world of WYSIWYG editing tools.
	Google Pages just released a few features, and one of them is an [...]]]></description>
			<content:encoded><![CDATA[	<p>When I heard about JotSpot heading to the Googleplex I was excited to know that Abe Fettig (Jot) would be teaming up with the brains at Google Pages, and I can't wait to see what happens in the world of WYSIWYG editing tools.</p>
	<p><a href="http://pages.google.com/">Google Pages</a> just released a few features, and one of them is an improved process for working with images.</p>
	<p>Firstly, the way you get photos up is simple and clean, but when when you have an image, you can click on it and you are shown a bunch of tools that allow you to manipulate the image inline, right there on the page.</p>
	<p><a href="http://pages.google.com/"><img src="http://ajaxian.com/wp-content/images/googlepagesimageedit.png" alt="Google Pages Image Editing" border="0" width="428" height="418"/></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=ixQAR1Dv"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ixQAR1Dv" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=i8aOiI8S"><img src="http://feeds.feedburner.com/~f/ajaxian?i=i8aOiI8S" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=P5vv2xOQ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=P5vv2xOQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=L0n3Kku6"><img src="http://feeds.feedburner.com/~f/ajaxian?i=L0n3Kku6" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/google-pages-adds-nice-image-editing/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>qooxdoo 0.6.2 Released</title>
		<link>http://ajaxian.com/archives/qooxdoo-062-released</link>
		<comments>http://ajaxian.com/archives/qooxdoo-062-released#comments</comments>
		<pubDate>Thu, 23 Nov 2006 15:39:07 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>JavaScript</category>
	<category>Library</category>
		<guid>http://ajaxian.com/archives/qooxdoo-062-released</guid>
		<description><![CDATA[	qooxdoo has a new release that adds support for Webkit.
	
As mentioned above and already announced in our developer blog, qooxdoo now includes support for WebKit. We expect to fully support the next major version Safari 3.0 which will be based on the current development of WebKit. There is only limited support for Safari in its [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://news.qooxdoo.org/qooxdoo-062-released">qooxdoo has a new release that adds support for Webkit</a>.</p>
	<blockquote><p>
As mentioned above and already announced in our developer blog, qooxdoo now includes support for WebKit. We expect to fully support the next major version Safari 3.0 which will be based on the current development of WebKit. There is only limited support for Safari in its current version 2.0.4, though. Reason is, that Safari 2.0 still has many bugs that can hardly be worked around. Luckily, many of those bugs are already fixed in the nightly builds of WebKit. Besides the various bugs, Safari 2.0's JavaScript engine and its execution speed is not competitive with respect to the latest versions of the other major browsers (Firefox 2.0, IE7, Opera 9). Good news is, that the current builds of WebKit are tremendeously faster than Safari 2.0, approximately by a factor of 7-8 for a typical qooxdoo demo.
</p></blockquote>
	<p>Check out the <a href="http://qooxdoo.org/about/release_notes">release notes</a> for full details on changes in this release.</p>
	<p>Some of them are:</p>
	<ul>
	<li>Made qooxdoo completely XHTML compatible. Replaced all uppercase tag names with their lowercase variant. </li>
	<li>Improved NativeWindow to support the querying of the load state. Added events for “load” and “close”.</li>
	<li>Modified XmlHttpRequest and related APIs to <a href="http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx">respect the latest suggestions from Microsoft.</a></li>
	<li>Added IframeManager to manage visible iframes in order to protect the application events of the “surrounding” document from getting interrupted while switching document context (particularly drag &#038; drop over embedded iframes)</li>
	<li>Added Resizer widget to allow of customization regarding the dimensions of any widget by the user.</li>
	</ul>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=tfn0qIAh"><img src="http://feeds.feedburner.com/~f/ajaxian?i=tfn0qIAh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=QJRQS3cR"><img src="http://feeds.feedburner.com/~f/ajaxian?i=QJRQS3cR" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=HSSmg2P1"><img src="http://feeds.feedburner.com/~f/ajaxian?i=HSSmg2P1" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=uSZsJs68"><img src="http://feeds.feedburner.com/~f/ajaxian?i=uSZsJs68" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/qooxdoo-062-released/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Lollygag: Latest non-Atlas .NET Framework</title>
		<link>http://ajaxian.com/archives/lollygag-latest-non-atlas-net-framework</link>
		<comments>http://ajaxian.com/archives/lollygag-latest-non-atlas-net-framework#comments</comments>
		<pubDate>Thu, 23 Nov 2006 14:00:50 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>JavaScript</category>
	<category>Library</category>
	<category>Toolkit</category>
	<category>.NET</category>
		<guid>http://ajaxian.com/archives/lollygag-latest-non-atlas-net-framework</guid>
		<description><![CDATA[	The Lollygag framework is a new Ajax framework for .NET.
	As Steve the author put it:
	
We attended the first Ajax Experience conference in San Francisco and we got super excited about the potential for building Ajax applications. Since we have a Microsoft .NET background, we planned to start building Ajax applications using Microsoft’s Atlas framework. However, [...]]]></description>
			<content:encoded><![CDATA[	<p>The <a href="http://lollygagframework.com/">Lollygag framework</a> is a new Ajax framework for .NET.</p>
	<p>As Steve the author put it:</p>
	<blockquote><p>
We attended the first Ajax Experience conference in San Francisco and we got super excited about the potential for building Ajax applications. Since we have a Microsoft .NET background, we planned to start building Ajax applications using Microsoft’s Atlas framework. However, we quickly encountered several serious issues with Atlas. Doing simple things in Atlas, such as database access and form validation, turned out to be really difficult. We were also disappointed to discover that Microsoft has no plans to support its client-side Atlas framework in the immediate future.</p>
	<p>We built the Lollygag framework in order to build true Ajax applications in the .NET environment. We wanted to build single page Web applications that never perform postbacks. All updates are performed through Ajax calls to the web server.
</p></blockquote>
	<p><b>Features</b></p>
	<ul>
	<li>Powerful Widget Framework: The Lollygag framework includes a rich set of client-side widgets that you can use to display database data, perform form validation, and create rich animations. You declare widgets in a page in exactly the same way as you declare HTML tags.</li>
	<li>Autocomplete Support: When you declare Lollygag widgets in a page, you get full autocomplete support while you type. To get autocomplete support, you must use an XML aware development environment such as Microsoft Visual Studio .NET.</li>
	<li>Declarative Database Access: Accessing database data with the Lollygag framework is easy. You can bind client-side widgets directly to data exposed by a database or you can bind widgets to data exposed by a business object.</li>
	<li>Secure Form Validation: When taking advantage of the Lollygag framework, you specify how a form field is validated only once. The validation is automatically applied on both the server and the client. Unlike other frameworks that only provide validation on the client, the Lollygag framework prevents malicious users from bypassing client-side validation and submitting data directly to the server.</li>
	<li>Rich Animation Framework: Lollygag includes an entire animation framework. You can take advantage of animations to create different effects such as fades and wipes.</li>
	<li>Cross-Browser Support: The full Lollygag framework works on the latest versions of Internet Explorer, Firefox, Safari, and Opera.</li>
	<li>Automatic JavaScript Compression: The Lollygag framework compresses all JavaScript sent to the browser automatically. Any custom JavaScript code that you write as a developer is also compressed automatically.</li>
	<li>Powered by .NET: The server-side portion of Lollygag is built on the Microsoft .NET 2.0 Framework. You can build server-side business objects using standard .NET languages such as C# and VB.NET. Lollygag client-side widgets can consume data exposed through server-side objects.</li>
	</ul>
	<p><b>Hello World</b></p>
	<div class="syntax_hilite">
<div id="xml-14">
	<div class="xml">
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">"1.0"</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">"utf-8"</span> ?<span style="font-weight: bold; color: black;">&gt;</span></span><br />
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml-stylesheet <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/xsl"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"/lollygagSite/lollygagframework/0_1/lollygag.xsl"</span>?<span style="font-weight: bold; color: black;">&gt;</span></span><br />
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;lolly</span> :application <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"Hello World"</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">"http://www.w3.org/1999/xhtml"</span> xmlns:<span style="color: #000066;">lolly</span>=<span style="color: #ff0000;">"http://lollygagframework.com/core"</span><span style="font-weight: bold; color: black;">&gt;</span></span><br />
&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;lolly</span> :button <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"btnSumit"</span> <span style="color: #000066;">label</span>=<span style="color: #ff0000;">"Click Here!"</span> <span style="color: #000066;">onClick</span>=<span style="color: #ff0000;">"alert('Hello!')"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span><br />
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/lolly<span style="font-weight: bold; color: black;">&gt;</span></span></span><br />
&nbsp;</div>
	</div>
</div>
	<p><b>Resources</b></p>
	<p>How does it compare to Atlas? <a href="http://lollygagframework.com/Articles/LollygagVersusAtlas/Default.htm">Read their thoughts on the matter</a>.</p>
	<p><a href="http://lollygagframework.com/Demos/default.htm">Demos</a></p>
	<p><a href="http://lollygagframework.com/SampleApplications/Forums/forums.xml">Sample Application</a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=2QC8qukU"><img src="http://feeds.feedburner.com/~f/ajaxian?i=2QC8qukU" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=lsoztS0a"><img src="http://feeds.feedburner.com/~f/ajaxian?i=lsoztS0a" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=WuuxjGjM"><img src="http://feeds.feedburner.com/~f/ajaxian?i=WuuxjGjM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=M7Gaypk4"><img src="http://feeds.feedburner.com/~f/ajaxian?i=M7Gaypk4" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/lollygag-latest-non-atlas-net-framework/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Google Book Search gets an Ajax upgrade</title>
		<link>http://ajaxian.com/archives/google-book-search-gets-an-ajax-upgrade</link>
		<comments>http://ajaxian.com/archives/google-book-search-gets-an-ajax-upgrade#comments</comments>
		<pubDate>Thu, 23 Nov 2006 00:03:44 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
		
	<category>Front Page</category>
	<category>Showcase</category>
	<category>Google</category>
		<guid>http://ajaxian.com/archives/google-book-search-gets-an-ajax-upgrade</guid>
		<description><![CDATA[	Nathan Naze and his team at Google have upgraded Google Books:
	
	
Zoom in on text and images. Here's a cool full-page sketch of a ship from an 1898 book on steam navigation. Looking for something less dated? Perhaps this colorful page of a room from a book on interior design. Want a better look? You can [...]]]></description>
			<content:encoded><![CDATA[	<p>Nathan Naze and his team at Google have upgraded <a href="http://books.google.com/">Google Books</a>:</p>
	<blockquote>
	<ul>
<li><strong>Zoom in on text and images.</strong> Here's <a href="http://books.google.com/books?vid=HARVARD:32044020180790&#038;id=7X-I9105PAkC&#038;pg=PA109#PRA2-PA109,M1">a cool full-page sketch of a ship</a> from an 1898 book on <a href="http://books.google.com/books?vid=HARVARD:32044020180790&amp;id=7X-I9105PAkC">steam navigation</a>. Looking for something less dated? Perhaps this <a href="http://books.google.com/books?vid=ISBN1564969584&#038;id=F68COamQRH0C&#038;pg=PA25&#038;lpg=PA25&#038;sig=8k-utjCZ5wwUmWMPlMLIaDjJ4Ig#PPA25,M1">colorful page of a room</a> from <a href="http://books.google.com/books?vid=ISBN1564969584&#038;id=F68COamQRH0C">a book on interior design</a>. Want a better look? You can now zoom in and out &#8212; just click on the <img src="http://photos1.blogger.com/blogger/2855/3883/1600/plus.gif" style="padding: 0px; border: 0px" alt="zoom in" border="0" height="14" width="14"/> and <img alt="zoom out" src="http://photos1.blogger.com/blogger/2855/3883/1600/minus.gif" style="padding: 0px; border: 0px" border="0" height="14" width="14"/> buttons. Play with it until you find a size you like.</li>

<li><strong>One book, one web page.</strong> No more reloads! In one-page mode (just click the <img alt="one page" src="http://photos1.blogger.com/blogger/2855/3883/1600/onepage.gif" style="padding: 0px; border: 0px" border="0" height="14" width="9"/> button), pages appear one below the other, like a scroll of paper. For <a href="http://books.google.com/googlebooks/screenshots.html#fullview">full-view</a> books, there's also a two-page mode (<img alt="two page button" src="http://photos1.blogger.com/blogger/2855/3883/1600/twopage2.gif" style="padding: 0px; border: 0px" border="0" height="14" width="19"/>) in which pages appear side by side, just like in a physical book (perfect for <a href="http://books.google.com/books?vid=ISBN9064503125&#038;id=NkST-eA7uicC&#038;pg=RA12-PA110&#038;lpg=RA12-PA110&#038;sig=oP4PLDRpPGpbo6jBg1qpzOoksjc#PPA51,M2">two-page images</a>). In both modes, you'll be able to use <img src="http://books.google.com/googlebooks/page_nav_previous.gif" style="padding: 0px; border: 0px" alt="previous page button" border="0" height="19" width="19"/> and <img src="http://books.google.com/googlebooks/page_nav_next.gif" style="padding: 0px; border: 0px" alt="next page button" border="0" height="19" width="19"/> to turn pages.</li>

<li><strong>Scroll, scroll, scroll your book&#8230;</strong> using the scrollbar or your mouse wheel, or by dragging (in most browsers, you'll see a <img src="http://photos1.blogger.com/blogger/2855/3883/1600/hand2.gif" style="padding: 0px; border: 0px" border="0" height="16" width="17" alt="hand"/>). You can also use the keyboard (try the spacebar, page up, page down, and the arrow keys). Or you can click on a link in the table of contents or your search results to jump right to that page (like <a href="http://books.google.com/books?vid=OCLC01581436&amp;id=EM6nHWWQ3TIC&amp;pg=PP10">this photo</a> from the 1906 book <a href="http://books.google.com/books?vid=OCLC01581436&amp;id=EM6nHWWQ3TIC"><em>Geronimo's Story of His Life</em></a>).</li>

<li><strong>This page was made for reading.</strong> We've tried to tidy up the clutter to leave as much room as possible for what's important &#8212; the book. We've put all the information about the book in a scrollable side menu. Still not enough room? You can put the screen in fullscreen mode with <img src="http://books.google.com/googlebooks/images/fullscreen.gif" style="padding: 0px; border: 0px" alt="fullscreen button" border="0" height="15" width="17"/>, so you can use the whole window for browsing. Try it with a nice illustrated book of <a href="http://books.google.com/books?vid=NYPL:33433068198005&#038;id=MPDMpD2w_2gC&#038;pg=PA65#PPP18,M2">Celtic fairy tales</a> or, for some lighter reading, <a href="http://books.google.com/books?vid=ISBN3540212663&amp;id=5FZBS0JH9lkC&amp;pg=PP1&amp;lpg=PP1&amp;ots=uNqKSoMhkt&amp;&amp;sig=MjS0J55JV4LYrKN7z_RvUf-sEx4#PPA49,M1">electromagnetic wave theory</a>.</li>
	</ul>
	</blockquote>
	<p>There are keystrokes here too, such as hitting space to scroll down (moving down smoothly). It is nice to see more and more unification to Google apps these days. When you use Reader it feels like Mail, etc.</p>
	<p>One question is, where are the GWT apps? :)</p>
	<p><a href="http://books.google.com/"><img src="http://ajaxian.com/wp-content/images/googlebooksearch.png" alt="Google Book Search" border="0" width="580" height="391"/></a>
</p>

<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=kpBF2m8t"><img src="http://feeds.feedburner.com/~f/ajaxian?i=kpBF2m8t" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=KWMuT6ZN"><img src="http://feeds.feedburner.com/~f/ajaxian?i=KWMuT6ZN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=5HzTTFHS"><img src="http://feeds.feedburner.com/~f/ajaxian?i=5HzTTFHS" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=eLs8y2a1"><img src="http://feeds.feedburner.com/~f/ajaxian?i=eLs8y2a1" border="0"></img></a></div>]]></content:encoded>
			<wfw:commentRSS>http://ajaxian.com/archives/google-book-search-gets-an-ajax-upgrade/feed/</wfw:commentRSS>
	</item>
	</channel>
</rss>