编程与软件工程bofh.org.uk
用 Emacs 和 PostgreSQL 经营一家面包店
Running a Bakery on Emacs and PostgreSQL
2019 — 2021,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
一位程序员兼面包店主讲述如何用 Emacs 和 PostgreSQL 搭建一套系统来管理自家面包店的日常运营,把专业工具用于小生意的真实案例。文章展示了技术爱好者如何为自己量身打造解决方案,而非依赖现成商业软件。
为什么经久不衰:它代表了'为自己写工具'的极客精神:用熟悉的免费工具解决真实生活问题,这种思路在任何年代都能启发读者。
HN 评论精选
为自己或爱好而写的代码最纯粹,业余编程者会越来越多
这类故事最能激励我:人们用技术改善日常生活或作为爱好。我工作中学的很多东西是出于职业需要——最新框架、'未来'语言、为了项目而半懂一套技术栈。我最喜欢的编程记忆是少年时自学 Java 给朋友做游戏,没有责任压力,能跑就开心,跑不了也无妨。我不认为编程会成为通用语言,但业余程序员、会给自己写小工具的人会越来越多,这不是坏事。
altotrees查看英文原文
Stories like these are the ones that inspire me the most. People using technology in a way that helps them in their everyday lives, or in a hobbyist fashion. I feel like many of the things I pick-up at work are out of career necessity: the latest framework, bits of an up and coming language that is going to be "the future", semi fluency in a stack so I can aid in a project,I enjoy it, but I don't enjoy it like in the same way I once did. Probably my favorite programming memory was teaching myself Java as a teenager and building games for my friends and I to play. No responsibility, if they worked...great, if not oh well. It was exhilarating. I do not think programming will ever become a lingua franca, as stated in other places here. I think hobbyist programmers may pop up more and more,or people who know enough to build small tools for themselves (not to scale) and I don't think that's a bad thing.
类似的亲身经历:用脚本自动化替代繁琐手工操作
这让我想起用 Python 帮妻子填四年级成绩单的经历。学校只提供一个糟糕的应用,每录一个成绩要鼠标点三下,30 个学生每人约 20 项成绩,非常折磨。应用没有导入导出,但我破解了它的存档文件格式,把 Google Sheets 的数据转换进去。手动录入要 3 小时,开发脚本也花了 3 小时,之后又用了两次。后来学校换了新系统才作罢。
jedberg查看英文原文
This reminds me of the time I used Python to fill out my Wife's 4th grade report cards. She kept all the records in google sheets, so when it came time to do report cars, she already knew what all the grades should be. But the school only provided a terrible app where you literally had to make three clicks with a mouse to enter each grade. Each kid had about 20 grades to enter, and there were 30 kids. That was a lot of clicking and a lot of RSI. The app had no import/export, but it turned out you could save your work in progress to a proprietary file format. I figured out the format, and then figured out how to basically take the data in google sheets and munge it into the save file format. It took about 3 hours to enter all the grades manually, and it took about 3 hours to develop the app. So for the first time we used it, it was a wash, but then we got to use it twice more. Sadly, then they changed report card programs and the new one used a binary file format. At least the new program allowed keyboard input with shortcuts, so it wasn't as a bad.
个人化系统难以交接维护,作者的热情就是系统的寿命
这很极客、技术上令人愉悦,但它的寿命只取决于作者的热情。一旦需要交接给别人维护就玩不完了——哪个面包店员工会去维护 SELECT 语句、看 GitHub 的发布说明?几年前有句话:如果想让普通程序员能以合理成本维护系统,就别设计得太聪明。另外,面包店的网站在故事发表两年后已经下线了。
supernova87a查看英文原文
Yeah, this is geeky and technically pleasing, but destined to live only as long as the guy has enthusiasm or the will to keep doing this as a small business. As soon as it comes time to have someone take ownership or manage the system, the model breaks. What retail bakery employee is he going to find to maintain the SELECT * FROM statements and look at the Github repo for release notes? There was a post a few years ago with the message "don't get too clever or special when designing a system if you want it to be maintainable for any reasonable cost by an average programmer". I think this is related... Edit: the bakery website is gone or down, 2 years after the story.
提供 2019 年首次上首页时的讨论链接
(2019 年);当时的讨论:https://news.ycombinator.com/item?id=19252952(191 条评论)
wolfgang42查看英文原文
(2019); discussed at the time: https://news.ycombinator.com/item?id=19252952 (191 comments)
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选