It's official. I've moved out of Geeks With Blogs. I enjoyed being a part of the GWB community, but I thought the commenting system is too buggy at the moment and that's been turning off some of my readers.
Anyway, to all you other bloggers out there, keep your spirits high and catch me on my primary blog site at:
http://knitinr.blogspot.com
BitComet 1.02 is a buggy - it won't download all the files completely although it claims to have downloaded 100% and stops the download process. You can find other reports of the bug here:
http://www.tocomet.com/post/40798/
You can perform a manual hash check after stopping the torrent (sometimes the stop button does not work - you have to close and open BitComet to stop the torrent).
Till a fix is available, you can use a previous version available at:
http://www.bitcomet.com/doc/download-achive.htm
In software development, communication is key. Here's a popular email forward describing the reality of software development and the miscommunication prevalent.
The FCKEditor doesn't seem to be compatible with the RoundedPanelExtender of the AJAX Control Toolkit in MS Internet Explorer. Whenever I place the FCKEditor as a control within a panel that has the RoundedPanelExtender, the FCKEditor is visible for a second or two after page load and then disappears. It works perfectly well on Firefox though.
The browser versions that I'm using are MS Internet Explorer 7 and Firefox 3.
I've tried using FCKEditor 2.6.2 for an ASP.NET web application I was working on and it's really cool. You can check out a demo of the editor here:
http://www.fckeditor.net/demo
Unlike the version of FCKEditor on GWB (GeeksWithBlogs.com), we don't have a separate popup browser window. A common problem on GWB's FCKEditor is when you're done using the popup browser window, it doesn't automatically close.
The new version certainly ranks higher on user-friendliness.
What we need in ASP.NET is a change-tracking control. Whenever we modify elements on a form, it would be a good idea to display a popup for user confirmation before navigating away from the page. Right now, I've got some pretty ugly Javascript doing this.
The next version of the AJAX Control Toolkit would really kick a** if it had this control. It could also include bug fixes for the 'focus' issue with the RoundedControlExtender and TextBoxWatermarkExtender.

A search comparing the StringCollection to the ArrayList may give you articles that say "the ArrayList works better than the StringCollection" but what you need to know is that a StringCollection is simply extra methods over an ArrayList - there is an actual ArrayList included as a private member within the StringCollection class and it caters to storage needs of StringCollection. In other words, the StringCollection is just a disguised ArrayList!
You don't really have to decide between using an ArrayList or the StringCollection wrapper - both are essentially the same! You use a StringCollection wrapper when you are dealing with strings... the cast to a string is performed by a method in the wrapper so you don't have to do it each time you access it. If you aren't dealing with strings, the StringCollection isn't an option anyway.
If you count the number of pages linking to a Wikipedia page, there may be none but it still appears on the first page of the search results.
Google seems to rank pages from Wikipedia higher up in the results. One possibility is that it doesn't seem to be using the regular PageRank algorithm for some websites. Either that or the PageRank algorithm uses a list of 'favorite domains' when ranking pages. I considered the possibility of 'favorite domains' a little more and Googled it a bit when I came across an article that mentions about Google having access to the domain registration information so I'm guessing that there is a possibility Google checks the age of the wikipedia.org domain registration and factors that in too.
I've been running a couple of tests on the ArrayList and the StringCollection in .NET 3.5 to determine if the ArrayList still performs better than the StringCollection for insertions. There are a couple of articles on it, this one from 2004 being the one that also presents source code for a simple test that they've performed:
http://weblogs.asp.net/justin_rogers/archive/2004/02/29/81680.aspx
Initially, I went with a normal-looking test but without creating the string table and that skewed the results. I initially wrote the code with the test on the StringCollection first and then the ArrayList and, according to the results, the ArrayList was a better performed. I then switched the positions of the ArrayList code and the StringCollection code and the results were reversed. Whichever executed first took longer. It was pretty normal for it to do that so...
I added the initial loading of strings into an array and then adding the array elements into the ArrayList and the StringCollection. Running another series of tests showed that the order still does matter - whichever executed first took less time.
The only way to prevent one test from affecting the other was to run the tests independently so I ran only the code for the ArrayList followed by the next run with only the code for the StringCollection. This time, I was able to get better results - the ArrayList consistently outperforms the StringCollection but the performance difference does seem quite marginal. Unless you're dealing with over 15 million strings, you're not going to take much of a performance hit so you can use whatever seems more convenient.
The following are the results that I came up with (time measured in ticks):
5 million string, independent executions
SC - 3047, 3063, 3047, 3078
AL - 3000, 3016, 3000, 3016
5 million string, populating from string array (skewed results)
AL - 219, 203, 219, 219
SC - 422, 422, 422, 438
SC - 203, 219, 234, 218
AL - 469, 484, 438, 485
5 million strings, ignoring string table (skewed results)
SC - 3219, 3063, 3110, 3031
AL - 2937, 2828, 2828, 2828
AL - 3000, 3016, 2985, 2984
SC - 2844, 2844, 2859, 2844
EDIT: I took a closer look at the StringCollection class and discovered that it is just a wrapper over the ArrayList. For more, read:
http://knitinr.blogspot.com/2008/07/stringcollection-internals.html
Just a little while ago, I was reading about the
Infinite Monkey Theorem, as a means of providing input to software tests, on Wikipedia that states: "a monkey hitting keys at random on a typewriter keyboard for an infinite amount of time will almost surely type a particular chosen text, such as the complete works of william Shakespeare."
The explanation of the theorem clarifies that the behavior of the "monkey" is assumed to be something that can generate characters randomly. Stating that particular assumption does tend to pacify critics trying to discredit the theorem.
If you've observed child behavior, they initially repeat whatever seems to interest them. If they pressed the space bar and found the sound made by the keyboard interesting, they would continue to press the space bar to boredom. They will then try out some other keys at the center of the keyboard, or perhaps some toward the left and right edges too but they wouldn't usually get to the upper edge since those are farther away and less likely to be pressed... unless they push the keys in sequence (1, 2, 3, 4, 5, 6, 7, 8, 9, 0...) but that isn't random.
My nephew eventually got tired of pushing keys on the keyboard so the "infinite amount of time" part may be hard to test. He pushes the power button now because it gets the hard disk LED flashing and then eventually turns all the LEDs off :-(