I’ve wanted to change up my projects page for a while, but wasn’t quite sure what to do. I didn’t want to use any JavaScript, but I did want to organize projects in multiple different ways, rather than just a single set of categories like I’ve had for a long time. Ultimately what I settled on is a tag system. The tags look like this: Project Nameauthorlibraryrust is a project! These tags are just text with some styling applied, and they’re inserted with a Hugo shortcode. I originall...| Blog on Nora Codes
I think we should use “method”, in Rust, to refer specifically to associated functions which would be object safe if put in a trait. In this terminology scheme: associated function refers to any function defined in an impl block, which is how most people use it now1,2 trait function refers to any function defined in a trait method specifically refers to associated functions with receivers like those specified in the object safety section of the Reference3 and we should come up with anothe...| Blog on Nora Codes
TL;DR: Mastodon’s Sidekiq deferred execution jobs are the limiting factor for scaling federated traffic in a single-server or small cluster deployment. Sidekiq performance scales poorly under a single process model, and can be limited by database performance in a deployment of the default Dockerized configuration. If you are an embattled instance admin, go here. I recently moved to a well-established Mastodon (Hometown fork) server called weirder.earth, a wonderful community with several ve...| Blog on Nora Codes
The HackRF One is an amazing tool, but the documentation about how to use it with GNURadio is… scattered, to say the least. I got mine working today after a few hours of effort, and I wanted to share what I did so others could benefit, because it’s a little arcane. Specifically, I was using the wrong output sample rate. Symptoms of having the wrong output sample rate (too low) are scratchy audio and/or only transmitting in “chunks” (because the device is waiting to get a full buffer b...| Blog on Nora Codes
I’ve been playing around with Elixir, which is a pretty cool language - specifically, I’m reading Programming Elixir 1.6 which is free for anyone with a .edu email address from The Pragmatic Bookshelf. reverse/1 I enjoy functional programming, so of course the first two functions I made were list operations. First up is reverse(list) (written as reverse/1, meaning it takes one argument), which reverses a list. # reverse/1# Reverse the given list.def reverse([]), do: [] def reverse(list) d...| Blog on Nora Codes
The Improved User Interface crate has had its 0.3.0 release, adding new input fields (Checkbox and Combobox), new layout options (LayoutGrid), as well as finally working 100% on Windows, and with many bug fixes. This comes with the 0.1.3 release of the underlying ui-sys crate to support these features. It’s been a big undertaking to get to this point, and I’m excited to grow from here, now that libui itself is moving forward again as well.| Blog on Nora Codes
I recently got a U2F Zero, a tiny (about 2 inches long) and cheap (about 8 dollars) device implementing the FIDO Universal Second Factor protocol. It’s open source, too, which is awesome. A close-up shot of the U2F Zero. I primarily use Firefox. Unfortunately, Firefox doesn’t support U2F out of the box; you have to enable security.webauth.u2f in about:config. Once enabled, I tried to register it with GitHub. Unfortunately, it kept on failing, despite the little green light on the U2F Zero...| Blog on Nora Codes
I was recently fortunate enough to be the recipient of a grant for $2000 to learn about virtual reality and develop a video game using the HTC Vive. So far, I’ve mostly been exploring prior art.| nora.codes
This post is part of April Cools Club: an April 1st effort to publish| nora.codes
A reader reached out to me the other day to let me know that my RSS feed for| nora.codes
I’ve used NixOS and Morph to manage the servers in my house for about a year now,| nora.codes
Twelve| nora.codes
The Fediverse is not dying, nor is it crumbling. As an ideoform in the collective consciousness of the ’net, the Fediverse is already dead.| nora.codes
I love Fallout: New Vegas.| nora.codes
One of the most interesting emergent properties of the Rust language has been| nora.codes
I’ve always loved strange and interesting music and sounds.| nora.codes
I’ve gone back to using zsh1 rather than fish2 as my primary shell,| nora.codes
A person’s “preferred name” is their name, their “legal name” is something else, and it’s our duty as software engineers not to muddle the two up.| nora.codes
Using Java or Python in a professional IDE like IntelliJ IDEA, NetBeans, PyCharm, or Eclipse is not a good first introduction to programming for computer science students, whether they’re in the field to become web developers, systems software engineers, or academic computer science researchers.| nora.codes
It’s a simple and humble apparatus, but it’s quite useful.| nora.codes
I’ve seen a lot of misconceptions around what the unsafe keyword means for the utility| nora.codes
The bottom line: Thelio, System76’s new “open hardware” desktop, is a| nora.codes
Searching: the second-most studied problem in computer science, next to sorting (or so| nora.codes
This is the first of several posts on the implementation of my ActivityPub-enabled Rust| nora.codes
This is the second of several posts on the design of my current ActivityPub-enabled| nora.codes
This is the first of several posts on the design of my current ActivityPub-enabled| nora.codes
PDF, or Portable Document Format, is an incredibly complex file format, governed by many| nora.codes
We, each and every one of us, need to make the decision to move to free, open source, and decentralized online services.| nora.codes
One of the hardest parts of building beautiful Linux systems is fonts. Font precedence on Linux is generally handled with fontconfig.| nora.codes
I hadn’t really decided whether or not I liked Battle Dome until I punched a wall with my Vive wand while trying to poke my rifle out from behind cover to distract the sniper that was killing all my teammates. Then I decided that I liked it very, very much.| nora.codes
Quanero VR, available from “Laserboys3000” on Steam for nothing, is the best of the many VR experiences I’ve encountered so far.| nora.codes
SBrain, or Semantic Brain, is a language based on Urban Müller’s famous language Brainf*ck with only 8 symbols (3 bit instructions). SBrain’s additions increase the number of symbols to 32 (6 bit instructions), including bit-shifting and arithmetic, and add a stack and a register.| nora.codes
I’ve recently been working on a project called the Machine Learning Machine, or MLeM.| nora.codes
In 1999, J. David Blackstone, or, as he is known online, jdavidb, was taking CSE 4344 (Network Concepts) at UT Arlington. Those were the glory days of Sparc Solaris, and Blackstone wrote, for his college course, a C program called tinyhttpd. It is, essentially, a very short version of the immensely complex programs that seem run the world these days: web servers. Unlike the million-line behemoths (think Apache, nginx, et cetera), tinyhttpd is a HTTP 1.1 web server in 532 lines of well-comment...| nora.codes
Now that I’m in college, I’m taking a lot of non-computer science classes, and one of them is Japanese. I’m just starting out, and I need to be able to rapidly read numbers in Japanese and think about them without translating them consciously. I could make a bunch of flash cards, or use a service like Quizlet… or I could write some Python!| nora.codes
Linux cannot fall behind in hardware support. In fact, if we ever want to capture the desktop market, we have to race ahead.| nora.codes
A few months ago, I made a proof-of-concept for an RPG engine based on SFML and the Tiled map editor, called Deucalion. Over time, the source code became unwieldy, leaked a great deal of memory, and was nearly impossible to build. I ended up spending more time configuring build systems than actually working on the code, and I abandoned it in favor of SBrain and schoolwork.| nora.codes
Hardware manufacturers are missing out on a huge potential source of revenue: the thrifty tech user market.| nora.codes
This is not an article for technical people. It is an article normal people who just use their computers to get things done: to look at Facebook and Twitter, check their work email, write novels, design houses… whatever.| nora.codes
I recently watched the excellent film Micro Men, about Sir Clive Sinclair, Sinclair Research, Acorn Computers, and the fight for the British low-end computer home computer market in the early 1980s. This, along with a healthy (unhealthy?) dose of procrastination, lead me to spend a few hours browsing eBay, looking for old PCs. “Timex Sinclair 1000 Retro Home Computer, New In Box”. I checked the price - $29.99 plus shipping. It has been one of the most interesting purchases of my life.| nora.codes
IPFS, the InterPlanetary File System, is a content-addressable network.| nora.codes