2033 private links
Quel réalisation ! Il s'agit d'une carte interactive de l'histoire de l'humanité.
Et voilà que je découvre l'origine du mot "kimura". Le mec n'avait pas l'air de plaisanter des masses.
Et voilà, Python 2, c'est fini.
"""
Monday, April 20, 2020
Python 2.7.18, the last release of Python 2
The CPython core developers are pleased to announce the immediate availability of Python 2.7.18.
Python 2.7.18 is the last Python 2.7
release and therefore the last Python 2 release. It's time for the CPython
community to say a fond but firm farewell to Python 2.
Download this unique, commemorative Python release on python.org.
Python 2.7 has been under active development since the release of Python 2.6,
more than 11 years ago. Over all those years, CPython's core developers and
contributors sedulously applied bug fixes to the 2.7 branch, no small task as
the Python 2 and 3 branches diverged. There were large changes midway through
Python 2.7's life such as PEP 466's feature backports to the ssl module and
hash randomization. Traditionally, these features would never have been added
to a branch in maintenance mode, but exceptions were made to keep Python 2 users
secure. Thank you to CPython's community for such dedication.
Python 2.7 was lucky to have the services of two generations of binary builders
and operating system experts, Martin von Löwis and Steve Dower for Windows, and
Ronald Oussoren and Ned Deily for macOS. The reason we provided binary Python
2.7 releases for macOS 10.9, an operating system obsoleted by Apple 4 years ago,
or why the "Microsoft Visual C++ Compiler for Python 2.7" exists is the
dedication of these individuals.
Python 3 would be nowhere without the dedication of the wider community. Library
maintainers followed CPython by maintaining Python 2 support for many years but
also threw their weight behind the Python 3 statement.
Linux distributors chased Python 2 out of their
archives. Users migrated hundreds of millions of lines of code, developed
porting guides, and kept Python 2 in their brain while Python 3 gained 10 years
of improvements.
Finally, thank you to GvR for creating Python 0.9, 1, 2, and 3.
Long live Python 3+!
"""
I was asked on Twitter why Python uses 0-based indexing, with a link to a new (fascinating) post on the subject (http://exple.tive.org/blarg/2013/10/22/citation-needed/). I recall thinking about it a lot; ABC, one of Python's predecessors, used 1-based indexing, while C, the other big influence, used 0-based. My first few programming languages (Algol, Fortran, Pascal) used 1-based or variable-based. I think that one of the issues that helped me decide was slice notation.
Let's first look at use cases. Probably the most common use cases for slicing are "get the first n items" and "get the next n items starting at i" (the first is a special case of that for i == the first index). It would be nice if both of these could be expressed as without awkward +1 or -1 compensations.
Using 0-based indexing, half-open intervals, and suitable defaults (as Python ended up having), they are beautiful: a[:n] and a[i:i+n]; the former is long for a[0:n].
Using 1-based indexing, if you want a[:n] to mean the first n elements, you either have to use closed intervals or you can use a slice notation that uses start and length as the slice parameters. Using half-open intervals just isn't very elegant when combined with 1-based indexing. Using closed intervals, you'd have to write a[i:i+n-1] for the n items starting at i. So perhaps using the slice length would be more elegant with 1-based indexing? Then you could write a[i:n]. And this is in fact what ABC did -- it used a different notation so you could write a@i|n.(See http://homepages.cwi.nl/~steven/abc/qr.html#EXPRESSIONS.)
But how does the index:length convention work out for other use cases? TBH this is where my memory gets fuzzy, but I think I was swayed by the elegance of half-open intervals. Especially the invariant that when two slices are adjacent, the first slice's end index is the second slice's start index is just too beautiful to ignore. For example, suppose you split a string into three parts at indices i and j -- the parts would be a[:i], a[i:j], and a[j:].
So that's why Python uses 0-based indexing.
À quelques vaches près, Linux n'existerait peut-être même pas.
Des interviews de développeurs à propos de Zelda: Ocarina of Time. Le meilleures de tous les temps, en toute objectivité :)
Bon vent, mec ! :)
The History of Packets. L'Histoire d'Internet, ou du transport de packets depuis ses débuts, il y a 40 ans...
Joyaux anniversaire Debian ! 20 piges ☺