Wednesday, February 25, 2009

It has been....... busy

Hi All, 

Yes, I know, I haven't blogged in a long time... I have been VERY busy with www.jerrong.com, but more importantly I have taken on a new exciting role as the Solution Architect for Sitecore Australia. Sitecore is a really cool Web Content Management System that I have been watching for some time. I will write a full blog on the company when I have time to catch my breathe (I am writing this from the Airport in Canberra, Australia) but basically they have a product that is sexy, crazy good, and one of the most exciting Content Management Systems I have seen.....well...ever. Check it out!

Last weekend, while I wasn't working on Sitecore stuff I release a new version of Jerrong which added a few bug fixes, a few more features and some CSS fixes (it is getting closer and closer every day). Check it out!

I plan on writing a new part of the Contracting and Optimizing your time blog when I get some spare time, but for right now, I have been head down with learning the sitecore system......just an insider tip...it is awesome! Especially for a .net web developer.

Sleep time....

- Tim

Wednesday, February 11, 2009

Contracting and Optimizing your time Part 7

Hi Guys, 

I have been extremely busy in the past few days, working through bugs, moving house, so I haven't had time to Blog since the 8th. Once again, it is great to get feedback from the people following my blog, as you don't know how much it pushes me to write more and more articles from my experiences. Insert emotional tears here :)

But it is that time again, time to get into the next installment of the series on contracting and optimizing your time. Keeping in the same vein as last week of giving people advice in times of economic crisis, I have decided to talk this week about working on contracting projects that you know will work in times of economic downturn. Ok, so this isn't going to help out a lot of people that don't have contracting work at their fingertips, but then again, every other week has been about that, so I thought it was only fair to offer advice to people who have been very succesful in their contracting work but also face the problems that other contractors will always face. My company has been working on a few projects lately and it is keeping us all very busy (however I don't really do a lot with it anymore, it guides itself). Some of the ideas (that I won't disclose as they are confidential) are the kind of ideas that, as soon as you hear it, you say to yourself..."Yes...I can really see that working". Others, although we still love taking them on as clients, require a lot more research from Jerrong Web Solutions to discover how they could rise above the competition. To be honest, and this is the relationship that we have with our clients, if I run an idea past some of our staff and we all don't think the idea will work, we will definately tell the client. However, our stand is, that no idea is a bad idea, it just needs to be scaled to cater for today's market.

So without further jibberish talk (I am well known for this), what questions do we ask ourselves at Jerrong Web Solutions that make us believe that a product will either work or not? 
  1. The first important step is to have multiple people analyse the project from different perspectives. We usually get a technical perspective, a marketing perspective and a third party perspective.
  2. Who are the competitors in the market and why are they the best at what they do? 
  3. Is the idea simple? Will it take a long time to get up and running?
  4. How enthusiastic is the client about his/her product? (I kid you not, sometimes I have worked with customers that really don't know what they want. Sometimes these are fun, because it gives the team a lot more flexibility to be creative.)
  5. What growth is there in the business idea? Is it the kind of business model where if they don't get 1000's of users, then the product doesn't work?
  6. What financial backing does the client have?
These aren't the kind of questions that are YES or NO answers. There are a lot more indepth than that. Without going into a lot od detail and boring you, here are two sample answers to these questions, one that gets the "thumbs up" from us, and the other that gets the "this needs work".

EXAMPLE 1: A Project that Jerrong Web Solutions gives the "thumbs up" to
  1. Who are the competitors in the market and why are they the best at what they do? 
Company A has 5 huge advantages over the rest of the competition. Most importantly, the company
has a charity aspect, credit card integration and a client that is well networked in the area of the product.
 
2. Is the idea simple? Will it take a long time to get up and running?
The project will take the Web 2.0 approach of simplicity. One page, with the intention of getting the user in and out (bouncing) within 1 minute. 

3.How enthusiastic is the client about his/her product? (I kid you not, sometimes I have worked with customers that really don't know what they want. Sometimes these are fun, because it gives the team a lot more flexibility to be creative.)
The client is the product. They have great ideas of how to enable the business and have ambition to dirve all the marketing and advertising themselves.

4.What growth is there in the business idea? Is it the kind of business model where if they don't get 1000's of users, then the product doesn't work?
The business has a great model, as it will scale the business to meet the demand. The area of work would be interesting and fun, so finding employees would not be difficult. Product will work if the client has 10 clients or 1000 clients. There is no rush to make this product large, straight away.

5. What financial backing does the client have?
The client is self funded as well as having a lot of support from the community and financial sectors.
The startup cost to the business is small and in the event of the business not working, the losses would be minimal.


EXAMPLE 2: A Project that Jerrong Web Solutions would say to the client that they need work on either their idea, their business model or other factors.
  1. Who are the competitors in the market and why are they the best at what they do? 
Company A is getting into a market that already has a lot of other large and well established players. Although the company has
great ideas, it is the kind of market that, the project would have to offer a lot to entice other users to stray from their other product.
 
2. Is the idea simple? Will it take a long time to get up and running?
Site has a complex structure as well as a lot of functionality. Estimated time or completion is 6 months.

     3. How enthusiastic is the client about his/her product? (I kid you not, sometimes I have  
worked with customers that really don't know what they want. Sometimes these are         fun, because it gives the team a lot more flexibility to be creative.)
The client has seen another product and bascially wants to replicate it but with a slight spin. Therefor the clients research is only off the back of other companies research. The client is not very open to other ideas. 

4.What growth is there in the business idea? Is it the kind of business model where if they don't get 1000's of users, then the product doesn't work?
The business has a great model, as it will scale the business to meet the demand. The area of work would be interesting and fun, so finding employees would not be difficult. Product will work if the client has 10 clients or 1000 clients. There is no rush to make this product large, straight away.

5. What financial backing does the client have?
Although having a large financial backing, the client wants the product built as cheap as possible. This is
obviously understandable, but if for example, the specs change, the client would still want the project
to cost as much. The client is not willing to invest in advertising and marketing.

I thought that showing an example would be much better than just stating the obvious. Feel free to comment or send me feedback on experiences you have had.

Hope this helps, 

 - Tim

Sunday, February 8, 2009

Obscure AJAX error htmlfile: Unknown runtime error

Hi All, 

Just a quick post to let you know of a sneaky little problem that only occurs in Internet Explorer. If you ever receive this error :

htmlfile: Unknown runtime error

The problem seems to be that you have multiple form tags within your one page. I stumbled across it because I
had created a user control in the past and didn't remember that it had a form tag in it.

Ok so that is the solution, but to be honest my work around won't work for everyone because I worked out
how to get rid of the form tags, the same might not go for everyone else.

BUT, remember, form tags!!!

Hope this helps,

- Tim

Contracting and Optimizing your time Part 6

Hi All, 

First of all, I would like to thank everyone for their comments and feedback, it seems that the advice that I am giving is helping some people out. Before I dive into this weeks installment, it is imperative to mention that there have been a lot of these "How to find work in a recessoin?", "How to keep your job?" etc tutorials and blogs going around in the blogging community today. Sites like http://webworkerdaily.com/ are generating a lot more guides on working, subcontracting and load balancing side projects. Hence, from what was initially going to be a 6 part series of self-help guides, I decided to keep ongoing as it seems to be helping others out in times when job security is at the forefront of society.

This weeks installment is therefor going to dicuss a part of contracting that relates directly to the topics described above. How to keep your contracting job when times are tough? The definition of a contract usually entails a short stint of work that has two main factors, high pay and professional output. The contractor is being paid above normal rate because they are basically thrown in the deep end and required to digg themselves out. 50% of contracts will always go over schedule and I don't mean "working for yourself" contracts, I mean, contracts where you are required to attend a persons workplace and work within their office. Why 50%? Because contract work is unpredictable, unless you have someone that has done a similar project many times before and is well aware of exactly what needs to be done. There are also other factors such as :

 - Lack of investment in money
 - Lack of investment in staff
 - Lack of documentation
 - Lack of vision

So of these 50% of onsite contracting, there is always a target on any contractors head reading - 

"If at any point, my employeer loses vision, can't afford the project anymore, or doesn't like the progress that is happening.......I will be the first to go...and promptly".

Translation, no person in their right mind would keep a contractor on, when a project is not going to schedule or plan, it is just too expensive.

We have now come to the end of the segway (stalling) in this weeks installment of contracting anf optimizing your time. How do we turn this target into a nice shinning halo? Here are some fundamental factors that can help in the removal of the idea that, "as a contractor, you will be the first to go".

 - Gain key knowledge about the business. Know something about the business that know one else either knows or has time to learn e.g. the API to web services that you are using within the project you are building.
 - Be a player in the design and decisions of the creation of the system you are working on e.g. suggest using technology that you are adept at, and perhaps others are not as much. Obviously, don't do this to the detriment of the project but e.g. if you are hired as the developer for building the business logic, controller and model of a project then opt to do it in Windows Workflow instead of building your own state machines. The idea behind this, is when employers are given the tricky job of having to cut staff because of funding, they will definately ponder questions such as 

 - "We can't get rid of Person A, because they have written all the business logic is something that no-one else here could easily pick up. However, Person B who built the database, we can easily get others to see how it was design. In addition, Person C, who worked on the front end is only using CSS and HTML, and Person A has had experience with that."
 - "If we get rid of Person A, we lose the felxibility to add functionality to the system. If we lose person C, it just means that the site won't look as good".

Now, don't get me wrong, you definately don't want to blackmail any employer, that is totally wrong. However, there is nothing wrong with showing to your employer that you are an integral part of the team and not easily expendable. 

Before I go for this week, let's just mention a couple of other small but important aspects for keeping your contract position.

 - Show up promptly and professionally presented to work.
 - Be the one in the team to always put up your hand for overtime (this pays off really well)
 - Be the one in the team that keeps your management uptodate with project progress i.e. send email reports, send daily tasks completed.

Little things go a long way.

Hope this helps, 

 - Tim

Thursday, February 5, 2009

Contracting and Optimizing your time Part 5

Hi All, 

Welcome back to the 5th installment in working in a contracting position, and discovering the bes ways to optimise your time. This weeks section is on interacting with other people in the workplace and what they expect of you. What does this entail? You have been given the contract position, you have been given a pay rate and you have been asked to come into an office to work. What happens the first day? Before I delve into what usually happens on the first day, let's look at some examples that I have personally experienced :

1. Given a specification document, given a computer and told "Ok, Finish It".
2. Not given any specification document, NOT given a computer and not given any direction. (Be wary of these).
3. Team meeting to discuss the project and my role within it.

These situations are typical, but predominantly, the later will be the most common of them all. Within the first day I have usually been given/done the following :

 - Specification Document
 - Introduced to the team and their specific roles
 - Given a computer and told to install my own environment (Visual Studios, SQL Server Client Tools - and don't forget your 3rd Party Tools)
 - Asked to read through the specification document and spot flaws and problems etc.

Then there are the things you just don't think about.....

 - Wearing the right attire to work. Believe it or not, your first impression is not judged a lot on your skills on the first day...it is your attire. Now, if you are like me, I have always worked in positions where there has been a very casual take on dress code. However, for the odd contract that I have done that has required business attire, man, you better make sure you dress right.
 - Organising your paper work. If you are like me, you have an ABN that pays PAYG, GST etc, and liability insurance, so if you ever really screw something up, you are covered. Don't forget, that on the first day, they will expect you to have it. Not only does it make you get paid sooner, it looks disorganised and lazy if you don't have the expected paper trail.

In summary, expect the first day to be a little laid back, work-wise, but pretty full on, organisation-wise. Don't expect people to come down on your XXXX skills, because to be honest, they haven't seen anything yet. As a side note, there is what I would like to think of as a myth, that full time workers don't really like contractors. Sometimes you will get people who will start quizzing you on things they know but think that you might not. Bottom line, if you know what you are doing, you will be able to respond promptly which will inturn, hopefully, earn you the respect of your fellow workers. On the other hand, if you are not totally confident with the "quiz" then simply act enthuisiastic and ask them questions like "oh...that sounds great, can you show me?"

Hope this helps, 

 - Tim

Wednesday, February 4, 2009

Contracting and Optimizing your Time Part 4

Hi All, 

Welcome back to part 4 of the series on contracting and optimising your time. In this part of the series I will talk about a topic that will potentially be the maker or breaker of whether you will be successful in the contracting business. This being, doing a good job when you score a contract. One of the fundamental and important aspects of working in the industry is the personal and professional satisfaction of delivering the solution that is required in a contracting role. Before we delve into an in-depth analysis of this aspect, let's get the obvious statements out of the way.

If you do a great job you will most likely get more contract work or more likely the offer for a fulltime position from the company.

 

·         The IT industry is all about networking. You do something well for someone, 10 people hear about it. I have lost track of the number of times I have done a prolject for someone, and through "6 degrees of seperation" I later get feedback from another person in the industry saying "oh, I heard you made the XXXXXX website".

·         You are not doing yourself any favours by treating a contract position like a fulltime position.

 

·         Doing a bad job won't necessarily destroy your reputation, but as mentioned before...it is all about network...you do a good job..people hear about it...you do a bad job....people definitely hear about it.

 

 

Now that is out of the way, let's discuss what is expected from you when you are given a contract position/contract project. In my experience in working for a company, at the company, for a contract role, I have had many different environments that I have had to cater for. Some include :

·         You are here for a reason, we pay you big dollars and hence you don't get the benefits of a full time position.

·         You are told not to make friends, talk to or associate with anyone in the workplace.

·         You are placed with other developers etc in full time positions but don't work as many hours. You are however, expected to produce more work than the full time developers.

·         You are on your own. No team members. No help. This usually happens when you are given a contract that has been made available because another person has left the position and hasn't finished the product.

 

So then how do we give a summary detail of what is expected of you while working in a contracting position? Easy.....the answer is the same for all. Work hard, work real hard. That is why you are paid the big dollars. What do you get for this hard work? Well...

 

·         You get the realisation that whatever happens, you probably won't be there for long.

·         You might ware yourself out, but for short term contractors, they usually will take extended breaks after every contract to counteract this. (This s usually 4-6 weeks a year).


So yes, I am beating around the bush...I haven't yet described how you do a good job when in a contracting role. So here are a couple, and I will post more in future blogs.

 

1.    Have a repertoire of tools that you bring in with you on your first day. Depending on the role, I bring in different tools, but as an example if I was going for an ASP.net developer role, I have a folder on my home computer tailored just for that. It includes :

 

·         Firefox

·         Google Chrome

·         Ghost Doc

·         nUnit

·         FxCop

·         ReSharper

·         Reflector

·         LinqPad

 

2.    To add to this I will always install plugins such as FireBug, Web Developer and UserAgent Switcher.

 

So why do this? If your employer sees this he/she will say to themselves “great, this guy knows what he is doing, he will hit the ground running…this is off to a great start.”

 

3.    This one is a tricky one, and to be honest, sounds silly, but boy it can go a long way. Make sure you know more about what you are doing than your manager/leader/employer. When it comes down to it, your employer is relying on you to produce the results, but also make judgements on best practices. As long as you know more about say “asp.net” than your superior, then you can be confident that you will be held in a good light.

4.    Work really hard for the first 2 weeks. By this I mean, long hours (including unpaid hours in research). Within the first 2 weeks of a contract, it is always the fresh and exciting part. Make use of the fact that for 2 weeks you will not only love what you are doing, but also show to your employer that you progress well and are what you say....a good developer.

 

Next time I will be talking about interacting with other people in the workplace and what they expect of you. Until next time…

 

Hope this helps,

 

-       Tim

Monday, February 2, 2009

Contracting and Optimizing your Time Part 3

This is part 3 of my blog on contracting and making sure you are doing it right. This week I will go into detail on the importance of work load balancing. Let's face it, it feels good to know that you are good at your work and hence it is even better to know that you are getting a lot of clients into your business. It is because of this, that it is human nature to take on every project at your fingertips. If you can take one thing away from this week's section on contracting, it is that this is the worst thing you can do. You are one person (or even a couple of people in a company), and this doesn't mean you are en expert in every field. Even if you are, it may not be your niche...something that you do in your sleep....something that you can turn around in a short amount of time.

For example, I was offered to build an Iphone application that would sync with a system and update it whenever possible. "Great", I thought.  I have done some Iphone applications before and this although the process seemed straight forward, when do some short analysis, I realised I would have to do a lot of (unpaid) ground work to get up to speed on building the application. In the meantime, I have a small company wanting to build a web site that would take half the time, I would be much more confident with doing, and would be a quick and easy "tick" on the list of web sites I have built through Jerrong. So what did I do? Well seeing that I know someone who spends a lot more time working with Iphone applications, I decided to give them the job. 

  • Was it a loss?
  • Should I have done it to get more work in the Future from that source?
  • Have I just diverted all my business to a college for free?

The answer is NO.

Flip these questions on their bum and see what is produced :

  • Have I just done a bad job for a client that could potentially want more work out of me?
  • Have I just spent 2 days learning about the Iphone SDK, when I could have been much more efficient on other projects?
  • Have I just opened the oppurtunity to hire subcontractor for work?
The answer is a potential YES.

The bottom line is, if you are good at what you do and have built up a reputation, then their will always be work...and most importantly...work in your niche role.

I have forgotten to talk about one aspect that has definately effected me in ways in the past few days. An aspect that is by far the most important of them all. EVERYONE NEEDS TO TAKE IT EASY NOW AND THEN. You can't over-exhaust yourself or you will burn out. It is not smart. It is not productive. It is not healthy. So, in contridicting myself, even if you have been given a project to do that you would feel quite comfortable doing....you don't HAVE to do it. Sure, some other contractor/company might get to do it, but hey, when it comes down to it...you still have your sanity, a clear head and your loved ones. (It only took me 4 years to realise that!!! :) with a little help from another TW.)

Hope this helps, 

 -Tim

New Website

Hi All, 

I have recently finished my new website.

Check it out at http://www.jerrong.com

Thanks, 

 - Tim

Sunday, February 1, 2009

New Resume

Hi All, 

Sorry I haven't posted in a few days, I have been very busy writing my new resume for a bit of fun. Check it out and leave your comments!!


Thanks, 

 - Tim

Friday, January 23, 2009

Contracting and Optimizing your Time Part 2

Hi All, 

This is a continuation of my blog on working as a contractor and making sure you do it correctly. Procrastination, Laziness and Distractions are all huge problems that most people take out at work right now. However if you are working for yourself...time is money, and you have to ask yourself questions like :

 - I could have made $30 in this hour that I was sending people messages on Facebook?
 - I just spent $60 (2 hours) doing the shopping, would it have been better to just order things online?

Which brings me to Step 2.

Step 2 : To-Do-Lists

Let's face it, we have all done a couple of To-Do-Lists in our lifetime. Whether it was the shopping list, a christmas present list or a project list, lists are a great way of organising what you need to achieve. I personally use a new product called "Remember The Milk" which I had a link to in Part 1 of this post. The free version of "RTM" allows you to add tasks with due dates, and also categorise them into Work, Personal, Study etc. Here are some important tips for creating a To-Do-List :

 - Don't make this list too large as it will become overwhelming and prioritising tasks will become a nightmare.
 - Priorite tasks by importance and due date.
- If you feel that your list is getting to big, take a task off the list (don't actually delete it, but hide it). It is better that you remove a task than just postpone it.
 - Make detailed lists, don't skimp on detail. One of the vital parts of making a list is the fact that you want to remember exactly why and how you were going to do the task. Add attachments, add reminders, add side notes, anything that will enable you to look at the list and know exactly what you were talking about when you entered the task in the first place.
- Have milestones. What good is doing things without having some light at the end of the tunnel? Add tasks to your list that simply entail "Shout yourself to the coast for finishing project A".
- Centralise your list. Like mentioned before....don't use Notepad, Paper, Remember The Milk and Word. Use one product and stick to it. Sure it might not be the best for Calendars...or Storing Pictures but make sure you pick ONE and only ONE and stick to it.
- Don't bite off more than you can chew. Take tasks slowly and do them right. Only tick them off once they are 110% complete. Having a task e.g "Build Website for Brother" and releasing it, knowing that you will have to revisit it in 2 weeks is not a complete task.

Hope this helps, 

 - Tim

Contracting and Optimizing your Time

Hi All, 

I have recently been working on some projects in my spare time. Some are for work, some are from learning and some are presonal websites. For the websites that I am being paid for I am getting paid at an hourly rate. Let's call this hourly rate $30 (it isn't, but I need a number to put everything into perspective).

This got me thinking. What am I doing in the day apart from work that I would pay $30 an hour for? Yes...I know everyone needs a break now and then but it was very interesting to ask myself questions such as :

1 : Would I pay $30 to watch an episode of "Deal or No Deal" for an hour...No
2 : The time it takes me to put on a wash, put it in the dryer and clean up, would that be worth it? Maybe
3: Would 4 hours of cleaning my place be justified? No, simply get a cleaner (and might I say they would do a much better job) to come and clean my place for me? Yes

Therefor this next set of steps is an insight into managing your time and progress while working as a contractor.

Step 1 : Wasting Time
How many times during the day would you say you look at silly emails, facebook, news or sports results? I think most people would say too much. Facebook alone cost the Australian workplace $5 Billion dollars in lost work last year alone. I don't think your boss would be to happy about that! But that is your Boss, it isn't you, so in essence, it isn't bad for you...it is just bad for your boss (WRONG!).

Once you become a contractor, the hours you work, you get paid for! That is the bottom line. So to think that taking your "lunch time" to go look at some silly pictures etc could probably cost you $60 doesn't add up does it?

The number one rule for optimising your time, is to stop wasting it. 

However I don't want to be a party pooper. Let's face it, it is healthy to want to know what is going on in the world. It is healthy to know what your friends are doing and it is healthy to want to look up houses that you want to buy....after all the more you look, the more chance of getting that perfect home!

Solution : 
The solution to this problem is not to stop looking at the things  you want on the internet. It is managing your time so that you put it into perspective with the need and the money that is wasted on you fullfilling this need. To help with this here are some tips :

 - Get an RSS Reader embedded into you mail, desktop etc. Spend some time getting all your favourite websites and subscribe to their RSS Feed. In this way, you have one central place that you can access your entertainment, once place to store it so you can come back to it when you want, and there is no need to keep revisiting these sites to see if a story has been updated etc. (After all one of the biggest problems is getting back into the work after you have decided to "Slack Off".
 - Write down notes. Use sites like RememberTheMilk or or Google Calendar to remind yourself of things that need to be done. This way, you have it in writting and you can then clear that thought out of your head.
- Productivity Tracker. Use a tool like this http://www.fruitfultime.com/products/productivitymeter/personal/fruitfultime-productivitymeter-personal-edition.php that allows you to see how much time you are really wasting. Set alerts to tell you when you are going overboard on "Surfing the net".
 - Checking Emails. This can work multiple ways, but basically I have found that designating 15 minutes every 2 hours to read and respond to emails gives a great ballance of a "break" and staying focused.

Watch out for Step 2 tomorrow.

Hope this helps, 

 - Tim

Tuesday, January 20, 2009

Custom Fonts in Silverlight

Hi All, 

By default, silverlight only supports some fonts. The fonts it supports are just the basic ones e.g. Arial, Times New Roman etc. Want to have a custom font in Silverlight? Easy....

After you have Installed your Font in Windows (right click on download TTF file and click Install), simple select the font from the properties menu in the TextBlock control in Expression Blend.

The trick is, that you have to check the "Embed" checkbox for the custom font to show up correctly.

Hope this helps, 

 - Tim

Search Engine Optimisation Tip 1

Hey All, 

This is the 1st tip for optimising your sites ability to be picked up by a search engine. This tip entails using the correct Meta and Title tags within your HTML. The following is an example of the Meta and Title tags that produce great SEO :

<meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> <meta http-equiv="Expires" content="+10000" /> <title>Custom Web Design Solutions by Web Site Managerz</title> <link rev="made" href="mailto:jerrong@gmail.com" /> <meta name="keywords" content="Web Design, Project Team, Web Portal, Silverlight, ASP.net, PHP" /> <meta name="description" content="Choose your own project team from a list of Web Site Masterz employees and build your own product. Be your own manager and utilise our expertise to build enterprise or simple level portals, websites and mobile sites. We also do custom projects as well." /> <meta name="author" content="Timothy Ward" /> <meta name="ROBOTS" content="ALL" />

Hope this Helps,

- Tim

Monday, January 19, 2009

Many to Many with LINQ

Hey All, 

The LINQ to SQL/Entity Models released with the SP1 of Visual Studios does not innately support Many-To-Many DB realtions. This can be shown when working with the Designer, and trying to draw a new association between to table and selecting the relationship type. Notice it only has one-to-one and one-to-many?

However, you can still simulate it with the following LINQ statements : 

WebSiteMasterzDataContext webDb = new WebSiteMasterzDataContext();
            var query = from s in webDb.Staffs
                        join pro in webDb.Staff_Projects on s.StaffId equals pro.StaffId
                        where pro.ProjectId == ProjectId
                        select s;

            return query;

The code above effectively does a join between the Staff and Project table through the many-to-many table Staff_Projects.

Hope this helps, 

 - Tim

Online Conversion Tool

Hey All, 

I found a really great online converting tool that works a treat and does most formats seemlessly!


Hope this helps, 

 - Tim

Wednesday, January 14, 2009

JQuery 1.3 Release Today!

Hi All, 


"First, we have an excellent new release of jQuery ready for you to enjoy. The big features of this release are:

  • Sizzle: A sizzlin’ hot CSS selector engine.
  • Live Events: Event delegation with a jQuery twist.
  • jQuery Event Overhaul: Completely rewired to simplify event handling.
  • HTML Injection Rewrite: Lightning-fast HTML appending.
  • Offset Rewrite: Super-quick position calculation.
  • No More Browser Sniffing: Using feature detection to help jQuery last for many more years to come. "

http://blog.jquery.com/2009/01/14/jquery-13-and-the-jquery-foundation/

Hope this helps, 

 - Tim

Tuesday, January 13, 2009

Checking for Dead Links in your WebSite

Hi All, 

I found a quick fire way to check that all the links in your HTML/XHTML etc are actually going somewhere. It is a great little tool by the name of DeadLinks (go figure) and is available here :


It is actually instesting to see that some big sites don't pass the test, like :

www.ebay.com.au (however when clicking on the links ebay manages to correct them)
www.news.com.au  - sorry guys...you had heaps :( 

Over the next few days I will try develop a bit of code that can run as a service on my server and automatically modify dead links to be either removed or at least make sure they redirect to the home page, so come back.

Hope this helps....it obviously hasn't helped the sites above :)

 - Tim

Monday, January 12, 2009

Checking your Website in all browsers

Hi All, 

I stumbled across a cool site today that lets you test what your site looks like in every browser imaginable. Yes, apparently if your page validates against W3C standards then it should work in every browser right? Well, that is what I thought...and it is wrong. Bare in mind that a lot of these browsers are either not in use anymore or represent well below 1% of all browsers.


It can take some time to do the analysis, but the pay offs will save you install every browser known to man/woman :)

Hope this helps, 

 - Tim

I want to use MooTool, JQuery and other Javascript Libraries on the same page

Hi All, 

I love when this happens. Basically, I am wanting to use the MooTools library and the JQuery Library on the same page. The reason? Because I know JQuery, and am not adpet in MooTools, however there is MooTool library that I want to use....basically because it looks cool :)

The problem : If you use both libraries at the same time, you get conflicts with names, basically because both libraries use the $ symbol to work with their library.

The solution : Simple....it couldn't be more simple (although it did take some time to work out). Place the following code in a script tag after you have loaded the jQuery library..

<script type="text/javascript">      jQuery.noConflict(); </script>   

No joke...that is it...

Hope this helps. 

 - Tim

Sunday, January 11, 2009

Bind a Class to a Datasource (instead of a SQL, LINQ etc statement)

Hi All, 

The fact is, I needed to quickly bind an Accordion form the AJAX Control Kit to a simple list of objects, I didn't want to create a Table in the DB, simply because it wasn't necessary, I didn't want to write LINQ because it wan't part of my entity model. All I had was a Collection of anonymous types called (items) and I wanted to bind it to an accordian. Here is how you do it : 

Step 1 :  Create a new class and dump this in there.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;

namespace WebSiteManagerz
{
    public class AccordianItems
    {
        public static ArrayList FetchItems()
        {
            ArrayList Items = new ArrayList();
            Items .Add(new { Name = "Full packaged solution including Design, Development, Hosting and Maintenance", ImageUrl = "img/icon1.gif" });
            Items .Add(new { Name = "A vast range of different technologies catered for you needs", ImageUrl = "img/icon2.gif" });
            Items .Add(new { Name = "A talented team of experienced web professionals, dedicated to your project", ImageUrl = "img/icon3.gif" });
            Items .Add(new { Name = "Different levels of client interaction, from the \"Just get it done\" approach, to a much more intimate client experience", ImageUrl = "img/icon4.gif" });
            return Items ;
        }    
    }
}

Step 2: In your ASPX page, here is what you should add :

<asp:ObjectDataSource ID="Items" runat="server" SelectMethod="FetchItems" TypeName="WebSiteManagerz.AccordianItems" /> <cc1:Accordion ID="accordion" runat="server" FadeTransitions="false" FramesPerSecond="100" TransitionDuration="250" CssClass="accordion" HeaderCssClass="header" ContentCssClass="content" RequireOpenedPane="True" AutoSize="Fill"> <Panes> <cc1:AccordionPane ID="mail" runat="server"> <Header> <div> <span>What we offer?</span> </div> </Header> <Content> <asp:ListView ID="pane1" runat="server" DataSourceID="Items"> <LayoutTemplate> <ul> <li id="someid" runat="server" /> </ul> </LayoutTemplate> <ItemTemplate> <li style='background-image: url(<%# Eval("ImageUrl") )'> <%# Eval("Name") %></li> </ItemTemplate> </asp:ListView> </Content> </cc1:AccordionPane> </Panes> </cc1:Accordion>

Saturday, January 10, 2009

Using Sprites with CSS 3

Hi All, 
I am definately liking some of the new features in CSS 3. A many a time I have had one image and have wanted to use parts of it in my websites, on different parts of the page. I nice addition to the CSS framework is the use of sprites and here is how you use it.

For example, I am using this image (that contains seperate images) and I want it to be shown as the icons in a list.



 dl
        {
            float: left;            
            width: 300px;
            padding-left: 50px;          
        }
        dt
        {
            padding-left: 40px;
            padding-top: 9px;
            padding-bottom: 4px;
            background: url( '../images/sprite.gif' ) no-repeat;
        }
        dt span
        {
            border-bottom: 1px solid #cccccc;
        }
        dt.part1
        {
            background-position: 0 0;
        }
        dt.part2
        {
            background-position: 33px -33px;
        }
        dt.part3
        {
            background-position: 66px -66px;
        }
        dt.part4
        {
            background-position: 98px -98px;
        }
        dt.part5
        {
            background-position: 131px -131px;
        }
        dt.part6
        {
            background-position: 164px -164px;
        }

<dl> <dt class="home"><span>Why we are different?</span> </dt> <dd> No other company in the world offers the same experience as Web Site Masterz. You personally choose from a large range of experienced professionals, your project team.<br /> <a href="http://www.some-link.com" title="dasgsdfg">sdfg</a> </dd> <dt class="preferences"><span>How do I start?</span> </dt> <dd> Simply make your way to the Arrage A Quote page and use the simple wizard to make a project request. Once you have been guided through the wizard you will be contacted by Web Site Managerz and a more involved meeting will be arranged.<br /> <a href="http://www.google.com" title="sdfgsd">sdfgsd</a> </dd> <dt class="web"><span>Why use Web Site Managerz?</span> </dt> <dd> Every other Web Design company in the world is the same. They use cheap CMS tools to autogenerate your sites and don't provide you with the flexibility to think outside THEIR square. We develop every solution from scratch as no 2 solutions are ever the same. <br /> <a href="http://www.google.com" title="sdfsaf">more &raquo;</a> </dd> </dl>

This will simply split the images up and show them as the icon in a list style.

Hope this helps,

- Tim


Thursday, January 8, 2009

Ripping Videos From Animoto



Hi All, 

I discovered a great tool today called "Animoto" that will take in pictures and music and then convert it into a professional Flash Video. I needed to convert the Flash video to an MP4 file, but Animoto take great lengths to protect this from being allowed. Here is how you can rip the flv file from Animoto.

Step 1 : Navigate to www.animoto.com and sign up and upload your files.



Step 2 : Wait while you photos upload




Step 3 :  Once Animoto has done its thing, click the Embed link highlighted in read




Step 4 : Click on the Other link

Step 5 : Copy the link and then paste it into an empty Web Application within the Default.aspx page (in between the form or body tags. Then Run it!


Step 6 : Go to your Temporary Internet Folder and sort via Internet site, looking for swf files from www.animoto.com.











Done!

Hope this helps, 

 - Tim



Sunday, January 4, 2009

CSS Image Ratio

Hi All, 

It has come to my attention that it is not a widely known fact that you can resize images, while keeping the ratio in perspective using CSS. I was using my technique for doing this the other day, and was curios to see if other people had discovered better ways of doing this. To my surprise, I found that a lot of forum posts etc were mentioning that it cannot be done. Without futher stalling......here is how you do it, and make it work in all browsers as well.


<div id="main_image"> <img src="img/Bazaar.jpg" alt="Bazaar" title="img/Bazaar.jpg" /> </div>
 

 #main_image
        {
            margin: 0 auto 60px auto;
            height: 250px;
            width: 350px;
            text-align: center;
        }
        #main_image img
        {
            margin-bottom: 10px;
            height: 250px;
            width: 350px;
        }

I know....this seems so obvious......but a lot of people were using the DIV to do the resizing, and in my experience this causes stretching with the image contained within the DIV.

Hope this helps, 

 - Tim