HNHacker News
TopNewBestAskShowJobs

jfmc

238 karma · joined April 14, 2020

submissionscomments
jfmc··on Why Ruby Has Symbols
Prolog also have symbols (called "atoms"). Erlang too (influenced by Prolog).
jfmc··on Show HN: I made a puzzle game in HTML5
Feels like a flattened Rubik cube... Nice!
jfmc··on Buffereditor – Code and Text Editor for iPhone, iPad and iPad Pro
I do not understand why people can be happy with the artificial software barriers. I'm really happy with my Apple M1 but I'd never use it if I could not run Emacs and free software on it.
jfmc··on LibreOffice running natively in the browser via WebAssembly
UI is really slow. I wish that anyone takes QT or GTK backends for DOM+wasm seriously. More work should be delegated to the UI components. X-Windows was ugly... but there was a clean separation that was useful.
jfmc··on All Google Cloud product in this periodic table
Note that most of those elements are artificially created in the lab and have a very short half-life.
jfmc··on Computer scientists prove why bigger neural networks do better
> Right now, we are routinely creating neural networks that have a number of parameters more than the number of training samples. This says that the books have to be rewritten.

I also believe that this statement is weird. I have a very shallow knowledge of ML, but I can imagine that in a convolutional neural network a training sample interacts with lots of parameters. This 'one training sample <-> one parameter' correspondence seems wrong to me.

jfmc··on Ask HN: How can I make a “kid's computer” today as good as an Apple II?
I've using Raspberry Pi 400 + PyGameZero + emacs for a 8yo. I miss a good book that keeps complexity very low to give him some independence (I need to constantly supervise his steps and what he is understanding at each point).
jfmc··on Pay attention to WebAssembly
Is WASM still 32-bit based? (at least in browsers)
jfmc··on An embeddable Prolog scripting language for Go
Some Prolog systems (like Ciao Prolog https://github.com/ciao-lang/ciao/blob/master/core/lib/forei...) implement bidirectional foreign interfaces. Once you have C bindings it is easy to write bindings from Rust, C++, or any other language (that can interoperate with C). I give here some details about Ciao because this is the system I know better but it should be similar for other popular Prolog implementations.

The tradeoffs depend on the complexity of the Prolog code and your needs for performance and features: pure LP, Prolog (search+unification+cut), garbage collection, dynamic database updates, constraint domains, etc. The Ciao Prolog engine is around 300-400KB. Adding a few libraries, compiler, etc. it goes to 2MB. Naive Prolog systems can be one order of magnitude smaller at the cost of sacrificing ISO compatibility, performance, etc. Note that "performance" can be very misleading. Some Prolog programs may run particularly fast in some Prolog system and very badly in others.

jfmc··on Setting up Gmail in Doom Emacs using mbsync and mu4e
I'm very happy with mbsync and mu4e. The only drawback is that email fetching+indexing can be very slow (10 to 30 seconds), compared with the instantaneous gmail web interface. I'm not sure if this is poor configuration on my side, or some other bottlenecks (mbsync, mu indexing, IMAP protocol).
jfmc··on Facebook Renames to Meta
A Facebook-controlled metaverse, rising gas prices... it is only a matter of time that humans ends up being used as batteries.
jfmc··on Multicomputation as a General Paradigm for Theoretical Science
Has this gone through any peer review process?
jfmc··on Social media influencer/model created from AI lands 100 sponsorships
I agree with this interpretation. The craft can be copied and learn, but da Vinci (as any human being) was unique and unrepeatable. Perhaps the root of all this issue is how East and West treat individualism vs collectivism.
jfmc··on Htmlq: like jq, but for html
AFAIK, this was first proposed and implemented in Ciao Prolog back in late 90s (modern versions here: https://ciao-lang.org/ciao/build/doc/ciao.html/html.html). It was way before Python was popular and JavaScript ever existed.
jfmc··on Gnome Shell on the Apple M1, bare metal
Modern society tends to infantilize people.

(Congrats to Alyssa and everyone making this possible!)

jfmc··on macOS in Svelte
I guess that it is fast because modern browsers are fast, implement good algorithms to repaint just what need to be repainted, and delegate a lot of work to the GPU. Exactly like the Quartz compositor engine.
jfmc··on GitHub’s engineering team has moved to Codespaces
I'd really appreciate if github provides a way to opt-out "deep" analytics (e.g., train copilot on my open source code), even if this reduces the amount of features that they provide for free.
jfmc··on GitHub Copilot is ‘unacceptable and unjust,’ says Free Software Foundation
> Because its basically impossible to completely and accurately attribute the origin of all your knowledge. And it is impossible to verify that the source you think is the originator of your knowledge is the original creator of that knowledge. Odds are they learned it from someone else. It really doesn't matter, at all.

This is a fallacy.

jfmc··on GitHub Copilot is ‘unacceptable and unjust,’ says Free Software Foundation
> Open source would be ruined if it were easier to build upon past works with lower barriers to research and licensing?

Why is recognizing someone else's work so much pain?

The whole point is that copilot forgets who wrote the code and who is the author of the whole idea (unfortunately few programmers write it but sometimes it is there is you are patient enough to read documentation). Thus a copilot's user cannot know who deserves the credit.

This whole discussion is like if you train an AI to pick apples from a supermarket and leave them on the street waiting for someone else to take them home, and pretending that nobody is stealing anything.

jfmc··on GitHub Copilot is ‘unacceptable and unjust,’ says Free Software Foundation
How do you separate the implementation from the algorithm/idea? I do not believe that you'd be fine if you invest a significant period of your life on some idea that someone else copies without at least some credit (i.e., replacing your name by theirs?). Nobody works like this unless your time worths nothing or your idea is trivial. Open source would be ruined if everyone believed that copying smart code without recognizing the authors is ethical.

Would this kind of copying be fine in software and not in other scientific papers or other industrial processes? Would it be fine if I train copilot on a patent database and start creating new patents (at a rate in which is would be unpractical to determine that it is regurgitating prior art)?

jfmc··on GitHub Copilot is ‘unacceptable and unjust,’ says Free Software Foundation
From my point of view, the 'clean' part of 'cleanroom' means erasing all traceability to the original product. Not seeing the code is a good way to do that. But if you are a machine it is easy unsee whatever you want (e.g., identifiers, copyright forms, authors). Copilot (or any other system that learns from code) have one of these three evolution paths here to move forward: - includes some sort of traceability (not usable for laundering then) - becomes very good at "unseeing" the origin - do not learn from code but rediscovers algorithms (without recognition to humans)
jfmc··on GitHub Copilot is ‘unacceptable and unjust,’ says Free Software Foundation
That is NOT the point. You are allowed to learn whatever you want. What is horribly unethical is not recognizing the life-long effort of the people who wrote the original code and designed the original algorithms. Programmers are not machines. The human *knows* the open source that she/he is reading and she/he can acknowledge it in their own code (either public or private).

What is the copyright of code written with copilot? Copilot learns the code and forgets authors.

Would you agree if I take your open source project, learn piece by piece, rewrite it from scratch and put my name on it without a single word about your work?

jfmc··on GitHub Copilot is ‘unacceptable and unjust,’ says Free Software Foundation
Copilot is the perfect machine for clean room design and license/copyright laundering. It is unethical and unfair to the open source community.

I do not care if it breaks code to bits and recomposes them again regurgitated by <YOUR-LATEST-AI-TECHNIQUE-HERE> in a way that is untraceable: it would not work without learning from our open source code. Code produced by this method should be automatically licensed under the most restrictive license of its input used for learning.

jfmc··on The “bugs are 100x more expensive to fix in production” study might not exist
I guess that 100x is just an arbitrary number that means 'orders of magnitude'. If production means going to Pluto on a super expensive space mission, and the bug ruins all the scientific experiments, and your future funding depends on the success of the mission, I'd say that the cost tends to infinity. If the product requires some kind of polishing that only interaction with real users can provide, then the cost of bugs at production be even negative (spend less time on the requirement side, etc.).
jfmc··on GitHub Copilot is not infringing copyright
Modern AI seems more like machine-assisted collage (or pictures, code, text, etc.) than anything else. Someone (of some other algorithm) needs to be added to ensure that the whole thing makes sense. The big problem here is that when an artist creates a collage he/she knows the sources. Here provenance is lost.

[1] Collage (/kəˈlɑːʒ/, from the French: coller, "to glue" or "to stick together";[1]) is a technique of art creation, primarily used in the visual arts, but in music too, by which art results from an assemblage of different forms, thus creating a new whole.

jfmc··on Calculus for Seven Year Olds [pdf]
During pandemic lockdowns I had the opportunity to teach my 7yo son maths at home. It does not work for all kids, but he showed a very strong interest in symbolic manipulation. School overemphasizes arithmetic and arithmetic algorithms ad infinitum (extremely tedious and boring!). Our work plan is simple: a problem each day (together when the concepts are new), immediate reward after he finishes, and increase difficulty once he is ready. After one year, we have just started trigonometric equations at home, while they are still working on simple multiplications at school.

In the same way that some kids are good at sports, drawing, music, foreign languages, or playing videogames, some of them are very good managing abstractions. Those would be very happy learning calculus or other advanced mathematics, just for fun!

jfmc··on The Mercury functional programming language
Things gets better if you try a couple of hours rather than minutes. If you've never been exposed to the logic programming paradigm this is completely understandable. Isn't it?
jfmc··on The Mercury functional programming language
Another difference between Prolog and Mercury is that Mercury lacks 'real' unification. Predicates must be moded (they must be compiled for some particular variable instantiation states). The compiler reorders literals in a way that free variables do not need to be represented in memory. Almost all the 'logical' side of the language is discarded statically at compile-time. The first time that I tried it (+ 20 years ago!) executables were blazingly fast! The bad side (at the time) was poor flexibility and very slow compilation time (compared with Prolog).
jfmc··on The Mercury functional programming language
The title should be corrected to "The Mercury functional logic programming language".
← PreviousPage 2 of 2