Tobler.SoftwareArchitecture()

John Tobler's somewhat ordered collection of thoughts and resources mostly related to software architecture and software engineering.

  • Announcing TobWiz Technologies LLC

    Our software and idea development company has officially become a Nevada corporation. Our website is still at http://www.tobwiz.com/. 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!

    Read more...

  • New Challenge: Enterprise Architecture at Caesar's Entertainment, Las Vegas, NV

    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!

    Read more...

  • Things I like about Scala

    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.

     

    Read more...

  • Sigh! Vista still has 260 character Path limitation!

    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!

    Please!

     

     

    Read more...

  • Announcing: Tobwiz Technologies!

    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 john.tobler@tobwiz.com!

     BizSparkLogo

     

    Read more...

  • Scaling the Cliffs to Scala

    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!

    Read more...

  • Resume Dream Catchers -- Reloaded

    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!

    Read more...

  • Yes, I was an Agile Manifesto signatory!

    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!

    Read more...