the website of jyn
https://jyn.dev/ (RSS)
rustc_driver
a deeper rabbit hole than expected what happens when you run cargo clippy? well, we can ask cargo what it does: $ cargo clippy -v Checking example v0.1.0 (/home/jyn/src/example) Running `/home/jyn/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/clippy-driver /home/jyn/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc...
the number of people who have left the rust project due to burnout is shockingly high. the number of people in the project who are close to burnout is also shockingly high. this post is about myself, but it's not just about myself. i'm not going to name names because either you know what i'm talking about, in which case you know at least five...
this is a list of the times this year i felt wonder or joy. it's not exhaustive. it's mostly for me. but it's also for others, because i think a sense of wonder is a wonderful thing, and i wish it were valued more highly. i want to give a very special thanks to my friends Nori, Kate Crane, and Kate F, for showing me how much beauty there is in...
Open source is unique in that energy, not time or money, is the limiting factor. The existential threats are maintainer burnout and an imploding community, not failing to make payroll. As a result, it’s very important to do three things: Recruit new maintainers as frequently as possible. Ruthlessly prioritize the energy of existing maintainers....
This post will assume you have watched https://www.youtube.com/watch?v=oUIjG-y4zaA. You may also find it helpful to read https://rustc-dev-guide.rust-lang.org/building/bootstrapping.html#stages-of-bootstrapping, but I won't assume prior knowledge of the information there. Why is bootstrap confusing? People get confused by Rust's build system a...
A small note: this will be much less organized and thought out than my other blog posts because I have been unable to convince myself to write a blog in about 2 years. Instead these are some notes to myself that happen to be public for anyone who finds them useful. A small note written after spending 5 minutes on this post: holy shit this is so...
async() => { await } by jyn This is a talk about websites Most of the internet is websites! source: https://radar.cloudflare.com A brief, incomplete, and mostly wrong history of websites Computers were invented. This has...
I'll Rust With You: the song Niko Matsakis, co-lead for the Rust language team, recently published a song titled "Edition: the song". I decided I was not to be outdone and sang a cover of "I'll Rust With You", by Steam Powered Giraffe. The song has absolutely no relation to the Rust language other than the title, I just think it's fun. Video
I got lots of positive feedback about the FAQ section in my Rust 2020 blog post, so I'm trying that format again for another topic that's been requested a lot: How to fix common borrow-checker issues. This isn't meant to explain how or why the borrow checker works the way it does (see The Nomicon or Two Beautiful Rust Programs for that), just how...
&'borrow mut dyn FnMut(BrokenLink<'input>) -> CowStr<'input>
and other valid rust programs This is a story about type signatures, Higher Ranked Trait Bounds (HRTB), and the most confusing diagnostics bug I've seen in the Rust compiler. Along the way we'll learn how pulldown-cmark has been trying to fix the same API for 3 different releases, and discover that some bugs only appear at the compile time of downstream crates. If you don't...
One of my projects for the last 4 months or so has been working on 'intra-doc links', a feature of rustdoc that lets you link to items by name. That feature will be stable in 4 weeks in Rust 1.48.0! @Manishearth and I wrote a longer blog post about intra-doc links which you can read on the official Rust blog.
Who is this guy anyway? Hello, it's me! I'm a somewhat new contributor to Rust and I'm about three blog posts behind. Here they are all at once: I work on docs.rs! I wrote a C compiler in Rust I spend way too much time working on intra-doc links I help make it easier to contribute to the Rust compiler Wait, we're writing a blog post here. In...
What is docs.rs? docs.rs is a site dedicated to hosting documentation for Rust projects. It automatically builds documentation for every package published to crates.io using cargo and rustdoc. Unfortunately, because rustdoc is tied so closely to the compiler, this requires building every package from source using cargo doc. As a result, I've...
How to read programs without the source code Created by jyn with reveal.js Bookkeeping This talk:
A.K.A. High-level assembler For when you gotta go fast Created by jyn with reveal.js 5 minute history ...
Hacking Tools: The Terminal How to use the command line Created by jyn with reveal.js What's a...
Intro to Python A Tour of Python with Real World Code Created by jyn using reveal.js Who's using Python? ...
The Problem As my family frequently reminds me, most of my tech problems are of my own making. For instance, I wanted to play Civilization 5 with a friend of mine through Steam. I have a Linux/Windows dual-boot with a shared NTFS partition so that I can share files between the operating systems. I run Linux by default. I also have Hibernate...
Google has a 'Intro' Capture The Flag competition at https://capturetheflag.withgoogle.com/#beginners/. I've been trying it out because, why not? The challenges aren't easy by any means - they range from javascript crypto (let me know if you find out how to break JS Safe!) to SQL injections to steganography. The challenge this post about,...
Intro For those of you not familiar with the C toolchain, it goes something like this: Source -> preprocessed source -> assembly -> object file -> binary The second step (preprocessed -> assembly) is the hardest to undo. It removes labels, debug symbols, and turns a high-level control flow into assembly instructions. However, since you need a...
Previously, I wrote about [using a password manager][password manager]. However, the disadvantage of using an audited, local manager like Keepass is that it's hard to share passwords between devices. You can put the encrypted database in a file-sharing service like Google Drive, but that means you need a sync client on all of your devices, and...
Intro Have you heard of Jython? It's a variant of Python written in Java instead of C; it lets you use native Java classes in python code. The most common use case is integration with large existing Java codebases: You can reuse Java code and still get the readability and conciseness of python. I was thinking about types in Python, particularly...
Intro Copying an array. It sounds so simple - run a quick for loop, or better yet, System.arraycopy. System.arraycopy(array, 0, tmp, 0, array.length); What if you need to perform a destructive operation? [1] In my Data Structures class, we're asked to implement heap sort without modifying the original array. This is simple enough: use...
Intro Python is a strange language. You can do a lot with it, up to and including shooting your own foot off. Python allows array splicing >>> l = [1, 2, 3, 4, 5] >>> l[:2] [1, 2] >>> l[2:] [3, 4, 5] >>> l[::2] [1, 3, 5] appending lists with the '+' operator >>> [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] using the first string of a progam as...
Introduction On the web today, there many different services we use. We use email, Facebook, GitHub, Google, Twitter, dozens of various services. Each of these require their own username and password. We're told, of course, to use a different password for each account. Only 70% of us, however, actually do so. How are we supposed to remember a...
Good news! As of today, my site now takes less than a tenth of the time to load. I found an excellent site which tests page load speeds. It told me that my site (which is mostly static pages) was taking a full 4.3 seconds to load. I was very confused by this - I don't have any large pages that I'm aware of; the CSS is minified and there's almost...
What is GPG? GPG is a program for encrypting your files, including Documents Music Programs Anything else you can store digitally Technically, GPG implements the PGP standard, which is mandated by the IETF®. What is encryption? Encryption is a way of ensuring that only people you choose are able to read your information. Encryption goes back...
As of today, February 6th 2018, from around 3:50 PM, there is a Tesla Roadster headed to Mars. Today marked the first successful launch of the SpaceX Falcon Heavy, a rocket ship than can carry other rocket ships. Not only did the Heavy, which can carry more payload than any other ship besides the Saturn V, launch successfully, but its rocket...
I was on StackOverflow the other day when I saw a nifty post on using custom DNS servers with NetworkManager. As you can see, in the middle of the post there's a link to https://dnssec.vs.uni-due.de. Being a curious sort, I opened it up and saw that it's a DNSSEC tester! DNSSEC is a protocol for ensuring that DNS results are accurate, using...
Jekyll is a wonderful program. The more I use it, the more I like it. It's customizable, automatically parses markdown, and uses a template system that makes it very easy to create a consistent style. Its only flaw is that it depends on [rubygems]({{ site.baseurl }}{% link _posts/2017-12-28-Setting-up-Jekyll.md %}#appendix). Jekyll does get a...
I decided one day over break that I really wanted a remote server. I had a spare laptop, a router at home, and far too much free time. The obvious solution was to combine the three. It ended up being much simpler than I expected to set up. On my old laptop, I installed an SSH server: sudo apt-get install openssh-server I made a few changes to the...
Hello, World! This is my first post on the new and improved site using jekyll. It will (hopefully) be the first of many. Feel free to explore the source code here. I started this site from an offhand comment by my good friend Charles Daniels. We were working on a side project together when I suggested signing release commits with GPG. He was...