HNHacker News
TopNewBestAskShowJobs

kchamplewski

186 karma · joined June 29, 2019

submissionscomments
kchamplewski··on Google indexing DDG search results
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?

kchamplewski··on Haskell Problems for a New Decade
> 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.

kchamplewski··on Smart homes will turn dumb overnight as Charter kills security service
That depends heavily on where you live. If the most common type of power outage is one that affects a small region, it's quite likely internet connectivity could remain unaffected. I had this experience in northern Sweden, where I had a couple of power interruptions but zero network interruption.
kchamplewski··on Should We Trust the Climate Models?
Worth noting that the Institute for Energy Research was founded by the ex-director of public policy for Enron, and has received donations from the likes of ExxonMobil and the American Petroleum Institute, so while this post may well contain valid points, it produced by an organization likely to have a bit of a conflict of interest when it comes to anthropogenic climate change.

https://en.wikipedia.org/wiki/Institute_for_Energy_Research

kchamplewski··on 100 years ago, prohibition went into effect
> 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.

kchamplewski··on TextCaptcha: Simple Textual Captcha Challenges
> it's trivial to generate text that could match any given hash

Source on this?

Wikipedia states what I have heard before which is that MD5 collision attacks are pretty trivial now, but carrying out a preimage attack as you describe remains theoretical at this time.

https://en.wikipedia.org/wiki/MD5

kchamplewski··on Information teleported between two computer chips for the first time
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.

kchamplewski··on The Neues Museum claims copyright over 3D-printing files of the Nefertiti bust
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.

kchamplewski··on Google AdWords charged me for clicks in Istanbul while location-targeting the US
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.

kchamplewski··on PHP 7.4
> 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.

kchamplewski··on Personal and social information of 1.2B people discovered in data leak
A firewalled IP would be much more appropriate, and NAT is not a firewall or a security mechanism.
kchamplewski··on The 80/24 Rule
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.
kchamplewski··on Samsung: Anyone's thumbprint can unlock Galaxy S10 phone
The fact that the math here is wrong is quite concerning. Probabilities are not additive - 1 in 6 dice rolls will produce a 5, it doesn't mean if I roll 6 times I am guaranteed a 5.
kchamplewski··on A dumb reason computer vision apps aren’t working: Exif Orientation
> 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.

kchamplewski··on The pointlessness of daily standups
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.

kchamplewski··on Causing ZFS corruption for fun, profit, and quality assurance
Presumably they're referring to Datto's recovery process (i.e. recovering automatically from secondary or tertiary backups), as opposed to just the ZFS mirror.
kchamplewski··on Chinese farmer 'studies law for 16 years' to defeat dumping of hazardous waste
Key ideas in computer science, such as for instance Chomsky grammars, are derived directly from linguistics.

I don't think it's fair to say that approaching a foreign language has nothing to do with approaching a new programming language.

kchamplewski··on Learning Haskell is no harder than learning any other programming language
Lambda calculus, for example, has no ticker tape.
kchamplewski··on Learning Haskell is no harder than learning any other programming language
> 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.

kchamplewski··on In the Pancreas, Common Fungi May Drive Cancer
That sounds quite intriguing, could you link to some of the papers on this topic as I'd be interested to read further.
kchamplewski··on We can’t trust AI systems built on deep learning alone
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.

kchamplewski··on We can’t trust AI systems built on deep learning alone
> 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.

kchamplewski··on We can’t trust AI systems built on deep learning alone
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.

kchamplewski··on Microsoft has removed the “use offline account” option when installing Windows
Domain joining means connecting the machine to a Windows domain allowing domain user accounts to be used, and allowing for the domain to administer the machine.

It's actually quite a helpful option to have, but it's completely absurd for the only way to create a local account to be via the domain join option.

kchamplewski··on United States Files Civil Lawsuit Against Edward Snowden
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.

kchamplewski··on Analyzing DNS-over-HTTPS and DNS-over-TLS Privacy and Security Claims
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.

kchamplewski··on Buffon's Needle Problem
Dupe of what?

You've linked to the same post.

kchamplewski··on United States Files Civil Lawsuit Against Edward Snowden
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.
kchamplewski··on TextMate 2.0
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.

kchamplewski··on Test-driven development: A great idea hiding behind a terrible implementation?
https://outline.com/2cNZTz

Alternatively incognito or no js should do the job also.

Page 1 of 2Next →