12,049 karma · joined January 21, 2010
My point is - recipes cannot be converted easily between unit systems. There is more to converting a recipe than applying a ratio table.
No! That's silly and it's not how cooking works! This way you get stupid recipes like on American cooking Youtube channels that just run their volumetric measurements through a converter and end up with recipes that call for 234 grams of flour, 13.5 grams of this or that spice and 78 ml of whatever. Recipes are (well, should be) tuned to the measurement system they use, and packaging availability in the area it targets, so that you get recipes that use e.g. 400ml of coconut milk (because that's the most common can size around here), whole numbers in amounts of ingredients etc. Converting between units in cooking and baking is not simply using a unit conversion calculator on your phone!
(and that's not even mentioning that there are UK, Australian and US cups, tablespoons and teaspoons)
Python packaging is such a ridiculous PITA, it's laughable if it wasn't so sad. I tried nuitka as suggested upthread, and send my customer a single binary to try, let's see if it works.
Then again, maybe I'm just a nitpicking weirdo. Although I've gotten enough upvotes by now that it seems that others have the same feeling. Maybe someone else can explain the reason for their subjective emotions upon reading this better.
Then again, I do know that Emperor Charles is referred to as 'Lord of the Netherlands' in English language history books, and I wouldn't easily know how to do it differently, but somehow there it's always more... padded in context?
Likewise (although it may be the same issue underneath...), equating the area of the Dutch Republic with modern-day Netherlands (which I assume he's referring to but didn't want to use that because of confusion with the previous point?) is... rather simplistic. I mean, I guess it's something someone who's never left the Randstand wouldn't think twice about, but that doesn't make it true.
But as I said, it's not like there are any factual errors I could find, and in any other writing I would have easily understood how difficult it is to convey all that nuance in a piece like this where, frankly, that nuance doesn't even matter. It's just that the combination of subtexts made the whole thing feel weird. To me. Maybe it didn't to you.
I guess this phenomenon is well-known by people who are from cultures that are usually written about by outsiders :) but I don't encounter it often and this specific article just evoked this really weird feeling in me. So many instances where I internally reacted with 'WFT is this guy saying' yet no actual factual errors that I can find.
This is not my subjective experience. It's better, sometimes somewhat, but also much slower. I'm not sure which one is the better tradeoff for real work. I have it on 4 by default now, don't want to think about this for every question I ask, but for my work, 3.5 was fine.
I'm also not so worried about 'oh but the machines will keep getting better'. I mean, they will, but the above will still remain true, at least until we get to the point where the machines start to make and drive decisions on their own. Which we'll get to, but by that point, I/we will have bigger problems than computers being better at programming than I am.
One meta comment is that I would love for something like a Greasemonkey script that can automatically add some checkboxes or something that will then automatically add stock phrases to ChatGPT questions, like 'show me only the code', as I find that a lot of the intro fluff and the explanation of things are useless to me and just take up time. In general, the UI is pretty bare bones, there's a world to be gained there.
Man I'd love me some indoor lightning, no matter the cost.
Yes in the end it's all in the process, but feature flags are not the end-all be-all these few paragraphs posit them to be.
I'm soured on the whole 'support local' thing (not only because of this episode). Too many chumps.
Wrt to productivity - I do think it's misleading to look at it like 'it used to take me 5 hours, now only 1, so that's 5x' or some other (imo naive) quantification. It's much more about removing drudgery and thus freeing up mental resources for interesting things. Say I do a task with a certain tool in the same time it took me without it, but in a much less mentally taxing way (because that's what drudgery does to me - activate bore-out mode). From the naive metric pov there is no productivity improvement. But if that leaves me capable of doing more in the rest of the day/week because I don't have to fight myself to move on with something, I'd argue it's still a productivity gain.
Does typing with a nice keyboard and in a good chair make me more 'productive'? Well, I don't think anyone will argue that I can't type on a e5 Chinese crap one while sitting on a bucket before a door on two sawhorses. I can even type and think equally fast in those circumstances. But better tools still make one more 'productive' in the larger picture, I don't think anyone with experience will deny this either. This 'productivity gain' is in that sense somewhat ethereal, in a poetic sense of that word. To me that's where these tools are at now.
Let me give you an example of what I did just this morning. In fact, ChatGPT is generating code in another tab as I'm typing this - GPT4 is quite slow (well, at least it takes longer than my attention span which has been reduced to that of a sea urchin by years of social media and usage of internet in general), especially when you let it create 50 to 100 lines at a time.
I'm working on a specialized ETL tool for geospatial data. In fact, I've had several iterations of this tool over 5 or more years, but for the last few months I've been working on a new version that incorporates everything I've learned about the domain in that time. This conceptualization, the learning of what the tool should do and how all components fit together, is not something a computer can do. I would have to be able to describe it to get a computer to generate it, of course, but I couldn't a few years ago because I was still finding out what it should do to provide the most value. The reason I had several versions is because I kept learning more about what I need it to do.
But many of the boring machinations I absolutely can have a computer do. For example, a part of this tool is a tiny DSL which is basically a way of specifying combinations of parameters with some dress-up. I'd been dreading making a proper parser for weeks, since a) the 'design' of this DSL has fluctuated quite a bit, and b) I'd have to dreg up my knowledge of parsers from the last time I wrote one 10 years ago. So I've been getting by using a combination of regex, split() and some hand massaging of strings.
But this morning, I had ChatGPT write me the biggest part of a parser using three questions:
- "Write a parser in python for the following format: [optional identifier] [open square braces] [either a list of values, separated by commas; or a list of key-value pairs, separated by commas, the keys and values are separAted by equals signs] [close square braces]. The identifier is optionally followed by an 'at' sign, and a qualifier after that. Show me the EBNF and a parser in python that implements this grammar."
- "The qualifier should come before the square brackets, it's part of the identifier."
- "Write some unit tests for this grammar. Include corner cases for all varieties of the allowed input, so with or without identifier, with or without qualifier, with plain lists and with lists of key/value pairs. Include cases for 0, 1 and 3 values in all places where more than one element can appear."
(try it, I used GPT4 but you'll probably get similar results if you use the free version)
The result I got from this has 2 mistakes: in one case I had to swap two tokens in the EBNF. This one I found by reading the docs while waiting for the output of whatever ChatGPT suggested as a fix after me copy and pasting the error message I got. So this was fixed, by me, in a few minutes (ChatGPT's suggestion for a fix made no sense). The second one, ChatGPT suggested a correct fix after I copy and pasted the error message also.
So, ChatGPT gave me a skeleton grammar, complete with the syntax of the library which I had never heard about 2 hours ago. The second of my first three questions was because I gave it ambiguous input, I only thought of that part while I was writing the question and didn't bother to go back and edit it in in the right place where it would have been more obvious. Then I copy/pasted the raw output from ChatGPT in a new file, ran it, I got the issues fixed (in collab with ChatGPT) in 20 minutes or so. This would have taken me all morning and probably all day if I include all unit tests and all other details just a few months ago. How is this not a massive game changer?
Now, I would not have been able to do any of this hadn't I already known what an 'EBNF grammar' was, and hadn't known how to read and implement one. This tool will not replace programmers. It will however eliminate the need for the very low skill ones, and make the rest (much) more productive.