💾 Archived View for cwave.site › gemlog › 2024-06-07.gmi captured on 2024-06-16 at 12:24:45. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
I went on my usual run. On the way back, I had to go through the supermarket for some shower gel, because we are out of shower gel.
In the produce section (the produce section is always at the start), I put three pieces of fruit including a pineapple in my basket before I remembered I don't have a bag, I can't buy much more than about 4 items. Still, I stuck with my fruit selection. This has been a failure at doing a sensible food shop and gettting dinner.
Pineapples are funny, of course. Having to carry home an armful of fruit including a pineapple is funny. Having a home pineapple is funny.
This is a multipurpose pineapple. First, I will draw it a bunch of times (though this is a Complex Object and beyond my level) while it ripens a lot more, possibly by sitting next to a mango. Then, it can be fruit and a sweet and sour tofu stir fry.
I drew a good cardboard packaging, with correct proportions, and subsequently felt confident and/or bored of step 3: single simple objects.
I should have carefully moved on to step 3b, groups of simple objects, and stayed there for a while.
Things are going badly and it's because I tried jumping ahead by a lot of steps at once. Shading and lighting on groups of objects. Complex object, big objects, and whole scenes.
"Negative space around a pineapple" failed to exactly join up when I got around the whole leaf cluster. Same on group of fruits. In general, fruit are a bit harder than cups because they have alot of shape and color irregularities
Shading on grapefruit just doesn't look right.
And my street sketches are completely hopeless.
Back to step 3 and 3b: Simple objects, get the apparent shape and proportion exactly right, bare structure only.
I'm an adult and I've learned something from making a career out of computer problems: instead of giving up in frustration we backtrack to where things were last good and build incrementally from there.
A quick impression from someone who just got here and just wants to make thingswork right.
Matlab is pretty bad. That's the result of being a liscenced, proprietary language heavily marketted and targetted at universities. Matlab is pretty good at its core attractrions: a shiny, easy IDE and making basic matrix and data operations work for the average student. The rest is frustrating. You are prevented from trying to do anything complicated. Troubleshooting is "call the helpline", which is the last thing I ever want to do. And, of course, we don't like this closed ecosystem out of principle.
Matlab is more than a language: Matlab is also the IDE. It's easy and non-intimidating. You don't need to be a programmer to open the IDE, type some lines of math, and click run. To get people off matlab, you need to replace all that.
Well, R can do that too. R is associated with a good IDE, Rstudio, which does aall the same convenient debugging and line-execution functions. I'm happy to have something I can tell people to use instead of matlab which is a pretty close replacement. This is pretty much equivalent for the same users and situations.
R is a serious language for adults. No more watching videos where a cheerful voice explains the basics of lists. It has written documentation. There are relevant programming words and concepts in it. It tells you things directly like an adult.
You don't feel like you're being treated like an idiot.
There is a lot of power to do things.
It does statistics, if you're into the kind of thing. See also "talking to you like an adult". They've got the functions for serious math things and they put them front and center.
The package manager, package ecosystem, documentation conventions, etc all seem very centralized, neat and trustworthy. Very promising.
They have high standards. It's a bit intimidating, but I want to join the R community. If they accept your package, it's perfect. That's something to aim for, like publishing a paper in my one-time goal journal where, in my opinion, all the smartest papers are.
Some people think "functional" means relying heavily on functions and function operations. Functional is good. Functional is fast and powerful. I like throwing around map, reduce, etc operations. It's a lot of fun. We like functional.
Some people think "functional" means pure functional, i.e. a function returns something and has no other side effects such as modifying any other data or values. This is an attractive concept in principle. R is certainly not functional in this sense.
This "closures" thing is messing with me. In the R community, apparently, a closure is when a function is defined inside another function and takes/sets variables in the enclosing scope. A function can be like a pared-down object, holding some values.
It's easy to get carried away and create a big mess of functions inside functions this way. The result is not transparent for me to follow, restructure, much less document. I'm somewhat stuck due to the complexity of my own creations. This language has allowed me too much power.
I read "Efficient R programming". Standard principles apply, and you want to get to where R calls C/C++ as directly as possible.
Allocate lists/arrays in advance, don't grow them.
Fine.
I'm currently stuck at things like "how to make new empty dataframe of type X". It seems facilities for doing things the "right"/fast way are not immediately provided or easily searchable.
I don't like how it often prints a whole function body in the Rstudio command line REPL, because I either evaluated it or asked what some oject is. It's a pain to scroll back through.
Rstudio seems to sometimes hang or crash, and sometimes old states of my files/data seem to linger.
Of course, I have to learn my about 10th set of "what is everything called" and "how do I index" etc, so things are slow.
I can see this going in my top 5 programming languages, but it's a domain/situation specific thing. There's a place for it - quick work and statistics - and it does that one thing very well.
I would recommend R over matlab and, for a certain type of user, over python.