profile picture

Sophia June Turner's blog

Worst part of being trans

March 25, 2024 - 325 words - 2 mins
I'm sitting here, reading a book, thinking about the road ahead for me as a trans woman. It feels like I can already tell what's likely the worst part of being trans, at least so far. You might think it's the bullying. I definitely experienced some of that. Or maybe it's friction with the family. I … read more

One year on HRT

March 23, 2024 - 1839 words - 10 mins
Today marks one year on HRT. A year ago, I remember nervously sitting across from my doctor as she typed up the script that I'd pick up minutes later. I remember the fear of getting started, the trepidation of putting new chemicals into my body with unknown consequences. Along with that fear, a kind… read more

Books read in 2023

December 31, 2023 - 2302 words - 12 mins
2023 was the year I managed to rediscover my love of books and reading. Once I got turned on to the array of trans and sapphic books available, it was like I couldn't get enough. Below is the list of the books I read this year, sorted by author, loosely in the order I read them. One note before I be… read more

Becoming Sophia

December 08, 2023 - 2779 words - 14 mins
I started thinking this year what a "Year in Review" might look like, but to be honest, I've had one bright theme running through it that I kept coming back to: being trans. This post then will be some reflections of the year with that in mind. Getting clean The year started off with me re… read more

The case for Nushell

August 30, 2023 - 2915 words - 15 mins
Recently, I had a chat with some of my friends about Nushell and why they stuck with traditional shells like bash/zsh or the "new" hotness like fish rather than using Nushell. After chatting with them, my brain kept bubbling away at the state of how folks were using their terminals and the… read more

Happy pride! I'm trans!

June 26, 2023 - 1235 words - 7 mins
Hi, I'm trans. Let's talk about it! Note: In this blog post, I talk about the medical side of my particular kind of transgender experience. If that's not your thing, feel free to skip. A long time in the making The first time I looked up anything trans-related was in my early 20s. I didn't know it a… read more

Why I left Rust

May 28, 2023 - 1224 words - 7 mins
There's a lot of speculation about why I left Rust yesterday, so I want to set the record straight in this post. What happened A short timeline of what happened from my perspective, as this is relevant for later: A request went out to the interim leadership group for potential keynote speakers for … read more

Making a keyboard layout

February 22, 2023 - 931 words - 5 mins
It all started innocently enough. I had gotten interested in more efficient typing at first by learning about different keyboards and what they offered. I was intrigued. Except there was one small problem: fancy keyboards are expensive, especially to import into New Zealand. So, I took a different r… read more

YouTube addiction, one month sober

February 13, 2023 - 1576 words - 8 mins
Today marks my first month clean from YouTube. It was the right choice, but that's not to say it was easy. Let's talk about it. Quitting When I decided to do something about my addiction, I had a few choices: Cut back the amount I was watching Quit cold turkey They both have their pluses and minus… read more

YouTube Addiction

January 13, 2023 - 1292 words - 7 mins
Hi, I'm a YouTube addict. I know what you're thinking. That sounds like a joke. That you want a funny punchline to go with it. Me too. First time I noticed Truth is, though, I've had a problem for a while. I first noticed it back in 2011. Back then, I could feel it growing. I would spend something l… read more

The goal is to nourish

December 23, 2022 - 826 words - 5 mins
I just finished watching the movie called Stutz, a movie created by Jonah Hill about his psychiatrist. Through the movie, Stutz gives bite-sized practices drawn from Buddhism, psychiatry, and his own experiments. One of the themes is to accept that connection is the goal (connection with others, our… read more

Autism is everywhere and in everything

July 13, 2022 - 1303 words - 7 mins
I've been thinking recently about being on the Autistic spectrum. But first, some trigger warnings: topics include some talk of sex and gender, emotional pain, burnout. I thought it was about sexuality, or gender, or... I've wanted to talk about this for a long time. Before coming out as non-binary,… read more

How we judge things

June 23, 2022 - 786 words - 4 mins
I've been thinking recently... The good, the bad, and the average Do you ever wonder about how we judge things? By this I mean, let's say we go to a restaurant with a friend. The meal is going well enough, then towards the middle of the meal we try our friend's dish. Wham! It's amazing! How do we ju… read more

Scripting languages of the future

October 31, 2021 - 1116 words - 6 mins
I've been thinking recently about what the future for scripting languages could look like. We've had a good run with Python, JavaScript, and Ruby for the last few decades. I wondered, what might the next few decades look like. What is the scripting language of the future? How should it work? Here ar… read more

Let's talk about exit codes

October 16, 2021 - 822 words - 5 mins
Before starting a shell, if you would have asked me what an exit code was, I would have quickly replied "0 for success, non-zero for failure" without batting an eye. That's what it meant, right? Today, someone filed an issue on the Nushell repo. In it, they ran git log, exited, and Nushell… read more

Retiring

March 03, 2021 - 487 words - 3 mins
Yesterday was my last day at Microsoft. I've been fortunate to have worked in an industry that paid well over my 20+ year career and to have grown up with frugal parents who passed that on to me. Starting the 4th of March, I'll be retiring to work on open source and teaching. So what's next? I have … read more

Intermediate Rust series

February 12, 2021 - 452 words - 3 mins
Hi all! A few days ago I posted on Twitter asking for topics that people wanted to see covered for intermediate Rust content. The response was awesome and it's inspired me to make a series where I go through each topic and do my best to cover it as a video and/or blog post. Here's the current list o… read more

Nushell 0.5.0

November 05, 2019 - 941 words - 5 mins
Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines. Today, we're happy to announc… read more

Nushell 0.4.0

October 15, 2019 - 754 words - 4 mins
Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines. Today we're happy to announce… read more

Nushell 0.3.0

September 24, 2019 - 743 words - 4 mins
Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines. We're happy to announce that … read more

Introducing nushell

August 23, 2019 - 2384 words - 12 mins
Today, we're introducing a new shell, written in Rust. It draws inspiration from the classic Unix philosophy of pipelines, the structured data approach of PowerShell, functional programming, systems programming, and more. It's called Nushell, or just Nu for short. We have a book (¡también se habla … read more

Creating crossplatform Rust terminal apps

April 27, 2019 - 896 words - 5 mins
Look Mom, Pikachu running in Windows CMD! I've been wanting to play around with the cool spinning Pikachu demo everyone was talking about. Sadly, it used termion to do its magic, which meant that unfortunately it wouldn't work for me. Termion has been a boon for Rust, with lots of folks using it to… read more

The Fallow Year, my Rust2019 post

December 08, 2018 - 776 words - 4 mins
Definition: fallow: (of agricultural land) Ploughed but left unseeded for more than one planting season. Rust is an amazing project. It's unlike anything I've ever seen. Not only are we seeing an ever-growing number of big name users of Rust, we also continue to see leaps in productivity and functio… read more

A Snapshot of Rust's Popularity in July 2018

July 28, 2018 - 1513 words - 8 mins
Talking about a language's popularity is traditionally a tricky topic. How do you measure popularity? How do you compare one language to another when they're focused on different styles and different audiences? So, rather than having one or two charts, I'm going to look at a number of "slices&… read more

Starting the next thing

July 24, 2018 - 410 words - 3 mins
It's that time again! July 31st will be my last day at Mozilla. Even though I was only at Mozilla for just under two and a half years, I had the good fortune to work on some pretty awesome projects. I joined the Rust team and worked with Niko Matsakis and Aaron Turon on where Rust could grow, build… read more

How fast can we compile Rust hello world?

May 03, 2018 - 2738 words - 14 mins
Seeing Nick Nethercote's blog post about speeding up the compiler, I started wondering just how fast could a Rust compiler be? How fast could we compile a simple example? How fast can we compile a Rust hello world? Starting out When you do a cargo new hello_rust --bin, you get a simple Rust hello … read more

Talking about how we talk about Rust in 2018

January 10, 2018 - 1046 words - 6 mins
This is an entry in the #rust2018 blogging efforts to talk about Rust in 2018 When you come to Rust, you're bound to hear a lot of phrases. "Wrestling with the compiler". "Rust evangelism task force". "Non-lexical lifetimes". "Systems programming". Some seem… read more

Improving how we improve Rust in 2018

January 07, 2018 - 882 words - 5 mins
Here's my #rust2018 post to add to the batch. The past few years, I've been lucky to be part of the Rust community survey process. In 2016, this data helped show the need to improve usability. We had good foundations, but they were too hard to get at. In 2017, we saw a renewed need to reach out t… read more

Fun facts about Rust's growing popularity

October 30, 2017 - 2378 words - 12 mins
There are now 100 friends of Rust (Be sure to hover to learn about how each company uses Rust) There are now 3 Rust podcasts: New Rustacean, Rusty Spike, and Request for Explanation First year had one conference, the second year had three, and this year had four. crates.io is not even 3 year… read more

RLS now available on nightly

April 18, 2017 - 347 words - 2 mins
We've got some good news for Rust IDE support. We recently hit a milestone for the Rust Language Server, a tool that combines the power of the compiler with a fast autocompletion engine. Up to this point, if you wanted to use it you had to build it from scratch. The process was tedious, time-consu… read more

Using Rust in Windows

March 28, 2017 - 1071 words - 6 mins
As a Rust user, I was discouraged by not having all the good tips for using Rust in Windows in one place. This is an attempt to just that. If you have more tips tweet them to @jntrnr, and I'll try to add them here. Getting started Step 1: Install Visual Studio Community edition My recommendation f… read more

Rust Language Server Alpha 2 Release

March 02, 2017 - 544 words - 3 mins
Today, we're happy to announce the second alpha for the Rust Language Server, a project build to bring high-quality Rust IDE support to any IDE or editor. This release brings new features, better stability, and an easier installation than the first alpha. Support for new project types When a projec… read more

Announcing Rust Language Server Alpha Release

January 18, 2017 - 1020 words - 6 mins
Today, we're announcing the first alpha release of the Rust Language Server (aka RLS). With this alpha release, this is the first time we're encouraging early adopters to try on real projects and send us feedback. The RLS has now reached a level of maturity where it should be able to run against m… read more

Programming Language and Compilers Reading List

October 08, 2016 - 1119 words - 6 mins
This week, the talented Julien Fitzpatrick (btw, you should check out their RustConf talk if you haven't already) asked what a good list would be for people who are interested in programming languages and compilers. I took it as a good excuse to write a blog post with some of my recommendations. I… read more

Helping with the Rust Errors

August 03, 2016 - 2772 words - 14 mins
I recently did some work with Niko Matsakis on a new compiler error format. You can try them out by setting RUST_NEW_ERROR_FORMAT=true. While I put together a blog post talking about the design for the main blog, I also wanted to open it up for people to come help us move to the new errors. I've spl… read more

Rhai 0.2 release

March 26, 2016 - 327 words - 2 mins
I've just updated Rhai to 0.2. This release focuses on improving the interaction between Rhai and Rust. The result is a cleaner, easier-to-use API. This new API does mean some API breakages, so you'll need to update your code to work with 0.2. With this release, Rhai also now has arrays as a buil… read more

Embedded scripting in Rust

March 14, 2016 - 1909 words - 10 mins
For the last few weeks, I've been working on an embedded scripting language for Rust, based loosely on ChaiScript called Rhai. What's an embedded scripting language? While the definition might depend on who you ask, for this post embedded scripting has a few distinct features: A language that de… read more

Going down the rabbit hole with Rust traits

February 09, 2016 - 1416 words - 8 mins
One of the first things you might notice about Rust, if you come to it from other OOP-style languages, is that Rust separates methods from the data they work on. You create your struct, then you impl a few methods on it later. struct Rect { height: i32, width: i32 } impl Rect { fn are… read more

Rust quickie - matching Strings

February 08, 2016 - 220 words - 2 mins
In case you find yourself trying to match a String (perhaps as part of an Option or Result), here's a little trick. As a concrete example, let's say you're working with commandline args and want to do different things if it's there and equal to a special value (like "-"), if it's any other… read more

Feature Bias, or Rethinking the Blub Paradox

January 23, 2016 - 680 words - 4 mins
I got a lot of great feedback on my previous post "Rust and the Blub Paradox", which inspired me to write a follow-up. In its original formulation, the Blub Paradox is something of a tool for people to feel smug about their favorite language. I heard a lot of feedback that it feels condes… read more

Rust and the Blub Paradox

January 22, 2016 - 2985 words - 15 mins
A few weeks ago, I read an analysis of Rust, D, and Go by Andrei Alexandrescu. Andrei, a respected member of the C++ community and a core developer of the D programming language, took a stab at Rust at the end of his writeup with what seems like a pretty astute observation: "Reading any amount… read more

Travel log (Maui)

December 15, 2015 - 652 words - 4 mins
When I left Seattle, I jokingly told my friend "the first country I'm travelling to is Hawaii". "But it is isn't a different country," she replied. It is. Oh it is. Looking at Maui from the Kula Lodge Having travelled around the United States, I can't say there are many places … read more

HandmadeCon 2015

December 05, 2015 - 1599 words - 8 mins
HandmadeCon 2015, where even the welcome banner is handmade Today, I attended HandmadeCon 2015. HandmadeCon is the first convention for the Handmade Hero project by Casey Muratori, a game industry gun-for-hire who most recently worked on The Witness, the follow-up game for Jonathan Blow, the creat… read more

Travel log (Blacksburg)

December 03, 2015 - 612 words - 4 mins
This is the first of posts detailing my current trip, which will take me around southwest Virginia, Seattle, Hawaii, Australia, New Zealand, Hong Kong, and Japan. My first stop was Blacksburg, home of Virginia Tech. I lived in Blacksburg from 1996 - 2009, so it was both familiar and a little alien,… read more

Building a simple JIT in Rust

December 01, 2015 - 1420 words - 8 mins
The other day I threw together a simple Just-In-Time compiler (or JIT, for short), and I thought it'd be fun to show the steps I did. With this, it should be possible to create a page of executable memory, write some machine code into it, and then treat it like a function call from Rust. Let's get … read more

Porting a C# NES emulator to Rust

November 20, 2015 - 1817 words - 10 mins
Many years ago, I created a simple NES emulator in C# using SDL and Mono. For fun, I wanted to see what it would be like to port that emulator to Rust. A couple weeks later, after poking on it on and off between packing for a move, I was able to get it working. What I did Loading a binary file Lo… read more

Steam Machines enter the market

November 11, 2015 - 1728 words - 9 mins
This week marks the release of the first official Steam Machines. For the last five months, I've been a proud owner of the Alienware Alpha, one of the three Steam Machine types now available. Knowing what could be possible, I've been curiously awaiting the official launch. The plan Valve's motivat… read more

Learning to 'try!' things in Rust

November 04, 2015 - 1219 words - 7 mins
I started learning Rust in earnest a few weeks ago. Coming from C++, a fair share of the idioms felt right at home. There was clear memory management and an eye towards lightweight abstractions. But when I started looking around for how to do exceptions, I was surprised to find that Rust had none.… read more

Telling the truth in code, function signatures and transparency

October 28, 2015 - 1524 words - 8 mins
When people talk about reasons to use a type system, there are always a couple usual suspects: error checking, documentation, and if you're an IDE person like me, tooling/editor tricks that use type information, like auto-complete. But there's another aspect to the types of function signatures that'… read more

Lessons from the first 12 Euler problems in Rust

October 09, 2015 - 4969 words - 25 mins
!! Spoiler Alert !! I'm going to be talking about solutions to select problems from the first 12 Euler problems. If you haven't solved these for yourself yet, I highly recommend taking the time to solve them on your own first. Background Before I went to Microsoft for a stint in JavaScript, I did m… read more

Off to new adventures

October 05, 2015 - 247 words - 2 mins
A few weeks ago I posted about moving teams inside of Microsoft. As sometimes happens when you make a change, you realize that you actually need to make a bigger change. A few weeks into the new team, and I could tell that it was time for me to move onto new adventures. Microsoft has been a great … read more

Programming languages are a failure

February 17, 2013 - 515 words - 3 mins
After spending years working in programming languages, helping out with some big-name projects and trying to generally make programmers' lives easier, I've decided something. Programming languages are a failure. Okay okay, before you write this off as a troll for attention, hear me out for a minute … read more

Promising new programming languages

September 22, 2011 - 265 words - 2 mins
It seems like these days there are lots of programming languages springing up. A combination of the web, parallel programming, and just outright curiosity seems to be fueling creativity towards new mixtures of classic features and experimental new ones. Here are a few new(-ish) projects I'm keeping… read more

Will parallelism go implicit?

March 08, 2011 - 603 words - 4 mins
I've been spending quite a bit of time recently with Implicit Parallel Programming in pH, which luckily the school library had a copy of. It's quite a good textbook to introduce programmers to functional programming, perhaps even one of the better ones (next to the original Introduction to Function… read more

Thoughts on actor-based languages

September 07, 2010 - 499 words - 3 mins
(or "Minnow, a post-mortem") I've been fortunate to work on both Minnow(a shared-nothing actor-based language) and Chapel(concurrent global-view language). I wanted to give a few thoughts comparing the two approaches. First, when we talk about concurrency or parallelism, without going into… read more

Digging into scheme/racket

September 05, 2010 - 152 words - 1 mins
I spent some of last night and this morning digging into Racket, the modern version of the venerable Scheme language. Every time I return to a Lisp variant, I find the parentheses less annoying that I did the last time. With proper indenting and some syntax highlighting, is there all that much diffe… read more