From nompelis at nobelware.com Fri Nov 1 02:13:17 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Fri, 1 Nov 2019 02:13:17 +0000 Subject: Book on System & Application Observability Message-ID: <20191101021317.GA22807@nobelware.com> You guys will find this interesting, although Linux-centric. http://www.brendangregg.com/blog/2019-07-15/bpf-performance-tools-book.html From prenticedarren at gmail.com Fri Nov 1 17:17:08 2019 From: prenticedarren at gmail.com (Darren Prentice) Date: Fri, 1 Nov 2019 12:17:08 -0500 Subject: HTML emails In-Reply-To: <20191029021810.rdjg7usaiobe3rs6@begriffs.com> References: <20191029021810.rdjg7usaiobe3rs6@begriffs.com> Message-ID: <2EBF0DA2-EBE9-42FF-98F7-17C7381AC320@gmail.com> No preference here. As a 90s kid brat, I admittedly don?t have a ton of patience for fiddling around with mail clients and configuration. I use Apple's ?piece of crap? Mail only to send plain text messages to the group, but then I use gmail for everything else. I learned a little in the process which I guess is the spirit of the group. I think plain text is a worthy ideal. Maybe what the world needs is a better mail client that?s cross platform, easy to configure, has good default settings, and teaches you interactively how email works. For anyone younger than me, email is just another chat app that adults use. From joe at begriffs.com Sat Nov 2 05:51:50 2019 From: joe at begriffs.com (Joe Nelson) Date: Sat, 2 Nov 2019 00:51:50 -0500 Subject: HTML emails In-Reply-To: <2EBF0DA2-EBE9-42FF-98F7-17C7381AC320@gmail.com> References: <20191029021810.rdjg7usaiobe3rs6@begriffs.com> <2EBF0DA2-EBE9-42FF-98F7-17C7381AC320@gmail.com> Message-ID: <20191102055150.palnjb5vcntdya6l@begriffs.com> Darren Prentice wrote: > For anyone younger than me, email is just another chat app that adults > use. Makes sense, I can appreciate that viewpoint. One thing they may not realize is how email is a standard rather than a specific company's app. People can use entirely different servers and client programs and still interact with each other without signing into some central place. I think there's been interest in the past few years in federated systems like Mastodon, Matrix, and Scuttlebutt. This is just supposition on my part, but I feel like enthusiasts think this is some kind of revolutionary concept, whereas the internet (aka network of networks) is itself that concept, and email was its original "killer app." > I use Apple's ?piece of crap? Mail only to send plain text messages > to the group, OK, sorry, I went a little overboard in calling it a piece of crap just because it handled inline attachments poorly. I should be more specific about the big areas where Apple Mail can improve: * It collapses conversation threads into a straight line. For comparison, imagine if Reddit comments were shown in a plain list sorted by date, rather than in trees you can collapse etc. It's hard to follow the conversation. I've attached two screenshots of this email thread, one in Apple Mail, and one in Mutt. * Its message editor is a plain textbox with no features. Whereas Mutt allows me to pop into my favorite editor to write or reply to a message. All my editing shortcuts and preferences are available, as well as the ability to pull in code snippets from files and format it appropriately. * Even in plain-text mail it formats the messages with Content-Transfer-Encoding: quoted-printable. That's a precaution to preserve binary data much like base64 encoding, but it's awkward for most messages. https://en.wikipedia.org/wiki/Quoted-printable For instance, here's an excerpt from your message as it was formatted: As a 90s kid brat, I admittedly don=E2=80=99t have a ton of patience for = fiddling around with mail clients and configuration. I use Apple's = * It can't, that I'm aware of, open an mbox file. This is a way to put a whole conversation thread into a regular file that you can download or share. Loading messages from an mbox will ensure your mailer knows the Message-ID and References values necessary to tie replies to an existing thread. * It doesn't have a very rich grammar for finding messages. For instance every message has a unique Message-ID which is like a bookmark you can use to refer from one message to another. In Mutt I can do a search like "~i <2EBF0DA2-EBE9-42FF-98F7-17C7381AC320 at gmail.com>" and that jumps to your message. As an interesting workaround, I believe you can open message://<2EBF0DA2-EBE9-42FF-98F7-17C7381AC320 at gmail.com> in your web browser and if Mac Mail is registered as the default mail program then it will pop open the message! > I think plain text is a worthy ideal. Maybe what the world needs is a > better mail client that?s cross platform, easy to configure, has good > default settings, and teaches you interactively how email works. Agreed. Mutt is pretty powerful, but definitely not easy to configure. I scrounged around all over to cobble together my config file, plus using the external programs mbsync and msmtp for receiving and sending. Not exactly a fun thing to ask someone to do. Those programs mirror the traditional "MxA" split: https://web.archive.org/web/20170414072127/https://dev.mutt.org/trac/wiki/MailConcept I recently built the PDF version of the Mutt manual from source and printed a hard copy. I've been thinking of writing a comprehensive guide in the style of my Vim article, to talk about the evolution of email and how power users can take advantage of it today. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/png Size: 77300 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/png Size: 164631 bytes Desc: not available URL: From salo at saloits.com Sat Nov 2 21:15:07 2019 From: salo at saloits.com (Timothy J. Salo) Date: Sat, 2 Nov 2019 16:15:07 -0500 Subject: HTML emails In-Reply-To: <20191030144145.GA5125@nobelware.com> References: <20191029021810.rdjg7usaiobe3rs6@begriffs.com> <1598C71C-DAF5-494B-A1F9-728D6AA509D2@netjack.com> <20191029153757.GC59064@begriffs.com> <349397b1-6227-2885-ef91-de673f1b6f7f@saloits.com> <20191030011116.GD59064@begriffs.com> <20191030144145.GA5125@nobelware.com> Message-ID: On 10/30/2019 9:41 AM, Ioannis Nompelis wrote: > Discussions being serious should not be confused with discussions that contain > no humour! Actually, I find the "HTML emails" discussion pretty hilarious... I have a mental picture of advocates of text-only email and text-based mail user agents using only text-based, monochrome green monitors, so as to avoid the distractions of color and graphics. Actually, the text-only advocates in this group are not alone. Every few years, there is an extended discussion within the IETF (Internet Engineering Task Force, the group that develops the standards for the Internet protocols) about the benefits of ASCII files over .pdf files for standards documents. The ASCII crowd has always won. ASCII: all the better to avoid complicated diagrams. And, for those who find graphics excessive or distracting, check out the ASCIImation version of Star Wars: Unfortunately, I can't promise that ASCIImation Star Wars will work in your favorite text-based browser (Lynx, Gopher, etc.). Having said all that, I will admit that used Berkeley mail for the longest time. But: 1) I didn't try to convince others that this was a good thing or that they shouldn't send attachments, and 2) I don't use Berkeley mail any more. -tjs From salo at saloits.com Sun Nov 3 00:35:32 2019 From: salo at saloits.com (Timothy J. Salo) Date: Sat, 2 Nov 2019 19:35:32 -0500 Subject: Huh, I can't beat the Haskell performance in C (resend) In-Reply-To: References: Message-ID: <90ab2826-b91c-dc74-7665-da54797beacd@saloits.com> On 10/22/2019 11:20 PM, Joe Nelson wrote: >> o If you want to examine performance at this level, you probably want >> to think about time and clocks. >> ... >> - look at Linux high-resolution clocks. > > Good idea, and looks like POSIX gives us clock_gettime(), where the > resolution is system dependent and can be determined with clock_getres(). > https://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_getres.html > > I think it would be interesting to sprinkle my program with clock checks and > add up the total time spent in IO, the counting logic, and thread calls. > Perhaps we could do this at the Thursday hack night. Here is some code that uses the the x86 TSC to measure time intervals in CPU cycles. The code is also intended to explore the structure of Linux processes and stacks. Needless to say, this code only runs on (real or virtual) x86 processors. Somewhere, I have code that uses clock_gettime() with the nanosecond clock, but it's pretty easy to figure out. It might be interesting to compare the results of clock_gettime() and reading the TSC directly. -tjs -------------- next part -------------- /* * Exercise 5, part 1 * CS 442, Fall 2017 * * Examine stack * * When running this code, it might be useful to disable * stack address randomization. The following commands * disable random stack address generation. * * sudo su * echo 0 > /proc/sys/kernel/randomize_va_space * exit * * compile with -rdynamic * * Copyright 2017, Timothy J. Salo */ #include #include #include #include #include #include #include #define MAX_THREADS 10 void printHex(long long first, long long last); void* thread(void* threadId); void proc1(long long, char*); void proc2(long long, char*); void proc3(long long, char*, int); long long STACK_START = 0x7ffffffff000ll; // stack start /* Inline function to read Timestamp Counter (TSC) register. */ static __inline__ unsigned long long rdtsc(void) { unsigned hi, lo; __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi)); return ( (unsigned long long) lo | ( ((unsigned long long) hi)<<32 )); } int main(int argc, char* argv[]) { pthread_t tid[MAX_THREADS]; // thread id long i; // all purpose long int stat; // pthread creation status /* Print Base Pointer (BP). */ register unsigned long long ebp __asm__ ("ebp"); printf("main BP: %016llx\n", (unsigned long long) ebp); register unsigned long long esp __asm__ ("esp"); printf("main SP: %016llx\n", (unsigned long long) esp); printf("Stack start: %016llx\n", STACK_START); printf("&argv[]: %016llx\n", (unsigned long long) &argv); printf("&__environ[]: %016llx\n", (unsigned long long) __environ); printHex(esp, ebp); printHex(ebp, STACK_START); proc1(0x0123456789abcdefll, "aaaaaaaa"); char c; printf("Enter to continue."); scanf("%c", &c); return 0; } /* printHex() - dump memory in hex and ascii. */ void printHex(long long first, long long last) { char buff[100]; long long addrtemp; char hex[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; int i, j, k, n; int leng; if (first > last) { long long addrtemp = last; last = first; first = addrtemp; } leng = last - first; // number of bytes to dump addrtemp = first; // address currently dumping printf("Dump from %0llx to %0llx (%x):\n", first, last, leng); for (i = 0; i < leng; i++) { /* Process start of new line. */ if (i%16 == 0) { if (i != 0) { buff[78] = '\0'; printf("%s\n", buff); // print previous line } for (j = 0; j < sizeof(buff)-1; j++) buff[j] = ' '; buff[sizeof(buff)-1] = '\0'; /* Print address */ long long addr = first + i; for (j = 0; j < 16; j++) { buff[15-j] = hex[addr & 0xf]; addr = addr >> 4; } k = 17; n = 61; } buff[k++] = hex[*(unsigned char*) addrtemp>>4]; buff[k++] = hex[*(unsigned char*) addrtemp&0xf]; if (isgraph(*(unsigned char*) addrtemp)) buff[n++] = *(unsigned char*) addrtemp; else buff[n++] = ' '; addrtemp += 1; if (i%2 == 1) buff[k++] = ' '; if (i%4 == 3) buff[k++] = ' '; } if (k != 17) printf("%s\n", buff); } /* proc1() */ void proc1(long long p1, char* p2) { long long local1 = 0x1111111111111111ll; long long local2 = 0x2222222222222222ll; printf("proc1()\n"); register unsigned long long esp __asm__ ("esp"); printf("proc1 SP value = %016llx\n", esp); register unsigned long long ebp __asm__ ("ebp"); printf("proc1 BP value = %016llx\n", ebp); printHex(esp, ebp); proc2(0x02468ace13579bdfll, "bbbbbbbb"); } /* proc2() */ void proc2(long long p1, char* p2) { long long local3 = 0x3333333333333333ll; long long local4 = 0x4444444444444444ll; printf("proc2()\n"); register unsigned long long esp __asm__ ("esp"); printf("proc2 SP value = %016llx\n", esp); register unsigned long long ebp __asm__ ("ebp"); printf("proc2 BP value = %016llx\n", ebp); printHex(esp, ebp); proc3(0x3333333333333333ll, "cccccccc", 3); } /* proc3() */ void proc3(long long p1, char* p2, int i) { long long local5 = 0x5555555555555555ll; long long local6 = 0x6666666666666666ll; printf("proc3()\n"); register unsigned long long esp __asm__ ("esp"); printf("proc3 SP value = %016llx\n", esp); register unsigned long long ebp __asm__ ("ebp"); printf("proc3 BP value = %016llx\n", ebp); printHex(esp, ebp); /* Call proc3 two more times, then print backtrace. */ if (--i) proc3(p1, p2, i); else { /* Pause, wait for operator inpub. */ char c; printf("Enter to continue."); scanf("%c", &c); /* Print backtrace, with symbols. */ void *bt[16]; int bt_size; char **bt_syms; int j; bt_size = backtrace(bt, 16); bt_syms = backtrace_symbols(bt, bt_size); printf("****** Backtrace ******\n"); printf(" Backtrace records: %d\n", bt_size); for (j = 0; j < bt_size; j++) printf(" %s\n", bt_syms[j]); printf("****** End of Backtrace ******\n"); free(bt_syms); } } From dave at 19a6.net Sun Nov 3 01:12:23 2019 From: dave at 19a6.net (Dave Bucklin) Date: Sat, 02 Nov 2019 20:12:23 -0500 Subject: Thursday, November 7th Message-ID: <964E6CC3-95AF-48AD-AE91-2F90E79C31C8@19a6.net> I've submitted a request for N-202 at the Central Library from 6 to 9 Thursday evening. I hope to see some of you there! From joe at begriffs.com Mon Nov 4 22:36:15 2019 From: joe at begriffs.com (Joe Nelson) Date: Mon, 4 Nov 2019 16:36:15 -0600 Subject: RISC-V meetup Message-ID: <20191104223615.7hk2isre67b2deob@begriffs.com> RISC-V is an open source CPU architecture created at UC Berkeley. There's going to be a meetup about it in town this week: https://www.meetup.com/Twin-Cities-RISC-V-Meetup-Group/events/265409665/ From salo at saloits.com Mon Nov 4 22:53:18 2019 From: salo at saloits.com (Timothy J. Salo) Date: Mon, 4 Nov 2019 16:53:18 -0600 Subject: RISC-V meetup In-Reply-To: <20191104223615.7hk2isre67b2deob@begriffs.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> Message-ID: <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> On 11/4/2019 4:36 PM, Joe Nelson wrote: > RISC-V is an open source CPU architecture created at UC Berkeley. > There's going to be a meetup about it in town this week: > > https://www.meetup.com/Twin-Cities-RISC-V-Meetup-Group/events/265409665/ Has anyone played with RISC-V hardware? Is there an affordable RISC-V board that will run an accessible Linux distribution? (Has anyone successfully built a kernel on one of these systems? I am building kernels for my Raspberry Pis, which are pretty mature systems. In order to get a Raspberry Pi kernel to build, I have to do a bit of hacking and patching (it's not a lot, but it is time-consuming). -tjs From dave at 19a6.net Tue Nov 5 00:12:16 2019 From: dave at 19a6.net (Dave Bucklin) Date: Mon, 4 Nov 2019 18:12:16 -0600 Subject: RISC-V meetup In-Reply-To: <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> Message-ID: <20191105001216.GB20391@19a6.tech> On Mon, Nov 04, 2019 at 04:53:18PM -0600, Timothy J. Salo wrote: > (Has anyone successfully built a kernel on one of these systems? I am > building kernels for my Raspberry Pis, which are pretty mature systems. > In order to get a Raspberry Pi kernel to build, I have to do a bit of > hacking and patching (it's not a lot, but it is time-consuming). If an entire kernel is too much to take on, writing (or porting) a Forth runtime (or Lisp if you prefer) might be a more proximate goal. From nompelis at nobelware.com Tue Nov 5 17:33:28 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Tue, 5 Nov 2019 17:33:28 +0000 Subject: Thursday, November 7th In-Reply-To: <964E6CC3-95AF-48AD-AE91-2F90E79C31C8@19a6.net> References: <964E6CC3-95AF-48AD-AE91-2F90E79C31C8@19a6.net> Message-ID: <20191105173328.GA764@nobelware.com> I will only be able to stop by and say hi on my way back home. Busy week, busy month, busy year... From nompelis at nobelware.com Tue Nov 5 17:36:47 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Tue, 5 Nov 2019 17:36:47 +0000 Subject: RISC-V meetup In-Reply-To: <20191105001216.GB20391@19a6.tech> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> Message-ID: <20191105173647.GB764@nobelware.com> I am all about a small organic kernel, Andrew Tanenbaum style Minix, the early inspiration for Linux. Tanenbaum's code is still online. The reason I am interested in small kernels built from scratch is for use in low fault-tolerance environments (robust real-time systems). I have not dug into the various kernel codes that are out there (several on Github, one from a local hacker too -- I forget her name). I do have an interest in this. From dfeldman.mn at gmail.com Tue Nov 5 19:17:34 2019 From: dfeldman.mn at gmail.com (Daniel Feldman) Date: Tue, 5 Nov 2019 13:17:34 -0600 Subject: RISC-V meetup In-Reply-To: <20191105173647.GB764@nobelware.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> Message-ID: RISC-V is a configurable architecture with lots of options. The small configurations can run on cheap FPGAs and cheap custom silicon from SiFive (<$50), but are not capable of running Linux because they don't have an MMU or even a modern memory controller. The Linux-capable configurations need a huge FPGA or custom silicon and are still pretty expensive (~$1000). It will take many years (if ever) for RISC-V to meet the same cost/performance as closed source chips have today. Even with low performance, having a configurable open-source architecture is very useful if you have strange requirements. For example, in robotics you'll often have dozens of peripherals with different buses -- an open-source architecture lets you define as many IOs as you can fit on your FPGA. Another application of low-power RISC-V is OpenTitan, a new encryption Trusted Platform Module from Google. In this application being open-source is a big advantage even if the cost is a little higher. http://opentitan.org Daniel From chris at mikk.net Tue Nov 5 19:34:46 2019 From: chris at mikk.net (Chris Mikkelson) Date: Tue, 05 Nov 2019 13:34:46 -0600 Subject: Thursday, November 7th In-Reply-To: <964E6CC3-95AF-48AD-AE91-2F90E79C31C8@19a6.net> References: <964E6CC3-95AF-48AD-AE91-2F90E79C31C8@19a6.net> Message-ID: I'm in. On November 2, 2019 8:12:23 PM CDT, Dave Bucklin wrote: >I've submitted a request for N-202 at the Central Library from 6 to 9 >Thursday evening. I hope to see some of you there! -- Sent from my Android device with K-9 Mail. Please excuse my brevity. From salo at saloits.com Tue Nov 5 20:14:30 2019 From: salo at saloits.com (Timothy J. Salo) Date: Tue, 5 Nov 2019 14:14:30 -0600 Subject: RISC-V meetup In-Reply-To: <20191105173647.GB764@nobelware.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> Message-ID: <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> On 11/5/2019 11:36 AM, Ioannis Nompelis wrote: > I am all about a small organic kernel, Andrew Tanenbaum style Minix, the > early inspiration for Linux. Tanenbaum's code is still online. "Micro kernel" - where only a very small amount of code runs in kernel mode and the rest of the operating system code (which traditionally runs in the kernel [in kernel mode]) runs in user mode. The micro kernel handles [only] the stuff that really has to run in kernel mode, such as handling interrupts, managing the clock, manipulating page tables, etc. Everything else runs in user mode, as a process I assume, such as the file system, drivers, the scheduler, etc. The idea is that the [micro] kernel is really small, and so therefore reliable. And, if your file system code blows up, your kernel doesn't fail. Rather, you just restart the process that failed, the file system in this case. One of the biggest problems with the micro kernel architecture is that it requires a lot of context switches (namely calls to the kernel to do stuff that can't be done in user mode). (Context switches are generally pretty expensive.) You probably want to look at Minix3. Of course, even Minix3 isn't bug free either. We know this because Intel runs Minix3 on its Management Engine on chips since 2015 (without bothering to tell Tanenbaum). Hackers found a flaw in Minix3 and used that to attack Intel chips through the Management Engine. Micro kernels contrast with monolithic kernels, such a Linux, Windows, and pretty much everything else (except reportedly Fuchsia), in which the whole kernel (tens of millions of lines of code) run in kernel mode. I will send out some references when I get around to it. > The reason I am interested in small kernels built from scratch is for use > in low fault-tolerance environments (robust real-time systems). I have not > dug into the various kernel codes that are out there (several on Github, one > from a local hacker too -- I forget her name). Real-time systems and real-time operating kernels or executives are topics for another email. -tjs From joe at begriffs.com Tue Nov 5 21:08:09 2019 From: joe at begriffs.com (Joe Nelson) Date: Tue, 5 Nov 2019 15:08:09 -0600 Subject: Thursday, November 7th In-Reply-To: <964E6CC3-95AF-48AD-AE91-2F90E79C31C8@19a6.net> References: <964E6CC3-95AF-48AD-AE91-2F90E79C31C8@19a6.net> Message-ID: <20191105210809.hfqtkan2iy4t52hn@begriffs.com> See you there! From nompelis at nobelware.com Tue Nov 5 23:42:29 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Tue, 5 Nov 2019 23:42:29 +0000 Subject: RISC-V meetup In-Reply-To: <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> Message-ID: <20191105234229.GB14809@nobelware.com> Did not know Intel leveraged on Minix. Did not know anyone still did. From joe at begriffs.com Wed Nov 6 00:42:15 2019 From: joe at begriffs.com (Joe Nelson) Date: Tue, 5 Nov 2019 18:42:15 -0600 Subject: RISC-V meetup In-Reply-To: <20191105234229.GB14809@nobelware.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> <20191105234229.GB14809@nobelware.com> Message-ID: <20191106004215.6e5sctreewldjaqi@begriffs.com> Ioannis Nompelis wrote: > Did not know Intel leveraged on Minix. Did not know anyone still did. Yeah, Intel has a (no longer so) secret NSA-sponsored Trojan horse operating system in all their processors that you can't disable. That's why Minix is called "the most popular OS in the world." https://en.wikipedia.org/wiki/Intel_Management_Engine * It has full access to memory (without the parent CPU having any knowledge) * It has full access to the TCP/IP stack and can send and receive network packets independently of the operating system, thus bypassing its firewall * System administrators can use it to turn the computer on and off * They can login remotely into the computer regardless of whether or not an operating system is installed * It always runs as long as the motherboard is receiving power, even when the computer is turned off Intel cares about you and wants you to be friends with Big Brother. From salo at saloits.com Wed Nov 6 01:59:41 2019 From: salo at saloits.com (Timothy J. Salo) Date: Tue, 5 Nov 2019 19:59:41 -0600 Subject: RISC-V meetup In-Reply-To: <20191105234229.GB14809@nobelware.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> <20191105234229.GB14809@nobelware.com> Message-ID: On 11/5/2019 5:42 PM, Ioannis Nompelis wrote: > Did not know Intel leveraged on Minix. Did not know anyone still did. "What is MINIX? The most popular OS in the world, thanks to Intel". Metwork World, November 2, 2017 Note that MINIX runs ring -3; the kernel runs in ring 0 and user apps run in ring 3. "MINIX: ?Intel's hidden in-chip operating system", ZDNet, November 7, 2017 Minnich, the Google software engineer who discovered this, wants Intel to run Linux, rather than MINIX, saying it is more secure. So much for the "micro kernels are more secure" argument. "An Open Letter to Intel", Andrew S. Tanenbaum Tanenbaum gives his view of events. He also touts the benefits of a Berkeley license over a GPL license. "Disabling Intel ME 11 via undocumented mode", Positive Technologies, August 28, 2017. A discussion of low-level technical details. Google for more. -tjs From drewbenson at netjack.com Wed Nov 6 02:44:03 2019 From: drewbenson at netjack.com (Andrew Benson) Date: Tue, 5 Nov 2019 20:44:03 -0600 Subject: RISC-V meetup In-Reply-To: References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> <20191105234229.GB14809@nobelware.com> Message-ID: I didn?t know minix still existed. That?s crazy. I guess it?s probably evolved in some way over the past forever. > On Nov 5, 2019, at 7:59 PM, Timothy J. Salo wrote: > > On 11/5/2019 5:42 PM, Ioannis Nompelis wrote: >> Did not know Intel leveraged on Minix. Did not know anyone still did. > > "What is MINIX? The most popular OS in the world, thanks to Intel". > Metwork World, November 2, 2017 > > > Note that MINIX runs ring -3; the kernel runs in ring 0 and user > apps run in ring 3. > > "MINIX: ?Intel's hidden in-chip operating system", ZDNet, > November 7, 2017 > > > Minnich, the Google software engineer who discovered this, wants > Intel to run Linux, rather than MINIX, saying it is more secure. > So much for the "micro kernels are more secure" argument. > > "An Open Letter to Intel", Andrew S. Tanenbaum > > > Tanenbaum gives his view of events. He also touts the benefits of > a Berkeley license over a GPL license. > > "Disabling Intel ME 11 via undocumented mode", Positive Technologies, > August 28, 2017. > > > A discussion of low-level technical details. > > Google for more. > > -tjs > From salo at saloits.com Wed Nov 6 08:24:07 2019 From: salo at saloits.com (Timothy J. Salo) Date: Wed, 6 Nov 2019 02:24:07 -0600 Subject: RISC-V meetup In-Reply-To: <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> Message-ID: <576c34fb-6901-d3ed-ff6c-ed1bbde16e07@saloits.com> On 11/5/2019 2:14 PM, Timothy J. Salo wrote: > On 11/5/2019 11:36 AM, Ioannis Nompelis wrote: >> I am all about a small organic kernel, Andrew Tanenbaum style Minix, the >> early inspiration for Linux. Tanenbaum's code is still online. > > "Micro kernel" - where only a very small amount of code runs in kernel > mode and the rest of the operating system code (which traditionally runs > in the kernel [in kernel mode]) runs in user mode. Here are some references for microkernel architectures: Tanenbaum, Andrew S., et al., "Can we make operating Systems Reliable and Secure", Computer, May 2006. A nice overview of microkernel architectures with some comments on MINIX 3. This paper is somewhat dismissive of performance concerns. Herder, Jorrit N., et al., "Modular System Programming in MINIX 3", ;login:, April 2006. Paper on MINIX 3. Tanenbaum?Torvalds debate Even the Wiki article is a nice tour through some relevant issues and history. MINIX-3 Website Download and run MINIX 3. Tanenbaum, Andrew S. and Albert S. Woodhull, Operating Systems Design and Implementation (3rd Edition), 2006. As I recall, this operating system textbook works its way through the MINIX operating system. This might be a good approach to teaching operating systems in some environments, but probably not all. -tjs From salo at saloits.com Wed Nov 6 09:40:27 2019 From: salo at saloits.com (Timothy J. Salo) Date: Wed, 6 Nov 2019 03:40:27 -0600 Subject: RISC-V meetup In-Reply-To: <20191105173647.GB764@nobelware.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> Message-ID: <0eb27214-dcff-b2bf-38e1-dbd0bc948d20@saloits.com> On 11/5/2019 11:36 AM, Ioannis Nompelis wrote: > The reason I am interested in small kernels built from scratch is for use > in low fault-tolerance environments (robust real-time systems). I have not > dug into the various kernel codes that are out there (several on Github, one > from a local hacker too -- I forget her name). Well, the first question is whether you need a real "real-time" operating system. A _real-time_ system is one that must meet "hard" deadlines. A "hard" deadline is one where something bad happens (e.g., the car crashes into the car in front of it) if the deadline is missed. There are "soft" deadlines where something not quite so catastrophic happens if the deadline is missed. I suspect that a robot has some real-time characteristics, although I don't know how hard or soft the various deadlines might be. A real-time operating system allows you to make assurances that various deadlines will be met. This is a lot of work. It means modeling the processes and the scheduling of the processes. And, it probably requires someone to, for example, count the instructions in the interrupt handlers to ensure that interrupts don't delay critical processes, causing them to miss their deadlines. Note that Linux is _not_ a real-time operating system. Free RTOS (Real-Time Operating System) seems to be one of the better-known real-time operating systems, although I have never used it. I assume that most robots have both real-time and non-real-time components. It some circumstances, it may make sense to have one (or more) embedded processors with real-time operating systems performing the real-time or time-critical tasks, and one (or more) general purpose systems (with Linux or some other fully functional, non-real-time, operating systems) doing all the other stuff that robots seem to do (e.g., path planning, communicating with the outside world, etc.). Having said all that, sometimes over-provisioning is the answer. For a long time, industrial control people argued that they couldn't use Ethernet, because of its non-deterministic behavior. As I understand it, at some point someone calculated how likely it was for a lightly loaded, fast Ethernet to actually miss a deadline. Since no one could possibly live that long, the industrial control people stopped worrying and use Ethernet (in some instances). At least that is how I understood the story... At any rate, one might build a robot using a non-real-time system and not worry if it looks a bit wobbly at times. Mostly, you ought to analyze your needs and pick something appropriate, affordable, and practical. By the way, I don't know what Robot Operating System (ROS) is, but you probably should, -tjs From nompelis at nobelware.com Wed Nov 6 17:37:18 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Wed, 6 Nov 2019 17:37:18 +0000 Subject: RISC-V meetup In-Reply-To: <0eb27214-dcff-b2bf-38e1-dbd0bc948d20@saloits.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0eb27214-dcff-b2bf-38e1-dbd0bc948d20@saloits.com> Message-ID: <20191106173718.GA22274@nobelware.com> Oerall good info Time, and most of it I know. > > Well, the first question is whether you need a real "real-time" > operating system. > > A _real-time_ system is one that must meet "hard" deadlines. A "hard" > deadline is one where something bad happens (e.g., the car crashes into > the car in front of it) if the deadline is missed. There are "soft" > deadlines where something not quite so catastrophic happens if the > deadline is missed. > I have a terrible time getting real-time ness and low latency out of my DAW (digital audio workstation). I use FL Studio over WINE on Linux kernel 3. But other OSes and software packages have phenomenal real-time performance, like Ableton on Apple hardware and MacOS. I know this can get into a very very esoteric discussion, but I will try to be brief. Both software packages I mentioned use the "Steinberg VST" API for compatibility of the instrument pluagins. In that sense, there is only so much that ImageLine (make of FL) can get wrong and be inferior to Ableton. Anyway, hardware, like Pioneer's and KORG's gems, that use software plugins are very good with real--timeness. So, what am I missing from this on my setup...? Going fully organic with the audio processing I can only see leaning out the kernel. I could be wrong. From nompelis at nobelware.com Wed Nov 6 17:40:33 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Wed, 6 Nov 2019 17:40:33 +0000 Subject: RISC-V meetup In-Reply-To: <20191106004215.6e5sctreewldjaqi@begriffs.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> <20191105234229.GB14809@nobelware.com> <20191106004215.6e5sctreewldjaqi@begriffs.com> Message-ID: <20191106174033.GB22274@nobelware.com> > > Yeah, Intel has a (no longer so) secret NSA-sponsored Trojan horse > operating system in all their processors that you can't disable. That's > why Minix is called "the most popular OS in the world." > > https://en.wikipedia.org/wiki/Intel_Management_Engine > Right. I have known this for many years. And some friends and I have decided that we are keeping old harware (circa 2004-2005) around for this reason. My main system is an AMD from 2005, and main laptop (you have seen it) is an AMD from the same era. I try hard to keep this hardware alive! I also know that the chips on the Intel systems --and AMD has similar now-- can be identified, but the system will not run without it. Orwell and Bradbury would have been proud. From pstelzig at gmx.com Thu Nov 7 02:28:02 2019 From: pstelzig at gmx.com (pstelzig) Date: Wed, 6 Nov 2019 20:28:02 -0600 Subject: RISC-V meetup In-Reply-To: <0eb27214-dcff-b2bf-38e1-dbd0bc948d20@saloits.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0eb27214-dcff-b2bf-38e1-dbd0bc948d20@saloits.com> Message-ID: On 06/11/2019 03:40, Timothy J. Salo wrote: > On 11/5/2019 11:36 AM, Ioannis Nompelis wrote: >> The reason I am interested in small kernels built from scratch is for use >> in low fault-tolerance environments (robust real-time systems). I have >> not >> dug into the various kernel codes that are out there (several on >> Github, one >> from a local hacker too -- I forget her name). > > Well, the first question is whether you need a real "real-time" > operating system. > > A _real-time_ system is one that must meet "hard" deadlines.? A "hard" > deadline is one where something bad happens (e.g., the car crashes into > the car in front of it) if the deadline is missed.? There are "soft" > deadlines where something not quite so catastrophic happens if the > deadline is missed. > > I suspect that a robot has some real-time characteristics, although I > don't know how hard or soft the various deadlines might be. > > A real-time operating system allows you to make assurances that > various deadlines will be met.? This is a lot of work.? It means > modeling the processes and the scheduling of the processes.? And, > it probably requires someone to, for example, count the instructions > in the interrupt handlers to ensure that interrupts don't delay > critical processes, causing them to miss their deadlines.? Note > that Linux is _not_ a real-time operating system. > But with the PREEMPT_RT patch set it can be, and with Xenomai or RTAI can add a sub kernel real time layer under the Linux Kernel that can meet very fast hard real time demands. > Free RTOS (Real-Time Operating System) seems to be one of the > better-known real-time operating systems, although I have never > used it. > > I assume that most robots have both real-time and non-real-time > components.? It some circumstances, it may make sense to have > one (or more) embedded processors with real-time operating > systems performing the real-time or time-critical tasks, and > one (or more) general purpose systems (with Linux or some > other fully functional, non-real-time, operating systems) > doing all the other stuff that robots seem to do (e.g., > path planning, communicating with the outside world, etc.). > The actual motor control is very much a hard real time task, user interface and IO can be much less demanding. > Having said all that, sometimes over-provisioning is the > answer.? For a long time, industrial control people > argued that they couldn't use Ethernet, because of its > non-deterministic behavior.? As I understand it, at > some point someone calculated how likely it was for > a lightly loaded, fast Ethernet to actually miss a > deadline.? Since no one could possibly live that long, > the industrial control people stopped worrying and > use Ethernet (in some instances).? At least that is > how I understood the story... > I still don't like traditional ethernet for real time tasks Allen Bradley does make it work but it seems like great care is required in the network setup. There are better ways to make ethernet hardware work for industrial control when there are high speed real time demands Ethernet Power Link is one I've used it has a master device that sets the timing for all the slave devices to ensure there are no collisions. > At any rate, one might build a robot using a > non-real-time system and not worry if it looks a bit > wobbly at times.? Mostly, you ought to analyze your > needs and pick something appropriate, affordable, and > practical. > > By the way, I don't know what Robot Operating System (ROS) is, > but you probably should, > > -tjs From pstelzig at gmx.com Thu Nov 7 02:47:26 2019 From: pstelzig at gmx.com (pstelzig) Date: Wed, 6 Nov 2019 20:47:26 -0600 Subject: RISC-V meetup In-Reply-To: <20191106173718.GA22274@nobelware.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0eb27214-dcff-b2bf-38e1-dbd0bc948d20@saloits.com> <20191106173718.GA22274@nobelware.com> Message-ID: <6af1760a-96b7-28b3-3650-4680edcdd9f9@gmx.com> On 06/11/2019 11:37, Ioannis Nompelis wrote: > Oerall good info Time, and most of it I know. > >> >> Well, the first question is whether you need a real "real-time" >> operating system. >> >> A _real-time_ system is one that must meet "hard" deadlines. A "hard" >> deadline is one where something bad happens (e.g., the car crashes into >> the car in front of it) if the deadline is missed. There are "soft" >> deadlines where something not quite so catastrophic happens if the >> deadline is missed. >> > > I have a terrible time getting real-time ness and low latency out of my > DAW (digital audio workstation). I use FL Studio over WINE on Linux kernel 3. > But other OSes and software packages have phenomenal real-time performance, > like Ableton on Apple hardware and MacOS. I know this can get into a very very > esoteric discussion, but I will try to be brief. Both software packages I > mentioned use the "Steinberg VST" API for compatibility of the instrument > pluagins. In that sense, there is only so much that ImageLine (make of FL) > can get wrong and be inferior to Ableton. Anyway, hardware, like Pioneer's > and KORG's gems, that use software plugins are very good with real--timeness. > > So, what am I missing from this on my setup...? Going fully organic with > the audio processing I can only see leaning out the kernel. I could be wrong. > WINE can't be helping the real timeness any, but running a kernel compiled with CONFIG_PREMPT set might help, and it is possible that the RT_PREEMPT patch could also help. From Kurtis at riseup.net Thu Nov 7 03:31:00 2019 From: Kurtis at riseup.net (Kurtis Hanna) Date: Thu, 07 Nov 2019 03:31:00 +0000 Subject: RISC-V meetup In-Reply-To: <20191106004215.6e5sctreewldjaqi@begriffs.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> <20191105234229.GB14809@nobelware.com> <20191106004215.6e5sctreewldjaqi@begriffs.com> Message-ID: <99d83e50-cb9a-393a-2cc6-8af804acd248@riseup.net> Joe Nelson: > Ioannis Nompelis wrote: >> Did not know Intel leveraged on Minix. Did not know anyone still did. > > Yeah, Intel has a (no longer so) secret NSA-sponsored Trojan horse > operating system in all their processors that you can't disable. That's > why Minix is called "the most popular OS in the world." > > https://en.wikipedia.org/wiki/Intel_Management_Engine > > * It has full access to memory (without the parent CPU having any knowledge) > * It has full access to the TCP/IP stack and can send and receive network > packets independently of the operating system, thus bypassing its > firewall > * System administrators can use it to turn the computer on and off > * They can login remotely into the computer regardless of whether or not > an operating system is installed > * It always runs as long as the motherboard is receiving power, even > when the computer is turned off > > Intel cares about you and wants you to be friends with Big Brother. > Hello all, My name is Kurtis Hanna. I've been a long time reader of this email list but I don't think I've ever introduced myself. I live in South Minneapolis and have been involved with the https://libreboot.org software project for quite some time. For those who aren't familiar with it, Libreboot removes the Intel Management Engine entirely by replacing the proprietary BIOS with a 100% free software replacement. I've mainly been spending my time flashing Libreboot onto laptops and showing other people how to do it, rather than doing coding and programming for them. Please excuse the humble brag, but I've flashed Libreboot onto Stallman's ThinkPad T400s at the FSF Office after having been asked for help by the FSF staff at the LibrePlanet conference in Cambridge, MA. Libreboot takes a similar approach as Ioannis does by using older hardware, but we mainly strive to use the most recent line of Intel laptops available that still can boot when Intel ME is completely removed. Here's a list of hardware that Libreboot currently supports: https://libreboot.org/docs/hardware/#list-of-supported-hardware I've also attended two Coreboot conferences, one in Germany and one in Denver, which is the upstream software project upon which Libreboot is based. My friend Denis Carikli, who is based in Paris, wrote an excellent blog post about Intel ME that I think lays everything out quite clearly. https://www.fsf.org/blogs/sysadmin/the-management-engine-an-attack-on-computer-users-freedom If anyone is ever interested in purchasing a laptop that has Libreboot pre-installed, please feel free to contact me. I have many models available at my apartment in Uptown and I have sources to buy models and parts that I don't currently own. I'm also willing to teach large-ish groups how to flash Libreboot onto laptops they already own if it is ok to have a tip jar at the event or teach small groups or individuals these skills for a reasonable fee. I used to work full time for a company that sells laptops that received FSF's Respects Your Freedom certification but am now doing the same work but have yet to get the RYF certification for my solo sole proprietorship business. https://www.fsf.org/resources/hw/endorsement/respects-your-freedom For those that want to use a laptop that doesn't have Intel ME or anything similar on ARM or AMD, I feel like the Pinebook Pro is a great option as long as you don't mine using ARM rather than x86. https://www.pine64.org/pinebook-pro/ I also do a lot of volunteer work for https://replicant.us which aims to provide cell phones that use the mainline Linux kernel, mainline U-boot, and a fork of mainline AOSP/LineageOS. We have successfully bypassed ARM's proprietary TrustZone on a number of Samsung devices and are a few months away from releasing Rom images of Replicant 9, which is based on Android Pie. Lastly, I have been collaborating locally with some free software activists and hackers. We call ourselves Cyberia and I feel like we have a lot in common with all of you. We should all cross pollinate at a joint meeting sometime soon to see what we could all collaborate on. I feel like a local hacker space might be something our group would like to help establish in Minneapolis in late 2020, among other things. Perhaps we could all work together to potentially make that a reality. In Solidarity, Kurtis Hanna From nompelis at nobelware.com Thu Nov 7 14:38:30 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Thu, 7 Nov 2019 14:38:30 +0000 Subject: RISC-V meetup In-Reply-To: <99d83e50-cb9a-393a-2cc6-8af804acd248@riseup.net> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> <20191105234229.GB14809@nobelware.com> <20191106004215.6e5sctreewldjaqi@begriffs.com> <99d83e50-cb9a-393a-2cc6-8af804acd248@riseup.net> Message-ID: <20191107143830.GA5740@nobelware.com> Wow, Kurtis! Welcome. Amazing what kind of people are in my neighbourhood; I could have never imagined. Very interested in learning more. Perhaps a brief presentation at one of our meetups. From dave at 19a6.net Fri Nov 8 01:36:27 2019 From: dave at 19a6.net (Dave Bucklin) Date: Thu, 07 Nov 2019 19:36:27 -0600 Subject: Thursday, November 7th In-Reply-To: References: <964E6CC3-95AF-48AD-AE91-2F90E79C31C8@19a6.net> Message-ID: We're at Pizza Luce a couple blocks away. -------- Original Message -------- From: Christopher Pearson Sent: November 7, 2019 7:34:16 PM CST To: Chris Mikkelson Cc: Friends , Dave Bucklin Subject: Re: Thursday, November 7th Im here, did I miss an update? On Tue, Nov 5, 2019, 1:34 PM Chris Mikkelson wrote: > I'm in. > > On November 2, 2019 8:12:23 PM CDT, Dave Bucklin wrote: > >I've submitted a request for N-202 at the Central Library from 6 to 9 > >Thursday evening. I hope to see some of you there! > > -- > Sent from my Android device with K-9 Mail. Please excuse my brevity. > From joe at begriffs.com Sat Nov 9 03:04:12 2019 From: joe at begriffs.com (Joe Nelson) Date: Fri, 8 Nov 2019 21:04:12 -0600 Subject: Next meeting, new place Message-ID: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Hey everyone, today I visited a tech tinkerer's paradise run by Tristan and Savannah (who just joined our mailing list). They've got a warehouse in the Phillips neighborhood, low key on the outside, and full of electronic experiments. I almost don't want to spoil the surprise by telling you what's inside. Just for illustration, in one corner I'll just say there was a metamathematics book by Bertrand Russel sitting next to a stack of ethernet-connected motherboards. Please reply if you want to join us for an interesting night. 6:00, Thursday the 14th 2854 Columbus Ave S. From nompelis at nobelware.com Sat Nov 9 20:00:30 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Sat, 9 Nov 2019 20:00:30 +0000 Subject: Next meeting, new place In-Reply-To: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: <20191109200030.GA29080@nobelware.com> Welcome to both. This is, literally, single-digit blocks from my house. I will be there. You said Russell, about whom my position is that humanity has been privileged to have him walk among us. From kermit4 at gmail.com Sat Nov 9 20:03:32 2019 From: kermit4 at gmail.com (Christopher Pearson) Date: Sat, 9 Nov 2019 14:03:32 -0600 Subject: Next meeting, new place In-Reply-To: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: On Fri, Nov 8, 2019 at 9:04 PM Joe Nelson wrote: > Please reply if you want to join us for an interesting night. > > 6:00, Thursday the 14th > 2854 Columbus Ave S. I'm planning to be there. From pstelzig at gmx.com Sat Nov 9 21:40:06 2019 From: pstelzig at gmx.com (pstelzig) Date: Sat, 9 Nov 2019 15:40:06 -0600 Subject: further than I like to go Re: Next meeting, new place In-Reply-To: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: It's further south than I like to go, but it sounds interesting I'll try to make it. On 08/11/2019 21:04, Joe Nelson wrote: > Hey everyone, today I visited a tech tinkerer's paradise run by Tristan > and Savannah (who just joined our mailing list). They've got a warehouse > in the Phillips neighborhood, low key on the outside, and full of > electronic experiments. > > I almost don't want to spoil the surprise by telling you what's inside. > Just for illustration, in one corner I'll just say there was a > metamathematics book by Bertrand Russel sitting next to a stack of > ethernet-connected motherboards. > > Please reply if you want to join us for an interesting night. > > 6:00, Thursday the 14th > 2854 Columbus Ave S. > From joe at begriffs.com Mon Nov 11 00:44:07 2019 From: joe at begriffs.com (Joe Nelson) Date: Sun, 10 Nov 2019 18:44:07 -0600 Subject: Programming as Craft (great article by Dave) Message-ID: <20191111004407.pecqi66cmeykjwlm@begriffs.com> https://davebucklin.com/play/2019/11/10/programming-as-craft.html Many quotable phrases in there. It's a good description of how I like to approach projects for our group as well -- learning about classic tools and digging into their history. As Dave said, a "personal archaeology of computer science." From eric at faehnri.ch Mon Nov 11 01:05:24 2019 From: eric at faehnri.ch (Eric Faehnrich) Date: Sun, 10 Nov 2019 20:05:24 -0500 Subject: Programming as Craft (great article by Dave) In-Reply-To: <20191111004407.pecqi66cmeykjwlm@begriffs.com> References: <20191111004407.pecqi66cmeykjwlm@begriffs.com> Message-ID: <8c68f2b0-c6a3-a83c-5135-c467898570b8@faehnri.ch> My RSS reader is having trouble with the feed. https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fdavebucklin.com%2Ffeed.xml From ryu.powderhorn at cottageindustries.build Mon Nov 11 01:56:07 2019 From: ryu.powderhorn at cottageindustries.build (Tristan Powderhorn) Date: Sun, 10 Nov 2019 19:56:07 -0600 Subject: Next meeting, new place In-Reply-To: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: > Subject: Re: Next meeting, new place Thanks for the warm welcome! We've been trying to get a space like this going for a while and it's just starting to come together. We've got some hardware, some curiosities, decent internet and a good amount of space. Plan on teaching free programming and open source tech / security stuff out of here. Just starting to look to get more people involved when I ran into Joe the other night at a meetup. = ] We're into linux/unix, p2p, distributed computing, crypto and embedded device hacking / reclamation. Stuff like that, you know. Have been interested in working on a People's Open Net in the Twin Cities, and some other projects. Look forward to meeting you all. On Fri, Nov 8, 2019 at 9:04 PM Joe Nelson wrote: > > Hey everyone, today I visited a tech tinkerer's paradise run by Tristan > and Savannah (who just joined our mailing list). They've got a warehouse > in the Phillips neighborhood, low key on the outside, and full of > electronic experiments. > > I almost don't want to spoil the surprise by telling you what's inside. > Just for illustration, in one corner I'll just say there was a > metamathematics book by Bertrand Russel sitting next to a stack of > ethernet-connected motherboards. > > Please reply if you want to join us for an interesting night. > > 6:00, Thursday the 14th > 2854 Columbus Ave S. From dave at 19a6.net Mon Nov 11 02:40:30 2019 From: dave at 19a6.net (Dave Bucklin) Date: Sun, 10 Nov 2019 20:40:30 -0600 Subject: Programming as Craft (great article by Dave) In-Reply-To: <8c68f2b0-c6a3-a83c-5135-c467898570b8@faehnri.ch> References: <20191111004407.pecqi66cmeykjwlm@begriffs.com> <8c68f2b0-c6a3-a83c-5135-c467898570b8@faehnri.ch> Message-ID: <8E5FEC9E-5FC6-4211-8735-129AC139FA24@19a6.net> On November 10, 2019 7:05:24 PM CST, Eric Faehnrich wrote: >My RSS reader is having trouble with the feed. > > >https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fdavebucklin.com%2Ffeed.xml That doesn't surprise me. I'll take a look. Thanks for the heads-up From mxu at uribe.cc Mon Nov 11 11:39:58 2019 From: mxu at uribe.cc (Mauricio Uribe) Date: Mon, 11 Nov 2019 06:39:58 -0500 Subject: Programming as Craft (great article by Dave) In-Reply-To: <20191111004407.pecqi66cmeykjwlm@begriffs.com> References: <20191111004407.pecqi66cmeykjwlm@begriffs.com> Message-ID: On 11/10/19 7:44 PM, Joe Nelson wrote: > https://davebucklin.com/play/2019/11/10/programming-as-craft.html > > Many quotable phrases in there. It's a good description of how I like to > approach projects for our group as well -- learning about classic tools > and digging into their history. As Dave said, a "personal archaeology of > computer science." Joe: Thanks for sharing! Dave: Great post!? This one spoke to me greatly.? Half the time when my partner nags me about why I'm spending so much time on my computer, I often reply with a generic "I'm just doing' stuff, projects and such..." - only because i couldn't succinctly put into words why i invest the time that I do.? But really what i should say to my partner is that I'm trying to hone my craft, and am enjoying every bit of it.? This was an awksome...er, awesome post Dave!? Keep'em comin'! -mauricio From joe at begriffs.com Mon Nov 11 22:54:20 2019 From: joe at begriffs.com (Joe Nelson) Date: Mon, 11 Nov 2019 16:54:20 -0600 Subject: RISC-V meetup In-Reply-To: <99d83e50-cb9a-393a-2cc6-8af804acd248@riseup.net> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> <20191105234229.GB14809@nobelware.com> <20191106004215.6e5sctreewldjaqi@begriffs.com> <99d83e50-cb9a-393a-2cc6-8af804acd248@riseup.net> Message-ID: <20191111225420.GA40239@begriffs.com> Kurtis, wow you're doing some cool stuff. Glad you introduced yourself to the list! > I've mainly been spending my time flashing Libreboot onto laptops and > showing other people how to do it. [...] I'm also willing to teach > large-ish groups how to flash Libreboot onto laptops they already own > if it is ok to have a tip jar at the event or teach small groups or > individuals these skills for a reasonable fee. Maybe we could have an event with people on this list to flash our laptops. Anyone interested? > Lastly, I have been collaborating locally with some free software > activists and hackers. We call ourselves Cyberia and I feel like we > have a lot in common with all of you. We should all cross pollinate at > a joint meeting sometime soon to see what we could all collaborate on. > I feel like a local hacker space might be something our group would > like to help establish in Minneapolis in late 2020, among other > things. Perhaps we could all work together to potentially make that a > reality. Yeah! Are you and/or Cyberia folks joining us at Tristan's warehouse this Thursday? That place is awesome, and he's setting it up to be a software-focused hacker space. From dklann at grunch.org Mon Nov 11 23:01:43 2019 From: dklann at grunch.org (David Klann) Date: Mon, 11 Nov 2019 17:01:43 -0600 Subject: RISC-V meetup In-Reply-To: <20191111225420.GA40239@begriffs.com> References: <20191104223615.7hk2isre67b2deob@begriffs.com> <096b8662-1cf5-44b3-1341-58994472bc0b@saloits.com> <20191105001216.GB20391@19a6.tech> <20191105173647.GB764@nobelware.com> <0068437b-6276-662e-abba-abd39fa455d1@saloits.com> <20191105234229.GB14809@nobelware.com> <20191106004215.6e5sctreewldjaqi@begriffs.com> <99d83e50-cb9a-393a-2cc6-8af804acd248@riseup.net> <20191111225420.GA40239@begriffs.com> Message-ID: On Mon, 2019-11-11 at 16:54 -0600, Joe Nelson wrote: > Kurtis, wow you're doing some cool stuff. Glad you introduced yourself > to the list! > > > I've mainly been spending my time flashing Libreboot onto laptops and > > showing other people how to do it. [...] I'm also willing to teach > > large-ish groups how to flash Libreboot onto laptops they already own > > if it is ok to have a tip jar at the event or teach small groups or > > individuals these skills for a reasonable fee. > > Maybe we could have an event with people on this list to flash our > laptops. Anyone interested? > > > Lastly, I have been collaborating locally with some free software > > activists and hackers. We call ourselves Cyberia and I feel like we > > have a lot in common with all of you. We should all cross pollinate at > > a joint meeting sometime soon to see what we could all collaborate on. > > I feel like a local hacker space might be something our group would > > like to help establish in Minneapolis in late 2020, among other > > things. Perhaps we could all work together to potentially make that a > > reality. > > Yeah! Are you and/or Cyberia folks joining us at Tristan's warehouse > this Thursday? That place is awesome, and he's setting it up to be a > software-focused hacker space. I'm super interested in Libreboot! I have a Lenovo W500 that's just itching for a brush with bricking! :) Seriously, this is an awesome effort! I don't have a lot of time at the moment to walk through the procedure for flashing the W500, so a "flash fest" would be most welcome! ~David From dklann at grunch.org Mon Nov 11 23:04:00 2019 From: dklann at grunch.org (David Klann) Date: Mon, 11 Nov 2019 17:04:00 -0600 Subject: Next meeting, new place In-Reply-To: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: <2d00dbafa13c05bef2ff22bcd75251b05d4bd08c.camel@grunch.org> On Fri, 2019-11-08 at 21:04 -0600, Joe Nelson wrote: > Hey everyone, .... > > Please reply if you want to join us for an interesting night. > > 6:00, Thursday the 14th > 2854 Columbus Ave S. Yay! A meetup that coincides with my schedule! I'm excited to learn of Tristan's and Savannah's endeavor, and I plan to be there Thursday. Thanks Joe and Tristan for setting this up! Best, ~David Klann From joe at begriffs.com Tue Nov 12 03:39:44 2019 From: joe at begriffs.com (Joe Nelson) Date: Mon, 11 Nov 2019 21:39:44 -0600 Subject: Next meeting, new place In-Reply-To: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: <20191112033944.74pkvco23lwzbjmc@begriffs.com> Joe Nelson wrote: > Please reply if you want to join us for an interesting night. > > 6:00, Thursday the 14th > 2854 Columbus Ave S. Looks like we've got...4 people so far, or 5 including me. I'm kind of surprised given the venue this week. I was hoping we could get a big meeting together and dream up possibilities for a vibrant hacker space. Anyone else planning to attend who hasn't responded yet? From Kurtis at riseup.net Tue Nov 12 04:23:00 2019 From: Kurtis at riseup.net (Kurtis Hanna) Date: Tue, 12 Nov 2019 04:23:00 +0000 Subject: Next meeting, new place In-Reply-To: <20191112033944.74pkvco23lwzbjmc@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112033944.74pkvco23lwzbjmc@begriffs.com> Message-ID: <78f3383f-10db-65e6-d6e7-2e3fb77ed561@riseup.net> Hello all, Joe Nelson: > Joe Nelson wrote: >> Lastly, I have been collaborating locally with some free software >> activists and hackers. We call ourselves Cyberia and I feel like >> we have a lot in common with all of you. We should all cross >> pollinate at a joint meeting sometime soon to see what we could all >> collaborate on. I feel like a local hacker space might be something >> our group would like to help establish in Minneapolis in late 2020, >> among other things. Perhaps we could all work together to >> potentially make that a reality. > > Yeah! Are you and/or Cyberia folks joining us at Tristan's warehouse > this Thursday? That place is awesome, and he's setting it up to be > a software-focused hacker space. >> Please reply if you want to join us for an interesting night. >> >> 6:00, Thursday the 14th >> 2854 Columbus Ave S.> > Looks like we've got...4 people so far, or 5 including me. I'm kind > of surprised given the venue this week. I was hoping we could get a > big meeting together and dream up possibilities for a vibrant hacker > space. > > Anyone else planning to attend who hasn't responded yet? > It sounds like two fellow Cyberians, Aedric and Fack, and myself will all be attending. We're really excited to see the space and get to know all of you. :-) Cordially, Kurtis Hanna From dave at 19a6.net Tue Nov 12 13:04:54 2019 From: dave at 19a6.net (Dave Bucklin) Date: Tue, 12 Nov 2019 07:04:54 -0600 Subject: Next meeting, new place In-Reply-To: <20191112033944.74pkvco23lwzbjmc@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112033944.74pkvco23lwzbjmc@begriffs.com> Message-ID: <2A8F325F-4875-4F04-BA77-58B017441554@19a6.net> On November 11, 2019 9:39:44 PM CST, Joe Nelson wrote: >Joe Nelson wrote: >> Please reply if you want to join us for an interesting night. >> >> 6:00, Thursday the 14th >> 2854 Columbus Ave S. > >Anyone else planning to attend who hasn't responded yet? I plan to be there. From j3s at cock.li Tue Nov 12 18:36:25 2019 From: j3s at cock.li (j3s) Date: Tue, 12 Nov 2019 12:36:25 -0600 Subject: Next meeting, new place In-Reply-To: <20191112033944.74pkvco23lwzbjmc@begriffs.com> References: <20191112033944.74pkvco23lwzbjmc@begriffs.com> Message-ID: <2C623E12-1AA3-40D9-B0CD-FA5547E2C3D4@cock.li> > Looks like we've got...4 people so far, or 5 including me. I'm kind of > surprised given the venue this week. I was hoping we could get a big > meeting together and dream up possibilities for a vibrant hacker space. > > Anyone else planning to attend who hasn't responded yet? I?m planning on coming as well. Is there anything that I should plan on bringing? From duby.savannah at cottageindustries.build Tue Nov 12 22:14:57 2019 From: duby.savannah at cottageindustries.build (Savannah Duby) Date: Tue, 12 Nov 2019 16:14:57 -0600 Subject: Next meeting, new place In-Reply-To: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: > 6:00, Thursday the 14th > 2854 Columbus Ave S. Hi all, I'm Savannah - tinkerer and noob programmer helping out at Cottage Industries. Thanks begriffs for introducing us to this group. Looking forward to hosting you all at the space On Fri, Nov 8, 2019 at 9:04 PM Joe Nelson wrote: > > Hey everyone, today I visited a tech tinkerer's paradise run by Tristan > and Savannah (who just joined our mailing list). They've got a warehouse > in the Phillips neighborhood, low key on the outside, and full of > electronic experiments. > > I almost don't want to spoil the surprise by telling you what's inside. > Just for illustration, in one corner I'll just say there was a > metamathematics book by Bertrand Russel sitting next to a stack of > ethernet-connected motherboards. > > Please reply if you want to join us for an interesting night. > > 6:00, Thursday the 14th > 2854 Columbus Ave S. From nompelis at nobelware.com Tue Nov 12 23:34:52 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Tue, 12 Nov 2019 23:34:52 +0000 Subject: Next meeting, new place In-Reply-To: References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: <20191112233452.GA28621@nobelware.com> > > Hi all, I'm Savannah - tinkerer and noob programmer helping out at > Cottage Industries. Thanks begriffs for introducing us to this group. > Looking forward to hosting you all at the space > This is how you spell "n00b", n00b! Welcome to the list. See you on Thursday. From tahbertschinger at gmail.com Wed Nov 13 17:28:12 2019 From: tahbertschinger at gmail.com (Thomas Bertschinger) Date: Wed, 13 Nov 2019 11:28:12 -0600 Subject: Next meeting, new place In-Reply-To: <20191112233452.GA28621@nobelware.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112233452.GA28621@nobelware.com> Message-ID: Hey Joe and others, I'll plan to be there this Thursday. =) -Thomas On Tue, Nov 12, 2019 at 5:35 PM Ioannis Nompelis wrote: > > > > > Hi all, I'm Savannah - tinkerer and noob programmer helping out at > > Cottage Industries. Thanks begriffs for introducing us to this group. > > Looking forward to hosting you all at the space > > > > This is how you spell "n00b", n00b! > > Welcome to the list. See you on Thursday. > From samuel.stuewe at gmail.com Wed Nov 13 17:39:09 2019 From: samuel.stuewe at gmail.com (Sam Stuewe) Date: Wed, 13 Nov 2019 11:39:09 -0600 Subject: Next meeting, new place In-Reply-To: References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: Savannah! Welcome to the list. :) On 11/12/19, Savannah Duby wrote: >> 6:00, Thursday the 14th >> 2854 Columbus Ave S. > > Hi all, I'm Savannah - tinkerer and noob programmer helping out at > Cottage Industries. Thanks begriffs for introducing us to this group. > Looking forward to hosting you all at the space > > On Fri, Nov 8, 2019 at 9:04 PM Joe Nelson wrote: >> >> Hey everyone, today I visited a tech tinkerer's paradise run by Tristan >> and Savannah (who just joined our mailing list). They've got a warehouse >> in the Phillips neighborhood, low key on the outside, and full of >> electronic experiments. >> >> I almost don't want to spoil the surprise by telling you what's inside. >> Just for illustration, in one corner I'll just say there was a >> metamathematics book by Bertrand Russel sitting next to a stack of >> ethernet-connected motherboards. >> >> Please reply if you want to join us for an interesting night. >> >> 6:00, Thursday the 14th >> 2854 Columbus Ave S. > From prenticedarren at gmail.com Wed Nov 13 19:36:30 2019 From: prenticedarren at gmail.com (Darren Prentice) Date: Wed, 13 Nov 2019 13:36:30 -0600 Subject: Next meeting, new place In-Reply-To: References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> Message-ID: <15BD21B4-0422-4DCD-93C4-A499FA414F97@gmail.com> That sounds awesome! I?ll be there, and I?ll try and bring a friend. From prenticedarren at gmail.com Wed Nov 13 20:03:57 2019 From: prenticedarren at gmail.com (Darren Prentice) Date: Wed, 13 Nov 2019 14:03:57 -0600 Subject: Programming as Craft (great article by Dave) In-Reply-To: References: <20191111004407.pecqi66cmeykjwlm@begriffs.com> Message-ID: <4582578F-B286-4F60-B085-F7593087A609@gmail.com> Dave, I really enjoyed reading that. There?s a lot there, and I still need to process, but this is something that?s especially salient in the javascript community. There?s so much churn and novelty as the web evolves that I?ve noticed it?s actually become quite fashionable to adorn your JS library or online brand with retro-mania / nostalgia fetishism of "90s internet". Just yesterday I saw a library who?s logo was styled like the old AOL logo. I think this, like young people?s obsessions with ?Vaporwave? and such, is similarly influenced by that lack of feeling of any real connection to the past. Good stuff. ?Foo" for thought. Ew, sorry. From joe at begriffs.com Wed Nov 13 22:58:20 2019 From: joe at begriffs.com (Joe Nelson) Date: Wed, 13 Nov 2019 16:58:20 -0600 Subject: BRING CASH FOR FOOD [Next meeting, new place] In-Reply-To: <20191112033944.74pkvco23lwzbjmc@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112033944.74pkvco23lwzbjmc@begriffs.com> Message-ID: <20191113225820.5rpjqqkayw3lesvj@begriffs.com> Well, looks like we've got a big group going tomorrow! We should probably get food for the event so that it goes smoothly. The standard meetup cuisine is beer and pizza... Tristan: * Can you recommend a good pizza place near the venue that delivers? * or optionally, would you be comfortable buying the goods and us paying you back in cash? (Otherwise Dave has been our pizza wizard in the past...) * Shopping list: - Pizza, using the pizza calculator to determine how much http://stickielab.com/sandbox/pizza/ - Cases of beer, unless you're not a fan of having alcohol in your space of course - Plastic cups for water if there aren't enough cups in the kitchen - A package of paper napkins - Paper plates if we want to be dainty Everyone else: * Remember to bring cash to cover your part of the costs above! * Also think about what the ideal hackerspace looks like to you, we could kind of go around the circle and discuss it in person From ryu.powderhorn at cottageindustries.build Thu Nov 14 00:37:39 2019 From: ryu.powderhorn at cottageindustries.build (Tristan Powderhorn) Date: Wed, 13 Nov 2019 18:37:39 -0600 Subject: BRING CASH FOR FOOD [Next meeting, new place] In-Reply-To: <20191113225820.5rpjqqkayw3lesvj@begriffs.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112033944.74pkvco23lwzbjmc@begriffs.com> <20191113225820.5rpjqqkayw3lesvj@begriffs.com> Message-ID: > Tristan: > * Can you recommend a good pizza place near the venue that delivers? > * or optionally, would you be comfortable buying the goods and us paying > you back in cash? (Otherwise Dave has been our pizza wizard in the past...) > * Shopping list: > - Pizza, using the pizza calculator to determine how much > http://stickielab.com/sandbox/pizza/ > - Cases of beer, unless you're not a fan of having alcohol in your > space of course > - Plastic cups for water if there aren't enough cups in the kitchen > - A package of paper napkins > - Paper plates if we want to be dainty Joe: I can handle Pizza and Beer up front to make things easy. What's the RSVP at for your pizza calculator? Everybody: Pizza toppings / beer requests? We have many vegetarians? Gluten free needs? IPA's, Stouts, and Ciders Ok? On Wed, Nov 13, 2019 at 4:58 PM Joe Nelson wrote: > > Well, looks like we've got a big group going tomorrow! > > We should probably get food for the event so that it goes smoothly. The > standard meetup cuisine is beer and pizza... > > Tristan: > * Can you recommend a good pizza place near the venue that delivers? > * or optionally, would you be comfortable buying the goods and us paying > you back in cash? (Otherwise Dave has been our pizza wizard in the past...) > * Shopping list: > - Pizza, using the pizza calculator to determine how much > http://stickielab.com/sandbox/pizza/ > - Cases of beer, unless you're not a fan of having alcohol in your > space of course > - Plastic cups for water if there aren't enough cups in the kitchen > - A package of paper napkins > - Paper plates if we want to be dainty > > Everyone else: > * Remember to bring cash to cover your part of the costs above! > * Also think about what the ideal hackerspace looks like to you, > we could kind of go around the circle and discuss it in person From j3s at cock.li Thu Nov 14 00:55:35 2019 From: j3s at cock.li (j3s) Date: Wed, 13 Nov 2019 18:55:35 -0600 Subject: BRING CASH FOR FOOD [Next meeting, new place] In-Reply-To: References: Message-ID: <220F68B3-94B6-48CE-9401-A3A67A944CC3@cock.li> > Everybody: Pizza toppings / beer requests? Lactose intolerant, so at least one non-mega-cheese pizza please. I can tolerate a thin layer, but any more starts to mess me up. From dave at 19a6.net Thu Nov 14 01:05:11 2019 From: dave at 19a6.net (Dave Bucklin) Date: Wed, 13 Nov 2019 19:05:11 -0600 Subject: Web Key Directory Message-ID: <20191114010511.GA2442@19a6.tech> This might be old news to some of you. I just made my PGP public key available via Web Key Directory (WKD)[0]. As I understand it, if you control a web server for your email domain, you can use WKD. I followed the instructions at [1] to export my key, put it in the right place, and verify that it worked. I got a warning that my key was "not accessible", but that didn't seem to have much of an impact. Now, anyone using gpg (or one of the supported clients) can find my key as long as they have my email address. (I checked on mutt, but it's still under discussion [2]). I verified this by importing my key using my frostbyte.cc account. dbucklin at hh:~ $gpg --list-keys gpg: directory '/home/dbucklin/.gnupg' created gpg: keybox '/home/dbucklin/.gnupg/pubring.kbx' created gpg: /home/dbucklin/.gnupg/trustdb.gpg: trustdb created dbucklin at hh:~ $gpg --locate-key dave at 19a6.net gpg: key 30548082E3B9D7E5: public key "Dave Bucklin " imported gpg: Total number processed: 1 gpg: imported: 1 pub rsa2048 2018-08-19 [SC] [expires: 2020-08-18] B53CC97B773B6987B7A8DB0730548082E3B9D7E5 uid [ unknown] Dave Bucklin sub rsa2048 2018-08-19 [E] [expires: 2020-08-18] References: [0]: https://tools.ietf.org/html/draft-koch-openpgp-webkey-service-08 [1]: https://metacode.biz/openpgp/web-key-directory [2]: https://gitlab.com/muttmua/mutt/issues/55 From dave at 19a6.net Thu Nov 14 01:13:03 2019 From: dave at 19a6.net (Dave Bucklin) Date: Wed, 13 Nov 2019 19:13:03 -0600 Subject: BRING CASH FOR FOOD [Next meeting, new place] In-Reply-To: References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112033944.74pkvco23lwzbjmc@begriffs.com> <20191113225820.5rpjqqkayw3lesvj@begriffs.com> Message-ID: <20191114011303.GB2442@19a6.tech> On Wed, Nov 13, 2019 at 06:37:39PM -0600, Tristan Powderhorn wrote: > > Joe: I can handle Pizza and Beer up front to make things easy. What's the RSVP > at for your pizza calculator? The count is 12, plus or minus two, by my reckoning. > Everybody: Pizza toppings / beer requests? We have many vegetarians? > Gluten free needs? IPA's, Stouts, and Ciders Ok? We have at least one lactose-into^H^H^H^Hchallenged person coming. I would say, keep it simple. From pstelzig at gmx.com Thu Nov 14 02:57:36 2019 From: pstelzig at gmx.com (pstelzig) Date: Wed, 13 Nov 2019 20:57:36 -0600 Subject: BRING CASH FOR FOOD [Next meeting, new place] In-Reply-To: References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112033944.74pkvco23lwzbjmc@begriffs.com> <20191113225820.5rpjqqkayw3lesvj@begriffs.com> Message-ID: <62a47018-a517-a557-78a5-1eed3f2d1e68@gmx.com> On 13/11/2019 18:37, Tristan Powderhorn wrote: > > Everybody: Pizza toppings / beer requests? We have many vegetarians? > Gluten free needs? IPA's, Stouts, and Ciders Ok? > Anything but IPA but I am not likely to drink more than one, and for pizza simple is good. From zach at nor.mn Thu Nov 14 05:29:49 2019 From: zach at nor.mn (Zach Norman) Date: Wed, 13 Nov 2019 23:29:49 -0600 Subject: Web Key Directory In-Reply-To: <20191114010511.GA2442@19a6.tech> References: <20191114010511.GA2442@19a6.tech> Message-ID: Nice. One can use DNS also, if so inclined. https://tools.ietf.org/html/rfc7929 On Wed, Nov 13, 2019 at 7:05 PM Dave Bucklin wrote: > > This might be old news to some of you. I just made my PGP public key > available via Web Key Directory (WKD)[0]. As I understand it, if you > control a web server for your email domain, you can use WKD. > > I followed the instructions at [1] to export my key, put it in the right > place, and verify that it worked. I got a warning that my key was "not > accessible", but that didn't seem to have much of an impact. > > Now, anyone using gpg (or one of the supported clients) can find my key > as long as they have my email address. (I checked on mutt, but it's > still under discussion [2]). I verified this by importing my > key using my frostbyte.cc account. > > dbucklin at hh:~ > $gpg --list-keys > gpg: directory '/home/dbucklin/.gnupg' created > gpg: keybox '/home/dbucklin/.gnupg/pubring.kbx' created > gpg: /home/dbucklin/.gnupg/trustdb.gpg: trustdb created > > dbucklin at hh:~ > $gpg --locate-key dave at 19a6.net > gpg: key 30548082E3B9D7E5: public key "Dave Bucklin " imported > gpg: Total number processed: 1 > gpg: imported: 1 > pub rsa2048 2018-08-19 [SC] [expires: 2020-08-18] > B53CC97B773B6987B7A8DB0730548082E3B9D7E5 > uid [ unknown] Dave Bucklin > sub rsa2048 2018-08-19 [E] [expires: 2020-08-18] > > References: > > [0]: https://tools.ietf.org/html/draft-koch-openpgp-webkey-service-08 > [1]: https://metacode.biz/openpgp/web-key-directory > [2]: https://gitlab.com/muttmua/mutt/issues/55 -- Zach Norman normnco automata From nompelis at nobelware.com Thu Nov 14 06:06:24 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Thu, 14 Nov 2019 06:06:24 +0000 Subject: BRING CASH FOR FOOD [Next meeting, new place] In-Reply-To: <62a47018-a517-a557-78a5-1eed3f2d1e68@gmx.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112033944.74pkvco23lwzbjmc@begriffs.com> <20191113225820.5rpjqqkayw3lesvj@begriffs.com> <62a47018-a517-a557-78a5-1eed3f2d1e68@gmx.com> Message-ID: <20191114060624.GA2003@nobelware.com> I am vegetarian. Let us consolidate the dietary needs to a single pizza that is lactose-deficient and veggie. Just wrapped up a serious milestone with work-work. Amped and pumped! See you guys tomorrow. From nompelis at nobelware.com Thu Nov 14 06:15:08 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Thu, 14 Nov 2019 06:15:08 +0000 Subject: Web Key Directory In-Reply-To: References: <20191114010511.GA2442@19a6.tech> Message-ID: <20191114061508.GB2003@nobelware.com> Will check it out tomorrow, when I have more brain left. My GnuPG 1.4.15 does not do this kind of fetching. Our VPS has GnuPG 2.2.10, which is what you tested. And this reminds me, bring your SSH public keys to get access to our VPS, which is used for paired programming, etc. And I have $50 for Dave to cover VPS and domain name costs for frostbyte.cc. From joe at begriffs.com Thu Nov 14 14:55:48 2019 From: joe at begriffs.com (Joe Nelson) Date: Thu, 14 Nov 2019 08:55:48 -0600 Subject: Web Key Directory In-Reply-To: References: <20191114010511.GA2442@19a6.tech> Message-ID: <20191114145548.GA87040@begriffs.com> Zach Norman wrote: > Nice. One can use DNS also, if so inclined. > > https://tools.ietf.org/html/rfc7929 Interesting, I knew of WKD but not about this. The DNS method might actually be cleaner. Are you exposing your public key this way? I'm having trouble fetching it like this: $ gpg2 --verbose --locate-keys --auto-key-locate dane zach at nor.mn gpg: using pgp trust model gpg: error retrieving 'zach at nor.mn' via DANE: No name gpg: error reading key: No name From joe at begriffs.com Thu Nov 14 15:08:17 2019 From: joe at begriffs.com (Joe Nelson) Date: Thu, 14 Nov 2019 09:08:17 -0600 Subject: Web Key Directory In-Reply-To: <20191114010511.GA2442@19a6.tech> References: <20191114010511.GA2442@19a6.tech> Message-ID: <20191114150817.GB87040@begriffs.com> Dave Bucklin wrote: > This might be old news to some of you. I just made my PGP public key > available via Web Key Directory (WKD)[0]. As I understand it, if you > control a web server for your email domain, you can use WKD. Thanks for the reminder, I just extended the expiration of my keys because they had expired, but I forgot to update my WKD folder. > I followed the instructions at [1] to export my key, put it in the > right place, and verify that it worked. I got a warning that my key > was "not accessible", but that didn't seem to have much of an impact. Both your and my WKD show these problems in the checker: * Key is not accessible, add 'Access-Control-Allow-Origin: *' header * Policy not found. Policy file can be empty: https://begriffs.com/.well-known/openpgpkey/policy Adding the access control response header should be pretty easy, but what do they want with the "policy file?" I can add an empty one like they say, but I'd like to know the purpose of the file. From nompelis at nobelware.com Fri Nov 15 03:55:49 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Fri, 15 Nov 2019 03:55:49 +0000 Subject: BRING CASH FOR FOOD [Next meeting, new place] In-Reply-To: <20191114060624.GA2003@nobelware.com> References: <20191109030412.r5nbhr7ltlfp6mqh@begriffs.com> <20191112033944.74pkvco23lwzbjmc@begriffs.com> <20191113225820.5rpjqqkayw3lesvj@begriffs.com> <62a47018-a517-a557-78a5-1eed3f2d1e68@gmx.com> <20191114060624.GA2003@nobelware.com> Message-ID: <20191115035549.GA20343@nobelware.com> Great gathering, everyone! Good to meet all of you and thanks for the hospitality. Galactic Pizza and Surly "First Ave" great great choices too! Get your SSH keys to Joe and David for VPS access. Paired programming to do, mumblr chat, our website (frostbyte.cc) needs to be formed, and the weblogs need to be aligned. I want to see more of that radio receiver thingy. From joe at begriffs.com Sat Nov 16 02:23:32 2019 From: joe at begriffs.com (Joe Nelson) Date: Fri, 15 Nov 2019 20:23:32 -0600 Subject: irc bouncer In-Reply-To: References: Message-ID: <20191116022332.GC87040@begriffs.com> CC'ing the list too for tips/opinions. Christopher Pearson wrote: > You mentioned threads. Why would you use threads for that? I find > them to be more trouble than they're worth. Here's the code in progress, for people who recently subscribed to the friends list: https://github.com/begriffs/picobounce My plan is to maintain two linked lists shared between the threads. One list will hold messages sent from the upstream IRC server (e.g. freenode) that haven't been seen by the client (e.g. my laptop) yet. The other list will be messages submitted from the client that haven't been relayed upstream yet. The threads would be: Thread 1 Wait for TLS connection from client. (Once obtained, no other client can connect.) Run a loop waiting for messages from the client, and add them to the list for forwarding upstream. Go back to waiting for connection if client disconnects. This thread will also spawn thread 2... Thread 2 Wait on a condition variable to know when new items become available in the list of messages coming from upstream. When they arrive pull them off the list and send them to the client, sharing the network connection with thread 1. Hopefully libtls allows concurrent reads/writes. Thread 3 Connect to upstream server and await any messages from it. Put the messages into the other shared list. Attempt to reconnect if connection is lost. This thread also spawns thread 4... Thread 4 Wait on a condition variable to know when new items become available in the list of messages coming from the client. When they arrive pull them off the list and send them upstream, sharing the network connection with thread 3. The shared lists code is in messages.c and I haven't tried it yet at all so it may have bugs. While the threads do introduce complexity, I would otherwise have to coordinate waiting for input from client and server, perhaps with timeouts, and shuffling information around. I haven't done that kind of programming before to keep the system responsive to two sides at once. How might I do it without threads? From kermit4 at gmail.com Sat Nov 16 02:43:59 2019 From: kermit4 at gmail.com (Christopher Pearson) Date: Fri, 15 Nov 2019 20:43:59 -0600 Subject: irc bouncer In-Reply-To: <20191116022332.GC87040@begriffs.com> References: <20191116022332.GC87040@begriffs.com> Message-ID: >How might I do it without threads? select() (though I hear poll or epoll are more in favor lately) On Fri, Nov 15, 2019 at 8:23 PM Joe Nelson wrote: > > CC'ing the list too for tips/opinions. > > Christopher Pearson wrote: > > You mentioned threads. Why would you use threads for that? I find > > them to be more trouble than they're worth. > > Here's the code in progress, for people who recently subscribed to the friends > list: https://github.com/begriffs/picobounce > > My plan is to maintain two linked lists shared between the threads. One list > will hold messages sent from the upstream IRC server (e.g. freenode) that > haven't been seen by the client (e.g. my laptop) yet. The other list will be > messages submitted from the client that haven't been relayed upstream yet. > > The threads would be: > > Thread 1 > Wait for TLS connection from client. (Once obtained, no other client can > connect.) Run a loop waiting for messages from the client, and add them to the > list for forwarding upstream. Go back to waiting for connection if client > disconnects. This thread will also spawn thread 2... > Thread 2 > Wait on a condition variable to know when new items become available in the > list of messages coming from upstream. When they arrive pull them off the list > and send them to the client, sharing the network connection with thread 1. > Hopefully libtls allows concurrent reads/writes. > Thread 3 > Connect to upstream server and await any messages from it. Put the messages > into the other shared list. Attempt to reconnect if connection is lost. This > thread also spawns thread 4... > Thread 4 > Wait on a condition variable to know when new items become available in the > list of messages coming from the client. When they arrive pull them off the > list and send them upstream, sharing the network connection with thread 3. > > The shared lists code is in messages.c and I haven't tried it yet at all so it > may have bugs. > > While the threads do introduce complexity, I would otherwise have to coordinate > waiting for input from client and server, perhaps with timeouts, and shuffling > information around. I haven't done that kind of programming before to keep the > system responsive to two sides at once. How might I do it without threads? From joe at begriffs.com Sat Nov 16 05:09:10 2019 From: joe at begriffs.com (Joe Nelson) Date: Fri, 15 Nov 2019 23:09:10 -0600 Subject: irc bouncer In-Reply-To: References: <20191116022332.GC87040@begriffs.com> Message-ID: <20191116050910.ced6mo5op64udy2d@begriffs.com> > > How might I do it without threads? > select() (though I hear poll or epoll are more in favor lately) I see, so I can multiplex and get back data from the client OR upstream, whichever has something for me. I kind of wonder about other parts of that loop, like what do I do if the client disconnects and I want to continue queueing upstream messages while waiting for the client to reconnect? I'm picturing complex code that is trying to manage all those states in a single function, or even in a single loop. Do you have an example somewhere of this kind of a pattern of a proxy like mine? From chris at mikk.net Sat Nov 16 19:57:08 2019 From: chris at mikk.net (Chris Mikkelson) Date: Sat, 16 Nov 2019 13:57:08 -0600 Subject: irc bouncer In-Reply-To: <20191116050910.ced6mo5op64udy2d@begriffs.com> References: <20191116022332.GC87040@begriffs.com> <20191116050910.ced6mo5op64udy2d@begriffs.com> Message-ID: <20191116195708.GA52095@mikk.net> On Fri, Nov 15, 2019 at 11:09:10PM -0600, Joe Nelson wrote: > > > How might I do it without threads? > > > select() (though I hear poll or epoll are more in favor lately) > > I see, so I can multiplex and get back data from the client OR upstream, > whichever has something for me. I kind of wonder about other parts of > that loop, like what do I do if the client disconnects and I want to > continue queueing upstream messages while waiting for the client to > reconnect? I'm picturing complex code that is trying to manage all those > states in a single function, or even in a single loop. Do you have an > example somewhere of this kind of a pattern of a proxy like mine? I would suggest not using select() / poll() directly, but adopting a library like libevent (can personally vouch -- good stuff!) or the newer libev, libuv, and probably others. These wrap select, poll, and the usually-faster epoll (Linux) / kqueue (*BSD, MacOS) in a handy callback interface. So a proxy would be structured as: 1) initialize event subsystem 2) open and otherwise prepare upstream connection 3) open listening socket for clients 4) install "read event" callback on listening socket, which calls accept() then: a) If appropriate for the protocol, writes any initial greeting to the client socket (returned by accept()) b) installs a "read event" callback on the client socket. 5) The read event callback in (b) can either write directly to the upstream connection and await response, or can queue input data in a structure read by a "write event" callback on the upstream connection. 6) The latter approach in (5) would require a "read event" callback on the upstream connection to handle responses from the upstream server. Note that the "inversion of control" here will generally require you to make the state of the interaction with clients (and the upstream server) explicit and stored in a data structure which is either global or shared via pointers passed to the callback registration(s). This data structure will not be used concurrently, so you do not need to worry about locking or corruption from concurrent access. Note that this approach can still lead to bugs similar to deadlocks, if something fails to enable the callbacks necessary for the program to proceeed because that callback was going to be enabled in a not-yet-enabled callback :) Both thread-based and event-based approaches have their place, and it pays to learn both approaches to appreciate the tradeoffs. Hope this helps, -- Chris Mikkelson | "This smacks of Alpha males doing Beta testing by chris at mikk.net | risking their own Gamma globulin." | --Peter G. Neumann From salo at saloits.com Sat Nov 16 20:04:18 2019 From: salo at saloits.com (Timothy J. Salo) Date: Sat, 16 Nov 2019 14:04:18 -0600 Subject: irc bouncer In-Reply-To: <20191116022332.GC87040@begriffs.com> References: <20191116022332.GC87040@begriffs.com> Message-ID: <3a5a371c-1096-d896-9cdc-852c1d10e71b@saloits.com> >> You mentioned threads. Why would you use threads for that? I find >> them to be more trouble than they're worth. I believe that threads should be part of every programmer's toolkit. There are many cases where threads dramatically simplify programming. Some problems contain inherent concurrency: several relatively independent tasks occurring simultaneously. The problem Joe describes is a good example. My usual example is a text editor that does spell checking in the background. Yes, you could conceivably write this as a single-threaded application. The editor could execute a bit of code in the foreground, then would call the spell checker. The chances of getting this coded correctly are, in my opinion, pretty small. But, if you implement the editor as two threads, one thread that interacts with the user in the foreground and a second thread that does the spell checking in the background, the code will be dramatically simpler. Furthermore, with the sue of threads, the programming style (two independent threads) matches the structure of the problem (two independent tasks). Now, try adding periodic backups to your editor. Implementing this as a third thread is relatively easy. Adding this functionality to a single- threaded editor would be pretty messy. Now, suppose you want to distribute the workload across multiple processors. If you used threads, your code is structured such that taking advantage of multiple processors pretty straightforward: you just assign different threads to different processors. Trying to make single-threaded program effectively use multiple processors is pretty close to impossible. Of course, if you use threads, you have to think about concurrency. For example, you might need to lock some data structures to avoid conflicting updates. Or, use data structures that don't require locking. But, in this age of multiple processors and distributed systems, it is highly beneficial to be comfortable with concurrency. By the way, Android makes heavy use of threads. In fact, Android will print warning messages if you perform certain tasks (no pun intended) on the main thread. Android does, however, put lots of wrappers around threads so it's not necessarily obvious that you are using threads. But, understanding threads will help you understand what Android is doing and why. In case it's not obvious, yes, I did teach an operating systems course. I introduced dozens of students to threads, and I think they generally found that beneficial. -tjs From salo at saloits.com Sat Nov 16 21:40:22 2019 From: salo at saloits.com (Timothy J. Salo) Date: Sat, 16 Nov 2019 15:40:22 -0600 Subject: irc bouncer In-Reply-To: <20191116022332.GC87040@begriffs.com> References: <20191116022332.GC87040@begriffs.com> Message-ID: > Thread 1 > Wait for TLS connection from client. (Once obtained, no other client can > connect.) Run a loop waiting for messages from the client, and add them to the > list for forwarding upstream. Go back to waiting for connection if client > disconnects. This thread will also spawn thread 2... Couldn't you: o Have this thread listen on your socket for incoming connections. I think this would probably be a blocking call. That is, this thread would be blocked until there is an incoming connection. o When a new connection occurs, call accept() and get a new socket for the connection. Hand this new socket to a new thread, which will process the connection, including negotiation the TLS connection, I think. (Here you may want to use a thread pool, rather than creating a new thread for every new connection.) o The original thread goes back to listening for incoming connections. That is, its execution is suspended until another incoming connection occurs. This should allow you to handle multiple clients at the same time. I think this will also avoid the need to poll for incoming connections. I'm not sure where else you (or others) were thinking about polling. I think that this new thread created after the call to accept() could also handle sending messages to the client. I'm not sure when this client should tear down the connection. Maybe never? -tjs From salo at saloits.com Sat Nov 16 22:31:38 2019 From: salo at saloits.com (Timothy J. Salo) Date: Sat, 16 Nov 2019 16:31:38 -0600 Subject: irc bouncer In-Reply-To: <20191116022332.GC87040@begriffs.com> References: <20191116022332.GC87040@begriffs.com> Message-ID: <1b28a717-7cb2-8ebf-4b8d-c4dfda5e7300@saloits.com> On 11/15/2019 8:23 PM, Joe Nelson wrote: > My plan is to maintain two linked lists shared between the threads. One list > will hold messages sent from the upstream IRC server (e.g. freenode) that > haven't been seen by the client (e.g. my laptop) yet. The other list will be > messages submitted from the client that haven't been relayed upstream yet. Maybe a downstream queue for each client? -tjs From salo at saloits.com Sat Nov 16 22:51:50 2019 From: salo at saloits.com (Timothy J. Salo) Date: Sat, 16 Nov 2019 16:51:50 -0600 Subject: irc bouncer In-Reply-To: <20191116195708.GA52095@mikk.net> References: <20191116022332.GC87040@begriffs.com> <20191116050910.ced6mo5op64udy2d@begriffs.com> <20191116195708.GA52095@mikk.net> Message-ID: <19160cb5-9485-0e98-3d24-c21c5efac414@saloits.com> On 11/16/2019 1:57 PM, Chris Mikkelson wrote: > Both thread-based and event-based approaches have their place, and it pays > to learn both approaches to appreciate the tradeoffs. Absolutely. In this particular case, I think you can implement this with threads, without the need for polling or an even-based library. These threads will be triggered by, for example, [events such as] a new incoming connection. A big poll loop will, I think, be more likely used in an embedded environment, where processes and threads don't exist (and you don't want to implement them). -tjs From chris at sencjw.com Mon Nov 18 00:58:39 2019 From: chris at sencjw.com (Chris Wilson) Date: Sun, 17 Nov 2019 18:58:39 -0600 Subject: Embedded Development Message-ID: Hey friends, This is kind of a long shot but has anyone worked with ARM Cortex-M microcontrollers? In particular, I?d love to know more about the capacitive touch capabilities (Atmel/Microchip calls this the Peripheral Touch Controller, PTC). The background is that I?m building a device/writing firmware to catch it when my dog pees on the floor ;(. I know, I know, there are other ways to approach this problem, but hey, let?s say this is a nerdy and multi-pronged approach. I?m using the capacitive touch sensor as a moisture sensor. So when the MCU receives a ?touch? interrupt, then I plan on using the DAC to output a buzz to the attached speaker. Pretty simple, but the issue is that the PTC is only distributed as a binary library and also I haven?t been able to get MPLAB, the Microchip/Atmel IDE, to work. There?s an open source library that I?ve been fiddling with, it?s called Libre_PTC. Anyway, if someone has some general tips to get it to work or (better yet) would be willing to pair over zoom or something I?d be happy to hear about it. Hardware: https://github.com/MalphasWats/hawk Libre_PTC: https://github.com/jgilbert20/Libre_PTC My code: https://github.com/twopoint718/hello-cortex-m0 Thanks! ? Chris From nompelis at nobelware.com Mon Nov 18 05:52:27 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Mon, 18 Nov 2019 05:52:27 +0000 Subject: Embedded Development In-Reply-To: References: Message-ID: <20191118055227.GA14861@nobelware.com> Any chance you can get open code (as in not a compiled binary) for a different microcontroller to drive the PTC? The reason I ask is that it is easy to switch to Amtel, Arduino, Propeller from a hardware point of view (they are $35 a piece), unless you are really married to the ARM MCU. (I use Parallalx's Propeller and it has the "SimpleIDE" that runs native on Linux and it is a gem. I have not dealt with the ARM MCUs.) From nompelis at nobelware.com Mon Nov 18 05:57:10 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Mon, 18 Nov 2019 05:57:10 +0000 Subject: Embedded Development In-Reply-To: <20191118055227.GA14861@nobelware.com> References: <20191118055227.GA14861@nobelware.com> Message-ID: <20191118055710.GB14861@nobelware.com> OK. Ignore my stupid follow-up questions. I looked and I found all of what you had found, and no open code for this PTC. From salo at saloits.com Mon Nov 18 21:23:56 2019 From: salo at saloits.com (Timothy J. Salo) Date: Mon, 18 Nov 2019 15:23:56 -0600 Subject: Embedded Development In-Reply-To: References: Message-ID: <6c89919e-ab14-70b2-c07a-15f0cb624ec4@saloits.com> On 11/17/2019 6:58 PM, Chris Wilson wrote: > This is kind of a long shot but has anyone worked with ARM Cortex-M microcontrollers? In particular, I?d love to know more about the capacitive touch capabilities (Atmel/Microchip calls this the Peripheral Touch Controller, PTC). What are you using for a debug probe? All of the Segger J-Link devices seem sort of expensive. Do you need the J-Trace PRO for Cortex-M ($1,748), or will any of the J-Trace devices work? It would be nice to have a JTAG device, but I don't want to buy one and then find that I either bought the wrong thing or that I need to buy another when I want to work with another processor. Thanks, -tjs From chris at sencjw.com Tue Nov 19 00:16:48 2019 From: chris at sencjw.com (Chris Wilson) Date: Mon, 18 Nov 2019 18:16:48 -0600 Subject: Embedded Development In-Reply-To: <6c89919e-ab14-70b2-c07a-15f0cb624ec4@saloits.com> References: <6c89919e-ab14-70b2-c07a-15f0cb624ec4@saloits.com> Message-ID: > On Nov 18, 2019, at 3:23 PM, Timothy J. Salo wrote: > > What are you using for a debug probe? J-Link EDU. It is identical to one of the more expensive ones, but has a ?non-commercial? license. For working with just ARM devices, there?s also Black Magic Probe. What?s nice is that both of these act as a GDB server, so you can just connect and debug as normal. Most (or all) IDEs seem to know how to speak GDB as well. > It would be nice to have a JTAG device, but I don't want to buy one and > then find that I either bought the wrong thing or that I need to buy > another when I want to work with another processor. Lots of things are ARM these days. JLinks support other stuff, but I haven?t used anything other than arm. ? Chris From joe at begriffs.com Wed Nov 20 06:08:07 2019 From: joe at begriffs.com (Joe Nelson) Date: Wed, 20 Nov 2019 00:08:07 -0600 Subject: Idea for hackerspace equipment: our own buildfarm Message-ID: <20191120060807.ldi6hu5lb32qgw6d@begriffs.com> The PostgreSQL project has what they call the buildfarm [0], which is a collection of machines with various kinds of CPU architecture, compiler, and operating system. They test builds of their software on those machines to make sure their code is portable. What if we kept some machines running at the Assembly warehouse and made them available online via SSH. Create a script that can push a repo on them all, run make, and report the results. Here are some ideas of machines that would do a good job exposing non-portable assumptions: * RISC-V (Tristan just bought some Vegaboards [1]) * Arduino (16-bit, Harvard architecture) * POWER9 * Atmel AVR32 (32-bit, big endian) * Analog Devices' SHARC processor family (CHAR_BIT = 32) * Intel 80386 (segmented memory) We could point subdomains at them like {riscv,arduino,power9,atmel,sharc,386}.farm.asmbli.net Anyone have suggestions for other hardware that would be good for the farm? Even having a windows box would be useful because I don't use that crap but it's nice to have for testing. If we want to run a C programming course from the coworking space we could have students run their programs on all these machines to help them understand C's "abstract machine model" rather than getting too comfortable with a given architecture. 0: https://buildfarm.postgresql.org/cgi-bin/show_members.pl 1: https://vegaboards.com From joe at begriffs.com Wed Nov 20 06:22:54 2019 From: joe at begriffs.com (Joe Nelson) Date: Wed, 20 Nov 2019 00:22:54 -0600 Subject: irc bouncer In-Reply-To: <20191116022332.GC87040@begriffs.com> References: <20191116022332.GC87040@begriffs.com> Message-ID: <20191120062254.nbpfhwv5f32wz3z4@begriffs.com> Ah crap, looks like someone just beat me to finishing this idea https://code.causal.agency/june/pounce From nompelis at nobelware.com Wed Nov 20 16:20:06 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Wed, 20 Nov 2019 16:20:06 +0000 Subject: Idea for hackerspace equipment: our own buildfarm In-Reply-To: <20191120060807.ldi6hu5lb32qgw6d@begriffs.com> References: <20191120060807.ldi6hu5lb32qgw6d@begriffs.com> Message-ID: <20191120162006.GA19178@nobelware.com> Great idea. How much of this can be virtualized or cross-compiled and run in emulators? Baremetal is something most people move away from unless they have reason to work with it. I see baremetal as what one needs in order to test peripherals and software that uses peripherals. In what I propose there is the learning of emulation/virtualization aspect as well, and requires limited real hardware if at all. Additional idea. Say we have a system or a collection of systems that are running bare-metal style, or a bare-metal server that is virtualizing or emulating all these architectures. It makes no sense (to a hippy and planet loving person like me) to have it run power through it when it is not being used. How about we build the abstraction where a low-power system (say RPi or microcontroller) is online and acts as its portal, which is also a management engine for it? Say a user wants to go run some testing on Saturday night, because they have no personal life, they connect to the RPi, ask it to bring up the system, and then they use it. When done, they ask the RPi to shut it down. This alone sounds like an interesting project to me. From j3s at c3f.net Wed Nov 20 23:56:03 2019 From: j3s at c3f.net (Jes) Date: Wed, 20 Nov 2019 17:56:03 -0600 Subject: Idea for hackerspace equipment: our own buildfarm In-Reply-To: <20191120162006.GA19178@nobelware.com> Message-ID: On Wed Nov 20, 2019 at 4:20 PM Ioannis Nompelis wrote: > How much of this can be virtualized or cross-compiled and run > in emulators? It is my understanding that none of it can be virtualized, but some of it may be capable of being emulated. It's also my understanding that emulation can result in some inconsistencies that we could avoid by using real hardware - perhaps it'd be best to find some low power options? > It makes no sense (to a hippy and planet > loving person like me) to have it run power through it when it is not being > used. Many devices support wake-on-lan, perhaps we could seek devices that conform to this standard? That way the build server could "wake" its targets, run the builds, and put them to sleep? Would make for an interesting project! j3s From j3s at c3f.net Thu Nov 21 02:58:30 2019 From: j3s at c3f.net (Jes) Date: Wed, 20 Nov 2019 20:58:30 -0600 Subject: irc bouncer In-Reply-To: <20191120062254.nbpfhwv5f32wz3z4@begriffs.com> Message-ID: For what it's worth, the same person also develops a killer IRC client called catgirl, also hosted at the same url. Does this mean you're halting progress on your IRC bouncer? I think there's value in creating it. From nompelis at nobelware.com Thu Nov 21 06:42:09 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Thu, 21 Nov 2019 06:42:09 +0000 Subject: irc bouncer In-Reply-To: References: <20191120062254.nbpfhwv5f32wz3z4@begriffs.com> Message-ID: <20191121064209.GA21122@nobelware.com> I vote: "finish the project" From joe at begriffs.com Thu Nov 21 06:55:44 2019 From: joe at begriffs.com (Joe Nelson) Date: Thu, 21 Nov 2019 00:55:44 -0600 Subject: irc bouncer In-Reply-To: References: <20191120062254.nbpfhwv5f32wz3z4@begriffs.com> Message-ID: <20191121065544.p6rfriysivralgfc@begriffs.com> > Does this mean you're halting progress on your IRC bouncer? I think > there's value in creating it. No, not halting progress. I'm going to get mine working still for learning purposes. I generally try to finish projects that I start. From joe at begriffs.com Thu Nov 21 06:59:19 2019 From: joe at begriffs.com (Joe Nelson) Date: Thu, 21 Nov 2019 00:59:19 -0600 Subject: Idea for hackerspace equipment: our own buildfarm In-Reply-To: <20191120162006.GA19178@nobelware.com> References: <20191120060807.ldi6hu5lb32qgw6d@begriffs.com> <20191120162006.GA19178@nobelware.com> Message-ID: <20191121065919.7evf5rqjd4tbol2c@begriffs.com> Ioannis Nompelis wrote: > It makes no sense (to a hippy and planet loving person like me) to > have it run power through it when it is not being used. How about we > build the abstraction where a low-power system (say RPi or > microcontroller) is online and acts as its portal, which is also a > management engine for it? Could also start super low tech and plug the devices into a power strip with an on/off switch. To use the machines we could send an email asking someone to turn on the power. :) From nompelis at nobelware.com Thu Nov 21 17:44:46 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Thu, 21 Nov 2019 17:44:46 +0000 Subject: Idea for hackerspace equipment: our own buildfarm In-Reply-To: <20191121065919.7evf5rqjd4tbol2c@begriffs.com> References: <20191120060807.ldi6hu5lb32qgw6d@begriffs.com> <20191120162006.GA19178@nobelware.com> <20191121065919.7evf5rqjd4tbol2c@begriffs.com> Message-ID: <20191121174446.GA14566@nobelware.com> > > Could also start super low tech and plug the devices into a power strip > with an on/off switch. To use the machines we could send an email asking > someone to turn on the power. :) I would like to see a daemon running on our VPS, which runs at elevated permissions. Users log in and request that a machine is turned on. The daemon does it, and notifies the user when the system is up. The daemon keeps track of which machines users have requested that they stay up, as in, users tell the daemon that they are done using them, and the daemon decides whether a shutdown can be done if no other user is using the system. Fun project, hardware, software, network, and privilege centric. From dave at 19a6.net Fri Nov 22 01:02:55 2019 From: dave at 19a6.net (Dave Bucklin) Date: Thu, 21 Nov 2019 19:02:55 -0600 Subject: Idea for hackerspace equipment: our own buildfarm In-Reply-To: <20191121065919.7evf5rqjd4tbol2c@begriffs.com> References: <20191120060807.ldi6hu5lb32qgw6d@begriffs.com> <20191120162006.GA19178@nobelware.com> <20191121065919.7evf5rqjd4tbol2c@begriffs.com> Message-ID: <20191122010255.GA8090@19a6.tech> On Thu, Nov 21, 2019 at 12:59:19AM -0600, Joe Nelson wrote: > Ioannis Nompelis wrote: > > It makes no sense (to a hippy and planet loving person like me) to > > have it run power through it when it is not being used. How about we > > build the abstraction where a low-power system (say RPi or > > microcontroller) is online and acts as its portal, which is also a > > management engine for it? > > Could also start super low tech and plug the devices into a power strip > with an on/off switch. To use the machines we could send an email asking > someone to turn on the power. :) Or use one of those wall timers. That takes me back. From joe at begriffs.com Fri Nov 22 03:53:45 2019 From: joe at begriffs.com (Joe Nelson) Date: Thu, 21 Nov 2019 21:53:45 -0600 Subject: Qwertywords Message-ID: <20191122035345.GL87040@begriffs.com> My username, begriffs, kind of sucks to type. The left hand has to go all over and the right hand only gets the i. Made me wonder what the nicest words are, at least under the abomination that is qwerty. Might be good for domain names, usernames, etc: https://github.com/begriffs/qwertywords To pull some words out of the a's: andy and angie angle an apricot Maybe you have suggestions to refine the heuristic. From nompelis at nobelware.com Fri Nov 22 04:09:35 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Fri, 22 Nov 2019 04:09:35 +0000 Subject: Qwertywords In-Reply-To: <20191122035345.GL87040@begriffs.com> References: <20191122035345.GL87040@begriffs.com> Message-ID: <20191122040935.GA7898@nobelware.com> On this topic, try to type "power". POWER power power power power power power. That last hit of the "R" makes me happy. POWER. From j3s at c3f.net Fri Nov 22 04:30:29 2019 From: j3s at c3f.net (j3s) Date: Thu, 21 Nov 2019 22:30:29 -0600 Subject: Qwertywords In-Reply-To: <20191122035345.GL87040@begriffs.com> References: <20191122035345.GL87040@begriffs.com> Message-ID: <272EF39D-171D-4319-ABBD-B3DD75A7BA6F@c3f.net> By the time you hit ?ffs? it?s relevant. :) From dave at 19a6.net Fri Nov 22 12:04:38 2019 From: dave at 19a6.net (Dave Bucklin) Date: Fri, 22 Nov 2019 06:04:38 -0600 Subject: Qwertywords In-Reply-To: <20191122035345.GL87040@begriffs.com> References: <20191122035345.GL87040@begriffs.com> Message-ID: <20191122120438.GA19024@19a6.tech> On Thu, Nov 21, 2019 at 09:53:45PM -0600, Joe Nelson wrote: > My username, begriffs, kind of sucks to type. The left hand has to go > all over and the right hand only gets the i. Made me wonder what the > nicest words are, at least under the abomination that is qwerty. > > Might be good for domain names, usernames, etc: > > https://github.com/begriffs/qwertywords > > To pull some words out of the a's: > > andy and angie angle an apricot > > Maybe you have suggestions to refine the heuristic. I believe this was a consideration for some versions of the diceware wordlist. I have to change my password somewhat frequently at work, and I keep the EFF wordlist on my phone in termux. I use shuf References: <20191122035345.GL87040@begriffs.com> <20191122120438.GA19024@19a6.tech> Message-ID: <602a7a92-bdb6-8582-d028-72d763b062e5@uribe.cc> ?> I keep the EFF wordlist on my phone in termux. I use ?> ?? shuf References: <20191122035345.GL87040@begriffs.com> <20191122120438.GA19024@19a6.tech> Message-ID: On 22/11/2019 06:04, Dave Bucklin wrote: > On Thu, Nov 21, 2019 at 09:53:45PM -0600, Joe Nelson wrote: >> My username, begriffs, kind of sucks to type. The left hand has to go >> all over and the right hand only gets the i. Made me wonder what the >> nicest words are, at least under the abomination that is qwerty. >> >> Might be good for domain names, usernames, etc: >> >> https://github.com/begriffs/qwertywords >> >> To pull some words out of the a's: >> >> andy and angie angle an apricot >> >> Maybe you have suggestions to refine the heuristic. > > I believe this was a consideration for some versions of the diceware > wordlist. I have to change my password somewhat frequently at work, and > I keep the EFF wordlist on my phone in termux. I use > shuf to get some candidate words and choose those that are least annoying to > type. > You can't just change the number at the end like most corporate password change policys? From dklann at grunch.org Fri Nov 22 17:15:21 2019 From: dklann at grunch.org (David Klann) Date: Fri, 22 Nov 2019 11:15:21 -0600 Subject: Idea for hackerspace equipment: our own buildfarm In-Reply-To: <20191122010255.GA8090@19a6.tech> References: <20191120060807.ldi6hu5lb32qgw6d@begriffs.com> <20191120162006.GA19178@nobelware.com> <20191121065919.7evf5rqjd4tbol2c@begriffs.com> <20191122010255.GA8090@19a6.tech> Message-ID: On Thu, 2019-11-21 at 19:02 -0600, Dave Bucklin wrote: > On Thu, Nov 21, 2019 at 12:59:19AM -0600, Joe Nelson wrote: > > Ioannis Nompelis wrote: > > > It makes no sense (to a hippy and planet loving person like me) to > > > have it run power through it when it is not being used. How about we > > > build the abstraction where a low-power system (say RPi or > > > microcontroller) is online and acts as its portal, which is also a > > > management engine for it? > > > > Could also start super low tech and plug the devices into a power strip > > with an on/off switch. To use the machines we could send an email asking > > someone to turn on the power. :) > > Or use one of those wall timers. That takes me back. First, it was great to meet some of you in person last week at Savannah's and Tristan's place! I hope to spend more time with you all soon! I'm eager to learn more about software defined radio and other things happening in the Twin Cities. I'm enjoying the back and forth on this topic! I love the low-tech solutions, and I also kinda like the idea of building something of a Rube Goldberg to make it as messy as possible! :) At minimum (from a Goldberg perspective), I can see an rPi controlling a relay connected to line voltage to turn AC power on and off. I recently bought a Schneider Electric solid-state relay (part # 6210AXXSZS- DC3) to do just this for a different application. Turns out I didn't need it, so it's just sitting on my desk waiting for a good application. It takes 3 to 30 VDC input and can switch 24 to 240 VAC. I'd love to contribute to the project if anyone wants to work on taking this to the next step... ~David From dave at 19a6.net Fri Nov 22 17:36:59 2019 From: dave at 19a6.net (Dave Bucklin) Date: Fri, 22 Nov 2019 11:36:59 -0600 Subject: Qwertywords In-Reply-To: References: <20191122035345.GL87040@begriffs.com> <20191122120438.GA19024@19a6.tech> Message-ID: <62061E45-1545-4157-8BAA-E0FD6B2AEA0C@19a6.net> On November 22, 2019 8:27:23 AM CST, pstelzig wrote: > >You can't just change the number at the end like most corporate >password >change policys? The number at the end stays the same. From dave at 19a6.net Fri Nov 22 17:54:39 2019 From: dave at 19a6.net (Dave Bucklin) Date: Fri, 22 Nov 2019 11:54:39 -0600 Subject: GNU coreutils In-Reply-To: <602a7a92-bdb6-8582-d028-72d763b062e5@uribe.cc> References: <20191122035345.GL87040@begriffs.com> <20191122120438.GA19024@19a6.tech> <602a7a92-bdb6-8582-d028-72d763b062e5@uribe.cc> Message-ID: On November 22, 2019 7:46:18 AM CST, Mauricio Uribe wrote: > > ?> I keep the EFF wordlist on my phone in termux. I use > > ?> ?? shuf > >How have i never heard of the "shuf" command/tool!?!? I had to look it >up to learn that it is (according to wikipedia), "...included in the >textutils package of GNU Core Utilities...". Quite nifty of a utility! > >This is why i really like this mailing list - I'm always learning new >things!? Thanks for sharing! > >- mauricio One could spend many hours learning how all these things work [0]. I dug into the code of cut to see how it used the ranges passed in the -f option and had my mind blown. [0]: https://en.m.wikipedia.org/wiki/List_of_GNU_Core_Utilities_commands From nicholasdrozd at gmail.com Fri Nov 22 18:30:08 2019 From: nicholasdrozd at gmail.com (Nicholas Drozd) Date: Fri, 22 Nov 2019 12:30:08 -0600 Subject: Qwertywords In-Reply-To: <20191122035345.GL87040@begriffs.com> References: <20191122035345.GL87040@begriffs.com> Message-ID: "begriffs" is unbalanced, but it still places most of the load on the strong fingers, index and middle. If your name was "Maxwell Assad" then you would have a problem, because that's mostly weak fingers, ring and pinky. For a real challenge, try typing "sad ass wax" ten times fast. From j3s at c3f.net Fri Nov 22 19:55:09 2019 From: j3s at c3f.net (j3s) Date: Fri, 22 Nov 2019 13:55:09 -0600 Subject: Qwertywords In-Reply-To: References: Message-ID: <6F5A8FEA-F88A-4EEF-A0F4-DEED5565C900@c3f.net> This is the P90x of typing. From june at causal.agency Fri Nov 22 22:57:06 2019 From: june at causal.agency (June Bug) Date: Fri, 22 Nov 2019 17:57:06 -0500 Subject: Hello! Message-ID: Hi all. I?m the author of , which came up here recently. Joe wrote to me about the list, so here I am :) I like C, FreeBSD, IRC and would like to use email more! From dave at 19a6.net Fri Nov 22 23:45:28 2019 From: dave at 19a6.net (Dave Bucklin) Date: Fri, 22 Nov 2019 17:45:28 -0600 Subject: Hello! In-Reply-To: References: Message-ID: On November 22, 2019 4:57:06 PM CST, June Bug wrote: >Hi all. I?m the author of , >which came up here recently. Joe wrote to me about the list, so >here I am :) I like C, FreeBSD, IRC and would like to use email >more! Welcome! We're honored to have you. From j3s at c3f.net Sat Nov 23 00:09:39 2019 From: j3s at c3f.net (Jes) Date: Fri, 22 Nov 2019 18:09:39 -0600 Subject: Hello! In-Reply-To: Message-ID: Ohai, Welcome! Ever since this mailing list mentioned pounce, I've been using catgirl as my everyday IRC client and enjoy it very much. Thanks for creating it! From june at causal.agency Sat Nov 23 00:59:49 2019 From: june at causal.agency (June Bug) Date: Fri, 22 Nov 2019 19:59:49 -0500 Subject: Hello! In-Reply-To: References: Message-ID: > Ever since this mailing list mentioned pounce, I've been using catgirl > as my everyday IRC client and enjoy it very much. Thanks for creating > it! I?m glad you like it, but oh jeez, while writing and more thoroughly testing pounce I realized how many things are subtly broken in catgirl. (For one, SASL authentication is a race condition whether it succeeds or not.) I really need to go back and update it with code from pounce at some point. From mxu at uribe.cc Sat Nov 23 15:36:30 2019 From: mxu at uribe.cc (Mauricio Uribe) Date: Sat, 23 Nov 2019 10:36:30 -0500 Subject: Hello! In-Reply-To: References: Message-ID: <24ffb7a9-a2ad-2607-b62c-9654c0f711c6@uribe.cc> On 11/22/19 5:57 PM, June Bug wrote: > Hi all. I?m the author of , > which came up here recently. Joe wrote to me about the list, so > here I am :) I like C, FreeBSD, IRC and would like to use email > more! Hello and welcome June Bug! From nompelis at nobelware.com Sat Nov 23 16:35:49 2019 From: nompelis at nobelware.com (Ioannis Nompelis) Date: Sat, 23 Nov 2019 16:35:49 +0000 Subject: Hello! In-Reply-To: <24ffb7a9-a2ad-2607-b62c-9654c0f711c6@uribe.cc> References: <24ffb7a9-a2ad-2607-b62c-9654c0f711c6@uribe.cc> Message-ID: <20191123163549.GA27273@nobelware.com> Oh! Welcome! We are legit now, and we extend across the borders (Montreal is a nice town). I have already learned from you; I did not know of "= { .member = stuff, ...};" to hard-initialize structs, for example. I also liked the concise reading from a socket in catgirl. (No, I do not get up in the morning and look at code!) Terminal-oriented, writing C code for fun and sharing knowledge... sounds like you have found the right group and I am looking forward to learn more from you! One more time, thsnks to Joe for bringing all of us together. From nicholasdrozd at gmail.com Sun Nov 24 02:32:18 2019 From: nicholasdrozd at gmail.com (Nicholas Drozd) Date: Sat, 23 Nov 2019 20:32:18 -0600 Subject: The most evil macro Message-ID: I just posted a detailed write-up about this little coding challenge. It includes several subtly different approaches, plus some basic background for those unfamiliar with Lisp macros, and a bunch of discussion questions. https://nickdrozd.github.io/2019/11/23/flaky-if.html From ryu.powderhorn at cottageindustries.build Sun Nov 24 21:56:13 2019 From: ryu.powderhorn at cottageindustries.build (Tristan Powderhorn) Date: Sun, 24 Nov 2019 15:56:13 -0600 Subject: Idea for hackerspace equipment: our own buildfarm In-Reply-To: References: <20191120060807.ldi6hu5lb32qgw6d@begriffs.com> <20191120162006.GA19178@nobelware.com> <20191121065919.7evf5rqjd4tbol2c@begriffs.com> <20191122010255.GA8090@19a6.tech> Message-ID: > I recently bought a Schneider Electric solid-state relay (part # 6210AXXSZS- > DC3) to do just this for a different application. Turns out I didn't need it, > so it's just sitting on my desk waiting for a good application. It takes 3 to > 30 VDC input and can switch 24 to 240 VAC. I'd love to contribute to the > project if anyone wants to work on taking this to the next step... This is really cool! I've been playing around with Wake-On-Lan with my x86 boxes and rPi's. I'm not sure what all will support WoL though. The relay would be a great start for anything that doesn't support WoL at least as well. On Fri, Nov 22, 2019 at 11:15 AM David Klann wrote: > > On Thu, 2019-11-21 at 19:02 -0600, Dave Bucklin wrote: > > On Thu, Nov 21, 2019 at 12:59:19AM -0600, Joe Nelson wrote: > > > Ioannis Nompelis wrote: > > > > It makes no sense (to a hippy and planet loving person like me) to > > > > have it run power through it when it is not being used. How about we > > > > build the abstraction where a low-power system (say RPi or > > > > microcontroller) is online and acts as its portal, which is also a > > > > management engine for it? > > > > > > Could also start super low tech and plug the devices into a power strip > > > with an on/off switch. To use the machines we could send an email asking > > > someone to turn on the power. :) > > > > Or use one of those wall timers. That takes me back. > > First, it was great to meet some of you in person last week at Savannah's and > Tristan's place! I hope to spend more time with you all soon! I'm eager to > learn more about software defined radio and other things happening in the Twin > Cities. > > I'm enjoying the back and forth on this topic! I love the low-tech solutions, > and I also kinda like the idea of building something of a Rube Goldberg to > make it as messy as possible! :) At minimum (from a Goldberg perspective), I > can see an rPi controlling a relay connected to line voltage to turn AC power > on and off. > > I recently bought a Schneider Electric solid-state relay (part # 6210AXXSZS- > DC3) to do just this for a different application. Turns out I didn't need it, > so it's just sitting on my desk waiting for a good application. It takes 3 to > 30 VDC input and can switch 24 to 240 VAC. I'd love to contribute to the > project if anyone wants to work on taking this to the next step... > > ~David > From pmooney at pfmooney.com Sun Nov 24 22:11:50 2019 From: pmooney at pfmooney.com (Patrick Mooney) Date: Sun, 24 Nov 2019 16:11:50 -0600 Subject: Hello! In-Reply-To: <20191123163549.GA27273@nobelware.com> References: <24ffb7a9-a2ad-2607-b62c-9654c0f711c6@uribe.cc> <20191123163549.GA27273@nobelware.com> Message-ID: <74e7e567-efeb-4292-9f05-c6a192023972@www.fastmail.com> On Sat, Nov 23, 2019, at 10:35, Ioannis Nompelis wrote: > I have already learned from you; I did not know of "= { .member = stuff, ...};" > to hard-initialize structs, for example. I also liked the concise reading from > a socket in catgirl. (No, I do not get up in the morning and look at code!) IIRC, that's a C99-ism, so depending on the codebase and/or compiler, it's not always an option. (It's definitely nice to have, though.) -- Patrick Mooney From j3s at c3f.net Wed Nov 27 15:42:22 2019 From: j3s at c3f.net (j3s) Date: Wed, 27 Nov 2019 09:42:22 -0600 Subject: Keyboard preferences Message-ID: Hi all! I've always been interested in keyboards. As a kid I picked up one of those neon-lit rubber-dome types with a Cyborg on it. I've been through various types & styles of keyboards, and I'm going to lay my opinions out: 1. The smaller the better, unless you move the enter/escape/backspace key - that's taking it too far. 2. Topre switches feel the best, but aren't great for long days typing. I had a lot of wrist strain problems using them for long hours. 3. Keypads are awful, cut em off. In fact, throw them into the ocean. 4. I've found that cherry red switches are smooth and kind to my wrists, but aren't forgiving of typos. All that being said, my favorite keyboard at the moment is the Keychron K2 with red switches. I'm curious if anyone on this list has keyboard opinions or preferences that they'd be willing to share? j3s From andrew at apastron.io Wed Nov 27 16:27:13 2019 From: andrew at apastron.io (Andrew Fischer) Date: Wed, 27 Nov 2019 10:27:13 -0600 Subject: Keyboard preferences In-Reply-To: Message-ID: On Wed Nov 27, 2019 at 9:42 AM j3s wrote: > 1. The smaller the better, unless you move the enter/escape/backspace > key - that's taking it too far. > > 3. Keypads are awful, cut em off. In fact, throw them into the ocean. Definitely agree with these points. I've never missed the numpad. But I'm very hardwired for the escape key, plus my hands are large enough it's never been difficult to use. > 4. I've found that cherry red switches are smooth and kind to my wrists, > but aren't forgiving of typos. Most of programming circles uses mechanical keyboards, and switch preference varies a lot. Cherry MX Blues are my top choice, others like browns, reds, or halo clears. Always wanted to try Cherry MX black but haven't had the chance yet. > All that being said, my favorite keyboard at the moment is the > Keychron K2 with red switches. > > I'm curious if anyone on this list has keyboard opinions or > preferences that they'd be willing to share? Currently typing on an older Das Keyboard ultimate 4C. Blank keys, no numpad. While the blank keys is admittedly a bit of a meme, I've been that way for years now and it did finally wean me completely from looking. (Plus family doesn't even ask to use my computer.) -Andrew From hello at robertdherb.com Wed Nov 27 17:51:56 2019 From: hello at robertdherb.com (Robbie H) Date: Wed, 27 Nov 2019 11:51:56 -0600 Subject: Keyboard preferences In-Reply-To: References: Message-ID: <20191127115156.4dafa25c@phoebe.vault-423.qualityretro.net> On Wed, 27 Nov 2019 09:42:22 -0600 "j3s" wrote: > I'm curious if anyone on this list has keyboard opinions or > preferences that they'd be willing to share? Oh, I definitely have keyboard opinions, but they're very different from the way most people are opinionated about keyboards. One of my primary differences is that I think membrane keyboards are fine. Yes, at home I use a mechanical, but at work, I use a WYSE KU-8933. I think keyboards, even membrane keyboards, should have a click on actuation. My home keyboard uses knock-off cherry blue switches, and the aforementioned WYSE keyboard is about as loud as a membrane keyboard can be. As an aside: I work in IT, and it's helpful to me when people I'm talking to on the phone can hear my typing. They know I'm busy and not just ignoring them. I do not care for ultra compact keyboards. A keyboard should have a standard QWERTY layout, and even better if it's the full 102 keys. I can live without the numberpad, but doing data entry, it's necessary. I can type an IP or MAC address in half a second with a tenkey, but must slow down to use the number rows. That said, not all keyboards need them. I prefer laptops not have them, so I type centered. Anyway, I think keyboard design peaked in the 90s, with boards that were cost-effective, but still felt good to type on. Since then, the market has moved on to ultra cheap membrane keyboards that are beyond awful, and ultra expensive mechanical keyboards for people who care. rdh Oh PS: Cell phones should have physical buttons. Even if it's just the numberpad, but better if it's a full qwerty keyboard like Blackberries of yore! From drewbenson at netjack.com Wed Nov 27 18:41:55 2019 From: drewbenson at netjack.com (Andrew Benson) Date: Wed, 27 Nov 2019 12:41:55 -0600 Subject: Keyboard preferences In-Reply-To: <20191127115156.4dafa25c@phoebe.vault-423.qualityretro.net> References: <20191127115156.4dafa25c@phoebe.vault-423.qualityretro.net> Message-ID: <9106071F-3942-420E-B504-E5A7030649BD@netjack.com> One of the greatest and also most annoying keyboards I ever used was the old IBM Model M (https://deskthority.net/viewtopic.php?t=11305). It was by far the loudest keyboard I?ve ever used, which was extremely annoying yet also rewarding, but I could type lightning fast on it with a very low error rate. Also, it was indestructible. If you punched it, keycaps would fly off, but it?d be fine. If you grabbed it by the end and slammed it onto the table as hard as you could in a fit of anger, again, lots of keycaps would fly off, but it would be fine. I think if you drove over it with your truck, you could probably just hose it down to get the dirt off, and it would be good to go. There are a TON of terrible keyboards out there. Mushy keyboards are the ones I?m talking about. That includes almost every no-name, and some older Dell-branded ones. I really like the Apple Magic Keyboard 2 (https://www.apple.com/shop/product/MLA22LL/A/magic-keyboard-us-english). I like that it is physically small, but key spacing is good. Key travel is good ? about 1.25mm. This is far less than most of the ?premium? super-clicky keyboards, but it works well. I now feel like the full 3mm-5mm travel keyboards, like cherry mx etc are pretty tiring to type on. The only issue is that the arrow keys are missing the inverted-T layout. It?s bluetooth and battery lasts about a couple months between charges. Apple has an extended version of the magic keyboard which includes a numeric keypad. I thought I?d love it, but they didn?t just extended it, they screwed around with the key spacing and some sizes, and it?s a significantly worse keyboard than the regular one. > On Nov 27, 2019, at 11:51 AM, Robbie H wrote: > > On Wed, 27 Nov 2019 09:42:22 -0600 > "j3s" wrote: >> I'm curious if anyone on this list has keyboard opinions or >> preferences that they'd be willing to share? > From remexre at protonmail.com Wed Nov 27 18:49:27 2019 From: remexre at protonmail.com (remexre) Date: Wed, 27 Nov 2019 18:49:27 +0000 Subject: Keyboard preferences In-Reply-To: <9106071F-3942-420E-B504-E5A7030649BD@netjack.com> References: <20191127115156.4dafa25c@phoebe.vault-423.qualityretro.net> <9106071F-3942-420E-B504-E5A7030649BD@netjack.com> Message-ID: I'm using https://www.pckeyboard.com/page/product/40PSA right now -- same tech as the Model M, but with a Sun layout, which is a lot more convenient IMO. Only issue is, I have to rebind all my other keyboards to match it or else I make a ton of typos now. ??????? Original Message ??????? On Wednesday, November 27, 2019 12:41 PM, Andrew Benson wrote: > One of the greatest and also most annoying keyboards I ever used was the old IBM Model M (https://deskthority.net/viewtopic.php?t=11305). It was by far the loudest keyboard I?ve ever used, which was extremely annoying yet also rewarding, but I could type lightning fast on it with a very low error rate. Also, it was indestructible. If you punched it, keycaps would fly off, but it?d be fine. If you grabbed it by the end and slammed it onto the table as hard as you could in a fit of anger, again, lots of keycaps would fly off, but it would be fine. I think if you drove over it with your truck, you could probably just hose it down to get the dirt off, and it would be good to go. > > There are a TON of terrible keyboards out there. Mushy keyboards are the ones I?m talking about. That includes almost every no-name, and some older Dell-branded ones. > > I really like the Apple Magic Keyboard 2 (https://www.apple.com/shop/product/MLA22LL/A/magic-keyboard-us-english). I like that it is physically small, but key spacing is good. Key travel is good ? about 1.25mm. This is far less than most of the ?premium? super-clicky keyboards, but it works well. I now feel like the full 3mm-5mm travel keyboards, like cherry mx etc are pretty tiring to type on. The only issue is that the arrow keys are missing the inverted-T layout. It?s bluetooth and battery lasts about a couple months between charges. > > Apple has an extended version of the magic keyboard which includes a numeric keypad. I thought I?d love it, but they didn?t just extended it, they screwed around with the key spacing and some sizes, and it?s a significantly worse keyboard than the regular one. > > > On Nov 27, 2019, at 11:51 AM, Robbie H hello at robertdherb.com wrote: > > On Wed, 27 Nov 2019 09:42:22 -0600 > > "j3s" j3s at c3f.net wrote: > > > > > I'm curious if anyone on this list has keyboard opinions or > > > preferences that they'd be willing to share? From remexre at protonmail.com Wed Nov 27 18:50:30 2019 From: remexre at protonmail.com (remexre) Date: Wed, 27 Nov 2019 18:50:30 +0000 Subject: Keyboard preferences In-Reply-To: References: <20191127115156.4dafa25c@phoebe.vault-423.qualityretro.net> <9106071F-3942-420E-B504-E5A7030649BD@netjack.com> Message-ID: Oh, and I also use https://github.com/alols/xcape to make the control key an escape key when tapped. ??????? Original Message ??????? On Wednesday, November 27, 2019 12:49 PM, remexre wrote: > I'm using https://www.pckeyboard.com/page/product/40PSA right now -- same tech as the Model M, but with a Sun layout, which is a lot more convenient IMO. > > Only issue is, I have to rebind all my other keyboards to match it or else I make a ton of typos now. > > ??????? Original Message ??????? > On Wednesday, November 27, 2019 12:41 PM, Andrew Benson drewbenson at netjack.com wrote: > > > One of the greatest and also most annoying keyboards I ever used was the old IBM Model M (https://deskthority.net/viewtopic.php?t=11305). It was by far the loudest keyboard I?ve ever used, which was extremely annoying yet also rewarding, but I could type lightning fast on it with a very low error rate. Also, it was indestructible. If you punched it, keycaps would fly off, but it?d be fine. If you grabbed it by the end and slammed it onto the table as hard as you could in a fit of anger, again, lots of keycaps would fly off, but it would be fine. I think if you drove over it with your truck, you could probably just hose it down to get the dirt off, and it would be good to go. > > There are a TON of terrible keyboards out there. Mushy keyboards are the ones I?m talking about. That includes almost every no-name, and some older Dell-branded ones. > > I really like the Apple Magic Keyboard 2 (https://www.apple.com/shop/product/MLA22LL/A/magic-keyboard-us-english). I like that it is physically small, but key spacing is good. Key travel is good ? about 1.25mm. This is far less than most of the ?premium? super-clicky keyboards, but it works well. I now feel like the full 3mm-5mm travel keyboards, like cherry mx etc are pretty tiring to type on. The only issue is that the arrow keys are missing the inverted-T layout. It?s bluetooth and battery lasts about a couple months between charges. > > Apple has an extended version of the magic keyboard which includes a numeric keypad. I thought I?d love it, but they didn?t just extended it, they screwed around with the key spacing and some sizes, and it?s a significantly worse keyboard than the regular one. > > > > > On Nov 27, 2019, at 11:51 AM, Robbie H hello at robertdherb.com wrote: > > > On Wed, 27 Nov 2019 09:42:22 -0600 > > > "j3s" j3s at c3f.net wrote: > > > > > > > I'm curious if anyone on this list has keyboard opinions or > > > > preferences that they'd be willing to share? From drewbenson at netjack.com Wed Nov 27 18:57:45 2019 From: drewbenson at netjack.com (Andrew Benson) Date: Wed, 27 Nov 2019 12:57:45 -0600 Subject: Keyboard preferences In-Reply-To: References: Message-ID: <4070B619-206C-4A01-884A-36BC08476896@netjack.com> I liked the sun layout with control to the left of the A key. I actually liked some of the sun keyboards too but don?t remember which ones anymore. Sent from my iPhone > On Nov 27, 2019, at 12:49 PM, remexre wrote: > ?I'm using https://www.pckeyboard.com/page/product/40PSA right now -- same tech as the Model M, but with a Sun layout, which is a lot more convenient IMO. Only issue is, I have to rebind all my other keyboards to match it or else I make a ton of typos now. ??????? Original Message ??????? > On Wednesday, November 27, 2019 12:41 PM, Andrew Benson wrote: > > One of the greatest and also most annoying keyboards I ever used was the old IBM Model M (https://deskthority.net/viewtopic.php?t=11305). It was by far the loudest keyboard I?ve ever used, which was extremely annoying yet also rewarding, but I could type lightning fast on it with a very low error rate. Also, it was indestructible. If you punched it, keycaps would fly off, but it?d be fine. If you grabbed it by the end and slammed it onto the table as hard as you could in a fit of anger, again, lots of keycaps would fly off, but it would be fine. I think if you drove over it with your truck, you could probably just hose it down to get the dirt off, and it would be good to go. > > There are a TON of terrible keyboards out there. Mushy keyboards are the ones I?m talking about. That includes almost every no-name, and some older Dell-branded ones. > > I really like the Apple Magic Keyboard 2 (https://www.apple.com/shop/product/MLA22LL/A/magic-keyboard-us-english). I like that it is physically small, but key spacing is good. Key travel is good ? about 1.25mm. This is far less than most of the ?premium? super-clicky keyboards, but it works well. I now feel like the full 3mm-5mm travel keyboards, like cherry mx etc are pretty tiring to type on. The only issue is that the arrow keys are missing the inverted-T layout. It?s bluetooth and battery lasts about a couple months between charges. > > Apple has an extended version of the magic keyboard which includes a numeric keypad. I thought I?d love it, but they didn?t just extended it, they screwed around with the key spacing and some sizes, and it?s a significantly worse keyboard than the regular one. > >>> On Nov 27, 2019, at 11:51 AM, Robbie H hello at robertdherb.com wrote: >> On Wed, 27 Nov 2019 09:42:22 -0600 >> "j3s" j3s at c3f.net wrote: >> >>> I'm curious if anyone on this list has keyboard opinions or >>> preferences that they'd be willing to share? From drewbenson at netjack.com Wed Nov 27 18:57:53 2019 From: drewbenson at netjack.com (Andrew Benson) Date: Wed, 27 Nov 2019 12:57:53 -0600 Subject: Keyboard preferences In-Reply-To: References: Message-ID: <3C0742E1-729F-4560-9E6D-3B6F93A2208E@netjack.com> I liked the sun layout with control to the left of the A key. I actually liked some of the sun keyboards too but don?t remember which ones anymore. > > On Nov 27, 2019, at 12:49 PM, remexre wrote: > ?I'm using https://www.pckeyboard.com/page/product/40PSA right now -- same tech as the Model M, but with a Sun layout, which is a lot more convenient IMO. Only issue is, I have to rebind all my other keyboards to match it or else I make a ton of typos now. ??????? Original Message ??????? > On Wednesday, November 27, 2019 12:41 PM, Andrew Benson wrote: > > One of the greatest and also most annoying keyboards I ever used was the old IBM Model M (https://deskthority.net/viewtopic.php?t=11305). It was by far the loudest keyboard I?ve ever used, which was extremely annoying yet also rewarding, but I could type lightning fast on it with a very low error rate. Also, it was indestructible. If you punched it, keycaps would fly off, but it?d be fine. If you grabbed it by the end and slammed it onto the table as hard as you could in a fit of anger, again, lots of keycaps would fly off, but it would be fine. I think if you drove over it with your truck, you could probably just hose it down to get the dirt off, and it would be good to go. > > There are a TON of terrible keyboards out there. Mushy keyboards are the ones I?m talking about. That includes almost every no-name, and some older Dell-branded ones. > > I really like the Apple Magic Keyboard 2 (https://www.apple.com/shop/product/MLA22LL/A/magic-keyboard-us-english). I like that it is physically small, but key spacing is good. Key travel is good ? about 1.25mm. This is far less than most of the ?premium? super-clicky keyboards, but it works well. I now feel like the full 3mm-5mm travel keyboards, like cherry mx etc are pretty tiring to type on. The only issue is that the arrow keys are missing the inverted-T layout. It?s bluetooth and battery lasts about a couple months between charges. > > Apple has an extended version of the magic keyboard which includes a numeric keypad. I thought I?d love it, but they didn?t just extended it, they screwed around with the key spacing and some sizes, and it?s a significantly worse keyboard than the regular one. > >>> On Nov 27, 2019, at 11:51 AM, Robbie H hello at robertdherb.com wrote: >> On Wed, 27 Nov 2019 09:42:22 -0600 >> "j3s" j3s at c3f.net wrote: >> >>> I'm curious if anyone on this list has keyboard opinions or >>> preferences that they'd be willing to share? From dave at 19a6.net Wed Nov 27 19:13:46 2019 From: dave at 19a6.net (Dave Bucklin) Date: Wed, 27 Nov 2019 13:13:46 -0600 Subject: Keyboard preferences In-Reply-To: References: Message-ID: <20191127191346.GA16317@19a6.tech> On Wed, Nov 27, 2019 at 09:42:22AM -0600, j3s wrote: > Hi all! > > I've always been interested in keyboards. As a kid I picked up one of > those neon-lit rubber-dome types with a Cyborg on it. I've been through > various types & styles of keyboards, and I'm going to lay my opinions > out: I just got into custom keyboards in 2016. Along the way, I developed a taste for 60% ANSI layouts, heavy tactile switches, and a custom mapping through QMK. I kinda wish I had fallen in love with the HHKB; it would have made many things much simpler. The "key" elements of the mapping are: * caps lock mapped to backspace when tapped. * caps lock activates a function layer when held * on that function layer, * h,j,k,l mapped to arrow keys * y,u,i,p mapped to home, pg down, pg up, end * media control mappings for play/pause, next/prev, vol+/- * ; mapped to ins, ' mapped to del Because these mappings are in the keyboard's firmware, I have them wherever the keyboard goes. I don't use a numpad but, when you need one, they are a lot better than using the number row. There are lots of outboard numpads now, and building one yourself is feasible. I've also tried a 40% layout and it just didn't work for me. >From my father, I inherited the pack-rat gene. I also developed a fascination with colorful pieces of plastic during childhood. This means that I have a tendency to acquire brightly-colored objects and then store them somewhere. Keycap sets are a drug for someone like me. I'm in recovery, but the temptation is always there. I love Cherry-profile caps. I tried SA caps and they just didn't do it for me, though they are beautiful. Lastly, I have a somewhat-cheap board that I travel with. I plug it into my phone (w/ Vim in Termux) to take notes at the end of each day. These notes are later polished into travelogues that make nice keepsakes. This setup can also replace a laptop in many instances. From drewbenson at netjack.com Wed Nov 27 19:47:51 2019 From: drewbenson at netjack.com (Andrew Benson) Date: Wed, 27 Nov 2019 13:47:51 -0600 Subject: Keyboard preferences In-Reply-To: <20191127191346.GA16317@19a6.tech> References: <20191127191346.GA16317@19a6.tech> Message-ID: What do you mean by a 60% or 40% layout? > > On Nov 27, 2019, at 1:13 PM, Dave Bucklin wrote: > ?On Wed, Nov 27, 2019 at 09:42:22AM -0600, j3s wrote: > Hi all! > > I've always been interested in keyboards. As a kid I picked up one of > those neon-lit rubber-dome types with a Cyborg on it. I've been through > various types & styles of keyboards, and I'm going to lay my opinions > out: I just got into custom keyboards in 2016. Along the way, I developed a taste for 60% ANSI layouts, heavy tactile switches, and a custom mapping through QMK. I kinda wish I had fallen in love with the HHKB; it would have made many things much simpler. The "key" elements of the mapping are: * caps lock mapped to backspace when tapped. * caps lock activates a function layer when held * on that function layer, * h,j,k,l mapped to arrow keys * y,u,i,p mapped to home, pg down, pg up, end * media control mappings for play/pause, next/prev, vol+/- * ; mapped to ins, ' mapped to del Because these mappings are in the keyboard's firmware, I have them wherever the keyboard goes. I don't use a numpad but, when you need one, they are a lot better than using the number row. There are lots of outboard numpads now, and building one yourself is feasible. I've also tried a 40% layout and it just didn't work for me. From my father, I inherited the pack-rat gene. I also developed a fascination with colorful pieces of plastic during childhood. This means that I have a tendency to acquire brightly-colored objects and then store them somewhere. Keycap sets are a drug for someone like me. I'm in recovery, but the temptation is always there. I love Cherry-profile caps. I tried SA caps and they just didn't do it for me, though they are beautiful. Lastly, I have a somewhat-cheap board that I travel with. I plug it into my phone (w/ Vim in Termux) to take notes at the end of each day. These notes are later polished into travelogues that make nice keepsakes. This setup can also replace a laptop in many instances. From june at causal.agency Wed Nov 27 20:14:47 2019 From: june at causal.agency (June Bug) Date: Wed, 27 Nov 2019 15:14:47 -0500 Subject: Keyboard preferences In-Reply-To: References: <20191127191346.GA16317@19a6.tech> Message-ID: > On Nov 27, 2019, at 14:47, Andrew Benson wrote: > > What do you mean by a 60% or 40% layout? Since a standard layout is roughly a hundred something keys, a 60% layout has roughly 60 keys and a 40% layout roughly 40. Typically a 60% layout has no arrow/nav keys and no F keys, folding those into the number row. 40% gets even crazier and I think varies more in what gets folded into what. For me 60% keyboards fit the perfect size that I want a keyboard to take up on my desk while not being too inconvenient to type on. From zach at nor.mn Wed Nov 27 15:51:47 2019 From: zach at nor.mn (Zach Norman) Date: Wed, 27 Nov 2019 09:51:47 -0600 Subject: Keyboard preferences In-Reply-To: Message-ID: <15d369854i51t2eciqiq5kfr.1574869907971@nor.mn> I am a big fan of my Tex Yoda II Zach From mxu at uribe.cc Thu Nov 28 01:48:55 2019 From: mxu at uribe.cc (Mauricio Uribe) Date: Wed, 27 Nov 2019 20:48:55 -0500 Subject: Keyboard preferences In-Reply-To: <9106071F-3942-420E-B504-E5A7030649BD@netjack.com> References: <20191127115156.4dafa25c@phoebe.vault-423.qualityretro.net> <9106071F-3942-420E-B504-E5A7030649BD@netjack.com> Message-ID: <78cfd355-235f-cec5-e8b1-a3fbefc3dc16@uribe.cc> Its funny, I really didn't have an opinion on keyboards until I got my ThinkPad T420 a couple of years ago.? It made me notice how nice the keyboard is compared to many other laptop keyboards. Unfortunately, I now have become a tiny bit pickier about keybaords. On 11/27/19 1:41 PM, Andrew Benson wrote: > One of the greatest and also most annoying keyboards I ever used was the old IBM Model M (https://deskthority.net/viewtopic.php?t=11305). It was by far the loudest keyboard I?ve ever used, which was extremely annoying yet also rewarding... I recall enjoying using the IBM model M years ago...but only recently did i remember having used it (and enjoying it!)...since i guess my mind must've gone blank, and gotten accustomed to so many sucky keyboards...again, until getting my thinkpad t420. >> On Wed, 27 Nov 2019 09:42:22 -0600 >> "j3s" wrote: >>> I'm curious if anyone on this list has keyboard opinions or >>> preferences that they'd be willing to share? I didn't until recently.? But nowadays, i like a nice non-compact, mechanical keyboard.? ;-) From joe at begriffs.com Sat Nov 30 06:46:07 2019 From: joe at begriffs.com (Joe Nelson) Date: Sat, 30 Nov 2019 00:46:07 -0600 Subject: irc bouncer In-Reply-To: <20191121065544.p6rfriysivralgfc@begriffs.com> References: <20191120062254.nbpfhwv5f32wz3z4@begriffs.com> <20191121065544.p6rfriysivralgfc@begriffs.com> Message-ID: <20191130064607.GR87040@begriffs.com> > > Does this mean you're halting progress on your IRC bouncer? I think > > there's value in creating it. > > No, not halting progress. I'm going to get mine working still for > learning purposes. I generally try to finish projects that I start. OK, I made more progress on the project. It's now moving data between both sides, and queueing messages! The code could use some cleanup because there are sections that are kind of repetitive, but I can do that later. I do like using threads. Each thread can have its own straightforward job. I added a readme with instructions for using the program: https://github.com/begriffs/picobounce The next problem is this: my client (hexchat) works great upon first connecting to the bouncer. The bouncer copies all data through verbatim between the upstream server and the client (except for intentionally suppressing client QUIT messages). However if I quit my client and reconnect to the bouncer, the client gets in a weird state. It asks to join some channels, the bouncer passes along the request, but the upstream server doesn't care because the bouncer has already joined them. So the bouncer has no results to pass along to the client. I want to avoid building a copy of the upstream state in the bouncer like which people are active in the channel etc. In order to simulate the results of the join command to the client maybe I could be more lazy. When the client asks to join a channel, perhaps the bouncer can keep track merely that it has already connected to that one, and request the topic and user list from upstream and construct a response from that. I'll also probably want to withhold channel messages from the client until we've done the simulated join. I currently have the bouncer send all queued messages to the client immediately upon successful authentication. This may contribute to why hexchat gets in a weird state, because it's getting channel messages before it has realized it has joined them. I'd be curious if y'all could try the bouncer with your own clients and see how it behaves. Also if June Bug has suggestions for the minimum that bouncers have to do, and what state they need to keep track of. From june at causal.agency Sat Nov 30 23:16:38 2019 From: june at causal.agency (June Bug) Date: Sat, 30 Nov 2019 18:16:38 -0500 Subject: irc bouncer In-Reply-To: <20191130064607.GR87040@begriffs.com> References: <20191120062254.nbpfhwv5f32wz3z4@begriffs.com> <20191121065544.p6rfriysivralgfc@begriffs.com> <20191130064607.GR87040@begriffs.com> Message-ID: <9ACFA2E0-1CCA-4EE6-87D0-A4B61ECECF24@causal.agency> > On Nov 30, 2019, at 01:46, Joe Nelson wrote: > > I'd be curious if y'all could try the bouncer with your own clients and > see how it behaves. Also if June Bug has suggestions for the minimum > that bouncers have to do, and what state they need to keep track of. In my experience you just need to keep track of what channels you?re in (don?t forget handling getting kicked!). Clients expect to get the TOPIC and NAMES replies when joining, and you can just request both of those from the server again when the client reconnects. pounce does that for NAMES but caches topics itself since they?re simple strings that get updated as a whole.