Why Contractors Charge More
I posted about this a while back along the fiscal side of it but there were a lot of things that I did not mention. -We get zero benefits. That means if we are sick for a week, month, year we don't make any money yet still have to pay our bills somehow. If you go to the dentist shell out (unless you have purchased your own coverage of course) -We do not qualify for EI. Being self employed means that you don't have to pay into EI (w00 h00) but it also means that if a contract ends we...
Database Tricks - Effective Records
One common place where people replicate data is in situations where you need data at a specific point in time. A perfect example I saw today was this situation: You can see that the price column is duplicated in both the products and orderDetails table. The rationale for this is that so that when the price of the product changes that it does not affect historical orders. This is a fairly viable solution but has a few drawbacks. The main one is data duplication. Most of the time the data will be the same (unless product pricing...
2007 - The Year Of The Developer
I know I missed Chinese new year but it is not going to stop me from Declaring 2007 as THE year of the coder. Things just seem to be coming together. Edmug is growing and keeps on having good presentations. Its great to see the membership increasing and also keep seeing new faces. I am disappointed that there are a lot of faces that I don't see anymore but that's not my problem. I am starting to work on some ideas for a presentation but its so hard to come up with something that is the caliber of the previous...
Agile Users Group First Meeting
I went out the agile user groups first meeting last night. Vlad (who started the group) did the first presentation which was a good overview of Agile and then Scrum and XP. For me I found that very valuable as I have never worked on a project using agile techniques. I got a lot of good information from his presentation The meeting was quite open and informal with people asking questions and contributing experiences of their use with Agile techniques. I found that to be good as well showing some of the tradeoffs and risks of using these techniques. The...
Vista
So I got a vista computer and I am pretty disappointed. A big issue is the UAC introduced. Great idea (stolen from mac of course) but poorly implemented. Check out the latest Mac vs. PC commercial that explains it way better than I can.
Course Followup
It has been a week since JPs developer bootcamp ended and I thought I would post on some of the things I am noticing: 1. Subversion = life. I had a subversion server here for a while but now I use it for everything. Every project I have done or started on is now in there. 2. TDD is hard. Its really hard to switch my brain to work this way but it is starting to get easier and easier. 3. Single Responsibility. Every class I am making is now doing only one task. It is amazing to look...
Rethrowing Exceptions
One mistake I see developers constantly doing is how they handle and rethrow an exception. A lot of developers catch an exception and rethrow it as shown here (note the throw ex): private void button1_Click(object sender, EventArgs e) { try { Three(); } catch (Exception ex) { throw ex; } } private void Three() { try { Two(); } catch (Exception ex) { throw ex; } } private void Two() { try { One(); } catch (Exception ex) { throw ex; } } private void One() { throw new NotImplementedException("one is not implemented yet"); } The issue with using throw...
Two Frameworks and SQL State Server
<plagiarize>There are also three different ways where session state can be stored: On the web server itself ("In process") On another machine in memory ("state server") In SQL Server It is recommended by many people that if you want session state to be usable in a load balanced environment then you need to choose option 2 or 3. If you want this session state to persist in the event of a server hiccup then you need to use option 3, SQL Server. This has some benefits (persistence of data, usable in a load balanced environment) but...