I’ve been staying busy in Rust land.
I recently took over maintenance of the z3-sys and z3 crates from Graydon and have been working on them. I’ve published a new version of z3-sysand I’m working on updating the z3 crate. (Repo.)
I’ve published a long overdue update to my lldb-sys crate that brings is close to being up to date, and this week, I’ll update the lldb crate for the newly bound features. (Repos: lldb, lldb-sys.)
I’m slowly working on some RDF-related stuff as well as Linked Data, but not sure what I’ll get done this week on that yet.
I was hoping that meant the Z3 solver. Is it currently getting use for anything? And, if on program verification, have you or anyone else thought of a Why3/WhyML port instead to leverage multiple solvers plus any work done directly in Why3? It’s got a nice, little ecosystem going. Frama-C and SPARK Ada use it.
They are bindings for the Z3 solver. I’ve used Z3 for stuff in the past and wanted to have good bindings for it in Rust. I don’t use it for program verification though myself!
The W3C has never been in a position to block DRM.
DRM could be blocked by convincing media companies that they don’t need it, by convincing browser vendors to reject it, or by convincing consumers to boycott it. The W3C’s blessing (or lack thereof) is completely irrelevant to all of these parties.
W3C has been irrelevant since they abdicated progressing web standards. in useful directions.
DRM was the absolute last thing we as devs and users needed.
Personally, viewing the web landscape today… I think EFF did the right thing.
Ignore W3C and find an organization that actually wants to make the web a better place.
One issue that complicates this is the W3C’s copyright policy for their specifications: https://www.w3.org/Consortium/Legal/2015/doc-license
TBH the whole W3C debate and protest over DRM was a boondoggle.
The three largest browser makers are all pro-DRM, and Mozilla is mostly funded by pro-DRM companies. W3C approval or not, web DRM was going to be implemented and rolled out. The only question was whether it would be standardized or if each browser would implement their own.
Like it or not, the internet is just a revenue source these days.
If each browser required its own DRM implementation, using DRM would become more expensive and challenging, which is the goal.
Why are people trying to save the DRM companies money? Standardization isn’t a goal in and of itself. You wouldn’t want to standardize malware APIs (although arguably that’s what W3C is doing) or JS APIs designed to help pop-up ads.
If each browser required its own DRM implementation, using DRM would become more expensive and challenging, which is the goal.
You fundamentally misunderstand the role of standards bodies.
If the W3C had rejected EME…all of the browsers would have gone ahead and continued to use the EME standard they’d all already agreed upon and implemented. All that would be happening would be that the W3C had stuck its head in the sand and chosen to pretend a standard that existed in practice did not exist, because they didn’t like it.
Standards bodies exist to help facilitate coordination between the browser vendors. Standards bodies are only useful insofar as they facilitate that coordination. Standards bodies have zero power to force browser vendors to do, or not do, anything. If standards bodies cease to be useful for coordination purposes, they will be ignored and replaced by a new body that the vendors can actually cooperate through.
There was no universe in which the W3C could force browser vendors to not implement EME, or all do their own thing. The only choice was “acknowledge the existence of EME” or “stick head in sand and become irrelevant”.
The browsers didn’t require W3C to approve EME to implement it. They implemented it long before it was approved. A ‘no’ vote would not have made anything more expensive or challenging.
That’s not the goal, and that premise doesn’t hold anyway.
The expenses around this are pocket change for Microsoft, Google, and Apple, and not having a standard means they SAVE money because they can use their existing DRM. They’d cross license each other’s DRM, and they’d all be compatible.
The people hurt by not having a standard would be people developing new browsers. They’d have to implement multiple DRM technologies, instead of just one.
I don’t like DRM, but it’s not going away, so it might as well be dealt with in a sane way.
I totally agree. To me, this seems like throwing the baby out with the bathwater. So, the EFF has abdicated its right to advocate for digital privacy rights as part of the W3C?
I realize that sometimes groups like the EFF need to make a stand, I’m just not sure this is the best way to achieve what they’re looking for, or whether this is the right hill to die on, so to speak.
I don’t think it’s just a revenue source, because non profits use it well. It is built for companies and organizations, because it is a client-server model and running servers takes money, initiative, and persistence.
What I am always a bit confused about is: if the internet isn’t good enough, you are necessarily missing (small $) money, initiative, or persistence, but then why is your goal worth anything? Those are all reasonable signals for social usefulness.
Thus, distributed/“libre” networks inherently have little value. You’ll know you’re doing something useful when a few other people are willing to help foot the aws bill.
You’ll know you’re doing something useful when a few other people are willing to help foot the aws bill.
You’ll know you’re doing something useful when a few other people are willing to help foot the aws bill.
I respectfully disagree.
When I was younger, I enjoyed learning about things on all manner of odd private websites. To this day, when I’m feeling down, reading webcomics (many of which lack advertising!) cheers me up. Flipping through archives of essays and memos hosted by people gratis has taught me much.
If I can help give back in that same way by hosting content myself (even silly things like my own blog), then I believe that I have done something useful–quite without consideration for profitability.
There’s a difference between blocking DRM and refusing to support DRM.
It’s not a pointless moral play. Refusing to standardize malware APIs makes it more expensive and inconvenient to write malware, even if it’s probably going to happen anyway.
It would be interesting to see how this compares with glm in terms of generated code and breadth of API.
I’m working on my LLDB bindings for Rust more. I’ve been extending them with more coverage of SBType, SBValue and related APIs.
I also added experimental GraphQL support so that I can query debugger state with a GraphQL query. I’m not entirely happy with this for a variety of reasons, mainly related to how I hope to use such a capability in the future, so I’m thinking about what to do. I’m considering that perhaps something like the Gremlin API from Tinkerpop might be interesting as that would let me support GraphQL and SPARQL and so on from a common architecture. I don’t know!
I’ve been digging into WebRender some more. As of today, I have the ability to (poorly) render text. Positioning and layout aren’t right as that’s something that I must bring to the table, but I’ve done that in the past on other projects and there’s plenty of code out there to help with that.
I’d love to talk with people interested in UI stuff in Rust. I’ve got an early design and a small group of people that I’m discussing it with … and have been starting to build out pieces over the last couple of weeks.
I’ve been learning about WebRender and started to make some pull requests. I’ve done a couple of documentation improvements and got a minor API change accepted that makes an important part of the API easier to understand.
Learning WebRender has been a good bit of fun and it seems pretty promising. (I’m not interested in using it as part of Servo…)
My daughter (6yo) has a 2.5 week break between terms at school, so the next couple of weeks will be interesting.
Have a good week!
Hope that you’ve all had a good week since last week.
I’m working on a couple of different things in typical programming land …
As some of you know, I have an interest in photographing insects, lizards and other creatures, which I post a lot on Instagram. This weekend, I got a great capture of a jewel bug and had a small photo shoot with it. Also got a praying mantis last week that was wearing a hat made of sticky seeds. I also observed and photographed a wild bee nest and learned about blue-banded bees (which perform buzz pollination).
Well, along that line of thought, I’ve taken an OCR of a book from 1939 about lepidoptera (butterflies, moths) that is in the public domain and am cleaning up the output and converting it into ReStructuredText (for now). I’m hoping to make a lot of progress on that this week. This will probably lead to a blog post or two about some interesting issues that arise in digitizing this sort of material and presenting it to readers.
Have a great week!
It has been a long while since I’ve posted here … or much of anywhere.
Just got back from spending a 4 day weekend living in a cabin at a zoo with an educational group here in Thailand. I love getting to hear the sounds of gibbons. I also got to see my first water dragon in the wild, which was really cool.
I’ve also been posting a lot on Instagram and welcome new followers there, especially those who are interested in seeing insects and other creatures from Thailand and other places that I happen to be.
As for this week … I am hoping that an oleander hawk moth that I raised from a caterpillar will finally emerge from its pupa form this week. I’ve been raising some caterpillars in a large container on my desk in my home office. It is fascinating to watch them progress and then release them.
I’m really happy to see that this is using vega-lite!
I use Rust as a daily driver for my hobby work. I also use TypeScript. This work is stuff that I hope to turn into some products in the future or use for building some products and it gets a lot more time from me than the label “hobby” would indicate.
I like the type system. I definitely use the safety features. I like being able to make sure that I’m not doing useless copies of data as I parse it or otherwise work with it.
Why am I not using something other than Rust? Well, I’m using Rust in the core of the libraries because I want:
I’m also happy about the lack of libraries for some things. This means that there’s a chance to try to do a better job than some other ecosystems from the start. (For one thing that i’m working on there are several widely used and slightly different APIs in the Java world and an Apache Commons wrapper to try to unify them.)
Error 403 on trying to view it.
I can’t edit the orig link? should be http://i.imgur.com/GDP88Eq.png
This is a positive direction in front end frameworks. I can see why it’s leveraging the popular “reactive” label, but it’s different enough to warrant a different name. It’s more of s simple dataflow-constraint variable nature, along the lines of ConstraintJS, Amulet, and Garnet. (All three from CMU.)
Much more capable than the current ReactJS line of development. First glance looks like a lot of code… not sure why, maybe to fit in with all that JS, DOM, etc. A good step in the right direction though. Hopefully it will attract some attention.
Speaking of Amulet …
I’ve been crazy enough to get Amulet compiling and somewhat running again:
I don’t know how much I plan to work on it … as doing this much was somewhat random and unplanned, but it has been fun.
I started out doing it because while I’ve known about Amulet and Garnet for over 20 years at this point, I’ve not run them in about that long and thought that I would benefit from digging deeper.
Contributions are welcome. There’s plenty to do as not everything works, etc.
I’m having a slower week due to travel again. This time, we are just driving around a bit in Thailand. This turned a bit problematic when our first car had a problem on the first day. We resolved this by getting our other car from home and resuming the trip. We’ll pick up the first car from a repair shop on the way home.
We did get to see a fairly large Asian Water Monitor next to our room on Sunday morning.
Apart from that, I’m still working on my initial implementation of some RDF stuff in Rust and am writing up a lot of documents about what I’m working on in the bigger picture … I’m looking forward to talking about that more publicly in the coming weeks.
I’ve had someone working for me for the last week and that’s going well. I’m working on bringing on 2 others in the coming days.
Enjoy your week!
I’m basically convinced you actually post from Jurassic Park.
This is a pretty exciting week. Two people will start working for me part time this week on my Rust projects. It’ll be interesting to see how this goes and, if it goes well, I hope to be able to expand on this arrangement in the future.
I’ve continued my rapid pace of learning over the last week. Despite being in my 40s, I feel like I’m learning more per day now than at any time in a very long time. I’m almost at a point where I want to start diving into writing my RDF library and other things.
Around the house, while we were away recently, we had a large number of caterpillars come to live in some of our bushes. My wife wasn’t happy about this as she deeply dislikes caterpillars. But, a bright side is that a green billed malkoha (a type of non-parasitic cuckoo) has moved into the tree next to us and is enjoying many fine meals from our bushes. It is pretty fun to watch him hop back and forth along the fence, occasionally jumping down and coming back up with a caterpillar in his beak.
I’ve been sick for the last 5 days, but starting to feel better today, so hopefully I’ll be able to get a lot done this week.
I played a bit with Pixar’s Universal Scene Description last week. I submitted a fix to homebrew for one of the dependencies and got USD to mostly build locally. I’m waiting for them to process a CLA that I sent in so that I can submit some pull requests with various fixes.
Hope you all have a great week!
Your RDF library sounds interesting. Is it for Rust? Any idea of specific features you plan for it?
Yes, it is written in Rust.
My software plans require embeddable libraries that don’t require a server, can hopefully expose an API that is C compatible for use from other languages, and that can run in many places, from mobile to desktop to server. That’s why Rust.
As for the RDF library itself, I’m starting out with a library for XSD datatypes, one for CURIEs, and a base library for RDF models / graphs themselves. Over time, I’d like to expand this as I need query and other things.
I’d like to explore, in the future, ways to integrate native structs with this. I have some ideas like using an RDF model as a trait and let it generate the graph data on request, or perhaps integrating with serialization systems so that you reconstruct native Rust structs from the underlying graph data. I don’t know though yet what will work the best or make the most sense.
This all ties into a much larger set of projects that I want to build on top of all of this. It is my life’s work.
I welcome help.
I’m Bruce. I’m waywardmonkeys on GitHub. I’m an American expat living with my wife and a 5 year old daughter in Thailand. We like to travel a lot, at least a short trip every month or two and a couple of longer trips each year. I sort of ended up collecting cloth (silk, batik, and such) from all over SE Asia.
I teach math (but in a fun sense rather than arithmetic) to my daughter and one of her friends, teach her to read and try to answer the 9 million questions that she has each day.
I used to work on Dylan up until a couple of months ago when I switched over to using Rust in a big way.
I’m working on something new and big in Rust, but don’t have a concise way to describe it yet. It is sort of an environment centered around commands in the sense of the Common Lisp Interface Manager / CLIM and how Symbolics Genera worked on the Lisp Machines. The other side of it is centered around data that is described via RDF & OWL2. I’m basically having to write an entire new ecosystem of things in Rust to do this, but it ends up that with some of my requirements, I’d have to write a lot of new stuff no matter the language. This project is an outgrowth of everything that I’ve worked on in the last couple of years, and is based on the stuff I’ve spent the last 20 years learning about, using and thinking about. So I’m really excited.
Wow, that sounds really exciting! Can’t wait to hear more about it.
Are you familiar with “Measurement” by Paul Lockhart? It is my favorite mathematics book, and is to me the best example of how to teach math effectively. Lockhart is most known for his essay “A Mathematician’s Lament,” and this book is basically him answering the major critique people had of that essay: “I’d like to see you do better.” Really excellent and engaging stuff that is not at all about memorizing theorems, but is instead about building up an ability to reason effectively about mathematical objects.
Can you recommend any resources for teaching recreational math to kids? Mine love Vi Hart’s videos, and I’ve been looking for more in that vein, though really I doubt there is anyone quite like Vi in the world.
I like some of the “Natural Math” stuff, but it is difficult sometimes since daughter and her friend are 5 years old (and we started when they were 3 and 4).
They like sudoku puzzles (4x4 and sometimes up to 6x6). We talked about reflection, iteration and so on by folding paper and making snowflakes. We also did some stuff with Sierpinski triangles. Since they couldn’t read at the time, we did some logic puzzles by talking through them. We’ve done a lot with sorting and comparing things and patterns. As part of that, we made some bracelets for their mothers with some beads by making patterns of 3 variables (size, color and shape).
Islamic art has been pretty fun too and provided a basis for talking about shapes, patterns, geometry (and improving motor skills!)
In the end though, I do a lot of reading and then we improvise a lot depending on how things are going. And I try not to push too hard and keep it fun and varied.
This last week was settling back in after some time in Indonesia. This next week is about getting a whole lot of things done.
I did push out a new library, humanize.rs in the last couple of days. Right now, it only does bool, but I’ll be adding more to it in the coming days as I start to use it more.
I’ve been working out how to start handling RDF in Rust and hope to get started writing some more serious code in that area this week.
Hope y'all have had a great week!
I’m keeping the update short this week as I’m about to walk out the door and drive up to the US Embassy to get replacement passports for daughter and I.
In the last week, I made a bunch of improvements to rust-metrics.
I also made a lot of progress on lldb.rs including a lot of documentation.
I’ve also been reading up on computational algebra and have been learning the internals of Axiom and Aldor. I’ve got a much better handle on things now and hope to start making a fresh shot at this in Rust in the coming days.
I set up a Patreon at the request of someone … interesting to see how that goes.
I’m resisting (so far) the temptation to write a WebRTC stack in Rust. So far. Still resisting.
I’m supposed to fly this Friday to somewhere. But I haven’t decided where yet, much less booked anything. Hmm.
It has been a busy time, but so incredibly fun and rewarding.
All of the projects that I discuss below (and many more that I still am working on locally) (but obviously not client work) are welcome for contributors and help. I’m willing to mentor people new to Rust who’d like to help out with these.
I’ve been doing some iOS performance analysis work for a client. But not much to say about that.
I’ve also been doing a bit of Rust work on contract for someone. That’s been a lot of fun. (And I’d be happy to talk about doing other Rust work on contract…)
In April or so of 2015, someone at Microsoft submitted some C wrappers around the LLDB C++ API to make it easier to do some language bindings. They never went anywhere unfortunately, but I dug them back out and started rehabilitating them, resulting in lldb-sys.rs and now I’m working on safe, more Rust-like bindings in lldb.rs.
I did a couple of minor improvements on my ICU-like message-format.rs. This still needs a bit of love to finish up parsing plural and select formats. Help here would be welcome. (I would also like to see this library grow support for Mozilla’s L20n format.)
I’ve done a bunch of work iterating on fixing some issues in rust-metrics and have more that I plan to do there.
This week, I need to make headway on my markup library. I don’t care at all about the surface syntax, but what I need is the document AST so that I can construct it in code and render it to a variety of text formats like plain text, HTML, native controls, etc.
I’ve also been reading a lot about how computer algebra systems are implemented and have been trying to find a representation that I like and that I feel fits in well with a Rust implementation.
It is also my daughter’s last week in school for this term and her summer break starts at the end of this week. I need to head to Indonesia in the later part of early July, so we’ll start to book that soon and take a week or two in (probably) Jakarta and Bali.
Hope y'all have a great week!
Novel: Mistborn - Brandon Sanderson on Audible
Paper: I read a paper on an abstraction called a tope, I didn’t really get it though. It’s part of my dive into data validation
Technical Books: How to solve problems - George Polya. There’s some interesting tidbits, but I’m half-way and the heuristics seem overly specific to mathematics.
I’d started working out a library for topes in Rust, but it hasn’t been a priority. Let me know if that sounds interesting to you!
I actually made some progress on Ruse (my embedded Scheme for Rust) this last weekend! I was flying to and from Sacramento for a family member’s graduation, and managed to use the time to get things going. I have the basic machinery for a lexer in place, and I’ll be working on the parser next. I’d originally thought of using a parser combinator library, but figured that since Ruse is really a learning project, I’d prefer to do everything by hand. It’s pretty fun!
I am also looking for where I can contribute to Rust next. There are a number of open issues for Rustdoc that I’d love to fix if I can. We’ll see how that goes.
I would really love love love to be able to embed latex math in rust doc. :) otherwise, documenting libraries that do any significant math is harder!
I agree, that would be a useful feature. It’s been suggested before, but that was a while ago. I’ve opened up an issue for it.
I’m still learning and working with Rust. I’m still enjoying Rust and having a great time.
I’m currently working on my message-format library, which is getting to the point where it is usable almost. I mainly need to finish up parsing plural and select messages. I’m using nom which has been interesting.
I’ve also got a new library, disassemble.rs which provides useful functionality for people who are working with disassembled code and low level tools. There are other libraries like this in other languages, but most of them are set up for use in a particular situation while my library tries to generalize the instruction set support so that it can be used for native code, VMs, bytecode, etc.
I’m toying with some other things and hope to start pushing some other libraries this week, like the start of a computer algebra system in Rust, an annotation framework, and more.
If anyone’s learning Rust (or already knows it) and would like to help out with some of my projects, I have areas where it would be easy for someone to contribute and I’d be happy to help mentor.
This week is busy with a lot of other things as well. Have to head up to the US Embassy to get a new passport for my daughter and I. And now it is time to watch the WWDC keynote!