Archive for the ‘Random Musings’ Category

Achieving Artificial Intelligence with the Reverse

Tuesday, October 6th, 2009
No Gravatar

I believe that AI is taking the wrong path. They are trying to work top down because that’s how humans who are generally successful at solving problems approach solving problems. Problems that are somewhat familiar are best served with a rigorous approach that leads to a planned conclusion. Still, many of the greatest break-throughs have come about by accident, i.e., not following the general path at first. Penicillin and Post-It Notes come immediately to mind.

But humans only solve most problems the usual way because they have a solid ground work to start from. The accidents create a new ground work for development. Accidents come about by not following the normal path, and I think the solution to AI is in taking a different path that will lead to a ground work that will support the entire field.

AI should take the approach of developing siloed expert systems. Make lots of them and keep refining until commoditized. Then start working on higher systems that can merge related systems together though interfaces like web services (but more efficient). Then build ever higher systems until a small set of controlling systems can leverage the legacy systems. The legacy systems, truly failures to create AI and the wrong accepted path will provide an infrastructure that will support a true AI solution.

Scott Adam’s Illustrates My Life As a Consultant

Sunday, October 4th, 2009
No Gravatar

Scott Adam's Illustrates My Life As a Consultant

Developing Software in a Sauna

Tuesday, September 8th, 2009
No Gravatar

There are cynics amongst us (if you are reading this, you should know that by now) who say that the most pleasurable part of a sauna is getting out of it and being relieved from the heat.

Coding software is like that, sometimes. You will always run across a bug in your software, or poor documentation, or an upgrade or language shift where all the things you expect to be there aren’t. So you bang your head against the wall until a solution falls out it (hopefully your head, though the wall has contributed on occasion). And then you stop banging your head and give it a final slap as you solve the problem. Then it feels good. So good, you wind up banging your head again in a few months/days/hours over another problem.

Can I Told You So Be Retroactive?

Tuesday, September 1st, 2009
No Gravatar

I was part of the team at my former employer bidding for the re-work of the MBTA web site. Lo and behold (whatever that means), I get around to reading /. for the first time since then and I run across this little item that talks about how the new-and-improved site didn’t support Opera and has been rolled back to it’s earlier version.

So, if they had gone with my former company and if I had stayed, they wouldn’t be having these issues. But, then, I probably wouldn’t have time to read about them :)

Whether to Use Open Source or Windows Development Platform

Sunday, August 30th, 2009
No Gravatar

The following questions was on LinkedIn today:

How to decide whether to use Open Source or Windows development platform.  we are working on creating a SAAS model for a payroll and HR software. The debate we currently having is to on what software to develop Open Source or Windows. Need some help to decide the parameters on which to compare so as to come up with a logical decision rather than the decision based on gut.

Here is my response:

I started typing a couple of different responses, and then stopped as it occurred to me that the world of the operating system has turned upside in the last ten years, because your choice for OS is literally Mircrosoft or Open Source. All of the other vendors have either gone open source or are too small to consider as real choices anymore.

So from the OS point of view, it is a choice of who your support vendor is now.

Once you choose your operating system, then you need to choose your software packages. This is where in-house skill is a big part of the equation, because if you don’t have people that will take complete ownership of both the framework and custom code, your open source options narrow. You have to look at which projects have the most solid team that will still be updating the product n years from now. Currently, those are products that either have vendor sponsorship (and you expect the vendor to be around n years from now) or are so wildly popular for so long that even if the current group gets rich and bored someone else will step in.

And, back to the Windows or something else question: For a web-based application, if software doesn’t run on both (at least a version that runs on both), I wouldn’t consider it.

But (as Dennis Miller used to say every week), that’s just  my opinion. I could be wrong.

Scott Adams Nails it Again

Sunday, August 16th, 2009
No Gravatar

This will be considered a classic. It is relevant at least every three years… (Click the post title to see properly until I get around to customizing this blog more)
Dilbert.com

Some Comments on Offshore and Outsourcing.

Wednesday, August 12th, 2009
No Gravatar

This question came up on Linked In today, and I thought I would post my response to it here for those that don’t belong (and if you don’t and you are reading this blog, you probably should):

I read the question as one about outsourcing, and I see many responses about off-shoring. I’ll give my 2 cents on both, and you can owe me a nickle including tip.

Outsourcing is a way to mitigate risk for mission critical goals. The mitigation is in two forms. The first is, outsourcing to experts provides the perceived safety that the job will get done correctly. The perception is right about half the time (in my experience).

The other form of risk mitigation is the ability to place the blame for any failure on the vendor. As a vendor, I know that the likelihood of this being the reason for outsourcing increases with the number of people involved in the decision.

Off-shoring is a mixed bag. There are some companies that are really good, and some that are not. There are individuals within companies that are really good, and many that are not. In other words, on one level there is no difference between offshore and outsourcing.

On another level, there is the communication gap that is unavoidable due to both cultural and temporal differences. There are some companies that try to offset the temporal differences by having teams that work hours that coincide with US business hours. Anyone who has ever used 24 hour services knows that the best and brightest rarely work in the wee hours, and those that do are still not at the top of their game.

Off shoring works great for both parties far more often if the requirements are crystal clear and fairly static. Otherwise, your mileage will vary. Since the successes are a huge boost to ROI, they are well publicized and very motivating. The much more frequent failures are kept low key to protect careers.

And, as Dennis Miller often said: “But that’s just my opinion…I could be wrong”

What is Web 2.0?

Thursday, July 16th, 2009
No Gravatar

I saw this question posted on Linked-In today and thought I would blog my input, especially as I have been tied up with some paid work and haven’t been blogging as much lately…

Q: What are the differences between Web 1.0 and Web 2.0?

A: In addition to answers already provided, Web 2.0 is often a battle cry for selling new IT products and services rather than an actual technology. It encompasses AJAX, blogs, wikis, RSS, mash ups, and just about everything else that is currently popular.

What is the same between the web before and Web 2.0 (no one ever referred to Web 1.anything until the Web 2.0 marketing banner was raised) is that these technologies can be a huge benefit when implemented well against a solid design and massive headache if done wrong.

Not all of the technologies are mature yet, which is where the big push to use them can be beneficial. Why? Because as development teams run into the issues and limitations vendors will be pushed to fix them, which will accelerate their maturity.

IMHO :)

If Building Architects Had To Work Like IT Architects…

Wednesday, July 8th, 2009
No Gravatar

Confession: I’m buried in trainings and deliverables and recycling some material from my original catch-all blog.
This was forwarded to me today. Normally I would be concerned about copyright violation, but this is way too good not to share. If the unknown author ever contacts me I will happily take it down after thanking the person profusely for the best description of my job I could ever send to a layperson.

Dear Mr. Architect:

Please design and build me a house. I am not quite sure of what I need, so you should use your discretion.

My house should have between two and forty-five bedrooms. Just make sure the plans are such that the bedrooms can be easily added or deleted. When you bring the blueprints to me, I will make the final decision of what I want. Also, bring me the cost breakdowns for each configuration so that I can arbitrarily pick one at a later time.

Keep in mind that the house I ultimately choose must cost less than the one I am currently living in. Make sure, however, that you correct all the deficiencies that exist in my current house (the floor of my kitchen vibrates when I walk across it, and the walls don’t have nearly enough insulation in them).

As you design, also keep in mind that I want to keep yearly maintenance costs as low as possible. This should mean the incorporation of extra-cost features like aluminum, vinyl, or composite siding. (If you choose not to specify aluminum, be prepared to explain your decision in detail.)

Please take care that modern design practices and the latest materials are used in construction of the house, as I want it to be a showplace for the most up-to-date ideas and methods. Be alerted, however, that kitchen should be designed to accommodate (among other things) my 1952 Gibson refrigerator.

To assure that you are building the correct house for our entire family, you will need to contact each of my children, and also our in-laws. My mother-in-law will have very strong feelings about how the house should be designed, since she visits us at least once a year. Make sure that you weigh all of these options carefully and come to the right decision. I, however, retain the right to overrule any decisions that you make.

Please don’t bother me with small details right now. Your job is to develop the overall plans for the house and get the big picture. At this time, for example, it is not appropriate to be choosing the color of the carpeting. However, keep in mind that my wife likes blue.

Also, do not worry at this time about acquiring the resources to build the house itself. Your first priority is to develop detailed plans and specifications. Once I approve these plans, however, I would expect the house to be under roof within 48 hours.

While you are designing this house specifically for me, keep in mind that sooner or later I will have to sell it to someone else. It therefore should have appeal to a wide variety of potential buyers. Please make sure before you finalize the plans that there is a consensus of the potential home buyers in my area that they like the features this house has.

I advise you to run up and look at the house my neighbor built last year, as we like it a great deal. It has many things that we feel we also need in our new home, particularly the 75-foot swimming pool. With careful engineering, I believe that you can design this into our new house without impacting the construction cost.

Please prepare a complete set of blueprints. It is not necessary at this time to do the real design, since they will be used only for construction bids. Be advised, however, that you will be held accountable for any increase of construction costs as a result of later design changes.

You must be thrilled to be working on as an interesting project as this! To be able to use the latest techniques and materials and to be given such freedom in your designs is something that can’t happen very often. Contact me as soon as possible with your ideas and completed plans.

Finally, I consider all of this work a demonstration of your qualifications (or lack thereof) and so of course do not expect to be billed for this.

PS: My wife has just told me that she disagrees with many of the instructions I’ve given you in this letter. As architect, it is your responsibility to resolve these differences. I have tried in the past and have been unable to accomplish this. If you can’t handle this responsibility, I will have to find another architect.

PPS: Perhaps what I need is not a house at all, but a travel trailer. Please advise me as soon as possible if this is the case.