janriemer

@janriemer@floss.social

Software Engineer with an incredible thirst for knowledge, who shares that knowledge with others, so that they can become their best selfs.

Interested in #Rust, #WebAssembly, #TypeScript, #OpenSource, #WebDev, #WebDesign and a lot of other interesting stuff.

Let's have some deep conversations about interesting topics. 🙂

I'm open-minded, but also hold strong opinions.

Dare to think for yourself.

Be kind.

Strive for excellence.

(moved from mastodon.technology - on Mastodon since Feb 2019)

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

inthehands, to random
@inthehands@hachyderm.io avatar

Less about tools that boost productivity, more about tools that reduce total workload.

inthehands,
@inthehands@hachyderm.io avatar

Specific line of thought to illustrate my general point:

Consider an LLM that helps manage email correspondence. It writes emails! It summarizes emails! Less reading! Less typing! More messages faster! Productivity boost!! Except:

  • You have to babysit the LLM, guide it and check it to make sure it’s accurately preserving human intent (which is, after all, the whole point of communication…right??). That’s new work, and likely cancels out the slim time savings of reduced reading and typing.

2/

inthehands,
@inthehands@hachyderm.io avatar
  • But it's an LLM, so it’s still often wildly, convincingly incorrect. Miscommunication increases. Miscommunication has costs. Miscommunication generates new work. Which now gets done faster! And generates yet more work!

  • IT staff has to administer the LLM, support the LLM, evaluate vendors, yada yada.

  • People have to maintain the LLM itself, and the infra that supports it. Those costs are •large•.

3/

inthehands,
@inthehands@hachyderm.io avatar

And if by some magic all of this actually spins up and gets working, then (1) the barrier to communication decreases (why not just send another email if it’s automated?), (2) individual communication load increases (because you can answer emails at a faster rate), and (3) the net efficiency of communication decreases (because of everything in the previous two posts).

Sound and fury, signifying nothing.

4/

inthehands,
@inthehands@hachyderm.io avatar

I said “reduce total workload.” What are some thing that accomplish •that•?

“Do we really have the problem we think we have?”

“There’s a simpler way.”

“Work from home!”

“Hmm, I’m going to think about my reader, and edit for clarity and emotional impact before sending this email.”

“We’re willing to pay for experience / expertise.”

“Things are going well. No need for you to stick around!”

“Maybe we don’t need to do this thing anymore. We can just choose not to have this problem.”

/6

inthehands,
@inthehands@hachyderm.io avatar

As both a software developer and a teacher, I’m increasingly interested in figuring out which costly things are avoidable, or can be simplified, or •just don’t matter•…and then doing less of them.

Breathing room can be a form of efficiency too. And it’s a more humane one.

Less about tools that boost productivity, more about tools that reduce total workload.

/end

datarama,
@datarama@hachyderm.io avatar

@inthehands I don't think tools can reduce total workload. That is not what tools can do, so the people selling tools are necessarily selling increased productivity. It only functionally leads to reduced workload when a tool has become so effective at increasing productivity that the human has been automated away almost entirely. (Eg. a washing machine).

What reduces total workload when total automation isn't possible or desirable isn't tools - it's social processes.

soller, to random
@soller@fosstodon.org avatar

I wrote a PDF reader with libcosmic yesterday. While it is very basic and not likely to be ready for the first COSMIC release, it is pure rust, lightweight, GPU accelerated, and highly portable.

ekuber,
@ekuber@hachyderm.io avatar

@lw64 @soller parsing is precisely one of those libraries that I appreciate being done in Rust. It's its raison d'être. Parsing untrusted input in a language that can easily turn malformed input into runnable code has historically being an endless source of security issues.

laund,
@laund@hachyderm.io avatar

@lw64 @soller to elaborate, when @ekuber says "It's its raison d'être" about parsers, i think this quote is relevant:

> Do you know Mozilla’s secret solution to writing really complicated permissive parsers in C++?
> We stopped doing it.
> We developed Rust and ported our nastiest parsers to it.

just thought i'd add that context.

infobeautiful, to DataViz
@infobeautiful@vis.social avatar

If the whole history of the Earth was squeezed into one day...

via: https://flowingdata.com/.../history-of-earth-in-24-hour.../

faassen, to rust
@faassen@fosstodon.org avatar

I wonder how to best describe how 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,
@faassen@fosstodon.org avatar

Since dynamic dispatch is uncommon, you might think traits are less common, but they are not, especially default ones. Because they are used to define how generics fit together statically. Generics are interesting as they are highly abstract yet what happens in runtime is very concrete - no action at a distance.

2/n

ekuber,
@ekuber@hachyderm.io avatar

@faassen One thing about traits is that it makes thinking about Rust code closer to how I think about relational databases.

I am reminded of

"Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious." -- Fred Brooks, The Mythical Man Month (1975)

which significantly shaped how I think about problems. Traits + ADTs put you in the same frame of mind.

alcinnz, to random
@alcinnz@floss.social avatar

Yesterday I discussed collaboratively editing text, but there's other things you might want to edit!

Implementation notes: I'd keep the data in RAM in its sorted & compressed form, only decompressing it transiently for processing & modifying. Zipping from columnar format into "edit" rows would be most involved step.

For instance we'd want to edit not only individual files but whole directories of them! And the attributes attached to each of its files!

1/?

alcinnz,
@alcinnz@floss.social avatar

To implement such a "mapping" CRDT we can define an operation which sets the value at a given key to a given value, possibly to a "tombstone" value to indicate deletions. The problem comes when 2 peers attempt to set the same key to different values!

If we track our understanding of the latest edits our peers are aware of (a "lampart timestamp"), storing that in our edits' metadata, we can establish a causal ordering to these edits. When that fails we can compare peer IDs.

2/?

alcinnz,
@alcinnz@floss.social avatar

This causal sort is also vital for ordering text insertions!

Talking about text... Lists would be implemented basically the same way but with greater freedom regarding which data you can store in each node.

We may want to incorporate counters, by summing all the nudges up/down collaborators have made.

And once we have collections we'd want to store numbers, constant strings, booleans, etc in them. Combine these datatypes and we should be able to define most other CRDTs you might want.

3/4!

chriskrycho, to random
@chriskrycho@mastodon.social avatar

Is there a Cargo equivalent to npm why (and its yarn and pnpm equivalents)? I am trying to figure out why a transitive optional dependency is getting pulled in despite having the optional feature which brings it in disabled in the intermediate dependency. 🤔

kornel,
@kornel@mastodon.social avatar

@chriskrycho cargo tree -i dep
and cargo tree -e features

chriskrycho,
@chriskrycho@mastodon.social avatar

Asked and answered (though it took two social networks to fully cover it! 😂): https://v5.chriskrycho.com/journal/using-cargo-tree/

PixelOccult, to random
@PixelOccult@mastodon.social avatar

I guess people are chatting about Linux v Windows v Apple so for my two cents:

I have an older gaming laptop with a 2060 Nvidia graphics card that I’ve been running ubuntu on for years. It has a second hard drive running windows if I need it for some reason but I haven’t booted into it in 6+ months(I think?). In Linux I can run Steam and with Proton it plays Cyberpunk 2077, Baldur’s Gate 3, Persona 3 Reload, and many many more games without issue. /1

nrc, to random
@nrc@hachyderm.io avatar

I added a navigation menu to the site (e.g., on https://ncameron.org/about). It appears when you scroll down on desktop and expanded from the hamburger on mobile. What do you think?

Patricia, to random
@Patricia@vivaldi.net avatar

I do JavaScript, CSS and C++ to keep myself humble.

jbzfn, to random
@jbzfn@mastodon.social avatar

Weapons of Mass Disinformation

chriskrycho, to random
@chriskrycho@mastodon.social avatar

A habit I developed over the past few years, after too many instances of losing work to accidental browser tab closure, browser updates, etc.:

Never write a GitHub issue (e.g.) in the browser text field. Use a desktop text editor; copy and paste it in when you are done.

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