Wednesday, March 20, 2013

Time to get a new computer

I went to speak at AgilePDX.  They could not accept VGA on their main protector.  I am officially old. Time to get a system that can function in the modern era.

On my way to the @agilepdx meeting tonight

The weather is a little dicey but we have enough of a head start to make it on time.

I will post a link to the slides and sample code tonight after the talk.

Also: While today's talk is not a sales pitch, I will have some books on hand should anyone want to buy one.

Monday, March 18, 2013

He's Mine Now, Damn It!

The orange cat who has been hanging around on my deck has gone unclaimed for long enough.  There was no collar and no RFID microchip.  There are no signs in the area.  He is not registered in any of the missing pet databases I could find.  He is cold and hungry.  Now that he has food and shelter, he is showing no signs of distress as I would expect in a cat recently separated from his family.

By all accounts he is abandoned or lost from his original home, never to return.

If he was yours, know that he's found a loving home and go get yourself another cat.

Saturday, March 16, 2013

Sleight of Mind #4 Being Edited

I've passed off Sleight of Mind #4: A Tale as Old as Limestone to my editor (pronounced /wīf/).  I've already done about half of Sleight of Mind #5: The Old Mage and the Sea.  That's because, originally, I wrote both as a single installment.  On my first reread, I realized that there are two stories that each need to be fleshed out a lot more than a single installment could support.  So I sliced #5 off into its own file and started fleshing out #4.

I won't be able to get straight to #5.  I have some impending talks for which I must prepare.  If you're interested in those, the public ones can be found on my Amazon author page.  Those are going to take priority for, at least, the next week and probably for the next three weeks, realistically speaking.

If you are unfamiliar but interested, you can start reading the series with part one.  It is definitely not for everyone and I'm not really interested in selling something to the wrong person so I recommend you don't buy everything in the series first - just buy part one and use your reaction to that to drive the decision of whether or not you want part two.

Also, and this is completely an aside: please share my prior post about the cat I found in Redmond, OR.  Do that even if you don't know anyone in Central Oregon.  The further it travels, the better chance it has of finding its way into the hands of this cat's owner.  If I can capture him, I'll take him to a vet and get a reading of his microchip, assuming he has one, but it's better to try two ways of reuniting him with his family than one.

Found Cat in Redmond, OR

This guy is hanging around my house.  He is obviously someone's pet.  I would like to find the owner.  Please pass this on if you can.

Here are his pictures.  He's too fidgety to get a better shot.




Wednesday, March 13, 2013

Paperclip attrition metric

Before a meeting, put a paperclip in front of each seat.  When more than twenty-five percent of them are mangled, the meeting is officially a waste of time.

Tuesday, March 05, 2013

I Got on Some Top 100 Lists!

I just wanted to document that, at some point in my life, something I wrote broke #100,000 in paid books and was on the top 100 list in three paid categories.

At one point, this was one the above page

Sunday, March 03, 2013

DataClass 3 - Transparent Data Model

One of my goals with DataClass 3 is to have a transparent data model that describes a class of data store without any coupling to a particular syntax.  This serves a couple purposes.

One reason is to better support automation.  With an API and a clear XML format, people can do all kinds of things.

Another reason is to create a natural and strong division between syntax and compiler.  If I do that, I can develop a few different languages.  That way, people who think curly braces are what slow them down can have a language that uses white space to define blocks and sane people can use curly braces or whatever.

Then there is the main force driving this design decision.  Having a clean, platform-independent way of expressing a database design allows me to write, say, a Java client that can explore a database class definition file and expose its structure to Eclipse.  I can do that about as easily as I could with a Visual Studio extensions.

There is a consequence to this design.  While the XML format is theoretically human-editable, it is not intended to be the primary means of expressing a data class.  I'm still committed to having a domain-specific language for that purpose.  So, whereas DataConstructor and the sample code for my book use XML as the primary format, I have no intention of supporting that in DataClass 3.

Saturday, March 02, 2013

Test-Driven Database Development: Unlocking Agility Complete; on to DataClass 3

After a year of work on my book, I'm ready for a break.

Just kidding.  Now that the book is done, it's time to write DataClass 3.  How will it be different from DataClass or DataConstructor?  A lot of ways, actually.  I'm not going to plan everything out right here and now.  That wouldn't be very in character, would it?  However, I do have some high-level goals I want to meet.  Here they are in no particular order.
  • Add a transparent data model
  • Expose parsing capabilities for automation
  • Restore a feature from DataConstructor: support for other kinds of data (XML, objects, etc.)
  • Extension point for client platforms
  • Extension point for database platforms
  • First class support for the obvious structures in a database (tables, views, stored procedures, etc.)
  • Inferred design
There are a bunch of other "nice to have" features I intend to implement later but for the initial rewrite, I'll stick with that scope.  Sadly, yes, you read correctly.  Once every two years, I run a little experiment to verify that people who think mocking is bad are crazy.  DataClass 2 was that experiment.  It's easier to rewrite it the right way with these new goals than to try and change directions with that code base.

There are other things I'm changing, too.  Most notably, I'm changing the profit model for DataClass.  The compiler and API will be freeware.  Anyone can download it and use it for whatever purpose they may have.  Then I'm going to write extensions for Visual Studio, Eclipse, and maybe IntelliJ IDEA.

I'll delve more into each topic in a separate entry later as I have time.