What I can do for you:

- Design a website for your new startup business


- Create online booking and ordering systems


- Implement custom software to help the operation of your business



What you get working with me:

 

- Free consultation to find the perfect solution for you

- A selection of different designs for your page or logo

- Domain registration and hosting setup.

- Your site showing high on Google searches

- Modern interactive features to make your site stand out from the rest

- Easy to use maintenance tools to add new content to your site

- Free support to make sure everything is working how it should

- Security for customers ordering with credit cards

- Training for all staff using your newly built system

- Setup of all needed hardware and integration into your work place

Latest Blog Posts:

 

Blog Tags and Categories

by Dean Nolan 19. June 2009 16:58

I have added tags and categories to my blog. This means I can blog about anything I want now and not have separate blogs or sites for different topics.

It also means finding the posts that are of interest to you easy. Not care for my web development stuff but read my software development posts? Just subscribe to the software dev category.

The main categories so far include:

  • RSS feed for BooksBooks – reviews of books I’ve read that you may find useful.
  •  

  • RSS feed for BusinessBusiness – anything to do with starting a business
  •  

  • RSS feed for FreelancingFreelancing – tips for freelancing
  •  

  • RSS feed for Game DevelopmentGame Development – anything I find useful for game dev
  •  

  • RSS feed for MusicMusic – Posts of my songs, videos, covers or rants
  •  

  • RSS feed for Software DevelopmentSoftware Development – My main topic, software development tips and guides
  •  

  • RSS feed for This SiteThis Site – Boring updates about this site
  •  

  • RSS feed for Web DesignWeb Design – tips for the design part of the web, Photoshop, CSS etc
  •  

  • RSS feed for Web DevelopmentWeb Development – anything useful for web dev, JavaScript, server coding etc
  •  

  • RSS feed for WritingWriting – I am not good at writing. But I hear that if you practice often you can   
  •                    improve. So here are posts that may be useful but take on more of a story.

    Hopefully now people coming for software dev information won’t be too annoyed seeing posts of me trying to play guitar.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (2)

    Joe Satriani Ten Words Guitar Cover

    by Dean Nolan 19. June 2009 07:20

    I have been learning to play the song Ten Words by Joe Satriani.

    I have been looking to get back into playing guitar after a long on-off break.

    So I am trying to learn some instrumental songs, preferably ones I can play on a guitar with no whammy bar. I know you’re thinking Racer X!

    I decided to record me playing the song so I can put on YouTube and get feedback. I know the tone isn’t great and there are a few mistakes but I was tired after playing it a hundred times while trying to get the webcam and recording software working correctly.

    Watch and let me know what you think – specifically advice on improving or suggesting some more songs to learn.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (1)

    This Week in Startups

    by Dean Nolan 16. June 2009 03:08

    Jason Calacanis has a new video podcast, This Week in Startups.

    Each week he gets in an entrepreneur and interviews them about starting up their company and giving advice for new entrepreneurs starting up their first business.

    So far guests have included Seth Sternberg, the co-founder of Meebo, and David Sacks, one of the guys behind PayPal.

    You can watch it live and interact with Jason and his guests via Twitter. Just ask your question and add #TWIST at the end.

    For anyone starting in business or just interested in how other great business people started very successful companies, I highly recommend viewing and subscribing.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (1)

    Creative Font Typefaces for designers

    by Dean Nolan 16. June 2009 02:47

    Being more a developer rather than a designer I often find myself trying to keep everything simple and get the point across in text.

    I am good with a pencil but I lack skills in Photoshop to really make great designs. You know the one’s you see on fashion sites or artists portfolios.

    I just came across this page however which has twenty creative fonts that can be used to make your design stand out.

    I particularly liked the Laurent HW and Sunday Morning Garage Sale fonts. The Dora one could be kind of cool for an sketch style page.

    14-05_laurent-hw

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (1)

    Freelance While Travelling – Getting Started

    by Dean Nolan 9. June 2009 12:42

    If you are a freelance designer, writer, photographer or developer then you are in the lucky position to be able to work while travelling.

    You could be writing on a beach in the Bahamas, taking a snap of African wildlife or tweaking a web page while in Tokyo.

    Taino_Beach__Bahamas

    If this lifestyle sounds good to you, and it might not if you have kids say, then below is a list of things to consider before setting off.

    Get your office online

    Imagine you get your laptop stolen or it blows up (mines just did). You may lose quite a lot of work, unless your smart and backup regularly. However there is a huge inconvenience of trying to work freelance while travelling without a laptop.

    A great way to solve this is to start using Google Docs. You get a decent word processor and spreadsheet that have tonnes of tools and tricks to make your life easier. The spreadsheet is good for budget planning.

    Using Google Docs means your work is available from any computer. Now if something goes wrong with your laptop you can still work in a net cafe temporarily. Regardless if you prefer Mac to Windows.

    You can also have to-do lists and events marked on your calendar, again all from within one easily accessible place. If you don’t already have a GMail account, set one up!

    When travelling you don’t want to carry anything you don’t need so scan all those old paper documents, sketches, notes and upload to GDocs.

    Communication, Payment and Snail Mail

    Most of the time while travelling you won’t be in the same city as your client. You will want to let your client know that you will be working remotely before starting a project so they know you can’t meet in person.

    Realistically though, this is not a problem. You can email from anywhere, talk in real time via instant messaging or over Skype.

    One thing to keep in mind is the time zones though. When writing down deadlines or appointments be sure to note the time zone of the client and also the time zone you are currently in.

    Payment shouldn’t be an issue either. It is simple to ask a client to pay via PayPal or if need be directly into your bank account. PayPal even offers to convert the payments into your own currency.

    It can be hard for some people to reach you though and they will send mail to a real address. The best way I found to get over this is to setup all the bills you can to go to email such as bank, phone etc. For everything else get them sent to a family or friend’s house that you trust. They can open it and send via email all the important information you need or even scan it and send you a copy. There are services that provide this but a friend would be cheaper.

    Finding work

    A lot of people are scared to make the jump in fear of not finding work. It is a good idea to save enough to see you over a few months (I don’t know why I never take this advice).

    So before you get going make sure you have a portfolio website. Show your best work, what you do and have your contact details on every page.

    Start a blog. Blogging will help in so many ways. If you post tutorials or guides for your profession, people will see you as an authority on that subject and link to you or ask for help.

    If you have a blog on the homepage then Google will see the site as changing frequently and so you will have a better chance of showing up in searches.

    Don’t think you don’t have something worth writing either. You’re going off to see the world! Write about the sights you saw or the events that were happening. Upload photos. It’s also a good way for the people back home to see how you are doing.

    Most importantly, it’s a form of release. You can spill out all your days events, thoughts and rants and it helps put them into perspective. Well maybe, it does for me.

    You could also keep track of job boards, I do this via Google Reader, for when times are rough. Bidding sites are the devil but sometimes a quick project may be needed and they can be good for learning new skills.

    Get listed in online directories and if you can you can try out Google AdWords to try and generate more traffic to your site.

    Ask all your old clients, family and friends to refer you to people who may need your help. Also interact with locals and let them see how enthusiastic you are about what you do, it might turn into a lead. Have business cards ready.

    The ultimate achievement is to have some sort of business that generates passive income. This could be a website that has very little maintenance from you that sells a product or a subscription based service.

    I am currently working on a project that will be setup in many different cities and will require a lot of work. Fortunately I am recruiting help from friends to do all the face to face stuff in these towns while I work on the software from wherever I am.

    Equipment

    Depending on what you do you will need different equipment and tools with you. However from a tech standpoint I would say all you need is a laptop that is light but powerful enough to do your job on.

    Maybe a spare battery or two. A large USB pen drive. You can get 10GB for next to nothing these days.

    If you are a travelling musician or video editor then I would say get an external hard disc drive also. Again, a Terabyte drive is so cheap today.

    Also, get a 3G phone like the iPhone. It’s quicker to email when in a hurry and don’t want to setup laptop. You can quickly check maps, guides and obviously be able to phone in emergencies. Try and get a roaming contract deal with your network provider.

    So to wrap up I would like to just say, if anyone is doing this or thinking of it, get in touch. Email or leave a comment. I would be interested in how other people are approaching this or how they are coping out in the wild.

    Most importantly, send me a link to your blog, I want to read your adventures.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (2)

    URL Helpers in ASP.NET

    by Dean Nolan 3. June 2009 21:43

    Hard coding URL’s to all your scripts and images in your view pages is not a very good idea. You may wish to change the directory structure of your website which would cause a lot of pain if you had put the absolute paths in your page.

    A simple solution is to create a set of helper methods so that the changes can be made in one place and to allow you to easily include a CSS file or script like so:

    <link href="<%= Url.StyleSheet("Site.css")%>" rel="stylesheet" type="text/css"/>
    <script src="<%= Url.ScriptUrl("jquery-1.2.6.js")%>" type="text/javascript"></script>

    Below is a simple class that I have used in 3 MVC project now and keeps everything simple and easy to re-factor.

    using System.Web;
    using System.Web.Mvc;
    
    public static class UrlPathHelper
    {
        //Returns an absolute reference to the Content directory
        public static string ContentRoot(this UrlHelper helper)
        {
            return VirtualPathUtility.ToAbsolute(helper.Content("~/Content"));
        }
    
        //Returns an absolute reference to the Images directory
        public static string ImageRoot(this UrlHelper helper)
        {
            return string.Format("{0}/{1}", ContentRoot(helper), "Images");
        }
    
        //Returns an absolute reference to the CSS directory
        public static string CssRoot(this UrlHelper helper)
        {
            return string.Format("{0}/{1}", ContentRoot(helper), "CSS");
        }
    
        //returns an absolute reference to the Scripts directory
        public static string ScriptRoot(this UrlHelper helper)
        {
            return VirtualPathUtility.ToAbsolute(helper.Content("~/Scripts"));
           
        }
    
        //Builds a script url
        public static string ScriptUrl(this UrlHelper helper, string scriptFile)
        {
            return string.Format("{0}/{1}", ScriptRoot(helper), scriptFile);
        }
    
        /// Builds an Image URL
        public static string ImageUrl(this UrlHelper helper, string imageFile)
        {
            string result = string.Format("{0}/{1}", ImageRoot(helper), imageFile);
            return result;
        }
    
        /// Builds a CSS URL
        public static string StyleSheet(this UrlHelper helper, string cssFile)
        {
            string result = string.Format("{0}/{1}", CssRoot(helper), cssFile);
            return result;
        }
    }
    

    Basically this is just a list of extension methods for the UrlHelper class. You just need to include this file in your code in your app and you can start using the helpers like in the first example.

    Now if you need to change the directory structure all you need to do is change the Root helper to point to the new path.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (2)

    ASP.NET MVC Partial Views

    by Dean Nolan 27. May 2009 16:40

    One of the most useful features of Asp.NET MVC are partial views. These are little .ascx files that you can put user controls or forms that you may wish to reuse throughout your site. The MVC template comes with one for a login control.

    When I was working with the early versions of ASP.NET MVC I didn’t really know much of them and when I was implementing the incremental search for a new start-up I used Ajax client side templates. I wrote a post about using client side templates for incremental search.

    There were a lot of annoying little problems with the client side templates that meant I had to find a better solution.

    Now I don’t know much about the client side templating, I was developing in a new framework (MVC) and was doing page fault style learning as I went. But there seems to be no easy way in the template (or at least a logical, clean code way) to simply check if the value returned by the AJAX call was null and if so display a different message. For example, a flag set so that a restaurant has online ordering displays either an order button or text saying otherwise.

    Plus there was the repeating code for the template and the initial results page looked like as well as fiddly ways to bind Id’s to action links like this:

    <a sys:href="{{'Contact/Index/' + ID}}">{{Name}}</a>

    So I decided to redesign this using Partial Views after reading the sample chapter from the Professional ASP.NET MVC 1.0 book.

    Real world example

    Here I will show you a stripped down version as an example of how I am using partial views in a real project. The project is a new start-up online takeaway food ordering website called Time 2 Munch (depending on when you read this (before June 2009), the link may take you to a blank page. I have had the idea for a while and I never got round to implementing it due to business concerns, freelance work, relationship problems and just being extremely lazy I guess.

    Anyway, on the home page I just want a list of the top viewed restaurants and a search bar that when a user starts typing in, the list is updated automatically. Here’s how simple the HTML looks:

    <div id="SearchBar">
            <% using (Html.BeginForm("IndexNoJavaScript", "Home")) 
            {%>
                <%= Html.TextBox("SearchTextBox", ViewData["SearchText"]) %>
                <p>{ Search by Restaurant name, postcode or cuisine style }</p>
                <input type="submit" value="Search" />
            <% } %>
        </div>
            
        <% Html.RenderPartial("SearchResults"); %>

    The search stuff is all JQuery and can be read on my previous blog post. The part worth noting is the RenderPartial method. All you do is pass in the name of the partial view. You can also pass in a different model, say a subset of what the main view is using which I will detail in a second.

    In your views folder right click and select add view. You should get a popup like this;

    AddPartialView

    Notice the tick on the checkboxes for create partial and strongly typed? This just makes a .ascx file with no overhead or master page and makes it strongly typed with your model. Here I have passed in a custom view data model that contains a list of all the top restaurants.

    The partial view is pretty simple:

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Time2Munch.Models.ViewModelData.RestaurantsList>" %>
    <div id="RestaurantsList">
        <%if (Model.restaurantsList.Count() > 0)
        {
            foreach (var item in Model.restaurantsList)
            { %>
                <% Html.RenderPartial("SearchResult", item); %>
                
            <%
            } %>
        <%
        }
        else
        {
            Html.RenderPartial("NoResults");
        } %>
    </div>
    

     

     

     

    This checks if there are any results and if not, displays another view that shows a No Results error. If there are matches to what the user asked then we loop through each of the restaurants and pass each to another partial view SearchResult. This view takes in just the current restaurant and displays the relevant details. I know I should probably change the name of the view to DisplayRestaurant or something but you get the idea.

    And a simple cut down version of this view may look something like so:

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Time2Munch.Models.Restaurant>" %>
    <div class="SearchResult">
        <h2><%= Html.ActionLink(Model.Name, "Index", "Restaurant", new { Id = Model.Id }, null)%></h2>
        <h3><%= Html.Encode(Model.Telephone)%> </h3>
        <p>
            <%= Html.Encode(Model.Address)%>
        </p>
        <p>
            <%= Html.Encode(Model.Postcode)%>
        </p>
    </div>
    

    So using partial views I now have no repeating code, no annoying hacks and a simple reusable view that I can add logic to and have a clean result.

    A final example

    I will give you another quick example of how useful this really is.

    In a project for a client there is a 3 page registration form. If the customer is registering then there is to be a navigation bar on the page that shows the current page and links to previous and next steps.

    The requirement is that when a user logs in and wants to edit this stuff, they select a relevant part, profile, skills etc and edit. But no navigation is to be shown for registered users and when they save it directs to the my account page.

    Simple stuff really but obviously there is code that should be shared here and so the actual forms the user fills in are a great example of when to use a partial view since they are reused in a few places on the site.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (2)

    Professional ASP.NET MVC 1.0

    by Dean Nolan 25. May 2009 13:06

    I just finished reading the brand new Professional ASP.NET MVC 1.0 book by Scott Gu, Scott Hanselman, Rob Conery and Phil Haack.

    I think it was excellent and essential reading for anyone wanting to learn ASP.NET MVC.

    You can get the whole first chapter for free. You can also now view in HTML.

    In this free chapter Scott Gu build a real world sample website called Nerd Dinner. It walks you through building a new database, CRUD operations, implementing the model and business rules as well as describing partial views, AJAX and Test Driven Development.

    The rest of the book goes into everything in a lot more detail. First few chapters explain what MVC is and how it differs from web forms then goes into the ins and outs of URL’s and routing, Controllers and Views.

    There is also a great chapter on security and protecting your site from Cross Site Scripting and Cross Site Request Forgery.

    These guys also keep you entertained in their writing as you’ll know if you’ve read their blogs.

    So get yourself a copy and start using ASP.NET MVC. If your like me you won’t want to go back to web forms.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (0)

    ASP.NET MVC not included in Visual Studio 2010 Beta 1

    by Dean Nolan 23. May 2009 17:31

    Earlier I posted about the release of Visual Studio 2010 Beta 1.

    One thing that got in the way of work was that ASP.NET MVC is not included in the beta, though it will be in beta 2.

    A quick search found that Phill Haack had a post about this already. He linked to a fix to opening an ASP.NET MVC project without having ASP.NET MVC installed.

    It’s simple enough but it is limiting for the time being as all the IDE features of ASP.NET MVC aren’t available such as the options on the context menus to add views or any project templates.

    This is said to be fixed in June.

    So for now it looks like I’m going to do “Real” work in VS2008 as I am currently developing two websites in ASP.NET MVC. I’ll keep VS2010 on a virtual machine to play with the new stuff.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (0)

    Visual Studio 2010 Beta 1 Release

    by Dean Nolan 23. May 2009 12:18

    I just downloaded the Beta 1 version of Visual Studio 2010.

    There are a lot of new features that make life easier for the developer. A few I was looking forward to are described on Soma Segar's blog. Notably:

    Quick Search:

    This is an incremental search function, the kind I described how to code on a previous post, Ajax search using Jquery, client side templates and ASP.NT MVC.

    Say you have a large project with tons of lines of code and many source files and you were trying to find an event handler you wrote that fires a post event after leaving a text box. You might have forgot the name but you know it probably has the word Leave as part of it. Typing Leave into the Quick Search dialog will automatically show results for all methods with that word in it. You can then either type other words you think are in the method name or select a match if one showed up.

    Consume-First Development

    This feature looks like it will be unbelievably useful for Test Driven Development.

    When writing a test you often write a piece of code that calls on part of a class that may not have that method defined yet. Or maybe you use a method but pass in parameters that are not expected.

    Well in VS2010 you can have the IDE automatically generate stubs for these new methods, complete with method overloading based on the types of the parameters passed in.

    .NET 4.0

    The biggest thing I and I think most people want to try out is .NET 4.0.

    Windows Presentation Foundation 4 now supports Windows7 multi-touch. As well as new ribbon and taskbar controls like in Office 2007.

    One thing that got some of the biggest buzz was parallel programming extensions and PLINQ to distribute the workload over multiple cores of the CPU easily.

    And obviously there’s ASP.NET 4.0. Web forms now support URL routing just like in ASP.NET MVC. You now get more control over the rendering of client Id’s of the controls on your page.

    All exciting stuff I think. Again Microsoft seems to have outdone themselves with this upgrade to what’s already the best piece of software for developers.

    Patrick Smacchia has an interesting article about some of the changes to the assemblies.

    Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

    Permalink | Comments (1)

     

    -