HNHacker News
TopNewBestAskShowJobs

geoffhill

406 karma · joined April 15, 2011

Bit flipper.
submissionscomments
geoffhill··on Claude Advanced Tool Use
One of my agents is kinda like this too. The only operation is SPARQL query, and the only accessible state is the graph database.

Since most of the ontologies I'm using are public, I just have to namedrop them in prompt; no schemas and little structure introspection needed. At worst, it can just walk and dump triples to figure out structure; it's all RDF triples and URIs.

One nice property: using structured outputs, you can constrain outputs of certain queries to only generate valid RDF to avoid syntax errors. Probably can do similar stuff with GraphQL.

geoffhill··on My first verified imperative program
Both Clang and GCC have musttail attributes than can force tail calls at specific return statements in C/C++.
geoffhill··on Recent results show that LLMs struggle with compositional tasks
Idk, `o3-mini-high` was able to pop this Prolog code out in about 20 seconds:

  solve(WaterDrinker, ZebraOwner) :-
      % H01: Five houses with positions 1..5.
      Houses = [ house(1, _, norwegian, _, _, _),  % H10: Norwegian lives in the first house.
                 house(2, blue, _, _, _, _),       % H15: Since the Norwegian lives next to the blue house,
                 house(3, _, _, milk, _, _),        %       and house1 is Norwegian, house2 must be blue.
                 house(4, _, _, _, _, _),
                 house(5, _, _, _, _, _) ],
  
      % H02: The Englishman lives in the red house.
      member(house(_, red, englishman, _, _, _), Houses),
      % H03: The Spaniard owns the dog.
      member(house(_, _, spaniard, _, dog, _), Houses),
      % H04: Coffee is drunk in the green house.
      member(house(_, green, _, coffee, _, _), Houses),
      % H05: The Ukrainian drinks tea.
      member(house(_, _, ukrainian, tea, _, _), Houses),
      % H06: The green house is immediately to the right of the ivory house.
      right_of(house(_, green, _, _, _, _), house(_, ivory, _, _, _, _), Houses),
      % H07: The Old Gold smoker owns snails.
      member(house(_, _, _, _, snails, old_gold), Houses),
      % H08: Kools are smoked in the yellow house.
      member(house(_, yellow, _, _, _, kools), Houses),
      % H11: The man who smokes Chesterfields lives in the house next to the man with the fox.
      next_to(house(_, _, _, _, _, chesterfields), house(_, _, _, _, fox, _), Houses),
      % H12: Kools are smoked in a house next to the house where the horse is kept.
      next_to(house(_, _, _, _, horse, _), house(_, _, _, _, _, kools), Houses),
      % H13: The Lucky Strike smoker drinks orange juice.
      member(house(_, _, _, orange_juice, _, lucky_strike), Houses),
      % H14: The Japanese smokes Parliaments.
      member(house(_, _, japanese, _, _, parliaments), Houses),
      % (H09 is built in: Milk is drunk in the middle house, i.e. house3.)
      
      % Finally, find out:
      % Q1: Who drinks water?
      member(house(_, _, WaterDrinker, water, _, _), Houses),
      % Q2: Who owns the zebra?
      member(house(_, _, ZebraOwner, _, zebra, _), Houses).
  
  right_of(Right, Left, Houses) :-
      nextto(Left, Right, Houses).
  
  next_to(X, Y, Houses) :-
      nextto(X, Y, Houses);
      nextto(Y, X, Houses).
Seems ok to me.

   ?- solve(WaterDrinker, ZebraOwner).
   WaterDrinker = norwegian,
   ZebraOwner = japanese .
geoffhill··on Honey, YouTubers are poisoning the kids
I found myself empathizing more with MrBeast and his kid audience than the grump who wrote this article.
geoffhill··on NASA’s Plan to Make JWST Data Immediately Available Will Hurt Astronomy
> When we use the $10B satellite that took 25 years to build, we must be secretive about why we point it at a certain part of the sky.

> Then we must gatekeep all data for up to a year, in order to better take personal credit for the findings.

> This will help accelerate scientific progress in the long run.

Statements dreamed up by the utterly deranged.

geoffhill··on Car feature subscriptions should be illegal, New Jersey Legislators say
You're gonna want that TrueCoat though...
geoffhill··on All public GitHub code was used in training Copilot
> not copying and pasting code

https://news.ycombinator.com/item?id=27710287

geoffhill··on Watchy: Hackable $50 Smartwatch
For cheap esp32-based smartwatches and wristbands, I've had good success with LILYGO and the esp-idf toolchain.

$18 T-Wristband: https://www.aliexpress.com/item/4000527495064.html

$26 T-Watch-2020: https://www.aliexpress.com/item/4000971508364.html

esp-idf: https://github.com/espressif/esp-idf

geoffhill··on Ask HN: How do you RSS?
I use NewsBlur in Firefox and via the Android app, and I'm very happy with it.
geoffhill··on Popcount CPU instruction
I like popcount for converting a 2^N-bit uniformly-distributed random number into a N-bit binomially-distributed one. Each bit of the input simulates a random coin flip.
geoffhill··on Software Engineering at Google (2017)
None of the other replies try to explain specifics of how this works, so let me illustrate an example of two teams collaborating to add Feature X to the monorepo without branching:

1) Team A checks in their code to provide Feature X. Their code is not used anywhere in the codebase yet, however full unit test coverage exists for the public API; this is required for code review.

2) Team B checks in their code to turn on Feature X in their product, gated under a command-line flag which by default uses the old behavior.

3) Team B checks in an integration test that flips the flag and makes sure everything works as planned.

4) If Team B requires changes to Feature X to get expected behavior, they communicate those changes to Team A and someone from either team (using available human resources) makes the changes.

5) Team B checks in a small change to flip the flag by default.

6) Team B monitors their product. If things go awry, only the very latest change is reverted and repeat (4).

7) Once stability is achieved, Team B checks in a change to remove the flag.

geoffhill··on Introducing the Intel Galileo Development Board
Most notably missing from this page: how, where, and when can I get one?
geoffhill··on Client-side SSL/TLS MITM, compromised CA and server impersonation detection
I like this idea a lot!

A less powerful solution implemented completely locally: A "known_hosts" file for SSL certificates for repeat visits. As long as you've visited a site once before, any subsequent visits will be safe.

To deal with certificate upgrades, certificate Y could present a signed verification that it obsoletes a past certificate X. Then, when a client that trusts certificate X receives certificate Y, it can update its "known_hosts" file accordingly. This change would require more than just local changes, but remote cooperation.

geoffhill··on Intel rejection of Ubuntu’s Mir patch forces Canonical to go own way
Here's the actual commit that was reverted, for anyone curious like me: http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/com...

Doesn't exactly seem like a lot of work to support this.

geoffhill··on CDN vs S3
Amazon Web Services does offer a worldwide CDN, CloudFront. http://aws.amazon.com/cloudfront/
geoffhill··on Chicken Scheme
Racket supports running multiple (sometimes incompatible) dialects of Scheme through the use of a #lang directive.

If you prefix your program with "#lang racket", you get the definitions for the full Racket language, with all of the extensions and libraries that Racket provides.

But if you want to preserve compatibility with the standard and with other implementations, you can prefix your program with "#lang r5rs". It derives from the same base language as Racket.

http://docs.racket-lang.org/r5rs/r5rs-mod.html

geoffhill··on Valve Finds Value In Open-Source Drivers
> Valve has granted these Intel Linux developers complete access to the game's source-code, including the Source Engine. This has allowed Intel's Linux developers to better investigate possible optimizations and tweaks to their driver in order to enhance Source-powered games. Valve has even given them commit access to push back changes to the game company.

That sure is something EA and Ubisoft wouldn't do in a million years.

geoffhill··on JRE & JDK now available to OS X developers
So speaking just in terms of the JRE, is there any reason to download it from Oracle instead of Apple? A separate Oracle updating program is a much less elegant solution than the current Software Updates integration that Apple uses.
geoffhill··on Facebook forces all users over to Facebook.com e-mail addresses
Just go into your About Me and enable "hidden from timeline" for the @facebook.com email address. Now everything is back to normal.
geoffhill··on Craigslist, LinkedIn, Netflix, and others don't owe us anything.
This attitude is extremely anticompetitive. Big guys like Craigslist need to give away their customer base just because they're big? That doesn't make sense to me.
geoffhill··on Back That Gmail Up
> "It's hosted on SourceForge, just kidding that was weird and scary"

How the world has changed...

geoffhill··on Things Not Strings -- Google Launches Knowledge Graph
More clutter.
geoffhill··on Why Android should switch to Go
Probably a much better idea with the gift of hindsight. However, Objective-C is more than 28 years old, and Go is just 3 years old at time of writing. The Go language has changed and continues to change a lot, and tying such a large platform to it before it is ready would make backwards-compatibility a huge concern for Go, and stifle its innovative growth.
geoffhill··on Take action against Internet restrictions in the Trans-Pacific Partnership
This article makes no mention of SOPA. The title doesn't correspond to the article. ACTA is a more appropriate analogue, according to the story.
geoffhill··on Linus Torvalds won't do github pull requests
Don't sweat it; Linus's needs are far different from the rest of us. We're talking about the guy here who made Git just to have a tool that perfectly conformed to his ideal kernel development process. Since his job is basically to be a full-time pull request approver, it makes sense that he would be extremely specific about the format to improve his efficiency.
geoffhill··on Faster Fourier transform among world’s most important emerging technology
No, Dirac is based on wavelet transforms, which have different math behind them, not using Fourier transforms. This Sparse Fourier Transform (which the authors are now calling the sFFT) would be more useful for traditional FFT/DCT compression algorithms. Though for the most part, the hardware for even very complicated real-time Fourier-based compression (H.264, HD) already exists.
geoffhill··on Heads up, Intel: TSMC cranks up ARM chip to 3GHz
From the press release:

> "At 3.1 GHz this 28HPM dual-core processor implementation is twice as fast as its counterpart at TSMC 40nm under the same operating conditions."

I assume power consumption is not being counted as an operating condition. Usually power consumption scales super-linearly with frequency, correct? (Can any overclockers out there confirm this?)

geoffhill··on Real world feedback from a Java dev using Scala
Very interesting comment about the notation for package-level scoping. When I worked with Java, most of the devs I worked alongside also used package-level access for more complicated private methods in order to unit test, but I've never seen that pattern used in Scala.

How do you generally test private methods in Scala? Would an inner class work? Path-dependent types in Scala seem to make this approach more elegant than in Java.

geoffhill··on Check Out This Berkeley Freshman’s ‘Ridiculously Automated’ Dorm Room
I have a feeling that his "Romantic Mode" was underused.
geoffhill··on HaikuOS x86_64 port part of Google Summer of Code
I really hope a "first year computer science student" can handle this kind of undertaking. Before having taken classes in assembly language programming, operating systems, computer architecture, programming languages, compiler construction and software project management, I could never have been able to make these kinds of commits. If this coder manages to make this port, he will really have earned my respect, before even having completed most of his undergraduate career!
Page 1 of 2Next →