frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

I Was Trapped in Chinese Mafia Crypto Slavery [video]

https://www.youtube.com/watch?v=zOcNaWmmn0A
1•mgh2•58s ago•0 comments

U.S. CBP Reported Employee Arrests (FY2020 – FYTD)

https://www.cbp.gov/newsroom/stats/reported-employee-arrests
1•ludicrousdispla•2m ago•0 comments

Show HN: I built a free UCP checker – see if AI agents can find your store

https://ucphub.ai/ucp-store-check/
1•vladeta•7m ago•1 comments

Show HN: SVGV – A Real-Time Vector Video Format for Budget Hardware

https://github.com/thealidev/VectorVision-SVGV
1•thealidev•9m ago•0 comments

Study of 150 developers shows AI generated code no harder to maintain long term

https://www.youtube.com/watch?v=b9EbCb5A408
1•lifeisstillgood•9m ago•0 comments

Spotify now requires premium accounts for developer mode API access

https://www.neowin.net/news/spotify-now-requires-premium-accounts-for-developer-mode-api-access/
1•bundie•12m ago•0 comments

When Albert Einstein Moved to Princeton

https://twitter.com/Math_files/status/2020017485815456224
1•keepamovin•14m ago•0 comments

Agents.md as a Dark Signal

https://joshmock.com/post/2026-agents-md-as-a-dark-signal/
1•birdculture•15m ago•0 comments

System time, clocks, and their syncing in macOS

https://eclecticlight.co/2025/05/21/system-time-clocks-and-their-syncing-in-macos/
1•fanf2•17m ago•0 comments

McCLIM and 7GUIs – Part 1: The Counter

https://turtleware.eu/posts/McCLIM-and-7GUIs---Part-1-The-Counter.html
1•ramenbytes•19m ago•0 comments

So whats the next word, then? Almost-no-math intro to transformer models

https://matthias-kainer.de/blog/posts/so-whats-the-next-word-then-/
1•oesimania•21m ago•0 comments

Ed Zitron: The Hater's Guide to Microsoft

https://bsky.app/profile/edzitron.com/post/3me7ibeym2c2n
2•vintagedave•24m ago•1 comments

UK infants ill after drinking contaminated baby formula of Nestle and Danone

https://www.bbc.com/news/articles/c931rxnwn3lo
1•__natty__•24m ago•0 comments

Show HN: Android-based audio player for seniors – Homer Audio Player

https://homeraudioplayer.app
2•cinusek•25m ago•0 comments

Starter Template for Ory Kratos

https://github.com/Samuelk0nrad/docker-ory
1•samuel_0xK•26m ago•0 comments

LLMs are powerful, but enterprises are deterministic by nature

2•prateekdalal•30m ago•0 comments

Make your iPad 3 a touchscreen for your computer

https://github.com/lemonjesus/ipad-touch-screen
2•0y•35m ago•1 comments

Internationalization and Localization in the Age of Agents

https://myblog.ru/internationalization-and-localization-in-the-age-of-agents
1•xenator•35m ago•0 comments

Building a Custom Clawdbot Workflow to Automate Website Creation

https://seedance2api.org/
1•pekingzcc•38m ago•1 comments

Why the "Taiwan Dome" won't survive a Chinese attack

https://www.lowyinstitute.org/the-interpreter/why-taiwan-dome-won-t-survive-chinese-attack
2•ryan_j_naughton•38m ago•0 comments

Xkcd: Game AIs

https://xkcd.com/1002/
1•ravenical•40m ago•0 comments

Windows 11 is finally killing off legacy printer drivers in 2026

https://www.windowscentral.com/microsoft/windows-11/windows-11-finally-pulls-the-plug-on-legacy-p...
1•ValdikSS•40m ago•0 comments

From Offloading to Engagement (Study on Generative AI)

https://www.mdpi.com/2306-5729/10/11/172
1•boshomi•42m ago•1 comments

AI for People

https://justsitandgrin.im/posts/ai-for-people/
1•dive•43m ago•0 comments

Rome is studded with cannon balls (2022)

https://essenceofrome.com/rome-is-studded-with-cannon-balls
1•thomassmith65•48m ago•0 comments

8-piece tablebase development on Lichess (op1 partial)

https://lichess.org/@/Lichess/blog/op1-partial-8-piece-tablebase-available/1ptPBDpC
2•somethingp•50m ago•0 comments

US to bankroll far-right think tanks in Europe against digital laws

https://www.brusselstimes.com/1957195/us-to-fund-far-right-forces-in-europe-tbtb
4•saubeidl•51m ago•0 comments

Ask HN: Have AI companies replaced their own SaaS usage with agents?

1•tuxpenguine•54m ago•0 comments

pi-nes

https://twitter.com/thomasmustier/status/2018362041506132205
1•tosh•56m ago•0 comments

Show HN: Crew – Multi-agent orchestration tool for AI-assisted development

https://github.com/garnetliu/crew
1•gl2334•56m ago•0 comments
Open in hackernews

What's New in Python 3.15

https://docs.python.org/3.15/whatsnew/3.15.html
159•azhenley•1mo ago

Comments

PaulHoule•1mo ago
PEP 686 makes me smile

https://peps.python.org/pep-0686/

lucb1e•1mo ago
"PEP 686 – Make UTF-8 mode default" for anyone else wondering
edflsafoiewq•1mo ago
Can definitely think of some places I should use bytearray.take_bytes.
pjmlp•1mo ago
I am here for the JIT and improved profiling goodies, one day Python will finally be a proper Lisp replacement.

-- https://www.norvig.com/python-lisp.html

nurettin•1mo ago
I had a colleague who was hostile to any language other than common lisp. Except python, which I assume is just because this page exists. What if norvig woke up that day and decided to write about Ruby instead?
pjmlp•1mo ago
Which incidentely has a much better history with JIT adoption than Python, where the community has largely ignored PyPy.

Meanwhile Ruby has had MacRuby from Apple, later canceled, but the main developers went out creating RubyMotion.

Sun toyed with JRuby, it was even officially supported on Netbeans, then Red-Hat supported the project for a while. It was also one of the first dynamic languages on GraalVM, with TruffleRuby. GraalPy effort only came a couple of years later, and is still on baby steps.

As of 2025, the refernce implementation counts with YJIT, MJIT, TenderJIT, and MRuby 4 brings ZJIT to the party.

Exchanging Lisp for Python we went backwards in regards to performance in dynamic languages, in a distopian world where C, C++, Fortran libraries are "Python" libraries.

Nope they are bindings, and any language with FFI can have bindings to those same libraries, e.g. PyTorch can also be used in straight C++, or from Java.

mistrial9•1mo ago
Python community -- meet Schrödinger's cat
nurettin•1mo ago
Special mention and thanks to headius (Charles Oliver Nutter) for his contributions to JRuby, he enabled many of my cross-platform projects back in 201* which would have been harder to build without the expressive and terse syntax Ruby provides and the ability to run jvm pretty much anywhere.
BoingBoomTschak•1mo ago
Without s-exprs nor macros? Without reader? With its stupid statement/expression divide?

...Right.

pjmlp•1mo ago
There is a good compromise with reflection, attributes, metaclasses, one line lambdas, comprehensions

Now the lack of machine code generation for something Lisp was doing in the 1960's, Smalltalk in the 1980's, SELF in 1990's, and having to fall back on C, C++ and Fortran is bonkers.

Thankfully this is finally becoming a priority for those willing to sponsor the effort, and kudos to those making it happen.

I would rather use Common Lisp, in something like Allegro, but I will hardly find such a job, thus only arguing about language features doesn't take us that far.

vrighter•1mo ago
a lambda that forces you to define a function elsewhere if you want to do anything nontrivial in it defeats the purpose
cassepipe•1mo ago
What's Python's story for repl driven development ?
pjmlp•1mo ago
It has a Tk based REPL and debugger in the box, and I guess nowadays Jupiter notebooks is the closest to a Lisp Machines/Interlisp-D kind of development.

There are the IDE integrations as well.

Pity is the lack of (compile ...) and (decompile ....), or similar.

Which by the way is available in Julia.

sceadu•1mo ago
I usually do REPL driven development in Python via emacs but you can tell it's not the natural way to do things, esp. if you start doing stuff with async. But I still feel that it makes me way more productive than I would otherwise be
hulitu•1mo ago
> one day Python will finally be a proper Lisp replacement.

Parantheses in Lisp are visible, whitespaces in Python, not really.

Erenay09•1mo ago
Seeing this reminded me of version 3.14, where π is an infinity expressed through its fractional parts.
ruuda•1mo ago
> Python now uses UTF-8 as the default encoding, independent of the system’s environment.

Nice, not specifying the encoding is one of the most common issues I need to point out in code reviews.

joshribakoff•1mo ago
Have you considered reducing review noise by using static analysis?
KK7NIL•1mo ago
Yep, ruff has a warning for this exact issue.
IshKebab•1mo ago
Pylint has had it too for at least a decade.
simon04•1mo ago
Ruff's rule is derived from Pylint: https://docs.astral.sh/ruff/rules/unspecified-encoding/
formerly_proven•1mo ago
encode()/decode() have used UTF-8 as the default since Python 3.2 (soon, 15 years ago). This is about the default encoding for e.g. the "encoding" parameter of open().
franga2000•1mo ago
You mean the coding= comment? Where are you shipping your code that that was actually a problem? I've never been on a project where we did that, let alone needed it.
KORraN•1mo ago
The comment you mention applies to source code encoding and it's obsolete for Python 3 since the beginning. This is about something else: https://docs.python.org/3.15/whatsnew/3.15.html#whatsnew315-...
franga2000•1mo ago
Makes sense, my bad, but even that is something I've never seen. I guess this is mostly a Windows thing? I've luckily never had the misfortune of having to deploy Python code on Windows.
ruuda•1mo ago
It's a Linux thing too. It bit me in particular when running a script in a container that defaulted to ascii rather than utf-8 locale.
stabbles•1mo ago
> On POSIX platforms, platlib directories will be created if needed when creating virtual environments, instead of using lib64 -> lib symlink. This means purelib and platlib of virtual environments no longer share the same lib directory on platforms where sys.platlibdir is not equal to lib.

Sigh. Why can't they just be the same in virtual environments. Who cares about lib64 in a venv? Just another useless search path.

wdroz•1mo ago
In the improved error message [0] how are they able to tell nested attributes without having a big impact in performance? Or maybe this has a big impact on performance, then using exceptions for control flow is deprecated?

    ...
    print(container.area)
> AttributeError: 'Container' object has no attribute 'area'. Did you mean: 'inner.area'?

[0] -- https://docs.python.org/3.15/whatsnew/3.15.html#improved-err...

IshKebab•1mo ago
Using exceptions for flow control has always been a bad idea, despite what they might have said. Perhaps they are generating that message lazily though?

On the other hand it's not like Python really cares about performance....

amluto•1mo ago
I would like to introduce you to StopIteration.
formerly_proven•1mo ago
All iterators in Python use exceptions for flow control, as do all context managers for the abort/rollback case, and it is generally considered Pythonic to use single-indexing (EAFP) instead of check-then-get (LBYL) - generally with indexing and KeyError though and less commonly with attribute access and AttributeError.

[heavy green check mark]

    try:
        data = collection['key']
    except KeyError:
        data = ..try something else..
[red x]

    if 'key' in collection:
         data = collection['key']
    else:
         data = ..try something else..
The latter form also has the genuine disadvantage that nothing ensures the two keys are the same. I've seen typos there somewhat often in code reviews.
agumonkey•1mo ago
I thought I knew enough about python culture but TIL

https://realpython.com/python-lbyl-vs-eafp/#errors-and-excep...

IshKebab•1mo ago
You should do normally do

    data = collection.get("key")
    if data is not None:
         ...
    else:
         ....
japhyr•1mo ago
Wouldn't this be a little cleaner?

    data = collection.get("key")
    if data:
        ...
    else:
        ...
tayo42•1mo ago
it depends on what's in the if blocks
Shish2k•1mo ago
That behaves differently (eg if collection["key"] = 0)
pansa2•1mo ago
If valid `data` can be zero, an empty string, or anything else “falsy”, then your version won’t handle those values correctly. It treats them the same as `None`, i.e. not found.
japhyr•1mo ago
:facepalm:
blackbear_•1mo ago
No, this would crash with numpy arrays, pandas series and such, with a ValueError: The truth value of an array with more than one element is ambiguous.
IshKebab•1mo ago
No, truthiness (implicit bool coercion) is another thing you should avoid. This will do weird things if data is a string or a list or whatever.
echoangle•1mo ago
The value in the collection could be the actual value None, that’s different from the collection not having the key.
eesmith•1mo ago

    missing = object()
    data = collection.get("key", missing)
    if data is missing:
         ...
    else:
         ....
IshKebab•1mo ago
That's why I said "normally".
sevensor•1mo ago
Last time I measured it, handling KeyError was also significantly faster than checking with “key in collection.” Also, as I was surprised to discover, Python threads are preemptively scheduled, GIL notwithstanding, so it’s possible for the key to be gone from the dictionary by the time you use it, even if it was there when you checked it. Although if you’re creating a situation where this is a problem, you probably have bigger issues.
andy99•1mo ago
to me something like

  for key in possible_keys:
    if key in collection:
      ...
is fine and isn’t subject to your disadvantage.
edflsafoiewq•1mo ago
Here's the relevant diff: https://github.com/python/cpython/pull/137968/files#diff-966...

Search is limited to 20 attributes and non-descriptors only to avoid arbitrary code execution.

I assume constructing AttributeErrors isn't highly performance sensitive.

dotancohen•1mo ago

  > using exceptions for control flow is deprecated?
Exceptions are for the exceptional cases - the ones that mean normal operations are being suspended and error messages are being generated. Don't use them for control flow.
Hendrikto•1mo ago
Typically yes, but not in Python. In Python it is quite common and accepted, and sometimes even recommended as Pythonic to use exceptions for control flow. See iterators, for example.

I really dislike this too, but that’s how it is.

mort96•1mo ago
In Python, an iterator raises a StopIteration exception to indicate to the for loop that the iterator is done iterating.

In Python, the VM raises a KeyboardInterrupt exception when the user hits ctrl+c in order to unwind the stack, run cleanup code and eventually exit the program.

Python is a quite heavy user of exceptions for control flow.

vb-8448•1mo ago
what about making python 5x faster(faster-cpython project)?
pansa2•1mo ago
> faster-cpython project

Seems to have died the same death as Unladen Swallow, Pyston, etc:

https://discuss.python.org/t/community-stewardship-of-faster...

kenjin4096•1mo ago
I'm the author of the thread you linked. Community stewardship is actually happening in some form or another now.

3.15 has some JIT upgrades that are in-progress. This has a non-exhaustive list of them https://docs.python.org/dev/whatsnew/3.15.html#upgraded-jit-...

Qem•1mo ago
There's some nice improvements expected by 3.16. See https://fidget-spinner.github.io/posts/faster-jit-plan.html
testdelacc1•1mo ago
Worth mentioning that this is the documentation of 3.15 alpha 3. I feel like we’re better waiting for a release candidate or the final version before posting this page, in case there are any changes. Most people reading this are going to assume it’s final.
amelius•1mo ago
Cool, now I just have to wait until my dependencies support this version.
lucb1e•1mo ago
Doesn't look to me like much got removed that was commonly used. What dependencies do you use that wouldn't automatically work on this version?
regularfry•1mo ago
It's not that uncommon for libraries to declare an overly strict maximum version, even if the code would actually work, because they can't know that at time of setting the version constraint.
lucb1e•1mo ago
Who'd want to be sure it fully breaks with an update instead of having a small chance (a part of) it breaks with an update?!
regularfry•1mo ago
The people who are currently doing so, presumably.
nemetroid•1mo ago
The new profiling.sampling module looks very neat, but I don't see any way to enable/disable the profiler from code. This greatly limits the usefulness, as I am often in control of the code itself but not how it is launched.