Dan Bader
dbader.org · Personal blog · on HN since 2013
Dan Bader, a Python trainer and author, writes Python tutorials on topics like memoization, DSLs, and mobile development.
What HN saysHN links his Python tutorials, such as the memoization article, and a commenter recommends his Python Tricks book.
26HN people shared it
11linked it in comments
102stories submitted
347story points
4 years agolast shared
2013people per year2026
Most-shared posts
- 1Writing a Domain Specific Language (DSL) in Python (Tutorial)3 people · 6 points · first shared 2017 · discussion on HN
- 2Memoization in Python: How to Cache Function Results3 people · 4 points · first shared 2017 · discussion on HN
- 3Using Python for Mobile Development: Kivy vs. BeeWare3 people · 4 points · first shared 2017 · discussion on HN
- 4Homepage3 people · first shared 2017
- 5Functional linked lists in Python2 people · 6 points · first shared 2013 · 1 comments on HN
- 6Setting Up Sublime Text for Python Development2 people · 5 points · first shared 2013 · 1 comments on HN
- 7What books should I read to move past the beginner stage in Python?2 people · 5 points · first shared 2016 · discussion on HN
- 8Records, Structs, and Data Transfer Objects in Python2 people · 4 points · first shared 2017 · 1 comments on HN
- 9An App-Store legal way of guessing a user’s favorite contacts on iOS2 people · 4 points · first shared 2013 · discussion on HN
- 10The Meaning of Underscores in Python2 people · 4 points · first shared 2017 · discussion on HN
- 11Should I host my programming blog on Medium, Tumblr, etc?2 people · 3 points · first shared 2016 · 1 comments on HN
- 12The Ultimate List of Python Podcasts2 people · 3 points · first shared 2016 · discussion on HN
- 13The 4 Major Ways to Do String Formatting in Python2 people · 3 points · first shared 2017 · discussion on HN
- 14Crackle-free audio on the Raspberry Pi with mpd and PulseAudio2 people · 1 points · first shared 2013 · discussion on HN
- 15Python tricks2 people · first shared 2017
What HN people wrote when they linked it
Immortal333 · 2020-06-28
Thanks for similar articles. I am aware of similar articles and that's why I have kept it short and simple. I will add these as references, later.
I have enjoyed reading Python Tricks[0] book by Dan bader (author of https://dbader.org/blog/python-memoization ). It's awesome. Might be outdated but I still recommend it to any body who has just started learning python.
[0] https://realpython.com/products/python-tricks-book/
yla92 · 2017-04-11
A mix of everything
- HN Digest - http://hndigest.com/
- Hacker News Books - http://hackernewsbooks.com/
- Julie Zhuo's The Looking Glass - http://www.juliezhuo.com/design/mailinglist.html
- a16z monthly newsletter - http://us7.campaign-archive2.com/home/?u=35c671b34bb404149166bf755&…
- Pointer.io - http://www.pointer.io
- Changelog Weekly - https://changelog.com/weekly
- Dan Bader's python tricks - https://dbader.org/
- The New Yorker - https://www.newyorker.com/newsletters
- Android Weekly - http://androidweekly.net/
- AndroidDevDigest - https://www.androiddevdigest.com/
- GitHub Explore - https://github.com/explore/subscribe
YeGoblynQueenne · 2022-03-12
You mean resources on creating your own program synthesis system? Hm, I don't know of anything like a program synthesis toolbox, like OpenCV for machine vision, etc. There are many freely available program synthesis systems, but most are research prototypes and they only use a particular approach anyway, while I think you 'd prefer to be able to experiment with different approaches, no?
I fear the best option is to try to roll-your-own, based on the descriptions in many different program synthesis papers. Btw, I wouldn't choose neural program synthesis for a first Project! First because neural program synthesis requires as training examples both programming tasks (usually in the form of I/O examples) _and_ programs solving the tasks, and many many of them to boot. Second because it's an uncommon enough approach, or combination of approaches, that I doubt you'll find much support for it in the standard neural net frameworks.
I think the CSAIL program synthesis course suggested above by yldedly is a good starting place though. It's graded by a program synthesis project and you might find some tools meant to help students carry out their assignment on the course pages. Or you may try asking the tutors by email even.
Other than that, the simples thing to get you started is to define a DSL, generate programs from it and test them against I/O examples of the target programs. That's the simplest, most primitive kind of thing you can do. It's not a very efficient thing to do, but…
fdsvnsmvas · 2018-09-10
Thanks everyone, the comments are much appreciated. Here's a list of books and other media resources recommended so far in the thread:
Robert C. Martin, Clean code: https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0…
Vaughn Vernon, various: https://vaughnvernon.co/?page_id=168
Steve McConnell, Code Complete: https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/d… 2
Clean coder: https://cleancoders.com/ videos
Hunt and Thomas, The Pragmatic Programmer: https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/02016…
Hitchhiker's Guide to Python: https://docs.python-guide.org/
Dustin Boswell The Art of Readable Code: https://www.amazon.com/Art-Readable-Code-Practical-Techniques/dp/05968…
John Ousterhout, A Philosophy of Software Design: https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1… This one looks particularly interesting, thanks AlexCoventry!
Kent Beck, Test Driven Development: https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530
Dan Bader, Python Tricks: The Book: https://dbader.org/
Ian Sommerville, Software Engineering: https://www.amazon.com/Software-Engineering-10th-Ian-Sommerville/dp/93…
Svilen Dobrev, various: http://www.svilendobrev.com/rabota/
sanzen · 2017-04-21
Just the links from…
philprx · 2020-09-16
Answered:
https://dbader.org/blog/python-mobile-development-kivy-vs-beeware
Excerpt:
The key difference between Kivy and BeeWare is that BeeWare programs use the native UI toolkit of the platform they run on, whereas Kivy apps use a custom UI toolkit that uses the same controls across all platforms.
asicsp · 2020-06-28
Instead of the last quote in the article, I prefer this one (got it from [0])
>"There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors." – Martin Fowler
And there's plenty of similar articles, for example [1] [2]
[0] https://www.mediawiki.org/wiki/Naming_things
[1] https://dbader.org/blog/python-memoization
[2] https://mike.place/2016/memoization/
Apocryphon · 2019-01-13
Interestingly enough Kivy and Beeware are attempts to create Python mobile development frameworks:
https://dbader.org/blog/python-mobile-development-kivy-vs-beeware
https://www.youtube.com/watch?v=qaPzlIJ57dk
dbader · 2017-04-11
Hey, Dan Bader here. I just wanted to say thanks for including my Python Tricks (https://dbader.org/python-tricks) series in your list, that's awesome :-)
Moto7451 · 2013-05-31
My understanding is that the Pi lacks real audio hardware on the analog output. For audio heavy projects you should consider a USB sound card.
Edit:
This looks promising: http://dbader.org/blog/crackle-free-audio-on-the-raspberry-pi-with-mpd…
nikofeyn · 2020-04-29
here's my other comment that talks about this: https://news.ycombinator.com/item?id=23008968
even among dynamically typed languages, python is terrible. it has no real way to build up new types in a principled way, and you have to result to using (and abusing) the class system, which is hack after hack.
python also ignored and continued to ignore things that already existed in languages and advances. it also doesn't really like using data-type driven development. go ahead and search for "python records". you'll get nothing, and the best reference is a blog post (https://dbader.org/blog/records-structs-and-data-transfer-objects-in-p… that leads you to a wide variety of solutions, all inconsistent with each other and not conventionally used. now search google and literally the top result for each query is the following:
"f# records" (https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/reco…
"elixir records" (https://hexdocs.pm/elixir/Record.html)
"clojure records" (https://clojuredocs.org/clojure.core/defrecord)
"racket lang records" (https://docs.racket-lang.org/rebellion/Records.html)
another area that python doesn't take seriously is scoping. the scoping rules and exceptions are complex, and this makes the language very dangerous. i mentioned one in the other comment i linked. python has weird scoping stuff with lambdas. python even has a keyword that makes a locally bound variable available in the calling scope…