@gvrooyen@c.im avatar

gvrooyen

@gvrooyen@c.im

Founder of octoco.ltd, custostech.com & fanfire.ai. Innovation management & tech entrepreneurship as my day job, with software engineering & signal theory as guilty delights. Blockchain pragmatist. Extra-Ordinary Prof @ Stellenbosch University for fun & !profit. World's Best Dad by constituency vote. Avid trail runner. Reader.

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

CultureDesk, (edited ) to VideoGames
@CultureDesk@flipboard.social avatar

Video games, LeBron James, tattoos, and copyright law, in one story? The internet is really spoiling us today. @polygon reports on a long-drawn-out case in which tattoo artist Jimmy Hayden is suing Take-Two Interactive Software, makers of the NBA 2K video games, over the use of tattoos he made for LeBron James that were reproduced in games from 2016 to 2020. Hayden's attorney argues that Take-Two "painstakingly copied" the designs. Take-Two's team says that James' tattoos are a very small part of NBA 2K, and that James has licensed his own likeness to Take-Two, so a ruling in favor of Hayden would mean James would have to ask Hayden for permission to license his own being. Here are all the details, plus background on other cases in which tattoo artists have sued video game companies. What do you think?

https://flip.it/1.JDIf

#VideoGames #Gaming #GamesIndustry #LeBronJames #Tattoos #Law #Basketball #Technology #Sport

For more stories like this, follow @polygon's Gaming Magazine, @gaming.

gvrooyen,
@gvrooyen@c.im avatar

@CultureDesk @overholt @dancingtreefrog @dfrancis Here is an overview of Artist's Resale Right ("droit de suite") and the jurisdictions where it applies. It was a hot topic a few years ago when technologies to support it gained mainstream attention.

https://en.m.wikipedia.org/wiki/Droit_de_suite

gvrooyen, to programming
@gvrooyen@c.im avatar

One of the nicest new things I learnt since starting my journey are "expect tests". These are code tests where you don't have to define the expected result beforehand – the test runner figures it out for you!

It's a really nice replacement for that early tinkering with a bit of functionality where you just want to "print it out and see whether it looks right", especially where the output could be a fairly complex data type. OCaml's expect tests make it possible to capture the actual output, and adapt the test's "expectation" accordingly.

Everything uses the output's string representation, so you end up with regression tests that also document your functions' typical output representation very nicely.

To be clear, they're not a replacement for regular unit tests, but they're really useful for figuring out pieces of code where a bit of trial-and-error testing is needed.

Here's an excellent writeup of how they work and why they rock: https://blog.janestreet.com/the-joy-of-expect-tests/

gvrooyen, to programming
@gvrooyen@c.im avatar

I've started to use more and more for quick PoCs and tools at our company, mostly because it's quick to put something together, and because for certain applications (e.g. protocols, fintech standards) you end up with super-concise code that's surprisingly readable even to team members with no knowledge of the language.

Unfortunately, the post-PoC code will always be in a language that more team members will be able to write and maintain. But I try to work in my little bits of evangelism where I can 😏

gvrooyen, (edited ) to books
@gvrooyen@c.im avatar

My most profound read of the year was "The Making of the Atomic Bomb" by Richard Rhodes. Although I rarely check in on that other platform nowadays, I happened to see @mrnugget wax lyrical about the book. Since he personally recommended most of my other best reads of 2023 I knew I had to dig into it.

Occasionally a book, play, or film just reaches into your worldview and imposes a shift. This book did that for me; one of very few.

Atomic Bomb is not a new book – in two weeks it will be 38 years old. Nor is it a light read: The paperback weighs in at 896 pages. I read the excellent audiobook during runs and travels. The books are somewhat hard to get hold of.

"The Making of the Atomic Bomb" might be the greatest literary gesamtkunstwerk I have read. It's a historical work that reads like a novel. It's a collection of biographies that artfully dramatizes the subjects' lives. It's a book about science that makes much of nuclear physics wonderfully accessible. It's the best exposition of 20th century history I've found, including the Cold War. It presents political science in an accessible way. Towards the end, it confronts the reader with the terrible ethics of our capability, but without deigning to prescribe. Yet most of all, it is a beautifully philosophical work, and Rhodes has this Beethovian sense of pace where he can be describing an aspect of history in a scholarly tone for a while and then suddenly modulate into the philosophy of human nature.

Just picking a random example, here is Rhodes casually describing the young Niels Bohr's relationship with his brother, Harald:

"In my whole youth,' Bohr reminisced, my brother played a very large part ... I had very much to do with my brother. He was in all respects more clever than I.' Harald in turn told whoever asked that he was merely an ordinary person and his brother pure gold, and seems to have meant it."

In the very next paragraph, with a perfect sense of pace, Rhodes suddenly pulls the relaxed reader into philosophy, to segue into a scientific concept:

"Speech is a clumsiness and writing an impoverishment. Not language, but the surface of the body is the child's first map of the world, undifferentiated between subject and object, coextensive with the world it maps until awakening consciousness divides it off. Niels Bohr liked to show how a stick used as a probe – a blind man's cane, for example – became an extension of the arm."

From there the text flows from biography to science again.

I had read John Hersey's "Hiroshima" many years ago, but the latter part of "The Making of the Atomic Bomb" brought the reality home again much more deeply. I am left with that concern that as a society we are caught in Kundera's unbearable lightness of being, where the bloody events of the late 40s have turned into "mere words, theories, and discussions, have become lighter than feathers, frightening no one." There is an infinite difference between a Hiroshima that occurs only once in history, and a bombing that eternally returns.

Read this book.

gvrooyen, to random
@gvrooyen@c.im avatar

TIL that you can rename most Adobe Illustrator (.ai) files to a .pdf extension, and open it in your favourite PDF viewer

gvrooyen, to programming
@gvrooyen@c.im avatar

I'm evaluating for use in a project where the client requires a scriptable expert system for risk management.

I'm pretty thankful for my recent deep-dive into , since a better understanding of functional languages is certainly a good stepping stone to logic programming (a generalisation of functional programming).

For example, one of the "aha!"s in OCaml for me was that you can create most list processing functions from 1st principles with a tail-recursive cons, and that once you've derived fold you've got the Swiss army knife of data processing.

Similarly, this beautiful little Prolog program by Erik Schierboom on was an "aha!" for me, because it shows how succinct a fold can be. Here he's converting a string of binary numbers into its decimal equivalent as an integer.

Coming from the type inference here is sweet. Since foldl/4 has an integer as third parameter in the binary predicate, Dec must be an integer too for it to hold. Type inference seems to come almost as a given in logic programming. If it doesn't quack like a duck it isn't a duck, and the predicate is false.

prma, to rust
@prma@fosstodon.org avatar

Thinking of diving back into Ocaml – last time, I was chasing something more "pure" than Rust. Now, I'm on the lookout for a language with a speedy prototyping cycle and a Rust-like vibe. Does that click for you?

gvrooyen, (edited )
@gvrooyen@c.im avatar

@prma That clicks for me. I've been diving into OCaml over the past few months, and really enjoying it. I'm doing this year's in OCaml and looking at incorporating it into a couple of other projects.

Some impressions so far:

  • The core language is pretty tight. Much of what looks like syntax (such as the |> or <- operators) are simply defined in libraries through the core function definition syntax.
  • There are two main "dialects" of note: the Stdlib library that is available by default, and a wholesale replacement for Stdlib by Jane Street, Core (and its lighter subset, Base). It can be confusing at first when looking at documentation or examples that would work with the one but not with the other.
  • OCaml has all the type safety of a language like Rust, but the incredibly powerful type inference means that you seldom need to annotate variables or functions with their type. This can lead to really compact, readable code that almost looks like pseudocode.
  • This compactness, combined with a really mature toolchain (dune, ocamllsp, utop) leads to a very speedy feedback loop when prototyping. I find myself testing out ideas in the utop REPL before coding in my LSP-enabled editor. While you write a piece of code, the LSP's type checker constantly gives feedback on correctness. I find the "click" when the type checker is suddenly happy delightful. More often than not, once I run the code it just works.
  • "Expect tests" are a wonderful prototyping tool that allow you to "eyeball" output until it looks right, and then capture it as a formal regression test – and as in-test documentation of the expected output for a given test case. I love it.
  • In terms of "dialect", my personal preference is for the Jane Street libraries, which have extensive functionality and are battle-tested in a very demanding production environment.

The biggest downside to learning vs. is that it's hard to find and filter the right information. The ML languages have been around for decades, and advice from 15 years ago might not apply to your current libraries. There is no equivalent to the "Rust Book" that gives you the definitive, comprehensive overview of the language. The closest is "Real-World OCaml" (dev.realworldocaml.org) which is specific to the Jane Street libraries. I can highly recommend it.

gvrooyen, to random
@gvrooyen@c.im avatar

@mrnugget Vacation reading: I'm almost done with "The Dead Zone" by Stephen King and really enjoying it

Prior to that I read "Snow Crash" by Neal Stephenson which was incredible. The 1992 vision of the future is fascinating

gvrooyen,
@gvrooyen@c.im avatar

@mrnugget I've since finished The Dead Zone, and I really do like it a lot.

I hadn't realized while reading it that it's 35 years old - I honestly thought the second half was a "70s POV" stab at contemporary US politics.

I hesitate to comment on the narrative structure, lest I give plot points away. But I think it unfolds in a way that nods to classical writing.

There are also hints of themes that would later become 11.22.63, and some tie-ins with other early King novels. Definitely interesting if you enjoy the development of SK intertext.

gvrooyen, to gaming
@gvrooyen@c.im avatar

A rather one-sided review of my very favourite new medieval simulator. This is a game that just checks all of the right boxes for me, even in early access, and I've poured several happy hours into it. Can't wait to see how it develops towards its release!

Caveat ludor: I absolutely adore Dwarf Fortress too, so ymmv

https://mastodon.social/@arstechnica/112417753229720208

gvrooyen, to random
@gvrooyen@c.im avatar

OneDrive's "Your Memories from this Day" (on an account I only ever used for boring work stuff) remains the gift that keeps on giving.

Today I'm reminded of a particularly soulless lab refurnishing that happened ~15 years ago 🤷‍♂️

wrstscrnnm6, to programming
@wrstscrnnm6@mastodon.social avatar

I was getting an error "failed to allocate XXXXXX b"

I copy the number into wolfram alpha to see how much data that really is.

5.3 Zettabytes.

How the hell is this program trying to allocate the equivalent of ... all of the data sent over the internet in a year, five times over?

Somewhere between my terminal and the browser the string of numbers got doubled.

Never have I been so relieved to find out my program was only trying to allocate 53Gb of ram.

gvrooyen,
@gvrooyen@c.im avatar

@wrstscrnnm6 A pretty good demonstration of Amdahl's Law!

https://en.m.wikipedia.org/wiki/Amdahl's_law

gvrooyen, to neovim
@gvrooyen@c.im avatar

It took me a bit of fiddling around to figure out why my language server setup didn't play nicely with . I manage my language configs with the excellent Mason (which has deprecated Gleam support that worked for me for a while).

Turns out Mason isn't currently compatible with a language like Gleam where the LSP is part and parcel of the toolchain – see @lpil's explanation: https://github.com/mason-org/mason-registry/pull/3872

The solution is to simply manually add Gleam in your init.lua's "lspconfig": https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#gleam

Must say, I love Gleam's compiler and language server diagnostics: It feels so kind and helpful 😁

gvrooyen, to random
@gvrooyen@c.im avatar

Pet peeve: Online OTP verification forms that DON'T FOCUS the input field, so that when the text message arrives I start typing into the void 😠

gvrooyen, to random
@gvrooyen@c.im avatar

Night before the race vibes

gvrooyen,
@gvrooyen@c.im avatar

@andrewwade Hahaha I saw this just before I started running and had a very pleasant earworm for the first bit of the run!

It did turn out to be a bit of a mutterficker... The route was tough 😆

francoisvn, to random
@francoisvn@mastodon.social avatar

The red markings make it difficult to tick off this achievement list, but I'll make a best effort 👍

gvrooyen,
@gvrooyen@c.im avatar

@francoisvn @gcaw This is not a ladder of honor

nicd, to random

For the past month or two I've been working on my blog's rewrite again. This past weekend I finally published the static blog generator I wrote since it's actually something someone else might use too: https://hexdocs.pm/scriptorium/index.html

It's written in and requires some Gleam knowledge to set up, but not much for a basic blog that works like mine.

My blog as an example: https://blog.nytsoi.net/
Or the Scriptorium demo blog: https://nicd.gitlab.io/scriptorium_blog

I'm currently writing a user's guide to describe various features, since the API documentation is very opaque to approach on its own. I also need to fix some frontend issues; it mostly looks good but there's still some problems like widening of the mobile layout.

It was a lot of fun to write, the Gleam community is a great help and the resulting static site is super fast (at least for me as the server is geographically very close :p). And writing posts is easier than it used to be, and git compatible. My blog's git repo isn't public, though.

I'd love to hear if anyone has any thoughts on it, or feedback on the default theme for example. I know there's things to fix and imperfections. I tried going over it with VoiceOver to ensure the structure advances logically and the navigations are understandable.

gvrooyen,
@gvrooyen@c.im avatar

@nicd I'll definitely do so! I added an issue on gitlab about a minor lustre quirk I ran into when I first tried to build the "hello world" blog.

Happy to contribute where I can. A Gleam project that converts Markdown to tight, clean, semantic HTML + Atom really pleases me.

gvrooyen,
@gvrooyen@c.im avatar

@nicd Oh man, finally got around to checking this out, and it looks brilliant! I've been looking for something like this for a while and was considering making a Gleam project like this myself – definitely going to play around with it!

⭐⭐⭐⭐⭐

gvrooyen, to keyboard
@gvrooyen@c.im avatar

After about 6 months of research and fretting, I finally got myself a decent entry-level mechanical keyboard!

Oh man, I can't believe how much satisfying it makes everything from coding to writing documents and emails. I'm actively looking for excuses to spend more time on projects 😁

I would definitely rather drop $110 for a device on which I spend most of my day, than pay a huge premium for a fancier car in which I'd spend the occasional commute or weekend travel.

I opted for the Keychron V6 modular keyboard with red (linear) switches. Thanks to @cpbotha for helping to narrow it down. This seemed like a great base design for future experiments ⌨️

Now to wait and see how long before I want to start modding...

#keyboard

gvrooyen, (edited )
@gvrooyen@c.im avatar

@cpbotha Absolutely loving it! Problem is that I now already have diagrams like the following open in tabs while I plan my next move...

gvy_dvpont, to random
@gvy_dvpont@mastodon.social avatar

If I ever find myself in charge of a conference, I'm docking 30 seconds of each presenter's talk and forcing them to choose a walk-up song

gvrooyen,
@gvrooyen@c.im avatar

@gvy_dvpont Oh man, a hashtag meme would be brilliant

gvrooyen, to random
@gvrooyen@c.im avatar

Oh man, releasing a character creator demo for an upcoming grand RPG is such compelling marketing.

I just spent the better part of an hour fine-tuning my Arisen for and I just want to order. right. now. 🎮

dmbaturin, to Bloomscrolling
@dmbaturin@functional.cafe avatar

Flowers growing out of cracks in stone walls is certainly some kind of a metaphor, but I’m not sure what exactly the metaphor is for. ;)

#bloomscrolling #florespondence

gvrooyen,
@gvrooyen@c.im avatar

@dmbaturin The old cliché is that the cracks in your facade is where the beauty shines through. It's trite, but I can't help thinking of it each time I see a wild flower growing out of a broken tar road.

gvrooyen, to StarTrek
@gvrooyen@c.im avatar

The 13yo and his best bud are lounging on the couch watching the Original Series . There's the occasional guffaw at some anachronism, but they seem to be having the greatest Friday night chilling to SciFi.

The series is almost 60 years old. I remember watching it with my dad as a preteen in the early 80s.

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