frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Superman copy found in mum's attic is most valuable comic ever at $9.12M

https://www.bbc.com/news/articles/c8e9rp0knj6o
211•1659447091•5h ago•85 comments

Personal blogs are back, should niche blogs be next?

https://disassociated.com/personal-blogs-back-niche-blogs-next/
323•gnabgib•12h ago•203 comments

Kodak Ran a Secret Nuclear Device in Its Basement for Decades

https://www.popularmechanics.com/science/energy/a69147321/kodak-film-nuclear-reactor/
64•cainxinth•6d ago•7 comments

Helping Valve to power up Steam devices

https://www.igalia.com/2025/11/helpingvalve.html
611•TingPing•17h ago•196 comments

The Connectivity Standards Alliance Announces Zigbee 4.0 and Suzi

https://csa-iot.org/newsroom/the-connectivity-standards-alliance-announces-zigbee-4-0-and-suzi-em...
48•paulatreides•3d ago•24 comments

Roblox CEO Makes a Fool of Himself in Car-Crash Interview

https://kotaku.com/roblox-new-york-times-interview-baszucki-2000646174
4•tobr•1h ago•0 comments

Samsung's 60% DRAM price hike signals a new phase of global memory tightening

https://www.buysellram.com/blog/samsungs-memory-price-surge-sends-shockwaves-through-the-global-d...
275•redohmy•1w ago•228 comments

Show HN: Wealthfolio 2.0- Open source investment tracker. Now Mobile and Docker

https://wealthfolio.app/?v=2.0
526•a-fadil•18h ago•174 comments

Moss Survives 9 Months in Space Vacuum

https://scienceclock.com/moss-survives-9-months-in-space-vacuum/
74•ashishgupta2209•6h ago•33 comments

Single-Celled Marine Organisms Resulted in an Influential Illustrated Book

https://lithub.com/how-the-discovery-of-single-celled-marine-organisms-resulted-in-one-of-the-mos...
6•PaulHoule•1w ago•0 comments

How I learned Vulkan and wrote a small game engine with it (2024)

https://edw.is/learning-vulkan/
98•jakogut•11h ago•51 comments

Sharper MRI scans may be on horizon thanks to new physics-based model

https://news.rice.edu/news/2025/sharper-mri-scans-may-be-horizon-thanks-new-physics-based-model
69•hhs•10h ago•17 comments

Event Sourcing in Go: From Zero to Production

https://skoredin.pro/blog/golang/event-sourcing-go
12•tdom•4d ago•1 comments

We should all be using dependency cooldowns

https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns
360•todsacerdoti•19h ago•215 comments

Discontinuation of ARM Notebook with Snapdragon X Elite SoC

https://www.tuxedocomputers.com/en/Discontinuation-of-ARM-notebooks-with-Snapdragon-X-Elite-SoC.t...
131•Venn1•15h ago•53 comments

Self-hosting a NAT Gateway

https://www.awsistoohard.com/blog/self-hosting-nat-gateway
127•veryrealsid•4d ago•74 comments

LAPD helicopter tracker with real-time operating costs

https://lapdhelicoptertracker.com/
157•polalavik•12h ago•176 comments

You can make PS2 games in JavaScript

https://jslegenddev.substack.com/p/you-can-now-make-ps2-games-in-javascript
267•tosh•18h ago•65 comments

Automating rootless Docker host updates with Ansible

https://du.nkel.dev/blog/2025-11-15_docker-rootless-ansible/
25•Helmut10001•1w ago•0 comments

Childhood Friends, Not Moms, Shape Attachment Styles Most

https://nautil.us/childhood-friends-not-moms-shape-attachment-styles-most-1247316/
202•dnetesn•1w ago•71 comments

Pixar: The Early Days A never-before-seen 1996 interview

https://stevejobsarchive.com/stories/pixar-early-days
120•sanj•14h ago•9 comments

Shop Sans is a typeface for curved text paths

https://www.futurefonts.com/hex/shop-sans
166•tobr•1w ago•41 comments

Homeschooling hits record numbers

https://reason.com/2025/11/19/homeschooling-hits-record-numbers/
263•bilsbie•1d ago•705 comments

Concrete Shipbuilding – Argentina

https://thecretefleet.com/blog/f/concrete-shipbuilding-–-argentina
10•surprisetalk•5d ago•3 comments

Make product worse, get money

https://dynomight.net/worse/
101•zdw•19h ago•104 comments

Solving Fizz Buzz with Cosines

https://susam.net/fizz-buzz-with-cosines.html
159•hprotagonist•17h ago•48 comments

Arduino Terms of Service and Privacy Policy update: setting the record straight

https://blog.arduino.cc/2025/11/21/the-arduino-terms-of-service-and-privacy-policy-update-setting...
58•manchoz•13h ago•46 comments

Building a Durable Execution Engine with SQLite

https://www.morling.dev/blog/building-durable-execution-engine-with-sqlite/
139•ingve•1d ago•45 comments

3D printing with unconventional vase mode

https://vorpal.se/posts/2025/jun/23/3d-printing-with-unconventional-vase-mode/
46•dgroshev•11h ago•13 comments

XBMC 4.0 for the Original Xbox

https://www.xbox-scene.info/articles/announcing-xbmc-40-for-the-original-xbox-r64/
158•zdw•19h ago•83 comments
Open in hackernews

How to Average in Prolog (2017)

https://storytotell.org/how-to-average-in-prolog
72•todsacerdoti•6mo ago

Comments

danilafe•6mo ago
This is a strange article to me. I've not seen any class that teaches Prolog place these constraints (use recursion / don't add new predicates) or even accidentally have the outcome of "making prolog look tedious". What's the joke here?

That aside, I wonder if getting the reverse solution (sum(?, 10)) is better served by the straightforward or the tedious approach. I suspect both would work just the same, but I'd be curious if anyone knows otherwise.

7thaccount•6mo ago
I found the article to be hilarious.

It's existence obviously means some professor didn't allow them to use the standard library and they tongue in cheek show how irritating that is.

I'm sure it's possible they made it up, but we had similar restrictions where I could use an Arduino for my engineering Senior Design Project in college, but no Arduino or module libraries - just our own C. We passed, but barely. It also was weird as it didn't match how normal people would solve the problem.

Jtsummers•6mo ago
Yeah, this line made it click:

> Now this is starting to look like Professor of Programming Languages code!

A lot of tier 2/3 CS schools with programming language courses (a survey of multiple languages across various paradigms) teach Prolog this way (and I've seen some fantastically terrible examples of Lisp code coming out of those same courses). It's unfortunate because, at these schools, this is often the only formal course where students branch out of C/Java/C++/C#/Python/JS (and they may only get 2-3 of those over the rest of their courses). It leaves the students with a gross misunderstanding of the languages and dread when they see them again.

Blackthorn•6mo ago
There's nothing wrong with teaching like that. If the class is supposed to teach you something that isn't just "use the stdlib", then it makes sense to ban it.
7thaccount•6mo ago
I'm guessing the author is aware and just venting. It doesn't make it less frustrating though. It's almost like someone asking you to dig a hole with chopsticks.
seba_dos1•6mo ago
> It also was weird as it didn't match how normal people would solve the problem.

If I can solve a problem by building from preexisting LEGO blocks then I'll probably do that, but it wouldn't be a valuable learning exercise. Students aren't being given problems in need of effective solution, these problems are tools to facilitate understanding.

What you described could be pointless if it made you work on reimplementing trivial stuff that you'd already mastered long time ago instead of focusing on actual problem. Writing your 100th hashmap implementation or yet another I2C driver isn't particularly valuable. Since you mentioned "barely passing", I don't think that was the case though.

7thaccount•6mo ago
It's one of those projects where you never have enough time throughout the year. Coding what we did from scratch wasn't very easy either. I could now probably do the coding in a weekend with the right library code. You learn something either way I guess.
yuye•6mo ago
>I'm sure it's possible they made it up, but we had similar restrictions where I could use an Arduino for my engineering Senior Design Project in college, but no Arduino or module libraries - just our own C.

When I started compsci, it was the first year of a all-new curriculum for CompSci.

Literally the first week: We had to program an Arduino to play a song on a speaker by toggling GPIO, within a week. No assembly or any of that high-level mumbo-jumbo. We had to read the datasheet, look at the instructions and write the hex representation for each instruction in a txt file.

We had a "linker" tool: It took a basic bootloader (containing some helper functions for GPIO), turned our hex-txt file into actual binary, then just copies that to a set address. The bootloader did nothing more than init the GPIO pins and jump into our code.

We were given the locations of where these helper functions lived, nothing else.

It was to give a quick and intimate understanding of how CPUs actually work and why we use compilers and stuff. It worked really well, but it was so much of a pain that they changed it to allow students to use asm a year or two after.

tengwar2•6mo ago
<Four Yorkshiremen accent>

You were lucky! We had to design and build the computer out of Z80-family components first before we could play around in binary.

There was actually a reason - this was back in '83/84 in a physics lab, and the idea was to be able to build your own logging / control device. PCs existed, but were terribly expensive.

floxy•6mo ago
>getting the reverse solution (sum(?, 10))

Doing an "all modes" predicate:

  sum_list(List,Sum)
...where...

  sum_list([1,2,3], 6)
...is "True" as expected would probably be a pretty interesting exercise if you wanted to be able to get all of the lists. You'd probably need to do an "enumerate the rationals" type of thing, since you need to go to infinity in a couple of different directions at the same time. That is, you can't do nested loops/recursing:

   for(x=-∞; x<∞; ++x) {
       for(y=-∞; y<∞; ++y) {
i.e.

   sum_list([],0).
   sum_list([L|Ls],BigSum) :- sum_list(Ls, LittleSum), add(L,LittleSum,BigSum).
...with an all-modes "add/3". Since there are an infinite supply of pairs that add up to, say 10:

       ⋮
    [12,-2]
    [11,-1]
    [10, 0]
    [ 9, 1]
    [ 8, 2]
       ⋮
    [ 0,10]
    [-1,11]
    [-2,12]
       ⋮
...and you can also go to arbitrary list lengths:

  [10]
  [1,9]
  [1,1,8]
  [1,1,1,7]
   ⋮
  [1,1,1,1,1,1,1,1,1,1]
   ⋮
  [0,1,1,1,1,1,1,1,1,1,1]
  [1,0,1,1,1,1,1,1,1,1,1]
   ⋮
  [1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]
   ⋮
  [-100,-99,-98,...,-12,-11,-9,-8,...,0,1,2,3,4,5,6,7,8,9,10,11,...,99,100]
...your life probably gets easier if you limit the domain to positive integers (without zero) since then the list length doesn't diverge. Then a declarative looking solution probably just has a all-modes equivalent to "sort" somewhere within? Certainly interesting to think about.

https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/r...

https://prolog-lang.org/ImplementersForum/0103-modes.html

https://www.swi-prolog.org/pldoc/man?predicate=permutation%2...

ebolyen•6mo ago
It's been a long time since I took a class like this, but I definitely had a similar experience to the author.

Ideas like fold and map where _never_ mentioned in lisp (to exaggerate, every function had to have the recursive implementation with 5 state variables and then a simpler form for the initial call), at no point did higher-order functions or closures make an appearance while rotating a list by 1 and then 2 positions.

The treatment of Prolog was somehow worse. Often the code only made any sense once you reversed what the lecturer was saying, realizing the arrow meant "X given Y" not "X implies Y", at which point, if you could imagine the variables ran "backwards" (unification was not explained) the outcome might start to seem _possible_. I expect the lecturer was as baffled by their presentation as we were.

In general, it left the rest of the class believing quite strongly that languages other than Java were impossible to use and generally a bad move. I may have been relatively bitter in the course evaluation by the end.

Y_Y•6mo ago
Thie irony is palpable. I had the (misfortune) of only being (mis)taught procedural languages by professors who thought computers were big calculators who could never be understood, but could be bent to your will by writing more code and maybe by getting a weird grad student to help.

Patterns might appear to the enlighted on the zeroth or first instance, but even the mortal must notice them after several goes. The magic of lisp is that if you notice yourself doing anything more than once you can go ahead and abstract it out.

Not everything needs to be lifted to functional valhalla of course, but not factoring out e.g. map and filter requires (imho) a wilful ignorance of the sort that no teacher should countenance. I think it's bad professional practise, bad pedagogy, and a bad time overall. I will die on this hill.

eru•6mo ago
If you are only used to Java (the bad, old, ancient version), you don't even notice that you can factor out map and filter.
turtletontine•6mo ago
Having been on the other side of this (teaching undergrads), I do get why courses would be structured like this. If you actually try explaining multiple things, lots of students freeze up and absorb nothing. Certainly there’s a few motivated and curious students who are three lectures ahead of you, but if you design the class for them, 60% of students will just fail.

So I get why a professor wouldn’t jump in with maps and folds. First, you need to make students solve a simple problem, then another. At the third problem, they might start to notice a pattern - that’s when you say gee your right there must be a better way to do this, and introduce maps and folds. The top 10% of the class will have been rolling their eyes the whole time, thinking well duh this is so boring. But most students seem to need their hand held through this whole process. And today, of course, most students are probably just having LLMs do their homework and REALLY learn nothing

kstrauser•6mo ago
Ah, yes. Like in the class where we learned Moscow ML, where loops don’t and variables ain’t, and Godspeed!
smadge•6mo ago
It reminds me of a satirical post called “Evolution of a Haskell Programmer” in which a nice simple implementation of the Fibonacci function becomes more and more convoluted, abstract, and academic [1].

[1] https://people.willamette.edu/~fruehr/haskell/evolution.html

smadge•6mo ago
*factorial function
JadeNB•6mo ago
Or maybe just a very bad implementation of the Fibonnaci sequence.
widforss•6mo ago
I was extremely confused for a moment and pondered returning my MSc.
Pinus•6mo ago
It’s been more than 30 years since I took a (very basic) course in logic programming in general and Prolog in particular, so I can’t read the level of sarcasm in the text, but: Surely, when a course places various artificial limitations on programming, like “hands off the standard library”, the reason is that they are not trying to teach you to be productive Prolog (or whatever language) programmers, they are trying to teach you basic principles, and truly internalizing those principles often (not for everyone!) requires swimming around in them for a while. In Lisp, you are not just supposed to know that you can write a tail-recursive function for something, you are supposed to have done it so many times that you can do it almost without thinking. In calculus, you are not supposed to look up the derivative of arcsin in a table, you are supposed to feel it, so that to immediately see that that subsituting t=sin(x) makes that integral much nicer. They are not training you to use the standard library, they are training you to write it.

Admittedly, teachers sometimes seem to lose track of this and assign busywork exercises for no good reason.

pjmlp•6mo ago
Love the jab regarding "only tools available in the 18th century", applies to so many things in mainstream computing.
fuzz_junket•6mo ago
The author seems to be frustrated at something but I'm not sure what. There is value in learning how to implement something from first principles. Teachers aren't sitting around scheming about how they can waste their students' time with "meaningless calisthenics", they're trying to help them. Calling them "clueless professors" isn't great either. There's a degree of disrespect in undergraduates dunking on professional tertiary-level educators for making them do homework.

Also, Prolog does not have a "standard library". What predicates are implemented varies greatly by implementation, and if you want to write portable code then you have to stick as closely as possible to the ISO standard.

timonoko•6mo ago
TIL: Grok cannot do Prolog, it insists that

  average([X],X) :- !.
is better than

  average([X],X).