<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Gibarian's Favorite Links on coding from Diigo</title>
    <link>http://www.diigo.com/user/Gibarian/coding</link>
    <pubDate>Mon, 26 Mar 2007 10:03:06 -0000</pubDate>
    <lastBuildDate>Mon, 26 Mar 2007 10:03:06 -0000</lastBuildDate>
    <item>
      <title>Hobo - the web application builder for Rails</title>
      <link>http://www.hobocentral.net</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Comments:&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;Hobo is a framework for the rails framework. It's frameworking a framework, if you can grasp that.&lt;br /&gt; &lt;small&gt;posted by &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/small&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/framework' rel='tag'&gt;framework&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/hobo' rel='tag'&gt;hobo&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/rails' rel='tag'&gt;rails&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 26 Mar 2007 10:03:06 -0000</pubDate>
    </item>
    <item>
      <title>frevvo - web form builder Home</title>
      <link>http://www.frevvo.com/frevvo/web/home</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/ajax' rel='tag'&gt;ajax&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/automation' rel='tag'&gt;automation&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/forms' rel='tag'&gt;forms&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 15 Feb 2007 10:18:37 -0000</pubDate>
    </item>
    <item>
      <title>Django - Adding Authentication achinghead.com</title>
      <link>http://achinghead.com/archive/68/enhancing-django-wikiproject-part-1-adding-authent</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Highlights and Sticky Notes:&lt;/strong&gt;&lt;p&gt;&lt;div class=&quot;content&quot;&gt;As a shortcut, you can use the convenient &lt;code&gt;login_required&lt;/code&gt; decorator.&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/authentication' rel='tag'&gt;authentication&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/django' rel='tag'&gt;django&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/users' rel='tag'&gt;users&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 15 Feb 2007 06:42:12 -0000</pubDate>
    </item>
    <item>
      <title>The Standalone Programmer: Tips from the trenches - The Code Project - Work Issues</title>
      <link>http://www.codeproject.com/gen/work/standaloneprogrammer.asp</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Highlights and Sticky Notes:&lt;/strong&gt;&lt;p&gt;&lt;div class=&quot;content&quot;&gt;&lt;h3&gt;Develop Good Coding Habits&lt;/h3&gt;
&lt;p&gt;Good coding habits are very important to the quality of the code produced as
well as to the quality of the final product which uses the code.&amp;nbsp; Nothing
earth shattering here, just learned behavior.&amp;nbsp; Some of the most important
habits I have learned are:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Initialize all variables to zeros.&amp;nbsp; If I declare an int I do this (int
    iValue = 0;)&amp;nbsp; if I allocate a char array I do this (char szTemp[20];
    memset(szTemp,0,20);).&lt;/li&gt;
  &lt;li&gt;Check the return codes of all function calls.&lt;/li&gt;
  &lt;li&gt;Catch all exceptions at an appropriate level and deal with them.&amp;nbsp; One
    of the bad habits I had earlier in my career was to setup an empty catch
    block and think I was going to fill it in later.&lt;/li&gt;
  &lt;li&gt;When defining function prototypes consider error conditions.&amp;nbsp; This
    means deciding whether to return a bool or an int (an int can return a set
    of predefined flags indicating what kind of problem occured.&amp;nbsp; A bool
    can only indicate success/failute.)&amp;nbsp; If there is additional info that a
    simple code can supply, consider passing in a string or other variable by
    reference to hold the extra error information OR consider throwing an
    exception.&lt;/li&gt;
  &lt;li&gt;Never pass objects by value unless ABSOLUTELY necessary.&amp;nbsp; (I can't
    think of a situation where this has ever been necessary, but there might
    be.)&lt;/li&gt;
  &lt;li&gt;Use GOTOs wisely.&amp;nbsp; The only place I have every used a goto (that I
    can think of) is in a lexical parser I had to write a few years ago.&lt;/li&gt;
  &lt;li&gt;Create more utility classes than program-specific classes.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
  &lt;li&gt;Think about how a piece of code might be used in another project and go
    ahead and develop for that.&amp;nbsp; (Don't take this to an extreme, though.)&lt;/li&gt;
  &lt;li&gt;Comment judiciously.&amp;nbsp; When I write code comments I try to comment on
    the architecture and purpose of a function/class instead of on the lowest
    level of details.&amp;nbsp;&lt;/li&gt;
  &lt;li&gt;The equality operator and the set operator are not the same DAMN@!#$#
    thing.&amp;nbsp; I can't remember how many times I have done if (x=y).&amp;nbsp; To
    avoid this I have created inline functions like FPSCompareString,
    FPSCompareInt, FPSCompareLong, FPSCompareFloat, FPSCompareDate, etc which
    have virtually eliminated this problem from my code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I'm sure there are hundreds of other rules I could write up but that could
take whole books.&amp;nbsp; The bottom line for me is that there is no one to review
my code or help me when problems arise.&amp;nbsp; If I can eliminate the most common
problems I can spend more of my time working on the more serious problems.&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/advice' rel='tag'&gt;advice&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/howto' rel='tag'&gt;howto&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 30 Dec 2006 13:03:22 -0000</pubDate>
    </item>
    <item>
      <title>AJAX for n00bs</title>
      <link>http://www.hunlock.com/blogs/AJAX_for_n00bs</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/ajax' rel='tag'&gt;ajax&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/project' rel='tag'&gt;project&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 27 Dec 2006 08:51:09 -0000</pubDate>
    </item>
    <item>
      <title>Django web framework search engine</title>
      <link>http://djangosearch.com</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/django' rel='tag'&gt;django&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/project' rel='tag'&gt;project&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/search' rel='tag'&gt;search&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 21 Dec 2006 09:55:57 -0000</pubDate>
    </item>
    <item>
      <title>SimpleJS --Javascript Frameworks light and accessible to the beginners</title>
      <link>http://simplejs.bleebot.com/en.html</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/ajax' rel='tag'&gt;ajax&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/framework' rel='tag'&gt;framework&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 18 Dec 2006 14:26:45 -0000</pubDate>
    </item>
    <item>
      <title>syntax across languages</title>
      <link>http://merd.sourceforge.net/pixel/language-study/syntax-across-languages</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/languages' rel='tag'&gt;languages&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/syntax' rel='tag'&gt;syntax&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 17 Dec 2006 03:23:02 -0000</pubDate>
    </item>
    <item>
      <title>Programmer Meet Designer - where web developers find web designers</title>
      <link>http://www.programmermeetdesigner.com</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Highlights and Sticky Notes:&lt;/strong&gt;&lt;p&gt;&lt;div class=&quot;content&quot;&gt;
   You have found Programmer Meet Designer! This is a site for &lt;h1&gt;programmers&lt;/h1&gt;, &lt;h1&gt;web developers&lt;/h1&gt;, &lt;h1&gt;designers&lt;/h1&gt;, &lt;h1&gt;entrepreneurs&lt;/h1&gt; and &lt;h1&gt;writers&lt;/h1&gt; to find each other and work together to create websites that look and function great.
   &lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/collaboration' rel='tag'&gt;collaboration&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 24 Nov 2006 07:44:03 -0000</pubDate>
    </item>
    <item>
      <title>Seven Things Every Software Project Needs to Know About Ajax (Dion Hinchcliffe's Web 2.0 Blog)</title>
      <link>http://web2.wsj2.com/seven_things_every_software_project_needs_to_know_about_ajax.htm</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Highlights and Sticky Notes:&lt;/strong&gt;&lt;p&gt;&lt;div class=&quot;content&quot;&gt;&lt;p&gt;&lt;font size=&quot;4&quot; color=&quot;#3333ff&quot;&gt;&lt;strong&gt;What Every Software Project Needs to Know About Ajax&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;&lt;strong&gt;The Browser Was Never Meant For Ajax.&lt;/strong&gt;&amp;nbsp; About a week into your first Ajax serious application you'll discover that Ajax pushes the browser nearly beyond its limits and there are definite lower engineering tolerances to get used to. The fact is, without powerful 3rd party development tools, designing clean Javascript software of any size requires some genuine discipline and effort.&amp;nbsp; So too does Ajax debugging applications in multiple browsers (a real headache), and doing any serious background processing or threading can require heroic measures, particularly if you're mixing in other components that use the rather limited number of simultaneous timers available.&amp;nbsp; &lt;strong&gt;The good news: &lt;/strong&gt;Simple Ajax -- sprinkling in a little DHTML -- is much less daunting than &lt;em&gt;Ajax In The Large&lt;/em&gt;.&amp;nbsp; But be warned and be prepared to scale up your level of development and testing effort &lt;em&gt;significantly &lt;/em&gt;with each doubling or trebling of your application size.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;You Won't Need As Many Web Services As You Think.&lt;/strong&gt;&amp;nbsp; I used to think that going the Ajax route required the development of a bunch of new Web services in order to feed the application data and provide a backing store.&amp;nbsp; In reality, I'm finding a great many projects are quite happy to scrape HTML and/or use plain old HTTP POSTs to existing service endpoints that have no formal Web service structure.&amp;nbsp; This is further turning the tide towards Ajax by making it very, very easy to &quot;dip your toe&quot; into Ajax development and reuse almost any preexisting HTTP service on the back end instead of SOAP or &lt;a href=&quot;http://hinchcliffe.org/archive/2006/09/10/9275.aspx&quot;&gt;REST/WOA&lt;/a&gt;.&amp;nbsp; While this can encourage poor architectural choices, it does make very incremental conversion to Ajax almost effortless and turns out to be a natural thing to do, though it can certainly lead to headaches later.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ajax Is More Involved Than Traditional Web Design and Development.&lt;/strong&gt;&amp;nbsp; The loss of HTML user interface conventions, the almost limitless potential for hidden or latent functionality, the programmatic creation of page elements instead of declarative, and other intrinsic aspects of the Ajax approach throw out much of what we know about Web design and development.&amp;nbsp; Web designers must much more deeply understand the capabilities of the DOM, Javascript, CSS, and how the browser renders graphics, layouts, and elements.&amp;nbsp; Developers find testing both difficult and tedious.&amp;nbsp; Though tooling is continuing to improve across the board, it will take years for the industry to develop best practices, lore, patterns, and shared knowledge to make Web application development straightforward.&amp;nbsp; Huge kudos to folks like Yahoo!'s &lt;a href=&quot;http://looksgoodworkswell.blogspot.com/&quot;&gt;Bill Scott&lt;/a&gt;  for trying to fix many of these problems -- particularly the loss of GUI standards -- by actually moving the state of the art considerably forward with things like the Yahoo! &lt;a href=&quot;http://developer.yahoo.com/ypatterns/index.php&quot;&gt;UI Design Patterns library&lt;/a&gt;.&amp;nbsp; &lt;strong&gt;The bottom line: &lt;/strong&gt;Ajax development, at least for now, usually takes quite a bit longer than traditional Web development and requires a higher level of skill.  &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ajax Tooling and Components Are Still Emerging and There Is No Clear Leader Today&lt;/strong&gt;.&amp;nbsp; Though &lt;a href=&quot;http://dojotoolkit.org&quot;&gt;Dojo&lt;/a&gt;  is getting one heck of a running start, the race is very far from over.&amp;nbsp; For instance, the Dojo framework itself is still just at version &lt;em&gt;0.3&lt;/em&gt;.&amp;nbsp; And close at its heels are an amazing range of tools, frameworks, and component libraries.&amp;nbsp; Though OpenAjax will make this mosaic of products play nicer, most developers will get deep experience with two or three of them and stick with them. For now, I would say deeply committing to a particular product is usually not the best idea.&amp;nbsp; Innovation, competition, and market leadership is likely going to bounce around for a while.&amp;nbsp; In the meantime, be sure to check out &lt;a href=&quot;http://script.aculo.us&quot;&gt;script.aculo.us&lt;/a&gt;, &lt;a href=&quot;http://prototype.conio.net/&quot;&gt;Prototype&lt;/a&gt;, &lt;a href=&quot;http://code.google.com/webtoolkit/&quot;&gt;Google Web Toolkit&lt;/a&gt;, &lt;a href=&quot;http://developer.yahoo.com/yui/&quot;&gt;Yahoo! UI Library&lt;/a&gt;, &lt;a href=&quot;http://jackbe.com&quot;&gt;JackBe&lt;/a&gt;, &lt;a href=&quot;http://www.zapatec.com/website/main/&quot;&gt;Zapatec&lt;/a&gt;, &lt;a href=&quot;http://www.bindows.net/&quot;&gt;Bindows&lt;/a&gt;, &lt;a href=&quot;http://nexaweb.com&quot;&gt;Nexaweb&lt;/a&gt;, &lt;a href=&quot;http://www.tibco.com/software/ria/gi_resource_center.jsp&quot;&gt;General Interface&lt;/a&gt;, &lt;a href=&quot;http://www.backbase.com/start/?gclid=CKrBw_ikyocCFQglHgodaWxHFA&quot;&gt;Backbase&lt;/a&gt;, &lt;a href=&quot;http://www.activewidgets.com/grid/&quot;&gt;ActiveWidgets&lt;/a&gt;, and last but not least &lt;a href=&quot;http://atlas.asp.net/default.aspx?tabid=47&quot;&gt;Microsoft Atlas&lt;/a&gt;. There are many others and I encourage you to look at Max Kiesler's &lt;a href=&quot;http://www.maxkiesler.com/index.php/weblog/comments/round_up_of_50_ajax_toolkits_and_frameworks/&quot;&gt;roundup of 50 Ajax frameworks&lt;/a&gt;, with many others in the comments (and growing).&amp;nbsp; Finally, Microsoft's Harry Pierson has &lt;a href=&quot;http://devhawk.net/2006/09/22/Revisiting+The+AJAX+Ecosystem.aspx&quot;&gt;diligently taken me to task&lt;/a&gt;  for my &lt;a href=&quot;http://web2.wsj2.com/web_20_design_the_ajax_spectrum.htm&quot;&gt;Ajax spectrum comments&lt;/a&gt;, noting that Microsoft actually has more serious experience fostering an interoperable component community than just about anyone else.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;div class=&quot;content&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Good Ajax Programmers are Hard to Find&lt;/strong&gt;.&amp;nbsp; &lt;a href=&quot;http://zimbra.com&quot;&gt;Zimbra&lt;/a&gt;'s Scott Dietzen has &lt;a href=&quot;http://blogs.zdnet.com/open-source/?p=776&quot;&gt;lamented recently&lt;/a&gt;  about the real difficulty in finding good Ajax talent.&amp;nbsp; See point #3, but building sophisticated Ajax applications requires more computer science skills much more than it does Web design skills.&amp;nbsp; And I find that experienced programmers tend not to enjoy Javascript programming and debugging. This too shall pass, but not for a few years, and not for a good while in the Bay Area. :-)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;One Must Actively Address Ajax's Constraints of the Browser Model.&amp;nbsp; &lt;/strong&gt;Though the final result can be very rewarding, Ajax is not a perfect Web development approach and it has a few genuine weaknesses.&amp;nbsp; One is that it tends to break the model of the Web including preventing users from bookmarking content, breaking the use of the Back button, and more.&amp;nbsp; Fortunately, smart folks like Brad Neuberg have &lt;a href=&quot;http://web2.wsj2.com/the_incredible_ongoing_story_of_ajax.htm&quot;&gt;addressed much of this&lt;/a&gt;, as long as you're willing to put out the effort and understand why it's important to recover this functionality.&amp;nbsp; Ajax also lacks much of what still makes desktop software a strong contender; the ability to run disconnected from the network and access to local disk storage, though &lt;a href=&quot;http://ajaxworldmagazine.com/read/151230.htm&quot;&gt;Flash local storage&lt;/a&gt;  and the upcoming &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Apollo&quot;&gt;Apollo platform&lt;/a&gt;  can help address this.  &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ajax Is Only One Element of a Successful RIA Strategy. &lt;/strong&gt;As &lt;a href=&quot;http://blogs.zdnet.com/Hinchcliffe/?p=65&quot;&gt;I've written before&lt;/a&gt;, the addition of RIA platforms such as &lt;a href=&quot;http://adobe.com/flex&quot;&gt;Flex&lt;/a&gt;, &lt;a href=&quot;http://openlaszlo.org&quot;&gt;OpenLaszlo&lt;/a&gt;, and &lt;a href=&quot;http://msdn.microsoft.com/winfx/technologies/presentation/default.aspx&quot;&gt;WPF/E&lt;/a&gt;  to a RIA strategy is virtually required to properly exploit the range of capabilities you'll want robust online applications to have.&amp;nbsp; This is particularly true around rich media support such as audio and video -- which Ajax is virtually incapable of -- but even such mundane things as good printing support.&amp;nbsp; These are all things that the more sophisticated Flash-based RIA platforms really shine at and are easier to program in to boot.&amp;nbsp; Ajax will increasingly get a serious run for its money from these platforms, particularly as they provide back-end server support for things like server-side push, formal Web services, enterprise environments, and more.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/ajax' rel='tag'&gt;ajax&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/article' rel='tag'&gt;article&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/reference' rel='tag'&gt;reference&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/webservices' rel='tag'&gt;webservices&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 21 Nov 2006 06:24:21 -0000</pubDate>
    </item>
    <item>
      <title>The Django Book</title>
      <link>http://www.djangobook.com</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/django' rel='tag'&gt;django&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/python' rel='tag'&gt;python&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/tutorials' rel='tag'&gt;tutorials&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 18 Nov 2006 08:50:29 -0000</pubDate>
    </item>
    <item>
      <title>(24)slash7 - An article on tech writing</title>
      <link>http://slash7.com/articles/2006/11/16/an-article-on-tech-writing</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/rails' rel='tag'&gt;rails&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 16 Nov 2006 03:10:16 -0000</pubDate>
    </item>
    <item>
      <title>Aptana Forums :: View topic - Linux Installation Issues</title>
      <link>http://aptana.com/forums/viewtopic.php?t=134</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Highlights and Sticky Notes:&lt;/strong&gt;&lt;p&gt;&lt;div class=&quot;content&quot;&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;2)&lt;/span&gt; When launching the installer, the following errors appear:
&lt;br /&gt;

&lt;br /&gt;
grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory /tmp/install.dir.23446/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory 
&lt;br /&gt;

&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Solution:&lt;/span&gt;
&lt;br /&gt;

&lt;br /&gt;
This is suggested for Fedora Core 5 users and possibly SUSE linux users as well. Run the following commands on the installer:
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table cellspacing=&quot;1&quot; border=&quot;0&quot; cellpadding=&quot;3&quot; align=&quot;center&quot; width=&quot;90%&quot;&gt;&lt;tbody&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
cp Aptana_IDE_Setup.bin Aptana_IDE_Setup.bin.bak
&lt;br /&gt;
cat Aptana_IDE_Setup.bin.bak | \
&lt;br /&gt;
sed &quot;s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/&quot; &amp;gt; \
&lt;br /&gt;
Aptana_IDE_Setup.bin
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
this may also need to be run on the uninstaller:
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table cellspacing=&quot;1&quot; border=&quot;0&quot; cellpadding=&quot;3&quot; align=&quot;center&quot; width=&quot;90%&quot;&gt;&lt;tbody&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
cp Aptana_Uninstaller Aptana_Uninstaller.bak
&lt;br /&gt;
cat Aptana_Uninstaller.bak | \
&lt;br /&gt;
sed &quot;s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/&quot; &amp;gt; \
&lt;br /&gt;
Aptana_Uninstaller
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
And then continue with the installation.
&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;div class=&quot;content&quot;&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;A complete Aptana install on Ubuntu&lt;/span&gt;
&lt;br /&gt;

&lt;br /&gt;
Referenced from &lt;a href=&quot;http://www.odrakir.com/blog/?p=382&quot; target=&quot;_blank&quot;&gt;http://www.odrakir.com/blog/?p=382&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
1) Download the install file
&lt;br /&gt;

&lt;br /&gt;
2) Open a terminal window
&lt;br /&gt;

&lt;br /&gt;
3) Aptana has dependencies so you’ll need to install Mozilla and libswt3.1
&lt;br /&gt;
3a) sudo apt-get install mozilla[/list]
&lt;br /&gt;
3b) sudo aptitude install libswt3.1-gtk-java
&lt;br /&gt;

&lt;br /&gt;
4) Chmod the install file to make it executable - chmod +x Aptana_IDE_Setup.bin
&lt;br /&gt;

&lt;br /&gt;
5) Excecute the file - ./Aptana_IDE_Setup.bin
&lt;br /&gt;

&lt;br /&gt;
6) Now, the installation should be easy, just read and answer the wizard’s questions until it’s finished
&lt;br /&gt;

&lt;br /&gt;
7) Aptana needs a environment variable set for mozilla so we’ll have to code ourselfs a little script in order to set the variable every time we need to run Aptana and not just once inside the terminal window.
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table cellspacing=&quot;1&quot; border=&quot;0&quot; cellpadding=&quot;3&quot; align=&quot;center&quot; width=&quot;90%&quot;&gt;&lt;tbody&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; touch aptana
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; sudo gedit aptana
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; Now copy this
&lt;br /&gt;

&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; #/usr/bin
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; export MOZILLA_FIVE_HOME=/usr/lib/mozilla
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; ~/Aptana/aptana
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
      and save the file.
&lt;br /&gt;

&lt;br /&gt;
8) Chmodit so it can be executed. - chmod 755 aptana
&lt;br /&gt;

&lt;br /&gt;
9) Now you can copy it to /bin - sudo cp aptana /bin/&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/aptana' rel='tag'&gt;aptana&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/editors' rel='tag'&gt;editors&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/linux' rel='tag'&gt;linux&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/troubleshooting' rel='tag'&gt;troubleshooting&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 12 Nov 2006 11:03:20 -0000</pubDate>
    </item>
    <item>
      <title>Aptana: The Web IDE</title>
      <link>http://aptana.com</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/editors' rel='tag'&gt;editors&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/free' rel='tag'&gt;free&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 12 Nov 2006 10:37:13 -0000</pubDate>
    </item>
    <item>
      <title>Catalyst - Web Framework</title>
      <link>http://www.catalystframework.org</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/framework' rel='tag'&gt;framework&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/perl' rel='tag'&gt;perl&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 01 Nov 2006 05:04:35 -0000</pubDate>
    </item>
    <item>
      <title>Using kid with django</title>
      <link>http://blogs.translucentcode.org/mick/2005/09/29/using_kid_with_django</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/django' rel='tag'&gt;django&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/kid' rel='tag'&gt;kid&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/mug' rel='tag'&gt;mug&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/python' rel='tag'&gt;python&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 01 Nov 2006 04:06:10 -0000</pubDate>
    </item>
    <item>
      <title>Django, Or why I chose it over turbogears and ruby on rails</title>
      <link>http://tabo.aurealsys.com/archives/2005/10/11/django-or-why-i-chose-it-over-turbogears-and-ruby-on-rails</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/comparison' rel='tag'&gt;comparison&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/django' rel='tag'&gt;django&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/python' rel='tag'&gt;python&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 31 Oct 2006 10:43:22 -0000</pubDate>
    </item>
    <item>
      <title>Python Programming for Beginners | Linux Journal</title>
      <link>http://www.linuxjournal.com/article/3946</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/python' rel='tag'&gt;python&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/tutorials' rel='tag'&gt;tutorials&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 31 Oct 2006 09:26:57 -0000</pubDate>
    </item>
    <item>
      <title>Learn Python in 10 minutes | Poromenos' Stuff</title>
      <link>http://www.poromenos.org/tutorials/python</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/python' rel='tag'&gt;python&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/tutorials' rel='tag'&gt;tutorials&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 31 Oct 2006 09:25:53 -0000</pubDate>
    </item>
    <item>
      <title>Global Module Index</title>
      <link>http://docs.python.org/modindex.html</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian/coding' rel='tag'&gt;coding&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/modules' rel='tag'&gt;modules&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/muh' rel='tag'&gt;muh&lt;/a&gt; &lt;a href='http://www.diigo.com/user/gibarian/python' rel='tag'&gt;python&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Posted by:&lt;/strong&gt; &lt;a href='http://www.diigo.com/user/gibarian'&gt;gibarian&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 29 Oct 2006 08:51:13 -0000</pubDate>
    </item>
    <ttl>60</ttl>
  </channel>
</rss>