Archive for the ‘Operating Systems’ Category.

How to move a window that is off the screen in Windows 7?

Ok, so I had a window that was off the screen when I opened it. This is really annoying and easy to fix, but not obvious to fix. In fact, I didn’t find it, my manager Beau found it and showed me.

In the past version of windows, you could find the application on the start bar and right-click and choose move. However, in Windows 7, you cannot do this exactly the same way, though it is close to the same.

For example, Notepad++ opened off the screen for me one day. I right-clicked on the icon for Notepad++ in the start bar, but there was not a move option.

Method 1 – Right-click on the mini square representation of your window
So, what you have to do is really easy, though not exactly intuitive. Instead of right-clicking on the icon, just let your cursor hover over it until the small square representation of the window appears. Then right-click in the small square to find the move option.

Select the move option and you can now use the arrows or the mouse cursor to move the window back onto your screen.

Note: If the window is minimized the move option is grayed out, so make sure the window is not minimized.

Method 2 – Shift + Right-click on the Icon (Only works if only one instance is open)
If you only have one instance of the application running, you can also use Shift + Right-click.

However, if you have two instances of the application running, this method doesn’t work for you, but gives you a different list of options, which I didn’t screen shot but here are the options:

Cascade
Show windows stacked
Show windows side by side
Restore all windows
Minimize all windows
Close all windows

I found the Shift + Right-Click method here:
http://www.sevenforums.com/newreply.php?do=newreply&noquote=1&p=353959

Now that I think about this it makes sense, because the icons on the task bar have a one to many relationship with the instances of the application they are running, while the pop up boxes have a one to one relationship.

Move over 3G phones, 4G is coming! For some, it is already here.

3G
Many people have jumped to buy smart phones but as of yet I am not one of them. The iPhone, the HTC with Google’s Android, the Blackberry Storm, all are smart phones using 3G technology now. In fact there are few phones purchased these days that don’t have 3g capability.

According to Wikipedia, here are some interesting bits of information about 3G

The first pre-commercial 3G network was launched by NTT DoCoMo in Japan branded FOMA, in May 2001…

By June 2007 the 200 millionth 3G subscriber had been connected….

So yes, many people have moved and are going to move to 3G.

Why I don’t have a 3G phone yet

  1. While 3G is nice, it is too slow to meet my needs. I have wireless internet access at my house, and at my work and rarely have a need for internet while driving my 10 minute commute to and from work.
  2. It is too slow for serious browsing and downloading (which I do a lot of) and nowhere near fast enough to use when gaming online (which I don’t do a lot of).
  3. The phone companies charge way to much for this poor performing internet access. It costs more than my much faster and much more reliable home internet access.

So when will I move to internet access on my phone?
When my phone can replace my home internet access, I will move to wireless internet on my phone. Imagine having a laptop without an AIR Card, yet having internet access where-ever I am. Whether I am home, away, at a hotel. In fact, such a feature could change the industry in that places like a hotels and coffee shops no longer need to be “hot spots” because everyone’s phone is their own “hot spot”.

Well, 3G made the “personal hot spot” a possibility though it cannot deliver this itself, the next generation, 4G, will come closer. However, it has taken the better part of this decade to get a point where 3G is the norm. How many years will it take until 4G is the norm?

4G
4G has some strong requirements according to Wikipedia:

The 4G working group…has defined the following as objectives of the 4G wireless communication standard:

* Flexible channel bandwidth, between 5 and 20 MHz, optionally up to 40 MHz.[2]
* A nominal data rate of 100 Mbit/s while the client physically moves at high speeds relative to the station, and 1 Gbit/s while client and station are in relatively fixed positions as defined by the ITU-R,[6]
* A data rate of at least 100 Mbit/s between any two points in the world,[6]
* Peak link spectral efficiency of 15 bit/s/Hz in the downlink, and 6.75 bit/s/Hz in the uplink (meaning that 1000 Mbit/s in the downlink should be possible over less than 67 MHz bandwidth)
* System spectral efficiency of up to 3 bit/s/Hz/cell in the downlink and 2.25 bit/s/Hz/cell for indoor usage.[2]
* Smooth handoff across heterogeneous networks,[7]
* Seamless connectivity and global roaming across multiple networks,[8]
* High quality of service for next generation multimedia support (real time audio, high speed data, HDTV video content, mobile TV, etc)[8]
* Interoperability with existing wireless standards,[9] and
* An all IP, packet switched network.[8]

At 100 MBit, 4G can replace my home internet access.

However, according to this article, 4G might not really be there: AT&T, Verizon and Sprint 4G: Not so fast

Where is 4G available
I didn’t take to much time to look at all the carriers, but 4G is available in some cities already through Sprint.
http://now.sprint.com/nownetwork/4G/

This is a flash web site and you have to let it load, then click near the bottom where it says 4G cities.

Baltimore, Chicago, Seattle, Denver, Boise, Austin, and many others already have it.
Houston, San Francisco, DC, New York are others are on the list to be getting it soon.
Alas, Salt Lake City was on neither list.

I could not find if this was true 4G or if it was not. According to Wikipedia,

The pre-4G technology 3GPP Long Term Evolution (LTE) is often branded “4G”

So is Sprint’s service really 4G or is it only a mis-branded pre-4G technology?

AT&T announced that its 4G network won’t be available until 2011 and I am not sure which cities it will roll out first.

What are the market repercussions of 4G?
Well, I already mentioned one. Many of the common “hot spots” will no longer need to exist.

However, that is not where the repercussions end. The biggest repercussions are to companies that provide DSL or Cable internet, or more generally, wired internet. They will suffer the same way that land lines have suffered: the user base will decline. Why would I pay for internet access for my house if I have fast internet access through my phone that my computer can leverage. There are still reasons for home internet access, such as families that need access to the internet when a 4G phone is not home. But when both parents and one or more kids have 4G phones, that might not be the case. There will almost always be internet around. So companies like Comcast or Cox could see a slow decline in users.

However, this is not going to happen for at least a decade, because first, 4G has to deliver on it’s promised speed, or we have to wait for it’s successor. Then 4G or its successor has to become the norm. And then it will take users a few years to get used to not using home internet access. So don’t sell your stock in wired internet companies yet. 🙂

Untapped Markets

  1. Docking Stations for phones – A computer docking station for the phone. Lets face, most people use a computer for email and browsing the internet and occasionally writing documents. If you had a docking station for an iPhone or an HTC, it would sell. However, I am not sure that the iPhone or the HTC could handle the video display yet, even if the docking station had an on board video card. This technologies is years away.

    A similar feature would be a laptop like apparatus that wasn’t a computer but just an LCD and keyboard that is run by your smart phone, but it drastically cheaper than a laptop, it might sell.

    Though this wouldn’t be for a gamer but the average home and small business user would adopt such a low cost solution to email and internet access, which is the most common user type. Using cloud tools such as Salesforce as a CRM and Google docs instead of MS Office are already happening todya and since a phone is powerful enough to use these applications, a phone-based docking station might meet many employee’s business needs today. Take away the license costs for Windows and Office, take away the help desk and IT costs of managing such windows-based PCs and a phone with a docking station that replaces a computer becomes an extremely attractive option.

    1. Cloud Computing for phones – Those jumping on the cloud computing bandwagon have in my opinion made a big mistake in thinking that its market is for the home computer and the Operating System. The market is for remote applications.

      The remote applications market is perfect for the future phones and future docking stations that replace the computer completely for some users. The apps and processing are offloaded to a web server somewhere in the could, so a device as simple as a phone doesn’t have to be in charge of the space required or the processing power for apps.

    2. Cloud Gaming Market – Not all users replace their home computers. The PC gaming market wouldn’t touch such a device until it was powerful enough to play today’s best games, which require some of the best computers and best video cards. However, PC gaming is in the decline as gaming systems have become more and more like computers themselves.

      You may think there that are already online games both simple and complex: simple, such as flash games; complex, such as World of Warcraft. Flash games require flash to be installed on the client, and a lot of processing occurs on the client. World of Warcraft has a very large installer and doesn’t completely run on the cloud, it is very resource intensive to the local computer. If a game ran completely on the cloud and all a gaming device had to do was display and pass input, a future generation of the smart phone could handle such a game.

How to make Apache handle. asp and .aspx links in FreeBSD or Linux? (Updated)

Ok, so what do you do when a site that was based on asp.net is converted to a Linux box and your product shipped with links to sites such as http://our.home.page/index.asp and many other .asp or aspx sites?

Should you use mono?
Yes, probably

See my mono post on Asp.Net here:

Asp.Net web services on FreeBSD and Apache using Mono

Should you migrate your code to php or ruby or another open source language?
Sure, maybe

If you choose not to go with mono at this point because it might be easy to re-write your code in php or ruby or any other open source language, especially if you are doing nothing more than echoing html code after performing simple calculations.

I haven’t tested it yet, but you may get a lot of the asp code automatically converted using this tool: asp2php

What about the fact that unchangeable links to my pages end with .asp or .aspx entensions?
It doesn’t matter what the file extension is, you can have that file extension handled by any scripting language. For example, to configure Apache to have php handle .asp or aspx file, you can follow the steps below.

If you have an index.asp file that should automatically be served by default, it is probably not in the list of files to serve by default, which is probably just index.htm and index.php. You can either rename index.asp to index.php or modify the httpd.conf to include the index.asp file. These steps assume you are changing the httpd.conf.

  1. Change to the apache configuration directory: /usr/local/etc/apache22/
  2. Edit the httpd.conf with ee.
    ee httpd.conf
  3. Search for “DirectoryIndex” to find the section where the directory index is configured.
  4. Add index.asp as the first item as shown:
    DirectoryIndex index.asp index.php index.html
  5. Change to the “Includes” directory which by default is here: /usr/local/etc/apache22/Includes
  6. Create a file that is named ending in .conf (For example, to show what the file does in the name, I used asp-as-php5.conf):
    # Handle .asp and .aspx with php
    AddType application/x-httpd-php .asp
    AddType application/x-httpd-php .aspx
  7. Restart apache. Now your .asp and .aspx files will be handled by php.

Copyright ® Rhyous.com – Linking to this page is allowed without permission and as many as ten lines of this page can be used along with this link. Any other use of this page is allowed only by permission of Rhyous.com.

FreeBSD 7.3 Released!

How to send an audio or voice email in Windows 7? (Steps should work in Vista or XP as well)

How to send an audio or voice email in Windows 7?

This can be done with special software and without specially software.

Without special software
Requirements:

  • Microphone – Often laptops come with microphones built-in. But a head set or a stick microphone usually has better results. If you don’t have one, buy one here: USB Microphone from Amazon
  • Email – any email that allows for attachments will do.

Step 1 – Record the email.

  1. Open sound recorder by going to Start and typing in “Sound Recorder” and choosing to open the application.
  2. Click “Start Recording” and talk into your microphone.
  3. Click “Stop Recording” when finished.
  4. Save the file where you want to save it. It is a .wav file.

Step 2 – Send the .wav file as an attachment

  1. Open your favorite mail program or web-based email tool.
  2. Start a new email or compose a new email.
  3. Enter a recipient.
  4. Enter a subject.
  5. Add the .wav file as an attachment.
  6. Click Send.

With special software
There is special software for doing this, and there are lots of different types. I am only going to discuss one piece of software here called WaxMail that is an integration tool to Outlook or Outlook Express.

Step 1 – Download WaxMail.

  1. Go to the web site: http://www.waxmail.biz
  2. Choose the correct download based on whether you are using Outlook or Outlook Express and click it.
  3. Follow the download instructions and on step 3 click the download button.
  4. Save the file to where ever you want.

Step 2 – Install WaxMail

  1. Make sure Outlook or Outlook Express is closed.
  2. Run the downloaded executable: setup_waxmail_1_0_0_40.exe
  3. Follow the installation instructions.
  4. Finish.

Note: I use Outlook at work, so I am going to show you an example using Outlook. I am not going to post an example using Outlook Express but it should be similar.

Step 3 – Use WaxMail to send a Voice Email

  1. Open Outlook or Outlook Express. You should now have a WaxMail toolbar.

  2. Click New WaxMail. You get a new email message and the WaxMail voice recorder show up.

  3. Click big red Record button and talk into your microphone.
  4. Click Stop when you are finished talking.
  5. Click the rename option and rename the voice file. The voice message is named something generic and you can see it in the WaxMail tool in a white box and there is a Rename and a Delete button
  6. In the email under To: enter the recipient.
  7. Also give the email a valid Subject.

    It should now look something like this:

  8. Click Send.

The one thing that I don’t like is that this line is appended to all emails unless you purchase WaxMail.

Tired of typing emails? WaxMail lets you record and send voice messages via email. Get your free copy from www.waxmail.biz

I looked for an open source or free version without advertising and that didn’t cost any money, but I couldn’t find one. If you find one, please let me know, otherwise you have live with the ad.

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.

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.

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.

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.