New week, new Rust! What are you folks up to?
Finished chapters 4 & 5 (Ownership/References) in my O’Reilly book. Starting chapter 6 (Expressions). I’ve found lifetime parameters very confusing but I’m sure with time it will become more apparent. I can definitely see I’ll be reading this book over more than once.
Working on version 0.5 of rental with better error messages via syn 0.12, as well as support for directly reborrowing fields that are covariant over all their rental lifetimes to avoid needing closures in certain cases.
Published graphql-cli. Currently, it’s only able to prettify queries or schemas. Thinking about how to make Graphql-over-http requests from the command-line convenient.
I finished my work on the LPC82x HAL pin API. Attempting to configure pins in a way that is unsupported by the hardware should now result in compile-time errors!
If anyone reading here happens to be familiar with both Rust and the LPC82x switch matrix, I’d love to hear your feedback.
I’ve been working on a weather station for a while. Last week I decided to switch from an arduino to rust on a stm32 microcontroller. I have almost finnished communication with an ESP8266 wifi module. The one issue remaining is that it seems to miss some bytes quite frequently. https://github.com/thezoq2/weather
Master thesis will be printed today or tomorrow… so I’m freeee now! I guess I start implementing
imag-wiki soonish and after that I want to play with Cursive for implementing a
Still working on bidirectional path tracing … see [SOLVED] Lifetimes vs. Arc in an example render loop …
Hopefully getting a student going on implementing a bit of symbolic algebra using my internment crate to hold subexpressions.
Implemented an interactive, unified Single and Multi-column sort in diwata
I haven't seen a user-friendly User interface which unifies single column and multi-column sorting. I just formulated this UI to do just that. The multi-column sort can be toggled, when not active single column sort comes into play.
Playing around with old ideas for the following concurrent memory allocation scenario:
- Everyone wants data of the same type T.
- Backing storage is bounded and fully allocated at creation time. So no performance is lost to storage growth/shrink support (a surprisingly expensive feature in a concurrent environment).
- Allocated data can be referred to via an index in 0…N with N the storage capacity.
- Storage allocation/liberation pattern is roughly (but not exactly) FIFO.
This may seem oddly specific, but I regularly encounter this kind of scenario. Example applications include packing references to detailed Errors in the small mantissa of IEEE 754 NaNs, and building bounded concurrent data structures that do not need the frequent malloc calls and sophisticated garbage collection schemes of their unbounded cousins.
The price to pay, as usual with bounded storage, is flexibility. Your RAM usage does not go down when you are not using the storage, and allocation requests can fail if the storage is not correctly dimensioned. Bounded storage is only appropriate when you can provide a good estimate of your storage requirements.
I have to prepare for a workshop involving WASM in April, so I’m combining three passions and am writing an offline first webapp that tracks Kyudo sessions (hit/miss rates, notes, etc).
Just published humantime 1.1.0, so if anyone need lightweight parsing and formatting for Duration/SystemTime, welcome.
I just published a crate for handling
Iterator<Item = Result<T, E>> easily.
The crate contains some convenience functionality. Contributions, even contributions which depend on external crates are explicitely welcome!
Refactoring wasm-sign, splitting into lib-crate wasm-sign and exe-crate wasm-sign-cli
wasm-sign is using public-key cryptography (EC) to sign a wasm file and to verify for authenticity and integrity.
The size of the signed wasm file is increased by 118 bytes, and does not break the WASM binary format. The signature is transparent for a WebAssembly execution engine and the wasm file/module can be used as before.
I just publish rundo to v0.3. Special field can be skip with
#[rundo(skip)], and support undo or redo to special version.
Trying to create a scoring function for the AI bot in the Code4Life game at CodinGame.com.
Learned a few more Rust things, but blocked mainly by logic at this point.