Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Jeff Knupp

    jeffknupp.com · Personal blog · on HN since 2012

    Jeff Knupp, a Python developer and author, writes about idiomatic Python, the language's execution model, Django, and DevOps.

    Visit blogHN submissions
    ProgrammingLanguages & CompilersWeb Development
    What HN says

    HN commenters recommend his posts as good, in-depth explanations of Python's name binding model and of setting up a Django project.

    Stats for nerds
    90HN people shared it
    109linked in comments
    1.9Kstory points
    Feb 2024last shared
    2013people per year2024

    Top posts on HN

    1. 1
      How 'DevOps' Is Killing The Developer
      8 people · 500 points · first shared 2014 · 209 comments on HN
    2. 2
      Python and Flask Are Powerful
      3 people · 261 points · first shared 2014 · 75 comments on HN
    3. 3
      What is a Web Framework?
      2 people · 149 points · first shared 2014 · 75 comments on HN
    4. 4
      Python's Hardest Problem (2012)
      4 people · 124 points · first shared 2012 · 70 comments on HN
    5. 5
      Starting a Django Project the Right Way
      4 people · 118 points · first shared 2012 · 49 comments on HN
    6. 6
      Improve Your Python: Metaclasses and Dynamic Classes With Type
      2 people · 115 points · first shared 2014 · 13 comments on HN
    7. 7
      Sandman: A Boilerplate-free Python REST API for Existing Databases
      3 people · 97 points · first shared 2013 · 19 comments on HN
    8. 8
      Writing Idiomatic Python Book
      8 people · 79 points · first shared 2013 · 18 comments on HN
    9. 9
      Django Production Deployment and Development Using Git
      1 person · 73 points · first shared 2012 · 25 comments on HN
    10. 10
      A Celery-like Python Task Queue in 55 Lines of Code
      1 person · 60 points · first shared 2014 · 44 comments on HN

    What HN people wrote when they linked it

    • boyakaSep 2015

      Warning: I am neither a skilled nor experienced programmer. I would say the kernel of programming languages is more practically something like C, assembly, or machine language. Kernel implies containing the core functionality, the building blocks. Van Roy's kernel language does seem to contain core ideas for ideal programming languages, even though it doesn't seem to translate well to existing hardware / machine language.

      After reading a bit about it I started to think of it as pseudocode for programming languages, and I thought I'd share some results from my searching based on that idea [1].

      "In terms of the kernel language itself, it is in fact its own programming language, a sort of "runnable pseudocode" that is executable in the Mozart/Oz platform."

      Here's an interesting link I found by searching for database pseudocode [2]. This delves into the topic of "NoSQL", which might be helpful in your database basics research, but it also covers other database basics.

      I am also not very skilled nor experienced with databases, but based on your request, one database that comes to mind for me is Berkeley DB. It is the building block for lots of other technologies, and is also considered one of the origins of the NoSQL concept. Here's a recent relevant discussion that probably made me think of it [3] (that and it is the basis for a distributed filesystem I'm studying). Also, check out the Wikipedia for it, and (maybe obvious to you already) searching site:news.ycombinator.com…

    • JugurthaMar 2021

      It depends what you used to do with Python, really. There are a lot of users whose code didn't change from 2.x to 3.x except for the print "statements".

      I replied to similar threads[0][1], reproduced here:

      """

      The Python documentation is pretty cool. I frequently go to Chapter 3 (Data Model) and always learn something new reading something I had already read but didn't quite get.
      The mailing list has top notch posters who are always willing to help.

      The IRC channel (#python) has very helpful members who've been patient with me on more than one occasion.

      Books:

      Stacking the deck:

      "Python Guide" - Kenneth Reitz: The bits one doesn't necessarily think about but that simplify life: virtual environments, unit test, project structure, good practices, scenarios for different kinds of applications, documentation, etc.

      Doing stuff:

      "Python Cookbook" (several editions by different authors, Alex Martelli and David Beazley): as the title states, it's a cookbook that shows you how to do a bunch of stuff in Python (files, network, threads, etc). This can get you "operational" in Python pretty fast.

      Doing stuff well (meta):

      "Writing Idiomatic Python" - Jeff Knupp:

      The book comes for Python 2 and Python 3 and contrasts "harmful" and "good". Jeff Knupp also has videos showing you the process of refactoring code. He also has a blog (https://jeffknupp.com/) where he addresses many topics.

      "Effective Python: 59 Specific Ways to Write Better Python" - Brett Slatkin: Pretty good…

    • saurikOct 2017

      https://jeffknupp.com/blog/2017/09/15/python-is-the-fastest-growing-programming-language-due-to-a-feature-youve-never-heard-of/

      > Python's Buffer Protocol: The #1 Reason Python Is The Fastest Growing Programming Language Today

      > The buffer protocol was (and still is) an extremely low-level API for direct manipulation of memory buffers by other libraries. These are buffers created and used by the interpreter to store certain types of data (initially, primarily "array-like" structures where the type and size of data was known ahead of time) in contiguous memory.

      > The primary motivation for providing such an API is to eliminate the need to copy data when only reading, clarify ownership semantics of the buffer, and to store the data in contiguous memory (even in the case of multi-dimensional data structures), where read access is extremely fast. Those "other libraries" that would make use of the API would almost certainly be written in C and highly performance sensitive. The new protocol meant that if I create a NumPy array of ints, other libraries can directly access the underlying memory buffer rather than requiring indirection or, worse, copying of that data before it can be used.

      (The italic emphasis was copied from the original article.)

    • boramalperAug 2017

      > We can use the Python built-in function id which returns a value you can think of as a memory address to investigate.

      > [...]

      > It looks like there is a table of tiny integers and each integer is takes up 32 bytes.

      It is the memory address but it's a "CPython implementation detail: This [return value of the id() function] is the address of the object in memory."[1]

      Though you cannot use this to determine the size of an object, or rather you "shouldn't" because that assumes a very specific implementation detail, which isn't there.

      If you'd like to get the size of an object, use sys.getsizeof().[2] Also keep in mind that containers in Python does not contain the objects themselves but references to them so the returned size is the size of the object itself only, non-recursively. Read "Is Python call-by-value or call-by-reference? Neither."[3] for some more details.

      [1]: https://docs.python.org/3.6/library/functions.html#id

      [2]: http://docs.python.org/3.6/library/sys.html#sys.getsizeof

      [3]: https://jeffknupp.com/blog/2012/11/13/is-python-callbyvalue-or-callbyreference-neither/

    • no_wizardJan 2017

      May I suggest this book specifically tailored for python best practices? https://jeffknupp.com/writing-idiomatic-python-ebook/

      Its a wonderful read. Will really unleash the pythonista inside of all us!

      If you really want to go deeper, I suggest these as well:

      https://goo.gl/CY6zPu
      https://goo.gl/UbMrTb

      Those shortened links take you to amazon (not affiliated in any way, FYI, just though the length of the URLs was obnoxious)

      Those are the definitive python programming books I came up with anyway.

      While we are at, I have to say once I learned to really code Pythonically I find that I can apply the PEP8 standards to almost any language. Admittedly, I, like John Siracusa, am a top level language debutante and don't live in C or C++ production code (I sometimes use objc but swift is...easier :). I remember learning C, and thanks to arduino I certainly using some varient of C/c++ there more heavily, but my coding style follows more or less the pythonic standard (with PEP8 being the backbone of that).

      food for thought, people of hacker news!

    • brianpgordonApr 2014

      This is in pretty stark contrast to yesterday's article about devops:

      > Somewhere along the way, however, we tricked ourselves into thinking that because, at any one time, a start-up developer had to take on different roles he or she should actually be all those things at once.

      > What began as an experiment aimed at increasing software quality has become a farce, where the most talented employees are overworked (while doing less, less useful work) and lower-level positions simply don't exist.

      > Large companies love this, as it means they can hire far fewer people to do the same amount of work. In the process, though, actual development becomes a vanishingly small part of a developer's job.

      http://jeffknupp.com/blog/2014/04/15/how-devops-is-killing-the-developer/

      I certainly wouldn't be happy with a developer position that made me do tier 1 customer support. That stinks more of "absurdly cheap" than "connecting with customers."

    Related

    Reinout van Reesreinout.vanrees.org31 people

    PostgreSQL when it is not your job

    Reinout van Rees
    Personal · last shared 2026
    Daniel Lindsleytoastdriven.com17 people

    Gevent, Long-Polling & You

    Daniel Lindsley
    Personal · last shared 2017
    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    Jacob Kaplan-Mossjacobian.org196 people

    Embrace the Grind

    Jacob Kaplan-Moss
    Personal · last shared 2026
    Dev Geniusmedium.com/dev-genius36 people

    A principled approach to GraphQL query cost analysis

    Dev Genius
    Publication · last shared 2026
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    Hynek Schlawackhynek.me83 people

    I’m a productive programmer with a memory of a fruit fly

    Hynek Schlawack
    Personal · last shared 2026
    Alan Skorkinskorks.com73 people

    Why Developers Never Use State Machines

    Alan Skorkin
    Personal · last shared 2026