From j3s at c3f.net Sun Aug 2 06:48:30 2020 From: j3s at c3f.net (j3s at c3f.net) Date: Sun, 02 Aug 2020 06:48:30 +0000 Subject: The ideal Message-ID format In-Reply-To: References: Message-ID: I wound up writing a base64 version of this for a mail server implementation that I'm working on. Example code here: https://play.golang.org/p/4wRMVTScZ9j I chose base64 over base70 for a few reasons: - base64 is very common and simple to implement - because of this common-ness they're unlikely to cause weird web behavior - I have a mere glimmer of base-math-understandingness I figure that since this header exists mostly in the background, I could compromise on readability a bit. Thoughts? Otherwise, thanks for these emails begriffs! It's still surprising to me how little unity there is on message ids across email platforms. I have a feeling that some companies hook their message id generators up to lavalamps. From joe at begriffs.com Sun Aug 2 18:09:45 2020 From: joe at begriffs.com (Joe Nelson) Date: Sun, 2 Aug 2020 13:09:45 -0500 Subject: What's everyone working on lately? Message-ID: <20200802180945.GC1956@begriffs.com> It's been pretty quiet lately since we've been unable to meet. What's everyone working on? Any personal projects of interest? From dave at 19a6.net Sun Aug 2 18:45:31 2020 From: dave at 19a6.net (Dave Bucklin) Date: Sun, 02 Aug 2020 13:45:31 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: On August 2, 2020 1:09:45 PM CDT, Joe Nelson wrote: >It's been pretty quiet lately since we've been unable to meet. What's >everyone working on? Any personal projects of interest? I just happen to be setting up Icecast as part of a personal project. I've gotten it to work, just not the way I want. From dklann at grunch.org Sun Aug 2 19:15:37 2020 From: dklann at grunch.org (David Klann) Date: Sun, 2 Aug 2020 14:15:37 -0500 Subject: What's everyone working on lately? In-Reply-To: References: <20200802180945.GC1956@begriffs.com> Message-ID: On 8/2/20 1:45 PM, Dave Bucklin wrote: > > > On August 2, 2020 1:09:45 PM CDT, Joe Nelson wrote: >> It's been pretty quiet lately since we've been unable to meet. What's >> everyone working on? Any personal projects of interest? > > I just happen to be setting up Icecast as part of a personal project. I've gotten it to work, just not the way I want. > Funny! I've been working on Python skillz -- mainly trying to convert my head from long-time Perl habits into the equivalent (or different) Pythonic constructs. Specifically, since I host Icecast stream servers for a living, I'm writing utilities to generate reports for clients (reports for royalty distribution agencies and general statistical reports for my radio station clients). I've also been looking at doing some C++ code contributions to the radio automation project "Rivendell" (my fork is at github.com/dklann/rivendell). I'm not a GUI programmer, so this will stretch me a bit. Let me know if you want any help with Icecast Dave! ~David From ian at ianbicking.org Sun Aug 2 21:19:24 2020 From: ian at ianbicking.org (Ian Bicking) Date: Sun, 2 Aug 2020 16:19:24 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: I've found it hard to marshal the mental energy, but my older daughter wanted her own website, and that made my younger daughter want the same - but the younger one is not ready for HTML and JavaScript. So I'm playing with the idea of something simple she can use to make a site. On her (vague and dreamlike) suggestion I've started on something with a blank grid of characters (and emoji) as a really simple content canvas. But I've only put a tiny bit of work into it so far. On Sun, Aug 2, 2020, 1:09 PM Joe Nelson wrote: > It's been pretty quiet lately since we've been unable to meet. What's > everyone working on? Any personal projects of interest? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joe at begriffs.com Sun Aug 2 22:39:07 2020 From: joe at begriffs.com (Joe Nelson) Date: Sun, 2 Aug 2020 17:39:07 -0500 Subject: The ideal Message-ID format In-Reply-To: References: Message-ID: <20200802223907.GD1956@begriffs.com> j3s at c3f.net wrote: > I wound up writing a base64 version of this for a mail server implementation > that I'm working on. Example code here: https://play.golang.org/p/4wRMVTScZ9j I like how compactly you were able to write that. The golang standard library looks like it comes with a lot of helpers. > I chose base64 over base70 for a few reasons: > > - base64 is very common and simple to implement Makes sense to use it since it's already implemented in the standard library. B64 does have some slight disadvantages: 1. It's designed to handle arbitrary-length input so is more complicated internally than doing arithmetic on an input integer 2. It adds "=" symbols to pad its output to multiples of four bytes. Thus your code creates message-ids that include padding at the end of each component: MTI1Nzg5NDAwMA==.Njg2MTQyMTQ4MzUyNDU1NzkyNA==@cyberia.club Also you're encoding a string representation of the random integer: func base64Encode(i int64) string { int64_string := strconv.FormatInt(i, 10) encoded_int := b64.URLEncoding.EncodeToString([]byte(int64_string)) return encoded_int } You could get shorter output by encoding the bytes of the integer directly. (B64's strength is, after all, being able to encode raw bytes.) func base64Encode(i int64) string { buf := make([]byte, 8) binary.LittleEndian.PutUint64(buf, uint64(i)) return b64.URLEncoding.EncodeToString(buf) } Here's an example of the output: cPD5SgAAAAA=.DSjzZ02v7VY=@cyberia.club This implementation will always produce twelve characters of output for the integer (being given eight bytes of input). Note for a given width of integer, smaller values don't shorten the output. You can see this for the timestamp with all the AAAs. In your implementation of encoding the decimal string, a smaller integer *would* generate a smaller output, but on average I think the output would be bigger than encoding the raw bytes. My alpha_radix() function is sort of the best of both worlds, operating on the raw bytes of the integer, and also emitting fewer characters for smaller inputs. Here's a message id I generated at random just now: +VHY~.z06-zzsoPI at begriffs.com > - because of this common-ness they're unlikely to cause weird web behavior Yeah there's something to be said for the tried and true. On the other hand we shouldn't be superstitious -- my implementation outputs strings containing only these characters: 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz $!*-~'+_ I think they are all URL-safe, although I have some hesitation around "+" which might be treated as space by some pathological HTTP server. To use a different alphabet I need only to change an array constant in my program. > - I have a mere glimmer of base-math-understandingness It's just a generalization of decimal. Rather than having a 1s, 10s, 100s etc place, you have a n^0 (1), n^1 (n), n^2, etc place. You fill in each place using symbols from a predetermined alphabet. Check out the animation in this page where you can choose the base and watch it count in that base. https://www.mathsisfun.com/numbers/bases.html > Otherwise, thanks for these emails begriffs! It's still surprising to > me how little unity there is on message ids across email platforms. I > have a feeling that some companies hook their message id generators up > to lavalamps. It's fun to talk about it with you and think it through. From chuck at cpjj.net Mon Aug 3 15:29:16 2020 From: chuck at cpjj.net (Chuck Jungmann) Date: Mon, 3 Aug 2020 10:29:16 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: I have been working on a library for processing GNU conforming command line options.? My objective is to make the code for processing the options easier to scan and modify. I was eventually going to post it to the list for feedback, but I'll ride your invitation to post a link to it right now: https://github.com/cjungmann/readargs I'm curious to know if anyone beside me would find this useful. I'd also welcome suggestions or comments about where I may be using bad or confusing practices. On 8/2/20 1:09 PM, Joe Nelson wrote: > It's been pretty quiet lately since we've been unable to meet. What's > everyone working on? Any personal projects of interest? From chris at sencjw.com Mon Aug 3 16:31:28 2020 From: chris at sencjw.com (Chris Wilson) Date: Mon, 3 Aug 2020 11:31:28 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: > On Aug 2, 2020, at 13:09, Joe Nelson wrote: > > It's been pretty quiet lately since we've been unable to meet. What's > everyone working on? Any personal projects of interest? I?ve been doing some radio work. I put together a 49:1 impedance transformer so that I could run a half-wave end-fed antenna (long wire out my office window). I put that up this weekend. Also the jib on my small sailboat developed a tear and so I?ve been shopping around for a new one. I feel like I?ve been subconsciously avoiding software lately. From j3s at c3f.net Mon Aug 3 17:04:31 2020 From: j3s at c3f.net (j3s at c3f.net) Date: Mon, 03 Aug 2020 17:04:31 +0000 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> > Any personal projects of interest? Yep! I recently built a single speed bicycle. Putting the finishing touches on it today. I wrote a small blurb about why I wanted to do this here: https://j3s.sh/thoughts/building-a-fixed-gear-bicycle.txt I'll also be putting a patch together this afternoon for my mailserver so that Message-Id generation is a thing that it does. :D From j3s at c3f.net Mon Aug 3 20:52:56 2020 From: j3s at c3f.net (j3s at c3f.net) Date: Mon, 03 Aug 2020 20:52:56 +0000 Subject: What's everyone working on lately? In-Reply-To: <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> References: <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> <20200802180945.GC1956@begriffs.com> Message-ID: <79b68aee9b4fbab683e6c42c01e5fec6@c3f.net> just finished (minus one break). here's a picture! -------------- next part -------------- A non-text attachment was scrubbed... Name: fixx-gear.jpg Type: image/jpeg Size: 71741 bytes Desc: not available URL: From joe at begriffs.com Wed Aug 5 01:02:28 2020 From: joe at begriffs.com (Joe Nelson) Date: Tue, 4 Aug 2020 20:02:28 -0500 Subject: What's everyone working on lately? In-Reply-To: References: <20200802180945.GC1956@begriffs.com> Message-ID: <20200805010228.GF1956@begriffs.com> Chuck Jungmann wrote: > I have been working on a library for processing GNU conforming command > line options.? My objective is to make the code for processing the > options easier to scan and modify. I was eventually going to post it > to the list for feedback, but I'll ride your invitation to post a link > to it right now: > > https://github.com/cjungmann/readargs > > I'm curious to know if anyone beside me would find this useful. I'd > also welcome suggestions or comments about where I may be using bad or > confusing practices. I just happened to read an article [0] by Chris Wellons about his criteria for correct argument processing. You could try his examples and see how your library handles them. 0: https://nullprogram.com/blog/2020/08/01/ From joe at begriffs.com Wed Aug 5 01:50:58 2020 From: joe at begriffs.com (Joe Nelson) Date: Tue, 4 Aug 2020 20:50:58 -0500 Subject: What's everyone working on lately? In-Reply-To: <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> References: <20200802180945.GC1956@begriffs.com> <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> Message-ID: <20200805015058.GG1956@begriffs.com> > Yep! I recently built a single speed bicycle. Putting the finishing touches > on it today. I wrote a small blurb about why I wanted to do this here: > https://j3s.sh/thoughts/building-a-fixed-gear-bicycle.txt Fascinating project. Love the idea of building each and every part and having a machine you fully understand. Also cool that you followed through and did it! I'm more of a wuss and don't want to give up having brakes and multiple gears. However from time to time I do wonder what the most robust design would be for a standard commuter bike. In particular these goals: * Easiest parts to repair with standard tools - All the cables exposed rather than routing through the frame - Simple adjustable things like rim brakes rather than, say, disc brakes - "Analog" rather than "discrete." For instance a friction shifter rather than a shifter that has predefined positions which can get misaligned - Able to make (small) adjustments without any tools, like a knob to make small brake tension adjustments by hand * As compatible as possible with the outside world - Avoiding brands that use weird dimensions to lock you into their product line - Rims of a size that work with most inner tubes and tires, including studded winter tires - A rear axle style that fits with the greatest variety of rear racks and cargo trailer hitches - Pedals that work with any kind of shoe - Valves that work at gas station air pumps - Plenty of holes on the frame to attach things like bottle cages - A dynamo to power lights, but with an electrical interface that allows switching out the model of light * Easiest to repair on the roadside - Quick release wheels - Few hex wrench sizes required - Brakes that make it easy to slip the wheel out, and which accommodate fenders - Belt drive rather than greasy chain? That would require an internal gear though, which might be less repairable in its own right than a derailleur Anyone know of bike models ready-built with these in mind, or is it a DIY situation? From joe at begriffs.com Wed Aug 5 01:53:44 2020 From: joe at begriffs.com (Joe Nelson) Date: Tue, 4 Aug 2020 20:53:44 -0500 Subject: What's everyone working on lately? In-Reply-To: References: <20200802180945.GC1956@begriffs.com> Message-ID: <20200805015344.GH1956@begriffs.com> > I?ve been doing some radio work. I put together a 49:1 impedance > transformer so that I could run a half-wave end-fed antenna (long wire > out my office window). I put that up this weekend. Nice, how has it worked out? Were you able to hear activity on the air that you couldn't before, or hear it better? Which frequencies is it best matched for? From chuck at cpjj.net Wed Aug 5 14:51:53 2020 From: chuck at cpjj.net (Chuck Jungmann) Date: Wed, 5 Aug 2020 09:51:53 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200805010228.GF1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> <20200805010228.GF1956@begriffs.com> Message-ID: Thanks for the link. I had noticed that you had starred Chris Wellons' project and looked it over.? I wasn't aware of his article and I read it with interest. My library handles short options alone or grouped, with or without spaces, long options, with or without '=', arbitrary order of options and non options.? With the exceptions of subcommands and optional-value options, my library handles arguments as Wellons and the GNU guidelines suggest. I tried to made the library to be super easy to setup for basic stuff, but easily extensible.? I have an example source file that implements optional-value options and multi-value options (which could be modified to handle subcommands). I wanted to build in optional-value options.? I'd like to conform to existing standards for this feature, but I couldn't find any commands that implement it.?? My extension implementation evaluates the argument following the optional-value option to decide if it's a value or an option or non option.? For example, for an optional-value option -i for an input file, the custom handling could confirm the existence of the input file.? If the file exists, the argument becomes the value for the optional-value option, otherwise it's treated as the next non option argument. One unusual feature I wrote for my own benefit is to easily display the values of each option so I can see the effect of the command line arguments.? This has increasing value for the developer and end user as the command line processing gets more complicated.? I usually attach this feature to -s / --show_args so it can be invoked multiple times in a set of arguments. On 8/4/20 8:02 PM, Joe Nelson wrote: > Chuck Jungmann wrote: >> I have been working on a library for processing GNU conforming command >> line options.? My objective is to make the code for processing the >> options easier to scan and modify. I was eventually going to post it >> to the list for feedback, but I'll ride your invitation to post a link >> to it right now: >> >> https://github.com/cjungmann/readargs >> >> I'm curious to know if anyone beside me would find this useful. I'd >> also welcome suggestions or comments about where I may be using bad or >> confusing practices. > I just happened to read an article [0] by Chris Wellons about his > criteria for correct argument processing. You could try his examples and > see how your library handles them. > > 0: https://nullprogram.com/blog/2020/08/01/ From prenticedarren at gmail.com Wed Aug 5 23:42:05 2020 From: prenticedarren at gmail.com (Darren Prentice) Date: Wed, 5 Aug 2020 18:42:05 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: <91BA55BE-8B19-4D36-BBA6-E14DB280C4B9@gmail.com> Woodworking. (Apparently a rising trend among millennial tech workers?) I recently moved with my girlfriend into her grandparents' old house in Columbia Heights. Her grandpa left behind a nifty workshop / ?mancave" in the basement that I've gone crazy with. I love the change of pace of working with my hands on an intuitive and forgiving medium. I can actually listen to a podcast while I work, or maybe even get a little sanding in during meeting calls. Current project is building my cat an epic outdoor enclosure, aka ?catio". Joe: I?m really interested in your mime-down project. Let me know if you ever see an opportunity for UI related work on that. In the back of my head I?ve been dreaming up all these possibilities for re-imagining the UI/UX of email. It seems like there?s no reason it can?t be as, if not more, intuitive and aesthetically pleasing as all those centralized messaging apps out there. It?s something I might dive into more formally this winter. From chris at sencjw.com Thu Aug 6 20:16:53 2020 From: chris at sencjw.com (Chris Wilson) Date: Thu, 6 Aug 2020 15:16:53 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200805015344.GH1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> <20200805015344.GH1956@begriffs.com> Message-ID: <8FF3C1B8-2310-41F3-AEAE-F0062D8948D9@sencjw.com> > On Aug 4, 2020, at 8:53 PM, Joe Nelson wrote: > >> I?ve been doing some radio work. I put together a 49:1 impedance >> transformer so that I could run a half-wave end-fed antenna (long wire >> out my office window). I put that up this weekend. > > Nice, how has it worked out? Were you able to hear activity on the air > that you couldn't before, or hear it better? Which frequencies is it > best matched for? So far so good. This antenna is on 40m (~7 MHz) and so it?s better during the evening and night (any time the sun?s down). And generally I find that I?m now hearing *both* sides of a conversation and not just the stronger signal. I just recently got my first QSO and thus signal report. I had 59 into Michigan (266mi). So I?m pretty happy with that! From chris at mikk.net Thu Aug 6 23:41:41 2020 From: chris at mikk.net (Chris Mikkelson) Date: Thu, 6 Aug 2020 18:41:41 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: <20200806234141.GA25668@mikk.net> On Sun, Aug 02, 2020 at 01:09:45PM -0500, Joe Nelson wrote: > It's been pretty quiet lately since we've been unable to meet. What's > everyone working on? Any personal projects of interest? Since non-computer projects are in scope, a friend gave me a broken espresso machine earlier this year, and I recently finished repairing it. It was something like this: https://images.app.goo.gl/AJ5RnhjC7P9XgH3z6 (Expobar Brewtus, earliest model) This was a cool project for me because I don't consider myself mechanically inclined, but decided to give it a go for the sake of coffee. It took a few months of troubleshooting, ordering parts, and scrounging the hours to work on it. I ultimately had to replace the boiler pressure controller (and the emergency backup thermostat), as well as the brew temperature controller, which required installing an SSR and tuning a PID to get it working. Finally, I had to replace the boiler fill controller, which was a fun adventure in translating Italian electronic shorthand. But, in the end, it makes really good coffee. I'm still planning a few upgrades to it next time I needs to get opened up. -- Chris Mikkelson | Problems are posed by fools like me; chris at mikk.net | But only Heuristics can search a tree. From noelmiller at protonmail.com Thu Aug 6 23:53:20 2020 From: noelmiller at protonmail.com (Noel Miller) Date: Thu, 06 Aug 2020 23:53:20 +0000 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 I have been working on improving my Ansible and Kubernetes skills. Taking some time to build out a lab for myself. My lab has been in disrepair since COVID hit and I had my kid, so I basically am just starting from scratch. Host is going to be a ProxMox box. I am really digging ProxMox as a cheap virtualization solution that still has a lot of enterprise features. Much more feature rich than ESXI for the free version. > On Aug 2, 2020, at 1:09 PM, Joe Nelson wrote: > > > It's been pretty quiet lately since we've been unable to meet. What's > everyone working on? Any personal projects of interest? -----BEGIN PGP SIGNATURE----- Version: ProtonMail wsBmBAEBCAAQBQJfLJfvCRB8HZRzFg9CAgAKCRB8HZRzFg9CAhHPB/9NbIfp +359UbTCCptOjTUXUyxpMz+VvLF+68KQRbU/EKFEy8gI/saBfuNGUswuz2lb De8uku9W9081QbZ1mAiERvuAEV/ptIa3oOv9Yjxl74xr1HpZGLC9giqQxuO0 8gJofRCjaeNMMcSsWxcS+EsJ6XDAZSNSMNs7wjTFLK2qkHUZWnmKRoAOWYmR DTa7cIg3mqIctI5AyRZ8i9rDStM07WH6yBufGNUYIApvheEWf4GtW/Vb2fii ngoulqNrf+ZyQmycJE1EFGtVS41Rla4S2unlei+yjB5JOGx8EWAngJoU6dKI U3Rjgity9y36Wn4rhdNCfgNEtl38btAXYKjg =5jv+ -----END PGP SIGNATURE----- From joe at begriffs.com Sat Aug 8 18:13:26 2020 From: joe at begriffs.com (Joe Nelson) Date: Sat, 8 Aug 2020 13:13:26 -0500 Subject: What's everyone working on lately? In-Reply-To: <91BA55BE-8B19-4D36-BBA6-E14DB280C4B9@gmail.com> References: <20200802180945.GC1956@begriffs.com> <91BA55BE-8B19-4D36-BBA6-E14DB280C4B9@gmail.com> Message-ID: <20200808181326.GO1956@begriffs.com> Darren Prentice wrote: > I recently moved with my girlfriend into her grandparents' old house > in Columbia Heights. Her grandpa left behind a nifty workshop / > ?mancave" in the basement that I've gone crazy with. Sounds fun! BTW, do you know if there are stores that deliver lumber around here? I'd like to build a firewood shed, but carrying the boards home would be awkward with our little car. https://myoutdoorplans.com/shed/firewood-storage-shed-plans/ > Joe: I?m really interested in your mime-down project. Let me know if > you ever see an opportunity for UI related work on that. The underlying program is just a text filter, so I can imagine plugging it into other interfaces. Currently it works with stdin/stdout and command line flags, but I could expose a function that other programs could link to. Could even connect the library to a web thing. https://developers.google.com/web/updates/2018/03/emscripting-a-c-library#the_holy_grail_compiling_a_c_library > In the back of my head I?ve been dreaming up all these possibilities > for re-imagining the UI/UX of email. It seems like there?s no reason > it can?t be as, if not more, intuitive and aesthetically pleasing as > all those centralized messaging apps out there. It?s something I might > dive into more formally this winter. Sure -- SMTP gives you a nice base for delivering messages, and MIME is open-ended for sending whatever content you want. You could re-imagine the mail user agent (MUA) experience for constructing customized types of messages. One example is something like https://delta.chat Let me know what you're thinking, maybe we could collaborate. From prenticedarren at gmail.com Sat Aug 8 19:39:38 2020 From: prenticedarren at gmail.com (Darren Prentice) Date: Sat, 8 Aug 2020 14:39:38 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200808181326.GO1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> <91BA55BE-8B19-4D36-BBA6-E14DB280C4B9@gmail.com> <20200808181326.GO1956@begriffs.com> Message-ID: Oh, nice! DeltaChat is exactly the sort of thing I was thinking of. I'll check it out. One of the things I was thinking would be nice to experiment with is a hybrid of traditional long form email threads, but also allow more of a chat room UI depending on the style of conversation. That way you don't need a separate app. I run into this a lot with my programmer friends or coworkers where the conversation style will shift at some point, and then it becomes awkward ? to either to "IM" over email, or send huge blocks of formatted text in a little chat bubble. > BTW, do you know if there are stores that deliver lumber > around here? Not sure, but I do know it?s good to always have a friend with a van. From j3s at c3f.net Sat Aug 8 20:06:03 2020 From: j3s at c3f.net (j3s at c3f.net) Date: Sat, 08 Aug 2020 20:06:03 +0000 Subject: What's everyone working on lately? In-Reply-To: <20200805015058.GG1956@begriffs.com> References: <20200805015058.GG1956@begriffs.com> <20200802180945.GC1956@begriffs.com> <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> Message-ID: <3d842d99b5b3e8574015f90752087afc@c3f.net> Big response incoming! Woops. August 4, 2020 8:50 PM, "Joe Nelson" wrote: > I'm more of a wuss and don't want to give up having brakes and multiple > gears. If you live in a relatively flat landscape and plan on mostly commuting, I'd encourage you to give it a try - living with a single speed commuter is much less work than you'd think. You may prefer having a single speed freewheel + 2 breaks to make it feel more like a traditional bicycle. This means a little more maintenance, but in exchange you get an easier ride and a lot of stopping power. August 4, 2020 8:50 PM, "Joe Nelson" wrote: > Anyone know of bike models ready-built with these in mind, or is it a > DIY situation? DIY is the only way to do this without blowing a budget, imo. I doubt you'd be able to find a bicycle that meets all of your requirements for a reasonable price (under $2k, seriously). However, if you were in the market for a very standard and reliable bike, I would recommend building your own. It's a few months of weekend labor, but there are many talented people in bike shops around the city who are willing to help out. I recommend The Hub on Minnehaha. I also have some opinions about the list of requirements. Warning: this section is composed of my own bias and personal anecdotes! - Simple adjustable things like rim brakes rather than, say, disc brakes I see disc brakes as a necessity if the bike is intended to run off- road, or in the rain. Rim brakes are notoriously easy to fill with gunk if there's a lot going around. They can also cause tire blowouts if you're stopping for a long period of time. There's also the matter of swapping wheels - if you intend on using larger wheels during the winter, a disc brake will work equally well on both wheels, where rim brake would require extra adjustment (or possibly a completely different rim brake altogether). Price-wise, a set of disc brakes worth buying will cost more than a set of rim brakes. I think my short answer in MN climate would be to prefer _nice_ disc brakes if you're biking all year, but if you only bike in the summer you're probably better off with any old rim brakes. here are several recommendations I would add: - a light steel frame. your bike will weigh a few more pounds than a comparable aluminum frame, but will be repairable by any shop, and steel provides a much more comfortable ride than aluminum. - A 1x drivetrain. I know that 1x drivetrains seem to have gone the way of the dinosaur (the standard is a 3x7 or even 3x8) but there are a lot of good reasons to choose them. - having a single front chainring means you never have to worry about cross-chaining - a single chainring is designed to lock that chain in-place, which will reduce gear slipping and make shifts feel more stable - there is no need for a second shifting mechanism - there is no need for a front derailleur - most people, even in very hilly areas, need 8 good speeds to get by, a typical 1x setup runs 9 - 11 gears - reduces weight of the bicycle - costs less to maintain You cannot buy many bicycles in 1x because the gear cassette is a wear piece, and produces profit if it needs to be replaced. The front derailleur is similar. In general the more complicated a bike is, the more profitable it is for the company selling it. My recommendation for a 1x setup is the sram rival 1, which will fit many frames. - Pedals that work with any kind of shoe Hugely agree. Frankly I think the pedal industry is insane. Especially clipless folks ;) - Valves that work at gas station air pumps Huge caution, normally air pumps at gas stations are high pressure/ volume and can easily blow a tire out. - A dynamo to power lights, but with an electrical interface that allows switching out the model of light This seems like an amazing project, I may have to try it out. From dave at 19a6.net Sat Aug 8 23:05:35 2020 From: dave at 19a6.net (Dave Bucklin) Date: Sat, 8 Aug 2020 18:05:35 -0500 Subject: What's everyone working on lately? In-Reply-To: <3d842d99b5b3e8574015f90752087afc@c3f.net> References: <20200805015058.GG1956@begriffs.com> <20200802180945.GC1956@begriffs.com> <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> <3d842d99b5b3e8574015f90752087afc@c3f.net> Message-ID: <20200808230535.GA756@19a6.tech> By the way, with some help from David Klann, I got my Icecast server running. I'll leave it going for the evening to test it out. Check it out at http://19A6.tech:8001 and let me know what you think. From joe at begriffs.com Sat Aug 8 23:24:12 2020 From: joe at begriffs.com (Joe Nelson) Date: Sat, 8 Aug 2020 18:24:12 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200808230535.GA756@19a6.tech> References: <20200805015058.GG1956@begriffs.com> <20200802180945.GC1956@begriffs.com> <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> <3d842d99b5b3e8574015f90752087afc@c3f.net> <20200808230535.GA756@19a6.tech> Message-ID: <20200808232412.GP1956@begriffs.com> Dave Bucklin wrote: > By the way, with some help from David Klann, I got my Icecast server > running. I'll leave it going for the evening to test it out. Check it > out at http://19A6.tech:8001 and let me know what you think. Works great, and it updates the track title in VLC as songs change too. From forest.n.johnson at gmail.com Sun Aug 9 16:43:45 2020 From: forest.n.johnson at gmail.com (Forest Johnson) Date: Sun, 9 Aug 2020 11:43:45 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200808232412.GP1956@begriffs.com> References: <20200805015058.GG1956@begriffs.com> <20200802180945.GC1956@begriffs.com> <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> <3d842d99b5b3e8574015f90752087afc@c3f.net> <20200808230535.GA756@19a6.tech> <20200808232412.GP1956@begriffs.com> Message-ID: I haven't been up to much, even before covid I was having trouble staying motivated and taking care of myself, and being cut off from the outside physical world hasn't helped. But I am still working on my big self hosting accessibility project. I registered the domain server.garden and decided that's what I'm going to call it, "Automated Server Garden" or just server.garden for short. So far I have been focused on the initialization process. How to allow non-technical folks to get from "I have a raspberry pi and and SD Card" to "I am running a secure web server that anyone in the world can access" reliably and rapidly. A couple months ago I recorded a video with my phone showing the interaction between two of the most important parts of server.garden, rootsystem and seedpacket. https://picopublish.sequentialread.com/files/demo.mp4 Rootsystem is the "privileged automation agent", it's sort of the equivalent of a CI server, it runs with privilege on the server computer and it is in charge of kicking off automation processes. Seedpacket is an electron app, it is the cross platform user interface that the user interacts with directly. The idea is, the user will go through a setup wizard in seedpacket, use seedpacket to write an SD card, and then plug the SD card into the Pi. Once they turn it on, rootsystem will be started and it will read a config file that contains the user's settings and credentials that they entered via seedpacket. It will then kick off a terraform build that creates a VPS on a cloud provider. Finally, it will invoke ansible to install my reverse tunnel server called "threshold" on the VPS instance, and install threshold in client mode on itself. The cool part is, rootsystem generates a user-friendly diagram of the modules in the terraform project and posts live updates & logs detailing the build process while it happens. Seedpacket polls the diagram, updates & logs to display them to the user. Once that is done, the server should be reachable over TCP from anywhere in the world via this cloud-based ingress point. I also recently tested using threshold with Caddy server (Let's Encrypt's reverse proxy product with built in ACME-based certificate maintenance). It worked, which is good news, so I don't need to handle obtaining the certificates myself. Right now i'm working on setting up an automated build so I can iterate and test rootsystem and threshold on real hardware without too much manual fiddling. If you are curious to read more about server.garden, I have a non-public draft of a post about it that I wrote a couple months ago: https://sequentialread.com/p/b211da58-3023-47d6-b8f3-acd2b427f7ef/ Also, all of my code is on my git server here: https://git.sequentialread.com/explore/repos On Sat, Aug 8, 2020 at 6:24 PM Joe Nelson wrote: > > Dave Bucklin wrote: > > By the way, with some help from David Klann, I got my Icecast server > > running. I'll leave it going for the evening to test it out. Check it > > out at http://19A6.tech:8001 and let me know what you think. > > Works great, and it updates the track title in VLC as songs change too. From joe at begriffs.com Sun Aug 9 17:16:42 2020 From: joe at begriffs.com (Joe Nelson) Date: Sun, 9 Aug 2020 12:16:42 -0500 Subject: What's everyone working on lately? In-Reply-To: References: <20200805015058.GG1956@begriffs.com> <20200802180945.GC1956@begriffs.com> <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> <3d842d99b5b3e8574015f90752087afc@c3f.net> <20200808230535.GA756@19a6.tech> <20200808232412.GP1956@begriffs.com> Message-ID: <20200809171642.GQ1956@begriffs.com> Forest Johnson wrote: > If you are curious to read more about server.garden, I have a > non-public draft of a post about it that I wrote a couple months ago: > https://sequentialread.com/p/b211da58-3023-47d6-b8f3-acd2b427f7ef/ Thanks for the link. I didn't quite understand the concept until I read the article. Here's my understanding now: * Your software provisions various services (like email, chat, maps, docs, etc) onto computers in someone's house (could be raspberry pis or whatever) * Your software routes traffic from a third party computer with a static IP to the local computers so the outside world can talk to the homelab Is that accurate? And are you running any services from your house that we can connect to and try? From forest.n.johnson at gmail.com Sun Aug 9 18:23:39 2020 From: forest.n.johnson at gmail.com (Forest Johnson) Date: Sun, 9 Aug 2020 13:23:39 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200809171642.GQ1956@begriffs.com> References: <20200805015058.GG1956@begriffs.com> <20200802180945.GC1956@begriffs.com> <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> <3d842d99b5b3e8574015f90752087afc@c3f.net> <20200808230535.GA756@19a6.tech> <20200808232412.GP1956@begriffs.com> <20200809171642.GQ1956@begriffs.com> Message-ID: Joe Nelson wrote: > > * Your software provisions various services (like email, chat, > maps, docs, etc) onto computers in someone's house (could be raspberry > pis or whatever) > * Your software routes traffic from a third party computer with a static > IP to the local computers so the outside world can talk to the homelab > > Is that accurate? And are you running any services from your house that > we can connect to and try? Yep, that's exactly what I am trying to create. I'm focused on making it into a platform first, I haven't started working on services to run on the platform yet. But, email server is probably the first service I'm going to go after. server.garden is kind of like kubernetes in that it's a standard and platform, but obviously it's much simpler and focused on making self hosting accessible to non-technical users. Just like how Kubernetes has Helm charts, server.garden will have its own application package format. So anyone can contribute an application deployment package to the package registry. For the end user, it will look like an app store, you can browse server application packages like email server, matrix server, pi-hole, namecoin DNS resolver, private docker container registry, you name it. StackOverflow style Q&A would be built into the app store UI in case the app doesn't work right. And if you want to learn how to publish YOUR app on this registry/app store, you can probably just copy someone else's deployment package and adapt it to your app since it's all open source. I'm not sure yet but I think the service package format is going to contain one or more of: - a Terraform module, which may contain Ansible playbooks as well - a docker-compose.yml type file that allows you to create containers - a server.garden specific format that allows you to control and connect things like replication, failover, monitoring, logging, etc. So for example the email server service package would probably contain the docker-compose from https://github.com/mailcow/mailcow-dockerized/ Combined with a terraform module that creates all of the required DNS TXT records like SPF, DMARC, etc. The goal being, you could set it up so that if the user has a datacenter with two or more nodes, the email server will be deployed an HA manner and if one node fails, it won't go down the user won't even notice. From mxu at uribe.cc Wed Aug 12 11:52:04 2020 From: mxu at uribe.cc (Mauricio Uribe) Date: Wed, 12 Aug 2020 07:52:04 -0400 Subject: What's everyone working on lately? In-Reply-To: References: <20200805015058.GG1956@begriffs.com> <20200802180945.GC1956@begriffs.com> <5f799a2f3f596bb7f9922a0c1810a46a@c3f.net> <3d842d99b5b3e8574015f90752087afc@c3f.net> <20200808230535.GA756@19a6.tech> <20200808232412.GP1956@begriffs.com> Message-ID: <4259e2b7-2ec0-cac8-4b2a-d644ad41d2e7@uribe.cc> On 8/9/20 12:43 PM, Forest Johnson wrote: > I haven't been up to much, even before covid I was having trouble > staying motivated and taking care of myself, and being cut off from > the outside physical world hasn't helped. But I am still working on > my big self hosting accessibility project. I registered the domain > server.garden and decided that's what I'm going to call it, "Automated > Server Garden" or just server.garden for short. > > ... > > If you are curious to read more about server.garden, I have a > non-public draft of a post about it that I wrote a couple months ago: > https://sequentialread.com/p/b211da58-3023-47d6-b8f3-acd2b427f7ef/ > Also, all of my code is on my git server here: > https://git.sequentialread.com/explore/repos > This is amazing Forest; and i wish you luck! This type of thing can really help many people to own their own stuff (e.g. data, infrastructure, etc.). I was originally thinking that it might help folks who are less tech savvy, but upon further reflection would certainly imagine that even tech savvy folks who want to save a little time/convenience would be interested in this as well. Once again, kudos!! - mauricio (mxu) -------------- next part -------------- An HTML attachment was scrubbed... URL: From nicholasdrozd at gmail.com Fri Aug 14 17:43:58 2020 From: nicholasdrozd at gmail.com (Nicholas Drozd) Date: Fri, 14 Aug 2020 12:43:58 -0500 Subject: What's everyone working on lately? In-Reply-To: <20200802180945.GC1956@begriffs.com> References: <20200802180945.GC1956@begriffs.com> Message-ID: For the past few weeks I've been investigating Turing machines and trying to find solutions to the so-called "Beeping Busy Beaver" problem. This is similar to the "Busy Beaver" problem, except that programs are not required to halt. Details here: https://nickdrozd.github.io/2020/08/13/beeping-busy-beavers.html I feel I've gone about as far as it's reasonably possible to go with a single laptop. Further progress will require more computing power. Are there any hardware / sysadmin people who want to collaborate? Particularly for those with less theoretical CS background, it could be a good opportunity for "cross-training". Fast code is needed too, so if anyone with C / Rust skills wants to help out, the more the merrier. Fame awaits, though not fortune. From dave at 19a6.net Fri Aug 28 02:27:56 2020 From: dave at 19a6.net (Dave Bucklin) Date: Thu, 27 Aug 2020 21:27:56 -0500 Subject: Fwd: An interesting demo In-Reply-To: <202008280022.07S0MKUr494982@mail.cs.dartmouth.edu> References: <202008280022.07S0MKUr494982@mail.cs.dartmouth.edu> Message-ID: Mini-masterclass from one of the greats. -------- Original Message -------- From: Doug McIlroy Sent: August 27, 2020 7:22:20 PM CDT To: m4-discuss at gnu.org Subject: An interesting demo For a demonstration of the power of m4 stripped to the bare minimum--no builtins other than `define'--see www.cs.dartmouth.edu/~doug/barem4.txt. (Because browsers may not like .m4 files, it's called .txt--but is not Windows format.) Well-commented code builds quickly from nothing to binary arithmetic. Final remarks outline how to simulate a computer and its memory--all within m4. To try it, you might begin by entering one of the many examples given in the program's comments: prompt> m4 barem4.txt - base2(mpy(add(one,two)),two)) 110 add(one,two) (1,(1,())) I hope you enjoy it. Comments and criticism will be gratefully received. Doug