<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Frank's World</title><link>http://franksworld.com:80/blog/</link><description>Frank's World</description><item><title>FWTV FOSE 2013 Coverage</title><link>http://franksworld.com:80/blog/fwtv-fose-2013-coverage</link><description>&lt;p align="left"&gt;As promised, &lt;a href="http://www.youtube.com/franksworldtv"&gt;Frank’s World TV&lt;/a&gt; is covering FOSE 2013. &lt;/p&gt; &lt;p align="center"&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/NhdvGcpr-_8" frameborder="0" width="560" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Wed, 15 May 2013 16:06:18 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/fwtv-fose-2013-coverage</guid></item><item><title>Dogs in the Woods and Dolphins in a Tank</title><link>http://franksworld.com:80/blog/dogs-in-the-woods-and-dolphins-in-a-tank</link><description>&lt;p&gt;In this episode of &lt;a href="http://www.youtube.com/franksworldtv"&gt;Frank’s World TV&lt;/a&gt;, I step away from the green screen to enjoy the delightful DC weather. I also spend some time at the Dolphin Tank at Day of Fosterly 2013.&lt;/p&gt; &lt;p align="center"&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/xVA-sz-FdHw" frameborder="0" width="560" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Wed, 15 May 2013 16:04:17 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/dogs-in-the-woods-and-dolphins-in-a-tank</guid></item><item><title>Rainy Night in DC</title><link>http://franksworld.com:80/blog/rainy-night-in-dc</link><description>&lt;p align="left"&gt;I took this last night during a torrential rain storm. &lt;/p&gt; &lt;h3 align="center"&gt;&lt;/h3&gt; &lt;p align="center"&gt;&lt;img src="http://media.memories.nokia.com/media/d43daba3-8669-4841-9c61-27d52e8737b2.gif"&gt;&lt;/p&gt;</description><pubDate>Sun, 12 May 2013 01:04:01 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/rainy-night-in-dc</guid></item><item><title>MoDevUX 2013 Hackathon</title><link>http://franksworld.com:80/blog/modevux-2013-hackathon</link><description>&lt;p align="left"&gt;I am at the awesome Capitol One Labs in Clarendon, VA for the &lt;a href="http://ux13.gomodev.com/"&gt;MoDevUX 2013 Hack-a-thon today&lt;/a&gt; and I took some pictures. &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Smile" src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/wlEmoticon-smile_2.png"&gt;&lt;/p&gt; &lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/WP_20130511_09_49_04_Panorama_2.jpg"&gt;&lt;img title="WP_20130511_09_49_04_Panorama" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="WP_20130511_09_49_04_Panorama" src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/WP_20130511_09_49_04_Panorama_thumb.jpg" width="1074" height="374"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h4 align="center"&gt;Above: Sponsors show off their APIs and tools.&lt;/h4&gt; &lt;p align="center"&gt;&lt;a href="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/WP_20130511_005_2.jpg"&gt;&lt;img title="WP_20130511_005" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="WP_20130511_005" src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/WP_20130511_005_thumb.jpg" width="1081" height="610"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h4 align="center"&gt;Above: I was filming for &lt;a href="http://www.youtube.com/franksworldtv"&gt;Frank’s World TV&lt;/a&gt;&lt;/h4&gt; &lt;p align="center"&gt;&lt;a href="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/WP_20130511_10_54_03_Panorama_4.jpg"&gt;&lt;img title="WP_20130511_10_54_03_Panorama" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="WP_20130511_10_54_03_Panorama" src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/WP_20130511_10_54_03_Panorama_thumb_1.jpg" width="1097" height="387"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h4 align="center"&gt;The Capital One Labs office space was spectacular. Here’s a view from the balcony.&lt;/h4&gt; &lt;p align="center"&gt;&lt;a href="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/WP_20130511_15_11_28_Cinemagraph%20(2)_2.gif"&gt;&lt;img title="WP_20130511_15_11_28_Cinemagraph (2)" style="display: inline" alt="WP_20130511_15_11_28_Cinemagraph (2)" src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/MoDevUX-2013-Hackathon_FA81/WP_20130511_15_11_28_Cinemagraph%20(2)_thumb.gif" width="815" height="455"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;People hard at work on their solutions.&lt;/p&gt;</description><pubDate>Sat, 11 May 2013 21:55:57 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/modevux-2013-hackathon</guid></item><item><title>A Frozen Moment in Time</title><link>http://franksworld.com:80/blog/a-frozen-moment-in-time</link><description>&lt;p&gt;The animated GIF is enjoying somewhat of a renaissance. Cinegraph is a handy little app for the Nokia Lumia 920, that lets you “film” a short animated GIF.&lt;/p&gt; &lt;p&gt;Here’s one from today’s MoDevUX 2013 Hack-a-thon in Clarendon, VA and it captures the interesting mementoes on someone’s desk.&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;p align="center"&gt;&lt;img src="http://media.memories.nokia.com/media/5dfdd5ad-84b4-483e-a19f-f200842a6f32.gif"&gt;&lt;/p&gt;</description><pubDate>Sat, 11 May 2013 21:46:45 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/a-frozen-moment-in-time</guid></item><item><title>FWTV Quick Update</title><link>http://franksworld.com:80/blog/fwtv-quick-update</link><description>&lt;p&gt;While setting up the Microsoft booth for Fosterly 2013, I had the chance to record a quick video for &lt;a href="http://www.youtube.com/franksworldtv"&gt;Frank’s World TV&lt;/a&gt;.&lt;/p&gt; &lt;p align="center"&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/L4Gc6cKA1ZA" frameborder="0" width="560" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Sun, 05 May 2013 02:22:00 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/fwtv-quick-update</guid></item><item><title>FiOS is Coming to My Neighborhood</title><link>http://franksworld.com:80/blog/fios-is-coming-to-my-neighborhood</link><description>&lt;p&gt;After having FiOS for well over a year at our old house in Virginia, it was a hard adjustment to lose that much internet speed when we moved into our current house in Maryland.&lt;/p&gt; &lt;p&gt;Well, if all goes according to plan, once again I will have fiber to Casa d’ Frankie.&lt;/p&gt; &lt;p&gt;In case you’re wondering what our house looked like when we got the notice FiOS was ready to get installed, it looked a little something like this*.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://bukk.it/lineup.gif"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;* minus the costumes, but it’s ok to take artistic license now and then.&lt;/p&gt;</description><pubDate>Thu, 02 May 2013 19:58:19 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/fios-is-coming-to-my-neighborhood</guid></item><item><title>The Bane of My Existence</title><link>http://franksworld.com:80/blog/the-bane-of-my-existence</link><description>&lt;p&gt;This dialog box has been the bane of my existence since the days of Windows 3.1.&lt;/p&gt; &lt;p&gt;It has returned the last couple of days on my Windows 8 machine like a monster from a bad horror film.&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/The-Bane-of-My-Existence_9F5D/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/The-Bane-of-My-Existence_9F5D/image_thumb.png" width="483" height="218"&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 02 May 2013 15:20:10 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/the-bane-of-my-existence</guid></item><item><title>31 Things You can Do to Improve Your Life in 31 Days</title><link>http://franksworld.com:80/blog/31-things-you-can-do-to-improve-your-life-in-31-days</link><description>&lt;p&gt;Found &lt;a href="http://www.slideshare.net/NiciElmore/30-things-you-can-do-to-improve-your-life-in-30-days"&gt;this inspirational slide deck&lt;/a&gt; on SlideShare.&lt;/p&gt; &lt;p&gt;As luck would have it, May has 31 days in it. :) &lt;/p&gt; &lt;p align="center"&gt;&lt;iframe style="margin-bottom: 5px; border-top: #ccc 1px solid; border-right: #ccc 1px solid; border-bottom: #ccc 0px solid; border-left: #ccc 1px solid" height="356" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/19561627" frameborder="0" width="427" marginwidth="0" scrolling="no" mozallowfullscreen webkitallowfullscreen allowfullscreen&gt; &lt;/iframe&gt;&lt;/p&gt; &lt;div style="margin-bottom: 5px" align="center"&gt;&lt;strong&gt;&lt;a title="31 Things You can Do to Improve Your Life in 31 Days" href="http://www.slideshare.net/NiciElmore/30-things-you-can-do-to-improve-your-life-in-30-days" target="_blank"&gt;31 Things You can Do to Improve Your Life in 31 Days&lt;/a&gt; &lt;/strong&gt;from &lt;strong&gt;&lt;a href="http://www.slideshare.net/NiciElmore" target="_blank"&gt;Nicole Elmore&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt; &lt;div style="margin-bottom: 5px"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style="margin-bottom: 5px"&gt;&amp;nbsp;&lt;/div&gt;</description><pubDate>Tue, 30 Apr 2013 14:36:42 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/31-things-you-can-do-to-improve-your-life-in-31-days</guid></item><item><title>This Is How Memes Get Started</title><link>http://franksworld.com:80/blog/this-is-how-memes-get-started</link><description>&lt;p&gt;Ever wonder how the “&lt;a href="http://knowyourmeme.com/memes/overly-attached-girlfriend"&gt;Overly Attached Girlfriend&lt;/a&gt;” meme got started. &lt;a href="http://www.youtube.com/user/wzr0713"&gt;Laina&lt;/a&gt; tells her story on Business Insider.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;script src="http://player.ooyala.com/player.js?deepLinkEmbedCode=J4eHVpYTr3DY3Vbfp3IUu-0Cf_yh8b1j&amp;amp;width=618px&amp;amp;embedCode=J4eHVpYTr3DY3Vbfp3IUu-0Cf_yh8b1j&amp;amp;height=347px"&gt;&lt;/script&gt;&lt;/p&gt;</description><pubDate>Wed, 24 Apr 2013 22:00:32 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/this-is-how-memes-get-started</guid></item><item><title>Frank's World TV at the Pennsylvania IT Conference</title><link>http://franksworld.com:80/blog/Franks-World-TV-at-the-Pennsylvania-IT-Conference</link><description>&lt;h6&gt;This has been on &lt;a href="http://www.youtube.com/user/FranksWorldTV?feature=watch"&gt;my YouTube channel&lt;/a&gt; for a while and I should cross-post here.&lt;/h6&gt;
&lt;p&gt;I had the opportunity to speak and attend the &lt;a href="http://www.govresources.com/"&gt;2013 Pennsylvania IT Conference&lt;/a&gt; and I thought I&amp;rsquo;d share the experience with the Frank&amp;rsquo;s World audience. &lt;img src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/Franks-World-TV-at-the-Pennsylvania-IT-C_99EF/wlEmoticon-smile_2.png" alt="Smile" style="border-style: none;" class="wlEmoticon wlEmoticon-smile" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="center"&gt;&lt;iframe frameborder="0" src="http://www.youtube.com/embed/RwnZnoOCsCc" height="315" width="560"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;In case you&amp;rsquo;re wondering, they would *not* let me film inside the Verizon trucks. If you look behind the guy&amp;rsquo;s shoulder, you can see some equipment, but that only pales in comparison to some of the goodies inside.&lt;/p&gt;</description><pubDate>Wed, 24 Apr 2013 15:06:43 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/Franks-World-TV-at-the-Pennsylvania-IT-Conference</guid></item><item><title>Write Windows Apps and Keep the Cash</title><link>http://franksworld.com:80/blog/write-windows-apps-and-keep-the-cash</link><description>&lt;p align="center"&gt;&lt;a href="http://bit.ly/KeepThatCash"&gt;&lt;img src="http://bukk.it/cabinparty.gif"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Write apps for Windows 8 and Windows Phone 8 and you can &lt;a href="http://bit.ly/KeepThatCash"&gt;get cash&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Not just cash from what revenue your apps(s) may earn, but cash for just authoring apps for Windows.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://bit.ly/KeepThatCash"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/Write-Windows-Apps-and-Keep-the-Cash_A631/image_3.png" width="781" height="153"&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 22 Apr 2013 17:49:34 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/write-windows-apps-and-keep-the-cash</guid></item><item><title>Windows 8 AppCannon NoVA Code Camp Presentation</title><link>http://franksworld.com:80/blog/windows-8-appcannon-nova-code-camp-presentation</link><description>&lt;p&gt;Here are the slides from my presentation yesterday at NoVA Code Camp 2013.1.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="center"&gt;&lt;iframe height="400" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/19412097" frameborder="0" width="476" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Sun, 21 Apr 2013 18:04:54 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/windows-8-appcannon-nova-code-camp-presentation</guid></item><item><title>FWTV Show 4 Green Screens, FOSE, OpenGov and a Giant Chicken</title><link>http://franksworld.com:80/blog/fwtv-show-4-green-screens-fose-opengov-and-a-giant-chicken</link><description>&lt;p&gt;The latest episode of &lt;a href="http://www.youtube.com/franksworldtv"&gt;Frank’s World TV&lt;/a&gt; is &lt;a href="http://www.youtube.com/watch?v=tAgDPEYLrlA"&gt;now online&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="center"&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/tAgDPEYLrlA" frameborder="0" width="560" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Tue, 02 Apr 2013 17:32:05 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/fwtv-show-4-green-screens-fose-opengov-and-a-giant-chicken</guid></item><item><title>Optimum Voice Screen Scraper (Part 1)</title><link>http://franksworld.com:80/blog/archive/2004/07/17/311.aspx</link><description>&lt;p&gt;Well, after about a week of after hours coding, my Optimum Voice settings Screen Scraper is finished.&amp;nbsp;For those, not in the know.&amp;nbsp; &lt;a href="http://www.optimumvoice.com"&gt;Optimum Voice&lt;/a&gt; is a VOIP (Voice Over IP) provider in the New York Metro Area.&amp;nbsp; They offer a service similiar to &lt;a href="http://www.vonage.com"&gt;Vonage&lt;/a&gt;&amp;nbsp;at a similiar price point. What they don't tell you in the commercials turns out be a pleasant surprise: you can change your phone's settings online.&amp;nbsp; You can turn Call Waiting on or off, set the number of rings until voice mail picks up, and set the phone to forward all through the well-designed web site.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I'm self employed and as such, I like to be reachable at all times.&amp;nbsp; Before&amp;nbsp;leaving the office for an extended period of time I like to forward the calls from my&amp;nbsp;telephone line to&amp;nbsp;my cell phone.&amp;nbsp; I get &lt;a href="http://www.nextel.com/phones_plans/promos/promo_free_incoming.shtml?id4=bb3;fastandfree"&gt;free incoming calls&lt;/a&gt; on my&amp;nbsp;cell phone account, so it doesn't cost me extra to get that added bit of mobility.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;My Vision&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As a natural born techie, I couldn't be satisfied with a pre-built web site to meet my needs.&amp;nbsp;&amp;nbsp;Many a time, I realize that I forgot to set the phone to forward to my mobile just as I step out the door.&amp;nbsp; Usually, by the time I make that realization, it's too much of a hassle to go back in to the offfice, boot up and log in to the site and change my settings.&amp;nbsp; Sure,&amp;nbsp;my Pocket PC has WiFi, but the Optimum Voice site doesn't play well with pocket version of&amp;nbsp;Internet Explorer. So, whipping out the PDA alone wouldn't do it.&lt;/p&gt;
&lt;p&gt;What I needed was a mini web site&amp;nbsp;that I could reference the big web site, send my credentials (ie. my user ID and password), and then change the settings.&amp;nbsp; The good folks at Optimum Voice's parent company, Cablevision, could have just as easily exposed a web service.&amp;nbsp;I had two choices: wait for them to create and expose a web service or write my own screen scraping application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enter the Scraper&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Screen Scraping is a time honored practice in IT, whereby you pull in information from one system to another.&amp;nbsp; I've done some work on a grander screen scraping scale using Java and CORBA and a strange little product from a German company called &lt;a href="http://www.fun.de/"&gt;Fun&lt;/a&gt;.&amp;nbsp; Years prior, my &lt;a href="http://www.fordham.edu"&gt;college&lt;/a&gt; also implemented a screen scraper when I was a student.&amp;nbsp;&amp;nbsp;For most of my time there, one&amp;nbsp;needed to go&amp;nbsp;a particular building and register for classes using a VT102 terminal logged into the school's VAX&amp;nbsp;system.&amp;nbsp;&amp;nbsp; One semester, without any&amp;nbsp;heads up from the people I knew&amp;nbsp;in the &lt;a href="http://www.fordham.edu/general/Information_Technolo/CIMS4028.html"&gt;University's IT department&lt;/a&gt;, the&amp;nbsp;school implemented an IVR (&lt;a href="http://www.webopedia.com/TERM/I/IVR.html"&gt;interactive voice repsonse&lt;/a&gt;)&amp;nbsp;system and&amp;nbsp;class registration could be done via touch tone phone.&amp;nbsp; Curious about the sudden upgrade in technology, my friend told me that they used a technique called &lt;a href="http://catb.org/~esr/jargon/html/S/screen-scraping.html"&gt;Screen Scraping&lt;/a&gt; to pull the information off the VT102 screens and onto the phone.&amp;nbsp; It was quick, cheap, and easy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Alright Already, where's the Freakin' Code?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This post is already way too long and I would love to&amp;nbsp;write&amp;nbsp;on for several pages.&amp;nbsp; So, if there's any coding magazine editors out there looking to fill some space, email me. (frank at smoothium dot com)&amp;nbsp; For the rest of you who have read this far, here's the code.&lt;/p&gt;
&lt;p&gt;I chose to implement the actual scraping portion as a web service, that way I can write a web site, Windows app, or even a PocketPC application to turn forwarding on and off.&lt;/p&gt;
&lt;p&gt;Two methods are exposed to the web service to make the API simple. Speaking of simple, you can guess what each one does:&lt;/p&gt;
&lt;p&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="margin-right: 0px;"&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;
&lt;p&gt;&lt;span size="2" style="font-size: x-small;"&gt;[WebMethod]&lt;br /&gt;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;public&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;string&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; TurnForwardingOn()&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; return&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; SubmitPost(&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;this&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt;.ForwardingOnPostString);&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;
&lt;p&gt;&lt;span size="2" style="font-size: x-small;"&gt;[WebMethod]&lt;br /&gt;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;public&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;string&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; TurnForwardingOff()&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; SubmitPost(TURN_FORWARDING_OFF);&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The SubmitPost method&amp;nbsp;accepts a string parameter which holds the POST data to be sent out to the site.&amp;nbsp; I exposed a string property of the class to return an HTTP POST formatted string that pulled in the actual phone number from a Web.Config File.&lt;/p&gt;
&lt;p&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="margin-right: 0px;"&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;
&lt;p&gt;&lt;span size="2" style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;public&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;string&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; ForwardingOnPostString&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; get&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;string&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt;.Format("oldCallWaiting=1&amp;amp;oldCallFowarding=0&amp;amp;callWaiting=on&amp;amp;callForwardEnable=on&amp;amp;cfnpa={0}&amp;amp;cfnxx={1}&amp;amp;cfsta={2}&amp;amp;x=80&amp;amp;y=7", &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigurationSettings.AppSettings["ForwardingAreaCode"],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigurationSettings.AppSettings["ForwardingExchange"],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigurationSettings.AppSettings["ForwardingNumber"]);&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p dir="ltr" style="margin-right: 0px;"&gt;&lt;span size="2" style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;The web.config has the following lines:&lt;span size="2" style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="margin-right: 0px;"&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;
&lt;p&gt;&lt;span size="2" style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span color="#800000" size="2" style="color: #800000; font-size: x-small;"&gt;add&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#ff0000" size="2" style="color: #ff0000; font-size: x-small;"&gt;key&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;="ForwardingAreaCode"&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#ff0000" size="2" style="color: #ff0000; font-size: x-small;"&gt;value&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;="212"&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span color="#800000" size="2" style="color: #800000; font-size: x-small;"&gt;add&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#ff0000" size="2" style="color: #ff0000; font-size: x-small;"&gt;key&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;="ForwardingExchange"&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#ff0000" size="2" style="color: #ff0000; font-size: x-small;"&gt;value&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;="555"&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span color="#800000" size="2" style="color: #800000; font-size: x-small;"&gt;add&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#ff0000" size="2" style="color: #ff0000; font-size: x-small;"&gt;key&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;="ForwardingNumber"&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#ff0000" size="2" style="color: #ff0000; font-size: x-small;"&gt;value&lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;="1212"&lt;/span&gt;&lt;span color="#ff00ff" size="2" style="color: #ff00ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I split out the phone number, since the receiving form handler accepts them that way and I was too impatient to write a phone number parser. Here's a look at the POST formattted string:&lt;/p&gt;
&lt;p&gt;&lt;span color="#008000" size="2" style="color: #008000; font-size: x-small;"&gt;
&lt;blockquote dir="ltr" style="margin-right: 0px;"&gt;
&lt;p&gt;"oldCallWaiting=1&amp;amp;oldCallFowarding=0&amp;amp;callWaiting=on&amp;amp;callForwardEnable=on&amp;amp;cfnpa=212&amp;amp;cfnxx=555&amp;amp;cfsta=1212&amp;amp;x=80&amp;amp;y=7"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;POST&amp;nbsp;string&amp;nbsp;to turn&amp;nbsp;the call forwarding feature off never changes, so I made it a constant:&lt;/p&gt;
&lt;p&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="margin-right: 0px;"&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt; &lt;/span&gt;
&lt;p&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;private&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;const&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span color="#0000ff" size="2" style="color: #0000ff; font-size: x-small;"&gt;string&lt;/span&gt;&lt;span size="2" style="font-size: x-small;"&gt; TURN_FORWARDING_OFF = "oldCallWaiting=1&amp;amp;oldCallFowarding=0&amp;amp;callWaiting=on&amp;amp;callForwardEnable=off&amp;amp;x=48&amp;amp;y=3";&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once you have the parameters placed neatly inside of a string like this, the next step is to send it to the web server.&amp;nbsp; Since my target &lt;a href="http://www.jsptut.com/Forms.jsp"&gt;form handler&lt;/a&gt; sits behind a forms-authenticated page, I have to log into the site first, get an authenticaion ticket from the server in the form a cookie, and then send that cookie along with any communication to the server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I'd like to thank&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I hit a few roadblocks, mad props go out to &lt;a href="http://www.odetocode.com/blogs/scott/"&gt;Scott&lt;/a&gt;&amp;nbsp;for his fine article on &lt;span class="Article_Title"&gt;&lt;a target="_blank" href="http://odetocode.com/Articles/162.aspx"&gt;screen scraping, ViewState, and authentication&amp;nbsp;in ASP.Net&lt;/a&gt;. and, of course, to &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=13598"&gt;Steve X for help&amp;nbsp;with getting the WebRequest object to work with HTTPS&lt;/a&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stay tuned for Part 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my next post, I'll get deeper into the HTTP WebRequest object and some ideas for expanding the project to&amp;nbsp;include Vonage customers, as well as make the solution more elegant.&lt;/p&gt;
&lt;p&gt;&lt;span color="#ff0000" style="color: #ff0000;"&gt;UPDATE:&lt;/span&gt; &lt;a href="http://www.franksworld.com/blog/archive/2004/07/18/313.aspx"&gt;Part 2 has been posted&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 15 Mar 2013 13:18:25 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/archive/2004/07/17/311.aspx</guid></item><item><title>Happy Pi Day</title><link>http://franksworld.com:80/blog/happy-pi-day</link><description>&lt;p&gt;Imagine if you took Rebecca Black’s Friday and mashed it up with some science for 3/14. &lt;/p&gt; &lt;p&gt;You get this:&lt;/p&gt; &lt;p align="center"&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/mIQQp7fF46A" frameborder="0" width="560" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Thu, 14 Mar 2013 22:26:15 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/happy-pi-day</guid></item><item><title>Happy Birthday Einstein</title><link>http://franksworld.com:80/blog/happy-birthday-einstein</link><description>&lt;p&gt;Not only is it Pi Day (3/14), it’s also Einstein’s birthday.&lt;/p&gt; &lt;p&gt;Check out this documentary on his life.&lt;/p&gt; &lt;p&gt;His professors thought he was a goof off and he thought himself a loser. &lt;/p&gt; &lt;p&gt;He contemplated leaving science to sell insurance.&lt;/p&gt; &lt;p&gt;Imagine that.&lt;/p&gt; &lt;p align="center"&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/P8DrxzkwnmA" frameborder="0" width="560" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Thu, 14 Mar 2013 22:16:03 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/happy-birthday-einstein</guid></item><item><title>September 10th</title><link>http://franksworld.com:80/blog/archive/2004/09/10/402.aspx</link><description>&lt;p&gt;Most people will take time out tomorrow to remember the tragic events of 9/11/2001.&amp;nbsp; For me, I tend to think about 9/11 every day.&amp;nbsp; I live where I live today, due largely to the fact that my apartment near the WTC was destroyed by dust and debris.&lt;/p&gt;
&lt;p&gt;September 10th, 2001 was the last day of the &amp;ldquo;way things used to be.&amp;rdquo;&amp;nbsp; Before you had to take your shoes off at the airport, before you had to think about life and death situations, before you had to worry about international terrorism on our shores.&amp;nbsp; In many ways, September 10th is a moment frozen in time for me.&amp;nbsp; It was the last moment of the way my life, and all of our lives,&amp;nbsp;used to be.&lt;/p&gt;
&lt;p&gt;That night was a very bizzare night for me personally.&amp;nbsp; There was a strange feeling in the city and the overcast sky cast an odd purple glow on the city.&amp;nbsp; It was so strange &lt;a href="http://www.franksworld.com/wtc/night_before/index.htm"&gt;I even took pictures of it&lt;/a&gt;.&amp;nbsp; I had this certain feeling of dread that I could not put my finger on.&amp;nbsp; September 10th was to be the last boring, uneventful day for me and many Americans for quite some time.&lt;/p&gt;
&lt;p&gt;Now, three years later, our nation is beginning to heal and some even&amp;nbsp;have managed&amp;nbsp;to forget.&amp;nbsp; I wish I could say the the terrorist attacks of three years ago are going to be the last we must endure, but it is simply not so.&amp;nbsp; We have enemies who despise our way of life and will stop at nothing to get at us.&amp;nbsp; Recent attacks in Russia, Jakarta and&amp;nbsp;Spain show us that our enemies do not respect the traditional rules of war.&lt;/p&gt;</description><pubDate>Wed, 13 Mar 2013 02:25:47 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/archive/2004/09/10/402.aspx</guid></item><item><title>Interplanetary Weather</title><link>http://franksworld.com:80/blog/archive/2005/01/21/660.aspx</link><description>&lt;p&gt;The Huygens probe on Titan &lt;a href="http://www.guardian.co.uk/uk_news/story/0,3604,1395978,00.html"&gt;observed rain on another world&lt;/a&gt;.&amp;nbsp; Instead of water, it &lt;a href="http://www.theregister.co.uk/2005/01/22/titan_flammable/"&gt;rained liquid methane&lt;/a&gt;. Expect comedians to make &lt;a href="http://www.theregister.co.uk/2004/09/21/mars_methane/"&gt;childish jokes about methane&lt;/a&gt;, but I am looking forward to hearing &amp;ldquo;&lt;a href="http://abcnews.go.com/International/wireStory?id=432008"&gt;It's Raining Methane&lt;/a&gt;.&amp;rdquo;&lt;/p&gt;</description><pubDate>Tue, 12 Mar 2013 01:21:25 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/archive/2005/01/21/660.aspx</guid></item><item><title>Back in the 90s</title><link>http://franksworld.com:80/blog/back-in-the-90s</link><description>&lt;p&gt;&lt;a href="http://www.quickmeme.com/meme/3tbmta/"&gt;This&lt;/a&gt; is probably how I will feel explaining the 90’s to my son. &lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/afb06e36780a_88E1/image_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.franksworld.com/blog/Media/Default/Windows-Live-Writer/afb06e36780a_88E1/image_thumb.png" width="567" height="529"&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 11 Mar 2013 13:49:24 GMT</pubDate><guid isPermaLink="true">http://franksworld.com:80/blog/back-in-the-90s</guid></item></channel></rss>