Full Width [alt+shift+f] FOCUS MODE Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
29
Rust is a hard language to learn, in the scheme 1 of things. I've previously talked about why the learning curve is hard and what we could do about it. Today, I'm proud to say that there's another resource to help people learn Rust in a more approachable way. Introducing Yet Another Rust Resource 2 , or YARR. (Yes, many examples are pirate themed.) YARR is a short introductory course on Rust which is designed to be completed in just a few days. The goal is to get you some foundational knowledge and the lay of the land so you can go forth and deepen your knowledge through real-world programming and other books/courses. When you complete YARR, you should be able to write simple Rust programs and you should have enough familiarity to pair with someone on a bigger Rust program. I've linked to YARR previously from my projects page and soft-launched it with some friends, but never officially announced it. Whoops! So here it is, announced and ready to use. What follows are some usage...
a year ago

Comments

Improve your reading experience

Logged in users get linked directly to articles resulting in a better reading experience. Please login for free, it takes less than 1 minute.

More from Yale E360

Warming Made Hot, Dry Weather That Fueled Iberian Wildfires 40 Times More Likely

So far this year, fires have burned more than 1.5 million acres across northern Portugal and northwest Spain, killing eight people and forcing tens of thousands to evacuate. The bulk of the wildfires coincided with a brutal heat wave in August, the most intense on record in Spain, which helped set the stage for the devastating burns, experts say.  Read more on E360 →

2 days ago 5 votes
Warming Made Hot, Dry Weather That Fueled Iberian Wildfires 40 Times More Likely

So far this year, fires have burned more than 1.5 million acres across northern Portugal and northwest Spain, killing eight people and forcing tens of thousands to evacuate. The bulk of the wildfires coincided with a brutal heat wave in August, the most intense on record in Spain, which helped set the stage for the devastating burns, experts say.  Read more on E360 →

2 days ago 4 votes
Global Solar Installations Up 64 Percent So Far This Year

Even as the U.S. guts support for renewable power, the world is still pushing ahead on the shift to solar energy, with installations up 64 percent in the first half of this year. Read more on E360 →

3 days ago 7 votes
Global Solar Installations Up 64 Percent So Far This Year

Even as the U.S. guts support for renewable power, the world is still pushing ahead on the shift to solar energy, with installations up 64 percent in the first half of this year. Read more on E360 →

3 days ago 4 votes
In Indonesia’s Rainforest, a Mega-Farm Project Is Plowing Ahead

The Indonesian government is fast-tracking a massive agricultural project that is turning 7 million acres of tropical forest into rice and sugarcane farms. Critics say it is the world’s largest deforestation project and would upend the lives of thousands of Indigenous people. Read more on E360 →

4 days ago 7 votes

More in programming

Engineering excellence starts on edge

The best engineering teams take control of their tools. They help develop the frameworks and libraries they depend on, and they do this by running production code on edge — the unreleased next version. That's where progress is made, that's where participation matters most. This sounds scary at first. Edge? Isn't that just another word for danger? What if there's a bug?! Yes, what if? Do you think bugs either just magically appear or disappear? No, they're put there by programmers and removed by the very same. If you want bug-free frameworks and libraries, you have to work for it, but if you do, the reward for your responsibility is increased engineering excellence. Take Rails 8.1, as an example. We just released the first beta version at Rails World, but Shopify, GitHub, 37signals, and a handful of other frontier teams have already been running this code in production for almost a year. Of course, there were bugs along the way, but good automated testing and diligent programmers caught virtually all of them before they went to production. It didn't always used to be this way. Once upon a time, I felt like I had one of the only teams running Rails on edge in production. But now two of the most important web apps in the world are doing the same! At an incredible scale and criticality. This has allowed both of them, and the few others with the same frontier ambition, to foster a truly elite engineering culture. One that isn't just a consumer of open source software, but a real-time co-creator. This is a step function in competence and prowess for any team. It's also an incredible motivation boost. When your programmers are able to directly influence the tools they're working with, they're far more likely to do so, and thus they go deeper, learn more, and create connections to experts in the same situation elsewhere. But this requires being able to immediately use the improvements or bug fixes they help devise. It doesn't work if you sit around waiting patiently for the next release before you dare dive in. Far more companies could do this. Far more companies should do this. Whether it's with Ruby, Rails, Omarchy, or whatever you're using, your team could level up by getting more involved, taking responsibility for finding issues on edge, and reaping the reward of excellence in the process. So what are you waiting on?

14 hours ago 4 votes
Dreams of Late Summer

Here on a summer night in the grass and lilac smell Drunk on the crickets and the starry sky, Oh what fine stories we could tell With this moonlight to tell them by. A summer night, and you, and paradise, So lovely and so filled with grace, Above your head, the universe has hung its … Continue reading Dreams of Late Summer →

an hour ago 2 votes
Apologies and forgiveness

The first in a series of posts about doing things the right way

yesterday 7 votes
Understanding Bazel remote caching

A deep dive into the Action Cache, the CAS, and the security issues that arise from using Bazel with a remote cache but without remote execution

yesterday 8 votes
Trying to Make Sense of Casing Conventions on the Web

(I present to you my stream of consciousness on the topic of casing as it applies to the web platform.) I’m reading about the new command and commandfor attributes — which I’m super excited about, declarative behavior invocation in HTML? YES PLEASE!! — and one thing that strikes me is the casing in these APIs. For example, the command attribute has a variety of values in HTML which correspond to APIs in JavaScript. The show-popover attribute value maps to .showPopover() in JavaScript. hide-popover maps to .hidePopover(), etc. So what we have is: lowercase in attribute names e.g. commandfor="..." kebab-case in attribute values e.g. show-popover camelCase for JS counterparts e.g. showPopover() After thinking about this a little more, I remember that HTML attributes names are case insensitive, so the browser will normalize them to lowercase during parsing. Given that, I suppose you could write commandFor="..." but it’s effectively the same. Ok, lowercase attribute names in HTML makes sense. The related popover attributes follow the same convention: popovertarget popovertargetaction And there are many other attribute names in HTML that are lowercase, e.g.: maxlength novalidate contenteditable autocomplete formenctype So that all makes sense. But wait, there are some attribute names with hyphens in them, like aria-label="..." and data-value="...". So why isn’t it command-for="..."? Well, upon further reflection, I suppose those attributes were named that way for extensibility’s sake: they are essentially wildcard attributes that represent a family of attributes that are all under the same namespace: aria-* and data-*. But wait, isn’t that an argument for doing popover-target and popover-target-action? Or command and command-for? But wait (I keep saying that) there are kebab-case attribute names in HTML — like http-equiv on the <meta> tag, or accept-charset on the form tag — but those seem more like legacy exceptions. It seems like the only answer here is: there is no rule. Naming is driven by convention and decisions are made on a case-by-case basis. But if I had to summarize, it would probably be that the default casing for new APIs tends to follow the rules I outlined at the start (and what’s reflected in the new command APIs): lowercase for HTML attributes names kebab-case for HTML attribute values camelCase for JS counterparts Let’s not even get into SVG attribute names We need one of those “bless this mess” signs that we can hang over the World Wide Web. Email · Mastodon · Bluesky

2 days ago 10 votes