Archive for the 'Technical developement' Category

When developers make me cry…

Posted by toby mills on Apr 06 2009 | Rant, Web Development, ASP.Net, Technical developement, Personal

From time to time I use web sites which frustrate and anger me. I’m left wondering why they are hard to use, why so little thought has been put in and why some obvious opportunities have been missed. But what really really makes my blood boil is when I see a site that has been badly developed, especially when a developer has taken a reasonable, sometimes simple concept and made a complete mess of it.

Today I have, amongst other things, been looking over a clients site, Sorouh. The website is far from the worst i’ve seen in this region, in fact it looks positively up-to-date compared to some i have seen. The design is simple with a good amount of information and even has a site map for SEO purposes but then i started to notice strange things. The site map link was not being recognized as a link, on hovering over the “Developments” menu the link shown was different from the page you landed on. Then i looked at the source code and i nearly cried.

The developments home page is nearly 800Kb in size, the homepage html alone is over 1700 lines and 155kb in size and the javascript is 700 lines long and 214kb in size! All the page displays is a bit of flash, a few images and some 400 words! Who ever developed the site seems to have included every Ajax / Javascript library. The have surrounded simple links with entire html tables which then have onClick events on them which over-rides the link its surrounding. Every menu link is re-written in javascript and the links that appear in the html are different to the ones that appear in the javascript.

I fail to understand how someone can code such a simple site so badly. Time is not even an excuse as they have way over complicated it and at least doubled if not trippled the amount of work they needed to do. Programming should be simple, elegant and serve a purpose, not a complete waste of time and space! What makes this worse is it’s so un-necessary, adversely affects SEO and impacts the time taken to display the page and thus the user experience.

no comments for now

Branding a Browser

Posted by toby mills on Apr 02 2009 | Branding, Web, Marketing, Technology, Technical developement

As i mentioned in my last post I have recently taken a position with The Brand Union in the Middle East. Having only ever worked for IT / Online marketing companies branding is not something that I have given much consideration for. I’ve always realised it’s importance but just left it up to someone else. Obviously now that i work for a branding agency my views and insights have substantially changed and so inline with that some of my posts going forward will feature an element of branding and this is going to be the first.

Mozilla have just released new functionality for their Firefox internet browser which allows users to easily and quickly download a new look for their browser. This feature provides consumers with a great new way to personalize their browser around a brand. This could be utilised as an excellent feature for brands like the Premiership or the GAA where there is a big fan base. In fact, on of the persona’s already made available, one is for the Champions League football tournament.

To use the persona you need to download a new plugin for Firefox which places a fox logo in the bottom left of the browser window. Clicking on this presents you with a wide array of pre-created persona’s for you to select from. Rolling over each persona enables you to preview the persona. What’s also neat is that if you visit a website with persona’s on it, simply hovering over persona on the page will preview the persona in your browser and simply clicking on the thumbnail will install that persona in an instant.

The personalization of the browser allows for a background picture to be applied to the main bars at the top of the browser as well as the status bar and for a different colour scheme.

Read more here: http://www.getpersonas.com

no comments for now

LAMP with Ubuntu and Virtual Server

Posted by toby mills on Dec 18 2008 | LAMP, Web Development, Technical developement, Personal

Over the past few years and more notably over the last 12 months Linux has started to make real in-roads into the traditional MS Windows market place with its inclusion on OEM systems from Dell, IBM and HP as well as the likes of the OLPC and cheap Netbooks. This has not just been driven by a desire to reduce costs but also by the fact that Linux has matured greatly over the years and some new flavours are really starting challenge MS Windows with regard to usability and functionality. Couple this with MS move to ‘open up’ MS Word document standards so that they can now be easily opened & edited in other programs due to their XML nature and suddenly there are very few reasons not to at least try out Linux.

Other than some very basic Unix monkeying back at university in 1997 I’ve not explored Linux at all and being a techie/geek that was just was not on. Especially seeing as you can now get VMware Virtual Server for free. Using a ‘virtual machine / server / computer’ allows me to install Linux on my laptop from within XP without it affecting XP in the slightest. The virtual machine appears as a new program within XP so I can use both simultaneously with only a minor hit on performance. As my laptop has a dual core 2.4 Ghz processor and 4Gb of RAM it can easily handle running Windows XP as a main OS and Linux running from within VMware. Hell I could also run XP in VMware as well and it wouldn’t blink however that would require a new license for XP if one was to stay legit. As the basic VMWare server and Ubuntu are completely free doing this costs’ me nothing more than disc space!

So I’ve downloaded the latest version of VMware & Ubuntu and mapped the Ubuntu installation (ISO) to a new VMware machine. Once I turned it on it happily booted into the Ubuntu installer and away it went. It was simple to install with no issues what’s so ever and now I have a Linux on my laptop without any concerns about it corrupting Windows.

But, what’s the point in all this if I’ve already got XP & Office & everything else I need happily running on my laptop other than as a proof of concept and to confuse people looking over my shoulder? In an acronym: LAMP! LAMP stands for Linux, Apache, MySql and PHP and represents a series of packages you can install on your server to have a fully fledged web server.

Before I created this blog I had never done any ‘real’ work with PHP or MySql but when I saw that my hosting company was providing a means to roll out WordPress easily to my account I thought ‘why not give it (Wordpress & Blogging) ago’. That meant getting to grip in some ways with PHP and MySql to install the software and configure the blog to look & feel how I wanted. Admittedly installation was very easy and the only PHP I’ve so far had to do is filtering posts for specific pages but coding it is none the less.

Unfortunately the version of WordPress offered by my host is quiet old and out-of-date so having got to grips with that version of WordPress I wanted to see what else I could do as well as what the newer versions offered. The only way to do that was to install WordPress myself and I sure as hell was not going to load XP up with yet more server software etc. to try it out. This is where the beauty of a virtual machine comes in, I now have a fully fledged Linux installation (admittedly minus any pretty interfaces due to VM graphics card limitations) with LAMP and WordPress installed. I’ve also installed WinMin which is a web based GUI for administering a range of items including MySql, Apache as well as the OS and I’ve been very impressed with it. I can now play away with all the packages to my hearts content without threatening the stability of anything but a ‘virtual’ test system.

OK, I have to admit its not gone entirely smoothly. During first attempt at installing WordPress I managed to corrupt MySQL and the only way I found to resolve it was to completely whip the machine L There may have been an easier way but everything I tried seemed to make the matters worse and as I had no data on the machine it was easier to wipe it and start again. This is where Virtual Machines come into their own as not only does formatting it not affect the main XP system but all the data for it is stored as a single file in a directory on my laptop. This not only means that I can back-up the system at different stages extremely easily but I can also spawn infinite versions of the OS just by copying the file and mapping it to a new virtual machine!

My experiences so far with Ubuntu and LAMP have been varied. I’ve been incredibly impressed with how easy certain things are to do and the wealth of programs available from the initial installation as well as through the package installed. However, other ’simple’ things like refreshing network interfaces, installing packages which are not on the main list and updating some packages has been a nightmare. Needless to say a lot of it includes command line usage which I don’t mind if only I knew the commands. On the plus side the web is full of answers to the majority of the questions & issues I have had, Google is your friend J

I would highly recommend to any geek / techie / developer to have a go, you’ll be surprised how easy it is and it does not cost a penny. However I would say that Ubuntu (Linux) is not quite ready for non-IT-literate people like your granny but it’s not far off.

I’ll keep you posted on my experiences…

no comments for now

The benefits of a CMS

Posted by toby mills on Nov 25 2008 | Web Development, Technical developement, Personal

I wrote this a while back as a guide for clients who where thinking of redeveloping their website and thought i would put up on the blog. Content Management Systems (CMS)  have come along way since this was written so I will update it but it still has some valid and valuable points…

BENEFITS OF A CMS

Benefits of a Content Management System
A Content Management System (CMS) provides a range of benefits over traditional static HTML pages. The main benefits of a Content Management System are:

Fast & Reliable Updates

The single largest benefit of using a content management system to administer a website is the ability for authorised personnel to edit the content which appears on the web pages without having to have any prior knowledge of web development. The success of many of today’s popular and successful websites owes a lot to the frequency with which content is updated. The use of a CMS system allows company personnel to update the sites content easily and frequently ensuring users return regularly.

The majority of CMS systems work very much like the popular MS Word office application making them very intuitive to users. These systems also provide a variety of additional functionality to ensure the integrity of the site, e.g. Work flow process, version control and Staging area’s. The document below outlines the main benefits of additional functionality.

Training

One of the main benefits of a web based Content Management System is the reduced training requirements for users to be able to access the system. No prior HTML experience is required to enter data or control it’s formatting. Control of formatting can vary depending on the content ensuring pages always conform to expectations while still providing users with the flexibility they would need and expect.

Web Access

A Content Management System would provide one central web area to edit content. The main benefit to this that a user can access, modify and publish content from anywhere in the world; as long as they had access to a web browser and the site. This reduces licensing costs and restrictions on user locations as the majority of computers now have both web access and a web browser. When this is used in conjunction with workflows and security policies it leads to a highly efficient and secure system which is still flexible enough to meet the requirements of an ever growing and changing intranet.

Workflow

Workflow ensures that no content can appear on a site without having been checked and signed off by a variety of users. This guarantees that no content can appear on a site ‘accidentally’ and that the content has been checked for spelling errors, accuracy and validity at each stage before being published. This also provides an audit trail which ensures users are accountable for changes and allows administrators to track user actions and the progress of work
A typical work-flow could be:

  • Edit
  • Review
  • Publish

Componentisation

Componentisation allows for content on a page to be broken down into independent objects and for content to be divorced from its presentation. It also allows for pages to be accessed and modified by multiple uses simultaneously as each one can work on different areas without affecting the other.

Work Distribution

As content on the intranet will be controlled by hundreds of users, a Content Management System would ensure that a variety of users could work simultaneously on different content on the same page or across multiple pages. At the same time it also prevents users from editing the same content at the same time.

Advance Editing

Content held within a Content Management System can be preset to be published at set times allowing content to be edited but not published until an approved time. This is particularly useful with industry news and events where early release of information can be detrimental to the company and its employees.

Versioning

Versioning ensures that every change to a page or component on the site is stored so that items can be easily and quickly rolled back to a previous state without having to re-edit them. It also provides administrators with information on the date and time of changes as well as the users involved.

Globalisation

An ever growing percentage of web users first’s Language is not English and represent a lucrative market if a website can accommodate their Cultural needs including Language and Interface variations. A CMS system provides an easy way to create pages which can service a number of languages and cultures without requiring new pages or sites to be created. Access to the CMS can be given to Language specialist to allow companies to outsource translation work without jeopardising the integrity of the site.

Blue Printing

Blue printing is the process by which child sites can be created using a parent site as a template. The child site is then able to inherit all the structure, content and functionality of the parent site which can be customised and built upon. This enables site administrators to quickly and easily roll out new websites or micro-sites with the minimum of effort.

Storage

A Content Management System provides a centralised storage location for all content on a site be it simple text, binary files or multimedia objects. The benefits of this are that assets can be accessed globally, tracked and backed-up. It also ensures that content is stored in a structured format which allows it to be easily located by users.

Backup

As content is stored in one central location, backing up and restoring data to all areas of a site can be easily managed from the central location by very few staff.

Publishing

Content Management Systems provide the ability to publish content to a variety of targets. Not only does this mean that content can be published to a server for testing and approval but it also means that different content can be published to a variety of websites while still being maintained in a central location and without duplication. Another ability of Content Management Systems is to enable the same content to be published to a variety of clients for example: Web, PDA’s and Cell phones, without requiring content to be inputted multiple times.

Security

Content Management Systems allow access to different areas to be restricted to the users who are in charge of a particular area of a site. For example, content editors can freely edit content but only authorised personnel would actually be able to publish content once it had passed through the work-flow system. Equally on authorised users would be able to change the presentation and layout of content. Different types of content can also be assigned to different users allowing designers to change graphics without them being able to change textual content.

Search & Locate

As a Content Management System ensures content is stored in a central structured format it provides users with the ability to easily locate resources which would otherwise be dispersed across a variety of locations and computers.

2 comments for now

Programmers, Typing and shortcuts…

Posted by toby mills on Nov 20 2008 | Web Development, Technical developement, Personal

I recently read an interesting blog post by Jeff Atwood where he discusses the importance of developers being profficient and quick typists. This is something that i have long felt strongly about however I tend to take it one step further. I believe developers should not only be able to type quickly but they should also know a huge array of keyboard shortcuts. I dont just mean the simple Ctrl+C (copy) & Ctrl+V (paste) but also Alt+Tab, Ctrl+Tab, Windows+E, Windows+R, Windows+D, Ctrl+Enter (for IE & FF) etc…. I have even gone as far asking developers in interviews what keyboard shortcuts they use the most!

To some this may seem crazy but as Jeff discusses we spend the vast majority of our time in front of keyboards and should be able to produce work quickly. This doesn’t mean firing out drival like a team of monkeys, i mean the speed of input should constrict a developer as little as possible. One of the most frustrating things for me when working with /watching other developers at a computer is when they constantly use the mouse to copy and paste, change windows, search etc. It’s soooo slow. One of my favorite shortcuts is Ctrl+Enter in IE & FF which automatically enters “www.” and “.com” around a phrase in the address bar.

I have to admit that i have yet to master all of Visual Studio’s shortcuts, especially the dual key ones like Ctrl + E, C (comment out code) however i think my speed round most menu’s makes up for this and i do try to learn new ones with every bit of work i do.

One exception though is how important it is when showing someone else how to do something on a computer, be them a novice or an expert, is to slow yourself down and ensure they are following your every move. I know that some people have been mesmerised / confused at watching me use a computer as they don’t know what i did to accomplish something. I skip between windows, menus, scroll down pages etc without thinking or stopping. This can mean that the person that i am demonstrating something to or working with either can’t keep up or is utterly confused by what i have done which is often counter-productive. This is often componded by people being ashamed to admit they did not follow or understand something and going often and wasting hours of their own time and others.

Some of my most used shortcuts are (starting from most obvious):

  •  Ctrl+
    • C = Copy,
    • V = Paste,
    • X = Cut
    • W = Close window
    • Enter = In Internet Explorer and Firefox this surronds the text in the navigation bar with “www.” and “.com”
  • Shift +
    • Enter = In Internet Explorer and Firefox this surronds the text in the navigation bar with “www.” and “.net”
  • Windows +
    • E = Explorer,
    • R = Run,
    • D = Show Desktop
    • S = Select (OneNote)
    • Tab = In applications which support tabs this goes between the tabs
    • 1 to 9 = In applications which support tabs this goes to a tab of that number
    • (nothing) = Opens start menu and then use Arrow keys to naviage
    • (nothing) and then Tab = Opens Quick start menu
  • Alt +
    • Tab = Changes window,
    • R = Run,
    • D = Show Desktop
    • S = Select (OneNote)

This is far from a complete list and I’ll add to this as time goes on.

Btw: My current typing speed is around 60wpm so still some improvement to go…

2 comments for now

Excellent new Website Administration Tool and Custom Membership Provider

Posted by toby mills on Nov 19 2008 | Web Development, C#.Net, ASP.Net, Technology, Technical developement

As I’ve previously written i’ve been spending some time recently catching up on with the .Net community and exploring some of the new tools that are out their to assist and speed up development of ASP.Net projects. One of the tools I have come across and been playing with is a new ASP.Net web site administration starter kit created by hunzonian which uses the ASP.NET Membership Provider. The starter kit is basically a template to produce an admin front end website for the ASP.NET Membership Provider. It looks good and works well however i have found the following issues:

  • Although i have yet to fully develop using MVC, it would be nice to see this implemented using the framework. The main reason for is would be the clear delimitation between functionality and presentation.
  • One of my main gripes with the ASP.NET Membership Provider is the way it stores profile data as one long CSV string in a single field. This means to run any queries against it you have to extract the data from the field and manipulate it to seperate the values and then run your query against it. I much prefer having each profile setting in a seperate database field and there are providers out there that will do this.
  • Currently to add new profile fields to the schema you have to edit the web.config and then add the fields manually to the forms. Not a lot of work but would be nice if the admin site had a way to do this.
  • The site currently uses CAPTCHA for logging in and another number of area’s. While this is a useful tool I would life some way to easily turn it on and off.

Overall this is a very good starter kit and certainly looks better than anything i could have put together on my own. It’s also worthwhile bearing in mind that the full source code is there so you can easily amend functionality.

Enjoy and let me know what you think…

no comments for now

EF’in Hell! LINQ isn’t dead, just paralysed….

Posted by toby mills on Nov 19 2008 | Web Development, C#.Net, ASP.Net, Technology, Technical developement

Well it seems there has been some confusion in the community about the future of LINQ to SQL and Microsoft has tried to clarify their position and reassure developers & companies alike in a recent posting. The first item to be clarified is that LINQ (Language Integrated Query) will continue but LINQ to SQL development may stall.

So what’s the difference? LINQ is a language which allows developers to easily construct statements (like SQL) to be exectuted against a data source. Its a great language which allows developers to quickly and easily construct powerful queries without tons of code. To use LINQ against a data source an interface has to be provided, e.g. to execute LINQ against a dataset, XML data or SQL. This is where the problems arise, MS have produced an interface for LINQ to connect to SQL (LINQ to SQL :-)). MS are also working on another data interface called EF in which it seems they are putting all their Eggs. As i said before i can understand their want to concentrate development but many people are asking why can the two technologies not co-exist? Especially those that have tried both and found difficulties, e.g. Chad.

So, what is the situation? Well MS is saying that LINQ is definatley not going away which is great. However they are probably going to stop developing LINQ to SQL at some point in the future however they will continue to do some development based on “Customer Feedback”, whatever that means and whoever that is. MS say they are just trying to be open about future paths they are going to take which is appreciated. However most people, including myself, who use LINQ would like to see support for LINQ to SQL continuing. So we’ll just have to watch this space to see what happens…

no comments for now

MS PDC 2008 - A room with a view

Posted by toby mills on Nov 17 2008 | Web Development, C#.Net, ASP.Net, Technical developement

At the end of October, Microsoft held it’s Professional Developers Conference (PDC) which hosted presentations on current and future technologies being developed by Microsoft. These ranged from the unveiling of Microsoft’s cloud computing initiative, demo’s of the new Windows 7 and naturally talks on developing for all of Microsoft’s technologies. Its a great event and one i would love to attend however it’s held in the USA and time & cost has always prevented me from attending. However this year all of the presentations have been made available online for all to watch and you can even download them!

This of course has meant that i’ve been able to ‘attend’ all the presentations that i would have otherwise missed and viewed some presentations that i probably would not have gone to see even if i had been there all from the comfort of my home. Some of the presentations i have watched have been superb and ‘must’ see’s for developers so  i thought i would round up my favorite ones and list them here. You can view all the talks at Channel9.msdn.com

ASP.NET MVC: A New Framework for Building Web Applications

This is a great talk by Phil Haack on the new MVC framework. He is also joined by Jeff Atwood from Coding Horror & Stack Overflow where he talks about his experiences in using MVC to create Stack Overflow. This is a must see for ASP.Net web developers.

Coding4Fun: Windows Presentation Foundation Animation, YouTube, iTunes, Twitter, and Nintendo’s Wiimote

Not all development has to be for work! This is a great talk given by several developers who have produced some simple applications using .Net to interact with a variety of web applications and more. Its worth the time to watch if only to see the Wii Remote integration with MS Maps.M

Microsoft Advertising Platform: A Day in the Life of a Click

This is a great talk not just for developers but for anyone who is interested in knowing how online advertising works. The talk goes through the differences between Pay-Per-Click, Banner Advertising and much more. It then delves behind the scenes to see how Microsofts AdCenter works in recording clicks, delivering adverts and billings. Although its Microsoft AdCenter focused the content of the inital quarter of the talk can easily be applied to many other online advertising areas including Google.

There are many more talks then i have outlined here and i for one will be viewing quite a few more and posting updates here.

no comments for now

EF’in Hell! LINQ is Dead

Posted by toby mills on Nov 11 2008 | Rant, Web Development, ASP.Net, Technology, Technical developement

Recently I have taken some time out of work to sell and move out of my house and prepare to move to Dubai. I also wanted to use this time to read up on the latest .Net techniques, frameworks as well as explore a few other development platforms. I’ve thoroughly enjoyed this time and it has made me realise how important it is for developers, no matter in what position, to keep abreast of the latest developments within their communities.

Anyway, over the last month or so I have been playing with a number of new .Net packages (MVC, ASP.NET WSAT, Linq to SQL to name a few), using VS 2008, reading up on the advances in the .Net 3.5 framework and getting back in touch with the community. I’ve really enjoyed getting back into the thick of it and have been pleasantly surprised at how far .Net & ASP.Net have come in assisting developers to rapidly role out and maintain applications. I was even starting to feel quite smug with myself at learning new techniques and ‘tooling up’ for work. So imagine my surprise and frustration when it’s announced that Linq to SQL is being dropped by Microsoft in favour of ADO.Net EF!

Now I can appreciate that Microsoft wants to concentrate their development on ADO.Net EF rather than have two separate similar frameworks for data access and manipulation however Linq to SQL was/is a great fast & simple way to access data sources without all the hassle of data sets and Stored Procedures. Having only played with both for a short period of time and not having used either on professional projects I’m not able to fully argue the pros & cons of either framework however what I can say is that by dropping Linq to SQL, Microsoft is in danger of losing the trust of the community and preventing development at the cutting edge.

Think of all the projects which have used SQL to Linq which are now redundant, all the time people have spent creating documentation and assisting other developers in learning the new techniques which has now been a waste of their time. Why should they continue to support emerging technologies for them only to be pulled, who’s employers are going to continue to let their developers experiments with the latest Microsoft techniques if they fear they will not be supported going further? A great example is the new stackoverflow.com website which has been developed using some the latest cutting edge .Net techniques including MVC & Linq to SQL. To ensure easy maintenance going forward they will now have to consider re-writing their DAL using alternative technologies otherwise future developers working on the site will have no idea how it works.

The one saving grace may be that Linq to SQL was released to the community so perhaps some people will take up the baton and drive it forward. While Microsoft is making some great moves to work with the community by releasing code on CodePlex as well as the being more open about development but all this risk’s being in vain if the community turns its back.

Suppose I better get on with learning ADO.Net EF and pray it doesn’t get pulled too.

1 comment for now

Impersonation in .Net

Posted by toby mills on Oct 22 2008 | ASP.Net, Technical developement

I’ve been struggling to get a project another developer has been working on to build on my machine, the main problem has been that the files within the App_Code folder did not recognise any of the dll’s or their class names and so other than the basic System and Microsoft namespaces I could not access anything. After quite a bit of frustration I have finally tracked down the issue…

The project uses windows impersonation to enable access to certain features within a CMS system this has been set in the web.config. It was set to use another user account and for the purposes of publishing the site I did not see any reason to change it. Oh what a fool I am. It seems that Visual studio actually uses these credentials to access files on the system and as the impersonated user has never logged onto my laptop (or perhaps his password has changed) VS would not allow the App_Code folder files to access the dll’s. Changing the impersonation settings to my own resolved this issue. So the conclusion is if you are using impersonation ensure the account is valid on the machine you are developing on and not just the one you run it on.

Alternatively to avoid this problem altogether DON’T user impersonation or use a generic network / domain account which is documented and shared with all other developers. The main reason for this is that if you use a personal account then it could be easily hijacked and series damaged could be caused because of your user privileges not to mention that your password will be visible in the web.config!

no comments for now

Next »