I just picked this up as well while on vacation.
I’ve been enjoying working through Project Euler doing the solutions in Rust.
Creating actual working code with Rust has been a lot of fun!
Does anyone know if there’s been any more recent progress on getting FreeBSD support (back) into Nix?
I’d loooooove to try out Nix especially for stuff at work but not supporting FreeBSD is currently a deal-breaker.
Same here.
I’d love to have a fancy mechanical keyboard with lots of option keys etc. but I don’t have endless spare time to research let alone configure something like that.
The MS Natural 4000 is perfect for me: I went from pain after an hour to no pain no matter how much I type. It’s only $30! Great stuff.
I’ve got an ergodox, but getting used to the thumb keys at work but not having it on my laptop at home was just too much to get used to.
It’s encouraging to see some POWER options almost approaching hobbyist affordability ( for some definitions of “hobbyist” )
Here’s another SmoothLife article referenced by this article, with a really captivating long youtube video of an example SmoothLife evolution
Cool stuff!
An interesting part of this: Fuchsia uses it’s own IPC Schema / Definition system named FIDL.
And since objects and messages are passed around describing … well … everything throughout the system, there are FIDL definitions for everything from “netstack”, “time_zone” and types used in graphics display to name a few.
Here’s a bunch of FIDL examples.
I’m also really digging how each component has it’s own namespace in place of a traditional global filesystem
See also mach’s mig.
At a first glance it does not seem a serialization format, but a binary RPC protocol.
It looks like it not only handles data serialization but also stubs for interfaces to methods to be implemented in whatever languages that FIDL supports.
For example see the time_zone FIDL:
[ServiceName="time_zone::Timezone"]
interface Timezone {
// Returns local timezone offset (in minutes from UTC. Can be negative) for
// the supplied number of milliseconds since the Unix epoch. Returns a
// non-zero DST offset when appropriate.
1: GetTimezoneOffsetMinutes(int64 milliseconds_since_epoch)
-> (int32 local_offset_minutes, int32 dst_offset_minutes);
// Sets the timezone for the machine based on an ICU ID.
2: SetTimezone(string timezone_id) -> (bool @status);
// Gets the timezone ID string.
3: GetTimezoneId() -> (string timezone_id);
// Watches for updates to the timezone ID.
4: Watch(TimezoneWatcher watcher);
};
Protobuf, or any serialization format like that, isn’t directly usable for IPC without significant modification because Protobuf doesn’t give you mechanisms for sending resources like file descriptors.
Well, unix sockets send fds out of band :) but the point is, seems like they started from scratch instead of doing that modification.
Sure, but if you want to use protobuf then you need to hack up protoc to emit file descriptors specially into cmsgbuf, at that point you’re not interoperable with any existing protobuf implementation, so what’s the point?
The Wren language they mention seems interesting. I’m getting into more classic-class languages (pun intended-not-intended). Mostly Java though (since that’s what I’m learning to use for game dev atm).
I was just looking through the docs for Wren linked to from Luxe. It looks cute:
Wren is a small, fast, class-based concurrent scripting language
Think Smalltalk in a Lua-sized package with a dash of Erlang and wrapped up in a familiar, modern syntax.
Wren is small. The VM implementation is under 4,000 semicolons. You can skim the whole thing in an afternoon. It’s small, but not dense. It is readable and lovingly-commented.
Wren is fast. A fast single-pass compiler to tight bytecode, and a compact object representation help Wren compete with other dynamic languages.
Wren is class-based. There are lots of scripting languages out there, but many have unusual or non-existent object models. Wren places classes front and center.
Wren is concurrent. Lightweight fibers are core to the execution model and let you organize your program into an army of communicating coroutines.
Wren is a scripting language. Wren is intended for embedding in applications. It has no dependencies, a small standard library, and an easy-to-use C API. It compiles cleanly as C99, C++98 or anything later.
Wren is quite compelling. There are a few slick little languges in this embedded (game) scripting space nowadays.
Whew, I’m glad to have an update on this. Thanks for posting it.
Has there been any public discussion by Lets Encrypt on any limitations or constraints on their wildcard certificates? I’ll do cartwheels if it’s just as easy as their current setup for certificate issuance.
Here you go: https://letsencrypt.org/2017/07/06/wildcard-certificates-coming-jan-2018.html
They will be available via the ACMEv2 endpoint, for which there’s a staging/test server you can test with now: https://letsencrypt.org/docs/staging-environment/
As almost everything I manage at work is handled with Ansible, this is fantastically wonderfully delightfully adverbially-infusedly amazing.
Here’s more background details on this project, and why it would be a revolution over the current state of Ansible: http://pythonsweetness.tumblr.com/post/165366346547/mitogen-an-infrastructure-code-baseline-that
It’s rare that efforts like this can offer orders of magnitude better performance, but it seems within reach given what the developer has posted already.
I’m now seriously considering getting involved in the development / testing of Mitogen.
I just pushed v2 of the ansible proof of concept plugin, it’s now down to the target of one request/response per call to an already uploaded playbook module, but presently it’s doing horrible things to work around Ansible’s layering. Still, 4.7 seconds for 25 steps against a local VM :) Still no magic for handling sudo or non-.py modules but those parts are easy. The future is bright.
Check out examples/playbook/
I love this!
I especially love how this makes JSON-based pipelines so easy to use and manipulate. Lately I’ve been using jq for most command-line data-munging, and things like this as well as FreeBSD’s support for --libxo=json across system utilities is just delightful.
I love these, is there any way to automate applying these to a given Firefox Profile?
It’d be so nice to have these set as part of a local Ansible run, for example
You can find prefs.js inside the profile folder. You can just add entries like user_pref("media.eme.chromium-api.enabled", false); there — it is a text file you can edit.
If marionette is enabled (or maybe webdriver?) you can also alter settings at runtime. The official python package for this is marionette_driver. I use my own code for the marionette bits, but I setup firefox settings from shell scripts.
As far as I know, all WebDriver support in Firefox is implemented by a proxy that connects to the Firefox instance itself via Marionette protocol.
And WebDriver protocol is too cross-browser to support preferences. So if you want to randomize sme options in runtime (to mess with fingerprinting, I guess) or to allow/block Javascript by a script (I actually use this), native Marionette client is needed.
As far as I know, all WebDriver support in Firefox is implemented by a proxy
Yes, geckodriver is the proxy. Webdriver does support browser specific options, for example you can set profile preferences when starting up geckodriver, but I dont know if webdriver provides an api to do it after the browser is started.
I manage firefox instances using a little CLI https://github.com/equalsraf/ffcli/blob/master/ff/MANUAL.md and lots of shell script shenanigans.
or to allow/block Javascript by a script (I actually use this)
You mean suspend script execution? How do you do that using marionette?
No, I just start with scripts disabled, and then I manually trigger preference modification (like your prefset) to reenable scripts if I want them enabled. And I generally have many Firefox instances under different UIDs, so the effect is formally local but actually affects only one site anyway. (And launch new instances using rofi — which is similar to dmenu, and I have a way to make some bookmark there be associated with scripts enabled immediately). I gave up on managing the ports when I start too many instances at once (race conditions are annoying), so now they just live in their own network namespaces.
I very much agree.
This is also in the same vein as disaster recovery processes and procedures, insofar as it won’t be used often and therefore when broken won’t be noticed, until an emergency happens and you’re left stranded.
Looks like it doesn’t affect FreeBSD, going by the sample code given in the article and running ktrace on it =)
We do something 20% of the way to this that’s been a big help. Due to popular demand I made a team-wide git pre-commit hook that only ensures commit messages begin with one of “ADD”, “UPDATE”, “REMOVE”, “DEVELOPMENT”, “BUGFIX”, “REFACTOR”, “CONFIG” or “DOCUMENTATION” in nice square brackets at the beginning of the commit message, and that the rest of the message is non-empty.
It’s made scanning through commit messages quite pleasant.
This is exactly what I’ve been looking for to help with cache utilization at $work.
We have the same problem of balancing global/local caches and reasonably distributing load so I’m excited about pushing up HAProxy 1.7 and fiddling with the new hash-balance-factor to make our environment a better place.
And here’s the official blog post on it: https://aws.amazon.com/blogs/aws/now-open-aws-london-region/
Seems like an easy problem to resolve: change ads to say “more meat for the same price!”
3 is less than 4 seems like an easy quick reaction, but what happens if you actually tell people this burger is bigger?
Well, to expand a little bit. Was it really half the people they talked to, or half the people who thought it was a bad value? That’s one of those little details that always gets lost in translation, but matters quite a bit. Anyway, assuming half of all people.
Are people really numerically illiterate? Did they ask how many ounces in a third and quarter pound? Is 5.3 less than 4?
People’s intuition for fractions is probably wrong because fractions aren’t that intuitive. If your marketing depends on people passing a math quiz, that’s not great, but if you don’t tell them it’s a math quiz? Even less great.
If you’re driving down the highway and looking at billboards, as opposed to reducing fractions for fun on the couch, you probably think one third vs one quarter, that’s three to a pound vs four to a pound, 3 for X is less than 4 for X, … Losing track of the units somewhere along the way.
How many people’s first memory of fractions is that time in school they were tricked into thinking 2/9 is bigger than ¼? So people know fractions are tricky and don’t trust them. Meanwhile, somebody comes along with an ad that looks very much like the ad you’d run trying to sell a smaller burger but making it sound bigger. I don’t blame people for being suspicious of what looks like a trick. A marketing campaign of “you can trust our fractions”? Also not great.
Agreed.
Depressingly, their better option probably would have been to pitch it as a “Quarter-Pound-Plus” burger …
I agree that this is an issue of marketing, but its also an issue with the assumption of the general population’s understanding of math. I like to imagine being in those marketing meetings and thinking up the justification of the advertising campaigns.
Imagine sitting there with a bunch of copywriters, advertisers, designers, and upper management talking about the direct competition you are going against. You are introduced with the idea of having a bigger patty for the same price as the competition’s smaller burger. You are informed that the burger will be 1/3 pounds. With that knowledge, and the topics of the meeting its a no-brainer to call the burger the 1/3 Pounder. I bet the marketing team at McDonald’s was pissed when it was released.
Its definitely a case of hind-sight is 20/20 after the sales weren’t good, forcing conduction the focus groups.
In the same vein, I’ve seen numerous instances where applications hosted in EC2 that perform some analysis of user-submitted URLs happily accept http://169.254.169.254/latest/user-data/ and spit back proprietary configuration information used to boot-up the instance =(
Siiiiiiigh, it’s so sad that the Nexus 6 I have is not supported by CopperheadOS =(
Given the length of the article I was surprised to see Ember.js missing, even though golden-oldies like Prototype and Backbone.js were.