<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-38540755</id><updated>2012-01-23T10:26:54.891-06:00</updated><title type='text'>Technology Ramblings</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-38540755.post-1174793853490473090</id><published>2008-03-18T06:25:00.002-05:00</published><updated>2008-03-18T06:37:55.112-05:00</updated><title type='text'>New Job, Same Direction</title><content type='html'>I started working for &lt;a href="http://www.greenwaymedical.com/"&gt;Greenway Medical Technologies&lt;/a&gt; last Monday.  I will be doing the same type of work that I was for &lt;a href="http://www.digichart.com"&gt;digiChart&lt;/a&gt;, just much more of it.  I am excited about the opportunities that abound at my new company.  I will be working out of my home most of the time, traveling to Carrollton, Ga once a month to have some face-to-face time with the team.  I will also remain on the &lt;a href="http://www.ihe.net/"&gt;IHE&lt;/a&gt; &lt;a href="http://wiki.ihe.net/index.php?title=Patient_Care_Coordination"&gt;PCC Committee&lt;/a&gt; as one of the authors of the Antepartum Summary profile.  I feel privileged to be working on this profile and not only is it a healthy exercise for me, but also for my company as it will help to keep us in the loop in the interoperability world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-1174793853490473090?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/1174793853490473090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=1174793853490473090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/1174793853490473090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/1174793853490473090'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2008/03/new-job-same-direction.html' title='New Job, Same Direction'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-7017032675038323941</id><published>2008-02-14T21:44:00.016-06:00</published><updated>2008-02-14T23:37:32.407-06:00</updated><title type='text'>How to remove whitespace from xml serialized from a custom object</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;Recently I came across a problem with whitespace in xml that I was serializing from a custom entity class.  The situation is this – I create my custom object, apply the XmlSerializer to it, generate the xml and put it in a memory stream without a hitch.  I then convert to a string and save to a database.  While verifying the data being saved I find that about %30 of the xml is whitespace, which can become quite considerable when you take into account hundreds of thousands of transactions.  My first thought was to use good old regular expressions, but I was concerned about unintentionally removing whitespace that I may want to keep – such as inside an element or attribute.  What I finally came up with was to load the xml string into an XmlDocument and set the PreserveWhitespace to false.  See below for a simplified example.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Courier New;font-size:10;"  &gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;Create and populate a custom object:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:10;"  &gt;&lt;span style="color: rgb(43, 145, 175);font-size:100%;" &gt;    Car&lt;/span&gt;&lt;span style="font-size:100%;"&gt; c = &lt;/span&gt;&lt;span style=";font-size:100%;color:blue;"  &gt;new &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);font-size:100%;" &gt;Car&lt;/span&gt;&lt;span style="font-size:100%;"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;                c.Make = &lt;span style="color: rgb(163, 21, 21);"&gt;"Jeep"&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;                c.Model = &lt;span style="color: rgb(163, 21, 21);"&gt;"Wrangler"&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;                c.Year = &lt;span style="color: rgb(163, 21, 21);"&gt;"1981"&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Use the XmlSerializer class to serialize the object as xml to a System.IO.MemoryStream:&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;    System.IO.&lt;span style="color: rgb(43, 145, 175);"&gt;MemoryStream&lt;/span&gt; ms = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.IO.&lt;span style="color: rgb(43, 145, 175);"&gt;MemoryStream&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;    System.Xml.Serialization.&lt;span style="color: rgb(43, 145, 175);"&gt;XmlSerializer&lt;/span&gt; xs = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Xml.Serialization.&lt;span style="color: rgb(43, 145, 175);"&gt;XmlSerializer&lt;/span&gt;(c.GetType());&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:10;"  &gt;&lt;span style="font-size:100%;"&gt;                xs.Serialize(ms, c);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:10;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Convert to string for storage in database or other use:&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:10;"  &gt;&lt;br /&gt;&lt;span style=";font-size:100%;color:blue;"  &gt;string&lt;/span&gt;&lt;span style="font-size:100%;"&gt; str = System.Text.&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);font-size:100%;" &gt;ASCIIEncoding&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.ASCII.GetString(ms.ToArray());&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;You will now have the following xml in your string variable (it actually has tabs too, but when publishing from Word, blogspot doesn't render the html quite as I expected) So this is nice, right?&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;&amp;lt;Car xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;  &amp;lt;Make&amp;gt;Jeep&amp;lt;/Make&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;  &amp;lt;Model&amp;gt;Wrangler&amp;lt;/Model&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;  &amp;lt;Year&amp;gt;1981&amp;lt;/Year&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;&amp;lt;/Car&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Yes and no.  The XmlSerializer class is very useful in that it is easy to implement, but it includes whitespace by default.  This is good for presentation, but bad for data storage and transmission.   The easiest way I have found to strip the white space is to do the following:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Create an XmlDocument and load the string into it:&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;            System.Xml.&lt;span style="color: rgb(43, 145, 175);"&gt;XmlDocument&lt;/span&gt; xmlDoc = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Xml.&lt;span style="color: rgb(43, 145, 175);"&gt;XmlDocument&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;            xmlDoc.LoadXml(str);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Then set the PreserveWhitespace property to false:&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:10;"  &gt;&lt;span style="font-size:100%;"&gt;            xmlDoc.PreserveWhitespace = &lt;/span&gt;&lt;span style=";font-size:100%;color:blue;"  &gt;false&lt;/span&gt;&lt;span style="font-size:100%;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now the .OuterXml property of the XmlDocument will have this:&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-left: 72pt;"&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;Car xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&amp;gt;&amp;lt;Make&amp;gt;Jeep&amp;lt;/Make&amp;gt;&amp;lt;Model&amp;gt;Wrangler&amp;lt;/Model&amp;gt;&amp;lt;Year&amp;gt;1981&amp;lt;/Year&amp;gt;&amp;lt;/Car&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;All done!  Xml without the whitespace!&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-7017032675038323941?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/7017032675038323941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=7017032675038323941' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/7017032675038323941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/7017032675038323941'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2008/02/remove-whitespace-from-xml-document.html' title='How to remove whitespace from xml serialized from a custom object'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-714885663332182743</id><published>2008-02-06T22:13:00.000-06:00</published><updated>2008-02-06T22:41:40.269-06:00</updated><title type='text'>Linux Finally!</title><content type='html'>I have tried to install Linux twice in my life before now.  The first attempt was with Slackware about 5 years ago - let's just say that didn't go so well.  The second was about 4 months ago on a computer I was fixing for family - it was Ubuntu, and although it installed successfully I quickly gave up because I really wasn't looking to spend all the configuration time necessary for a Linux newbie.&lt;br /&gt;&lt;br /&gt;A few days ago I decided to install Ubuntu on my current Desktop as a dual boot alongside Vista.  My goal is to run everything (outside of my professional computer life as a .NET developer) from Linux.  Although it hasn't been without it's bumps, it has gone relatively well.  I have it up and running on dual screen monitors, listening to music, browsing the web, watching videos, etc.  And it's sooooo much faster than Vista.  I still have not committed to going fully to Linux as that will take much more work.&lt;br /&gt;&lt;br /&gt;My favorite part of this project is that I am really having fun exploring this technology that is new to me.  I have always known Microsoft OS's, from way back in the DOS days, and it's healthy to see other perspectives of how an OS can be run effectively.  What has been challenging is the lack of idiot proofing Ubuntu provides.  Windows has always excelled at this and tries to prevent you from irreversibly damaging your install (or at least gives you that impression).  I reinstalled Ubuntu at least 3 times after hosing the video drivers - but then maybe that is just because I did not know how to unhose them, and it was much quicker to reinstall at that time. &lt;br /&gt;&lt;br /&gt;Some Ubuntu tasks I have ahead of me include:&lt;br /&gt;- install WINE so I can run certain windows apps (Quicken comes to mind first)&lt;br /&gt;- setup Picasa for Linux&lt;br /&gt;- research new package that allows read/write to NTFS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-714885663332182743?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/714885663332182743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=714885663332182743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/714885663332182743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/714885663332182743'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2008/02/linux-finally.html' title='Linux Finally!'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-8476615505739466866</id><published>2008-02-03T22:01:00.001-06:00</published><updated>2008-02-03T22:01:11.146-06:00</updated><title type='text'>IHE Connectathon</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Last week I attended an event called IHE Connectathon.  IHE stands for Intergrating Healtcare Enterprise.  The Connectathon is an event that is put on by IHE in different countries at various times during the year.  I attended the IHE North America Connectathon in Chicago.  My purpose for attending was to implement some of the various profiles available in my company's emr application.  The goal of our implementation was to be able to exchange xml documents across many different emr systems developed on different platforms with different languages.  Anyone in the software development industry can appreciate the enormous complexity of this feat.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Several months leading up to the event my colleague and I prepared vigorously, working long hours. We constructed a database model I was proud of, and the code was not too shabby either.  So we packed up and headed off to snowy Chicago ready for the Connectathon.  We were quite surprised when Monday morning rolled around and all 300 attendees were there and started buzzing around like insects when the start bell rang.  We sat in quiet confusion as we tried to digest the testing process that was happening all around us.  After the first day we had figured out how to accomplish what it was we were supposed to accomplish.  Mind you, we knew that we had to pass these certain tests, but knowing what our task was and how to accomplish it were two different things that first day.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;As the week progressed we fine tuned our system, and dropped a few profiles (which meant less tests to pass), and by the end of the week we had our system functioning properly and passed twenty tests in total.  Some companies passed more, some less – all in all it was a successful week and we have had the opportunity to really lay the groundwork for interoperability in my company's application.  I discovered that Connectathon really wasn't about passing the tests as much as it was about learning how to become interoperable.  In fact, "gold stars" or certification type awards were given out the first few years, but heavy marketing of these types of merits quickly negated the intention of the Connectathon.  It created too much competition between the participating vendors, which had a negative effect on the cooperation of those normally competitive companies.  You see, at Connectathon, it pays to work &lt;strong&gt;&lt;em&gt;with&lt;/em&gt;&lt;/strong&gt; your competitors – if they win then you win and vice versa.  While there is a large sense of respect for each company's privacy, there definitely is a focus on working toward win-win situations.  I spoke with one infrastructure vendor (one who supports repositories of patient data) who said they do not require anyone working with them to implement and pass the Connectathon tests – they simply have to be able to complete the tasks necessary for the types of transactions they wish to implement.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Where these tests will come into play is when other government-backed health initiatives push certifications forward using the IHE profiles.  This is coming – it's a fact!  The tests may be in a different form – administered differently, or what have you, but some of the same interoperability functionality we programmed for the Connectathon will be required in the future to have a successful emr application.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Whatever the future holds for me and health care interoperability I am excited to be a part of what it happening.  I think it is revolutionary and I think that it will all affect our lives sooner than we realize. &lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-8476615505739466866?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/8476615505739466866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=8476615505739466866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/8476615505739466866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/8476615505739466866'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2008/02/ihe-connectathon.html' title='IHE Connectathon'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-3101849679854713710</id><published>2007-10-13T23:36:00.001-05:00</published><updated>2007-10-15T10:23:14.732-05:00</updated><title type='text'>My GTD Post – Files and Documents Folder Structure</title><content type='html'>&lt;div&gt;&lt;span xmlns=""&gt;&lt;br /&gt;&lt;p&gt;For those of you who don't know, GTD stands for &lt;strong&gt;G&lt;/strong&gt;etting &lt;strong&gt;T&lt;/strong&gt;hings &lt;strong&gt;D&lt;/strong&gt;one. I am slowly making improvements in my organization skills in my professional life. Recently I decided to take a closer consideration of my files and documents organization on my Vista laptop. I didn't really have a method to my madness as far as file organization went - some were in folders on my desktop, others were in a folder of the root of C, and yet others were in the profile structure provided by Vista. Two problems with this:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;When I want to backup my important files I have no easy way of doing so.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The profile file storage provided by Vista gets cluttered with miscellaneous folders such as My Received Files, My Virtual Machines, Visual Studio 2005, etc., etc. It is often the default storage folder for several different programs.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;p&gt;So my requirements were as follows:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Contain all folders under one parent folder for easy backup &lt;/li&gt;&lt;br /&gt;&lt;li&gt;A hierarchy that could:&lt;br /&gt;- separate current and past projects&lt;br /&gt;- have a tree for media/docs&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;And this is what I came up with:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;a href="http://bp0.blogger.com/_5gM2QYV7Q_U/RxOFpzIIUOI/AAAAAAAABds/frMfU7llxAo/s1600-h/GTD.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5121584154395824354" style="CURSOR: hand" alt="" src="http://bp0.blogger.com/_5gM2QYV7Q_U/RxOFpzIIUOI/AAAAAAAABds/frMfU7llxAo/s320/GTD.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I've been using this for about 3 months now and it is working well thus far. For easy access I use shortcuts on my desktop. Additionally these shortcuts allow me to drop files directly into them as if they are folders living on the desktop.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-3101849679854713710?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/3101849679854713710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=3101849679854713710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/3101849679854713710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/3101849679854713710'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/10/my-gtd-post-files-and-documents-folder.html' title='My GTD Post – Files and Documents Folder Structure'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_5gM2QYV7Q_U/RxOFpzIIUOI/AAAAAAAABds/frMfU7llxAo/s72-c/GTD.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-7723762031583379427</id><published>2007-05-19T09:19:00.001-05:00</published><updated>2007-05-19T09:26:45.222-05:00</updated><title type='text'>Script Debugging Alternative in IE</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Lately I have been experiencing problems with the Script debugger in Visual Studio 2005.  The debugger is started by inserting a &lt;span style='color:#1f497d; font-family:Courier New'&gt;&lt;strong&gt;debugger&lt;/strong&gt;&lt;/span&gt; statement in your code like so:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;function doSomething()&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;    for (i = 0; i &amp;lt; 10; i++)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;    {&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;        &lt;br /&gt;&lt;span style='background-color:yellow'&gt;debugger;&lt;/span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;        document.write(i)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;This method of debugging is great because it allows you to debug just as you would with server side code.  There are several &lt;a href='http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html'&gt;blogs on the web&lt;/a&gt; that go into detail about how to do this.  The problem I am having is that the Visual Studio script debugger randomly hangs for no apparent reason.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The other day I was forced to search for a better solution to solve a particular problem I had.  One way that I have done this in the past is to use &lt;span style='color:#4f81bd; font-family:Courier New'&gt;&lt;strong&gt;alert()&lt;/strong&gt;&lt;/span&gt; statements, which is just ok at best, so I started asking around at work to see what others have done.  One solution that a co-worker of mine (Ryan Garrett) had used was to use &lt;span style='color:#4f81bd; font-family:Courier New'&gt;&lt;strong&gt;document.write()&lt;/strong&gt;&lt;/span&gt;to output information to a new window like so:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;var win;                &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;if (!win)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;win = window.open("","debug","width=400,height=260");&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;   for (i = 0; i &amp;lt; 10; i++)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;   {&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;   win.document.write(i);&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;   }&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 50pt'&gt;&lt;span style='color:#4f81bd; font-family:Courier New; font-size:12pt'&gt;}                &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;  &lt;br /&gt; &lt;/p&gt;&lt;p&gt;This is a simple concept, and helped me tremendously in the problem I was solving.  The code above instantiates a new window, iterates through a loop 10 times and displays the value of the index on each pass through the loop.  The &lt;span style='color:#548dd4; font-family:Courier New'&gt;if(!win)&lt;/span&gt; check reuses the same window on each pass through the loop.  This is important when you have several values you want to output, it prevent a new window from opening up for every value you display.  Below is a screenshot of the popup this code creates.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img src="http://www.anscottdesign.com/blogimages/popup.jpg"&gt;&lt;br /&gt;   &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-7723762031583379427?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/7723762031583379427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=7723762031583379427' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/7723762031583379427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/7723762031583379427'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/05/script-debugging-alternative-in-ie.html' title='Script Debugging Alternative in IE'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-7063307525702181324</id><published>2007-05-05T20:24:00.001-05:00</published><updated>2007-05-05T20:24:05.409-05:00</updated><title type='text'>Gmail and Outlook 2007</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;I had some trouble setting up Gmail with Outlook 2007.  It would receive mail just fine, but sending did not work.  Something was up with the SMTP server settings.  After enabling POP3 access in Gmail, which you are required to do, I did the following:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click Tools &lt;span style='font-family:Wingdings'&gt;à&lt;/span&gt; Account Settings to bring up the email accounts dialog window.  &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click New.  &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Then it prompts for type of account (Exchange, POP3, etc.).  POP3 is default so click Next.  &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The next screen prompts for name, email address and password.  There is a check box at the bottom to manually configure server settings.  By default this is unchecked so that Outlook will run the auto setup.  Being a configuration kind of guy I decide to manually set it up to make sure all the settings are correct.  So I check the option and click Next.  (This grays out name, email address and password).  &lt;br /&gt;&lt;/li&gt;&lt;li&gt;I continued with setup per &lt;a href='https://mail.google.com/support/bin/answer.py?answer=13278&amp;amp;topic=1556'&gt;Gmail's configuring your email client: Outlook 2003&lt;/a&gt; (Microsoft had very similar documentation).  &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So now I'm done, right?  Well, sort of.  I can receive email, but cannot send.  When I click Send/Receive Outlook shows its usual message about connecting to server.  And it takes forever.  Eventually it times out with a general error about not being able to send mail.   In the more settings section in Outlook email account setup, on the advanced tab there is an Outgoing server (SMTP) box where you can enter a port to use.  Google and Microsoft both say to use port 465, which did not work.  I found a post somewhere on the web to use some other port number (forgot what it was), but that did not work either.  I went through and tried every combination of all the other settings that could be causing this to not work correctly but to no avail.  I opened new posts on a couple of different high traffic sites to see if anyone could provide some light on the situation.  I got several responses with suggestions but nothing worked.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What finally did work for me was to let outlook run through the auto setup – it changed the SMTP port to 587&lt;/strong&gt;.  Now I can send and receive mail!  So the lesson here is to try the idiot proof way first, if that doesn't work then manually configure.  &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-7063307525702181324?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/7063307525702181324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=7063307525702181324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/7063307525702181324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/7063307525702181324'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/05/gmail-and-outlook-2007.html' title='Gmail and Outlook 2007'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-184503633501569315</id><published>2007-03-03T21:14:00.001-06:00</published><updated>2007-03-03T21:17:04.054-06:00</updated><title type='text'>Vista Business</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;It's been a while since I've blogged mainly because work has kept me busy with exciting new technology, which has been ClickOnce, and some other things.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;I've been running Vista on my home pc for about a month now.  I started out with a 3.0 Ghz Dell, 1GB RAM, Geforce 6600 GT graphics card.  I have upgraded to 3GB RAM and added a 2GB flash drive to take advantage of the Ready Boost feature, which works decent in my opinion.  My Windows Experience Index started at 4.2 pre-RAM upgrade, and strangely enough it remains at 4.2 post-upgrade, but the performance of my computer improved drastically.  I must admit I didn't fully explore all the options to speed up Vista by turning off certain features, but then again I wasn't too interested because I needed a way to justify buying more RAM right??  All-in-all I'm happy with Vista and the Office 07 suite.  This blog is even being posted from Word 2007, which is much better than using the tiny rich text editor that blogger offers.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Some small projects I have on the plate are&lt;br /&gt;&lt;/p&gt;&lt;ol style='margin-left: 54pt'&gt;&lt;li&gt;My printer is setup directly to my desktop, I want to be able to print from my laptop via the wireless connection.  I tried this once but had trouble.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fix my Snap Server.  It works I think, I just need to perform a hard reset and reconfigure it.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Setup an exchange server – I'm waiting on some old AMD equipment I will be using to build this.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;   &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-184503633501569315?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/184503633501569315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=184503633501569315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/184503633501569315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/184503633501569315'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/03/vista-business.html' title='Vista Business'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-9072289641181110554</id><published>2007-01-26T21:42:00.000-06:00</published><updated>2007-01-26T22:04:14.324-06:00</updated><title type='text'>Microsoft Action Pack questions answered</title><content type='html'>&lt;b&gt;Last week I sent a list of questions to Microsoft about the action pack. Below are my questions.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;* It looks like I will receive Vista Business, will I also receive Ultimate? or any of the other versions?&lt;br /&gt;&lt;br /&gt;* Will I receive XP Pro? or any other older versions of Windows?&lt;br /&gt;&lt;br /&gt;* Will I receive a full version of Vista and not just an upgrade? I need the full version.&lt;br /&gt;&lt;br /&gt;* What is the difference between "Number of Licenses" and "Number of Client Licenses"?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;And their response&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;We appreciate your interest in the Microsoft Action Pack Subscription. Currently, only the full version of Windows Vista Business Edition is provided in the action pack subscription.The Microsoft Action Pack Subscription software contents can be viewed at the following link:&lt;br /&gt;https://partner.microsoft.com/global/program/managemembership/40013779&lt;br /&gt;&lt;br /&gt;In addition to the software listed, you will also receive quarterly updates. Please note that the items marked with an asterisk are new. These products will be in the Quarterly Update kit.&lt;br /&gt;&lt;br /&gt;The Microsoft Action Pack Subscription License allows the partner to utilize the software for internal business use, testing, demonstration, evaluation, and training. Subscribers will be issued product keys for offered products that use Windows Activation technology.&lt;br /&gt;&lt;br /&gt;The software that is included in your Microsoft Action Pack Subscription does require product activation. The difference between Client Access Licenses is that these will allow you to access a server; while products with number of licenses will be for individual computers that do not access a server. Please use the production activation keys supplied on the CD sleeve or on the individual PID cards for the software that was included in the Welcome Kit. For additional information regarding the Microsoft Action Pack Subscription License Agreement, please visit:&lt;br /&gt;https://partner.microsoft.com/US/program/managemembership/actionpack/mapslicensing &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-9072289641181110554?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/9072289641181110554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=9072289641181110554' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/9072289641181110554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/9072289641181110554'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/01/microsoft-action-pack-questions.html' title='Microsoft Action Pack questions answered'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-422327822811251174</id><published>2007-01-21T22:21:00.000-06:00</published><updated>2007-01-21T09:14:21.314-06:00</updated><title type='text'>Microsoft Action Pack - a deal!</title><content type='html'>What a deal this is! If any of you are developers and are not familiar with the Action Pack you really should look into it. Sometime last year I was considering an MSDN subscription. But at a going price of $2200 or so, it's a little much (although you do get ALL the software MS produces - except for games). The major difference between MSDN and MAPS is that MSDN includes Visual Studio.  &lt;a href="https://partner.microsoft.com/40013779"&gt;See official details here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Two things you should know before purchasing:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://vladville.com/2006/09/microsoft-deals-a-blow-to-action-pack-pirates.html"&gt;You will not receive a full version of Vista - only an upgrade from XP Pro.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I can understand the intent behind this, but I don't really agree with the approach. Here is blog with more details.  This was a rule that was put into place in summer of 2006 in attempt to prevent piracy. It seems that many businesses were using the licenses to distribute with new PCs, which of course if a violation of the agreement. So instead of focusing on the root problem of piracy by validating buyers as valid Partners, Microsoft has decided to treat the symptom.  So we, the paying customers, are the ones who really suffer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.vladville.com/2007/01/they-took-r-action-pack-rights.html"&gt;No downgrade rights.&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;This one I do not understand.  I, like many others, are in the situation of needing to have both operating systems available.  I have some clients still on the 1.1 framework, and I'm not sure how well Vista supports this.  Fortunately for my situation this isn't a big deal since I am a first time MAPS subscriber.  I already have a licensed copy of XP Pro so I will just run a dual boot, or maybe a virtual machine (not sure yet) to have access to XP.  My computer is also "Vista Ready" so I am not in need of hardware upgrades.  For others who might have older hardware that Vista may not support are forced to upgrade their hardware as well, and the cost can increase significantly if multiple machines are being used.  &lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Even with these two drawbacks this is still a deal.  You get access to most of Microsoft's software with multiple licenses for one year, all for $299.  As time and money allow I can't wait to setup an Exchange server, Sharepoint server, SQL Server, etc., not for production of course, but just to quench my personal thirst for technology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-422327822811251174?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/422327822811251174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=422327822811251174' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/422327822811251174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/422327822811251174'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/01/microsoft-action-pack-deal.html' title='Microsoft Action Pack - a deal!'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-656204218501821009</id><published>2007-01-12T00:12:00.000-06:00</published><updated>2007-01-12T00:28:42.860-06:00</updated><title type='text'>Studying for the MCTS 70-536</title><content type='html'>It's late and I'm up studying for the &lt;a href="http://www.microsoft.com/learning/exams/70-536.mspx"&gt;MCTS 70-536&lt;/a&gt;. The first of 3 Microsoft certification tests I will take. The study guide/book for this one is almost 1000 pages! It's quite a task I've ahead of me. I'm finding that I'm developing a better understanding of the framework by studying for this. There is one school of thought that says anyone can take a test, that the certifications don't really mean much. I believe that you get out of it what you put into it. The results I want are a better understanding of the .NET framework and how to navigate it. I must continue to strive to understand everything at its root, or its relative root anyway. I'm &lt;em&gt;NOT&lt;/em&gt; about to delve into assembler!  But to understand the groundworks of the language I use everyday is important.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.amazon.com/gp/product/0735622779/sr=1-1/qid=1156801743/ref=sr_1_1/104-6313703-3867159?ie=UTF8&amp;s=books"&gt;book&lt;/a&gt; itself is laid out very nice. It's a study guide. Each chapter covers a particular topic divided into lessons.  Each lesson has an estimated completion time, lab(s), review questions, terms, and practice tests.  I also received a 15% voucher for the test when I take it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-656204218501821009?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/656204218501821009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=656204218501821009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/656204218501821009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/656204218501821009'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/01/studying-for-mcts-70-536.html' title='Studying for the MCTS 70-536'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-5098100181071369788</id><published>2007-01-11T12:20:00.000-06:00</published><updated>2007-01-11T12:36:39.317-06:00</updated><title type='text'>Security Now Podcasts</title><content type='html'>A co-worker turned me on to &lt;a href="http://www.grc.com/securitynow.htm"&gt;Security Now&lt;/a&gt;, a podcast about Internet Security by Leo Laporte and mastermind Steve Gibson. It's not only fairly entertaining (although I know people who would beg to differ), but also VERY informative and for me, inspirational. So inspirational, in fact, that I have begun tinkering with my own home network - mainly just setting up a VPN at this point - but as time (and money) allows I will build a massively huge network. I even picked up some information that I have been able to use at work dealing with public and private key encryption and certificates. They cover a variety of topics including (but in no way limited to) encryption, VPNs, SSL, routers (wired and wireless), hubs, switches, malware, spyware, rootkits, etc., etc. If you are famliar with Steve Gibson then his reputation should speak for himself, if you have not then give them a listen and let me know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-5098100181071369788?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/5098100181071369788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=5098100181071369788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/5098100181071369788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/5098100181071369788'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/01/security-now-podcasts.html' title='Security Now Podcasts'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-7762344515495838211</id><published>2007-01-10T22:08:00.000-06:00</published><updated>2007-01-10T23:14:02.942-06:00</updated><title type='text'>ClickOnce and RegFree COM</title><content type='html'>So I've been doing quite a bit of reading at work lately about the new &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa497348.aspx"&gt;ClickOnce deployment model from Microsoft&lt;/a&gt;, and I'm finding out how cool it really is. It is designed to install smart client applications to end user machines. It does so in a manner as to not impede on any user rights limitations in regards to the install. The book I read was &lt;strong&gt;&lt;em&gt;&lt;a href="http://www.amazon.com/Smart-Client-Deployment-ClickOnce-Applications/dp/0321197690/sr=8-1/qid=1168488626/ref=pd_bbs_sr_1/103-6850088-8327847?ie=UTF8&amp;amp;s=books"&gt;Smart Client Deployment with ClickOnce&lt;/a&gt;, &lt;/em&gt;&lt;/strong&gt;The author did a good job of giving an overview of the process(es) as well as touching on more than enough details for my needs. My favorite chapters included&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Chapter 2 Initial Deployment with ClickOnce&lt;/strong&gt; - A complete walkthrough and explanation of what happens in a ClickOnce deployment.&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Chapter 6 ClickOnce Security &lt;/strong&gt;- In particular I enjoyed learning about Trusted Root Certificates. This chapter also discusses user account permission levels and how ClickOnce is designed to work with low level accounts.&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Chapter 7 Prerequisite Deployment with the Bootstrapper&lt;/strong&gt; - A bootstrapper includes any additional components or services that need to be installed along with the app, these usually require elevated privileges to install.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;One particular problem I need to solve is how to include ActiveX objects in the install. You see the application is currently a web application and is being converted to a smart client by using a windows app that will house a custom browser that will access the original web application, make sense? While it is possible to include the ActiveX objects in the custom browser this is not desirable because they will likely go away in the not-so-far-off future anyhow. It will be much easier if I could manage them in the deployment model instead of in the code base, not to mention a little less overhead every time the new smart client windows app loads. Normally ActiveX objects, being the COM objects that they are, are registered in the Windows registry, thus requiring elevated privileges to install. One would think this would require a Bootstrapper if the objects are to be included in the install, but fortunately for us Microsoft has come up with a solution called &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/04/RegFreeCOM/"&gt;Registration-Free COM&lt;/a&gt;. This essentially registers an ActiveX object in the application directory (using an XML manifest file) instead of the registry, and it is designed to work right along with ClickOnce! How great is that?!?! (My wife thinks me a little off kilter when I get so excited about these kinds of things) So it solves the problem of needing elevated privileges to complete the ClickOnce install. In addition it also helps to prevent any version conflicts between different users on the same machine and avoids any registry corruption issues (DLL Hell). &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-7762344515495838211?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/7762344515495838211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=7762344515495838211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/7762344515495838211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/7762344515495838211'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/01/clickonce-and-regfree-com.html' title='ClickOnce and RegFree COM'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38540755.post-116823326454532414</id><published>2007-01-07T23:13:00.000-06:00</published><updated>2007-01-07T23:14:30.296-06:00</updated><title type='text'>Purpose and Direction - Current Projects</title><content type='html'>The purpose of this blog is to explore new technology, and sometimes revisit the established, and share the knowledge I gain from those experiences. There are a couple of projects that I'm currently working on:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Setting up a secure VPN into my home network. &lt;/strong&gt;I'm trying to do this using two Linksys routers, and a box running XP Pro.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Setup a file and a printer share on my home network. &lt;/strong&gt;The main computer, in the office is running XP Pro, and the laptop I want to grant access to is running Vista Business. I have done this using 2 XP Pro machines, but not one XP Pro and one Vista. I'm sure this would be much easier if I installed Vista on both machines, but alas! I do not have enough licensed copies, one day, I will purchase an MSDN subscription and have access to all the goodies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38540755-116823326454532414?l=tonestech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tonestech.blogspot.com/feeds/116823326454532414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38540755&amp;postID=116823326454532414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/116823326454532414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38540755/posts/default/116823326454532414'/><link rel='alternate' type='text/html' href='http://tonestech.blogspot.com/2007/01/purpose-and-direction-current-projects.html' title='Purpose and Direction - Current Projects'/><author><name>Tone</name><uri>http://www.blogger.com/profile/12461020544155682108</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
