New week, new Rust! What are you folks up to?
I’ve create a new crate nmap-analyze that compares nmap scan results with a group based port specification to check for deviation of open ports. It analyzes nmap results in XML format together with an ip-to-group mapping and a port specification for each group. It generates a human readable table of violating port states and an JSND document for post-processing.
We run a rather large amount of EC2 instances in AWS with only some of them exposed to the Internet either directly or via ELBs and ALBs. In order to quickly find unintentionally exposed ports and thus, misconfigured security groups, we run nmap daily and compare the scan results with a curated port specifications.
nmap-analyze is currently at v0.1 but already fulfills our basic requirements. Plan for this week it to add some documentation, a brew recipe, and publish a Debian package.
Keep learning Rust and migrating one of my projects from Go to Rust.
Started doing overhaul in the svgbob optimizer.
The algorithm to merge lines and text has been reworked to properly and efficiently trace elements that can be reduced and merged.
An up-to-date DEMO is setup to showcase the improvements.
The resulting SVG by default is now separated into primitive lines. This update now also includes ability to draw diagrams with broken lines (previously all solid lines).
Future improvement would be to detect group of lines into shapes such as rect, polylines.
Group of arcs will be detected to form a big circle. This will allow the user to further improve the resulting image by using SVG editor such as Inkscape.
I have a couple on-going efforts in
uom (type-safe zero-cost dimensional analysis) that I’m planning to work on this week. The first is going through build scripts in an effort to reduce CI build times and the second is to finish reviewing the changes to support thermodynamic temperature and temperature interval and merge those changes in to master.
Working on a blog post on how to use interior mutability in Rust to test code that remembers a handle to something that you need to chage from the test, e.g. a clock.
The first version is out under - https://blog.cyplo.net/posts/2018/07/rust-injection.html - would appreciate any feedback on this, especially if it makes sense
Oh, a new week…so fast. Ok, i am continue creating my software rendering and image synthesis application. The performance critical parts are written in rust.
But, currently there is not enough time for me and my pet project. The real life consumes all…may be later…happy rusting
I’m working on implementing the netdb header for relibc. It’s come a long way for us to be able to implement such high-level headers.
I’ve blogged about a dlopen issue (which has been fixed). I’d like to post about Rust consistently (weekly or bi-weekly) on this blog, but don’t have a concrete plan yet.
I’m having an open pull request against rust-security-framework to support ALPN. Hope it will be merged this week
Working on FlowBetween, my animation editor. The past couple of weeks have made it finally start to come together and look like an actual application rather than a pile of experiments. I’m going to need to update the readme fairly soon.
Last week got the basics of the file chooser working: the new pipe functions in desync let me write a new stream binding to turn events like ‘new file’ into UI model updates. There’s a lot of work left here but I’m moving on because this project is big and I’m taking a ‘broad, then deep’ approach to development.
This week I’ve moved on to the layer editor, which has been a bit of a gaping hole in the main UI for some time. Adding it in, even nonfunctional, gives the UI a much more ‘completed’ feel even if eveything is still a bit shallow in terms of implementation. Turns out I want to use the stream binding again for updating the layer list - it’s pretty similar to last week’s file list (also turns out that adding the new panel has broken my hacked-together Gtk layout engine again, so there’s some fixing needed there).
I did work on three issues this week and was able to close them. Basically I wanted to be able to use
Float image textures as well as
Spectrum textures (which I had implemented already). While working on it I found a bug, in case the scene description was missing the
Integrator line (which was really easy to fix - the default string was wrong). I also needed a better test scene to see that those
Float textures are read and handled correctly. Therefore I added a scene for bump mapping which had one imagemap texture to control where the bump mapping is supposed to happen, and one ScaleTexture to scale the effect (by a constant value).
I’m still on vacation/sabatical, although:
I’m working on a blogpost which I will submit to “Call for
Participation” with a list of stuff that can be done in the
imag project. Of course I will try to classify
them in easy/medium/hard and by size of the task…
Besides that I’m working on some patches, but as I get free wifi about
once a week the write-push-travisci loop is really long!
Working on rewriting sandboxfs (which I originally wrote in Go) in Rust as I learn the language.
I actually already rewrote it about a month ago as a throwaway prototype to measure the performance gains of the Rust variant over the Go one. Performance was significantly better and the safety of the code much, much better, so I was sold on the idea to do this rewrite for real
BTW, hello everyone! First post.