@faassen@fosstodon.org
@faassen@fosstodon.org avatar

faassen

@faassen@fosstodon.org

Me grok write code. Python, Rust, Typescript, JavaScript. Created: Morepath, lxml. Also: gardener, science & history fan, living life fan. Husband & father.

I post a lot about programming as well as gardening pictures. If you come for just the gardening pictures the programming talk may baffle you. If you're a programmer, I invite you to enjoy the flowers!

This profile is from a federated server and may be incomplete. Browse more on the original instance.

faassen, to rust
@faassen@fosstodon.org avatar

I wonder how to best describe how #RustLang influences design, for better or worse. Here is some rambling...

It makes you avoid cyclical data structures, and you are far more aware of ownership. This makes surprising action at a distance harder. It also makes it more difficult to misuse globals or struct fields as globals just to pass data along to where it is needed no matter how.

Enums turn out to replace dynamic dispatch very often. Inheritance is just gone.

1/n

faassen, to history
@faassen@fosstodon.org avatar

I recently reread the novel 1984, written in 1948 by George Orwell. It's famous.

It's interesting to see how much its own time informed it.

In the 1984 London, rocket bombs crash into the city regularly and are shrugged off almost casually. Bizarre!

But 3 years before the novel was written, V2 rockets still crashed into London.

1/n

faassen, to random
@faassen@fosstodon.org avatar

I read something recently about the fediverse DDOSing websites when you post links to them, though I forget the precise mechanics involved. I posted a link to the Rijksmuseum a while ago and now the page won't load anymore. Oops?

faassen, to rust
@faassen@fosstodon.org avatar

Porting a significant codebase (an xpath compliant regex engine) from Java to Rust was fascinating. Here are some observations:

  • Java is pretty readable even for someone who never wrote a line of Java in his life

  • Editor dev tooling to follow references is super handy during this work

  • Java classes melt away into enums. In this codebase dynamic dispatch was unnecessary and inheritance was used only a little. OO is overrated

1/n

faassen, to random
@faassen@fosstodon.org avatar

Does anyone else have the impulse to want to be the best version of yourself online, sometimes? Even if anonymous? More generous, accepting, warm, less argumentative, more constructive?

Not for reputation afaik, at least not consciously, but just to make everything a bit better? I don't always get this impulse (no saint here) but I have felt that.

Since so much discourse is about how the internet brings out one's dark side, I thought I would mention the opposite.

faassen, to programming
@faassen@fosstodon.org avatar

Lukewarm take: we need more lukewarm takes in programming

faassen, to rust
@faassen@fosstodon.org avatar

I go to

I figure doing XML in Rust is rather obscure. I queue for lunch, mention it to someone, someone else just ahead of me in the queue says "oh I am working on that too!"

I also chatted to two different speakers at the conference who worked on a different XSLT engine in the past (way before Rust)

faassen, to rust
@faassen@fosstodon.org avatar

In the last year and a half I have written a lot of Rust code, only some of which is open source at the moment: Xot, the capable XML tree library.

I have also most of a XPath 3.1 implementation and part of an XSLT 3.0 implementation. And a structural human readable diffing library for XML documents.

I happen to have a (revived) background in established tech like XML and I can write Rust, which makes for an interesting combination.

faassen, to random
@faassen@fosstodon.org avatar

I am nearsighted. I am not a fan of dark mode; give me dark text on a light background. I have read my preference gives better readability but it's far from clear.

I just found this:

"Therefore, reading white text from a black screen or tablet may be a way to inhibit myopia, while conventional black text on white background may stimulate myopia."

So nearsightedness may be caused by my preferred light mode, and dark mode may counter it? Intriguing thought!

https://www.nature.com/articles/s41598-018-28904-x

faassen, to programming
@faassen@fosstodon.org avatar

It's interesting that programming languages introduce limited postfix notation all the time for convenience: method calls (and chaining) in a variety of languages, type declarations after the variable, .await in Rust.

Yet general postfix languages like Forth are quite uncommon.

faassen, to random
@faassen@fosstodon.org avatar

LLMs make up plausible stuff based on training data. That may seem like a more damning indictment of them than it is.

The complicating factor is that human brains are also making up plausible stuff. Human memory recall for instance is a plausible reconstruction based on experiences and knowledge, not a recording.

We have reasoning too, but it's well known there are many flaws in our reasoning ability, which is why invented writing, math, science and computers to supplement it

faassen, to programming
@faassen@fosstodon.org avatar

Dependencies are a risk. You don't understand them. Write the code yourself.

Don't reimplement code badly that has a superior implementation elsewhere.

Idioms are good. You can recognize patterns easily.

Boilerplate is bad.

Don't copy code from the web.

Don't use LLMs for generating code.

Learn by reading code.

LLMs are handy!

See the tension? All of these things are true and false, sometimes. Programming is about managing trade-offs, not following rules.

faassen, to random
@faassen@fosstodon.org avatar

I don't know enough about ECS or datalog (or egglog, even) but I wonder whether they would go together well.

Maybe @alice_i_cecile would be kind enough to venture a comment; is this a new thought, and is it a useful one?

faassen, to opensource
@faassen@fosstodon.org avatar

I handed over maintainership of an open source project of mine years ago,the new maintainer did a much better job than I can and has been doing it for almost two decades now. Everyone benefited. It's tragic that malicious actors exploit this trust and sharing of responsibility as it's what is at the heart of successful open source.

faassen, to programming
@faassen@fosstodon.org avatar

So what you would an infinitely fast CPU for?

faassen, to rust
@faassen@fosstodon.org avatar

Usually when the borrow checker in Rust really bothers me it pushes me towards a better, simpler design. I have yet to figure out how to describe how that happens. Rust tends to frown a little on complex references, dynamic code and such.

As I got more comfortable with references in structs (and lifetimes) I find myself using them more, but owned data is still king/queen

Rust: if in doubt, own and clone

faassen, to programming
@faassen@fosstodon.org avatar

I can do some pretty fancy computer programming things now, but not because I had innate ability. I was fortunate to have both interest and opportunity, but most importantly I keep trying stuff, playing, learning. A growth mindset makes a lot of difference in the long term

I figured I could learn stuff about software development, so did, for a long time. Now I can do all kinds of things, from developing a framework to a giant application, to implementing a programming language.

faassen, to programming
@faassen@fosstodon.org avatar

Developers like to complain about bloated applications taking too many computer resources, but we keep creating more.

Developers also like to complain about code having far too many dependencies; "my node_modules is 100 gigs", and how code should not depend on too many things. Yet we keep using many dependencies.

We complain these things are bad, yet keep doing it. How bad do we really think it is, then?

And let's not just blame management here. Too easy.

faassen, to Paranormal
@faassen@fosstodon.org avatar

The heart of the definition of the word "cryptid":

  • Maybe this creature is real

Along with corollaries:

  • The creature, if real, would be very cool

  • Unfortunately it's almost certainly not real

faassen, to ai
@faassen@fosstodon.org avatar

It's surprising how many people dismiss AI as having no "true understanding" as "it's just crunching data". Clearly neural network tech is not like a human in understanding, as it's much more limited and not embedded in the world as we are, but what do people think physical neurons do? There's no magic understanding juice in our brains either.

I never was convinced by Searle's Chinese room argument but clearly so many people are. Maybe I am the one who is wrong.

faassen, to rust
@faassen@fosstodon.org avatar

Bevy release notes are always very impressive to read. I also like how it mentions briefly what Bevy is at the top: so many release notes don't.

I am curious what motivates and funds contributions; what portion is hobby project, what is driven by concrete games being developed with Bevy, how many of those are commercial games, who invests money, and why. I imagine a precise breakdown isn't possible but I want to understand how it scales.

@alice_i_cecile

faassen, to random
@faassen@fosstodon.org avatar

What if TOOTS were written YOUTUBE style? Look OUT mastodon!

faassen, to programming
@faassen@fosstodon.org avatar

What are your language alternative timelines? So much of the languages we know and use are due to circumstances, though I do recognize my own agency here and there too

faassen, to programming
@faassen@fosstodon.org avatar

My motivations in picking a language have shifted over the years:

BASIC - it was there
Assembly - fast
C - fast
C++ - abstraction (oop), fast
Python - easy, dynamic, abstraction (oop)
JS - only game in town on fe
TS - avoid bugs early (object is not a function)
Rust - fast, avoid bugs early, abstraction

What were your motivations?

faassen, to python
@faassen@fosstodon.org avatar

People complained about semantic indentation in as an unsurmountable barrier of syntax, but that and other things didn't hold it back from becoming the most popular language in the world

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • rosin
  • thenastyranch
  • cubers
  • ethstaker
  • InstantRegret
  • DreamBathrooms
  • ngwrru68w68
  • magazineikmin
  • everett
  • Youngstown
  • mdbf
  • slotface
  • kavyap
  • anitta
  • GTA5RPClips
  • khanakhh
  • normalnudes
  • osvaldo12
  • cisconetworking
  • provamag3
  • Durango
  • tacticalgear
  • modclub
  • Leos
  • megavids
  • tester
  • lostlight
  • All magazines