<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Programming</title>
        <link>http://geekswithblogs.net/gaijin42/category/3031.aspx</link>
        <description>Programming</description>
        <language>en-US</language>
        <copyright>Jason Coyne</copyright>
        <managingEditor>geekswithblogs-gaijin42@sneakemail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Microsoft careers : the next craigs list prostitution ring?</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2009/08/24/microsoft-careers--the-next-craigs-list-prostitution-ring.aspx</link>
            <description>So I was casually looking at the Microsoft Careers site, and saw the following listing. This really reads more like a personal ad for escort services to me, but I didn't think Microsoft offered that kind of thing.&lt;br /&gt;
&lt;br /&gt;
&lt;span id="ctl00_ContentPlaceHolder1_JobDetails2_lblJobTitleText"&gt;Sales Manager for Consulting Services (m/f) for Discrete &amp;amp; Globals  (m/f)&lt;br /&gt;
&lt;br /&gt;
https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=4&amp;amp;jid=4477&amp;amp;jlang=EN&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134290"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134290" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/134290.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2009/08/24/microsoft-careers--the-next-craigs-list-prostitution-ring.aspx</guid>
            <pubDate>Mon, 24 Aug 2009 19:51:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/134290.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2009/08/24/microsoft-careers--the-next-craigs-list-prostitution-ring.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/134290.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/134290.aspx</trackback:ping>
        </item>
        <item>
            <title>TFS Code Security</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2008/09/03/tfs_source_code_security.aspx</link>
            <description>My company recently had a number of offshore contractors leave the company, to a direct competitor, possibly taking a decent amount of source code with them. This has caused the company leadership to be very scared about IP protection, and have asked me to investigate improving the security of our code.&lt;br /&gt;
&lt;br /&gt;
Unfortunately I am of the belief that trying to protect code, from programmers is pretty much impossible, since the whole point is for the programmers to read/write the code. &lt;br /&gt;
&lt;br /&gt;
however, for the sake of due dilligence, I am sending out a bleg.   What are good best practices for controlling source, within a company? My boss wants to do things like restrict access on a per-file/unit of work in TFS (possible, but lots of overhead issues), watermark sourcecode (whitespace? dependancy whitespacing?), and lots of other ideas that I don't think are feasible.  &lt;br /&gt;
&lt;br /&gt;
But, anyone out there have any solutions in this space?&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124899"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124899" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/124899.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2008/09/03/tfs_source_code_security.aspx</guid>
            <pubDate>Wed, 03 Sep 2008 23:26:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/124899.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2008/09/03/tfs_source_code_security.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/124899.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/124899.aspx</trackback:ping>
        </item>
        <item>
            <title>Question for you about virtual functions</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2008/04/10/virtual_functions_final_subclass_inherit.aspx</link>
            <description>&lt;font size="2"&gt;
&lt;p&gt;Is there a way in a subclass to mark a particular function as "final". That is, I have base class A. A declares a virtual function. B inherits, and overrides the function. C inherits B. I want to prevent C from overrideing the function again, but still have it work virtually as far as A and B are concerned.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Any help?&lt;/p&gt;
&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121162"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121162" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/121162.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2008/04/10/virtual_functions_final_subclass_inherit.aspx</guid>
            <pubDate>Thu, 10 Apr 2008 22:09:52 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/121162.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2008/04/10/virtual_functions_final_subclass_inherit.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/121162.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/121162.aspx</trackback:ping>
        </item>
        <item>
            <title>Using a datatable to update rows and not insert when the row did not originate in the datatable with acceptchanges() and setmodified()</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2007/09/05/update_dataset_with_new_rows_acceptchanges_setmodified_orm_business_objects.aspx</link>
            <description>&lt;p&gt;One of my recent applications had an issue which is probably very common.  &lt;/p&gt;
&lt;p&gt;I was fetching data out of a database and putting it into a datatable, and then converting the datatable to a collection of business objects. Later, the collection of business objects needed to be commited back to the database, however the original dataset is no longer around. Therefore, when I create rows in my dataset to update back to the database, the data adapter actually attempted to insert new rows, when the rows in question already exist.&lt;/p&gt;
&lt;p&gt;The most obvious answer is to select the data back out before the update, change the data in the dataset, and then update. But that causes an extra roundtrip to the database, when I dont care about the data in the database any longer.  Also, when updating multiple rows, the business objects would have to be matched up against the dataset, which could be problematic.&lt;/p&gt;
&lt;p&gt;My next solution was to use an update query as the insertcommand of the dataset,  and call the update statement. This worked fine, but was clunky. you could not do a real insert and an update in the same operation. &lt;/p&gt;
&lt;p&gt;I finally came across this solution, which is quite elegant and very easy to implement. using the row.AcceptChanges() and row.SetModified() functions you can make the data adapter correctly call the update statement.  row.AcceptChanges() marks the row as unchanged, then SetModified() sets it as updated, even though it started as added.  You cannot call SetModified without calling AcceptChanges, as the setmodified function only works on rows that are set as unmodified.&lt;/p&gt;
&lt;p&gt;Hopefully the entire ORM problem is solved in the future by things like LINQ, but until then, this is a nice workaround.&lt;/p&gt;
&lt;p&gt;semi-psudocode example&lt;br /&gt;
&lt;br /&gt;
//fetch data and populate business objects&lt;br /&gt;
MyStrongDataSet ds = FetchDataFromDatabase();&lt;br /&gt;
List&amp;lt;bizobjects&amp;gt;  biz = ConvertDataSetToObjects(ds);&lt;br /&gt;
&lt;br /&gt;
//remove dataset from memory to simulate real world disconnection from data&lt;br /&gt;
ds = null;&lt;br /&gt;
&lt;br /&gt;
//modify biz objects&lt;br /&gt;
DoSomeWork(biz);&lt;br /&gt;
&lt;br /&gt;
//populate empty dataset with business objects data&lt;br /&gt;
ds = new MyStrongDataSet();&lt;br /&gt;
foreach (bizobjects currentBiz in biz)&lt;br /&gt;
{&lt;br /&gt;
DataRow row = ds.NewRow();&lt;br /&gt;
row.Someval = currentBiz.Someval;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;//Here is the magic&lt;br /&gt;
ds.rows.add(row);&lt;br /&gt;
row.AcceptChanges();&lt;br /&gt;
row.SetModified();&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
dataAdpater.update(ds);&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;update&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you are getting a "Concurrency violation" using my example, here is the solution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;By default, the dataadapter creates an update statement that checks&lt;br /&gt;
all of the column's original values. Since the datarow used in this&lt;br /&gt;
solution does not know the true original values of the row, only your&lt;br /&gt;
updated values, that code fails.&lt;br /&gt;
&lt;br /&gt;
The solution is to modify the update statement used by the dataadapter&lt;br /&gt;
to only use the primary key for the where clause.  Its pretty easy to&lt;br /&gt;
autogenerate such a query by looping through your datatable schema and&lt;br /&gt;
creating "set clauses" for each column, and then a single where&lt;br /&gt;
condition, or you could hand code a statement up and assign it to the&lt;br /&gt;
updatecommand.  In my code I use an automatically generated update&lt;br /&gt;
statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115168"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115168" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/115168.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2007/09/05/update_dataset_with_new_rows_acceptchanges_setmodified_orm_business_objects.aspx</guid>
            <pubDate>Thu, 06 Sep 2007 03:17:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/115168.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2007/09/05/update_dataset_with_new_rows_acceptchanges_setmodified_orm_business_objects.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/115168.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/115168.aspx</trackback:ping>
        </item>
        <item>
            <title>Why Javalobby is not an example of google monopoly; or why we do not need search engine neutrality -  but we do need network neutrality. </title>
            <link>http://geekswithblogs.net/gaijin42/archive/2007/01/15/javalobby_network_net_neutrality_google_delist_monopoly.aspx</link>
            <description>&lt;P&gt;There is a big story making the rounds right now of &lt;A href="http://www.javalobby.org/java/forums/t87997.html"&gt;JavaLobby getting delisted by Google&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Lots of different takes on how bad this is : &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.codinghorror.com/blog/archives/000767.html"&gt;http://www.codinghorror.com/blog/archives/000767.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.skrenta.com/2007/01/winnertakeall_google_and_the_t.html"&gt;http://www.skrenta.com/2007/01/winnertakeall_google_and_the_t.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;One post in particular makes an analogy between search engine neutrality, and network neutrality : &lt;A href="http://www.onlyrepublican.com/orinsf/2007/01/an_argument_for.html"&gt;http://www.onlyrepublican.com/orinsf/2007/01/an_argument_for.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I think this comparison is totally off base. &lt;/P&gt;
&lt;P&gt;There is a huge difference between google and the networks. Google is powerful because people use it. They are free to switch (back) to Yahoo, or dogpile, or anything else.&lt;/P&gt;
&lt;P&gt;The networks were granted monopolies. People have no choice about how their traffic is routed. Only in the last mile (Am I using cable or DSL, or (oh god) Dial up) do I have any say in the matter. . &lt;/P&gt;
&lt;P&gt;The destination sites that people go to for their media have no control at all over my network. &lt;/P&gt;
&lt;P&gt;If networks start using onerous, non-neutral policies, there is no way for the vast majority of people to switch. &lt;/P&gt;
&lt;P&gt;If you take away the monopolies (force networks to share infrastructure with other companies), then im fine with abandoning net neutrality, because someone can just share the infrastructure and use better policies to steal the customers. &lt;/P&gt;
&lt;P&gt;With the (in many cases government enforced) monopolies in place, Neutrality is mandatory.&lt;/P&gt;
&lt;P&gt;Yes google has a lot of power. And if you get delisted it can kill your company. But google is in the same position as the companies they delist. &lt;/P&gt;
&lt;P&gt;If firefox makes dogpile their default search engine tommorow, or people get fed up with delistings, they will switch. And google will pass into the night.&lt;BR&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=103637"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=103637" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/103637.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2007/01/15/javalobby_network_net_neutrality_google_delist_monopoly.aspx</guid>
            <pubDate>Mon, 15 Jan 2007 20:53:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/103637.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2007/01/15/javalobby_network_net_neutrality_google_delist_monopoly.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/103637.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/103637.aspx</trackback:ping>
        </item>
        <item>
            <title>Photos : Train Concert for Microsoft Tech Ed 2006 at Fenway Park in Boston</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2006/06/19/train_concert_fenway_park_tech_ed_photo_gallery_drops_of_jupiter_calling_all_angels_boston.aspx</link>
            <description>As many of you know Microsoft brought in Train for a private concert during Tech Ed. It was very cool to see Fenway Park. Its a very natstolgic park, even for someone like me that isn't a big sports fan.  I have of course heard many of Train's songs on the radio, but hadn't really put them together that they were all from the same group. The concert was awesome, and the singing was great.  The setting was much more intimate than you could ever get in a normal concert. I took lots of pictures, and when you are only sitting 5 or 6 rows back, you get really good ones, especially with a 300mm lens.  Here are a few shots from the concert, and you can see lots more from the concert at my photo site. 

&lt;br&gt;&lt;br&gt;

&lt;a href=http://jasoncoyne.smugmug.com/gallery/1578555&gt;Train Concert Photo Gallery

&lt;br&gt;&lt;br&gt;
&lt;img src=http://jasoncoyne.smugmug.com/photos/76405394-S-1.jpg&gt;&lt;br&gt;
&lt;img src=http://jasoncoyne.smugmug.com/photos/76402245-S.jpg&gt;&lt;br&gt;
&lt;img src=http://jasoncoyne.smugmug.com/photos/76402774-S.jpg&gt;
&lt;/a&gt;

&lt;b&gt;update&lt;/b&gt;

Here is a video from the concert, specifically the part where all the girls were up on stage.  &lt;a href=http://www.youtube.com/watch?v=dnCLCCC8bPQ&gt;Watch Train Video&lt;/a&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82385"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82385" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/82385.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2006/06/19/train_concert_fenway_park_tech_ed_photo_gallery_drops_of_jupiter_calling_all_angels_boston.aspx</guid>
            <pubDate>Tue, 20 Jun 2006 02:40:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/82385.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2006/06/19/train_concert_fenway_park_tech_ed_photo_gallery_drops_of_jupiter_calling_all_angels_boston.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/82385.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/82385.aspx</trackback:ping>
        </item>
        <item>
            <title>I just got my MCP.</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2006/06/14/tech_ed_boston_mcp_mcad_certification_testing.aspx</link>
            <description>&lt;P&gt;&amp;nbsp;Got my MCP on test 70-135 : Web Applications with C#&lt;/P&gt;
&lt;P&gt;The test was pretty easy, but several of the questions were worded ambiguously in my opinion. Tech Ed has a 50% discount on certifications, with a free second try if you screw up the first time.&amp;nbsp; I have a few more days, maybe I will try and kick out another two tests and get my MCAD or something.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81902"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81902" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/81902.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2006/06/14/tech_ed_boston_mcp_mcad_certification_testing.aspx</guid>
            <pubDate>Wed, 14 Jun 2006 21:36:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/81902.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2006/06/14/tech_ed_boston_mcp_mcad_certification_testing.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/81902.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/81902.aspx</trackback:ping>
        </item>
        <item>
            <title>Tech Ed : Next Generation Data Access in .Net Applications with ADO.NET vNext</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2006/06/13/tech_ed_ado_linq_entity_data_model_IExtendedDataRecord_pablo_castro.aspx</link>
            <description>&lt;P&gt;Yesterday I went to Microsoft's Pablo Castro's presentation about the next version of ADO.Net. This presentation covered LINQ (Language Integrated Query) and some new features like the Entity Data Model.&lt;/P&gt;
&lt;P&gt;Many of you are probably familliar with LINQ, but every time I see it, I want to start using it right away. Unfortunately my company is a slow adopter, and we aren't even on 2005 yet :(&lt;/P&gt;
&lt;P&gt;The Entity Data Model is seperate from LINQ, but works hand in hand with it to provide some very imperssive features. &lt;/P&gt;
&lt;P&gt;Using some GUI designers (or presumably by manually editing some XML files), you can map from your logical table schema, to a real business schema. &lt;/P&gt;
&lt;P&gt;Pablo's example used the AdventureWorks database, and remapped the Contacts, Person, and SalesPerson entities into one SalesPerson business entity. The tables are split up in the logical layer for normalization reasons, but from a business perspective, there is no reason to interact with it at that level.&lt;/P&gt;
&lt;P&gt;You create the mapping between your tables and the entities, and then you can query the entity as if it were the table. Esentially making a view. However, the views are updateable, which is a nice touch. Also, The features allow you to abstract away data conventions. For example, in the same AdventureWorks database, There are Sales. However, there is a convention in the data that if the Tax is 0, then that was a StoreSale.&amp;nbsp; When yuo select out the collection of Sales, you get some sales, and some StoreSales, automatically cast for you, based on the conventions you define in the mapping. &lt;/P&gt;
&lt;P&gt;All of this is queried through Entity SQL, a new version of the SQL language that supports the additional features that the EDM platform provides.&lt;/P&gt;
&lt;P&gt;A new &amp;#8220;MAP&amp;#8221; provider has been created that you run your connections and commands against, and this provider translates from Entity SQL to the native SQL your database requires. A nice side effect of this is true database agnostic access.&amp;nbsp; Even if you just did a one to one table to entity mapping, you would still get the database abstarction, which is a great feature. All of this new functionality is exposed through a new IExtendedDataRecord interface, which is esentially a datareader, with the additional schema information that EDM provides.&lt;/P&gt;
&lt;P&gt;The other big win for this is DataSet queries. You can treat your DataSet just like another data source for the mapping. The big benefit for this is that the same tools you use for true DB access you use for DataSet access, no new semantics or incompatible tools!&lt;/P&gt;
&lt;P&gt;Of course, all of this works with LINQ as well, so you can get LINQ collection iteration etc, on your business entities, rather than your raw tables.&lt;/P&gt;
&lt;P&gt;Also, your business entities are exposed as objects, which can be extended to add functionality. So you get all the benefits of an object layer on your data, for very little effort.&lt;/P&gt;
&lt;P&gt;This is very exciting.&amp;nbsp; Pablo says the bits for Entity Data Model should be available later this year, and I am really looking forward to it.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81711"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81711" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/81711.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2006/06/13/tech_ed_ado_linq_entity_data_model_IExtendedDataRecord_pablo_castro.aspx</guid>
            <pubDate>Tue, 13 Jun 2006 17:43:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/81711.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2006/06/13/tech_ed_ado_linq_entity_data_model_IExtendedDataRecord_pablo_castro.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/81711.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/81711.aspx</trackback:ping>
        </item>
        <item>
            <title>Elegant communication from child to parent in .net via events</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2006/02/20/using_custom_events_for_elegant_communication_from_child_to_parent_using_events_.aspx</link>
            <description>&lt;P&gt;Communicating elegantly from a child to a parent in programming is something that it took me a long time to figure out.  I tried all sorts of kludgy solutions, like passing in a reference to the parent as a parameter to the constructor/method of the child, etc.  This invariably leads down a bad path.  Of course, the correct solution is events.  The event model is something every developer uses all the time, because of the seamless way Visual Studio (or any other modern IDE) automatically generate event handlers for you when you do things like double click on buttons in the designer. However, creating custom events, and passing data via the event is something that eludes many. &lt;/P&gt;
&lt;P&gt;I recently saw a &lt;A href="http://www.eggheadcafe.com/forums/forumsearchbranch.asp?THREADID=60972&amp;INTID=2"&gt;post on egghead cafe&lt;/A&gt; where a user was asking this question, and the reply that he got was leading him down the same dead-end I described above.  I posted out an event example on egghead, but thought I would post it here as well to get a bit more visability to the solution.  The code below is nothing unique, its been written a million times before, but it took me a while to figure it out the first time, so hopefully someone gets some use out of it.&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;!--StartFragment --&gt; Here is an example of some an event I raise in one of my ASP.net forms. Very simmilar code will work with no problems in winforms. &lt;BR&gt;Put this first snippet anywhere inside your namespace (but not inside any other class) &lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;PRE class=PreSourceCode&gt; &lt;BR&gt;//Create a new event handler delegate, so that you can pass information back to the form. You could use the standard EventHandler, but then you can't pass any info back. &lt;BR&gt; public delegate void SearchUpdateEventHandler(object sender, SearchUpdateEventArgs e); &lt;BR&gt; &lt;BR&gt;//Here is a class that you use to hold the info that gets passed back. It has to decend from EventArgs. &lt;BR&gt;    public class SearchUpdateEventArgs : EventArgs &lt;BR&gt;    { &lt;BR&gt;        public SearchQuery searchQuery; &lt;BR&gt; &lt;BR&gt;        public SearchUpdateEventArgs(SearchQuery searchQuery) &lt;BR&gt;        { &lt;BR&gt;            this.searchQuery = searchQuery; &lt;BR&gt;        } &lt;BR&gt;    } &lt;BR&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;Then, in your control, have the following code &lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;PRE class=PreSourceCode&gt; &lt;BR&gt;//Create the event so your form can listen for it &lt;BR&gt;public event SearchUpdateEventHandler UpdateSearchCriteria; &lt;BR&gt; &lt;BR&gt;//In your button/link, raise the event back to the form. &lt;BR&gt; private void lnk_Click(object sender, EventArgs e) &lt;BR&gt;        { &lt;BR&gt;            searchQuery.SearchText += " " + ((LinkButton) sender).Text; &lt;BR&gt;            Results = searchQuery.Search(); &lt;BR&gt; &lt;BR&gt;            //This line makes it so you only raise the event if someone is listening. &lt;BR&gt;            if (UpdateSearchCriteria!=null) &lt;BR&gt;                //Raise the event, and pass in the data (searchQuery in this case) that you want to send to the form. &lt;BR&gt; &lt;BR&gt;                UpdateSearchCriteria(this, new SearchUpdateEventArgs(searchQuery)); &lt;BR&gt;        } &lt;BR&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;&lt;BR&gt;Finally, in your main form, you have code that listens for the event. This is just like any other event you have on your form for buttons etc. &lt;BR&gt;&lt;BR&gt;These last two snippets can be generated automatically using the events (lightning bolt) button on the properties window at design time. &lt;BR&gt;&lt;BR&gt;Put this line of code somewhere in your onLoad (or the winforms equivilent) &lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;PRE class=PreSourceCode&gt; &lt;BR&gt;SearchResultDisplay3.UpdateSearchCriteria+=new SearchUpdateEventHandler(SearchResultDisplay3_UpdateSearchCriteria); &lt;BR&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;&lt;BR&gt;and then your actual event (just like normal buttons) &lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;PRE class=PreSourceCode&gt; &lt;BR&gt;  private void SearchResultDisplay3_UpdateSearchCriteria(object sender, SearchUpdateEventArgs e) &lt;BR&gt;        { &lt;BR&gt;//Or set your textbox or whatever &lt;BR&gt;            SearchCriteria1.UpdateForm(e.searchQuery); &lt;BR&gt;        } &lt;/PRE&gt;&lt;/DIV&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=70171"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=70171" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/70171.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2006/02/20/using_custom_events_for_elegant_communication_from_child_to_parent_using_events_.aspx</guid>
            <pubDate>Tue, 21 Feb 2006 00:34:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/70171.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2006/02/20/using_custom_events_for_elegant_communication_from_child_to_parent_using_events_.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/70171.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/70171.aspx</trackback:ping>
        </item>
        <item>
            <title>Word Wrap function for c# (.net)</title>
            <link>http://geekswithblogs.net/gaijin42/archive/2006/01/23/c-sharp-word-wrap-function-dotnet.aspx</link>
            <description>&lt;P&gt;Most of the technical posts I make on this blog, are issues that I struggle with for a day or two, and was unable to find a good solution for on the internet. Once I find the solution, I try to post it here, to try and make things easier on everyone else out there.  I made a similar post to usenet microsoft.public.dotnet.faqs group last April, about doing word wrap in .net.  This weekend, someone sent some feedback from my blog asking if that post was mine, and thanking me for the information. I really appreciated the comment, since it is hard to tell if people out there need and use the information I post. &lt;/P&gt;
&lt;P&gt;In any case, I decided to repost the word wrap function to my blog, in hopes that more people can get some use out of it.&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt;[] &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Wrap&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;maxLength&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"\n"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;" "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"\r"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;" "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"."&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;". "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"&gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"&gt; "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"\t"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;" "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;","&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;", "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;";"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"; "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"&lt;br&gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;" "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Replace&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;" "&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;" "&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt;[] &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Words&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Split&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;' '&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLineLength&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;0&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ArrayList&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Lines&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ArrayList&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;text&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Length&lt;/FONT&gt;&lt;FONT size=2&gt; / &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;maxLength&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;""&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InTag&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;foreach&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Words&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt;//ignore html &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Length&lt;/FONT&gt;&lt;FONT size=2&gt; &gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;0&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Substring&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;0&lt;/FONT&gt;&lt;FONT size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;1&lt;/FONT&gt;&lt;FONT size=2&gt;) == &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"&lt;"&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InTag&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InTag&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt;//handle filenames inside html tags &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;EndsWith&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"."&lt;/FONT&gt;&lt;FONT size=2&gt;)) &lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;FONT size=2&gt; += &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;} &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;else&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;FONT size=2&gt; += &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;" "&lt;/FONT&gt;&lt;FONT size=2&gt; + &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IndexOf&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"&gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;) &gt; -&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;1&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InTag&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;} &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;else&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLineLength&lt;/FONT&gt;&lt;FONT size=2&gt; + &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Length&lt;/FONT&gt;&lt;FONT size=2&gt; + &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;1&lt;/FONT&gt;&lt;FONT size=2&gt; &lt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;maxLength&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;FONT size=2&gt; += &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;" "&lt;/FONT&gt;&lt;FONT size=2&gt; + &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLineLength&lt;/FONT&gt;&lt;FONT size=2&gt; += (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Length&lt;/FONT&gt;&lt;FONT size=2&gt; + &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;1&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;} &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;else&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Lines&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Add&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLineLength&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentWord&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Length&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;} &lt;/P&gt;
&lt;P&gt;} &lt;/P&gt;
&lt;P&gt;} &lt;/P&gt;
&lt;P&gt;} &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;FONT size=2&gt; != &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;""&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Lines&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Add&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;currentLine&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt;[] &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;textLinesStr&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt;[&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Lines&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Count&lt;/FONT&gt;&lt;FONT size=2&gt;]; &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Lines&lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;.&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;CopyTo&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;textLinesStr&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;0&lt;/FONT&gt;&lt;FONT size=2&gt;); &lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;textLinesStr&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66765"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66765" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/gaijin42/aggbug/66765.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jason Coyne</dc:creator>
            <guid>http://geekswithblogs.net/gaijin42/archive/2006/01/23/c-sharp-word-wrap-function-dotnet.aspx</guid>
            <pubDate>Mon, 23 Jan 2006 17:42:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gaijin42/comments/66765.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gaijin42/archive/2006/01/23/c-sharp-word-wrap-function-dotnet.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gaijin42/comments/commentRss/66765.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gaijin42/services/trackbacks/66765.aspx</trackback:ping>
        </item>
    </channel>
</rss>