Thursday, October 16, 2008

A quick introduction to jQuery

I've been looking at jQuery for some hours now, and i must say that im amazed! It's very light-weight and incredibly powerful with it's big library and ui.
Here is a list with some of the links i found use full in my quest to learn jQuery:
I haven't played arround with it a lot, but I will do it as soon as posible, so there will be a bigger introduction with examples etc. later on.

Monday, October 13, 2008

Monitor color test

I read this funny blog post on mha today, it's about a color test, which can give you an indication on how good your monitor is.
It's pretty simple, you have to sort the color variations to match each other. I thought this would be a great way to test my new Philips 240BW8EB, and i must say it passed with flying colors:

It turned out perfectly, but i must say that your eyes has to be a little good to, which mine i'sent, so i relied on my monitor :P
you can try out the test here: Color Test, to see how good your monitor/eyes is.

Wednesday, October 8, 2008

I just bought the Philips 240BW8EB LCD monitor

I've finally gone *dual screen* at home, after some years with my little 19" i thought it was time to get a little more room on my digital desktop, so that why i bought this amazing Philips 240BW8EB.

I'm pretty impressed with the image quality, taking the price in consideration. It's a great buy and i can recommend it to all who want to have a big, cheap and good full HD LCD monitor. 

If you want to see images of how it's displaying image etc, then just leave a comment, and I'll post some pics. I've taken af color test, you can check out the resoults here: Monitor color test

Thursday, September 25, 2008

Create data paging using linq

As everyone probably know and have tried, is the ASP.NET integrated paging system in the data sources, but it's not always it fits your solution. That's why i want to show you how i make simple data paging using query.

Getting data access

To start off we need to get access to the database, to do this i use LINQ by creating a .dbml file, within this example contains products from the sample database Northwind.

I'm creating a simple method to get the data out:

public static List<Product> GetProducts()
   PagingDataContext db = new PagingDataContext();
   return (from p in db.Products
           select p).ToList();

I will use the skip and take in linq to make the paging:


Create paging class

Now we need the class that can convert pageNumber and pageSize to skip and take, in my case I've made a Paging object that can contain the take, skip and totalPages integers:

public static Paging GetTakeAndSkip(int pageNumber, int pageSize)
   int take = pageSize;
   int skip = (pageNumber - 1) * pageSize;

   //(totalProducts / pageSize)
   int totalPages = Int32.Parse(Math.Ceiling(decimal.Parse(ProductService.GetProducts().Count().ToString()) / decimal.Parse(pageSize.ToString())).ToString());

return new Paging(take, skip, totalPages);

Putting it all together

This is just databound to a gridView to give you an example, and the page size is defined in the query. You can make a drobdownlist or so to handle how many to be displayed, but that's not made in this example:

int pageNumber;
int pageSize;
Paging pagingItem;

protected void Page_Load(object sender, EventArgs e)
   //Request the queries, to make it more secure
   //put IsNullOrEmpty and tryParse arround.
   pageNumber = Int32.Parse(Request.QueryString["page"]);
   pageSize = Int32.Parse(Request.QueryString["size"]);

   //Requesting the Method in the paging class
   pagingItem = Paging.GetTakeAndSkip(pageNumber, pageSize);

   //This keeps track of the number and size
   LitPagePlace.Text = string.Format("{0}/{1}", pageNumber, pagingItem.TotalPages);

   //Using the skip and take on our method to get products
   GridProducts.DataSource = ProductService.GetProducts().Skip(pagingItem.Skip).Take(pagingItem.Take);

protected void LinkNext_Click(object sender, EventArgs e)
   //This will make it stop paging,
   //when the last page is reached
   if (pagingItem.TotalPages > pageNumber)
      //replacing and redirecting to the next page
   Response.Redirect(Request.RawUrl.Replace(string.Format("page={0}", pageNumber),

   string.Format("page={0}", pageNumber + 1)));

protected void LinkPrev_Click(object sender, EventArgs e)
   //This will make it stop paging,
   //when the first page is reached
   if (1 < pageNumber)
      //replacing and redirecting to the previous page
      Response.Redirect(Request.RawUrl.Replace(string.Format("page={0}", pageNumber),

      string.Format("page={0}", pageNumber - 1)));

Thursday, August 14, 2008

Firefox must have Addons

As everyone knows, Firefox is the best browser! ..and they have tons of add-ons to customize the browser after your needs.

But the add-ons can easily become a jungle, there is a lot of good add-ons but also a lot of bad once, so I've decided to make a list of my favorite Firefox Add-ons(for 3.0):

Firebug: Just a great extension developer tool which let's you edit and debug things like JavaScript.

Web Developer: Another developer tool where you can do everything from test screen resolution to make div boxes visible, a very good Add-on to research and get experience.

Flagfox: Let's you see where the web server is placed in the world and you can also see the IP.

IE Tab: As every web developer knows, there is a big gab in browser rendering especially in the two most popular browsers, Internet Explore and Firefox. You need to test your sites in both browsers fast and easy, and this Add-on does exactly that. Very nice tool and i use it alot.

YSlow: Is your website slow? test it and see what's wrong with this tool.

All the addons can be found here: just search on the add-on and you will find the newest version.

Wednesday, August 13, 2008

How to install AJAX Toolkit on framework 3.5

I got this problem when I had installed Visual Studio 2008 on my new computer, and I had no clue on how to solve it. But then my friend came with a suggestion that have helped him with the same problem, and it worked! So I thought, there must be someone else out there that’s having the same problem. This is how I solved it:
The problem seem to be because VS2008 install a compact edition of Framework 3.5, so you need to get the full package of Framework 3.5 which can be found here - you scroll down and click on the: .NET Framework 3.5 full package.
Now you are ready to install AJAX Control Toolkit to your computer and that is available here - And remember to take the AjaxControlToolkit-Framework3.5, either with or without source.

The last think to do is to save the Bin some place on your computer and "Choose items.." is VS2008 Toolbox.
I hope this will help you as much as it helped me :D

Tuesday, July 22, 2008

New development machine

I have finally got my new computer build, and it is now up and running pretty good.
Here is the hardware:
  • Motherboard: ASUS P5Q PRO
  • CPU: Intel Core 2 Quad Q9300 @ 2,5GHz
  • Graphic card: MSI NVIDIA GeForce 8600GT
  • Harddisk: 2x Seagate Barracuda 320GB 24/7
  • RAM: 2x Samsung 2GB  UPDATE: 2x Geil Black Dragon 2GB (8GB FTW)
  • Tower: Antec Performance One P182
  • PSU: Corsair TX750W
And now for the obligatory software:
Windows Server 2008, Visual Studio 2008, sql server 2008  **Heroes happen {here}**

Thursday, June 19, 2008

Received my drivers license

I've recently passed and finally received my drivers license both to car and motorcycle, so no more theory lessons which I'm very happy about :P

Now i just need a car and a motorcycle, but i think that will have to wait abit, especially with those fuel prices ;)

Truncate a table that contain a foreign key

The way I "reset" a table is using the truncate statement as shown underneath, this does not only remove all data in the table but also resets the identity:
But if you do this on a table that contain one or more foreign keys, you get this error when trying execute the query:
Msg 4712, Level 16, State 1, Line 1
Cannot truncate table 'my_table' because it is being referenced by a FOREIGN KEY constraint.

To solve this problem with the foreign key error, you can use the delete statement first to delete the content and afterwards reset the identity, and that is done this way:
DELETE from my_table

The my_table is where you have to put your own table name in, the 0 value is the identity start point