Recent submissions

Comment · 11 years ago
It's expensive to keep binary groups online (bandwidth) and the text groups are all SPAM these days.

Edit: Forgot to say that the tech is fine; a member of my family operates a usenet server over in Switzerland for our family. Works well for that sort of thing and avoids facebook etc.

Comment · 11 years ago
I understand LINQ very well (right down to code generation and expression trees) but unfortunately I work with a lot of other people's code.

Perhaps that is the problem? :-)

More seriously, the thing has really leaky abstraction boundaries which is a main pain point. I have to write and manage a lot of boring enterprise code and creativity and expressiveness go a long way to introducing a lot of additional work.

Comment · 11 years ago
We do no LINQ near the database so some of those assumptions aren't valid here. We use NH criteria for that.

The coalesce operator in C# 5 is welcome but then introduces another problem:

    var x = myObject?.Property1?.Property2?.Property3;
If x is null, why and where?

This is all in-memory manipulation of data. Mainly rules engine stuff for us.

Comment · 11 years ago
The problem is that it's a complex trade off whichever way you turn. Knowing which trade off to make is difficult for many people as it requires knowing all of the assumptions and conditions that are before and after the call as well as how the expression will react under all conditions. Add complex predicates to that,which the language encourages and it's pain.
Comment · 11 years ago
Not a great fan of LINQ if I'm honest. Sure it's terse and powerful but with it comes great responsibility and a relatively large pile of tasty landmines. Three regular problems I see:

FirstOrDefault being passed 2 rows = non-determinism. This one is always fun when your SQL server doesn't guarantee the order of rows returned so every time you hit .FirstOrDefault you get a different item. Never happens in dev due to the tiny datasets fitting in a single page.

There's also Single being passed 2 rows = crash. SingleOrDefault being passed >1 rows = crash.

And when it does crash it's entirely not helpful because the lambda block reports no state information in the stack. Inevitably this leads to adding precondition checks to avoid "Hey everyone, one of the 20 LINQ expressions in this method blew with more than one element in the sequence".

Then there's the fact that you don't know the size of the set of data nor really think about it. So if someone passes in a collection of 10 rows in dev and it works out that it's O(N^2) and has a random .ToList() in it then you're up shit creek in the memory and time departments when that 10000 items collection appears in production.

None of this unique to LINQ but it hides a lot of problems behind a wall of pain.

From extensive experience; there be dragons.

Comment · 11 years ago
Conversely it hosed my test machine (a clone of my main one). I would never risk a shotgun upgrade; I can't afford to lose a day fixing it.

YMMV basically.

Comment · 11 years ago
Compare to the Fiat Doblo Owner's Manual, which happens to be "Doblo eLEARN technical manual" because the effing thing breaks every 2 minutes...

I long for a simple vehicle again.

Comment · 11 years ago
You're right, but "least shit" is not the best position to occupy.
Comment · 11 years ago
My entire outlay is now a single laptop running CentOS 7, a desktop as a backup machine if I kill the laptop, some earphones, a dumbphone and a USB stick and USB mp3 player in the car. I rsync the USB stick for the car periodically and that is it.

As for everything else, browser is Firefox still (ick) and the only services I use are an IMAP box and domain.

I gave up music on my phone, contact sync, email on my phone, navigation, everything. A simpler life seems to be better for me.

Comment · 11 years ago
I'm right there now. I just simplified everything by going back and looking for the technological singularity where everything just worked.

This is a really hard and uncomfortable thing after years of convenience along the same lines of going back to CDs after using mp3s but it's worth it.

Comment · 11 years ago
I've never had coffee come out of my nose before. Thank you for that experience :)

I just sat through an hour of shit like that. My eyelids were so heavy they nearly became a singularity.

Comment · 11 years ago
Look for smaller companies and individual recruiters first. If they get you an interview in under 48 hours for a non shonky outfit and are willing to discuss your terms rather than enforcing theirs then you're probably ok. The big ones are shit. Requires phoning around for a couple of days.
Comment · 11 years ago
I think that's not true. They do not consider their privacy nor understand the consequences.
Comment · 11 years ago
You're right on all the points there.

I did find that you can play recruiters off against each other quite easily to negotiate a higher rate. Also when you sign, you sign with the company not the recruiter and have a solid contract in place. Never work for sharecropper recruiters like some of the bigger ones.

If they want to get rid of you after 2 weeks, make sure there's an exit fee. That is usually 100% for me if under 6 months of contract left. I did 2 weeks at a company on a 3 monther at £550 a day and completed the work but was paid for the 3 months.

The particular sector I worked in was finance and that is still heavily recruiter driven unfortunately.

Comment · 11 years ago
Very true.

Also the advice about marketing yourself is crap. Recruiters are the #1 way of landing contracts. They're finders and you're paying a finders fee for that service. They have the big guys with oodles of cash to get hold of.

If you can't get a gig through a recruiter then you either don't have skills that are in demand or don't come across as someone who they'd want to sell.

If you don't go through the recruiters, you end up being left with the cheap arse companies that won't pay up anyway. If you're sneaky about it, you and the recruiter can get the client to pay the finder's fee.

Once you're in the system, build up a network of contacts and then move through that rather than using the recruiters. I'm doing that at the moment and ended up taking a perm position that was better paid than the contract rates were (without all the hassle of IR35, rolling a Ltd etc)

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton