<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devlicious.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Brendan Tompkins</title><link>http://devlicious.com/blogs/brendantompkins/default.aspx</link><description>	&lt;a rel="license" href="http://creativecommons.org/licenses/by/3.0/"&gt;&lt;img alt="Creative Commons License" style="border-width:0pt;" src="http://creativecommons.org/images/public/somerights20.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This work is licensed under a &lt;a rel="license" href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution 3.0  License&lt;/a&gt;.
</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>Umbraco Tips &amp; Tricks : Creating a What's New  Control</title><link>http://devlicious.com/blogs/brendantompkins/archive/2008/10/01/umbraco-tips-amp-tricks-creating-a-what-s-new-control.aspx</link><pubDate>Wed, 01 Oct 2008 12:48:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42522</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=42522</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2008/10/01/umbraco-tips-amp-tricks-creating-a-what-s-new-control.aspx#comments</comments><description>&lt;p&gt;Last week, I posted about &lt;a href="http://MuchaCostaRica.Com"&gt;MuchaCostaRica.Com&lt;/a&gt; and the tools I used to build the site.&amp;nbsp; Our CMS is &lt;a href="http://umbraco.org"&gt;Umbraco&lt;/a&gt;, and really making Umbraco hum requires some good XSLT chops. Unfortounately, I&amp;#39;m still learning XSLT so while building the site, I found small snippets of XSLT code that did what I needed to do extremely helpful.&amp;nbsp; &lt;/p&gt;&lt;p&gt;I&amp;#39;m going to start a series of Umbraco Tips and Tricks, but I&amp;#39;m going to do it over on my MuchaCostaRica.Com blog. Yesterday I posted about how to create a &amp;quot;What&amp;#39;s New&amp;quot; control.&amp;nbsp; Pretty basic stuff, but in case you need to do the same with your Umbraco installation, check out my post over there.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.muchacostarica.com/blog/2008/9/30/building-muchacostaricacom---creating-a-what%27s-new-control.aspx"&gt;Building MuchaCostaRica.Com - Creating a What&amp;#39;s New Control&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42522" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Umbraco/default.aspx">Umbraco</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/XSLT/default.aspx">XSLT</category></item><item><title>Umbraco or : How I Learned to Stop Worrying and Love Building Web Sites</title><link>http://devlicious.com/blogs/brendantompkins/archive/2008/09/25/yet-another-post-on-tooling.aspx</link><pubDate>Thu, 25 Sep 2008 13:11:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:42438</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=42438</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2008/09/25/yet-another-post-on-tooling.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;d like to share a bit about the tools I recently used to build a new travel website, &lt;a href="http://muchacostarica.com"&gt;MuchaCostaRica.Com&lt;/a&gt; I launched this week with two partners. Actually, this entire post is a thinly veiled attempt at getting some Google juice over there, but if you&amp;#39;re interested in building websites and better tooling, read on.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://devlicio.us/photos/brendan/images/42439/425x425.aspx" width="300" align="right" height="300" alt="" /&gt;The obvious analogy when mentioning tooling is to building construction, and it&amp;#39;s spot on.&amp;nbsp; I&amp;#39;m in the middle of some home renovations, and one tool I&amp;#39;ve purchased is a Paslode nailer, and it can never be overstated..&lt;i&gt; Having the right tools for the right job will turn a tedious job into a joy. &lt;/i&gt;Hammering nails is about the worst jobs I can imagine, especially if you have to do a lot of them. You dent the wood, hit your finger, bend the nails over.&amp;nbsp; After a lot of swearing you get the job done, but it&amp;#39;s hardly a joy to complete.&amp;nbsp; Enter the Paslode nailer.&amp;nbsp; I completed a staircase recently, and the job was a joy to finish.&amp;nbsp; In fact,  it&amp;#39;s so fun to use, I often wander my house looking for things to nail.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Choosing The CMS&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;When I sat down to look at my options for building this new travel site, the first thing I did was look at Open Source CMS tools.&amp;nbsp; I&amp;#39;ve had a lot of experience with &lt;a href="http://dotnetnuke.org"&gt;DotNetNuke&lt;/a&gt;, &lt;a href="http://joomla.org"&gt;Joomla&lt;/a&gt;, and other CMSs, and the prospect of deploying using these tools was not something I was looking forward to.&lt;/p&gt;&lt;p&gt;Joomla (sorry to any fans out there) is just not at all a tool I like working with, and I&amp;#39;ll leave it at that.&amp;nbsp; Besides, I&amp;#39;m not a huge PHP person, and should I need to get into the guts of the app, I&amp;#39;d be struggling.&amp;nbsp;&lt;/p&gt;&lt;p&gt;DotNetNuke, while always holding a dear place in my heart, was not for this site.&amp;nbsp; I&amp;#39;ve recommended it in the past, deployed many sites using it, and probably will use it again in the future, but I wasn&amp;#39;t comfortable jumping into development of this site with it.&amp;nbsp; I needed a CMS without limitations, and DNN is limited in some areas.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Enter &lt;a href="http://umbraco.org"&gt;Umbraco&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://dotavery.com"&gt; James Avery&lt;/a&gt; first turned me onto this CMS, and at first blush, I was a bit skeptical.. Umbraco is an ASP.NET / SQL Server based CMS, which uses XSLT for it&amp;#39;s rendering of content. I wasn&amp;#39;t sure I liked having to learn some XSLT but after using Umbraco for the past few months, &lt;b&gt;I&amp;#39;m completely sold on using XSLT for site skinning&lt;/b&gt;. &lt;/p&gt;&lt;p&gt;Umbraco is UBER extensible. &amp;nbsp; Every piece of content you create is based on a document type that you setup.&amp;nbsp; Need a new field for adding a video to a page?&amp;nbsp; Simply add it to your document type. Need to render a page slightly differently?&amp;nbsp; Add a new document template.&amp;nbsp; Need to do something even more complicated, such as adding some sort of conditional layout?&amp;nbsp; Add some XSLT and you&amp;#39;re done. The separation of content from rendering within the CMS is a thing of beauty.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Umbraco is an absolute JOY to work with.&amp;nbsp; XSLT is is not all that easy to learn and debug, but once you see what you can do with it, you quickly realize it is the absolute perfect tool for shaping HTML.&amp;nbsp; This flexibility allows you to implement your design exactly as your designer envisioned, and quickly add new features and respond to business requests. During this entire site building process, I was asked for a hundred odd UI implementations from my partners, &lt;a href="http://www.muchacostarica.com/about-muchacostaricacom/the-team---rayna-levin.aspx"&gt;Rayna&lt;/a&gt; and &lt;a href="http://www.muchacostarica.com/about-muchacostaricacom/the-team---marina-kuperman.aspx"&gt;Marina&lt;/a&gt;, and each and every time, my response was &amp;quot;sure I can add that&amp;quot; and a half hour later I was done. &amp;nbsp; In the past, using other CMSs, I would have been writing ASCX user controls, or hunting for a component somewhere, just to add something simple.&amp;nbsp; With Umbraco, it&amp;#39;s a breeze.&lt;/p&gt;&lt;p&gt;So, now, like my experience with the Paslode, I&amp;#39;m completely charged about building web sites now. I used to groan when facing a new web project, bug when you have the right tool, it&amp;#39;s a joy.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Other Tools&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://jquery.com"&gt;&lt;b&gt;jQuery &lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Umbraco only really provides the content, most of the skinning is left to you.&amp;nbsp; This. in fact. &lt;b&gt;is what you want from your CMS&lt;/b&gt;.&amp;nbsp;&amp;nbsp; You dont&amp;#39; want your CMS providing UI elements, you want the UI separated from the content engine so you&amp;#39;re free to mold your content as you see fit.&amp;nbsp; So, when it came to the UI, I made heavy use of JQuery. Many of you are familiar with jQuery already, but if not, head over to &lt;a href="http://jquery.com/"&gt;jquery.com&lt;/a&gt; and don&amp;#39;t ever hand code a web UI element again.&amp;nbsp; For photos and sideshows, I&amp;#39;ve used the &lt;a href="http://plugins.jquery.com/project/jquerylightbox_bal"&gt;jQuery Lightbox Plugin (balupton edition)&lt;/a&gt; and for content carousels, i&amp;#39;ve used &lt;a href="http://sorgalla.com/jcarousel/"&gt;jCarousel&lt;/a&gt;.&amp;nbsp; When it comes to needing some more complicated AJAX or other browers scripting components, I&amp;#39;ll have my choice of adding any of the myriad jQuery plugins available.&amp;nbsp; If you do web work and you haven&amp;#39;t checked out jQuery, you owe it to yourself to take a day and explore what jQuery has to offer. &lt;/p&gt;&lt;p&gt;&lt;a href="http://viddler.com"&gt;&lt;b&gt;Viddler &lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Viddler was the perfect video hosting platform for us.&amp;nbsp; Not only do they host your video, you can brand your content, and there&amp;#39;s tagging and commenting and a customizable player.&amp;nbsp; What&amp;#39;s not to like?&lt;/p&gt;&lt;p&gt;&lt;a href="http://disqus.com/"&gt;Disqus&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Comments are always a pain to implement properly. Disqus fixes all that and sets up in minutes: &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Disqus, pronounced &amp;quot;discuss&amp;quot;, is a service and tool for web comments
and discussions. The Disqus comment system can be plugged into any
website, blog, or application. Disqus makes commenting easier and more
interactive, while connecting websites and commenters across a thriving
discussion community.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;b&gt;Google&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;We used Google &lt;a href="http://devlicio.us/controlpanel/blogs/translate.google.com"&gt;Translate&lt;/a&gt;, Google &lt;a href="http://devlicio.us/controlpanel/blogs/docs.google.com"&gt;Docs&lt;/a&gt;, Google &lt;a href="http://google.com/analytics"&gt;Analytics&lt;/a&gt; and Google &lt;a href="http://google.com/webmasters"&gt;Webmaster Tools&lt;/a&gt;. Ah thank you mother Google.&amp;nbsp; I think it&amp;#39;s worth mentioning that these tools are free, and do what they&amp;#39;re supposed to do really well.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;So, overall, developing &lt;a href="http://muchacostarica.com"&gt;MuchaCostaRica.Com&lt;/a&gt; was a joy (so is going to Costa Rica, BTW, and if you want a deal on travel, visit us and use the promo code &amp;quot;DEVLICIOUS&amp;quot;).&lt;/p&gt;&lt;p&gt;As they say in Costa Rica,&amp;nbsp; Pura Vida! &lt;br /&gt;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=42438" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Umbraco/default.aspx">Umbraco</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Tools/default.aspx">Tools</category></item><item><title>The Ten Types of Twitter Users</title><link>http://devlicious.com/blogs/brendantompkins/archive/2008/03/06/the-ten-types-of-twitter.aspx</link><pubDate>Thu, 06 Mar 2008 14:10:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:39564</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=39564</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2008/03/06/the-ten-types-of-twitter.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve been really into &lt;a href="http://devlicio.us/controlpanel/blogs/www.twitter.com"&gt;Twitter&lt;/a&gt; lately.&amp;nbsp; It&amp;#39;s one of those things that at first glance is hard to understand excatly why it&amp;#39;s so engaging, but once you get to use it, it becomes your lifeline.&amp;nbsp; It&amp;#39;s an immediate, real-time information flow, and if you setup your account to follow the right folks, you can really have your finger on the pulse of whatever it is you&amp;#39;re interested in.&amp;nbsp; The funny thing is, once you get enough folks in your following list, you start to see a pattern developing of the types of twitter users.&amp;nbsp; I&amp;#39;ve recently noticed that there are at least ten types of twitter users... Which one are you?&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Detailer &lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Detailer&amp;#39;s tweets fare more detail than they should about the mundane aspects of life.&amp;nbsp; They should, however, be awarded points for effort.&amp;nbsp; &amp;quot;Brushing Teeth&amp;quot; and &amp;quot;Making Coffee&amp;quot; are common tweets.&amp;nbsp; This person has constantly fight the urge to tweet stuff like &amp;quot;Flushing for the second time&amp;quot; and &amp;quot;Fore playing.&amp;quot; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Image Builder&lt;/b&gt;&lt;/p&gt;&lt;p&gt;If you met the Image Builder in real life, you&amp;#39;d meet a completely different person than their Twitter alter ego. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Complainer &lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Overly negative tweets make up the majority of the Complainer&amp;#39;s posts. In fact, a recent study concluded that over 50% of the Complainer&amp;#39;s&amp;nbsp; tweets are about Twitter.Com&amp;#39;s APIs sucking.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Lurker&lt;/b&gt;&lt;/p&gt;&lt;p&gt;An obvious persona, the Lurker is too nervous to actually post any of the mundane details of their life, should they not be as exciting as the Detailer&amp;#39;s&amp;nbsp; &amp;quot;Making Coffee&amp;quot; posts.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Pioneer &lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Pioneer experiments with twitter, pushing it&amp;#39;s limits and forging new ways to use the media.&amp;nbsp; @sellware&amp;#39;s up-all-night-twitter-for-charity event of last year puts him squarely in this category, even if the event itself may have fallen on deaf ears.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Commenter&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Commenter will not post unless they have at least one @user in their tweet.&amp;nbsp; Often there will be multiple @users&amp;#39; making the conversation entirely impossible to follow. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Popular&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Popular collects followers like they are some kind of strange social currency to be hoarded.&amp;nbsp; Chances are this person never really reads any of their follower&amp;#39;s tweets.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Snob&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Snob will only follow a select few worthy twitterers, although hundreds follow them.&amp;nbsp; A dangerous persona threatening the very foundation of the media. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Spammer&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The spammer is characterized by posting multiple rapid-fire tweets.&amp;nbsp; You know a spammer when your twitter client&amp;#39;s ui is flooded with this person&amp;#39;s face.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Braggart&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Only posts when they&amp;#39;ve happened to do something extra ordinary. &amp;quot;Eating Escolar with Truffeled Risotto and Baby farm Greens at Ellie&amp;#39;s&amp;quot; is a common post for the Braggart. Often the braggart is dual persona, being an Image Builder as well.&lt;/p&gt;&lt;p&gt;I hate to say it, but I&amp;#39;m such a Braggart. See for yourself @btompkins&lt;/p&gt;&lt;p&gt; So which one are you? &lt;br /&gt;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=39564" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Featured/default.aspx">Featured</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/twitter/default.aspx">twitter</category></item><item><title>Getting FireBug to work with FireFox 3 Beta 1</title><link>http://devlicious.com/blogs/brendantompkins/archive/2007/11/20/getting-firebug-to-work-with-firefox-3-beta-1.aspx</link><pubDate>Tue, 20 Nov 2007 19:21:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:38879</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>24</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=38879</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2007/11/20/getting-firebug-to-work-with-firefox-3-beta-1.aspx#comments</comments><description>
&lt;p&gt;Just grabbed my copy of &lt;a href="http://developer.mozilla.org/devnews/index.php/2007/11/19/firefox-3-beta-1-now-available-for-download/"&gt;FireFox 3 Beta 1&lt;/a&gt; today..&amp;nbsp; After installation, most of the extensions that I&amp;#39;ve come to rely on aren&amp;#39;t working, which is understandable.&amp;nbsp; One extension, &lt;a href="http://www.getfirebug.com/"&gt;FireBug, is a tool that I simply cannot work without&lt;/a&gt;.&amp;nbsp; It&amp;#39;s the best tool I&amp;#39;ve ever found for debugging HTML, CSS, HTTP and JavaScript, bar none.&amp;nbsp; If you&amp;#39;re a web developer working without it, you may find that you&amp;#39;re spending way more time than you have to debugging browser issues.&amp;nbsp; &lt;/p&gt;&lt;p&gt;The problem is, when I tried to install it under FF3, I got the message that it would not run... Here are the steps I took to fix this.&amp;nbsp; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Saved the&amp;nbsp; firebug-1.05-fx+fl.xpi file to disk&lt;/li&gt;&lt;li&gt;Re-named it to firebug-1.05-fx+fl.zip&lt;/li&gt;&lt;li&gt;Opened the zip file, and extracted the file&amp;nbsp; &amp;quot;install.rdf&amp;quot;&lt;/li&gt;&lt;li&gt;Opened &amp;quot;install.rdf&amp;quot; with Notepad&lt;/li&gt;&lt;li&gt;Changed &amp;lt;em:maxVersion&amp;gt;2.0.0.*&amp;lt;/em:maxVersion&amp;gt; to &amp;lt;em:maxVersion&amp;gt;3.0.0.*&amp;lt;/em:maxVersion&amp;gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Saved the file, and replaced the version in the zip file with the new version&lt;/li&gt;&lt;li&gt;Renamed the .zip file back to&amp;nbsp;  firebug-1.05-fx+fl.xpi&lt;/li&gt;&lt;li&gt;Drag-drop&amp;nbsp; firebug-1.05-fx+fl.xpi into an instance of FF3.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;Voila!&amp;nbsp; I have FireBug with FF3!&amp;nbsp; You can also try this with other extensions, but your mileage may vary.&lt;/p&gt;&lt;p&gt;&amp;nbsp;-Brendan &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;img src="http://devlicious.com/aggbug.aspx?PostID=38879" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/FireFox/default.aspx">FireFox</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Web+Development/default.aspx">Web Development</category></item><item><title>LOLCat Compiler for the CLR...</title><link>http://devlicious.com/blogs/brendantompkins/archive/2007/10/26/lolcat-compiler-for-the-clr.aspx</link><pubDate>Fri, 26 Oct 2007 17:57:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:38747</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=38747</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2007/10/26/lolcat-compiler-for-the-clr.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.boingboing.net/2007/10/25/lolcat-programming-l.html"&gt;How come I didn&amp;#39;t know about this until today?&lt;/a&gt;&lt;a href="http://www.boingboing.net/2007/10/25/lolcat-programming-l.html"&gt; &lt;/a&gt;I can&amp;#39;t believe we got scooped by BoingBoing!&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
LOLCode is an emerging esoteric (and hilarious) language based on the dialect used in &lt;a href="http://icanhascheezburger.com/"&gt;LOLCats&lt;/a&gt;
images. It&amp;#39;s been siezed upon by a group of people (myself included,
now), and is being expanded into a real, workable, turing complete
esoteric language (though nobody has proven its turing completeness
yet!).&lt;br /&gt;&lt;/blockquote&gt;
&lt;p&gt;Fantastic&lt;/p&gt;
&lt;img src="http://devlicious.com/aggbug.aspx?PostID=38747" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Complier/default.aspx">Complier</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/CLR/default.aspx">CLR</category></item><item><title>Using Embedded Resources for HTML Email Templates</title><link>http://devlicious.com/blogs/brendantompkins/archive/2007/10/24/using-embedded-resources-for-html-email-templates.aspx</link><pubDate>Wed, 24 Oct 2007 15:23:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:38712</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=38712</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2007/10/24/using-embedded-resources-for-html-email-templates.aspx#comments</comments><description>
&lt;p&gt;Most web applications need to send out email for a variety of purposes, right?&amp;nbsp;&amp;nbsp; I like to use email as a sort of extended user interface - allowing entry points to let the user conveniently do work by getting an email and clicking on a link.&amp;nbsp; I&amp;#39;ve struggled for a while with a good way of managing email templates to use in my applications.&amp;nbsp; I recently found a good project that simplifies the process of templating - See &lt;a href="http://www.codeproject.com/script/Articles/list_articles.asp?userid=2247710"&gt;Alexander Kleshchevnikov&amp;#39;s&lt;/a&gt; excellent solution for&lt;span id="intelliTXT"&gt; &lt;a href="http://www.codeproject.com/useritems/mailtemplates.asp"&gt;managing and sending emails inside a web application&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;I like his template approach, but I don&amp;#39;t like to keep my template files in a directory with my web project, mainly because it tightly couples these files and a certain directory structure to the classes that actually do the email work.&amp;nbsp; This makes my classes harder to test, re-use and deploy.&amp;nbsp; I recently figured out how to embed these templates into my class&amp;#39; assembly files, making the class much more useful.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;To embed a resource, just drop it in your project, and select &amp;quot;Embedded Resource&amp;quot;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://devlicio.us/photos/brendan/images/38713/original.aspx" height="387" width="500" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Using Alexander&amp;#39;s solution for templating, and an embedded resource html file for a template, the code to use this resource looks like this:&lt;br /&gt;&lt;/p&gt;

&lt;pre name="code" class="c-sharp"&gt;        public static void SendRegisterNotification(User user)
        {
            Hashtable templateVars = new Hashtable();
            templateVars.Add(&amp;quot;FirstName&amp;quot;, user.FirstName);
            templateVars.Add(&amp;quot;LastName&amp;quot;, user.LastName);
            templateVars.Add(&amp;quot;Login&amp;quot;, user.UserId);
            templateVars.Add(&amp;quot;Password&amp;quot;, user.Password);

            Parser parser = new Parser(templateVars);
            Assembly asm = Assembly.GetExecutingAssembly();
            Stream stream = asm.GetManifestResourceStream(asm.GetName().Name +
                &amp;quot;.Registration.htm&amp;quot;);

            using (StreamReader reader = new StreamReader(stream))
            {
                parser.TemplateBlock  = reader.ReadToEnd();
            }

            // Send email
            System.Net.Mail.MailMessage message = 
                  new System.Net.Mail.MailMessage();
            message.To.Add(user.Email);
            message.From = new MailAddress(&amp;quot;brendan.tompkins@gmail.com&amp;quot;);
            message.Subject = &amp;quot;Your StreetTurns.Com Account Information&amp;quot;;
            message.Body = parser.Parse();
            message.IsBodyHtml = true;
            SmtpClient sc = new SmtpClient(&amp;quot;StreetTurns.Com&amp;quot;);
            sc.Send(message);
        }
&lt;/pre&gt;

&lt;p&gt;&lt;b&gt;Yes, but what about Modifying your Templates?&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;As &lt;a href="http://codebetter.com/blogs/jeremy.miller/default.aspx"&gt;Jeremy Miller&lt;/a&gt; has pointed out, you shouldn&amp;#39;t be afraid to compile and release your code.&amp;nbsp; If you are, you need some serious work on your build process.&amp;nbsp; To me, the benefit of having one class that I can drop anywhere without worrying about permissions, file paths, and all that far outweighs the need to re-build the DLL when I make a text change.&lt;/p&gt;

&lt;p&gt;I&amp;#39;m pretty happy about the way this all works.&amp;nbsp; For more on embedded resources, ther&amp;#39;s some information &lt;a href="http://aspalliance.com/726"&gt;here&lt;/a&gt; and &lt;a href="http://aspnet.4guysfromrolla.com/articles/080906-1.aspx"&gt;here&lt;/a&gt; about how you can access your resources via a URL in a web app.&lt;br /&gt;&lt;/p&gt;
&lt;img src="http://devlicious.com/aggbug.aspx?PostID=38712" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Resources/default.aspx">Resources</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Featured/default.aspx">Featured</category></item><item><title>RE: MSDN Subscriptions - Are They Worth It?</title><link>http://devlicious.com/blogs/brendantompkins/archive/2007/10/03/re-msdn-subscriptions-are-the-worth-it.aspx</link><pubDate>Wed, 03 Oct 2007 19:01:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:38587</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=38587</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2007/10/03/re-msdn-subscriptions-are-the-worth-it.aspx#comments</comments><description>&lt;p&gt;Mike asks a good question &lt;a href="http://devlicio.us/blogs/mike_nichols/archive/2007/10/03/msdn-is-it-worth-it.aspx"&gt;MSDN - Is it worth it?&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I have two, count em, &lt;i&gt;two &lt;/i&gt;subscriptions (work + MVP) .. and other than the occasional download of
an OS or SQL server installation for convenience, I almost never use
either of them.&amp;nbsp; As a responsible employee (consultant in my case) I
really should weigh my decision to continue having my client purchase
this for me and the other developers here.&amp;nbsp;&amp;nbsp; It&amp;#39;s a good resource, but
really only in the software-packrat/i have to have
it all cause maybe I&amp;#39;ll need it someday sense.&amp;nbsp; In reality, it think
it&amp;#39;s a bit wasteful.&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;I&amp;#39;ve
often heard people comment that cost is no concern to them when their
employer is footing the bill (Enterprise software vendors can thank
their lucky stars for the prevalence of this attitude BTW). But as
smart consultant once commented, every dollar I can save a client is a
dollar they can afford to pay my invoices, and I believe it. Full
time employees should think along those same lines, but even if you
don&amp;#39;t care about saving your employer money, wasting money is just
plain, well &lt;i&gt;wasteful&lt;/i&gt;. Like leaving a light on when you
don&amp;#39;t need it - it&amp;#39;s not doing anyone anyone any good and doesn&amp;#39;t help
build an economy that is sustainable with healthy growth and innovation.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;While
I&amp;#39;m on the topic waste, the MSDN DVDs are nice to have, but talk about
putting a big dent in your carbon footprint.&amp;nbsp; I&amp;#39;d say I end up
shredding 99% of the DVDs I get mailed and the other 1% I&amp;#39;ve lost
somewhere...&lt;/p&gt;&lt;p&gt;Does this sound preachy?&amp;nbsp; I hope not, in fact, I
personally need to cancel one of my subscriptions and opt out of my DVD
media coming in the mail.&amp;nbsp; I need to stop getting VAR business magazine
and all those other magazines which I don&amp;#39;t read. I need to help cut&amp;nbsp; my technical
waste, be it financial or paper and plastic.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;On the other hand, I just may need that MOM 2005 with SP1 disk someday, you never know....&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=38587" width="1" height="1"&gt;</description></item><item><title>KickIt For CommunityServer 2007</title><link>http://devlicious.com/blogs/brendantompkins/archive/2007/09/26/kickit-for-communityserver-2007.aspx</link><pubDate>Wed, 26 Sep 2007 20:24:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:38496</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=38496</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2007/09/26/kickit-for-communityserver-2007.aspx#comments</comments><description>&lt;p&gt;You may have noticed that every post here on Devlicio.us and &lt;a href="http://codebetter.com"&gt;CodeBetter.Com&lt;/a&gt; have a little KickIt control at the end.&amp;nbsp; This is generated by a CommunityServer Module which automatically creates this control using &lt;a href="http://dotnetkicks.com"&gt;DotNetKicks.com&amp;#39;s&lt;/a&gt; (which is an awesome site BTW) image services, and allows posts to be &amp;quot;Kicked (a good thing)&amp;quot; ...&lt;/p&gt;&lt;p&gt;&amp;nbsp;More interesting to you if&amp;nbsp; you use Community Server is to do this on your own blog, so I&amp;#39;m releasing this and source in the &lt;a href="http://codebetter.com/files/folders/community_server_add-ons/entry162534.aspx"&gt;CodeBetter.CommunityServerExtensions&lt;/a&gt; package over on CodeBetter.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=38496" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/CommunityServer/default.aspx">CommunityServer</category></item><item><title>An Open Source Windows Mobile Language Translation Dictionary with Flashcards!</title><link>http://devlicious.com/blogs/brendantompkins/archive/2007/03/29/an-open-source-free-windows-mobile-translation-dictionary.aspx</link><pubDate>Thu, 29 Mar 2007 19:31:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:20247</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=20247</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2007/03/29/an-open-source-free-windows-mobile-translation-dictionary.aspx#comments</comments><description>&lt;p&gt;Recently, I've found myself in need of a way to brush up on my French.&amp;nbsp; Since my new phone is a &lt;a href="http://www.samsungblackjack.com/"&gt;Samsung Blackjack&lt;/a&gt; running Windows Mobile 5, I went looking for a translation dictionary to allow me to translate words from English to French on this device.&amp;nbsp;&amp;nbsp; I also wanted to be able to display flashcards for studying vocabulary. &lt;/p&gt;&lt;p&gt;I didn't find any products out there that would allow me to do exactly this, and more importantly, &lt;i&gt;what I did find was commercial or shareware&lt;/i&gt;.&amp;nbsp; I'm very much into the idea of free/open source software, especially when it comes to something like a language tool.&amp;nbsp; If anything should be free, a program to help us better communicate should be... Don't you think?&lt;br&gt;&lt;/p&gt;&lt;p&gt;I thought that the challenge of writing an application for my phone would be fun... so in my spare time I set out to write such an application. I've always loved handheld
software development, and being able to write code for this phone is darn cool.&amp;nbsp; The idea that I can write code to carry around and run
anytime I want is just about as neat as it gets to me. &lt;br&gt;&lt;br&gt;&lt;b&gt;Requirements&lt;/b&gt; &lt;/p&gt;&lt;p&gt;I had a few requirements for this project.&amp;nbsp; 1) I had to find free dictionaries for the content, otherwise I wouldn't be able to distribute my application for free.&amp;nbsp; Enter the &lt;a href="http://freedict.org"&gt;FreeDict project&lt;/a&gt;, an open-source collection of translation dictionaries.&amp;nbsp; This project is pretty cool, they've got a fairly large list of dictionaries available for free, especially for translating to and from English&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;br&gt;&lt;/th&gt;&lt;th&gt;&lt;br&gt;&lt;/th&gt;&lt;th&gt;&lt;br&gt;&lt;/th&gt;&lt;th&gt;&lt;br&gt;&lt;/th&gt;&lt;th&gt;&lt;br&gt;&lt;/th&gt;&lt;th&gt;&lt;br&gt;&lt;/th&gt;&lt;th&gt;&lt;br&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/fra.gif" alt="French" title="French"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/deu.gif" alt="German" title="German"&gt;&lt;/th&gt;&lt;th&gt;Hindi&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/hun.gif" alt="Hungarian" title="Hungarian"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/iri.gif" alt="Irish" title="Irish"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/ita.gif" alt="Italian" title="Italian"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/lat.png" alt="Latin" title="Latin"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/por.gif" alt="Portuguese" title="Portuguese"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/rom.gif" alt="Romanian" title="Romanian"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/rus.gif" alt="Russian" title="Russian"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/spa.gif" alt="Spanish" title="Spanish"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/swa.gif" alt="Swahili" title="Swahili"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/swe.gif" alt="Swedish" title="Swedish"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/tur.gif" alt="Turkish" title="Turkish"&gt;&lt;/th&gt;&lt;th&gt;&lt;img src="http://www.freedict.org/images/flags/wel.gif" alt="Welsh" title="Welsh"&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;2) Secondly,&amp;nbsp; I needed a good, fast relational data store: enter &lt;a href="http://www.microsoft.com/sql/editions/compact/default.mspx"&gt;SQL Server 2005 Compact Edition&lt;/a&gt;.&amp;nbsp; Working with this was no different from what I'm used to with SQL Server on the desktop. It's pretty nice!&amp;nbsp;&lt;/p&gt;&lt;p&gt; 3) It had to run on my new phone.&amp;nbsp; Enter the &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa497273.aspx"&gt;.NET Compact Framework 2.0&lt;/a&gt;.&amp;nbsp; I've been handed some&amp;nbsp; CF development here at work, so this was a good excuse for me to do some learning as well.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Creating the Application&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;What started out as a simple project actually blossomed into something fairly involved.&amp;nbsp; I ended up tackling the following topics, which I hope to blog about in the near future:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Creating the Dictionary Importer console application to import from .dict format to SQL&lt;br&gt;&lt;/li&gt;&lt;li&gt;Dealing with foreign characters and translating phonetic spellings which don't display on small devices&lt;br&gt;&lt;/li&gt;&lt;li&gt;Compact Framework application configuration and settings storage&lt;br&gt;&lt;/li&gt;&lt;li&gt;UI design for small devices&amp;nbsp;&lt;/li&gt;&lt;li&gt;Preparing for Compact Framework Localization&amp;nbsp;&lt;/li&gt;&lt;li&gt;Debugging on my Blackjack&amp;nbsp;&lt;/li&gt;&lt;li&gt;Creating and Installation and setup Application&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Version 0.1 &lt;/b&gt;&lt;br&gt;&lt;p&gt;The application supports multiple dictionaries, with the ability to create and more. The English-French.sdf&amp;nbsp; contains over 16,000 Entries, and English-Spanish.sdf - has over 10,000.&amp;nbsp; There's over 1,000 Flashcards of common words in each Dictionary. Each term is hyperlinked when it appears in a definition.&lt;br&gt;&lt;br&gt;Here's a screenshot:&lt;br&gt;&lt;br&gt;&lt;img src="http://devlicio.us/photos/brendan/images/20310/original.aspx" height="321" width="240"&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;I'm going to blog about and release the dictionary loader with more dictionaries as soon as I can get some time.&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Downloading and Installation&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Today I'm releasing "Translation Dictionary v 0.1" optimized and designed for Windows Mobile, and the source code for the application as well.&lt;/p&gt;&lt;p&gt;Get it here:&amp;nbsp;&lt;/p&gt;&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td class="CommonListCellLeftMost FileFileNameColumn"&gt;&lt;div class="FileFileName"&gt;&lt;a href="http://devlicio.us/files/folders/20312/download.aspx"&gt;&lt;img src="http://devlicio.us/utility/filethumbnails/zip-Small.gif" align="absmiddle" border="0"&gt;&lt;/a&gt;&lt;a href="http://devlicio.us/files/folders/20312/download.aspx"&gt; &lt;/a&gt;&lt;a href="http://devlicio.us/files/folders/20312/download.aspx" id="ctl00_ctl01_bcr_FolderGroupView1___Entrylisting1___Entries_ctl00_Name"&gt;Translation Dictoinary v 0.1 Setup&lt;/a&gt;&lt;/div&gt;
						
						&lt;div class="FileFileRating"&gt;
							
						&lt;/div&gt;
					&lt;/td&gt;
					&lt;td class="CommonListCell FileFileDateColumn"&gt;
						
					&lt;br&gt;&lt;/td&gt;
					&lt;td class="CommonListCell FileFileDownloadCountColumn"&gt;
						
					&lt;br&gt;&lt;/td&gt;
					&lt;td class="CommonListCell FileFileActionColumn"&gt;
						
						&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=20247" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/SQL+2005+Compact+Edition/default.aspx">SQL 2005 Compact Edition</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Compact+Framework/default.aspx">Compact Framework</category></item><item><title>Formatting Code with dp.SyntaxHighlighter</title><link>http://devlicious.com/blogs/brendantompkins/archive/2006/11/08/formatting-code-with-dp-syntaxhighlighter.aspx</link><pubDate>Wed, 08 Nov 2006 21:15:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:496</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=496</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2006/11/08/formatting-code-with-dp-syntaxhighlighter.aspx#comments</comments><description>&lt;p&gt;I've run across a cool syntax highlighter for use on web sites called &lt;a href="http://www.dreamprojections.com/syntaxhighlighter/"&gt;dp.SyntaxHighlighter&lt;/a&gt;. It highlights (and more) the following languages:&lt;br&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/CSharp.html"&gt;C#&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/CSS.html"&gt;CSS&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/Cpp.html"&gt;C++&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/Delphi.html"&gt;Delphi&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/Java.html"&gt;Java&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/JavaScript.html"&gt;JavaScript&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/PHP.html"&gt;PHP&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/Python.html"&gt;Python&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/Ruby.html"&gt;Ruby&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/SQL.html"&gt;SQL&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/VB.html"&gt;Visual Basic&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://www.dreamprojections.com/syntaxhighlighter/Tests/XML.html"&gt;XML / HTML&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Not only that, but it does a fantastic job of rendering too.. check out this little snippet of C# code.&lt;/p&gt;&lt;p&gt;

&lt;textarea name="code" class="c#:nogutter" cols="50" rows="10"&gt;  
		/// &amp;lt;summary&amp;gt;
		/// Gets a polygon from a string
		/// &amp;lt;/summary&amp;gt;
		/// &amp;lt;param name="strPoly"&amp;gt;(0,253),(370,115),(417,122),(456,92),(563,101),(303,477),(0,479)&amp;lt;/param&amp;gt;
		/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
		public PointF[] GetPolygon(string strPoly)
		{
				strPoly = strPoly.TrimStart(new char [] {'('});
				strPoly = strPoly.TrimEnd(new char [] {')'});
				strPoly = strPoly.Replace("),(", ":");
				string [] strPointCoords = strPoly.Split(new char[] {':'});
			
				PointF[] points = (strPointCoords.Length &amp;gt; 0) ? new PointF[strPointCoords.Length] : null;
				for(int i = 0; i&amp;lt; strPointCoords.Length; i++)
				{
					string [] pair = strPointCoords[i].Split(new char [] {','});
					points[i] = new PointF(Convert.ToInt16(pair[0]), Convert.ToInt16(pair[1]));
				}
				return points;
		}
&lt;/textarea&gt;

&lt;/p&gt;&lt;p&gt;You have to install some javascript(s) and styles along with your blog engine, but once that's done, all you have to do to get the output you see here is wrap your code in some &amp;lt;textarea&amp;gt; tags.&lt;/p&gt;&lt;p&gt;&amp;nbsp;-Brendan&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=496" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Hooray for Google Maps</title><link>http://devlicious.com/blogs/brendantompkins/archive/2006/11/01/Google-Maps-Versus-MapPoint.aspx</link><pubDate>Wed, 01 Nov 2006 20:22:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:446</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=446</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2006/11/01/Google-Maps-Versus-MapPoint.aspx#comments</comments><description>&lt;p&gt;[&lt;a href="http://codebetter.com/blogs/brendan.tompkins/archive/2006/11/02/Hooray-for-Google-Maps.aspx"&gt;Cross posted from my CodeBetter.Com Blog&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;Recently, I set about to add a map page to &lt;a href="http://jobs.codebetter.com"&gt;Jobs.CodeBetter.Com&lt;/a&gt;,
with markers so you can geographically explore&amp;nbsp;the jobs posted over
there.&amp;nbsp; As more jobs are posted to the site, this should be a good way to
sift through them all and find the one in your neck of the woods. &amp;nbsp;You &lt;a href="http://jobs.codebetter.com/JobMap.aspx"&gt;can try it out here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;img src="http://devlicio.us/photos/brendan.tompkins/images/151523/original.aspx" /&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;I am totally blown away by the Google Maps API, the documentation, the
performance, and the overall development experience.&amp;nbsp; This API&amp;nbsp; to me
represents everything that is right with current Web UI tier development.&amp;nbsp;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What about Virtual Earth and&amp;nbsp; MapPoint Web Services?&lt;br /&gt;
&lt;/strong&gt;A while back, I posted some code and &lt;a href="http://devlicio.us/blogs/brendan.tompkins/archive/2004/12/17/37490.aspx"&gt;highly
praised Microsoft&amp;#39;s Map Point Web Service&lt;/a&gt;.&amp;nbsp; Although my initial
experience with MapPoint was good, my enthusiasm with the application I
developed quickly evaporated.&amp;nbsp; It was slow, clumsy and hard to
maintain.&amp;nbsp; Much of the map panning and navigation controls had to be
written by hand... back then there were no out of the box controls to simply
add to the map.&amp;nbsp;&amp;nbsp; With MapPoint, I had to roll my own, which led to browser
inconsistencies, and various and sundry bugs that seem to accompany any big
client JavaScript code I write.&amp;nbsp; When we were faced with the decision of
licensing the MapPoint web service, we decided against it because of the
prohibitive cost.&lt;/p&gt;

&lt;p&gt;Many of these problems have been addressed with &lt;a href="http://dev.live.com/virtualearth/default.aspx?app=virtual_earth"&gt;Virtual
Earth&lt;/a&gt;.&amp;nbsp; It appears that you can get the same or better end-user
experience (here&amp;#39;s a nice comparison of &lt;a href="http://www.oreillynet.com/xml/blog/2005/10/google_maps_vs_msn_virtual_ear.html"&gt;VirtualEarth
versus GoogleMaps from a users&amp;#39; perspective&lt;/a&gt;)...&amp;nbsp; There&amp;#39;s a nice Getting Started page &lt;a href="http://dev.live.com/blogs/virtual_earth/archive/2006/06/06/30.aspx"&gt;here&lt;/a&gt;, and and &lt;a href="http://dev.live.com/virtualearth/sdk/"&gt;Interactive SDK here&lt;/a&gt;. &amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;m
not entirely convinced
that they&amp;#39;ve honed the developer experience to the point that Google
has.&amp;nbsp;For one thing, it took me a half an hour to simply find licensing
information,
and when I did, it came from a developer&amp;#39;s blog (Chandu &lt;a href="http://blogs.msdn.com/cthota/archive/2005/09/09/462841.aspx"&gt;announced
a licensing model to allow sites to freely use the service.)&lt;/a&gt;, not the
Virtual Earth site itself. &amp;nbsp;To make things worse, you may find yourself thoroughly confused if you end up on the other &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=121CDAE7-EA23-4634-B815-4300EB98EE88&amp;amp;displaylang=en"&gt;Virtual Earth SDK&lt;/a&gt;
on the Microsoft site. To me this is typifies the difference between
doing things the Microsoft way (mired in marketing goo with complex
licensing and confusing documentation)&amp;nbsp; versus the Google way (simple,
easy to understand and use).&lt;/p&gt;&amp;nbsp;-Brendan&lt;img src="http://devlicious.com/aggbug.aspx?PostID=446" width="1" height="1"&gt;</description></item><item><title>Building a Better Jobs Site...</title><link>http://devlicious.com/blogs/brendantompkins/archive/2006/10/10/Building-a-Better-Jobs-Site_2E002E002E00_.aspx</link><pubDate>Tue, 10 Oct 2006 13:53:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:286</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=286</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2006/10/10/Building-a-Better-Jobs-Site_2E002E002E00_.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;m thrilled to announce &lt;a href="http://jobs.codebetter.com"&gt;Jobs.CodeBetter.Com&lt;/a&gt;; a new job board and job ad syndication service created by  &lt;a href="http://www.codebetter.com/blogs/eric.wise"&gt;Eric Wise&lt;/a&gt; and myself over at &lt;a href="http://codebetter.com"&gt;CodeBetter&lt;/a&gt;.&amp;nbsp;
&amp;quot;Oh no, not another job site!&amp;quot; you&amp;#39;re thinking.&amp;nbsp; Yes, we were
influenced by other new jobs posting sites, but we think we can do
better for a variety of reasons.&lt;br /&gt;&lt;br /&gt;We&amp;#39;re focused - We&amp;#39;re syndicating to only highly focused blog sites, like &lt;a href="http://devlicio.us//" target="_blank"&gt;here&lt;/a&gt;, &lt;a href="http://codebetter.com/" target="_blank"&gt;codebetter.com&lt;/a&gt;, &lt;a href="http://hanselman.com/" target="_blank"&gt;hanselman.com&lt;/a&gt;, &lt;a href="http://winsmarts.com/" target="_blank"&gt;winsmarts.com&lt;/a&gt;
- this allows companies who post jobs access to the &amp;quot;cream of the
crop&amp;quot; of developers. &amp;nbsp; If you&amp;#39;re reading these sites, you&amp;#39;re no mort. :)&lt;br /&gt;&lt;br /&gt;We&amp;#39;ve
setup a revenue model for affiliates that works. &amp;nbsp; We give our
affiliates a premium for each job posted via a link from their sites,
even if they bookmark us and come back to post a job later. &amp;nbsp;In fact,
we&amp;#39;ll pay our affiliates for every job posted by that person into the
future. &amp;nbsp;It can be a great way for bloggers to monetize content. This
is what makes it all work.&amp;nbsp; Eric says it best &lt;a href="http://codebetter.com/blogs/eric.wise/archive/2006/10/10/Codebetter-does-job-searches-better_2100_.aspx"&gt;on his announcement post&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;...we acknowledge that we owe the blogosphere in general a lot for the success of &lt;a href="http://codebetter.com/" target="_blank"&gt;&lt;font color="#0000cc"&gt;Codebetter.com&lt;/font&gt;&lt;/a&gt;.&amp;nbsp;
As such, we want to ensure that all of our friends and contacts in the
blogosphere can make money right along with us.&amp;nbsp; Thus we have launched
an affiliate program, if you have a technical blog/site, all you have
to do is register as an affiliate and then put some javascript on your
site.&amp;nbsp; This javascript randomly displays active jobs from our feed ala
Google Adwords.&amp;nbsp; You will be create a referral code during to put into
the script, and if employers find us and post jobs because of you, you
will receive $105 for every ad they post, for life.&amp;nbsp; In this way, not
only do we help fund our brothers and sisters in the blogosphere, but
we also add value to employers as unlike other job sites where your job
exists only in one place, when you post with us your job can be shown
on potentially dozens of other sites.&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;It&amp;#39;s good blog fodder too&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Eric
and I jammed on this project.&amp;nbsp; I&amp;#39;m not one to toot my own horn, but we
did this in a very short timeframe... We used some really good IMO
tools... &lt;a href="http://devlicio.us/ControlPanel/Blogs/www.sourcegear.com"&gt;SourceGear&amp;#39;s Vault&lt;/a&gt;
allowed us to work remotely together easily. We used many of the new
ASP.NET 2.0 and SQL 2005 features... there&amp;#39;s a lot of cool stuff in
there that we hope to blog about in the future.&amp;nbsp; One post I&amp;#39;m going to do very soon
is an explanation on how we created our JavaScript syndication ads.&amp;nbsp; Ever
wonder how sites like Google and Blogads create the ads you see on
affiliate sites?&amp;nbsp; I&amp;#39;m going to show you how we did it... so stay tuned.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So, thanks for reading this, and please help us out by spreading the word!&lt;/p&gt;&lt;p&gt; Brendan&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=286" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/sql2005/default.aspx">sql2005</category></item><item><title>Speed Up VS 2005 Web Development - Kick your App_Code Habit</title><link>http://devlicious.com/blogs/brendantompkins/archive/2006/09/22/Speed-Up-VS-2005-Web-Development-_2D00_-Kick-your-App_5F00_Code-Habit.aspx</link><pubDate>Fri, 22 Sep 2006 20:28:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:81</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=81</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2006/09/22/Speed-Up-VS-2005-Web-Development-_2D00_-Kick-your-App_5F00_Code-Habit.aspx#comments</comments><description>&lt;p&gt;Scott Guthrie talks about &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/09/22/Tip_2F00_Trick_3A00_-Optimizing-ASP.NET-2.0-Web-Project-Build-Performance-with-VS-2005.aspx"&gt;how to speed up build times for Visual Studio 2005&lt;/a&gt;.. It&amp;#39;s a great read, and definitely something to know inside and out if you&amp;#39;re doing ASP.NET development with VS 2005. You&amp;#39;ve got to hand it to a person in his position doing down and dirty blog posts to help us little guys out, from what I hear and from recent personal experience, he&amp;#39;s very accessible.&lt;br /&gt;&lt;br /&gt;In his post about build performance, he actually has a good nugget of wisdom about overall performance of the IDE as well. He mentions this:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;font face="arial" size="2"&gt;Keep the number of files in your /app_code
directory small.&amp;nbsp; If you end up having a lot of class files&amp;nbsp;within this
directory, I&amp;#39;d recommend you instead add a separate class library
project to your VS solution and move these classes within that instead
since&amp;nbsp;class library projects compile faster than compiling classes
using the /app_code directory.&amp;nbsp; &lt;/font&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This will speed build time, &lt;em&gt;but will also speed up your design time experience as well.&lt;/em&gt;&amp;nbsp; Why you ask?&amp;nbsp; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;I recently spent some time on the phone with &lt;a href="http://blogs.msdn.com/bradleyb/"&gt;Bradley Bartz&lt;/a&gt; from MS, who explained this very slowly and patiently to me. I hope he&amp;#39;ll let me know if this isn&amp;#39;t right, but from my understanding, &lt;em&gt;Every time you make a change to a file in the App_Code directory, this invalidates the Visual Studio&amp;#39;s internal cache of classes in this folder&lt;/em&gt;. The very next time you try to open a designer for an ASPX page or ASCX control, VS has to re-compile this folder to get the metadata it needs for the design-time rendering of the control. This can cause the IDE to slow to a crawl.&amp;nbsp; One the classes are cached, things speed up significantly in the IDE.&lt;br /&gt; &lt;/p&gt;&lt;p&gt;This was a big eye opener for me.&amp;nbsp; I&amp;#39;d been using the App_Code folder as an easy way to get a globally accessible class in my web projects. If it was stuff that only was related to the current web site, I felt this was a good choice for where to put the code.&amp;nbsp; The problem was, I was banging up against this slowness all the time. I&amp;#39;d get some class designed, tab over to a page or control to do some databinding and find myself waiting in frustration, my development rhythm shot. Little did I know that I was waiting on a compilation of the entire App_Code folder.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;So, I&amp;#39;m going to seriously wean myself off of this folder, in favor of a separate dll project for these situations where I need a class to be visible across controls or pages.&lt;br /&gt;&lt;br /&gt;-Brendan&lt;br /&gt;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=81" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Speed Up VS 2005 - Posts Coming Soon</title><link>http://devlicious.com/blogs/brendantompkins/archive/2006/09/20/Speed-Up-VS-2005-_2D00_-Posts-Coming-Soon.aspx</link><pubDate>Wed, 20 Sep 2006 15:58:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:16</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=16</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2006/09/20/Speed-Up-VS-2005-_2D00_-Posts-Coming-Soon.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve spent the past few days speaking with some folks at Microsoft about the problems I&amp;#39;ve been experiencing with VS 2005&amp;#39;s performance. They&amp;#39;ve given me some great pointers and information about what&amp;#39;s going on behind the scenes with VS that could be causing some slowness.&amp;nbsp; I&amp;#39;m going to spend the next few days eperimenting with some of their suggestions and will be posting about how your can speed up your development experience.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Stay tuned...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=16" width="1" height="1"&gt;</description><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://devlicious.com/blogs/brendantompkins/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>A Little Self-Reflection...</title><link>http://devlicious.com/blogs/brendantompkins/archive/2006/09/18/A-Little-Self_2D00_Reflection_2E002E002E00_.aspx</link><pubDate>Mon, 18 Sep 2006 14:23:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:14</guid><dc:creator>Brendan Tompkins</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicious.com/blogs/brendantompkins/rsscomments.aspx?PostID=14</wfw:commentRss><comments>http://devlicious.com/blogs/brendantompkins/archive/2006/09/18/A-Little-Self_2D00_Reflection_2E002E002E00_.aspx#comments</comments><description>I had a conversation last week that made me think about my blogging... it gave me the idea for this cartoon:&lt;br /&gt;&lt;p&gt;&lt;img height="400" src="http://devlicio.us/photos/brendan/images/15/original.aspx" width="400" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://devlicious.com/aggbug.aspx?PostID=14" width="1" height="1"&gt;</description></item></channel></rss>