<?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>SaltyBlog</title>
	<atom:link href="http://saltydogllc.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://saltydogllc.com</link>
	<description>The Official Blog of Salty Dog Solutions, LLC (Accept no substitutes)</description>
	<lastBuildDate>Mon, 23 Aug 2010 20:54:58 +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>The Upgrade Trail from Visual FoxPro to Silverlight is Getting Blazed</title>
		<link>http://saltydogllc.com/?p=320</link>
		<comments>http://saltydogllc.com/?p=320#comments</comments>
		<pubDate>Mon, 23 Aug 2010 20:31:28 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[FoxPro]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=320</guid>
		<description><![CDATA[If you're interested in upgrading to Silverlight, Southwest Fox Conference is the place to go.]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been promoting Silverlight as the most viable upgrade path for Visual FoxPro developers, and out our <a title="MadFox" href="http://madfox.info" target="_blank">MadFox</a> meetings we even have said &#8220;it should be possible to convert SCX and FRX files to XAML?&#8221; I mean, they&#8217;re both just data, right?  Sure one is in DBF format and the other is in XAML, but going back and forth should be straightforward.</p>
<p>Well I just listened to <a href="http://media.libsyn.com/media/akselsoft/FoxShow63.mp3">FoxShow Episode 63</a>, and there is already a commercial tool underway that is going to do exactly that.</p>
<p>(If you want, go ahead and listen to that podcast&#8230;I&#8217;ll wait.  You back? Pretty cool, huh?)</p>
<p><a href="http://swfox.net/UweHabermann.aspx">Uwe Habermann</a>, who to my mind sounds like the bad guy in every James Bond movie, is going to be showing off this tool and doing a lot of other Silverlight stuff at the<a href="http://swfox.net" target="_blank"> Southwest Fox Conference</a>.  Here&#8217;s the point I really want to make: Even if your workplace has decided that FoxPro is passé and all new development must be done in .NET, you owe it to yourself (or they owe it to you) to get to Southwest Fox. There is no other conference where you&#8217;re going to learn so much about .NET from a FoxPro developer&#8217;s unique point-of-view.</p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=320</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://media.libsyn.com/media/akselsoft/FoxShow63.mp3" length="22273636" type="audio/mpeg" />
		</item>
		<item>
		<title>Start seeing the Silverlight (a book review)</title>
		<link>http://saltydogllc.com/?p=309</link>
		<comments>http://saltydogllc.com/?p=309#comments</comments>
		<pubDate>Mon, 02 Aug 2010 22:51:49 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=309</guid>
		<description><![CDATA[If you're starting to code in Silverlight, a great book like this one will get you on your way.]]></description>
			<content:encoded><![CDATA[<p>Beginning Silverlight 4 in C#, by Robert Lair, promises that &#8220;By the time you finish this book, you&#8217;ll have a firm foundation in Silverlight, and you&#8217;ll be able to create your own Silverlight-enabled applications.&#8221; Well I have finished this book and I feel very confident that I could build a Silverlight app.<br />
<a href="http://saltydogllc.com/wp-content/uploads/silverlight4.jpg"><img src="http://saltydogllc.com/wp-content/uploads/silverlight4.jpg" alt="Cover" title="silverlight4" width="195" height="260" class="alignnone size-full wp-image-314" /></a><br />
Let me start by saying that while I have a lot of development experience, and I&#8217;m competent at C#, I came into this book with zero Silverlight experience. I&#8217;m attracted to Silverlight for the reasons laid out in this book:<br />
* It offers cross-platform/cross-browser support<br />
* It provides a cross-platform version of the .NET Framework<br />
* XAML is a text-based markup language (not binary).<br />
* Silverlight uses familiar technologies<br />
* Silverlight offers an Out of Browser and Full Trust option<br />
* Silverlight is the main development platform for Windows<br />
* It&#8217;s easy to deploy the Silverlight runtime to clients</p>
<p>With this version of Silverlight, I felt Microsoft had finally built a development environment for business applications that could run in a browser with minimal frustration.</p>
<p>This book starts slowly and assumes you know nothing about Silverlight, which as I said was appropriate for me. It might be helpful to know about coding, but even if this were your first foray into application development, a reasonably smart person could follow the examples. One of the things that&#8217;s really helpful is that there are lots and lots of screenshots that show the effect of almost every code change you make.</p>
<p>While it starts at the bottom, the author builds nicely, using previous examples when introducing new topics until he arrives at a very nice pacing that he continues throughout the book. He maintains a professional tone throughout that&#8217;s very easy to read and follow, and foregoes opportunities to make cheap puns and jokes. (Read it and you&#8217;ll see where I mean).</p>
<p>This book does a solid job of teaching the fundamentals of Silverlight. Looking at the table of contents in &#8220;Pro Silverlight in C#&#8221;, also by Apress, I see there&#8217;s still a lot more to learn, but you could start building business applications in Silverlight if you read this book, as promised. </p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=309</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MadFox July 2010 Recap: It&#8217;s Like Jazz</title>
		<link>http://saltydogllc.com/?p=303</link>
		<comments>http://saltydogllc.com/?p=303#comments</comments>
		<pubDate>Wed, 21 Jul 2010 19:42:01 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[FoxPro]]></category>
		<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=303</guid>
		<description><![CDATA[July&#8217;s MadFox meeting was like good jazz: we played around with a main theme throughout the night while continually improvising side solos on whatever caught our fancy at the time. We slowly built up to the main theme by reintroducing a theme from a previous meeting, Freshbooks. We discussed some of the features of Freshbooks [...]]]></description>
			<content:encoded><![CDATA[<p>July&#8217;s <a href="http://www.madfox.info">MadFox</a> meeting was like good jazz: we played around with a main theme throughout the night while continually improvising side solos on whatever caught our fancy at the time. </p>
<p>We slowly built up to the main theme by reintroducing a theme from a previous meeting, <a href="http://www.freshbooks.com">Freshbooks</a>.  We discussed some of the features of Freshbooks that I use the most in my business, and some of the features that it currently lacks [sometimes it's the notes you don't play].  We started looking for instruments that would get at those empty places, first discussing the <a href="http://developers.freshbooks.com">Freshbooks API</a>, and the SOAPish interface to get at the data.  Because of the way the request needs to be made and authenticated in a single step and the bountiful documentation that used it, we looked at <a href="http://curl.haxx.se/">Curl</a>, rather than <a href="http://www.west-wind.com">wwIPStuff</a>.  We started a proof of concept by successfully using the command-line CURL interface to retrieve my client list from Freshbooks, and then looked at ways to get that functionality from within Visual FoxPro.  Turns out there&#8217;s a LibCurl.dll that is callable from a <a href="http://www.ctl32.com.ar/libcurl.asp">class library</a> written by Carlos Alloatti that does the trick for us, with the help of the <a href="http://vfp2c.dyndns.org/">VFP2C32</a> library!</p>
<p>One of the side themes we played with along the way were the pros and cons of using <a href="http://en.wikipedia.org/wiki/Globally_unique_identifier">GUIDs</a> as primary keys for tables (great for offline data that&#8217;s brought back online, but a little slower and you don&#8217;t get subsequent records in order the way you do with autoincrementing integers), and the <a href="http://en.wikipedia.org/wiki/Globally_unique_identifier#algorithm">algorithm</a> used to create them (formerly a hash of your MAC and the datetime, now a pseudo-random thingy). There are some <a href="http://stackoverflow.com/questions/1705008/simple-proof-that-guid-is-not-unique">amusing</a> posts about the possibilities of duplicate GUIDs existing.  The VFP2C32 library mentioned above has a CreateGUID() function that is easily called from VFP.</p>
<p>Another theme was XML and the different ways VFP can interact with an XML string, including brute force such as STRTRAN(), FOPEN()/FWRITE(), and of course the old standby of using the MSXML DOM object.</p>
<p>We riffed on <a href="http://msdn.microsoft.com/en-us/library/ms994230.aspx">Great Plains Accounting</a> for a while and its API, and compared with with Sage Pro <a href="http://findaccountingsoftware.com/directory/sage/pro-erp/">f/ka/a AccPac v/k/a SBT</a>.  Then we discussed getting started with programming using <a href="http://msdn.microsoft.com/en-us/library/bb200104.aspx">XNA Studio</a> or the <a href="http://www.microsoft.com/express/">Visual Studio Express</a> versions.  And for an encore I soloed on my current flirtation with <a href="http://www.silverlight.net">Silverlight</a>.</p>
<p>We wrapped it up by having gyros on the rooftop of the <a href="http://parthenongyros.com/">Parthenon</a>.  It was a beautiful night, and another great MadFox meeting.</p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=303</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working Around Microsoft&#8217;s ReportViewer #Error Bug</title>
		<link>http://saltydogllc.com/?p=299</link>
		<comments>http://saltydogllc.com/?p=299#comments</comments>
		<pubDate>Wed, 14 Jul 2010 04:11:00 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=299</guid>
		<description><![CDATA[How I worked around a Microsoft reporting bug.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve begun developing reports in .NET, and just starting up the learning curve.  Basic reports are pretty easy, but if you need anything complex things get convoluted in a hurry.  I don&#8217;t know if my Visual FoxPro experience is getting in the way of wrapping my head around the .NET way, but it sure seemed things were a lot easier in Visual FoxPro! </p>
<p>Recently I had to do something quite simple: put a custom header on a report to show the name of the event.  I added a textbox, and found what seemed like the perfect report variable to drop in there to use: Globals!ReportName.  The docs said that was related to ReportViewer.LocalReport.<i>Display</i>Name, but ok I can deal with a little inconsistency.  I set the .DisplayName in my code to the custom info, ran the report, and voila!  Huh?  <i>#Error</i> appeared in the field.</p>
<p>I doublechecked the expression, which automagically changed itself to [&#038;ReportName] or somesuch, so I changed it back, ran it again, and &#8230; #Error.</p>
<p>WTF?  Was it not getting the ReportName properly? I changed it to another expression, this time Globals!TotalPages (and again it changed itself to &#038;TotalPages), but to no avail.</p>
<p>I googled and <a href="http://social.msdn.microsoft.com/Forums/en/vsreportcontrols/thread/be1a6149-a120-4e66-96f8-63f5c4d43c87?prof=required">found others </a>were having a similar problem.  Excellent, then there&#8217;d be a solution!  Alas, Brad at Microsoft couldn&#8217;t reproduce the problem at all.  I spent a lot more time researching possible solutions before coming to the conclusion that the Globals! idea just wasn&#8217;t going to work.  I tried to use Parameters! too but those didn&#8217;t work either.</p>
<p>Finally I hit upon an idea for a workaround.  I&#8217;d have to pass the custom information I wanted into the report in the same manner that I passed the data that appeared on the report: using a DataTable. I didn&#8217;t want to add a column to the existing DataTable because that would offend my refined sense of <a href="http://en.wikipedia.org/wiki/Database_normalization">normalization</a>.  What I needed was a <strong>second</strong> DataTable in the DataSet.  </p>
<p>Could this be done?  Turns out it can.  Here&#8217;s what you do:<br />
1. Create a new data schema. (Right-click on the project, select Add New Item, pick DataSet).  Give it a name like ReportInfo.  Add all the columns you might want on a report, such as Title, Author, whatever.<br />
2. Right+Click on your RDLC and say &#8220;Open With&#8230;&#8221; and pick XML Text Editor.<br />
3. Under the DataSources section, add a new DataSource:<br />
<code><DataSource Name="ReportInfo"><br />
      <ConnectionProperties><br />
        <DataProvider>System.Data.DataSet</DataProvider><br />
        <ConnectString>/* Local Connection */</ConnectString><br />
      </ConnectionProperties><br />
      <rd:DataSourceID>4fa27bef-71ac-4304-8e50-89e232563f2a</rd:DataSourceID><br />
    </DataSource><br />
  </DataSources></code><br />
4. Under the DataSets section, add a new DataSet<br />
<code><DataSet Name="ReportInfo_ReportInfo"><br />
      <Fields><br />
        <Field Name="Title"><br />
          <DataField>Title</DataField><br />
          <rd:TypeName>System.String</rd:TypeName><br />
        </Field><br />
      </Fields><br />
      <Query><br />
        <DataSourceName>ReportInfo</DataSourceName><br />
        <CommandText>/* Local Query */</CommandText><br />
      </Query><br />
      <rd:DataSetInfo><br />
        <rd:DataSetName>ReportInfo_ReportInfo</rd:DataSetName><br />
        <rd:SchemaPath><em>[Path to your File]</em>\ReportInfo.xsd</rd:SchemaPath><br />
        <rd:TableName>ReportInfo</rd:TableName><br />
      </rd:DataSetInfo><br />
    </DataSet></code><br />
5. Close your RDLC and re-open it in the designer.  Drop a TextBox in the header, and select your new Title field.  It&#8217;ll say =First(), but that&#8217;s ok.<br />
6. Now in the code where you called your report, you need to create your DataTable and add it to your report&#8217;s DataSource, like this:<br />
<code>DataTable dtReportInfo = new DataTable("ReportInfo");<br />
            dtReportInfo.Columns.Add(new DataColumn("Title", System.Type.GetType("System.String")));<br />
            dtReportInfo.Rows.Add(this.ReportViewer1.LocalReport.DisplayName + " " + cTitle.ToString());<br />
            ds.Tables.Add(dtReportInfo);<br />
            this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ReportInfo_ReportInfo", this.ds.Tables[1]));</code></p>
<p>(StringBuilder cTitle contains the title information that I built up).</p>
<p>There you go! Now you can get the info you need on your report with relying on the Globals! variables and getting an #Error.  We&#8217;re still not sure why we were getting that, but at least we have a workaround.  I hope you find this post and it doesn&#8217;t cost you hours and hours of unbillable time, like it did me.</p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=299</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MadFox Recap, June 2010</title>
		<link>http://saltydogllc.com/?p=297</link>
		<comments>http://saltydogllc.com/?p=297#comments</comments>
		<pubDate>Sat, 19 Jun 2010 03:54:31 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[FoxPro]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=297</guid>
		<description><![CDATA[MadFox June 2010 Recap, in which we talk FoxMock and mock FoxTalk (not really)!]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a recap of the June 2010 Madison Visual FoxPro User Group (<a href="http://madfox.info">MadFox</a>) those who couldn&#8217;t make it to this month&#8217;s meeting:</p>
<p>1. We started by talking about Christof&#8217;s new project, FoxMock.  Before we could really talk about FoxMock however, we had to review unit testing (via FoxUnit) and <a href="http://en.wikipedia.org/wiki/Mock_object">mock objects</a> in general. Once we got that all figured out, we looked at FoxMock, and how we could create mocks in our FoxUnit tests to get them to pass even if we didn&#8217;t have everything finished in the object. We spent quite a bit of time discussing the scenarios in which mocks are useful, and what the advantages and disadvantages of other approaches are. We felt it would be especially useful in a team environment where another developer is responsible for parts of the class you want to test.</p>
<p>2. We next discussed a design pattern that would allow an application&#8217;s business logic to be user-definable and stored in a table that could then be executed ad-hoc.  We looked at variations of EVAL() and the _VFP.() methods before realizing that simply writing the code out to a temporary .prg file and executing that .prg would be a simple way to accomplish what we wanted.  I&#8217;d like to see C# do that!</p>
<p>3. After the meeting we had a lovely Mexican dinner at an <a href="http://www.erinssnug.com/reedsburg/">Irish place</a>.  Mmmm&#8230;.Guiness and burritos.</p>
<p>Next month&#8217;s meeting on July 20th back at Salty Dog World HQ.  See ya then!</p>
<p>Eric</p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=297</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mistakes Were Made</title>
		<link>http://saltydogllc.com/?p=291</link>
		<comments>http://saltydogllc.com/?p=291#comments</comments>
		<pubDate>Wed, 26 May 2010 20:50:16 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=291</guid>
		<description><![CDATA[Once again, the shortcut proves to be the much longer route.]]></description>
			<content:encoded><![CDATA[<p>Like all good <a href="http://tesugen.com/archives/04/12/art-craft-design">craftsman</a>, I take great pride in doing high quality work in a responsible manner.  Professional software developers must avoid temptations to do the &#8220;quick and dirty&#8221; shortcut because their experience has proven that that route is often longer and rife with danger. It&#8217;s this same experience that also helps guide us where we can &#8220;cut corners&#8221; a little. </p>
<p>On a recent project, however, I committed just about every mistake in the book. (And yes, there is a book.  There are <a href="http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&#038;field-keywords=software+engineering&#038;x=0&#038;y=0">LOTS of books</a>).  To wit:</p>
<p><strong>0. I thought this was a &#8220;small&#8221; project that didn&#8217;t need to be treated the same as a &#8220;real&#8221; project.</strong><br />
I&#8217;m listing this one first because it&#8217;s really the root of all of the other mistakes.  As first proposed, this site was going to be a couple of simple pages &#8211; no menus, no reports. Of course once the client saw what was possible, they wanted more and the scope creep started.<br />
<strong>1. I coded it using a language that I&#8217;m not completely comfortable with.</strong><br />
Since it was going to be a small project, it&#8217;d be the perfect opportunity to learn a new language, right? Independent consultants don&#8217;t often get &#8220;paid, on-the-job training&#8221; so we often look for these chances to acquire new skills. Yes, this was the right project to brush up on my latent PHP skills.<br />
<strong>2. To compound the problem, I used a framework that was completely new to me.</strong><br />
I was smart enough to know I wanted a framework, so I took some time to research what a good framework for PHP was. A friend had recommended <a href="http://codeigniter.com/">CodeIgniter</a>, but lately had taken a shine to <a href="http://cakephp.org/">CakePHP</a>. I liked what I saw: it was nicely maintained and documented and used the up and coming MVC model, which I wanted to get more familiar with as well.  The problem is if you don&#8217;t know the underlying language solidly, using any framework steepens the learning curve.<br />
<strong>3. I developed straight to the live website, instead of a local host.</strong><br />
Wow, this was a big one. By creating an &#8220;FTP&#8221; project, I needed to be continuously connected to the &#8216;net in order to get at my project. Far worse, if I tried something new that messed up the site, it was immediately visible to my client who may have been checking on the progress.  Bad bad bad.<br />
<strong>4. I put the site on a subpage on my website.</strong><br />
Since this was a temporary site (it&#8217;ll be up for only a few months while it serves its purpose), I decided to save the client a little money by just making it a subpage of my own site rather than create a separate domain for them.  This just looks unprofessional, and also drove up my site&#8217;s bandwidth usage.  Plus it make loading and saving files frustratingly s-l-o-w!<br />
<strong>5. I used Visual Studio, when it was not the right tool for the job.</strong><br />
I am enamored with Visual Studio 2010, so I though heck, why not try to use it for this PHP project?  Here&#8217;s why: It doesn&#8217;t have native PHP code support, so you don&#8217;t Intellisense or local debugging.  The lack of code-coloring cost me 4 hours one morning while I tried to track down a &#8216; that was entered as a `.  Can you see the difference? VS2010 can&#8217;t, so neither could I.  I&#8217;m aware of VS.PHP, and tried using <a href="http://eclipse.org">Eclipse</a>, but switched over to <a href="http://www.nusphere.com/">NuSphere&#8217;s PHPEd</a> &#8211; and wow that made the coding a real pleasure.<br />
<strong>6. I didn&#8217;t test the site using every version of IE back to version 6.</strong><br />
Once I got the site going, it was evident that a menuing system would be needed, so I created a nice CSS-only menu.  I notified the client to test it out, and they came back with &#8220;It doesn&#8217;t work in our browser.&#8221;  What browser? IE, of course.  IE has lousy support for CSS standards, by default. [I can feel my blood starting to rise as a type in all these mistakes]  Thanks to the <a href="http://www.maddotnet.org">MadDotNet User Group</a>, we were able to figure out how to force IE out of &#8220;Quirks&#8221; mode and into &#8220;Standards&#8221; mode, but it took a lot of my time.<br />
<strong>7. I didn&#8217;t put the project under source control.</strong><br />
There&#8217;s really no excuse for this. I have accounts on <a href="http://www.ProjectLocker.com">ProjectLocker</a> as well as <a href="http://beanstalkapp.com/">Beanstalk</a>, but didn&#8217;t use either of them for this project. Thankfully it hasn&#8217;t bitten me yet, but I should know better. </p>
<p>To be fair, I did quite a few things right with this project as well, and it did come in on time.  I did learn a TON of new stuff, which is always rewarding, including the lessons listed here.  I&#8217;d love to hear your feedback on this.</p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=291</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My So-Called Laptop</title>
		<link>http://saltydogllc.com/?p=286</link>
		<comments>http://saltydogllc.com/?p=286#comments</comments>
		<pubDate>Thu, 13 May 2010 03:10:15 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=286</guid>
		<description><![CDATA[Engagdet today has a post called &#8220;My So-Called Laptop&#8221; in which their writers talk about their very first laptops. This made me think two things: 1. Most of their writers are very young, using Pentium class or higher bought within the last 10 years, and 2. I loved my first so-called laptop. I truly say [...]]]></description>
			<content:encoded><![CDATA[<p>Engagdet today has a post called &#8220;<a href="http://www.engadget.com/2010/05/12/my-so-called-laptop/">My So-Called Laptop</a>&#8221; in which their writers talk about their very first laptops.  This made me think two things: 1. Most of their writers are very young, using Pentium class or higher bought within the last 10 years, and 2. I loved my first so-called laptop.</p>
<p>I truly say &#8220;so-called&#8221; because it was definitely not a laptop.  It needed a nice, stable platform to rest on because it was Heavy.  They were technically dubbed &#8220;portables&#8221; but everyone called them a &#8220;luggable.&#8221;  They also did not run on batteries, as no battery made at the time could have powered that thing for more than a few minutes.</p>
<p>The one I had was a knockoff (a locally assembled version made by EDP Computers in Eau Claire, WI) of a <strong>Compaq Portable III</strong>.  <img src="http://www.old-computers.com/museum/photos/Compaq_PortableIII_System_s2.jpg" alt="A system similar to mine" />  It had a bright red gas plasma screen and detachable keyboard and always drew raves.  The 20MB hard drive was SWEET, though it made a ton of noise.  I used to love watching that green light that let me know it was doing its thing.</p>
<p>This thing ran DOS 2.0, not Windows.  It was a 286 with 640K Ram. The adventurous among us may have installed a bit more RAM and then tried to load QEMM in order to get &#8230;what was the name of that multi-taking software?  Ah yes, DesqView.  I never saw the point of running more than one app at a time.</p>
<p> I got a *ton* of work done on that baby, as I&#8217;d lug it from client to client and sit there on-site to make the changes rather than take a 5 1/4&#8243; diskette with me back and forth (we didn&#8217;t use modems much back in 1988 as it was rarely worth the effort to get the 9600 connection going).  </p>
<p>One day the gas plasma screen died, and the repair was going to be more that $1,000.  Rather than repair it, I sprung for one of those newfangled 386/33 machines that had just come out.  It was a desktop, so I lost my portability, but man did that thing scream.  I probably shouldn&#8217;t have gotten the 386SX, but that&#8217;s another story&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=286</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What should our schools be teaching?</title>
		<link>http://saltydogllc.com/?p=284</link>
		<comments>http://saltydogllc.com/?p=284#comments</comments>
		<pubDate>Wed, 07 Apr 2010 15:47:53 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Community Relations]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=284</guid>
		<description><![CDATA[Should schools allow unfettered access to the Internet?]]></description>
			<content:encoded><![CDATA[<p>Last night I went to another meeting of the Madison Metro. School District&#8217;s Technology Advisory Board.  These meetings are looking for input from technology professionals into the way our schools utilize technology in all sorts of different areas.  It&#8217;s great that the board is seeking this input although nothing we do is binding in any sort of way. My impression so far is that there are more than a few tech-savvy professionals in the school system, most of the people that aren&#8217;t are certainly willing to learn given their time constraints, and some need to be pulled along kicking and screaming.  Just like any other organization, really.</p>
<p>I certainly don&#8217;t have a degree in pedagogy, so I actually lean towards the cautious when it comes to injecting technology into any situation that I don&#8217;t fully comprehend. There&#8217;s nothing inherent in a computer that&#8217;s going to make kids smarter if everyone has one. But is it the school&#8217;s job to teach computers how to use computers? If so, which kind of computers? Macs? PCs? Linux?   Which apps?  Microsoft Office? Google Apps?  Once you start going down this road, you see the school is in danger of becoming more of a trade school than&#8230;  than what?  </p>
<p>What is the purpose of our schools?  I would argue in the broadest sense that they should teach our kids how to think and solve problems. Where does gym class fit into that? Driver&#8217;s ed?  Should they teach hard facts, when everyone has Google at their fingertips?  When was the Magna Carta written? (types for 2 seconds&#8230; 1297!)  WHY was the Magna Carta written?  Who was for it? Who was against it?  What did it do for mankind? </p>
<p>And speaking of information at your fingertips, what would the ramifications be if every student were allowed an iPad or Android or whatever newfangled device is available when you read this?  One side would argue that there would be anarchy as they sext each other all day long!  Others say it would create a utopia where peers are in constant collaborative contact.  Could a teacher even conduct a lesson when everyone&#8217;s facedown in their PDA?  </p>
<p>Last night at the MadDotNet user group I had a period of about 15 minutes between when my iPhone battery died and I figured out how to connect to Herzing&#8217;s wifi where I had to sit still and listen to the speaker. I got more out of that period than the entire rest of the day, and I think that says a lot.  What say you?</p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=284</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Grapes of Madison</title>
		<link>http://saltydogllc.com/?p=278</link>
		<comments>http://saltydogllc.com/?p=278#comments</comments>
		<pubDate>Fri, 26 Mar 2010 03:05:42 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=278</guid>
		<description><![CDATA[From tough times comes the best art.]]></description>
			<content:encoded><![CDATA[<p>Times are tough. Unemployment is high and people are getting laid off.   1929, Oklahoma?  No!  2009, Madison! </p>
<p>BUT out of tough times comes the best art, and my neighbor <a href="http://www.thedailypage.com/daily/article.php?article=28642&#038;sid=16d269b82c03bb7b262441ec6a31c9a2">Ben Reiser</a> has created a film that makes the best out of his personal experience with unemployment.  It&#8217;s called <a href="http://filmguide.wifilmfest.org/tixSYS/2010/films/3065">The Grapes of Madison</a>.  </p>
<p>Ben held a private screening for us a few weeks ago and I really enjoyed it, and now it&#8217;s coming to the <a href="http://www.wifilmfest.org/">Wisconsin Film Festival</a>.  Tickets are actually sold out already, so for those of you who weren&#8217;t fortunate enough to get tickets let me tell you: this 40 minute film is thoroughly enjoyable.  I&#8217;m hoping even people who don&#8217;t personally know stars Steve Tyska and my good friend Alberto Cordero will laugh at their ad libbed (most of the dialogue was unscripted) bon mots as much as I did.  The Wisconsin Film Festival reviewers must: Steve Tyska won the inaugural Golden Badger for his performance!</p>
<p>So big congratulations to Ben and Katie, Alberto, Steve and Leane, Jon, Christina, Kelly and Matthew. Your creative process created a diamond from he coal that came out of that initial brainstorm / boozefest (though I still liked my idea better&#8230;call me Spielberg!).  Here&#8217;s a preview:</p>
<p><object width="853" height="505"><param name="movie" value="http://www.youtube.com/v/Mb5M2VWPpqo&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Mb5M2VWPpqo&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="853" height="505"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=278</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Conundrum of the Clever Domain Name</title>
		<link>http://saltydogllc.com/?p=249</link>
		<comments>http://saltydogllc.com/?p=249#comments</comments>
		<pubDate>Sun, 14 Mar 2010 15:43:26 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://saltydogllc.com/?p=249</guid>
		<description><![CDATA[Is my secondary domain just a little to clever to get the first chair?]]></description>
			<content:encoded><![CDATA[<p>I just got a reminder from my domain registrar that a name  I registered is coming up for renewal.  That name?  NaClK9.com<br />
Does that look funny to you? NaClK9.com? Let me break it down:  NaCl (Sodium Chloride, ie Salt) and K9 (Canine, Dog).  Salt Dog.  Salty Dog.  Get it?  Kinda cute, but maybe too clever by half.<br />
Thus my conundrum&#8230; I like the domain name as it&#8217;s short and meaningful.  It&#8217;s easier to say than SaltyDogLLC.com (why don&#8217;t they make LLC a TLD???).  I think it appeals to geekier set, but I don&#8217;t want to seem elitist (an unforgivable flaw in this benighted age).  Should I start using it on a regular basis, or should I stick with the one I&#8217;ve been using?</p>
]]></content:encoded>
			<wfw:commentRss>http://saltydogllc.com/?feed=rss2&amp;p=249</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
