February 2005 - Posts
There are some more changes to the site. Most of these changes are behind the scenes, although you may notice that site based statistics are not available anymore.
Trying to keep track of unique visitors and site hits has become an inaccurate exercise. As such, I am no longer tracking visitors or site hits through my own code and the information is no longer available through the statistics page. I have found that the statistics generated by the web server are much more comprehensive so I am using software provided by M6 to review statistics instead. That does however mean that (if you were interested) you will no longer be able to tell how popular this site is. Statistics of items displayed in the site are still calculated.
I was reminded the other day of a senseless, mindless fun website that I was told about years ago. If you want a bit of fun or perhaps relief from boredom, then go and Spank The Monkey.
A Switch skin, with first time ever, PPCP (pixel perfect color picker).
Download Color Switch
Jeton Aliji has put out a great skin for Switch. Check it out.
While we are on the topic of Switch, I have decided that Switch will be the first victim of the new .Net version of the apps along with the new skinning engine. More details about the new skinning engine will come out as I develop it a little further. Be assured that there will be cool stuff that wasn't possible in the previous skins. I am also planning an upgrade engine to allow existing skins to be used.
Stay tuned.
Just noticed that a new version of ieSpell came out last month.
Now that I have been converted to Bloglines, I have noticed that they display details about a random feature that Bloglines supports when you log in. One of those features is a "Sub with Bloglines" link. They tell you to add that link to your favorites and whenever you want to subscribe to a page you are viewing, you go to your favorites menu and select the "Sub with Bloglines" link.
If you look at the URL behind that link, it is javascript:location.href='http://www.bloglines.com/sub/'+location.href. This is kind of like command line parameters for an application. If I provide a URL to http://www.bloglines.com/sub/, Bloglines will set up the subscription to that URL for me.
Personally, I don't like the idea of clicking on a favorites link to subscribe to something I am currently viewing, but it did give me a good idea. I know that you can create a registry entry that will add a menu item to the IE context menu . This registry entry will set when the context menu item should be displayed and what application to run when the menu item is selected.
In this case, I want the menu item displayed in the menu when an A tag is involved (context registry value) and I want IE to shell an HTML file (default registry value). That file simply has a script that calls Bloglines with the URL.
The registry file to register this extension is this:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Subscribe in Bloglines]
@="file://D:\\Program Files\\BrowserExt\\SubscribeBloglines.htm"
"contexts"=dword:00000022
BTW, change the folder path in the default registry value to the folder you have saved the HTML file into.
This is the HTML code:
<SCRIPT LANGUAGE="JavaScript" defer>
var objWin = external.menuArguments;
var objElement = FindLink(objWin.event.srcElement);
if (objElement != null)
{
window.open("http://www.bloglines.com/sub/" + objElement.href);
}
function FindLink(objElement)
{
if ((objElement != null)
&& (objElement != objWin.document.body))
{
if ((objElement.tagName != null)
&& (objElement.tagName.toUpperCase() == "A"))
{
return objElement;
}
else if (objElement.parentElement != null)
{
return FindLink(objElement.parentElement);
}
}
return null;
}
</SCRIPT>
Cool eh?
Mary Jo Foley posted on Friday that there were some updates coming for Windows on Tuesday. She wasn't kidding. I hit 10 updates + 1 hardware update + 3 Office updates.
I have tried a lot of feed readers, but have spent most of my time with Omea, then Sauce Reader. I was never happy that any of them could properly handle automatic proxy support or some of the other features that I wanted. Sauce Reader was fairly good for what I wanted, but I finally got fed up with its resource hogging. I have now been converted to Bloglines thanks to Frank.
Metadata attributes are attributes that are assigned to classes, variables, structures, enums, procedures, functions and properties (and no doubt others that I haven't come across). They are usually used to inform the IDE how to handle the objects that...
The site has just cracked 100,000 hits. Thanks for coming.
Late last year I wanted to move my RSS reader (currently Sauce Reader) from my work desktop to my laptop. Doing this meant that I was able to keep up-to-date with feeds over the weekend. It did come with a hitch though. My work desktop sits behind a proxy server and I haven't yet come across a feed reader that does true auto-detection of proxy settings like IE does.
After I moved the feed reader to my laptop, it meant that I had to put the proxy settings either in the feed readers settings or in the IE settings. I know that a lot of other applications use IE's settings so that was the best place as all the other applications would benefit from the settings. I set the feed reader to use the IE proxy settings and entered the proxy server and port number in the IE options dialog. Every time I went to work, I would have to go into the IE settings and enable the proxy setting so that IE and all the other applications would have Internet access. When I went home, I would have to disable the proxy settings again. This very quickly became a major hassle.
Just before Christmas, I thought that if I could identify the domain that the computer was on, I would be able to automatically determine if I was plugged into work or not and change the proxy settings as appropriate. It turns out that I wasn't able to programmatically determine the current domain (anyone achieved this?), but at the start of January, I had another idea. I could get the IP address of a known computer name, in this case, my work computer.
It goes like this, when the computer starts, I get it to run my little proxy switch application. It gets a computer name from the command-line parameters and attempts to find its IP address. If the IP address exists, it enables the proxy setting through the registry, otherwise, the setting is disabled.
There are two problems with this idea. Firstly, when the IP address is determined, that value is cached. This means that if the computer falls off the network, the IP address is still returned for the computer name specified. Secondly, if I don't have the network cable plugged in at work before I boot up, it will disable the proxy settings. As long as I turn the computer off when traveling between home and work, and I always ensure that the network cable is plugged in before boot-up at work, neither of these are an issue.
Here is the code:
#Region " Imports "
Imports System.Net
Imports Microsoft.Win32
#End Region
Module modGlobal
''' -----------------------------------------------------------------------------
'''
''' Program entry.
'''
''' Array of command line parameters.
'''
''' The first command line parameter is the name of the computer of which the
''' IP address is going to attempt to be determined.
'''
'''
''' [rprimrose] 3/Feb/2005 Created
'''
''' -----------------------------------------------------------------------------
Public Sub Main(ByVal CmdArgs() As String)
Dim objEntry As System.Net.IPHostEntry
Dim objKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", True)
Dim bUseProxy As Boolean
Try
' Check if there is at least 1 command line parameter
If CmdArgs.Length > 0 Then
' Attempt to resolve the name to an IP address
objEntry = System.Net.Dns.Resolve(CmdArgs(0))
' We haven't failed, the resolve was successful
bUseProxy = True
End If ' End checking if there is at least one command line parameter
Catch
' Couldn't resolve the computer name to an IP address
bUseProxy = False
Finally
' Destroy the object
objEntry = Nothing
End Try
' Check if we want to use a proxy
If bUseProxy Then
objKey.SetValue("ProxyEnable", 1)
Else ' We don't want to use a proxy
objKey.SetValue("ProxyEnable", 0)
End If ' End checking if we want to use a proxy
End Sub
End Module
It's Tuesday and 34 degrees. I implement my 'be kind to the boss' rule by wearing shorts and a light shirt so I can remain at least semi-productive at work.
It's now Thursday and 18 degrees. I implement my 'be kind to myself' rule by wearing pants and a Polartec jacket so I can remain at least semi-alive at work.
Canberra weather is unpredictable at the best of times, but this is just crazy.
I have put a lot of work into the site over the last couple of months, as there were a lot of things that I wanted this site to do that the old site wasn't up for. Many features have made an appearance in this version of the site, but it is still a work in progress. It is at the stage though, where I can turn my attention back to developing applications.
The three applications that are currently publicly available are in dire need of updating and haven't had new releases for well over a year. Today I started working on a new skinning engine for the .Net framework. I am planning that this new skinning engine will be a lot more comprehensive and reusable than the one that runs in the existing applications. The skinning engine of the applications is also the part that takes the most work, but it should be a lot of fun. I am also hoping that, assuming I can get a good and flexible design, I will be able to load the same skin for different applications and because of that, create a skin builder application. That is the ambition at this stage and we will just have to see what I can come up with.
I will also attempt to bring more regular updates about the development work. If you want notification of these updates, subscribe to the RSS feed or check out the OPML at the bottom of the page. Stay tuned.
I have had the Microsoft Anti-Spyware beta running on my laptop for several weeks now and not once has it picked up a problem. I have read a lot of blog posts recently about how it picks up more things compared to other products like Adaware and SpyBot.
I am still hoping that this is good for me. It's not like I want spyware, and perhaps it is just fear of the unknown, but I can't help but think that I have all the worlds undetectable spyware on my machine. At least if I did have some spyware, I could declare myself as clean after anti-spyware had done its thing. So is it that I am clean of spyware, or just don't know that I'm not. Ever get that feeling???
More Posts
Next page »