New week, new Rust! What are you folks up to?
Still actively contributing to https://github.com/svenstaro/miniserve Next big feature will probably be upload.
If you have any suggestion, feel free!
Still preparing the first release of my
dw1000 crate. Currently updating the documentation.
Currently working on adding ‘virtual inputs’ to Tetra, to allow multiple input sources (gamepad, keyboard, mouse, etc.) to be handled as if they were a single button or axis.
Works pretty nicely so far, although I really want to find a more ergonomic way of plugging things into the game loop - you currently have to manually
tick time-sensitive stuff like animations and virtual inputs, which is a bit more boilerplate-y than I’d like
I’m also still plugging away at my (still unnamed) procedural text generation library - hopefully will be able to do a 0.0.1 soon
I’m in the final stretch of some code which I’ve been writing to derive ngrams from the entire corpus of the most recent English Wikipedia articles.
I decided to derive my own ngrams because I am getting statistics on word pairs by punctuation separators. I want to see the statistics on how words correlate without punctuation, with commas, with sentence terminators, etc. I suspect there’s progressively-less predictivity as the punctuation goes from none->comma->period.
All this is in service of another script I’ve written, which decodes text scrambled in a particular way. The text is encoded like so:
- for all words under 5 characters, form a mapping from the alphabet to a shuffling of the alphabet, and replace each character in that word with the mapped character. The shuffling is not consistent between words, but is consistent within any given word.
- for all words over 5 characters, shuffle the letters of the word around.
- for all words of exactly 5 characters, do both
I already have a script which is able to undo these operations and find the possible matches for each encoded word. Right now, the script just takes the top match, where the top match is arbitrarily at the top of the data structure just due to how the program executes. I’m using the ngrams to allow for picking the matches of words based on the patterns in the surrounding words and the statistically-most-likely match.
The question of punctuation informing matches is just a hunch that I can improve the results even further by tracking that info. I’ll run sampling to verify.
I just closed the SPPM ticket. All fours phases of a single Stochastic Progressive Photon Mapping (SPPM) iteration are now multi-threaded and thread-safe, but it’s still not as efficient as the C++ code:
Anyway, I think I will clean up a bit and prepare a new release this week …
In a bunch of math projects like in a numpy and matpotlib alternatives (more details upcoming), also in horse-shoe of course.
I’m working on a simple command line tool to encode and decode binary formats specified in csv files. The idea is to read or write one or a group of files into or out of a simple binary format in a couple minutes.
I sometimes have data from a sensor or other embedded system, or I have to create a file in a custom binary format, and it would be nice to have a tool to throw something like that together in minutes. After a while a custom tool can be written for the application, so this would be just for early development and testing.
I’m still working on the Cocoa port for FlowBetween’s UI. It’s mainly held up right now by some oddities in how Cocoa works. Right now I think that Swift thinks the objects exported from the Rust side of things implement ARC and is doing strange things (random objects are releasing themselves early). So one thing I need to do is work out how to persuade Swift that the interop header is not using ARC. Still, I have gotten on top of the performance issues I was having with CALayer, which has made this the fastest version of the UI to use. It’s looking very similar to the web UI now:
I’ve also put up the beginnings of an actual website too. Hoping to finally de-glitch this enough to put up a binary download there and also move on to some more actual features.
I’ve finished extensive refactoring inside the spirit configuration framework/helper. That one would allow much more flexibility how (and how much) the application would use it.
Now I just need to figure out how to release it (there are some technical problems with dev-dependency cycle). Once done, I plan adding support to asynchronous logging (not decided if only as part of spirit itself, or as a separate crate and pull it in as a dependency).
Just got the book “The Rust Programming Language” from library and starting on my foundation. Found the other nice documentation formatted in HTML via $ rustup doc .
Joined the forum, and plan to devote a couple pomodoros to the book this morning after I spend an hour browsing the forum.
I don’t know what I plan to use Rust for yet, but I like web application security (from a defenders perspective), so I’ll be looking at it from that angle. Maybe better APIs someday!
A resource to help blockchain developers understand the concepts in Rust that are different from languages they’re used to so that they can build better blockchains in Rust: