And yet, generative AI also seems to be poor at randomness. When I ask Google Gemini for a list of 50 random words, it gave me a list of 18 unique words, with 16 of them repeated exactly 3 times.
Randomness is difficult. I wouldn't expect any LLM to be able to reliably produce random anything, except in the cases where they have access to tools (ChatGPT Code Interpreter could use Python's random.random() for example).
Nowhere near as good as ChatGPT 4o or Claude (in not one case have I had it outperform those other two), but at least it can do math and data science correctly most of the time compared to the regular model.
I use it as a secondary when the other two are chewing on other tasks already.
I only own it as I am an outrageously heavy consumer of LLMs for all sorts of little projects at once and they all seem to pause one window if you use another.
Currently I am reading the book Grit by Angela Duckworth. The author cites studies of grit and has done much research on the subject. Are you suggesting that that research does not replicate?
py5 is a version of Processing for Python 3.8+ that is well integrated into the Python ecosystem. It connects the Processing Jars to Python using JPype. If you like Processing, please give it a try!
Oh nice! I enjoyed reading Nature of Code when it launched on Kickstarter over a decade ago, but the barebones IDE and the Java heritage always turned me off. And p5.js was, well, Javascript. I spent some time porting some of the functions to Python, but realized to make it useful it'd be a bigger effort than I had time and skill.
Py5 looks awesome! Will give it a try soon. Thanks for your work!
ps: I noticed you're using JPype to connect to the Java Processing libraries. Very smart.
> I spent some time porting some of the functions to Python, but realized to make it useful it'd be a bigger effort than I had time and skill.
Getting py5 off the ground started during pandemic lockdown and took many months. Managing the source code is best done computationally, with py5generator creating the actual py5 source code.
Nice! Thanks for creating that, I just finished a small processing project that involved a lot of array and data structure manipulation and that kind of work odd really unpleasant in Java, especially when compared to python. Better gif creation is excellent too.
I once worked in a financial firm with an intern who did nothing else besides pick his nose. No joke, that's the only thing he did. He made no attempt to do actual work or help our team and no attempt to hide his nose picking.
His father was a senior executive and so he knew he would get a seat on the equity trading desk no matter what, so he didn't care about us. I hated that guy, and I hated him even more because I knew his career would be way more successful than mine would ever be.
The finance industry (and surely other industries) have this concept of "pedigree" that values some people more than others. It's bad for the organizations because poorly qualified nose-pickers get promoted as they coast by in life, while others who are working hard to improve themselves and add value will either get passed over or used as pawns.
I always ask a direct question about ethics. Something like, "tell me about the kinds of ethical problems that this team is faced with and how you handle them." Good answers involve speaking up about the problem right away & not try to hide anything and being transparent with relevant entities. Bad answers are things like "there haven't been any ethical problems," because that most likely signals that ethical problems are being ignored or overlooked.
> Note that this is a resource-intensive filter. Memoization is strongly advised!
Can you make this be the default for non Safari browsers? This really made my CPU fan work hard. Also, why does this need to recalculate the image so many times a second if it is the same image each time? It really only needs to redraw when I change one of the options.
The demo is a part of the testing regime for my canvas library. I set the default to "don't memoize" because it's the quickest way to see how intense/computationally expensive the filter gets using different parameters. For most scenarios the output should be memoized (to stop unresponsive websites, device damage, etc)
My ultimate goal would be to get the filter working more efficiently on dynamic input eg a video media stream. So far only the simplest settings (2 colours with dither) are watchable: https://codepen.io/kaliedarik/pen/OJOaOZz
Abyss: 1 Ambiguous: 3 Cacophony: 3 Crescendo: 3 Ephemeral: 3 Ethereal: 3 Euphoria: 3 Labyrinth: 3 Maverick: 3 Melancholy: 3 Mellifluous: 3 Nostalgia: 3 Oblivion: 3 Paradox: 3 Quixotic: 1 Serendipity: 3 Sublime: 3 Zenith: 3