frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Uncommon Uses of Python in Commonly Used Libraries (2022)

https://eugeneyan.com/writing/uncommon-python/
99•sebg•7mo ago

Comments

iamevn•7mo ago
Seems fairly standard stuff for libraries to consider. I was really hoping for some weird stuff like patching bytecode or implementing entire different languages as a python library.
Pinegulf•7mo ago
Sure, but "Do not deprive people the joy of discovery." -Someone, not me.
ethan_smith•7mo ago
Check out Coconut (https://github.com/evhub/coconut), which implements an entire functional programming language as a Python superset that compiles to Python bytecode.
froh•7mo ago
thanks for resharing, interesting well written read

previous: https://news.ycombinator.com/item?id=32528919

pjc50•7mo ago
I briefly thought "oh yeah, mixins, shame we can't do that in C# with single inheritance" and then realized that's what extension methods are for (and slightly more general).

I have some C# code which relies on calling an extension method on a null instance, which is mildly naughty but saves a lot of refactoring.

Xss3•7mo ago
You can call methods on null instances?
pjc50•7mo ago
You can call an extension method, because it's just fancy syntax for calling a non member method with the thing before the . as the first argument. If you then don't reference it at all, it doesn't matter that it's null.
stephenlf•7mo ago
What a fantastic read. It’s nothing groundbreaking, but it’s a perfect model of how to learn good patterns.
silvester23•7mo ago
If you want to combine a mixin with a base class you have no control over, just put the base class last in the inheritance chain. Then it does not matter if it calls its super __init__.
Y_Y•7mo ago
And if there are two such base classes?
CmdrKrool•7mo ago
In the case of multiple base classes wouldn't it be more sensible for the derived class to forego the lexical convenience of super() and simply call each base explicitly? i.e.

        BaseEstimator.__init__(self, **kwargs)
        ServingMixin.__init__(self, **kwargs)
If one wants to inherit from multiple classes then they should be responsible for specifying the details of how that happens. Why should a base class be expected to add boilerplate just in case some external consumer comes along and wants to use it in some unforeseeable context?

That super() has a "method resolution order" seems like a fudge. Now 'super' doesn't necessarily mean 'superclass' anymore at the point of use. Am I missing some other hypothetical situation in which super()'s MRO brings more value for the price of having to know about this extra, implicit behaviour?

And what's funny is that in the example given, the first base class not calling super() leads to the bad consequence that the other base class doesn't get to set some internal state (self.mode). Yet in the next section, "When to use a Mixin", it advises: "A mixin is a class that [...] does not contain state"

DHRicoF•7mo ago
I could try to answer myself, but this will be far better that I could express in english:

https://www.youtube.com/watch?v=EiOglTERPEo

zahlman•7mo ago
These are things that less experienced Python programmers might not know about, but they're not at all uncommon. If anything, calling `super()` in a base class should be the default if you're designing a framework where you expect people to use mixins (or even just explicitly intend for them to derive your classes, really).

Creating blank `__init__.py` files has basically become standard because the use cases where you'd prefer to omit them don't work well with packaging tools (since everything will be in `site-packages` anyway; most people also aren't going to install multiple things from a common namespace that you publish; adding those files helps build backends and other tools understand your project layout; etc.). On the flip side, the use cases for writing something in `__init__.py` should be evident from just considering the fact that it's possible. (It's also a useful refactoring tool; if you are planning to make a package but don't know what all its modules should be yet, you can start by turning an existing `foo.py` into `foo/__init__.py`.) Preemptively importing from `__init__.py`, though, is not always a great idea; it represents extra up-front import time that clients can't opt out of. (This has a lot to do with why Pip takes a significant amount of time even when it ultimately determines that it hasn't been asked to do anything.)

Preferring relative imports is, if anything, not common enough, but is certainly common among people who know what they're doing.

As for class/static/instance methods:

> When should we use class or static methods? Here are some basic guidelines I found.

The use cases more or less derive directly from their differences. But if you're going to cite sources for this, it's a crying shame to leave out Raymond Hettinger's "Python's Class Development Toolkit" (https://www.youtube.com/watch?v=HTLu2DFOdTg).

SectorC: A C Compiler in 512 bytes

https://xorvoid.com/sectorc.html
113•valyala•4h ago•18 comments

The F Word

http://muratbuffalo.blogspot.com/2026/02/friction.html
50•zdw•3d ago•15 comments

Brookhaven Lab's RHIC concludes 25-year run with final collisions

https://www.hpcwire.com/off-the-wire/brookhaven-labs-rhic-concludes-25-year-run-with-final-collis...
28•gnufx•3h ago•20 comments

Speed up responses with fast mode

https://code.claude.com/docs/en/fast-mode
60•surprisetalk•4h ago•67 comments

Software factories and the agentic moment

https://factory.strongdm.ai/
103•mellosouls•7h ago•183 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
146•AlexeyBrin•10h ago•26 comments

Stories from 25 Years of Software Development

https://susam.net/twenty-five-years-of-computing.html
103•vinhnx•7h ago•13 comments

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
855•klaussilveira•1d ago•261 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
1096•xnx•1d ago•619 comments

First Proof

https://arxiv.org/abs/2602.05192
70•samasblack•6h ago•51 comments

Show HN: A luma dependent chroma compression algorithm (image compression)

https://www.bitsnbites.eu/a-spatial-domain-variable-block-size-luma-dependent-chroma-compression-...
9•mbitsnbites•3d ago•0 comments

Italy Railways Sabotaged

https://www.bbc.co.uk/news/articles/czr4rx04xjpo
16•vedantnair•35m ago•4 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
240•jesperordrup•14h ago•81 comments

Al Lowe on model trains, funny deaths and working with Disney

https://spillhistorie.no/2026/02/06/interview-with-sierra-veteran-al-lowe/
64•thelok•6h ago•12 comments

I write games in C (yes, C)

https://jonathanwhiting.com/writing/blog/games_in_c/
141•valyala•4h ago•119 comments

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
521•theblazehen•3d ago•192 comments

Show HN: I saw this cool navigation reveal, so I made a simple HTML+CSS version

https://github.com/Momciloo/fun-with-clip-path
34•momciloo•4h ago•5 comments

Reinforcement Learning from Human Feedback

https://rlhfbook.com/
95•onurkanbkrc•9h ago•5 comments

Selection Rather Than Prediction

https://voratiq.com/blog/selection-rather-than-prediction/
14•languid-photic•3d ago•5 comments

A Fresh Look at IBM 3270 Information Display System

https://www.rs-online.com/designspark/a-fresh-look-at-ibm-3270-information-display-system
51•rbanffy•4d ago•10 comments

The AI boom is causing shortages everywhere else

https://www.washingtonpost.com/technology/2026/02/07/ai-spending-economy-shortages/
193•1vuio0pswjnm7•10h ago•282 comments

72M Points of Interest

https://tech.marksblogg.com/overture-places-pois.html
38•marklit•5d ago•6 comments

Coding agents have replaced every framework I used

https://blog.alaindichiappari.dev/p/software-engineering-is-back
261•alainrk•9h ago•433 comments

France's homegrown open source online office suite

https://github.com/suitenumerique
619•nar001•8h ago•276 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
125•videotopia•4d ago•40 comments

Where did all the starships go?

https://www.datawrapper.de/blog/science-fiction-decline
102•speckx•4d ago•123 comments

Show HN: Kappal – CLI to Run Docker Compose YML on Kubernetes for Local Dev

https://github.com/sandys/kappal
35•sandGorgon•2d ago•16 comments

We mourn our craft

https://nolanlawson.com/2026/02/07/we-mourn-our-craft/
359•ColinWright•3h ago•435 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
213•limoce•4d ago•119 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
290•isitcontent•1d ago•38 comments