@lesley@mastodon.gamedev.place
@lesley@mastodon.gamedev.place avatar

lesley

@lesley@mastodon.gamedev.place

Computer Graphics & Programming Languages person.

I twoot about languages like C, C++, Rust, JS/TS, and OCaml.

I organize two online meetups: https://mastodon.gamedev.place/@graphicsmeetup and Programming Languages Virtual Meetup

he/him

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

dabeaz, to random
@dabeaz@mastodon.social avatar

Recovering from last week's compilers course, working on various improvements. I've been experimenting with the whole approach of writing a "nanopass" compiler (basically, having a lot of very small compiler phases).

I'm struck by how much this approach really leans into issues of the type-system, but with respect to the implementation of the compiler itself. Wasn't fully anticipating the scale of it, but it's great.

lesley,
@lesley@mastodon.gamedev.place avatar

@dabeaz That's surprising. I assumed it would be easier to write a nano-passed compiler in a language without a type system since it needs to lower the program representation incrementally, and literature in that area often uses a Lisp dialect. Though I have never written such a compiler myself, so my assumption could be completely wrong

gob, (edited ) to random French
@gob@mastodon.gamedev.place avatar

All shading languages suck.
Moreover, they’re an outdated concept and they’re failing us.

https://xol.io/blah/death-to-shading-languages/

lesley,
@lesley@mastodon.gamedev.place avatar

@gob Just read this article. I largely agree with the conclusion. Slang looks promising and addresses some of your points (like pointers). Still, you are right that maybe we should make general-purpose languages shader-friendly rather than invent separate languages.

lesley,
@lesley@mastodon.gamedev.place avatar

@gob One small thing I disagree with is the inout parameter. I think it is a cool feature. Sure, it has limited use, but it is also memory-safe and doesn't need to worry about aliasing for free. This kind of "second-class reference" is the direction languages like Hylo are trying to explore.

lesley, to random
@lesley@mastodon.gamedev.place avatar

If I understand correctly (I don't have the confidence), when some people talk about "thread-per-core," they really mean "not work-stealing." This is such a confusing terminology.

lesley, to rust
@lesley@mastodon.gamedev.place avatar

noob question: is there a way to "catch one kind of error and propagate the other" with something cleaner than this?

aeva, to random
@aeva@mastodon.gamedev.place avatar

The Leaving Rust Gamedev article resonates with most of the frustrations I've had working on the internals of Tangerine (C++) since I converted it from being largely single threaded spaghetti to aggressively concurrent spaghetti, and that's making me think maybe I'd have a better time if I picked a different language for the hot paths, because necessary non-compulsory refactoring also kills iteration time.

I just don't know what though, because nothing ever seems to fit the bill of what I need.

lesley,
@lesley@mastodon.gamedev.place avatar

@aeva, I feel you. Concurrency in C++ is definitely a pain since we either need to use some non-standard large third-party dependency or design a whole task system ourselves. Ironically, this is one of Rust's strengths, as the language and standard library provide many more high-level concurrency/async constructs.

lesley,
@lesley@mastodon.gamedev.place avatar

@aeva I have many similar feelings about my projects. I want to do something, yet invariably find myself confronted with the necessity of large-scale refactoring and wrestling with the language/API before I can even begin implementing the logic I envision.

lesley, to random
@lesley@mastodon.gamedev.place avatar

I am tutoring someone in basic programming. She's struggling with the continue keyword, misinterpreting it as "continue execution," much like Python's pass keyword. I never thought to question something so ubiquitous, but now I see how this choice of terminology could indeed be confusing (imagine in an alternative world where this keyword is called reloop or something clearer).

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

New blog post: Demystifying multiple importance sampling

It is a simple thing that turns out to be confusing to a lot of us rendering engineers. I try to explain it in detail here with path-tracing examples!

https://lisyarus.github.io/blog/posts/multiple-importance-sampling.html

lesley,
@lesley@mastodon.gamedev.place avatar

@j_bertolotti @lisyarus It is very common in graphics literature though. It is indeed cursed as some people using it as directions while other people use it for angles

lesley,
@lesley@mastodon.gamedev.place avatar

@lisyarus @j_bertolotti I always find working memory overload to be one of the major obstacles when reading math-heavy literature, so I definitely appreciate whatever notations that alleviate this cognitive burden

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

I've completely remade my blog! Changed the design, improved the look of formulas, fixed broken links and typos, etc.

I was thinking of making a thread with my favourite articles, but that would be about a dozen of them, so I'll just drop the blog link here :)

https://lisyarus.github.io/blog/index.html

lesley,
@lesley@mastodon.gamedev.place avatar

@lisyarus Nice style! I am in a slow process of rewriting my blog website, too.

I hope you add RSS soon. I followed the RSS feed of your old blog and that is my main way to keep up with information

TodePond, to random
@TodePond@mas.to avatar
lesley,
@lesley@mastodon.gamedev.place avatar

@TodePond I like to look up to people who are humble and struggle like me. I find individuals who are hyper-confident and build a cult following are often narcissistic. Unfortunately, our society seems to reward this kind of personality

demofox, to random
@demofox@mastodon.gamedev.place avatar

Over the years, three blog posts have taken turns as having the most daily reads when I hadn't recently posted something newer. It seems random to me and I'm not sure who was linking to them :)
First was bilinear interpolation/texture filtering.
https://blog.demofox.org/2015/04/30/bilinear-filtering-bilinear-interpolation/
Second was about floating point
https://blog.demofox.org/2017/11/21/floating-point-precision/
Third and current is about random access and iteration of permutations
https://blog.demofox.org/2023/08/22/permutation-iteration-and-random-access/

lesley,
@lesley@mastodon.gamedev.place avatar

@demofox Because they are relatively more accessible topics? I find some of your blog posts challenging to understand due to my lack of background knowledge

aeva, to random
@aeva@mastodon.gamedev.place avatar

you ever think about how "copy" and "paste" don't have dedicated keys on most keyboards

lesley,
@lesley@mastodon.gamedev.place avatar

@aeva I am surprised that someone hasn't mentioned Vim here yet. Personally, I've never been able to get the hang of it.

lesley,
@lesley@mastodon.gamedev.place avatar

@aeva @drhoopoe I have similar experience. I think the modal editor mechanism is pretty cool but I just can't memorize the default vim key bindings. For example, as a gamer, I would prefer arrow shape like ijkl much more than hjkl.

penryu, to random
@penryu@hachyderm.io avatar

Inspired by actual events

lesley,
@lesley@mastodon.gamedev.place avatar

@penryu I want to send that nohello website whenever I met someone who do this.

https://nohello.net

Unfortunately, I've conversed with individuals who do this conscientiously, and they believe that "saying hello" is the appropriate social etiquette 😕. At least I haven't seen antone in tech believe so

lesley, to random
@lesley@mastodon.gamedev.place avatar

I really dislike the periodic "using system programming languages can save the planet" take. It is a pretty cheap way to feel moral superiority while not contributing to the real issue at all

demofox, to random
@demofox@mastodon.gamedev.place avatar

2 minute video on how to make a cpu
https://youtu.be/vuvckBQ1bME?si=ERRJaGaAoimIaYud

lesley,
@lesley@mastodon.gamedev.place avatar

@demofox I thought this was another "spending one minute writing a hello world program and then spending the next 10 seconds writing the whole program" joke, but it is surprisingly informative. Though I don't digest most of what is going on

artificialmind, to random
@artificialmind@fosstodon.org avatar

Does anyone have a good resource for rationale and design decisions in IEEE 754 floating point? I'm preparing a blog post about tradeoffs in floating point design from an API perspective.

For example: why would you include +-Inf and not simply fold those into NaN? One important reason is interval arithmetic. But most "normal" float code I've seen doesn't handle Inf much better than NaN.

lesley,
@lesley@mastodon.gamedev.place avatar

@artificialmind Inf can be compared while NaN can't?

There are so many floating-point resources in my read-later list but I haven't go through most of them. For the one I read, I think this is a good though not in-depth introduction
https://en.algorithmica.org/hpc/arithmetic/ieee-754/

bitinn, to random
@bitinn@mastodon.gamedev.place avatar

I don’t know how western companies see these super apps of Asia (WeChat, Line, TikTok etc.), but I can tell you some of us really hate those here.

They replace the web and essentially everything is in a walled garden.

lesley,
@lesley@mastodon.gamedev.place avatar

@bitinn Sigh. It is hard to have good experience when Apple is actively killing PWA and megacorps want to use dedicated apps to push ads and harvest data. It sadden me how much knowledge are locked away in the walled gardens

regehr, to random
@regehr@mastodon.social avatar

I keep running across blogs that I should follow but I don't since I don't currently have good RSS+browser integration. do people have favorite (open source or free) options here? I used to use feedly but they seem to be pushing too hard to get me to pay

lesley,
@lesley@mastodon.gamedev.place avatar

@regehr I use Inoreader (used to be Feedly); both are not free software and have limited free-tiers though

inthehands, to random
@inthehands@hachyderm.io avatar

This from @mekkaokereke is true of education as well as workplaces. How does the intro sequence hit for students? Are those courses •inviting•, or •weeding out•? Because that right there is your DEI values made manifest, and no amount of trainings and workshops will change that baseline. https://hachyderm.io/@mekkaokereke/112219016968211952

lesley,
@lesley@mastodon.gamedev.place avatar

@inthehands @mekkaokereke I never thought it from the DEI perspective, but "weed out" intro courses always felt like excuses for horrible teaching for me

demofox, to random
@demofox@mastodon.gamedev.place avatar

Aliens be like "bro, why do you think humans like simulating rolling balls down high dimensional hills?"
"Idk man, those apes are nuts lol"

lesley,
@lesley@mastodon.gamedev.place avatar

@demofox I didn't understand it until seeing your explanation

lesley, to random
@lesley@mastodon.gamedev.place avatar

Not sure if I agree with this take (I am more in Rust's "limit type inference" camp), but this feels like a blog full of gems (that I somehow missed)

https://borretti.me/article/type-inference-was-a-mistake

regehr, to random
@regehr@mastodon.social avatar

apropos of today's news, let's just make sure everyone knows of this very similar backdoor attempt on the Linux kernel

https://freedom-to-tinker.com/2013/10/09/the-linux-backdoor-attempt-of-2003/

lesley,
@lesley@mastodon.gamedev.place avatar

@regehr Two thoughts:

  1. sad that we settled with the = for assignment and == for equality in almost all languages
  2. Assignment really should be a statement
  • All
  • Subscribed
  • Moderated
  • Favorites
  • provamag3
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • magazineikmin
  • InstantRegret
  • Durango
  • thenastyranch
  • Youngstown
  • rosin
  • slotface
  • mdbf
  • khanakhh
  • tacticalgear
  • JUstTest
  • everett
  • modclub
  • Leos
  • cubers
  • ngwrru68w68
  • ethstaker
  • osvaldo12
  • GTA5RPClips
  • anitta
  • megavids
  • normalnudes
  • tester
  • lostlight
  • All magazines