HN user

lorddoig

922 karma

tweet/github/everything but email is at @lorddoig

[ my public key: https://keybase.io/lorddoig; my proof: https://keybase.io/lorddoig/sigs/TcrveH0fK9nsFs-qOtkSG7PYUO4v8ppjENKF7Dc_wmo ]

Posts6
Comments187
View on HN

That's as may be, but it's also a well-rehearsed cry of establishment media:

- "Neo-Nazi accused a fan of Nigel Farage, trial told", BBC [0]

- "Farage’s fascist past?", The Independent [1]

- "Giorgia Meloni appoints minister once pictured wearing Nazi armband", The Guardian [2]

- "Milei appoints former minister with pro-Nazi past as head of state lawyers", El Pais [3]

The first isn't anything to do with Farage, really. The rest are childhood indiscretions and one case of a bad taste outfit worn on a stag party. Google any democratically elected leader from the right followed by "nazis" and you'll find articles like this.

[0] https://www.bbc.co.uk/news/uk-england-somerset-57258375

[1] https://www.independent.co.uk/news/uk/politics/nigel-farage-...

[2] https://www.theguardian.com/world/2022/nov/01/giorgia-meloni...

[3] https://english.elpais.com/international/2023-12-02/milei-ap...

Because admitting that right/centre-right views are democratically popular would mean they'd actually have to grapple with the issues going on. It's cheaper and easier to make comparisons with the Nazis and play to the raw outrage of their readership than actually engage in real journalism.

There is a growing body of evidence to suggest that heart deaths are up by a significant amount, that those deaths _may_ account for most or all of excess deaths currently seen, and that they _may_ be related to safety issues with some of the mRNA vaccines.[0]

I resent the fact that statements like this have become political and that I now have to explain myself. Nevertheless, here we go: I have no vested interested in this being true. I've had two doses of the stuff, I want it not to be true. However, there are legitimate questions here that have not been satisfactorily addressed. I'm raising this because reading the article and the other comments I can see nobody else has.

I would encourage people to look at the link and scrutinise the evidence presented themselves before deciding whether or not there might be an issue here that needs looking at.

[0] https://www.hartgroup.org/what-are-people-not-dying-of/

It is kind of astonishing to me to witness the discussion in these comments proceeding civilly and with actual regard to the science. In my experience this is vanishingly rare. It's extremely refreshing. At risk of ruining that civility, I'd like to address some aspects of climate scepticism various other comments are touching on.

It is not difficult to see that a reasonable person may ask that if the UN is correct in saying 30% of climate change is due to methane[1] and this paper is correct in saying methane is 30% less effective at warming than we thought, then isn't this whole climate change problem potentially ~9% smaller than we thought? And isn't that actually pretty big? Big enough to potentially have policy implications?

I'm quite sure it's not that simple but nevertheless as a starting point for discovery it's a decent question. It's also a question that will be met with astonishing levels of derision on social media, mainstream media, and in society more generally. Merely asking it will have large international media outlets like the BBC openly describing the questioner as a 'climate sceptic/denier' which, while some may wear it as a badge of honour, actually serves the purpose of shaming them publicly for wrongthink. Social media will of course be far worse in this regard.

We now live in a world where it is popularly considered valid to provide a political (to put it kindly) response to a scientific question. It is, of course, both invalid and indefensible.

I have no ideological aversion to the idea that climate change is real and a serious threat, but the quality of societal discourse on the topic has become so poor and so overtly political that there is absolutely no basis upon which I can accept either of those assertions as _actually scientifically_ true (short of becoming a climate scientist and spending the next however many years personally reviewing all the literature). For me to accept these assertions as fact would be indistinguishable from a declaration of religious faith. It isn't going to happen.

Moreover the conduct of the pro-climate change 'lobby' from the IPCC to the BBC to Just Stop Oil activists has, on the whole, fallen so far short of the standard demanded by the severity of the problem they espouse that I simply don't believe them very much anymore. In my view--and I claim no authority on this matter, this is just how I see it--climate change may well be real and an existential threat, but it may also be a bureaucratic fantasy mistakenly grown from kernels of misunderstood or mistaken truths that has gotten so completely out of control that it's now controlling us. It could also be somewhere in between, or something else entirely: I don't know and I cannot know so long as society keeps excluding valid voices with valid questions.

I suppose I'm a climate sceptic then...but when it comes to deciding between being a sceptic or taking a leap of devotional faith, what choice do I have? Luckily it seems to me the way forward is the same in any case: the pro-climate change people, being the ones comprehensively 'winning' the 'argument' at the moment, need to show a little humility and engage in open debate with the well-meaning sceptics without the ad-hominem attacks, the gaslighting, the censorship, etc. It really is that simple, and the fact it’s so forcefully resisted should, in my view, give us all pause for thought.

[1] https://www.unep.org/news-and-stories/story/methane-emission...

In a dynamic language, whenever I need to double-check the contract for some code, I can't just go look look at its type signature, I have to go read through it. I have to fully load that whole subtree of information into my brain (recursively to any functions it may itself call), when I'm really trying to focus my thoughts on something else. This can be a huge, needless drain on mental resources.

Yes, this is a headache, and certainly a problem that afflicts Clojure. Spec doesn't really help much in this regard. There is a proper static typing system for Clojure[0] that does provide a lot of the editor integration you speak of, but as I recall it was a little too brittle and orthogonal to Clojure's way of doing things to be as useful as spec. Some of Clojure's core constructs are completely impossible to type statically.

As with everything there are tradeoffs and choices to be made. I've been writing Clojure professionally for 5+ years now and there's no other language I have much interest in dealing with full-time (yet). One has to choose one's poison I suppose.

  [0]: https://github.com/typedclojure/typedclojure

It depends what you want to use types for, really. If your motivation for using types is provable correctness and you can grok Haskell (or better yet, Idris), then you should do that. If you want performant dispatch, Clojure can give you JVM-level perf through the use of protocols. If, however, you want input validation (in the sense that you can be sure that a function argument you've been given will allow you to do what you intend with it) then static typing isn't the only player in that game.

In my experience (which I think resonates with RH and most Clojurists) is that for the vast majority of _information-driven_ systems, types are used as the latter. If you have a `Customer` class that gives you guarantees about the availability of, say, an `accountNumber` field, that is useful for correctness as you can be sure the information you need is there. However, if some future downstream coder wants to use your customer in the more general sense of being a human, then (s)he has to worry about sub/super/abstract-classing, may have to make upstream modifications to expose previously hidden data, and similar faffage. In Clojure the idiomatic solution to this problem is to "just use a map"; the real-world downside to this, however, is extremely weak contracts between functions. In this example, what `spec` allows you to do is strengthen those contracts by verifying that the data your function is provided is sufficient for your uses (as in the map contains all the keys you'll need with suitable data types in the fields) _without_ constraining what downstream consumers can also do with this data (extra map keys are ignored).

These checks are only done at runtime and only when enabled, however writing a spec gives you (very-nearly-almost) free generative testing that will run your function a default of 1000 times with random data in the correct shape to make sure it doesn't blow up—this isn't a guarantee of correctness, but it does provide extremely high levels of confidence (most type systems are also not even close to guaranteeing correctness either, only compliance with the type system). Spec also gives you (for free) performant runtime coercion for use in actual real-world code. You get a lot of bang for your buck.

`spec` is definitely not a type system, but it very capably fulfils a similar role in the kinds of programs Clojure was intended to be good at. It gives you all the flexibility and dynamism of Clojure with most of the confidence of static typing, without constraining either.

Elm 0.19 Broke Us 8 years ago

Crucially they don't carry around mutable state by default. If you want a record with protocols to act like a stateful object you can do it, but you have to explicitly jump through hoops eg by embedding an atom in one of its fields and writing all your own getters/setters. It's not an especially pleasant or useful way to write Clojure(Script) but, as others have mentioned, it can be useful for things like achieving very high performance in certain situations.

I'm not so sure. Programming is isomorphic to mathematics (via logic) as proven by the Curry-Howard Correspondance, and so is not just applicable to ones problem/industry domain—it's applicable in a much more general sense. In my experience, the learnings on both sides of the coin filter back to the other in surprising and often highly insightful ways.

If you don't take the job: you lose out on employment, the employer loses out on a new employee, and the recruiter loses his fee. If you take the job: you get employment, the employer gets a new employee, and the recruiter loses his fee. The recruiter is screwed in both cases, so maximise what's left for everyone else—take the job.

Salmon Protocol 9 years ago

I wouldn't describe HN as an echo chamber. It has elements, of course, but the quality of discourse here is really quite high and respectful. I actually read HN; I don't read YouTube comments, and I wouldn't even if that's all there was.

Salmon Protocol 9 years ago

Practically speaking, this doesn't seem tremendously useful an idea. Global comment threads are most often a universally repulsive mix of incompatible opinions (case in point: YouTube.) I'll never allow comments on my blog, for instance, because I want to encourage discussions on fora where like-minded (or at least matched intellect) individuals can have a constructive discussion, as happens here on HN.

What would be useful, I think, would be a standard that openly links content to where it is being discussed. I think this would lead to a great surge in discoverability, in terms of both content and communities.

I wish I knew St Andrews was home to a cool mathematics department and the progenitor of Idris when I was there, filling my body with mind-altering chemicals.

Spec isn't a type system - it's an immensely powerful abstraction for describing your data that can be leveraged for validation, coercion, error reporting, and automated test generation. This, I think, is what many of us wish our type systems could do.

I think the thing you're missing is that dynamism is not about avoiding types, it's about having the flexibility to define your own type system. Clojure actually has real static typing - not quite complete, but it's there - and it's a library(!) Not a single change was required in the compiler. That's kind of mind blowing, no?

ValueObject 10 years ago

Immutability is just a property of good value objects.

It sounds rather like value objects are strictly superior than immutable data structures, based on this statement. I'd love to hear an expansion of this rationale.

Outright rejection of the fact that life, including your career path, is in part chance-based is dangerous. A sizeable chunk of the part that isn't isn't in your control either, it's controlled by your environment and the people who populate it. If an asteroid struck, and we were all made redundant, you would not have 'lost' - a large example to illustrate a subtle point.

Believing otherwise is the kind of self delusion that leads to mid-life crises: when the religion of You crumbles and a desperate scramble for a new faith begins.

Life is, in part, a lottery. Failure is fine. Failure is to be expected. Don't read in to it in the context of your self worth, but look at it objectively and see if anything is to be learned. Take risks and accept reality, and never reject the truth, especially when it's staring you right in the face.

Being told that you now trust someone with your secrets via a news website is a pleasingly succinct display of everything that's wrong with the CA model.

America gave birth to the idea of representative democracy

And here was me thinking that was the Greeks. Thousands of years before America existed.

It's not just technical though. BACS/CHAPS (payment systems that take days to move money and cost about £30 a go) would never die while banks had control of common technical standards. They're absurd. These standards mandate that each network hop include a holding delay measured in tens of hours. From light speed to days and why? Because it's a cash cow they'd be insane to mess with.

Banks working together is a scary idea. This was the notion atop which the recently disbanded Payments Council (UK) was based - an organisation that failed to deprecate BACS/CHAPS, had to be told to implement Faster Payments, came up with the 'innovative' pay-by-mobile-number scheme, and replaced swipe & sign card payments with a JavaCard that knows it's own 4-digit PIN.

Feast your eyes, ladies and gents. What you are witnessing is the formation of a cartel.

Having to know the structure of a hash/map/dict is strictly superior to having to know the methods and fields of an object. For any given task the two are equivalent, except that one is easily modified/reused/passed to other callers without creating an extremely brittle class hierarchy you're only going to have to rearchitect when your requirements change. As an IBM researcher looking at Watson waaaay before Watson actually existed: "OOP requires you to treat all extrinsic information as if it were intrinsic to the object itself." This is tantamount to saying you must have a complete and consistent programme design before you write a single line. Which is crazy (and probably the reason UML exists.) But don't take my word for it, think it through, it's the only conclusion you can reach, I think.

Cursive's[0] support for this kind of thing is quite good, and constantly improving.

    [0] https://cursiveclojure.com/