Programming
New PC
by admin on Feb.04, 2009, under Personal, Programming, Work
I recently purchased a new desktop. My old one was 3 years old, just coming out of lease and is getting a bit slow and weary. I have always been a big fan of Dell. Their service is excellent and their products are just as good as the rest of them, if not a little better. So off I went to the Dell website. I almost had one picked and purchased when I saw the new release Studio XPS Desktop and reading through the specs, I decided that it’s the one that I want.
It’s interesting that Dell have joined the Studio and XPS range in this unit. The XPS range are usually aimed at the high end, gamers and people who want the best performing PCs. The Studio range are targeted for those who want a media centre PC. So with this release they have tried to bridge the two sectors of customers together and for the most part it seems like a good combination.
Now for the part that really matters (at least to me), the specs. Dell have chosen the new Core i7 range from Intel to power this machine. Those of you (like me) who haven’t been paying attention for the past 6 or more months may not know there’s a new processor in town. And not just new, it’s an entirely different CPU: Quad-core WITH Hyper-threading, built-in DDR 3 tri-channel memory controller and 8Mb of L3 cache (there is L2 cache for each core with the L3 cache shared between all cores). It’s one of the first (that I’ve seen) Dell consumer PCs to also include Vista 64 bit edition as the only option. No choice between the two. It’s 64 or no PC for you. I guess it makes sense, the consumers of this desktop are likely to want more than 3Gb RAM and 64 bit is the only way to get this. Be careful though, tri-channel means to get the best performance, memory size must be a multiple of 3. I made this mistake and have purchased 4, but will upgrade this to 6 in the near future. The base model video card is an ATI Radeon HD 4850 with 512Mb RAM.
With the desktop, I purchased 2 x 23″ SP2309W widescreen monitors which I will use one of for each of the desktops, along with a 19″ standard LCD. I’ll talk about the 23″ monitors in a moment.
The machine flies. I haven’t used a computer this fast and responsive ever, even using XP. Of course, having the 4Gb memory is probably responsible for this. Reviews I’ve read have put the i7 at the top of the performance charts, even beating most (if not all) of the Core 2 Quad CPUs, and definately most of the AMD Phenom 2′s.
Dell have really taken to the piano glossy black, instead of the silver and black or even the glossy white my last desktop had. They have hidden the drives behind flip down panels, and the memory card reader, front USB, firewire and audio ports are hidden by a slide up/down panel. They also seem to favour white LED’s, using one for both of the power and HDD indicators. The keyboard is very flat and sleek, the keys are similar in style to that of a notebook. It has taken me a little while to get used to the keys, especially considering the Home/Insert/End/Delete/Page Up/Page Down keys aren’t set out like a regular keyboard. The mouse is a laser mouse with a left and right side button as well as a button to control the speed of the mouse pointer, also in glossy black, and is relatively comfortable.
The one odd thing is that the motherboard and case are of an ATX design. Dell were one of the pioneers of the BTX form factor, however for some strange reason they have reverted back to ATX. Why I’m not sure but I guess they have their reasons. The fan is variable speed, and in my use, even the slightest hint of CPU load will have it spin up which you can hear quite clearly. But since my current CPU load averages at 1%, that doesn’t happen all too often.
On to the monitor. Again, it’s the glossy black style with white LED’s. Max resolution is 2048 x 1152 which is higher than Full HD. Obviously they are marketing them as a TV replacement along with the Studio desktops, given that along with the VGA and DVI connector there is an HDMI connector. I haven’t tested HD content yet, but I hope to shortly. The power and menu buttons aren’t really buttons. They seem to be touch sensitive regions on the side of the monitor, mounted vertically. Using another object in the region does not make the ‘button’ react. The LED’s that point to the different regions also fade when not in use. The bottom most menu lights up when an object is about 1cm away so that you know where it is. There is also a high pitched beep whenever a button is pressed, but thankfully that can be turned off. A webcam is also included in the top of the monitor and there are 4 USB ports (2 underneath and 2 on the left side).
Overall, I’m suitably impressed. The performance seems to be available when needed and if I ever do decide to play a game or two, the video card will help me out. Although I went a little over budget, I think the extra expense will be worth it in the long run. My only beef with the whole purchase is that one of the speaker options is a UK product code (and last time I checked it still is). It just so happens that these speakers were included as part of the package when I ordered, but I have contacted Dell and they are fixing that for me.
ASP.NET Master Pages
by admin on Dec.04, 2008, under Programming
Now that almost the whole of my working time is spent developing the new online system, I’ve been toying with a number of different structures for the pages.
I first had separate pages for each function, which worked well, but made the the tree a little messy. I then moved to having one individual page for each of the three user views (administrator, staff member, and client). All of the controls and functions were contained within that single page.
This was also working well, until I had to create a control which dynamically loads another control (using the Page.LoadControl function). For the postbacks to work and the events contained within the dynamically-loaded control, this had to be done in an OnInit method. Which means every single time the page loads on postback (which just to get to that control from login was at least 3), this method must be called.
One of other goals of having the one page per user view idea would be to have a consistent look and feel in each of these views. I noticed a friend’s tweet about Master Pages, and checked it out in my ASP.NET “bible”, and thought it should be easy enough to implement.
I set out to implement it as a test which again worked incredibly well. But, I came across a need to access a property of the Master Page from the Content Page. Yes, I could cast the call to Master (such as (MasterPage)Master.SomeCustomProperty), but there’s actually a directive in ASP.NET to automatically provide this cast to all calls to Master.
Simply add <%@ MasterType VirtualPath=”~/path/to/MasterPage.Master” %> to your content page and any call to Master will automatically be of the type specified in the VirtualPath property.
As part of the Master Page migration, I have created a Content Page for each of the areas within the user view structure, and I’m still contemplating whether to split these into the individual functions. This means I will have come full circle from the first idea, but at least I’d have a consistent look and feel and will be able to easily modify the display.
We have progress!
by admin on Nov.03, 2008, under Programming
Since the last blog entry, I have been a rather busy bee doing all sorts of programming. Here’s a summary of what I have accomplished in the past few months.
I was able to finally place the main software into feature freeze, albeit about a month after I had initially hoped, and with some extra features that have been well received by the users. There is one change which is reported to be disliked however I am reluctant to change it unless more than 50% of the users actually do dislike it.
I have completed the rostering system, which has been deployed and I believe is working well. We initially had some bumps with the email function, but I have sorted that.
The backup system is currently undergoing a pilot at one office which has picked up a few issues but I believe is ready to deploy in the next week. I was originally going to use the SharpZipLib .NET component, however I was unhappy with the amount of time it took to archive all of the files, and with no ability to retrieve feedback from the component as each file was added, I switched to using another component which I acquired thanks to the VB.NET Resource Kit offered in 2004. Even though the component was built for .NET 1.1, it works happily (so far) in .NET 2.0. I learnt how to use the BackgroundWorker object too, which works well. There’s another part of this software, namely the media writing, but I’ll add that to another post shortly as I think it deserves it’s own post.
Which brings me back to the present. I have revived the web project. I had a bit of a play around with some javascript modal box components for the login .. wizard I guess you could call it .. but they didn’t really seem to play nicely, so I have shelved that for now. It was only to try and make the interface look funky, but I’ll work on funkifying the project later on, once I have the process and function of the project working. At this stage I think it’s still going to be a .NET 2.0 and AJAX 1.0 project, but that is subject to change if I ever feel like it. I am about to start on the inter-user messaging side of the project so that I can have most of the easy stuff out of the way before I tackle the hardest section. I find it better to concentrate on the easier items before moving on to the more difficult ones.
So there you have it. I’ll shortly post about the media writing code, along with anything else I come up with along the way, but until then I’ll be head down in Visual Studio madly trying to get the web project well underway before something happens which causes us to shelve it again.