Archive for August, 2005

Speaking clock in VB.NET

I never realized how easy it is to use SAPI in .NET, I developed a "Speaking clock" with just these three lines of code:

Dim Voice As SpeechLib.SpVoice

Voice =

New SpeechLib.SpVoice

Voice.Speak(DateTime.Now.ToShortTimeString(), SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync)


This needs a reference to SAPI 5.1. (Microsoft Speech Object Library)

Categories: Uncategorized

Yahoo Adsense

Just saw that Yahoo has released their own version of Adsense to counter Google’s amazing Adsense system. – It’s still in beta, but from what I’ve seen, it’s virtually identical to Google Adsense, as you can see from the Javascript below:
<script language="JavaScript">
ctxt_ad_partner = ‘<some number>’;
ctxt_ad_section = ”;
ctxt_ad_bg = ”;
ctxt_ad_width = 336;
ctxt_ad_height = 280;
ctxt_ad_bc = ‘FFFFFF’;
ctxt_ad_cc = ‘FFFFFF’;
ctxt_ad_lc = ‘A80054’;
ctxt_ad_tc = ‘000000’;
ctxt_ad_uc = ‘000000’;
// –>
<script language="JavaScript" src="">
Categories: Uncategorized


Just been translating into French (  and German( It’s 90% done with Google Translate 10% done with a bit of manual translation, to try and pin down the odd turkey that Google translate comes up with.
On a seperate note,  2-18,1-14. A sad day for Dubs – even though I’m more of a Donegal fan myself.
Categories: Uncategorized

Hotfix for KB 896181

I recently found two of my websites ( & ) were throwing up the following error:
Unable to generate a temporary class (result=1). error CS0011: Referenced class ‘ASP.webservice_aspx’ has base class or interface ‘System.Web.UI.Page’ defined in an assembly that is not referenced. You must add a reference to assembly ‘System.Web’. error CS0011: Referenced class ‘ASP.webservice_aspx’ has base class or interface ‘System.Web.SessionState.IRequiresSessionState’ defined in an assembly that is not referenced. You must add a reference to assembly ‘System.Web’.
After searching on Microsoft, they said it was an issue with "This problem occurs because the temporary serialization assemblies do not reference the System.Web assembly. This behavior causes the Web service to fail at run time. "
Unfortunately, the gix won’t be available unil .NET 1.1 SP2 is out, and I don’t know hos to email microsoft for the hotfix. – anybody know?
I found a temporary work around, by migrating both sites from ASP.NET 1.1. to 2.0 beta 2. This threw up an error "Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster." – but went away after I closed and re-opened the page.
Categories: Uncategorized

Spoofing an IP address using a VPN

I was looking for a way to appear to have a different IP address from the point of view of a remote website. When I remembered a quirk with VPNs.
When you set up a computer to accept incomming VPN connections, and connect to it, all packets will be routed through it by default. This means that if you navigate to a website without a VPN connection you will appear to have a different IP address to when you navigate to a website with a VPN connection open.
Usiually, I would disable this feature, since generally, routing all internet traffic via a VPN is much slower than a direct connection. To disable VPN default gateway routing, hit the VPN conection | properties | Networking | TCP/IP | Settings | use default gateway on remote network.
Categories: Uncategorized

Double joins in access

With SQL server, there is no problem with joining multiple tables in the same query like  so:
select * from a
join b on =
join c on b.cid =
But this doesn’t work in MS Acess, but this format does
select * from a,b,c
where and = b.cid
Categories: Uncategorized

Generating a 1×1 pixel jpeg in a aspx page

I was looking at a way to track website referers using aspx, and to my horror, I found that Request.ServerVariables["HTTP_REFERER"] was blank under many circumstances. However the javascript equivalent , document.referrer works much more reliably. However, ths javascript variable is only available after the page has loaded. So it needs to do a round-trip to the server to store this variable, without distracting the user by refreshing the page. There are a number ways to do this (a) hidden IFrame (b) out of band calls using XMLHTTP (c) aspx image tag Option C., was what I decided to go for…
Categories: Uncategorized