Announcing TobWiz Technologies LLC
30 January 14 09:03 PM | CSharpener | with no comments
Our software and idea development company has officially become a Nevada corporation. Our website is still at As Co-founder and CTO, I will be primarily responsible to coordinate our software development services and software product development. As a reader of this weblog, I encourage you to contact me if you feel our skills and experience can benefit any projects with which you are involved, we would be happy to discuss opportunities with you!
New Challenge: Enterprise Architecture at Caesar's Entertainment, Las Vegas, NV
15 April 11 12:54 PM | CSharpener | with no comments

I have a brand new challenge and am excited to announce that my wife and I have relocated to Las Vegas, NV, where I have taken on a new role as a Senior Enterprise Architect for Caesars Entertainment.  The sheer scope of the concept of "enterprise" at Caesars Entertainment, which employs over 70,000 people on four continents,  takes me to a whole new level of architecture.  I will be integrating many technologies from very old, simple, and low-level to very new, complex, and highest-level.  My new position also requires that I learn a very interesting new enterprise-level messaging tool chain, the TIBCO products, particularly Enterprise Messaging Services (EMS), Rendezvous, BusinessEvents and BusinessWorks.  So, I will have my hands full getting used to real enterprise architecture and integration and will happily share this experience with you, the faithful readers of this weblog!

Things I like about Scala
06 September 10 11:23 AM | CSharpener | with no comments

I'm excited about Scala (see Scaling the Cliffs to Scala ), one of the new Object-Fuctional languages that have emerged recently.  So, what excites me?  Let's list a few cool features.

  • Everything is an object.
  • Scala functions are really and truly first-class objects.
  • Let's not forget that Scala gives us Closures!
  • Mixins really rock!  They bridge the gap between multiply inheriting from interfaces and multiply inheriting from classes.
  • Traits are like Java interfaces, but with implementations (behavior).  They provide a mixin composition mechanism I haven't had in other languages.
  • Scala pays lots of attention to properly using mutability and immutability.  From having declarations of val vs. var to Value Objects and "side-effect free" functions, Scala provides the underlying support necessary to help us with multi-threading, multicore processing, and multi-processing. 
  • Scala's implementation of concurrency and its Actor Framework make it one of the most interesting new languages around.

I would recommend a study of Scala just for these benefits alone.  They're largely why I decided to use Scala for development of Chronoscope, the product on which I'm working at the moment.


Sigh! Vista still has 260 character Path limitation!
29 August 10 06:06 PM | CSharpener | 3 comment(s)

I recently discovered, the hard way, that Microsoft Vista still has a limit of a maximum 260 characters for the Path.   You can enter all the characters you probably want in [Control Panel | System | Advanced System Settings | Environment Variables | Path] but when you subsequently execute "Path" in a Windows Command Processor Console, you will see your result gets truncated at 260. 

 Worse, one day you will try to execute a command and it just won't happen,.and you may have one heck of a time figuring out why it failed.  Even worse, some sotware you run may try to execute an external dependency, under the reasonable assumption that it can be found in your path.  You're likely to have an even more difficult time diagnosing that!

How do you get a path longer than 260 characters?  Some forum trolls maintain that it's a ridiculous question and could only happen to a brain-dead Windows wimp.  Not me.  I'm senior software architect and engineer, and I try things out.  I'm always learning new technologies and experimenting with new tools.  You give me a shiny new machine with all the memory and processor you think is state of the art and I will soon have it filled up with developer goodies.  Now, if you, like me, start installing frameworks, language systems, editors, database systems, utilities, and other development tools, I guarantee you that you will soon blow past the inane 260 character limit!

So, here I am with a completely botched path.  What did I do?  I started replacing long entries with Environment Variables.  "C:\User\ProgLang\Ruby\Bin" became "%RUBY%."  You really need to be careful to put back-slashes ('\') where they need to go; a missing or extra back-slash can cause problems.

 It kind of works, and if you replace enough stuff, you may get your path to display in a console.  Unfortunately, I was not able to reduce mine enough.  Frankly, I don't consider my desired path-searchable items to be unreasonable.  I want my languages, Scala, Fantom, Ruby, Python, Scheme, Common Lisp, Groovy, etc., to be available from the command line.  I want my utilities!  I want my frameworks, my libraries!  I want all my Microsoft Visual Studios SQl Servers, SDKs and such (with their ridiculously long and space-filled pathnames!

Will your path always be useable by software?  Will it sometimes be corrupted and cause problems?  What happens when your Environment Variables get expanded?  Those questions I cannot yet answer, but you can be sure I'll be watching!

Now, let's discuss the cause.  I think it is the same old illness within the Microsoft development group that has afflicted us developers and "power users" so many times before.  Some MS-Techie decides that we'll never need more than 512K of database storage, we'll never need graphics beyond 1024x768, nobody needs more than 8 bits to represent a character.  Yeah, right!  Microsoft needs to root out this limitinitus disease once and for all and push it's devs to stop placing arbitrary and insidious bounds on those of us for which work in the real world will always exceed design parameters.  Make things expandable and extensible, please.  Stop stitching us into a corner!




Announcing: Tobwiz Technologies!
24 October 09 08:51 PM | CSharpener | with no comments

My wife and I have formed a new company, Tobwiz Technologies, providing products and services for software development, media development, idea development, and International communications.  In particular, we would love to help you add a touch of magic to your software projects by offering the following services:

  • Contract software architecture and engineering
  • Hands on code wizardry
  • Independent design and code reviews
  • New development
  • Maintenance
  • Legacy transformations
  • Small projects

Telecommuting relationships preferred.

Please contact!



Scaling the Cliffs to Scala
18 August 09 01:26 PM | CSharpener | 1 comment(s)

The legendary Castle of Scalability, wherein is reputedly housed the Holy Grail of Website Performability, awaits you!  Will you accept the challenge?  Will you take up this noble Quest? 

Recently, we have heard that the castle may be reached by scaling the high cliffs of Scala, one of the newest Object-Functional languages. Scala, like Fan, another new "scalability-oriented" language, has mutated significantly from Java, one of its prototypical influences.  From what I've seen through my binoculars, Scala code can sometimes seem pretty obfuscated, so make sure you are equipped for a certain cryptic mysticism as you begin your ascent.

Take A Tour of Scala and then have a look at what Sony Imageworks intends to do with it, reported in Sony Imageworks and Scala.

Scala is indeed a serious language, and this is a serious Quest!  Personally, I have already started along the path, but I must admit I'm taking the Fan with me to cool me down during the long climb!

 Good luck, Noble Coder!  May you reach the Castle of Scalability and claim the Coveted Prize!  I hear there is enough Performability up there for all of us!

Resume Dream Catchers -- Reloaded
14 August 09 11:22 AM | CSharpener | with no comments

Today, I had reason to update an old article of mine, Resume Dream Catchers, and figured I should remind my readers of this resource.  Please feel free to offer your additions,corrections, and thoughts as comments, either to the article directly, or to this post.  I will be happy to update the article with better information!  This started out as just a quick post, back in 2004, but some people seem to like it!

Coding Cool with Fan!
10 August 09 11:18 AM | CSharpener | 1 comment(s)

The most exciting new programming language I have seen in quite some time is the new Fan language. I recommend reading Why Fan and taking the Tour to have get a quick grasp of what Fan offers.  Then Download Fan and StartHere!

 Why am I so enthusiastic about Fan?  It's Object Oriented, but also supports functions as first class objects.  That makes Fan one of the new "Object-Functional" languages (see Scala for another example, although I am finding Scala a bit overly-complex for my taste). Fan is easily approachable from a C/C++/C#, Java, Python, Ruby or Smalltalk background.

 Fan interoperates on the Java VM, the .NET Framework's CLR, and also supports compiling JavaScript for use in browsers.  Fan's design should make it portable to Parrot and other run-time targets in future. 

More than anything else, though, I like Fan's clean, and I must say rather beautiful, design.  Look at this quote about the development team's approach to the Fan API's:  "Beauty is in the eye of the beholder - but we are obsessed with making the Fan APIs beautiful."   Brian and Andy Frank, Fan's two main developers, are quick to state that Fan is a practical, rather than academic language.  However, I assure you a *lot* of thought and deep knowledge about the evolution of programming languages has gone into Fan's design.  I consider Fan quite elegant and am very much enjoying cooling my code with Fan!

To help spread the Fan meme, I have started FanFans, a LinkedIn Group for those who want to "fan the Fan!"  If you're on LinkedIn, search for "FanFans" or "Fan language" and join the group!

 So, let's all Fan out and spread some cool code!




Something is squawking!
23 July 09 03:40 PM | CSharpener | with no comments

 After a rather long ... lull ..., I'm hearing much more noise again from the (almost mythological) realm of Pearl 6.  Seems like some sort of Parrot has been squawking loudly, lately.  In fact, it may have even squawked loudly enough to get me to join in the fun! 

 I'm a sucker for the very idea of a multi-lingual dynamic language VM that can allow different languages to use libraries written in others.  Use Python and Lua libs from Ruby?  Sounds wonderful to me!  Here's a link to Wikipedia's article on Perl 6.

 Pray for Perl 6.  The Perl and Parrot communities need everyone's good wishes!

Yes, I was an Agile Manifesto signatory!
09 July 09 11:24 AM | CSharpener | 1 comment(s)

Yes, I was a relatively early signatory to the Agile Manifesto.  I "signed" in the 19 May to 20 June, 2003, time period.  I did my first test-driven development (TDD) using the SUnit testing framework in the Smalltalk programming language.  I was immediately attracted to "agile" and TDD because I had been developing software for many years and well understood the value of the new approaches.  I am still agile and I still recommend TDD, although I am now aware that there are many areas of software engineering where TDD is not yet possible.  As far as agile goes, I do not stand for no process, but for "just enough" process!


More Posts Next page »

This Blog

.NET Languages


Blogs I Read





Other Languages

Semantic Web

The Human Factor




ZZZ-Subscribe to this Weblog