Wednesday, December 09, 2009

How to inspect Blue Screen Issues or the Blue Screen of Death (BSOD)

Hello, today I’ll show you how to address the terrible Blue Screen on windows systems, this problem i also known as “BSOD Blue Screen Of Death”

Here is a typical BSOD:

image

The most important info is the first error code (number 1) and, if present, the driver/dll who caused it.

The hexadecimal number following the word "STOP" is called the bug check code or Stop code.

If you read the “Device and Driver Development Tools – Bug Check Codes” you can find the error code and what it means, for example the STOP:50 is a :

Bug Check 0x50: PAGE_FAULT_IN_NONPAGED_AREA
The PAGE_FAULT_IN_NONPAGED_AREA bug check has a value of 0x00000050. This indicates that invalid system memory has been referenced.

The other parameters are specific for the error code, in this example the third parameter identifies a “Write Operation” on Memory.

Now we have two options, the Easy Way and the Hard Way, let’s start from the Easy Way.

Remember to enable the Crash Analysis option using the System Option from the Control Panel , see also this link

The Easy Way- if you need to run

Install this useful application WhoCrashed from Resplendence Software House.

Launch the application on the system where the BSOD appears, download,if asked, the Debugging Symbols from Microsoft and click the “Analyze” button, after some time the app will show you the info about the most suspect dll/driver, here is an example from the SW web site:

Upgrade/Disable/Uninstall it and… the BSOD will disappear.

The hard way – if you need to know the details

Install the “Debugging Tools for Windows”  debugger, configure the Symbols Path with the right string, for example:

SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols

image

Use the “File—>Open Crash Dump” option and load the dump from “%SYSTEMROOT%\minidump”

image

At the first load you can see this message:
image

Execute the !analyze –v command, the debugger will analyze the call stack:

image

Click on the module name link and you will see the path and the details of the faulting module:

image

Identify the DLL vendor and update his application or uninstall/disable it if no updates are available, the BSOD should disappear from your system.

Hope it helps!

UPDATE #1

How to disable a BSOD driver from windows start

If the BSOD is caused by a driver you need to disable it from loading on windows boot.

Download from sysinternals site the AutoRuns program, execute it and open the Drivers Tab:

image

If you find this article useful, please consider making a donation.

Saturday, December 05, 2009

How to insert a Paypal button in your blogger posts footer

Connect to PAYPAL.COM

image

Click on Merchant Services

image

Look on the bottom of the page, click on "Buy Now Buttons"

Choose the type of payment, Donation in this case

Choose also currenct and a name that helps identifyng the payment

 

image

Click "Create Button..."

A new window appears with the HTML that configures the payments, copy the blue code:

image

 

Go to you blogger blog, select Layout, Chanege HTML

image

Save a backup of your model.

Click on "Expand widget model", this is fundamental.

Look the HTML code and find the "data:post.body" TAG, insert after this tag your PAYPAL html code.

image

Blogger needs well formed HTML, all the inputs field need to end with "/>" the closing tag.

Correct the missing closing tags.

Click on preview....and .. .thats all, now you have a paypal footer in all your posts.

image Don't forget to save the  model!!!

Hope it helps!

If you find this article useful, please consider making a donation.

Monday, November 30, 2009

JQuery assorted tips

Here are some useful JQuery 1.2.7 code snippets:

//Select the cheched checbox:
$('#myId').find('input[@type=radio][@checked]')
//Get an array of text of the selected SELECT
var elems = $.map($('#myId).find('select :selected'),function(a){return $(a).text();})
//Get an array of the values of the selected SELECT
var txtelems = $.map($('#myId).find('[@id=innerElementId]').find('input'),function(a){return $(a).val();});
//Set the title on a element
$(idTxtSearch).attr('title','my title');
//Focus a textbox (INPUT field)
$(idTxtSearch).focus();
//reset the value of a textbox (INPUT field)
$(idTxtSearch).val('');
//not JQuery, add a trim function to the JavaScript String object
String.prototype.trim = function ()
{
return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
//ASP.NET + JQuery + blockUI
//Call the postback on a button after having blocked the page
//Note that the __doPostBack requires the name of the element, not the Id, asp.net rules.
$.blockUI({message:$('#myId').html()});
__doPostBack($('#<%= myAspNetBtn.ClientID %>').attr('name'), '');
//Attach the keyup event of a textvox
$().keyup(function(e){myFunction();});
//function for the blur and focus events
searchBoxes.focus(function(e){$(this).addClass("mycss");});
searchBoxes.blur(function(e){$(this).removeClass("mycss");});
//reset all the checkboxes inside an element
$('#myid > input[@type=radio]').attr('checked','')
//find the first DIV inside a table row that contains a value
if ($('#myid').find('tr:contains(thestring)').find('div:eq(1)').length>0)
//reset an element and add some HTML
$('#myid').empty().append(someHTML);
//find all visible elements inside an element with class myClass
$('.myClass').find('*').css("visibility","visible");
//change the source image on some images 
$(elemDiv).find('IMG[@src*="myvalue"]').attr('src','images/oem/newimg.png');
//add the nowrap attribute to all TDs
$(elemDiv).find('TD').attr('nowrap','nowrap');
//hide an element 
$('.myClass').hide();
//disable a button
btn.attr('disabled','disabled');
//find the first element with the same attribute and get the display attribute
$("[@myattr='my-row']:first").css('display');
//Toggle a class on a element
element.toggleClass("myClass");
//Execute script after the page load
$(document).ready(function()
{
//some js here;
});
//find the first image inside an element and chenge the image source
element.children('img:first').attr('src',newSrc);
//duplicate an HTML element
$('#myId').clone();
//get the url of an anchor with id=myId
var sUrl = $("a[@id='myId']").attr('href');
//hide all anchors inside an element
$('#myId').find('A').css('display','none');
//get the text of an element
var text = $('#myId').text();
//disable a button
$('#myId').attr('disabled', true);
//click a button after the load of the page
$(document).ready(function(){$('#myId').click()});
//check all visible checkboxes inside a table
function selectAllVisibleCheckBox(idTable)
{
$("#" + idTable).find("input[@type$='checkbox']").each(function()
{
if ($(this).parents("TR").css("display")!='none')
this.checked=true;
}
);
return false;
}
//call the classical HelloWorld asmx web service using JQuery
jQuery.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebServices.asmx/HelloWorld",
data: "{'msg':'hello!'}",
dataType: "json"
});
 
If you find this article useful, please consider making a donation.

Thursday, November 26, 2009

Visual Studio 2005 Express Downloads

Do you need to install Visual Studio 2005 Express but you don’t find it?

Here are the working link:

csharp http://go.microsoft.com/fwlink/?LinkId=51411&clcid=0x409

webdev http://go.microsoft.com/fwlink/?LinkId=51413&clcid=0x409

vb  http://go.microsoft.com/fwlink/?LinkId=51405&clcid=0x409

cpp  http://go.microsoft.com/fwlink/?LinkId=51410&clcid=0x409

If you find this article useful, please consider making a donation.

Friday, November 20, 2009

IE8 slow tabs opening, IE8 and ssvagent.exe investigation..

Today I’ve noticed that the opening of Internet Explorer 8 was too slow, 15-20 seconds… with the window blocked.

image

It’s a Microsoft fault?? Let’s investigate.

I Opened the Task Manager and I saw Cpu spikes for 20 seconds during the IE start:

image

With Sysinternals Process Explorer I’ve investigated the process detail, on every tabs opening there was a process that started and used the CPU for 15 seconds.. the process was a Sun Microsystems program, not Ms.

image

I Investigated the thread detail of the process and I found that the CPU activity was on a single thread:

image

The detail of the thread shown that the CPU problem was correlated with functions used by the Mozilla Plugins system:

image

Plugins? Let’s see the Plugin section in Internet Explorer, I found Java Plugin , and it was enabled and loaded:

image

Let’s try to deactivate it, close and open the browser and…image

Wow, now the start time is only 3 seconds, and this time is the same for the tabs opening. 

image

Hope it helps!

UPDATE #1 - 2009-11-23

As feranm wrote I should have checked the loading time of the plugin using the “load time” column in the plugin list.

But for this plugin the loading time wasn’t available:image

UPDATE #2 - 2009-11-23

In my office 4 users over 4 decided to use Firefox, they felt “Internet Explorer 8 is very slow…”
After the fix they were happy and started to use IE8 again.

Is Microsoft aware of this problem? Does Microsoft know that their product is felt by the users as “slow and unresponsive on startup”, and this bad feeling is caused by Sun Microsystems?

If you find this article useful, please consider making a donation.