Posts

Showing posts from August, 2005

ISAPI Rewriting, Devices and Korean XML

Taking all my TFTP Provisioning Service stuff at my day job today and providing an HTTPS alternative. Seems that some VOIP devices want to make an HTTPS call for their configuration files. They expect what the manufacturer programmed them to expect, which in this particular case is what one dood referred to jokingly as "Korean XML" - it has no root element! That's no big deal, I'll do my stuff and send the device whatever it wants, well-formed or not. The big problem is the device is only smart enough to ask for: https://myserver/myfolder/DEVICEKEYWITHLONGMACADDRESS.XML Ok, now how the hell am I gonna map that to my: https://myserver/myfolder/default.aspx?id=DEVICEKEYWITHLONGMACADDRESS The answer? ISAPI_Rewrite from Helicon . They have a freeware version, and it handles very nice REGEX URL Rewrites at the IIS level (e.g., way before you ever get to ASP.NET) - which was exactly what I needed. The Rules file for this particular one is elegantly simple: [ISAPI_Rewrit

Google Talk, XMPP, standards - Taking it all "Up a Notch"?

Guess what: Google is talking. And, they are saying Client Choice , Service Choice , Platform Choice . Any client that supports Jabber/XMPP can connect to the Google Talk service. There's service interoperability, and there's platform interoperability. This is about real standards - (not like "Ajax" which is about marketing hype). You can read up on Google's "Talk Posture " here. Now the Talk service may not make Google any real money. It's really hard to measure. But, you know what? Google has clout, and I bet it certainly just woke up the worldwide developer community. Microsoft, are you "listening"? Allow me to explain: The lines are drawn between two protocols working their way through the IETF standards body: the SIP (Session Initiation Protocol)-based SIMPLE (SIP for Instant Messaging and Presence Leveraging Extensions) and the open-source, XML-based protocol XMPP ( eXtensible Messaging and Presence Protocol). Vendors are hopi
Image
Don't you just love the funny graphics software companies use to promote their releases? Here's one with a custom caption I've added that seems to better describe what's really happening!

The AJAX Dilemma: Is Another Acronym Needed?

One of my recent articles on eggheadcafe.com got some comments. Some were interesting, some were your typical "comment spam", and a couple, while seemingly authoritative, (including one from an author who has a new book on the subject), were actually erroneous. Adaptive Path's guru Garrett's canonical example of his "AJAX" acronym is Google Suggest: "Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what's possible on the Web." Immediately thereafter Garrett decrees the "rules" of his premise with these bullet points: "Ajax isn't a technology. Its really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax incorporates: standards-based presentation using XHTML and CSS; dynamic display and interacti

Blogger offers Word Plug-In, and HTTP KeepAlive

Image
Blogger has a free downloadable Word plug-in that allows you to make blog posts from within MS Word. It doesn't support images though, so if you want to upload a picture of your newest product (as seen at left) you'll need to do that separately. Oh, well... We had an interesting post on our Eggheadcafe.com forums today: Question: "What is the best way to establish an http protocol communication link to POST data using a persistent connection ? How can i verify that a connection is made ? what classes will i be using in .NET, what is the easiest way to go about it ? the protocol will be http1.1 Thanks" Answer: HTTP is not like TCP Sockets so when you make an HTTP Request Whether the request method is either GET or POST, the only way you can be sure that you have made a connection is to look at the RESPONSE. The term "Persistent Connection" when referring to the HTTP Protocol is somewhat misleading because it can lead folks to believe they have the equivalent

Is it about Cindy Sheehan?

Cindy Sheehan isn't responsible for her son's death, nor is the President or anyone who supports the war. Some terrorist in Iraq is responsible. Had her son not gone to Iraq he would probably be with us today, but it was his decision to go there. He re-enlisted after the war had begun knowing full well that he'd likely be headed to Iraq. He was an adult and made a decision. His decision was to continue his service in the military. He clearly believed in the mission, even though his mother does not. When President Bush returns to the White House after his working vacation at his Crawford ranch, Cindy Sheehan will most likely go home and shut up. I'm really sorry she has lost a son. War is not fun. People die. But -- here, the left wing anti-war establishment, desperately looking for poster children, has made a bad pick for a poster Mom. Harry Belafonte probably would be better. At the least, he can sing pretty well, and his face is more familiar. This is what the Sh

IISState- troubleshooting IIS 6.0 issues And European English

If you have ever had process recycling issues under IIS 6.0, often your best bet is to use IISState to take some "dumps" and examine them. There is a whole newsgroup devoted to this issue. There is also a newer version of IISState than that which ships with the IIS Resource kit, and you can find out about it on this excellent site here . Another issue that goes hand-in-hand is the monitoring of IIS App Pool events. By default, extensive logging is turned off. However you can turn it on with: csript adsutil.vbs set w3svc/AppPools/<AppPoolName>/<AppPoolEventToTurnOn> true Here is a link to the KB article that describes all this in more detail: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/87892589-4eda-4003-b4ac-3879eac4bf48.mspx On a lighter note, Milan Negovan has a funny piece he's quoted about the changing standards of European English for the EU .

PayPal Scams and Bulgarian "New York Style" Bagel Crisps

I get these (the PayPal scams, not the Bagel Crisps) relatively frequently (as most of us do) and I've developed a quick and very efficient technique to help thwart these bastards. which I'd like to share: 1) First, understand how to identify a Paypal scam email. You can do that by visiting here . The most important thing to understand is that you can make a hyperlink say anything you want. It's the underlying URL that's important. In most email clients, if you mouse over the link, you'l get a tooltip that shows you the real link URL. If it is anything else except " https://www.paypal.com/cgi-bin/webscr/?cmd=_login-run ", then you can BET its a scam. 2) Do a whois lookup on the domain of the target url. This usually only takes a minute. Now you know who the domain is registered to. This is usually, but not always, the perpetrator. In many cases, you can actually get their name, address, and contact email! 3) At this point, what I usually do is trace back

XMLFragmentWriter

Scott Hanselman blogs about a GotDotNet user sample that allows you to strip document declaration http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=fcaee1b2-79c2-4b60-ab6b-3a0a9e13bbe3 However, one of the comments to the posted solution comes up with what may be an even more elegant solution that does not rely on reflection: "Rather than use reflection and change the internal state of the writer, you could also write something to the XmlTextWriter instance. " Here is s " short but complete " (a la Jon Skeet) example I whipped up: using System; using System.Xml; using System.Xml.Serialization ; using System.IO; namespace XmlserializerFaker { public class SerializationHelper { public static string ToXml( Object o ) { XmlSerializer serializer = new XmlSerializer( o.GetType() ); StringWriter stringWriter = new StringWriter(); // Create an instance of an xml text writer, with no formatting. // Then write something (actu

Blogher? Sorry, I don't get it.

I've been reading some posts about Blogher recently and frankly, I just don't get why women need to have a "women's blogger conference". I read all kinds of blogs, I'm interested in the content, and I could care less whether its a man, a woman, a transsexual, or a dog doing the blogging, as long as the content is valuable to me. So, somebody please explain this to me. Sounds kinda like Women's Lib "Déjà Vu all over again" to me.