I've been using the tram in Nottingham to get to and from work for about a year. Instead of paying for my fare onboard, I buy a 10 trip pass from any shop with PayPoint facilities. The price has always been £10 so each trip costs £1. If you pay the conductor for a return journey, it will cost £2.40, making it more expensive than my approach. Another reason I choose to buy this type of ticket is because the conductors rarely stamp it meaning I get some journeys for free :D.
As of 28/04/2008, the prices across the range of tickets will go up, making my pass £13 (a whopping 30% increase). My first grumble is that this is a huge jump on what was once a value-for-money scheme. The return ticket will only go up to £2.70; just a fraction more than 2 trips using the pass! My second, and more important, grumble is that I bought one of these passes on 22/04/2008 and was charged the new price of £13. I wasn't aware of the planned increases at the time so I paid the shop assistant. After contacting NET (Nottingham Express Transit) about the issue, it emerged that I'd been charged too much too early. NET spoke to PayPoint on my behalf who kindly gave me a 1 week pass for free.
If you've also paid the new price before the changeover date, submit a complaint on NET's website but remember to keep your pass as they use it to gather information about the transaction.
Wednesday, 23 April 2008
Un-Fare Prices on Nottingham's Tram
Labels:
10 trip,
fare,
net,
nottingham,
paypoint,
prices,
public transport,
tram
Tuesday, 22 April 2008
PropertyData object with name "{PropertyName}" already exists
Change the dynamic property to be unique per language and back again. If the problem persists, try deleting and recreating the dynamic property.
Sky Broadband installer - Hardware/software requirements
If you've got an fairly old PC/laptop and try to install Sky Broadband, you might find that you can't navigate through the wizard process because it won't allow you click the buttons. This is highly annoying because without going through this process, you can't install the software to get connected to the internet. Here is a list of minimum requirements that should resolve the problem and allow you to enjoy your new service.
Software Requirements:
Adobe Flash Player (essential)
Windows Media Player (latest version)
Microsoft .NET Framework 2.0
If you're running Windows, I would also recommend downloading all avalaible updates. Windows XP is a prime example that should be at least running Service Pack 2. Windows Media Player and the .NET framework should be bundled with some of the Windows updates so this is the easiest solution.
Please don't quote me on these software requirements - they are just a collection of things I installed to get my sister's ancient laptop in a state where I could install Sky Broadband.
I'll post the hardware requirements soon but they can easily be found on the box that you receive from Sky.
Software Requirements:
If you're running Windows, I would also recommend downloading all avalaible updates. Windows XP is a prime example that should be at least running Service Pack 2. Windows Media Player and the .NET framework should be bundled with some of the Windows updates so this is the easiest solution.
Please don't quote me on these software requirements - they are just a collection of things I installed to get my sister's ancient laptop in a state where I could install Sky Broadband.
I'll post the hardware requirements soon but they can easily be found on the box that you receive from Sky.
Monday, 21 April 2008
Maintain control state in ASP.NET
using System;
using System.ComponentModel;
using System.Web.UI;
[Serializable()]
[ToolboxData( "<{0}:MyControl runat=\"server\">{0}:MyControl>" )]
public class MyControl: Control
{
[Serializable()]
private struct MyControlProperties
{
public int Property1;
public string Property2;
}
private MyControlProperties _properties = new MyControlProperties();
[DefaultValue( 0 )]
public int Property1
{
get
{
return _properties.Property1;
}
set
{
_properties.Property1 = value;
}
}
[DefaultValue( "" )]
public string Property2
{
get
{
return _properties.Property2;
}
set
{
_properties.Property2 = value;
}
}
protected override void OnInit( System.EventArgs e )
{
base.OnInit( e );
Page.RegisterRequiresControlState( this );
}
protected override object SaveControlState()
{
return _properties;
}
protected override void LoadControlState( object savedState )
{
_properties = (MyControlProperties)savedState;
}
}
Thursday, 17 April 2008
CSS Attributes
Here is a collection of CSS attributes supported by Windows Internet Explorer - probably the best web browser in the world :P.
http://msdn2.microsoft.com/en-us/library/ms531207(VS.85).aspx
http://msdn2.microsoft.com/en-us/library/ms531207(VS.85).aspx
Saturday, 12 April 2008
Rainbow Six Vegas 2 - Bonus Map
Enter the following code to get a bonus map:
comcast faster
Friday, 11 April 2008
HTTP Status Codes
This post has been copied from Neil Kilbride's blog - cheers mate! I just wanted a copy on my blog for reference purposes.
Information # 1xx
Continue # 100
SwitchProtocl # 101
Success # 2xx
OK # 200
Created # 201
Accepted # 202
NonAuthoritativeInformation # 203
NoContent # 204
ResetContent # 205
PartialContent # 206
Redirection # 3xx
MultipleChoice # 300
MovedPermanently # 301
Found # 302
SeeOther # 303
NotModified # 304
UseProxy # 305
TemporaryRedirect # 307
ClientError # 4xx
BadRequest # 400
Unauthorized # 401
PaymentRequired # 402
Forbidden # 403
NotFound # 404
MethodNotAllowed # 405
NotAcceptable # 406
ProxyAuthenticationRequired # 407
RequestTimeOut # 408
Conflict # 409
Gone # 410
LengthRequired # 411
PreconditionFailed # 412
RequestEntityTooLarge # 413
RequestURITooLong # 414
UnsupportedMediaType # 415
RequestedRangeNotSatisfiable # 416
ExpectationFailed # 417
ServerError # 5xx
InternalServerError # 500
NotImplemented # 501
BadGateway # 502
ServiceUnavailable # 503
GatewayTimeOut # 504
VersionNotSupported # 505
Visit the World Wide Web Consortium to find out more about HTTP status code definitions.
Saturday, 5 April 2008
DC Graphix Boa
I recently got a pair of DC Graphix Boa snowboarding boots. They are amazing! I didn't want boots with laces and I wasn't impressed with Burton's alternative. The Boa system makes it so easy to tighten them up in only a few seconds. The main difference on the inner liner is the valve allowing you to inflate the section supporting your heel. I didn't think this would be very useful but I was wrong! You get the feeling like the foot won't move at all, meaning you can concentrate without worrying. They look really good too - mine are white with a gold DC logo on the back...
Friday, 4 April 2008
PC World price promise
A few months ago, I was sent on a mission to get my mum a Sony home theater kit. The model isn't important but the price is. Online, I found it for about £135 on Amazon but the lowest price in the stores was around £200. I didn't want to wait for it to be delivered so I decided to try the PC World Price Promise. In a nutshell, they'll beat any price from another shop or a selection of websites, one of them being Amazon :D.
I printed a web page stating the price on Amazon and took it with me to PC World. They were happy to take an extra 10% off that price but unfortunately, they didn't have any in stock! Luckily, they checked stock levels in the Currys store next door who had plenty available. I was sent over there myself and was guaranteed that Currys would do the same offer. After speaking to one of the managers, I was informed that PC World were lying because they never match Internet prices. At this point, I was extremely pissed off! The level of customer service in Currys was terrible to say the least. OK, they don't and never have matched prices on websites but I had been told this on good authority. You have to remember that PC World and Currys are basically the same company, yet they act like bitter rivals. I felt like I was stuck in the middle of 2 shops trying to get the upper hand.
Anyway, the story doesn't finish there. I wondered back into PC World to set a few things straight. I didn't care about who was right or wrong, I just wanted to get what I came for and go home. I must say for the record, the guys at PC World were very kind and helpful - the exact opposite to the people working in Currys. One person in particular worked really hard to get me what I wanted. He phoned Currys and got them to reserve and prepare the kit for collection. Great! All I had to do was pay and go all the way BACK to Currys! Oh the joys of retail therapy.
The whole episode lasted about an hour when it should of took a few minutes. I guess I'm lucky in some ways for having both stores so close together, otherwise I would've came home empty handed. I can honestly say that I won't be shopping at either places again... NEVER. Hopefully, someone will read this post who works for the company and do something about it so other customers don't have to go through the same agony.
I printed a web page stating the price on Amazon and took it with me to PC World. They were happy to take an extra 10% off that price but unfortunately, they didn't have any in stock! Luckily, they checked stock levels in the Currys store next door who had plenty available. I was sent over there myself and was guaranteed that Currys would do the same offer. After speaking to one of the managers, I was informed that PC World were lying because they never match Internet prices. At this point, I was extremely pissed off! The level of customer service in Currys was terrible to say the least. OK, they don't and never have matched prices on websites but I had been told this on good authority. You have to remember that PC World and Currys are basically the same company, yet they act like bitter rivals. I felt like I was stuck in the middle of 2 shops trying to get the upper hand.
Anyway, the story doesn't finish there. I wondered back into PC World to set a few things straight. I didn't care about who was right or wrong, I just wanted to get what I came for and go home. I must say for the record, the guys at PC World were very kind and helpful - the exact opposite to the people working in Currys. One person in particular worked really hard to get me what I wanted. He phoned Currys and got them to reserve and prepare the kit for collection. Great! All I had to do was pay and go all the way BACK to Currys! Oh the joys of retail therapy.
The whole episode lasted about an hour when it should of took a few minutes. I guess I'm lucky in some ways for having both stores so close together, otherwise I would've came home empty handed. I can honestly say that I won't be shopping at either places again... NEVER. Hopefully, someone will read this post who works for the company and do something about it so other customers don't have to go through the same agony.
Labels:
currys,
home theater kit,
pc world,
price promise,
sony
A potentially dangerous Request.Form value was detected from the client
This error is caused because the .NET framework detected HTML in an input control (e.g. TextBox). I've highlighted 3 possible ways to get round the issue, all with their advantages and disadvantages:
1. Add the following to the existing Page directive on the relevant pages.
2. Add the following to the Web.config within the <system.web> section (globally disable request validation). This will allow users to enter HTML into controls which could be harmful or result in undesirable consequences.
3. Unless you need users to be able to enter HTML into a form, make sure all HTML displayed in controls is encoded.
1. Add the following to the existing Page directive on the relevant pages.
ValidateRequest="false"
2. Add the following to the Web.config within the <system.web> section (globally disable request validation). This will allow users to enter HTML into controls which could be harmful or result in undesirable consequences.
<pages validateRequest="false" />
3. Unless you need users to be able to enter HTML into a form, make sure all HTML displayed in controls is encoded.
lblText.Text = HttpUtility.HtmlEncode( lblTest.Text );
Windows - Hosts
The hosts file can be used to map IP addresses to host names. Each entry should be on an individual line with the IP address in the first column and the host name in the second (separated by at least one space). Lines can be commented by placing a # at the beginning. The hosts file can be find in C:\Windows\system32\drivers\etc. To see the effects of any changes, you'll need to restart or create new instances of the browser(s) or run the following from the command line:
Example:
ipconfig /flushdns
Example:
127.0.0.1 testSubsequent requests for http://test will then point to 127.0.0.1 (local).
Windows - Map local folders
Network locations can be mapped pretty easily but mapping local folders is more complicated. Run the following from the command line:
This example shows how to map C:\Windows to the W drive meaning that I can reference anything in that directory like W:\{directoryPath}\{fileName}.
Example:
subst {drive}: {directoryPath}This example shows how to map C:\Windows to the W drive meaning that I can reference anything in that directory like W:\{directoryPath}\{fileName}.
Example:
subst W: C:\Windows
Wednesday, 2 April 2008
CSS - Layers
<div style="background-color: Red; height: 100px; width: 100px; z-index: 1"></div>
<div style="background-color: White; height: 100px; left: 50px; position: relative; top: -50px; width: 100px; z-index: 2"></div>
Example:
Tuesday, 1 April 2008
SQL - Capitalise function
This function will capitalise the first letter of every word in a sentence. The commented line can be used to ignore single letter words.
Example:
create function dbo.Capitalise
(
@Text varchar( 1000 )
)
returns varchar( 1000 )
as
begin
declare @ReturnString varchar( 1000 )
set @ReturnString = ''
declare @Word varchar(30)
declare @Pointer int
set @Pointer = 0
if right( @Text, 1 ) <> ' '
set @Text = @Text + ' '
while charindex( ' ', @Text, @Pointer ) > 1
begin
set @Word = substring( @Text, @Pointer, charindex( ' ', @Text, @Pointer ) - @Pointer )
--if len( @Word ) > 1
set @Word = upper( left( @Word, 1 ) ) + lower( right( @Word, len( @Word ) - 1 ) )
set @Pointer = charindex( ' ', @Text, @Pointer ) + 1
set @ReturnString = @ReturnString + @Word + ' '
end
set @ReturnString = rtrim( ltrim( @ReturnString ) )
return @ReturnString
end
Example:
select dbo.Capitalise( 'this is a test' ) as CapitalisedSentence
JavaScript - Popup windows
function Popup( url, height, width )
{
var windowProperties = "toolbar = 0, scrollbars = 1, location = 0, statusbar = 0, menubar = 0, resizable = 1, width = " + width + ", height = " + height + ", left = 50, top = 50";
return window.open( url, "", windowProperties );
}
function PopupScale( url, scale )
{
// Default sizes.
var height = 800;
var width = 800;
if ( window.screen )
{
height = window.screen.availHeight * scale / 100;
width = window.screen.availWidth * scale / 100;
}
Popup( url, height, width );
}
Example:
JavaScript - Hover effect
var _elementID;
var _xOffset = 15;
var _yOffset = 15;
function GetMouseX( event )
{
if ( !event )
{
event = window.event;
}
if ( event.pageX )
{
return event.pageX;
}
else if ( event.clientX )
{
return event.clientX + ( document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft );
}
else
{
return 0;
}
}
function GetMouseY( event )
{
if ( !event )
{
event = window.event;
}
if ( event.pageY )
{
return event.pageY;
}
else if ( event.clientY )
{
return event.clientY + ( document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop );
}
else
{
return 0;
}
}
function Follow( event )
{
if ( document.getElementById )
{
var element = document.getElementById( _elementID );
if ( element != null )
{
var style = element.style;
style.left = ( parseInt( GetMouseX( event ) ) + _xOffset ) + 'px';
style.top = ( parseInt( GetMouseY( event ) ) + _yOffset ) + 'px';
style.visibility = 'visible';
}
}
}
function Show( elementID )
{
if ( document.getElementById )
{
_elementID = elementID;
document.onmousemove = Follow;
}
}
function Hide( elementID )
{
if ( document.getElementById )
{
_elementID = elementID;
var divStyle = document.getElementById( _elementID ).style;
divStyle.visibility = 'hidden';
document.onmousemove = '';
}
}
Example:
Test
<div id="Hover" style="background-color: White; color: Black; padding: 5px; position: absolute; visibility: hidden;">Test</div>
<div onmouseover="javascript:Show( 'Hover' )" onmouseout="javascript:Hide( 'Hover' )" style="background-color: Red; height: 100px; width: 100px;"></div>
Subscribe to:
Posts (Atom)