HNHacker News
TopNewBestAskShowJobs

jhhh

500 karma · joined September 22, 2017

submissionscomments
jhhh··on Deutsche Bahn introduces "MetaWindow"
The point of the post was that merely having a subculture attached to something doesn't make it good or bad. The addition of the bank robbing was to make that point obvious by attaching a subculture to something obviously bad. If you thought they were saying that graffiti is bad because it's like bank robbery (which is bad) then you misunderstood the point of the post.
jhhh··on Show HN: Pile Programming Language
Thanks for the kind words. I hadn't noticed the Paths/Path issue. I'll fix that.

As for your build error I've only seen that with mismatched Java versions. If I run the repl (which is just a single mvn command) with JAVA_HOME pointing to jdk 19 I get the same error. But, I can see obviously you've installed jdk 20 and shown the version. I am unfamiliar with how nix sets up the environment, but is it possible it's running mvn with a different JDK than the version 20 you installed? The seems like it would be the most likely cause.

jhhh··on Jacob Ziv has died
All the people with computer science degrees working in the field who also had to take common core courses that they 'didn't care about' seem to serve as a counterexample to this general claim.
jhhh··on Retail, search and Amazon’s $40B ‘advertising’ business
They did the same thing for Walmart+ and honestly it's pretty terrible. Every business is going to try to be amazon now and while it's probably going to make money in the short term it'll eventually poison their brand. I want to know the hot sauce I'm going to buy isn't sold by some random dude who will send me expired items. I want to know the hard drives I'm going to buy are actually new. Same thing with newegg.
jhhh··on I still Lisp (2021)
In almost every instance I see a function in a statically typed language that should return a sum type the developers inevitably collapse that into a single type eg. we're going to return the number of results and -1 is a sentinel value that means something special. This is a fundamental type error. In a dynamic language you tend to not need to embed a concept or value in a domain it doesn't exist. If later I'm adding results together I'm going to get an error when I try to add the Clojure keyword :something-special to a number, while in the static language you may have just folded the special -1 into a sum because you forgot it was unique.
jhhh··on Reducing technical debt by valuing comments as much as code
Where are Ada and Rust mentioned in that link? The top listed down to Ruby in that link by general failure seem to be: Scala, Perl, Clojure/PHP (tied), Haskell/Go (tied), TypeScript, Ruby.
jhhh··on Why is D's garbage collection slower than Go's?
You hate when the people most knowledgeable about something take the time to explain things?
jhhh··on Bringing a dynamic environment to C: My linker project
Re-reading the original post I see what you mean now. But Clojure definitely fits the first part of the definition by compiling your methods instantly as you're writing them in the repl. For the second part I'm not aware of a prompt which would let you define a method in response to a missing function call. Might be an interesting feature.
jhhh··on Bringing a dynamic environment to C: My linker project
Only change is that you have to tell the compiler that 'undef-fn' exists but you don't have to provide an implementation. So, before all of that just do

    (def undef-fn)
It should work after that.
jhhh··on JetBrains Ring UI
Almost no contrast on the year. Clicking the year doesn't change the year in (either) textbox but scrolls a different section. Month 'highlighting' overlaps with adjacent months including picking January which highlights both January and December. If you type a text date (which is in a different edit box for some reason) and then click outside the box it won't 'save' the changes because you have to hit enter. If you open up the picker again it will at least remember what you typed before which is now different from the text date above itself. Mousewheel scrolling individual items like months doesn't actually go to the next month it just scrolls the calendar a bit, but sometimes skips around: while scrolling down it went from 11 Aug 2000, 2 Jan 2002, 22 Sep 2000 (I think because in some states my cursor was over an item). What did you like about it?
jhhh··on Apple Procurement VP Departs Company After Vulgar TikTok Comment
My boss told me at one point that he showed up to work that day to chew bubble gum and kick ass but because of the supply chain shortages he was unable to procure bubble gum. By the power of logic I was able to conclude the only viable option was that he was going to kick ass and since most people were WFH except mean he might kick my ass. Scary stuff.
jhhh··on The Reason Java Is Still Popular
My main complaint about this new feature is that it has such poor conceptual clarity that people already familiar with Java will almost always misinterpret what is happening in exactly the same way. I've seen people post similar comments to the one you're correcting on reddit as well.
jhhh··on Clojure Web Development Evolved [video]
Vararg support in interop and type creation (deftype/defprotocol) seems like a reasonable ask.
jhhh··on Everyone seems to forget why GNOME and GNOME 3 and Unity happened
In this house we trust science which is why we must take for granted the statements of an important person.
jhhh··on EA: The Human Story (2004)
> I've never seen another white person bullied under the pretense of having been racist or misogynistic.

And yet,

> My guess is that you don't see 'light' racist, misogynistic, or homophobic behavior as problematic

jhhh··on The Dhall Configuration Language
People tend to evaluate these things based on what cool and neat things they can do it with. Not whether telling people they need to learn Haskell before they can update what would've been a 30 line configuration file on the project they just joined is a good use of peoples' time.
jhhh··on Ethereum Energy Consumption
Funny enough if you click through to find out what 'The Merge' is you get a 404.
jhhh··on The most satisfying checkbox
UI designers design to impress other designers.
jhhh··on Ask HN: Does your team use feature flags?
Not frontend but I use them extensively now in backend + REST endpoints. I still think they are necessary to prevent having to hotfix builds when something breaks with a new feature, however I don't think they are purely good. Too many feature flags add a lot of complexity to the testing surface of a project and if the test suite isn't well adapted to test all the configurations then people will end up unit testing their feature flag (if they do at all) and not doing any kind of integration testing of the specific combination of flags that production may find itself in. You need to have a well thought out test suite.
jhhh··on Idris 2: Quantitative Type Theory in Practice
You get a compilation error if you try that.
jhhh··on Idris 2: Quantitative Type Theory in Practice
I could be missing something but my example does as well since it's a method level generic:

  Name nameKey = ...;
  Age ageKey = ...;
  
  Optional<String> name = db.get(nameKey);
  Optional<Integer> age = db.get(ageKey);
jhhh··on Idris 2: Quantitative Type Theory in Practice
How is this different from what you can do in Java?

  interface Key<V> { ... }
  class Name extends Key<String> { ... }
  class Age extends Key<Integer> { ... }
  interface DB {
     public <V> Optional<V> get(Key<V> k) { ... }
  }
jhhh··on JetBrains Mono – the free and open-source typeface for developers
Ligatures caught on because users like 'clean' designs where 'clean' means 'the removal of affordances which are not needed by frequent users but are useful to new users'. Your example doesn't make any sense because while the dash arrow attempts to mimic an actual arrow it's not ambiguous that it's two characters and will be understood by a compiler as such. A reading of source code either on a blog or shoulder surfing with this font does have that ambiguity, which is the problem.
jhhh··on Why I Like D
I don't disagree that it can be useful (eg. from one of the other projects mentioned in the thread: https://github.com/Netflix/vectorflow/blob/master/src/vector...), and I definitely saw plenty of people that liked it. I think it existed in the same realm as a feature like lisp macros which are incredibly useful but when overused can turn the code into an inscrutable mess. The question for me was always how much the community would use or overuse them. When talking with other people it seemed like their own use of UFCS was obvious, but then again they wrote the code so of course they were going to understand it.

Without knowing any of the associated types and members how many interpretations could the prior expression 'a.b!c.d' have with UFCS and parens-less calling conventions (and any other feature that might contribute to different semantics)?

  b!(c.d)(a)
  b!(d(c))(a)
  d(b!c(a))
  d(a.b!c)
Might be more? Don't get me wrong I see the benefit. The vectorflow example I think is a good use case thought because it allows a more natural conceptualization of object -> member access -> conversion rather than having to call to!ulong(W.length) which forces the reader to start with the (pending) conversion. You get this same dataflow/conceptualization benefit in threading macros in clojure (->, ->>, etc).

Anyway, thank you for all the work you've done.

jhhh··on Why I Like D
I started learning D in 2012 and will echo that Andrei's book is great, and imo one of the most entertaining and informational technical books I've read. The D forum was a great example of dogfooding and the people seemed nice when I would post things.

But, I think one of the things that people seemed very happy about feature-wise that started to turn me off the language was UFCS. I don't deny that it makes the written code look more elegant but I think to me it existed as a net negative for other people who are unfamiliar with the code they are reading. There was an example someone gave years ago on reddit that was supposed to convey how clean the code to solve the problem was but it included an UFCS expression of the form 'a.b!c.d' which was sans-UFCS 'd(b!c(a))'. Trying to determine which reordering the compile would going to eventually choose seemed like more work than should be necessary for simple expression like that.

Having said all that it still might be a good choice for certain development environments and I should see whether there's a second edition of TDPL.

jhhh··on It's not what programming languages do, it's what they shepherd you to (2020)
You say you disagree with the thesis about shepherding but the entire rest of your post reads like a rediscovery of this blog's main point.
jhhh··on Paxos
Allowing me to bikeshed for a second, was the progress bar a stylistic choice on this blog or part of some default styling? I keep seeing it pop up on random sites and I can't help but think people are developing on browsers that elide the scrollbar. Adding it back in seems like a signal that it was actually useful information for the user. I know safari removes it, not sure about chrome. Firefox does not remove it on desktop but does on mobile.
jhhh··on Firefox Now Sends Your Address Bar Keystrokes to Mozilla
"Firefox Now Sends Your Address Bar Keystrokes to Mozilla like it already did for Google but only if you had search suggestions turned on in the address bar" doesn't have quite the same ring to it.
jhhh··on Firefox Now Sends Your Address Bar Keystrokes to Mozilla
I still use a split address bar and search bar with "Show search suggestions in the address bar" toggled off, so until this version the address bar suggestions were only from bookmarks and history items.
jhhh··on 1 Year of Coinbase as a mission focused company
This kind of post only works if you get to judge their mission statement as insincere. Could you, without looking it up right now, identify what Coinbase's mission statement is? What specific actions do you think they've taken that you read as being misaligned with their stated mission and caused you to only believe they care about profit?
← PreviousPage 3 of 5Next →