Welcome to GASP Sign in | Join | Help

I've been reading "The E Myth Revisited", by Michael Gerber. The book is all about entrepreneurs and small companies, and why they usually fail. The following quote is right at its start:

"Businesses start and fail in the United States at an increasingly staggering rate. Every year, over a million people in this country start a business of some sort. Statistics tell us that by the end of the first year at least 40 percent of them will be out of business. Within five years, more than 80 percent of them will have failed.  [...] And more than 80 percent of the small businesses that survive the the first five years fail in the second five."

Create It is now over 7 years old, and 16 people strong.  It makes me proud to be in the small percentage of companies that do make it (although we are still 3 years away from the danger zone). :-)

Meanwhile, on the technical side, I've been trying out the new BizTalk Services R12 release, which includes (hosted) Workflow support. It's limited in the sense that there are not many activities included, and there's not yet rich and integrated tooling, but it's an interesting start nonetheless. Well worth exploring. And on another track, I've been looking into BizTalk Server R3. The new features do look interesting, although clearly in the "evolution" side of things.

Finally, I've been getting ready for the PDC2008, in October, where it's interesting to note that the topic "Cloud Services" is the one with most sessions. If you want to learn more about this topic, I recommend you subscribe to the Cloud Computing group hosted at Google Groups (but not specifically Google-related or sponsored). Interesting discussions there.

The PDC 2005 was the best conference I ever attended. Seeing WF and WCF for the first time, as well as the DSL Tools and lots of other stuff, plus the several contacts I did while there, helped understand what was to come in technology, and this help |create|it| prepare for this future.

I am also attending this year's PDC2008, where a lot is expected, for example, in what regards Microsoft's approach to Cloud Computing. BizTalk Services is sure to be there, as well as BizTalk "Oslo", Live Mesh and other initiatives like SQL Data Services. Just check the session list, full of vague descriptions so as to not spoil the surprise, and you'll realize this has the right ingredients to be a great conference again.

I know of several other (Portuguese) people who are attending, and if you can, try to be there. The PDC2008 is about future technologies, and it's the Microsoft conference to attend this year.

Microsoft has published a few days ago a new guide around optimization of BizTalk Server performance. This is a lengthy guide (over 200 pages), but it has a lot of very interesting information, some of which you can't find anywhere else, and there's always something to learn. Highly recommended. You can download it here.

A second recommendation is a little tool that is very helpful in gathering information about a BizTalk installation, and which also gives you a report about your installation. A little like the BizTalk Best Practices Analyzer, only deeper and with more information. It's MsgBoxViewer, and you can download version 9.20.3 here.

Last night I finally had the opportunity to install the new Game Studio 3.0 CTP, and deploy some games to my Zune. I've tried 4 games (the official sample plus stuff I got from ZuneBoards) and one app (an e-book reader).

These are very simple, and most of them had small quirks and bugs that occasionally restarted the Zune, but my music and podcasts are not damaged in this process.

What disappointed me a little was the control schemes: the Zune touchpad is very sensitive, and some games use this, others use clicking on the large button, with wrong moves being done frequently. For example, when playing Sirtet (a clone of Tetris), I have to click the left part of the large Zune button to move the pieces left. Frequently, while doing this, I'd end up clicking either UP (rotate piece) or the center of the button (hard drop of the piece). Clear nuisances! And I imagine left-handed players will have the inverse problem.

Other interesting thing is that people are using XNA/.Net to develop applications for the Zune, some of them are here. Most seem like early releases of simple stuff, like clocks, stopwatches, instant messengers, phone books or text file readers, but are very interesting nonetheless.

A final note to mention how quick and simple the process is: just connect the Zune, open Visual Studio, select the Zune as the deployment location, then build your project and select Deploy. DONE!

Microsoft has decided to re-award me with the MVP title for another year, still in the BizTalk Server category, which means another year in the wonderful world of Connected Systems technologies, and more learning ahead. :-) Hurray! With Oslo and BizTalk Services coming out with new stuff at the PDC2008, there will certainly be a lot to explore.

I've never been involved either in game development or frequent gaming, but being an Xbox360 owner in the last 6 months, I've been paying more attention to the field.

Last night, local Microsoft organized an XNA Game Night, where 6 teams showed off some of their game dev skills. Most of the games were simple (with 2 exceptions), some of the PC and some for the Xbox360 (none for the Zune!), most of them Arcade-like games, but it was apparent that XNA is a very interesting platform for game development, and it's very easy to get caught up and seduced by ideas and start thinking about giving it a try. Guess what I'm downloading... :-)

Anyway, if anyone is interested, some starting points are the following:

Microsoft XNA Game Studio 3.0 CTP

XNA Creators Club

XNA Developer Center (@MSDN)

I've been trying out Live Mesh in the last few days, and I am amazed at how well it works, and at the possibilities it opens in terms of the paradigm we use to interact with our resources. It's admittedly not a completely new idea, but it's new in the way it is realized.

Before I start: in the last few months I'd been using Mozy to do online backups to my personal laptop. Mozy installs a client tool that monitors changes in my files, and uploads them to a online repository. Another interesting feature is that it adds a new option in my windows explorer's contextual menu, which allows me to browse and restore previous versions of each file.

Live Mesh, in many ways, is similar to this. I browse my file system, select folders to sync to my online Live Desktop, and the client tool it includes uploads those files to the Mesh, maintaining them synchronized. I can then open them either from the web page or any PC with the client tool installed. I can also start a remote desktop connection to any computer in my Mesh. My desktop, anywhere. (but that would be an old slogan :-)).

Anyway, this is a very interesting development (still needing perfecting...), and I'm looking forward to use it widely, since it's still a Technical Preview).

If you want to learn more, while this is not yet completely public, the best source is the team's blog at http://blogs.msdn.com/livemesh/ .

Now, what I would really like to see in this platform is a Silverlight interface, using Deep Zoom to browse the "desktop". That would be cool, and an interesting desktop interaction model to try out.

This development is apparently in no way related to BizTalk Services, which kind of surprises me, and I have yet no idea what the programmability possibilities are/will be.

Jon Flanders and Aaron Skonnard wrote "Connect Enterprise Apps With Hosted BizTalk Services", an interesting technical overview of BizTalk Services and the feature set it provides today. If you are interested, this is probably the best introduction you can find. Especially relevant is the Identity/Claims configuration part, at the end.

I've just had my longest vacations in the last 4 or 5 years. And it was great :-). The week started off with the MVP Summit 08 in Seattle, with several sessions about what's coming in the Connected Systems space, namely with things like BizTalk Oslo, modeling and "D", tooling, and many an interesting thing I can't unfortunately talk about. I've also had the opportunity to learn a bit more about BizTalk Services and what's coming in that space, and do a lot of networking. This year in the Connected Systems space I had Pedro Félix as company, the recently-awarded and only Portuguese "Connected Systems Developer" MVP.

Since the Summit, BizTalk Server R3 (the "old girlfriend", as it was amusingly called at the a session) was announced by Steve Martin, and will included a set of interesting new features. Not quite a revolution, but interesting developments anyway. The BizTalk Hotrod #4 issue is out for you to check out (I especially liked the ESB Exception Management and WF Hosting in BizTalk articles).

Anyway, just wanted to ping: I'm back. :-)

I don't usually post lists of links, but I've been reading all that has been coming out following the Google's AppEngine announcement, and thought it would be a good idea to systematize these.

Bungee Labs - Next Generation Web Development Platform
an ambitious new on-demand, web-based development environment that enables developers to build and deploy web apps that utilize the large variety of APIs and web services out on the Internet

BungeeConnect
The Bungee Connect Platform-as-a-Service is a single environment for the development, testing, deployment and hosting of amazing web applications. Bungee Connect powers highly interactive user web applications built 80% faster and at a cost tied only to end user adoption

Google App Engine: Cloud Control to Major Tom
Google App Engine is similar to the Amazon Web Services stack, which rolled out at the end of 2006 and has since gone on to be utilised by many startups for their infrastructure needs. But it is not a set of standalone services like Amazon's - which includes S3 for storage, EC2 for hosting and the SimpleDB database. Google App Engine is an end-to-end service and bundles everything into one package.

Red Dog: Microsoft's Answer to App Engine and AWS?
Kip Kniskern over at the LiveSide blog spotted a Microsoft job advert that appears to give some insight into a cloud computing platform under development at Redmond that could compete with Google's just released App Engine or Amazon's suite of web services. The utility computing platform, codenamed "Red Dog" according to the job ad, is under development at Microsoft's Cloud Infrastructure Services (CIS) team and aims to see a version one release within the "coming year." What little info is provided by the job posting is rather obscure, but there are a few juicy tidbits to be had.

Google's App Engine: Aiming At Facebook, Not Amazon
If the Silicon Valley echo chamber wants to make up a competitor for AppEngine, its proper correlate (by a whisker) is Facebook’s F8 platform. If you must cram this new service into a pigeon hole, think of App Engine as the Facebook Platform for the grown-up web.

App Engine: Host Your Apps with Google
It's about time that developers get access to Google's platform! We've been hearing about Google's server farms and development tools for years. After Amazon Web Services started doing so well we all knew it was just a matter of time (next will be Microsoft we can can safely assume). Though the obvious comparison is to AWS, they aren't really the same beast. Amazon has released a set a disparate services that can be used to created a general computing platform. The services, though they work together, do not come bundled.

Linxter Internet Service Bus (ISB)
Linxter is an in-the-cloud, customizable communications infrastructure for distributed applications providing hyperconnective, secure, assured information delivery.

Google AppEngine
Google App Engine enables you to build web applications on the same scalable systems that power Google applications.

Red Dog: Yet another unannounced Microsoft cloud service
I believe Microsoft is working on a hosted app platform for developers, with BizTalk Services and SQL Server Data Services (SSDS) at its heart. In fact, I‘ve heard the codename “Zurich” attached to this Google-App-Engine competitor. But are Red Dog and Zurich one and the same? I think they are different, and all part of the big Microsoft services plan in the sky.

Google unlocks its data centers
Where's Microsoft?

Food for thought.

Last night I delivered a presentation in a GASP meeting on cloud computing, social networking, impacts on architecture, development, and even society. A conceptual and high-level session, destined to dissect today's trendy tendencies.

The information about the meeting is here (in Portuguese), and the slides are up at my skydrive.

While developing BizTalk projects I frequently end up developing mini-tools to automate small and/or repetitive administration tasks. One of these, which I recently generalized, I use to turn on or off multiple "Enable Failed Message Routing" options.

Here's how you can use it:

TurnFailedMessageRouting * on DbServer - turns on the option in all the send ports and receive locations in all the applications in the configuration database in server DbServer.

TurnFailedMessageRouting MyApp off DbServer - turns off the options in all the send ports/receive locations of application MyApp in the configuration database in server DbServer.

So:

  • The first parameter is mandatory, and can have as value "*" (meaning all the applications) or a single application name
  • The second parameter is mandatory, and can have values "on" or "off"
  • The third parameter is optional, and it is used to specify the name of the server containing BizTalk's configuration database. If this value is omitted, "localhost" is used.

The source code is in the attachment, it's pretty simple, use and change it freely. Most of it uses the BtsCatalogExplorer functionality.

(note: this can be done using script, I just prefer coding in C#).

Download at my SkyDrive: BizTalk2006.TurnFailedMessageRouting.zip

A few years back I read Francis Fukuyama's "The End of History and the Last Man", a book that presented and defended the theory that the current political and economical status quo/zeitgeist is as good as it gets. There's supposedly no better system, hence the title of the book. This was a book I profoundly disagreed with, but had to admit it had strong and extremely intelligent and well built arguments.

A few days back I finally ended reading Nicholas Carr's polemic "Does IT matter - Information Technology and the Corrosion of Competitive Advantage". Being in a company that has "IT" in its name, the contents of these book are very relevant. The author spells a message similar to Fukuyama's, but applied to IT, stating that IT cannot be seen as giving a real competitive advantage in today's markets: whatever lead the use of Information Technology gives to a given organization, will be quickly replicated by its competitors. Additionally, the author defends that IT is becoming infrastructure, much like electricity or the railway (or other means of fast transportation). This analogy with electricity actually is used throughout most of the book to sustain the main thesis: no organization strategy today is based on the fact that the company has access to "state-of-the-art" electricity. And, consequently, no organization can base their strategies/market leads in investments in information technology.

This book had a lot of impact a few years back, and like Fukuyama's, has strong, extremely intelligent and well built arguments. It's a book I profoundly disagree with, as well, one that made me scribble lots of notes on its margins. Howard Smith and others wrote a book dedicated to contradict Carr, and there is information all over the net about this, so I doubt I can add much to this argument, so I'll just leave some notes: there are a lot of anecdotes in the book that justify some positions. While stories and specific cases are interesting to know, they are hardly proof of anything: there are probably as many examples pointing in the opposite direction. The last part of the book I found especially dishonest, when the author compares the impact of IT with that of basic living conditions stuff, such as clean water to drink, or sanitation. My answer to this is: can't the same be said of BOOKS (=recorded human history) and that same water/sanitation? We wouldn't have this world without it. This is the stuff of journalist rhetoric, and not honest discussion.

ANYWAY, changing gears, I do think several of the arguments in the book make perfect sense. The emerging trend of moving into cloud-based, hosted, software, is clearly a step that brings more truth the analogy of electricity and IT (software is just... there, somewhere, I don't really care). Having the software is no longer the advantage. At least, not for long periods of time, as it will be replicated by competitors sooner or later. So it all comes back to good, ol', business strategy and practices.

The question I now pose myself is: how can I, aware of this line of reasoning, "sell" a project to a customer based on its technology merits? I happened to have a conversation with a long-time client and business partner about the book, which he had also read, and 5 minutes later the topic changed to a possible new project we are doing with them, where I am proposing brand new technology, one month old. I couldn't help feeling something was wrong. I am going forward with it, especially because it's a very sound architectural approach to the specific business problem, but I feels uncomfortable anyway.

Changing to the second, related, topic of this post: in college, quite a few years back, I remember studying Amdahl's Law. It basically states (if I remember correctly) that the impact of a given change/optimization on a component of a system has an impact on the full system that is proportional to the relative importance of that component in the full system. Simple proportionality rules. An example. Like I said above, I have this situation where I am considering using this new technology that just came out. In the typical projects we do at |create|it|, 40-60% of the effort of a given project is spent in development/programming tasks, so let's consider 50% as the average. Let's suppose this technology is applies to 10% of the project, and that it allows me to cut in half (50%) the development time. This means, summit it up, that if the project had 100 days of development, we'd be saving the customer 0.5 * 0.1 * 0.5 * 100 = 2.5 days, or about 2.5% of the total cost of the project. And this is discounting the learning curve, obviously.

This whole rant is related to constant flux of innovations and new technology being made available almost everyday by Microsoft and other vendors ("can't they just stop for a few months?" - sentence I heard recently), and it serves as a kind of reality check. It's important to measure the impact of the technology we choose for our projects, especially if it's new technology. I'm just bundling here for the sake of example, but make sure you have an answer, when a customer asks you what's in it for him when you decide to use Linq, the Entity Framework Asp.Net MVC stuff, WCF/WPF/WF, Windows or Sql 2008, etc.

That said, and since I personally thrive on innovation and breathe new technology :-), I'll make sure I have that answer. It's a different world, out there in "Does IT matter"-land.

By the way: the new technology I mentioned is the BizTalk Adapter Pack.

A few days back I delivered a presentation on Microsoft's ESB Guidance Package at TechDays 2008 in Lisbon. The session included demos of the ESB and BizTalk 2006 R2. The slide decks (mostly in portuguese) are avaliable at my skydrive: INT05 and INT06.

I've been playing with the ESB Guidance for some time now, in preparation for the session I'm presenting at TechDays 2008 on that topic. While doing this, I had to solve several small problems during installation, and also getting the samples running. Here are some tips for those who are brave of heart :-):

  • Follow the installation steps as described in this video and blog post. Use the installation manual only for reference. When in doubt, trust the video. And don't skip any step, or things WILL break later.
  • In the above video, there's a mistake when a Xml segment is pasted to Btsntsvc.exe.config: there's a "[path]" that should have been replaced with the real path. This will break the Itinerary samples/functionality. Also, note this thread in the ESB discussions (especially the post by user pkelcey) : remove the newlines between the folder and the XML element, or BizTalk will go crazy with restarts.
  • The docs mention an hotfix for BizTalk Server 2006 R2: KB943871. This code is wrong. The correct code is KB944532. This is actually an interesting hotfix, because it adds four useful properties to BizTalk's default fault schema.
  • The ESB Guidance is not regional settings agnostic. Everything will work if you have everything installed with English-US, however I had BizTalk's user running with Portuguese-Portugal. The date formats are different, so no faults showed up in the ESB Management Portal, even if everything seemed to work correctly. To fix this, see this thread.
  • Samples: unfortunately, there is no video explaining how to install the samples. You'll have to follow the docs. Some warnings:
    • The MSI's ("Windows Installer Files") mentioned don't actually exist in the package. You'll always have to follow the "Install the [component] from the Binding File/Solution Project" alternative.
    • Be careful not to install the same thing twice (especially when installing the Itineraries/Resolution/Rules parts). The instructions go around themselves and you can be led to install the same thing twice.
    • Always manually check the contents of every bat/cmd file the instructions tell you to run. One of the problems I had was with the create user part: my BizTalk installation is local, not in a domain, and the script didn't create the user nor complained (... "On Error Resume Next" ...). The creation of App Pools and Web Sites in general worked correctly, but be careful. I actually preferred to do some steps manually. Oh, and again, be careful to avoid doing the same thing twice.

As a conclusion: I wish the ESB Guidance Package had a much simpler "next-next-next" installation. The package has a lot of great stuff done with care, all the source is available, and I'm sure all the BizTalk developers and architects will find some use for parts, if not all, of it. The installation process and the documentation definitely turns people off, however. When in doubt, check the discussions on CodePlex.

I hope to post more information about the ESB Guidance in the next weeks, and maybe a couple of videos of the demos.

More Posts Next page »