<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-33271126</atom:id><lastBuildDate>Tue, 24 Jan 2012 23:58:53 +0000</lastBuildDate><category>random link script</category><category>tampa web design</category><category>geek babes</category><category>typename</category><category>javascript</category><category>LinkSys router</category><category>Kittens</category><category>make money online</category><category>web development</category><category>SQL Dates</category><category>Sitemap</category><category>web site content</category><category>software development</category><category>cool stuff</category><category>ecommerce startup</category><category>tizags</category><category>excel</category><category>memories</category><category>css</category><category>FTP</category><category>tampa web development</category><category>classic asp</category><category>spam</category><category>noise word strip function</category><category>.net</category><category>my sites</category><category>connection strings</category><category>godaddy discount codes</category><category>cdonts</category><category>access database</category><category>humor</category><category>stored procedures</category><category>sql server 2000</category><category>GoDaddy</category><category>new web sites</category><category>cookies</category><category>programming</category><category>success</category><category>SFReader</category><category>rants</category><category>music</category><category>affiliate marketing</category><category>bad 'bots</category><category>wordpress</category><category>seo</category><category>bloggertizer</category><category>internet marketing</category><category>keyword research</category><category>blogger</category><category>sql</category><category>DotNetNuke</category><category>microsoft</category><category>add text to image</category><category>fitness</category><category>sql noise words</category><category>windows vista</category><title>Retro Web Development</title><description>Tune in as I write about the things I learn and use as I move through professional and personal web development projects using Classic ASP in VBScript, .Net, and SQL Server/Access databases. Liberally flavored with rhetorical rants, commentary and other useless trivia.</description><link>http://retrowebdev.blogspot.com/</link><managingEditor>noreply@blogger.com (RetroWebDev)</managingEditor><generator>Blogger</generator><openSearch:totalResults>122</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RetroWebDevelopment" /><feedburner:info uri="retrowebdevelopment" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-4500125040523622067</guid><pubDate>Thu, 29 Sep 2011 17:23:00 +0000</pubDate><atom:updated>2011-09-29T12:43:47.683-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">excel</category><title>Create Header Row in Excel 2007</title><description>Every time I need to do this, I always have to look it up. I have the memory retention of a scratched CD. I paste something into Excel, I need to srot it, and I don't wnat the column headers to be included in teh sort. I figured since I'm stupid and have to look it up every time, there are probably a lot of other people who have to look it up to, so I'm posting it here:&lt;br /&gt;&lt;br /&gt;View tab --&gt; Freeze Panes --&gt; Freeze Top Row&lt;br /&gt;&lt;br /&gt;Baaaaaa-BAM!&lt;br /&gt;&lt;br /&gt;As an aside, hey Microsoft, how about you put it in the right click menu? You know, I select the row, right click, and right there for all to see is an option Make Header Row. &lt;br /&gt;&lt;br /&gt;After over a decade of Excel you'd think they could make this easier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-4500125040523622067?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/bpwa8s56B8Y/create-header-row-in-excel-2007.html</link><author>noreply@blogger.com (Dave)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2011/09/create-header-row-in-excel-2007.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-8760984197926217305</guid><pubDate>Tue, 06 Apr 2010 18:21:00 +0000</pubDate><atom:updated>2010-04-06T13:39:29.735-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">typename</category><category domain="http://www.blogger.com/atom/ns#">classic asp</category><title>ASP: Determining Variable Types with TypeName Function</title><description>If you've been working in ASP for any length of time, you know you don't have to type variables. You just declare them using the DIM statement. Heck, you don't even have to declare them if you don't want to (but I don't recommend it).&lt;br /&gt;&lt;br /&gt;But what if you're perofmring some sort of calculation on a variable, or you're doing some sort of boolean check after manupulating it or getting a value from a database? Or you want to put it into a database field that's been typed and you don't know if it matches and you need to convert it first?&lt;br /&gt;&lt;br /&gt;Well here's a handy function you can use to determine what type of varient the actual value of the variable is: TypeName()&lt;br /&gt;&lt;br /&gt;It works like this: &lt;blockquote&gt;var = 1&lt;br /&gt;Reponse.write TypeName(var)&lt;/blockquote&gt;In this case, the output would be &lt;blockquote&gt;Integer&lt;/blockquote&gt;I've found this to be especially handy when dealing with values being returned from a database or when validating variable type to prevent an SQL injection attack.&lt;br /&gt;&lt;br /&gt;Let's say I'm using a QueryString variable to pass a record id to a page, and then I use that id to pull a record from the database. So my URL might look like: &lt;blockquote&gt;http://www.MySite.com/results.asp?rid=223&lt;/blockquote&gt;In this case I can validate it by &lt;blockquote&gt;intRecordID = Request.QueryString("rid")&lt;br /&gt;If TypeName(intRecordID) = Integer Then....&lt;/blockquote&gt;It's also handy when telling the differnece between NULL and an Empty String. Anyone who's done development knows that just because there's nothing in the variable doen't mean it's actually empty, since NULL and Empty are treated differently. &lt;blockquote&gt;If TypeName(TheVar) = Empty then...&lt;/blockquote&gt;or &lt;blockquote&gt;If TypeName(TheVar) = NULL Then...&lt;/blockquote&gt;Handy, especially whn doing some sort of conditional aggregate of data from a database pull where you're combining things.&lt;br /&gt;&lt;br /&gt;Here's a list of all the different types than can come back:&lt;br /&gt;&lt;br /&gt;Empty&lt;br /&gt;Null&lt;br /&gt;Integer&lt;br /&gt;Long Integer&lt;br /&gt;Single&lt;br /&gt;Double&lt;br /&gt;Currency&lt;br /&gt;Date String&lt;br /&gt;Object&lt;br /&gt;Eror&lt;br /&gt;Boolean&lt;br /&gt;Variant&lt;br /&gt;Byte&lt;br /&gt;Array&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-8760984197926217305?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/UYpRb_8xs1E/asp-determining-variable-types-with.html</link><author>noreply@blogger.com (Dave)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2010/04/asp-determining-variable-types-with.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-8175488505025746189</guid><pubDate>Wed, 31 Mar 2010 19:34:00 +0000</pubDate><atom:updated>2010-04-06T13:20:12.669-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">rants</category><title>Don't be a Programmer</title><description>My advice as a software engineer since 1999: Get out of programming as fast as you can. Go into Server Admin or Network Security.&lt;br /&gt;&lt;br /&gt;Programmers are the ditch diggers of IT. In my experience, at least working in the large corporation world, they are treated like crap, constantly saddled with unrealistic expectations and time lines, and inevitably take direction from someone who has absolutely no experience or knowledge of programming. Even if your immediate manager is a Good Guy, his boss won't be, or his boss.... point being sooner or later as you go up the chain you run into that guy who thinks all programmers are liars and are way overpaid, and everything is easy and should only take 1 day. And testing? We don't have time to test! We need to DELIVER!&lt;br /&gt;&lt;br /&gt;Sales people will promise the clients anything to get the sale, then dump it in your lap, take their fat commission, and go on vacation, leaving you to eat the shit sandwich they just made. &lt;br /&gt;&lt;br /&gt;Customers will want more more more faster faster faster and, since they write the checks, that's what you'll have to produce. Scope creep? More like scope sprint. And forget about getting extra time. You don't need extra time! It's just a few additional features. How hard can it be?&lt;br /&gt;&lt;br /&gt;You'll bust your ass for 8 months to build an in-house accounting system that saves the company 3 million a year and your bonus will be a shitty free breakfast with the CEO. And then the programmers start disappearing because guess what? The system is built and we don't need all those programmers any more!&lt;br /&gt;&lt;br /&gt;That's right, programmers are the first to go. They're over paid and no one understands what they do anyway. Beside, you only need carpenters when you're building the house. Once the house is built....&lt;br /&gt;&lt;br /&gt;But guess what. The Network still has to Network and be secure, and the Servers need to Server.....&lt;br /&gt;&lt;br /&gt;So bail on programming NOW, before it's too late.&lt;br /&gt;&lt;br /&gt;If you absolutely, positively are convinced things will be different for you (and they won't) and you want to stick it out, got for a hybrid like database development/admin. You can do database development and design to satisfy your desire to create, but when there's no development to do and all the programmers are getting fired, they'll still need a DBA to keep the Database up and running....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-8175488505025746189?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/O6GMV-fCHj4/dont-be-programmer.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>5</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2010/03/dont-be-programmer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-1135624724744803230</guid><pubDate>Tue, 02 Mar 2010 12:51:00 +0000</pubDate><atom:updated>2010-03-02T08:05:33.609-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">seo</category><category domain="http://www.blogger.com/atom/ns#">keyword research</category><title>Google Keyword Competition Script</title><description>In addition to web development, I also do my fair share if Internet marketing and Search Engine Optimization consultation. One of the methods at the core of SEO is keyword research. There are plenty of tools out there for doing keyword research - Micro Niche Finder, Keyword Elite, Market Samauri, just to name a few - but I prefer to do it myself using the Google Adwords Keyword Tool (GAKT) and Google search.&lt;br /&gt;&lt;br /&gt;I use GAKT to identify likly keywords related to whatever market I'm researching, and I then go straight to Google to check:&lt;br /&gt;&lt;br /&gt;Broad competition (total number of results on a search performed without quotes)&lt;br /&gt;Exact competition (total number of results on a search performed with quotes around the keyword)&lt;br /&gt;AllInUrl (allinurl:keyword)&lt;br /&gt;AllInTitle (allintitle:keyword)&lt;br /&gt;AllInAnchor (allinanchor:keyword)&lt;br /&gt;AllInText (allintest:keyword)&lt;br /&gt;&lt;br /&gt;These searches bring back numbers that let me evaluate the competetiveness of the keyword - that is how easy it might be to get well ranked in Google's results.&lt;br /&gt;&lt;br /&gt;As you can imagine, typing all that is a pain, so just yesterday I wrote a little ASP script that goes out and gets all the info for you:&lt;br /&gt;&lt;br /&gt;&lt;pre style="color:gray;"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;&lt;br /&gt;&amp;lt;HTML&gt;&lt;br /&gt;&amp;lt;HEAD&gt;&lt;br /&gt;&amp;lt;TITLE&gt;Google Keyword Competition Stats &amp;lt;/TITLE&gt;&lt;br /&gt;&amp;lt;style type="text/css"&gt;&lt;br /&gt;body {font: normal 12pt arial}&lt;br /&gt;&amp;lt;/style&gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;If would be nice if you left in the below, but if you get some sort of savage glee by deleting it, then have at it. &lt;br /&gt;Script by Dave, AKA Wedango on the WarriorForum&lt;br /&gt;ASP blog: http://retrowebdev.blogspot.com/&lt;br /&gt;He also does web sites and stuff: Webdango.com&lt;br /&gt;--&gt;&lt;br /&gt;&amp;lt;/HEAD&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;BODY&gt;&lt;br /&gt;Enter Your Keyword&lt;br /&gt;&amp;lt;br&gt;&amp;lt;br&gt;&lt;br /&gt;&amp;lt;FORM METHOD=POST ACTION="goog-stats.asp"&gt;&lt;br /&gt;    &amp;lt;INPUT TYPE="text" NAME="keyword"&gt;&lt;br /&gt;    &amp;lt;INPUT TYPE="submit"&gt;&lt;br /&gt;&amp;lt;/FORM&gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;Dim strKeyword&lt;br /&gt;&lt;br /&gt;strKeyword = ""&lt;br /&gt;strKeyword = Trim(Request.form("keyword"))&lt;br /&gt;&lt;br /&gt;If strKeyword &amp;lt;&gt; "" Then&lt;br /&gt;    Dim objXMLHTTP, strURL, iBroadComp, iExactComp, iAllInURL, iAllInTitle, iAllInAnchor&lt;br /&gt;&lt;br /&gt;    Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")&lt;br /&gt;&lt;br /&gt;    Response.write("Results for &amp;lt;b&gt;"&amp;strKeyword&amp;"&amp;lt;/b&gt;&amp;lt;br&gt;&amp;lt;br&gt;")&lt;br /&gt;    'broad competition&lt;br /&gt;    Response.write("Broad Competition: "&amp; fKeywordStats("broad",strKeyword) &amp;"&amp;lt;br&gt;")&lt;br /&gt;&lt;br /&gt;    'exact competition&lt;br /&gt;    Response.write("Exact Competition: "&amp; fKeywordStats("exact",strKeyword) &amp;"&amp;lt;br&gt;")&lt;br /&gt;&lt;br /&gt;    'allintitle&lt;br /&gt;    Response.write("All In Title: "&amp; fKeywordStats("allintitle",strKeyword) &amp;"&amp;lt;br&gt;")&lt;br /&gt;&lt;br /&gt;    'allinurl&lt;br /&gt;    Response.write("All In URL: "&amp; fKeywordStats("allinurl",strKeyword) &amp;"&amp;lt;br&gt;")&lt;br /&gt;&lt;br /&gt;    'allinanchor&lt;br /&gt;    Response.write("All In Anchor: "&amp; fKeywordStats("allinanchor",strKeyword) &amp;"&amp;lt;br&gt;")&lt;br /&gt;&lt;br /&gt;    'allincontent&lt;br /&gt;    Response.write("All In Text: "&amp; fKeywordStats("allintext",strKeyword) &amp;"&amp;lt;br&gt;&amp;lt;br&gt;")&lt;br /&gt;&lt;br /&gt;    Set objXMLHTTP = nothing&lt;br /&gt;End If&lt;br /&gt;%&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;Function fKeywordStats(TheType, TheKeyword)&lt;br /&gt;    Dim strURL, strHTML, vStart, vEnd, vLength&lt;br /&gt;&lt;br /&gt;    vStart = 0&lt;br /&gt;    vEnd = 0&lt;br /&gt;    vLength = 0&lt;br /&gt;&lt;br /&gt;    Select Case TheType&lt;br /&gt;        Case "broad"&lt;br /&gt;            strURL = "http://www.google.com/search?hl=en&amp;q="&amp;strKeyword&amp;""&lt;br /&gt;        Case "exact"&lt;br /&gt;            strURL = "http://www.google.com/search?hl=en&amp;q="""&amp;strKeyword&amp;""""&lt;br /&gt;        Case "allinurl"&lt;br /&gt;            strURL = "http://www.google.com/search?hl=en&amp;q=allinurl%3A"&amp;strKeyword&amp;""&lt;br /&gt;        Case "allintitle"&lt;br /&gt;            strURL = "http://www.google.com/search?hl=en&amp;q=allintitle%3A"&amp;strKeyword&amp;""&lt;br /&gt;        Case "allinanchor"&lt;br /&gt;            strURL = "http://www.google.com/search?hl=en&amp;q=allinanchor%3A"&amp;strKeyword&amp;""&lt;br /&gt;        Case "allintext"&lt;br /&gt;            strURL = "http://www.google.com/search?hl=en&amp;q=allintext%3A"&amp;strKeyword&amp;""&lt;br /&gt;    End Select&lt;br /&gt;&lt;br /&gt;    objXMLHTTP.Open "GET", strURL, false   &lt;br /&gt;    objXMLHTTP.Send&lt;br /&gt;    strHTML = objXMLHTTP.responseText&lt;br /&gt;&lt;br /&gt;    vStart  = Instr(strHTML,"&amp;lt;/b&gt; of about &amp;lt;b&gt;") + 17&lt;br /&gt;    vEnd    = Instr(strHTML,"&amp;lt;/b&gt; for &amp;lt;b&gt;")&lt;br /&gt;    vLength = vEnd - vStart&lt;br /&gt;&lt;br /&gt;    If vStart &gt; 17  then&lt;br /&gt;        strHTML = Mid(strHTML,vStart,vLength)&lt;br /&gt;    Else&lt;br /&gt;        strHTML = "no results"&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    fKeywordStats = strHTML&lt;br /&gt;End Function&lt;br /&gt;%&gt;&lt;br /&gt;&amp;lt;/BODY&gt;&lt;br /&gt;&amp;lt;/HTML&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The script has to be run on a Windows server with the Microsoft.XMLHTTP object enabled.&lt;br /&gt;&lt;br /&gt;Name the script goog-stats.asp. If you name it something different, you have to change the name in the FORM ACTION value.&lt;br /&gt;&lt;br /&gt;Happy keyword hunting!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-1135624724744803230?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/Bq0Td0A3MPA/google-keyword-competition-script.html</link><author>noreply@blogger.com (Dave)</author><thr:total>2</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2010/03/google-keyword-competition-script.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-5484431441285109579</guid><pubDate>Fri, 22 Jan 2010 01:26:00 +0000</pubDate><atom:updated>2010-01-21T20:32:14.721-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">web site content</category><title>TextBroker.com Review</title><description>I've entered 2010 with a new-found determination to make some extra dough on the net, hence my post about doing sites site again (get yours starting at only $300!).&lt;br /&gt;&lt;br /&gt;Part of the plan is to make some money building keyword optimized content sites and populate them with AdSense. &lt;br /&gt;&lt;br /&gt;Of course the key to content is to actually have content. Rather than try to crank out 300 words or so on stuff I know nothing about, I've been using a content for hire service that , so far, I'm pleased as punch with. &lt;br /&gt;&lt;br /&gt;TextBroker.com is pretty nifty. Sign up, add fund through PayPal, and commission articles. You add an order, specify the the title and what you want it to be about, and choose a quality rating . The higher the rating you choose, the more the article costs, with the choices being from 2 stars to 5 stars.   &lt;br /&gt;&lt;br /&gt;To put it into perspective, I ask for article from 250 - 300 words and they've been running my right around $5. I've only rejected one article out of the dozen or so I've commissioned. &lt;br /&gt;&lt;br /&gt;I tried a couple of others (more about them later) but &lt;a href="http://TextBroker.com"&gt;TextBroker.com&lt;/a&gt; is the best by a ling shot so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-5484431441285109579?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/gQzIT26Nr9A/textbrokercom-review.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2010/01/textbrokercom-review.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-3776770346033905779</guid><pubDate>Fri, 22 Jan 2010 01:21:00 +0000</pubDate><atom:updated>2010-01-21T20:33:06.999-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tampa web design</category><category domain="http://www.blogger.com/atom/ns#">tampa web development</category><title>Webdango Tampa Web Development</title><description>For anyone who's interested, I'm trying to get some side work again setting up web sites for folks. I can do custom work (for a price) but right now I'm offering custom sites starting at only $300. And if you want an ecommerce site, I can do that too. &lt;br /&gt;&lt;br /&gt;I can also host if you need it....&lt;br /&gt;&lt;br /&gt;Yeah, it's listed as Webdango Tampa Web Development, but that's so I can get the keyword Tampa Web Development in there....&lt;br /&gt;&lt;br /&gt;So if you're looking for a professional looking site, hie thee over to &lt;a href="http://webdango.com/"&gt;Webdango&lt;/a&gt; and contact me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-3776770346033905779?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/YQraQQiu1u8/webdango-tampa-web-development.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2010/01/webdango-tampa-web-development.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-4239464322563102212</guid><pubDate>Mon, 28 Sep 2009 18:44:00 +0000</pubDate><atom:updated>2009-09-28T13:52:56.169-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><title>Null Links Best Practice</title><description>There have been instance were you want something to look like a link, but do something else when someone clicks is. &lt;br /&gt;&lt;br /&gt;There are some various solutions out there, but here's the one I recommend.&lt;br /&gt;&lt;br /&gt;Format your link like this&lt;blockquote&gt;&amp;lt;a href="requirements.asp" onClick="javascript:YourJavascriptStuff;return false;"&gt;&lt;/blockquote&gt;Here's how this works: Make a page called requirements.asp, and on that page you list the minimum user requirements required for users to use your site. Obviously JavaScript is one of them. &lt;br /&gt;&lt;br /&gt;When a user clicks the link, if they don't have a Javascript enabled browser, or have Javascript turned off, it will send them to the requirements page. &lt;br /&gt;&lt;br /&gt;If they do have Javascript enabled, the 'return false' interrupts the HTTP call make by the href and executes the Javascript instead. &lt;br /&gt;&lt;br /&gt;So it looks like a link, and will act like a link if there's no Javascript. If there is, the Javascript call will execute.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-4239464322563102212?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/5rVlmVXp1j4/null-links-best-practice.html</link><author>noreply@blogger.com (Dave)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/09/null-links-best-practice.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-818964075571357627</guid><pubDate>Fri, 18 Sep 2009 17:26:00 +0000</pubDate><atom:updated>2009-09-18T13:16:32.471-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">blogger</category><title>Add Widget to Header | Add Widget to Post in Blogger</title><description>I was working in blogger and wanted to add AdSense to it in specific places. By default, I can add a html/javascript widget to the side bar, but there was no way to add a widget to the header or to the post. Wassupwidat?&lt;br /&gt;&lt;br /&gt;I tried editing the HTML directly, but the AdSense ads wouldn't show. I didn't want to use the built in AdSense monetize featured because that doesn't allow for channel tracking. So I poked around a bit and found they way to do it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Add widget capability to the header&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Go to the edit html and look for &lt;blockquote&gt;&amp;lt;b:section class='header' id='header'&amp;gt;&lt;/blockquote&gt;There might be some other stuff in there, but regardless you want to edit it to read:&lt;blockquote&gt;&amp;lt;b:section class='header' id='header' maxwidgets='3' showaddelement='yes' preferred='yes'&gt;&lt;/blockquote&gt;After you do that, when you go to the layout screen you'll have an Add Widget section. Now you can put in a html/javascript widget and put your adsense in there (or anything else).&lt;br /&gt;&lt;br /&gt;Same thing for the post section. Look for something like:&lt;blockquote&gt;&amp;lt;b:section class='main' id='main' showaddelement='no'&gt;&lt;/blockquote&gt;And replace it with: &lt;blockquote&gt;&amp;lt;b:section class='main' id='main' maxwidgets='3' showaddelement='yes' preferred='yes'&gt;&lt;/blockquote&gt;Use the maxwidgets setting to control how many widgets you want to add.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-818964075571357627?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/foT8SbnWwWc/add-widget-to-header-add-widget-to-post.html</link><author>noreply@blogger.com (Dave)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/09/add-widget-to-header-add-widget-to-post.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-1200314266566487006</guid><pubDate>Thu, 13 Aug 2009 14:48:00 +0000</pubDate><atom:updated>2009-08-13T10:12:59.823-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GoDaddy</category><title>Send Email using ASP from a Web Form in GoDaddy</title><description>I'm not really fond of GoDaddy, just like I'm not fond of WalMart, but I still shop there. When it comes to cheap hosting, especially in a combined ASP/PHP/.Net environment, they're pretty much it. For less than $10 a month I can get 25 MySQL databases, 5 SOL databases, and unlimited top level domains. Can't be beat, or at least I couldn't find a place to beat it after wasting about hours of my life looking around before picking GoDaddy as my solution.&lt;br /&gt;&lt;br /&gt;So I've been moving some of my sites over. Why pay $5 a month (which is still cheap) when I can get hosting for pennies? I mean, $5 isn't much, but when you're hosting 11 sites, it adds up.&lt;br /&gt;&lt;br /&gt;Many of the sites I host use contact forms or confirmation forms, or some other form that needs to send out an email. Simple enough, but I spent a good three hours this morning figuring out how to do it on GoDaddy, and not for the reason you think.....&lt;br /&gt;&lt;br /&gt;Before I get to that, here's the code:&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;sendUrl="http://schemas.microsoft.com/cdo/configuration/sendusing"&lt;br /&gt;smtpUrl="http://schemas.microsoft.com/cdo/configuration/smtpserver"&lt;br /&gt;&lt;br /&gt;' Set the mail server configuration&lt;br /&gt;Set objConfig = CreateObject("CDO.Configuration")&lt;br /&gt;objConfig.Fields.Item(sendUrl) = 2 ' cdoSendUsingPort&lt;br /&gt;objConfig.Fields.Item(smtpUrl) = "relay-hosting.secureserver.net"&lt;br /&gt;objConfig.Fields.Update&lt;br /&gt;&lt;br /&gt;' Create and send the mail&lt;br /&gt;Set objMail=CreateObject("CDO.Message")&lt;br /&gt;&lt;/p&gt;&lt;p&gt;' Use the config object created above&lt;br /&gt;Set objMail.Configuration = objConfig&lt;br /&gt;objMail.From = "sender@coolexample.com"&lt;br /&gt;objMail.To = "recipient@coolexample.com"&lt;br /&gt;objMail.Subject = "subject"&lt;br /&gt;objMail.TextBody = "body"&lt;br /&gt;objMail.Send&lt;/p&gt;&lt;p&gt;Set objSendMail = Nothing&lt;br /&gt;Set objConfig = Nothing&lt;/p&gt;&lt;/blockquote&gt;Replace the hardcoded values for subject, from, to etc. with your own values. Bear in mind GoDaddy will only send 250 messages a day, so if you need to do more, you'll have to come up with some other solution.&lt;br /&gt;&lt;br /&gt;Now here's the kicker. Two kickers, really:&lt;br /&gt;&lt;br /&gt;The first is GoDaddy doesn't allow detailed error messages for classic ASP. All you get is a 500 Internal Server Error. I wasted a good bit of the three hours trying to figure out how to turn on errors but came up with nada. So good luck troubleshooting your ASP code....&lt;br /&gt;&lt;br /&gt;And this is related to the above: I couldn't get the damn thing to work (and I couldn't see the error). So I ended up stepping through it line by line and guess what the problem was?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;GoDaddy doesn't allow you to use a GMail address as a from address.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;That's right my friends, Read it again.&lt;br /&gt;&lt;br /&gt;So say you have a site with some sort of Send to a Friend thing where you ask for the sender's email, so the message says something like &lt;em&gt;YourFriend@HisEmail.com has sent you a link&lt;/em&gt; and the from address is actually the person's email.&lt;br /&gt;&lt;br /&gt;Well, if your address happens to be a GMail (and maybe other free mail apps, I didn't check) you get an error. An error that you can't troubleshoot.&lt;br /&gt;&lt;br /&gt;Once I figured that out, the code worked fine, although I had to update some of my forms to change the sent from value so it didn't use the submittor's email address anymore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-1200314266566487006?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/6q70k3QAnIg/send-email-frolm-web-form-in-godaddy.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>1</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/08/send-email-frolm-web-form-in-godaddy.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-3661073762892702924</guid><pubDate>Mon, 03 Aug 2009 18:32:00 +0000</pubDate><atom:updated>2009-08-03T13:59:39.958-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">affiliate marketing</category><category domain="http://www.blogger.com/atom/ns#">make money online</category><title>RetroWebDev's No Joke Guide to Making Money on the Internet - Part 1: Introduction</title><description>OK, this is it. I know, I know, there are a ton of guides out there, most of them wanting money and most of them promising financial independence and near-instant wealth. &lt;em&gt;You too can earn $3,768.18 a day!&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Well maybe you can, but if that's the type of program you're looking for, read no further, because that's not the type of program I'm going to talk about.&lt;br /&gt;&lt;br /&gt;I'm talking about a real, working-as-I-type-this program that has, for the last year, earned me between $1,000 - $2,000 a month. At my peak in December 2005, I had over $10,000 in revenue and just over $9,000 in gross profit.&lt;br /&gt;&lt;br /&gt;But that's another story, for another time, and in another time, before the search engines had their huge affiliate crackdown in early 2006 and I went from $300 a day to $30. Ouch! Good thing I hadn't quit my day job....&lt;br /&gt;&lt;br /&gt;That's probably worth making a rule: &lt;em&gt;Don't quit your day job&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;The type of pay-per-lead and pay-per-sale marketing I'm talking about can be a finicky beast, with companies and offers and products coming in and out of the marketplace and marketing terms being changed all the time. Nothing hurts quite so bad as having a well performing offer pulled out from under you or the terms changed to prohibit your most profitable marketing channel, but it happens all the time, for any reason (or for no reason at all).&lt;br /&gt;&lt;br /&gt;Example: In 2007 I was doing $5,000 a month of a very popular diet program, only to have the company change their affiliate terms to prohibit pay-per-click marketing, because--Iwas told--they felt I was stealing sales they would have been getting! Bye-bye $5k....&lt;br /&gt;&lt;br /&gt;This isn't to say if you ever do reach $3,768.18 that you couldn't quit. If you did, and it was coming in spread acorss a large number of offers and sites, and you had been saving $3,468.18 a day (or more) for the last 6 months, you still need to work. In that case, you probably don't.&lt;br /&gt;&lt;br /&gt;If you're still reading, I'll assume you aren't making anything, or at least not that much, and you want to know &lt;em&gt;the secret&lt;/em&gt;. By the end of all this, I think you'll see this isn't much of a secret at all. It's a proven method (at least proven for me in that it works and I get checks), based on some pretty solid and &lt;em&gt;repeatable&lt;/em&gt; actions.&lt;br /&gt;&lt;br /&gt;In other words, anyone can do it. But there are some things you need to have in place before you can get started.&lt;br /&gt;&lt;br /&gt;Stay Tuned for Part 2: What you Need to get Started&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-3661073762892702924?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/nTL-DDFiJTk/retrowebdevs-no-joke-guide-to-making.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>2</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/08/retrowebdevs-no-joke-guide-to-making.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-6014942208547253320</guid><pubDate>Fri, 26 Jun 2009 11:57:00 +0000</pubDate><atom:updated>2009-06-26T07:07:36.810-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">wordpress</category><title>Turn Off Comment Section in WordPress Pages</title><description>I'm setting up a WordPress install with the primary intent of using it mainly as a content management system (CMS). I'm tinkering because a family member has started up a business and is looking for a web site. I want to give them something robust enough to meet their needs, yet simply enough that they don't have to call me every time they want to update or add something.&lt;br /&gt;&lt;br /&gt;WordPress is cake to install, so I had an instance running in less than 10 minutes. I edited the included About page that comes with the default install, turned off Allow Comments and Allow Pings, then viewed the page. At the bottom of the page it was still tacking on the comments section:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_ZTbq7NkYcws/SkSz55vvqeI/AAAAAAAAAAM/m71zD4odCfo/s1600-h/wp-comments.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351600064557984226" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 94px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_ZTbq7NkYcws/SkSz55vvqeI/AAAAAAAAAAM/m71zD4odCfo/s320/wp-comments.gif" border="0" /&gt;&lt;/a&gt;Ug. I poked around and couldn't figure out how to turn it off, so I resorted to a handy-dandy Internet search and found the solution.&lt;br /&gt;&lt;br /&gt;In your theme, you will have a page named single.php, or index.php. Use the editor to view the source code for the page. In the code, the comments template is called with: &lt;blockquote&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;?php comments_template(); // Get wp-comments.php template ?&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Comment that code out:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;!--&amp;lt;?php comments_template(); // Get wp-comments.php template ?&gt;--&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;and add this: &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;?&lt;br /&gt;php if(is_page(array(27,32,56))){&lt;br /&gt;//do nothing&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;else{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;comments_template();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;Where the comma separated numbers correspond to the page_id.&lt;br /&gt;&lt;br /&gt;The comment section will still show up on blog posts, but not on any of the pages you identify in the above code.&lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-6014942208547253320?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/4bUai2y5KnQ/trun-off-comment-sectionin-wordpress.html</link><author>noreply@blogger.com (RetroWebDev)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_ZTbq7NkYcws/SkSz55vvqeI/AAAAAAAAAAM/m71zD4odCfo/s72-c/wp-comments.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/06/trun-off-comment-sectionin-wordpress.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-8856254424249150271</guid><pubDate>Tue, 23 Jun 2009 19:09:00 +0000</pubDate><atom:updated>2009-06-23T14:50:45.590-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ecommerce startup</category><category domain="http://www.blogger.com/atom/ns#">affiliate marketing</category><title>Taking the eCommerce Plunge</title><description>&lt;strong&gt;Phase 1: Affiliate Links&lt;/strong&gt;&lt;br /&gt;For almost 10 years now, I've been trying to earn a living online, enough so that I could work for myself and own my time. I've been very successful earning extra money, but I never made enough, and with enough consistency (the most important thing), to quit my 'real' job.&lt;br /&gt;&lt;br /&gt;The most I ever made was almost $10,000 net in one month (December 2005). Up to that point, my revenue had been growing every month for the better part of a year. I was giddy.&lt;br /&gt;&lt;br /&gt;In March 2005, just three months later, after a big affiliate link 'crack down' by the search engine, I made just under $400. I was no longer giddy. Good thing I hadn't quit my job!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Phase 2: Pay-per-sale and Lead Gen&lt;/strong&gt;&lt;br /&gt;I started tinkered with other affiliate marketing, pay-per-sale, and lead gen programs, this time looking for offers I could market through PPC, and thus have control over my fate: Pay the mony, show up in the results, thus elminating the organic component. I had success there as well, but once again learned that in such a system, my fate was not in my own hands. Driving the traffic was, but the offer itself.....&lt;br /&gt;&lt;br /&gt;I would research the offers, register a domain, build a mini site, do keyword research, and drive traffic through PPC on Google, Yahoo and MSN. Some offers were successful, but most weren't. The ones that were I ran with, for the ones that weren't I simply stopped spening money on marketing.&lt;br /&gt;&lt;br /&gt;The successful ones almost always ended up being retail offers for strongly branded products (think late night TV commercials). Time and again I would build the site and get the ads out only to be contacted after a month or two and be told that the terms had changed and I was no longer allowed to bid on trademark terms (usually the product name). Down came the ads, and away went the traffic.&lt;br /&gt;&lt;br /&gt;As an example, I used to run an offer for Nutrisystem. My revenue was around $8,000 a month on $3,000 in spend for a profit of around $5k. I did this for three months and was then told to pull my ads. Bye-bye to $5K.&lt;br /&gt;&lt;br /&gt;This scenario played out repeatedly and I finally gave up. Term changes (no more PPC!) or the offers being pulled unexpectedly, leaving me with a worthless site, finally wore me down. I pretty much stopped trying.&lt;br /&gt;&lt;br /&gt;Most of my sites still sit out there since. I was hosting them myself on my own server and they don't cost anything. They'll stay until the domain names expire. Recently, some of the sites started picking up some significant organic traffic, mainly from Yahoo and Bing. I've since reworked these, found some good fitting offers, and currently make between $1,000 to $1,500 a month. Not much, but I'll take it. It gave me enough moeny to try....&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Phase 3: Drop shipping&lt;/strong&gt;&lt;br /&gt;All this frustration ultimately led me to deciding I needed to have my own ecommerce site. No more depending on selling other people stuff. I'd sell it myself! I wanted to be as efficient and cost-effective as possible, so drop ship looked like the perfect solution.&lt;br /&gt;&lt;br /&gt;After a bunch of boring research, I choose a niche, found a supplier, and went with a hosted cart solution. The niche I chose only had two drop shippers in it. I spoke to them both and did my due diligence. One was hopelessly disorganized and the other seemed to have their ducks in a row, so I went with them.&lt;br /&gt;&lt;br /&gt;Alas, appearances can be deceiving. After getting the site configured and the inventory loaded, I went out slow, slow, slow with the marketing to test the waters. The orders started coming in. Not much, maybe an average of 1 a day. But it was a enough to rapidly figure out that the supplier took anywhere from 2-6 weeks to fulfill an order.&lt;br /&gt;&lt;br /&gt;Tip: when people order something, 2 weeks is about the longest they'll wait before they start asking you where it is.&lt;br /&gt;&lt;br /&gt;Added to this was the manul process of passing the order to the supplier. No automated solution there; I had to send email(s) for every order, send email(s) to ask if they got the orders, then send follow-up email(s) for them to notify me when the order shipped, then send the tracking number to the customer. Not smooth, not easy, not efficient.&lt;br /&gt;&lt;br /&gt;Turns out their primary business is manufacturing for retail stores, so drop ship items got tacked when ever they had to fulfill a wholesale bulk order, hence the wait. Order a blue widget? Have to wait until a retail store ordered 50, then they would make 51 and send yours out.&lt;br /&gt;&lt;br /&gt;So after 4 months of operation, I shut it down. I ended up breaking even for the effort, but it was a lot of effort and a lot of emails.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Phase 4: Do It All Yourself&lt;/strong&gt;&lt;br /&gt;Still searching for some way to escape my corporate overlords, I once again forged into ecommerce.&lt;br /&gt;&lt;br /&gt;My dealing with the supplier mentioned above led me to believe that although they hadn't worked as a drop shipper, they would as a wholesaler. I already had a decent relationship with them. It was OK to wait 4-6 weeks to get your stuff when you had stock on hand to do your own fulfillment, all you had to do was order ahead to keep your inventory level up.&lt;br /&gt;&lt;br /&gt;The drawback here was the cash outlay for inventory. The benefit was you were in charge of getting the item to the customer and you got another 20% off pricing for wholeslae orders over a certain amount. That gave me a larger margin to work with for profit.&lt;br /&gt;&lt;br /&gt;So I re-engaged with them and am currently getting things lined up for yet another effort to break free of my corporate bonds....&lt;br /&gt;&lt;br /&gt;Wish me luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-8856254424249150271?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/T6eYBOD0Fp0/taking-ecommerce-plunge.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/06/taking-ecommerce-plunge.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-1048270848560641087</guid><pubDate>Thu, 21 May 2009 11:56:00 +0000</pubDate><atom:updated>2009-05-21T07:15:19.118-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">access database</category><title>Operation must use an updateable query</title><description>&lt;blockquote&gt;Microsoft JET Database Engine error '80004005'&lt;br /&gt;&lt;br /&gt;Operation must use an updateable query.&lt;/blockquote&gt;I think every web developer has seen this error at one time or another, and probably more than once. When I see it now, I actually smile, because it's an easy one to fix. It happens when you try to add or edit a record in an Access database through your web site. &lt;br /&gt;&lt;br /&gt;This isn't a database error per se, it's actually a permissions error. Without going into too much detail, it's cause when the Internet Guest Account on your IIS server doesn't have permissions to write to a folder. &lt;br /&gt;&lt;br /&gt;The Internet Guest Account is the accout IIS uses by default for web site visitors. When you add or edit a record in Access, requires that the account editing or creating the record have write permissions to the folder the Access database it in. &lt;br /&gt;&lt;br /&gt;If you have access to your server, open file exploere and navigate to the folder containing your Access databse. Right click, select Properties, then click on the Security tab. In the Groups or user name box, scroll until you see Internet Guest Account. Select it, then look in the Permission box underneath and make sure Write is checked.  &lt;br /&gt;&lt;br /&gt;If you don't have access to your server, you'll have to contact support at your hosting company and ask them to do it. Any hosting company wirth its salt with know exactely what you mean when you say "I need you to set write permissions for Internet Guest Account on the folder that has my Access database in it."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-1048270848560641087?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/D5JH4KbWdJo/operation-must-use-updateable-query.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/05/operation-must-use-updateable-query.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-5073384138555218180</guid><pubDate>Thu, 07 May 2009 12:46:00 +0000</pubDate><atom:updated>2009-05-07T07:56:28.756-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><title>Installing Visual Web Developer 2008</title><description>I haven't been doing much as far as advancing along the .Net development path. Procrastinating I guess. My cellmate at work suggested I go ahead and install the most recent version (2008) rather than the 2005 I already had, so I could use the 3.5 framework, since he said it had some "cool stuff". I figured why not? It's not as though I'd really started doing anything anyway.&lt;br /&gt;&lt;br /&gt;So I downloaded the whole deal from the ASP.Net site and launched it. Three days of intermittent tinkering later, I finally had it installed. And Microsoft wonders why it has pretty much lost the hobbyist programmer....&lt;br /&gt;&lt;br /&gt;The problem occurred right out of the gate. The install program hung on trying to set up the 3.5 framework, which was the second step of the install process. I tried all the standard solutions: uninstalling all the existing frameworks, reinstalling, even downloading the 3.5 framework separately and trying to get it set up that way. I thought maybe it just needed a long time to finish, so I let it sit overnight. Nope. It wouldn't install and, as a result, VWD 2008 wouldn't either.&lt;br /&gt;&lt;br /&gt;As a last ditch effort, I tried Windows Update. I should have tried that first because it worked. The next time I ran the VWD 2008 install program, it went right over the 3.5 framework install with a green check mark and proceeded on. &lt;br /&gt;&lt;br /&gt;I went through some similar contortions trying to get SQL Server 2008 Express and it's associated Management Studio installed, but I overcame that as well.&lt;br /&gt;&lt;br /&gt;So now I've got Visual Web Developer 2008 on my machine. All that's left is learning to use it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-5073384138555218180?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/br8m9WNCIDc/installing-visual-web-developer-2008.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/05/installing-visual-web-developer-2008.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-5543150166888679139</guid><pubDate>Thu, 26 Mar 2009 15:35:00 +0000</pubDate><atom:updated>2009-03-26T10:46:23.656-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><title>Showing the Date and Time in .Net</title><description>I like the concept of master pages, they seem sort of like includes on steroids. In Classic ASP, I would build my template and use includes for those items that would be global to the site: header, footer, navigation, etc. master pages in .Net let you do the same sort of thing. &lt;br /&gt;&lt;br /&gt;So I get my master page created and I want to put the copyright notice on the footer. But how to dynamically insert the year?&lt;pre&gt;d, day of month: System.DateTime.Now.ToString(" d") // can't use just "d"&lt;br /&gt;dd, zero-padded day of month: System.DateTime.Now.ToString("dd")&lt;br /&gt;ddd, abbreviated day of week: System.DateTime.Now.ToString("ddd")&lt;br /&gt;dddd, full day of week: System.DateTime.Now.ToString("dddd")&lt;br /&gt;h, hour: System.DateTime.Now.ToString(" h") // can't use just "h"&lt;br /&gt;hh, hour, zero padded: System.DateTime.Now.ToString("hh")&lt;br /&gt;H, hour, 24-hr: System.DateTime.Now.ToString(" H") // can't use just "H"&lt;br /&gt;H, hour, 24-hr, zero padded: System.DateTime.Now.ToString("HH")&lt;br /&gt;m, minute: System.DateTime.Now.ToString(" m") // can't use just "m"&lt;br /&gt;M, month: System.DateTime.Now.ToString(" M") // can't use just "M"&lt;br /&gt;MM, month, zero padded: System.DateTime.Now.ToString("MM")&lt;br /&gt;MMM, month abbreviated: System.DateTime.Now.ToString("MMM")&lt;br /&gt;MMMM, month full name: System.DateTime.Now.ToString("MMMM")&lt;br /&gt;y, year (omits century): System.DateTime.Now.ToString(" y") // can't use just "y"&lt;br /&gt;yy, 2-digit year, zero padded: System.DateTime.Now.ToString("yy")&lt;br /&gt;yyyy, 4-digit year, zero padded: System.DateTime.Now.ToString("yyyy")&lt;/pre&gt;So to actually use this in a page, you'd do:&lt;pre&gt;Copyright &amp;lt;%= System.DateTime.Now.ToString("yyyy") %&gt; &lt;/pre&gt;This will write the full four-digit year.&lt;br /&gt;&lt;br /&gt;Here's a &lt;a href="http://snipplr.com/view/3422/dates/"&gt;full list of all the Date and Time formats&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-5543150166888679139?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/gkyYHN7oN4Q/showing-date-and-time-in-net.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/03/showing-date-and-time-in-net.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-4469627583161106298</guid><pubDate>Thu, 26 Mar 2009 15:13:00 +0000</pubDate><atom:updated>2009-03-26T10:28:21.579-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><title>Visual Web Developer 2005 and ASPNETDB.DBF</title><description>I've decided to initiate my .Net journey with the free Visual Web Developer 2005 Express Edition, mainly because the couple of books I have are for Visual Studio 2005 and the .Net 2.0 framework. I choose SQL Server 2005 Express as well for the database backend. &lt;br /&gt;&lt;br /&gt;I'm not sure how easy it is to get VWD-2005-ED anymore. Microsoft released VWD-2008 about 6 monmths agao and it's all that's available from the official .Net website. I had a CD with it that had come with the Dummies book I bought a few years back. I bet you could find it on PirateBay or some other torrent sharing site though. It's free, so that's not stealing AFAIC.&lt;br /&gt;&lt;br /&gt;It's taken me some time to figure out the nuances of getting a new web site project up and running. The main issue I was having was with VWD-2005-ED creating the membership database the way is was supposed to. Sometimes the membership database got created and sometimes it didn't. &lt;br /&gt;&lt;br /&gt;After much trial and error, I hit on a sequence of actions that seems to work. I assume you have VWD-2005-ED and SQL Server 2005 Express installed, and have started the VWD program. Do:&lt;br /&gt;&lt;br /&gt;File--&gt;New WebSite--&gt;ASP.Net Web Site - I'm working in C# and using the File System as the location&lt;br /&gt;&lt;br /&gt;Once the program has created the site:&lt;br /&gt;&lt;br /&gt;Build--&gt;Build Website&lt;br /&gt;&lt;br /&gt;Once the site has been built, hit control (Ctrl) F5 to launch the site preview in Internet Explorer. Close the browser after it finishes launching and then, back in VWD:&lt;br /&gt;&lt;br /&gt;Website--&gt;ASP.Net Configuration&lt;br /&gt;&lt;br /&gt;This brings up the browser again with the configuration stuff loaded. It might take a minute or two. Once it's done, the ASPNETDB.DBF should have been created.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-4469627583161106298?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/YYO68Cm_b9I/visual-web-developer-2005-and.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/03/visual-web-developer-2005-and.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-1022067969601945441</guid><pubDate>Thu, 26 Mar 2009 14:56:00 +0000</pubDate><atom:updated>2009-03-26T10:11:36.117-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">blogger</category><title>RetroWebDev Blog Update &amp; Social Bookmarking Tool</title><description>With my intent to chart my progress through the Sargasso Sea of .Net development, I decided to update my blog with the new templates/features now offered by Blogger. I'm now taking advantage of the hand-dandy gadgets that are so easily installed, and have integrated the AdSense ads between the posts. (Not that anyone ever clicked on the old AdSense ads, but hope springs eternal.)&lt;br /&gt;&lt;br /&gt;One of the things I wanted, and operating under the delusion that people might actually find certain posts here interesting and want to share, was an easy way for visitors to do the social bookmark submission thing. &lt;br /&gt;&lt;br /&gt;A quick search took me to &lt;a href="http://www.addthis.com/"&gt;AddThis&lt;/a&gt;, where I quickly and easily got hold of the handy bookmark button now seen below all posts. You do have to register to get the tool, but heck, I'm registered on a gajillion sites already anyway. What's one more?&lt;br /&gt;&lt;br /&gt;So welcome to RetroWebDev's slight new look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-1022067969601945441?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/v8205RpiKzs/retrowebdev-blog-update-social.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/03/retrowebdev-blog-update-social.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-9053604313539775383</guid><pubDate>Mon, 23 Mar 2009 12:31:00 +0000</pubDate><atom:updated>2009-03-26T08:21:34.181-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><title>The Inevitable Move to .Net</title><description>I don't want to. I've been resisting for years. I'm very fortunate; although my job as a Software Engineering Manager (government sector) requires me to be familiar with the concepts and capabilities of .Net, I've never had to actually write code. Because I am old and lazy and set in my ways, I've continued to use Classic ASP for all my personal projects. When I do dig in to help on a programming, it's usually on the SQL/T-SQL end.&lt;br /&gt;&lt;br /&gt;From a development philosophy perspective, I still hold this resolute belief: The User Doesn't Care. All the user wants is to see certain information presented in a certain way after they take a certain action. They couldn't care less about the extension on the end of the filename - .asp, .aspx, .php, .cfm, .html - it just doesn't matter. Show the page, let the user take some sort of action, and show the results as quickly as possible, all using a visually pleasing and easy-to-use interface.&lt;br /&gt;&lt;br /&gt;And what are web applications really? Nothing more than a framework for:&lt;br /&gt;&lt;br /&gt;putting data in&lt;br /&gt;getting data out&lt;br /&gt;&lt;br /&gt;The only people who care about what language is used are developers (because they have a skill and they want a job), and management (because they read in some magazine that language XXX is the thing to use and all the industry is going to it or already on it).&lt;br /&gt;&lt;br /&gt;But the time has come to jump int the cesspool of .Net. Why? you ask. Marketability. There are a lot more programming positions out there than there are programming management positions. When the inevitable happens (and sooner or later it will) and I need to find a new job, I need to be able to actually FIND A JOB. And I want to find one without have to relocate.&lt;br /&gt;&lt;br /&gt;So....&lt;br /&gt;&lt;br /&gt;I'm starting a new project and I'm going to use it as my impetus to learn .Net using C#. Hey, I taught myself Classic ASP and SQL/T-SQL. How hard could it be? Yeah, right....&lt;br /&gt;&lt;br /&gt;I'll post here as progress and learn things, things I already know how to do very well, but now have to relearn because someone, somewhere, decided to dump Classic ASP and create .Net. I hope he chokes on a chicken bone.&lt;br /&gt;&lt;br /&gt;If I had it to do all over again (and this is my advice to anyone interested in getting into web application development) I recommend the LAMP route:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;L&lt;/strong&gt;inux&lt;br /&gt;&lt;strong&gt;A&lt;/strong&gt;pache&lt;br /&gt;&lt;strong&gt;M&lt;/strong&gt;ySQL&lt;br /&gt;&lt;strong&gt;P&lt;/strong&gt;HP&lt;br /&gt;&lt;br /&gt;Many big corporations and large sections of the government are still wedded to the Microsoft platform, but even there you can see PHP and other languages making some inroads. Wordpress blogs are all over the place (check out CNNs blogs). &lt;a href="http://recovery.gov/"&gt;Recovery.gov&lt;/a&gt;, the new governemnt website about the ongoing financial recovery efforts, is built with the Drupal CMS, which is open source and developed in PHP.&lt;br /&gt;&lt;br /&gt;For an out-the-gate, web development programming language, you can't go wrong with PHP. If you decide to expand your skills later, well, you can expand your skills later. But if you don, it will probably be by choice rather than necessity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-9053604313539775383?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/Gdcwv5wV4sQ/inevitable-move-to-net.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>1</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/03/inevitable-move-to-net.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-9200816394798339801</guid><pubDate>Wed, 04 Mar 2009 14:28:00 +0000</pubDate><atom:updated>2009-03-04T09:30:58.666-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Kittens</category><title>Kittens Born</title><description>I won't bore you with the whole story; suffice to say that the outdoor cat we 'adopted' gave birth to her kittens on Sunday. Welcome to the world!&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_SkWj5MUulj4/Sa6Qe8oQ-FI/AAAAAAAAADM/dSy3Gcjhbqc/s1600-h/NewKittens.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://4.bp.blogspot.com/_SkWj5MUulj4/Sa6Qe8oQ-FI/AAAAAAAAADM/dSy3Gcjhbqc/s400/NewKittens.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5309339872061880402" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-9200816394798339801?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/UQqGLOigZ9M/kittens-born.html</link><author>noreply@blogger.com (RetroWebDev)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_SkWj5MUulj4/Sa6Qe8oQ-FI/AAAAAAAAADM/dSy3Gcjhbqc/s72-c/NewKittens.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/03/kittens-born.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-1873444037448648408</guid><pubDate>Fri, 09 Jan 2009 20:27:00 +0000</pubDate><atom:updated>2009-03-26T09:56:31.562-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FTP</category><category domain="http://www.blogger.com/atom/ns#">LinkSys router</category><title>LinkSys Routers, PASV FTP, and Directory Listing Problems</title><description>My router started acted fruity adn I had to replace it. I had an old LinkSys router in the closet, so I pulled it out and hooked it up (I'd replaced it because it had a tendency to drop wireless). All the settings were still there from last time I used it, so everything it came up great. Only problem was when I FTP'd to my server from outside the network, I couldn't get a file listing.&lt;br /&gt;&lt;br /&gt;I use a fairly old (and free) version of EasyFTP (which has served me well, hence I've never upgraded), and I hadn't changed anything settings. I could connect, just not get a listing. Passive or active, didn't matter. Much research, various port openings, closing and forwardings later, I still hadn't gotten it to work. But then I read something about how LinkSys returned the IP address of the FTP server when is PASV mode.&lt;br /&gt;&lt;br /&gt;I looked in EastFTP's setting under teh settnis for PASV and it was:&lt;br /&gt;&lt;br /&gt;IP: 192.168.1.10&lt;br /&gt;Port Range: 1024 - 65535&lt;br /&gt;&lt;br /&gt;Under the previous Buffalo router these settings had worked fine. But what I learned was that the LinkSys router was returning the IP as the IP of the server to the EXTERNAL ftp client. So the client was connecting, and then being told to go to 192.168.1.10 to get the file list.&lt;br /&gt;&lt;br /&gt;What I tried was changing the IP to match my external WAN IP. Once I did that, my client connected and... returned the file list!&lt;br /&gt;&lt;br /&gt;Huzzah!&lt;br /&gt;&lt;br /&gt;So if you are running a LinkSys router with an FTP server and you aren't getting your directory/file listing, try setting the PASV IP on your FTP server to match that of you external WAN IP!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-1873444037448648408?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/kQqDaeLFfjc/linksys-routers-pasv-ftp-adn-directory.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2009/01/linksys-routers-pasv-ftp-adn-directory.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-2992249251586675107</guid><pubDate>Thu, 04 Dec 2008 17:37:00 +0000</pubDate><atom:updated>2008-12-04T12:50:37.355-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">new web sites</category><category domain="http://www.blogger.com/atom/ns#">random link script</category><title>LinkRotatr - Show Random Links on your Site</title><description>&lt;p&gt;I needed a way to show random links on any web page on any of the sites I own. I'd been manually updating them as I created new sites or got rid of old ones, but it was tedious. SO being the good little robot developer I am, I decided to build a web app. &lt;a href="http://linkrotatr.com/"&gt;LinkRotatr.com&lt;/a&gt; was thus born. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create an account (free) &lt;/li&gt;&lt;li&gt;Add your anchor text and URLs (25 links for free, $12 a year for unlimited) &lt;/li&gt;&lt;li&gt;Set if you want the links to be rel=nofollow &lt;/li&gt;&lt;li&gt;Set 2 variables (# of links to show and the HTML you want before the text) &lt;/li&gt;&lt;li&gt;Put the correct snippet of code on the web page you want the links to appear on (PHP, ASP, JavaScript (for HTML pages), or .NET) &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Now every time that page load, it will pull random links from your LinkRotatr account and display them on the page. If the page is not a static HTML page, then the links will be visible to search engine spiders. &lt;/p&gt;&lt;p&gt;There are a couple of things you could do with this:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Sell links: if you have a popular site, you can sell links, add the links to LinkRotatr with the rel=nofollow, then put the script to show the links randomly on your page&lt;/li&gt;&lt;li&gt;If you have a bunch of sites this is an easy way to interlink them&lt;/li&gt;&lt;li&gt;If you have a fairly large list of favorite sites, you could use this to generate random links for a a My Fav Links list &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I'm sure there are other uses as well some people might think of. &lt;/p&gt;&lt;p&gt;So check it out and let me know what you think.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-2992249251586675107?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/4P3K4vq-zfc/linkrotatr-show-random-links-on-your.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2008/12/linkrotatr-show-random-links-on-your.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-7298034168736125335</guid><pubDate>Thu, 28 Aug 2008 18:14:00 +0000</pubDate><atom:updated>2008-11-10T22:56:23.381-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">software development</category><title>The Development Lab</title><description>There's a new initiative being pushed down by the Big Heads, but first some background:&lt;br /&gt;&lt;br /&gt;In our development shop, we each have our own development box. All the developers have local admin so they can install software and do other things developers need to do in order to be able to develop. The development machines are on the Intranet, as are our test servers, both web and database. Some of the applications we develop depend on connecting to existing applications for their data sources.&lt;br /&gt;&lt;br /&gt;We develop, test, and deploy sandbox installs on our development servers for customers to review, repeating this processes as best we are able until we're done with whatever it is we're building. &lt;br /&gt;&lt;br /&gt;The completed (and development tested) application then goes to Test and Integration, were the eventual users perform their test cases (which the developers wrote BTW) and the network guys make sure it will integrate into "production", i.e., that it won't screw up anything already out there. &lt;br /&gt;&lt;br /&gt;Once they rubber stamp, it goes to Configuration Management, who versions it and then releases it to production, who installs it on the "live" Intranet. &lt;br /&gt;&lt;br /&gt;Barring the typical development stupidity and ignorance one runs into almost anywhere, this process (eventually) works well enough for us to complete applications and get them deployed and in use. &lt;br /&gt;&lt;br /&gt;Well now someone has decided it's a "risk" to do development on machines that are connected to the "live" Intranet. The proposed solution is an isolated Development Lab, where there's a single development "server" upon which each developer has his or her virtual machine set up to develop on. The developers will have admin permissions be able to install/uninstall software and changing settings just like now on his or her VM. There's a single development database server we are all supposed to use. &lt;br /&gt;&lt;br /&gt;So far, no adequate answer to my questions:&lt;br /&gt;&lt;br /&gt;How are we supposed to connect to existing web services on the Intranet if the app we're building requires it? This is the biggest concern, as many of the apps we build connect to existing services for data. The floated solution so far is to buy additional servers and stand up copies of the production systems in the lab environment that we then develop against. Brother, I'm here to tell you I can's get $3 for a ream of paper, and now they're are going to buy servers for standing up production copies? I wonder what the vendors of these systems will think of us running additional instances of their software?&lt;br /&gt;&lt;br /&gt;How are geographically separated customers supposed to review milestone installs of work in progress? Right now, customers can log into the Intranet from anywhere and view apps in progress. In the Big Heads' Dev Lab, they won't be able to do that, so customers will have to physically travel to the Dev Lab to view.&lt;br /&gt;&lt;br /&gt;Lastly, and this sort of ties in with the whole $3 ream of paper thing, we've been given a VM to do "proof of concept" against. We're supposed to set it up with a baseline install of all the stuff a developer needs. The VM they gave us has 18 gig disk space. Visual Studio 2005 needs 6 gig right from the git-go. VS 2008 needs even more. Plus whatever apps we're working on. Plus helper apps like Infragistics. And SQL Server Developers edition. And the OS. And, and, and... We need 80 gigs I told them. Sorry, don't have the resources. So you gong to stand up dupe servers of all the apps we develop against, but you can buy some more disks so the developers can have enough space to set up their dev environments? Yeah, that'll fly. &lt;br /&gt;&lt;br /&gt;Anyway, just needed to vent. Processes, over time, are supposed to get simpler and more streamlined. Why is that software development always seems to go in the other direction and become more complicated?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-7298034168736125335?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/JQPdQ3TaboE/development-lab.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2008/08/development-lab.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-6697431803458432086</guid><pubDate>Thu, 14 Aug 2008 17:37:00 +0000</pubDate><atom:updated>2008-08-14T12:44:52.931-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">software development</category><title>Customers Don't Care</title><description>The development shop I lead is firmly shackled to Microsoft. We write applications using .Net, mostly in C# (occasionally in VB) on the .Net 2.0 framework with Visual Studio 2005 as our IDE. Our apps are hosted on Windows Server 2003 boxes, and our backend is SQL Server 2000.&lt;br /&gt;&lt;br /&gt;Most programmers have a language of choice, along with the tendency to denigrate the languages they didn't choose. It's no secret that certain languages are better at certain things, but mostly people tend to stick with what they know. That's why I still write some ASP after all these years.&lt;br /&gt;&lt;br /&gt;We have a running joke around the office. Web development is easy, all you're doing is putting stuff into a database and getting stuff out. Put data in, get data out. In, out. Easy-peasy. Cake.&lt;br /&gt;&lt;br /&gt;The company I work for went through a big push about 4 years ago to move to .Net, but when asked why, one got the typically weasel-like management answers:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;That's the way the industry is moving &lt;/li&gt;&lt;li&gt;It's more powerful&lt;/li&gt;&lt;li&gt;It's faster&lt;/li&gt;&lt;li&gt;It's easier&lt;/li&gt;&lt;li&gt;More value added&lt;/li&gt;&lt;li&gt;We have a Microsoft Enterprise license and we need to get our money's worth &lt;/li&gt;&lt;/ul&gt;At least the last is honest.... The rest came from.... well, I don't know where they came from. But the people announcing these declarations were probably the least qualified to voice a technical opinion.&lt;br /&gt;&lt;br /&gt;Shortly after management announced all new development had to be done in .Net, they also decided some of the 'critical' applications should be redone in .Net as well. I fought that, because, well, it was stupid. But mostly I lost. So we spent a good amount of time rebuilding things in .Net that did something a previous applications not in .Net did perfectly fine. Which pretty much boiled down to putting stuff into a database and getting stuff out.&lt;br /&gt;&lt;br /&gt;While everyone associated with application development has an opinion on which language to use, guess what? The customer couldn't care less. Oh, there are some customers who want you to use the latest and greatest so they can brag to their competition that they are using the latest and greatest (or most obscure, or most complex, or most [whatever]), but mostly, when it comes to web application development, the customer just doesn't care what language you code in.&lt;br /&gt;&lt;br /&gt;They want:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;certain information &lt;/li&gt;&lt;li&gt;to appear on certain web pages &lt;/li&gt;&lt;li&gt;in response to certain actions&lt;/li&gt;&lt;/ul&gt;Beyond that (and how much it costs and how long it takes) they don't care. The last thing they're going to notice is the extension on the file getting loaded into the browser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-6697431803458432086?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/-QWY7Xda1-E/customers-dont-care.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>1</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2008/08/customers-dont-care.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-2609557160020703118</guid><pubDate>Mon, 28 Jul 2008 11:50:00 +0000</pubDate><atom:updated>2009-03-26T09:26:32.803-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rants</category><title>War on drugs</title><description>The occasional glass of merlot is about as far as I dip into drug use, but I'm intelligent to recognize when something doesn't work, and to perceive the cause and effect cycle that seeds drug related criminal activity.&lt;br /&gt;&lt;br /&gt;There's no doubt that the US is in a drug use epidemic, yet upon closer examination, the majority of drug users are non-violent. Despite more and more draconian drug laws, the US still has one of the highest incidents of drug use in the world. &lt;br /&gt;&lt;br /&gt;Drug use is not a criminal problem, it is a social and addiction problem. Locking up non-violent drug offenders with violent criminals and not giving them treatment for their drug addiction isn't going to do anything except turn some of them into violent criminals with a drug problem.   &lt;br /&gt;&lt;br /&gt;Which brings us to the root of drug-related crime. Ultimately, it's a vicious circle. The more laws there are, and the more the police try to enforce the law, the worse a problem drug related crime becomes. But why? &lt;br /&gt;&lt;br /&gt;Simple. As more law enforcement effort is focused toward prohibiting something, the more profitable that something becomes. &lt;br /&gt;&lt;br /&gt;Ultimately, the only reason drug crime (and other 'vice' crimes such as prostitution and gambling) exist is because of government prohibitions. A free market in drugs would reduce the level of profitability to a point where it would not longer enable criminals to reap huge rewards. &lt;br /&gt;&lt;br /&gt;The best way — really the only way — to end drug crime is to end the prohibitions against them. Once drugs are legal, they will no longer provide the huge profit they now do and related criminal activity will dissolve. Drugs can be regulated and taxed. Drug use and users can be tracked through registration and distribution programs. Ninety percent of crime would disappear overnight.&lt;br /&gt;&lt;br /&gt;But that's not what our government does. Instead, it continues to fight a war it can't win. The very effort to prevent drug sales and use drives them underground, thereby guaranteeing enormous profits to those willing to take the risk to be part of the market. The riches are then used to bribe public officials and gain a certain amount of protection from the public sector. And that doesn't include the money spent on drug enforcement, which is a business unto itself.&lt;br /&gt;&lt;br /&gt;This cycle is doomed to continue indefinitely until our leaders wake up and admit they are wrong and do something to change policy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-2609557160020703118?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/FoGTyIQB9Gw/war-on-drugs.html</link><author>noreply@blogger.com (RetroWebDev)</author><thr:total>1</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2008/07/war-on-drugs.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-33271126.post-3568262198742662036</guid><pubDate>Fri, 25 Jul 2008 14:11:00 +0000</pubDate><atom:updated>2008-07-25T09:27:28.303-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">cool stuff</category><title>Found Some Cool T-Shirts</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_SkWj5MUulj4/SIniaTGJVUI/AAAAAAAAAB8/0XKPBuvubAo/s1600-h/end_big-oil.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_SkWj5MUulj4/SIniaTGJVUI/AAAAAAAAAB8/0XKPBuvubAo/s400/end_big-oil.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5226957783970698562" /&gt;&lt;/a&gt;&lt;br /&gt;I'm not a raging liberal, but I'm certainly no fan of Bush and the administration that's driven this country into the ground over the last 8 years. If pressed, I'd profess to be a humanist. The short version: I believe there's enough for everybody, violence and hate are counter-productive and demean those who perpetrate it, we should be better care-takers of our planet, and we worry to much about stuff and not enough about each other. &lt;br /&gt;&lt;br /&gt;So I'm poking around the web the other day, as I am wont to do, and I found some T-Shirts in CafePress store that express a lot of the values I hold. The store is called &lt;a href="http://www.cafepress.com/closingtagtees"&gt;ClosingTagTees&lt;/a&gt;, and whomever created it found a unique way to present a variety of social statements; using code syntax.&lt;br /&gt;&lt;br /&gt;Take for example &lt;a href="http://www.cafepress.com/closingtagtees/5802603"&gt;&amp;lt;/mccain&gt;&lt;/a&gt;, which, as anyone who's ever written code knows, means 'end mccain'. I thought it a pretty succinct way of expressing one's opinion. Given my chosen profession, it stuck a particular affinity in me and I thought it quite clever. &lt;br /&gt;&lt;br /&gt;CafePress prices, IMO, are a bit high, but I'm going to pick up &amp;lt;/mccain&gt; and maybe one or two others, like &amp;lt;/hate&gt; and &amp;lt;/war&gt;. &lt;/bush&gt; is too trite....&lt;br /&gt;&lt;br /&gt;Maybe one day the opinions expressed by these shirts will actually be realty, though given human history and nature, I doubt it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33271126-3568262198742662036?l=retrowebdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/RetroWebDevelopment/~3/5RHS8W8q1dY/found-some-cool-shirts.html</link><author>noreply@blogger.com (RetroWebDev)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp1.blogger.com/_SkWj5MUulj4/SIniaTGJVUI/AAAAAAAAAB8/0XKPBuvubAo/s72-c/end_big-oil.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://retrowebdev.blogspot.com/2008/07/found-some-cool-shirts.html</feedburner:origLink></item></channel></rss>

