<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OpenSource Connections &#187; Michael Herndon</title>
	<atom:link href="http://www.opensourceconnections.com/author/mherndon/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opensourceconnections.com</link>
	<description>Automating the Science to Enable the Art</description>
	<lastBuildDate>Fri, 03 Sep 2010 21:15:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>B.D.D. Thoughts Reloaded</title>
		<link>http://www.opensourceconnections.com/2010/05/03/b.d.d.-thoughts-reloaded/</link>
		<comments>http://www.opensourceconnections.com/2010/05/03/b.d.d.-thoughts-reloaded/#comments</comments>
		<pubDate>Mon, 03 May 2010 14:16:05 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[b.d.d.]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[behavior driven development]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[must]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[should]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=992</guid>
		<description><![CDATA[<p>Its not exactly easy to get people to read requirement or technical specifications, much less write them. It&#8217;s also hard to getÂ  developers to write tests. Its even harder to get them to write solid usable tests.</p>
<p><a href="http://www.opensourceconnections.com/2010/05/03/b.d.d.-thoughts-reloaded/" class="more-link">Read more on B.D.D. Thoughts Reloaded&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Its not exactly easy to get people to read requirement or technical specifications, much less write them. It&#8217;s also hard to getÂ  developers to write tests. Its even harder to get them to write solid usable tests.</p>
<p>B.D.D (Behavior Driven Development) which is a spin off of T.D.D (Test Driven Development) focuses on the language of testing and and quality assurance of software, in hopes to make creating tests easier as well and specifications.</p>
<p>The concept was coined by <a href="http://blog.dannorth.net/introducing-bdd/">Dan North</a>. Since then new libraries like <a href="http://rspec.info/">rspec</a>, <a href="http://cukes.info/">cumcumber</a>, <a href="http://www.specflow.org/">specflow</a>, <a href="http://nbehave.org/">nbehave</a>, <a href="http://codebetter.com/blogs/aaron.jensen/archive/2008/05/08/introducing-machine-specifications-or-mspec-for-short.aspx">machine spec</a> have come about.</p>
<p>I can agree that sometimes changing the business language can help people with making associations and understanding of processes easier.  And using &#8220;Behavior&#8221; instead of &#8220;test&#8221; does help in understanding that you need to validate how the software or code is supposed to behave.</p>
<h3>Questioning The Boilerplate Human Readable Specifications</h3>
<p>Where people need to be more skeptical is the question of is there real business value in getting code to generate boilerplate systematic specifications?</p>
<p>For an example, I&#8217;m pulling this from a <a href="http://github.com/aslakhellesoy/cucumber/blob/master/examples/i18n/en/features/addition.feature">cucumber example from github</a>.</p>
<pre><code>
# language: en
Feature: Addition
  In order to avoid silly mistakes
  As a math idiot
  I want to be told the sum of two numbers

  Scenario Outline: Add two numbers
    Given I have entered &lt;input_1&gt; into the calculator
    And I have entered &lt;input_2&gt; into the calculator
    When I press &lt;button&gt;
    Then the result should be &lt;output&gt; on the screen

  Examples:
    | input_1 | input_2 | button | output |
    | 20      | 30      | add    | 50     |
    | 2       | 5       | add    | 7      |
    | 0       | 40      | add    | 40     |

</code></pre>
<p>We live in a time surrounded by constant news, media, following four subplots instead of one. Its hard to get people concentrate for long periods of time or sit still, much less to get them to read technical or requirement specifications.</p>
<p>Now I was to write this scenario for a requirement out as a spec, it would read like the following.</p>
<pre><code>

The <b>mad scientist2</b> with his destructo <b>calculator</b> enters <b>input 1</b>
and <b>input2</b>. He manically <b>presses</b> said red <b>button</b> . The <b>output</b>
must be the <b>sum</b> of input 1 and input 2.

(i1 + i2 = output)
</code></pre>
<p>So why are we creating specifications that repeat words like I,As,When,Given,Then like bad boilerplate code? They might be human readable, but the questions of being understandable, easy to read, enticing to read, is a whole different story.</p>
<p>I have to honestly question that even if a developer takes their time and makes sure the code is up to spec. The question is are the specs kept up to day (requirements change). And are lay people going to want to sit through and actually read these things?</p>
<p>Is this a real business value?</p>
<p>I don&#8217;t see any at this point. I see no real return on time invested to write boring systematic specs and just to have them match up in some way with code.</p>
<p>Specifications, like any documentation worth it&#8217;s salt, needs to be able to:</p>
<ul>
<li>be engaging and appeal to more than the logical side.</li>
<li>provide the meat of information that is digestible.</li>
<li>avoid templating that read like government contracts.</li>
<li>be terse and yet expressive.</li>
</ul>
<h3>We have been here before</h3>
<p>Their have been tools like this before, (<a href="http://agile.csc.ncsu.edu/SEMaterials/tutorials/fit/">Fit</a>,<a href="http://agile.csc.ncsu.edu/SEMaterials/tutorials/fit/"> Finesse</a>) before Dan North was really doing this thing.  Yet you don&#8217;t see much usage from them across projects.</p>
<p>I think the reason why cucumber has caught on, is because the rails community has been keeping momentum from going from one &#8220;next big thing&#8221; onto the next one. Cucumber is the new pink.</p>
<p>But the end result is the same. Less than specular on par with boring. Hard to digest boiler plate specifications.</p>
<p>Don&#8217;t get me wrong, having specifications to work from is important. It helps to drive development and allows others to collaborate and work together.  But this doesn&#8217;t mean B.D.D is on the right track with its story/QA methodology.</p>
<p>I think there is value of translating specs into code to some degree and testing against requirements.</p>
<p>I think the value is lost when:</p>
<ul>
<li> coders who might not fully understand the business are writing specs.</li>
<li>business analysts who have no clue to code write specifications that affect how code is written.</li>
<li>specs writtenÂ  in a templated manner that is the antithesis of being terse.</li>
</ul>
<h3>Should vs Must</h3>
<p>Also the domain language is for B.D.D. a bit off.</p>
<p>If you&#8217;ve read technical specs, you know there is a vital difference between &#8220;Should&#8221; and &#8220;Must&#8221;. Should is something software could do, but doesn&#8217;t have to.  Must is an absolute requirement.  If you don&#8217;t believe me, check out the W3 specs sometime.</p>
<p>Yet, we&#8217;ve chosen &#8220;should&#8221; for some reason to put everywhere inside of our &#8220;specification&#8221; code. If we&#8217;re going to write specifications, we must chose words that fit.</p>
<h3>Conclusion</h3>
<p>B.D.D. isn&#8217;t evil or bad, but still needs to evolve, be debated, thought on, expounded.</p>
<p>I think the software community as a whole needs to watch out from getting caught up too much in trends for the sake of being first to do something and buying the t-shirt to say he/she was there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2010/05/03/b.d.d.-thoughts-reloaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The state of opensource on the Microsoft stack.</title>
		<link>http://www.opensourceconnections.com/2010/03/18/the-state-of-opensource-on-the-microsoft-stack./</link>
		<comments>http://www.opensourceconnections.com/2010/03/18/the-state-of-opensource-on-the-microsoft-stack./#comments</comments>
		<pubDate>Fri, 19 Mar 2010 04:09:22 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[programs]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=945</guid>
		<description><![CDATA[<p>This is like the state of the union address, except in mid march, and the only thing I&#8217;m president of is my current residence.  If you have ever studied Science, you know about <a href="http://en.wikipedia.org/wiki/Potential_energy">potential energy vs kinetic</a>, Or maybe a better metaphor for the reality TV generation, is <a href="http://en.wikipedia.org/wiki/The_Swan_(TV_series)">the Swan</a>.</p>
<p><a href="http://www.opensourceconnections.com/2010/03/18/the-state-of-opensource-on-the-microsoft-stack./" class="more-link">Read more on The state of opensource on the Microsoft stack&#8230;.</a></p>
]]></description>
			<content:encoded><![CDATA[<p>This is like the state of the union address, except in mid march, and the only thing I&#8217;m president of is my current residence.  If you have ever studied Science, you know about <a href="http://en.wikipedia.org/wiki/Potential_energy">potential energy vs kinetic</a>, Or maybe a better metaphor for the reality TV generation, is <a href="http://en.wikipedia.org/wiki/The_Swan_(TV_series)">the Swan</a>.</p>
<p>Opensource software on the Microsoft stack has tons of stored potential, even some movement, but it is still left wanting.  The evil empire has embraced opensource software, releasing jQuery with Visual Studio, starting <a href="http://www.codeplex.com">codeplex.com</a> and the <a href="http://www.codeplex.org/">Codeplex Foundation</a>.</p>
<p>The are tons of abandoned projects or ones that have gone stale (<a href="http://logging.apache.org/log4net/">log4net</a> anyone?).  Compared to java or even the new kid ruby, we&#8217;re lagging behind.  We don&#8217;t even have a fully managed opensource enterprise web server, compared to Java&#8217;s n-th variety of containers to pick and use.  Even rails has a built in server.</p>
<p>Of course there is <a href="http://kayakhttp.com/">kayak http web server framework</a> and <a href="http://www.codeplex.com/webserver"> webserver on codeplex</a>, but they&#8217;re new, far from mature and their not an industry defacto standard like jboss or tomcat.</p>
<p>Don&#8217;t get me wrong there are some amazing opensource projects out there. <a href="http://www.gallio.org/">Gallio</a>, <a href="http://www.db4o.com/">db4o</a>, <a href="http://subtextproject.com/Default.aspx?AspxAutoDetectCookieSupport=1">Subtext</a>, <a href="http://blogengine.codeplex.com/">blogengine.net</a>, <a href="http://www.codeplex.com/FacebookToolkit">facebook developer toolkit</a> to name a few.</p>
<p>However, there are gaps in having a full opensource Microsoft stack. We have plenty of unit testing and mock testing libraries, but with NDoc gone, left to SandCastles release schedule, libraries left to rust like log4net wit not even .net 4.0 beta build or silverlight build.  <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.Net</a> is in dire need of revamp and version 2, at the very least it needs some decent competition that isn&#8217;t java.  </p>
<p>With plenty of single person projects out there who just end up getting burnt out, seemingly stagnated public dialog from the likes of the <a href="http://groups.google.com/group/codeplex-foundation">code plex foundation</a>, its hard to really get developers to rally and get some much needed things done. </p>
<p>The community need some decent leaders, organizers, and some company backing.  Most software vendors and clients get a great productivity boost from these projects. It would only make sense to invest in their growth, even pool resources for joint projects. </p>
<p>Organize some hack-a-thons days with some cool prizes for work top-notch work.  Even put together a small guild of programmers, just have 20 or so companies pitch in, put their banners on a website and churn out some decent open source projects that everyone can use.  </p>
<p>.Net isn&#8217;t going away and its time the community and companies invest more into the opensource community instead of letting all that potential go to waste.     </p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2010/03/18/the-state-of-opensource-on-the-microsoft-stack./feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good Will, Coffee, Help Desks and Software.</title>
		<link>http://www.opensourceconnections.com/2009/10/09/good-will-coffee-help-desks-and-software./</link>
		<comments>http://www.opensourceconnections.com/2009/10/09/good-will-coffee-help-desks-and-software./#comments</comments>
		<pubDate>Fri, 09 Oct 2009 20:13:49 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[help desk]]></category>
		<category><![CDATA[listening]]></category>
		<category><![CDATA[problem solving]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=462</guid>
		<description><![CDATA[<p>There is a true story behind this oddÂ ensemble of a title. I remember it like it was yesterday. In fact, it <em><strong>was</strong></em> yesterday&#8230;..</p>
<p><strong>The Story.</strong></p>
<p>I was packing up my laptop when I was abruptly cornered by an energetic fellow. Â He rattled off his problem in such a degree I could only process bit andÂ piecesÂ of his story.</p>
<p><a href="http://www.opensourceconnections.com/2009/10/09/good-will-coffee-help-desks-and-software./" class="more-link">Read more on Good Will, Coffee, Help Desks and Software&#8230;.</a></p>
]]></description>
			<content:encoded><![CDATA[<p>There is a true story behind this oddÂ ensemble of a title. I remember it like it was yesterday. In fact, it <em><strong>was</strong></em> yesterday&#8230;..</p>
<p><strong>The Story.</strong></p>
<p>I was packing up my laptop when I was abruptly cornered by an energetic fellow. Â He rattled off his problem in such a degree I could only process bit andÂ piecesÂ of his story.</p>
<p>He had spent 9 hours working with a software vendor who-must-not-be-named for credit card processors. They had gotten no where.</p>
<p>The first question screaming in my mind was why I being singled out to help him with a computer problem? I hide my geekness very well. Â I strive to to prevent the typical questions like: will you fix my computer, vcr, dvd player, etc? Will you build me a website? Teach me HTML, please?</p>
<p>People fail to realize the differences between developers and IT. They also fail to see the different roles and specialization of certain knowledge for various parts of software development.</p>
<p>Touching a computer makes you liable for scape-goat-itis to consumers. Not only that, people have a badÂ habitÂ of donning Â you to become their free tech support<em> [expletiveÂ deleted]</em>, whether you want it or not.</p>
<p>I turned around to see a co-worker, Â that I now call Brutus, paying for coffee at the counter. Â Having this flaw called empathy, I caved to energetic man in red. I agreed to look at the program and see what I could do.</p>
<p>Surprising the daunted man in red and the owner of this awesome local coffee house in the downtown mall of Charlottesville: I fixed the issue in about 3 minutes.</p>
<p>I&#8217;ve never seen the software before. The help desk and the developers of the software who connected remotely could not fix it. Why could I? Â <em>And no, I&#8217;m not super-developer-guy in skin tight and equally frightening spandex.</em></p>
<p><strong>The Real Problem</strong></p>
<p>The first part of the problem of is because many software vendors use a broken system. The help desk personnel reads scripted dialog, they don&#8217;t know the ins an outs of the software.</p>
<p>Some of help deskÂ personnelÂ at various companies even refuse to take initiative to go past the script. Even if its simple as searching google, they won&#8217;t do it.</p>
<p>Software developers are seldom familiarÂ with theÂ nuancesÂ of the operating system or system environments.Â They Â are paid to develop software, not administrate or navigate all the pitfalls of minor differences in environment.</p>
<p>Thats why testing software and workingÂ <em><strong>with </strong><span style="font-style: normal;">IT staff, users, clients, and people who know the business is so important. Â Its important to have people who specialize in different aspects, like the desktop environment, performance and usability testing.</span></em></p>
<p><em><span style="font-style: normal;">The attitude and mindset of the developers you hire is also important.Â If they stamp it &#8220;well it works on my machine&#8221; or &#8220;it the users fault&#8221;, its going to hurt your business and even hurt your clients/users. </span></em></p>
<p>The other major issue was that the developers did not take the time to really analyse the error message. Â Instead they chased Alice down the rabbit hole, rather than simply listening.</p>
<p><strong>The Solution. </strong></p>
<p>I used the <a href="http://xkcd.com/627/">tech support cheat sheet</a> that most of usÂ savvyÂ developers use to fix family computers and other things.</p>
<p><a href="http://imgs.xkcd.com/comics/tech_support_cheat_sheet.png" style="clear: both; display: block; width: 100%; float: left;"><img src="http://imgs.xkcd.com/comics/tech_support_cheat_sheet.png" alt="" width="400" height="500" /></a></p>
<p>Taking the key parts of the error message, I put them into google. I glanced over a couple of posts. I saw a feasible issue. I verified the issue. The program was being started in aÂ compatibilityÂ mode for windows 2000 on windows XP.</p>
<p>I tweaked the folder settings so the compatibilty mode was showing. Changed theÂ compatibilityÂ mode. Restarted the application. They were now on their way.</p>
<p><em>So the solution wasÂ <strong>really listening to the problem and resolving to fix it</strong></em>.</p>
<p><strong>The Story. Second Act. </strong></p>
<p>It was anÂ inconvenience to me. Helping people generally is. Â But I&#8217;ve lost hours of life to soul-sucking computers and software issues. Â I know pain and thy name is crappy software.</p>
<p>Besides with only a few minutes of my time, I was able to save a few people hours of pain and possible even a few premature grey hairs. Â  It was a good feeling to help someone and not deal with scape-goat-itis.</p>
<p>The man in red was certainly gracious. The store owner was kind to present me a token. A gift certificate for coffee. I really did not want anything, but its also rude to refuse a gift. It was kind of him.</p>
<p>With a few minutes of my time, I was able to help a local business owner and the man in red. The man in red, turned out to be a recent veteran, who was in business of credit card Â processors.</p>
<p>It always cool to be able to help someone who served for this country. Â They work hard and almost never expect anything in return. Â They deserve much more than they everÂ receive. They never complain about it. Its humbling.</p>
<p>Even during lunch at a near by restaurant, the man in red came by to thank me again.  Then voiced his disheartening opinion of the software that was just installed. I have a sneaking suspicion that the man in red, won&#8217;t be using that particular brand of software again anytime soon.</p>
<p><strong>Things to ponder. </strong></p>
<p>If you are using consultants, hiring software developers, or buying software; the question you should ask is who are you actually doing business with?</p>
<p>How much is your time worth?</p>
<p>Are they honest and transparent?</p>
<p>Do they cost more because of quality or support they provide, or because they are a brand name?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/10/09/good-will-coffee-help-desks-and-software./feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>EdUI 2009 Conference Workshops Recap</title>
		<link>http://www.opensourceconnections.com/2009/09/24/edui-2009-conference-workshops-recap/</link>
		<comments>http://www.opensourceconnections.com/2009/09/24/edui-2009-conference-workshops-recap/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 17:41:49 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[david poteet]]></category>
		<category><![CDATA[edui]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[molly e. holzschlag]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[workshops]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=458</guid>
		<description><![CDATA[<h2>What is the EdUI Conference?</h2>
<p>The <a rel="tag" href="http://www.eduiconf.org/">EdUI Conference</a> is a new conference held by the University of Virginia for the niche of web professionals in higher education.  Do not let the tag line fool you. A good portion, if not all information, provided by on-the-front-lines professionals easily translates into other domains of business on the web. The various headlining speakers were all top notch.</p>
<p><a href="http://www.opensourceconnections.com/2009/09/24/edui-2009-conference-workshops-recap/" class="more-link">Read more on EdUI 2009 Conference Workshops Recap&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<h2>What is the EdUI Conference?</h2>
<p>The <a rel="tag" href="http://www.eduiconf.org/">EdUI Conference</a> is a new conference held by the University of Virginia for the niche of web professionals in higher education.  Do not let the tag line fool you. A good portion, if not all information, provided by on-the-front-lines professionals easily translates into other domains of business on the web. The various headlining speakers were all top notch.</p>
<p><!-- more --></p>
<p>I had the privilege of going to one workshop and visiting the condensed version of another. Both were wise investments of time. This website, my BHAG website (<a href="http://www.amptools.net">amptools.net</a>), and O.S.C. (opensource connections) clients will be able to reap the rich benefits from EdUI in the near future.</p>
<h2>Workshop <em><a href="http://www.eduiconf.org/session/beyond-blah-poteet/">Beyond Blah Blah: Creating Great Content for the Web.</a></em></h2>
<p>This great workshop was created by <a rel="tag" href="http://www.newcityexperience.com/blog/view/workshop-beyond-blah-blah-at-edui/">David Poteet</a> of <a rel="tag" href="http://www.opensourceconnections.com/wp-admin/www.newcityexperience.com"> NewCity</a>, a company Mr. Poteet founded.  The workshop was centered around the &#8216;best of&#8217;. Concentrating in  areas of creating/writing great content and essentially it&#8217;s architecture.</p>
<p>Some of the sources used to  put together the workshop were the &#8220;<a href="http://www.wizardofads.com/?ShowMe=Wizard_of_Ads">Wizard of Ads Trilogy</a>&#8220;, Made to Stick by Chip &amp; Dan Heath, and a white paper called &#8220;Designing for the Scent of Information&#8221; by Jared Spool.  Anyone related to or responsible for marketing in your business should/must read the Wizard of Ads trilogy if they have not already.</p>
<p>The notes that I took from the workshop are pretty much in the <a href="http://www.slideshare.net/newcity/beyond-blah-blah-at-edui-2009">actual slides</a>. They center around 6 tips for developing and organizing content on your site. That being said: the notes and slides are <strong>pale in comparison to actually doing the workshop with David</strong>. We actually were lead through the KJ session, writing exercises, and more during the workshop. All of these were invaluable experiences.</p>
<h4><em>Beyond Blah Blah: Creating Great Content for the Web.</em> takeaways</h4>
<p>See the notes are at the end of this blog**</p>
<h2>Workshop <em><a href="http://www.eduiconf.org/session/web-standards-holzschlag/">New Insights In Web Standards</a></em></h2>
<p><a rel="tag" href="http://twitter.com/mollydotcom">Molly E. Holzschlag</a>, former group lead of <a href="http://www.webstandards.org/">WaSP</a>, co-author  of <a href="http://www.amazon.com/Zen-CSS-Design-Visual-Enlightenment/dp/0321303474">The Zen of CSS design</a>, and all around free spirit, did the workshop on new insights in web standards.  The focus here was definitely on HTML5. The results of even the condensed workshop was eye opening.</p>
<p>Unfortunately, I was only able to see the condensed 2nd day version of this workshop. I generally keep tabs on emerging software technology, HTML 5 and CSS 3 being a few of those. I even read W3C specs, which read like legal documents on a good day.</p>
<p>The opportunity of getting the word of mouth version from someone like Molly, saves me a few headaches and hours of reading. Plus gaining another perspective from someone never hurts.</p>
<h4><em>New Insights In Web Standards</em> Takeaways</h4>
<ul>
<li>HTML 5  is an application markup language.</li>
<li>HTML 5 is here (partially). <a href="http://en.wikipedia.org/wiki/Google_Wave">Google Wave</a> is an HTML 5 application.</li>
<li>Backwards compatibility on the web is a must.  (however this should be pushed more onto the browsers supporting old documents, not developers/designers)</li>
<li>The web means open standards, HTML 5 is pushing that, with forcing browsers to provide things like video and audio codecs, animation, etc.</li>
<li>First html spec that all browser vendors are behind, which is almost scary.</li>
<li>XHTML 2.0 and its w3 group is gone at the end of this year, no more xhtml. yes. i&#8217;m serious.</li>
<li>XHTML is considered to be a failure.</li>
<li>IE still slowing down the web. (Well we&#8217;ve know this for years, but it might be wise for everyone to charge extra to clients who require IE 6 compatibility or just render plain white document style content to IE 6 users).</li>
<li>HTML 5 will come in 2 flavors SGML/HTML syntax &amp; XML.</li>
<li>Opera has the lead on HTML 5 completion, including web forms 2.0 at the moment.</li>
<li>Javascript is the glue of the web.  (fellow Javascript developers, can we say job security?)</li>
<li>Designers who work CSS and HTML, will now have to be pseudo developers with HTML 5.  For Hybrids like me who can do both, that is not a big deal. However being able to do design and development is a rarity.  So this will place a burden on many who see themselves as designers.</li>
</ul>
<h2>My Notes from David Poteet&#8217;s workshop**</h2>
<ol>
<li>Give them what they want.
<ol>
<li>&#8220;people come to your web site running&#8221;</li>
<li>what are you audience&#8217;s key goals.
<ol>
<li>decide what is important.</li>
<li>take away choices where i do not need them.</li>
<li>make choices clear &amp; distinct.</li>
</ol>
</li>
<li>how do you know what they&#8217;re looking for?
<ol>
<li>listen to them.
<ol>
<li>interviews &amp; focus groups.</li>
<li>social media sites, blogs, forums.</li>
<li>search logs.</li>
<li>mental models.</li>
<li>carewords survey.</li>
<li>KJ Session.</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li>Use words that smell like goals.
<ol>
<li>Readers are like bees
<ol>
<li>
<ul>
<li>people hunt for information like bees seeking nectar or hounds on the trail of a fox.</li>
</ul>
</li>
<li>&#8220;Scent&#8221; or &#8220;Trigger&#8221; words
<ol>
<li>What worlds would be in someone&#8217;s mind if they were pursuing a particular goal?</li>
</ol>
</li>
</ol>
<ul>
<li>information Scent Theory</li>
</ul>
</li>
<li>What they <strong>don&#8217;t</strong> do
<ol>
<li>read left to right, top to bottom.</li>
<li>look at all the options and choose the best one.</li>
<li>Instead, they SCAN and SATISFICE.</li>
</ol>
</li>
<li>Write for scent
<ol>
<li>each link needs to have a strong &#8220;scent for the content that lies beyond it.&#8221;</li>
<li>5-7 words are optimal.</li>
<li>Users expect each click to lead to information that is more specific.</li>
<li>when users click on triggers words, they expect to <strong>see those words on the next page.</strong></li>
<li><strong>Don&#8217;t let clever kill clear. </strong> Trigger words need to be readily understandable</li>
<li>Users search when they can&#8217;t find the words on the page.</li>
</ol>
</li>
<li>Am I in the right place? Are your credible?, where can i go from here?</li>
</ol>
</li>
<li>Write &#8220;visually.&#8221;
<ol>
<li>Do they ever read?
<ol>
<li>yes, when they get to the content they&#8217;re looking for.</li>
<li>% of the story read by format:
<ol>
<li>75% o</li>
</ol>
</li>
</ol>
</li>
<li>Shorter sentences and short paragraphs
<ol>
<li>in most cases not more than 50 words per paragraph</li>
<li>one sentence paragraph is ok</li>
<li>So are fragments.</li>
</ol>
</li>
<li>Lots of headings/sub headings.</li>
<li>Using Images
<ol>
<li>User pictures that mean something on context</li>
<li>Use icons if meaningful.</li>
</ol>
</li>
<li>Meet users&#8217; expectations  for visual formats, for example:
<ol>
<li>address</li>
<li>game stores</li>
</ol>
</li>
<li>Use lists</li>
<li>Use tables.  collage mural
<ol>
<li>data compare</li>
<li>cross reference</li>
<li>options</li>
</ol>
</li>
</ol>
</li>
<li>Show don&#8217;t tell.
<ol>
<li>give sensory details and substantive facts.</li>
<li>let them come to their own conclusions.</li>
<li>They&#8217;ll realize it with greater conviction.</li>
</ol>
</li>
<li>Not everyone thinks like you.
<ol>
<li>Write for temperaments
<ol>
<li>four temperaments</li>
<li>Guardian(sj)  idealist(nf), artisan(sp), rational(nt)</li>
<li>Methodical, humanistic, spontaneous, competitive.</li>
</ol>
</li>
<li>Methodical
<ol>
<li>details</li>
<li>fine print</li>
<li>how does it work</li>
</ol>
</li>
<li>spontaneous
<ol>
<li>quickly</li>
<li>superior</li>
<li>customize your product/service</li>
<li>narrow your choice</li>
<li>enjoy life more?</li>
</ol>
</li>
<li>Humanistic
<ol>
<li>How will the product make you feel</li>
<li>who uses your product service</li>
<li>who are you, let me see bios</li>
<li>what will it feel like to work with you</li>
<li>what experience other have with you?</li>
<li>Can I trust you?</li>
<li>What are you values?</li>
<li>How will this help me strengthen relationships?</li>
</ol>
</li>
<li>Competitive
<ol>
<li>What are you competitive advantages?</li>
<li>Why are you superior choice.</li>
</ol>
</li>
</ol>
</li>
<li>Say something they&#8217;ll remember (and care about)
<ol>
<li>Left Brain vs Right Brain
<ul>
<li>logical vs intuitive</li>
<li>Sequential vs Chaotic</li>
<li>Objective vs Subjective</li>
<li>Analytical vs Holistic</li>
<li>Right or Wrong vs Likes or Dislikes.</li>
<li>Grammar &amp; Vocabulary vs Intonation &amp; Accentuation</li>
<li>Exact Numeric Computation vs Approximates, Estimates</li>
<li>Tempo, tone, &amp; interval vs Music</li>
</ul>
</li>
<li>Implications
<ol>
<li>Intellect and Emotion are partners who do not speak the same language. The intellect finds logic to justify what the emotions have decided. Win the hearts of the people.</li>
<li>Keys to the emerald city
<ol>
<li>storytelling</li>
<li>the unexpected</li>
<li>verbs</li>
<li>poetic meter</li>
<li>humor</li>
<li>leave something to the imagination</li>
</ol>
</li>
<li>Storytelling
<ol>
<li>we are hardwired to remember stories.</li>
<li>Adrenaline is the biochemical adhesive that turns short term memories into long-term memories.</li>
<li>Stores are a great way to both SHOW an idea and engage the reader mentally and emotionally, resulting in:
<ol>
<li>transfer to long-term memory.</li>
<li>Persuasion / conviction that something is true.</li>
<li>motivation to act</li>
</ol>
</li>
<li>Who is your story about?</li>
<li>simple</li>
<li>unexpected</li>
<li>concrete</li>
<li>credible</li>
<li>emotional</li>
<li>stories
<ol>
<li>the sooner you can put a verb in the better.</li>
<li>put words to music.
<ol>
<li>music enters through Right Brain, bypassing Broca entirely.</li>
<li>Poetry allows us to put music to words in our minds.</li>
</ol>
</li>
</ol>
</li>
<li>What do you remember?</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/09/24/edui-2009-conference-workshops-recap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software Theology</title>
		<link>http://www.opensourceconnections.com/2009/07/18/software-theology/</link>
		<comments>http://www.opensourceconnections.com/2009/07/18/software-theology/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 01:47:55 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mighty python]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[predjudice]]></category>
		<category><![CDATA[proprietary]]></category>
		<category><![CDATA[stallman]]></category>
		<category><![CDATA[theology]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=443</guid>
		<description><![CDATA[<p>You might be aware of it&#8217;s existence, even if only on a subconscience level.  It might even be a scary thought that Software Cults exist or worse that you could be a part of one.  Whether it&#8217;s political, social, religious or even software related, people tend to cling to their opinions, beliefs no matter how illogical they are at times. Not only that, they sometimes fail to see how annoying or how dangerous being blindly overly passionate coercion of others can be. The point of this blog is to point out how people get religiously caught up in software and that can negatively impact a product, a person&#8217;s image, business value, and the bottom line.</p>
<p><a href="http://www.opensourceconnections.com/2009/07/18/software-theology/" class="more-link">Read more on Software Theology&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>You might be aware of it&#8217;s existence, even if only on a subconscience level.  It might even be a scary thought that Software Cults exist or worse that you could be a part of one.  Whether it&#8217;s political, social, religious or even software related, people tend to cling to their opinions, beliefs no matter how illogical they are at times. Not only that, they sometimes fail to see how annoying or how dangerous being blindly overly passionate coercion of others can be. The point of this blog is to point out how people get religiously caught up in software and that can negatively impact a product, a person&#8217;s image, business value, and the bottom line.</p>
<h4></h4>
<h4>SoftwareÂ Zealots</h4>
<p>You have probably run into them or perhaps you are one.  They are not technology evangelists or experts who know the ins or outs of a certain hardware/software and hired to sell the product, they are the nutcases, overly righteous zealots for their software cause.  Beware of having your own original opinion or preference around these people, especially if it differs from their own opinion, it can be detrimental.  They spout company rhetoric like it is sacred text and they will spend hours and loose days suffering in pain to fix their beloved software and not speak a word against it.</p>
<p>They either constantly build up the image of their beloved software or tear up anything that isn&#8217;t up to their understanding or standards.  It comes in many forms, they detest pieces of software where its websites like myspace, facebook, linked-in, Â or software like aim, twitter, wordpress, expression-engine, etc.  Or they highly praise their software and then mock others in a mighty python like fashion.</p>
<p>One of the bigger groups that tend to stray into this area, especially in Charlottesville, are Mac Users. &#8220;You never have to reboot a mac&#8221;. &#8220;Macs are easier to use than windows/linux&#8221;. &#8220;Macs are more secure&#8221;.  While I can tear 90% of a mac&#8217;s zealots comments to shreds, its not worth the waste of thought or life. However I would like to point out the negative affects.  For me personally, I spent 4 years in a mac lab so I know how to use a mac (esp after living on photoshop, cool edit pro, Quark express, etc). However, I use a pc because I tend to develop using C#/Ruby/Javascript and I like to use visual studio when possible. It is a preference. But every time a zealot makes a serious snide remark against anything non-mac, my opinion and my trust in their  judgement and ability to logically weigh things drops tremendously. Their value and ability to make the right decision for clients rather than themselves dramatically falls short after seeing something like this.</p>
<p>In light of the above I&#8217;ll probably never buy a mac for 2 key reasons at the moment. (but hey apple if you want to buy me one, i&#8217;ll use it to make screen casts).</p>
<ol>
<li> I can&#8217;t run OSX on virtual box while running windows/linux as the host, not only is it not currently possible, its also illegal.</li>
<li>The remarks that typically come from overly zealous fans of mac have left a bitter taste and venomous vibe, that I do not want to ever really be associated with them. (which is the opposite of affect of what some zealots hope to accomplish).</li>
</ol>
<p>But extreme occult like fandom isn&#8217;t the only place where strong belief systems and software intersect. Legality of software, source code, languages, tools, architechture, software theory and strong opinions often cause heated discussions, debate, even split in software teams or even cost tax payers huge sums of money because someone let personal preference or pride rein where it should have let logic prevail.    It is actually interesting to see how much of human emotion and systems of beliefs still comes into play even among geeks and programmers.  You would think people of this nature would have more detachment from these things that hold only so much meaning in life.</p>
<h4></h4>
<h4>Prejudice against Software due to it&#8217;s Company</h4>
<p>An example of recent biased behavior from a legality/source code sense, thats been making public waves is <a href="http://www.fsf.org/news/dont-depend-on-mono">Richard Stallman&#8217;s stance against Mono</a>. Microsoft is a corporation out to make money (obviously), they can no longer afford to battle opensource software, they have to embrace it.  In fact, they&#8217;ve launched sites codeplex, port 25 and helped Mono development moonlight so that they could bring silverlight to the linux platform and <a href="http://port25.technet.com/archive/2009/07/06/the-ecma-c-and-cli-standards.aspx"> released C# and CLI under the community promise</a>.  They would stand to lose and enrage their developer base at this point should Microsoft decided to ever go back to trying to destroy Open Sourced software. Also with such markets as Software as a Service, Operating in the Cloud, and Selling Advertising at stake, they don&#8217;t have the time or resources to waste on it.  Granted this shift has probably cause heartache to hardcore proprietary ms fans of old.  oh well.  However Stallman still lives in a world where the evil empire patiently waits to spring its trap and forever dominate software so that it can never be free.</p>
<h4>Software Language (This translation must be Gospel)</h4>
<p>People get in a habit of saying this language beats all.  But you know, I just don&#8217;t see ruby beating out Java in building a performance search tool like lucene.  I don&#8217;t see .Net beating out Java in available open source projects (though .net has come along way).  I don&#8217;t seeing Java beating out .Net or Mono for building user friend thick client desktop applications.  Each tool or language has it&#8217;s uses, which should be considered depending on the business value and the goals of the company, not what the developer prefers.  Like Twitter using Scala, its not entirely replacing the rails application, but it is using Scala to help scale twitter, cause its compiled into byte code and runs faster.  It has business value and its using the tool for its particular strengths for certain part of the whole. Though you can&#8217;t beat using ruby and rails for prototyping a website quickly.</p>
<h4></h4>
<h4>Free Software/Tools, (the best things in life are free)</h4>
<p>If you believe that, you obviously skipped economics in college or missed out on the discussion of opportunity cost. Paying $200 for a piece of software that will save you hours of work during a project or daily will actually having a higher return on investment in opening up time which is a valuable commodity.  So many people are stuck on the concept of free they don&#8217;t realize free is costing them precious time of their lives they could be doing something else more important.  So weight the actual cost of time, efficiency, vs the importances of free software tools that don&#8217;t work as well or free open source solutions when you can buy source code that has a better performance. Also weigh the converse.</p>
<h4></h4>
<h4>Software Commandments</h4>
<p>Some software commandments to maul over in your moments of free thought (thats if you can think for yourself).</p>
<ol>
<li> <a href="http://blog.interlinked.org/misc/please_leopard_dont_suck.html">thou shalt not slander thy neighbors preference in software/hardware</a>.</li>
<li> thou shalt not force a new language dependency on a project, if it does not provide business value. i.e. a ruby script in otherwise totally php project.</li>
<li> thou shalt not cost tax payers or businesses extra money just because you like a certain os or language.</li>
<li>thou shalt detach software predjuice for your clients well being.</li>
<li>thou shalt weight opportunity cost and business value before ruling out open source or properitary software.</li>
<li> thou shalt only use logic when comparing technology versus<a href="http://www.microsoft.com/windows/internet-explorer/get-the-facts/mythbusting.aspx"> spouting marketing proproganda</a> unless you just want to look stupid (cough ie cough)&#8230;.</li>
<li> thou shalt get a life.</li>
<li> thou shalt take out the Holy Pin, then shalt thou count to three, no more, no less. Three shall be the number thou shalt count, and the number of the counting shall be three. Four shalt thou not count, neither count thou two, excepting that thou then proceedest on to three. Five is right out. Once the number three, being the third number, be reached, then lobbest thou thy Holy Hand Grenade of Antioch towards thy foe, who being naughty in my sight, shall snuff it. Amen</li>
</ol>
<p>Any disregards for these commands and thou shalt be <a href="http://gizmodo.com/5317285/full+size-gundam-get-attacked-by-laser-during-inaugural-ceremony/gallery/">forced to build a giant gundam</a> without food or sleep within 30 days or sent to the rain forest without your iphone, mac, pc, palm pilot, black berry, etc for a year.</p>
<p>any commandments that should be added? thoughts?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/07/18/software-theology/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>2009: It is a new year, be productive but dump your resolutions.</title>
		<link>http://www.opensourceconnections.com/2009/01/08/2009-it-is-a-new-year-be-productive-but-dump-your-resolutions./</link>
		<comments>http://www.opensourceconnections.com/2009/01/08/2009-it-is-a-new-year-be-productive-but-dump-your-resolutions./#comments</comments>
		<pubDate>Thu, 08 Jan 2009 15:46:35 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[programs]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/2009/01/08/2009-it-is-a-new-year-be-productive-but-dump-your-resolutions./</guid>
		<description><![CDATA[<p>Every year people tend to spend the first month or two making promises they are going to break a few moments, maybe weeks later.&#160; We tend to lack resolve and have seasonal habits.&#160; We act nicer in December to our fellow man (woman), unless it comes to taking the last tickle-me elmo off the shelf, then its every person for themselves.&#160; We pull out the big grill&#160; that you probably wonâ€™t use for the rest of the summer for labor day weekend that you got for xmas to outshine your neighbor&#8217;s 2k stainless steal beast he got the year before, all the while making tim the tool man tailor grunts while cooking, .&#160; And of course, its January, its time for a new diet fad (this year it seems to be <a href="http://en.wikipedia.org/wiki/A&#231;a&#237;_Palm">acri berry</a> diets that boasts you donâ€™t need to really diet or exercise, all thanks to Opera Winfrey having a show about the most nutritional foods with acri berry being #1). </p>
<p><a href="http://www.opensourceconnections.com/2009/01/08/2009-it-is-a-new-year-be-productive-but-dump-your-resolutions./" class="more-link">Read more on 2009: It is a new year, be productive but dump your resolutions&#8230;.</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Every year people tend to spend the first month or two making promises they are going to break a few moments, maybe weeks later.&#160; We tend to lack resolve and have seasonal habits.&#160; We act nicer in December to our fellow man (woman), unless it comes to taking the last tickle-me elmo off the shelf, then its every person for themselves.&#160; We pull out the big grill&#160; that you probably wonâ€™t use for the rest of the summer for labor day weekend that you got for xmas to outshine your neighbor&#8217;s 2k stainless steal beast he got the year before, all the while making tim the tool man tailor grunts while cooking, .&#160; And of course, its January, its time for a new diet fad (this year it seems to be <a href="http://en.wikipedia.org/wiki/A&ccedil;a&iacute;_Palm">acri berry</a> diets that boasts you donâ€™t need to really diet or exercise, all thanks to Opera Winfrey having a show about the most nutritional foods with acri berry being #1). </p>
<p>But I digress.&#160; However I do have some suggestions for the new year because more than likely people are more open to ideas this time of year and hopefully maybe one or two will stick, thereby making your life that much more productive and a little easier, or fun. </p>
<p> <!-- more -->
<p><strong>Optimize the way you work on a pc, Pimp your desktop.</strong></p>
<p>You donâ€™t need to be a power user like on linux or have to buy a mac to have an intuitive and shiny UI (User Interface, in this case, desktop) to be productive. Its taken me some time, but Iâ€™ve finally found the tools that really help clean up the desktop.&#160; </p>
<p><a href="http://www.opensourceconnections.com/wp-content/uploads/2009/01/desktop.png"><img title="desktop" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="152" alt="desktop" src="http://www.opensourceconnections.com/wp-content/uploads/2009/01/desktop-thumb.png" width="244" border="0" /></a>&#160;&#160; </p>
<p>First off <a href="http://www.avesh.com/blog/DesktopZenReducingVisualClutterOnYourDesktop.aspx">clean up your desktop</a>, its rare that you really need those icons, especially if you have windows vista with the new start menu. If you like the macâ€™s <a href="http://quicksilver.en.softonic.com/mac">quicksilver</a> application, but like me, tend to work on a windows os, you can try <a href="http://www.launchy.net/">launchy</a>, <a href="http://candylabs.com/skylight/">skylight</a>, or <a href="http://www.bayden.com/SlickRun/">slickrun</a>. Right now I prefer skylight since its written using .NET WPF and its extendable.&#160; With <strong>Alt + Spacebar</strong>, the window appears and you can quickly find whatever program you want.&#160; </p>
<p>Take time to find a desktop wall paper you like, <a href="http://browse.deviantart.com/customization/wallpaper/">deviant art</a> is good place to start.&#160; People in general tend to enjoy working with things that are appealing to eye. Everyone has different tastes and different styles of work flow. Experiment not only with the wall paper, but also where the <a href="http://articles.techrepublic.com.com/5100-10878_11-6150810.html">taskbar is placed</a> and what toolbars are shown, etc.&#160; Also play with the <a href="http://www.lifehacker.com.au/tips/2008/09/30/how_to_use_custom_windows_visual_styles-2.html">visual styles of windows</a> as well. Right now I tend to like the vista glass with a lil black in it.&#160; If you have xp, you can get <a href="http://www.codegazer.com/vistaglazz/downloads/">vista glass</a>.&#160;&#160; </p>
<p>Add <a href="http://lifehacker.com">lifehacker.com</a> to your RSS feed, they always have some pretty nifty desktop ideas, tools, and even <a href="http://lifehacker.com/5104423/most-popular-desktops-of-2008">lists of pimped/tricked out desktops</a>, and just good productivity tips in general.&#160; </p>
<p>If you need icons or if you like <a href="http://support.apple.com/kb/HT2474">the Macâ€™s Dock</a>, give <a href="http://rocketdock.com/">rocket dock</a> a try, its pretty customizable and you can replace the icons for whatever your trying to open.&#160; </p>
<p>Gadgets.&#160; If you have windows vista, you can try <a href="http://vista.gallery.microsoft.com/vista/SideBar.aspx?mkt=en-us">the gallery</a> for finding some halfway useful gadgets. If youâ€™re using xp or want better gadgets on vista you can try <a href="http://widgets.yahoo.com/">yahoo widgets</a> or <a href="http://desktop.google.com/plugins/">google gadgets</a>.&#160; Though gadgets are a cool desktop concept, they have really yet to take off with usefulness or high end eye candy, but you might find one or two to meet your needs. </p>
<p><strong>Practical websites</strong></p>
<p><a href="http://www.livemocha.com/">Live Mocha</a> â€“ This is actually social networking language learning website that really has nothing to do with coffee other than the colors of the website. Its a decent learning tool and not to mention a good way of finding pen pals or other people interested in the same languages that you can practice with. </p>
<p><a href="http://www.livestrong.com/">Live Strong</a> â€“ Calorie Counter that has tons of foods, and exercises taken into account? check. Must have information on the latest diet fads?&#160; check. Must have it as an IPhone or ITouch application? check.&#160; Must be a social network so you donâ€™t feel aloneâ€¦ loser, i mean check.</p>
<p><a href="http://www.mint.com/">Mint</a> â€“ looking for a good online free way to manage/budget/invest your money with a ton of awesome tools and that you can take with you on your IPhone or Itouch, then mint.com is the place for you</p>
<p><a href="http://lifehacker.com/">Life Hacker</a> â€“ need ways to be productive, find new gadgets that are worth the money, or just like to learn new ways of doing thingsâ€¦</p>
<p><a href="http://mozy.com/">Mozy</a> â€“ online data/documents/files backup that is unlimited for just 5$ a month isnâ€™t bad, especially if youâ€™re the tech geek for your family. If they have under 2 gigs of stuff, its free. </p>
<p><a href="http://rememberthemilk.com/">Remember the milk</a> â€“ Into the GTD (getting things done) way of doing things? Then check out remember the milk for your task lists. They also provide google gears, iphone application, gadgets and many other ways of entering and keeping track of your tasks.&#160; </p>
<p><strong>Doing dot .net?</strong> </p>
<p>Pimp your color themesâ€¦&#160;&#160;&#160; <a href="http://winterdom.com/weblog/CategoryView,category,VSColorScheme,2.aspx">Visual Studio Color Themes</a> and <a href="http://idehotornot.ning.com/">Is your IDE hot or not</a>?</p>
<p><a href="http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx">T4 (Text Template Transformation Toolkit)</a> â€“ Visual Studio has code generation that has been there for while under the covers, not really used, but very useful.&#160; Why are people spending money on code gen tools when you already spent a fortune on visual studio and comes with this gem?</p>
<p><a href="http://www.gallio.org/">Gallio</a> â€“ The one stop shop for running your unit tests and it comes packages with the killer mbunit 3.0.&#160; </p>
<p><a href="http://code.google.com/p/moq/">Moq</a> â€“ need an mock library that doesnâ€™t suck, isnâ€™t confusing and uses lambda? then take a look moq (mock you).&#160; </p>
<p><a href="http://www.testdriven.net/">Test Driven .net</a> â€“ Iâ€™ve been using this on my opensource project.&#160; This is one of the very few add ons that I install for visual studio. It lets you run tests, code coverage reports and other nifty things right inside of Visual Studio. A time saver. </p>
<p><a href="http://www.red-gate.com/products/reflector/">Reflector</a> â€“ Red gate now owns and updates reflector, but its still free, want to look at the source code for a dll, check this out. </p>
<p><a href="http://www.linqpad.net/">Linqpad</a> â€“ need to write some linq queries and want to make sure they execute correctly, check out linqpad. </p>
<p>&#160;</p>
<p><strong>General Coding.</strong> </p>
<p><a href="http://www.e-texteditor.com/">E-Texteditor</a> â€“ The power of text mate on windows.&#160; This is pretty my replacement of note pad.&#160; If you have mac font envy, you can <a href="http://www.webdevkungfu.com/textmate-envy-aka-monaco-font-for-windows/">grab monaco for windows</a>. Or you can just use <a href="http://www.microsoft.com/Downloads/details.aspx?familyid=22E69AE4-7E40-4807-8A86-B3D36FAB68D3&amp;displaylang=en">Consolas</a>. </p>
<p><a href="http://www.skybound.ca/">Stylizer</a> â€“ css styling for ajax applications, even with tools like firebug, can be a pain, cause that doesnâ€™t exactly help you with IE and it doesnâ€™t always help with doing heavy ajax applications with pops up and such. Enter stylizer (also coming to macs soon), which lets you style with a real time preview of how it would show in the actual browser (IE and firefox).&#160; </p>
<p><strong>FTP</strong></p>
<p><a href="http://winscp.net/eng/index.php">winscp</a> â€“ you can ftp down, edit in e-texteditor and ftp the file right back when you save changes to the file.&#160; nifty.&#160; </p>
<p><a href="http://filezilla-project.org/">filezilla</a> â€“ slick fast opensource ftp client and server.&#160; </p>
<p>&#160;</p>
<p><strong>Instant Messenger?</strong></p>
<p><a href="http://www.pidgin.im/">pidgin</a> â€“ all your fav instant messengers and even ones you donâ€™t know wrapped into one program.&#160;&#160; </p>
<p><a href="http://www.skype.com/">skype</a> â€“ voip, phone calls, sms texts, chats.&#160; Definitely the professional grade instant messenger/ communications program. calls are even encrypted. </p>
<p><a href="http://www.meebo.com/">meebo</a> â€“ you online web page instant messaging client, in case your away and canâ€™t download a client.&#160; </p>
<p><strong>Challenge.</strong></p>
<p>Anything that will help you to be more productive always costs something. It could be money, but most of the time, its costs time. But invest some time now that might reap huge benefits later.&#160; So I challenge you to take some time, get organized, find new efficient ways of doing things that fit your way of life and if you know of anything, programs or otherwise, feel free to add those in the comments below. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/01/08/2009-it-is-a-new-year-be-productive-but-dump-your-resolutions./feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Up and Coming Microsoft Technologies In Open Source</title>
		<link>http://www.opensourceconnections.com/2008/10/02/up-and-coming-microsoft-technologies-in-open-source/</link>
		<comments>http://www.opensourceconnections.com/2008/10/02/up-and-coming-microsoft-technologies-in-open-source/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 22:46:33 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/10/02/up-and-coming-microsoft-technologies-in-open-source/</guid>
		<description><![CDATA[<p>Typically speaking in the past, critics would have laughed or promptly smashed any one who supported the &#8220;evil empire&#8221; in any way, shape, or form.&#160; However, times change and the pendulum swings.&#160; Thanks to people like <a href="http://weblogs.asp.net/Scottgu/">Scott GU</a>,&#160; there has been much change to how Microsoft is doing development and relating to developers who work on their platform.&#160; Granted its not perfect or without incident, but there is change from within the evil empire. </p>
<p><a href="http://www.opensourceconnections.com/2008/10/02/up-and-coming-microsoft-technologies-in-open-source/" class="more-link">Read more on Up and Coming Microsoft Technologies In Open Source&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Typically speaking in the past, critics would have laughed or promptly smashed any one who supported the &#8220;evil empire&#8221; in any way, shape, or form.&nbsp; However, times change and the pendulum swings.&nbsp; Thanks to people like <a href="http://weblogs.asp.net/Scottgu/">Scott GU</a>,&nbsp; there has been much change to how Microsoft is doing development and relating to developers who work on their platform.&nbsp; Granted its not perfect or without incident, but there is change from within the evil empire. </p>
<p>On the skirts of the empires domain, there has been for some time, open source projects that really have been the cornerstone and often taken for granted to daily development.&nbsp; <a href="http://www.nunit.org/index.php">NUnit</a>, <a href="http://ndoc.sourceforge.net/">NDoc</a>, <a href="http://nant.sourceforge.net/">NAnt</a>, <a href="http://logging.apache.org/log4net/index.html">Log4Net</a>, <a href="http://www.hibernate.org/343.html">NHibernate</a>, <a href="http://www.springframework.net/">Spring.Net</a>, just to name a few projects that have really helped .net development community in general.</p>
<p>However, in the last couple of years, the reach out to developers of .Net who use opensource projects, software, tools, etc, has increased, with the likes of web sites like C<a href="http://www.codeplex.com/">odePlex</a> and P<a href="http://port25.technet.com/">ort 25</a>, which were not only created, but constantly improved upon and continued to be improved upon. CodePlex now supports SVN as a code repository.&nbsp; Not only that in the last year or so; Microsoft has actually been helping <a href="http://www.mono-project.com/Main_Page">Mono</a> (which is an open source project that helps bridge .net to work on other platforms like linux or mac) with its adoption of Sliverlight, called <a href="http://www.mono-project.com/Moonlight">moonlight</a>.&nbsp; Microsoft has even released their own shared/open source licenses like <a href="http://www.opensource.org/licenses/ms-pl.html">Ms-PL</a> to the community.</p>
</p>
<p><span id="more-344"></span></p>
<p>Now there are a ton of crazy things that are currently going on, and there are some hidden gems that are being developed that might not get as much attention as they deserve. </p>
<p><strong>Hidden Gems</strong></p>
<ul>
<li><a href="http://www.codeplex.com/unity"><strong>Unity</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/ms-pl.html"><strong>Ms-PL</strong></a><strong>) &#8211; </strong>a dependency injection framework with the latest version of Object Builder.&nbsp; The configuration seems much less evil than spring.net.  </li>
<li><strong><a href="http://www.codeplex.com/white">White</a> (<a href="http://www.opensource.org/licenses/apachepl.html">Apache</a>) </strong>- Windows Forms, WPF, &amp; SWT (java) automation.&nbsp; Basically a library to help automate UI tests or batching for .net thick client UI&#8217;s. People that use <a href="http://nunitforms.sourceforge.net/">NUnitForms</a> really should give this a go. Thanks ThoughtWorks.&nbsp; </li>
<li><a href="http://watin.sourceforge.net/"><strong>WaitN</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/apachepl.html"><strong>Apache</strong></a><strong>)</strong> &#8211; Web site automation for the .net runtime, works with both IE and Firefox.&nbsp; </li>
<li><a href="http://subsonicproject.com/"><strong>Subsonic</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/mozilla1.1.php"><strong>MPL 1.1</strong></a><strong>) &#8211; </strong>a toolkit for web sites that tends to use rail like concepts, including generating the DAO, migrations, etc.&nbsp; </li>
<li><a href="http://www.codeplex.com/blogengine"><strong>BlogEngine.Net</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/ms-rl.html"><strong>Ms-RL</strong></a><strong>)</strong> &#8211; light weight blog engine  </li>
<li><a href="http://www.codeplex.com/FacebookToolkit"><strong>Facebook Toolkit</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/ms-pl.html"><strong>Ms-PL</strong></a><strong>)</strong> &#8211; .Net Facebook API wrapper Library  </li>
<li><a href="http://www.gallio.org/"><strong>Gallio</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/apachepl.html"><strong>Apache</strong></a><strong>)</strong> &#8211; Automation Platform for .net let you use various tools and testing frameworks side by side such as MB-Unit, NUnit, PowerShell, Pex, NBehave, etc.  </li>
<li><strong><a href="http://www.mbunit.com/">MB-Unit</a> (</strong><a href="http://www.opensource.org/licenses/apachepl.html"><strong>Apache</strong></a><strong>) -</strong> Generative Unit Test Framework that can also be super useful in creating functional tests as well as unit test, (and to me, it has more to offer than the testing framework that comes with visual studio).  </li>
<li><a href="http://www.codeplex.com/FlickrNet"><strong>Flickr.Net Api Library</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/lgpl-license.php"><strong>LGPL</strong></a><strong>)</strong> &#8211; a .net wrapper around the flicker api.  </li>
<li><a href="http://www.codeplex.com/AvalonDock"><strong>Avalon Dock</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/bsd-license.php"><strong>New BSD</strong></a><strong>)</strong> &#8211; WPF Docking Suite, much like its win forms forms counterpart.  </li>
<li><a href="http://www.opensource.org/licenses/bsd-license.php"><strong>Ajax Toolkit</strong></a><strong>&nbsp; (</strong><a href="http://www.opensource.org/licenses/ms-pl.html"><strong>Ms-PL</strong></a><strong>)</strong> &#8211; A library of AJAX controls for .net web sites.  </li>
<li><a href="http://www.codeplex.com/IronPython"><strong>Iron Python</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/ms-pl.html"><strong>Ms-PL</strong></a><strong>)</strong> &#8211; implementation of the Python programming language running on .NET  </li>
<li><a href="http://www.ironruby.net/"><strong>Iron Ruby</strong></a> &#8211; still in the works, but this will be an awesome addition to .net when its finished.  </li>
<li><a href="http://boo.codehaus.org/"><strong>BOO</strong></a><strong> (MIT/BSD)</strong> &#8211; a wrist friendly language for .net, also still in the works.  </li>
<li><a href="http://msdn.microsoft.com/en-us/fsharp/default.aspx"><strong>F#</strong></a><strong> (pending)</strong> &#8211; it supposedly will be released under the Ms-PL when it reaches the 1.0 state. </li>
</ul>
<p><strong>New Software Options from Microsoft</strong></p>
<ul>
<li><a href="http://www.codeplex.com/aspnet"><strong>Asp.Net MVC</strong></a><strong> &#8211; </strong>Microsoft is writing a rails like MVC option for its web development genre, that is being released, including source code and tests in iterations to the public for testing, feedback, developer interaction,actually depending on the community to help drive what is being built and how it functions.&nbsp; </li>
<li><a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx">JQuery</a> &#8211; A well known Javascript library, is now being included on the MS tools platform, it will be released in Asp.Net MVC, included in the next version of visual studio and so on.&nbsp; </li>
<li><a href="http://www.codeplex.com/CompositeWPF"><strong>Prism</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/ms-pl.html"><strong>Ms-PL</strong></a><strong>)</strong> &#8211; Composite Application Guidance for WPF, (similar to CAB in a way)&nbsp; in order to help build WPF clients in general.&nbsp; </li>
<li><a href="http://www.codeplex.com/wpf"><strong>WPF Toolkit</strong></a><strong> (</strong><a href="http://www.opensource.org/licenses/ms-pl.html"><strong>Ms-PL</strong></a><strong>)</strong> &#8211; basically the initial release of the WPF DataGrid as well as making room for MS to release new WPF controls without having to release a new version of the framework.&nbsp; </li>
</ul>
<p>Of course I have to make a small plug for A<a href="http://www.amptools.net">mplify</a>, a BHAG project and an open source framework that I&#8217;m working on in my spare time. I&#8217;ve started working on a dashboard / GUI tool called FUSE for amplify that will help create database fixtures, help with migrations, and other code habits in general.&nbsp; I&#8217;ll be using Unity, Log4Net, Avalon Dock, Gallio, Mb-Unit, and White for this tool, its using the latest version of .Net 3.5 sp1 and will be using WPF instead of win forms for the first release.&nbsp; A preliminary screen shot, below of FUSE pulling info from the database&#8217;s schema. </p>
<p><a title="Dashboard-DataStoreTreeView" href="http://www.flickr.com/photos/27517504@N05/2907437881/"><img alt="Dashboard-DataStoreTreeView" src="http://static.flickr.com/2363/2907437881_8de61e76df.jpg" border="0"/></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>So with all that being said, the next time you go to pick a platform and think open source doesn&#8217;t apply to c# or .net in general, you might want to take another look. </p>
<p>If you know of any other hidden gems or tools that I have missed, please, add them in the comments below. </p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7b5337d3-5dbc-439f-ad0f-c04e611d4d3b" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Microsoft" rel="tag">Microsoft</a>,<a href="http://technorati.com/tags/Opensource" rel="tag">Opensource</a>,<a href="http://technorati.com/tags/Open" rel="tag">Open</a>,<a href="http://technorati.com/tags/Source" rel="tag">Source</a>,<a href="http://technorati.com/tags/.Net" rel="tag">.Net</a>,<a href="http://technorati.com/tags/BHAG" rel="tag">BHAG</a>,<a href="http://technorati.com/tags/Projects" rel="tag">Projects</a>,<a href="http://technorati.com/tags/Amplify" rel="tag">Amplify</a>,<a href="http://technorati.com/tags/Gallio" rel="tag">Gallio</a>,<a href="http://technorati.com/tags/WaitN" rel="tag">WaitN</a>,<a href="http://technorati.com/tags/Mb-Unit" rel="tag">Mb-Unit</a>,<a href="http://technorati.com/tags/White" rel="tag">White</a>,<a href="http://technorati.com/tags/Unity" rel="tag">Unity</a>,<a href="http://technorati.com/tags/Log4Net" rel="tag">Log4Net</a>,<a href="http://technorati.com/tags/Prism" rel="tag">Prism</a>,<a href="http://technorati.com/tags/JQuery" rel="tag">JQuery</a>,<a href="http://technorati.com/tags/Asp.Net%20MVC" rel="tag">Asp.Net MVC</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/10/02/up-and-coming-microsoft-technologies-in-open-source/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SqlExpress 2005 Install Surprises (Issues)</title>
		<link>http://www.opensourceconnections.com/2008/07/14/sqlexpress-2005-install-surprises-issues/</link>
		<comments>http://www.opensourceconnections.com/2008/07/14/sqlexpress-2005-install-surprises-issues/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 19:21:09 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/07/14/sqlexpress-2005-install-surprises-issues/</guid>
		<description><![CDATA[<p>3 years later and it never ceases to amaze me with how many surprises SQL Express comes with when you try to install it on a windows 2003 server for whatever reason.&#160; So today when I was playing the role of &#8220;Server Admin&#8221; and attempting to install SQL Express, I ran into a couple of issues. </p>
<p><a href="http://www.opensourceconnections.com/2008/07/14/sqlexpress-2005-install-surprises-issues/" class="more-link">Read more on SqlExpress 2005 Install Surprises (Issues)&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>3 years later and it never ceases to amaze me with how many surprises SQL Express comes with when you try to install it on a windows 2003 server for whatever reason.&nbsp; So today when I was playing the role of &#8220;Server Admin&#8221; and attempting to install SQL Express, I ran into a couple of issues. </p>
<p>The first one was </p>
<blockquote><p>The SQL Server System Configuration Checker cannot be executed due to WMI configuration on the machine<em> &lt;mymachine&gt;</em> Error:2147749896 (0&#215;80041008)</p>
</blockquote>
<p>So after the initial, &#8220;why, God, why?????&#8221;, I found <a href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=193534&amp;SiteID=1">this nugget</a> off of google. It&#8217;s basically a command script that goes through and fixes possible errors for the WMI configuration (FIXWMI.CMD).&nbsp; So after running this, I could finally get SQL Express installing, well, sort of.&nbsp; </p>
<p>Evidently SQL Express sometimes has issues installing, when it installs itself in &#8220;stealth&#8221; mode which is how it installs when you run the &#8220;SQLEXPRE32.EXE&#8221; installer. </p>
<blockquote><p> SQLexpress fails with the error: An installation package for the product Microsoft SQL Server Native Client cannot be found. Try the installation again using a valid copy of the installation package â€˜sqlncli.msiâ€™</p>
</blockquote>
<p>So to get around this, you need to create a temp folder where ever your evil server admin heart desires. I chose to be spontaneous and created: &#8220;c:\temp\sql&#8221;.&nbsp;&nbsp; Then you need to open a command line and change the directory to where ever you have the file &#8220;SQLEXPRES32.EXE&#8221; kept and run the following command:</p>
<pre class="code cmd">$&gt; SQLEXPRES32.EXE /x:c:\temp\sql</pre>
<p>This will unpack everything into that folder.&nbsp; You should now have a &#8220;c:\temp\sql\Setup&#8221; folder, inside of which is a file/msi called &#8230; (drum roll), &#8220;sqlncli.msi&#8221;. Double click on that msi file and run &#8220;repair&#8221;.&nbsp; After that rerun the &#8220;SQLEXPRES32.EXE&#8221; and all should be golden.&nbsp; </p>
<p>This blog was sponsored by the letter S and number 5 and does not imply warranties of any kind, use at your own risk, the same kind that you take when you open up regedit and begin mutilating various keys and values.&nbsp; </p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/07/14/sqlexpress-2005-install-surprises-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP is the new PERL, 22 reasons PHP is hard to work with</title>
		<link>http://www.opensourceconnections.com/2008/06/05/php-is-the-new-perl-22-reasons-php-is-hard-to-work-with/</link>
		<comments>http://www.opensourceconnections.com/2008/06/05/php-is-the-new-perl-22-reasons-php-is-hard-to-work-with/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 18:40:33 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Language]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Limitations]]></category>
		<category><![CDATA[mixins]]></category>
		<category><![CDATA[namespace]]></category>
		<category><![CDATA[PHP is the new PERL]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=295</guid>
		<description><![CDATA[<p>PHP was one of the first languages that I learned when web design was my primary focus as a career.  It seemed to be simple with plenty of examples on how to use it as well as plenty of code to grab to use on the fly in order to get the job done so that I could concentrate on what I loved the most, doing design.  However along the way, I somehow got sucked into the programmer paradigm and ended up being a professional code monkey.</p>
<p><a href="http://www.opensourceconnections.com/2008/06/05/php-is-the-new-perl-22-reasons-php-is-hard-to-work-with/" class="more-link">Read more on PHP is the new PERL, 22 reasons PHP is hard to work with&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>PHP was one of the first languages that I learned when web design was my primary focus as a career.  It seemed to be simple with plenty of examples on how to use it as well as plenty of code to grab to use on the fly in order to get the job done so that I could concentrate on what I loved the most, doing design.  However along the way, I somehow got sucked into the programmer paradigm and ended up being a professional code monkey.</p>
<p>As such, my exposure to quite a few other languages, features, and coding paradigms have drastically increased as I&#8217;m a sucker for new technology and things of the geekified nature minus star trek, dungeons &amp; dragons, and obsessions with super models.  Now PHP seems to be more of a thorn in my side as a programmer than anything. Since I do have working knowledge of the language, especially its Object Oriented Features, magic methods, its various editors, extensions, and its limitations and quirks, I tend to get drawn into PHP projects. Working on a PHP project makes me long for a good rails or asp.net project because PHP just makes me feel dirty as a programmer.</p>
<p>PHP has gone the way of PERL: somewhat usable, a few good features and scripts, but stagnating with its ability to push the language itself to compete with other modern languages.</p>
<p>So what makes PHP so bad to work with?<span id="more-295"></span></p>
<p>1) Its object syntax is not intuitive. With symbols like &#8220;-&gt;&#8221; or &#8220;::&#8221; for accessing methods, properties, and fields on its objects is a pain to type, especially when most modern languages use a dot &#8220;.&#8221;.  At least when you use C, you get a lower level performance boost, but a web languages that is interpreted, why make it a pain to use the OOP? So even with a great tool like the eclipse PDT for PHP, it still sucks cause you have to -&gt; which is not as easy as just typing a . (How much is your time really worth?)</p>
<p>2) <a href="http://us.php.net/manual/kr/language.namespaces.definition.php">Namespaces will not be supported till PHP 5.3.0 and its very limited</a>. Not to mention, that if anyone uses namespaces it will not be backwards compatible with the rest of the PHP 5 versions out there which can become confusing.</p>
<p>3) Core commiters on the PHP internals are not exactly developer friendly.  I used to be a heavy user on Site Point Forums where there is a huge PHP community. Much of which have tried to give feedback, patches, and fixes for PHP, to no avail. (The creator of <a href="http://simpletest.sourceforge.net/">simple test</a>, <a href="http://shiflett.org/blog/2006/aug/six-reasons-php-sucks">Chris Shiflett </a>and some other big names in the PHP community have hung out on those boards). If anything you usually get a sarcastic reply if not completely ignored altogether.</p>
<p>4) No support of <a href="http://en.wikipedia.org/wiki/Mixin">mixins</a>.  Ruby, Javascript, even C# has some kind of support for mixins (bascially a friendly type of multiple inheritance) these days.</p>
<p>5) Cryptic and chaotic naming of functions like <a href="http://us.php.net/manual/en/function.strstr.php">strstr</a>. <a href="http://us.php.net/manual/en/function.stristr.php">stristr</a>, <a href="http://us.php.net/manual/en/function.strpos.php">strpos</a>, <a href="http://us.php.net/manual/en/function.empty.php">empty</a>, <a href="http://us.php.net/manual/en/function.usort.php">usort</a>, etc. This makes its increasingly hard on anyone who has to know multiple languages to go back and forth because of the extra memorization required to be proficient to know what functions are which.</p>
<p>6) Poor object oriented support and no php objects for value types. Array, String, etc should have be objects so that you can do something like $arr-&gt;count or $arr-&gt;sort();, or $str-&gt;toLower(); rather than trying to remember the cryptic names for things to manipulate strings and arrays.</p>
<p>7) Forced heavy use of things like the function &#8220;isset&#8221; instead of just checking to see if a variable is null or not.</p>
<p>8 ) Hidden language features like the <a href="http://us.php.net/manual/en/function.date-create.php">DateTime</a> object that comes without any real documentation or the soap extension and where to put http authentication.</p>
<p>9) Heavy use of building templating languages/tools like <a href="http://www.smarty.net/">smarty template engine</a>, expression engine on top of PHP which is a HTML template language. To make matters worse there are no development tools built for the new templating language/tool like visual studio does for asp.net tags, so the developer has to guess what is available or shuffle through undocumented code to figure out the hidden things, that is not covered in the lack of documentation provided.</p>
<p>10) Unicode support will not be available till PHP version 6 which has been in development for over 2 years or more.</p>
<p>11) There is not a standard framework to build on like rails is for ruby or .net is for c#, therefore everyone does their own thing and there is a lack of convention over configuration since there is a lack of uniform coding conventions.</p>
<p>12) PHP does not come with its own web server like rails has with webrick and asp.net has with <a href="http://www.asp.net/Downloads/archived/cassini/">cassini</a>, so setup just for local development tends to be a pain.</p>
<p>13) Very few PHP applications take relative pathing into account which makes development on various boxes, servers, etc a pain to accomplish (like one developer on a mac and another using a windows box with IIS).</p>
<p>14) PHP just does not evolve fast enough as an opensource project should, especially now that its playing catch up to both c# and ruby. (Its now just getting namespace support and the <a href="http://framework.zend.com/">zend framework</a> is chasing after rails but failing to come close).</p>
<p>15) PHP tries to imitate Java way too much and has paid the price of doing so. Java is generally not the tool for doing web development, to which PHP is targeted for, yet as PHP tries to work with java, ruby is already light years beyond with things like JRuby and Grails and does so without trying imitate java in any fashion.</p>
<p>16) PHP does not get enough push to do things besides websites. <a href="http://gtk.php.net/">PHP Gtk</a>, <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=Phalanger">PHP Phalanger</a> (.net compiler for PHP, to which PHP runs faster when compiled as .net code) are both failures. However Iron Python and Iron Ruby are constantly being worked on and have a promising future.</p>
<p>17) Lack of consistency with function signatures  $needle, $haystack in many php functions are always switched up.</p>
<p>18) <a href="http://pear.php.net/">Pear</a> is simply a repository of poorly written code and holds nothing on ruby gems.</p>
<p>19) Most PHP software works, but is a pain to customize because its mostly spaghetti code thrown together with very little actual documentation, use of design patterns, convention/structure, and almost always has a sub par module/plugin system that is cryptic at best and lacks any kind of real API that is easy to program against.</p>
<p>20) PHP is like IE6 or Java, too slow, too lazy, and now too late to really make a come any real comeback to catch up with ruby or c# or python.</p>
<p>21) If a static method is called from a derived class, there is no way to get the derived class type without overriding the static method in the derived class or passing the type in as a parameter. Which makes creating a activerecord class with factory methods a pain as you would need to copy methods to each derived class. So it would look something like</p>
<p>Person::find(&#8220;Person&#8221;, array(&#8220;conditions&#8221; =&gt; array(&#8220;name = ?&#8221;, $name)));</p>
<p>vs</p>
<p>Person.find(:conditions =&gt; ["name = ?", name]) in ruby.</p>
<p>22) PHP 6 is the new PERL 6. It is still coming, years later&#8230;.</p>
<p>Granted there are some nifty frameworks like <a href="http://www.pradosoft.com/">prado </a>or <a href="http://codeigniter.com/">code igniter</a>, but their limited due to the language limitations&#8230;<br />
So shouldn&#8217;t <a href="http://www.zend.com/en/">zend</a>, the php company in Israel just scrap the language and start fresh, fixing all the language quirks? Maybe even use something like antler to speed up the process of creating a new web 3.0 language? Or maybe push PHP the community to get its act together and put something together thats not so behind the times before they go the way of the dinosaur? Or should php just march into oblivion?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/06/05/php-is-the-new-perl-22-reasons-php-is-hard-to-work-with/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Apple iTouch, the New PDA</title>
		<link>http://www.opensourceconnections.com/2008/03/28/apple-itouch-the-new-pda/</link>
		<comments>http://www.opensourceconnections.com/2008/03/28/apple-itouch-the-new-pda/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 14:28:58 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/03/28/apple-itouch-the-new-pda/</guid>
		<description><![CDATA[<p>Let&#8217;s get crazy for a moment and declare the <a href="http://www.Apple.com/ipodtouch/">iPod touch</a> the New Breed of <a href="http://en.wikipedia.org/wiki/Personal_digital_assistant">PDA</a>, a personal digital assistant, not to be confused with public display of affection, even though there are few zealous Apple proponents who might blend the two for their obsession with Apple devices. The iPod touch or iTouch is essentially the iPhone, minus the phone and things like Edge, but keeping the cool touch screen and allowing for connectivity not just through iTunes, but Wi-Fi as well. With the iTouch having the strength of the new <a href="http://developer.Apple.com/iphone/">iPhone <abbr title="Software Developer Kit">SDK</abbr></a>, the tech savvy <a href="http://lifehacker.com/337863/how-to-install-third+party-apps-on-your-new-iphone-or-ipod-touch">jailbreak applications</a> ranging from <a href="http://www.zdziarski.com/projects/nesapp/">NES (Nintendo Entertainment System) emulators</a> to <a href="http://code.google.com/p/apolloim/">Apollo Im</a>, and even possible enterprise support similar to its cousin the iPhone, like syncing with a Microsoft Exchange Server; what is to prevent this extendable portable music player from becoming a full blown PDA device? </p>
<p><span id="more-241"></span></p>
<p><a href="http://www.opensourceconnections.com/2008/03/28/apple-itouch-the-new-pda/" class="more-link">Read more on Apple iTouch, the New PDA&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s get crazy for a moment and declare the <a href="http://www.Apple.com/ipodtouch/">iPod touch</a> the New Breed of <a href="http://en.wikipedia.org/wiki/Personal_digital_assistant">PDA</a>, a personal digital assistant, not to be confused with public display of affection, even though there are few zealous Apple proponents who might blend the two for their obsession with Apple devices. The iPod touch or iTouch is essentially the iPhone, minus the phone and things like Edge, but keeping the cool touch screen and allowing for connectivity not just through iTunes, but Wi-Fi as well. With the iTouch having the strength of the new <a href="http://developer.Apple.com/iphone/">iPhone <abbr title="Software Developer Kit">SDK</abbr></a>, the tech savvy <a href="http://lifehacker.com/337863/how-to-install-third+party-apps-on-your-new-iphone-or-ipod-touch">jailbreak applications</a> ranging from <a href="http://www.zdziarski.com/projects/nesapp/">NES (Nintendo Entertainment System) emulators</a> to <a href="http://code.google.com/p/apolloim/">Apollo Im</a>, and even possible enterprise support similar to its cousin the iPhone, like syncing with a Microsoft Exchange Server; what is to prevent this extendable portable music player from becoming a full blown PDA device? </p>
<p><span id="more-241"></span></p>
<p>The answer: nothing. Even Google has made <a href="http://gmailblog.blogspot.com/2007/09/updates-from-google-docs-and-google.html">their calendar</a> accessible from the web to devices like the iPhone and iTouch. You also currently have the ability to sync your contacts and calendar through outlook or iCal, your todo lists from websites like <a href="http://www.rememberthemilk.com">rememberthemilk.com</a>, and your e-mail directly from your account. One can&#8217;t ignore the power of having your data, music, you-tube videos, movies, pod-casts, contacts, and more, locked into sleek colorful device that can go with you any where, even when disconnected from the web.</p>
<p>You have to admit, this could even be seen as Apple&#8217;s play at creating a PDA, releasing both the iPhone SDK and creating the iTouch targeted at people who didn&#8217;t want it as a phone. Or this could have even possibly been the target all along for the iPod, since it always (to my limited knowledge) had the ability to store contacts and calendar information from initial production. </p>
<p>Granted the current, biggest drawback is that iTunes does not sync calendars with the Windows Calendar (on Vista) or any calendar application you use outside of Outlook on Windows, or the iCal on Mac OS X. But most people who have need for a PDA, are most likely going to have either the iCal or some form of Outlook. Combine that with things like <a href="http://www.plaxo.com">Plaxo</a> or even the Google Calendar syncing tool with Outlook, you can now have your mail, music, videos, games, contacts, calendar, grocery lists, and much more in the palm of your hand or for the avid jogger, in an band around your arm.</p>
<p>If anyone has any cool applications for the iPhone/iTouch, that would enhance the quality life or help with organization, help the community and leave it in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/03/28/apple-itouch-the-new-pda/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Ramping Up .Net For BDD and Unit Testing With Gallio, NBehave, and Moq</title>
		<link>http://www.opensourceconnections.com/2008/03/19/catching-up-net-for-bdd-and-unit-testing-with-gallio-nbehave-and-moq/</link>
		<comments>http://www.opensourceconnections.com/2008/03/19/catching-up-net-for-bdd-and-unit-testing-with-gallio-nbehave-and-moq/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 02:20:54 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/03/19/catching-up-net-for-bdd-and-unit-testing-with-gallio-nbehave-and-moq/</guid>
		<description><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Unit_testing">Unit Testing</a> is a word that has inspired some or has become a bane for others. TDD, <a href="http://en.wikipedia.org/wiki/Test-driven_development">test driven development</a>, has changed the way many people write their code, and others&#8230; not so much. Then a new catch phrase appeared on the test scene, BDD, <a href="http://en.wikipedia.org/wiki/Behavior_driven_development">behavior driven development</a>. So instead of tests, you&#8217;re writing specifications of expected behaviors and observations in code, that will also hopefully create your specifications documentation for you. Also there is this notion of doing story boards as well. </p>
<p><a href="http://www.opensourceconnections.com/2008/03/19/catching-up-net-for-bdd-and-unit-testing-with-gallio-nbehave-and-moq/" class="more-link">Read more on Ramping Up .Net For BDD and Unit Testing With Gallio, NBehave, and Moq&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Unit_testing">Unit Testing</a> is a word that has inspired some or has become a bane for others. TDD, <a href="http://en.wikipedia.org/wiki/Test-driven_development">test driven development</a>, has changed the way many people write their code, and others&#8230; not so much. Then a new catch phrase appeared on the test scene, BDD, <a href="http://en.wikipedia.org/wiki/Behavior_driven_development">behavior driven development</a>. So instead of tests, you&#8217;re writing specifications of expected behaviors and observations in code, that will also hopefully create your specifications documentation for you. Also there is this notion of doing story boards as well. </p>
<p>Ruby has <a href="http://rspec.info/">Rspec</a> built ontop of a well oiled web application framework known as <a href="http://www.rubyonrails.org/">Rails</a>. So where does leave .Net developers, especially with the <a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx">Asp.Net Mvc Option/framework</a> on the horizon? I&#8217;ve been keeping an eye on .net tools that would allow or be the Rpec for .net. Things like <a href="http://codebetter.com/blogs/jeremy.miller/archive/2006/06/27/146872.aspx">NSpec</a> and <a href="http://www.codeplex.com/NBehave">NBehave</a> popped up on Google, but there was really no documentation, read me&#8217;s or even blog postings to demonstrate how to use these libraries. However a cool mock library named <a href="http://www.ayende.com/projects/rhino-mocks/downloads.aspx">Rhino mock</a> became the rage to heal the pain of NMock (but geeze man, all that &quot;Replay&quot; stuff is confusing, totally ignoring the KISS principle). And <a href="http://www.mbunit.com/">MbUnit</a>, a unit testing on crack, which built on top of other Xunit frameworks, seemed to be stagnated. </p>
<p>Enter 2008, the year of open source and openness for developers of .Net. MbUnit has been hard at working on <a href="http://weblogs.asp.net/astopford/archive/2007/11/30/mbunit-v3-and-gallio-alpha-1.aspx">Gallio, the neutral test platform</a>, NBehave has merged with Nspec and Behave# and have an April 4th release date, but <a href="http://code.google.com/p/nbehave/">you can still play with the bits</a>. Even Microsoft is doing the release often and having open input on the Asp.Net Mvc framework. A new cooler mock framework has come out known as <a href="http://code.google.com/p/moq/">Moq</a> that uses the c# 3.0 extensions and lambdas, which <a href="http://www.hanselman.com/blog/MoqLinqLambdasAndPredicatesAppliedToMockObjects.aspx">Scott Hanselman gave a great overview about</a>. </p>
<p><span id="more-239"></span></p>
<p>Gallio, the good looking, time saving, neutral testing platform, saved me from time crunching with beating <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CC.NET</a> into generating what would have been another ugly Unit Test report. Gallio took around 5 minutes after reading the walk through. It also allowed for me create the Unit Testing and NCover Report at the same time running it from an MsBuild script. Not to mention the UI for both the console and GUI are much prettier these days. <a href="http://code.google.com/p/mb-unit/">You can grab the bits for Gallio here on google code.</a> </p>
<p>Icarus   <br /><a href="http://www.flickr.com/photos/24351047@N04/2346859080/"><img alt="Gallio-Icarus" src="http://static.flickr.com/3037/2346859080_4af2e12838.jpg" border="0" /></a> </p>
<p>Echo   <br /><a href="http://www.flickr.com/photos/24351047@N04/2346859144/"><img alt="Gallio-Echo" src="http://static.flickr.com/3073/2346859144_6dc989e28b.jpg" border="0" /></a></p>
<p>NBehave, has been working hard along side of the guys at MbUnit to work together in creating a better test environment, however since they still have plenty to do, they put up a <a href="http://www.lostechies.com/blogs/joe_ocampo/archive/2008/02/26/updates-to-nbehave.aspx">blog post</a>, using <a href="http://code.google.com/p/nbehave/">the current bits of NBehave </a>, in order to create specifications using NUnit, which can also be applied to other Xunit frameworks. Much of BDD has to do with DSL (domain specific language) and the wording structure and thought process, more than the inner workings of code. This can be demonstrated in that blog post, changing the attributes, which will decorate the same way you would in a unit test, but give the developer a new meaning.</p>
<p>However, words like &#8220;context&#8221; and &#8220;specification&#8221; used in the <a href="http://www.lostechies.com/blogs/joe_ocampo/archive/2008/02/26/updates-to-nbehave.aspx">example from the nbehave update</a> can be blah and since people that are most familiar with BDD are probably rails developers using Rspec. So lets take this a step further, using NBehave, Gallio and MbUnit and product a spec. (Plus they tied that MbUnitSpecBase to Rhino Mock and used underscores in their method names.. grrrrr, don&#8217;t tightly couple frameworks). C# isn&#8217;t ruby.</p>
<pre class="csharp"><code>
//-----------------------------------------------------------------------
// &lt;copyright file=&quot;Copyright.cs&quot; author=&quot;Michael Herndon&quot;&gt;
//     Copyright (c) Michael Herndon.  All rights reserved.
// &lt;/copyright&gt;
//-----------------------------------------------------------------------

namespace Amplify
{
	#region Using Statements
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;

	using Gallio.Framework;
	using MbUnit.Framework;
	using NBehave.Spec.MbUnit;
	using NBehave.Specs;
	using NBehave;

	using It = MbUnit.Framework.TestAttribute;
	using Describe = MbUnit.Framework.CategoryAttribute;
	using InContext = MbUnit.Framework.DescriptionAttribute;
	using Should = MbUnit.Framework.DescriptionAttribute;
	#endregion

	[
		Author(&quot;Michael Herndon&quot;, &quot;mherndon@opensourceconnections.com&quot;, &quot;opensourceconnections.com&quot;),
		Describe(&quot;ApplicationContext Specification&quot;),
		InContext(&quot;using the context for managing application wide values and configuration&quot;)
	]
	public class ApplicationContextObject : Spec
	}

		[It, Should(&quot;lazy load or create the AmplifyConfiguration.&quot;)]
		public void GetAndValidationApplicationSection()
		{
			ApplicationContext.AmplifyConfiguration.ShouldNotBeNull();
			ApplicationContext.AmplifyConfiguration.ApplicationName.ShouldBe(&quot;Amplify.Net Application&quot;);
			ApplicationContext.AmplifyConfiguration.ConnectionStringName.ShouldBe(&quot;development&quot;);

			ApplicationContext.ApplicationName.ShouldBe(&quot;Amplify.Net Application&quot;);
			ApplicationContext.ConnectionStringName.ShouldBe(&quot;development&quot;);
		}
	}
}</code></pre>
<p>ahhh yes, this looks more like familar territory without trying to make C# into ruby using underscores in method names, while staying true to something like rspec. Of course you could easily just do this with MbUnit and creating your own extension methods and not use NBehave. Now you can even make multiple classes for different contexts (uses of something) for the same specification by using the Describe(CategoryAttribute), similar to how rspec does. So building off of NBehave&#8217;s very cool idea of using what we already have, we can now use specifications in a cool neutral testing platform of Gallio, and tying that into our continuous integration setup, leaving the door open later to come back and generate nice reports from the above code. </p>
<p>So of course now, i&#8217;m now using this type of testing setup for <a href="http://code.google.com/p/amplify-net">amplify</a> and its made unit testing enjoyable. </p>
<div class="bjtags">Tags: <a href="http://technorati.com/tag/NBehave" rel="tag">NBehave</a>, <a href="http://technorati.com/tag/MbUnit" rel="tag">MbUnit</a>, <a href="http://technorati.com/tag/Gallio" rel="tag">Gallio</a>, <a href="http://technorati.com/tag/BDD" rel="tag">BDD</a>, <a href="http://technorati.com/tag/TDD" rel="tag">TDD</a>, <a href="http://technorati.com/tag/Testing" rel="tag">Testing</a>, <a href="http://technorati.com/tag/Unit+Testing" rel="tag">Unit+Testing</a>, <a href="http://technorati.com/tag/Continious+Integration" rel="tag">Continuous+Integration</a>, <a href="http://technorati.com/tag/Moq" rel="tag">Moq</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/03/19/catching-up-net-for-bdd-and-unit-testing-with-gallio-nbehave-and-moq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE 8 Beta 1 Released at Mix Keynote</title>
		<link>http://www.opensourceconnections.com/2008/03/05/ie-8-beta-1-released-at-mix-keynote/</link>
		<comments>http://www.opensourceconnections.com/2008/03/05/ie-8-beta-1-released-at-mix-keynote/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 18:46:54 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
		
		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/03/05/ie-8-beta-1-released-at-mix-keynote/</guid>
		<description><![CDATA[<p><a href="http://www.microsoft.com/ie/ie8">IE 8 Beta 1 will be released</a> after the keynote, which is still currently going on as I write this. IE has been play catching up of late, but it seems IE 8 has not only caught up, but is now pushing the envelope with user interaction with the browser, that just might make the browser loveable again.</p>
<p><a href="http://www.opensourceconnections.com/2008/03/05/ie-8-beta-1-released-at-mix-keynote/" class="more-link">Read more on IE 8 Beta 1 Released at Mix Keynote&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.microsoft.com/ie/ie8">IE 8 Beta 1 will be released</a> after the keynote, which is still currently going on as I write this. IE has been play catching up of late, but it seems IE 8 has not only caught up, but is now pushing the envelope with user interaction with the browser, that just might make the browser loveable again.</p>
<p><a href="http://www.flickr.com/photos/24351047@N04/2312230613/"><img alt="IMG_0839" src="http://static.flickr.com/3235/2312230613_d96bde9cdb.jpg" border="0" /></a> </p>
<p><span id="more-212"></span><br />
IE 8 has caught up with Firefox with its now complete CSS 2.1 support, supporting standards mode by default, including a firebug like clone for developer tools, and forcing developers to now play ball by developing web compliant web sites.
</p>
<p>However IE 8 is now pushing the web with starting to support HTML 5.0 specification, so that the back button does not break Ajax web sites, saving copies of web pages on disk while the browser is disconnected from the Internet so that if you&#8217;re editing a blog page and your disconnected, the data will still save once connection resumes and their are even connect and disconnect events from the new HTML 5.0 spec.</p>
<p>Also new are web-slices and web actions. Web-slices allows the user to save parts of page as a bookmark and it shows a thumbnail of that part of a page so you could easily view your favorite eBay auction or status notices on facebook, without having to browse to the actual page.</p>
<p>Web actions allow the use to select any text into the page and send it a web services that uses that text as a query without having to open up a new page, and to the user it seems like a nice dialog popup. So you could highlight and address and get the Google maps location as a popup right in the page.</p>
<div class="bjtags">Tags: <a href="http://technorati.com/tag/IE+8" rel="tag">IE+8</a>, <a href="http://technorati.com/tag/Beta" rel="tag">Beta</a>, <a href="http://technorati.com/tag/Browser" rel="tag">Browser</a>, <a href="http://technorati.com/tag/Web" rel="tag">Web</a>, <a href="http://technorati.com/tag/Web+Slices" rel="tag">Web+Slices</a>, <a href="http://technorati.com/tag/Web+Actions" rel="tag">Web+Actions</a>, <a href="http://technorati.com/tag/Html+5.0" rel="tag">Html+5.0</a>, <a href="http://technorati.com/tag/Css+2.1" rel="tag">Css+2.1</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/03/05/ie-8-beta-1-released-at-mix-keynote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arriving At Mix 2008 (Las Vegas)</title>
		<link>http://www.opensourceconnections.com/2008/03/05/arriving-at-mix-2008-las-vegas/</link>
		<comments>http://www.opensourceconnections.com/2008/03/05/arriving-at-mix-2008-las-vegas/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 09:46:41 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
		
		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/03/05/arriving-at-mix-2008-las-vegas/</guid>
		<description><![CDATA[<p>Technically its 4am EST, but here it&#8217;s 1am (and I pretty much live on a west coast clock, even though I was born and raised in Va), which is prime nocturnal developer time to get something productive done without interruption. So I&#8217;m sitting at the Starbucks at the Egyptian style Luxor hotel here at the 24 hour Starbucks (take notes Charlottesville, we need more 24 hour places for geeky people like me. Even Richmond had a 24 hour gym that was like almost a quarter of the price of the local gyms that close at 9 PM in Charlottesville), hearing the rambling of someone to spout something that resembles a cheesy pick up line and echoing of random strangers walking by.</p>
<p><a href="http://www.opensourceconnections.com/2008/03/05/arriving-at-mix-2008-las-vegas/" class="more-link">Read more on Arriving At Mix 2008 (Las Vegas)&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Technically its 4am EST, but here it&#8217;s 1am (and I pretty much live on a west coast clock, even though I was born and raised in Va), which is prime nocturnal developer time to get something productive done without interruption. So I&#8217;m sitting at the Starbucks at the Egyptian style Luxor hotel here at the 24 hour Starbucks (take notes Charlottesville, we need more 24 hour places for geeky people like me. Even Richmond had a 24 hour gym that was like almost a quarter of the price of the local gyms that close at 9 PM in Charlottesville), hearing the rambling of someone to spout something that resembles a cheesy pick up line and echoing of random strangers walking by.</p>
<p><a href="http://www.flickr.com/photos/24351047@N04/2312230451/"><img alt="IMG_0827" src="http://static.flickr.com/3270/2312230451_eb545e03ea.jpg" border="0" /></a></p>
<p><a href="http://visitmix.com/">Mix 2008</a></p>
<p>But lets face it, the real reason I&#8217;m here is to find out all about the new and upcoming technologies that will hopefully make life easier not just for the developer, but you; the reader, the end user, the client, the father, the single mother, the person in the daily trenches that keeps things running smooth.</p>
<p>Unfortunately, new technology does not always lead to make your life easier, in fact it often makes you dependent or duplicate processes that should other wise should be done once. Or maybe you are in that organization that hacks together things so you&#8217;re ending up duplicating data in multiples places, chained to your cell phone that was supposed to bring you freedom, and using the latest and greatest software that is seriously lacking in features. </p>
<p>However, the developers at osc (opensource connections)&#160; strive to use technology for the benefit of our clients and end users, and find ways of using new technologies to fill in the gaps that old technologies or bad design often leaves behind.</p>
<p>Tomorrow Microsoft is supposed to unveil the uber secret workings of IE 8 (Internet Explorer 8), have a keynote that includes Ray Ozzie (the guy replacing bill gates at Microsoft), Scott Gutherie, and Dean Hachmovicth.</p>
</p>
<p><span id="more-209"></span></p>
<p>The other highlight of tomorrow will be seeing how MySpace used .Net 3.5 and WCF (<a href="http://msdn2.microsoft.com/en-us/netframework/aa663324.aspx">windows communication foundation</a>) to create a massive RESTful API that obviously supports millions of hits per day. </p>
<p><strong>Myspace Note:</strong> For those of you that do not know, despite the fact that many of the urls on myspace still say .cfm, that site is in fact run on IIS and asp.net and the changes of late have reflected the new technologies like ASP.NET Ajax being used throughout the site.</p>
<p>For those of you interested in how .Net technologies and opensource technologies blend better than the typical person might expect, you can always e-mail me at <a href="mailto:mherndon@opensourceconnections.com">mherndon@opensourceconnections.com</a> to see what is really out there and happening.&#160; For those of you that are totally in the dark in the last 2 years or so Microsoft has really been making an effort to work with the opensource community and has seen the power in it. Hence web sites like <a href="http://port25.technet.com/">Port 25 </a> and <a href="http://www.codeplex.com/">codeplex</a>, not to mention the invention of the Microsoft permissive license.</p>
<div class="bjtags">Tags: <a href="http://technorati.com/tag/Mix+2008" rel="tag">Mix+2008</a>, <a href="http://technorati.com/tag/Mix" rel="tag">Mix</a>, <a href="http://technorati.com/tag/Wcf" rel="tag">Wcf</a>, <a href="http://technorati.com/tag/las+vegas" rel="tag">las+vegas</a>, <a href="http://technorati.com/tag/.Net" rel="tag">.Net</a>, <a href="http://technorati.com/tag/opensource" rel="tag">opensource</a>, <a href="http://technorati.com/tag/windows+communication+foundation" rel="tag">windows+communication+foundation</a>, <a href="http://technorati.com/tag/MySpace" rel="tag">MySpace</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/03/05/arriving-at-mix-2008-las-vegas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Css Fury: Part 2 Adjacent Selectors, Transverse Dom With CSS</title>
		<link>http://www.opensourceconnections.com/2008/02/22/css-fury-part-2-adjacent-selectors-transverse-dom-with-css/</link>
		<comments>http://www.opensourceconnections.com/2008/02/22/css-fury-part-2-adjacent-selectors-transverse-dom-with-css/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 16:33:34 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
		
		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/02/22/css-fury-part-2-adjacent-selectors-transverse-dom-with-css/</guid>
		<description><![CDATA[<p><a href="http://www.opensourceconnections.com/2008/02/10/css-fury-part-1-the-starasterisk-selector/">Read Css Fury: Part 1 the star/asterisk selector</a></p>
<p>One of the &#34;wicked cool&#34; but rarely used parts of CSS selectors is the <a href="http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors">Adjacent/Sibling Selector </a>. <span style="color: #ff0000">IE 6 does not support this selector</span>. However IE 7, Firefox, and Safari browsers do support this feature. So using this selector can be a good way of using CSS styles to enhance the visual experience while degrading gracefully in older browsers (which gives the user a good reason to update to one that does support CSS 2.1, without affecting the functionality of a site).</p>
<p><a href="http://www.opensourceconnections.com/2008/02/22/css-fury-part-2-adjacent-selectors-transverse-dom-with-css/" class="more-link">Read more on Css Fury: Part 2 Adjacent Selectors, Transverse Dom With CSS&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.opensourceconnections.com/2008/02/10/css-fury-part-1-the-starasterisk-selector/">Read Css Fury: Part 1 the star/asterisk selector</a></p>
<p>One of the &quot;wicked cool&quot; but rarely used parts of CSS selectors is the <a href="http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors">Adjacent/Sibling Selector </a>. <span style="color: #ff0000">IE 6 does not support this selector</span>. However IE 7, Firefox, and Safari browsers do support this feature. So using this selector can be a good way of using CSS styles to enhance the visual experience while degrading gracefully in older browsers (which gives the user a good reason to update to one that does support CSS 2.1, without affecting the functionality of a site).</p>
<p>An Adjacent Selector basically allows you to select sibling nodes within a given node of the DOM. An example of what an adjacent selector looks like is below.</p>
<pre><code class="css">
//css
p + p {
    background: #ccc;
}
</code></pre>
</p>
<pre><code class="html">
// html
&lt;p&gt;I am paragraph one with a normal background. &lt;/p&gt;
&lt;p&gt;I am paragraph two with a slightly smoke gray background. &lt;/p&gt;
</code></pre>
</p>
<p><span id="more-201"></span></p>
<p>Often times designers rely too heavily on programmers to help with things like using a modulus in order to create alternating styles/classes on rows of a grid or list. In a web site you might see something like <code class="csharp">if((index % 2) == 0) row.CssClass += &quot; alt&quot;; </code>Well you can do something like this using only CSS within reason, using adjacent selectors. Now do keep in mind, that since CSS is all about cascading and inheritance, that whatever you set on the alternating columns has to be accounted for in the other style set. Meaning if you want to alternate a background color you need to explicitly set the color on both the odd and even rows like below.</p>
<pre><code class="css">
ul li,
ul li + li + li,
ul li + li + li + li + li {
     background: #ccc;
}

ul li + li,
ul li + li + li + li,
ul li + li + li + li + li + li {
    background: #999;
}
</code></pre>
<p>The above would render something like the list below.</p>
<ul>
<li style="background: #ccc">row 1 </li>
<li style="background: #999">row 2 </li>
<li style="background: #ccc">row 3 </li>
<li style="background: #999">row 4 </li>
<li style="background: #ccc">row 5 </li>
<li style="background: #999">row 6 </li>
</ul>
<p>Granted you would not want to do this for something that has more than 10 rows or changes variably, however it does present a solution if you have to style a site that you have limited or no control over the output of the html and you are not allowed to change the semantic markup of a page.</p>
<p class="listening-to">currently listening to..<br />
  <br /><span class="artist"><a href="http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?artistTerm=Grits">Grits</a> </span></p>
<p><span class="album">The Art of Translation </span></p>
<p><span class="title"><a href="http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?songTerm=Here We Go&amp;artistTerm=Grits">Here We Go</a> </span></p>
<div class="bjtags">Tags: <a href="http://technorati.com/tag/Css" rel="tag">Css</a>, <a href="http://technorati.com/tag/Adjacent+Selectors" rel="tag">Adjacent+Selectors</a>, <a href="http://technorati.com/tag/Sibling+Selectors" rel="tag">Sibling+Selectors</a>, <a href="http://technorati.com/tag/Css+Selector" rel="tag">Css+Selector</a>, <a href="http://technorati.com/tag/Alternate+Rows" rel="tag">Alternate+Rows</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/02/22/css-fury-part-2-adjacent-selectors-transverse-dom-with-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some OpenSource Ideas for .Net</title>
		<link>http://www.opensourceconnections.com/2008/02/21/some-opensource-ideas-for-net/</link>
		<comments>http://www.opensourceconnections.com/2008/02/21/some-opensource-ideas-for-net/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 05:33:35 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
		
		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/02/21/some-opensource-ideas-for-net/</guid>
		<description><![CDATA[<p>Have you ever felt there is just simply not enough time in the day to get around to doing everything that needs to be done. It&#8217;s possible that you may be reading this blog posting totally clueless about what is going on .Net (Microsoft&#8217;s solution to &#34;write it anything you want, c#, ruby, vb.net and it works on windows platform&#34;). Well the big MS has dumped a ton of new technologies(while some are totally not new concepts) and Projects and there is more to come. From <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx">Linq (Language Integrated Queries)</a> to <a href="http://windowsclient.net/default.aspx">WPF</a> which all vector based graphics over the typical pixel based windows forms, to <a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx">Asp.Net&#8217;s MVC </a>add on project (which is very rails like, no surprise there) to <a href="http://silverlight.net/">SilverLight</a>, and even supporting projects like <a href="http://www.ironruby.net/">Iron Ruby</a>. And there is no slowing down in sight.</p>
<p><a href="http://www.opensourceconnections.com/2008/02/21/some-opensource-ideas-for-net/" class="more-link">Read more on Some OpenSource Ideas for .Net&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Have you ever felt there is just simply not enough time in the day to get around to doing everything that needs to be done. It&#8217;s possible that you may be reading this blog posting totally clueless about what is going on .Net (Microsoft&#8217;s solution to &quot;write it anything you want, c#, ruby, vb.net and it works on windows platform&quot;). Well the big MS has dumped a ton of new technologies(while some are totally not new concepts) and Projects and there is more to come. From <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx">Linq (Language Integrated Queries)</a> to <a href="http://windowsclient.net/default.aspx">WPF</a> which all vector based graphics over the typical pixel based windows forms, to <a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx">Asp.Net&#8217;s MVC </a>add on project (which is very rails like, no surprise there) to <a href="http://silverlight.net/">SilverLight</a>, and even supporting projects like <a href="http://www.ironruby.net/">Iron Ruby</a>. And there is no slowing down in sight.</p>
</p>
<p><span id="more-199"></span></p>
<p>And yet with all the cool things to try out, there are still quite a few niches and gaping holes in all this. If you&#8217;re reading this and possibly have a hard time of keeping yourself busy and want something worth while to do. Try working on or even starting an opensource .net base project. I know that <a href="http://www.ironruby.net/">Iron Ruby</a><a> could use some help. Also I know of plenty of gaps in the dot net world that could definitely be filled in.</a>
<ul>
<li><strong>Code generation Tool</strong> &#8211; that doesn&#8217;t look or act like it was built 10 years ago and in .net it would be nice to have one that makes use of </li>
<p>     <a href="http://msdn2.microsoft.com/en-us/library/system.codedom.aspx">code dom</a><font color="#0066cc"> </font>which rules out things like &quot;my generation&quot;. Also having th7 new mixin methods would help decrease the amount of code needed to use use code dom, plus there is need for multiple database supported as well as reading XML or even documents like the new ADO.NET entity XML files. </ul>
<li><strong>.Net Yaml Parser</strong> &#8211; yes there are some, but not one that stands out. I know that Iron Ruby is really in need of one as well. </li>
<li><strong>.Net BDD/Spec Framework</strong> &#8211; yes there is Nspec which is now apart of <a href="http://www.codeplex.com/NBehave">NBehave</a> but it looks either really behind or stagnated. </li>
<li><strong>Wpf/WinForms Unit Testing Framework</strong> &#8211; yeah again there is something for this, but its <a href="http://nunitforms.sourceforge.net/">nunitforms</a> which also seems a bit stagnated. </li>
<li><strong>Web/Win/Wpf Controls</strong> &#8211; one really tightly made suite that would give companies like Infragistics, Telerik, and dev express, good competition. </li>
<li><strong><a href="http://www.pumacode.org/projects/svndotnet/">.Net Subversion Bindings </a></strong>- could really use some help. </li>
<li><strong>.Net Audio/Music/Mp3 etc Library </strong>- It would be nice to not have to embed windows media player as the typical way of playing audio files other than .wavs in .Net </li>
<p>&#160;</p>
<p class="listening-to">currently listening to..   <br /><span class="artist"><a href="http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?artistTerm=Janus Stark">Janus Stark</a> </span>    <br /><span class="album">Great Adventure Cigar </span>    <br /><span class="title"><a href="http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?songTerm=Every LIttle Thing Counts&amp;artistTerm=Janus Stark">Every LIttle Thing Counts</a> </span></p>
<div class="bjtags">Tags: <a href="http://technorati.com/tag/OpenSource" rel="tag">OpenSource</a>, <a href="http://technorati.com/tag/.Net" rel="tag">.Net</a>, <a href="http://technorati.com/tag/Yaml" rel="tag">Yaml</a>, <a href="http://technorati.com/tag/BDD" rel="tag">BDD</a>, <a href="http://technorati.com/tag/Code+Generation" rel="tag">Code+Generation</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/02/21/some-opensource-ideas-for-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Css Fury : Part 1, The * (star/asterisk) Selector</title>
		<link>http://www.opensourceconnections.com/2008/02/10/css-fury-part-1-the-starasterisk-selector/</link>
		<comments>http://www.opensourceconnections.com/2008/02/10/css-fury-part-1-the-starasterisk-selector/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 18:22:47 +0000</pubDate>
		<dc:creator>Michael Herndon</dc:creator>
		
		<guid isPermaLink="false">http://www.opensourceconnections.com/2008/02/10/css-fury-part-1-the-starasterisk-selector/</guid>
		<description><![CDATA[<p>CSS 2.1 which is supported by Firefox, safari, and almost completely supported by IE 7, has what is known as the selector syntax. However IE 6 only supports a minimal amount of the CSS selectors, with that being said, you should use selectors wisely in such a way that degrades gracefully in older browsers.</p>
<p><a href="http://www.opensourceconnections.com/2008/02/10/css-fury-part-1-the-starasterisk-selector/" class="more-link">Read more on Css Fury : Part 1, The * (star/asterisk) Selector&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>CSS 2.1 which is supported by Firefox, safari, and almost completely supported by IE 7, has what is known as the selector syntax. However IE 6 only supports a minimal amount of the CSS selectors, with that being said, you should use selectors wisely in such a way that degrades gracefully in older browsers.</p>
<p>Even though CSS have been around for a while, there are people are still using tables for layout design. However the ones forwarding the web, with use of a div layout, are finding new ways and combinations of CSS which results in very cool results. For instance, zeroing out every element on the page with a few lines of code. <span class="ie" style="color: #ff0000">This does work in IE 6.</span></p>
<pre><code class="css">
* {
padding: 0;
margin: 0;
}

</code></pre>
</p>
<p><span id="more-192"></span><br />
The reason this is so significant is that browsers have different predefined padding, margins for various elements like h1, p, blockquote, ul, li etc. Even IE6 has that evil 3 pixel space between divs. What the above code does is zero the padding and margin on every element for the entire page, thus starting all browsers elements on common ground and forcing you to design a page that has a cross browser look and feel by setting the padding and margins manually.</p>
<p>the <strong>*</strong> selector (known as the <a href="http://www.w3.org/TR/REC-CSS2/selector.html#universal-selector">universal selector</a>) matches any single element in the DOM(document object model). So lets say you want to select all spans, even grandchildren inside of a div. It would look like the following.</p>
<pre><code class="css">
div * span {
background: #ff0000;
}

</code></pre>
<p>
  <br />If you use CSS technically you&#8217;re, already using the universal selector since when you type just a class or id, it implies the * before it. So when you see something like the following&#8230;</p>
<p></p>
<pre><code class="css">
span {
background: #ff0000;
}

.error {
background: #ff0000;
}

#error-message {
background: #ff0000;
}

</code></pre>
<p>
  <br />What the parser really sees is &#8230;.</p>
<p></p>
<pre><code class="css">
* span {
background: #ff0000;
}

* .error {
background: #ff0000;
}

* #error-message {
background: #ff0000;
}

</code></pre>
<div class="bjtags">Tags: <a href="http://technorati.com/tag/Css" rel="tag">Css</a>, <a href="http://technorati.com/tag/Code" rel="tag">Code</a>, <a href="http://technorati.com/tag/Css+Selectors" rel="tag">Css+Selectors</a>, <a href="http://technorati.com/tag/Universal+Selector" rel="tag">Universal+Selector</a>, <a href="http://technorati.com/tag/Star" rel="tag">Star</a>, <a href="http://technorati.com/tag/Asterisk" rel="tag">Asterisk</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/02/10/css-fury-part-1-the-starasterisk-selector/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
