<?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-32523677</atom:id><lastBuildDate>Sun, 27 Nov 2011 23:50:35 +0000</lastBuildDate><category>articles</category><category>yahoo</category><category>technology</category><category>tools</category><category>javascript</category><category>funny</category><category>news</category><category>comedy</category><category>bugs</category><category>bug</category><category>development</category><category>salad</category><category>kitchens</category><category>hosting</category><category>social</category><category>projects</category><category>youtube</category><category>solutions</category><category>api</category><category>mssql</category><category>firefox</category><category>social bookmarking</category><category>ibm</category><category>windows</category><category>kitchens direct</category><category>streetview</category><category>search engine optimization</category><category>code</category><category>work</category><category>database</category><category>asp</category><category>facebook</category><category>xml</category><category>iis</category><category>slug</category><category>professional webdesign</category><category>php</category><category>ajax</category><category>security</category><category>programming</category><category>april fool</category><category>asda</category><category>blog</category><category>ie</category><category>seo</category><category>jquery</category><category>sql</category><category>microsoft</category><category>marketing</category><category>standards</category><category>fun</category><category>lab</category><category>maps</category><category>plugins</category><category>tweaks</category><category>google</category><title>Fyneworks</title><description>A blog dedicated to web design, development and search engine optimisation.</description><link>http://fyneworks.blogspot.com/</link><managingEditor>noreply@blogger.com (Diego)</managingEditor><generator>Blogger</generator><openSearch:totalResults>73</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/FyneworksBlog" /><feedburner:info uri="fyneworksblog" /><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-32523677.post-6331762023862847701</guid><pubDate>Thu, 18 Feb 2010 12:13:00 +0000</pubDate><atom:updated>2010-02-18T12:21:35.721Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">solutions</category><category domain="http://www.blogger.com/atom/ns#">windows</category><category domain="http://www.blogger.com/atom/ns#">tweaks</category><title>Network Discovery will not turn on in Windows 7 (Solution)</title><description>&lt;span class="Apple-style-span" style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; color: rgb(50, 50, 50); "&gt;&lt;div&gt;After using &lt;a href="http://www.liutilities.com/"&gt;Uniblue&lt;/a&gt;'s &lt;a href="http://www.liutilities.com/products/speedupmypc/"&gt;SpeedupMyPc 2009&lt;/a&gt; to optimize my installation of Windows I was no longer able to access computers on my HomeGroup and WorkGroup networks. This is because the software had disabled all the services required to access computers on a network.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're having the same problem - for whatever reason - here is how you can fix it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Go through this list and make sure that all of these thinks are enabled and started:&lt;/div&gt;&lt;ul&gt;&lt;li style="font: normal normal normal 10pt/normal verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; "&gt;IP version 6 is enabled&lt;/li&gt;&lt;li style="font: normal normal normal 10pt/normal verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; "&gt;DNS Client service started and on automatic&lt;/li&gt;&lt;li style="font: normal normal normal 10pt/normal verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; "&gt;SSDP Discovery service started and on automatic&lt;/li&gt;&lt;li style="font: normal normal normal 10pt/normal verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; "&gt;UPnP Device Host service started and on automatic&lt;/li&gt;&lt;li style="font: normal normal normal 10pt/normal verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; "&gt;Function Discovery Resource Publication service started and on automatic&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;...and there you go!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;NB.: &lt;b&gt;How to manage services - &lt;span class="Apple-style-span" style="font-weight: normal; "&gt;To manage Windows services on your computer (eg.: check that they are enabled) just &lt;b&gt;Right-click&lt;/b&gt; on the &lt;b&gt;My Computer&lt;/b&gt; icon on your desktop and click on &lt;b&gt;Manage&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-6331762023862847701?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/vVJHmRR9opU/network-discovery-will-not-turn-on-in.html</link><author>noreply@blogger.com (Diego)</author><thr:total>3</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2010/02/network-discovery-will-not-turn-on-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-7370567555616798942</guid><pubDate>Fri, 08 May 2009 10:27:00 +0000</pubDate><atom:updated>2009-05-08T11:50:57.827+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sql</category><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">mssql</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><category domain="http://www.blogger.com/atom/ns#">database</category><title>How to restore a SQL Server database marked as "suspect"</title><description>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;You've probably got to this page because you received the following error message:&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;Server: Msg &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;926&lt;/span&gt;, Level 14, State 1, Line 1&lt;br /&gt;Database 'DatabaseName' cannot be opened. It has been &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;marked SUSPECT&lt;/span&gt; by recovery. See the SQL Server errorlog for more information.&lt;/span&gt;&lt;/blockquote&gt;A database can be ma&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;rked suspect for one of the following reasons:&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;If one or more database files are not available.&lt;/li&gt;&lt;li&gt;If the entire database is not available.&lt;/li&gt;&lt;li&gt;If one or more database files are corrupted.&lt;/li&gt;&lt;li&gt;If a database resource is being held by the operating system.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; "&gt;&lt;/span&gt;Luckily, there are a couple of ways to fix this problem.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;FIX 1&lt;/span&gt;: &lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; "&gt;You can use the sp_resetstatus stored procedure&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;sp_resetstatus 'DatabaseName'&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;FIX 2&lt;/span&gt;: You cna correct the database status manually&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;SP_CONFIGURE 'ALLOW UPDATES', 1&lt;/div&gt;&lt;div&gt;GO&lt;/div&gt;&lt;div&gt;RECONFIGURE WITH OVERRIDE&lt;/div&gt;&lt;div&gt;GO&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UPDATE sysdatabases SET status = status &amp;amp; ~256 WHERE name = 'DatabaseName'&lt;/div&gt;&lt;div&gt;GO&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SP_CONFIGURE 'ALLOW UPDATES', 0&lt;/div&gt;&lt;div&gt;GO&lt;/div&gt;&lt;div&gt;RECONFIGURE WITH OVERRIDE&lt;/div&gt;&lt;div&gt;GO&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-7370567555616798942?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/kdljTrzofUM/how-to-restore-sql-server-database.html</link><author>noreply@blogger.com (Diego)</author><thr:total>1</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2009/05/how-to-restore-sql-server-database.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-1891532388962022172</guid><pubDate>Tue, 11 Nov 2008 19:37:00 +0000</pubDate><atom:updated>2008-11-11T19:49:08.339Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><title>"Could not launch Fireworks" Error Fix</title><description>This error was driving me insane and it took me over a week to find the solution on the web so I thought I'd post it here for future reference - and perhaps it will help others with the same problem.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Product affected&lt;/span&gt;: &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Fireworks 8&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Error messages&lt;/span&gt;: &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;Could not launch Fireworks. An internal error occurred&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Possible solutions...&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Repair the Fireworks installation (install over it)&lt;/li&gt;&lt;li&gt;A fresh installation - ie.: completelly unistall Fireworks then install it again&lt;/li&gt;&lt;li&gt;Disable plugins (C:\Program Files\Macromedia\Fireworks 8\Plug-Ins\)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;If none of those things have worked for you (or if you can't be bothered to try doing things the proper way), try this:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Open Windows Explorer&lt;/li&gt;&lt;li&gt;Go to C:\Program Files\QuickTime&lt;/li&gt;&lt;li&gt;Rename folder "QTSystem" to "QTSystem-OLD"&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The problem is that for some crazy reason, Quicktime/iTunes interferre with Fireworks installation. Renaming that folder doesn't stop you using Quicktime, but it disables some of its over-the-top self-updating features - which you don't need.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Better still, you could completely uninstall Quicktime and download a lighter, faster, no-nonsense alternative, the excellent &lt;a href="http://www.codecguide.com/qt_lite.htm"&gt;QT Lite&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-1891532388962022172?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/EXPXGxNq71M/could-not-launch-fireworks-error-fix.html</link><author>noreply@blogger.com (Diego)</author><thr:total>8</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/11/could-not-launch-fireworks-error-fix.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-1731073999757534294</guid><pubDate>Thu, 16 Oct 2008 10:10:00 +0000</pubDate><atom:updated>2008-10-16T11:17:45.753+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">windows</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><title>Fix for Windows XP Error: The user has not been granted the requested logon type at this computer</title><description>So you have 2 computers on a network and when you tried to access the shared folders/files in one of them you receive the following message:&lt;br /&gt;&lt;blockquote style="font-weight: bold; color: rgb(255, 0, 0);"&gt;The user has not been granted the requested logon type at this computer&lt;/blockquote&gt;Well, here is your fix:&lt;br /&gt;&lt;br /&gt;1. Download &lt;a href="http://go.microsoft.com/fwlink/?LinkId=4544"&gt;Windows Server 2003 Resource Kit Tools&lt;/a&gt; from &lt;a href="http://go.microsoft.com/fwlink/?LinkId=4544"&gt;this link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. Install the program&lt;br /&gt;&lt;br /&gt;3. Go to: Start, All Programs, Windows Resource Kit Tools, Command Shell&lt;br /&gt;&lt;br /&gt;4. Type the following commands (PS: case sensitive, press enter after each line)&lt;br /&gt;&lt;blockquote&gt;net user guest /active:yes&lt;br /&gt;ntrights +r SeNetworkLogonRight -u Guest&lt;br /&gt;ntrights -r SeDenyNetworkLogonRight -u Guest&lt;br /&gt;&lt;/blockquote&gt;5. Job done, now go make yourself a cuppa!&lt;br /&gt;&lt;br /&gt;This solution applies to Windows XP Professional and Windows XP Home - I don't know about the rest but it's worth a try...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Last but not least, here's the boring &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;DISCLAIMER&lt;/span&gt;: It's your problem if you mess things up. Don't download anything or follow any of the suggestions on this article unless you know what you're doing and accept full responsibility for your actions.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-1731073999757534294?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/Vw3m5wY7Epw/fix-for-windows-xp-error-user-has-not.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/10/fix-for-windows-xp-error-user-has-not.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-7715957544028942971</guid><pubDate>Tue, 30 Sep 2008 12:19:00 +0000</pubDate><atom:updated>2008-10-02T09:55:31.924+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">plugins</category><category domain="http://www.blogger.com/atom/ns#">jquery</category><title>jQuery Multiple File Upload Plugin v1.3</title><description>&lt;div&gt;Current version: &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;1.3&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Release date: 30th September 2008&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://jquery-multifile-plugin.googlecode.com/svn/trunk/jquery.MultiFile.js"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Download current version&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.fyneworks.com/jquery/multiple-file-upload/"&gt;Official Website/Documentation&lt;/a&gt; - &lt;a href="http://code.google.com/p/jquery-multifile-plugin/"&gt;Google Code Project Home&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-7715957544028942971?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/y_UpSh3U6fA/jquery-multiple-file-upload-plugin-v13.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/09/jquery-multiple-file-upload-plugin-v13.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-1380903538379686945</guid><pubDate>Mon, 22 Sep 2008 13:06:00 +0000</pubDate><atom:updated>2008-09-22T14:12:01.339+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mssql</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><category domain="http://www.blogger.com/atom/ns#">database</category><title>Limit decimal places of MSSQL Money DataType</title><description>So you want to store currency values in MSSQL but you keep getting rounding errors because the money datatype uses 4 decimal places? Not to worry! You can limit this to 2 decimal places! And here's how...&lt;br /&gt;&lt;div class="answerBody quoted" id="EchoTopic"&gt;&lt;br /&gt;&lt;blockquote&gt;Use the data type &lt;span style="font-weight: bold;"&gt;Numeric(19,&lt;span style="color: rgb(0, 0, 102);"&gt;2&lt;/span&gt;)&lt;/span&gt;  instead of &lt;span style="font-weight: bold;"&gt;Money&lt;/span&gt; - which is the equivalent of Numeric(19,&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;4&lt;/span&gt;). Let's not forget that the Money data type is obsolete so Numeric is the best practice solution anyway.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;To make things even easier, you can create a UserDataType for the above so you only have to remember a name - whatever you decide to call it.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-1380903538379686945?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/rgKV0hS4SGQ/limit-decimal-places-of-mssql-money.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/09/limit-decimal-places-of-mssql-money.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-6314039621211371509</guid><pubDate>Wed, 13 Aug 2008 14:59:00 +0000</pubDate><atom:updated>2008-08-13T16:05:42.045+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">asp</category><title>Convert binary data to plain text</title><description>&lt;div class="syntax"&gt;&lt;div class="asp"  style="font-family:monospace;"&gt;Here is a neat function I wrote to convert binary data to plain text in ASP/VBScript using a virtual recordset.
&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;div class="syntax"&gt;&lt;div class="asp" face="monospace"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="kw2"&gt;&lt;%&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="co1"&gt;'Convert byte array into a string with ADODB.Recordset&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="kw2"&gt;Function&lt;/span&gt; BinaryToText&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span class="kw1"&gt;ByVal&lt;/span&gt; vByteArray&lt;span class="br0"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li2"&gt;&lt;div class="de2"&gt;    &lt;span class="kw1"&gt;Dim&lt;/span&gt; oRS&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;    Const adLongVarChar = &lt;span class="nu0"&gt;201&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li2"&gt;&lt;div class="de2"&gt;    &lt;span class="kw1"&gt;Set&lt;/span&gt; oRS = &lt;span class="kw3"&gt;CreateObject&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span class="st0"&gt;"ADODB.Recordset"&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;    oRS.&lt;span class="kw3"&gt;Fields&lt;/span&gt;.&lt;span class="me1"&gt;Append&lt;/span&gt; &lt;span class="st0"&gt;"temp"&lt;/span&gt;, adLongVarChar, LenB&lt;span class="br0"&gt;(&lt;/span&gt;vByteArray&lt;span class="br0"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li2"&gt;&lt;div class="de2"&gt;    oRS.&lt;span class="kw3"&gt;Open&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;    oRS.&lt;span class="me1"&gt;AddNew&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li2"&gt;&lt;div class="de2"&gt;    oRS&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span class="st0"&gt;"temp"&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;.&lt;span class="me1"&gt;AppendChunk&lt;/span&gt; vByteArray&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;    oRS.&lt;span class="me1"&gt;Update&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li2"&gt;&lt;div class="de2"&gt;    BinaryToText = oRS&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span class="st0"&gt;"temp"&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;    oRS.&lt;span class="kw3"&gt;Close&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li2"&gt;&lt;div class="de2"&gt;    &lt;span class="kw1"&gt;Set&lt;/span&gt; oRS = &lt;span class="kw2"&gt;Nothing&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="kw1"&gt;End&lt;/span&gt; &lt;span class="kw2"&gt;Function&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="kw2"&gt;%&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-6314039621211371509?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/KOTdKO3UA6w/convert-binary-data-to-plain-text.html</link><author>noreply@blogger.com (Diego)</author><thr:total>1</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/08/convert-binary-data-to-plain-text.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-4467017593529951233</guid><pubDate>Sat, 09 Aug 2008 14:13:00 +0000</pubDate><atom:updated>2010-03-19T11:00:35.904Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">api</category><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">programming</category><title>TinyURL API</title><description>Straight to the point, here's what you need:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;API Url&lt;/span&gt;: http://tinyurl.com/api-create.php&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Required parameter&lt;/span&gt;: url (obviously)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example&lt;/span&gt;:&lt;br /&gt;QUERY - http://tinyurl.com/api-create.php?url=http://www.fyneworks.com/&lt;br /&gt;RESPONSE - http://tinyurl.com/6ddy7a&lt;br /&gt;&lt;br /&gt;I'm posting about this because amazingly the &lt;span style="font-style: italic;"&gt;TinyURL&lt;/span&gt; website has no information what-so-ever regarding this API. It was thanks to &lt;a href="http://www.scripting.com/stories/2007/06/27/tinyurlHasAnApi.html"&gt;Dave Winer&lt;/a&gt; that I found the &lt;span style="font-weight: bold;"&gt;TinyURL API&lt;/span&gt; url so I thought I'd spread the word in case, like me, you want to use &lt;span style="font-style: italic;"&gt;TinyURL&lt;/span&gt;'s for user-generated links on your websites.&lt;br /&gt;&lt;br /&gt;If you're unsure how to use this, here's a little function in PHP you can use to get started:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TinyURL API PHP Function&lt;/span&gt;&lt;br /&gt;&lt;div class="php php"  style="border: 1px solid rgb(208, 208, 208); color: rgb(0, 0, 102); background-color: rgb(240, 240, 240);font-family:monospace;"&gt;&lt;ol&gt;&lt;li   style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div  style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li   style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div  style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;function&lt;/span&gt; TinyURL&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$u&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li   style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div  style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt; &lt;span style="color: rgb(177, 177, 0);"&gt;return&lt;/span&gt; &lt;a style="color: rgb(0, 0, 96);" href="http://www.php.net/file_get_contents"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style=""&gt;'http://tinyurl.com/api-create.php?url='&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$u&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li   style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div  style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;&lt;div  style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sample usage&lt;/span&gt;:&lt;br /&gt;&lt;div class="php php"  style="border: 1px solid rgb(208, 208, 208); color: rgb(0, 0, 102); background-color: rgb(240, 240, 240);font-family:monospace;"&gt;&lt;ol&gt;&lt;li   style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div  style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li   style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div  style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style=""&gt;'http://www.fyneworks.com/'&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li   style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div  style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$tiny&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; TinyURL&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div face="monospace" style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;"&gt;&lt;a style="color: rgb(0, 0, 96);" href="http://www.php.net/echo"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;echo&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style=""&gt;'The TinyURL of "'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;.&lt;/span&gt;&lt;span style=""&gt;'" is "'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$tiny&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;.&lt;/span&gt;&lt;span style=""&gt;'"'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;&lt;div face="monospace" style="margin: 0pt; padding: 0pt; font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;"&gt;&lt;a style="color: rgb(0, 0, 96);" href="http://www.php.net/die"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;die&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li   style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);font-family:'Courier New',Courier,monospace;font-size:130%;"&gt;&lt;div  style="margin: 0pt; padding: 0pt;  font-weight: normal; font-style: normal; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit;font-family:monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-4467017593529951233?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/2k1qI5ricyc/tiny-url-api.html</link><author>noreply@blogger.com (Diego)</author><thr:total>3</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/08/tiny-url-api.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-6852769246163323796</guid><pubDate>Sun, 03 Aug 2008 15:19:00 +0000</pubDate><atom:updated>2008-08-03T16:21:01.293+01:00</atom:updated><title>Is Cuil a threat to Google?</title><description>I'm not convinced.&lt;br /&gt;&lt;br /&gt;- I searched for "london dry cleaners" and I saw results from Lancaster on page 2.&lt;br /&gt;- I searched for "london christmas trees", my site was 2nd, after an American website (I'm in London so the result is irrelevant to me). Worst of all, the image displayed for result #3 was the logo of an organization the company belong's to. Terrible miss-association.&lt;br /&gt;&lt;br /&gt;Not good enough. Not by a long shot.&lt;br /&gt;&lt;br /&gt;It's just a gimmick. It doesn't have the quality to compete with Google. there's nothing to indicate Cuil will succeed where Microsoft and Yahoo have failed for so long.&lt;br /&gt;&lt;br /&gt;So, in answer to my question, "is Cuil a threat to Google?": Nope. Not in the slightest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-6852769246163323796?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/7MUfNSJ82tk/is-cuil-threat-to-google.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/08/is-cuil-threat-to-google.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-1931620997451273929</guid><pubDate>Sat, 02 Aug 2008 15:25:00 +0000</pubDate><atom:updated>2008-08-02T18:10:01.201+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">facebook</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Social Networking and Advertising</title><description>The &lt;a href="http://new.facebook.com/"&gt;new Facebook&lt;/a&gt; is out this week (still in beta but looking very good indeed).&lt;br /&gt;&lt;br /&gt;Facebook ads have always been 'out of the way', so much so some of my friends didn't even realise any ads were being displayed what-so-ever. This is of course a major issue when advertising is your main source of income. Which is why Mark Zuckerberg and his crew have made some much needed room for ads in the new design. The ads are now much more prominent, on the top-right corner of user profiles, applications, pages, etc... This is also a location where many users intuitively associate with advertising.&lt;br /&gt;&lt;br /&gt;Google has dominated the online advertising market forever (or so it seems) but Facebook's ever improving advertising methods may just be able to make a dent in Google's reign. This is essentially down to the fact that Facebook displays ads based on its users personal data.&lt;br /&gt;&lt;br /&gt;Facebook displays ads which are relevant to your location, age, nationality/ethnicity, interests and social activities. This will in many cases be more appealing to advertisers than the conventions keyword based advertising methods because it enables the advertiser to focus on a specific gender, age group or demographics and reduces the amount of money wasted on clicks by individuals who don't (and never would) convert into leads/sales.&lt;br /&gt;&lt;br /&gt;Facebook's ever growing community has become a new ground in which companies can market their services in a way that has never been possible. The big guys at Google know this, which is why Google are putting so much energy in establishing themselves in the social networking market.&lt;br /&gt;&lt;br /&gt;Google has been involved in social networking for a while now, ever since they bought &lt;a href="http://www.orkut.com"&gt;Orkut&lt;/a&gt; a few years back. Then they created the &lt;a href="http://code.google.com/apis/opensocial/"&gt;OpenSocial platform&lt;/a&gt;. They've recently bought &lt;a href="http://news.cnet.com/Google-buys-social-networking-service/2100-1038_3-5704496.html"&gt;Dodgeball&lt;/a&gt; (dodgeball.com) and &lt;a href="http://googlesystem.blogspot.com/2007/09/google-buys-zingku-mobile-social.html"&gt;Zingku&lt;/a&gt; (zingku.com). Also, if the rumours are to be believed, &lt;a href="http://www.techcrunch.com/2008/02/06/rumor-is-google-about-to-buy-bebo-for-1-billion-to-15-billion-or-will-it-be-myspace/"&gt;Google tried to acquire Bebo earlier this year&lt;/a&gt;, only to be beaten by AOL.&lt;br /&gt;&lt;br /&gt;The next 12 months should be very interesting indeed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-1931620997451273929?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/nQEU1D7wbEA/social-networking-and-advertising.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/08/social-networking-and-advertising.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-1494399456471361624</guid><pubDate>Wed, 16 Jul 2008 16:42:00 +0000</pubDate><atom:updated>2008-07-16T17:47:25.907+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">marketing</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Google's Viral Marketing</title><description>Here is a great example of how even the biggest names in today's world are making the most of viral marketing. Google published this video of as soon as it was available...&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span&gt;David Drummond, Google's Senior Vice President of Corporate Development and Chief Legal Officer, testifies before the House Judiciary Committee Antitrust Task Force&lt;/span&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.youtube.com/watch?v=3DVe3SdSe3U"&gt;Watch now&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;...great way to stop bad rumours on their tracks.&lt;br /&gt;&lt;br /&gt;PS.: Isn't it ironic how Microsoft are accusing Google of holding a monopoly?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-1494399456471361624?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/gWD3b3RnqXw/googles-viral-marketing.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/07/googles-viral-marketing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-2312982702412497785</guid><pubDate>Mon, 07 Jul 2008 23:33:00 +0000</pubDate><atom:updated>2008-10-16T11:54:24.517+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">windows</category><category domain="http://www.blogger.com/atom/ns#">ibm</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><title>SP3 breaks Wireless Connection Manager in IBM Thinkpads (Lenovo)</title><description>I knew SP3 was going to be a nightmare. I knew it was going to make more problems than it was going to solve. That is why I waited months to install this shameful 3rd package of bug fixes and security upgrades to patch Microsoft's poor quality Windows XP OS.&lt;br /&gt;&lt;br /&gt;I finally decided to install SP3 and guess what? My Wi-fi card stopped working. Ha ha...&lt;br /&gt;&lt;br /&gt;After much search around and digging quite deep I found this very useful post from a chap who had exactly the same problem: &lt;a href="http://blogs.microsoft.co.il/blogs/joe/archive/2008/05/22/problems-with-wireless-adapter-on-windows-xp-sp3.aspx"&gt;Problems with Wireless Adapter on Windows XP SP3&lt;/a&gt;. On a side note, the author has an &lt;a title="IBM ThinkPad T43 product page (new window)" href="http://www-307.ibm.com/pc/support/site.wss/MIGR-58315.html" target="_blank"&gt;IBM ThinkPad T43&lt;/a&gt; while I have an &lt;a href="http://www-307.ibm.com/pc/support/site.wss/MIGR-55042.html"&gt;IBM ThinkPad R50e&lt;/a&gt; but we both agree that IBM Lenovo laptops are wonderful machines and have never caused any trouble before.&lt;br /&gt;&lt;br /&gt;Anyway, as it turns out, the solution is...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;On your Desktop, right-click "My computer"&lt;/li&gt;&lt;li&gt;Click on "Manage"&lt;/li&gt;&lt;li&gt;Expand the tree node "Services and Applications"&lt;/li&gt;&lt;li&gt;Click on "Services"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Find the service "Extensible Authentication Protocol Service"&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Right-click &gt; Properties&lt;/li&gt;&lt;li&gt;Click on "Start" and...&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Change "Startup type" to "Automatic"&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Find the service "Network Access Protection Agent" and repeat steps 6, 7 and 8.&lt;/li&gt;&lt;/ol&gt;Et voila! Everything should work they way IBM intended it to before SP3 came along and screwed it up...&lt;br /&gt;&lt;br /&gt;Related links:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="Link to an external article (new window)" href="http://billpstudios.blogspot.com/2008/04/windows-xp-sp3-what-you-can-expect.html" target="_blank"&gt;Windows XP SP3, What You Can Expect&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Link to an external article (new window)" href="http://technet.microsoft.com/en-us/windowsvista/aa905073.aspx" target="_blank"&gt;Windows Vista Security and Data Protection Improvements&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/joe/archive/2008/05/22/problems-with-wireless-adapter-on-windows-xp-sp3.aspx"&gt;Problems with Wireless Adapter on Windows XP SP3&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-2312982702412497785?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/R18S05uNL7U/sp3-breaks-wireless-connection-manager.html</link><author>noreply@blogger.com (Diego)</author><thr:total>4</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/07/sp3-breaks-wireless-connection-manager.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-1852274360353833591</guid><pubDate>Wed, 02 Jul 2008 13:32:00 +0000</pubDate><atom:updated>2008-07-02T14:52:23.106+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">seo</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>SEO and Flash</title><description>According to &lt;a href="http://www.adobe.com/"&gt;Adobe&lt;/a&gt;, the big guns (&lt;a href="http://www.yahoo.com"&gt;big gun&lt;/a&gt;, &lt;a href="http://www.google.com"&gt;bigger gun&lt;/a&gt;) are going to improve their search engine capabilities to &lt;a href="http://www.macworld.com/article/134229/2008/06/googleyahooflash.html"&gt;index content within flash&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It sounds great that the SEs will now account for text and links in flash objects, but you'd have to be barking mad (or SEO challenged) to think this will make it OK to have all your content within a &lt;span style="font-weight: bold;"&gt;flash animation&lt;/span&gt;. That's right, "animation" - flash was never intended to be used as a fancy replacement for markup language. It's just a nasty desease that caught on. A plague if you like.... This may be a small step for Adobe, but it's not exactly a giant leap as far as SEO is concerned.&lt;br /&gt;&lt;br /&gt;What about those three very important little words? &lt;span style="font-weight: bold;"&gt;Density&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;prominance&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;weight&lt;/span&gt;. Even if text within flash animations are indexed by the search engines, flash does not have anything equivalent to the way markup language (HTML) is used to imply emphasis on certain sections of text. Semantics are deeply connected with SE's ranking algorithms (&lt;a href="http://www.seobook.com/archives/000657.shtml"&gt;Google have even confirmed this&lt;/a&gt;). So what chance will a blob of plain text (ie.: indexed flash animation) stand against a W3C standard coded semantic webpage?&lt;br /&gt;&lt;br /&gt;Only time will tell, but I know what I'll be doing on my websites...&lt;br /&gt;&lt;br /&gt;NB.: I'm only addressing this issue in terms of on-site SEO. I'm not talking about worldwide brands with flash websites - their SEO is so well established off-site (within the blogosphere and beyond) that a little extra text on their website wouldn't make any difference. But, if you're a high-street shop in fierce competition with 10 other websites trying to get just a little closer to the top ranking for your search phrase, on-site SEO might just be the deciding factor that puts you in the top 3 results ahead of all the "flash websites" on page 2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-1852274360353833591?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/t-5OiPwrN8c/seo-and-flash.html</link><author>noreply@blogger.com (Diego)</author><thr:total>1</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/07/seo-and-flash.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-4868122193707554762</guid><pubDate>Sun, 29 Jun 2008 12:27:00 +0000</pubDate><atom:updated>2008-06-29T14:38:38.702+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">kitchens direct</category><category domain="http://www.blogger.com/atom/ns#">kitchens</category><title>Kitchens Direct Cold Calling</title><description>Enough is enough. For the last couple of months I've had many calls from this number:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;0845 055 4454&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I picked up a couple of times but the call went dead. I did the obvious thing and Google'd it a few weeks ago, which took me to the brilliant website: "&lt;a href="http://whocallsme.com/"&gt;Who Calls Me&lt;/a&gt;". It's a simple system where people can log the phone numbers of cold callers and share it with others who may be unaware of the dangers or worried about a possible scam.&lt;br /&gt;&lt;br /&gt;When I first found it, the &lt;a href="http://whocallsme.com/Phone-Number.aspx/08450554454"&gt;08450554454&lt;/a&gt; page was quite short and had a few people claiming this number to be from &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Kitchens Direct&lt;/span&gt; (http://www.kitchensdirect.co.uk/). I was quite happy to  know who was calling me and wait for the next time they called so I could ask them not to call me again - which I did.&lt;br /&gt;&lt;br /&gt;A few weeks on and I was still getting calls (and ignoring them) so I went to their website and looked for a way to remove myself from their list. I found &lt;a href="http://www.kitchensdirect.co.uk/contactus/"&gt;nothing&lt;/a&gt; (this is obviously something they're not proud of). So again, I resorted to my good old friend Google.  I went back to the &lt;a href="http://whocallsme.com/Phone-Number.aspx/08450554454/7"&gt;Who Calls Me log&lt;/a&gt; and found that on page 7, "Sarah" was kind enough to &lt;a href="http://www.kitchensdirect.co.uk/contactus/unsubscribe.php"&gt;this page&lt;/a&gt;, where supposedly I would be able to remove myself from their list. Guess what? This didn't work. And I wasn't alone:&lt;br /&gt;&lt;blockquote style="color: rgb(153, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;3 times over the last few months i have asked these nerds to take my number off their database but still i am getting calls. with each call they make i call watchdog. could we take them to court for harrasement?&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote style="color: rgb(153, 51, 0);"&gt;&lt;span style="font-size:85%;"&gt;They will keep ringing&lt;br /&gt;They dont seem to understand GO AWAY !!!&lt;br /&gt;Anyone else hate kitchens direct ?&lt;/span&gt;&lt;/blockquote&gt;After a while, it seems users started to get pretty annoyed - and even post their own methods to stop &lt;span style="font-weight: bold;"&gt;Kitchens Direct&lt;/span&gt; from calling you:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(102, 51, 0);"&gt;If they call again ask them to remove your details from their data base. If they call again after that tell them you have requested for your details to be removed and as such they are now in breach of the data protection act for calling you. Tell them you will now report them for this.  Trust me they wont ring again. If they are just hanging up repeat this process on the website. I hope this helps&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);"&gt;Kitchens 'Crap Ones' Direct call, 08450554454 on my company mobile!!&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);"&gt;LOOK KITCHENS DIRECT, IF WE WANTED YOUR KITCHENS WE WOULD CALL YOU!! ALL YOU ARE DOING IN CHEEEEZING PEOPLE OF COLD CALLING - SO SOD OFF!!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Amazingly&lt;/span&gt;, in the past few weeks since requesting not to be called again verbally over the phone and via their website, I've received &lt;span style="font-weight: bold;"&gt;calls every other day&lt;/span&gt;, sometimes &lt;span style="font-weight: bold;"&gt;several calls on the same day&lt;/span&gt;, and I've had many &lt;span style="font-weight: bold;"&gt;late evening calls&lt;/span&gt; at around 8pm and a few calls &lt;span style="font-weight: bold;"&gt;as late as&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;10:30pm&lt;/span&gt; from this number. Today though, I've had enough. It's &lt;span style="font-weight: bold;"&gt;1:30pm on Sunday June 29th&lt;/span&gt; (Glastonbury Weekend) and they have just called me again.&lt;br /&gt;&lt;br /&gt;I couldn't be bothered before, but now I want say that &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Kitchens Direct&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;are the lowest of the low&lt;/span&gt; in my opinion and have resorted to pathetic immoral methods of marketing to drum up some business. It's sad to see that a company of their size have yet to catch up with the the wonders of &lt;span style="font-weight: bold;"&gt;online marketing&lt;/span&gt;. They are obviously blindly unaware of how efficient it can be, as well as how damaging it may be to their brand.&lt;br /&gt;&lt;br /&gt;Here's an example: Google "&lt;a href="http://www.google.co.uk/search?q=crest+mouthwash&amp;amp;"&gt;Crest Mounthwash&lt;/a&gt;" and you'll see that results #1 and #2 of the organic search point to the company website (which is very nice), but result #3 is a different story. "Crest Pro Health Mouthwash Turning Customers Teeth Brown" is not the best of marketing. Whatever effort Crest put into their marketing to make me want to Google their product crumbles miserably because of a customer's disatisfaction with their product. Here's the screenshot if you don't believe me:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_4-T-f0yG66E/SGeGmxTT9AI/AAAAAAAAAWM/C5T5lOxcd1c/s1600-h/kitchens-direct.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_4-T-f0yG66E/SGeGmxTT9AI/AAAAAAAAAWM/C5T5lOxcd1c/s320/kitchens-direct.png" alt="" id="BLOGGER_PHOTO_ID_5217286693959496706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Here's a free lesson in marketing to &lt;span style="font-weight: bold;"&gt;Kitchens Direct&lt;/span&gt;:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;The growth of blogs in the last couple of years have given a voice to individuals to express their opinions side by side with £million brands. These individuals are called "speakers" and their blogs, along with the support of other internet users who share their beliefs, have the power to damage a company's brand (beyond repair in some cases).&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;And the thing is, speakers don't set out to cause damage. I've seen some research somewhere that shows around 90% speakers will first contact the relevant company and visit their website in the hope of resolving the issue. Unfortunatelly, many large companies such as &lt;span style="font-weight: bold;"&gt;Kitchens Direct&lt;/span&gt; are indifferent to their customer's concerns and their voices are drowned out in endless hours on the phone to call centres. Worse still is the fact that some of these have not caught up with time and don't realise that these unsatisfied customer have a new medium in which their voice is heard - and just as loudly as the company's own marketing - the internet.&lt;br /&gt;&lt;br /&gt;Had &lt;span style="font-weight: bold;"&gt;Kitchens Direct&lt;/span&gt; stopped calling me when I asked, I would not have been pushed to the point where I'd take 1 hour of my holy day of rest to write this. More importantly, had they taken the time to review their marketing strategy and considered the side-effects about their called calling, they would have found this page with almost &lt;a href="http://whocallsme.com/Phone-Number.aspx/08450554454"&gt;200 potential customers&lt;/a&gt; ranting about them.&lt;br /&gt;&lt;br /&gt;Related links:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://whocallsme.com/Phone-Number.aspx/08450554454"&gt;"Who Calls Me" page for 0845 055 4454&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kitchensdirect.co.uk/contactus/unsubscribe.php"&gt;Kitchens Direct Unsubscribe Page&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kitchensdirect.co.uk/"&gt;Kitchens Direct Website&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-4868122193707554762?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/p4JZsulxbFs/kitchens-direct-cold-calling.html</link><author>noreply@blogger.com (Diego)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp3.blogger.com/_4-T-f0yG66E/SGeGmxTT9AI/AAAAAAAAAWM/C5T5lOxcd1c/s72-c/kitchens-direct.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/06/kitchens-direct-cold-calling.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-4763487996705355624</guid><pubDate>Tue, 24 Jun 2008 08:20:00 +0000</pubDate><atom:updated>2008-08-19T17:49:19.311+01:00</atom:updated><title>British Pound Sign Encoding Revisited</title><description>Quite a while ago I posted some information about character encoding and a few different methods to avoid those annoying problems with the British pound sterling (£) and euro signs (€). I was positive that I had solved this problem once and for all and I would never have to tackle it again - I was wrong...&lt;br /&gt;&lt;br /&gt;All the information on my previous post is accurate and works. What I didn't know at the time is that there is a very annoying un-documented bug in the Javascript encodeURI/decodeURI functions that turns this "£" into this "Â£".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;THE PROBLEM&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;If you look at the &lt;a href="http://www.ramsch.org/martin/uni/fmi-hp/iso8859-1.html"&gt;UTF-8/Latin-1 (AKA ISO-8859-1) Character Table&lt;/a&gt; you will find that the decimal code for the British pound sterling sign is 163 - and the hexadecimal code is A3.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;£ = %A3&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;However, this is not the case in (all) encoding/decoding functions in Javascript...&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;encodeURI/encodeURIComponent&lt;/span&gt;&lt;br /&gt;Encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters &lt;span style="font-weight: bold;"&gt;by one, two, or three escape sequences&lt;/span&gt; representing the UTF-8 encoding of the character&lt;br /&gt;&lt;/blockquote&gt;Which means, in order to encode our beloved pound sign, Javascript uses 2 characters. This is where the annoying "Â" comes in...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;£ = &lt;span style="color: rgb(255, 0, 0);"&gt;%C2&lt;/span&gt;%A3&lt;/div&gt;&lt;br /&gt;This isn't a bug. The encoding functions are doing exactly what they should be doing (click on the code to test it):&lt;br /&gt;&lt;pre class="code"&gt;&lt;code onclick="alert(eval(this.innerHTML))"&gt;alert('Start -&gt; Encoded -&gt; Decoded:\n'+&lt;br /&gt;['£', encodeURIComponent('£'),&lt;br /&gt;decodeURIComponent(encodeURIComponent('£'))&lt;br /&gt;].join(' -&gt; ')+'');&lt;/code&gt;&lt;/pre&gt;The problem only emerges when you retrieve the submitted data on the server&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;and the 2-character escape sequence "%C2%A3" is decoded as two separate characters "Â" and "£".&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;£&lt;/span&gt; =Encoded by client=&gt;&lt;span style="font-weight: bold;"&gt; %C2%A3&lt;/span&gt; =Decoded by server=&gt; &lt;span style="font-weight: bold;"&gt;Â£&lt;/span&gt; (&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;wrong&lt;/span&gt;)&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;THE PROBLEM FOR ASP USERS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The problem is even worse for &lt;span style="font-weight: bold;"&gt;ASP&lt;/span&gt; users because &lt;span style="font-weight: bold;"&gt;Request.QueryString&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Request.Form&lt;/span&gt; automatically decodes the submitted data automatically using &lt;span style="font-weight: bold;"&gt;UTF-16&lt;/span&gt;, which holds more characters and does not require multiple escape sequences. In order to work around this you have to &lt;span style="font-style: italic;"&gt;manually&lt;/span&gt; go through the raw data and extract each variable (for both Request.QueryString and Request.Form).&lt;br /&gt;&lt;br /&gt;It's quite simple, but I don't have time talk about it right now. I do have a solution which I use in all my projects and I can put a tutorial together if I get any requests. For now though, let's just say it involves using a Dictionary object and creating a sort of "virtual Request.QueryString" and a "virtual Request.Form" collection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;THE SOLUTION&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The only way to solve this problem is to do resolve the conflict between ASCII and UTF-8 somewhere along the line... which will depend completely on the operation of your system. In general terms, you must do one of the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;On the &lt;/span&gt;&lt;span style="font-style: italic;"&gt;server &lt;/span&gt;&lt;span style="font-style: italic;"&gt;- &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Intercept &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;the input&lt;/span&gt; from the Ajax request and resolve the conflict before saving the data into your database.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OR&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;On the server - &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Intercept the output&lt;/span&gt; of your server-side code and resolve all known ambiguities. ie.: Find every instance of %C2%A3 and replace it with the ASCII equivalent (merely %A3)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OR...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;On the client - &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Replace symbols&lt;/span&gt; not supported by UTF-8 with their HTML/ASCII code &lt;span style="font-weight: bold;"&gt;before&lt;/span&gt; running the string through encodeURI/encodeURIComponent.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OR...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;On the client - &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Replace two/three escape sequences&lt;/span&gt; with their ASCII equivalents &lt;span style="font-weight: bold;"&gt;after&lt;/span&gt; running the string through encodeURI/encodeURIComponent.&lt;/li&gt;&lt;/ul&gt;Ok, that's the plan. But how do you go about building it? I'll show you...&lt;br /&gt;&lt;br /&gt;First, we need to consider the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Your solution will only be as reliable as the number of characters you specify. ie.: It's no good writing a function to replace the pound sign - what about all the other symbols?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Server-side UTF Encoding/Decoding functions won't work. They all use UTF-16 and you'll end up with the exact same problem of an extra weird character because they do not treat it as a control character. There are countless URLDecode functions for floating out there which revert text encoded with ASP's Server.URLEncode, but &lt;span style="font-weight: bold;"&gt;these will not work&lt;/span&gt; for text encoded with Javascript's encodeURI/encodeURIComponent. Same goes for PHP, Cold Fusion, etc...&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A client-side (Javascript based) solution will proprably be slower and trickier to implement. But most importantly, it won't be sufficient because you must always perform these operations server-side anyway in case the client-script failed.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;So, we need a &lt;span style="font-weight: bold;"&gt;server-side function&lt;/span&gt; that is &lt;span style="font-weight: bold;"&gt;dynamic&lt;/span&gt; (not specific to a few characters) and will recognise &lt;span style="font-weight: bold;"&gt;double escape sequences as a single character&lt;/span&gt;. Many cups of coffee and hours later, I came up with this:&lt;br /&gt;&lt;pre class="code"&gt;&lt;code class="asp"&gt;' A server-side inverse to Javascript encodeURI/encodeURIComponent&lt;br /&gt;Function UTF8Decode(s)&lt;br /&gt;s = Replace(s, "+", " ")&lt;br /&gt;Dim re, rm, m, rp&lt;br /&gt;Set re = new RegExp&lt;br /&gt;re.Global = True&lt;br /&gt;re.IgnoreCase = True&lt;br /&gt;re.Pattern = "(%C[23])?%[0-9AB][0-9A-F]"&lt;br /&gt;Set rm = re.Execute(s)&lt;br /&gt;For Each m In rm&lt;br /&gt;If Len(m)=3 Or Left(m,3)="%C2" Then&lt;br /&gt;s = Replace(s, m, Chr("&amp;amp;H" &amp;amp; Right(m,2)))&lt;br /&gt;Else&lt;br /&gt;rp = m : m = UCase(m)&lt;br /&gt;m = Replace(m, "%C3%8", "C")&lt;br /&gt;m = Replace(m, "%C3%9", "D")&lt;br /&gt;m = Replace(m, "%C3%A", "E")&lt;br /&gt;m = Replace(m, "%C3%B", "F")&lt;br /&gt;s = Replace(s, rp, Chr("&amp;amp;H" &amp;amp; m))&lt;br /&gt;End If&lt;br /&gt;Next&lt;br /&gt;UTF8Decode = s&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;If for whatever reason you need a client-side version of this, just take my VBScript as a basis for your logic and knock yourself out, although I strongly recommend a server-side solution.&lt;br /&gt;&lt;br /&gt;Here are some other useful links I came across while writing this article:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.vortex.prodigynet.co.uk/misc/ascii_conv.html"&gt;Javascript ASCII Converter&lt;/a&gt; - download source: &lt;a href="http://www.vortex.prodigynet.co.uk/misc/ascii_conv.js"&gt;ascii_conv.js&lt;/a&gt;&lt;/li&gt;&lt;li&gt;An interesting &lt;a href="http://lab.artlung.com/urlencode/"&gt;ASCII Character table&lt;/a&gt; with Hex codes only of the characters that need to be encoded, ie.: the code for "a" is "a", "b" is "b" and so on, wheres as "£" is "%A3", etc...&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-4763487996705355624?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/yWOhIXl8QlE/british-pound-sign-encoding-revisited.html</link><author>noreply@blogger.com (Diego)</author><thr:total>7</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/06/british-pound-sign-encoding-revisited.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-7754574083752843561</guid><pubDate>Tue, 24 Jun 2008 05:34:00 +0000</pubDate><atom:updated>2008-06-24T07:04:47.518+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bugs</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><category domain="http://www.blogger.com/atom/ns#">iis</category><title>FIX for IIS Error: Too many users are connected (HTTP 403.9 - Access Forbidden)</title><description>&lt;span style="font-weight: bold;"&gt;The Error&lt;/span&gt;: &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;HTTP 403.9 - Access Forbidden: Too many users are connected&lt;/span&gt;&lt;br /&gt;(See &lt;a href="http://support.microsoft.com/kb/248074"&gt;KB248074&lt;/a&gt; on the Microsoft Support Website for details)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Cause&lt;/span&gt;: This error is displayed when the number of users connected to the server exceeds the connection limit set by the administrator of the Web server&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Problem&lt;/span&gt;: By default, IIS can only handle 10 concurrent connections. This is a very small number - 10 connections can easily be used by a single user, specially on pages with many images or complex ajax-driven functionality.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;The Solution&lt;/span&gt;: Increase the limit of concurrent connections allowed by IIS. Unfortunately the absolute maximum number of connections IIS can accept is 40. This is hard-coded in the software, I'm just not sure why...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Method 1&lt;/span&gt;: (information retrieved from Microsoft's Support Website)&lt;br /&gt;This is only available to the latest versions of IIS.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open &lt;span style="font-weight: bold;"&gt;Internet Services Manager&lt;/span&gt; (if unsure, right-click "My Computer" then click "Manage" - select Internet Services Manager from the tree on the left)&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Right-click the Web site and choose &lt;b&gt;Properties&lt;/b&gt;&lt;/li&gt; &lt;li&gt;On the Web Site property page, select &lt;b&gt;Connections&lt;/b&gt;&lt;/li&gt; &lt;li&gt;Choose &lt;b&gt;Unlimited&lt;/b&gt; or increase the &lt;b&gt;Limited To:&lt;/b&gt; value.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Method 2&lt;/span&gt;: (Should work on any IIS installation - tested on Windows XP)&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open &lt;span style="font-weight: bold;"&gt;Command Prompt&lt;/span&gt; (go to "Start &gt; Run", type "CMD" and press enter)&lt;/li&gt;&lt;li&gt;In the command prompt window, enter the following:&lt;br /&gt;C:\Inetpub\AdminScripts\adsutil set w3svc/MaxConnections 40&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Method 3: Make an easy to use .bat file&lt;/span&gt;&lt;br /&gt;If you don't want to remember the method above, just create a .bat file that you can run whenever you need to increase the number of connections. Very convenient!&lt;br /&gt;&lt;pre class="code"&gt;&lt;code&gt;CLS&lt;br /&gt;@ECHO OFF&lt;br /&gt;ECHO Increasing number of allowed connections...&lt;br /&gt;REM 40 is the absolute limit hardcoded in IIS and cannot be changed/exceeded&lt;br /&gt;C:\Inetpub\AdminScripts\adsutil set w3svc/MaxConnections 40&lt;br /&gt;ECHO DONE!&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;How to make a .bat file:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Copy&lt;/span&gt; the code above&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open &lt;span style="font-weight: bold;"&gt;Notepad&lt;/span&gt; ("Start &gt; Programs &gt; Accessories &gt; Notepad")&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Paste&lt;/span&gt; the code&lt;/li&gt;&lt;li&gt;Go to "File &gt; Save as..."&lt;/li&gt;&lt;li&gt;Change the "&lt;span style="font-weight: bold;"&gt;Save as type&lt;/span&gt;" option to "&lt;span style="font-weight: bold;"&gt;All files&lt;/span&gt;"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Now just add .bat to the end of the file name (eg.: "IISFix.bat")&lt;/li&gt;&lt;/ol&gt;If you want the file to run automatically every time you start your computer, just put it in the Start Up folder (in "Start &gt; Programs &gt; Startup").&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-7754574083752843561?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/2bogNjbz3dY/fix-for-iis-error-too-many-users-are.html</link><author>noreply@blogger.com (Diego)</author><thr:total>4</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/06/fix-for-iis-error-too-many-users-are.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-5125797331809912007</guid><pubDate>Thu, 19 Jun 2008 13:33:00 +0000</pubDate><atom:updated>2008-06-19T14:43:46.717+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">mssql</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><category domain="http://www.blogger.com/atom/ns#">database</category><title>MSSQL Error: Could not locate entry in sysdatabases</title><description>For a long time I've been using this SQL to create a backup of my databases:&lt;br /&gt;&lt;pre class='code'&gt;&lt;code class='sql'&gt;BACKUP DATABASE [SAMPLE] TO DISK = N'C:\SAMPLE.bak'&lt;br /&gt;WITH  INIT,  NOUNLOAD,&lt;br /&gt;NAME = N'SAMPLE Backup',  NOSKIP,  STATS=10,  NOFORMAT&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Until out of the blue, I started to get this error message:&lt;br /&gt;&lt;pre&gt;Could not locate entry in sysdatabases for database 'SAMPLE'.&lt;br /&gt;No entry found with that name.&lt;br /&gt;Make sure that the name is entered correctly.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I'm now going to explain step by step what I did to solve the problem. Feel free to try any of these &lt;strong&gt;at your own risk&lt;/strong&gt; - don't mess with anything unless you know what you're doing.&lt;br /&gt;&lt;br /&gt;The obvious problem, of course, would be that the database doesn't in fact exist. So...&lt;br /&gt;&lt;br /&gt;STEP 1: Make sure the database exists. Execute one of the following statements and make sure the database named 'SAMPLE' is in the list:&lt;br /&gt;&lt;pre class='code'&gt;&lt;code class='sql'&gt;sp_helpdb&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class='code'&gt;&lt;code class='sql'&gt;select * from sysdatabases&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;STEP 2: Make sure data file exists. Use this statement to find the physical path to the database file and make sure it's there:&lt;br /&gt;&lt;pre class='code'&gt;&lt;code class='sql'&gt;select filename from sysdatabases WHERE name ='SAMPLE'&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;STEP 3: If both of the above seem fine, use Enterprise Manager to DETACH and RE-ATTACH the database in question. Seems pointless, but it solved the problem for me...&lt;br /&gt;&lt;br /&gt;Hope this helps anyone having the same problem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-5125797331809912007?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/razTkhTT6O8/mssql-error-could-not-locate-entry-in.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/06/mssql-error-could-not-locate-entry-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-4406840564745309763</guid><pubDate>Thu, 12 Jun 2008 16:08:00 +0000</pubDate><atom:updated>2008-06-12T17:25:58.473+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">firefox</category><category domain="http://www.blogger.com/atom/ns#">development</category><title>Google Toolbar for Firefox 3</title><description>If you don't care about what I have to say, let me just give you the links you need. This article talks about two Firefox addons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.borngeek.com/firefox/googlebarlite/"&gt;Google Toolbar Lite&lt;/a&gt; - an alternative to the Google Toolbar&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://autofillforms.mozdev.org/"&gt;Autofill Forms&lt;/a&gt; - A more robbust alternative to the Google Toolbar's auto-complete feature.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;for those of you with 2 minutes to spare, here's what happened...&lt;br /&gt;&lt;br /&gt;I got myself a &lt;a href="http://portableapps.com/news/2008-06-04_-_firefox_portable_3_rc_2"&gt;portable FF3&lt;/a&gt; that I could use for testing whilst leaving my current installation of FF2 untouched. I wasn't ready to make a 'full switch' because one of my favourite FF addons is not yet compatible with FF3 - the &lt;a href="http://toolbar.google.com/"&gt;Google Toolbar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But after a little digging, I came across this great a add-on, the &lt;a href="http://www.borngeek.com/firefox/googlebarlite/"&gt;Google Toolbar lite&lt;/a&gt; (not made by Google) which happens to have almost all the features I need: "Search", "Highlight" and "Find word in document". In fact, that's all the features I need but one: auto-complete.&lt;br /&gt;&lt;br /&gt;If you don't use the auto-complete feature, you may stop reading this now. But if you care, you may have had some problems with the Google Toolbar's auto-complete feature in the past and you may have noticed its lack of flexibility - it only supports one profile. While that is fine for the average user, it can be usefull for web developers to have multiple profiles he/she can use to test forms on their own projects/websites.&lt;br /&gt;&lt;br /&gt;Because the Google Toolbar's auto-complete solution was quite basic, I decided to find a 'proper' alternative, which lead me to this little beauty: &lt;a href="http://autofillforms.mozdev.org/"&gt;Autofill Forms&lt;/a&gt;. Brilliantly developed, &lt;a href="http://autofillforms.mozdev.org/"&gt;Autofill Forms&lt;/a&gt; is perfect for personal and professional use, by allowing you to preset multiple profiles, easy switch between them and effortlessly fill in forms, ultimatelly saving you precious time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-4406840564745309763?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/_5ZjWbgVvlE/google-toolbar-for-firefox-3.html</link><author>noreply@blogger.com (Diego)</author><thr:total>3</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/06/google-toolbar-for-firefox-3.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-1811649096041489166</guid><pubDate>Mon, 21 Apr 2008 12:03:00 +0000</pubDate><atom:updated>2008-04-21T13:12:32.936+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">lab</category><title>Random String in Javascript</title><description>If you've found this page through a search engine, you know exactly what you're looking for so I'll get straight to the point:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;String((new Date()).getTime()).replace(/\D/gi,'')&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;That's the quick way to automatically generate a random text string in javascript - a new string every millisecond.&lt;br /&gt;&lt;br /&gt;It's a shame that in a time of "Web 2.0" and advanced ajax-powered web interfaces we, developers, still have to deal with querky browser issues pretty much all the time - most of the in IE.&lt;br /&gt;&lt;br /&gt;Sometimes IE caches responses in the HTTPRequest object when it shouldn't, so ajax developers frequently add random characters to the query string to get around this issue. This code helps you do just that with very little processing.&lt;br /&gt;&lt;br /&gt;Of course, I don't want to type the same code over and over again so I took it further and turned it into a neat little function:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;function rnd(){ return String((new Date()).getTime()).replace(/\D/gi,'') }&lt;/code&gt;&lt;/pre&gt;...so all I have to do is...&lt;br /&gt;&lt;pre&gt;&lt;code&gt;var url = '/stuff/url/?'+rnd();&lt;br /&gt;// do ajax stuff...&lt;/code&gt;&lt;/pre&gt;Happy javascript'ing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-1811649096041489166?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/It4fwqkrrJs/random-string-in-javascript.html</link><author>noreply@blogger.com (Diego)</author><thr:total>1</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/04/random-string-in-javascript.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-6697792048396714768</guid><pubDate>Thu, 10 Apr 2008 09:40:00 +0000</pubDate><atom:updated>2008-04-10T11:45:33.886+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">news</category><category domain="http://www.blogger.com/atom/ns#">yahoo</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Microsoft attempts to take over Yahoo!</title><description>&lt;blockquote style="font-style: italic;"&gt;Here's $42 billion, take it or take it!&lt;/blockquote&gt;&lt;p&gt;That is Microsoft's current position on its bid to take over internet giant Yahoo!&lt;/p&gt;&lt;p&gt;The internet giant and the software giant (namely, Yahoo and Microsoft) have been bickering back-and-forth like spoiled children ever since this whole thing started. Now it seems Gill Bates (I mean, &lt;a href="http://en.wikipedia.org/wiki/Bill_Gates"&gt;Bill Gates&lt;/a&gt;) and his army of lawyers have had enough and want Yahoo at any cost (well, $42 billion to be exact) while Yahoo's board of directors were given 3 weeks "to take it or take it".&lt;/p&gt;&lt;p&gt;Yesterday however, &lt;a href="http://money.cnn.com/2008/04/09/technology/moritz_yahoo_google.fortune/?postversion=2008040923"&gt;Yahoo turned to its biggest rival&lt;/a&gt; in a desperate attempt to stop the take over. As part of a two-week trial, Google-generated ads will appear next to some U.S. search results on Yahoo. A move that has caused some controversy since a formal Yahoo-Google alliance would give Google too much control over the the search advertising market. "Any definitive agreement between Yahoo! and Google would consolidate over 90% of the search advertising market in Google's hands".&lt;/p&gt;And so the fight goes on...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-6697792048396714768?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/Vpz6gXWRyEg/microsoft-attempts-to-take-over-yahoo.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/04/microsoft-attempts-to-take-over-yahoo.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-1659157263937911401</guid><pubDate>Tue, 08 Apr 2008 11:38:00 +0000</pubDate><atom:updated>2008-04-08T12:39:49.949+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">search engine optimization</category><category domain="http://www.blogger.com/atom/ns#">seo</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Google and Paid Links</title><description>&lt;blockquote&gt;Google was forced to introduce the Query Deserves Freshness algorithm to improve results for topical searches. With paid links removed from the mix Google can assign trust based on links gained over the past year with a much greater confidence than ever before resulting in higher quality results and happier webmasters. A win win situation.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-1659157263937911401?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/Utav3hKdWKY/google-and-paid-links.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/04/google-and-paid-links.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-2914554555194046668</guid><pubDate>Tue, 01 Apr 2008 08:06:00 +0000</pubDate><atom:updated>2008-04-01T10:21:14.931+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">fun</category><category domain="http://www.blogger.com/atom/ns#">comedy</category><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">april fool</category><title>Google's April Fool's Day 2008</title><description>&lt;h4&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-weight: bold;"&gt;Google&lt;/span&gt; has lived up to the tradition and delivered another entertaining bunch of Hoaxes this &lt;span style="font-weight: bold;"&gt;April Fool's day of 2008&lt;/span&gt;.&lt;/span&gt;&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://en.wikipedia.org/wiki/Image:Virgle_Logo.png" class="image" title="Virgle Logo"&gt;&lt;img alt="Virgle Logo" src="http://upload.wikimedia.org/wikipedia/en/thumb/e/e7/Virgle_Logo.png/175px-Virgle_Logo.png" align="right" border="0" height="146" width="175" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;a href="http://googleblog.blogspot.com/2008/04/announcing-project-virgle.html"&gt;Google's main blog&lt;/a&gt; announces &lt;a href="http://www.google.com/virgle/"&gt;Virgle&lt;/a&gt;. "Virgin founder Richard Branson and Google co-founders Larry Page and Sergey Brin will be leading hundreds of users on one of the grandest adventures in human history: Project Virgle, the first permanent human colony on Mars."&lt;br /&gt;&lt;br /&gt;And if you think that's funny, checkout...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a style="font-style: italic; font-weight: bold;" href="http://www.google.com/virgle/plan_1.html"&gt;The 100 year plan&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Got what it takes to join a startup civilization?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Take the &lt;a style="font-weight: bold;" href="http://www.google.com/virgle/application.html"&gt;15-question multiple choice quiz&lt;/a&gt; that will help determine your potential suitability as a Virgle Pioneer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.google.com/virgle/plan_5.html"&gt;Virgle City&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and my personal favourite:&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.google.com/virgle/opensource.html"&gt;Open Source Planet&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="center"&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PmSdy_9blB4&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/PmSdy_9blB4&amp;amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gWCQYcPlUng&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gWCQYcPlUng&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Google Korea found a new technology for &lt;a href="http://209.85.135.104/translate_c?hl=en&amp;amp;langpair=ko%7Cen&amp;amp;u=http://www.google.co.kr/landing/saturi/"&gt;translating dialects&lt;/a&gt; that was integrated in Gmail and Google Talk.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Google Australia announces &lt;a href="http://www.google.com.au/intl/en/gday/index.html"&gt;gDay&lt;/a&gt;, a new feature of Google that lets you search today the web pages published tomorrow. "Google spiders crawl publicly available web information and our index of historic, cached web content. Using a mashup of numerous factors such as recurrence plots, fuzzy measure analysis, online betting odds and the weather forecast from the iGoogle weather gadget, we can create a sophisticated model of what the internet will look like 24 hours from now. We can use this technique to predict almost anything on the web – tomorrow's share price movements, sports results or news events. Plus, using language regression analysis, Google can even predict the actual wording of blogs and newspaper columns, 24 hours before they're written!"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If Google Australia lets you see the future, Gmail gives you the option to change the past with &lt;a href="http://mail.google.com/mail/help/customtime/index.html"&gt;Gmail Custom Time&lt;/a&gt;. "Just click &lt;span style="font-style: italic;"&gt;Set custom time&lt;/span&gt; from the Compose view. Any email you send to the past appears in the proper chronological order in your recipient's inbox."&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://bp1.blogger.com/_ZaGO7GjCqAI/R_HZEupQvMI/AAAAAAAAIVo/bMSK6Ynimyw/s640/gmail-april-fools-custom-time.gif" alt="" id="BLOGGER_PHOTO_ID_5184163321343950018" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;YouTube tries to &lt;a href="http://en.wikipedia.org/wiki/Rickrolling"&gt;rickroll&lt;/a&gt; everyone by linking all the featured videos from the homepage to Rick Astley's (in)famous song "Never Gonna Give You Up" (video no longer available on YouTube).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Google Book Search has a new feature: &lt;a href="http://booksearch.blogspot.com/2008/04/google-book-search-now-smells-better.html"&gt;capturing a book's smell&lt;/a&gt;. "I'm pleased to let you know that we've made some headway with one type of volume we've struggled with in the past: books employing scratch-and-sniff technology. Using special equipment and tricky JavaScript, we're now able to capture some of the smells during the scanning process and then embed them in your web browser when you preview these titles in Google Book Search."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=uo4GlfyjgFwC&amp;amp;pg=PA182&amp;amp;dq=spicy+odor&amp;amp;as_brr=3&amp;amp;source=gbs_selected_pages&amp;amp;cad=0_1&amp;amp;sig=mIfRE3O9aKrL8yY8CsTUDV624Gc"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://bp0.blogger.com/_ZaGO7GjCqAI/R_HhcepQvNI/AAAAAAAAIWI/rZ3hUWmtVgs/s400/book-search-april-fools.png" alt="" id="BLOGGER_PHOTO_ID_5184172525458865362" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;Want more?&lt;/span&gt; - Checkout &lt;a href="http://fyneworks.blogspot.com/2007/04/googles-april-fools-day-jokes.html"&gt;last year's hoaxes&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-2914554555194046668?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/NkWsF83S3UA/googles-april-fools-day-2008.html</link><author>noreply@blogger.com (Diego)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp1.blogger.com/_ZaGO7GjCqAI/R_HZEupQvMI/AAAAAAAAIVo/bMSK6Ynimyw/s72-c/gmail-april-fools-custom-time.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/04/googles-april-fools-day-2008.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-5226829063149234719</guid><pubDate>Mon, 31 Mar 2008 18:00:00 +0000</pubDate><atom:updated>2008-03-31T19:05:16.278+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">fun</category><category domain="http://www.blogger.com/atom/ns#">funny</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Google April's Fool 2008 - It started in Japan</title><description>Looks like Google April's fool jokes have started. Some people who are brainy enough speak Japanese (other than Japanese people themselves) have reported this is &lt;a href="http://www.google.co.jp/intl/ja/help/search/dajare/"&gt;Google's  April's fool joke in Japan for 2008&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fyneworks.blogspot.com/2007/04/googles-april-fools-day-jokes.html"&gt;Google's April's fool jokes 2007&lt;/a&gt; we had &lt;a href="http://fyneworks.blogspot.com/2007/04/googles-april-fools-day-jokes.html"&gt;Gmail Paper&lt;/a&gt; and &lt;a href="http://www.google.com/tisp/index.html"&gt;Google Wireless Broadband&lt;/a&gt; (through your toilet). I wonder what the big G has in store this year.&lt;br /&gt;&lt;br /&gt;We'll should find out for sure in just under 5 hours from now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-5226829063149234719?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/HDcHmiB-_EY/google-aprils-fool-2008-it-started-in.html</link><author>noreply@blogger.com (Diego)</author><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/03/google-aprils-fool-2008-it-started-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-4563257421719757130</guid><pubDate>Sat, 29 Mar 2008 12:58:00 +0000</pubDate><atom:updated>2008-03-29T13:45:04.011Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">google</category><title>Google UK turns its lights out</title><description>In support of the Worldwide &lt;a href="http://www.earthhour.org/"&gt;Earth Hour&lt;/a&gt; event, Google has &lt;span style="font-style: italic;"&gt;turned the lights out&lt;/span&gt; on its UK frontpage.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_4-T-f0yG66E/R-5HyeJGFhI/AAAAAAAAASM/etVGShy7wBk/s1600-h/google-lights-out.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_4-T-f0yG66E/R-5HyeJGFhI/AAAAAAAAASM/etVGShy7wBk/s320/google-lights-out.png" alt="" id="BLOGGER_PHOTO_ID_5183159153560262162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If you'd like to know more about this event, checkout the &lt;a href="http://www.earthhour.org/"&gt;official website&lt;/a&gt;, &lt;a href="http://www.youtube.com/earthhour2008"&gt;Youtube Channel&lt;/a&gt;, or &lt;a href="http://www.facebook.com/pages/Earth-Hour/6867084435"&gt;Facebook Page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-4563257421719757130?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/k0oFvfJVUEg/google-uk-turns-its-lights-out.html</link><author>noreply@blogger.com (Diego)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp3.blogger.com/_4-T-f0yG66E/R-5HyeJGFhI/AAAAAAAAASM/etVGShy7wBk/s72-c/google-lights-out.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/03/google-uk-turns-its-lights-out.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-32523677.post-2955656568746737192</guid><pubDate>Thu, 06 Mar 2008 17:44:00 +0000</pubDate><atom:updated>2008-03-06T18:24:13.261Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">programming</category><category domain="http://www.blogger.com/atom/ns#">security</category><category domain="http://www.blogger.com/atom/ns#">asp</category><title>Anti- SQL Injection Functions</title><description>After reading &lt;a href="http://www.securiteam.com/securityreviews/5DP0N1P76E.html"&gt;a great article about SQL Injections&lt;/a&gt; I set off to create the definitive solution for this old (and often undermined) security issue.&lt;br /&gt;&lt;br /&gt;I believe the following ASP functions will stop all known types of SQL Injections, but I cannot guarantee they will work for your system so &lt;span style="color: rgb(255, 0, 0);"&gt;USE THIS CODE AT YOUR OWN RISK&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Safe SQL String&lt;/span&gt;&lt;br /&gt;This function will protect against SQL Injections on string fields. Namely, any of following:&lt;br /&gt;' or 1=1--&lt;br /&gt;" or 1=1--&lt;br /&gt;or 1=1--&lt;br /&gt;' or 'a'='a&lt;br /&gt;" or "a"="a&lt;br /&gt;') or ('a'='a&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;' This function encrypts all characters known to be used in a SQL Injection&lt;br /&gt;Function SQLSafeString(ByVal s)&lt;br /&gt;  ' Declarations&lt;br /&gt;  Dim bad, x, y&lt;br /&gt;  bad = Array( _&lt;br /&gt;   "select", "drop", "insert", "delete", "update", "xp_", _&lt;br /&gt;   "--", "..", "{", "}", "[", "]", "&lt;", "&gt;", _&lt;br /&gt;   "(", ")", "#", "%", "*", "&amp;amp;", "+", "'", "`", """", _&lt;br /&gt;   "/", "\", ":", ";", "=", "?", "|", "$", "!", "^" _&lt;br /&gt;  )&lt;br /&gt;  ' First we mark the bad characters&lt;br /&gt;  For Each x In bad&lt;br /&gt;  If InStr(1, s, x) Then&lt;br /&gt;    s = Replace(s, x, "_C1_" &amp;amp; ASC(Left(x,1)) &amp;amp; "_C2_" &amp;amp; Mid(x,2))&lt;br /&gt;  End If&lt;br /&gt;  Next&lt;br /&gt;  ' Then we add the code to&lt;br /&gt;  s = Replace(s, "_C1_", "'+CHAR(")&lt;br /&gt;  s = Replace(s, "_C2_", ")+'")&lt;br /&gt;  ' Return safe string&lt;br /&gt;  SQLSafeString = s&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. SQL Safe Number&lt;/span&gt;&lt;br /&gt;This will protect you against attacks like these:&lt;br /&gt;0 or 1=1--&lt;br /&gt;0; drop/select/update/insert ... --&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;' This function will return a number or 0. No text/symbols allowed at all.&lt;br /&gt;Function SQLSafeNumber(ByVal n)&lt;br /&gt;  ' Trap errors&lt;br /&gt;  Err.Clear() : On Error Resume Next&lt;br /&gt;  ' Try to create a number&lt;br /&gt;  n = CDbl(n)&lt;br /&gt;  ' If error (ie.: has text or bad symbols)&lt;br /&gt;  If Err.Number&lt;&gt;0 Then n = 0 : Err.Clear()&lt;br /&gt;  ' Return safe number&lt;br /&gt;  SQLSafeNumber = n&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32523677-2955656568746737192?l=fyneworks.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/FyneworksBlog/~3/7KWI0jRzSoU/anti-sql-injection-functions.html</link><author>noreply@blogger.com (Diego)</author><thr:total>1</thr:total><feedburner:origLink>http://fyneworks.blogspot.com/2008/03/anti-sql-injection-functions.html</feedburner:origLink></item></channel></rss>

