Showing posts with label Tips. Show all posts
Showing posts with label Tips. Show all posts

Friday, 30 May 2014

XBMC–Some YouTube videos refuse to play

I noticed that a few YouTube videos refused to play. Having searched around, I came upon a thread in the XBMC YouTube plugin code repository;

https://code.google.com/p/youtubexbmc/issues/detail?id=95#c217

martinpe...@gmail.com  linked to an updated YouTubePlayer.py file;

YouTubePlayer.py

Copying this file to your XBMC Addons directory, over the existing file, fixes the problem nicely.

Evidently, some YoutTube videos have a ‘$’ in the JS function name, which confuses the original plugin. This plugin replaces the ‘$’ in the function names with ‘_S_’

Hope this helps somebody!

Thursday, 29 May 2014

Visual Studio 2013 Update 2 – Navigation Bar Dropdowns not working

Seems as though the VS team introduced a bug in Update 2 for Visual Studio 2013, where the Navigation Bar Dropdowns don’t work if you are using VS on a screen which is to the left of your “Main Screen”;

image

When you have VS running on your second (or third) monitor, clicking on the Navigation Drop Downs has no effect;

image

In order to workaround the problem, you either need to set the screen you have VS running in as your main screen, using your graphics properties, or alternatively move VS to your main screen……

Frustrating…

Hopefully this will be cured in a future update..

Friday, 23 May 2014

Wordpress Contact-Form-7 Not Sending–”Spinning Arrows”

I recently had an issue with a new Wordpress install, where the Contact Form wasn’t sending correctly, instead hitting the Submit button would simply show the Spinning arrows animation, with no Mail Sent.

I was also using the Really Simple CAPTCHA plugin, which may have had a bearing on the issue too.

After doing some digging around I found a couple of forum posts which helped;

http://venugopalphp.wordpress.com/2014/01/08/contact-form-7-really-simple-captcha-permission/
http://wordpress.stackexchange.com/questions/13367/how-to-resolve-failed-to-send-your-message-problem-for-contact-form-7

Combining these two gave me a solution which worked;

  1. Set the Permissions of the “wp-content/uploads” directory to 777
  2. Open the “p-content/plugin/really-simple-captcha/really-simple-captcha.php

    Change;

    /* Image type. 'png', 'gif' or 'jpeg' */
            $this->img_type = 'png';
     
            /* Mode of temporary image files */
            $this->file_mode = 0444;
     
            /* Mode of temporary answer text files */
            $this->answer_file_mode = 0440;

    To;



    /* Image type. 'png', 'gif' or 'jpeg' */
            $this->img_type = 'png';
     
            /* Mode of temporary image files */
            $this->file_mode = 0777;
     
            /* Mode of temporary answer text files */
            $this->answer_file_mode = 0770;

  3. Install the “WP-Mail-SMTP” plugin and configure it to use your website’s email address smtp settings etc
  4. Modify your Contact-Form-7 Contact Form settings;

    From:
    image

    To:
    image

    Where you should replace “info@yourdomain.com” with the email address you have configured in the “WP-Mail-SMTP” plugin.


Adding the Additional Headers, allows you to still reply to the original sender.

Thursday, 22 May 2014

Skype Login Screen not Rendering Properly

Recently I had an issue where my Skype login screen wasn’t rendering properly, showing something like;

33.jpg

After doing some searching around I found the following Skype forum which had a solution;

http://community.skype.com/t5/Windows-desktop-client/Skype-6-10-0-104-BIG-Login-screen-problem/td-p/2064269/page/6

Turns out that this is caused by a registry key setting css to text/plain rather than text/css.

Simply setting “HKEY_LOCAL_Machine > Software > Classes > .css > Content Type” to “text/css” cured the problem.

Thursday, 27 February 2014

WPF PasswordBox control click crashes Application if Fonts aren’t available

I recently had an issue where a kiosk application I was developing would crash on a Windows Embedded 7 system, if the user clicked on a PasswordBox control. Annoyingly, I couldn’t replicate this in my test environment.

The Application would crash, and frustratingly, not actually hit any of my Error Handlers. However, the Windows Application Event Log shined a little more on the issue, returning the following;

Application: FrontEnd.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: Unrecoverable system error.
Stack:
   at System.Environment.FailFast(System.String)
   at MS.Internal.Invariant.FailFast(System.String, System.String)
   at MS.Internal.Invariant.Assert(Boolean)
   at System.Windows.Media.FontFamily.get_FirstFontFamily()
   at System.Windows.Media.FontFamily.get_LineSpacing()………

After doing some digging around, I found that I wasn’t the only person that this had happened to;

http://stackoverflow.com/questions/8821648/why-does-a-passwordbox-control-crash-my-wpf-application

and…

http://social.msdn.microsoft.com/Forums/vstudio/ar-SA/fc2c9a54-8f66-4f1a-82be-cb40ada5fba5/systemwindowsmediafontfamily-crash-net-35-sp1-systemexecutionengineexception?forum=wpf

Where the final post by Brendave suggested installing the following fonts on the machine;

  • Arial (TrueType)
  • Courier New (TrueType)
  • Times New Roman (TrueType)
  • Marlette

I couldn’t actually find Marlette on my system, so didn’t copy this one, and I also assumed that if it was working ok on my system anyway, then chances were this Font being missing wasn’t the issue.

After installing these fonts, magically the issue was solved.

Tuesday, 21 January 2014

Chrome v32.0.1700.76 - Dropdown Scrollbars not functioning – January 2014

I’ve noticed that, since the recent silent Chrome update to v32.0.1700.76, the Dropdown Scrollbars have stopped working. Turns out this is a widespread problem, but downloading the latest Chrome Beta V33 solves this issue.

This can be found here;

http://www.google.co.uk/intl/en/chrome/browser/beta.html

Tuesday, 1 October 2013

svchost.exe consumes 100% CPU on Windows XP, caused by Windows Updates

I reinstalled Windows XP on a clients PC recently, and came up against an issue where I couldn’t update Windows using Windows Update. I then noticed that the PC had slowed down to a crawl. Opening up Task Manager, Processes and Sorting by CPU, I found that svchost.exe was consuming 100% CPU.

I tried killing the process, and retrying the updates, but svchost.exe was back to 100% as soon as I did.

Having searched around multiple forums for a long time, I finally found a solution which sorted the problem;

Firstly, download Internet Explorer 8 for Windows XP - http://www.microsoft.com/en-gb/download/internet-explorer-8-details.aspx

Once that has downloaded, install the hotfix KB2870699 for IE8 - http://www.microsoft.com/en-us/download/details.aspx?id=40119

Hey presto, problem solved. You can now use Windows update and install the 300+ updates that are required!

Saturday, 27 July 2013

Entity Framework Code First Seeding with Related Data

A quick tip I stumbled upon while working on an MVC application using Entity Framework Code First.

In order to Seed Related Data when using Entity Framework Code First, it’s important to give items temporary ID’s before calling the seed method. Otherwise, when the database is seeded you will end up with Conflicted Inserts

Wednesday, 26 June 2013

Knockout (or any javascript) Intellisense not working if move script file locations

I found while playing around with Knockout.js, that my Visual Studio Intellisense wasn’t working. This turned out to be because I had formatted my Scripts folder, and moved standard Javascript libraries into another folder.

This meant that Visual Studio couldn’t find my _references.js file.

At first I added the following to the @Scripts Section in my .vbhtml file;

   1: @Code 
   2:  
   3:        If (False) Then
   4:  
   5:            @<script src="/Scripts/lib/knockout-2.2.1.debug.js" type="text/javascript"></script>
   6:                
   7:        End If
   8:              
   9: End Code
Where the If (False) code forces the compiler to ignore the file when publishing.


But this would end up being silly if I had lots of files. So, I had a quick look around and found a couple of useful answers on Stack Overflow;


http://stackoverflow.com/a/12016530/1305169 and
http://stackoverflow.com/a/12628049/1305169


Where, basically, you need to add a reference to your new _references.js file to the Intellisense list options in Visual Studio;



  • In Visual Studio, go to Tools > Options > Text Editor > Javascript > Intellisense > References
  • In the “Add a reference to current group”, type in the relative path to your _references.js file (for me this was “~/Scripts/lib/_references.js”

Hey presto, you should now have working intellisense!

Friday, 7 June 2013

Installing IE10 offline

Today I came up against a problem where an application I was working on required IE10 to be installed. This all well and good, however this pc didn’t have access to an internet connection.

As such, I needed to download the IE10 install package, and copy it across to the machine.

However, when I came to install IE10, it simply told me that it needed to download “An Update” before it could be installed.

After a little searching around I found the following forum which lists the updates IE10 requires prior to being installed;

http://www.askvg.com/direct-download-link-full-standalone-offline-installers-of-microsoft-internet-explorer-10-ie10/

Basically, you need to download the following files, some of which require you to validate your copy of windows;

  1. KB2729094 - http://www.microsoft.com/en-gb/download/details.aspx?id=30521 (Requires Validation)
  2. KB2731771 - http://www.microsoft.com/en-gb/download/details.aspx?id=34863 (Requires Validation)
  3. KB2533623 - http://www.microsoft.com/en-gb/download/details.aspx?id=26767 (Requires Validation)
  4. KB2670838 - http://www.microsoft.com/en-us/download/details.aspx?id=36805
  5. KB2786081 - http://www.microsoft.com/en-gb/download/details.aspx?id=36326 (Requires Validation)

Download and install all of the above, there’s no need to restart between each update, but you must restart afterwards.

Once you’ve completed that, download the IE10 install package from;

http://www.microsoft.com/en-us/download/internet-explorer-10-details.aspx

Your install should then work smoothly!

Note: there are two different versions for x86 and x64 platforms.

SGEN: Mixed mode assembly is built against version 'v2.0.50727'…

I found while building an VB application in Visual Studio 2012, in release mode for the first time, that I was confronted with cryptic build error;
SGEN: Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.
After trawling through some Google results, I found the following post by Microsoft;

http://social.msdn.microsoft.com/Forums/en-US/clr/thread/2a5bf31e-df96-4bf1-a846-699da46b62fb

And also a couple of forums;

http://stackoverflow.com/questions/3749368/team-build-sgen-mixed-mode-assembly
http://social.msdn.microsoft.com/Forums/en-US/clr/thread/2a5bf31e-df96-4bf1-a846-699da46b62fb

Which suggests adding (or creating if it it doesn’t exist already) the following XML to the sgen.exe.config file;
<?xml version ="1.0"?>

<configuration>

    <startup useLegacyV2RuntimeActivationPolicy="true">

                <supportedRuntime version="v4.0" />

    </startup>   

</configuration>
For .Net 4.0 Projects, the sgen.exe.config file can be found at;
c:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools  (for x86 systems) 
c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools (for x64 systems)
For .Net 4.5 Projects, the sgen.exe.config file can be found at;
c:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools (for x86 systems) 
c:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools (for x64 systems)
Edit - 03-06-14:

For .Net 4.5.1 Projects, the sgen.exe.config file can be found at;
c:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.5.1 Tools (for x86 systems) 
c:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.5.1 Tools (for x64 systems)
Once I’d added the xml, the application built just fine.

The other alternative was to disable the option to Generate Serialization Assemblies in the offending project;

  • Project Settings for the offending Project
  • Compile Tab
  • Advance Compile Options Button
  • Set “Generate Serialization Assemblies” from “Auto” to “Off”

However, I recommend that you go with the XML option as suggested by Microsoft.

Tuesday, 4 June 2013

Adding EF POCO Classes to TFS Source Control

I have various projects which included Entity Framework POCO (Plain Old CLR Object) Classes. By default, these are not automatically included in TFS Source Control.

To add these classes in VS2012;

  1. Open the Team Explorer Window using View>Team Explorer
  2. You will see a list of shortcuts... My Work, Pending Changes and so on;
  3. Under "Pending Changes" is a link to "Source Control Explorer"
  4. Click this link, to open the Source Control Explorer Window
  5. Navigate through your solution to the Project containing your edmx file
  6. Above the "Source Location" will be a toolbar
  7. The fourth icon from the left is "Add Items To Folder"
  8. Clicking this icon will bring up the "Add to Source Control" Dialog, showing all the files in this project which aren't currently under Source Control.
  9. Select all the files you wish to now include under Source Control
  10. Press Next, then Finish

Now Check In your Solution again, and your POCO's should now be included.

Tuesday, 21 May 2013

XBMCbuntu Frodo 12.2 no Sound over SPDIF after upgrade

I recently upgraded to XBMC Frodo 12.2 and lost my sound over SPDIF. The option for SPDIF wasn’t available in the options.

After some searching around, I found the following forum post;

http://forum.xbmc.org/showthread.php?tid=161251

Which suggested;

1. Set speaker config to 2.0 or 2.1 in XBMC.
2. Set speaker config to 2.0 in osx audio-midi-setup
3. Activate AC3 and DTS options in XBMC
4. Disable LPCM otption in XBMC

Done

Binding the WPF WebBrowser Source Property

In an MVVM application I am currently creating, I had the need to embed the WPF WebBrowser control and quickly discovered that the Source Property is not a dependancy object, and so cannot be bound.

I quickly search around on StackOverflow.com and found a neat solution in c#;

http://stackoverflow.com/a/265648/1305169

The VB Version of which is;

   1: Namespace Helpers
   2:  
   3:     ''' <summary>
   4:     ''' Allows for the Source Property of the WebBrowser to be Bindable to the DataContext
   5:     ''' </summary>
   6:     ''' <remarks></remarks>
   7:     Public Class WebBrowserUtility
   8:         Private Sub New()
   9:         End Sub
  10:         Public Shared ReadOnly BindableSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("BindableSource", GetType(String), GetType(WebBrowserUtility), New UIPropertyMetadata(Nothing, AddressOf BindableSourcePropertyChanged))
  11:  
  12:         Public Shared Function GetBindableSource(obj As DependencyObject) As String
  13:             Return DirectCast(obj.GetValue(BindableSourceProperty), String)
  14:         End Function
  15:  
  16:         Public Shared Sub SetBindableSource(obj As DependencyObject, value As String)
  17:             obj.SetValue(BindableSourceProperty, value)
  18:         End Sub
  19:  
  20:         Public Shared Sub BindableSourcePropertyChanged(o As DependencyObject, e As DependencyPropertyChangedEventArgs)
  21:             Dim browser As WebBrowser = TryCast(o, WebBrowser)
  22:             If browser IsNot Nothing Then
  23:                 Dim uri As String = TryCast(e.NewValue, String)
  24:                 browser.Source = If(uri IsNot Nothing, New Uri(uri), Nothing)
  25:             End If
  26:         End Sub
  27:     End Class
  28:  
  29: End Namespace

You then use your new Bindable Property in the XAML as;



<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
    xmlns:Helpers="clr-namespace:FrontEnd.Helpers"
    x:Class="frmKiosk"
    x:Name="Window"
    
    Width="1920" Height="1080" WindowStyle="None" WindowStartupLocation="CenterScreen" WindowState="Maximized" Background="#FF1327D0" Cursor="None">
 
    <WebBrowser x:Name="wbMain" Helpers:WebBrowserUtility.BindableSource="{Binding KioskWebAddress}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
 
</Window>

Then simply creating a Property in the DataContext, and setting the source like;



KioskWebAddress = "c:/HTML/index.html"

Wednesday, 8 May 2013

Unable to open Database .SQL Files in Visual Studio 2012 Update 1 and onwards

This morning I attempted to open a .SQL file in my Visual Studio 2012 Update 2 installation, and was faced with the following Message Box;

enter image description here

Clicking the “Learn more…” link took me to a “Page Not Found” page, which wasn’t very handy.

A quick search on StackOverflow and I found;

http://stackoverflow.com/questions/15798422/what-about-sql-server-data-tools-for-vs2012-being-incompatible-with-sql-server-2

With a helpful answer by JorgenH directing me to update the SQL Server Data Tools found at this page;

http://msdn.microsoft.com/en-us/jj650015

I downloaded and installed the SQL Server Data Tools, shown at Step 2, from;

http://go.microsoft.com/fwlink/?LinkID=274984

Hey presto, problem sorted!

Wednesday, 1 May 2013

SSRS 2008 R2 on Windows 8… Cannot log in

I recently installed SQl Server 2008 R2 with Advanced Services on a Windows 8 Box. However, when I tried to log into the ReportManager of SSRS, I found that it wouldn’t accept my Username and Password Combo.

After some searching, I found this poston Stack Overflow, which explained it nicely;

http://stackoverflow.com/questions/14433068/user-does-not-have-required-permissions-ssrs-2008-on-windows-8

Turns out, that as standard, the Administrator account isn’t active in Windows 8, and needs to be turned on. More annoyingly, this means that SSRS needs to be uninstalled, and reinstalled using the hidden Administrator account.

The steps I took to finally resolve were;

  1. Uninstall SSRS Node COMPLETELY by going to control panel>SQL Server 2008>Remove>Check Reporting Services
  2. Enable default admin account: command prompt>run as administrator>net user administrator, hit enter.
  3. New line: net user administrator /active:yes
  4. Reboot
  5. Logging in as default administrator
  6. Setup a Password of your Choice
  7. Reinstall the SSRS Node
  8. Install SP3 as administrator
  9. Go to IE.exe DIRECTLY in Windows 8: C:\Program Files\Internet Explorer\iexplore.exe>Run as administrator.
  10. Go to http:// (servername)/Reports
  11. You SHOULD now be able to finally see site settings. NOW YOU CAN FOLLOW everyone's directions of adding YOUR USER under site settings. Also go to folder permissions and add the user as a default here as well.
  12. (optional) For safety I would hide the default admin account now by using step 2 but substitute /active:no in.

SSRS 2008 R2 Reports are blank in Chrome

I stumbled across this apparently well documented problem today, where my SSRS 2008R2 Report was showing up fine in IE, but blank in Chrome;

http://stackoverflow.com/questions/5968082/ssrs-2008-r2-reports-are-blank-in-safari-and-chrome

It seems as though the main Div Tag uses IE compatible only Overflow styles, which Chrome doesn’t interpret well.

I found a nice blog post here which explained how to work around this issue;

http://grumpydba.blogspot.co.uk/2012/02/sql-2008-r2-report-doesnt-show-on.html

The Short and curlies of it are;

Connect to your Reporting Services server, and find the relevant ReportingServices.js file - this will probably be somewhere like "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js", or on a 64 bit machine, "C:\Program Files (x86)\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js"


First up, take a copy of this file - let's not be silly here and assume this is a 100% foolproof solution!
Next, edit this file in notepad. Do a quick search for PageLoad, to ensure no-one else has already hacked applied this fix, then jump to the bottom of the existing text.
Simply append the following code:

function pageLoad() 
{
    var element = document.getElementById("ctl31_ctl10");
    if (element)
    {
        element.style.overflow = "visible";
    } 
}


Save the file, and restart Reporting Services - you should now find that Chrome displays your reports again.


You’ll need to find the correct ElementId, by viewing the Source of the report in Chrome. If you search for “VisibleReportContent”, you should find something like “VisibleReportContentctl31_ctl09”. Where the “ctl31_ctl09” is the ElementID you’re looking for!

Thursday, 24 January 2013

Enabling MS SQL Extensions in WAMP

While working on a problem recently, I needed to enable the MS SQL extensions in WAMP. It turned out to be more complicated than simply hitting the checkbox in the Extensions menu…

I found this great post which explained the process.. http://forum.ragezone.com/f724/get-wamp-work-mssql-673301/

The basic Idea is;

  1. Download ntwdblib.dll: HERE
  2. Click on the WAMP icon -> PHP -> PHP Extensions then check “php_mssql” and “php_pdo_mssql”. (Wamp will restart and give you few errors, ignore them)
  3. Restart WAMP one more time to ensure settings are saved.
  4. Finally, place ntwdblib file in the two following directories:
    wamp\bin\php\php5.3.1 (Or the directory relating to whichever version of PHP you are currently using)
    wamp\bin\apache\apache2.2.11\bin (Or the directory relating to whichever version of Apache you are currently using)
  5. Restart wampserver, and you're finished!

Hopefully this helps somebody else too!

Monday, 7 January 2013

MVVM WPF Validating multiple items together

In an application I am developing, I required that two checkboxes be validated together, when either one of them were clicked. I also needed to only show the Validation error once in my Error Message Box.

To achieve this we first call the OnPropertyChanged routine, which in turn raises the PropertyChanged event, for each linked Property when any of the linked properties change.

For example;

Public Property Property1 As Boolean
    Get
        Return _Property1
    End Get
    Set(value As Boolean)
 
        If _Property1 <> value Then
 
            _Property1 = value
            OnPropertyChanged("Property1")
            OnPropertyChanged("Property2")
 
        End If
 
    End Set
End Property


For the Validation errors, I have employed a simple Key, Value Pair list to store all of the Validation Error Results. Thus, I simply check to see if the other Property has Registered an Error, and remove it if so;



 
        ''' <summary>
        ''' Validates the Current Item
        ''' </summary>
        ''' <param name="ColumnName"></param>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Overrides Function ValidateItemValue(ColumnName As String) As String
            Dim strResult As String = ""
 
            Select Case ColumnName
 
                Case "Property1"
 
                    If Property1 = False And Property2 = False Then
 
                        strResult = "Please select either Property1, Propert2 or Both!"
 
                        If Me.lstErrors.ContainsKey("Property2") = True Then
 
                            Me.lstErrors.Remove("Property2")
 
                        End If
 
                    End If
 
                Case "Property2"
 
                    If Property1 = False And Property2 = False Then
 
                        strResult = "Please select either Property1, Property2 or Both!"
 
                        If Me.lstErrors.ContainsKey("Property1") = True Then
 
                            Me.lstErrors.Remove("Property1")
 
                        End If
 
                    End If
 
 
            End Select
 
            SortErrorList(ColumnName, strResult)        ' Add or Remove an Error Item
 
            Return strResult
 
        End Function