HN user

pushpop

341 karma
Posts0
Comments404
View on HN
No posts found.
Goodbye Joyent 6 years ago

I’m surprised. They were massive names in the OS scene until recently. Their lineage can be traced back to Solaris and share many of the cool technologies that Sun developers pioneered. So much so that for the first few years of SmartOS, Linux felt like a hobbyist platform in comparison due to its lack of dtrace, containerisations, ZFS, etc.

Linux has come a long way since, which is a large part of the reason why SmartOS has become less relevant. The latter being a great shame because competition breeds innovation and we are losing a lot of interesting interesting Unixes from the public consciousness.

Edit: oh come on. I post this and it almost immediately gets negative karma despite being both factual and informative. A perfect example of the rife abuse of peer moderation on this site. I honestly don’t think I’ll bother wasting my time on here any more.

KDE 4 was released in 2008 and has been stable and consistent for more than a decade. That predates Windows 7. So in the same time KDE has been consistent you’ve had had the migration from XP or Vista to Win7. Then Windows 8 and now Windows 10. They’ve all bought massive changes in the UI experience.

If you don’t like KDE then use LXCE or Enlightenment or any of the other Linux desktop environments that have been pretty static (and have been even longer than KDE).

So yeah, there actually is a lot of choice on Linux and not all of it looks dated.

Sorry, my previous comment was really unhelpful.

What I meant was you should be using pipes and apaches own log rotate code.

Read the “Logging Using Pipes” section at the very end.

https://www.digitalocean.com/community/tutorials/how-to-conf...

(Excuse the DO link, it was just the first result in Duck Duck Go. There’s nothing specific about DO or Ubuntu in this approach)

I’ve used this method on large clusters of very heavily utilised web servers and it works great. No restarts required.

The problem is you need a boat load of additional code to cover unset. Not just in SQL (syntax is different for NULL than it is for comparing any other type) but often also in your importing language too (eg some languages will cast NULL to a nil value that can actually raise exceptions or even crash your application if not handled correctly).

Capturing those edge cases is non-trivial compared checking the value of a char.

In an idea world your unit tests and CI pipelines would catch all of those but that depends on well written tests. Thus in my experience having fewer hidden traps from the outset is automatically a better design than one that perfectly fits an academic theory but is harder to support in practice.

I’d go further than you and say they should be removed by default on all fields.

Want to know if a Boolean field is unset? Well it’s no longer Boolean because you now have 3 states for that field. So why not use a char, U/Y/N with the default being U?

NULL might have made more sense 30+ years ago when systems were more resource constrained but it doesn’t make sense now for most of the problems people are trying to solve day to day. If anything, it creates more problems.

Just to be clear, I’m not saying they should be removed entirely but rather that they shouldn’t have to be explicitly disabled on every CREATE.

I will say one use case for NULL that is hugely helpful is outer joins and nested queries. However these don’t generate high performance queries so if you’re having to rely on them then you might need to rethink your database schema anyway.

So essentially I don’t disagree with you, I just think you’re being too nice limiting your complaint to string fields.

You can move freely among EU countries, not just Schengen countries.

Kind of. There are passport checks and you have no automatic right to work (which is what the GP was discussing). So in practice no you can’t.

and it's to do with a lack of border checks rather than the basic freedom of movement right

It’s both. As the link I posted clearly states

You can move freely amongst counties in the Schengen Area, which is a subset of EU counties (which itself is a subset of European counties).

The free movement of persons is a fundamental right guaranteed by the EU to its citizens. It entitles every EU citizen to travel, work and live in any EU country without special formalities.

Source: https://ec.europa.eu/home-affairs/what-we-do/policies/border...

As an aside, this was a hotly contested subject during the UK EU “Brexit” referendum.

In theory, yes. But there are a few caveats to that:

1. CERN wouldn’t have been able to patent anything too generalised because there was prior art (Gopher)

2. Thus if the patent was too expensive developers would have just used a similar technology (bare in mind it took quite a few years before the web to evolve from a toy, then something that companies “needed” but it wasn’t contributing massively to their bottom line, to what it is today where a great many businesses sole market is web based).

3. Even if it had somehow became part of industry standard or CERN had achieved a vague patent that prevented similar implementations from coexisting, Europe has this thing called (if I remember the acronym correctly) FRAND patents where patents which are required as part of a standard have to be fairly licensed.

None of this means CERN couldn’t have potentially made a lot from HTML & HTTP. But I also think part of the reason it was the success it was, was because it was a royalty free open specification.

Without wanting to sound dismissive to the massive contribution Tim Berners-Lee, and CERN as a whole, has made to IT; we’d probably have ended up with the same user experience we have today but with Gopher as the base tech. Or maybe something else entirely different from markup perspective, such as something RTF or s-expressions...?

Great technological advancements are rarely the work of one genius in isolation. Usually it requires the imagination of a great many people to be captured. By which point the world is already ready for such an invention so it becomes more of an evolutionary breakthrough rather than a one idea that couldn’t be recreated.

Monty Python is specifically mentioned in the Jargon File:

That just reinforces that things were named after Monty Python rather than Monty Python creating the tech!

We're just going to have to agree to disagree here.

You haven’t actually disagreed with my point though.

As I said elsewhere when that argument was made; it’s a very tenuous connection. Things named after him isn’t the same as things he was directly involved in.

I love Monty Python but it’s disingenuous to claim they they’re any more “on topic” than a basketball player (and I say this as someone who’s not generally a sports fan).

The only real difference between the two is one is more popular on HN than the other. Which is a real shitty reason to flag an obituary in my opinion.

That’s tenuous at best.

The reason it was “relevant” is simply because there’s more Monty Python fans on here than basketball fans. Which is fine if we’re talking purely about +votes but it doesn’t justify flagging a submission.

Peer moderation is abused on this site and it’s getting steadily worse. I’m on the verge of giving up on HN entirely, just like many of my other professionals I personally know already have done. Ultimately it will be HNs loss because the quality of content posted will decline.

I learned this technique when I worked on the blue team of a cyber security firm.

It’s not about sending your passwords in clear text to your RDBMS. You’d still use bcrypt like you normally would but instead of querying the password table directly you’d have that prewritten as a stored procedure. That way you can have different permissions for the password table.

Some frameworks and/or other managed solutions might already be doing this but it’s worth mentioning anyway since people are talking about hand rolling their own auth.

I don’t know why I added the part about offloading encryption though. That doesn’t make sense. I guess that will teach me talking security before my first coffee of the day

Re salt, presumably you’re storing that bcrypt as a hashed string though?

Re TCP connections, I was thinking HTTP proxies. Sounds like this isn’t HTTP traffic though so that’s not an issue.

Also why was my previous comment negative karma’ed? All I was doing was asking a couple of questions on a post that’s quite vague. The amount of abuse HNs rep system gets is pretty absurd.

Another thing to bare in mind, for those who are rolling their own, is how you caress those passwords from the DB.

The common approach is a simple DB SQL select. But that then means if your web server gets exploited an attacker can dump the entire password database.

The safer option is to write a stored procedures to return or modify that table and set permissions on that table so even your web app creds can’t directly query the password table. Then your web service only has access to check a single password, rather than downloading every hash on the DB.

If you can also offload the encryption/decryption and hashing then that is another step forward too.

Pantone 448 C 6 years ago

I love the update. That has to be one of the funniest and most creative posts on here I’ve seen in a while. Good work

Those two points aren’t mutually inclusive.

Go is productive in specific ways. Other languages are productive in other specific ways. That’s why we have different programming languages solving different problems.

So if someone says they like Go because they’re productive in it that doesn’t mean all other languages are shit. That only means Go solves the specific kind of problems they need solving.

This is why I hate languages flame wars and why commenters like the GP exasperate me. They have different problems they need solving and talk about programming languages like there is a one size fits all. That’s not the case.

You can just download the go tarball and go from there. Technically you don’t need to install Go, you don’t need environmental variables set etc.

But I do get your point. You are absolutely right that go doesn’t hand hold you through that process and thus a thousand different people have a thousand different methods for doing it.