VCDeploy.exe – Unable To Locate Component

This is a note for those who googled here after running into trouble while writing web services using ATL Server under VS.NET 2003.  I know this is a lame post for the rest of you, but these sort of posts tend to be useful to geeky desperados.

If you get this failure during deployment:

VCDeploy.exe – Unable To Locate Component

This application has failed to start because xxxx.dll was not found.  Re-installing the application may fix this problem.

then move the xxxx.dll to the project directory.  In my case, my web service needed Berkeley DB XML DLLs, but I deployed them directly from the Berkeley DB XML installation directory and ended up with the message above with no clue to be found anywhere.  Well, now there is one.

BTW, you will need to rebuild the entire Berkeley DB XML stack of DLLs if you are trying to use them from VS.NET 2003.  Otherwise, you'll likely crash and burn thanks to runtime library differences.

Phishing at eBay

As I mentioned before, I get at least one phishing e-mail everyday and today it was eBay.  I don't use eBay, but phishers don't care.  Its theme was account investigation and the stick was:

if the account is not updated to current information within 5 days then , your access to Buy or Sell on eBay will be restricted

Every link in the page pointed to eBay except the signin link above which pointed to:

http://211.169.249.254/~verification/index.htm

which returns 404 now.  Not very interesting as a phishing attempt but I couldn't resist the cool title.  🙂

e4Graph

e4Graph is an interest project, one I am keeping an eye on as the library matures.  e4Graph is a persistent graph storage library implemented on top of MetaKit.  Here are some relevant words to remember e4Graph by:

reliable, efficient, portable, persistent, storage, graph, C++

While MetaKit is mature, e4Graph is still very much a work in progress.  Still, I think the library will become more popular when we start to notice the limits of native XML databases.

Meanwhile, not having a .NET binding for Berkeley DB XML is frustrating.  Currently, I am using the C++ API in an ISAPI extension that handles access to DB XML.

Looking for Great Web Forms

While web designers are terrific at designing wild variety of great websites, I don't think much attention has been paid to designing great web forms.  From developer's point of view, forms are where the meat is and most forms I have seen are, while functional, neither easy to use nor aesthetically appealing.

I have seen a good looking forms here and there (i.e. TypePad) but it's difficult to find them when you need to pay respect to them.  If you have seen some good looking forms lately, please point them out to me.

Smack and Petri-Net

Smack is an easy to use Java API for XMPP (as in Jabber).  If you haven't heard of it, check it out.  I just wish it was as easy to use other IM technologies.

I felt into a mental hole today and found myself at Petri Nets World.  Since I never had formal training in CS, I haven't had the need to discover Mr. Petri's works until well into my easy-as-pie-compared-to-physics career.  To be truthful, I didn't understand what all the hoopla was about.  Anyway, the website is a good source of information and, particularly, links to useful tools though.  BTW, I like PNK (guide) for testing Petri-Nets.

Beyond Phishing: Content Snatchers

I love discovering little unknown websites with rich contents pulled together by dedicated enthusiasts and professionals.  I also enjoy online specialty stores with wild array of rare products from around the world.  It used to be that one could depend on them being trustworthy if they had a lot of contents because if they invested their time and resources to build the content, they wouldn't disappear overnight.  Well, not anymore.

Recent series of articles by silicon.com show that crooks are stealing small website contents and using them to setup new websites with little changes.  With the right tool, a thief can snatch every byte off a website, scrub off hidden tracking code, and set it up at another domain within a few hours.  Once the site is setup, they can attract new visitors in the same way other sites does, sell advertising or collect credit card numbers until they smell trouble (which could be weeks to months), and disappear without a trace.

Groove 3.0

Groove 3.0 is almost here.  I haven't tried it yet, but Stowe Boyd's preview of Groove 3.0 gives a good glimpse of what to expect.  I particularly like the fact that Groove 3.0 will be tightly integrated with the file system, turning folders into workspaces.  I didn't like Groove 2.0's work-inside-a-box UI at all, so this is a welcome change.

I had a similar idea in my stack of Big-Ideas-I-Have-No-Time-For called Chutes.  Chutes are containers for code and data that maps to a native folder.  A chute folder has three area: inbox, outbox, and content.  Shortcuts to chutes can be mailed or displayed on a webpage so I can share a chute I created on my desktop with my collegues or people who visit my webpage.  To send me a file, you just drop the file into a chute and it will show up in the chute's inbox at my end.  To access files in my chute, just open the chute to see what's there.

One feature of Chutes which I am not sure Groove 3.0 has is bots that lives in a chute.  Chute Bots are little programs that processes objects within a specific area of a chute.  For example, a printer bot drgagged into the inbox of a Printer chute will print documents dropped into the chute by anyone, remove the document from inbox, and drops a status report in the outbox.  If the outbox had an e-mail bot, the status report can be mailed to a configured destination like sender of the original document.

I am looking forward to Groove 3.0.

Talented Frankenstein Feeds

Last month, I was seeing feeds everywhere and jokingly mentioned that I might end up thinking of myself as a feed.  JY, commented that he already did.  Anyway, I did started thinking about what it meant for a person to be a feed and ended up with an inverted question: what if a feed is an object?

Nothing surprising there.  Prodding along, I got to: what if a feed is a music or a movie?  Now that is an interesting question.  If so, one should be able to play a feed as one would an MP3 file or a movie.  Since it is confusing to think about music and movie feeds at the same time, I abstracted the feed into a performance feed: feed of performance whether it is a rap song, a poem, movie, or just a video of ocean waves.

Now, what does such a feed look like?  At syntax level, it would be an RSS feed containing many items of enclosures for audio and videos.  Since it is a performance, each item plays a part in the performance.  To synchronize the pieces of a performance, some items will contain SMIL fragments to pull the pieces together.  Let's call those items composition posts.

Rising back to social software level, how do those pieces get into a performance feed?  This question leads to a feed with many contributors where a traditional blog feed has only one contributor, the blogger himself.  That's still not exciting enough.  So the wiki concept is thrown in to end up with a feed into which anyone can contribute.  Some would contribute musica, video, or images, others would pull them together to create compositions.

Going back to the player side, when a listener would use a Performance Player to open a feed, a list of compositions would appear.  Note that the feed will continue to grow as more people contribute, so the list of composition will grow over time.  The listener selects a composition and plays it.

Now THAT is exciting.  Why Frankenstein?  It's a creation made out of pieces from many people, isn't it?  While I was thinking about this idea, the final vision I had was of Frankenstein singing atop a mountain at night with full moon behind him and his voice was that of a thousand people playing a music together.

Blogger Cert

In the last geek dinner in Palo Alto with Scoble and others, one of the things we talked about was how blogosphere tend to build trust.  If you have been reading a blog for a while, you get to know the blogger.  A blogger whose blog is more than a year old and has many thoughtful posts, the blogger has created a foundation for trust just as a person who lived at the same address for 10 years does.

Why not put shape to that trust with a security certificate?  Services that has been monitoring and possibly archiving blogs for a while, like Technorati and Feedster, can measure how old a blog is and how active it has been and then issue a set of certs to the blogger based on that information and others.  We can then use the certs within the blogosphere for signing, identifying, and encrypting.