1. 0

    This solves the easy, already-solved part: sending and receiving email with friendly hosts. Now make it so my open-source mail server’s messages arrive in Hotmail mailboxes 100% of the time, and we’ll have something to talk about.

    1. 3

      Are you genuinely suggesting that Hotmail discriminates against open source mail servers?

      Running email server is hard, especially at the scale of Hotmail (and gmail). This is because email sucks and assumes everyone is well-intentioned. Turns out not everyone is, hence the need for many anti-fraud/spam measures. Do you think Hotmail somehow benefits by people losing their legitimate emails? Of course not.

      There was another thread about that a few days ago as well, and I was really taken aback by the lack of understanding about how hard this problem is. I’m not saying that Hotmail always makes the right choices, but they need to walk a pretty tight ropeto balance all interest.

      1. 11

        I am genuinely suggesting that the email cartel – mainly Google and Microsoft at this point – has made it between very difficult or impossible to participate in the SMTP network. The goalposts change constantly, and even when everything is set up by the book (rDNS, SPF, DKIM, etc etc), emails get blackholed.

        I make no assertion that MS cares about the “open source” part. I’m just saying for the people running their own mail servers, which I did from 1998 to 2016, server software is not the pressing issue.

        1. 2

          Could you please share what are you using now instead of running your own? Currently I’m evaluating moving to my own mail servers (seems quite a large hassle).

          I’m in a search (very low effort) since a while to replace my current provider (microsoft), because I’m not happy with the service I’m getting (not primarily the email part, which also has its flaws, but the whole package).

          1. 2

            I signed up for pobox.com. I think I pay $50/year and they handle my five or six small personal domains. I just forward it to gmail, but you could of course handle the destination side yourself (since sending mail is the hard part). I haven’t had a single problem with deliverability since signing up. They have this wacky business model where they charge a reasonable yet small amount for a valuable service. I recommend them.

    1. 1

      Yeah. I have an Ello account too.

      1. 1

        If autovivification is what you want, and you want it bad, there’s always Perl…

        my $a;
        $a->[9]{foo}{bar}[22]{quux} = "tmtowtdi";
        
        1. 1

          Perl autovivification partly fascinated me, partly horrified me.

          It’s absolutely lovely for code golfing.

          It’s a wondrous source of arcane gotchas if you mistype…

          I like the degree of control ruby autovivification gives me.

          1. 4

            Agreed. I’m very up on the idea of getting more languages to run on the BEAM. I miss static types and, frankly, I wish that Rust could compile down to run on the BEAM!

            1. 5

              Yeah, I love Elixir to death, but sometimes I find myself wishing for a real type system. Some folks swear by Dialyzer, but it feels a bit like a cludgy piece of typing duct tape.

              1. 12

                The dynamically-typed nature of Erlang and Elixir and BEAM comes from a design requirement: that the systems built in Erlang can be upgraded at runtime. Strong typing gets quite a bit more complicated when you need to be able to have multiple versions of a type coexist at runtime.

                Side note, this took me a while to absorb when beginning to write Elixir. My instinct was to use structs instead of generic maps for GenServer state, since better-defined types are better, right? But that imposes hard requirements on hot upgrades that wouldn’t have been there if I’d used untyped maps from the start; removing fields from a struct breaks upgrades. This knowledge was somewhere between “esoteric” and “esoteric to Ruby assholes who just showed up, well-known to wonks”. The Erlang Way is a lot more than “let it crash”. :)

                1. 3

                  The dynamically-typed nature of Erlang and Elixir and BEAM comes from a design requirement: that the systems built in Erlang can be upgraded at runtime. Strong typing gets quite a bit more complicated when you need to be able to have multiple versions of a type coexist at runtime

                  Yeah, I really wish there was more type system research going into figuring out how to use them effectively in upgradable, always-on systems, where you might have heterogeneous versions across a cluster. I actually think static types could be super helpful here, but as far as I’m aware there doesn’t seem to be much work put into it.

                  1. 4

                    It’s very difficult. It’s not like nobody tried — https://homepages.inf.ed.ac.uk/wadler/papers/erlang/erlang.pdf

                    And when people talk about “I wish there was a type system” they probably don’t realise that Erlang is very different animal (that can do things other animals have no concepts for). Just bolting on types is not an option (if you want to know what happens if you do so, look at CloudHaskell — you have to have a exact binary for every node in the entire cluster, or else).

                    1. 1

                      Just bolting on types is not an option (if you want to know what happens if you do so, look at CloudHaskell — you have to have a exact binary for every node in the entire cluster, or else).

                      That’s what I mean. I see Cloud Haskell as interesting, but really not the distributed type system I want. It would be super cool to see more new ideas here (or rediscovery of old ones, if they’re around). Eg. you may need some kind of runtime verification step to ensure that a deployment is valid based on the current state of the world. Perhaps some stuff from databases and consensus would help here. Doing that efficiently could be… interesting. But that’s why research is important!

                    2. 3

                      I think protocol buffers (and similar systems like Thrift / Avro) are pretty close to the state of the art (in terms of many large and widely deployed systems using them). When you write distributed systems using those technologies, you’re really using the protobuf type system and not the C++ / Java / Python type system. [1] It works well but it’s not perfect of course.

                      I also would make a big distinction between distributed systems where you own both sides of the wire (e.g. Google’s), and distributed systems that have competing parties involved (e.g. HTTP, e-mail, IRC, DNS, etc.). The latter case is all untyped because there is a “meta problem” of agreeing on which type system to use, let alone the types :) This problem is REALLY hard, and I think it’s more of a social/technological issue than one that can be addressed by research.

                      [1] This is a tangent, but I think it’s also useful to think of many programs as using the SQL type system. ORMs are a kludge to bridge SQL’s type system with that of many other languages. When the two type systems conflict, the SQL one is right, because it controls “reality” – what’s stored on disk.

                      1. 2

                        I think protocol buffers ⟨…⟩ are pretty close to the state of the art

                        Seriously? PB, where you can’t even distinguish between (int)-1 and (uint)2 is state of the art?

                      2. 2

                        Alice ML is a typed programming language designed to enable open extensions of systems. Objects can be serialized/deserialized and retain their types and it’s possible to dynamically load new code.

                      3. 2

                        The Erlang Way is a lot more than “let it crash”. :)

                        I am so with you on this one, and I’ve got so much to learn!

                        1. 6

                          You might find ferd’s intro helpful. For historical perspective with some depth, you might like Armstrong’s thesis from 2003 that describes everything in deep detail.

                        2. 2

                          Yup, this is related to the point I was making about protobufs and static “maybe” vs. dynamic maps here. In non-trivial distributed systems, the presence of fields in message has to be be checked at RUNTIME, not compile-time (if there’s a type system at all).

                          https://lobste.rs/s/zdvg9y/maybe_not_rich_hickey#c_povjwe

                          I think of protobufs/thrift as trying to “extend your type system over the network”. It works pretty well, but it’s also significantly different from a type system you would design when you “own the world”. Type systems inherently want a global view of your program and that conflicts with the nature of distributed systems.

                          edit: this followup comment was more precise: https://lobste.rs/s/zdvg9y/maybe_not_rich_hickey#c_jc0hxo

                        3. 2

                          So this is really interesting. I read the paper on success typing and it seems pretty cool. It still, however, doesn’t guarantee soundness. Then on the other hand, neither does TypeScript, so it’s hard for me to make up my mind about what I want.

                        4. 4

                          That would be cool. There’s at least Rustler.

                          1. 4

                            Static types per se — that’s easy. But think about the distributed system with different versions of VMs. Think about live upgrades.

                        1. 5
                          • Bike work. I just built an e-bike (AMA) and tomorrow I’m putting on a suspension fork and upgrading the motor mount. And replacing the chain it ate two nights ago.
                          • Attempting to buy a pickup truck.
                          • Oh yeah I have a six-month old
                          1. 1

                            Do you have any details written up about your experience building an e-bike? I ride an h-bike (human powered bike), and love wrenching on bikes, so I’m intrigued by what you did and your experience since it seems like you would have to modify quite a lot to make it work.

                            1. 2

                              I don’t have anything written up, but basically I added a Cyclone 3000W mid-drive motor ordered direct from Taiwan to a Surly Karate Monkey I already had. I got this battery sold by Luna Cycle, added some waterproofing and padding around the edges, and installed it in the main triangle of the bike.

                              Today I’m putting on a suspension fork to replace the stock rigid fork, swapping out the crap mounts that came with the motor in favor of this motor mount also sold by Luna Cycle, and replacing the chain it ripped apart a few nights ago. :)

                              1. 1

                                I suspect you need a special chain for that since it ate one a few nights ago? This sounds like a very fun project, one day I would like to build a bike!

                                1. 1

                                  Well, my chain selection is limited because I have a 9-speed gear cluster in the rear, so I can only use a nice, heavy, wide BMX chain for the motor-to-chainring drive. The chain it ate was a few years old, I’m hoping that had something to do with it.

                                  The work today went well, except that I cut and yanked the throttle cable apart, so I ordered a new one of those. I’m certain the new motor mount will perform a lot better than the old one.

                            2. 1

                              I just built an e-bike (AMA)

                              Any things you wish you’d know before on building one up? (I keep debating retrofitting the other half’s bike with ebike gubbins. Can’t decide if that’s worth it or if I’m better just selling the current one and getting her one that’s already put together.)

                              1. 2

                                I did a fair bit of research, so I’d say: not really. I used to have a Very Loud bike stereo setup for a few years, so I was prepared for the chore of running DIY, high-current electronics on an all-weather bicycle. I am having fun so far!

                                1. 1

                                  Footnote: looks like I will have a bike stereo again. Just found and ordered this very inexpensive 2x150W board based on the Texas Instruments TPA3255 class D amp-on-a-chip. It’ll run right off my 52V battery. I’ll have to figure out speakers and mounting, which is easier on my other bike because it has a front rack, but that’s not too hard.

                            1. 4

                              For those interested in the design of Kerberos, there’s also this classic: https://web.mit.edu/kerberos/dialogue.html

                              1. 2

                                More broadly, I’d be interested in either a policy against nontechnical content, or a convenient way to filter out every article without a solid technical slant. I have no problem with M&A articles that present more than a surface treatment of technical details, though I can’t think of any offhand.

                                1. 2

                                  The description implies that Elixir is supported through Linux, but that Erlang can run within a RTOS. I am confused; isn’t Elixir code just Erlang code? Wouldn’t Elixir code therefore be able to run without Linux being involved?

                                  1. 7

                                    There are two software stacks involved here: our GRiSP stack, that supports Erlang and Elixir and links together with RTEMS (something you would call unikernel) which lets the BEAM (the bytecode that Erlang and Elixir compile to) run directly on the hardware. RTEMS is not really a layer since you can access hardware registers directly.

                                    But we also support the Nerves software stack which runs the Erlang VM from process number 1 under an embedded Linux kernel giving you full control on what runs in user space.

                                    Both approaches have their advantages and disadvantages.

                                    So there are 3 options: GRiSP using Erlang, GRiSP using Elixir and Nerves using Elixir.

                                    1. 3

                                      Nerves (an embedded elixir platform/framework) requires Linux, I think that’s what the description says.

                                      Elixir code is not Erlang code but both compile to the same byte-code and this byte-code should be able to run on GRiSP 2 without Linux.

                                      1. 1

                                        Is this an authoritative answer, or a guess? Cause I already have one of those two. :)

                                        1. 2

                                          Not athoritative, first time I hear about this project but since it talks about a complete, full-blown Erlang VM I feel confident stating that OTP releases don’t need anything more than that. :)

                                          It also seems that GRiSP already had support for Elixir (compiling an OTP release using Distillery).

                                          1. 6

                                            It also seems that GRiSP already had support for Elixir (compiling an OTP release using Distillery).

                                            Hi there. I can definitively say that you can run bare metal Elixir. I have done so. You can read more about it here https://medium.com/@toensbotes/going-bare-metal-with-elixir-and-grisp-8fa8066f3d39 and here https://medium.com/@toensbotes/iex-remote-shell-into-your-elixir-driven-grisp-board-76faa8f2179e. I have also done some other things such as communicate with an Arduino over spi, but I have not gotten around to writing anything about that.

                                            1. 1

                                              Fantastic, thanks for the reply!

                                              1. 2

                                                No problem. I am quite keen on boosting the adoption of embedded erlang and Elixir. Pleas do not hesitate to get involved.

                                        2. 0

                                          Actually Elixir code is Erlang code as the Elixir compiler generates Erlang AST. Just to be nit-picky. :-)

                                      1. 5

                                        Suggest release, because it’s a software release, and reversing because it’s for reverse engineering.

                                        1. 3

                                          I’m curious – is there a reason you post tag suggestions as comments, rather than using the suggest link?

                                          1. 8

                                            I do both!

                                            From a usability perspective, we continually have new users showing up, and even experienced users sometimes forget when we have tags available. So, I post my comments, and that gives lobsters a chance to learn about the system and do the right thing in the future.

                                            After all, it’s not fair to expect people to tag things correctly without guidance, and it’s not sustainable to rely on the system to “just work”.

                                            1. 1

                                              Maybe a cleaner solution would be to show pending suggestions and people can directly copy the suggestion if they agree?

                                        1. 23

                                          On-topic: I’m only on the second page of this paper and I’m already loving it. I was about to go to bed, but I’m definitely not going to bed until I’ve read this paper now!

                                          Minor suggestion: It would probably be better to link to the arxiv page for the paper rather than the PDF itself. By linking to the arxiv page people can read the abstract, see related papers, see information about the authors, see bibtex, and a whole lot of other things without downloading the PDF. It’s also very easy to go from the arxiv page to the PDF and I don’t know of any decent way to go from the PDF to the arxiv page.

                                          1. 7

                                            All this, plus people on mobile connections can see some information without downloading a PDF.

                                            1. 2

                                              There’s an identifier on the left side of the page that you can search e.g. 1903.00982 in this case.

                                              1. 1

                                                Heh, what’s your stance on bedtime now, having made it to page 11? I would want a good night’s sleep before tackling that one.

                                                1. 2

                                                  I didn’t go to sleep :O

                                                1. 3

                                                  I have to say that I totally hated every single task of the 2018 edition.

                                                  So, it might not be a suggestion for everyone.

                                                  1. 1

                                                    Interesting! What did you hate about them, and if you liked 2017 and previous years what made them different?

                                                    1. 1

                                                      That was my first time, I had never heard of AoC before then :D

                                                      1. 1

                                                        That’s cool. So, the question still stands - what didn’t you like about the puzzles?

                                                        1. 2

                                                          For me, it was day 15, which was basically a huge pile of busy-work.

                                                          This year is the first where the project creator didn’t also create all the puzzles, and I think it shows.

                                                          1. 1

                                                            Yeah I can see that. I rather wish the past year’s puzzles were viewable for comparison

                                                          2. 2

                                                            Even though they were shrouded in little bits of story, which was okay, I found them to be the usual and tedious puzzles they give you on every other website.

                                                            Initially I saw them as somewhat realistic problems solvable via programming but they were more like algorithmic problems with some story slapped on top.

                                                            And there were very few moments of cleverness, like cutting out absolutely all the boring stuff and find a good enough approximation. All results had to be perfect, nothing just “good enough”, as it would be in real life.

                                                            Maybe it’s just me going in with the wrong expectations :D

                                                    2. 3

                                                      +1 - the puzzles are fun and ramp up in difficulty :)

                                                      1. 2

                                                        Thanks for the link, but I mean little projects that you personally have done. Posting a link to a collection of puzzles is neat and all but not really what I’m looking for.

                                                        1. 6

                                                          I mean, I’ve personally learned two languages with AoC, so I’m not talking in the abstract. :)

                                                          Before I came across AoC, I had a couple web projects I would rewrite every few years. One is a scoreboard for a Nethack tournament and the other is a scoreboard for a dice-rolling tournament (of sorts). I’ve found AoC to be a better way to see more of a language in a shorter time period.

                                                          1. 4

                                                            To some extent it is driven by the language niche. But for generic answers…

                                                            For the basics, I find Conways Game of Life is a good hygiene exercise.

                                                            Implementing a scheme is always fun. You can size it accordingly (a no-macro interpreter is a smaller time commitment, adding richer features (compile to llvm, compile to asm, proper quasiquoting macros) adds more depth.

                                                            A simple (made up) register machine is fun. If you base it on an existing instruction set (z80, risc-v) then you have an emulator.

                                                            Another puzzle site (which you don’t want, but which is awesome) is cryptopals.com.

                                                          2. 1

                                                            +1 to AoC as a learning tool - I started working through the advent of code problems the other day with the goal of becoming productive in rust. They are nicely bite-sized, with the extra benefit that you can compare your code against more experienced rustaceans, e.g. https://github.com/BurntSushi/advent-of-code

                                                            I discovered a bunch of nice patterns like FromStr this way, and was impressed at how concise solutions could be!

                                                            1. 10

                                                              Meta: Is Haskell a gateway drug to keyboard design, or are alternate keyboard layouts a gateway to Haskell?

                                                              1. 1

                                                                Speaking as a professional Haskell developer and goofy keyboard user… Imho, there’s a confounding factor: people with a high pain tolerance and neophilia. Neophiliacs go and get interested in messing with a new language or new keyboard design then they also have a high pain tolerance to deal with learning new keyboard layouts and new languages.

                                                              1. 10

                                                                I dunno. This looks like feature creep.

                                                                Want to start a conversation but no code has been written: Open an issue. You’re PR is going to fix a bug or add a feature. This starts as a issue that is discussed, voted upon and milestoned

                                                                Your PR is not ready for merging yet: Keep it in your branch/fork and keep working on it. It’s not ready for a PR. Have questions, ask it on the issue. Want a code review, request one on the issue. Or do a regular PR and request comments, because you can keep adding commits to the PR.

                                                                1. 10

                                                                  Keep it in your branch/fork and keep working on it.

                                                                  I suspect this doesn’t work for most people because you can’t (easily) see and comment on a diff between your branch and the base one without opening a PR. Which is exactly what they should have done instead of creating another redundant first-class entity in the already over-complicated UI.

                                                                  1. 6

                                                                    t’s not ready for a PR. Have questions, ask it on the issue. Want a code review, request one on the issue.

                                                                    Send the patch to a mailing list and discuss it there inline within the comfort of your favorite mail client of choice.

                                                                    1. 3

                                                                      Hard to deny that these days most people find a Web UI more comfortable than any of the (stagnating) mail clients. Minus the hassle of subscribing to a mailing list.

                                                                      I mean, I’m totally with you that all of that is just as easy, but most people seem to have a different perception.

                                                                      1. 4

                                                                        Minus the hassle of subscribing to a mailing list.

                                                                        This is a common misconception; there is no need to subscribe to the mailing list if it’s set up correctly. If you send your patch there, people will include you in the reply list regardless.

                                                                        I agree it’s distressing how much GMail’s near-monopoly has hurt the ecosystem and caused people to forget that better clients exist.

                                                                        1. 1

                                                                          In some cases, like work, you’re forced into GMail to avoid someone exfiltrating your IMAP synced mailbox via malware. So…

                                                                          1. 2

                                                                            Yeesh; hopefully work policies don’t prevent you from making OSS contributions with your personal mail account tho.

                                                                            1. 2

                                                                              In some cases, yes. For the types of stuff I’d do in my spare time, most likely not.

                                                                              But my guess is that this restrictive email thing will become more popular, not less, meaning that important projects, like those you get paid to work on during work hours, won’t be able to successfully support contributions that way.

                                                                              I dunno though. I could certainly be completely offbase here and we will see a resurgence of plain text email, and a new generation of mail tools. Fastmail is betting on JMAP, which uses JSON, so the barrier to entry might get much much lower in years to come…

                                                                      2. 1

                                                                        A mailing list you say? So I have to fight through all the spam, and everything else that comes with it? Should I set up a list for every single repo? Should I write my own automation for code review and assignment?

                                                                        I mean, on GitHub, I can clearly see who I requested code review from (and whether they reviewed it, and what their review is), who’s assigned to the PR/issue, what milestone it belongs to and so on. Can I do that with a mailing list? Yes, I could search, use labels, bookmarks, whathaveyou in my client of choice, but there’s no built-in thing that provides me with this information. One can build it on top of mailing lists, but then I’d use the API of that, and the mailing list would be reduced to transport only.

                                                                        As it happens, I can reply to GitHub notifications by email, from the comfort of my favourite mail client. And I get to enjoy the benefits of the API too. So no, a mailing list is not a substitute. For tiny things, or if you’ve established an email-based workflow already, it can work. For a lot of projects, it doesn’t.

                                                                        1. 2

                                                                          So I have to fight through all the spam, and everything else that comes with it?

                                                                          The last time spam got thru on any of my mailing lists was over a decade ago. (Basically never happened since I moved off Google.)

                                                                          Should I set up a list for every single repo?

                                                                          Another advantage of this setup is that you aren’t locked in to a 1:1 mapping between issue tracking and repos. You can easily set up a single mailing list to discuss patches for a group of related repositories under a single project, or a separate mailing list for a subset of development on a single large repository.

                                                                          1. 4

                                                                            The last time spam got thru on any of my mailing lists was over a decade ago. (Basically never happened since I moved off Google.)

                                                                            Lucky you. Plenty of my non-google addresses get quite a bit of spam, can’t imagine it being any different for mailing lists. The single list I run gets plenty of spam. Most are caught, but only because I spend non-negligible time making sure they are. I’d happily let go of this task.

                                                                            Another advantage of this setup is that you aren’t locked in to a 1:1 mapping between issue tracking and repos. You can easily set up a single mailing list to discuss patches for a group of related repositories under a single project, or a separate mailing list for a subset of development on a single large repository.

                                                                            I can do the same on GitHub with GitHub projects. I get e-mail notification, I can reply via e-mail, but I also have an API to access all of that information - and more - whenever I want, from wherever I may be, without having to carry my email archive around, or host my email on a server I can access on the go. I can also selectively subscribe to issues (via the API, so I don’t ever need to fire up a web browser), and get e-mail notifications. The API lets me query on labels, milestones, etc. Doing the same on a mailing list is very far from being trivial, or convenient, especially when I want to search backwards to times I weren’t subscribed yet.

                                                                            If you don’t need the labels, don’t use milestones and various other features GitHub provides, a mailing list might be a suitable alternative, and a convenient workflow. The moment you start to use these, a mailing list will stop being adequate. No, Subject: [project:subsystem bug#N]: blah is not a solution, and doesn’t work. Client-side labeling/filtering doesn’t either, because the point of labels & milestones is that they’re centralised. N+1 mailing lists for subsystems is a pain to maintain, and even bigger a pain to work with (been there, tried it, no thanks).

                                                                            In my experience, working with Magit & Forge is much more convenient than mailing patches and whatnot around.

                                                                      3. 5

                                                                        You say feature creep, I say the end of a long period of feature stagnation.

                                                                        Enough companies use Github as part of their development infrastructure – not just process – that it makes sense to have a programmatic way of flagging a PR as “not ready yet”. The rest of us will just type “[WIP]” less often. Is it that bothersome?

                                                                        1. 4

                                                                          Do you all not use a WIP label?

                                                                          1. 6

                                                                            I do, and include that same title. No one looks at labels, even if they are blinking and bright red.

                                                                            1. 2

                                                                              Reminds me of how many PRs we’ve merged that have a “Do Not Merge” label on them.

                                                                              1. 1

                                                                                We have a policy of only allowing PRs to be merged by a reviewer, never by the assignee. You may self assign as a reviewer but normally a PR will be created by one person and merged by another. If nobody has been assigned it sits until someone is.

                                                                          2. 2

                                                                            I’d prefer to open a PR to start a discussion, but I’ve worked with people who prefer to see PRs as ‘ready to go’ and get shirty when you open a PR that’s not merge-ready.

                                                                            Making it explicit is handy for dealing with people who aren’t interested in learning how to use patches-by-mail but you want a place to discuss work in progress.

                                                                          1. 12

                                                                            The only issue I have with Irrsi which WeeChat handles perfectly is a lack of proper documentation for API and commands - for example, there’s no list of built in statubar items with their descriptions. Themes are also a work of continuous trial and error.

                                                                            It’s really weird, regarding the fact that irssi is 25 years old right now, more or less, so it had enough time to be documented like a boss. But this might just a spark of wild 90s where no one cared about docs, but people learnt irssi from each other’s and knowing it was somehow the “common knowledge”, keeping the details away from users would be also a way to prevent “lamers” from doing anything beyond average use unless they can read the source code, which isn’t a piece of art either.

                                                                            Yes, I had to read an irssi source to understand how to configure it in the way I needed to. And no, this is not a “self documenting code”.

                                                                            1. 4

                                                                              thanks for checking out the changelogs ever now and then.

                                                                              sometimes even complete documentation still leaves me confused…

                                                                              however I do not believe there was any intention to fight off lamers ;) rather simply no one has the time or passion to contribute good docs

                                                                              1. 1

                                                                                If you don’t mind me asking: Why are you using Irssi and not Weechat, then? I switched from Irssi to weechat years ago (when it seemed like Irssi had nothing to offer over weechat anymore) and may be out of the loop in terms of new Irssi developments I’m missing.

                                                                                1. 1

                                                                                  I didn’t say that I use irssi anymore… :) Switched to WeeChat in ~2010-2012 (that 0.4.x version branch which lasted quite too long), but I’m occasionally checking out irssi changelogs and the program itself.

                                                                                  (and I’m quite missing it, especially the formats system)

                                                                                  1. 1

                                                                                    Same here, made the switch around 2014. Even Irssi seems have lower memory footprint on start, it randomly run into memory leaks after running for a while. Weechat is on the opposite, consuming lots of ram on start and didn’t quite increase after couple of months.

                                                                                    1. 3

                                                                                      Wow – I have run Irssi for literally years at a time without leaking. My setup is barely customized though.

                                                                                      1. 2

                                                                                        My friends and I have a running joke where our reaction to beefy computers are, “What, are you gonna run ${MUTUAL_FRIEND}s Irssi or something on it?” Thanks for reminding me about how that joke originated!

                                                                                        1. 2

                                                                                          I think you haven’t used plugins and their scripts too much :)

                                                                                          The memory footprint stability is quite new, I remember when WeeChat had memleaks and really choked up one of my machines (which wasn’t that weak), mostly because it couldn’t keep up with buffers.pl. At the end, FlashCode decided to rewrite that de facto standard script as a WC builtin. Same foriset and fset.

                                                                                          1. 1

                                                                                            we are not aware of any leaks and if there are some we want them fixed

                                                                                    1. 3

                                                                                      After my beloved, vintage MS Natural (the original model) died, I switched to a Kinesis Freestyle. I like the split design quite well. It really helped with my shoulder rotation. Before using it, I’d get a serious shoulder pain issue about once a year. To the point where I had to sleep sitting up with my arm propped. That was due to the constant “forward hunch” position that rolls my shoulders forward.

                                                                                      Never really had wrist problems (so far, at least!) But since going to a split board I’ve had very little issue with my shoulders.

                                                                                      I did find the Freestyle to be a bit mushy. I recently switched to a Kinesis Edge. It’s their gaming keyboard, also a split design. Much crisper keys. Feels good on the fingers and causes less fatigue than the laptop keyboards.

                                                                                      The only drawback I see is this: without a fixed distance between the two halves, my typing accuracy has really suffered. If I misplace one half by just a few millimeters, I double-stroke the keys and have to do a lot more error correction. It probably just means I need to learn touch-typing finally. If you learned properly instead of being self-taught, then you might not have the same accuracy trouble.

                                                                                      1. 1

                                                                                        I also moved to a Kinesis Freestyle 2 and then to the Freestyle Edge. The Edge is a bit silly because it’s a gaming keyboard (pulsating blue backlighting, NKRO, other things I don’t really care about) but the keyswitches are nice (I have Cherry MX Browns) and I got a good deal on it because I was an early bird on the Kickstarter. I love it. I have the tent/lift kit and it’s extremely comfortable.

                                                                                        If you just want the Freestyle layout and mechanical switches without all the gaming BS, that’s the Freestyle Pro, which came out after the Edge.

                                                                                      1. 16

                                                                                        2017Q3-2018Q1: did a lot of reading on what I’d need to comply.

                                                                                        2018Q1: built a system to remove all data for a given user from our backend, both from live datastores like DynamoDB and from archival/historical JSON data in S3. The script is Ruby-as-Bash, calling out to aws-cli and a bunch of perl filters to get its job done.

                                                                                        2018Q1: Had a GDPR-focused lawyer draw up a standard Data Processing Addendum (DPA) and set it up on DocuSign, so it’s very easy to send to customers for signing. This has turned out to be a very good workflow.

                                                                                        2018Q1: Updated our privacy page and registered for Privacy Shield program.

                                                                                        2018-03: Accepted into Privacy Shield.

                                                                                        2018-04: Everything works.

                                                                                        2018-05: About a week before GDPR takes effect, we start receiving requests for deletions. In some cases, we get several hundred user IDs a week. All requests are handled over email, and deletion jobs are kicked off manually by engineers.

                                                                                        2018-05: GDPR takes effect. Several dozen customers shit bricks because they haven’t thought about any of this yet. They are pleased to hear we did!

                                                                                        2018Q3-now: building GDPR automation system, so we don’t have to kick off these deletion jobs manually.

                                                                                        Now: trying to get hooked up to Segment.com’s GDPR deletion stream, so our customers can handle deletions more easily.

                                                                                        1. 2

                                                                                          I begrudgingly gave up SMTP a few years ago when it became too time-consuming to keep up with the email cartel’s tech requirements. That leaves me with:

                                                                                          • IRC (Ratbox), private network
                                                                                          • HTTP/S (bunch of static and Rails sites)
                                                                                          • shells (ssh/mosh)
                                                                                          • Monit – both for my personal sites and work hosts, as you never know when your work env and your monitoring service are both going to be Thoroughly Hosed
                                                                                          1. 3

                                                                                            I love AoC! I’m doing it in Rust for my second year in a row, and prior to that I used it to learn me an Elixir. (Edit: https://github.com/gamache/advent2018 if you wanna heckle me)

                                                                                            AoC hits such a sweet spot between the dryness of Project Euler where you’re solving ten-word math problems and the showoff problems in Google Foobar where you’re mostly reading math.stackexchange and journal articles that came out under three years ago.

                                                                                            1. 2

                                                                                              Datum: About two years ago I got a Thinkpad T450 with a dock for about $500. Unfortunately the BSDs haven’t been a good fit – OpenBSD is great other than wifi, and FreeBSD is kind of a mess. I’ve been happy with Antergos Linux lately. I’m considering replacing it with an X220 or something like that.

                                                                                              1. 1

                                                                                                And now I’ve gone and bought myself an i7 X220 for $150 shipped. We’ll see how this goes!