HN user

kchamplewski

186 karma
Posts0
Comments53
View on HN
No posts found.

How does this in any way reflect on either the privacy of DuckDuckGo (I don't think they ever claimed or even vaguely implied that if I search for, say, Banana, no one else will be able to see the results page for Banana, as that would be absurd), or Google, who are simply indexing publicly accessible pages, which is what they've always done since coming into existence.

What violation of privacy or hint thereof is happening here?

when you can't toss a printf debug or log statement into a function without changing function signatures all the way up

But you absolutely _can_ do this in Haskell.

Sure, it's considered very unsafe and shouldn't be used in production, but for printf debugging it's fine.

Admittedly, production-ready logging requires type signature modification, but if you subscribe to Haskell's idea that side-effects should be reflected in type signatures, then I don't see that as excessive.

DUI

Is illegal and I don't think anyone here is arguing against that.

Liver disease

That's harming you, not someone else. If the state pays for the healthcare requirements that then arise then a more nuanced argument can be made, but surely if it's your own liver and you pay for healthcare then you're harming no one else.

Domestic violence

Once again, already illegal and I don't think anyone here is arguing against that.

What advantages would it give them though?

It's no faster than any existing means of communication since you still need to send classical information along with the quantum, though I guess it's nice that it can be used for almost completely unbreakable encryption.

It feels like complete overkill for no practical advantage that I can see.

Photographers don't automatically gain copyright of a photo by virtue of it being a photo - they gain copyright when they create what the law considers a copyrightable work.

In practice, most photos involve creating or capturing a scene in a unique or new way, and this adds something new sufficient to make the photograph a new work and hence subject to copyright.

The act of photographing a public domain painting in such a way that you just reproduce the painting and add nothing new, however, doesn't necessarily create a new work - it may instead count as a reproduction of that original work and hence subject to the original work's copyright, as no new copyrightable material is added.

There is a bit of a grey area in that if I say, arrange a whole bunch of public domain art in a particular way and photograph it, I could quite reasonably argue that my arrangement itself consists of a work and so my photographs are subject to copyright. Similarly if I parody or otherwise transform a public domain work, I can assert that my work is copyrightable as it is transformative. This 3D scan doesn't fall into this area however since the scan was clearly intended to reproduce the original work, as opposed to create a new copyrightable work.

As I understand it the reasoning given tends to be that ad auctions happen extremely quickly, and therefore too quickly to check some single source of truth for your current budget.

Therefore, the budget is only "eventually consistent" - i.e. at the end of the campaign or after a day or so, the number you're being charged is accurate. However during the campaign itself it's not possible to guarantee that things won't go slightly over budget as each individual ad auction cannot feasibly check the central budget.

That said, it definitely feels like there should be a way to implement this such that it backs off as the budget is approached, so that overshoots are likely to be minor, rather than 100% of the budget as apparently happens on a regular basis.

PHP 7.4 7 years ago

TypeScript doesn't count because all type information is stripped during runtime

What's the point of keeping this information around at runtime if you do all your type checks at compile time?

Based on this categorisation, Haskell for example isn't a strongly typed language, and yet Haskell's type checking is one of its biggest selling points, so this doesn't seem quite right.

The 80/24 Rule 7 years ago

C-style languages tend to have squiggly brackets which can limit scope somewhat, but not as totally as you describe.

For example:

   doThing(){
      x = 7; //x visible in whole function
      {
         y = x*2; //y only visible in this block.
      }
      // x still visible, y no longer visible
   }
Explicitly removing things from scope doesn't seem to be a feature though.

It could choose to decode, rotate, re-encode

Or it could simply rotate without decoding or re-encoding, which has the added advantage of being lossless.

Obviously it's still added processing time and (probably more importantly) development time, so it's generally not worth bothering, however it's important to point out that JPEG rotation can (in the case of 90 degree increments) be done losslessly.

Except async communication doesn't disrupt deep flow if done properly since it should be simply ignored until flow breaks or pauses naturally.

A slack message won't disrupt my deep work because I'll have notifications turned off, unless it's extremely urgent in which case it would be too urgent to leave until a standup anyway.

In a functional world persistence (e.g memory) cannot be a thing.

Why not?

To give a functional Haskell flavoured example, I can use the Reader and Writer monads (which are functional) to create a whole bunch of operations which write to and read from a shared collection of data. That feels a lot like memory to me.

Indeed, the Reader monad is defined as:

Computations which read values from a shared environment.

I just don't understand the whole "you can't have memory / order of operations / persistence / whatever else" as an argument against functional concepts when they have been implemented in functional ways decades ago. The modern Haskell implementation of the writer monad is an implementation of 1995 paper.

Edit: it looks like who I responded to doesn't actually want to have a reasonable discussion, but for anyone else reading along, it's entirely possible to have functional "state" or "memory" - what makes it functional is that the state / memory must be explicitly acknowledged.

Trying do dismiss functional computation in this way is essentially a no true Scotsman; functional computation is useless because it can't do X (X being memory or persistence or whatever), but when someone presents a functional computation that does do X, it's somehow not a "real" functional computation precisely because it does X. Redefining functional computation as "something that can't do X" doesn't help anyone, and doesn't actually help with discussing the pros and cons of functional programming since you're not actually discussing functional computation but some inaccurate designed-to-be-useless definition mislabeled as functional computation.

But the training process does generalise. The same training process produces an agent that works on a 19x19 board, or a standard Go board, or even a game of chess.

How is that not general? Sure it doesn't work for all problems but in the domain of board games it definitely feels very general.

The agent the training algorithm produces may not be general, but out of what I've read I've only ever seen DeepMind claim generality of the learning algorithm, not the agent.

Their “general learning” tech doesn’t even generalize to barely modified variants of the original games it has claimed to master. I call bullshit.

But the point I was making is precisely that the "general learning" tech is in fact somewhat general. AlphaGo and certainly AlphaZero's learning tech generalises to Go, chess, and a few other games. That's relatively general in the domain of board games, in my humble opinion.

The reason this isn't close to AGI is because it's not the agent doing the learning, and so while a relatively general learning algorithm produces the agent, the agent itself is not general even in the field of board games.

I think it's quite important to look at the distinction between the actual agent in play and the learning algorithm used.

The learning algorithm AlphaGo uses is somewhat general, and can handle different games (e.g. you can put chess or Go through the algorithm and it functions well for either).

The output of this algorithm, however, is a specialised agent. The agent is not general. If I create a chess agent and give it Go or chess with different rules, it will perform very poorly.

Creating general learning algorithms is arguably a somewhat easier task than creating a general agent, since learning algorithms are typically run for a long time while an agent often has to make time constrained decisions.

The holy grail of AGI is to make the learning algorithm and the agent the same thing, and have them be general. Then you have an agent which can rapidly adapt to its environment and self-modify as needed. We are still a long way off a system that would do this in terms of current research.

In what way though?

Knowing that I could nullify does not in any way prevent me from properly concluding a verdict based on the laws that are in place.

It's only if I choose to actually nullify that I'm not doing jury duty properly, but the knowledge of nullification as far as I can understand in no way prevents me from doing jury duty properly.

The biggest complaint I have regarding DoH is that it's extremely painful to configure because every application does it individually.

If I could configure DoH at the system level, as I do normal DNS, I'd be perfectly happy. As it stands, DoH could trivially be co-opted by browser vendors to ignore system DNS settings, and even if it isn't, it still makes DNS configuration a worse experience.

I'd be curious to see an explanation of why just knowing about jury nullification would disqualify you from being on a jury - obviously if you intend to nullify or "helpfully" inform the other jurors about nullification you should disclose it and therefore be disqualified, but I do not see how knowledge of nullification counts as something that should disqualify you if you have no intention of nullifying.

TextMate 2.0 7 years ago

I'm curious, why phpStorm specifically and not IntelliJ or any other jetbrains IDE?

Obviously its php specific features aren't relevant here since we're discussing editors (or development environments) in general.

Personally I find that most IDEs are far too language specific, and I can't possibly invest the time to learn an IDE per language when there's so many languages I regularly need to edit (and probably yet more in the future).

VSCode isn't half bad, as it has plugins for just about everything, but it's still a juggernaut in terms of software size. None of the jetbrains product I've used had decent plugins for all the languages I need.

And of course none of these work over a purely terminal ssh connection, which is a bit of a deal breaker for me.