HNHacker News
TopNewBestAskShowJobs

samuellevy

874 karma · joined April 11, 2012

PHP, Python, JavaScript, MySQL; these are all words that I know. I also know the programming languages.

I write code, and design systems that work.

You can find my website behind this link: http://www.samuellevy.com/

submissionscomments
samuellevy··on Ask HN: Browser-based remote screensharing tool?
Probably screenleap.
samuellevy··on Show HN: Captchaless spam protection
Just having something (some form value) filled out by JavaScript will catch out a large number of bots. I haven't implemented that yet because the site has no javascript (other than ads and analytics).
samuellevy··on Ask HN Freelancers/Contractors: What rates do you have?
So far the stuff that has qualified for the "Emergency rate" has been along the lines of "My server/website/software is down/badly misbehaving, and a simple re-start won't fix it. I'm bleeding money, please help." It's the type of thing where I don't (and they don't) know what it will take to fix it, but getting things running again (and fast) is important. I can't give a quote without being able to see the actual situation, so an hourly rate to just band-aid the problem makes sense. I'll usually follow up with "Here's what the cause was, this is what it will take to fix it _properly_, and I could fit it in next week. Would you like to get it fixed?", which has been a great success at gaining me more work and very happy clients.

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.

samuellevy··on I might be an arsehole, but at least I'm not wrong
My fiancé is the one who beat it out of me. It still happens sometimes, but being aware of it really helps.
samuellevy··on Samsung: Apple wouldn’t have sold a single iPhone without stealing our tech
Which is devoid of many of the other features that I want, which are available on android phones.
samuellevy··on Just pay me.
If a client up-front with me and tells me that they will be late paying, then I'll usually happily give them extension. The problem occurs when clients ignore the invoice, or think that they can get away with paying it at their leisure (whenever that may be).

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.

samuellevy··on Just pay me.
In the time I've been working freelance (admittedly, not particularly long), I've had only one client who didn't want to negotiate a better contract, and that's because the work was "emergency" work (things on their site were broken, and they needed someone to step in and fix them so their business could continue). I made them aware of the conditions, and they accepted them.

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.

samuellevy··on Just pay me.
Well. This has generated quite a conversation (both here, and on the blog post). I suppose I better clear the air, a clean up a few misconceptions. The following is pretty much a cross-post from the comments there:

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.

samuellevy··on Fixing switch - what I want out of switch statements
Yeah, it's only a brief crack at adding some syntax which would add some more functionality to a known statement. In short, I've used switch many times and thought to myself "Why can't I just tell it to start re-evaluating the cases again?".

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.

samuellevy··on FuckItJS: Runs your javascript code whether your compiler likes it or not.
It overwrites ever property on the 'window' object (except for 'location') with FuckIt.
samuellevy··on Show HN: The World, Your Stage (MVP Launch)
I hadn't thought about that - the words "What will you tell the world?" are now a link to the "add" page
samuellevy··on Show HN: The World, Your Stage (MVP Launch)
Answered in the FAQs, but in short; random chance (or the PHP rand() function).

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).

samuellevy··on Show HN: The World, Your Stage (MVP Launch)
Probably around the 100-200 mark - enough that I could reasonably expect to be able to put a post out every day
samuellevy··on Show HN: The World, Your Stage (MVP Launch)
You can add your messages now; the actual posts will start being published when there are enough users.

If you're a designer, and have any thoughts on how to make it look better, let me know.

samuellevy··on Why PHP?
Many people seem to think that clean PHP code is an oxymoron, but it's not; it's just that PHP doesn't penalise you for not writing clean code. There are a few things in the object model (and other areas) which are inconsistent, or not fully fleshed out, which makes it difficult to write code which seems consistent.

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".

samuellevy··on Ask HN: Help me track down a lunch thief
Knowing what it's like to work in a very small/close-knit company, simple notes/memos tend to come off as very passive-aggressive, and cause discord.
samuellevy··on Ask HN: Help me track down a lunch thief
Ghost Chillies (or any other sufficiently "burn-off-your-mouth" chillies) are the answer. It's not high tech, but you're guaranteed to find the lunch thief (they're the one rolling on the floor), warn them off taking food from the fridge, and not have to put your employees through the "suspicion" deal.

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?

samuellevy··on On software communities, "Rock star" programmers, and... Linus
As another commenter mentioned - it's somewhat of a selection bias; Linus doesn't go around spouting hate-speech, but when he has jack of someone pestering him with an idea/patch/whatever that he has (many times, repeatedly) turned down, then he'll stop being polite about it.

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.

samuellevy··on On software communities, "Rock star" programmers, and... Linus
And that's frequently how it is. There's a fascination that people seem to have with _proving_ that Linus (or RMS, or Jeff Atwood, or others) are jerks.

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.

samuellevy··on Google: We’ve acquired Motorola Mobility
Samsung at least seems to have far too much invested in Android now to consider dropping it (hell, they're making the best-selling android phones on the market).

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.

samuellevy··on Show HN: BlogFile; ~3000 line, single file PHP blog software
Hey, at least I'm not using GOTOs.

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.

samuellevy··on Show HN: BlogFile; ~3000 line, single file PHP blog software
Sorry, the "bloat" and the "single file" were different goals. I'm sorry if that wasn't clear. That being said, the fact that it was in a single file meant that I was more concious of the size, and contributed to me cutting out my own bloat/planned and unnecessary features.

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).

samuellevy··on Show HN: BlogFile; ~3000 line, single file PHP blog software
Yeah, that's pretty fair. It's little more than protection against automated scripts which scrape the net looking for easy ways in (as is my comment spam protection).

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).

samuellevy··on Show HN: BlogFile; ~3000 line, single file PHP blog software
The CSS isn't actually that large. The entire home page (CSS included) is about 4-5KB. The analytics code from google is three times the size of the rest of my page.

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.

samuellevy··on Show HN: BlogFile; ~3000 line, single file PHP blog software
Mostly a personal challenge. I was also sick of things being over-bloated.

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.

samuellevy··on The future of programming
I've long thought that programming education was extremely lacking, and rather elitist (Really? You need a 2500 page tome to learn the "Basics of Java"?)

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.

samuellevy··on Ask HN: How to hire fresh or recent graduates?
Is your problem that you can't find people at all, or that the people you find are no good?

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).

samuellevy··on Silly putty for potholes
Now that's a little bit of brilliant. What would happen if someone happened to drive over it slowly, though (say, when stuck in traffic)? Would the weight of the vehicle be enough for it to maintain it's viscosity, or is it the combination of weight and speed that do the job?
← PreviousPage 4 of 4