Archive for February, 2011

Trace dump any object in Actionscript

Thursday, February 24th, 2011

When debugging Actionscript code you often want to see what’s inside your custom objects.

For instance here is a simple user object:

public class User
{
		public var id:Number = 123456;
		public var name:String = "Valiant Gladiator";

		public function User()
		{
		}
}

A simple trace will not work as it will return only the type of the object:

var u:User = new User;
trace(u);

returns:

[object User]

which is not very informative, while

var u:User = new User;
trace(ObjectUtil.toString(u));

returns:

(user.object::User)#0
id = 123456
name = “Valiant Gladiator”

Here we can see inside the guts of the object with all its members variables listed along with their value.

Bottom line: use ObjectUtil.toString()

When Adobe Flash Builder 4 cannot locate Adobe Flash Player

Wednesday, February 23rd, 2011

After installing the latest Flash Builder 4, ready to launch the app in debug mode, and bang! Flash Builder doesn’t find Flash!

Here is the ominous message:

Flash Builder cannot locate the required version of Adobe Flash Player. You might need to install the Flash Player or reinstall Flash Builder.

Do you want to try to run your application with the current version?

So Flash Builder, the tool used to compile Flash apps, cannot even launch its own result of compilation?

After the usual drill of uninstalling Flash Player and installing it again with all debug flavors of it, the problem is still there.

By the way this process is not trivial, you must:

1/ uninstall Flash Player by running a special tool making sure your web browsers are not running
2/ install the debug flavors you want:

The debug version for IE on Windows:

Download the Windows Flash Player 10.2 ActiveX control content debugger (for IE) (EXE, 2.99MB)

The debug version for Firefox on Windows:

Download the Windows Flash Player 10.2 Plugin content debugger (for Netscape-compatible browsers) (EXE, 2.95MB)

Now you would think after reinstalling Flash Player as suggested in the error message it would work?

No.

The problem arises when you don’t use the HTML wrapper to launch the app.

By default in the Project Properties (Project / Properties / Flex Compiler / HTML wrapper), “Generate HTML wrapper file” is checked.

This mean that when you run the app (or debug it), an HTML wrapper will be created and your default browser (or the one you manually set in Windows / Preferences / General / Web Browser) will be launched pointing to the location of that wrapper.
And most of the time it will work as the Flash Player installation above usually does its job.

But if the “Generate HTML wrapper file” is unchecked, Flash Builder will attempt to launch it without web browsers.
The problem is that it doesn’t even know the path to the Flash Player by default, even though it’s located in one of its own subfolders:
C:\Program Files (x86)\Adobe\Adobe Flash Builder 4\player\win\10.1\FlashPlayerDebugger.exe

The solution is to make sure your .swf files are associated to the debug Flash Player:
1/ In the Windows Explorer, right click on any .swf file you find
2/ “Open with…”, “Choose default program…”, “Browse…”
3/ find your Debug Flash Player, most likely located somewhere in the vicinity of C:\Program Files (x86)\Adobe\Adobe Flash Builder 4\player\win\10.1\FlashPlayerDebugger.exe

Now the error message should be gone and all is fine.

Would that be possible for Flash Builder 4 to try this location by itself?
Or at least write a more meaningful message than reinstalling Flash Player and/or Flash Builder?

Just In: Windows Phone 7 will power the Nokia phones

Friday, February 11th, 2011

Microsoft just announced they partnered with Nokia to be their preferred OS.

Symbian is dead!

Here’s the press release:

LONDON – Feb. 11, 2011 – Nokia and Microsoft today announced plans to form a broad strategic partnership that would use their complementary strengths and expertise to create a new global mobile ecosystem.

Nokia and Microsoft intend to jointly create market-leading mobile products and services designed to offer consumers, operators and developers unrivalled choice and opportunity. As each company would focus on its core competencies, the partnership would create the opportunity for rapid time to market execution. Additionally, Nokia and Microsoft plan to work together to integrate key assets and create completely new service offerings, while extending established products and services to new markets.

Under the proposed partnership:


Nokia would adopt Windows Phone as its principal smartphone strategy, innovating on top of the platform in areas such as imaging, where Nokia is a market leader.

Nokia would help drive the future of Windows Phone. Nokia would contribute its expertise on hardware design, language support, and help bring Windows Phone to a larger range of price points, market segments and geographies.

Nokia and Microsoft would closely collaborate on joint marketing initiatives and a shared development roadmap to align on the future evolution of mobile products.

Bing would power Nokia’s search services across Nokia devices and services, giving customers access to Bing’s next generation search capabilities. Microsoft adCenter would provide search advertising services on Nokia’s line of devices and services.

Nokia Maps would be a core part of Microsoft’s mapping services. For example, Maps would be integrated with Microsoft’s Bing search engine and adCenter advertising platform to form a unique local search and advertising experience

Nokia’s extensive operator billing agreements would make it easier for consumers to purchase Nokia Windows Phone services in countries where credit-card use is low.

Microsoft development tools would be used to create applications to run on Nokia Windows Phones, allowing developers to easily leverage the ecosystem’s global reach.

Nokia’s content and application store would be integrated with Microsoft Marketplace for a more compelling consumer experience.
“Today, developers, operators and consumers want compelling mobile products, which include not only the device, but the software, services, applications and customer support that make a great experience,” Stephen Elop, Nokia President and CEO, said at a joint news conference in London. “Nokia and Microsoft will combine our strengths to deliver an ecosystem with unrivalled global reach and scale. It’s now a three-horse race.”

“I am excited about this partnership with Nokia,” said Steven A. Ballmer, Microsoft CEO. “Ecosystems thrive when fueled by speed, innovation and scale.The partnership announced today provides incredible scale, vast expertise in hardware and software innovation and a proven ability to execute.”

——————————————————————

Update 03/28/2011:
Nokia confirmed Symbian is Dead: no more Symbian phones after 2012.
It also raises some questions about the future of Qt since Nokia acquired Trolltech in 2008.

Upgrade to the latest Microsoft Advertising SDK for Windows Phone 7 to avoid application crashes

Thursday, February 10th, 2011

Microsoft provides an ad control to integrate in Windows Phone applications.

The first version of the SDK, namely 2.1.9130.1 released on Sept.29 2010, has a critical bug that crashes your whole application when the ads are set to auto rotation.

You know you’re affected if your application unexpectedly crashes with an “Element is already the child of another element.” error message:

System.InvalidOperationException was unhandled
  Message=Element is already the child of another element.
  StackTrace:
       at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
       at MS.Internal.XcpImports.Collection_AddValue[T](PresentationFrameworkCollection`1 collection, CValue value)
       at MS.Internal.XcpImports.Collection_AddDependencyObject[T](PresentationFrameworkCollection`1 collection, DependencyObject value)
       at System.Windows.PresentationFrameworkCollection`1.AddDependencyObject(DependencyObject value)
       at System.Windows.Controls.UIElementCollection.AddInternal(UIElement value)
       at System.Windows.PresentationFrameworkCollection`1.Add(UIElement value)
       at Microsoft.Advertising.Mobile.UI.AdFrameManager.CreateNewFrame(FrameworkElement[] controls)
       at Microsoft.Advertising.Mobile.UI.AdFrameManager.DisplayNextFrame(Boolean newAd)
       at Microsoft.Advertising.Mobile.UI.AdFrameManager.ResumeFrameRotation()
       at Microsoft.Advertising.Mobile.UI.AdControl.ActivateAdControl()
       at Microsoft.Advertising.Mobile.UI.AdControl.OnParentSelectionChanged(Object sender, SelectionChangedEventArgs e)

The workaround so far was to disable auto rotation:

xmlns:ad="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI"

<ad:AdControl AdModel="Contextual" AdUnitId="123" ApplicationId="123456" RotationEnabled="False" />

On December 8th 2010, Microsoft released an update to the SDK, version 2.1.11120.1

This update seems to have fixed the problem and can be downloaded here.

If you’re running ads in your apps on WP7, please do upgrade to the latest version as you may not even be aware of this bug.

Microsoft showed a lack of communication about this update:

1/ The blog post announcing the update doesn’t describe what the update consists of, and which bugs it fixes

2/ The download page does not have any changelog of overview describing what bug fixes and features are included in the update

In contrast, the Windows Phone Developer Tools January 2011 Update download page does have an Overview section summarizing the important changes.

3/ No email or communication was sent to the PubCenter users.

As a PubCenter member I receive updates on how great PubCenter is, that it represents 33.8% of U.S search queries with the partnership with Yahoo! and other communications explaining how to use PubCenter.

4/ No message in the “What’s New” section of the PubCenter advertises the update.

The last message I have from this section dates back to September.

How come, with at least 4 different communication channels listed above, I’m not alerted when something really important happens, like an update to a buggy SDK?

Did I completely miss it?
Or was it an intentional silent update to avoid admitting an embarrassing bug?

A search on “Element is already the child of another element” in the PubCenter forums yields nothing.

The same search on the Windows Phone 7 developer forums returns 2 main threads:

One with a user (Momenta aka Matt Dotson) posting a workaround on December 18th, 10 days after the release of the SDK update, so obviously he was not aware of the update either.

Another thread started on November 16th with user as far as Jan. 23rd posting they encounter the problem before a Microsoft employee (Mark Chamberlain) suggests using the latest Advertising SDK:

Are you folks using the latest Advertising SDK?

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b0f00afc-9709-4cc2-ba2c-57728db6cbd6

I found an internal email thread suggesting that it is the cure for the issue (Element is already the child of another element)

Hope this helps,
Mark

Obviously I was not the only one not knowing about the update.

To the Microsoft Advertising SDK team, could you please be more communicative about your updates and bug fixes?

Developers would greatly appreciate.

——————————————————————

Update 02/11/2011:
MSFT responded favorably to our request for more communication.
Thanks guys for being proactive and listening to your developer community.
MSFT is doing a great job following and supporting their dev community for Windows Phone 7, we’re impressed.

Update 03/24/2011:
Well we’re not impressed anymore: on 02/11 Douglas Robb from Microsoft acknowledged the problem this way:

Thanks for the suggestion. We hear you. Those above me also hear you. When I say ‘those above me’ that means pretty much everybody, so have no fear, the word is out.

And we falsely assumed the next release would be… advertised (pun intended).
It was not: a new version was released on 03/04.
Thanks again to Mark Chamberlain to let the WP7 devs know about it.

We urged them again to correct this situation and hopefully next time have the new release properly advertised.
In the meantime, the only way to tell a new release is out is too… refresh the download page everyday.
Oh so lame in 2011 when they could have used one of those (modern?) communication channels:
- a special email sent just for the release
- the “weekly blog recap” email blast
- “Messages” section of the dashboard
- the pubCenter blog

Even more confusing: Only the XNA version of the SDK was updated, not the Silverlight:

Before installing the latest version (and using the Dec. 08 2010 version):
Microsoft.Advertising.Mobile.UI.dll is at version 2.1.11120.1, filesize 89,912 bytes
Microsoft.Advertising.Mobile.Xna.dll is at version 5.1.0.148, filesize 214,400 bytes

After installing
Microsoft.Advertising.Mobile.UI.dll is at version 2.1.11120.1, filesize 89,912 bytes (NO CHANGE)
Microsoft.Advertising.Mobile.Xna.dll is at version 5.1.0.166, filesize 216,472 bytes

It can be extremely confusing because the download page is now using the version of the XNA DLL and shows 5.1.0.166 as the version number, which is correct for the XNA library only.
Previously this same download page was using the version of the Silverlight DLL (2.1.11120.1) to show the version.

Dear PubCenter, obviously you cannot switch between using the Silverlight version of the DLL and the XNA version.
Either provide 2 different downloads links with their respective version tied to the DLL version and separate the DLLs, or come up with a compounded version number.
Next time you update the Silverlight SDK, your download link will have a version starting in 2.X, don’t you think that will confuse everyone using the latest 5.1.0.166?

Update 03/30/2011:
Microsoft now advertising updates and the changelog.
These are for the Silverlight update of December 8th 2010 and the XNA update of March 4th 2011 (about time to get the changelogs…).
Hopefully next release will be advertised the proper way through different communication channels (blog, emails, newsletter, twitter) along with a much needed changelog.

Update 04/05/2011:
Troy Wood, Portfolio Manager for Windows Phone 7 App Publishers writes:
“Starting with 5.2, both, Silverlight and XNA will use same 5.2.xxxx.y version number.”
Seems the revision problem is fixed for next release.

Using ethtool to determine Ethernet link speed, not mii-tool

Thursday, February 3rd, 2011

mii-tool is a deprecated tool for checking the link speed of an Ethernet port.

Unfortunately, mii-tool is still distributed by default in the most recent Linux distributions like Ubuntu 10.10 as part of the net-tool package, while ethtool is not!

The main problem is that mii-tool is so old, it doesn’t even support Gigabit Ethernet.

Here is an example on a GigE port:

bash# /sbin/mii-tool
eth0: negotiated 100baseTx-FD, link ok
bash#
bash# /sbin/mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
  product info: vendor 00:aa:00, model 57 rev 0
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
  link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
bash#

The ports are reported at 100 Mbps by mii-tool.

And ethtool finds the correct speed: 1000 Mbps:

bash# /sbin/ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: umbg
        Wake-on: g
        Current message level: 0x00000003 (3)
        Link detected: yes
bash#

Looking closer at the manpage of mii-tool, it dates back to 2004, and doesn’t list 1000 as a supported media:

MII-TOOL(8) MII-TOOL(8)

NAME
mii-tool – view, manipulate media-independent interface status

SYNOPSIS
mii-tool [-v, --verbose] [-V, --version] [-R, --reset] [-r, --restart] [-w, --watch] [-l, --log] [-A, --advertise=media,...] [-F, --force=media] [interface ...]

DESCRIPTION
This utility checks or sets the status of a network interface’s Media Independent Interface (MII) unit. Most fast ethernet adapters use an MII to autonegotiate link speed and duplex setting.

Most intelligent ne
capabilities. Some
force the MII to operate in one mode, instead of autonegotiating. The -A and -F options are mutually exclusive.

The default short output reports the negotiated link speed and link status for each interface. If an interface or interfaces are not specified on the command line, then mii-tool will check any available interfaces from eth0 through eth7.

OPTIONS
-v, –verbose
Display more detailed MII status information. If used twice, also display raw MII register contents.

-V, –version
Display program version information.

-R, –reset
Reset the MII to its default configuration.

-r, –restart
Restart autonegotiation.

-w, –watch
Watch interface(s) and report changes in link status. The MII interfaces are polled at one second intervals.

-l, –log
Used with -w, records link status changes in the system log instead of printing on standard output.

-F media, –force=media
Disable autonegotiation, and force the MII to either 100baseTx-FD, 100baseTx-HD, 10baseT-FD, or 10baseT-HD operation.

-A media,…, –advertise=media,…
Enable and restart autonegotiation, and advertise only the specified media technologies. Multiple technologies should be separated by commas. Valid media are 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, and 10baseT-HD.

DIAGNOSTICS
SIOCGMIIPHY on ‘eth?’ failed: Invalid argument
If the interface is not running (up), kernel will refuse to report its link state.

SIOCGMIIPHY on ‘eth?’ failed: Operation not permitted
Most kernels restrict access to root.

SIOCGMIIPHY on ‘eth?’ failed: No such device
This error is shown, if the kernel does not know about the named device.

SIOCGMIIPHY on ‘eth?’ failed: Operation not supported
The interface in question does not support MII queries. Most likely, it does not have MII transceivers, at all.

AUTHORS
David Hinds – dhinds@pcmcia.sourceforge.org
Donald Becker – becker@scyld.com
Bernd Eckenfels – ecki@debian.org

net-tools 2004/03/28 23:30:00 MII-TOOL(8)

Yet mii-tool is still available on some very recent Linux distro like the latest Ubuntu 10.10, while you have to manually install ethtool.

bash# apt-cache search ethtool
ethtool - display or change Ethernet device settings
ifplugd - configuration daemon for ethernet devices
bash#
bash# apt-get install ethtool
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  dbconfig-common php5-gd libmcrypt4 libt1-5 libgd2-xpm php5-mcrypt wwwconfig-common javascript-common libjs-mootools
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  ethtool
0 upgraded, 1 newly installed, 0 to remove and 70 not upgraded.
Need to get 76.4kB of archives.
After this operation, 279kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ maverick/main ethtool amd64 1:2.6.34-2 [76.4kB]
Fetched 76.4kB in 1s (58.0kB/s)
Selecting previously deselected package ethtool.
(Reading database ... 64086 files and directories currently installed.)
Unpacking ethtool (from .../ethtool_1%3a2.6.34-2_amd64.deb) ...
Processing triggers for man-db ...
Setting up ethtool (1:2.6.34-2) ...
bash#

ethtool has also many more interesting options compared to mii-tool:

bash# ethtool -h
ethtool version 2.6.34
Usage:
ethtool DEVNAME Display standard information about device
        ethtool -s|--change DEVNAME     Change generic options
                [ speed %d ]
                [ duplex half|full ]
                [ port tp|aui|bnc|mii|fibre ]
                [ autoneg on|off ]
                [ advertise %x ]
                [ phyad %d ]
                [ xcvr internal|external ]
                [ wol p|u|m|b|a|g|s|d... ]
                [ sopass %x:%x:%x:%x:%x:%x ]
                [ msglvl %d ]
        ethtool -a|--show-pause DEVNAME Show pause options
        ethtool -A|--pause DEVNAME      Set pause options
                [ autoneg on|off ]
                [ rx on|off ]
                [ tx on|off ]
        ethtool -c|--show-coalesce DEVNAME      Show coalesce options
        ethtool -C|--coalesce DEVNAME   Set coalesce options
                [adaptive-rx on|off]
                [adaptive-tx on|off]
                [rx-usecs N]
                [rx-frames N]
                [rx-usecs-irq N]
                [rx-frames-irq N]
                [tx-usecs N]
                [tx-frames N]
                [tx-usecs-irq N]
                [tx-frames-irq N]
                [stats-block-usecs N]
                [pkt-rate-low N]
                [rx-usecs-low N]
                [rx-frames-low N]
                [tx-usecs-low N]
                [tx-frames-low N]
                [pkt-rate-high N]
                [rx-usecs-high N]
                [rx-frames-high N]
                [tx-usecs-high N]
                [tx-frames-high N]
                [sample-interval N]
        ethtool -g|--show-ring DEVNAME  Query RX/TX ring parameters
        ethtool -G|--set-ring DEVNAME   Set RX/TX ring parameters
                [ rx N ]
                [ rx-mini N ]
                [ rx-jumbo N ]
                [ tx N ]
        ethtool -k|--show-offload DEVNAME       Get protocol offload information
        ethtool -K|--offload DEVNAME    Set protocol offload
                [ rx on|off ]
                [ tx on|off ]
                [ sg on|off ]
                [ tso on|off ]
                [ ufo on|off ]
                [ gso on|off ]
                [ gro on|off ]
                [ lro on|off ]
                [ ntuple on|off ]
                [ rxhash on|off ]
        ethtool -i|--driver DEVNAME     Show driver information
        ethtool -d|--register-dump DEVNAME      Do a register dump
                [ raw on|off ]
                [ file FILENAME ]
        ethtool -e|--eeprom-dump DEVNAME        Do a EEPROM dump
                [ raw on|off ]
                [ offset N ]
                [ length N ]
        ethtool -E|--change-eeprom DEVNAME      Change bytes in device EEPROM
                [ magic N ]
                [ offset N ]
                [ length N ]
                [ value N ]
        ethtool -r|--negotiate DEVNAME  Restart N-WAY negotation
        ethtool -p|--identify DEVNAME   Show visible port identification (e.g. blinking)
               [ TIME-IN-SECONDS ]
        ethtool -t|--test DEVNAME       Execute adapter self test
               [ online | offline ]
        ethtool -S|--statistics DEVNAME Show adapter statistics
        ethtool -n|--show-nfc DEVNAME   Show Rx network flow classificationoptions
                [ rx-flow-hash tcp4|udp4|ah4|sctp4|tcp6|udp6|ah6|sctp6 ]
        ethtool -f|--flash DEVNAME      FILENAME Flash firmware image from the specified file to a region on the device
               [ REGION-NUMBER-TO-FLASH ]
        ethtool -N|--config-nfc DEVNAME Configure Rx network flow classification options
                [ rx-flow-hash tcp4|udp4|ah4|sctp4|tcp6|udp6|ah6|sctp6 m|v|t|s|d|f|n|r... ]
        ethtool -U|--config-ntuple DEVNAME      Configure Rx ntuple filters and actions
               [ fl
        ethtool -u|--show-ntuple DEVNAME        Get Rx ntuple filters and actions

        ethtool -h|--help               Show this help
bash#

And its manpage:

ETHTOOL(8)

NAME
ethtool - Display or change ethernet card settings

SYNOPSIS
ethtool ethX

ethtool -h|--help

ethtool -a|--show-pause ethX

ethtool -A|--pause ethX [autoneg on|off] [rx on|off] [tx on|off]

ethtool -c|--show-coalesce ethX

ethtool -C|--coales
usecs-low N] [tx-frames-low N] [pkt-rate-high N] [rx-usecs-high N] [rx-frames-high N] [tx-usecs-high N] [tx-frames-high N] [sample-interval N]

ethtool -g|--show-ring ethX

ethtool -G|--set-ring ethX [rx N] [rx-mini N] [rx-jumbo N] [tx N]

ethtool -i|--driver ethX

ethtool -d|--register-dump ethX [raw on|off] [hex on|off] [file name]

ethtool -e|--eeprom-dump ethX [raw on|off] [offset N] [length N]

ethtool -E|--change-eeprom ethX [magic N] [offset N] [length N] [value N]

ethtool -k|--show-offload ethX

ethtool -K|--offload ethX [rx on|off] [tx on|off] [sg on|off] [tso on|off] [ufo on|off] [gso on|off] [gro on|off] [lro on|off] [rxhash on|off]

ethtool -p|--identify ethX [N]

ethtool -r|--negotiate ethX

ethtool -S|--statistics ethX

ethtool -t|--test ethX [offline|online]

ethtool -s ethX speed N [duplex half|full] [port tp|aui|bnc|mii] [autoneg on|off] [advertise N] [phyad N] [xcvr internal|external] [wol p|u|m|b|a|g|s|d...] [sopass xx:yy:zz:aa:bb:cc] [msglvl N]

ethtool -n ethX [rx-flow-hash tcp4|udp4|ah4|sctp4|tcp6|udp6|ah6|sctp6]

ethtool -N ethX [rx-flow-hash tcp4|udp4|ah4|sctp4|tcp6|udp6|ah6|sctp6 m|v|t|s|d|f|n|r...]

ethtool -f|--flash ethX FILE [N]

ethtool -u|--show-ntuple ethX

ethtool -U|--config-
[action queue or drop]

DESCRIPTION
ethtool is used for querying settings of an ethernet device and changing them.

ethX is the name of the ethernet device on which ethtool should operate.

OPTIONS
ethtool with a single argument specifying the device name prints current settings of the specified device.

-h --help
Shows a short help message.

-a --show-pause
Queries the specified ethernet device for pause parameter information.

-A --pause
Changes the pause parameters of the specified ethernet device.

autoneg on|off
Specifies whether pause autonegotiation should be enabled.

rx on|off
Specifies whether RX pause should be enabled.

tx on|off
Specifies whether TX pause should be enabled.

-c --show-coalesce
Queries the specified ethernet device for coalescing information.

-C --coalesce
Changes the coalescing settings of the specified ethernet device.

-g --show-ring
Queries the specified ethernet device for rx/tx ring parameter information.

-G --set-ring
Changes the rx/tx ring parameters of the specified ethernet device.

rx N Changes the number of ring entries for the Rx ring.

rx-mini N
Changes the number of ring entries for the Rx Mini ring.

rx-jumbo N
Changes the number of ring entries for the Rx Jumbo ring.

tx N Changes the number of ring entries for the Tx ring.

-i --driver
Queries the specified ethernet device for associated driver information.

-d --register-dump
Retrieves and
tents of previous raw register dump, rather than reading from the device.

-e --eeprom-dump

-E --change-eeprom
If value is s
of the EEPROM. Because of the persistent nature of writing to the EEPROM, a device-specific magic key must be specified to prevent the accidental writing to the EEPROM.

-k --show-offload
Queries the specified ethernet device for offload information.

-K --offload
Changes the offload parameters of the specified ethernet device.

rx on|off
Specifies whether RX checksumming should be enabled.

tx on|off
Specifies whether TX checksumming should be enabled.

sg on|off
Specifies whether scatter-gather should be enabled.

tso on|off
Specifies whether TCP segmentation offload should be enabled.

ufo on|off
Specifies whether UDP fragmentation offload should be enabled

gso on|off
Specifies whether generic segmentation offload should be enabled

gro on|off
Specifies whether generic receive offload should be enabled

lro on|off
Specifies whether large receive offload should be enabled

rxhash on|off
Specifies whether receive hashing offload should be enabled

-p --identify
Initiates adapter-specific action intended to enable an operator to easily identify the adapter by sight. Typically this involves blinking one or more LEDs on the specific ethernet port.

N Length of time to perform phys-id, in seconds.

-r --negotiate
Restarts auto-negotiation on the specified ethernet device, if auto-negotiation is enabled.

-S --statistics
Queries the specified ethernet device for NIC- and driver-specific statistics.

-t --test
Executes adapter selftest on the specified ethernet device. Possible test modes are:

offline|online
defines test type: offline (default) means to perform full set of tests possibly causing normal operation interruption during the tests, online means to perform limited set of tests do not interrupting normal adapter operation.

-s --change
Allows changing some or all settings of the specified ethernet device. All following options only apply if -s was specified.

speed N
Set speed in Mb/s. ethtool with just the device name as an argument will show you the supported device speeds.

duplex half|full
Sets full or half duplex mode.

port tp|aui|bnc|mii
Selects device port.

autoneg on|off
Specifies whether autonegotiation should be enabled. Autonegotiation is enabled by deafult, but in some network devices may have trouble with it, so you can disable it if really necessary.

advertise N
Sets the speed and duplex advertised by autonegotiation. The argument is a hexidecimal value using one or a combination of the following values:
0x001 10 Half
0x002 10 Full
0x004 100 Half
0x008 100 Full
0x010 1000 Half(not supported by IEEE standards)
0x020 1000 Full
0x8000 2500 Full(not supported by IEEE standards)
0x1000 10000 Full
0x03F Auto

phyad N
PHY address.

xcvr internal|external
Selects transceiver type. Currently only internal and external can be specified, in the future further types might be added.

wol p|u|m|b|a|g|s|d...
Sets Wake-on-LAN options. Not all devices support this. The argument to this option is a string of characters specifying which options to enable.
p Wake on phy activity
u Wake on unicast messages
m Wake on multicast messages
b Wake on broadcast messages
a Wake on ARP
g Wake on MagicPacket(tm)
s Enable SecureOn(tm) password for MagicPacket(tm)
d Disable (wake on nothing). This option clears all previous options.

sopass xx:yy:zz:aa:bb:cc
Sets the SecureOn(tm) password. The argument to this option must be 6 bytes in ethernet MAC hex format (xx:yy:zz:aa:bb:cc).

msglvl N
Sets the driver message level. Meanings differ per driver.

-n --show-nfc
Retrieves the receive network flow classification configurations.

rx-flow-hash tcp4|udp4|ah4|sctp4|tcp6|udp6|ah6|sctp6
Retrieves the hash options for the specified network traffic type.
tcp4 TCP over IPv4
udp4 UDP over IPv4
ah4 IPSEC AH/ESP over IPv4
sctp4 SCTP over IPv4
tcp6 TCP over IPv6
udp6 UDP over IPv6
ah6 IPSEC AH/ESP over IPv6
sctp6 SCTP over IPv6

-N --config-nfc
Configures the receive network flow classification.

rx-flow-hash tcp4|udp4|ah4|sctp4|tcp6|udp6|ah6|sctp6 m|v|t|s|d|f|n|r...
Configures the hash options for the specified network traffic type.
m Hash on the Layer 2 destination address of the rx packet.
v Hash on the VLAN tag of the rx packet.
t Hash on the Layer 3 protocol field of the rx packet.
s Hash on the IP source address of the rx packet.
d Hash on the IP destination address of the rx packet.
f Hash on bytes 0 and 1 of the Layer 4 header of the rx packet.
n Hash on bytes 2 and 3 of the Layer 4 header of the rx packet.
r Discard all packets of this flow type. When this option is set, all other options are ignored.

-f --flash FILE
Flash firmware image from the specified file to a region on the adapter. By default this will flash all the regions on the adapter.

N A number to identify flash region where the image should be flashed. Default region is 0 which denotes all regions in the flash.

-u --show-ntuple
Get Rx ntuple filters and actions, then display them to the user.

-U --config-ntuple
Configure Rx ntuple filters and actions

flow-type tcp4|udp4|sctp4
tcp4 TCP over IPv4
udp4 UDP over IPv4
sctp4 SCTP over IPv4

src-ip addr
Includes the source IP address, specified in hex.

src-ip-mask mask
Specify a mask for the source IP address, specified in hex.

dst-ip addr
Includes the destination IP address, specified in hex.

dst-ip-mask mask
Specify a mask for the destination IP address, specified in hex.

src-port port
Includes the source port, specified in decimal.

src-port-mask mask
Specify a mask for the source port, specified in hex.

dst-port port
Includes the destination port, specified in decimal.

dst-port-mask mask
Specify a mask for the destination port, specified in hex.

vlan VLAN-tag
Includes the VLAN tag, specified in hex.

vlan-mask mask
Specify a mask for the VLAN tag, specified in hex.

user-def data
Includes 64-bits of user-specific data, specified in hex.

user-def-mask mask
Specify a mask for the user-specific data, specified in hex.

action N
Specifies either the Rx queue to send packets to, or to drop the matched flow.
-1 Drop the matched flow
0 or higher Rx queue to route the flow

BUGS
Not supported (in part or whole) on all ethernet drivers.

AUTHOR
ethtool was written by David Miller.

Modifications by Jeff Garzik, Tim Hockin, Jakub Jelinek, Andre Majorel, Eli Kupermann, Scott Feldman, Andi Kleen.

AVAILABILITY
ethtool is available over the Web on the SourceForge site at http://sourceforge.net/projects/gkernel/

Ethtool version 6 July 2007

Hey Ubuntu, why not remove mii-tool as it's misleading?

If it's there for compatibility reasons, why not also ship your releases with ethtool too?

And also someone should update the mii-tool manpage to specify it's deprecated and replaced by ethtool.

It's so weird I found an old mii-tool manpage from 2000 and it does state mii-tool is obsoleted and refers to ethtool, citing it in the SEE ALSO section of the manpage:

MII-TOOL(8) MII-TOOL(8)

NAME
mii-tool - view, manipulate media-independent interface status

SYNOPSIS
mii-tool [-v, --verbose] [-V, --version] [-R, --reset] [-r, --restart] [-w, --watch] [-l, --log] [-A, --advertise=media,...] [-F, --force=media] [interface ...]

NOTE
This program is obsolete. Valid media are only 100baseT4, 100baseTx-FD,100baseTx-HD, 10baseT-FD and 10baseT-HD ethernet cards. For replacement check ethtool.

DESCRIPTION
This utility checks or sets the status of a network interfaceâs Media Independent Interface (MII) unit. Most fast ethernet adapters use an MII to autonegotiate link speed and
duplex setting.

Most intelligent network devices use an autonegotiation protocol to communicate what media technologies they support, and then select the fastest mutually supported media technol-
ogy. The -A or --advertise options can be used to tell the MII to only advertise a subset of its capabilities. Some passive devices, such as single-speed hubs, are unable to
autonegotiate. To handle such devices, the MII protocol also allows for establishing a link by simply detecting either a 10baseT or 100baseT link beat. The -F or --force options
can be used to force the MII to operate in one mode, instead of autonegotiating. The -A and -F options are mutually exclusive.

The default short output reports the negotiated link speed and link status for each interface. If an interface or interfaces are not specified on the command line, then mii-tool
will check any available interfaces from eth0 through eth7.

OPTIONS
-v, --verbose
Display more detailed MII status information. If used twice, also display raw MII register contents.

-V, --version
Display program version information.

-R, --reset
Reset the MII to its default configuration.

-r, --restart
Restart autonegotiation.

-w, --watch
Watch interface(s) and report changes in link status. The MII interfaces are polled at one second intervals.

-l, --log
Used with -w, records link status changes in the system log instead of printing on standard output.

-F media, --force=media
Disable autonegotiation, and force the MII to either 100baseTx-FD, 100baseTx-HD, 10baseT-FD, or 10baseT-HD operation.

-A media,..., --advertise=media,...
Enable and restart autonegotiation, and advertise only the specified media technologies. Multiple technologies should be separated by commas. Valid media are 100baseT4,
100baseTx-FD, 100baseTx-HD, 10baseT-FD, and 10baseT-HD.

SEE ALSO
ethtool(8)

AUTHORS
David Hinds - dhinds@pcmcia.sourceforge.org
Donald Becker - becker@scyld.com

net-tools 2000/04/25 22:58:19 MII-TOOL(8)

The 2000 version of the manpage explicitly mentions:
"This program is obsolete. For replacement check ethtool." in the NOTE section, and the SEE ALSO section refers to ethtool.

However the 2004 version doesn't have any of these mentions (see above).

Why was it removed in 2004?

A user experience of switching from iPhone to Windows Phone 7

Thursday, February 3rd, 2011

Being an iPhone customer since 2008 with the 3G version, I switched to the new Microsoft Windows Phone 7 (WP7) last year.

Here are a few comparison points to make up your mind if you want to switch.

With the new Windows Phone update due anytime now, the shortcomings of the WP7 may be solved soon, or at least we hope.

Overall WP7 is a great product but still behind the competition, and we hope that MSFT, by throwing its whole weight in the battle, will bridge the gap soon.

Features like copy paste are supposed to be introduced in this latest update.
Although not a killer feature (I must have used it only a couple of times within a year on the iPhone), it’s a powerful marketing weapon Apple bigots will throw at any platform that doesn’t support it (“what? your phone doesn’t even have copy-paste? you’re so lame”).
It’s not something you really need, but it’s something that will make your phone retarded if you don’t have it.

The iPhone is still a superior product, but Apple itself made me switch as soon as I upgraded the poor 3G to iOS 4.0.
The whole thing was unusable.
The 3G was already not a speed daemon, but after the upgrade it was slow as hell (pun intended).
I literally had to wait 20 to 30 seconds for the settings page to show.
An eternity in the computer-science-user-patience scale.

How could a big manufacturer like Apple release an update that:
1/ made all the old devices so slow they were rendered unusable?
2/ does not warn the customers beforehand it will render older hardware slow?
3/ prevents you from downgrading to revert to a usable device?

(I guess we all know the answer: the goal was to sell newer versions of the device.)

Anyway, here are the pros and cons of Windows Phone.

1/ WP7: The Good

  • Boots fast: nothing compared to sluggish iPhone 3G
  • Syncs fast: synchronization is faster than the iPhone on iTunes to the point I always wonder if the sync did really happen
  • the screen is bigger (4 inches on the Samsung Focus vs 3.5 inches) than an iPhone 3G or even an iPhone 4
  • Lighter: the difference is very noticeable when both held in hands with the iPhone 4 much heavier (4.8oz) feeling like a brick while the Samsung Focus is only 4oz.
  • You can take picture with the phone locked
    No need to enter your password, press the picture button and you can take a picture. No need to waste time entering your password and missing the picture you wanted to take.
    Although for this feature to be totally useful it should be consistent and popup the camera all the time.
    There’s a bug where sometimes you can keep your finger pressed on the camera button for minutes and the camera doesn’t show up…

  • Applications can offer a trial mode, so you can test an app before buying it.
    This would be great if you could actually update the Trial apps! (see “The Bad” below)

  • Integration of all your contacts pulled from your different email addresses (gmail, yahoo, hotmail) and facebook and in one single address book. This is very powerful.
  • You can hear people on the other end of the line! Pretty amazing for a telephone no?
    But the iPhone speakers are so low you cannot have a normal conversation in a place a little noisy like on the street, in a restaurant,…
    I always wonder how construction workers can have an iPhone as you can’t hear anything.

  • Black is black.
    The black parts of the screen are actually real black and not backlit grey.
    The iPhone 4 is probably much better than the 3G in this area and more comparable to the WP7.

    1/ WP7: The Bad

    1.1 Major features missing

  • NO visual voicemail!
    On the iPhone your voicemails are downloaded and you can see them visually like email.
    At one glance you can tell how many messages you have, which ones you haven’t listened to, who left them, and you can replay a particular one easily without having to go sequentially through all of them.
    With WP7 your back to the old ages: you only know you have a voicemail waiting. You still need to dial a number that will walk you sequentially through all the voicemail and type the appropriate key to skip/delete/archive,…
    Worse: when buying the WP7, the AT&T representative didn’t warn us of that, so they even forgot to switch their backend from visual voicemail to regular voicemail, resulting in a voicemail outage I wasn’t aware of for several days.

  • Copy Paste
    To MSFT’s defence the upcoming update will come with copy pasting.

  • No support for reading MPEG videos
    Trying to read a simple MPEG video in Internet Explorer yields this error message:
    “Can’t download file! Windows Phone doesn’t support .MPG files.”

  • No support for Adobe Flash
    So it’s a draw with the iPhone4

  • No support for reading Silverlight
    This is much more amazing: Silverlight is Microsoft’s equivalent of Adobe Flash.
    Yet they don’t support it on their own phone so you can’t browse a website written in Silverlight. Go figure.

    1.2 Major bugs, Microsoft style

  • the Marketplace (the Microsoft equivalent of the App Store) is awfully unstable, to the point that it crashes, and it crashes big time.
    Meaning once it has crashed, you cannot bring it back up again anymore: your only option is to reboot the phone!

  • the Trial applications cannot be updated!
    There is a major bug on the platform where people who bought a Trial application cannot update it (cf this forum thread).
    Worse: if the user tries to uninstall the current version he has in the hope of getting the latest one, the update will not get downloaded so the user is left with nothing, not even the old version of the app!

  • the Ads crash the applications: provided by Microsoft themselves with PubCenter you would expect something stable, yet there’s a serious bug that crashes your app when the ads are automatically rotating.

    Here is a stack trace of the “Element is already the child of another element.” crash caused by the ads:

    System.InvalidOperationException was unhandled
      Message=Element is already the child of another element.
      StackTrace:
           at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
           at MS.Internal.XcpImports.Collection_AddValue[T](PresentationFrameworkCollection`1 collection, CValue value)
           at MS.Internal.XcpImports.Collection_AddDependencyObject[T](PresentationFrameworkCollection`1 collection, DependencyObject value)
           at System.Windows.PresentationFrameworkCollection`1.AddDependencyObject(DependencyObject value)
           at System.Windows.Controls.UIElementCollection.AddInternal(UIElement value)
           at System.Windows.PresentationFrameworkCollection`1.Add(UIElement value)
           at Microsoft.Advertising.Mobile.UI.AdFrameManager.CreateNewFrame(FrameworkElement[] controls)
           at Microsoft.Advertising.Mobile.UI.AdFrameManager.DisplayNextFrame(Boolean newAd)
           at Microsoft.Advertising.Mobile.UI.AdFrameManager.ResumeFrameRotation()
           at Microsoft.Advertising.Mobile.UI.AdControl.ActivateAdControl()
           at Microsoft.Advertising.Mobile.UI.AdControl.OnParentSelectionChanged(Object sender, SelectionChangedEventArgs e)
    
  • The Internet Explorer Browser is a joke.

    First, it can’t handle big files (big being only 130k). When browsing a simple html text file, some parts will be completely missing and not rendered!
    Tilting the phone from Portrait to Landscape will make the missing text appear.
    What an annoying bug when reading news and long text article or eBooks.

    Second, you cannot go back if you get out of IE. The history is not persistent so you can lose it easily.
    For instance you’re checking out where you will be dining tonight from a site that points to different places.
    You select one, get out of IE to check your Google Bing map, go back to IE and bam! you cannot go back to the original list of restaurants (so you better like your first pick)

    1.3 Annoying things

  • the Marketplace is slow (the caching mechanism seems inexistent or inefficient)
    That’s a serious problem that MSFT discarded as marginal when I contacted them. Probably by now they realized how widespread it is and the upcoming release will fix it?

  • the phone call list in one giant list with outgoing, incoming and missed calls.
    You cannot easily filter to show only the missed calls or outgoing calls for instance.

  • the camera does not remember your settings.
    Set your settings the way you want on the camera:
    - AF mode (Normal, Macro)
    - White balance (Automatic, Incandescent, Fluorescent, Daylight, Cloudy)
    - Image effect (Negative, Sepia, Antique, Green, Blue)
    - Contrast (Minimum, Low, Medium, High, Maximum)
    - Saturation (Minimum, Low, Medium, High, Maximum)
    - Sharpness (Minimum, Low, Medium, High, Maximum)
    - EV (-2, -1, 0, +1, +2)
    - ISO (Auto, 50, 100, 200, 400, 800)
    - Metering (Matrix, Center Weighted, Spot)
    - Photo Quality (Low, Medium, High)
    - Wide Dynamic Range (Off, On)
    - Photo Resolution (VGA 640×480, 2M 1600×1200, 3M 2048×1536, 5M 2560×1920)
    - Anti-Shaking (Off, On)
    That’s a lot of settings right?
    Well, you will lose those settings if you close the camera application. Ouch!
    I wonder why they even bothered adding a “Restore to default” button at the bottom then.
    The Windows Phone camera doesn’t remember your settings, plain awful.

  • the keypad is mute, not making any noise when dialing the numbers. It feels weird when you’re not used to the sound feedback and there’s no option to turn it on.
  • same for the headsets: they are not ringing for incoming calls, so you can easily miss calls if you’re driving.
  • the alarm cannot be stopped easily if you don’t catch it right away before the screen blanks again within 10 seconds.
    If you miss this spot (probably frequent when waking up in the morning), you’re punished by having to first hit the power button to get out of screen saving mode then find the “dismiss” button (by that time you really need to have your eyes open and able to focus).
    Why not being able to stop the alarm by pressing any button like on the iPhone? That’s enough of a proof you’re awake.
    The alarm also doesn’t vibrate when in vibrate mode, strange.

    1.4 Device specific problems: the Samsung Focus SGH-i917

  • Opposed physical buttons:
    The power button and the volume button are on opposite sides of the phone, at the exact same place.
    This means when you press the power button, you most likely change the volume at the same time
    And worse, the opposite: changing the volume might well lock your phone (or reboot it it you click too long!)
    Looking at other phone designs I don’t see many putting button opposite of each other like this.
    This is not Samsung’s first phone, what were they thinking?

  • The touch screen doesn’t work when the phone is on a table.
    Put your Samsung on the table and just use your finger to play with the touch screen. Sometimes it will work, but most of the time it doesn’t.
    Could that be a hand detection feature that forces you to hold the phone? Or maybe the phone thinks you’re holding it at the ear.
    Either way, that’s a very bad user experience.
    The proof it’s a bug? Leave the phone as it is, just reboot it, and the touch screen will work fine… for a few minutes until the bug appears again.

  • The 3 soft buttons at the bottom of the screen (Back, Home and Search) are too sensitive. You can easily activate them with a normal phone grip.
    If the fatty/muscular part of your hand between the thumb and the palm is too big, you’re in trouble. Luckily I have thin hands, but the problem annoys me already!

  • The keyboard is not as precise as the iPhone. Apple still has superior finger detection and is more precise when typing.

    3/ The Ugly

    Switching from a 2-year old iPhone 3G to a brand new Samsung 3G phone, I expected the signal quality to be better, hoping the advance in technology would make the 3G chipsets better.

    It turns out there was absolutely no improvement.

    Wherever I had bad signals and calls dropping with the iPhone were exactly at the same places as with the new WP7.

    Conclusion: it’s definitely not the device, it’s the network. Hear that AT&T?

  • Windows 7 Ultimate Blue Screen of Death

    Wednesday, February 2nd, 2011

    This happens almost every time I install updates and reboot.
    It gets stuck for a while at shut down, then burps a blue screen and restarts right away.

    Once booted you have a nice welcome popup titled “Windows has recovered from an unexpected shutdown”:

    Windows can check online for a solution to the problem.

    Problem signature:
    Problem Event Name: BlueScreen
    OS Version: 6.1.7600.2.0.0.256.1
    Locale ID: 1033

    Additional information about the problem:
    BCCode: 9f
    BCP1: 0000000000000003
    BCP2: FFFFFA800926B440
    BCP3: FFFFF80004117518
    BCP4: FFFFFA800ABF2010
    OS Version: 6_1_7600
    Service Pack: 0_0
    Product: 256_1

    Files that help describe the problem:
    C:\Windows\Minidump\020211-17019-01.dmp
    C:\Users\myself\AppData\Local\Temp\WER-87812-0.sysdata.xml

    Read our privacy statement online:

    http://go.microsoft.com/fwlink/?linkid=104288&clcid=0×0409

    If the online privacy statement is not available, please read our privacy statement offline:
    C:\Windows\system32\en-US\erofflps.txt

    If you hit the “Check for solution” button it closes the popup and that’s all.
    Whatever happened to the result?
    Were those two diagnostic files (the .dmp and .cml) sent to MSFT?
    And how come the .xml file gets deleted after being sent?
    Maybe I want to keep a trace of it.

    Here’s the a copy of the “Offline Privacy Statement” located in C:\Windows\system32\en-US\erofflps.txt for future reference.

    Windows 7 Offline Privacy Statement for the Microsoft Error Reporting Service

    For the most up-to-date privacy information, see the online Windows 7 Privacy Statement at:

    http://go.microsoft.com/fwlink/?LinkId=104288

    WHAT THIS FEATURE DOES

    The Microsoft Error Reporting Service helps Microsoft and Microsoft partners diagnose problems in the software you use and provide solutions. Not all problems have solutions, but when solutions are available, they are offered as steps to solve a problem you’ve reported or as updates to install. To help prevent problems and make software more reliable, some solutions are also included in service packs and future versions of the software.

    The Microsoft Error Reporting Service also provides Setup Repair, an error reporting service that may run during Windows setup if a problem occurs.

    INFORMATION COLLECTED, PROCESSED, OR TRANSMITTED

    Many Microsoft software programs, including Windows 7, are designed to work with the reporting service. If a problem occurs in one of these software programs, you might be asked if you want to report it. If you host virtual machines using a Windows operating system, reports generated by the Windows operating system for the Microsoft Error Reporting Service might include information about virtual machines.

    The reporting service collects information that is useful for diagnosing and solving the problem that has occurred, such as:

    * Where the problem happened in the software or hardware
    * The type or severity of the problem
    * Files that help describe the problem
    * Basic software and hardware information
    * Possible software performance and compatibility problems

    These reports might unintentionally contain personal information. For example, a report that contains a snapshot of computer memory might include your name, part of a document you were working on, or data that you recently submitted to a website. If a report is likely to contain this type of information, Windows will ask if you want to send this information, even if you have enabled automatic reporting through the “Recommended settings” option in setup, or Control Panel. This gives you the opportunity to review the report before sending it to Microsoft. Reports including files and data might be stored on your computer until you have an opportunity to review and send them, or after they have been sent.

    If an error report contains personal information, Microsoft does not use the information to identify you or contact you. In addition, if you enable automatic reporting through the “Recommended settings” option in setup, or in Control Panel, the reporting service will send basic information about where problems occur automatically, but these reports will not have the detail described above.

    After you send a report, the reporting service might ask you for more information about the error you experienced. If you choose to provide your phone number or e-mail address in this information, your error report will be personally identifiable. Microsoft might contact you to request additional information to help solve the problem you reported.

    The Microsoft Error Reporting Service generates a globally unique identifier (GUID) that is stored on your computer and sent with error reports to uniquely identify your computer. The GUID is a randomly generated number; it does not contain any personal information and is not used to identify you. We use the GUID to distinguish how widespread the feedback we receive is and how to prioritize it. For example, the GUID allows Microsoft to distinguish between one customer experiencing a problem one hundred times and one hundred customers experiencing the same problem once.

    USE OF INFORMATION

    Microsoft uses information about errors and problems to improve Microsoft products and services as well as third-party software and hardware designed for use with these products and services. Microsoft employees, contractors, vendors, and partners might be provided access to information collected by the reporting services. However, they will use the information only to repair or improve Microsoft products and services and third-party software and hardware designed for use with Microsoft products and services.

    Microsoft might share aggregate information about errors and problems. Microsoft uses aggregate information for statistical analysis. Aggregate information does not contain specific information from individual reports, nor does it include any personal or confidential information that might have been collected from a report.

    Except as described in this statement, personal information you provide will not be transferred to third parties without your consent. We occasionally hire other companies to provide limited services on our behalf, such as performing statistical analysis. We will only provide those companies the personal information they need to deliver the service, and they are prohibited from using that information for any other purpose.

    Microsoft may access or disclose information about you, including the content of your communications, in order to: (a) comply with the law or respond to lawful requests or legal process; (b) protect the rights or property of Microsoft or our customers, including the enforcement of our agreements or policies governing your use of the software; or (c) act on a good faith belief that such access or disclosure is necessary to protect the personal safety of Microsoft employees, customers, or the public.

    Information collected by or sent to Microsoft by Windows 7 may be stored and processed in the United States or any other country in which Microsoft or its affiliates, subsidiaries, or service providers maintain facilities. Microsoft abides by the safe harbor framework as set forth by the U.S. Department of Commerce regarding the collection, use, and retention of data from the European Union.

    CHOICE AND CONTROL

    If you choose the recommended settings during Windows 7 setup, basic information about errors will be sent automatically to Microsoft. If a more detailed error report is required, you will be prompted to review it before it is sent. You can change this setting at any time by going to Action Center in Control Panel.

    SECURITY PRACTICES

    Microsoft is committed to helping protect the security of your information. We use a variety of security technologies and procedures to help protect your information from unauthorized access, use, or disclosure. For example, we store the information you provide on computer systems with limited access, which are located in controlled facilities.

    FOR MORE INFORMATION

    If you have questions about this privacy statement, please contact us by submitting your questions online to Privacy Feedback at:

    http://go.microsoft.com/?LinkID=9634754

    Windows 7 Offline Privacy Statement for the Microsoft Error Reporting Service
    c/o Microsoft Privacy Response Center
    Microsoft Corporation
    One Microsoft Way
    Redmond, Washington 98052 USA

    Back in December 6th, here is another BSOD I had (hum, probably the machine was not rebooted for 2 months, which is not a biggie in the Linux world)

    Problem signature:
    Problem Event Name: BlueScreen
    OS Version: 6.1.7600.2.0.0.256.1
    Locale ID: 1033

    Additional information about the problem:
    BCCode: 1000009f
    BCP1: 0000000000000004
    BCP2: 0000000000000258
    BCP3: FFFFFA8009147B60
    BCP4: FFFFF80004111510
    OS Version: 6_1_7600
    Service Pack: 0_0
    Product: 256_1

    Files that help describe the problem:
    C:\Windows\Minidump\120610-10654-01.dmp
    C:\Users\myself\AppData\Local\Temp\WER-75520-0.sysdata.xml

    Read our privacy statement online:

    http://go.microsoft.com/fwlink/?linkid=104288&clcid=0×0409

    If the online privacy statement is not available, please read our privacy statement offline:
    C:\Windows\system32\en-US\erofflps.txt

    Digging further I unearthed another record of BSOD on a Vista machine back in September 9th 2010:

    Problem signature:
    Problem Event Name: BlueScreen
    OS Version: 6.0.6001.2.1.0.768.3
    Locale ID: 1033

    Additional information about the problem:
    BCCode: a
    BCP1: 0000000000000008
    BCP2: 0000000000000002
    BCP3: 0000000000000000
    BCP4: FFFFF80001E0C1CA
    OS Version: 6_0_6001
    Service Pack: 1_0
    Product: 768_1

    Files that help describe the problem:
    C:\Windows\Minidump\Mini090910-01.dmp
    C:\Users\Administrator\AppData\Local\Temp\WER-139765-0.sysdata.xml
    C:\Users\Administrator\AppData\Local\Temp\WERBD0C.tmp.version.txt

    Read our privacy statement:

    http://go.microsoft.com/fwlink/?linkid=50163&clcid=0×0409

    BSODs are still alive and kicking in 2011.

    I wondered if that’s the problem HAL had back in 2001 on its way to Jupiter.