HN user

batou

987 karma
Posts0
Comments299
View on HN
No posts found.

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.

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.

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.

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.

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.

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.

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.

No Surprises (2009) 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.

No Surprises (2009) 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.

No Surprises (2009) 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.

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.

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.

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)

No one wanted this implementation. There are plenty of ways of solving exactly the problems without the amorphous concept of the cloud without introducing any burden on the user.

I have a 3 desktops, 2 laptops, a NAS and 2 servers and have solved the problems transparently without any cloud services.

I spent a number of years working for nefarious defence contractors so the paranoia is somewhat justified. My paranoia is clearly required as I've been responsible for the security architecture at a number of financial companies and have a lot of experience dealing with both the human and technology aspects of data.

Safety in numbers is only valid if it's difficult to discern facts from the flock. But it's not. The technology logs and correlates specific data for fast retrieval rather than collecting noise and then discerning the signal later on.

Oh and I'd never drink Bass; maybe an Abbots or two ;)

I assure you this is not specious.

We have to test against the lowest common denominator so we're not using Enterprise or VL for this nor are the machines domain members.

The privacy policy changes violate our network AUP, security policy and compliance with a number of regulations. We handle confidential financial, insurance and medical data.

That's where the catch-22 is. There is no possiblity for us to use this and remain in compliance.

Not only that, every version of windows since 8 has called home. There is a lot of traffic outgoing from our network we block from machines. And that is with a heavily locked down GPO and custom WIM deployment.

I'm actually not free to not use it. I have to test our product on these systems and therefore I will need at least a virtual machine instance of it. I have no option not to use a Microsoft account because the majority of the functionality has shifted to behind the privacy wall.

Actually I installed it to test our desktop windows product against it as well as our web application in Edge.

This was a decider for us: do we move it to Windows Runtime or move it to Qt/JavaFX, to the web or something else?

We're evaluating Qt and JavaFX going forwards.

As I said I've been using Windows since 1993 as my primary operating system. I've used Unix (Solaris, HPUX, Linux, FreeBSD, OpenBSD) over the years but never in a desktop capacity.

Also one of our clients, a big financial company has rolled out RHEL6 as a desktop platform instead of windows 8/10. They are not trend-setters either.

I'm using Nokia 106. Calls. Texts. Nothing else. I turn it off at 6pm and on at 9am.

Doesn't have data, GPS, Bluetooth or WiFi so that's not a problem. The best it gives is rough triangulation data from cell towers but I can leave it at home and do nefarious things to my own heart's content if I so desire (not that I intend to).

Absolutely no one wanted it. No one asked for it.

We were spun a load of marketing disguised as listening and attention. This turned out to be exactly what Microsoft wanted which was another aggressive move against customers both business and consumer. Despite all this the noise and confusion and dubious love for the products is shining out of the arses of every non technical news source.

What did we expect?

I've left the party now. Closed my MS accounts, cancelled MSDN and AP subs, rolled out CentOS 7 on my laptop and have moved the remaining windows dependencies I have to a VM. If you don't like it, now is the time to make it known.

This is after using MS products since about 1993. No more loyalty or milking.

The software industry is moving away from the model of servitude to a vendor. Good riddance.