skysight-inc/HackerNews huggingface dataset:
This desperately needs the Walmart treatment of JET.com’s teams past acquisition :)
I see a comment saying it used "basic React state code". So its output is based on React as well as Supabase? Or might it uses different base technologies depending on what it thinks is best for what it's building?
It seems that this kind of application can really change how the tech industry can evolve down the line. Maybe we will more quickly converge on tech stacks if everyone can test new one's out "within a week".
Mark Twain wrote about this phenomenon in 1883 https://courses.lumenlearning.com/suny-eng-102-college-writi...

I've found it to be generally true, especially for activities one finds leisurely. For instance, understanding a game deeply enough to create a hyper-optimized "min-maxed" strategy ends up stripping the joy from it.
This refers to the fact that ChatGPT generated version is missing some characters that are used in the original example. Namely, [looks like HN does not allow me to paste unicode characters, but I am referring to the block characters] can be seen in their version, but cannot be seen in the ChatGPT generated version. However, it very well might be that it is simply because I didn't include all the necessary context.

Discrediting the entire output because a few missing characters would be very pedantic.

Otherwise, the output is identical as far as I can tell by looking at it.
Check out "The Fool" (2014):

https://www.imdb.com/title/tt3560686/
Or – some day when this runs on-device – a "smart preload" feature from Google Chrome. On slow connections, hallucinate a wireframe of a heavy website until it loads.
I think at Kings Cross also they have a tendency to not announce platforms until quite soon before departure.
Edward Luper's 36 Views of the BT Tower
I felt that Superhuman was super good at making investors and VCs enthused, but that’s not product market fit.

I guess it’s VC product fit. Or VC salesman fit or something.

As the other comment in this thread asks “the proof is in the pudding, does Superhuman have product market fit today?”
Develyn - Open-source AI Agent for Developer-Relations
No worries, and thanks!

The relevance to the argument at hand, I think, I was just stating an anecdote to show a scale of sorts. I think talking about the level of zealotry is relevant and kind of interesting.
>Seems like we could render all code open source.

That's not how copyright and licensing works.

You could already break the law and open yourself up to lawsuits and prosecution by stealing intellectual property and violating its owners rights before there were LLMs. They just make it more convenient, not less illegal.
Ask HN: GitHub Copilot Alternatives
I'm currently using GitHub Copilot, but I often see problems interpreting commands and limitations in responses when compared to more advanced models (Claude/ChatGTP 4).

I've searched a few times, but I've never found any references to the implemented version (model).

So, I ask: what development tools are you using? Copilot, or are there better alternatives?

I use it in conjunction with IntellIJ.
That's why having good test suites and tools are more important than ever.
Things that confuse me about the current AI market
My problem with this is that it show's almost no forethought by those creating the app. If your goal is first an iOS app that you will develop into an Android app. Then why go this route? It doesn't solve any of the bigger cross platform problems, is a far less mature ecosystem, and will seemingly only paper over the basic needs - but in-depth development will become an issue. But if you're only porting an "initial app" and expecting the next iteration to be either native or cross platform, then start like that rather than waste 6-12 months on transposing the code to a different language.

To me this presents as something a business person with very little knowledge of app development will be drawn to. But the long term drawbacks of this approach far outweigh the short term gains from trying to quickly port an existing iOS app to Android.

Sure there's more money in the Western app ecosystem for iOS apps, but that doesn't mean your app should inherently cater for iOS first. In fact that's a very first world and reductive approach, when there's billion's of people that don't interact in the same way.
I find LLMs good at these kind of tasks, also converting between CSV to JSON for example (although you have to remind it not to be lazy and do the whole file)
You are correct that JNA's C++ integration – while possible – is not exactly seamless. It is an area that we are actively researching better solutions for.
The maximum unfair dismissal compensatory award (in the UK) is £105,707. Imagine if the maximum you had to pay if you stole from or defrauded your employer was £100k ...

The legislation tends to protect the paper entity 'the corporation' rather than the living breathing human.
Using an LLM (or any technique) to decompile proprietary code is not clean room design. Declaring the results "open source" is deception and theft, which undermines the free open source software movement.
So the purpose of the website wasn't clear to you, you then figured it out, decided to write an article about it, but didn't explain to the reader what the website actually is?
It's because the author miscopy-pasted the original code: those "â–‘â–’â–“â–ˆ" at the end of the O5 string are supposed to be the block characters. E.g. "â–‘" in Windows-1252 [0] is 0xE2 0x96 0xE2 which, in UTF-8, exactly the encoding for U+2592 MEDIUM SHADE [1].

[0] https://en.wikipedia.org/wiki/Windows-1252#Character_set

[1] https://www.compart.com/en/unicode/U+2592
I don't think the cell phone localization is here to blame.

The wrong sentence doesn't even make sense.
It does seem that the unminified code is very close to the original. In some cases ChatGPT even did its own refactoring in addition to the unminification:

// ORIGINAL:
j.useEffect(() => {
function r() {
n({ height: window.innerHeight, width: window.innerWidth });
}
if (typeof window < "u") return n({ height: window.innerHeight, width: window.innerWidth }), window.addEventListener("resize", r), () => window.removeEventListener("resize", r);
}, []),

// UNMINIFIED:
useEffect(() => {
const handleResize = () => {
setSize({ height: window.innerHeight, width: window.innerWidth });
};

// Initial size setting
handleResize();

window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
};
}, []);

Note that the original code doesn't call `handleResize` immediately, but have its contents inlined instead. (Probably the minifier did the actual inlining.) The only real difference here is a missing `if (typeof window < "u")` condition.
Why the answers to these questions are not the same as if C code was calling other C code?
Yup. As if there is no wealth of organizational knowledge and a particular first-party language to address this exact problem.
>The storage problem is always handwaved away

It's the exact opposite.

I actually provided a link to a model which explicitly calculated required storage using real production data.

Meanwhile, you said "16 hours! The sun doesn't shine at night!" and handwaved away the existence of wind turbines.
Show HN: Affordable, Simple, Privacy Friendly Web Analytics
Hey HN!

This project started out as an internal tool for my other websites because I didn't like the options available. It felt like something was either too complicated, expensive or had the features I wanted locked away under higher tiers alongside other features I didn't need.

After using my tool for a while I figured why not see if other people would like to use it too?

The pricing model is based on traffic/events only, every feature is available no matter what paid plan you're on. This will always be true. My philosophy is to only charge more for a feature if it adds more to my running costs.

There's a free lifetime tier (no card required) so feel free to try it and let me know your thoughts! Always looking to build upon what I have here and make it something others get value from.
Systemic, possibly. Dangerous? Doesn't look like it
I hope, they are not getting ready to do a Rapportive.
Thanks for your nice comment.

Yes it's definitely fun to build one and use that free energy from the sun.

I was particularly happy to eat my first solar gratin :-)
WTF this is really weird and doesn't inspire confidence at all
I don't disagree, it's an interesting topic to try and understand what makes people so radical and why are they so adamant in being such.

At the same time, it's very disheartening for me how so many people wouldn't use something just because there are zealots who can't shut up about it. :(
IMO semantic “intent preservation” is an application-level concern that can affect which CRDTs are chosen, but it’s irrespective of whether the underlying data structure is a CRDT. The rules are that state merges must be commutative, associative and idempotent; if blockchains fulfill all three criteria, I don’t see why they wouldn’t count.
Farewell Pandas, and thanks for all the fish
you could tell, but did you care?
There‘s the root cause of an incident and systemic problems that escalated it to a tragic outcome. The systemic problems are the culture. The root cause is incorrect localization, because the causal link is clear and in the chain of events it comes earlier than culture-specific behavior. So yes, UX killed them.
Holy shit yes! Would love to see these asked
Juicero feels like a failure mode of grindset.
It cannot route HDMI, partly because HDMI is built upon antiquated principles and doesn't really fit besides more modern protocol designs. USB4 would need to get entirely redesigned for tunneling native HDMI.

Having a DP to HDMI converter on one end though, that's easy.
But the reply is so much more fun if we consider it part of the military.
A special keyword like HAVING prevents erros by typing in the wrong line.

How is OR done with this WHERES?
DPP-4 drugs are less effective also on other metrics. Would be far more interesting to see the comparison of SGLT-2 inhibitors vs GLP-1 agonists.

For some reason GLP-1 drugs are not that popular in Korea (and still not prescribed just for the weight loss), so that may explain why these researchers haven't done that.
Brit teachers are getting AI sidekicks to help with marking and lesson plans
Anyone? No, probably not. Some enterprising company in Shenzhen, who would sell the thing for $.25 a piece due to fierce competition driving prices down to cost of materials? Now that's more likely.
>This occurred because in 2021 the HDMI Forum restricted public access to its specifications

Oh, okay. Fuck the HDMI forum, then.
He also told it to reimplement from JavaScript to TypeScript.

I would guess if he just told it to rename the variables and method first, it would have been closer to the original.
https://news.ycombinator.com/item?id=41386939

A comment there has a link to a video of what seems to be the final straw.
Without imaginary property, AMD would have signed a similar contract - they would rather focus on their own products rather than reverse engineering the HDMI standards to create their own implementation. At which point AMD would be in the same position, unable to reverse engineer HDMI or adopt solutions from other companies who did.

Imaginary property laws most certainly encourage and facilitate monopolies and collusion, but they are not necessary to the dynamic. Such laws are essentially just the norms of business that companies would be insisting on from other businesses anyway, for which it's much more lucrative to assent and go along with rather than attempt to defect and go against them.

Another example of this effect is the DMCA - the tech giants aren't merely following its process verbatim, but rather have used it as basis for their own takedown processes with electively expanded scope - eg why we see takedown notices pertaining to "circumvention" code, or the complete unaccountability of Content ID. Google and Microsoft aren't significantly hurting themselves by extralegally shutting down a tiny contingent of their customers, meanwhile the goodwill they garner from other corporations (and possible legal expenses they save) is immense. The loser is of course individual freedom.
Merch fees and card charges for points schemes you never use. The interchange is bank2bank, all of it filters back into 8c extra for the coffee in many economies. There's no accountability for the cost/price difference here. How do we know what amount went in interchange and what swept up into the profit account?

Also banks package card services for others. You can't just open a bank because you're filthy rich like Apple, you have to pay a bank to do card stuff for you at least for a while. Every Qantas money card I've had came with t&c which showed a bank was in the loop. For free? I don't think so.

Arbitrage I'm thinking the home investor doing off market purchase thinking it's some other day trading schmo but I'm unconvinced the bank cannot play inside and do 10,000 share buys to sell pricey in 2 share lots plus the trade fee thank you. So per trade fees plus forex plus some arbitrage would make a nice snack one million times over.

But more generally don't merchant banks make money in large amounts by doing this for economies with a need for iron and a lot of potatoes but without iron producers willing to sell steel for spuds? Banks are the one who can quote a steel to potato interchange rate that makes everyone happy, bank included. McDonald's Russia wants to buy Idaho potatoes and you've got a Turkish affiliate who can do roubles to potatoes.. deal done. Tasty snack for everyone.

It costs money to store gold. Mattress companies charge shedloads to let you store your gold under their mattresses.

It costs money to make money. Far better to put it out to somebody who knows how to make money.
It might just be mutational load due to people having kids much older.
Let's take the thousands of pages of English claim. Only the latest C++23 standard barely pushes over 2000 pages. The core language is described in about 500 pages, while the rest is taken up by the specification of the library.

* First of all, having a specification and an ISO standard is good, because it doesn't allow powerful actors like e.g. Google to take the language in whichever direction they want and in a huge ecosystem of compilers, platforms, SoCs, etc gives one a certain amount of certainty on what to expect. But fine, let's talk again in 10 or 20 years and see how non-standardised Rust's doing.

* Second of all, no developer will ever learn the language from the standard document. This is something for compiler writers or developers that need to understand the standardese in very specific cases.
A regular developer will learn based on a series of books (such as Josuttis, Meyers and Stroustrup - personally I also like Bancila), then check their assumptions on cppreference!
What the experts do is irrelevant for the average developer, because the great majority of us aren't experts in a language, nor do we want to be. It's a tool, not a purpose in life.

* Thirdly, one doesn't have to learn the language comprehensively to be productive, indeed this is not how many developers learn, because they must often learn several languages and therefore satisfice. Yes, there's developers that prefer to go deep, like me, but based on what I read online and have seen in real life, that's the exception. And even I don't go as deep as learning the standard by heart, that's a waste of time when there's so much actually useful domain knowledge to acquire.

That being said, C++ is growing too much and too fast and is too complex. At some point I'd like to be "done" with learning the same language, but Rust and C++ are like a never-ending journey. That's why many developers wisely skip both and why I prefer to invest my time in Python and Go instead of CPP-but-with-memory-safety.
This post basically says that I don't need to document my code anymore. No more comments, they can be generated automatically. Hurray!
It can’t really compensate for missing variable and function names, not to mention comments.
Possible that this is the mistake.

However, I don't think I miscopied the original code.

https://reactive.network/assets/index-8b4ef4ac.js

If you look for `oahkbdpqwmZO0QLCJUYXzcvunxrjft` in the output, you should see that those characters appear exactly like that. Maybe an issue with encoding of the script file?
Meanwhile there's the Disney lawsuit about the woman dying from allergy in a restaurant.
Doesn't it count as 'clean room' reverse engineering - or alternatively, we could develop an LLM that's trained on the outputs and side-effects of any given function, and learns to reproduce the source code from that.

Or, going back to the original idea, while the source code produced in such a way might be illegal, it's very likely 'clean' enough to train an LLM on it to be able to help in reproducing such an application.
As I’ve gained more experience I feel like this advice is just “edgy” and no real engineer would willingly pick a solution that might not scale if things pick up. HTML and JQuery starts nice but add enough complexity and tell me you didn’t just hand roll your own framework. Now you’ll need documentation in order to onboard anyone if you are lucky enough to be in a position to expand.

The shiny new framework can create a static site and a true web app and is likely well documented with examples. The tradeoff is a subset of users have longer load times.
Alexandre de Moares is the president of the Brazilian Supreme Court, a selected group containing the most powerful individuals in the country. They are named by the president and once they are done, they never leave the position until they reach their compulsory retirement at the age of 75 years old.

They form the highest court of law in Brazil for constitutional issues and its rulings cannot be appealed.
> it’s all they can do

this overlooks how they do it. we don't really know. it might be logical reasoning, it might be a very efficient content addressable human-knowledge-in-a-blob-of-numbers lookup table... it doesn't matter if they work, which they do, sometimes scarily well. dismissing their abilities because they 'don't reason' is missing the forest for the trees in that they'd be capable of reasoning if they were able to run sat solvers on their output mid generation.
This kind of perverse incentive driven behaviour is rife in large established businesses. At every stage you get asked “Do you want to spend money and effort solving this problem for the customer, at the cost of substantial revenue, or do you do nothing except shrug and make an excuse, and watch the money roll in?” If you aren’t deeply invested in the long term quality of the company there’s not a lot of personal incentive to do get former.
> It's caused a lot of trouble so far and for what?

The "for what" seems pretty obvious, no? It's the same reason you would use Rust over C in any other project. Memory safety and more modern PL features.
I left my Kleenex next to the Xerox.
> JS minification is fairly mechanical and comparably simple, so the inversion should be relatively easy.

Just because a task is simple doesn't mean its inverse need be. Examples:

- multiplication / prime factorization
- deriving / integrating
- remembering the past / predicting the future

Code unobfuscation is clearly one of those difficult inverse problems, as it can be easily exacerbated by any of the following problems:

- bugs
- unused or irrelevant routines
- incorrect implementations that incidentally give the right results

In that sense, it would be fortunate if chatGPT could give decent results at unobfuscating code, as there is no a priori expectation that it should be able to do so. It's good that you've also checked chatGPT's code unobfuscation capabilities on a more difficult problem, but I think you've only discovered an upper limit. I wouldn't consider the example in the OP to be trivial.
Would you mind clarifying which one you found so helpful? The parent commenter mentioned two books
While the core of your Skip code and resources exists in one or more Swift Package Manager module (which will be transpiled into corresponding Gradle modules), the scaffolding of your actual app is still an Xcode project on the iOS side, and an Android Studio/Gradle project on the Android side.

When you create a new project with `skip init`, it will create the two projects for you, along with fastlane configurations for each of the projects. From there, you'll proceed with all the deployment-specific stuff (screenshots, preview videos, metadata, content ratings, etc.) as per each individual store's guidelines.

Each side of the project is always an individually valid project, following the corresponding platform's recommended conventions. There aren't any bespoke plist formats or any Skip-specific manifests to deal with, with the exception of one small central "Skip.env" file, that contains basic shared information like the app name and version number.
The most egregious ones were ubiquitous signs on the London Underground stating that travellers should take care on the escalators; there were 111 accidents on the escalators last year, after all.

There are over 4 million tube journeys a day[1].

[1]: https://tfl.gov.uk/info-for/media/press-releases/2023/novemb...
This is probably a simple find-and-replace task, so I wouldn't bother with proper PDF parsing or libraries. I would:

1. Use pdftk to uncompress it: pdftk input.pdf output uncompressed.pdf uncompress

2. Look at the PDF code (it's text based) to find the image insertion code.

3. Replace all instances of the image insertion code with strings of spaces the same length (there's a table of object byte offsets at the end that you don't want to mess up).

4. Use pdftk to compress it again: pdftk edited.pdf output output.pdf compress

I have a script that does this to remove pen strokes of particular colours so I can e.g. strip out marking rubric on test solutions written on a tablet.

Get the PDF 1.7 spec from https://pdfa.org/resource/pdf-specification-archive/. You're looking for the "Do" operator invoking a named image object defined elsewhere with "/Subtype /Image". See section 4.8, particularly the example on p343. Or, if it's badly done, it might instead be an inline image using the "BI" operator (a bit later in the same section).
If you name fields that way, but accountId, createDate may not be meaningless in the context you are looking at.
It is true that compilation and minification are both code transformations (it's a correct reduction [1]), but this doesn't seem a very useful observation in this discussion. In the end, everything you do to something is an operation. But that's not very workable.

In practice, compilation is often (not always, agreed!) from a language A to a lower level language B such that the runtime for language A can't run language B or vice-versa, if language A has a runtime at all. Minification is always from language A to the same language A.

The implication is that in practice, deminification is not the same exercise as decompilation. You can even want to run a deminification phase after a decompilation phase, using two separate tools, because one tool will be good at translating back, and the other will be good at pretty printing.

[1] https://en.wikipedia.org/wiki/Reductionism
it is also pretty good at decompiling - try feeding it the output of https://godbolt.org/
Locking in the model numbers for me is particularly icky. They are leveraging the Android and therefore Linux and open source communities efforts to make this custom display which would have cost them an arm and a leg to have custom built with half the features - then turning around and sticking two fingers up at those communities.
Can't help, those old sites looking very colorful and characterful. Feels personal. Very nice memories.
Good luck verifying that.
Better Hoover it up!
No, but both Arinc 825 and OBD2 are based on CAN, so at very small expense some of them could have.
£90 won't get you wasted in a restaurant in London.