ComputerWorld has a good article of what they consider the 8 most dangerous consumer technologies.
This is a topic I revisit often and a lot of good points are brought up in this article.

Technologist, Artist, and Geek
ComputerWorld has a good article of what they consider the 8 most dangerous consumer technologies.
This is a topic I revisit often and a lot of good points are brought up in this article.
Scott Lowe has Bhad Bhabie bicketta good article here describing some of the obsticles he ran into while installing Microsoft Exchange 2007
This will be helpful if I decide to stick with Exchange and upgrade to the 2007 release.
By now you may have heard of Google’s new initiative known as “Android”. Android is Google’s new project set to bring an open source mobile platform based on the Linux OS to the cell phone market. So what does this mean for the cell phone and mobile markets? Google has created an alliance called the “Open Handset Alliance” including a selection of 34 market leading hardware, software and telecom companies.
Andy Rubin, Google’s director of mobile platforms, and Android project leader said the open-source strategy would encourage rapid innovation and lower the bar to entry in the highly competitive cellphone market, where software accounts for an increasing share of the cost of making a phone.
I believe most of the excitement surrounds the fact that this is, in some fashion, an “open” project which means more support from more providers, manufacturers, developers, and applications with lower costs. However, it is still unclear how “open” it will be and it is still possible that handset makers and operators will “lock” their own release and limit use to their own services or applications. Either way, this is in sharp contrast to Apple’s iPhone which is completely shut down, locked out and restricted to anyone outside Apple.
One thing to note is that there will not be an actual Google device (“gPhone”). Instead, the platform will be freely available to developers and manufacturers who will create the mobile devices to use the Android software.
Andy Rubin together with other members of the crew talk about the so-called Gphone.
It will be very interesting to see how this plays out over the coming months and year(s).
A Quick Rant:
It is time to start planning for server upgrades at the company I work for. At the center of our network, we have an exchange 2000 server loaded with public folders. Public folders are crucial to our daily work and are used to organize all current publicity tours.
Unfortunately, Microsoft has planned to discontinue support of public folders after the Exchange 2007 release. From what I understand, they are available in the new release (2007), but not by default and will not be available in future releases. The system requirements also up the ante for an exchange upgrade, and our current hardware will need to be upgraded as well…which brings me to my dilemma.
I am leaning toward a recommendation for upgrading to Exchange 2007 and migrating to new server hardware required as well, …OR… do I consider the alternatives?
1) I have done some research on Exchange replacements and it seems that Scalix or Zimbra are as close as they come and they actually look pretty impressive. These run on linux based platforms and would run on existing hardware with public folder support. But this doesn’t come without it’s potential pitfalls.
The transition from Windows 2000 – Active Directory – Exchange combo to a Linux – LDAP – Scalix/Zimbra is not exactly an easy way out.
How does LDAP compare to AD for use with user/group authentication?
Can user and group accounts be transfered from AD to LDAP and maintain network permissions?
Can users be managed in the same way using LDAP as they are in AD?
Can I use Scalix/Zimbra with AD and forget the idea of needing LDAP? (after all, AD is pretty much just a modified LDAP).
2) Do I recommend the Exchange upgrade and try to find public folder replacement or develop a custom in-house replacement.
I like the idea of breaking the windows licensing trap and the potential savings, but at the same time, I am cautious about the support available with the alternatives, not to mention changes required make such a transition. I tend to think that the the second option is likely the easiest and more hassle-free of the two, however, I have yet to come across anything that works like public folders in a stand alone application.
So I have been working on setting up a fully integrated home automation system available from PlutoHome.com. If you are not aware, PlutoHome is home automation system available to the open source community with features to satisfy everyone from simple home controls, to advanced voip and media integration.
My latest venture into setting up a complete automation system is to integrate my voice network with the built-in Asterisk server installed with PlutoHome. The first step was to set up and configure two GrandStream Budget Tone 200 sip phones. Pluto’s plug and play detection picked up the phones as soon as I connected them to the network and installed the necessary software needed to work within the system. Some quick additional settings within each phone and I was able to make calls over my internal network from one phone to another.
The next step was to set up in and outbound calling from the PSTN.
I installed a X100P FXO card from x100p.com and this is where the trouble started.
After installing the card into an available PCI slot, my PlutoHome system did not seem to detect it even after rebooting. I tried some of the common commands from a terminal window, but had no success.
The solution it turns out was to compile and install the Zaptel drivers available from Digium. For what ever reason, PlutoHome does not include (at least as far as I could see) full zaptel support.
After installing and configuring zaptel, I was able set up inbound and outbound calling over the PSTN from my PlutoHome system.
In a later post, I will describe the process I used to install the zaptel drivers.
LG has announced that they will adopt ZigBee technology to power their HomNet System. LG, one of the leading providers of home appliances and entertainment equipment/devices is lending some much needed support to the ZigBee technology at a time when it’s reliability is being questioned.
I will not hide the fact that I am a fan of Zwave for no other reasons than I really like the protocol and it just works coupled with the recent disclosure of an “independant” study stating that other wireless networks sharing the 2.4-GHz band (wireless home networks /WLAN, microwaves, cordless phones, garage door openers), cause ZigBee signals to decay, and in some cases, fail completely.
As far as the studies go, I cannot say if there was any bias involved or support from other competitors (read: z-wave alliance <wink> ), but if there is any truth to the statements, then I for one will be seeking real data to contradict the statements.
References:
http://electronics.ihs.com/news/zwave-zigbee-wlan.htm
The whitepaper created from the study mentioned above.
I have been using PlutoHome as a home automation solution to control lighting, media (A/V), and my home phone network. LinuxMCE is a direct branch of PlutoHome originally ported to run on top of an Ubuntu Desktop. With the latest Beta of LinuxMCE, the desktop of choice is now Kubunu, the KDE version of Ubuntu. This change was made in order to overcome a limitation of Gnome’s X11 implementation that is not apparent in KDE.
To start things off, I downloaded 3 ISO files.
The LinuxMCE Packages and Cache disk are available as a single torrent file.
After downloading the ISO files, they were burned to CD using Nero.
Installing Kubuntu:
The first step to the actual install is make sure the target system is able to boot from a CD. This can be set by accessing the system BIOS, and setting the CDRom as the first boot device in the boot sequence. Refer to you Motherboard’s BIOS information for instructions on setting this up. Continue reading “Installing LinuxMCE 1.1 Beta 2 – The Good, The Bad, and The (mostly) Ugly!”
ASP.NET – I recently ported one of my older web ASP Application to a web ASP.NET Application which presented a few challenges along the way. One of these challenges was a need to manage a series of 30 check boxes within a form. This part of the application is used to manage user permissions, restricting what areas of the application individual users had access to.
The user permissions are stored in a database as a pipe (“|”) delimited string. when the page containing the form loads, the permission string is pulled from the database, and split into an array.
When loading a page, all the checkboxes that indicate a users permission need to be checked.
In good ol’e fashioned ASP, all the checkboxes in a form would be given the same “name” attribute, and a “value” attribute containing the permission string. When the page containing the form was loaded, a piece of client-side javascript would run and iterate through all the checkboxes. For each checkbox in the form, the script would then iterate through each permission array item and if the item matched the checkbox value attribute, the checkbox state would be set to “checked”.
ASP Form
<form name="permissions" method="post" action="process_page.asp"> <table width="461" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <input type="checkbox" name="setPermission" value="user_add">Add</ br> <input type="checkbox" name="setPermission" value="user_manage" />Manage</ br> <input type="checkbox" name="setPermission" value="user_delete">Delete</ br> <input type="checkbox" name="setPermission" value="user_edit"> Edit</br> <input type="checkbox" name="setPermission" value="user_setVisibility" /> set visibility</br> </td> </tr> </table> </form>
When the ASP page is submitted after altering user permissions (checking or unchecking boxes), server-side code gets the values of all the checked checkboxes using Request.Form(“Checkbox_name”) .value, converts it to a pipe (“|”) delimited string, and updates the database with the new delimited string.
When porting this to ASP.NET, we run into a problem when replacing the standard form checkboxes to ASP.NET CheckBox Controls. .Net CheckBox controls cannot have the same “name” attribute so we cannot access them as a group like we did in ASP. A workaround for this is to give each CheckBox Control an ID equal to the permission value.
ASP.NET Form
<form action="" method="post" name="CMSForm" id="CMSForm" runat="server">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="p_text1" width="67">
<asp:CheckBox ID="user_add" Text="Add" runat="server" cbValue="add_user"/>
<asp:CheckBox ID="user_manage" Text='View/Manage' runat="server" cbValue="view_user_manager"/>
<asp:CheckBox ID="user_delete" Text='Delete' runat="server" cbValue="del_user"/>
<asp:CheckBox ID="user_edit" Text='Edit' runat="server" cbValue="edit_user"/>
<asp:CheckBox ID="user_setVisibility" Text='Set Visibility' runat="server" cbValue="hide_show_user"/>
</td>
</tr>
</table>
</form>
Now for the FUN.NET
Now instead of using a full block of client-side javascript and nested loops as we did in ASP, we can access the ASP.NET CheckBox Controls directly using a few lines of server-side code and Casting.
The key to this is the change from using a “value” attribute to contain the permission value to using the Control’s ID to contain the permission value. Because the permission values are stored and pulled from a database, and split into an array, each array item can also be used to reference the CheckBox Controls directly without having to loop through each control.
To set the checked state of the CheckBox controls, we loop through the permissions array and Cast the string as a CheckBox Control allowing us to access that specific control.
I am using a MySql database here:
First we need to get or data from the database. “access” is the DB table column that stores my permission string for each user.
MySqlConnection MyConString = new MySqlConnection(...your datababase connection string here...);
MySqlCommand myCommand = new MySqlCommand("SELECT access FROM <your dataTable> WHERE emp_ID = <unique ID of user you want to manage> ", MyConString);
MyConString.Open();
MySqlDataReader dr = myCommand.ExecuteReader();
Next we get the string value of “access” and split it into an array.
try{
dr.Read();
}
catch(Exception ex){
however you want ot handle the exception here
}
char[] splitter = {'|'};
string[] arrPermissions = dr["access"].ToString().Split(splitter);
setCheckboxes(arrPermissions);
setCheckboxes Method (this is where the magic happens)
This method takes the permissions array as a argument, iterates through the array, casting the string value of each item as a CheckBox, and sets the Checked state of all matching CheckBox Controls.
private void setCheckboxes(string[] arrPermissions)
{
foreach(string strPermission in arrPermissions){
((CheckBox)this.CMSForm.FindControl(strPermission)).Checked = true;
}
}
The same technique can be applied to other .NET controls as well to change their attributes, styles, or whatever.
I could have just as easily changed the text of the controls using something like: ((CheckBox)this.CMSForm.FindControl(strPermission)).Text= “I am a CheckBox Control”;
Over the last couple years or so, my development focus has been on the .NET Framework and C# so, I’m sad to say, it’s been a while since I’ve written any “real” PHP code. I think the main reason for this is that I have been developing more and more desktop applications and less web applications. When I was writing web apps, I’d say my efforts were split pretty much down the middle between PHP and ASP. Then .NET came along with C# and I was hooked. I was able to continue to develop web apps but also transition to desktop development while using the same tools. C# definitely had an advantage here. But alas.. Continue reading “PHP – Break the Web Shackles!”
While writing my latest C# .NET software application, the need came to be able to allow users to enable and disable an “auto-start” feature. Users wanted to control whether the app would start automatically when they start their workstation, or log into their accounts, or whether they had to start it manually. The challenge came out the fact that this was a very small application and was being created using VS C# Express and Click-Once deployment. My options were to either manipulate the registry run keys, or create a method to create/delete an application shortcut in the startup folder. I opted for the shortcut solution figuring it was probably the safest and easiest solution (VS express editions have limited access to registry manipulation, not to mention that any keys created through the use of the application would be orphaned after uninstall). Continue reading “Creating Application Shortcuts for Click-Once Applications”
Stepping into casino gods for the first time, players are greeted by a homepage that communicates confidence and competence without resorting to flashy distractions or overwhelming pop-ups. The featured games are genuinely worth featuring, the navigation is logical and consistent across every section of the site, and the overall aesthetic strikes a perfect balance between modern design and practical usability. First impressions matter, and this platform gets them exactly right every single time.
Regular players at golden pharaoh casino often mention that the consistency of the experience is what keeps them loyal to the platform month after month without looking elsewhere. Whether you log in on a Monday morning or a Saturday night, the site performs identically well, with fast game loads, responsive controls, and zero unexpected downtime disrupting your session. In an industry where reliability can be frustratingly inconsistent, this kind of dependable performance genuinely stands out.
One of the quietly impressive things about r2p bet is how the platform manages to stay current without chasing every passing trend at the expense of what already works well. The core game library is rock solid with hundreds of proven titles, while new additions are clearly vetted for quality before they earn a spot in the catalogue. This curated approach means players can pick almost any game at random and still end up with a polished and engaging experience.
The team behind magius casino clearly understands that a great online casino is more than just a collection of games thrown together on a website. The entire user journey, from sign-up to cashout, has been refined to remove friction and maximise enjoyment at every touchpoint. Game loading times are consistently fast regardless of device, the promotion schedule offers genuine value without impossible wagering requirements, and the support desk operates with visible competence and care.
Navigating the game library at space casino is a genuinely pleasant experience thanks to a clean category system and a search function that actually delivers relevant results every time. Whether you are in the mood for a high-energy bonus slot, a slow-paced session of European roulette, or the social buzz of a live dealer table, the right game is never more than a few clicks away. The platform also remembers your recent favourites, making return visits even quicker and more convenient.
Spending time at 1red quickly reveals a platform built by people who understand what matters most to the modern online casino player. The interface stays out of the way and lets the games take centre stage, while behind the curtain robust security protocols guard every piece of personal and financial data. New releases arrive steadily to ensure the catalogue never feels stale, and the live casino section offers an authentic table experience complete with real dealers and real-time interaction.
Creating an account at ocean breeze casino feels like the beginning of a relationship with a platform that genuinely wants to keep you around for the long term. The welcome experience is smooth and informative without being pushy, the game recommendations are based on actual player preferences rather than promotional priorities, and the banking system works exactly as described every single time. It is refreshing to find an online casino where the reality consistently matches the promise.
Every detail at allwins casino suggests a platform that was designed iteratively with real player feedback rather than assembled in a rush to meet a launch deadline. The game filters work exactly as expected, account verification is handled respectfully and efficiently, and the FAQ section actually answers the questions players commonly ask rather than dodging them. When live support is needed, agents are responsive, helpful, and clearly empowered to resolve issues on the spot.