Friday, November 18, 2011

A Tablet tour. with emphasis on usefulness and application development using .NET

A couple of years ago Apple released the IPAD. I already had a IPod Touch at that time and bought the IPAD with the idea of developing applications for it. Since then I have picked up a IPhone and two other tablet devices with the idea of developing applications for them. I am primarily a .NET developer so these notes are from a consumer and a .NET developers perspective. Currently I own:

  1. An IPAD 3G.
  2. A W500 WIndows 7 tablet that I run windows 8 on.
  3. A Kindle Fire (I got yesterday).

Although I don't have as much time in with the Fire as I have with the other tablets, here are a few initial notes.

First the IPAD. For a general consumer device this is the one I use the most although the fire may change that. I like the IPAD for the bigger display. I replaced my old Kindle DX's with this because it was backlit. This allowed me to read in bed without another light source. The Fire will now allow that too. I also like the IPAD 3G capabilities. When I travel, it is nice to be able to hook into the internet from virtually anywhere. It was also the most expensive tablet at ~$850. I picked up one of the original AT&T unlimited data accounts for it, so my internet usage is pretty much pegged at $30 a month which makes it very useful. I had considered trying to develop applications for this, but in general I find I can't stand the Apple development environment or Objective C. Jobs was a brilliant man, but he and I differ on what we think makes a good development platform. Give me C# and MonoDevelop or Visual Studio any day.

The W500 I have not owned as long. I bought it specifically to work on WIndows 8 applications. So far I like the expandability of it. Much more capable then my IPAD. I have it hooked into my pico projector through the HDMI port and use it currently for watching movies from my digital libraries on ITunes and Amazon. I also us it for watch netflicks streaming video. I have just bought a Kinect, which I plan to drive using this machine. I will develop software on my Quad Core laptop and then test it on this guy. I primarily plan on using this as a device to test new WIndows 7 and 8 applications and communicate with the my .NET Gadgeteer robots and devices. On the whole I like this tablet, but it is way to heavy and not portable enough to beat out my IPAD for general consumer use. In addition Microsoft really needs to get it act together to compete against Amazon Web Services and the Fire. Azure is not enough.

Finally, we have the Kindle Fire. I picked this up because I have always liked the kindle and it is hard to beat the price. At $200 it is the cheapest tablet I own. I do wish the screen were bigger and will upgrade when the larger 10” screen comes out. I also believe that until Microsoft gets it together these are going to be the primary competitor to the IPAD because of the content available. I want to start developing for it using either C# (through MonoDroid) or Java. I think this particular device with it's size connectivity make it a good candidate for a device you can easily carry around. I can see using it as a mobile device for controlling home automation and other things through some gadgeeter devices. In addition by utilizing amazon's cloud services and the amazon appstore I think there are going to be a number of enterprise level applications made available for this tablet.

All in all from a consumer perspective I still like the IPAD. From a developer perspective I like the W500 and think the Fire will be a close second. Once I get more familiar with the Fire it may be the new winner across the board.

Saturday, February 13, 2010

Pretty Quiet

I have been pretty quiet lately.  I have been doing some consulting for Multnomah County in Portland Oregon for the last 8 months or so.  I will finish up at the end of March (March 19th).  So I am finally taking some time to get caught up on some blogging and open source projects I had been working on.

The project with the county has been working on the WCF service layer and silver light model layer for a line of business application.  We have ended doing most of the actual development using a set of custom T4’s and code generating almost all of the application for these areas.  Pretty cool technology.

By combing Prisim, WCF, Code Generation and Linq to SQL we were able to significantly decrease the amount of time it took to create the application.  I will be presenting on these techniques and some lessons learned at the Boise Code Camp at the end of March.

It has made for an interesting time over the last 8 months :-).

Sunday, August 30, 2009

News from the Mobile Front

Someone recently asked me where I lived.  This is a interesting question, since for the last year I have not really had a permanent residence.  I pretty much live out 5 suitcases and a plastic Tupperware tub.  After this gig is done in Portland I plan on dropping that to 4 suitcases and a laptop bag.

Since I live alone and travel alone I can travel pretty light.  Currently I have a extended stay hotel in Portland that I live in and rent by the month.  My current contract ends in May of 2010. At the time I will decide if I am staying in Portland or moving on.

My work is now pretty much contract work.  Go in take a gig for 3 months to a year and move on. I spent 10 years in Boise putting down roots, and I have no desire to do that again, so I am planning on staying mobile.   I also like the nature of contract work.  I can be very technical, solve the problem and move on.  No need for the politics of a company or the drama.  I enjoy the technical challenges of developing software, not so much the politics. 

As for my collections, when I lived in Boise I had a extensive CD, DVD and Book collection.  Around 5000 hard bound books, over 1000 music cd’s and over 1000 movies.  Now that I have pretty much gone mobile and all these collections are digital. 

I currently have over 40,000 digital books.  This includes books in EPUB and Kindle (mobi) format.  Both public domain works and books I have purchased.  As I mentioned before I really like http://oreilly.com/ for technical books since the have them in a variety of formats, but I also get a lot of technical books from APRESS as PDF’s and Amazon.com for my Kindle.  I try not to buy any physical copies, since those are hard to carry around :-).  Most of my older science fictions I get from Baen books.  Other books not available in EPUB format I but from Amazon.com and have them on my Kindle DX.  My current electronic book collection is a little over 15 gig in size.

I have over 12,000 tracks of mp3’s I buy from Amazon.com.  Most of these are classic rock, but I admit I  have some pretty weird albums in my collection :-).  I have my album collection stored on my two laptops, my 512 gig passport and finally the main copy is on my IPOD classic (120 gig). My current music, audio book and podcast collection is about 100 gig in size.

Movies I get through either net flicks or purchase them from amazons video on demand service.  My digital movie collection on Amazon.com is now about the same size as my old collection used to be.  Most of these I leave on the Amazon servers.  Only a few have I downloaded.

My software is stored as ISO images.  All my software from Microsoft I get from my TechNet subscription and store it as ISO images.  I then mount this using Magic Disc (a very cool utility that gives me a ton of virtual CD’s). If the software comes on a CD then where possible I take a CD and copy it to an ISO image and then mount the ISO image.  I store the CD’s in my CD case.  These are my biggest headache currently.  I am trying to get all my software digitally so I can get rid of the CD’s.  Sadly the biggest issue is the software CD’s for portability.  Sigh…

Email and document storage is all courtesy of Google apps.  I have several gigs of email on Gmail and am quite happy with it.  Everything else is stored on my laptops and my passport.  This combination makes it very easy to have all my primary files available digitally.  Digital pictures I keep on a a 16gig SD card and then stored on the passport and the IPOD.

So there you have it.  Over a year and most of my life is nothing but bits stored on local drives or in the cloud.  Kind of scary when I put it that way :-).

Sunday, July 12, 2009

Sony Ebook Reader or a book shelf of half a million plus…

I recently picked up a new gig in Portland at just about the same time as my Kindle died.  With the death of my Kindle I was looking for a new ebook reader.  The kindle2 was out but I really liked the specs on the KindleDX.  Problem was the DX was not going to be out for a while.  To aggravate the situation I now have a 45 minute commute into town on the train. 

Now don’t get me wrong, the train is a great way to go.  No traffic and I get some exercise walking back and forth to the train station (2 miles a day).   The problem is a 45 minute ride leaves me bored to tears.  My lifestyle is such that I no longer want to collect a ton of hardcover or paper back books.  I have over 5000 of these in storage in Idaho and don’t need anymore. The kindle worked great for me because all my books were digital and I could carry them around in my hand.  

I really wanted the DX, but those are all on back order and anyone who knows me knows I hate waiting for toys.  I decided to get a Sony PR700 series ebook reader for the short term.  I will still probably get a DX so I can read the Wall Street Journal on the way to work and because it is easier to read my PDF’s on.

I have started to collect a lot of ebooks and wanted to switch to a standard format that I keep my main library in.  I have standardized on the epub format because it is a open standard that has no DRM.  This means I can easily play with books in that format using .NET since an epub is simply a zip file containg a standard set of files a content in html.  These files include:

  1. A xml file containing the bibliographic data for the publication (title, author, publisher, etc…) in Dublin Core format
  2. A xml file containing the table of contents
  3. The contents of the publication in a series of html files
    So it is easy to build up a collection of EPUB files that are self contained and highly compressed.  The entire Gutenberg collection of 28000+ epub books takes less then 11 gig of space.  In addition, with Sony you have access to the entire Google library of over half a million public domain books (all in epub format).    I should stress here that it does not require a Sony reader to access this library. 

OReilly is publishing their books in EPub, PDF and mobi (Kindle) format.  So if you want to read Programming WCF Services on your Kindle, Sony or even IPhone it is easy enough to do. 

Finally the relevance to the title above.  You can download any of Google’s Library of EPUB books easily without owning a Sony reader (say you want to read them with Stanza on your IPHONE).  To do this:

  1. Download the Sony Reader from http://ebookstore.sony.com/google-ebooks/
  2. Register with the site
  3. Click on the Unearth a Classic link on the far right
  4. Search Google books for books of interest
  5. Download those you want

You may also get free science fictions in EPUB/Stanza format from Baen books, and there are other source all over the net.  Almost all of Project Gutenberg is now available in EPUB format.  I will be posting a mass downloading utility for Gutenburg in a later post that allows you to download all 38,000 plus epub books from project Gutenburg. 

So there you go.  EBooks have more then arrived, they have over run the competition :-).  Believe me my 40K+ ebook collection is much more portable then my 5000 book collection was (and is easier to search).

The only drawback I have discovered so far is no EBook reader on the market today can handle the collection I have acquired.  So like any good developer I am writing my own.  More to come on that later.

Darrel

Saturday, May 16, 2009

LINDUG: The LinkedIn .NET Users group

If you do not make your regular user group meetings, or don’t have a user group in your area, you may want to join the Linked .NET Users Group on www.linkedin.com.  It is a virtual .NET Users group of 24,000+ members.  They sponsor webinars and have some decent discussions. 

Some upcoming webinars include

For that matter you can always join the Elegant Code group on linked in.  If nothing else it keeps David out of trouble :-).

Friday, April 17, 2009

C Style operators in SQL Server 2008

I started off my programming career developing C applications.  This was primarily because I did my work on Mini computers running UNIX.  Almost unheard of at the time :-).  For the first 14 years from 1982 to 1996 I developed my applications in C.  During that same time frame SQL came along for relational databases.  Now I had SQL, C and Embedded SQL for C.  Throw in curses for developing screen applications and what more could a developer want? :-).

In late 1996 I began developing applications in Visual Basic 4, and found events.   Very cool.  But I still missed some of the features I had grown to love in C.

Recently I noticed the section on compound operators in SQL Server 2008.  This is interesting since these are the first new operators added to SQL Server in at least the last 8 years.  SQL server 2005 and SQL server 2000 both had the same list of operators.  Now Microsoft has added some new ones.  In addition adding the BackSlash operator is just a nice little bonus (now if I could just get my ternary operator (?:)).

I guess a good thing about starting my career developing C has been that all the new languages (including SQL server) are going back and picking up some of the concepts from C.  K&R should be proud :-).

New expression operations in SQL Server 2008 Tranasact-SQL

  • += (Add EQUALS) (Transact-SQL)
  • -= (Subtract EQUALS) (Transact-SQL)
  • *= (Multiply EQUALS) (Transact-SQL)
  • /= (Divide EQUALS) (Transact-SQL)
  • \ (Backslash) (Transact-SQL)
  • %= (Modulo EQUALS) (Transact-SQL)
  • &= (Bitwise AND EQUALS) (Transact-SQL)
  • |= (Bitwise OR EQUALS) (Transact-SQL)
  • ^= (Bitwise Exclusive OR EQUALS) (Transact-SQL)
  • ~ (Bitwise NOT) (Transact-SQL)

  • Thursday, April 2, 2009

    Some Themes and a Little Crimson and Gray

    image

    I have been working on themes for WPF and Silverlight applications.  I found this one for SilverLight and WPF.  It is called shiny red.  Gotta love that.  Nice bit of crimson and gray.

    As some of you know I am a bit of a WSU fan, so I love this theme.  They also have a couple of purple ones.  Needless to say I deleted those.  Pure evil they were… :-).

    Thursday, March 19, 2009

    On Further Review…

    Never mind.  Microsoft has a CTP of the 2.0 version of the Open XML SDK that does this much better.  Check out http://www.microsoft.com/downloads/thankyou.aspx?familyId=c6e744e5-36e9-45f5-8d8c-331df206e0d0&displayLang=en

    Wednesday, March 18, 2009

    Reading a Office 2007 docx file using C# and SharpZipLib

    I found myself needing to read a office 2007 docx file to get the xml of the document., so I went and got the ECMA spec for OfficeOpenXML. That is a heavy 1500 page heavy read :-).  So I decided to keep it handy and just write some code to see how bad it would be. So far it has not been as bad as I thought it would be so I thought I would post some code on it.  It has been a while since I have posted anything, so here goes.

    The docx file is actually just a zip archive of a bunch of files.  The trick here is to read the zip and pull out the content.  I decided I wanted to load the data to a class hierarchy so I could do some Linq to objects work with it.

    So I will start this with some simple code.  First the DocumentPart.cs class holds the document content and some information from it’s zip file.  The document content is stored as a linq to XML XDocument..

     

        1 using System;
        2 using System.Xml.Linq;
        3 
        4 namespace OfficeOpenXML.Package
        5 {
        6     /// <summary>
        7     /// A document part in the OfficeOpenXML Package
        8     /// </summary>
        9     public class DocumentPart
       10     {
       11         public string Name {get; set; }
       12         public string Comment { get; set; }
       13         public long CompressedSize { get; set; }
       14         public DateTime EntryDate { get; set; }
       15         public long Size { get; set; }
       16         public XDocument Content { get; set; }
       17     }
       18 }

    It is pretty basic so far (love those automatic properties).


    Now how do you read the zip file?  I use the SharpZipLib to read the zip file and then store each member of the zip archive into a dictionary of DocumentPart with the filename as the Dictionary key.

     

        1 using System;
        2 using System.Collections.Generic;
        3 using System.IO;
        4 using System.Text;
        5 using System.Xml.Linq;
        6 using ICSharpCode.SharpZipLib.Zip;
        7 
        8 namespace OfficeOpenXML.Package
        9 {
       10   public class Parts
       11   {
       12     public Dictionary<string, DocumentPart> DocumentParts { get; set; }
       13     public string FilePath { get; set; }
       14 
       15     public void OpenPackage(string filePath)
       16     {
       17         ZipEntry Entry;
       18         XDocument contents;
       19         StringBuilder XMLDocument;
       20         byte[] Buffer = new Byte[8192];
       21         int bytesRead;
       22 
       23         using (ZipInputStream Package =
       24           new ZipInputStream(new StreamReader(filePath).BaseStream))
       25         {
       26           while ((Entry = Package.GetNextEntry()) != null)
       27           {
       28             XMLDocument = new StringBuilder();
       29             while ((bytesRead = Package.Read(Buffer, 0, Buffer.Length)) != 0)
       30             {
       31               XMLDocument.Append(
       32                 ASCIIEncoding.ASCII.GetString(Buffer, 0, bytesRead));
       33             }
       34             contents = XDocument.Parse(XMLDocument.ToString());
       35             DocumentParts.Add(Entry.Name, new DocumentPart() 
       36               { Name=Entry.Name, Size=Entry.Size, 
       37                 Comment=Entry.Comment, 
       38                 CompressedSize=Entry.CompressedSize, 
       39                 EntryDate=Entry.DateTime, Content=contents });
       40           }
       41         }
       42     }
       43 
       44     /// <summary>
       45     /// Construct the class
       46     /// </summary>
       47     /// <param name="filePath">The office Open XML document</param>
       48     public Parts(string filePath)
       49     {
       50         FilePath = FilePath;
       51         DocumentParts = new Dictionary<string, DocumentPart>();
       52     }
       53   }
       54 }

    I use the using statement (on line 23) to handle the opening the docx file and then process the zip archive using the GetNextEntry.  The inner while loop (at line 28) reads the content of the entry into a string.  Finally while the DocumentParts.Add() adds the document dictionary. 


    A simple NUnit test (not exhaustive by any means) is:


     

        1 using NUnit.Framework;
        2 
        3 namespace OfficeOpenXML.UnitTests.Package
        4 {
        5     [TestFixture]
        6     public class PartTests
        7     {
        8         [Test]
        9         public void OpenPackageTest()
       10         {
       11             OfficeOpenXML.Package.Parts p = new OfficeOpenXML.Package.Parts();
       12             p.OpenPackage("../../TestData/AbilitiesandConditions.docx");
       13             Assert.IsTrue(p.DocumentParts.ContainsKey("[Content_Types].xml"), "No Content_Types?");
       14         }
       15     }
       16 }

    In my next post I will show how to use the information from the [Content_Types].xml entry and the docsprops/app.xml and docprops/core.xml files to create an object that has information about the document being read (using some Linq to XML to populate the Class).  


    Darrel

    Wednesday, March 11, 2009

    Red, Green, Re-factor

    I find my self getting more and more into the test driven development paradigm.  I am working on some fairly heavy OO code with a great requirement specification (it is actually and ISO standard).


    The application is growing pretty much via the unit tests.  Write the test, then make sure the code fits.  It is amazing how many times I am not sure how a piece of code is going to work so I just put together the unit test to fit the standard and then code the class.  I can then re-factor as needed.



    I am using the speech API’s to drive the interface so the speech api simply outputs a string of text that I can use to execute the program commands.  I wanted the program to be able to be both driven by speech commands and through the standard GUI approach.  Since I am working on a compiler, interpreter I have simply added the speech grammar as another grammar in the compiler.  .I will probably do the same to parse the command line options.


    Makes for some interesting code :-).

    Tuesday, March 10, 2009

    Not posting much lately

    I have been working on several projects.  They are starting to come to completion and I hope to post some more on them at the beginning of April.  I have also been busy with contracts and life in general, but I will get back to some posts in a few weeks.

    Monday, October 13, 2008

    Human Costs of a Bad Economy

    I have been traveling around the country for the past 90 days through the Midwest, the east coast and the south and staying in a lot of hotels.  Most recently my hotel in Daytona Beach.

    Now my hotel is right on the ocean.  In fact my balcony faces the ocean and the pool.  All in all not a bad place that I got for $32.50 a night.  Now Daytona Beach is a resort town.  All most all of the business here comes from the tourists.  With the state of the economy there are virtually no tourists around, the hotels and restaurants are getting almost no business.  Ditto for the tourist shops.  You can almost watch them close all up and down Atlantic Boulevard.

    As a geek I make pretty good money.  As a matter of fact I probably make more then any of the cooks, house keepers or shopkeepers around here.  it is sad when you hear some have cut back on hours to less then 20 hours a week.  I mean they already don't make that much and now they make half of that and most of them are not that well off.

    You can only hope it gets better soon for all of us.

    Friday, October 3, 2008

    Sunny Florida

    Well, I am the second elgant coder to be outside of the Boise, Id area.  I have moved to Florida and am currently camped in a hotel on Ormond Beach. 

    Although I enjoyed my 10 years in Boise it was time to move on.  After being riffed off from Micron I was pretty much at ends as to what was keeping me in Boise.  I had originally moved there in 1997 to be around my mom.  After she died in 2003 there was little keeping me in Boise except for momentum.  I had no real reason to change.  Micron's layoffs gave me a good reason to think about moving on.

    I have always wanted to see a shuttle launch and wanted to be around a ocean again.  So with those two criteria Florida was really the only choice.   I spent two months driving across America seeing family I had not caught up with in years.  In addition I spent some time just seeing the country.  Something I have wanted to do for years.  I traveled 9000 miles in 60 days and went from one end of the country to the other.  A great trip for me and the cat (although I am not sure the cat would agree :-)).  I will be posting some blog entries about the trip over the next few weeks.

    For now I am planning on staying on Florida for a while.  I will start looking for full time work next week.  I am excited about the change and looking forward to some new challenges.

    Saturday, July 12, 2008

    The Tablet PC

    I recently took a tumble (anyone who knows me will tell you I am clumsy) and hurt my right arm. Needless to say this is not good if you and a computer geek. Fortunately at the same time I was trading out my Dell 1720 for a new dell lattitude XT. So I am actually writing this blog entry. Literally! I am using the handwriting recognition features of the tablet PC.

    So far I am very impressed. The tablet does a better job reading my handwriting they some of my friends do (hi joe!). It is interesting that it reads my writing better then my printing. For some reason all those years I actually thought my printing was easier to read then my writing. Guess I was wrong. I am pretty sure I actually can write faster than I can type.  This as is kind of sad knowing ] have made my living writing computer programs for the last 30 years.

    I will have to bring up my visual studio 2008 environment and see how easy it is to code this way. l should point out I am doing this all on Vista Ultimate. I did not like Tablet XP any where as much as Vista.

    Saturday, June 28, 2008

    Steve and Bill On-Stage

    In case you have not seen any of these videos of Bill Gates and Steve Jobs on Stage talking about our industry past, present and future.  A fascinating discussion.

    Paraphrasing a classic comment from Gates.  We want a computer in every home.  We never thought about the fact that we would have to be a BIG company to do that...

    Monday, June 23, 2008

    Gates is the Rockefeller of our times

    Interesting article on MSN on Bill Gates and how his foundation is changing philanthropy today.  He will give away more money then Rockefeller did at the beginning of the century.  How will this change education and medicine in the next few years?  For example the Gates foundation is:

    "..a foundation whose combined assets will one day exceed the budgets of all but 30 percent of the countries in the world"

    Talk about having to learn how to scale :-).  I it will be interesting to see how he takes on this challenge.

    Tuesday, April 15, 2008

    Am I asking for too much?

    I am currently participating in a interesting thread on Matt Berther’s bog on my podcast. I commented on his post Blasting open source because I felt my podcast was not meant to pick on up source projects although part of it could be interpreted that way. So since then what I have been explaining is why I don’t see any innovation happening in software today.


    Although I like .NET and Java I think there has been no real innovation in software in the last 30 years. The primary things I see as the backbones of what we use computers for are:


    1. Databases - CODASYL defined the standard for network databases in 1969 (RDMBS were first described by Codd in the 1960’s and 70’s at IBM)
    2. Word Processing - The Unix Concepts of text formatting for publishing came around in the 1970’s (as a matter of fact UNIX was first designed as a text editing and text formatting system). Although UNIX text processing is much more akin to HTML then WYSIWYG editors like MS Word
    3. Spreadsheets - First patented in 1971, VisiCalc was actually being distributed for the Apple II in 1979
    4. General Programming via high level Languages -
      a) Interpreted Languages (If you want the full deal Smalltalk was around in the 1970’s. Object oriented, dynamically typed and reflective)
      b) Compiled Languages (Cobol was created in 1959 and C in 1972)
    5. WIMP Interfaces - (Pioneered by the Xerox Alto in 1973)
    6. The Internet which started in 1969.

    So if you take as a baseline of 1980 we have had these systems around for at least 28 years. Most have been around longer. Sadly I have been programming for 30 years so I have played with some of these at one time or another in my career.


    Do I expect too much? I can’t help but see the feature set of these products though and say that on the whole the pace of innovation in computers disappoints me. Those advances we do see to have picked up come about more because of hardware advances then software advances. As Brooks says in No Silver Bullet

    …the anomaly is not that software progress is so slow, but that computer hardware progress is so fast.

    As I see it we continue to attack the accidents of software engineering. I quote from Brooks


    If we examine the three steps in software technology development that have been most fruitful in the past, we discover that each attacked a different major difficulty in building software, but that those difficulties have been accidental, not essential, difficulties.

    The three that he describes include:


    • High Level Languages. Now this would include java and C#.
    • Time Sharing.
    Now this would be the entire concept or personal computers, laptops, PDA’s etc…
    essentially ways to get the answer immediately.
    • Unified frameworks. Here
    he talks about UNIX, but you can also include in this the .NET framework and the
    Java class libraries.

    So my contention is that one of the reasons software innovation is so slow is we spend too much time reinventing what we have had since the 1970’s and not focusing on advancing the art of computer science. Am I wrong? So many of the things we see in the Open Source and Commercial World are clones of each other. Are we as developers taking the simple way out? Sure we can design a new enhanced WIMP interface, but that is because we already know most of the requirements except for that little tweak we are going to make? It is fun to do these kinds of projects because we don’t have to think about the hard stuff like requirements analysis, test cases and design. We just set down and code another build system, or IOC Container or OS.


    We continue to attack the accidents because the essentials are so difficult. I was doing some reading on the System.Speech namespace in .NET and Natural Language Processing in general. One of the big things required to get these to work is to put together grammars for what we want the computer to do once it has recognized the words. The problem is almost no one is building the grammars. Why is that? Because it is hard. It would require us to step outside of the fun and simple things we do and take on some difficult tasks. The same thing could be said for coming up with systems that use common component architecture. How much simple would things be if we started building components and plugging them into applications. As David said in my Podcast, I want to drag and drop a CRM solution.


    What does it take to get to these? We have to give up on some of the fun things we do and start attacking the essential problems in software development. Am I expecting too much? Are we as Software Engineers unable to tackle our discipline as a engineering science and start innovating again?


    ** Portions of this entry were posted a a comment on Matt’s blog ***

    Monday, April 14, 2008

    Founding Brothers

    A friend of mine, Chuck Steffens, has convinced me to start reading Founding Brothers: The Revolutionary Generation by Joseph J. Ellis.  I must say this is a fascinating look at American history.  Specifically the time of the American Revolution and the founding of the republic.  I will do a book review in the next few days, but so far (up to chapter 3) it is a great read.

    I downloaded it to my Kindle last night at midnight and started reading it.  The only thing I can say about the kindle is I am glad they don't have a ton of Computer Books available on it yet.  I would go broke every time I went to amazons web site. :-).  The science fiction and historical stuff us costing me a fortune.  On the plus side I have finally started to read Winston Churchill's series on World War II after having owned the books for years.

    Tuesday, April 8, 2008

    Google App Engine

    I just ran into a reference for this.  It looks pretty cool.  Develop your application offline and then deploy it to the Google servers.  The man page is at http://code.google.com/appengine/

    I have been meaning to play with Python and Iron Python.  I have just never had a reason beyond curiosity.  Now it looks like it might be worth learning.

    Thursday, April 3, 2008

    Mono 1.9 is Released

    Mono 1.9 is released.  This is the last version before 2.0 which supports the entire 2.0 version of .NET on Linux.  This version also supports some C# 3.0 features including Linq to XML and Linq to Objects.  Very Cool
    http://www.go-mono.com/mono-downloads/download.html


    They have also released the Mono Develop IDE.  Full support in an IDE very similar to Visual Studio. 
    http://www.monodevelop.com/Main_Page

    Checkout the screen capture with their integration with NUnit

    http://www.monodevelop.com/Image:Nunitmain.png