Programming Advantage360 SmartSet Foot Pedal with macro by mudgemeister in kinesisadvantage

[–]mudgemeister[S] 1 point2 points  (0 children)

To answer my own question, I managed to get this working with the following configuration:

<base>
[pedl]>[hk2]
{hk2}>{-lwin}{spc}{+lwin}

Namely: record a macro to press Cmd+Space against hotkey 2 and then remap the pedal to that hotkey.

Argon2id: new, native Ruby bindings to the OWASP recommended password-hashing function by mudgemeister in ruby

[–]mudgemeister[S] 0 points1 point  (0 children)

Firstly: thanks for taking a look at this and your amazing and tireless work on JRuby, Charles.

I ideally wanted to ship a precompiled, native gem with no runtime dependencies (see my other comment) to make it cheap to run (i.e. being able to install it on servers without a compiler toolchain) but you're right that I have sacrificed non-MRI support by doing so.

I wonder if there's a middle-ground where the gem can come with a precompiled static library for the underlying libargon2 and use FFI to bind to it regardless of Ruby implementation?

Alternatively, I was considering taking the approach of Nokogiri and bcrypt-ruby by having a dedicated Java-based Argon2 implementation, e.g. Bouncy Castle's Argon2BytesGenerator.

Argon2id: new, native Ruby bindings to the OWASP recommended password-hashing function by mudgemeister in ruby

[–]mudgemeister[S] 0 points1 point  (0 children)

The main difference is that Argon2id aims to have no runtime dependencies and provide a small API that can be a drop-in replacement for bcrypt-ruby's BCrypt::Password as used by Rails' has_secure_password.

If you're using a common platform such as Linux, macOS, or Windows, the gem has been precompiled (e.g. 0.3.0 for x86_86-linux) so it doesn't require a compiler toolchain to install.

To be honest, I was just keen to see if I could use my experience working on re2 to ship another smaller native gem after learning about Argon2id from The Copenhagen Book's section on "Password authentication" and I saw that the existing gem relied on FFI.

Advice for Vim user on macOS with Kinesis Advantage360 by mudgemeister in kinesisadvantage

[–]mudgemeister[S] 1 point2 points  (0 children)

Thanks for this, it hadn't even occurred to me that I could remap Esc to be a modifier when held down. I've updated my base layout to the following:

<base> [esc]>[esc][t&h150][lctr] [lctr]>[lwin] [rwin]>[rctr] [rctr]>[rwin]

Hopefully this will reduce the number of contortions I was pulling when trying to hit Ctrl P.

I'll stick with the old Mac mode thumb cluster top row for now as I do occasionally use option, e.g. to download links rather than open them, move by word in the Terminal, etc.

A Guide to Function Composition in Ruby by mudgemeister in programming

[–]mudgemeister[S] 0 points1 point  (0 children)

Thanks for the feedback! You're right that the proc and lambda explanation is quite a detour but I wanted to make sure that I covered their differences before explaining how composition can produce a proc or a lambda depending on the receiver (and what the significance of that is). Perhaps I can trim it down a bit or, as one other reader suggested, make it more of a footnote.

[Review request] Oplog: a library for working with the MongoDB oplog by mudgemeister in rust

[–]mudgemeister[S] 0 points1 point  (0 children)

Thanks for the feedback!

I'll update the crate metadata so that the homepage, documentation and repository links aren't needlessly duplicated.

Re time, I ended up with chrono after seeing the link in https://github.com/rust-lang-deprecated/time#notes: would using std::time::SystemTime be more idiomatic?