Jeremy Esland has just added a slew (yes, slew is a real word...look it up) of new features to the Rainbow core and/or documentation. They include:
- A much improved portal alias retriever: you can now host 'sub-domains' on the same Rainbow installation as 'regular' sites...so support.example.com and sales.example.com can exist happily alongside example.com, example.co.uk, and www.example.com (even when the latter three point to the same site). It seems simple, but this is a huge step forward, IMHO.
- A new smarterror handler that provides much better interface for the end user when a page doesn't load (404, 403, 500 errors, for example).
- Terrific CSS documentation to support the Zen layout framework...though it also serves as a pretty good tutorial for those with only a basic understanding of the power of CSS.
- MagicUrls: These will allow a site admin to avoid complicated URLs, simplifying targets from (for example) www.example.com/site/2271/default.aspx to www.example.com/articles. Much better for the typical human user, eh?
- Much improved behavior for search engine optimization...amond other things, this should prevent spiders from indexing error pages!
All this (and more) is in the Dev build right now...watch for it in a (hopefully near) future release!
Last week, I decided I needed the capability for the Rainbow portal to let authenticated users 'customize' a module for themselves. This way, whenever the user loads the page with that module, his custom settings are retrieved and applied as the module is rendered.
With this functionality, a developer can allow the user to customize just about anything in the module; it could retain sort order for a list, filter preferences, even the theme of the module could be customized on a per-user level.
This enhancement has been applied to the 'dev' build, so Rainbow developers are free to play with it right now. Hopefully, end users will see it in the next release!
Read more about it here.
I finally 'finished' the Recycler module for the Rainbow Portal...at least enough so that it works and I'm reasonably confident in its security and reliability. This enables Rainbow portal administrators to delete modules, with the option to later restore them to the same (or a different) page...with the module's contents still intact.
I ended up splitting the 'Recycle Bin' functionality from the module itself, so that other developers can write their own (better) Recycler modules (and uninstall mine). The Rainbow core now holds all the functionality itself and exposes methods for future Recycler modules.
It's in the 'dev' build right now...when it eventually moves to the release build, you'll know it because the new 'Use Recycle Bin' Site Setting will appear in your portal's administration page.
You can read more about it here.
I just found these online resources that are 'local' to the Roscommon and Higgins Lake area. In the spirit of neighborly promotion-by-linking, I thought I'd mention them here with the hope the GoogleBot will pick them up.
Our Governor has declared May 5th as state employee recognition day, and as a small token of appreciation, has granted those employees 'free' use of all the Michigan State Parks for the week of May 2-8.
At first blush, that's a pretty nice gesture...there are some really great State Parks in Michigan (2 within 5 miles of my home). On second glance, however, it's not that great of a deal, and is really pretty laughable.
- Consider that the average temperatures for May run between 39 and 67 degrees Farenheit...a bit chilly for most 'park' activities.
- The state parks don't even open until May 1st. Now that they're open, the first few weeks are spent cleaning up a winter's worth of yuck.
- The employee 'appreciation' doesn't waive camping or other fees...just the $6 admission to the park...where I guess you could swim in 38 degree water (or, to be fair, launch your boat and go fishing - or waterskiing :) )
- For the past two years, most state employees have been forced to give up 4 hours of pay for every 80 they work, to help cure the state's whopping debt. Can you feel the love?
OK, OK...I know it's not PC, but it's REALLY funny...
Try a search on Gizoogle.com
Just pay very close attention to the descriptions of the results...thanks to Chris Farrell for the link!
Hopefully, this will save someone else a little time...
While visiting the Windows Update web site with a Windows 98 Second Edition (SE) machine, the error “Software Update Incomplete” kept popping up. I followed the instructions in Microsoft's KB 39585, but that didn't help.
I finally found this article, which describes a similar problem with MSN Messenger..you have to re-register a set of DLL's to reset Windows Update's information:
“regsvr32 softpub.dll Wintrust.dll Initpki.dll Rsaenh.dll Mssip32.dll Cryptdlg.dll”
Here's the body text of an email I received today...it just struck me as hilarious...
Dear Sir/Madam,
we have logged your IP-address on more than 40 illegal Websites. Important: Please answer our questions! The list of questions are attached.
Yours faithfully,
M. John Stellford
++-++ Federal Bureau of Investigation -FBI- ++-++ 935 Pennsylvania Avenue, NW, Room 2130 Washington, DC 20535 ++-++ (202) 324-3000
A virus was attached, as you might expect.
On an ASP.NET page with a couple DropDownLists, this problem surfaced.
When the page is called, it tries (unsuccessfully) to select the appropriate item in the DropDown, based on data retrieved from the database. The reported error is “A dropdown list cannot have multiple items selected“, even though I'm only making one selection.
Most of the offerings I found on the Internet said that one or the other of these selection methods must be used. [YourDropDownName].Items.FindByValue([YourDataFromDataBase]).Selected = true; ListItem objItem = [YourDropDownName].Items.FindByValue([YourDataFromDataBase]); [YourDropDownName].SelectedIndex = [YourDropDownName].Items.IndexOf(objItem);
I think both of them are OK to use.
The solution is to call the ClearSelection() method of the DropDownlist immeidately before selecting the value for it. I found it here, at the very bottom of the post. I never had to do that before, but it works!
While working on a custom module for a Rainbow installation, I recently ran into a new kind of issue. I created an 'edit' page for my module, deriving it from the Rainbow.UI.AddEditItemPage class.
When viewed in the browser, this new page lacks all of the css properties...no colors or fonts to match the rest of the portal.
The solution, it turns out, is that the <head> tag on that page must be told to run at the server...i.e....
This: <head runat="server"></head> Not This: <head></head>
This allows the CSS link to be injected when the page is called.
For the first time, today I noticed that Google's Gmail was unavailable for a large part of the day. I wonder if someone launched a DOS attack or something to knock the service offline...?

Be very careful about what you're clicking on when surfing the Internet. Take, for example, the following image:

At first glance, this looks deceptively like a real Windows 'Window', but it really is trying to get you to buy something, infect you with something, or at the very least, go to a site you really don't need to visit. Look carefully at the title bar (blue bar at the top of the window) and the status bar text (at the bottom of the window). If you try to click the 'Next' or 'Cancel' buttons, they've got you. Closing it with the red 'X' in the upper right corner is your best bet.
Through a short series of unfortunate events, my Sandisk Cruzer Mini 256MB USB flash drive recently went through an entire wash and dry cycle.
Surprisingly (or maybe not, for some readers), it still functions just fine, and didn't even lose any data during the ordeal. Maybe SanDisk could work that in to their marketing approach or something...
Given the popularity of my first post in this area, here is a second list of Windows processes that recently needed killing to bring a client's PC back to life...First, here's the obligatory disclaimer: Your results may vary...killing processes may screw up your system...you've been warned.
- CxtPls.exe – In a folder (C:\program files\CxtPls) along with CxtPls.dll and CxtPls.htm files. Also found CXTPLS.EXE-254B7FF2.pf. This one had an ‘Uninstall’ file that removed everything but the dll and another file called ProxyStub.dll
- Xdo26uwL.exe – found only XFO26UWL.EXE-2EBD47A6.pf in C:\windows\prefetch
- KagQn.exe -
- Sain.exe – located in C:\windows\system32 – likely a ‘Search Assistant’ from 180solutions. Related Links: here and here.
- TBPS.exe and TBPSSvc.exe – In the C:\Program Files\Toolbar folder…also found TBPS.EXE-2EE5A9EB.pf in C:\windows\prefetch. Related Link: here
- Support.exe - support.exe is a process which is registered as the W32.Akosw@mm virus. This virus comes with it's own SMTP engine which means it has the ability to send e-mails regardless of user interaction, and does so. It is a registered security risk and should be removed immediately
- PIB.exe - PIB.exe is an advertising program. This process monitors your browsing habits and distributes the data back to the author's servers for analysis. This also prompts advertising popups. This program is a registered security risk and should be removed immediately.
- dxmprxy.exe – located in C:\windows\system32
- fauutils.exe – located in C:\windows\system32
- EbatesMoeMoneyMaker1.exe
- dhbrwsr – located in C:\windows – probably adware - Related Links: here and here
Definitions for Support.exe and PIB.exe are taken directly from www.processlibrary.com, an excellent online (and free!) resource.
Many of the above processes couldn't be killed directly in Task Manager (because they'd pop right back as soon as I killed them). I use SysInternals Process Explorer to delete the entire process tree, and it worked great! Another warning, don't muck around with Process Explorer if you don't know what you're doing, bad things can happen.
|