Anyone that knows me knows that I love 2 things with great passion: (1) television and (2) the Web. I've got the world's best job being able to work and play on and with both simultaneously. Its truly is a non-stop thrill to be able to merge the two platforms and do some really cool cross-media things.
One of the shows that I really love watching these days is MTV's “Pimp My Ride”, which if you've never seen it is basically an Extreme Makeover for average people with junked-out cars featuring unbelievable revamps by West Coast Customs on all sorts of vehicles.
I was thinking that MTV and Microsoft should do something similar with junked-out web sites and apps. Have an ISV or web shop go in, take a horrendous site, and give it the aesthetic and functional treatment to make it something really killer. Can you imagine the ratings from the geek crowd? Think about it...
SITE OWNER: “Man! I can't believe how you guys pimped my site! It's awesome!!!“
DEVELOPER: “OK, your site was totally screwed up and had no customers. So, we gave you the deluxe web pimp package. We fixed your broken links, indexed you with Google, had our graphics guy apply a custom color scheme and CSS theme to your site for feel, upscaled your DB from Access to the new SQL Server to manage your users and inventory, and re-worked your URLs to be based on XML. Yeah!“
Man, I need some sleep. :)
I just finished reading an excellent book on WSE 2.0 by Jeannine Hall Gailey from MSPress: http://weblogs.asp.net/jasonsalas/articles/123539.aspx
This is a great book for system architects who build complex, distributed, advanced applications using XML Web services in .NET, or would like to. While admittedly not a code-centric tutorial guide, it does serve to clarify many of the questions a developer considering the Microsoft .NET Web Services Enhancements (WSE) 2.0 would have, and demystifies many of the questions posed about interoperability between WSE versions and across platforms like .NET and J2EE.
Contrary to the criticism that some have unfairly labeled the book with, I didn't find the material to be rehashed MSDN articles that would be otherwise easily accessible on that site. Rather, author Jeannine Hall Gailey gives an academic overview of the areas for WSE 2.0 under development by those architecting the web service model on a macro level (BEA, IBM, Microsoft, Sun, etc.). Instead of regurgitated programming articles, Jeannine (whose body of work in writing about WSE and the high-end use of SOAP in .NET environments is most impressive) presents a complimentary collection of easy-to-follow articles on advanced uses for extending SOAP's capabilities, using a writing voice that's welcome and friendly. (You'll surely appreciate this latter benefit, as the material can get quite complex at times.)
So rather than give you code to nail down a specific problem, an overview of the web services model and of next-gen apps relying on SOAP is examined. And you'll more well-rounded and better off because of it. When used in combination with the code found on her articles at MSDN, they make for a very effective guide to helping you build powerful systems.
At 232 pages, the book is a great quick read, giving the reader a high-level understanding of many of the concepts being discusses and/or enforced by the web services powers-that-be. The major WS-* considerations such as attachments, security, reliable messaging, coordination and policy enforcement are described. The book is written beautifully and organized logically, with easy to understand hypothetical scenarios.
The book makes mention of SOAP 1.2, and while it admits to leaning towards the SOAP 1.1 spec for the moment, does take the time to mention the differences between the two. There's also a very healthy amount of information for two technologies you're likely to have lots of questions about – encryption and DIME attachments.
There was a terse mention of working with SOAP messages across SMTP, and I would have liked to see more of a discussion on this topic. There's lots of good information about other transport protocols like HTTP, TCP and UDP, but sadly, not much on SMTP for building secure messaging systems over e-mail. But I can't pin this minor shortcoming directly on the author – the Web is currently sorely lacking such information outside the scope of mentioning that SOAP can transport across SMTP.
But aside from that, this book is a great read for those looking to take SOAP to the next level and really leverage the WSE in their applications.
I've noticed something that's been bugging me lately...the (mis)use of Flash on web pages and apps. It's a great technology, and capable of doing a lot, and I've used it for years, which is to say that I've created various incarnations of the same animation to fit my company's needs. I first started employing Flash in my own web projects to facilitate long-form animation that animated GIFs just couldn't pull off.
However, I so often see now people haphazardly creating Flash movies for simple things like 150-x-150 banners or little callouts. It certainly works and arguably won't kill the page, but it's a terrible waste for such purposes, in my opinion. Why spend that much time putting a movie together just to have text fade in over a static image?
I'm a big advocate for using Flash for things like long, integrated, complex presentations. There's quite simply nothing better on the market for getting a message across automatically or interactively. Still, don't break out a Ferrari just to drive 500 feet down a dirt road to go to the market.
In a similar vein, I've also seen ill-advised people use Flash for things like what-should-be-broadcast-quality TV ads, and mini-movies. Yecch.
I’m working on a very fun project, only because it’s confusing the hell out of me. Essentially, I want to create a mobile Link whose NavigateUrl property would be dynamically assigned, based on the ISP or other service provider they use. So, I’d need to figure out a way to get the IP (or a range) of the calling client. This results in the user clicking on the link and being returned to their ISP’s homepage.
I’m also trying to do something that can pull the value of MSIE’s “Home” value, so that they can return to the user-defined homepage as specified in the browser settings.
Essentially, here’s what I’m doing in web.config:
<add key=”192.168.0.1” value=”http://foo.com”/>
<add key=”127.0.0.1” value=”http://bar.com”/>
<add key=”188.8.131.52” value=”http://foobar-corp.com”/>
…then within my ASP.NET pages:
Link l = new Link();
l.Text = “Return home”;
l.NavigateUrl = // somehow get the IP of the ISP they use and insert the destination URL from web.config
This helpr method seems to work, although it's hacky:
// if the client is accessing the resource through a proxy server, the proxy IP will be in "HTTP_X_FORWARDED_FOR"
// "HTTP_CLIENT_IP" is rarely used
if(Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null || Request.ServerVariables["HTTP_CLIENT_IP"] != null)
ispIPAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
ispIPAddress = Request.ServerVariables["REMOTE_ADDR"];
Anyone have any ideas as to getting the IP or provider name?