Hacker Newsnew | past | comments | ask | show | jobs | submit | metayrnc's commentslogin

> Amazon.com Services, LLC filed suit against Perplexity AI, Inc., an artificial intelligence company, asserting that Perplexity’s web browser tool, Comet, unlawfully accessed Amazon’s website in violation of the federal Computer Fraud and Abuse Act (CFAA) and California’s Comprehensive Computer Data Access and Fraud Act (CDAFA). Perplexity’s Comet browser includes an AI “Assistant” that, when activated by a user, navigates Amazon.com on the user’s behalf, sending browser screenshots to Perplexity’s servers for further instruction. Amazon claimed that this use of the Assistant, despite their explicit prohibition, amounted to unauthorized access to its servers.


My understanding of the case law on this subject is that courts are extremely wary of letting terms of service violations rise to the level of federal crime. It essentially endows anyone with a domain name into an authority which can create federal law on demand.



Yes, although the DoJ policy change reflecting still says civil liability might exist if a cease-and-desist is ignored: https://www.wsgr.com/en/insights/doj-acknowledges-limits-to-...


Illinois makes it a state crime to violate terms of service.

Sec. 17-51. Computer tampering. (a) A person commits computer tampering when he or she knowingly and without the authorization of a computer's owner or in excess of the authority granted to him or her: (1) Accesses or causes to be accessed a computer or any part thereof, a computer network, or a program or data; (2) Accesses or causes to be accessed a computer or any part thereof, a computer network, or a program or data, and obtains data or services; (a-10) For purposes of subsection (a), accessing a computer network is deemed to be with the authorization of a computer's owner if: (2) the owner authorizes the public to access the computer network and the person accessing the computer network complies with all terms or conditions for use of the computer network that are imposed by the owner;


That's pretty similar wording to the CFAA, which OP mentioned has been checked by case law.


Might be the only way to reign in the AI bots. By accessing my site with a bot, you agree to reimburse me for that data at the rate of $1,000,000 per character retrieved. Please contact licensing@domain to get set up with payment and access keys


And by linking to your site from other websites, by not requiring authenticated human-only login, and by not blocking traffic from all referrers, you agree to allow my bot to access you site at zero cost.


I have clearly communicated the constraints of use on my site using robots.txt, which is the established standard for communicating things like these. You are expected to fetch it and figure it out. It is not necessary to build walls and lock doors when a no trespassing sign is clearly visible.

Seriously, though, making robots.txt have the weight of law would be a massive improvement for the ecosystem in general.


and what happens when the perpetrator does not reside where that law can reach?


But didn’t Amazon cite laws that it broke (allegedly)? Not simply their ToS?


The CFAA makes it a federal offense to intentionally access a computer "without authorization" or "exceeding authorized access" so the sticky part is how far the site's ToS can go in defining what uses are authorized, lest it be a federal felony to use an ad blocker or whatever else might be forbidden in a ToS.


Isn't this how every agent works these days? Apple and Google are working on tool calling for apps, but that's still going to be backstopped by screen scraping for years very likely.

It's a good bet that everybody's got equivalent CFAA boilerplate in their terms, so I guess all agentic automations are crimes now.


This is a civil case not a criminal one, and just because it is the same broad act does not mean courts apply it the same way in civil and criminal contexts.

And Amazon LOST at this stage in the linked appeal, with the 9th Circuit finding that they were not entitled to a preliminary injunction because they were unlikely to succeed on the “access” prong of the CFAA or CDAFA claim against Perplexity.

So, it is doubly weird to conclude “all agentic automations are crimes now” based on the case linked here.


I really like this way of introducing a new feature/service. Straight to the point, explains what it does, which problem it solves, gives practical examples and walks the reader through them. So many times when I read about a new feature/service I am left with more questions than I had started with, but this was great!


One of the more interesting things about WL is that Stephen Wolfram is really a genuine daily user of the software his company makes and he's the final say on what ships and in what form. They used to livestream his meetings reviewing potential new features on Youtube, an interesting watch. It didn't make me want to work there but I did feel like he cared very much. Quite Jobsian, dare I say.


> Quite Jobsian, dare I say.

Good for product: not so good for people.

I am told that he gave a great deal of agency to people he trusted, though.

In my career, I ran into two [brilliant] individuals that had, at one time, worked with Jobs.

They both hated him.


“Pure numbers and French are not compatible”

Yep that checks out


Sixty-ten-eight! Sixty-ten-nine! Four-twenties!

1999 == One thousand, nine hundreds, four twenties, ten, nine.

I studied French in grade school over ten years and I love it. But the way numbers convert into language is wild. I tease it with love.


Switzerland and Belgium got them right!


As a French person who grew up going to a school in Belgium for a bit as a kid, I was quite amused by their numbers.

My thought as a 6 year old was "aw, are soixante-dix, quatre-vingt, and quatre-vingt-dix too complicated for you?"

Even now, while I think the French numbers make objectively no sense (even the countries that do count in 20s are at least more consistent than us), I can't help but find the Swiss and Belgian numbers "cute". Like "Baby's first 70 to 99".

And for whatever reason, I don't have the same opinion about 70-99 in English, Portuguese or Spanish.

Edit: just to be clear, I think my thoughts about it are absurd but they're too deeply engrained and decades old to shed completely.


It’s a well-known phenomenon that with the internet and modern media, large countries’ version of a language can affect the speech of the smaller countries using that language. Think kids in Portugal today growing up using lots of Brazilian words to their parents’ dismay, or americanisms slipping into UK speech. This makes me wonder if any young Vallon French speakers have started to pick up standard French higher numerals.


> Sixty-ten-eight! Sixty-ten-nine! Four-twenties!

https://www.youtube.com/watch?v=8Ze6ZMkT2Z4 :-)


US time: a quarter till 8.


= 775¢


"Four twenties and ten" is better than the Danish "five minus a half, times twenty".


But the history of why we stuck to four-twenties sort of makes it worse.

We were allegedly headed to sanity but l'Academie was like "actually let's stick to soixante-dix, quatre-vingt, and quatre-vingt-dix".


Good grief, it gets worse. It's half third [ordinal] times twenty, ½ #3 × 20.


That is so cursed.

I love it!


This is already true for just UI vs. API. It’s incredible that we weren’t willing to put the effort into building good APIs, documentation, and code for our fellow programmers, but we are willing to do it for AI.


I think this can kinda be explained by the fact that agentic AI more or less has to be given documentation in order to be useful, whereas other humans working with you can just talk to you if they need something. There's a lack of incentive in the human direction (and in a business setting that means priority goes to other stuff, unfortunately).

In theory AI can talk to you too but with current interfaces that's quite painful (and LLMs are notoriously bad at admitting they need help).


> agentic AI more or less has to be given documentation in order to be useful, whereas other humans working with you can just talk to you if they need something. ... In theory AI can talk to you too but with current interfaces that's quite painful (and LLMs are notoriously bad at admitting they need help).

Another framing: documentation is talking to the AI, in a world where AI agents won't "admit they need help" but will read documentation. After all, they process documentation fundamentally the same way they process the user's request.


I also think it makes a difference that an AI agent can read the docs very quickly, and don't typically care about formatting and other presentation-level things that humans have to care about, whereas a human isn't going to read it all, and may read very little of it. I've been at places where we invested substantial time documenting things, only to have it be glanced at maybe a couple of times before becoming outdated.

The idea of writing docs for AI (but not humans) does feel a little reflexively gross, but as Spock would say, it does seem logical


The feedback loop from potential developer users of your API is excruciatingly slow and typically not a process that an API developer would want to engage in. Recruit a bunch of developers to read the docs and try it out? See how they used it after days/weeks? Ask them what they had trouble with? Organize a hackathon? Yuck. AI, on the other hand, gives you immediate feedback as to the usability of your “UAI”. It makes something, in under a minute, and you can see what mistakes it made. After you make improvements to the docs or API itself, you can effectively wipe its memory by cleaning out the context, and see if what you did helped. It’s the difference between debugging a punchcard based computing system and one that has a fully featured repl.


Yeah, this is so true. Well designed APIs are also already almost good enough for AI. There really was always a ton of value in good API design before LLMs. Yet a lot of people still said, for varying reasons, let's just ship slop and focus elsewhere.


We are only willing to have the Llm generate it for AI. Don’t worry people are writing and editing less.

And all those tenets of building good APIs, documentation, and code are opposite the incentive of building enshittified APIs, documentation, and code.


Is there a link showing the email with the prompt?


After reading the README, the only missing thing seems to be the equivalent of Dataview from Obsidian. Will wait for something like it before considering switching.


Speaking of which, have you seen the new Bases feature in Obsidian? https://help.obsidian.md/bases

Reminiscent of Dataview.


That looks awesome!


Highly recommend this youtube channel for anyone interested in the problem solving capabilities of these birds.

https://youtu.be/A5YyTHyaNpo?si=cLj4e4heV7kiXq5v


Wow this is such a great idea. Also the controls on mobile were top notch. No issues with random zooming, text selection, weird scrolling etc. Felt like a downloaded app.


I like the final approach. What about

-def sayHi()

Or

def- sayHi()

I feel like having a minus communicates the intend of taking the declaration out of the public exports of a module.


There's some prior art here from Clojure, where defn- creates private definitions and defn public ones:

https://clojuredocs.org/clojure.core/defn-

In Clojure this isn't syntax per-se: defn- and defn are both normal identifiers and are defined in the standard library, but, still, I think it's useful precedent for helping us understand how other people have thought about the minus character.


That's clever way to think of "-". :) I'll think about that.


It might be from me being so used to it, but I do like Elixir’s `def`/`defp` second best to Rust’s `pub`


personally, i like that raku goes the other way, with exported bits of the interface explicitly tagged using `is export` (which also allows for the creation of selectably importable subsets of the module through keyed export/import with `is export(:batteries)`/`use TheModule :batteries`, e.g. for a more featureful interface with a cost not every user of the module wants to pay).

it feels more natural to me to explicitly manage what gets exported and how at a different level than the keyword used to define something. i don't dislike rust's solution per se, but if you're someone like me who still instinctually does start-of-line relative searches for definitions, suddenly `fn` and `pub fn` are separate namespaces (possibly without clear indication which has the definition i'm looking for)


Actually, a module can implement any export heuristics by supplying an EXPORT subroutine, which takes positional arguments from the `use` statement, and is expected to return a Map with the items that should be exported. For example:

    sub EXPORT() { Map.new: "&frobnicate" => &sum }
would import the core's "sum" routine, but call it "frobnicate" in the imported scope.

Note that the EXPORT sub can also be a multi, if you'd like different behaviour for different arguments.


neat! i've never needed more than i could get away with by just sneaking the base stuff into the mandatory exports and keying the rest off a single arg, but that'll be handy when i do.


For me domain model means capturing as much information about the domain you are modeling in the types and data structures you use. Most of the time that ends up meaning use Unions to make illegal states unrepresentable. For example, I have not seen a database native approach to saving union types to databases. In that case using another domain layer becomes mandatory.

For context: https://fsharpforfunandprofit.com/posts/designing-with-types...


Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: