<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	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/"
	>

<channel>
	<title>development-tools &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/development-tools/</link>
	<description>Feed of posts on WordPress.com tagged "development-tools"</description>
	<pubDate>Fri, 25 Jul 2008 14:34:40 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[JspC: Switching from Tomcat to Glassfish]]></title>
<link>http://closingbraces.wordpress.com/?p=60</link>
<pubDate>Mon, 21 Jul 2008 00:39:09 +0000</pubDate>
<dc:creator>closingbraces</dc:creator>
<guid>http://closingbraces.wordpress.com/?p=60</guid>
<description><![CDATA[The Ant build script that I use for all of my projects includes, for web-applications, translating a]]></description>
<content:encoded><![CDATA[<p>The Ant build script that I use for all of my projects includes, for web-applications, translating and compiling any JSP files. For my purposes this is just to validate the JSPs and report any syntax and compilation errors as part of the build, rather than to put pre-compiled class files into the finished web-app.</p>
<p>I've just quickly switched from using Tomcat's JSP compiler to using Glassfish V2's JSP compiler, and it seems worth documenting the changes involved and some of the similarities and differences.</p>
<p>Note that I was previously using the Tomcat 5 JSP compiler, and it didn't seem worth upgrading this to Tomcat 6 just in order to ditch it for Glassfish, so this isn't a like-for-like comparison - some of the fixes/changes noted might also be present in Tomcat 6.</p>
<p>The actual change-over was relatively painless. It's basically the same JSP compiler - which I understand is known as "Apache Jasper 2" - so the general nature of it and the options available are essentially the same.</p>
<p>In Tomcat this is provided via a "JspC" Ant task, and needs to be supplied with a classpath that includes the relevant Tomcat libraries. In contrast, Glassfish provides a "jspc" script that supplies the appropriate classpath and invokes Glassfish's JSP compiler, passing it any supplied command-line arguments.</p>
<p>So switching over basically just consisted of taking out the invocation of the Tomcat-supplied "JspC" Ant task (and the corresponding set-up of its classpath), and replacing it with an Ant "exec" of the Glassfish "jspc" script with equivalent command-line arguments.</p>
<p>However, the Glassfish documentation for this seems a bit on the weak side. At least, I didn't find it particularly easy to locate any definitive documentation on the command-line options for the Glassfish V2 "jspc" script. Maybe I just didn't look in the right places. The program itself supports a "-help" option that lists its command-line options, but without much explanation. There's a more detailed explanation of the options in the Sun Application Server 9.1 Update 2 reference manual at <a href="http://docs.sun.com/app/docs/doc/820-4046/jspc-1m">http://docs.sun.com/app/docs/doc/820-4046/jspc-1m</a>, but this doesn't entirely match the current Glassfish release (e.g. it doesn't include the recently-added "ignoreJspFragmentErrors" option). Nevertheless, it's the best documentation I've found so far. In any case, the options haven't yet diverged much from those of Tomcat JspC, so much of the Tomcat documentation remains relevant.</p>
<p>I'm also a bit unsure of the exact relationship between the Tomcat and Glassfish code. They both appear to be "Apache Jasper 2", but this doesn't seem to exist as a product in its own right, only as a component within Tomcat. The Glassfish code is presumably a copy or fork of the Tomcat code, but with its own bug-fixes and new features, and maintained and developed as part of Glassfish. With Glassfish being the reference implementation for new JSP versions, I assume the Glassfish implementation is now the main branch going forward, even if some of the changes get incorporated into both.</p>
<p>To add to my uncertainty, I'm also rather confused as to whether Glassfish does or doesn't also provide an Ant task for invoking its JSP compiler. There is an "asant" script that invokes Glassfish's internal copy of Ant with a suitable classpath, with various targets and supporting Ant tasks. There's also documention for previous releases of the "Sun Application Server" that show a "sun-appserv-jspc" Ant task. But the current Glassfish V2 documention doesn't seem to list any such task amongst its "asant" targets, nor otherwise document a "jspc" or "sun-appserv-jspc" Ant task. Maybe I just didn't find the right document. I guess I should just hunt around the Glassfish libraries for the relevant class, or try invoking it based on the previous release's documentation. But for the moment, invoking the "jspc" script is perfectly adequate for my purposes, so I'm sticking with that unless and until I get a chance to look at this again.</p>
<p>A few other findings:</p>
<ul>
<li>When given a complete web-application, the Tomcat 5 JspC compiler seems to process precisely those files that have a ".jsp" or ".jspx" extension. Maybe someone can enlighten me, but I can't see anything in the Ant task's attributes that allow it to be configured to process other file extensions. In contrast, Glassfish's jspc script seems to automatically process all file types that are identified by the web.xml as being JSPs.</li>
<li>With the Tomcat JspC task, the JSP translation had to be followed by a separate run of "javac" to compile the resulting java source code. In contrast, the Glassfish jspc script supports a "-compile" option that carries out the compilation as part of its own processing. What's more, I gather this uses the JSR 199 <a href="http://jcp.org/en/jsr/detail?id=199">Java Compiler API</a> for "in process" compilation if this is available (i.e. when running on JDK 6 or higher), and seems much faster as a result.</li>
<li>A slight limitation of the Glassfish jspc "-compile" option is that there doesn't seem to be any control over where the resulting class files are written. Instead, they just get written into the same directory as the java source files. For my purposes this doesn't matter, but if you wanted to put the class files into a specific location, or deploy them without the source code, you'd have to follow the jspc run with your own moving/copying/filtering of files as necessary.</li>
<li>I'm not particularly concerned with the exact performance of this, but subjectively the builds do seem noticeably faster since switching over to the Glassfish JspC and using its "built-in" compile instead of a separate "javac" run.</li>
<li>The Glassfish jspc script also supports a "-validate" option, which validates ".tld" and "web.xml" files against their schemas and DTDs. However, I don't currently use this, and instead use a separate run of Glassfish's <a href="http://docs.sun.com/app/docs/doc/820-4046/verifier-1m?a=view">verifier</a> script to verify the finished web-application archive as whole.</li>
</ul>
<p>I wonder if anyone can clarify the exact relationship between the Tomcat and Glassfish JspC implementations and the underlying "Jasper 2"? Or the exact status (and maybe classname, location, documentation etc) of any Glassfish "jspc" Ant task?</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[A Challenge For Readers]]></title>
<link>http://oregonnerd.wordpress.com/?p=305</link>
<pubDate>Sun, 20 Jul 2008 19:50:52 +0000</pubDate>
<dc:creator>oregonnerd</dc:creator>
<guid>http://oregonnerd.wordpress.com/?p=305</guid>
<description><![CDATA[The last time I wrote a program was over 20 years ago, I&#8217;m pretty sure.  Anyway, KeyNote 1.0 ]]></description>
<content:encoded><![CDATA[<p>The last time I wrote a program was over 20 years ago, I'm pretty sure.  Anyway, KeyNote 1.0 is a useful program; I went ahead and downloaded it last night for both computers.  <a title="keynote 2.0" href="http://www.tranglos.com/free/index.html" target="_blank">KeyNote 2.0</a> won't be developed, I remember hearing about it rather long ago.  Programmers, get to work.  If you try this out and you use indexing on a regular basis (I <strong><span style="text-decoration:underline;">did not say spreadsheets or data bases</span></strong>) you'll like it.  It and any other product from this site are dependable, although no site could possibly be hacker-proof.  [After all, you do actually have to have a back door in.]</p>
<p> </p>
<p>I actually can never write formal outlines except for papers.  Never was able, I should say.</p>
<p>--Glenn</p>
<p>P.S.  Sorry, it is freeware and this is the link for downloading <a title="keynote 1.0" href="http://www.tranglos.com/free/index.html" target="_blank">KeyNote 1.0</a>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[PDT on Ganymede]]></title>
<link>http://ramblingbyte.wordpress.com/?p=7</link>
<pubDate>Wed, 09 Jul 2008 15:43:59 +0000</pubDate>
<dc:creator>ramblingbyte</dc:creator>
<guid>http://ramblingbyte.wordpress.com/?p=7</guid>
<description><![CDATA[A few weeks back I was thrilled to find out about the new Eclipse 3.4 release codenamed Ganymede (fo]]></description>
<content:encoded><![CDATA[<p style="text-align:left;">A few weeks back I was thrilled to find out about the new <a href="http://www.eclipse.org/"><strong>Eclipse</strong></a> 3.4 release codenamed <a href="http://www.eclipse.org/ganymede/"><strong>Ganymede</strong></a> (for those who don't know the codename of the previous release is Europa).</p>
[wp_caption id="attachment_8" align="alignleft" width="455" caption="Eclipse Ganymede"]<a href="http://ramblingbyte.files.wordpress.com/2008/07/ganymede_splash.png"><img class="size-full wp-image-8" src="http://ramblingbyte.wordpress.com/files/2008/07/ganymede_splash.png" alt="Eclipse Ganymede" width="455" height="295" /></a>[/wp_caption]
<p style="text-align:left;">I was more than happy to see the large amount of new features and improvements, among them speed optimizations and the inclusion of a JavaScript editor with all the whistles and bells attached :D (but Aptana Studio Community Edititon still rules the scene in this respect IMHO). My joy was rapidly chilled when I discovered with some surprise (very unpleasant too) that there isn't a PDT release for Ganymede and the next scheduled release, that hopefully will work out of the box with Ganymede, for PDT is set for September only. I tried to use the update site from Ganymede's Update Manager with no success (I know this is n00bie behavior :( but hope is the last thing abandoned by anyone). After some extensive search using Google Search (Thanks Google) I stumbled across a blog article entitled <a href="http://haydnwilliams.com/blog/?p=100#comment-350"><strong>"Eclipse  Ganymede / PHP / SVN" </strong></a>written by <a href="http://haydnwilliams.com/blog"><strong>Haydn William</strong></a><strong> </strong>in which he blogs, like myself, about the new Eclipse release and also tells about a posting on the  <a href="http://wiki.eclipse.org/PDT/Installation#Eclipse_3.4_.2F_Ganymede_.2F_PDT_1.1"><strong>PDT</strong> wiki</a> that helps to solve this issue. After reading it I was eager to try it out and <strong>!!! miracle !!!</strong> it worked without any additional problems, so now I'm the happy user of the new <strong>Eclipse Ganymede</strong> and <strong>PDT</strong>. Thank you William for the post and the PDT guys for providing this very useful development tool :) . I hope that this post will be of use to others as William's blog article was for me.</p>
<p style="text-align:left;"><strong>P.S.</strong> I forgot to mention that there are already integration builds of the next PDT release. I recommend using those instead on the <a href="http://www.eclipse.org/pdt/build_types.php">nightly</a> build mentioned on the wiki.</p>
<p style="text-align:left;">Screenshots:</p>
<p style="text-align:left;">[gallery]</p>
<p style="text-align:left;">
]]></content:encoded>
</item>
<item>
<title><![CDATA[Google Fuels Rebellion Against Microsoft-imposed Desktop "Taxes" ]]></title>
<link>http://googlegazer.wordpress.com/?p=41</link>
<pubDate>Thu, 26 Jun 2008 05:28:41 +0000</pubDate>
<dc:creator>dsarna</dc:creator>
<guid>http://googlegazer.wordpress.com/?p=41</guid>
<description><![CDATA[The revolution. It is a-coming.
The &#8220;Google Watch&#8221; blog discusses how Saleforce.com is t]]></description>
<content:encoded><![CDATA[<p>The revolution. It is a-coming.</p>
<p>The "Google Watch" <a title="Google Watch Blog" href="http://googlewatch.eweek.com/content/googlesalesforcecom/" target="_blank">blog </a>discusses how Saleforce.com is taking advantage of Google's architecture so current Salesforce.com customers have been able for some time to directly work with Gmail, Google Talk, Google Calendar and the Google Docs spreadsheet, presentations and word processing applications from within the Salesforce.com platform.</p>
<p>Yesterday, June 23, the companies extended that collaboration theme to Salesforce.com developers with a tie between Force.com Toolkit for Google Data APIs, which lets programmers leverage the Google Data APIs within their applications and projects on Force.com.</p>
<p>Now Force.com programmers can directly call the Google Data APIs to plug any of the Google Apps functionality directly into the Force.com applications and share data and content between Salesforce.com's and Google's cloud computing platforms, and they can exchange data.</p>
<p>Clint Boulton quoted Ariel Kelman of SalesForce.com as providing the following example:</p>
<blockquote><p>Let's say a salesperson wants to share a candidate list with an outside recruiter but not give the recruiter full access to the application. The salesperson can e-mail the recruiter a Google spreadsheet from Google Docs.</p>
<p>As the salesperson makes changes in Force.com through the Google Data APIs, it will update the candidate list on the spreadsheet. So, the recruiter can see those changes and interact with those changes.</p>
<p>"We can read and write information between our database and Google Docs," Kelman confirmed, and continued:</p>
<blockquote><p>What we're trying to do is make it easier for developers to build applications that run in the cloud and as all of these cloud computing platforms proliferate, the more that vendors can do to allow developers to have access to the different computing platforms, the easier it becomes.</p></blockquote>
</blockquote>
<blockquote><p>In effect, it's no different than what Microsoft did when it partnered with SAP and Business Objects in business intelligence ... back in the day to bolster its on-premises software functionality."</p></blockquote>
<p>Boulton correctly observed that partnering is something that Microsoft has been doing for years. Small and large companies partner with Microsoft to benefit from Microsoft's cachet, imprimatur, and the free advertising, while Microsoft benefits by having its products become part of the heart and soul of thousands of applications, most of them business-oriented.</p>
<p>As the GoogleGazer reported <a title="Google Lures Developers" href="http://googlegazer.com/2008/06/01/google-extends-free-goodies-to-developers-in-a-big-way/" target="_blank">earlier</a>, Google is enticing developers to use its tools, its cloud-hosting, and its APIs and make them their own for development of Software As A Service ( <a title="www.saas.com" href="http://www.saas.com/" target="_blank">SAAS) </a>applications, which is where Google believes that the future lies. Google is making an astonishingly large amount of code available as <a title="Open Source Initiative" href="http://www.opensource.org/" target="_self">Open Source</a> having released over a million lines of code in that form already. Just look at their Open Source <a title="Google's Open Surce Website" href="http://code.google.com/" target="_blank">website</a>.</p>
<p>(Though very late to the game, Microsoft has also (somewhat reluctantly) embraced Open Source of late. See this <a title="MAc Open XML" href="http://www.webmonkey.com/blog/Microsoft_Delivers_Long_Awaited_Mac_Open_XML_Converters" target="_blank">example</a>, Microsoft's Open Source <a title="Microsoft's Open Source Website" href="http://www.microsoft.com/opensource/default.mspx" target="_blank">website</a> and <a title="CodePlex Website" href="http://www.codeplex.com/CodePlex" target="_blank">CodePlex</a>, Microsoft's hosting site for Open Source.)</p>
<p>Those of us barely able to remember when once we had hair can hark back to the late '80s and early '90s. Microsoft was then desperately trying to see its tools adopted by the development communities, and especially the corporate developers, who were then using SyBase, PowerBuilder and other mostly forgotten tool. They regarded Microsoft as a purveyor of "toy" development tools for sissies. To change that perception, Microsoft hired a staff of evangelists, and spared no expense to pamper and woo developers of all stripes, cleverly realizing that by controlling developers they would control the desktop and continue their hegemony. It took a few years, but the effort was largely successful, especially for corporate development The effort survives, in much more modest form, as <a title="MSDN" href="http://msdn.microsoft.com/en-us/default.aspx" target="_blank">Microsoft Developer Network</a>, as the battle seemed substantially won.</p>
<p>No so fast.</p>
<p>Google is now battling Microsoft on many fronts, and developers are becoming a prime battleground. Like the Microsoft of old, Google is pampering developers at <a title="Google I/O Conference" href="http://code.google.com/events/io/" target="_blank">conferences</a>, and with tee shirts and food. However, its commitment to Open Source and non-proprietary open industry standards are perhaps its most potent weapons. For years, enterprises have chaffed at the heavy "taxes" they need to pay Microsoft for each desktop, primarily in the form of licenses for Windows, Office, and Exchange, but also in supporting armies of technicians that need to constantly upgrade those desktops to work with the latest release of this or that Microsoft upgrade.</p>
<p>There is a rebellion underfoot, and Microsoft's heavy-handed attempts to "force" the adoption of Vista have only fanned the flames of rebellion.</p>
<p>Technology is also on Google's side. Improved and more universal Internet and really powerful cloud computing has clearly brought us back to the so-called "thin client" era, where most of the really good stuff happens on the server side. Mozilla's Open Source <a title="FireFox website" href="http://www.mozilla.com/en-US/firefox/all.html" target="_blank">FireFox 3.0 </a>is also playing an important role. The upcoming near universal availability of the Internet browser on all cell phones, PDAs, and other devices and - finally - the move to high speed 3G and 4G cellphone technology are changing the paradigm once again.</p>
<p>Open Source, Cloud Computing, and Software as a Service (SAAS) are the future. Complex, proprietary, failure-prone desktops, with their heavy taxation burden to Microsoft represent the past.  A major paradigm shift is underway, and there will be winners and losers. Menlo Park's Sand Hill Road venture capitalists are rubbing their hands in glee. Paradigm shifts create huge opportunities for start-ups to become billion dollar companies in a short time.</p>
<p>As James Otis famously said in the years just prior to the American Revolutionary War, "Taxation without representation is tyranny." And it's rebellion against tyranny that fuels revolution. That's been the American way now for well over 300 years.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Assembla: Free hosted SVN and more...]]></title>
<link>http://willwm.wordpress.com/2008/06/22/assembla-rocks-my-socks/</link>
<pubDate>Sun, 22 Jun 2008 21:37:49 +0000</pubDate>
<dc:creator>willwm</dc:creator>
<guid>http://willwm.wordpress.com/2008/06/22/assembla-rocks-my-socks/</guid>
<description><![CDATA[I&#8217;ve spent quite some time looking for a hosted Subversion repository that had a cheap or free]]></description>
<content:encoded><![CDATA[<p style="text-align:left;">I've spent quite some time looking for a hosted Subversion repository that had a cheap or free trial option so that I could migrate my locally hosted repository (seems silly to host your repository on your own machine, doesn't it?) to somewhere online.</p>
<p style="text-align:left;"><a href="http://www.assembla.com/"><img src="http://www.assembla.com/images/blue/assembla-logo.gif" alt="Assembla" width="120" height="50" align="right" /></a></p>
<p style="text-align:left;">Guess I wasn't looking well enough, because today I (finally) stumbled upon a solution which meets all of my needs and more, <a href="http://www.assembla.com/about">Assembla</a>.</p>
<p style="text-align:left;">If you're looking for a place to host your development projects, I'd highly suggest Assembla, even if only for the *free* hosted Subversion repository which can be made private or public, unlike other free services which only offer public open-source hosting. Not that I'm knocking Sourceforge or Google Code, it's just that I'm working on a consulting project that can't be left out in the open (as I'm sure is the case with many of you out there as well).</p>
<p style="text-align:left;">Here's a list of their plans (current as of this posting):</p>
<p style="text-align:left;"><a href="http://willwm.files.wordpress.com/2008/06/2008-06-22-143510.png"><img class="aligncenter" style="border:0 none;" src="http://willwm.files.wordpress.com/2008/06/2008-06-22-143510-thumb.png" border="0" alt="2008-06-22_143510" width="404" height="359" /></a></p>
<p style="text-align:left;">...and since you probably can't read that without clicking on the expanded image, here's the link to their pricing plans: <a title="http://www.assembla.com/tour" href="http://www.assembla.com/tour">http://www.assembla.com/tour</a></p>
<p style="text-align:left;">The array of development tools they have to offer is quite impressive, and I'm seriously considering upgrading to the Commercial plan ($12.50/month) to get more space.</p>
<p style="text-align:center;"><a href="http://www.assembla.com/"><img class="size-medium wp-image-398" style="margin:2px;" src="http://willwm.wordpress.com/files/2008/06/logos_orientation.gif?w=137" alt="Subversion, trac, git, mercurial" width="137" height="89" /></a></p>
<p style="text-align:left;"><em>For what it's worth, <a href="http://www.box.net">Box.net</a>, if you're listening</em> - you should really consider offering (real) WebDAV support and/or Subversion through your API, because *that* would make your site the killer app I've been waiting/paying for.</p>
<p style="text-align:left;">Also, here's another great post with information about Assembla:<br />
<a href="http://coding-time.blogspot.com/2008/04/free-subversion-wiki-at-assemblacom.html">http://coding-time.blogspot.com/2008/04/free-subversion-wiki-at-assemblacom.html</a></p>
<p style="text-align:left;">...and they also have a great post about Subversion and how it works:<br />
<a href="http://coding-time.blogspot.com/2008/04/subversion-visually-explained-in-30sec.html">http://coding-time.blogspot.com/2008/04/subversion-visually-explained-in-30sec.html</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Response to "Is Mac OSX 10.6 the Death of Carbon?"]]></title>
<link>http://phantombility.wordpress.com/?p=5</link>
<pubDate>Sun, 08 Jun 2008 16:26:28 +0000</pubDate>
<dc:creator>phantombility</dc:creator>
<guid>http://phantombility.wordpress.com/?p=5</guid>
<description><![CDATA[Roughly Drafted has a pretty good article on the history of Mac OSX at http://www.roughlydrafted.com]]></description>
<content:encoded><![CDATA[<p>Roughly Drafted has a pretty good article on the history of Mac OSX at <a href="http://www.roughlydrafted.com/2008/06/07/wwdc-2008-is-mac-os-x-106-the-death-of-carbon/">http://www.roughlydrafted.com/2008/06/07/wwdc-2008-is-mac-os-x-106-the-death-of-carbon/</a>.</p>
<p>Some of the responses questioned whether there will be a Cocoa for Windows.</p>
<p>While Roughly Drafted's article is a good overview of what happened with Mac OSX and its API, it missed some important information about NeXT.</p>
<p>Back in the days of NeXT, when Steve Jobs failed to push the hardware in the market, NeXT developed a different flavor of NeXTSTEP OS, called OpenStep. It runs on top of Windows and Sun. Essentially, it was a framework on top of the native API of each OS.</p>
<p>Cocoa is really based on OpenStep instead of NeXTSTEP. That's why we have two layers - the Carbon, and Cocoa on top.</p>
<p>So, the question on whether Cocoa CAN be ported to Windows is a definite YES. It was done 15 years ago. It can still be done now.</p>
<p>However, it is very unlikely to make Cocoa to work with .NET. First, they use two totally different languages. Cocoa uses Objective C. .NET uses C#. That makes it very difficult to use one framework in another one.</p>
<p>When API is standard C procedure calls, vendors and developers can use any language and create a variety of tools and framworks. With System 7, we had MacApp, THINK, and PowerPlant, three major C++ frameworks. We had a couple of Basic compilers, whose name I cannot recall at this moment.  Apple also briefly tried a language called Dylan (short for Dynamic Language). Metrowerks also had a super fast Pascal compiler, which works with PowerPlant.</p>
<p>Today, most of those tools and frameworks are retired. There is still Qt, a cross-platform C++ framework. It is built on top of Carbon, and missing a lot of platform specific features.</p>
<p>As Apple pushes toward Cocoa, and Microsoft pushes toward .NET, it has been very difficult for development tools companies. The classic example on Mac is Metrowerks. The classic example on Windows is Borland(Codegear). Both of them have to change their business model and abandom the mainstream tools market. Both of them had great tools on top of the native C API of each OS, but unable to move forward when the OS become object-oriented.</p>
<p>I have mixed feelings about Cocoa and .NET. They are great frameworks. However, it is almost impossible to write cross-platform code with them. Yes, you can write Objective-C and make it fairly cross-platform on Mac OSX and iPhone, and you can write C# and make it fairly cross-platform on Windows and Windows Mobile. However, there is a big gap between Mac OSX and Windows.</p>
<p>Cocoa can be built on top of WinAPI, but cannot be built on top of .NET. That limits the potential use of Cocoa on Windows.</p>
<p>And why would Apple do that anyway? No cross-platform tool ever succeeded in large scale. Even Apple's own effort failed - in 1995 (around that time), Apple partnered with Symantec (the owner of THINK C at that time) to develop a cross-platform framework called Bedrock.</p>
<p>So, I doubt we will see Cocoa for other platforms except in Apple's labs.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Private beta of ObMimic for out-of-container servlet testing]]></title>
<link>http://closingbraces.wordpress.com/?p=58</link>
<pubDate>Fri, 30 May 2008 13:57:10 +0000</pubDate>
<dc:creator>closingbraces</dc:creator>
<guid>http://closingbraces.wordpress.com/?p=58</guid>
<description><![CDATA[The &#8220;ObMimic&#8221; library for out-of-container servlet testing is now being made available t]]></description>
<content:encoded><![CDATA[<p>The "ObMimic" library for out-of-container servlet testing is now being made available to a small number of users as a private "beta" release, in advance of a public beta in the next month or two.</p>
<p>We're ready for a few more people to start trying it out, so if you're interested just let me know - either via this blog's "contact me" page or via my company e-mail address of mike-at-openbrace-dot-com.</p>
<p>In outline, ObMimic provides a comprehensive set of fully-configurable <a href="http://xunitpatterns.com/Mocks,%20Fakes,%20Stubs%20and%20Dummies.html">test doubles</a> for the Servlet API, so that you can use normal "plain java" tools and techniques to test servlets, filters, listeners and any other code that depends on the Servlet API. We call these test doubles "mimics", because they "mimic" the behaviour of the real object.</p>
<p>We see this as the ultimate set of "test doubles" for this specific API: a set of plain Java objects that completely and accurately mimic the behaviour of the "real" Servlet API objects, whilst being fully configurable and inspectable and with additional instrumentation to support both "state-based" and "interaction-based" testing.</p>
<p>If you find servlet code harder to test than plain Java, ObMimic might be just what you're looking for.</p>
<p>With ObMimic, you can create instances of any Servlet API interface or abstract class using plain no-argument constructors; configure and inspect all relevant details of their internal state as necessary; and pass them into your code wherever Servlet API objects are needed. This makes it easy to do detailed testing of servlets, filters, listeners and other code that depends on the Servlet API, without needing a servlet container and without any of the complexities and overheads of packaging, deployment, restarts/reloads, networking etc.</p>
<p>ObMimic includes facilities for:</p>
<ul>
<li>Setting values that are "read-only" in the Servlet API (including full programmatic control over "deployment descriptor" values and other values that are normally fixed during packaging/deployment, or that have fixed values in each servlet container).</li>
<li>Examining values that are normally "write-only" in the Servlet API (such as a response's body content).</li>
<li>Optionally recording and retrieving details of the Servlet API calls made to each object (with ability to turn this on and off on individual objects).</li>
<li>Controlling which version of the Servlet API is simulated, with versions 2.3, 2.4 and 2.5 currently supported (for example, you can programmatically repeat a test using different Servlet API versions).</li>
<li>Detecting and reporting any calls to Servlet API methods whose handling isn't strictly defined by the API (e.g. passing null arguments to Servlet API methods whose Javadoc doesn't specify whether nulls are permitted or how they are handled).</li>
<li>Controlling the simulation of container-specific behaviour (i.e. where the Servlet API allows variations or leaves this open).</li>
<li>Explicitly forcing Servlet API methods to throw a checked exception (e.g. so that you can test any code that handles such exceptions).</li>
<li>Handling JNDI look-ups using a built-in, in-memory JNDI simulation.</li>
</ul>
<p>There are no dependencies on any particular testing framework or third-party libraries (other than Java SE 5 or higher and the Servlet API itself), so you can freely use ObMimic with JUnit, TestNG or any other testing framework or tool.</p>
<p>In contrast to traditional "mock" or "stub" objects, ObMimic provides complete, ready-made implementations of the Servlet API interfaces and abstract classes as defined by their Javadoc. As a result, your tests don't have to depend on your own assumptions about the Servlet API's behaviour, and both state-based and interaction-based tests can be supported. ObMimic can even handle complex sequences of Servlet API calls, such as for session-handling, request dispatching, incorporation of "POST" body content into request parameters, notification to listeners, and other such complex interactions between Servlet API objects. It can thus be used not only for testing individual components in isolation, but also for testing more complete paths through your code and third-party libraries.</p>
<p>With the appropriate configuration, it's even possible to test code that uses other frameworks on top of the Servlet API. For example, we've been able to use ObMimic to test "Struts 1" code, and to run ZeroTurnaround's <a href="http://www.zeroturnaround.com/jsp-weaver/">JspWeaver</a> on top of ObMimic to provide out-of-container testing of JSPs (as documented <a href="http://www.closingbraces.net/ObMimicJspWeaver1.html">previously</a>).</p>
<p>As a somewhat arbitrary example, the following code illustrates a very simple use of ObMimic to test a servlet (just to show the basics of how Servlet API objects can be created, configured and used):</p>
<p><strong>
<pre>
import com.openbrace.obmimic.mimic.servlet.http.HttpServletRequestMimic;
import com.openbrace.obmimic.mimic.servlet.http.HttpServletResponseMimic;
import com.openbrace.obmimic.mimic.servlet.ServletConfigMimic;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import java.io.IOException;

...

/* Create a request and configure it as needed by the test. */
HttpServletRequestMimic request = new HttpServletRequestMimic();
request.getMimicState().getRequestParameters().set("name", "foo");
request.getMimicState().getAttributes().set("bar", 123);
... further request set-up as desired ...

/* Create a response. */
HttpServletResponseMimic response = new HttpServletResponseMimic();

/*
 * Create and initialize the servlet to be tested (assumed to be a
 * class called "MyHttpServlet"), using a dummy/minimal
 * ServletConfig.
 */
Servlet myServlet = new MyHttpServlet();
try {
    myServlet.init(new ServletConfigMimic());
} catch (ServletException e) {
    ... report that test failed with unexpected ServletException ...
}

/* Invoke the servlet to process the request and response. */
try {
    myServlet.service(request, response);
} catch (ServletException e) {
    ... report that test failed with unexpected ServletException ...
} catch (IOException e) {
    ... report that test failed with unexpected IOException ...
}

/*
 * Retrieve the response's resulting status code and body content,
 * as examples of how the resulting state of the relevant mimic
 * instances can be examined.
 */
int statusCode
    = response.getMimicState().getEffectiveHttpStatusCode();
String bodyContent
    = response.getMimicState().getBodyContentAsString();
... then check them as appropriate for the test ...
</pre>
<p></strong></p>
<p>For further examples and details, refer to the previous posts "First experiments with out-of-container testing of Servlet code using ObMimic" <a href="http://www.closingbraces.net/firstobmimicuse1.html">part 1</a> and <a href="http://www.closingbraces.net/firstobmimicuse2.html">part 2</a>, <a href="http://www.closingbraces.net/ObMimicJspWeaver1.html">"Out-of-container JSP testing with ObMimic and JspWeaver"</a>, and the related post <a href="http://www.closingbraces.net/centralizedapimocking.html">"Mocking an API should be somebody else's problem"</a>.</p>
<p>There are also more extensive examples in ObMimic's documentation.</p>
<p>ObMimic isn't open-source, but it will have a zero-cost version (full API coverage but a few overall features disabled, such as the ability to configure the Servlet API version, control over how incorrect/ambiguous API calls are handled, and recording of API calls). There will also be a low-cost per-user "Professional" version with full functionality, and an "Enterprise" version that includes all of ObMimic's source-code and internal tests (with an Ant build script) as well as a licence for up to 200 users.</p>
<p>At the moment there's no web-site, discussion forums or bug-reporting mechanisms (all still being prepared), but ObMimic already comes with full documentation including both short and detailed "getting started" guides, "how to"s with example code, and extensive Javadoc - and for this private beta I'm providing direct support by e-mail.</p>
<p>Anyway, if you'd like to try out ObMimic, or have any questions or comments, or would like to be informed when there's a more public release, just let me know via the "contact me" page or by e-mail.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[ตกลงกันก่อน]]></title>
<link>http://devpro.wordpress.com/?p=3</link>
<pubDate>Wed, 28 May 2008 04:17:10 +0000</pubDate>
<dc:creator>wisesas</dc:creator>
<guid>http://devpro.wordpress.com/?p=3</guid>
<description><![CDATA[ตกลงกันก่อนนะครับ ว่าไฟล์ที่ Share ให้]]></description>
<content:encoded><![CDATA[<p>ตกลงกันก่อนนะครับ ว่าไฟล์ที่ Share ให้นี้จะไม่มีการนำไปขายหรือนำ Link ไป post ตามที่ต่าง ๆ โดยไม่ให้ Credit กัน นะครับ ขอหน่อยเถอะ อยากดังเหมือนกัน อิ อิ ก็ไม่มีอะไรมากครับช่วย ๆ กันนะครับ ขอบคุณมาก แล้วจะ update เรื่อย ๆ ครับ</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Cocoa Programming for Mac OS X]]></title>
<link>http://kbooks.wordpress.com/B000OZ0N94</link>
<pubDate>Mon, 26 May 2008 18:45:49 +0000</pubDate>
<dc:creator>kbooks</dc:creator>
<guid>http://kbooks.wordpress.com/B000OZ0N94</guid>
<description><![CDATA[
&#8220;The highly acclaimed introduction to Cocoa-recommended most by experienced Mac OS X develope]]></description>
<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000OZ0N94&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325"><img src="http://ecx.images-amazon.com/images/I/51Zzh%2BcKENL._SL200_.jpg" border="0" align="right" /></a></p>
<p>"The highly acclaimed introduction to Cocoa-recommended most by experienced Mac OS X developers now updated and expanded. Here's what critics said about the first edition: "Reading this book is the absolute best way to learn how to harness the power of this amazing technology."<br />
-Andrew Stone, President, Stone Design, www.stone.com "Make sure this is the first one you pick up. It's the best book for a beginning Cocoa programmer."<br />
-From the review on HyperJeff.net&#38; "I love this book. The descriptions are clear, the examples logical. Everything a programmer needs to get up to speed on Cocoa."<br />
-Dave Mark, Editor, MacTech Magazine<br />
To help programmers develop applications for Mac OS X, Apple is now giving away XCode, Interface Builder, and the Cocoa frameworks-the tools used to create Safari, GarageBand, Mail, and the iApps. Cocoa- Programming for Mac- OS X, Second Edition, will give you a complete understanding of how to use these tremendously powerful tools and frameworks to write full-featured applications for the Mac.</p>
<p>Guiding programmers through the key features of Cocoa, this book emphasizes design patterns that enable you to predict the behavior of classes you have never used before. Written in a tutorial format, it takes you step-by-step through the creation of six applications and an Interface Builder palette. Each project introduces several new ideas, and as each concept or technique is discussed, the author, drawing on his own extensive experience, shows you the right way to use it.</p>
<p>Updated for Xcode and Mac OS X 10.3, new chapters in this second edition include coverage of OpenGL, AppleScriptability, the undo manager, creating frameworks, and a brief introduction to using GNUstep on Linux.</p>
<p>"</p>
<p> There's a reason that a large slice of the open-source movement has defected from running Linux on its laptops to running Mac OS X. The reason is the Unix core that underlies Mac OS X, and the development tools that run on that core. Cocoa makes it easy to create very slick Mac OS X interfaces for software (as well as to create applications in a hurry), and this new edition of Cocoa Programming for Mac OS X does an excellent job of teaching its readers how to put a Cocoa face on top of code (Objective-C code almost exclusively). If you know something about C and/or C++ programming and want to apply your skills to the Mac, this is precisely the book you want.<br />
 Author Aaron Hillegass teaches a Cocoa class, and his book reads like a demonstration-driven lecture in a computer lab. That is, the book takes a heavily example-centric approach to its subject, beginning with simple announcement windows and proceeding to cover the more advanced controls and object-oriented features of Cocoa and Objective-C. Throughout, he hops back and forth between descriptions of the goal to be accomplished, listings of the code that does the job, and instructions on how to use the Mac OS X development tools to speed the development process. --David Wall<br />
 Topics covered: How to write software for Mac OS X in Objective-C and, especially, with Cocoa. The new edition shows how to use NSUndoManager, add AppleScript capability to an application, do graphics work with OpenGL, and use Cocoa under Linux using GNUstep. As well, all the basic controls and design patterns are covered.</p>
<p>Order <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000OZ0N94&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">Cocoa Programming for Mac OS X</a> from Amazon for $28.34</b></p>
<p>Don't have <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000FI73MA%2F&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">Amazon Kindle</a>? You can always <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000FI73MA%2F&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">purchase it from here</a><br />Or if you prefer to read the Print editions instead, you can <a href="http://www.amazon.com/gp/search?ie=UTF8&#38;keywords=undefined&#38;tag=kbooks-20&#38;index=books&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">get it from here</a><img src="http://www.assoc-amazon.com/e/ir?t=kbooks-20&#38;l=ur2&#38;o=1" width="1" height="1" border="0" alt="" style="border:none !important;margin:0 !important;" /></p>
<p><b>Other Kindle Books of Interest</b><br />
<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000OZ0NCG&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">Mac OS X Internals: A Systems Approach</a><br />
<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000VYLNMO&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">Beginning Mac OS X Programming</a><br />
<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000WDQF4A&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">Programming with Quartz: 2D and PDF Graphics in Mac OS X</a><br />
<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000P28WJO&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">Rubyisms in Rails, Digital Shortcut</a><br />
<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#38;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2F&#38;tag=kbooks-20&#38;linkCode=ur2&#38;camp=1789&#38;creative=9325">undefined</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Advanced breakpoints in Eclipse]]></title>
<link>http://dennislaumen.wordpress.com/?p=175</link>
<pubDate>Thu, 22 May 2008 18:11:50 +0000</pubDate>
<dc:creator>Dennis Laumen</dc:creator>
<guid>http://dennislaumen.wordpress.com/?p=175</guid>
<description><![CDATA[Breakpoint properties?
For the last couple of months I have been using Eclipse more and more in both]]></description>
<content:encoded><![CDATA[<h3>Breakpoint properties?</h3>
<p>For the last couple of months I have been using <a class="zem_slink" title="Eclipse (software)" rel="homepage" href="http://www.eclipse.org" target="_blank">Eclipse</a> more and more in both a personal and a professional setting. Eclipse can be an <strong>overwhelming and daunting</strong> <a class="zem_slink" title="Integrated development environment" rel="wikipedia" href="http://en.wikipedia.org/wiki/Integrated_development_environment" target="_blank">IDE</a> but is a very powerful one too. One of the features I hadn't discovered until recently is the <strong>breakpoints properties screen</strong>. This screen has a number of cool features but I'd like to highlight two of them in this blog post.</p>
<h3>Hit count</h3>
<p>Eclipse allows you too only suspend the thread for <a class="zem_slink" title="Debugging" rel="wikipedia" href="http://en.wikipedia.org/wiki/Debugging" target="_blank">debugging</a> when hitting the <a class="zem_slink" title="Breakpoint" rel="wikipedia" href="http://en.wikipedia.org/wiki/Breakpoint" target="_blank">breakpoint</a> a certain number of times. Look at the example code below.</p>
<p>[sourcecode='java']<br />
for (int i = 0; i <= args.length; i++) {<br />
 System.out.println(args[i]);<br />
}<br />
[/sourcecode]Imagine a much more complex version of the scenario seen above. You're skipping through arrays and suddenly an ArrayIndexOutOfBoundsException is fired. Wouldn't it be easy to be able to debug this piece of code without having to click through the loop a <strong>gazillion times</strong> until you reach the phase of the loop you're interested in?</p>
<p>Eclipse makes this all possible in its breakpoints properties screen. This screen is shown below and can be opened by <strong>right clicking a breakpoint</strong> and selecting properties in the menu. As you can see in the image below you <strong>enter a numerical value</strong> which indicated <strong>how many hits</strong> a breakpoint should get before suspending the thread and allowing you to dive into the code.</p>
<p><a href="http://dennislaumen.wordpress.com/files/2008/05/advancedbreakpointshitcount.png"><img class="aligncenter size-full wp-image-177" src="http://dennislaumen.wordpress.com/files/2008/05/advancedbreakpointshitcount.png" alt="hit count" width="692" height="604" /></a></p>
<h3>Conditional breakpoints</h3>
<p>An even more powerful feature than the one shown above is the <strong>conditional breakpoint</strong>. An example of this can be seen in the picture below.</p>
<p><a href="http://dennislaumen.wordpress.com/files/2008/05/advancedbreakpointscondition.png"><img class="aligncenter size-full wp-image-176" src="http://dennislaumen.wordpress.com/files/2008/05/advancedbreakpointscondition.png" alt="condition" width="692" height="606" /></a></p>
<p>Using the settings seen in the image the breakpoint only suspends the thread when the condition in the text box is true. You can enter any <a class="zem_slink" title="Boolean datatype" rel="wikipedia" href="http://en.wikipedia.org/wiki/Boolean_datatype" target="_blank">boolean</a> condition in this box.</p>
<p>Both of the above features allow for some <strong>very, very powerful debugging</strong>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Open Graphics Project and OGD1]]></title>
<link>http://thenextera.wordpress.com/?p=15</link>
<pubDate>Thu, 22 May 2008 03:22:04 +0000</pubDate>
<dc:creator>itisanillusion</dc:creator>
<guid>http://thenextera.wordpress.com/?p=15</guid>
<description><![CDATA[The Open Graphics Project is a open source hardware project in graphics cards. The OGD1 is the first]]></description>
<content:encoded><![CDATA[<p>The <a href="http://wiki.opengraphics.org/tiki-index.php" target="_blank">Open Graphics Project</a> is a open source hardware project in graphics cards. The <a href="http://www.traversaltech.com/products.phtml" target="_blank">OGD1</a> is the first commercial version of the project.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[GNU Radio and USRP]]></title>
<link>http://thenextera.wordpress.com/?p=12</link>
<pubDate>Wed, 21 May 2008 14:50:35 +0000</pubDate>
<dc:creator>itisanillusion</dc:creator>
<guid>http://thenextera.wordpress.com/?p=12</guid>
<description><![CDATA[GNU Radio is a free software development toolkit that provides the signal processing runtime and pro]]></description>
<content:encoded><![CDATA[<p><a href="http://www.gnu.org/software/gnuradio/" target="_blank">GNU Radio</a> is a free software development toolkit that provides the signal processing runtime and processing blocks to implement software radios using readily-available, low-cost external RF hardware and commodity processors. The <a href="http://www.ettus.com/" target="_blank">Universal Software Radio Peripheral</a>, or USRP, is device which allows you to create a software radio using any computer with a USB 2 port.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Google App Engine]]></title>
<link>http://thenextera.wordpress.com/?p=10</link>
<pubDate>Wed, 21 May 2008 14:36:22 +0000</pubDate>
<dc:creator>itisanillusion</dc:creator>
<guid>http://thenextera.wordpress.com/?p=10</guid>
<description><![CDATA[Google App Engine enables building of web applications on the same scalable systems that power Googl]]></description>
<content:encoded><![CDATA[<p><a href="http://code.google.com/appengine/" target="_blank">Google App Engine</a> enables building of web applications on the same scalable systems that power Google applications.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Yahoo! Pipes]]></title>
<link>http://thenextera.wordpress.com/?p=9</link>
<pubDate>Wed, 21 May 2008 13:20:55 +0000</pubDate>
<dc:creator>itisanillusion</dc:creator>
<guid>http://thenextera.wordpress.com/?p=9</guid>
<description><![CDATA[Pipes is a powerful composition tool to aggregate, manipulate, and mashup content from around the we]]></description>
<content:encoded><![CDATA[<p><a href="http://pipes.yahoo.com/pipes/" target="_blank">Pipes</a> is a powerful composition tool to aggregate, manipulate, and mashup content from around the web.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Processing.js]]></title>
<link>http://thenextera.wordpress.com/?p=8</link>
<pubDate>Wed, 21 May 2008 13:12:15 +0000</pubDate>
<dc:creator>itisanillusion</dc:creator>
<guid>http://thenextera.wordpress.com/?p=8</guid>
<description><![CDATA[The Processing visualization language has been ported to Javascript using the Canvas element.
]]></description>
<content:encoded><![CDATA[<p>The <a href="http://en.wikipedia.org/wiki/Processing_%28programming_language%29" target="_blank">Processing visualization language</a> has been ported to <a href="http://ejohn.org/blog/processingjs/" target="_blank">Javascript</a> using the Canvas element.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[jQuery]]></title>
<link>http://thenextera.wordpress.com/?p=7</link>
<pubDate>Wed, 21 May 2008 10:06:19 +0000</pubDate>
<dc:creator>itisanillusion</dc:creator>
<guid>http://thenextera.wordpress.com/?p=7</guid>
<description><![CDATA[jQuery is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handl]]></description>
<content:encoded><![CDATA[<p><a href="http://jquery.com/" target="_blank">jQuery</a> is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Difference between SVN and CVS]]></title>
<link>http://devnetbbq.wordpress.com/?p=16</link>
<pubDate>Sun, 11 May 2008 10:04:53 +0000</pubDate>
<dc:creator>devnetbbq</dc:creator>
<guid>http://devnetbbq.wordpress.com/?p=16</guid>
<description><![CDATA[This question was posted by in the Interactive DevNet Forum.
Here is a quick comparision between the]]></description>
<content:encoded><![CDATA[<p>This question was posted by in the Interactive DevNet Forum.</p>
<p>Here is a quick comparision between the two that I found over the internet.  Do note that this was posted a few years back.  Those with experiences with SVN/CVS, do comment on the accuracy of the comparision.</p>
<p><a href="http://www.pushok.com/soft_svn_vscvs.php">http://www.pushok.com/soft_svn_vscvs.php</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Tools for Web Developers and Designers]]></title>
<link>http://serverbeach.wordpress.com/?p=214</link>
<pubDate>Tue, 22 Apr 2008 19:25:54 +0000</pubDate>
<dc:creator>kylistah</dc:creator>
<guid>http://serverbeach.wordpress.com/?p=214</guid>
<description><![CDATA[
&#8220;An effective web design is one in which your users are able to find  information quickly and]]></description>
<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://serverbeach.files.wordpress.com/2008/04/clicktale.jpg"><img class="aligncenter size-medium wp-image-215" src="http://serverbeach.wordpress.com/files/2008/04/clicktale.jpg?w=300" alt="" width="300" height="150" /></a></p>
<p>"An effective web design is one in which your users are able to find  information quickly<em></em> and in a logical fashion."</p>
<p>We all visit websites, leaving many of them quickly for any of the following reasons:</p>
<ul>
<li>Loads too slowly</li>
<li>Too hard to navigate around</li>
<li>Information you're searching for seems like a game of hide 'n seek</li>
</ul>
<p>If you’re interested in analyzing and optimizing your page layout <a href="http://sixrevisions.com">Six Revisions</a> has posted some extremely useful <a href="http://sixrevisions.com/tools/useful_web_analytics_tools">tools</a> that you can use to help.</p>
<p>A couple of tools listed on that site include -</p>
<p><a title="ClickHeat - Home page" href="http://www.labsmedia.com/clickheat/index.html"><strong>ClickHeat</strong></a>, which is an open source visual tool for showing "hot" and "cold" zones of a web page. It allows you to see which spots users click on most, and which spots are being ignored</p>
<p><a title="Crazy Egg - Home page" href="https://crazyegg.com/"><strong>Crazy Egg</strong></a>, who offers a myriad of analytical tools to help you visualize what visitors are doing.</p>
<p>Check out the rest of that <a href="http://sixrevisions.com/tools/useful_web_analytics_tools">list</a> and see if your site can benefit from <a href="http://sixrevisions.com/tools/useful_web_analytics_tools">any of those tools</a>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[]]></title>
<link>http://vinfin.wordpress.com/?p=4</link>
<pubDate>Sat, 23 Feb 2008 16:20:48 +0000</pubDate>
<dc:creator>vinfin</dc:creator>
<guid>http://vinfin.wordpress.com/?p=4</guid>
<description><![CDATA[Сегодня был куплен девайс D-Link DI-524.
В полтора часа ночи ]]></description>
<content:encoded><![CDATA[<p>Сегодня был куплен девайс <a href="http://www.dns-shop.ru/prim/price_detail.php?i=14327">D-Link DI-524</a>.<br />
В полтора часа ночи был сделан хитрый ход хакающим конём. Говорим девайсу "девайс, будешь получать ip снаружи автоматически по своему мак адресу, и твой мак адрес - вот такой же, как на карточке в моем компе". Он этому верит, внимательно слушает и запоминает. А потом говорим ему "девайс, все будет статически, вот тебе твой внешний ip адрес". В результате он ведется и на то, и на другое одновременно, хотя вообще-то это взаимоисключающие настройки подключения устройства. И мак, и ip запомнились - и мы выходим в Сеть. Побочный эффект - не могу зайти в веб-интерфейс устройства с компа - мак адреса совпадают. Хотя мне кажется, что это не причина.<br />
А еще воткнут <a href="http://67.18.179.34:8000/OUTrac">trac</a>. Тока нахер он мне нужен? Вообще-то надо найти что-то простое для редактирования тада листов с веб-интерфейсом (ну wiki, да) и возможностью переходить от этих листов к списку задач, которые можно крутить и вертеть. Вот это было бы само то. Главное - тада листы, задачи и все это в вебе. Никто не фкурсе?</p>
]]></content:encoded>
</item>

</channel>
</rss>
