ilya's profileBetween the EarsPhotosBlogNetwork Tools Help
    July 23

    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.

    April 17

    The New Becoming, Verse 2

    …and the golems of the past, encouraged by the failures of yesteryear, were given new clay feet and new kingdoms to conquer. And the New Faith gave strength to us, Stewards of Desolation, to carry the water in the palms of our hands to the fires that are burning all around.

    March 30

    The Three “Pillars” of Enterprise Application Integration: Rubber bands, chewing gum, and duct tape

    Let’s say that you’re building a car. You’ve got your engine – a beauty of power and efficiency; your gas tank is made of a light alloy that’s just the right shape and size and strength; and your brakes are designed perfectly to stop your car on a dime. You’ve spent a lot of money on those high quality parts, a lot of time making sure the engine’s not underpowered and the gas tank won’t blow up, and you are now ready to put them together.

    …and so you decide to use drinking straws to get the gas from the tank to the engine, duct tape the gas tank to a frame hastily built out of 2x4s, and stick brakes to some mismatched wheels using chewed bubble gum.

    I’m not an mechanic, but i’m guessing you won’t get very far. It seems a no-brainer that the connections between the parts of the car should be as good as the parts themselves (something about a chain being as strong as the weakest link), otherwise, sooner or later, the whole thing will fall apart.

    Why, then, do we have projects where the connections between “workhorse” components and the framework that ties it all together are an afterthought?

    Back to the pillars… More often than not, these “pillars” of EAI are known as “PERL scripts”, “FTP”, and “Email”. If your inner *nix pit-bull is starting to growl, settle down: I’m not against any of those technologies. They all have their place.

    Put all three together, and you’ve got a fantastic recipe for a great proof of concept for an EAI (or EII) implementation, if you’re starting from scratch.

    However… there are few things more permanent than temporary solutions (that’s someone else’s quote; i can’t take credit for it), and after we add to that recipe a dash of “project ADHD”, a dollop of reuse, and a pinch of time, so your batch of reused proof of concept solutions turns into an unmanageable disaster of lost data, mismatched files, and inconsistent system state with little t-shooting information to help smooth things over with your irate clients (let’s hope there’s no legal action).

    This isn’t to say that a working EAI implementation can’t be done using just scripting, ftp, and email. A competent team with discipline, documentation, and unbelievable employee retention can probably write a script-based, transactional, instrumented, flexible, secure, and transparent EAI system using nothing but PERL and FTP, and keep track of all the scripts, manage state and change control, et cetera, quite well – even over time.

    The question is: if you have such a fantastic team, why would you waste their time doing that?

    Instead, wouldn’t it be better to recognize your file transfer and data exchange process for what it is – an EAI or EII effort? Competent EAI demands a different skill set and a different approach to implementation and governance.

    Unfortunately, without a top-down (sponsored and funded) approach to EAI, and/or a recognition of its importance, we end up with an accidental EAI solution, and, to finish off with the car analogy, get stuck carrying the engine on our own backs as far as we can take it.

    March 23

    The New Becoming, Verse 1

    …and the new year ushered in the New Becoming: out of chaos, came more chaos. And we called it Order, and there was much rejoicing and many fiery proclamations. Our future was now certain to come, and as the void consumed all else, our Order gave us New Faith, and the Old Faith became as if it never was.

    February 21

    Odd definition of abusive content on Facebook...

    i was leaving a comment for a friend on FaceBook (see pic below), and after trying to submit it, FaceBook told me that something abount my message was reported as 'abusive by Facebook users.' I wonder if it was "yikes" or "thinking" or "recession/depression" or "thing" or "fling" or "prohibition"? The dang thing wouldn't let me add my comment!
     
     
    of course... this blog is set up for import to Facebook notes via RSS.
    February 16

    The bane of consistency

    It occurred to me the other day that the expectation of consistency in all aspects of our life may have lead to a collective state of cognitive dissonance, which, depending on how well we recognize this state in ourselves, could contribute to surprising (to ourselves and others) behavior, depression, obsession, over-disciplined and regimented lifestyle, or other swings to extremes of some fashion.

    People are full of contradictions. We compartmentalize - neat in one aspect, sloppy in another; perceptive in some situations, strikingly blind in others; rational about some decisions, irrational in all else; and so on. Yet the expectations from our family, co-workers, friends, and employers may be that our "principles" or whatever we publically declare ourselves to be should guide us like rails through all situations, no matter what. We may have these same expectations of ourselves, further deepening the dissonance between who we are, and who we and the world think we ought to be.

    Expecting consistency implies the understanding of all inputs that affect the output (six sigma, anyone?). That is a tall order; "know thyself" is at best a life-long quest, and without that knowledge, why should we expect unfailing consistency? Every minute brings new context to events and circumstances, and with every action we learn something new about ourselves. The pressure to stick to our past personae and proclamations is unfair to our present and future selves, and reduces us simply to the sum of past experiences and labels; authentic evolution becomes more difficult. Expecting all-encompassing consistency from ourselves and others is a sure path to disappointment and frustration.

    Become aware of your own inconsistencies, when they happen next; it might be a thought, an action, a reaction, or a feeling. That inconsistency is like the solar flare, leaving the confines of your self-accepted boundaries and letting you glimpse into what is really making you tick; the train went off the rails for a reason, and if you pay attention you may learn something that otherwise would have gone unnoticed or suppressed.

    Once recognized, perhaps the inconsistency can be understood and reshaped instead as an expected, and desired, element of some other trait or characteristic previously undiscovered.

    Easier said than done, of course :).

    In case you're wondering, i've purposefully kept clear of providing details about what prompted this article. I was afraid that too many specifics would define my meaning too narrowly and preclude some folks from applying ideas expressed here to their own situation, which may be different from mine as night is from apples.

    February 11

    Questionable customer service

    I've had an email exchange with an IBM technical support representative about a FileNET issue we've been working on for a few weeks. The exchange has been going on something like this (names have been changed to protect the guilty, for some reason):

    • Me: "Jack, i'm interested in learning about your best practices in patch management, so we can figure out how to stay current with patches and at the same time not spend a lot of time on patch management."
    • Jack: "Here's a link to IBM support site [link omitted]"
    • Me: "Thanks for the link, Jack. I was more interested in best practices, recommendations, et cetera."
    • Jack: "We tell customers to install fix packs"
    • Me: "Thanks. I looked at the link you provided for the RSS feed, and i get an error message when i try to subscribe. can you help?"
    • Jack: "I have nothing to do with that. Try web support"
    • Jack: "Try this help file for RSS readers [link omitted]"
    • Me: "Thanks, Jack. I've been using RSS for years now. I'd like to investigate a better way of staying up-to-date with patch announcements and so on. What would you suggest?"
    • Jack: "Contact your Account Manager."
    • Me: "Do you know who that is?"
    • Jack: "Contact your Sales Rep."

    At this point, i've given up. Are we playing 20 questions here, or what?!

    I know he's a tech guy. I know i'm not asking him about SQL or CLI commands. I also know that he's pretty high-up on the tech guy totem pole, and i know that when he's involved, something's usually broken, which means that customer satisfaction is an issue. Wouldn't you think that from a CSat perspective he'd have a better idea of how to handle this situation? Something that offers perhaps even an illusion that he cares about our production environment and is invested in reduced down-time for his company's software platform?

    Here's how this entire exchange could have been shortened to 2 emails and turned to an actionable, positive next step:

    • Me: "Jack, i'm interested in learning about your best practices in patch management, so we can figure out how to stay current with patches and at the same time not spend a lot of time on patch management."
    • Jack: "Ilya, we don't have anything specific about that. You can try the IBM Tech support RSS feed, and i'll put you in touch with your Account Manager so you can provide your feeback to her and see if we can come up with a good way to get your systems patched and current."

    I hope i remember this for next time i'm in Jack's shoes...

    February 09

    Clean car makes me happy

    I took advantage of the beautiful weather this past weekend and washed my car. The salt-and-dirt encrusted wagon is now shiny and clean... The strange thing is that i feel different when driving the car now that it's clean. I find it odd that the outward appearance of my vehicle has such an effect on my psyche - even when i can't really see it. I'm wondering if it's pointing to some deep-seated self-esteem issues Confused.
    September 28

    I need a Blog++

    I have a problem. It's not a big one, and i think it's only a problem because i think it's a problem, but here's the rub: i find lots of very interesting stuff to learn about every day. I also have very little time to follow up on all that interesting stuff, to research it, internalize it, so i can ultimately make use of it some day in some fashion.

    I want to make a record of that stuff, lightly categorize it, and make absolutely sure that i can later find it easily, without spending tons of time searching for what i need.

    So, shat do i do with all that stuff? where do i file it? how do i store it so that it's easy to find, ubiquitously available (online and offline), and a snap to add to and expand?

    The two candidates that came out on top for addressing my problem are compared below. The other possible solutions i considered were Excel-type workbooks, and simple web-based lists (similar to what's available here on Live Spaces). The former is too tied to a physical location, although something like Live Mesh could fix that to some extent, and the latter are, essentially, a different incarnation of a blog (which is just a list anyway), so don't warrant their own comparison.

    Paper notebook

    Advantages

    • old fashioned :)
    • easily accessible
    • readily available

    Disadvantages

    • you have to have the notebook on you to make notes, which means carrying something else in addition to my phone (which is the maximum i'll carry nowadays, excluding my wallet). 
    • it'll become unmanageable as it grows
    • it's hard to write down URLs
    • can't really expand easily without making the whole thing messy
    • Sharing those notes is problematic, too.

    Conclusion

    Paper notebook, while may be an interim solution, isn't the final solution to my problem, at least not for me.

    Blog

    Advantages

    • easily accessible
    • readily available
    • easy to add to
    • easy to share
    • searchable

    Disadvantages

    • Requires an online connection, so it's only as ubiquitous as your phone's mobile web access
    • Not very suitable for capturing info about physical media (newspaper articles, for example)

    Conclusion

    • Way better than the paper notebook, but a couple of disadvantages make it less than ideal. After taking these notes, i'm thinking a software package that addresses the two disadvantages (offline caching, and some kind of a physical world-to-internet world interface might make this exactly what i'm looking for.

    How could the blog disadvantages be addressed? The first one, online connectivity, would clearly require something like Google Gears or a local data caching application and sync for online/offline entry of data and search. I'm not a Gears person, so i'd probably opt for a .NET data caching app for my Windows Mobile 6 device.

    The second one - bridging the physical-to-virtual gap - may be more difficult. One idea i had was using the phone camera for snapshots of physical objects, and integrating that into the data caching app for Windows Mobile for metadata/attribute collection. This would work, although it wouldn't be as effortless as my next couple of thoughts. One would be to embed a unique code (barcode, or a dataglyph) into each printed article (for example); this code would then be captured with a phone camera, and as part of my blog-caching app, be then sent to a central processing service for look-up. The result of the look-up (providing there's a match), would be then sent to my blog as an entry, indexed, and available for keyword search and retrieval. The data glyph approach is too fragile and will never be universal, so there's a flaw in that design :).

    An alternative to the ID glyph may be "fuzzier" in terms of results for the blog, but wouldn't require any change on the newspapers' printing process (this would make it much easier to actually implement in the real world, and wouldn't necessarily depend on the newspaper's willingness to adhere to the process). In this alternative, a photo of the article's first paragraph (for example) would be sent to the central service for OCR, and the text would then be used in a web search query. Some magic would have to happen after that, making sure the right result was sent back to my blog (probably in draft mode, pending my final review and approval). This also might actually be a "feature" rather than a detraction: it's a good way to add possibly related material to my initial article of interest, which is a good thing, considering that the point of the exercise is to expand my boundaries, and so including content i might not have stumbled upon on my own is very much relevant to that goal.

    So... sounds like a Blog++ is the answer to my problem. Now i just need to figure out if someone has already built it, and if not, how i'll go about building it myself :).

    August 02

    A Robot in every home

    Nice article on Microsoft Robotics Studio & the effort in general:
     

     

    June 09

    BBC story: Wireless energy promise powers up

    Another one of those "Future" technologies that'll take us to the next level...


    ** Wireless energy promise powers up **
    US researchers demonstrate a system to transfer energy to devices without the need for wires.
    http://news.bbc.co.uk/go/em/fr/-/2/hi/technology/6725955.stm

    March 13

    Discrimination

    Well-written speech on "hidden" and not always discouraged discrimination in our society against people with mental health issues. Please read it and pass it on, especially to those who have unwittingly erred...

    Down Syndrome Association of Delaware :: The Speech


     

    February 09

    Talking about BBC NEWS | Science/Nature | Cool clouds turn light to matter

    Really interesting stuff... we may be witnessing the birth of the real Future here ;)

    Notable quotes from the article:

    • "In 2001, working with a team from the Harvard Smithsonian Center for Astrophysics, the same group brought light to a halt..."
    • "...was composed entirely of sodium atoms, effectively turning light into matter."
    • "From a standing start, the reconstructed beam sped back up to the normal speed of light."

     

    November 06

    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?

    September 25

    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!

    August 29

    Strength Training Book

     often see younglings @ the gym, throwing weights around willy-nilly, doing silly things with dumbells... I cringe, but usually don't say anything - i'm not a "certified" anything in that area, and aside from years of experience, don't really have any other qualifications to offer "official" advice. plus, i don't want to come of as though i'm criticizing someone. It's all head trash, of course, but - it is what it is.

    If i were to offer some advice to folks starting with lifting weights, though, i'd heartily recommend this book: The Book of Muscle, published by Rodale Press and written by Ian King with Lou Schuler. In addition to going through every body part & muscle, explaining what it's for, etc., the book also provides a series of well-designed exercises for beginners, intermediate lifters, and those who have been doing it for years non-stop (that is, advanced).

    If gyms had libraries, this would be a must-have!

    On a personal level, I've been following the intermediate program for some time, and i'm impressed with the attention to detail and the methodical, easy-to-follow approach. I've definitely experienced strength gains, but also shored up the weaker muscles that are usually ignored if you're just "winging it". While i'm not yet Men's Health model material yet, i have confidence that The Book of Muscle can actually get me close! ;)

    The book is also good for another reason: it gives you the one source of info - something you can consult almost for any strength training need, without having to go to other sources and wonder whether what you're reading or hearing is worth listening to. Thumbs up to the book!
    Get this book on Amazon.com