Tuesday, August 26, 2014
It has been a while folks. To anyone out there still listening, I will be speaking in the Cloud Security Congress 2014 in Singapore touching on "Rethinking the security paradigm in the new world of the Internet-Of-Your-Things".
Rethinking the security paradigm in the new world of the Internet-Of-Your-Things
With the perfect storm of Cloud Computing, Big Data Analytics and Machine-Learning movements all coming together forming key pillars of Internet-of-Things (IoT), there are good reasons to be worried if we don’t start re-thinking about how we traditionally look at security paradigms. William will discuss briefly on key problematic scenarios that the industry will have to look at if we are to achieve the full promise of what an industry-led IoT can deliver.
Do drop by for a good geek-out and networking session
Monday, November 07, 2011
After so many months of starts, stops and many distractions, I finally took the time over the (long) weekend to port my Windows Mobile 6.0 GeoBlog application over to Windows Phone 7. I had searched and waited so long for a similar application on the Windows Phone Marketplace but none were there that could do what I wanted it to do.
While geo-taggers, geo-markers can be found in the dozens in the Windows Phone Marketplace, most of them doesnt allow you to share with your family and loved ones on the trails you have been to, local or somewhere exotic and far-away. Even the ones piggy-bagging on Google Maps doesnt have certain features like adding comments, taking pictures with each geo-blogging location.
Hence, I decided to port my Windows Mobile application to Windows Phone 7, taking this opportunity to add and further enhance some of the features along the way. I named this application WP7 GeoBlog and I will be taking this along to the Great Ocean Road a few weeks later.
If you have a developer-unlocked or jail-broken WP7 and want to try this out, feel free to drop me a note here. For now, I will leave my readers here with an image that my WM 6.0 GeoBlog application generated when I was in Hokkaido, Japan last year.
Wednesday, April 13, 2011
The better-than-expected response to my SG-Drive in Windows Phone 7 Marketplace has resulted in some user feedback for a leaner version of the application. Feedback collected suggested that there is a need to just have the very-popular Navigation features of SG-Drive alone to cater to the international market who doesn't reside in Singapore. In this sense, the application would have a broader-based international appeal and I am able to price it below the psychological USD1.00 barrier mark.
I am happy to announce the release of NaviRoutes today. NaviRoutes is THE WP7 Navigation Application with Map Visuals and Live-Traffic Conditions on the Map. The trial version has limited functionalities such as incomplete navigation routes and directions, no map visuals, no live-traffic information, etc
In just less than 10 hours, it has racked up 5 downloads. I am also mindful to market NaviRoutes out of the Singapore context since the Navigation features really work everywhere. Well, almost everywhere.
If you are interested, please search for "NaviRoutes" in Windows Phone 7 Marketplace or use any of the Navigation key terms to reach the application. Thank you for your support.
Wednesday, April 06, 2011
One of the hidden is what I thought to be the most useful setting in IE9 - and that is to be able to split the STOP and REFRESH icons and move it before the address bar. This effectively reduce the cluster on the right of the address bar. Because all those icons were bunched up together by default, it was hard to see what you want to do and easy to make the wrong clicks.
Right-Click on the icon cluster on the right of the address bar to make that change.
Saturday, January 30, 2010
Via here: BizTalk Server 2006 R2 SP1 is now available !!!
These 2 factors are great improvements, or rather - fixes:
Better reliability, performance, and scale for the following key features
- Throttling and dehydration of orchestrations.
- Archiving and purging operations.
- BAM alerts and archiving.
- Reduced memory consumption in scenarios using scripting functoids.
- Improvement in the bts_FindSubscription stored proc, resulting in faster execution and lower CPU utilization.
Better management and deployment experiences
- Performance and user experience improvements of key scenarios.
- WCF configuration management.
- Significant improvement in deployment time for send ports using a map.
While still some time away, I am very looking forward to BizTalk v.Next where there will be some very interesting innovations to push the low latency envelope (every bit of pun intended).
Thursday, December 03, 2009
Sigh. I try to avoid commenting or referencing public marketing furor over Microsoft because I am just not a cult-fanatic or hold a religious view on technology (for Goodness sake - Get a life ...) BUT the story that PervX ran that says: "Black Screen woes could affect millions on Windows 7, Vista and XP" is really saying something about the responsibility issues that comes with technology journalism.
Gosh - really, is there nothing we can do about this ?
Obviously, PervX was made to eat their own words. They issued a public apology to Microsoft but there is obviously still a sense of denial in between the lines.
Ed Bott says it best here and how I wished this furor they caused stays with them for a long time until redemption time comes. As what Ed says in his closing para: "As for Prevx, they deserve to be laughed out of the security commmunity for their role in this fiasco."
Thursday, January 08, 2009
A short but note(pun-intended)-worthy blog entry. Microsoft releases SongSmith: Karaoke in reverse.
Microsoft Research on Thursday is releasing software that gives musicians, both casual and professional, a new way to speed up song development. Called SongSmith, the $29.99 application creates musical accompaniment based on whatever is sung into the computer's microphone.
In order to do this, the software processes the pitch and tone of what's recorded and lets users hear how it might sound if they had a little backup in the form of a virtual piano, drums, and keyboard. Microsoft is expecting them to use the new track either as inspiration for further song development or as a simple way to create karayoke-quality recordings for friends and family members.
The software lets users change the feel of a song completely using various sliders that adjust mood, volume levels, tempo and what instruments are being used. Users are also able to purchase additional instruments from Garritan for a small fee that can drastically change the way a track sounds. Each purchased instrument comes wrapped in a special installer that automatically adds it to SongSmith. Dan Morris of Microsoft Research tells me there may eventually be a marketplace for other sample providers, although for now the software is using it exclusively because of its the only compatible format.
SongSmith lets you simply sing into your computer's microphone to hear what it would sound like if you had a back-up band.
(Credit: CNET Networks)
SongSmith is starting out as a digital download only, and will be available from Microsoft's recently launched digital downloads store front. Morris says there are no current plans to make the software part of a larger suite of music oriented products from Microsoft. Competitor Apple has offered a slightly similar feature in its Garageband software that gives you virtual band mates that can accompany you as you record music with an in-line microphone, however each of the instruments must be programmed by the user.
One interesting thing to note is that the technology is fully capable of providing automated accompaniment in near real-time. Morris says the only hurdle there is that the programming does all its magic by seeing where users are going with a melody and compensating accordingly. Morris also says a Web based version of the software could be possible later on down the line, although development in that area has been slowed down due to latency and recording quality bottlenecks.
Embedded below are before and after clips of what SongSmith is capable of. As mentioned before, to change the sound of this song users simply need to adjust a slider or two.
Friday, June 13, 2008
I had recently purchased a Canon Hi-Def Flash Camcorder HF100 at wholesale price (please dont ask me how much and where I got it from). There was a long thought process before this high-end purchase. I knew I wanted a camcorder to record in Hi-Def (HD) format. The question I had was the recorded video format. I did some research and poking around and there were some pros and cons that I was seriously considering such as:
- What is the recording storage medium ?
- What is the recording format ? If answer to  was a DV Tape or sort, then the answer would probably be HDV/MPEG-2 format.
- Do I have enought processing power / software infrastructure to deal with the answer to  ?
In the end, I decided that I would not want to do the route of using a DV Tape. Tape is proven, tested, good, mature and cheap but has its limitations. The fact that it is a sequential access medium puts me off. Even newER backup solutions of today seems to provide disk storage, whose prices have dropped in recent years, as an alternative to tape. Usually, the restoration granularity and the time it takes to restore is the deciding factor for customers to champion disk over tape. Moreover, if I record on tape and then later edit on disk, it does somehow seem that I am going backwards.
So, instead of carrying bulkIER tapes around with me (and I do a lot of random recording), not forgetting that the housing for these tapes in the camcorders itself does take up some bulk and effectively limits the handling of the camera at hand, I dumped the idea of either the Canon HV20 or HV30. Mind you - their dual recording format in a choice of either Standard-Definition (SD)or HD is really attractive but I doubt that I would want to record in SD in a couple of years down the road where computing power, screens, bandwidth are all commodities.
That left me with Question  above. What does it take to process/edit those videos ? From searches of many forums and reviews, a lot of people buy a AVCHD Camcorder (such as the Canon HF100) without realizing that they dont have the infrastructure to process and edit the recorded HD clips. I guess a lot of peple dont realize that there is not much choice of video-editing software that can process a AVCHD video clip today. So. what most of them did was
- Pay X Dollar for the camcorder and then 2X Dollar for a brand new Mac - Holy Smokes. Since when does money grow on trees ?
- Pay a couple of hundred dollars more to buy a decent video editing software such as the Pinnacle Studio or the Sony Vegas
I didnt like both options. First or all, I edit video clips - Yes - but I dont consider myself to be a "pro-consumer" of sorts that would want to fork out much money just to have 3000 over video transitions up my sleeve ... and ... I am not a MAC fan. Yes, I admit. Crucify me. I am just not genetically engineered to use a MAC or any of Apples' products. Yes, I love my ZUNE and its marketplace very much. Thank you.
Therefore, I had to look for an intermediate solution since my old, trusted and most FREE Windows Movie Maker and Media Player cannot handle AVCHD video files natively and I am not willing to fork out anything more than SGD100.00
Luckily, my prayers are answered and my search leads me to media\video developer ShedWorx who has the VoltaicHD for both the PC and the MAC. Bascially, VoltaicHD transforms your AVCHD High-Def video clips to WMV-HD, which both Windows Media Player and Microsoft Movie Maker can handle. FAQ here. This little known shareware (just USD30.00) has gotten some great independent reviews so I went for a trial, downloaded a sample AVCHD .MTS file and it worked like a charm.
[Note to ShedWorx]: Now if you could make a command-prompt version of your awesome tool, that would be a great addition as it would complete a workflow scenario of an "unattended" conversion process of the captured AVCHD .MTS files to WMV-HD.
With that, I bought it and went broke but GOSH - what a camcorder !!! Its light, intuitive, great handling and churn out great looking HD video clips. I guess the reviews out there in the wild will do it better justice than me writing about it here.
Yes, the computing power and storage resources are high. At the best quality mode, the HF100 records at 17Mbps and my usual mode would be to record at a compromised (between storage and battery power) bitrate of 7Mbps. Even with a decent Core2 Duo Processor T7200 2.0 GHZ (highly-rated) Merom chip and 2Gs of RAM that I have, editing a WMV-HD 7Mbps video clip does require some patience. And the file recordings are huge - as a rough gauge - AVCHD are abt 120Mb (15MB) /min of footage and becomes 500Mb (wmv) after decompression !!!
Luckily, I delegated the conversion of AVCHD -> WMV-HD files to one of my servers, running a Dual Core XEON Pro 5140 2.33GHZ 4MB L2 cache 1333MHz FSB - Woodcrest Chip and this was much faster, comparatively. In any case, this can be done unattended, and this would also give me a good excuse to plug in another same processor on this 2-way box in the near future. .
All in all, this is a great buy at near-wholesale price and I already had quite a lot of fun doing roving and recording real 1080p high-definition videos and enjoying the processed WMV-HD clips on my wide-screen LCD monitor, my HDTV as well as my Rapsody N35 media center (which plays WMV-HD High-Definition videos).
Below is a "short" clip I took with the above Canon HF100, with the sarcastic emphasis on "short". I took this 50-second clip in full 1080/9Mbps HD glory. Uncompressed file size is 210MB. In order to "dumb" it down so that it can squeeze and play better over the HTTP ravine, I had to re-encode it to a smaller scale/Mbps at 856x480/3Mbps. Even then, this same 50-second 856x480/3Mbps clip's file size is still at a large 19MB !!! If you blow up the player to your full-screen, you can see that it maintains a clear and good quality at full-screen even at 3Mbps. Mind you, the source look great on my local playback at 1080/9Mbps/25fps.
Tuesday, February 05, 2008
Great Poster for reference. Courtesy of wikipedia
Saturday, August 18, 2007
MSFT Corp has always talked about its ecosystem with regards to its developers and partners as one of its key value propositions which it offers through its platform to its customers.
Sometimes it is humbling to have customere call on you because its other systems can only work with yours and no one else. I have totally lost track of our ISV partners who are building great vertical solutions on top of our horizontal application stack, such as Microsoft Office SharePoint Server (MOSS) and others and that list is growing as I write this.
This is another take on it, albeit from another interesting perspective.
Saturday, June 30, 2007
Earlier this month Microsoft announced the Microsoft Media Room, which is really a rebranding of the Microsoft's IPTV platform. While I could go on and on touting the endless possibilities that TV over the internet brings, I might as well point you to Scott's blog to find out more about it.
One of the things Microsoft Media Room has that is totally mind-blowing is the fast-channel-switching, which you can actually see in the video on the MediaRoom site, that allows you to surf channels are break-neck zapping speed. You totally have to really see it to believe it. Unbelievable ! If you think your current channel switching is fast, wait till you experience this SetTopBox.
While this is a TV/Broadband provider play, I am glad (and somewhat mininalistically involved ) that we, Singaporeans, will get this very soon in our very own living rooms.
Stay tuned and dont be too quick to renew your current cable subscription of your current provider yet, if they are displaying territorial, monopolistic behaviour in your house. And even if they are not, why not exprience TV over a new medium ? How about chatting with your pals over MSN while watching your favourite reality TV on the same screen ? How about discussing with your contacts about who you are voting for in Americal Idol, or similar, while you paused the TV and then resume watching on-demand and sending your vote through the TV on the same screen ? How about sending an email/IM to your friends/contacts and notifying them of your own-content that you have just uploaded to your own TV channel ?
Heh. The market is sure big enough for another TV service provider. If you look at the picture below on some of the cable providers carrying Microsoft MediaRoom, you will notice a familiar national icon there.
Like I said - It is really coming to a TV near us.
Wednesday, May 30, 2007
Sunday, May 20, 2007
I had talked about Yahoo! Pipes here. It didnt take long (well, maybe longer than some of us would like ..) before MSFT Corp came up with something even better ... AND I mean real better with Silverlight and the works.
I have played around with it and I am IMPRESSED and HOOKED. Upsize my mashups, please.
While Microsoft Popfly is still in alpha, you can still check it out here. To find out what it actually is, there is a good demo-ONLY video here.
Welcome to the Social.
Friday, May 18, 2007
I have spent the last couple of months getting up-to-speed on Microsoft Sharepoint Portal Server (MOSS) 2007 and I must say - I AM IMPRESSED.
A recent article in Wall Street Journal by By ROBERT A. GUTH on the April 24, 2007; Page B1 sums it up really nicely and I quote a couple of sentences from there:
Microsoft Embeds Sleeper in Business Software (I, personally, think the 'Business Software' bit is a bit of a misnomer)
SharePoint is now Microsoft's contender in an emerging battle over collaboration software with companies from a cross section of the technology industry ...
To date, largely unheralded, Microsoft has sold 85 million licenses to the enhanced version of SharePoint across 17,000 companies. No marketing campaigns are in the works
Read the full article here.
I say it takes a lot, besides features and functionality, to be able to sell without any marketing blitz. Really, what today comes free (pre-installed) that offers Web 2.0 features and functionality (RSS, Blogs, Wikis, Suverys, Sites, Discussion Forums, Document Library), right-out-of-the-box ?
And - We are not done. MOSS 2007 SP1 will come with additional features and functionality that will anchor it as probably one of the best-kept secrets and sleeper Microsoft products of all time that will really make it hard for anyone (customers, partners, communities, alike) to ignore.
Watch out in the blogsphere or here for those announcements.
Thursday, May 10, 2007
Wednesday, March 14, 2007
I still get questions from many people on the field on why the fuss about mashups and why the need for it. Sometimes, it is really hard to explain when you know that the customer doesnt have a need yet. You can easily generate a "want" but a "need" is slightly more difficult...
I was recently pointed to this really nice mashup story site here. Talk about solving your own needs by rolling up your sleeves. What is really nice about this is that this is home-grown, generated from a need to automate certain processes while searching for a book in our own local national library: National Library Board.
Awesome solution to a "why-didnt-I-think-of-this" need.
Wednesday, March 07, 2007
Monday, February 19, 2007
This is a continuation of my previous post: WS-ReliableMessaging Simplified - WHY
While this blog sits in my draft folder while I am busy solving and fire-fighting other real-world problems, I just found out that my fellow distributed and connected systems enthusiast, Matevz has penned down the WHATs and HOWs of WS-ReliableMessaging faster than me, AND with even greater details !!!
So, instead of replicating that effort, it would be better for me to do a high level post about the HOWs of WS-ReliableMessaing. The below diagram of WS-ReliableMessaging explains the sequencing really well.
Let me explain the concepts of WS-ReliableMessaging in terms of a conversation between Alice and Bob:
Alice: Let me call Bob on his mobile telephone.(CreateSequence)
(Ring Ring ... Bob Picks up the phone)
Bob: Hello ? (CreateSequenceResponse)
Alice: Hi Bob, this is Alice(CreateSequenceResponse)
Bob: Hi Alice (CreateSequenceResponse, Identifier)
Alice: I would like to have a meeting with you tomorrow at 1000 hours (MessageNumber=1)
Bob: Cool. Roger. I got that. Sure, let meet tomorrow at 1000 hours.
Alice: Can we meet at my office in North Ryde ? (MessageNumber=2)
(Bob walks into a GSM blind spot ...)
Alice: Oh yeah, and Bob, please bring those M&A files for clearance for our senior VP (MessageNumber=3)
Alice: Hello Bob, did you get that ? Please repeat. (AckRequested)
Bob: Yes, I got that you are saying that we should meet up at 1000 hours at your office. Period (SequenceAcknowledgement)
Alice: No, you are not getting the full picture. You need to bring those M&A files for clearance for our senior VP (Resend MessageNumber=3). Kindly repeat what I just said (AckRequested)
Bob: Yeah. Got it. We should meet up at 1000 hours at your office and I will bring those M&A files for clearance for our senior VP. (SequenceAcknowledgement)
Alice: Bingo. Good. Please make a reservation for 1200 hours for lunch at "Steaks by the Bay" as well. (MessageNumber=4)
(Bob's phone went dead ...)
Alice: Hello ? Bob, did you get that ? (AckRequested)
Alice: Hello ? Bob, did you get that ? (AckRequested)
Alice: Hello ? Bob, did you get that ? (AckRequested)
Alice: Hmmm. Something is wrong. Let me call Bob again. (AcknowledgementInterval is up)
(Ring Ring ... Bob Picks up the phone)
Alice: Hi Bob, this is Alice. Sorry, I think I got cut-off from the earlier call. (CreateSequence)
Bob: Hi Alice. Sorry, yeah, my fault. I pressed the wrong button (CreateSequenceResponse with prev Identifier establised)
Alice: I was wondering if you can make a reservation for 1200 hours for lunch at "Steaks by the Bay" after that 1000 meeting tomorrow. (MessageNumber=1) Please acknowledge. (AckRequested)
Bob: Sure, of course. I will make a reservation for 1200 hours for lunch at "Steaks by the Bay" (SequenceAcknowledgement)
Alice: Alright then. Lets end this phone call. See you tomorrow. Thanks and Bye. (TerminateSequence of this Identifier)
Bob: See you tomorrow, Alice. (TerminateSequenceResponse)
Of course, the above is a simplistic view and there is a lot more to WS-ReliableMessaging than what I have just illustrated above with buffers, inactivitytimeouts due to infrastructure faults, in-order deliveries, maxRetryCount, maxTransferWindowSize, etc. But you get the jizz of this picture of why InOrder, idempotent-aware ReliableMessaging is needed in complex real-world enterprise-scale distributed communications.
If you want to know the WHATS and all in better detail, do visit Matevz's post here and a continuation here.
Monday, February 12, 2007
While there has been much talk everywhere in conferences, events, blogsphere about Web 2.0 and such, this video touched me more than anything else. It was created by Michael Wesch, the Assistant Professor of Cultural Anthropology at Kansas State University. Amazing amazing summary of Web 2.0 in just under 5 minutes.
After you sit through this video, chances are that you will catch your breath and go "WOW" ... and play it again. To the layman, you cannot get a better implementation that forms part of the bigger picture of Web 2.0 than this recently-released piece of work by Yahoo! called Yahoo! Pipes. This concept is well-explained via O'Reilly Radar here. Of course, my famous colleague is quick to explain he came up with this concept first.
And doesnt the background music of that video just rock ? It is by Deus and is offered under a Creative Commons Attribution NonCommercial-ShareAlike 2.0 license, which is yet another example of the interlinking of people sharing and collaborating media ...
My good friend and extreme brain in Singapore, Wee Hyong, pointed out to me he has been working on that recently and giving a talk soon on a much related subject here: Danaїdes: Continuous and Progressive Complex Queries on RSS Feeds
Welcome to the social.
Friday, February 02, 2007
Windows Home Server will be one of the better well-kept secret products that will be ultra-cool once its released into the wild. You can go here for a brief animation overview. The official Home Server Team blog can be found here and the forums here.
Some of the interesting briefs include:
This is not a product based on the Windows Server 2003 codebase. It's a consumer-oriented product that is quite similar to Media Center Edition, in that it's less of an "edition" of Windows Server than it is a special application (like Media Center) that runs atop a version of Windows.
There are, of course, many features on this server but what I love best about it is placed on emphasis here:
- Expandable Drive space - Add as many Hard-Drives in gigs, teras and petas as your hardware allows. (No problem with the hard-disks I have lying around. I could easily squeeze 6 SATA suckers into this once I can find the supporting muthaboard ...)
- Remote Access - Access your photos, music, videos from any computer with a WWW connection. Even give restricted access to your cronies through your free, customizable Live Web Site.
- Automatic Backup - It stores only a single copy of every file, remembering which computer had what and saving your drive space - Hard Disk Storage Space Virtualization, anyone ? (this is just music to my ears ...)
I dont know about you but my living room is ready ...
Sunday, January 28, 2007
It is amazing to note the reach to the masses of a single MSDN Webcast. I had conducted a MSDN Webcast titled: "Acks and NAcks: Why We Need the Principles of TCP/IP Reliability in SOAP" in mid-2006 and till this day, I am still receiving questions and feedback about that topic I presented in the webcast. (Incidentally, you can view the on-demand webcast here.)
For those of you who do not want to go through this webcast again, I am going to break that presentation into the WHYs, WHATs and HOWs on this blog. This will make for easy-reading and straight-to-the-point as well.
This is rather straightforward. Why is it important? Why does it matter whether messages can be sent and received reliably? Web services is based on XML messages being sent and received. The most useful Web services will often be those that are the most complex and that rely on many messages being sent and received in a very specific order. That's the way that complex transactions can be built, after all.
Let us look at this problem in context before figuring out where the pain-points are. Most complex transactions in enterprises require far more messages to be sent and received. The messages will be much more intricate and may have very complex dependencies on one another, so that certain processes can't be kicked off until certain previous messages have been sent and acknowledged. Entire complex transactions can fail because a simple message didn't get through. And while it may sound simple to guarantee reliability, it's much more difficult than you might expect.
To add to the complexity, the main characteristics of Web services is communication over unreliable communication channels such as the Internet employing unreliable data transfer protocols such as HTTP, SMTP and FTP. These are considered unreliable, as they do not offer the reliable messaging services such as guaranteed delivery. Accordingly reliable messaging becomes one of the first problems that need to be addressed for Web services to become truly enterprise-capable technologies.
...there is nothing in SOAP or even HTTP that guarantees anyone that a message is delivered, or that allows a someone to tell the sender he/she has received the message...
Making reliable messaging more difficult is that messages are sent not just over the notoriously unreliable Internet, but also between partners that use entirely different networking infrastructures.
What many companies did in the past was to rely on proprietary messaging infrastructures to connect applications with one another. In these days of "open-standards", the industry would much prefer what Web services promises -- a messaging paradigm NOT based on any proprietary implementations."
To put it simply - If that reliability can't be guaranteed, Web services simply won't be used in the enterprise. The benefits of Web Services cannot be realized if it is not being used for complex scenarios in the enterprise.
Let us look at some of the inherent problems in which cross-boundaries communication happen today, especially over the cloud:
- Re-ordering of Messages in Multi-Path Routing Scenario
This is one problem that not many people realize because not many people would know the entire infrastructure physical topology of a end-to-end communication network channel. If you have 2 or more intermediaries that act as routers over a load-balanced network for example, messages being sent out may be routed differently over the network. In other words - The first Message ONE may be routed via Router 2 while the second Message TWO routed over Router 1. The complexity arises when the routers have their own routing table and paths and due to congestion of Router 2 over Router 1, the second Message TWO may arrive first, faster than Message ONE, at the final destination.
- Intermediary Reliability
What is not so self-explanatory is this - What happens if/when the intermediary drops my message ? How do I know if the other party has received it ? If I should send the same message again (just to be sure), how do I know if the serivce is designed to be "idempotent" ? This point has very explicit relations with the Quality-of-Service (QoS) assertions of a service. Each message sent must be received exactly once (once and only once). Failure to deliver a message be made known to both the sender and receiver.
- Connection Management
- “… my connection with the service drops frequently within this Wi-Fi network, but I don’t want to lose messages or the underlying session …”
- “Bursty Connections - I may go idle for long periods of time and I don’t want to hold transport connections open …”
- “… my service is using resources for each session and I want to release those resources if the client is not there anymore …”
- Need for Transport Independence
As I have mentioned earlier, different partners have different networking infrastructures and the need to rely on "open-standards" means that there is a need to decouple that reliablity element away from the transport. This ensures that different parties can choose to use whichever transport that suits them best but yet have a common accepted understanding on the reliability protocol that is independent of the chosen mode of transport.
To sum it up simply, we live in the real world. One that is not so perfect. The one where
- Servers fail
- Systems get out of synch
- Messages get lost
- Messages get re-ordered
- Messages cannot be safely re-tried
and the same one that explains why we need reliable messaging in Web Services.
NEXT UP: WS-ReliableMessaging Simplified - WHAT and HOW ?
Thursday, January 18, 2007
Wednesday, December 13, 2006
The Microsoft Professional Developers Conference (PDC), the premier definitive developer event focused on the future of the Microsoft platform, returns in 2007 after a short 2 year break ...
... and its back in Los Angeles again !
I had such a great time back in PDC2005 in Los Angeles, presenting, networking and shooting the Visual Studio 2005 launch video, etc. That event in 2005 must rank tops in my book amongst many of the Microsoft technology events I have attended and/or presented over the years.
Microsoft tends to align PDC events with key product development milestones so we tend to hold the events every couple of years, sometimes even more. There isn’t a set schedule. Therefore, there shouldnt be that "Ah - I think I will skip this and go next year" mentality or something. The last 2 PDCs were some of the biggest Microsoft public events - with the announcements of Longhorn, WinFX, Office Server systems, Vista, etc
It is definitely NOT an event you want to miss. I encourage some of my friends, developers and IT-Pros from Asia-Pacific to save up and attend. The investment made will be well-worth it.
Registration will open in Q4. Do check it out and, more importantly, stay tuned to the registration site here for more details.
Hopefully, this early announcement will help in making sure this event gets into your (or your company's) budget planning for next year.
Sunday, December 10, 2006
One of my server's (Vulcan - I named all my machines after Gods) innards. This is used to run my Microsoft Exchange Server as well as other virtual machines.
See the 2 SATA II HDDs (250GB / 7200RPM / 300MB/s SATA II) ? A third one is on the way as well. More space for more Virtual Machines.
Close-up on one of the 2 SATA II HDD
The heart of Vulcan - Intel Dual Core XEON Pro 5140 2.33GHZ 4MB L2 cache 1333MHz FSB - Woodcrest Chip. It is a dual-socket server. I took the other one out temporary for some other purpose. Just for information: As of to-date, none of any offerings of the same class from AMD has anything to match up to the Woodcrest of Intel. In fact, the Woodcrest has whopped Opteron's ass and has taken the Opteron to school in terms of speed and power efficiency. Trust me - this Woodcrest processor IS FAST !
Can you spot the 667MHZ ECC 2R Fully Buffered DIMM (FBD) Memory ?
Tuesday, October 31, 2006
Barcode on MSN Live is really a great idea since none of the card-reader software applications I have come across work very well on my Windows Mobile 5 PDA. It is often very inaccurate when it comes to capturing contact information from the newer-generation namecards, especially those that have a picture image of the bearer as well.
Go check it out and see my namecard as well as some random text beside it in the barcode images above.
Tuesday, October 17, 2006
I had just broken my own budget this year already (and therefore I am not getting me or anyone anything this coming Christmas) ... Too bad ...
After rounds of spec'ing and phone calls with my special DELL contact, I officially accepted the quotations ...
Like I said here, I am going all out this time around as most of my machines had run its 3+ year course and I am getting it all ready for Vista as well as the upcoming Longhorn, or Windows Server 2008, or whatever PLUS the High-Performance Computing (HPC) of Virtualization Technologies (VT), etc.
So, what kind of goodies did I end up with for being much poorer (even though I got a great deal on DELL for the pricing) ? Here it is - all X64 bit Chips (Core 2 Duo and a Dual-Processor Dual Core XEON Pro)
- DELL LATITUDE D620
CPU: Intel Core 2 Duo Processor T7200 2.0 GHZ - Merom Chip
Integrated 4MB ON-DIE L2 Cache, 667HMZ FSB
+ the works ...
- DELL POWEREDGE SC1430 Server
CPU: Intel Dual Core XEON Pro 5140 2.33GHZ - Woodcrest Chip X 2 Processors
4MB L2 cache, 1333MHz FSB
RAM: 4GB (4 x 1GB) 667MHZ ECC 2R Fully Buffered DIMM (FBD) Memory. Max Support: 16GB FBD
+ the works ...
OK - Now that I have the metal, now its time to look at some nearby (I dont think I can afford the gas to travel that far ...) banks for a quick heist for the greens.
Sunday, October 15, 2006
Just been given an invitation to test out the new SoapBox (Beta) on MSN. Therefore, I thought I upload one of my favourite commercial clips here. So far, so usable. Fast and smooth as well. Now it becomes a marketing battle to see who gets the better content and more eye-balls. More importantly, its who that can cannabilizes those eyes-balls that wins and laughs to the bank. As usual - The consumer wins. .
Video: Tall Person
Friday, October 06, 2006
So, while waiting for a new turn in my career to start, a couple of motivations spurred me to a 2-weekend-long project which I have completed, more or less.
It is no surprise I have always been interested in all kinds of distributed technologies and I have always wanted to hack out a interesting prototype based on GPS, Wi-Fi, 3G and the likes.
One of the motivations I had is to log events based on the trail I have been or want to go on (on a mountain hike, on a cruise, rafting, sailing, etc). It would be nice to have a map associated with it and pinpoint the locations that we left a trail with an option to leave sticky notes on those markers. With our entire landscape rapidly changing by the day, it is good to capture some good snapshots of where we have been before that landscape changes. This would even be more invaluable with a growing kid in tow so as to strengthen (future) family ties of affinity through nostalgic memorabilia.
I have a PocketPC running on Windows Mobile 5, which I absolutely love. One of my favourite accessories is this Rikaline GPS 6033 Receiver that usually corrects when I feel (or am) lost. With the advent of greater usability, adoption and availability of some great virtual earth or maps technology such as Google Maps and MSN Virtual Earth, I knew I could have more possibilities.
Lest you dont know, in Singapore, while GPS Receivers can be bought cheaply and easily, there is a law permitting against the sale of GPS Transmitters without a govt-issued license, for now anyways. This obviously ties back to privacy concerns, which is understandable. However, I dont see how we cannot control the misuse of that if we know the ins-and-outs of this specific technology.
This is where I decided to spend a few days cooking up this project. I used my favouite modelling tool for this one. No need to pay and install anything, learn a new domain language or any sort of technical or programming notations. In any case, it is only meant for me.
Basically, what I wanted to do is to write a small piece of PocketPC software that can read GPS data from a COM port that is already communicating with my GPS Receiver. Depending on what kind of network access you have, you can either stream the data to a host server over the Internet or have a mechanism to capture and log those GPS data in a meaningful way (which means not capturing GPS data in NMEA data format) so that we can send the data across when we get connected.
I always believe a good solution architect needs to have a good grasp of a wide-area of technology breadth. Having experiences with a different variety of technology, solutions and platforms helps to build that.
For example, while it is so much more cool to do real-time streaming, it is generally not feasible to open up that socket to do this for a period of time on a mobile device. Unless there is some significant breakthrough in mobile cell technology, your PDA will die on you before you even walk for 2 kilometres. And to do some effective real-time streaming, you will probably need 3G access (since you will be walking in wide-open spaces) and that usually sucks out the mojo of your PDA big-time. I think its better to log marker points and then transmit that data in a file when you find yourself a hotspot.
Having said that, the days of one big giant hotspot with WiMAX will happen very soon for us in Singapore. So, we may find ourselves in always-connected land soon. Then, I have to think about interested people who are paying bandwidth by the bits. The payload of the transmitted file MUST be small. Transmission must be quick and it must be WWW-Firewall friendly (since its likely you won't be doing this in the comfort of your own intranet environment, but most probably through a public security-tight hotspot). Only relevant data need go through Port 80 - That is a key design principle.
Many people here would think that I would use (W3C) SOAP as a web service to send that data across. I am ONLY looking for a point-to-point scenario, with no interoperability and security in mind for now, so using SOAP (with the extra overheads of the verbosity of its namespaces and angle-brackets) is not a preferred solution for me in this context.
I would stick with a time-tested architecture for this one - Just using Plain Old XML (POX) and Representation State Transfer (REST).
Using my-own partially modified version of JW Hedgehog's GPS Reader and a bespoked Window Mobile 5 Form application, I came up with this:
I had obviously blanked out my co-ordinates because I treasure my privacy as much as the next person. . You can save the data in 2 ways. One - via a single point marker so that you location will always be current as-is. There is no trail. Two - via an array of point markers. In the latter sense, you can choose to leave a trail.
Once I press the Send button, an XML Data file is transmitted to my host server POX-style. In this sense, it only transmits when you tell it to. It doesnt transmit on its own. Like I said, it doenst really make sense to do a full streaming transmission (like a transponder) because of mobile cell power capabilities (or lack thereof). Privacy concerns should be subdued here. Some processing would be done at the data host server upon receipt and using Google Maps (Documentation API here), the point markers would be rendered like this on your webpage (WhereWasI.html or something to that effect):
I termed this geoBlog (tm). I thought that is really cool. I can capture these snapshots and save them as part of my Glog and keep a memory trail of where I went and what I did. I intend to use this cool project on my cruises, hikes, holidays and vacations soon, especially the one to Alaska, which I hope to be doing soon.
F * * * * I N G A W E S O M E ! - if I can say so myself.
Some of these images can be retrieved over the years over family dinners when the kids have all grown up and the landscape totally changed and I am sure it would bring up some great conversation.
To the geeks out there, I will make this application free-for-all-to-use. And because this is freeware - dont expect any support, service-level-agreements, warranty or any sorts of guarantee from me.
I have only tested it via my ETEN-M600 PocketPC. The data host is just a IIS6 Web Server on Windows Server 2003.
There are 3 parts to this entire solution (More details of the setup can be found here.):
- The Windows Mobile 5 Application. You will need to install the .NET Compact Framework 2.0 for this to work, if you havent done so.
- The Host page that receives and processes the data
- The WhereAmI page that renders the map.
Of course, for  and , you would have to host the service yourself somewhere. I used Classic ASP technology for this. Why ? Because, I only needed to simple single host page to parse the XML coming over and saving it to a file and its easy to set up (no need for any complex IIS setups) if you want to transmit this to your own self-hosted server (for more privacy) if you have sufficient pipes. This is my own example here (anony) and here (auth) or here. (auth). If you would like to add more of your own features and port it to a ASP.NET version, you are more than welcomed to do so and share this with everyone else.
To the paranoid in us who suspects some kind of secret routing during data transmission, I am neither interested in knowing where you are/went nor do I care. But, for now, I will make the source bits available to you if you request for it. I intend to make the source bits public once I deem it ready. I am still doing some optimization and tweaking around it but it is generally very usable for now. I could think of different features and functionality to add into this but this is supposed to be a weekend long project for me. Nothing more than that. I will let the others decide what they want to do with it.
In the meantime, I have set up a simple forum here to collect any form of comments / criticisms / feedback / bugs / requests or whatever. Any enhancements, clarifications can be found here as well. Once I have the source bits ready, I will announce the host place for it. In the meantime, if you want the source bits for inspection now, just let me know.
Have fun geoBlogging (tm) ...
Thursday, October 05, 2006
This little interview I had done with INETA APAC just got published here.
Up Close with .Net Leaders
In this issue, we get up close and personal with William Tay (Microsoft Regional Director based in Singapore) to understand what makes him tick and his passions.
Check out his blog at http://www.softwaremaker.net/blog
Microsoft Regional Director
MVP (Solutions Architect)
1. What are your visions for INETA APAC?
My vision for INETA APAC is simple. I would like it to be the de-factor facilitator for the birth and co-ordination of usergroups in this region. In addition, I would love for it to add value to the younger usergroups by providing mentorship and guidance to their leaders as well as providing the in-between services to help usergroups grow to reach their potential.
2. What does being a MSRD mean to you?
It means being part of a closely-knitted group of independent Microsoft experts and professionals around the world and being that bridge between the product groups in Redmond and the read world.
3. What do you think will be the next killer application?
Great question. Surprisingly, I think a non-new application will be the next killer application. With the proliferation of the internet as a platform today, it is key that the mass-consumed killer application must be of a non-intrusive technology and instead work on top of the Internet to bring out its best. Any application/technology that re-invents itself by plugging the current holes as-is today deserves a shot to be the killer application, and it must not be limited to platform of choice. I think Cardspace and the propogation of the Federated Identities and the Metasystem on ALL platforms is my next killer application. If I have my way today - I will kill off all disparate identity systems, especially passwords and all those password minder / digital wallet systems that prey on top of the fact that security and human convenience is, most often, oxymoron to each other. What they are doing is essentially breeding more chaos into a system that wasnt designed for it in the first place. As an analogy, I tend to view it as "Re-arranging the furniture on board an already-doomed Titanic"
Just like the above, any kind of distributed technology will always catch my attention. Once we get the intrinsics of the plumbings out-of-the-way (which I think may take some more years), I would love to see personal-portable computing. The ideal would be the concept of portable codes embedded in a chip that makes full use of the entire meshgrid infrastructure (again, a few more years to hit mainstream use once the vendors get their act together). With that, you can download your entire desktop workstation to wherever you are by carrying a small chip. There are pieces of it available today - but the entire picture would take some years to piece together.
4. If you are trapped on an island without network connectivity, what would you like to bring? Who would you like to be on the same island?
All the books I couldnt read because I have network connectivity ;) And on an deserted island where all dimensions of stimulation is key, there is no one else I would like to bring with except my wife and kid :)
5. What words of wisdom would you give to fellow user group leaders?
Stay with that burning passion that brought you there in the first place. If you stay true to that void of any distractions, only good things can result. The journey itself and the people you meet along the way is, most of the time, the ultimate reward itself. That said, do remember that great leaders look ahead of their time and one of the key things they do is to prepare, mentor and groom the next generation.
Sunday, September 24, 2006
In reference to my post here, plus my very early post here, I have always try NOT to be drawn in all the hype, fluff and marketing innuendos designed to drive FUD and irrationality.
I try to focus on what users really want and that really is all that matters.
Coincidenally, bu showed me this Foxtrot comic strip today and it looks like Bill Amend has also echoed my exact thoughts.
Tuesday, September 12, 2006
So, after a massive HDD upgrading exercise, it is time to take stock of my own internal machines of notebooks and desktops and see how it fits into the arrival of Vista and Longhorn later.
Lunch with some folks from Intel and Dell last week in Malaysia revealed some interesting lookouts for me. I am told to wait for the Dell Intel Core 2 Duo machines. This is unlike the Duo Core Intel chips that Dell is selling right now. The Core 2 Duo(s) are a lot better as one of the world's best processors and is a lot more powerful and power-efficient than the Duo Core ones.
The main difference lies in the chip architecture, obviously. As put in the simplest way: "Duo Core chips are essentially 2 chips put together physically. The penalties (and constraints) lie in the bond that welds them together. Whereas, the Core 2 Duo chips is actually a single physical manifestation that is cut into 2"
This will explain how much better, faster and efficient the Core 2 Duo chips are going to be.
However, I was told during lunch that the Core 2 Duo chips are not available the DELL (APAC) online site yet - so I would have to wait.
Through seo, now many web hosting companies are expanded this one business opportunity beyond the conventional dedicated servers.
However, I am well-known to be impatient and so decided to try my luck with my own special Dell connections back home in Singapore. As luck would have it, there are specific desktop and notebook models that are already equipped with a Core 2 Duo Intel chip. It is just not available online yet and the only way to get it today is to know someone in HELL (ooppps, I mean DELL) who can get it done for you.
The specifications given to me looked awesome and the "special" price quoted to me by my own Dell connections take the cake - so it looks like I will be one of the first in my part of the world to own a Dell Latitude D620 / D820 that comes armed with a Core 2 Duo chip and the price I am getting for that is just sooooo GOOD !
With that in tow, x64 Vista - Here I come, baby !!!
Monday, August 21, 2006
For the 4th year in a row, I will be speaking in Microsoft TechED 2006 Asia. This time, the event will return to its original roots back in Kuala Lumpur, Malaysia.
Unlike the previous rounds, I wont touch base on any Level 400 topics and going nitty-gritty into details of <angleBrackets/> messaging or gnarly-XSD'isms. From previous experiences, it doesnt sit too well with the asian crowd. Instead, I am going with a couple of very interesting topics. One focuses on a specific implementation of identity and service-orientation, the other is for the audience to have a better idea on what Web Services are all about first before embarking on that journey.
- ARC323 Federated Identities and the Metasystem \ Architecture & Team Development Track
This session, I will explain the basis forces driving the concepts of the Identity Metasystem that has the world watching and waiting. How do we plug the missing gaps of the Transactional Internet? Imagine the WWW without passwords. Not only that, I will explain how this infrastructure setup can be used for business transactions other than for authentication. See demos that are not seen anywhere yet in this region. [Level 300]
- DEV243 Developing Web Services: Tips & Tricks \ Developer Technology Track
What exactly are Web Services and When and Why do we use them? William explains the basis of SOAP in clear concise terms and coins up some tips to help you in your Web Services Development today and tomorrow. [Level 200]
Of course, there are a whole hosts of reasons for you to attend this mega-event with tons of great speakers talking on some great topics gracing this event. KL has always been a very dynamic city and it should be a good time for all.
And even if browsing through the event site doesnt attract you enough yet, how about this?
I will be giving away 2 FREE MSDN Premium Subscription with Visual Studio Team Suite that is worth US Dollars 30,000 each to 2 lucky souls who will be attending my sessions. I may also give away other goodies like cannot-find and hard-to-get Microsoft Product Platform T-Shirts and NEW books.
So - c'mon - what are you waiting for ? Sign up today and "Change your Destiny" ...
Wednesday, August 02, 2006
Via John Lam from his post and I quote:
Jaroslaw Rzeszotko wrote a number of ‘great programmers’ to see if they could answer a number of questions about what it takes to become a great programmer. He then blogged the answers.
Linus, said this in his answer to the question: What do you think will be the next big thing in computer programming? X-oriented programming, y language, quantum computers, what?
For example, I personally believe that “Visual Basic” did more for programming than “Object-Oriented Languages” did. Yet people laugh at VB and say it’s a bad language, and they’ve been talking about OO languages for decades.
And no, Visual Basic wasn’t a great language, but I think the easy DB interfaces in VB were fundmantally more important than object orientation is, for example.
Read the rest of his answer to get the context.
Perhaps this will give a little more ammunition to the VB team to return VB to its roots :)
Many people I know pooh-pooh VB and they always do it comparatively...
- "Oh you know - WTF is a VB.NET Array ?"
- "It is such a childish language..."
... right ... as compared to ?
While I am definitely not the first to heap praise, I wont be so quick to critique it as well. I fully agree with Linus' comments. One must not forget its place in the computing world. It has done lots for computer programming and has gotten it to the mainstream. I use the same analogy for Windows 95/98. Many people pooh-pooh it, always on hindsight. Too many of us forget what it has done for the computer world in the late 90s and early 2000s. I doubt the propagation, adoption and the use of the Personal Computer or the Internet would be the way it is today without those platforms.
Crappy as it seems with comparison to today's tools and resources, I think the world would not be able to afford to laugh at it if it wasnt there in the first place.
Saturday, July 08, 2006
I cannot help but grin when I found out the next Crypto API (CAPI) - or termed - Crypto NextGen (CNG) and the suite it encompasses will be all included in Microsoft Windows Vista.
This article says it all. Elliptical Curves Cryptography (ECC) should definitely be there (and is) when the Base Smart Card Cryptographic Service Provider (Base CSP) is there as well.
It will be a long post to explain why the industry is adopting ECC and slowly adopting it and making it the cryptographic algorithm of choice. If you do understand the key concepts of prime factoring behind the concepts of Public-Private (or Asymmetric) Key Cryptography and the constraints of it moving forward into the future and the proliferation of mobile embedded devices, these 2 diagrams should suffice.
Doesnt that give you a hint of where we are going with computing processing power and where it may be next time ?
Friday, July 07, 2006
This popped into my inbox a while ago ...
Contests like this are just great. Not only are you receiving money (if you win... Who cares, even if you dont, a digital mutation of your idea may still evolve to a sellable one), you are competing with the best to generate a innovative, marketable, secured and (hopefully) usable product. The byproduct derived from the entire process would be similar to a mini-version of an RFC. Bad and unsecured ones would have been shot down and the good ones could be made better with a few ingenious tweaks.
Now only if I can find 25.5 hours in any given day ...
Tuesday, March 07, 2006
Singapore has just announced an bold ambitious move to wire up the entire nation with a extremely high speed backbone that would move data in speeds beyond 1Gbps, or 500 times the common access speed of 2Mbps with the use of optical fibres or other technologies. Most of the crowded centres and streets would be "WI-FI"-ed by late this year.
My dream of having the entire nation being one BIG hotspot would be coming true in probably a couple of years time.
I have heard that the term "disconnected applications" will be thrown out of the window in Singapore very soon .
Ah - the wonders of living in a [garden] city-site.
Now if XML-RPC aint enough (I had blogged about this here and here), now we can add REST-RPC into the mix. The main difference would be the use of HTTP to provide application semantics via its verbs. This would mean that there would hardly be any XML or Request payload of any kind.
Wednesday, February 15, 2006
In an article on eweek, John deVadoss, director, architecture strategy at MSFT Corp made the following quotes:
Moreover, deVadoss said the edge consists of a provider and consumer model—a provider edge and a consumer edge.
The consumer edge is the peer-to-peer, Web 2.0 world and the enterprise edge is the SOA, ESB (enterprise service bus) model. In addition, the consumer edge is an asynchronous communications model based on the REST (Representational State Transfer) scheme, and the enterprise edge is based on the Simple Object Access Protocol scheme.
"REST is a dominant model on the consumer side, and SOAP is the model on the enterprise side," deVadoss said
I know many people would probably shake their heads now as to the confusion that has arose with this quote. Actually, while I couldnt quite fully agree with everything said above - the nugget to dig here is that one resides on the edge of the enterprise (or the high-end processing machines out there) and the other resides at the side of the consumer.
In reality though, what ultimately serves the consumer are the enterprises, in some way or another. It is the consumer who pays - no ? Therefore it would be safe to assume that there is a mixture of both schemes in any enterprise.
While SOAP is probably familiar to many, REST shouldnt be a stranger to many more. It is nothing but how the World Wide Web has been working. It just has a new label OR should I say be saying that the label is stickier now ? SOAP and all the XML acronyms has just emphasized it more. While you may not need to know the URIs, URLs and the way resource locators work or how it came about - you may need to know the word POX (Plain Old XML).
In simplistic terms - POX is just XML that doesnt really have a defined structure. In contextual terms, POX is XML that is not SOAP.
Makes more sense now ?
Saturday, January 21, 2006
I recently had a chance to sit down with a client to discuss about software systems as well as to find out what we can do for them in their new system proposal.
I mentioned the 80/20 rule and explained to him what is was.
Then, we talked about (Web) Services and he was aghast that we could still be using (Web) Services even within his own LAN - and not connected to the WWW.
"...but I thought you need to be using a browser and connected to the internet to be using (Web) Services ? ..."
Sigh. I have heard that one too many times. One of the recent misnomers, no doubt.
Services, Services, Services. Code and Location is irrelevant. I had posted something like this a while back. It is good that the industry is taking some steps to correct this. See Point  of this referenced post.
Friday, January 20, 2006
Sounds like SPAM ? It is not.
This is a 100% ASP.NET 2.0 based CMS solution -- best of all it is free -- check out this blog post for some sites built with it.
All the info you need is here. Let me know your thoughts if you are using it. I will be embarking on it very soon.
Friday, November 11, 2005
What an awesome Translator !!!
Where was this a year ago when I had to port something from C# to VB.NET ?
The next enhancement should have something that translates business requirements to code. I would definitely buy that.
Friday, November 04, 2005
Tuesday, October 18, 2005
|Some of my recent project work have been very focused on the Middle-East and therefore, we have to scope out a different set of UIs that deals with Arabic characters which reads from Right-to-Left
||Some of my recent project work have been very focused on the Middle-East and therefore, we have to scope out a different set of UIs that deals with Arabic characters which reads from Right-to-Left|
|Some of my recent project work have been very focused on the Middle-East and therefore, we have to scope out a different set of UIs that deals with Arabic characters which reads from Right-to-Left
||Some of my recent project work have been very focused on the Middle-East and therefore, we have to scope out a different set of UIs that deals with Arabic characters which reads from Right-to-Left|
This is a great resource for authoring Middle-Eastern content:
Sunday, October 16, 2005
I had posted this thought quite a while back on an old blog. Seems like the recent exchange in W3C, more or less, have re-visted my thoughts on this issue.
Jim Webber sums it well here.
Tuesday, October 04, 2005
I received my Certified Web Services Professional (CWSP) Certificate today in an official business ceremony. I have known this for some time but this is the first time it was made known to the public in an Infocomm Development Authority of Singapore (IDA) Weave Event. I am one of only 8 people who are in the pioneering batch to receive this certificate. The other 7 people come from technology vendors such as SUN Microsystems, IBM, Software-AG and members of the tertiary educations of higher learning academia.
More on the CWSP:
The CWSP is announced during XMLAsia 2003 and the Framework is developed jointly by IDA, the National Infocomm Competency Centre (NICC), Singapore Information Technology Federation (SiTF) and XMLOne User Group (UG). It aims to develop Infocomm professionals and re-skill them with Web Services competencies by meeting the career and skills-progression needs of Web Services talent at all levels, ranging from Developers, Professionals, Architects to Consultants.
Tuesday, August 16, 2005
I just broke the piggie, took what has been accumulated in there for the last 2 years. Add that to the bank I just robbed and therefore it looks like I will be there.
Thursday, July 28, 2005
The WinFX Runtime Components Beta 1 is available here, and the WinFX SDK is available here. Also, check out the new Windows Vista Developer Center at http://msdn.microsoft.com/windowsvista.
With this release comes with the official names for many of the technologies that they've been talking with our developers about for several years. In particular, Windows Longhorn is now Windows Vista, Avalon is now the Windows Presentation Foundation, and Indigo is the Windows Communication Foundation.
“Former” code name
Windows Presentation Foundation
Windows Communication Foundation
XML Paper Specification (XPS)
Least-privileged User Access
User Account Protection
WinFX Runtime Components
Friday, July 22, 2005
Friday, July 15, 2005
To those whom have attended Indigo Ascend and have asked me via emails: What acutally happens in the plumbings of the IsOneWay part of a Indigo Duplex Contract ?
HTTP/1.1 202 Accepted is the answer. This is the explicit return.
HTTP/1.1 100 Continue
HTTP/1.1 202 Accepted
Date: Fri, 15 Jul 2005 08:56:07 GMT
This, of course, only applies to the HTTP Bindings.
"The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. There is no facility for re-sending a status code from an asynchronous operation such as this.
The 202 response is intentionally non-committal. Its purpose is to allow a server to accept a request for some other process (perhaps a batch-oriented process that is only run once per day) without requiring that the user agent's connection to the server persist until the process is completed. The entity returned with this response SHOULD include an indication of the request's current status and either a pointer to a status monitor or some estimate of when the user can expect the request to be fulfilled."
Tuesday, July 12, 2005
After so many years, I have finally activated my first PSS call to Microsoft. All these years, I have been prowling Google and MS user-and-newsgroups rendering help and sometimes receiving help as well. Never had I once need to activate a PSS call. Power to the MVPs
However, I had this pressing problem that couldnt be solved and because of that, I had to skip a few cool demos which kinda sucks.
The problem revolved around the installation of SP1 on top of Windows Server 2003. It just rolls back halfway during the installation process without giving me a reason why. I also noticed that it happens during the installation of this file cladmwiz.dll, which is strange because I am not running any kind of clusters.
It was definitely a long and tedious day with a very helpful person from PSS Microsoft. There were language muckups because the APAC PSS center is based out of Greater China and it takes a good 3 minutes just to make sure we get the Case Reference ID correct. Patience is definitely his middle name.
Finally, we came to the troublespot and found a way to workaround it. The problem were the UDDI Components that was installed on my Windows 2003 Server machine. Apparently, SP1 doesnt like it enough to install itself on top of it.
Here is the workaround:
- Extract this attachment to the target machine.
- Extract the sp1 package with the following command line: [sp1 package file].exe -x
- Run the following command line on the target server: uddisp.exe install [sp1 path]
- Then, uninstall UDDI component through Add/Remove Program
- Install the service pack 1 again.
I hope this helps someone out there as days and days of googling resulted in nothing. This will also save some poor soul from activating the PSS for help.
Now in the first place, why isnt this documented ? It seems that I am the only one in the world who uses UDDI on Windows Server 2003 SP1.
You know what ? Somehow, why am I not surprised ?
Thursday, July 07, 2005
I have been following the exchanges between Savas, Jim Webber, and Michi Henning here and here. There are more links but I will leave it up to the interested reader to use a RESTful approach to refer to those resources from the above 2 links.
To be honest, this has been piped over the newsgroups, forums, conferences, etc for some time now and it is really nothing interesting to debate about, really.
All this noise has led to a lot of FUD in the field and I get a constant barrage of questions in any of the technology conferences I speak in or attend. I work in the fields out there and therefore I tend to approach technology unlike that of academics, trainers or vendors. I do what clients want in the most efficient way (read:cost_and_resource-effective) possible. I have met a few people from academics as well as from the product vendors who entered the field thinking that just because they can point out which exact page number explains the ds:SignedInfo in _WS-Security Specs_, they can convince and conquer the field and have every single customer out there upgrade their existing technological infrastructure every 6 years.
Well, the Mainfraimes, the CICS and the COBOL wonks are still out there. Still making a lot of money for its vendors and service providers. People are still driving Ladas and these legacy will be there for some time, probably a long long time.
We get a lot of younER developers who are very confused with all barrage of technologies out there and sometimes people on the field (which means customers as well) get the short end of the stick when these developers use the wrong technology in the different parts of the technical solution. So, yes, some of the stuff you read in the Daily WTF is not ficticious.
Sometimes, when I come across comments like these here from Savas's blog here:
> Microsoft is betting on SOAP and made it a key part of its distributed computing platform, not DCOM.
Betting on SOAP? Hmmm... .NET remoting does not use SOAP. It uses a binary protocol for performance reasons. So, I'm not sure that Microsoft are "betting on SOAP". They certainly are not for their .NET remoting protocol. And DCOM failed because it could not be made to scale, due to its misguided garbage collection idea. And because DCOM, amazing as that may sound, was even more complex than CORBA.
Somehow, I either feel that I still dont get the picture or that irrationality is clouding good judgement (still).
Of course, .NET Remoting doesnt use SOAP. In fact, it used to and is deprecated for good reasons. It is a distributed object technology which implies implicit method invocation. SOAP is not a distributed object technology. It is all about services, all about standard schemas, being explicit in design and yes, it also means dispatching these XML documents on a "hopeless transport" or the Lada of the network protocol today. You cannot compare them just like you cannot compare the performance of objects and services.
Is this the best we can do ? Of course NOT. Should we all dump our existing heap of scrap metal in our garage and get the shiniest and fastest aluminium today ? Of course. Are we going to empty our bank account, forfeit and compensate on our current loan arrangments to do it ? NO, NOPE, NADA ... This is a just a fact that we have to deal with.
Having said that, to me, both sets of distributed technologies will have its place to stay, regardless of what the vendors say to sell more and the trainers sell to teach more. Each have its place and their merits tend to show up best if used and deployed wisely in the different layers, tiers and boundaries of a decent, usable and viable solution. When I say Solution, I mean an entire composition of different new and old systems that services a business program, initiative and ultimately a goal. Isnt that what we are building systems for in the first place or have I totally lost my mind and lost track of who my paymaster is ? Dont get me wrong, progress is not possible without making full proof and implementations of the latest rocket science or theories. But Progress can be measured in many ways. To most people, progress is measured by how they can make legacy or existing technologies and architetures last and endure given the rapidly evolving set of standards, protocols and environments and how fast they can go home and spend time with their families as age increases and TTL declines.
COM+, DCOM, .NET Remoting is something we use very frequently on the field, and for good reasons too. I am known to be a (W3C) SOAP Wonk BUT I will not give them up easily within the innards of my system and I will use SOAP for the reasons it was designed for. In fact, to me, one of the most important features in SOAP is the @role (@actor) and the @mustUnderstand. Or else, I would just stick with just plain old XML.
Is Microsoft betting on SOAP ? You bet, and so is the entire industry. It is a well known fact that while it is simplistic in design (in fact, this is one of the wierd specification that becomes simpler as the newer iteration evolve. Let hope it remains this way), getting across-the-board agreement is the costly element. In fact, it took 5 years from the original design meeting and prototype to become an “official” specification and it (SOAP 1.1) is still not an official W3C Submission. The cost to each participating organization easily crosses several million USD. The rough estimates to putting the final WS-* specs to bed (if there is such a thing) would easily be more than 20 million USD.
Just like life, in the field of software engineering, compromise is something we need to work with. I once had a straight-through exhaust pipe the circumference of a toilet bowl fitted underneath my car as well as a wide-open air filter underneath the car bonnet. After 3 months, I couldnt deal with the generated noise as well as the (less-dense) hot air the air cone was taking in from all angles so I dumped both of them. While it may take me slightly longer (by a few seconds, perhaps) to reach the market to buy groceries, the brat in the younger me learnt to deal with it.
While, I have my own ideas on the Request/Reply MEP, RPC, Document-Literal Messaging, etc and I like to share my research and thoughts with some of the brightest minds in the industry over a hot cup of Java, it is not something I lose sleep or sweat about. It just serves to keep my sanity in check when I still have to deal with OLE and VB3 issues today and it does make good conversation with some of the most intelligent geeks out there.
Sometimes, I feel the point of technology is lost when people argue over stuff like that. To these people, I recommend a good classic read: Technopoly: The surrender of Culture to Technology by Neil Postman
Thursday, June 30, 2005
Wednesday, June 01, 2005
First Survey of U.S. Corporate Application Server and Scripting Deployments Reveals Microsoft® Ahead of Competing Web Platforms.
Not really a surprise to me but good to know nonetheless.
Saturday, May 28, 2005
This will be interesting ...
I think I will reserve my comments on this for now.
Monday, May 09, 2005
I was recently quoted in the press talking about OSS vs. proprietary platforms and solutions. It appeared in the IT Lifestyle Section (Digital Life) of our national newspaper --- The Straits Times 03 May 2005
I had said, and I quote:
... mutivendor expertise and support may be hard to come by for Linux and OSS. And these can add up to a higher total cost of ownership compared to pre-packaged Windows ...
Please click here to see the exact article in pdf form.
Tuesday, April 26, 2005
...and it is in Longhorn Client with Speech Recognition.
I have just finished attending Richard's demo and I must say it has convinced me of the future. He was speaking on the "Future of Speech Recognition in Microsoft" in the MSFT Corp APAC Regional MVP Summit 2005 here in Singapore.
Without going too much into details, he showed many cool demos (what is a Speech Recognition prezzo without demos anyways) where he uses a Wordpad as a prop, then proceeded to do more cool demos by speech-enabling a ASP.NET 2.0 Web Application. One word to describe it all C...O...O...L
He then proceeded to say "Bring up Windows Media Player" and then said "Play Beethoven Symphony No. 9" before the sweet sound of classical music piped through through his notebook's speakers. I am no classical music fan BUT it sure did sound sweet to my ears. This will sure bring a hot date with a gorgeous babe to second base .
Everyone was clapping, wooing and wowing at all these demos. However, one thing that I found was very good which I felt was lost on the audience is that when he typed the word "MVP" as part of a long sentence in Wordpad, the client echoed back the letters "M.V.P" instead of the word "mufffp". Now that is cool. . Have I finally seen Computing Intelligence at the personal user level ?
Now, this is what Computing should be in the future. Bill Gates kept talking about making it simpler and seamless. I think he meant Natural as well. Typing and QWERTY is NOT natural, although it may seem to the endless hordes of graduates and youngER professionals I met over the past few years who can type or SMS at light warp speed. However, they cannot seem to carry on a decent intelligent conversation face-to-face. INK and Speech technologies is making computing revert back to the primitve ways on how man carries on in his commumication patterns (and it is about time) --- and that is to speak and write...and NO ! Typing is not innate to the human being. After almost 4 decades, I still cannot type in a decent way.
Microsoft has spent a tremendous amount or resources and investment in harvesting these technologies and innovating it to make it easier for the end user. It is not about XML, Web Services, etc. These facets shouldnt just be a blackbox to the end-users. It should be invisible to them. This bodes well for the computing landscape of the future
By far, the best presentation I have seen in this summit. You can read more about the Longhorn Speech API here and Longhorn managed speech APIs on Windows XP here.
I am a believer.
Thursday, April 21, 2005
I am on a roll. Since I tinkered with some client-based programming here as part of a small weekend project, I suddenly get this huge urge to do some more geeky client-GUI stuff.
I have generally been doing much of my work in the distributed systems area and therefore are known to be much of a server guy or a (W3C) SOAP, XML geek to many. However, like many of people who has ventured into the software development world of Windows, it usually starts at the desktop...and for me, it is VB3 - VB6, including VBA. OK, I risk the MFC, C++, Java, C# people spitting at me here so I better stop.
Anyways, I have always love the Internet Messenger (IM) and the genre of Presence Technology it brings. To think that if I had those technologies back in the late eighties while I was away in university in Canada, I wouldnt be writing those huge 'costly' paper stacks of letters to my folks back at home every week and I would still have kept in contact with my childhood friends. Hey, what can I say, I was too lazy to write them...
MSN Messenger is what I have always used as my IM, and then again, I have not used any other. It is currently in Version 7 at the moment and the enhancements that come with each version never seem to amaze me.
However, one pet peeve I have is the "Turn on What I am listening to" feature which I think, in my opinion, is for people with a narcissistic streak in them. There is nothing that turns me off than to imagine all the contacts in my list displaying the songs they are listening to at that moment. I dont know about you BUT I would be hugely embarrased if I have Britany Spears's I Am Not A Girl, Not Yet A Woman on my playlist.
So, I thought I do some mucking around with the MSN Messenger Window to see if I could do some Windows SubClassing into its Windows Handle. For all those of you who dont know the essentials of Windows are, I took the liberty to quote Aaron Ballman from his link I have referenced above:
All GUI applications on Windows are driven by getting messages from the operating system, and translating them into events for the user to handle. So when the mouse moves, a window is given a message telling it that the mouse has moved, and here are its current coordinates. Or when the user presses a key, a different message is generated and a window is alerted. This message dispatching is how all events are fired in REALbasic -- the system lets the framework know something has happened, and the framework passes the information along to you in the form of an event.
If you are going to try writing a GUI component in REALbasic, you will most likely need a way to hook into this magic function that the OS calls in order to receive notifications of what the user is doing. For example, if you wanted to write a TrayIcon class you might want to be notified when your icon is double-clicked on so that you can fire an action event. Before we get into the details of how to accomplish this, you should be brought up to speed on the terminology and concepts involved.
If you're coming from the world of C/C++, .NET or even Visual Basic, the magic function being described may be familiar to you. It is traditionally called a WndProc (pronounced 'wind-proc') and it's short for window procedure. You let the system know what WndProc to call by specifying one in a window's class definition (called a WNDCLASS) structure, which is then registered with the system. Every window created with that class definition will have its WndProc called by the system for all messages. The OS knows when to call the WndProc because there's a loop in the application known as the message pump which handles all the message passing. A typical message pump will look something like this (in C):
I had done some of those Windows programming before back when I had more hair so this is not a foreign concept to me. I dug out my old Win32 API Programming book to get myself acquainted with all the Windows Handles API again. I must say that I really enjoyed that as it did bring a sense of nostalgia to me. All the technical documentation about Windows Handles, Message Pumps, Windows Subclassing, Function and Memory Pointers and \0String Buffers\0 did get me excited for a while.
Then, I took a couple of nights off from sleeping (Hey, I have a real job...) and started doing some programming work against the .NET Framework...and before you know it, I have cooked up something that I would humbly think is quite respectable. Check out the screenshots on this page. OK, I admit the Application UI is nothing to shout about and I am ashamed to say I have failed Design, Usability and Color-Coordination 101 lessons in school. .
Basically, I allow the user to feed into the MSN Messenger their current location (I will explain more later...), the host machine's date, time and timezone as well as some user-defined caption. Since there is a clock element involved, I had to add a timer to constantly update MSN Messenger on the current time. The timer frequencies can be set as 1, 5, 10 seconds and 1, 5, 10 minutes. And for those who have some bandwidth restrictions (I believe MSN Messenger sends a packet over the network to inform all your contact list on you next message text), there is a UPDATE ONLY ONCE feature that updates once and then disables the timer.
As for the location, as I have many contacts on my list who travels frequently and they like to put their current location on my MSN Caption, so I figured this would be a useful feature and I wanted to make it automatic with no user intervention. I then wrote up a simple Where Am I Web Service that returns the Country name and code of your current location based on your IP address. An IP address is pretty accurate in telling your current whereabouts country-wise. Your IP address that you sent to my Where Am I service would be the public-interfacing IP address of your Wide-Area-Network. In this sense, you could be booting up this little application in Japan, Panama, Canada or the US and it would return your current host country automatically.
(On a more geeky note, I have invoked this Where Am I Web Service asynchronously [not via a duplex channel], so there is no Freeze-Hanging effect once this application is loaded. It really is quite cool to see your host country being reflected in your application once it returns from the service)
Now, wouldnt it be much more cooler to display all these Location and Time settings on your MSN instead of showing off what you are listening to ? Now, if everyone uses this tool, it would be nice to see everyone on my contact list from all over the different countries from all the (5 ? 6 ? or is it 7 ?) continents in the world.
I also played around with the system.diagnostics and processes a bit so that ONLY one instance of the application be loaded at only one time. This is really one of those rare times that I have done development work without any considerations for object pooling, scalability, load-balancing and the handling of muliple connections, etc that comes with the domains of distributed systems. Way cool. I like it !!!
I added some enhacements to it as I figured that there are way more narcissistic people than I think there are. (Oh, btw, I am blogging --- Am I narcissistic then ?) BUT I had to think of something more useful and functional. Then I realized maybe people would want to show what they are currently working on at the moment. This could be done via the Active Window Handle API. You could then show off to your boss that you are currently working on your assignment at the moment. However, do take note, you would be announcing to everyone that you are surfing for Internet Pornography as well so use this feature with care...
Of course, all these features can be turned on and off with a knob. Anyways, I have tested this with Windows XP and 2003 Server and it works. Other than that, you are on your own. You would also need the Microsoft .NET Framework 1.1 for this. You can get it via your Windows Update or download it here. Since this is freeware, please read the license before downloading and installing it.
Download it here now. Enjoy !
- To add more features
- Someone mentioned to me to show the current available computer memory at the moment. This could be bragging rights for someone with a 2 or 4GB RAM Machine or someone who is willing to contribute their system resources to the SETI @ Home Project. Let me know via comments on this post if you would like this feature.
- I dont really know how to remove that irritating headphone icon thingy. Let me know via comments on this post if you know how or could offer any advice.
- Hyperlink the text. Again, I dont really know how to do this so I would appreciate any advice and such.
I hope this serves as some kind of feedback to the MSN team as well so they know what to include for MSN Messenger 8 next time.
Sunday, April 17, 2005
I am preparing for a few road trips soon and in that meantime I am also expecting some important business emails to come in. Since I am using a normal 3rd party pop mail server and dont have any fanciful Microsoft Exchange APIs to play with, my best friend here is definitely my Outlook 2003.
Over the weekend, I created a simple web service which allows the invocations to be able to SMS me on my mobile phone. How this is done will remain a secret for now. So, now I need to hook into Outlook events, specifically the Application_NewMail() event which triggers automatically when a new email is received. The objective is to leave my Outlook 2003 running at home and set a timing process to pull mail from the POP Server periodically. Once a mail is received and I will do some rule-based processing to make sure it is from the important business contacts I am expecting, I will invoke a Web Service from within Outlook itself.
Sunday, February 27, 2005
(W3C) SOAP is very like to XML-RPC and not the other way around.
It works by marshaling procedure calls over HTTP as XML documents. However, one major difference is that SOAP allows the documents to be treated literally as --- well, Documents.
As you will be able to see from the angle-brackets snippets below -- you will notice some major differences between SOAP and XML-RPC. One major difference you will notice right away is that XML-RPC doesnt have any of the XML Namespaces, doesnt support XML Schemas and has a very definite set of types and primitives. One of the major improvements of SOAP 1.2 over its preceding version is the removal of Section 5 Encoding, which, just like XML-RPC, is to improve the room for interoperablity by allowing people and parties to agree by having lesser opportunities for people to disagree (tm). I wont go much into details here. Eric Kidd has built up a fantastic repository about XML-RPC here.
As I have mentioned before, I had done some work before revolving around XML-RPC. In fact, I still see major operations out there still communicating via XML-RPC. While I love SOAP, XML-RPC still does get the job done if you wanted simplicity and faster interoperability. I am however, willing to bet that, as distributed computing really pushes the realm of distribution and enterprise requirements of Security, Transactions and Reliability becomes more deeply rooted in the message, SOAP will become the defacto standard in message transmission. In the same tone of distribution, I do still remember that while doing XML-RPC, while some people and companies will argue that it is a loose-coupled concept, it sure doesnt apply to the parties involved in the transactions and invocations. We spent unproductive hours on the phone and meeting tables arguing what should be sent over and many more over what it is supposed to look like on the wire. If weapons were allowed then, I am sure we would have reached an agreement faster. Of course, the weapons I meant here were things like the Colt .45 Pistol and the S&W .460 Magnum. Because, tools were more primitive then, we actually had to write every single element out before it goes onto the wire. Serialization was unheard of then.
I have built 3 simple Service Operations which is then broken into SOAP and XML-RPC Formats. The 3 methods and their I/Os are simple but they should be able to illustrate the different signatures and return types.
Function HelloWorld() As String...
Function SumAndDiff(ByVal x As Integer, ByVal y As Integer) As SumAndDiffStruc...
Function RetSoftwareDevelopers() As SoftwareDeveloper()...
These functions are then decorated with [XmlRpcMethod()] and [SoapMethod()] to distinguish themselves to their operation and binding approaches.
Let us see how each of them is represented differently on the wire. I will show the XML-RPC format first then followed by SOAP:
<string>Microsoft .NET Technologies</string>
<string>ABC DEF GHI</string>
<string>Microsoft .NET Technologies</string>
Below are the respective SOAP Representations:
<soap:Envelope xmlns:soap="..." xmlns:xsi="..." xmlns:xsd="...">
<HelloWorld xmlns="..." />
<soap:Envelope xmlns:soap="..." xmlns:xsi="..." xmlns:xsd="...">
<soap:Envelope xmlns:soap="..." xmlns:xsi="..." xmlns:xsd="...">
<soap:Envelope xmlns:soap="..." xmlns:xsi="..." xmlns:xsd="...">
<soap:Envelope xmlns:soap="..." xmlns:xsi="..." xmlns:xsd="...">
<RetSoftwareDevelopers xmlns="..." />
<soap:Envelope xmlns:soap="..." xmlns:xsi="..." xmlns:xsd="...">
<Plaform>Microsoft .NET Technologies</Plaform>
<Name>ABC DEF GHI</Name>
<Plaform>Microsoft .NET Technologies</Plaform>
As you would have noticed by now, XML-RPC has a fixed set of types and abstractions such as methodCall, methodName, params, value, struct, etc and of course, its response member-name-value pair. Like its name suggests, the param elements do represent each a parameter and the encapsulating structure does look like an object-instance representation. SOAP, on the other hand, makes heavy use of XML Namespaces and Schemas to validate how and what the message should look like.
We are, however, moving away from this RPC behaviour of transmission. This is a good thing as SOAP, while requiring much more engineering complexity, does offer much more extensibility in terms of message exchange patterns and extensible headers. Even the RPC-Encoding RPC-ish style messages that are generated by the SOAP toolkits of a couple of years back is making way for Document-Literal as the default style today. You take the messages "AS-IS" and how you mapped them into your platform native language and what you do with them is left to the implementation details of each platform. The XML schemas act as a way for you to tell what is legal or illegal as IO to your service.
Please note that I am using Charles Cook's fantastic XML-RPC .NET for my XML-RPC implementation here. Another way for you NOT to re-invent the wheel is to use Simon Fell's PocketXMLRPC. I am a huge fan of Simon Fell's SOAP Tools and I am sure this is a winner as well.
Tuesday, February 22, 2005
In my recent tour of the local university campuses giving talks and presentations, I noticed that most of the students find my talks hard to digest and understand. This is not surprising since I have always been known to be a server guy and not much of a tools person. Actually I used to be a client-tools person BUT have since spent the last year or so dabbling in distributed computing protocols.
This is not just associated with students, BUT some of the younger folks that I had a chance to engage as well. This goes really far to show how old I am. It is very hard to extol the benefits of XML/SOAP and Services if the younger folks dont understand and appreciate the history of COM, MTS. Pretty soon, when Indigo matures from the wild, technologies like COM+ and .NET Remoting will become legacy as well.
Everyone who grew up in the .NET era never knew about DLL Hell in deployment. Those things I need to do at 12 midnight when everyone is asleep and I am given the safe-clear command to do a regsvr32 for a 10KB Win32 COM DLL and then reboot the servers after...and I have not even mentioned about those nightmarish versioning problems when someone else's DLL is installed over mine....
Well, it is good for those folks just like it was good for me not to have gone through Yourdon's Structured Programming era. Now thinking about it made me realize that maybe I would have appreciated object-abstractions better if I had.
Anyways, since I was very focused on distributed computing protocos and XML SOAP Services in my talks and since the audience were mainly younger students who had no professional experience, I tend not to dabble too deep into BEST PRACTICES in Deployments, Versioning and Interoperability scenarios. I am sure most of them would rather poke a needle into their eye than to watch me write angle brackets, do some xsd typing, and then import namespaces before binding them all together in a WSDL file. Therefore, I usually give a more general broader overview of the industry, how come we have what we have today and what are we getting tomorrow. The history part usually sits well with them and so most of the questions that came up usually relates to that.
Since most of their curriculum and labworks never went back to technologies that were more than 2 years old, I do find it useful sometimes to show them how COM, MTS and DCOM was done last time. That usually catches their attention although I think it was more of an amusement to them more than anything else.
"Now, see this black thingy, we call them vinyl in our days and we put this needle-like shaped thing on it so that music can be piped out from this trumpet-like thingy...and we have to put it carefully on the edges so that it starts from the first tune...and if we want to repeat the same tune again, we have to sit up, go back to the machine, lift the needle up, squint our eyes on the vinyl so we can pick out the correct sequence of the groove on the vinyl that the song starts on and put it carkefully and slowly on that groove and VOILA, we have replay....What ? Oh, we have to do that everytime we want to replay that song...Whats that ? Shuffle, Random --- What's that ?"
So, running DCOMCNFG.EXE and OLEView is not something I would do too often just to get a chuckle from the student audience
However, I promise some of them I would blog about XML-RPC in relation to (W3C) SOAP and that is what I intend to do. There are still more than a few implementations out there in the real-world that are happily humming along with XML-RPC. I had done a couple of them before using MS SOAP Toolkit to XML-RPC with an apache server. I dont see them clamouring after SOAP so soon as those functionality are pretty straight-forward Request-Response endpoint invocations. In fact, the banner hanging in their server room reads: "NO SOAP, NO Problems" which I thought was quite cool even though I am a big fan of SOAP.
Anyways, how can a Web Service history lesson be complete without XML-RPC. Dave Winer, who came up with XML-RPC amongst other things is still one of the key guys today, in my mind, who has shaped the landscape of distributed computing today. There is no doubt that SOAP has its roots in XML-RPC. XML-RPC is sort of an early generation of Web Services and it went a long way to define one of the principles of Service-Orientation which is to create as little shared abstractions as possible. In fact, there are so few primitives and types in XML-RPC that there is so little to agree and disagree on which, in turn, sets a positive tone in integration and interoperability. Incidentally, that was one of the reasons why SOAP 1.1 Section 5 Encoding was taken out in SOAP 1.2.
I would try to see what I can come up with to write some XML-RPC scripts on .NET, just for the fun of it. I dont see any scenarios that I could use it unless one needs to write a .NET client to connect to a UNIX XML-RPC Server. Extensibility could be an issue as I could not route those messages, at least, not easily. On the other hand, because XML-RPC is slightly simpler (XML-RPC = SOAP++), it may pose less of an interop hazard.
Thursday, February 17, 2005
MD4, MD5, SHA-0, and now SHA1.
I believe the MD series has known collisions as well...
Well, I had blogged about these days before.
Monday, February 14, 2005
Tim and Dare had some great exchanges here where they discussed on the importance and significance of staring at angle brackets and service reach.
Tim hit on a sweet spot which I can definitely identify with when he wrote this:
"Is it an issue in companies doing lots of legacy integration work?"
I guess we all come from and work in different IT surrounding environments. I work in a fairly large Systems Integrator where loads of our work revolves around integration and maintainence of legacy systems in vertical Line-Of-Businesses. Since it is also a free business environment, we also have to integrate with work done by other SIs, systems and technology vendors as well. This is a fairly tough proposition and if we are not involved in sitting around tables discussing how to integrate data formats and semantics, we are usually thrown a stack of documents describing the data schemas of other companies and people doing previous work with other technology systems.
Now, XML-Schema is usually (Thank God for that) the agreed-upon format for describing these data formats and that is all we have. Nothing more. Most of the time, we are just given documents with table formats and we have to markup those table formats in XSD ourselves.
So, the XSD-Editor in Visual Studio is definitely a God-sent (Geek-speak, of course) to generate the schema. I was left to my own barehands and notepad to create the WSDL.
No, other WSDL toolkits were not an option, cost-wise. Thinktecture's WSCF definitely gave us a huge productivity boost in terms of generation of those WSDL files. By that time, our brains are so well-tuned to angle brackets that we could just hand-author the resultant WSDL to produce the exact result we want. Examples include having multiple service elements and soap:location address attributes for the same SOAP Binding, importing of re-usable data schemas and the separation of abstact and concrete defintions in the WSDL File. By doing all that, we built extensibility, versioing and interoperability as well...and we went in there with our eyes wide open. Troubleshooting is relatively a breeze now, one look at the SOAP Request and the WSDL; we know where and how the SOAP Fault happens.
Is that a problem with primitive tooling that can be solved down the road ? Maybe and I truly hope so. In this instance, I hope that tool utility developer companies can strive for that goal. I am, however, sceptical that a holy grail can be achieved so soon.
I still think, with all things status quo, that developers need to know explicity what goes onto the wire. This has got nothing to do with what is the "native" or real contract or the the canonical forms used to describe the messages. The problem is that when someone gives us these contracts or schemas described in canonical forms, it is the only thing we have that we best understood what is to be sent on the wire so that the other end of the pipe can intepret, understand and process these messages.
...Therefore, I have no choice to not just stare at angle brackets BUT understand what it is trying to convey as well.
p/s: One of my favourite article that exhorts the virtues of the Contract-First Approach
Saturday, February 12, 2005
Can anyone be surprised with Cisco's decision to enter the XML Messaging market ? With the rapid propagation of XML into the mainstream market esp in the areas of XML Messaging (aka XML SOAP Services), Middleware, Brokering, Intermediaries, it is about time customers get more choices and exposure in this arena.
With Cisco in this segment of the market, I do expect more alternatives and choices in XML Boxes to be had by customers and them paying lesser as well.
I still remember very clearly it was only less than 2 years back when I brought up the idea of introducing an XML Firewall into a client's environment by then Flamenco Networks (which is now acquired by Digital Evolution) and being pooed-pooed right in my face on how a text-based representation can be used for messaging and how the contents of this representation can be inspected at wire-speed at the hardware level.
Well, Moore's Law has made it so that the price and speed of high-powered specialized processing such as XML-Encryption and XML-Digital Signature besides just plain inspecting and routing of SOAP packets can be made available to the grasp of the general masses. This will also bring forward the concept of Application-Oriented Networking into the market. I dunno BUT are we seeing another layer of abstraction into the mix now ?
Too bad this client is not around anymore for me to say "I told you so..."
I am very interested to see how this whole affair pans out with the middleware app-server companies such as Big Blue
Monday, February 07, 2005
Friday, February 04, 2005
Bill Gates talks about Microsoft's commitment to interop
Any questions ?
Monday, January 31, 2005
Saturday, January 29, 2005
Time and time again, I have heard many companies and people talk about how they want to adopt XML Services and (W3C) SOAP so that they can be seen moving with the times embracing Service Orientated Architectures.
I have always stressed that it is a lot lot more than that. Just because all your applications can emit out SOAP and angle brackets and your consuming applications can "Add Web Reference" doesnt mean your business is in the realms of Service-Orientation.
This article here puts it very nicely. It is a lot more than what most people think and it takes a longer time to understand and embrace it fully. It is very much in the business processes and very importantly, the understanding of it...and this takes a tremendous mindset change in the business thinking and culture.
I took the liberty to quote a few snippets out:
- "Some of the enterprises that are deftly moving toward a service-oriented architecture to exploit the potential of Web services are confronting challenges technology can't always conquer. Users say Web services still suffer from a lack of clear metadata definitions and the need for sometimes significant IT cultural changes. "
- "Trimble learned that even using Web services, it isn't possible for the company to "gracefully and quickly" integrate systems gained in several acquisitions over the past couple of years because of the metadata problems, Denis said. "There's too much fluidity around data objects, [and] we fall back into our own nomenclature and begin to define business objects," he said. "Customer definitions are the most complex challenges for us. We support very different businesses. Our customers are major accounts, channels and end users, so it is difficult to have a one-size-fits-all definition." Until industry standards for metadata management mature, the company must tackle the metadata issues outside the SOA project, he said "
- "But as the project has moved forward, it has been slowed by the lack of standard metadata definitions, which define and describe applications' data, "
- "Learning noted that the migration to Web services required some cultural changes along the way, such as getting customers to change their mind-set about the way they use the system."
- "Denis said that the company must create its own process for managing the disparate ERP systems' metadata because of a lack of tools that can automate the operation. The complex ERP network includes packages from SAP AG, Oracle Corp. and Siebel Systems Inc., some of which were gained via acquisitions."
Finally, after months of waiting, Microsoft's Enterprise Library is available for download
. This is essentially Avanade's famous ACA.NET version 4 which now has a official Microsoft alignment.
Friday, January 28, 2005
Some of the folks in the Spore DotNet Usergroup got together one night to run a practical project. The idea behind the link is to build a bridge to access Visual SourceSafe over the internet. It was built successfully with the help of SCCBridge.
Incidentally, SCCBridge relies heavily on SOAP and DIME for its purpose and it is therefore no surprise that Web Services Enhancements (WSE) 2.0 was heavily involved in use here.
"Both the server and the client are written in C# in Microsoft Visual Studio .NET. In the project is used library SharpZipLib created by Mike Krueger (for more info see http://www.icsharpcode.net/ ). The algorithm for text files comparing was taken from The Code Porject site, and was written by Shankar Pratap."
This has been floating around for some time BUT MSFT Corp has released an official statement here
Since XQuery is expected to reach W3C recommendation only in 2006, it won't be shipped in the upcoming .NET Framework 2.0
I guess people like me will have to live with XSLT and XPATH for now.
Wednesday, January 26, 2005
Finally, this is done. Read the cover story here.
Even though I usually dont advocate the use of SOAP to transfer large BLOBS of binary bits (I tend to think that there are slightly better ways of transferring files and/or attachments), I do believe that there will be more and more calls for uses for it and that is why I think this is an important specification which is way better than W3C's SwA or MSFT Corp's/IETF's DIME (Can you say Security ?). The latter, incidentally, is being implemented by Web Services Enhancements (WSE) 1 and 2.
Of course, since DIME is being superseded by MTOM, I am really looking forward (hopefully) to the implementations of it in WSE 3.0
Got this inkling feeling that these ASCII Character code tables will come in handy one day...
||Start of header
||Start of text
||End of text
||End of transmission
||Data link escape
||XON, Device control 1
||Device control 2
||XOFF, Device control 3
||Device control 4
||End of text buffer
||End of medium
6Bit-ASCII Table Conversion
Monday, January 03, 2005
Friday, December 24, 2004
According to this article, it says that
- Web services, security and Linux jobs continue to dominate the IT help wanted ads and are projected to remain among the hottest skill and certification areas in 2005, according to research firms that specialize in tracking skills and certifications...
- ...Networking, messaging and programming language skills also increased in value...
- A small drop off in offshore outsourcing projects and an increase in competition for IT consulting talent have contributed to a reversal in declining premium pay tied to IT skills
I guess the bold font equates to good news for me BUT can only be realized if all employers and companies recognize that as well...
This is a Godsend. Will refer to it before installing the Longhorn Client HEC Build 4074 on my VPC to churn out some Indigo stuff.
Excellent resource !!!
I owned a 2.5 inch 40 GB Harddisk (USB2 interface), then the VPC images started taking its weight in there...
...then moved on to buy a 2.5 inch 60 GB Hitachi Travelstar Hard-disk (5400 rpm 8 MB cache) to store all additional files and images...
...Last night, just bought a 3.5 inch Maxtor DiamondMax 10 Hard-disk Drive (7200 rpm with 16 MB cache !!! ) with a cool fan-cooled casing to boot...all for SGD340.00 (equiv to USD207++ at today's exchange rate)
Cool, 16 MB Cache !!! ...what I always wanted. (actually what I wanted is the 256 MB cache, but the technology and price, probably, will be beyond my reach for some time to come...)
However, mine is the parallel ATA IDE interface which transfers external data at 133MB/sec, teeny-weeny bit slower than the Serial ATA interface which transfers at 150MB/sec.
Read some of the product specs of the DiamondMax 10 here.
A piece of advice for those shopping for these items:
- Do NOT get a 8MB cache for hard-disks drive >= 200 GB. It is safer to get one with 16 MB cache. And the price difference is only a few SGD dollars. Well worth the investment for better reliability.
- Go for a fan-cooled casing instead of an aluminium casing. Yeah, I know the aluminium casing looks cool, weighs lighter and can dissipate heat...BUT a fan-cooled plastic casing dissipates heat better and it is unlikely you are going to carry your multi-gigabyte hard-disk casing and show it off at your nearest Starbucks.