Profilo di ilyaBetween the EarsFotoBlogAmici Strumenti Guida

Blog


23 luglio

How Twitter can be useful

Here's what will make Twitter useful for me:
 
  • Exposing software application events via Twitter, so i can 'follow' the critical systems events. My initial thought was to start with Windows Event logs exposed via Twitter (with some filtering, obviously); that's the low hanging fruit. The next thought was ensuring that Windows Event logs (or whatever) were populated by conext-sensitive monitoring software hooked into apps to provide business-level notifications, which would then be picked up by Twitter and 'followed' by interested parties ("Hey, your db cluster just missed a heartbeat", or, "You're close to breaking your processing SLAs, maybe check on what's up?")
  • Making Twitter reach across firewalls and into business apps. I'd like to submit my project time entries via Twitter. I'd like to post updates to my internal project blog via Twitter. I'd like to... fill in the blank. IOW, have the apps follow my "tweets", pick out the ones intended for them, and do something intelligent on my behalf.

that doesn't seem that outlandish, right? so far, the use of Twitter as a public IM system or another vehicle for messaging and spam underwhelms me.

06 novembre

Open Source: Dead or Alive?

Thinking recently about Open Source, I realized that I really didn't understand the drivers that made it such a popular 'thing' in recent years. So I did a little digging and read about Open Source licensing (Andrew M. St. Laurent book and Lawrence Rosen book - content available free [as in "free speech", and as in "free beer" I guess, too ;) ]) and economics to get a better idea. What I found is that Open Source as competition to proprietary software creation seems to be an inappropriately applied concept, as the two approaches target different audiences for different reasons and represent different models for Intellectual Property investment.

So, the first thing that i did not fully understand is that that Open Source is simply a model for licensing Intellectual Property. The definition of Open Source specifies that a piece of software can be freely re-distributed without royalties or other fees, source code is made available, original software may be modified or new works derived from the original, and a few other tenets (see the complete definition). Open source does not automatically equal "free software".

Open Source's primary economic driver is to reduce cost of commodity software development/consumption. Commodity is being defined in general as anything that doesn't bring market differentiation to the business, is available in equal manner to all businesses, but is required for effective business operations. Email, for example, or office productivity suites could be viewed as "commodity"; while a proprietary search ranking algorithm (a la Google's PageRank) commodity considered would not be (Yoda-speak).

Theoretically, the concept of "commodity software" is crucial to Open Source. A company has a lot of interest in sharing cost of developing commodity software alongside its peers or competitors. If no one gains competitive edge from the use of the commodity software, everyone involved in developing it benefits: each company spends much less than they otherwise would have had they developed it on their own; and on top of it all there's an active developer community that is focused on creating features that are specifically asked for, rather than trying to develop a mass-marketed piece of software with 80% of the features that may not be used by more than 10% of the users.

While the definition is easy to understand, I think commodity is easy to define but may be difficult to find in the real world. There aren't many pieces of software that aren't used to drive some efficiency in the business. Efficiency typically produces competitive advantage, so in theory any software (when properly implemented and scoped) would add to a company's competitive advantage. If it doesn't - why would you bother having it in the first place?

It appears that Open Source software is primarily important to hardware manufacturers who want to share the costs of making their hardware useful. Look at Sun, for example, or IBM: by making the Operating System that powers their hardware "Open Source", they can use the global development community to make their boxes more valuable! Makes perfect sense to me...

Unfortunately, Operating Systems are not, despite Sun's and IBM's great efforts to convince everyone of the contrary, commodity software. A great deal of Intellectual Property that makes an OS useful goes into its creation. This IP comes from years of research and investment. Taking this IP and making it, essenially, free, can only happen if you're able to subsidize it somehow (say, from your successful consulting practice, or hardware sales). I think support of Open Source is the greatest "play" by IBM & Sun could have made to further their hardware goals and, at the same time (which is especially relevant in Sun's case) undermine other Operating System manufacturers while furthering their own hardware/software/application ecosystem.

So, without getting into too much depth here, my current understanding of Open Source is that it makes sense as a development license in some narrow cases where Intellectual Property you're investing will bring you no business advantage. In non-business situations such as scentific inquiry, academic research, hobbying, etc. - it's a great way of lending your brain-share to a project. Economic prospects of Open Source are still up in the air, but in my not-quite-fully-educated opinion, in the long term, Open Source has questionable value to any business that uses technology as an efficiency-driving tool. The "free" aspect is great for cash-strapped college students, but everyone should equally realize that intellectual property requires investment, and any worthwhile investment should have a cost.

I can still change my mind - do you have any info that will help me do so?

25 settembre

How to move Business Contact Manager database to another instance of SQL Server 2005

If you're running the Business Contact Manager for Outlook, you've no doubt noticed that during the installation process, a named instance of SQL Server 2005 Express also gets installed. The instance is called MSSMLBIZ and is used to host the BCM database.

If you're like me, you already have an instance of SQL running, and are probably wondering why the heck you need another one, taking up memory and other resources. Wouldn't it be better to combine all the SQL instances into one, for efficiency and easy of management's sake? Yes, I think it would. I really wish the installation process would give you an advanced option to not install MSSMLBIZ and use an existing database instead.

You do have the option of connecting to another database server and even using an existing database for running BCM. However, in my experience the process of actually getting it to work is less than straight-forward.

First of all, the Configure BCM Wizard by default expects the database server instance to be MSSMLBIZ, and even if you don't specify the instance name as part of the server name, the wizard will specifically look for MSSMLBIZ:

If your computer name is COMPUTER1, entering COMPUTER1 in the server dialog box will actually cause the wizard to look for COMPUTER1\MSSMLBIZ database instance. To look for a default instance, enter COMPUTER1\ . Perhaps my experience here is isolated, but the issue doesn't stop here.

Even if you enter COMPUTER1\ to force the Wizard to look for the default instance, the next step in the wizard will still look for COMPUTER1\MSSMLBIZ. It's probably a bug in the software, which I intend to report. However, the trouble is that there's no way around it. I'm guessing that the registry key mentioned in the last section below is responsible for this persistence…

So, my advice is that you shouldn't even bother with picking the default instance. Instead, proceed with these steps to configure BCM to use a database on a default SQL Server Express instance.

Install BCM as it wants to be installed

  1. Yes, get BCM running using its favorite MSSMLBIZ instance and create your database on that instance. If you already have a database you want to use, you will have to either attach it to the new instance or do a backup/restore to re-create it.
  2. If you're using an existing DB, the Wizard will want to upgrade it
  3. Once the install/db configuration is complete, the Outlook Add-in will start and go through a little welcome/intro screen set, after which you'll be able to start/continue using BCM

Now you're ready to trick the Add-In into looking at another SQL instance.

Move database to preferred instance

  1. Exit Outlook
  2. Launch SQL Server management tools (you can use the Express Management studio if you don't have the fully-blown version of SQL Server; get it at http://microsoft.com/downloads)
  3. Detach your BCM database from COMPUTER1\MSSMLBIZ and re-attach it to the default instance
  4. Stop the COMPUTER1\MSSMLBIZ instance of SQL Server Express.

At this point you the BCM database is on your preferred (default, in my case) instance of SQL Server 2005.

Configure BCM to use default instance

  1. Launch the registry editor (regedit.exe)
  2. Navigate to "My Computer\HKLM\Software\Microsoft\Business Solutions eCRM" registry key
  3. Locate SQLInstanceName key – it will have the value MSSMLBIZ
  4. Delete the value, leaving SQLInstanceName blank

Now, when the BCM Add-In starts, it won't look for COMPUTER1\MSSMLBIZ and instead will connect to the default instance of SQL Server 2005.

Launch Outlook and verify that you have connectivity

  1. Launch Outlook
  2. If you don't get any BCM errors at startup, it means you've successfully fooled the Add-In into looking at your default instance.

At this point you can probably uninstall the additional instance of SQL Server 2005 Express and move on to reaping Business Contact Manager benefits.

Having other problems? Let me know!