RSSAmplifier

Blog

Cessen's Ramblings

Nathan Vegdahl's blog of random ramblings.

blog.cessen.comRSS feed ↗48 posts

Latest posts

Hash Design and Goodhart's Law

SMHasher is a popular test suite created by Austin Appleby for testing hash functions for weaknesses and speed. There is also a more up-to-date fork . SMHasher is widely used in the design and vetting of non-cryptographic hash functions, and non-cryptographic hash functions often advertise that they pass the entire SMHasher test suite as a signal of hash quality. This is a problem for hashes with…

Major version numbers may not be sacred, but backwards compatibility is.

Tom Preston-Werner, the creator of the SemVer version numbering standard, published an article a little bit ago titled Major Version Numbers are Not Sacred . The article is worth a read, but the basic argument (as best I can summarize it) is that we shouldn't be afraid of incrementing the major version number of our SemVer-adhering software projects to indicate breaking changes. On the one…

Foreign Language Dictionaries

In this post I'm going to make the case that foreign language dictionaries (e.g. Japanese-English dictionaries) are actually thesauruses, not dictionaries, and that this has important implications for how you use them when learning a language. Read more...

Ropey: Things I Would Do Differently

Ropey is a utf8 text rope library for Rust that I wrote and maintain. Initially I created it just for use in my own text editor Led , but early on I decided to split it out into a separate library since it seemed generally useful. Last year I finally released Ropey 1.0, and since then I've had time to reflect on some of the design decisions I made, and what I do and don't like about…

Rust Community Norms for Unsafe Code

I recently released Ropey 1.0 , a text rope library for Rust. Ropey uses unsafe code internally, and its use of unsafe unsurprisingly came up in the 1.0 release thread on Reddit . The ensuing discussion (especially thanks to Shnatsel) helped me significantly reduce the amount of unsafe code in Ropey with minimal (though not non-existent) performance degradation. But the whole thing nevertheless…

Rust 2019 - It's the Little Things

(This post is in response to this call for posts on the Rust blog. Also, this post focuses on Rust as a language, because I feel like the crates ecosystem is something that will naturally grow and mature over time as more people use Rust for more use-cases. Also, in most respects I agree strongly with Jonathan Turner's Rust 2019 post , which has a similar flavor to this one.) This might be an…

Optimal Anki Settings - Take 2

I discovered a significant error in the simulations I ran in the previous post . So I'd like to present the corrected simulations, and also explain more deeply the assumptions and known weaknesses even in these fixed simulations. I also made the charts easier to use. However, I won't re-explain the background, so please see the previous post for that. Summary for those who don't…

Optimal Anki Settings

UPDATE: I found a major problem with the below simulations, which I have fixed in a follow up post . Please DO NOT use the graphs or settings advice below. Instead see the follow up post. ( If you're already familiar with all this background and just want to see the results, skip down to the Results section. ) Something I haven't talked about on this blog yet is that I'm learning…

Politics and Open Source Communities

Bryan Lunduke posted a video earlier this year entitled " Divisive Politics are destroying Open Source ". I only just now came across it, and it sparked both thoughts and feelings for me. My thoughts are not, I think, terribly complex, but I would nevertheless like to take a moment to write them out. In particular, as an avid Rust programmer, I'd like to give my perspective on the Rust…

A New Kind of Editor

My first post in four years! And, interestingly, on a similar topic as my last post. Zed, the editor I raved about in my last post, is now essentially abandoned and unmaintained by its author. This is understandable given the direction his career has taken, but is also a bit unfortunate given its innovative approach to editing. I've since been bouncing around using some other editors,…

Zed: a Code Editor

(Update 2024-01-27: Zed is now defunct, unfortunately. And to make things even more confusing, a completely unrelated editor project has taken its name. That other editor has very little, if anything, in common with the Zed editor I talk about in this post.) I like to write code. And like many such people, I am constantly in search of the perfect code editor. Of course, such a tool does not…

Psychopath Renderer Website

I've created a blog/website for my 3d renderer: http://psychopath.io Woo hoo!

Ray Reordering and Breadth-First Ray Tracing

As I mentioned in my post about random number generation, I've been working on an experimental 3d renderer named "Psychopath". I haven't posted much about it, but I would like to change that. Psychopath is easily the largest one-man personal project I've ever undertaken, and it's something I regularly get excited and obsessed about, disappearing into my own little programming…

Pseudo-Random Number Generators

Holy crap it's been a long time since I've blogged here. And you know what? I'm fine with that. I'll blog when I actually have something I want to share. Like now, for example. So, I've been pecking away at a 3d renderer that I've dubbed "Psychopath". I've put it up on GitHub: https://github.com/cessen/psychopath_cpp Anyway, I'm discovering all sorts of…

Middle Schools In Seattle

I have been helping one of Tiffany’s daughters with her math homework recently. She’s currently learning about ratios. It is no wonder to me that she needs help. Not because she isn’t bright. In fact, she is very bright and has a natural knack for math, I would say. Rather, the text book is horrendous . I am pretty decent at math, and I deal with ratios all the time in computer graphics and…

DRCS For Content Creation

I love distributed revision control systems (DRCS). Git , Mercurial , Bazaar ... fantastic things. And I use DRCS's all the time for code. They have a lot of benefits over centralized models. Unfortunately, they are not quite so nice for content creation. And there are two main reasons for this: Media files are often large. A whole project of media files is typically huge. And a bunch of…

Kapow

I just recently ran across this nifty little application: http://gottcode.org/kapow/ It's a simple app for keeping track of your hours while doing tasks. I'm finding it invaluable for my freelance work. It lets you keep track of multiple projects and tasks at once, and is super simple and easy to use. And it's open source and cross-platform. Woo hoo!

This Is Me

Actually, that's me on both sides. I have a terrible time thinking of gifts to get people. I assume other people are like me, and I draw a blank.

Going Freelance

Project Durian is almost over. I'm coming back to the USA on the 20th of July (this month). Yay! :-D I've been planning for a while to go freelance after Durian, and I'm looking forward to seeing how it goes. I've already been putting my feelers out looking for possible work. But I'd like to ask that anyone who reads this blog keep an ear out for work that might suit my…

A Note About Pigeons

I've discovered a strange phenomenon here in Europe: people hate pigeons. They call them "rats with wings" (of course demonizing rats is also problematic), and I see people kicking at them and shoing them away. It was particularly distressing seeing a boy perhaps 8 years old trying to kick pigeons. (To be fair, most people ignore them rather than kick them, but still.) Does this distain for…

Axe Cop

I am a huge fan of non-sequiturs in humor. And therefore, I adore this web comic: Axe Cop It is written by a 5 year old, and illustrated by his 29 year old brother. The result is full of so much hilarity and awesomeness that you just have to go and read it. In retrospect, I think every creative team should have at least one 5 year old kid on it. Adults get way to caught up in what "makes sense".

Durian DVD Pre-Sale Started!

Exciting news! The Durian DVD pre-sale campaign has started! You can pre-order the DVD here: Durian Open Movie DVD And if you order before September 15th you get your name in the credits of the movie! :-)

104 Degrees Fahrenheit

And 30% humidity. I hate the weather this week. I could really go for some cold, clouds, and rain right about now.

Sita Sings the Blues

I recently ran across a feature-length animated movie entitled "Sita Sings the Blues". One of the most surprising things about it is that it's released for free under the Creative Commons share-alike license. You can download it here: http://www.sitasingstheblues.com If you want to support it financially, you can also donate or buy the DVD. It's a pretty fun treatment of the story of…

Out of Gas

Aaron and I visited Smurf and Sarah in Pullman last weekend. We had a great time catching up and doing all sorts of things. We went to see Pixar's "Up", which was pretty fun. But as with all visits, it came to an end. Aaron and I packed up the car, hugged the natives goodbye, and drove off over the horizon. Then we were pulled over by a cop. We hadn't noticed that the speed limit had…

Project Durian

I got onto Project Durian ! Wootz! I'll be leaving for Amsterdam probably late September/early October. The project is slated to last 6-9 months, depending on funding. This really looks like it's going to be another awesome project. And in terms of artistic goals it definitely jives with me. Also, yet again the team is made up of such extraordinary talent that it really humbles me. And…

MyPaint 0.6 Released!

I'd like to take a moment once again to highlight the software MyPaint . It has continued development at a slow but steady pace since the last time I mentioned it , and has just hit version 0.6 . The biggest new feature in 0.6 is layers. They're entirely hotkey driven, which may seem strange, but it actually works really well. The hotkeys are well chosen (for example, PageUp/PageDown to…

Peach Over, Coming Home

As I'm writing this blog entry I am sitting on the couch at the Blender Institute, acutely aware that I will never be able to revisit this part of my life again. Peach was a truly remarkable experience, even if I can't remember half of it. At the beginning of the project I had high hopes, and was aware of a larger context in which the project was happening. I talked of new business…

The Movie Is Shipped!

Big Buck Bunny is finally on its way to be printed to film (in Norway no less!), but the road there was more than a little bumpy, as outlined by Ton here . I wasn't there for most of it, because unlike the heroes that stayed up all night, I was sleeping. But it was crazy last-minute stuff. I wonder if all movie productions go this way; in almost all the movie projects I've taken part in,…

A Complete Audio/Video Pipeline On Linux

I accomplished something exciting tonight. At least, exciting for me. You see, one of the very last things that was keeping Windows on my computer was the lack of good audio and video tools for Linux. Being a film maker at heart, there's no way I could abandon the tools that let me make movies. Tonight, I finally patched together an entire audio/video pipeline that takes me all the way from…

Free Hugs

I was invited the other day by Frank (a programmer on the Apricot Team) to attend a Free Hugs gathering at a crowded square in Amsterdam. For those of you who aren't familiar with Free Hugs, watch this video: Free Hugs Campaign In short, you stand around holding signs with "Free Hugs" written on them, and let people hug you (and hug back, of course). Needless to say, I couldn't possibly…

The Devil Is In The Details

First off, it seems people are starting to find my blog from track-backs on the Project Peach website. After noticing this, it suddenly brought into sharp focus that I've slipped in my intent to keep my blog relatively impersonal. Especially entries I made during the more stressful parts of Peach, which are particularly inappropriate if Blender users start reading this blog. So with that in…

A First Time For Everything

Today, for the first time in my life, I saw something that I helped create projected onto the silver screen of a full-fledged movie theater. From honest-to-god 35mm film, no less. In retrospect it really isn't such a big deal, but it was pretty cool. I'm looking forward to seeing the whole short animation at the premier. Especially in a theater that actually has people in it.

Project Euler

First some good news about Project Peach: the movie is done! It's finished! If we wanted to, we could release it right now. However, we are taking the time we have left to go back and improve the parts we are least happy with. Even with this extra time, there's going to be plenty of things in the movie that we'll cringe at, but I suspect a typical audience won't notice them (or…

Rewards Punish

I ran across this old New York Times article recently: For Best Results, Forget the Bonus The article in general is interesting to me, but in particular I wonder how this applies to the most predominant schooling paradigms in use today. How many rely on reward systems? For example, grades -- even if they serve a rating/gauging purpose -- also double as a reward system, even if only…

Dumbing Up

In my off hours from Peach, and when not working on my personal animation project, I've been reading up on various programming topics (most recently I've been looking into unit testing), and today I ended up browsing my way to this page: http://c2.com/cgi/wiki?SystemMetaphor As cool as the "system metaphor" idea is, the thing that I found specifically interesting was a single comment on…

Bazaar: Revision Control Awesomeness

On the weekends and during off-hours from Peach I've been pecking away at a personal animation project of mine. It isn't even at the 3D stage yet—I'm still writing the story and doing character design—but still, I'm a revision control junky, and I want my files versioned. So versioned they will be. My first reaction was to use Subversion, but I would need to set up a server for…

A Couple Of Awesome Programs

For you artists out there, I've run across a couple of really nifty programs. Actually, I ran across them a while ago, and have been using them for some time now. But I'm just now getting around to writing about them. The first one is called MyPaint . It's a small paint program written in Python and C. In some respects it is quite primitive (it doesn't support layers, for…

Amsterdam And Project Peach

So here I am, sitting in the kitchen at the studio with my laptop after the first week of project Peach, sipping at some orange juice. And I'm thinking this: holy shit, this is going to be awesome. The apartment I'm staying in is large. Very large. Which is something I didn't expect. It even has a proper dining room, for goodness' sake. Admittedly, I'm sharing it with…

A Fundamental Problem

I ran across a blog entry from Lawrence Lessig today, the basic gist of which is that our government is—at the moment—quite incapable of objectively tackling any issue in which large money holders have a vested interest.

Project Peach DVD Pre-sales Started

For any of you who would like to have a copy of the Project Peach movie (whatever it turns out being) and who would like to fund the project, you can now pre-order DVD's for it.

More On Project Peach: A New Business Model

My entry about being accepted onto Project Peach was short, so I'd like to take a bit to expound on my reasons for excitement. (This is also a convenient excuse to put off a little longer writing a paper for one of my classes.) When I decided to submit my portfolio to Peach for review, it was with some reservations. To be blunt, I don't think my portfolio is that good (professionally,…

Accepted To Project Peach!

I'm part of the Project Peach team! Wootz!

TED Talks: How We Live Our Lives

Here's a couple of TED Talks that both relate to how we live our lives. One is about slowing down , the other is about living your life to better the world . They're both excellent.

Jennifer Lin Improvises

For those who are interested, there's a TED Talk from Jennifer Lin , the pianist prodigy. In it she plays a few pieces of music, and speaks briefly about music composition. I particularly like here improvised piece. The other pieces were more complicated, but the one she improvised seemed much more poignant. It was also interesting to hear her talk about music composition. She compares music…

Stop And Smell The Roses

This is quite possibly one of the most powerful things I've read in a long time. I'm not a huge fan of classical music as a genre, mind you (although I can still enjoy it in the right context). But the article still spoke to me. Particularly because I feel like I'm falling more and more into that unfortunate American rhythm of life (or lack thereof) that makes you feel like you…

Natural Docs

I've been intending for quite some time to buckle down and learn Doxygen , due both to its usefulness in maintaining large programming projects (which I'm increasingly becoming involved with) and its widespread use within the open source community. For those of you who aren't familiar with it, the idea behind Doxygen is that you write code documentation in your source code files…

Human Computation... Plus Fun Games!

Google has recently started bringing in people to speak on various tech subjects. They are recording the talks and putting them up on Google Video. These talks are known as "Google Tech Talks". If you're a geek at all, many of these tech talks are quite interesting. But I found one in particular that I absolutely adore. It's a presentation given by Luis Von Ahn about "Human Computation",…