mwilliamson
Joined 16 years ago
Joined 16 years ago
For packages where I do include tests, I've had at least one user request that I remove tests so that the footprint of the Docker image they're building is smaller.
Both are entirely reasonable requests, but package repositories don't really provide a good way of accommodating both at the same time, for instance, by allowing a separate upload of the dev gubbins such as tests.
My (perhaps overly simplistic) take would be that we should take the thinking we use on the product itself (Who's going to use it? In what context? What would they already know? And so on), and apply and adapt it to the docs as we would any other product.
So, I had a go at making a little tool that lets you quickly make rough sketches of the map, as well letting you move tokens (for the characters) around. It's not particularly fancy, but it seems to work for us!
1. I think it's worth considering how much the Baumol effect is responsible for the price changes described. Specifically: we'd expect those industries that don't benefit from improved productivity (for instance, because AI doesn't actually meaningfully help with most parts of the work) to experience price rises, since they're competing in the labour market with other sectors that have have benefited from improved productivity, and can therefore pay workers more.
Or, to put it another way, you'd expect this effect to some degree in a market operating entirely without restriction.
https://en.wikipedia.org/wiki/Baumol_effect
2. If I remember correctly, in the past, when technological innovation eliminated jobs, the new ones that sprang up generally meant a rise in wages across the board. In other words, the overall effect was low-paid jobs being replaced with higher-paid jobs.
No more. In recent years, the graph of wages of replacement jobs looks more like a U-shape: they tend to either be low-paid or high-paid. For instance, take translating a textbook. A company might decide to fire their moderately well-paid translators with a steady job, and replace them with AI (built by another company, using a smaller number (per book) of high-paid tech workers), plus some low-paid, proof readers to fix up the mistakes. And the latter group is probably precariously employed: the better the AI gets, the less they're needed. And they're probably seen as lower skilled and therefore easier to replace by the company, so perhaps their jobs look more like precarious gig economy jobs.
That's a simplification, but I think the evidence suggests that that U-shape is a pattern that, very broadly, holds true. So, we might not be unemployed, but we might have a lot of people with falling incomes and much lower job security.
(Apologies, writing this in a hurry, so can't find a source right now!)
I run a tabletop RPG for some friends over the Internet using Roll20. As a player in other (in-person) games, there have been times where we've collaboratively made a map as we've gone along rather than the GM providing one, and I wanted to be able to provide a similar experience for my players. Since we found Roll20 didn't really work for this use case, I'm cobbling together an app that tries to make the experience as fluid as possible. It's only really intended for my group when I'll be on hand to explain how it works and I'll be the only one deploying it, so the docs are somewhat sparse, but in case anyone is interested:
https://github.com/mwilliamson/ttrpg-map-sketcher
I've also been working on a compiler for the most boring programming language in the world: https://github.com/mwilliamson/clunk
I maintain a library with ports to multiple languages (JavaScript, Python, Java). They have very similar structure, which means doing the same thing in pretty much the same way three times each time I make a change.
The idea I wanted to test with my language is: is it possible to extract a common subset that compiles into reasonably idiomatic code for those target languages? The compiled interfaces should be sensible (i.e. use of the code from the target language should be as good as if written in the target language directly), while implementations can be a little less tidy, but ultimately still readable and easily refactorable if the user ever decides to eject from my language and write everything in the target language(s) instead.
I doubt I'll ever use it in anger, and since it's nowhere near ready for use of any kind there aren't really any docs. In the unlikely event someone is interested, the most illuminating thing to look at would be the very beginnings of the reimplementation of the aforementioned library. Since I use snapshot testing with examples, you can see the source code, generated code and result of running the compiled test suite in one file:
Java: https://github.com/mwilliamson/clunk/blob/main/snapshots/%5B... Python: https://github.com/mwilliamson/clunk/blob/main/snapshots/%5B... TypeScript: https://github.com/mwilliamson/clunk/blob/main/snapshots/%5B...
Remote: Yes, or hybrid/office in Cambridge
Willing to relocate: No
Technologies: Most recent experience is with Python, TypeScript, React, GraphQL and PostgreSQL, but I've also worked with C# and Java. Happy to learn new things too!
CV: Available on request
Email: [email protected]
I've worked for the last 12 years as a full stack web developer. That includes building backends, frontends, APIs, data ingestion tools, infrastructure in AWS.
I've worked in various domains, such as education and biotech. I'd like to contribute to something that improves the world in some way. That might be the obvious stuff like helping students learn or finding treatments for cancer, or it might be something less glamorous like working on database technologies. It probably isn't working on blockchain or in fintech.
I enjoy working in cross functional teams: that is, I like teams that have all the skills needed to consistently deliver business value, whether that's typical software roles like developers and designers, or something more domain-specific such as pharmacologists.
If you're just looking for someone to pick up tickets and churn out code, I'm probably not a good fit. I'm interested in the wider team and company goals and strategy, and would like to work in a team where everyone can contribute to product thinking, rather than (for instance) having a product manager that writes all of the tickets. In the past, I've built internal tools and worked with the domain experts that use the tools to work out what problem to solve next, and what the next most valuable increment to build would be.
I'm also interested in how people and teams collaborate. For instance, in my experience, meetings are often unstructured chatting, or have one or a small number do the vast majority of the talking. This means that many people don't meaningfully contribute -- frustrating for them, and a loss to the group as a whole -- and decisions aren't made, aren't clear, aren't understood, or aren't widely supported. I've successfully used techniques such as those in the Gamestorming book and Liberating Structures to add structure that allows everyone to contribute, for a range of options to be discussed and considered, while reaching a clear decision at the end.
I've tended to work in smaller organisations since much of the above tends to happen naturally in those circumstances, but I'd be open to working anywhere that's a good fit and treats its people as more than fungible units of resource production.
One thing I'm curious about is how other people are handling the resolution of the screen on Linux? It doesn't seem like XFCE currently supports fractional scaling well, so I ended up defining a custom 3:2 resolution and using that to increase the size of everything by about 1.5x.
E-mail: [email protected]
Blog: http://mike.zwobble.org/
GitHub: http://github.com/mwilliamson