chore(markdown): 2024q2 newsletter draft
This commit is contained in:
parent
3505c72d92
commit
c44dac26ec
1 changed files with 287 additions and 0 deletions
287
markdown/org/newsletter/2024q2/en.md
Normal file
287
markdown/org/newsletter/2024q2/en.md
Normal file
|
@ -0,0 +1,287 @@
|
|||
---
|
||||
date: "2024-04-01"
|
||||
edition: "2024q2"
|
||||
intro: "Welcome to the 2024 Spring edition of the FreeSewing newsletter."
|
||||
title: "2024 Spring edition"
|
||||
---
|
||||
|
||||
Welcome to the 2024 Spring edition of the FreeSewing newsletter.
|
||||
|
||||
Here's what we've got for you today, no joke:
|
||||
|
||||
- 👕 FreeSewing 3.2 brings Tristan, Lumina, Lumira, and more (3-minute read by joost)
|
||||
- 📨 Email just got harder, again (1-minute read by joost)
|
||||
- 🕸️ Building FreeSewing's web of trust in the wake of the XZ backdoor attempt (5-minute by joost)
|
||||
- 🤔 How FreeSewing's challenges have shifted over time (2-minute read by joost)
|
||||
|
||||
|
||||
Shall we get started?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## 👕 FreeSewing 3.2 brings Tristan, Lumina, Lumira, and more
|
||||
|
||||
We released FreeSewing v3.2 earlier during Q1 2024 and it includes 3 new
|
||||
designs, as well as a range of bug fixes and improvements.
|
||||
|
||||
Let's have a look at the highlights:
|
||||
|
||||
### The Tristan Top
|
||||
|
||||
First up, there is [the Tristan Top](https://freesewing.org/designs/tristan). Tristan is a top with princess seams and (optional) lacing at front or/and back. It’s origin story is the need for a costume for a Renaissance festival, so that is probably a good indicator of what to expect.
|
||||
|
||||
Tristan was design by Natalia who also [wrote a blog post about the new Tristan design](https://freesewing.org/blog/our-newest-design-is-the-tristan-top), so that's a great place to get all the details about this new design.
|
||||
|
||||
### The Lumina and Lumira Leggings
|
||||
|
||||
I’ll give you a second to scan that title again, but yes there are two different leggings patterns with similar names: [the Lumira Leggings](https://freesewing.org/designs/lumira) and the [Lumina Leggings](https://freesewing.org/designs/lumina).
|
||||
|
||||
Both were born out of Wouter’s desire for good cycling gear, and I suggest you check out the designer notes for both [Lumina](https://freesewing.org/designs/lumina#notes) and [Lumira](https://freesewing.org/designs/lumira#notes) to fully appreciate the difference between these designs, why they differ, and what would work best for you.
|
||||
|
||||
### Bug fixes and improvements
|
||||
|
||||
Regular readers of the newsletter will know that we continiously roll out
|
||||
improvements on FreeSewing.org and that those are not tied to a new release,
|
||||
but it's a good opportunity to list them so here are some highlights of the bug
|
||||
fixes and improvements that went into the 3.2 release:
|
||||
|
||||
- Sandy has [a new panels
|
||||
option](https://freesewing.org/docs/designs/sandy/options/panels) that was
|
||||
added by [Paula](https://github.com/freesewing/freesewing/pull/5861). You
|
||||
could aways create your circle skirt out of a number of a similar patterns by
|
||||
doing the match yourself, but now the pattern will take care of that for you.
|
||||
- What started out as [a bug report for the biceps ease on
|
||||
Jaeger](https://github.com/freesewing/freesewing/issues/5999) ended with a
|
||||
change to the way the armscye is calculated on Brian, in particular the depth
|
||||
of the armhole. Given that Brian is our most foundational block, this will
|
||||
have ripple effects on many other designs, you can expect that out-of-the-box
|
||||
the armscye will reach a bit lower.
|
||||
- In [Carlton](https://freesewing.org/designs/carlton) — and thus in
|
||||
[Carlita](https://freesewing.org/designs/carlita) — we have fixed and issue
|
||||
where the seam allowance on the undercollar was incorrectly drawn.
|
||||
- In [Charlie](https://freesewing.org/designs/charlie), the back pocket welt
|
||||
(4) and front pocket facing (8) incorrectly indicated to cut 2 instead of 4
|
||||
in the cutlist. This too is resolved.
|
||||
- In [Hugo](https://freesewing.org/designs/hugo), we fixed a bug that caused
|
||||
the design to error when the complete setting was off, and we fixed an issue
|
||||
where the front pocket opening would get increasingly narrow as the hip
|
||||
circumference increased.
|
||||
- We’ve added a new
|
||||
[Path.combine()](https://freesewing.dev/reference/api/path/combine) method to
|
||||
[our core API](https://freesewing.dev/reference/api). Its origins lie in a
|
||||
discussion in [issue
|
||||
#5976](https://github.com/freesewing/freesewing/issues/5976) which was
|
||||
originally filed as a bug report about how Path.join() connects gaps in the
|
||||
joined paths — caused by either `move` operations, or a difference between
|
||||
the end and start point of joined paths — to be filled in with a line
|
||||
segment. That behaviour is expected/intended, but we’ve added
|
||||
`Path.combine()` to faciliate the other behavior: Combining different paths
|
||||
into a single Path object without alterning any of its drawing operations.
|
||||
- The [title macro](https://freesewing.dev/reference/macros/title) now can be
|
||||
configured with a `notes` and `classes.notes` setting in its config, allowing
|
||||
designers to add notes to (the title of) a pattern part.
|
||||
- Our [i18n plugin](https://freesewing.dev/reference/plugins/i18n) now supports
|
||||
now supports translation of nested arrays of strings, which gives designers
|
||||
more flexibility to concatenate translated parts of strings.
|
||||
|
||||
The [FreeSewing 3.2 announcement blog post](https://freesewing.org/blog/v3-2-0) has all the details.
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
## 📨 Email just got harder, again
|
||||
|
||||
If you are reading this in your inbox, and not an archived copy on
|
||||
FreeSewing.org, then we were able to deliver this email to you, which is good
|
||||
news.
|
||||
|
||||
What you may not realize is that doing so is not exactly trivial, and hasn't
|
||||
been for years. But recently, things have gotten even more complex. Gmail
|
||||
(Google) and Yahoo for example have [implemented new restrictions in the first
|
||||
quarter of
|
||||
2024](https://www.xomedia.io/blog/a-deep-dive-into-email-deliverability/) which
|
||||
requires additional work on our end to maximize the chances of this email
|
||||
actually landing in your inbox.
|
||||
|
||||
Furthermore, so-called _bulk email senders_ are subject to the most stringent
|
||||
checks. If you send 5000 messages a day, you are considered a bulk sender and
|
||||
will be subject to extra scrutiny. As this newsletter has about 14k
|
||||
subscribers, we are being held to the highest possible standards.
|
||||
|
||||
Obviously, nobody likes spam, and I am not advocating against these rules.
|
||||
It's just that the amount of time and effort required to make something as
|
||||
seeminly trivial as sending out an email work at scale is ever-increasing as
|
||||
the internet trends towards a de-facto pay-to-play model.
|
||||
|
||||
For now, I am still making those efforts, and hopefully they proved sufficient
|
||||
to get this to your inbox. But it's something we may need to revisit at a later
|
||||
time if it becomes an increasing strain on our limited time and resources.
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 🕸️ Building FreeSewing's web of trust in the wake of the XZ backdoor attempt (5-minute by joost)
|
||||
|
||||
Depending on where you get your news from, you might have heard or read about
|
||||
[the backdoor attempt of the xz compression
|
||||
utility](https://arstechnica.com/security/2024/03/backdoor-found-in-widely-used-linux-utility-breaks-encrypted-ssh-connections/).
|
||||
|
||||
In a nutshell, a malicious actor attempted to introduce a backdoor in this
|
||||
utility, which ultimately was an attempt to smuggle a gated RCE exploit into
|
||||
SSHd.
|
||||
|
||||
Or, in [ELI5](https://en.wiktionary.org/wiki/ELI5) terms: Somebody contributed
|
||||
code to a small library that had nefarious intent. It was done in a sneaky way
|
||||
and the ultimate target was not the library itself, but rather another software
|
||||
project that uses this library: The Secure Shell Deamon. A _daemon_ is just a
|
||||
cooler word for a _service_ on a computer, because why not make things cooler.
|
||||
This particular daemon or service, the _secure shell_ daemon is responsible for
|
||||
handling secure shell (SSH) connections. It's the gold standard for remote
|
||||
management of Linux (and unix) systems.
|
||||
|
||||
The code smuggled in a gated RCE backdoor. RCE stands for _remote code
|
||||
execution_, meaning it allows you to _do stuff_ remotely without needing to
|
||||
authenticate or anything. Or to put it differently, it allows one to control
|
||||
a remote computer system they normally should not have access to.
|
||||
The fact that it is _gated_ means that the author of
|
||||
the malicious code took steps to ensure that only they could use the malicious
|
||||
code. Like a backdoor with a key.
|
||||
|
||||
It's hard to overstate the gravity of this attempt at backdooring essentially
|
||||
every Linux system on the planet. It's not only the world's most widely used
|
||||
operating system, its dominance of server operating systems is overwhelming.
|
||||
Or as I often say: _Anything that matters runs on Linux_.
|
||||
|
||||
This is an ongoing story and I for one am hoping it will be made into a Netflix
|
||||
mini-series starring David Cross in the role of [Andres
|
||||
Freund](https://github.com/anarazel), but I digress. This is the FreeSewing
|
||||
newsletter, so I wanted to lift something out of this story that I think
|
||||
is relevant to FreeSewing, or really to any open source project out there.
|
||||
|
||||
### Maintainer burnout and the long con of gaining trust
|
||||
|
||||
One of the fascinating elements of this story is _who_ contributed the changes,
|
||||
and why they were accepted without sufficient scrutiny to reveal the malicious
|
||||
intent of the contribution.
|
||||
|
||||
Because the user who made them had been contributing for __years__ to the project
|
||||
and in light of this work had risen in status to a level where there was a lot
|
||||
of implicit trust based on their work, despite knowing next to nothing about
|
||||
who or what goes behind username `JiaT75` (in this case). Such a _long con_ is
|
||||
a significant investment of time and effort, so the currently held assumption
|
||||
is that this was a nation-state actor (think NSA or some other country's
|
||||
equivalent). It's also important to note that the xy maintainer was having a
|
||||
hard time dealing with the long tail of responsibilities of maintaining
|
||||
software and was actively looking for help to stave off burnout. It's a
|
||||
scenario that is shockingly common across open source projects and creates a
|
||||
situation where malicious actors can all too easily take advantage of exhausted
|
||||
maintainers desperate to offload some of the work.
|
||||
|
||||
### Establishing a web of trust
|
||||
|
||||
This problem of *who can you trust* is of course not new. One way to counter it
|
||||
is by establishing a _web of trust_. This is how things are done in larger
|
||||
open source software projects involving many volunteers, such as [the Debian
|
||||
project](https://www.debian.org/).
|
||||
|
||||
In practical terms, such a web of trust is built upon relationships between
|
||||
people who know and have verified each other's true identity. For example,
|
||||
there's a number of people in the FreeSewing community that I have met in real
|
||||
life. We've not merely met face to face, but have spent time together, we know
|
||||
where we live, we know each other's partners or family, or have some other
|
||||
tangible way that provides a high level of assurance that this person really is
|
||||
who they claim to be.
|
||||
|
||||
Those people, in turn, can have similar connections with others who they know,
|
||||
have met, and trust to a level that goes well beyond the online world. This
|
||||
creates a web of trust where you can trust your friends, and the friends of
|
||||
your friends and so on.
|
||||
|
||||
In light of current events, and in acknowledgment of the rapid accelaration of
|
||||
what is possible with generatative artificial intelligence, FreeSewing will
|
||||
henceforth restrict all write access or elevated privileges to community
|
||||
members who are part of FreeSewing's web of trust.
|
||||
|
||||
We will of course continue to accept -- or rather review -- contributions from
|
||||
everyone. But permissions that unlock the potential to do harm will be
|
||||
restricted to people for whom trust has been established AFK (away from
|
||||
keyboard).
|
||||
|
||||
In order to facilitate building such a web of trust, we will start documenting
|
||||
these connections between people. This will allow people who are looking to
|
||||
take on more responsibilities within FreeSewing to look at its web of trust and
|
||||
see who lives close to them so they can hook in to our web of trust through
|
||||
that person.
|
||||
|
||||
I realize that FreeSewing is extremely unlikely to be the target of a backdoor
|
||||
attempt by a nation state actor, but adopting best practices and being
|
||||
transparent about how we do things is a good idea regardless.
|
||||
|
||||
So, I will start building and documenting this web of trust over the next couple
|
||||
of weeks, and review all access control and permissions to make sure we are
|
||||
doing everything we can to prevent even the most dedicated actors from poisoning
|
||||
the well.
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 🤔 How FreeSewing's challenges have shifted over time
|
||||
|
||||
Did you know that [FreeSewing v1 was released 7 years and 7 days
|
||||
ago](https://freesewing.org/blog/announcing-freesewing)? Since that time we've
|
||||
made many changes big and small, and our core library and plugin system have
|
||||
matured into a reliable -- and certainly opinionated -- way to design parametric
|
||||
sewing patterns.
|
||||
|
||||
The challenges that are most interesting from a technical point of view have
|
||||
been more or less solved. What's left is the user-facing side of things, or
|
||||
the user experience (UX) as we like to call it.
|
||||
|
||||
FreeSewing can do a lot, so how make all of that functionality available to the
|
||||
users without overwhelming them? Is that even possible on mobile, which is the
|
||||
dominant way in which people go online now. How do you create it an intuitive experience,
|
||||
or guide someone who arrives on FreeSewing.org after a _free sewing patterns_
|
||||
Google search towards an understanding of what FreeSewing is and does in the handful of
|
||||
seconds that people are likely to give it a chance before moving on to the next
|
||||
link in their search results.
|
||||
|
||||
To be clear: I do not know the answer to these questions. But it is
|
||||
increasingly what we spend our time on. The percentage of people out there who
|
||||
use our software directly is insignificant compared to the amount of people who
|
||||
(only) consume our software through our website. For most visitors, FreeSewing
|
||||
__is__ a website and if it is anything else, that is probably not clear to them,
|
||||
or even relevant.
|
||||
|
||||
Obviously there is room for improvement, but often there is no one obvious path
|
||||
forward. Perhaps -- or should I say almost certainly -- this is an area where I
|
||||
lack the talent or skill to come up with some sort of grand overarching
|
||||
strategy. But I find myself second-guessing a lot of my own ideas or impulses
|
||||
in this area.
|
||||
|
||||
So, I was wondering if we could do a little experiment. An experiment where I
|
||||
ask you -- my dear reader -- a simple question. Are you ready for it? Here
|
||||
is the question:
|
||||
|
||||
|
||||
> **What is FreeSewing?**
|
||||
|
||||
I'd love to hear your answer. You can simply hit reply to let me know.
|
||||
|
||||
<small>_PS: I burried this question at the end because I feel if you read through all of
|
||||
what came before, I probably want to hear your thoughts._</small>
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue