874 karma · joined April 11, 2012
I write code, and design systems that work.
You can find my website behind this link: http://www.samuellevy.com/
In general, they are happy to pay the higher rate because when it gets to that situation, leaving it for longer will cost them more than paying a higher rate to get it running. Once it's done, then they're usually more than happy to talk about a longer term fix to ensure that it doesn't happen again.
In practice, my clients have either negotiated better contracts paid on time (I've not had an issue with any client who's negotiated); or paid up the original amount as soon as I mentioned activating this clause.
Everyone else (who I've actually done work for since I implemented this) has wanted to negotiate a better contract. I've turned down people who refused to look at the contract, because I feel that they're probably not going to pay sufficient attention to the project, and I would have to fight them to get payment.
This isn't about trying to make big bucks on late fees - after a certain amount of time, I would write it off as a bad debt (as such) and hand it on to a collection agency, or call in the lawyers.
1. The default terms are exactly that. Default terms. They will be discussed with clients before a project starts, and we will negotiate terms that suit us both. Think of it like asking for all the brown M&Ms being removed from a rockstar's rider. If a client is unwilling to discuss terms with me or unwilling to negotiate for their project, then either the project will proceed with these terms, or I may refuse the project entirely.
2. The actual wording allows me to implement the penalty at my discretion. I've had a couple of late payers, and often just the mention of the penalty will prompt them to pay. I'm not trying to destroy client relationships here - I just want to get paid.
3. A penalty for late payment isn't the only protection; that would just be stupid. Aside from contracts, I am very willing to refuse working for clients who I don't trust to pay on time.
4. This isn't something that I will just spring on a client at the invoicing stage. Yes, it's copy on my invoices, but that's there to remind clients of the agreement.
5. Negotiation is important. I realise that this is a re-hash of point 1, but it bares saying twice. I have contracts with different clients where different terms are enforced. The point is that these are default terms, which are there to protect me and my business. They are my starting point for negotiation. So long as you don't come at me offering "I promise to pay you on time" as a point to negotiate with (you can't negotiate with promises that you should be keeping anyway), then we'll figure out better terms for both of us.
The example there isn't what you would expect to find in the real world (instead it's a very cut-down piece of code to show how it would flow, and show of the main points of my thinking). That being said, the switch statement tends to be difficult to read in general, and is frequently misunderstood by new coders. I remember that when I started learning to program, I just expected it to work like this already, and was confused as to why I couldn't just change the variable I was checking and trigger other cases.
When the number of posts are good enough to make it worth publishing, then a random post will be picked, and that user will get sent a "You're up! Make any final adjustments now" email. The only manual intervention will be to ensure that posts meet the posting guidelines (i.e. aren't spam, and aren't malicious).
If you're a designer, and have any thoughts on how to make it look better, let me know.
For me, this just means that I think more about the code that I do write, and tend to cut out the extra stuff that I don't actually need.
As I mentioned in the post, this isn't a "why you should use PHP", it's a "This is why I use PHP".
I'm not sure what liability would be like, but technically, they're in the wrong for taking property that's not theirs. How were you to know that someone would eat your SUPER-MEGA-HOT pocket?
Could he ignore it? Perhaps. I prefer that he'll let you know, in no uncertain terms, to go away.
These rants aren't actually that frequent, but you'd think that they were constant from the way you hear about them.
It's not really about having firm opinions without being abusive. It's about being called abusive for having firm opinions.
In almost every instance I've seen, it really is a case that someone has been pestering them, or out to pick a fight, and by the time the argument happens, all the back-story is forgotten (or, in the git-hub pull-request case, deleted by the original author).
The end result is that we have these tabloid-esque articles showing up on blogs telling us that we should be shocked and outraged at the actions of these people because they're "role models" and "shouldn't act like that". It's insane; it truly is.
This isn't a surprise for anyone, though. They have been working towards this purchase for a while, so if any of the manufacturers were likely to baulk at it, they already would have done so.
Here's hoping that google puts out some great handsets, and makes this a real game-changing move.
In due course, I'll probably re-write large parts of it, and make it more... "clean", but this really was a quick project hacked out in my spare time over a couple of weeks.
This isn't meant to be the pinnacle of design here; just a fun exercise which incidentally made my life easier to manage (I'm sick of using Drupal for blogs, and getting constant spam posts and user notifications from wordpress. I also don't use most of the features from either of them, so this has provided me with just the features I want).
There's not a huge amount to be gained by building a super sophisticated anti-spam or anti-brute-force system until it's likely that someone will actually write an attack specifically for this software, and seeing as I built it mostly for my own use, anyone who did that is probably just trying to do damage to me (for whatever reason).
What MySQL error did you run in to? You're right that I should probably hide & log them, but at this stage logging is a low priority. I'll add it in later on.
This is built largely for personal use, so I'll only implement features that I feel I actually need, and even then they may not all make it into the main code base.
I wanted to see what I could get away with in a single file without things getting too large to manage. It's getting close to unmanageable now, but I think it's still OK.
Now that computers are invading more of our lives, people are starting to find ways past that, and learning how to program in spite of the poor resources available.
I think that this future is inevitable, and for me it can't come soon enough.
If it's the first, then you may not be advertising in the right places. If it's the second, then you may actually be staring away good candidates with the "no specific experience requirements".
I know that that sounds strange, but in a world where most people recruiting are asking for way more experience than they need (and in some cases is even possible), specifically asking for people with "no experience required" tends to throw up red flags for people who are expecting to apply for jobs which, on paper, they aren't actually qualified for.
I, myself, have seen plenty of jobs with copy along the lines of "No experience required", and every time it makes me wonder if they're either horrible employers (who can't attract skilled workers), or they're trying to scam me somehow (some recruiters like to place speculative job ads just to collect resumes).