Archive for March 2010

How to add a DataGridTemplateColumn using a button to a WPFToolkit DataGrid that is bound to a DataTable?

Ok, so here is my goal. I have a DataGrid that is going to be bound to a DataTable.

I want to add a DataGridTemplateColumn when the DataContext changes.

For each row, I have an value that is either normal, warning, or error. If normal, I don’t want a button on the column at all. If error or warning, I want a button.

So the DataTable looks something like this but in my larger app (this is a minimal example) the data is dynamic in that it can contain different numbers of rows, difference column names, etc. So a static View and static binding isn’t going to work.

Field Value Compare
a 1 1
b 2 3
c 3 5
d 4 4

So, the idea is to get the WPFToolkit’s DataGrid view to look like this.  If the numbers differ by 1, it is a warning.  If the numbers differ by 2 it is an error.

Field Value Compare Action
a 1 1 Normal
b 2 3
c 3 5
d 4 4 Normal

So how do I do this with a WPFToolKit DataGrid that is bound to a Table?

Hopefully, I will figure this out:
Windows 7 64 bit
Visual Studio 2008 SP1
.NET 3.5
WPToolKit

I don’t have it working yet…

Step 1 – Create a new WPF Application project in Visual Studio

Step 2 – Add WPFToolKit as a Reference

  1. Right-click on project and choose Add Reference.
  2. Under the first tab called .NET select WPFToolkit.

Step 3 – Create the View

  1. Open the Window1.xaml.
    <Window x:Class="DataGridAddButtonColumnTest.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpftk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
        Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
        <Grid>
            <wpftk:DataGrid ItemsSource="{Binding}" Name="mDataGrid" CanUserAddRows="False" IsReadOnly="True" DataContextChanged="mDataGrid_DataContextChanged"></wpftk:DataGrid>
        </Grid>
    </Window>
    
    

Step 4 – Create the Data

  1. Create a TestData class.
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    
    namespace DataGridAddButtonColumnTest
    {
        public class TestData
        {
            #region Member Variables
            DataTable mTable;
            #endregion
    
            #region Constructors
    
    		 /*
    		 * The default constructor
     		 */
            public TestData()
            {
                mTable = MakeSampleDataTable();
            }
    
            #endregion
    
            #region Properties
    
            public DataTable Table
            {
                get { return mTable; }
                set { mTable = value; }
            }
    
    
            #endregion
    
            #region Functions
            private DataTable MakeSampleDataTable()
            {
                DataTable table = new DataTable();
                table.Columns.Add("Field", typeof(string));
                table.Columns.Add("Value", typeof(int));
                table.Columns.Add("Compare", typeof(string));
                //table.Columns.Add("Action", typeof(string));
    
                table.Rows.Add("a", "1", "1");
                table.Rows.Add("b", "2", "3");
                table.Rows.Add("c", "3", "5");
                table.Rows.Add("d", "4", "1");
    
                // Or should I include the button data here or not?
                //DataTable table = new DataTable();
                //table.Columns.Add("Field", typeof(string));
                //table.Columns.Add("Value", typeof(int));
                //table.Columns.Add("Compare", typeof(string));
                //table.Columns.Add("Action", typeof(string));
    
                //table.Rows.Add("a", "1", "1", "Normal");
                //table.Rows.Add("b", "2", "3", "Warning");
                //table.Rows.Add("c", "3", "5", "Error");
                //table.Rows.Add("d", "4", "1", "Normal");
    
    
                return table;
            }
            #endregion
        }
    }
    [/source]
    </li>
    	<li>Create a TestDataModel Class
    [sourcecode language="csharp"]
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Text;
    
    namespace DataGridAddButtonColumnTest
    {
        public class TestDataModel : INotifyPropertyChanged
        {
            #region Member Variables
            readonly TestData mTestData;
            public event PropertyChangedEventHandler PropertyChanged;
    
            #endregion
    
            #region Constructors
    
            /*
    		 * The default constructor
     		 */
            public TestDataModel(TestData inTestData)
            {
                mTestData = inTestData;
            }
    
            #endregion
    
            #region Properties
            public DataView View
            {
                get { return mTestData.Table.DefaultView; }
            }
    
            public TestData TestData
            {
                get { return mTestData; }
            }
    
            #endregion
    
            #region Functions
            #endregion
    
            #region Enums
            #endregion
    
            // Not sure if I even need to implement this for this test
            #region INotifyPropertyChanged Members
            protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
            {
    
                if (this.PropertyChanged != null)
    
                    this.PropertyChanged(this, e);
            }
    
            #endregion
        }
    }
    
  2. Add code to the Window1.xaml.cs file
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Controls.Primitives;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    using Microsoft.Windows.Controls;
    
    namespace DataGridAddButtonColumnTest
    {
        /// <summary>
        /// Interaction logic for Window1.xaml
        /// </summary>
        public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
            }
    
            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                TestData td = new TestData();
                TestDataModel tdm = new TestDataModel(td);
                mDataGrid.DataContext = tdm.View;
                CreateActionButtonColumn();
            }
    
            private void mDataGrid_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
            {
    
            }
    
            public void CreateActionButtonColumn()
            {
                Binding binding = new Binding("PropertyName") { Mode = BindingMode.TwoWay };
                DataGridTemplateColumn templateColumn = new DataGridTemplateColumn { CanUserReorder = false, Width = 85, CanUserSort = true };
                BindingOperations.SetBinding(templateColumn, DataGridColumn.HeaderProperty, binding);
                DataTemplate dataTemplate = new DataTemplate();
                FrameworkElementFactory tmpButton = new FrameworkElementFactory(typeof(Button));
                tmpButton.SetBinding(Button.NameProperty, binding);
                dataTemplate.VisualTree = tmpButton;
                templateColumn.CellTemplate = dataTemplate;
                mDataGrid.Columns.Add(templateColumn);
    
            }
    
        }
    }
    
    

Help! I don’t know how to finish this…

UPDATE 3/22/2010
I have an answer from http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6619249d-4353-4747-b3ad-d2748ac26d7b.

I will re-write this post with the correct details.

How to configure FreeBSD 8 to use a mini-PCI Intel 2200 AG wireless card on an IBM T40?

How to configure FreeBSD 8 to use an Intel 2200 AG wireless card on an IBM T40?

Usually I try to document every step, but I am not going to document how to install the mini-PCI card in your IBM T40, nor am I going to tell you how to download an ISO to overcome the 1802 BIOS error. But you got links…I hope the work in the future.

Step 1 – Install FreeBSD
I assume you are on a Laptop and want a desktop so here are my instructions for a desktop.
How to install and configure a FreeBSD 8 Desktop with Xorg and KDE?

You should now have your system in the same state that I have mine.

Step 2 – Verifying your device is installed
Ok, before we get started, lets at least make sure that the miniPCI Intel 2200 AG wireless card shows up.

  1. Us pciconf to look at loaded pci devices.
    $ pciconf -lv
  2. Locate the Intel 2200 BG mini-pci card. Mine shows up as follows:
    none3@pci0:2:2:0: class=0x028000 card=0x27018086 chip=0x42208086 rev=0x05 hdr=0x00
    vendor = ‘Intel Corporation’
    device = ‘driverIntel PRO/Wireless 2200BG (MPCI3B)’
    class = network

Step 3 – Setup/Install Intel Wireless Support

Ok, Intel requires you to accept a license agreement and you have to actually enter this acceptance in your /boot/loader.conf. Also you need to enable other wifi modules as well.

  1. Su to root.
    $ su

    Password:
    #

  2. Edit the /boot/loader.conf with your favorite editor (lets use easy editor or ee)
  3. # ee /boot/loader.conf
  4. Enter the following lines:
    # Intel 2200 BG mini-PCI
    legal.intel_iwn.license_ack=1
    if_iwn_load=”YES”
  5. Save and close /boot/loader.conf.

Note: If you want to see this work before you move one, feel free to reboot now.

I believe at this point you can connect to any wireless network that is not secured (not using WEP or WPA).

Net-Worm.Win32.Koobface.fwz virus passed through Facebook and Youtube

Hey all,

I got a post today in Facebook:

You Tube
http://merzoukiklaudia.blogspot.com/

When I click on it, I am taking to a Youtube video that downloads a file called Setup.exe.

Three obvious things tipped me off that this was a virus:
1. The video said it needed Flash 10.37 to run, but I had the latest Flash.
2. The file was named “setup.exe” and not something like
3. I didn’t notice at first that it was asking for flash 10.37 and the lastest version is 10.32.

So working for LANDesk which provides Antivirus (using Kaspersky) I naturally noticed this as a virus right away. It is pretty close to a Zero day virus. A Zero day virus means that most Antivirus companies don’t have content to detect and scan for a virus. However, about half the anti virus companies have released updated virus definitions for this virus today.

So it was probably released yesterday or as long as a few weeks ago and just now got detected.

This the the Net-Worm.Win32.Koobface.fwz virus according to Kaspersky.

The top 10 things that annoy programmers

The top 10 things that annoy programmers

Ha, this made me laugh so I thought I would share it.

Request for Adobe Flash player to exist native on FreeBSD is #3 on the Flash Player popularity list, lets make it #1

If you go to Adobe’s bug database for flash player and look up the most popular bug/feature requests for Flash Player you will see a request for Flash Player to be supported natively on FreeBSD is the #3 issue based on votes.
Adobe Flash Player Bug and Issue Management System – Popular Issues

Only 339 users have voted for this. There has to be more than 339 users in the FreeBSD community that want this. There are almost 8,000 fans on Facebook. So what we need is for these fans to unite and take just a moment to vote.

Lets see if we can be the #1 issue, and by a lot.
PC-BSD especially needs this. They are also trying to promote this bug. There is a link on the right of their home page. PC-BSD is doing its best to give us flash support using Linux compatibility, but it just isn’t enough. I have tested a few sites that just act weird or don’t work.

How to vote

  1. Create an account with Adobe by first going here:
    http://bugs.adobe.com/jira/secure/Signup!default.jspa

  2. Fill out the form to create a user account.
  3. Once your user account is created, go to your email and wait for an email to confirm your account. Make sure to check your junk mail if you don’t see it.
  4. Click the link in the email to activate your account.
  5. click the OK button on the web page once activated and you are taken to the login page.
  6. Log in.
  7. Select Projects | Flash Player and then click Popular Issues or just go to this link:
    http://bugs.adobe.com/jira/browse/FP-1060

  8. On the left there is a section called voting where you can click vote: Click it.

You have now voted for this issue.

Thank you all for voting,

P.S. Does this post make me a non-political lobbyist?

More right-click options in Windows 7 when you press shift

Hey all,

I recently noticed that their are more right-click options in Windows 7 when you hold down shift as your right-click.

You get different options based on the different items you right-click on, such as a folder, executable, etc…

I am not going to write a whole post, because I found this on another post.

http://www.winhelponline.com/blog/hidden-right-click-context-menu-options-windows-7/

Debian and Ubuntu users have the "Elitism" attitude or Being Technical is no excuse for being rude!

So I keep hearing complaints that FreeBSD users have a rudeness about them that some call “Elitism”.

Well, this is true, I have commented on forum posts when I have seen such. However, it is not the case that this is something that is strictly limited to FreeBSD users.

They past few days I was helping a user install Ubuntu on VMWare Server. Since I was the only one really helping the user he started making him comments directly to me.

Next thing I know, I was getting railed on by an Debian / Ubuntu guy.

First, he called me out directly and told me to “pay attention”:

Jared: Please, pay attention, that it should be special reason to use VMWare Workstation, because it’s not free.

What? I shouldn’t help this guy because his software is not free? This is obsurd.

Now, since the customer was asking how to do this with VMWare, I was quite puzzled, so I sent him an email explaining that containing this exact text:

When the person who started the discussions says that they are using VMWare you help them with their issue, you don’t rag on them for the version they are using.

You maybe should take a moment an re-read the post.

Yes, I was a little rude back. I could have responded better. This is a learning experience for next time.

Then he came back at me with a this:

Jared,

Actually you’re right. That’s why you also should re-read the initial posts and see that TS was talking about VMWare *server*. Also, as I understood, you are working in company that ignore risks of using illegal SW if you don’t care about it’s cost. Please, do not spread this approach to others.

So now he attacks my company and says I work for a company that ignores the risks of illegal software. Which is actually quite funny and ironic. I work for LANDesk and one of our main features is Software Licensing Monitoring, a feature that tracks your software usage vs. license count and makes sure that companies are not overusing licenses or stealing software.

Anyway, whether you are a FreeBSD user or a Debian user or technical in any way it doesn’t matter; Being technical is no excuse for being rude.

Speak nicer in forums and mailing lists. Stop flaming other people. Especially newbies. Don’t forget we were all newbies once.

How to troubleshoot Xorg on FreeBSD 8?

Ok, so I have been in Tech Support for most of my career and troubleshooting has become a skill I use without thinking about it.

Recently, I have been reading some posts on the FreeBSD forums about Xorg problems. I thought I would write a post about “How to troubleshoot Xorg.

Step 1 – Document the problem clearly

  1. Reproduce the issue and store any output errors or screenshot them (if possible) as needed.
  2. Reproduce the issue again but this time while doing so, document each step you took to reproduce the issue.

Note: You wouldn’t believe how many issues are solved during the process of documenting the steps to reproduce an issue.

Step 2 – Gather Hardware Details
Lets make sure we know what is in your system. Gather the output of this command to get the AGP, PCI, or PCI-Express devices in your system.

# pciconfig -lv

Step 3 – Gather Installed Software Details
We are going to run some commands here. The output of every command you run should be stored into a text file. If you are getting help from a forum, a mailing list or you are paying for support for a company, they are going to want as much information as possible.

Note: I assume you have sshd enabled and that you can both ssh to your machine and sftp to your machine. A windows ssh tools is PuTTY. A windows sftp tool is WinSCP.

  1. Get the basics about the installed FreeBSD system.# uname -a
  2. Make sure Xorg is installed and that any other required software or add-on software such as the Windows Manager (KDE, GNOME, Fluxbox) is installed.# pkg_info
  3. It is often good to just get the list of Xorg packages:# pkg_info |grep xorg
  4. Look in the package list to make sure that if you are using an NVidia or Intel driver that requires the installation of a binary package (as they are not open source) that you have installed the driver.

Step 4 – Gather Software Configuration Details

  1. Gather the Xorg configuration file. Now one does not always exists, but if it exists, it usually located at /etc/X11/xorg.conf
  2. Gather the /etc/rc.conf file so you can see what it is configured to enable.
  3. Gather the /boot/loader/loader.conf file so you can see what it is configured to enable.
  4. Gather the ~/.xinitrc or /home/username/.xinitrc file.

Step 5 – Gather logs and examine logs for errors

Gathering Logs

One process for making it easier to view logs and find the cause of errors. It is an obvious procedure to some.

  1. Backup all logs.
  2. Delete logs once backed up.
  3. Duplicate the issue.
  4. Gather the logs (both backed up and new logs).

The key is to limit the amount of data to go through. So by deleting the logs and duplicating the issue as fast as possible, your logs will be as small as possible and easier to go through.

  1. Gather the /var/log/Xorg.0.log file.
  2. You might want the /var/log/messages file.

Examine the logs for errors

Now that you have the smallest amount of data possible, it may be easier to search the logs for errors.

  1. Start out by greping or searching for words like fail, error, etc…
  2. If you didn’t find anything, then visually scan down the logs.

A nice way to watch a log file live as you duplicate the error is to use tail.

  1. Open two shells, maybe one directly on the system and one through ssh.
  2. In one shell, run this command to watch a specific log file, such as Xorg.0.log. (For this use the ssh shell if you have sshd enabled and opened on through ssh)# tail -f -n 50 /var/log/xorg.0.log
  3. Duplicate the issue in the other shell. (This would be the shell directory on the system.)
  4. Watch the dynamic log live and try to find the line where the error occurs.

Tip #1 – Enable sshd when testing

Sometimes running Xorg may result in a black screen and you can’t switch between ttys either using Alt+F# so you may be tempted to hard power off. Most the time if you have enabled sshd, you can ssh in and kill Xorg or reboot gracefully, saving you a hard power off.

Tip #2 – Try running Xorg with and without an xorg.conf

Supposedly you don’t need and xorg.conf always but there are times when you would want one. I have seen forum posts where the solution goes both ways. One user’s issue was resolved by not using an xorg.conf and letting Xorg just start and automatically handle everything. Another users issue was resolved by using an xorg.conf. So try it both ways.

Tip #3 – Use the FreeBSD forums correctly

If you have all of the above data and you still have an issue, if you go to Xorg section of the FreeBSD Forums, and make a post, you will be able to provide an educated, detailed question.

There is fine line between posting too much data or too little data and posting the perfect amount so a reader can have enough data to resolve your issue. I would say it is rare should post all configs and logs, but it also should be rare that you post a question alone without any details.

Ok, so this may not be complete. If you have anything to add please comment.

Writing troubleshooting guides for FreeBSD 8

I was thinking today, that though I am now a Systems Analyst / Developer at LANDesk, that doesn’t change the fact that I have been in Technical Support for 10+ years now and, no to so much brag as to state a fact, I have extensive troubleshooting skills and I am good at writing How to troubleshoot documents. Now having said that, I have not troubleshot FreeBSD for 10 years. While I have used FreeBSD for almost a decade, it often had no problems that required troubleshooting.

One of the first things you learn in support is that everything you troubleshoot has a troubleshooting process and once you have that troubleshooting process documented, you find you can expand on that document little by little. Each issue is solved more rapidly. Issues that are not solved by the process lead to an update of the process so the next time, a similar issue is solved by the process.

So today’s FreeBSD Friday post will be about Troubleshooting.

What is and how do I install the Northwind database?

The Northwind database is referenced online in sample code quite often. However, this renders the sample code useless to someone who doesn’t know what Northwind is or how to use it.

The Northwind database is basically just an example database that runs under SQL Server. This database is populated with data that represents an imaginary company’s sales data. It is a very common example database for SQL Server testing and sampling.

You might be wondering, what is SQL Server (though for your sake, I hope not). Well, SQL Server is Microsoft’s database software.

How do I know if SQL is installed?
If you have Visual Studio 2008 installed, you probably have SQL Server 2008 installed and you don’t even know it.

You can go to Add / Remove Programs and look for Microsoft SQL Server.

Or you can check for the services.

Or if you aren’t good with the GUI, you can open a command prompt and run this command to see if you have the SQL services:

C:\Users\UserName> sc query state= all |findstr SQL |findstr DISPLAY_NAME

DISPLAY_NAME: SQL Server (SQLEXPRESS)
DISPLAY_NAME: SQL Active Directory Helper Service
DISPLAY_NAME: SQL Server Agent (SQLEXPRESS)
DISPLAY_NAME: SQL Server Browser
DISPLAY_NAME: SQL Server VSS Writer

If you don’t see the services ouptut, you don’t have SQL Server Express installed. If you do have it, it is installed.

SQL Server is installed, now where do I get the Northwind Database?
Well, this was a struggle even for me. All the posts say the database creation script was installed with Visual Studio, but I sure don’t have any database creation scripts installed.

So I searched the web and Microsoft’s site for a while.

I finally found this link, but not until after about an hour of searching, hopefully this saves you some time.
http://www.codeplex.com/Wikipage?ProjectName=SqlServerSamples

So as of 3/4/2010, there was not “new” Northwind database, just and old one for SQL 2000. Which is fine because that old database is what most the sample code you find will be using.

I clicked on the Download link next to SQL Server 2000 Sample DBs.
I downloaded a ZIP file.
I extracted it.
I found the instnwnd.sql script among the extracted files.

How do I use the instnwnd.sql file to install the Northwind Database
This instnwnd.sql is nothing more than SQL script that will install the Northwind database for you. Well, you basically need your SQL server to run this script file and that is it.

If you have SQL Server Management Studio, just open it up and connect to your database, then File | Open the script and run it. But maybe you don’t know what SQL Server Management Studio is, let alone how to open it.

Sound easy right.

Well, everything sounds easy to some one who knows exactly how to do it, but if you don’t now how, it doesn’t sound easy. If you are among those that are hearing about this for the first time, let me help you.

Well, every server that has SQL Server installed has a command line tool installed called sqlcmd.exe. Hey, if I give you a command line you can run it, even if you don’t know what is really going on.

So just open a command prompt and run this command:

C:\Users\UserName> sqlcmd -E -i c:\path\to\instnwnd.sql

Changed database context to ‘master’.
Changed database context to ‘Northwind’.

Ok, the database installed now what?
Well, now you have the Northwind database installed.

From here you are one your own getting whatever sample code you have to connect to this database and compile.

How to resolve the "Could not create an instance of Type" error when "Reloading the designer" in Visual Studio 2008?

So, I recently started trying to implement the application I am developing using an MVVM model.

However, I ran into this annoying problem where when I have my main window’s XAML code including this line:

            <uc_treeview:PluginTreeViewControl Margin="0,0,0,29" MinWidth="240" />

My PluginTreeViewControl object looks as follows:

using System.Collections.ObjectModel;
using System.Windows.Controls;
using System.Windows.Input;
using LANDesk.HealthCheck.PluginOutput;
using LANDesk.HealthCheckViewer.LoadOnDemand.Sections;

namespace LANDesk.HealthCheckViewer.LoadOnDemand.PluginTreeView
{
    public partial class PluginTreeViewControl : UserControl
    {
        //readonly GroupViewModel mGroup;

        public PluginTreeViewControl()
        {
            InitializeComponent();

            Output o = new Output();
            OutputViewModel viewModel = new OutputViewModel(o.PluginGroups);
            base.DataContext = viewModel;
        }
    }
}

So I found that the lines after the InitializeComponent() function are causing my attempts to “Reload the designer” to fail. If I comment them out, the designer reloads. Of course, then if I have to uncomment them before compiling or debugging, and comment them again, when working in the Designer.

So after a while a thought came to me that maybe their is some type of “if” statement that would be true for the designer but not for runtime. So I researched and found this: DesignerProperties.GetIsInDesignMode Method

After reading about this, I changed my code in my Constructor to this:

    public PluginTreeViewControl()
    {
        InitializeComponent();

        // This "if" block is only for Visual Studio Designer
        if (DesignerProperties.GetIsInDesignMode(this))
        {
            return;
        }
        Output o = new Output();
        OutputViewModel viewModel = new OutputViewModel(o.PluginGroups);
        base.DataContext = viewModel;
    }

And wouldn’t you know it, I have solved the issue entirely. The Designer now reloads just fine (as it doesn’t seem to error) and at run time the “if” statement is always false so the lines I need always run.

Also, the overhead of an “if (DesignerProperties.GetIsInDesignMode(this))” in inconsequential. However, I attempted to remove this overhead in Release builds as follows:

    public PluginTreeViewControl()
    {
        InitializeComponent();

        // This "if" block is only for Visual Studio Designer
        #if DEBUG
        if (DesignerProperties.GetIsInDesignMode(this))
        {
            return;
        }
        #endif
        Output o = new Output();
        OutputViewModel viewModel = new OutputViewModel(o.PluginGroups);
        base.DataContext = viewModel;
    }

Now, I don’t have a problem with my Designer. This workaround makes me super happy!

KDevelop 4 sets a release schedule…target release date May 1, 2010.

Well, many people liked and used KDevelop however, if using KDE 4, KDevelop has not been available for some time. I myself went searching for other IDEs to use on FreeBSD. I think KDevelop in the past was a quality IDE for open source platforms and hopefully KDevelop 4 can maintain and surpass that quality.

The release schedule for KDevelop 4 can be found here.
http://www.kdevelop.org/mediawiki/index.php/KDevelop_4/4.0_Release_Schedule

Seriously…don't press F1 in XP? Just fix your bug already Microsoft…

Some things make me laugh.

http://www.computerworld.com/s/article/9164038/Microsoft_Don_t_press_F1_key_in_Windows_XP
…Microsoft told Windows XP users today not to press the F1 key when prompted by a Web site, as part of its reaction to an unpatched vulnerability that hackers could exploit to hijack PCs running Internet Explorer (IE)…

How can a company the size of Microsoft not have the ability to provide a timely patch on a security vulnerability? I don’t see how a patch isn’t created within four hours on this.

I remember a vulnerability was found in FreeBSD (see this), which isn’t a company with thousands of developers but an open source project and the response differences are amazing.

You are letting your users down Microsoft. Step up for your customers. Fix it and fix it fast.

Ahhh…the dying vmware network is back…

Ok, so I posted this a while ago:
Why does VMWare guests lose network access constantly on Windows 7 64 bit?

Well this issue didn’t happen from the middle of December until last week, it started again.

I toggled a bunch of settings, but every setting is correct. There must be something else causing this.

Update: Found this. I will set my NIC to not go to sleep and see if that works. Seems like a bug to me.
http://communities.vmware.com/message/1462154#1462154

Update: That didn’t work.
Yeah, my computer went to sleep anyway, and with that setting, I couldn’t wake it up remotely. Lame.

Windows 7 takes a long time to login, 50 seconds or more

Windows 7 takes a long time to login, 50 seconds or more on my IBM T61.

I have seen that there is an issue if you are using a solid color blackground instead of an image, however, I am using an image.
http://www.sevenforums.com/performance-maintenance/22147-slow-login-2.html

I guess I have to do more research on this.