763 karma · joined July 18, 2009
https://stepwise.run - Deterministic scaffolding around nondeterministic work. Observable runs. Human gates. Resume after reboot. No babysitting.
https://github.com/zackham/aloop - An embeddable Python agent loop for multi-agent orchestration, declarative permissions, and editor integration via ACP. Use any LLM from any provider, extend through hooks, embed as a library, drive from the CLI, or expose as an ACP server.
zackham@gmail.com
Working with MySQL columns that have the same name as a keyword. My favorites: order, table, and the less-known but equally painful, interval.
mysql> SELECT first_name, last_name, interval FROM users; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM users' at line 1
"Compare our industry to Medicine and Law. It's actually illegal for people who aren't doctors or lawyer to dispense medical advice or legal advice."
Dispensing bad medical advice can result in serious injury or death. Dispensing bad legal advice can result in long prison sentences. Writing bad software wastes time and costs money. Industries where software CAN kill people are more stringent with their development and hiring practices because of their liabilities.
"Oh, I know lots will cringe at the thought of that. I know the thought is that stuff like this subsidizes crappy coders through artificial scarcity."
We all know that good programmers are scarce. The reason we cringe is because no one knows of a good method to draw the line between good programmer, and not-good-enough programmer, in a world where programmers do so many different domain-specific things.
"I see so many people without a background in programming write poorly architected code that performs like a dog and just breaks... it breaks because some wanabe hacker just jumped in and started hacking without knowing wtf (s)he was doing and it ends up costing the company paying for the work more money later on."
This is how people get their background in programming, by writing poorly architected code, watching it perform like a dog and break, and then fixing those issues. That is what gaining experience looks like. Companies that hire inexperienced junior level programmers and trust them with large architectural decisions have made a managerial mistake, do not blame the novice programmer for this.
--- And on open source ---
Much of open source revolves around building and maintaining tools that support people in our trade. Having open libraries, operating systems, servers, text editors, compilers, etc, helps everyone out there be more a more productive software developer. Other professionals also look out for each other and work collectively to advance their profession generally. We are no different, it just happens that due to the nature of our field, we have much more powerful mechanisms to do so at our disposal.
Real examples: I'm lazy and get up late, but this system got me up before 7am daily for 3 weeks. I wanted to begin practicing guitar, I practiced for 30 minutes daily for a month with this. Right now I'm riding my bicycle 100 miles a week. I am not generally known for my extreme willpower to do stuff like this, I think I just found a functional self-exploit.
I felt that favoriting and starring implied that you liked an item, and flagging seemed to have a slightly negative connotation (think soccer). I wanted a term that didn't imply that you liked or disliked an item, just that you wanted to remember it for later.
Facebook puts privacy in your face from the start and you have such fine-grained control – most Facebook users have some degree of information hiding enabled.
I believe that culture of everything-is-public is what has fueled Twitter's growth, and is exactly why Facebook cannot compete directly with Twitter. Facebook is technically better in every way, but there is a cultural difference in the two communities that allows them to serve separate purposes even when Twitter's functionality is by all measures a subset of Facebook at this point.
In my experience heavy use of Mail.app results in accounts that do not get checked for email, and show no connection error or indication of a problem. No email for an hour and I restart the app. I wish refreshing my accounts actually displayed the status of checking each account, it is very obvious sometimes that the refresh button does basically nothing or at least doesn't inform me in any way what it is doing...
I'm working on an alarm clock that requires me to do some math in order to turn it off. Thinking about extending it with an automated french press with heating element to have a cup of coffee ready for me.
All I use it for is moving mail into folders without the mouse (F3, space, per(personal folder gets auto completed), enter, next!)