1. 18

    I think it’s worth pointing out that Wren is made by the creator of crafting interpreters. Perhaps that’s a little bit of an argument to authority, but the author clearly knows a lot about creating languages.

    1. 4

      I’ve followed the second part (bytecode VM implementation) of this book in C++ and I can say that it’s been one of my favorite project-style book walkthroughs in a while so far! Good combination of learning low level things and also learning parsing stuff at the same time, in a very pragmatic way. I think the information is also very relevant to current-day systems, since they are often usually running such a VM somewhere or the other.

      edit (and maybe tangential): Godbolt link for what I’ve done so far: https://godbolt.org/z/5GbhnK I followed till control structures then did the nan-tagging bit and added ‘indirect threaded’ dispatch, it actually comes out to be competitive for arithmetic-loop benchmarks with other real (JIT-off) VMs (included times for benchmarks vs. Lua{,JIT}, v8, …). I’ve been interested in building out a VM that doesn’t (or rarely/differently) does GC (eg. if it’s just for a per-frame rule in an ECS-y game, it does some logic and calls system functions to save out data–so mgmt of layout and lifetimes of longer-term data is in the ECS in the native lang, or described elsehow (scene editor tool / ….)) and has easy interop with C struct type memory. SPIR-V is an interesting format in this space too (it’s cool that you literally define types upfront with eg. OpTypeVoid and OpTypeStruct then can do eg. OpAccessChain…).

      1. 3

        Nystrom is also one of the main guys behind Dart (and a good twitter follow to boot).

        1. 24

          I wouldn’t describe myself as one of the “main guys”. I was not one of the original language designers and only joined the language team as a full member much later. I’m just higher profile because I wrote more stuff down and use Reddit and Twitter more. :)

          1. 1

            Is there a chance of the printed book being under a Christmas tree in 2020? ;-)

            1. 2

              I would love that to be the case, but it seems unlikely. I’m making steady progress on the last editing pass and the typesetting, but it’s a big project and 2020 is not exactly playing nice with anyone’s goals.

        2. 2

          I loved the second part, and it enabled me to write a small VM + “compiler” in rust for a proof language I’m working on, in a few thousands lines (although it uses fixed size instructions, à la lua, rather than pure stack instructions). I found the book very interesting and well written, kudos u/munificent !

        1. 2

          This evokes the question: why centralize at all? Why not just pull from git repos?

          Avoiding typing the github.com prefix seems like not a big deal considering the sorry state of package management in C/C++.

          1. 4

            Why not just pull from git repos?

            Because you want a guarantee that some release is as immutable as humanly possible, not a git rebase away from being changed after the fact.

            not a big deal considering the sorry state of package management in C/C++

            I think C/C++ should serve as a point of comparison for exactly nothing.

            1. 2

              Because crates.io is designed to be permanent, as much as is feasible, to avoid things like The Great Left-Pad Incident.

            1. 1

              std::array has been pretty nice in C++. You can even do simple “dependent typing” (not rly) kinda stuff like make an append function that returns an array whose length is the sum of that of the input arrays (and the append is compile time): https://godbolt.org/z/6b9nxr (haven’t tried this on huge arrays, it might blow up 😅 )

              1. 1

                Sorting is a good approach too!

                1. 2

                  How is this kind of post is permitted but @hblanks post about experience with job interviews is not?

                  1. 4

                    Bumping up against this aspect of the community can be frustrating. I have certainly found that whenever I post anything about WSL :)

                    However in this case, I can see where people are coming from, because while looking at the question alone might make you think “How does this belong on lobsters?” if you look at the answer there’s always some incredible technical content in there, as well as opportunities for people to collaborate and learn from each other that aren’t possible in any other type of post.

                    1. 1

                      So the only value here is the potential for technical content in the comments, but there’s a belief that there would be no value in the comments on a post about a job interview experience. Seems like some weird gatekeeping.

                      1. 5

                        I can’t decide whether you’re just bitter about your friend’s post getting negative feedback, whether you hate the “What are you doing?” posts, or whether you’re just generally voicing displeasure about the community.

                        Either way, please recognize that there is no one “gatekeeper” on Lobsters. It’s a community, with all kinds of disparate desires and beliefs about what is relevant, important, etc.

                        Speaking from experience here, I would suggest that you or your friend consider taking the negative feedback on that particular article in stride and focusing on contributing constructively in other ways. Easier said than done sometimes I know.

                        1. 4

                          Zoom in close enough on any line and you will find the edges to always be fuzzy. We’re only human, after all.

                      2. 4

                        This kind of post is a rare special case that helps build the community. It’s effectively a way to contain off-topic discussion, without making lobste.rs completely sterile. Part of why I like this website is that I start to recognize the people that visit.

                        Also, consider that the post by the user you mention was (from what I understand) an entire thread about their personal experience. This thread is a discussion thread, where people’s individual contributions are comments. So it’s smaller in scale in that sense.

                      1. 0

                        The mod log is one of the more entertaining parts of this site. Between that and a search engine, you can get a pretty good sense of what kind of content our hard-working solo gatekeeper @pushcx thinks “not-relevant”.

                        There are some explicit rules too, but don’t take them too literally, or you may bend yourself into a pretzel trying to explain (for instance) how org-mode or zettelkasten aren’t really “personal productivity systems” and thus genuinely merit their popularity here.

                        1. 9

                          hardworking solo gatekeeper

                          That’s pretty disingenuous. Do you want us to become like HN? Speaking of which, on your other thread that, fittingly got moderated too:

                          My response is a simple “fuck you”

                          Since you are intent on push not moderating things, let’s pretend that your “fuck you” to pushcx wasn’t just deleted. After all, removing off topic content is gatekeeping. So, if we pretend it wasn’t removed, we can talk about it here, rather than having discussion stifled by moderators.

                          Personally, I think that if a submission is not technical or something you wouldn’t say to your coworkers, you shouldn’t say it on lobsters - particularly, note the off topic and unkind flags. What do you think?

                          1. 2

                            Do you want us to become like HN?

                            This place was better than HN until the regime change. Now it’s just a circle jerk between a very small group of tech bros who think they’re better than everyone else.

                            1. 1

                              What ”regime change” are you referring to?

                              1. 3

                                This site is not maintained by jcs anymore. It was a much better community when he was at the helm. Lobste.rs was his creation. He should have just shut it down when he didn’t want to run it anymore. It’s been a disaster ever since the transition.

                                1. 4

                                  That’s your opinion. I find it ludicrously overwrought.

                                  1. 4

                                    Congrats! You’re squarely in the new demographic. I find @feld’s opinion to be pretty spot-on, myself. I don’t know whether it was due to jcs’ influence, the relative lack of petty strong-arm moderation practices, or just being new, but Lobsters was a much more interesting place back then. The decline has been quite noticeable.

                                    1. 1

                                      I’ve been a member of this site for as long as you have, according to your profile, and I disagree with your assesment of the site’s overall quality.

                                      1. 1

                                        de gustibus non est disputandum

                                        EDIT: Not that it matters much, but I was reading this site for a year or two before I got an account here.

                                        1. 1

                                          You can be a long term member and still be completely wrong. The two are not mutually exclusive.

                                          1. 1

                                            I’m in total agreement with this statement.

                                      2. 2

                                        Consider that the op’s account is 6 years old and that somehow after years of readership the op doesn’t understand why their post was removed. It should be concerning to the entire Lobsters team that after 6 whole years this user can’t figure out how to stay within the moving-goalposts guidelines but they still want to try to participate. You’re actually lucky that they made this post instead of just walking away forever.

                                        Go look at the first three posts in @hblanks profile. They would have been removed by today’s moderators. Y’all should be ashamed of yourselves for being so unwelcoming and abrasive.

                                        1. 3

                                          The first three posts (assuming you mean their story submissions) don’t appear, at the time of writing, to get any votes. My intution would be that yes, all of them would be flagkilled or deleted today. They talk about Ebola response, ATC coordination due to a fire, and nuclear weapons policy. These are all interesting articles–especially the nuke policy one–but they aren’t particularly relevant or actionable to the practicing technologist.

                                          And again, at the time, clearly the community agreed–they were not upvoted. I suspect that the cleaning of submissions isn’t that far off from what the the community was doing anyways.

                                          1. 1

                                            Not voting doesn’t really mean much. I rarely vote on things I enjoy on here. The userbase was also considerably smaller back then especially with the invite-only nature of this community.

                                            As a practicing technologist all of those articles are interesting to me – perhaps the mods should consider technology encompasses topics beyond operating systems and frontend/backend development.

                                            1. 5

                                              Voting is one of the core feedback mechanisms the community has. Why aren’t you voting, if you don’t mind me asking?

                                              And again, “interesting” is insufficient–I’m very interested in Houston Restaurant Week, but I don’t think it should be here.

                                      3. 2

                                        In all seriousness though, how can we make it better? n-gate seems to agree. Is it a moderation thing or a user thing?

                                        1. 2

                                          Both, for sure. Also some ambient cultural problems in tech, and in the overall zeitgeist. Having one self-appointed Site Boss who feels free to, let’s say, “curate” submissions based on his personal criteria definitely makes it worse, but there are several feedback loops to consider.

                                          I’ve thought about this quite a bit, and I could make several suggestions… but practically speaking, it’s a political rather than technical problem, and won’t have any satisfactory technical solutions. It’s dictatorial politics, too, so you can waste a lot of keystrokes trying to convince other users of this or that before you just end up banned, (like I expect to be soon.) The best thing you could do is learn from your experience here, find another venue and nurture it as best you can. It’s all part of the great circle of life.

                                          1. 2

                                            It’s become a ferocious community of groupthink and arbitrary rules that is somehow supposed to stop this from becoming a bad copy of “HN”. The discussions on HN and here are both pretty poor quality overall. I mostly come to both HN and here to find interesting links to blogs and sites I would never find otherwise stumble upon. You could throw away the entire discussion/comment part of the platform and it would be equally useful to most of us, I suspect.

                                            1. 1

                                              I don’t think it was like this a year ago. The SNR has dropped precipitously as the community has grown.

                                            2. 1

                                              Please don’t cite n-gate as an authority of… anything. The site runs on pure snark. The dig at lobste.rs is entirely incorrect, in my opinion - apart from threads like this one, of course, which I’m sure will feed into the site author(s)’ prejudices.

                                              1. 2

                                                I mean, people are talking about lobsters being a circlejerk in this thread. If people think it actually is a problem, there’s sort of a predicament faced by those in power: try to fix it by moderating ruthlessly or go down with the sinking ship. Which results in threads like this by people who disagree with the moderation policy.

                                      4. 1

                                        That sounds like some fun. Here’s the more substantial part of my comment, the part you didn’t quote. Let’s see which gets censored first!

                                        So… you unilaterally deleted OP’s post based on criteria you can’t seem to reliably articulate. You get a bit huffy with your ongoing pretense that there is a clear and crisp division between “technical” and “non-technical” content. Then you completely changed the title of this meta post, to try to prevent discussion of these criteria… which every other comment here continues to discuss, because they are frankly arbitrary and confusing.

                                        If my coworker was a self-appointed speech cop on this kind of a power-trip, I think I’d stand up to him or her too. Thanks for asking. As for your other concern, as far as I can tell Lobsters is well on its way to becoming a watered-down and overly touchy version of the orange site already, without any help from me.

                                        1. 1

                                          Probably neither since this subthread is mostly civil. :-)

                                      5. 1

                                        That’s pretty rich coming from someone just posting a gatekeeping comment that chidess someone for posting ‘marketing BS’ based on his personal arbitrary criteria for judging that.

                                        1. 5

                                          How is being transparent about why one would flag a submission “gatekeeping”?

                                          Edit this is the kind of backhanded sniping that helped me make the decision not to comment about why I flag submissions. I try to make it clear it’s my decision and not the “community’s” but I still got a lot of unwanted whiny pushback. Now I prefer to keep the mystery…

                                          1. 3

                                            minimax was being pretty harsh towards pushcx in a comment that has since been removed. In the context of that comment, this one reads differently (“hard-working solo gatekeeper” is intended as an indictment, not a compliment) and him flagging that post for the reasons given strikes me as hypocritical. My comment doesn’t generalize.

                                            1. 1

                                              @minimax engaged with constructive comments. It’s not their fault that the submitter, instead of taking the advice to heart, flew off the handle.

                                              It’s become a bit better, the submitter has calmed down and started to engage. The submission is still up, and thanks to the patience of the community, I’m getting something out of the discussion.

                                          2. 2

                                            Nah, the difference is I’m not a the mod. My arbitrary opinions don’t become site policy.

                                            There’s all kinds of content posted here that I don’t care for. Mostly I don’t give advice or opinions about it. The nanos.org post was at least potentially interesting, which is why I commented with some advice.

                                        1. 2

                                          I wonder if we’ll ever reach a crossover point where a language like Common Lisp will actually be faster than “modern” (at that time) C++.

                                          My reasoning is that many of the features added (or proposed) to C++ (variants, lambdas, meta-classes, etc.) have been in CL forever, and all the compilers have techniques for optimizing them, but optimizing things like variant types in C++ is new and unknown for now.

                                          The good CL compilers are already within a few percentage points of C++ a lot of the time, and I’ve always wondered what would happen if a CL compiler had really good type inference (like OCaml) paired with the optimizing backend of a modern C++ compiler.

                                          It seems feasible, but I think it’s just too big of an undertaking for the small level of interest there is in CL.

                                          1. 1

                                            C++ compilers are pretty good at optimizing lambdas (by inlining) and depending on the variant implementation, pretty good at optimizing that too. Here’s an example with mpark’s variant: https://godbolt.org/z/x74xPq You can see how it generates a jump table similar to a switch and how all of the lambdas are inlined. Immediately-invoked lambdas are also reasonably inlined if they have reference captures.

                                            SBCL is quite fast, but in my benchmarks you are still able to get better performance, and deterministically so, in C / C++. Another issue is that SBCL needs runtime writable executable memory for its JIT, which you don’t get on eg. iOS. So yeah you need an AOT compiler in those cases. Clasp is an interesting lisp with C++ interop, I’m not sure if it has a C++ backend though. Also another point is the assumption of GC semantics in CL, vs. deterministic mem mgmt / RAII in C++ / Rust etc. And yet another point is that C++ / Rust et al give you control + understanding over the layout of your data as it is in memory, which is important for designing it for good cache utilization.

                                            C++ is actually not an un-ergonomic language at this point, I’ve found it quite ergonomic with its basic type deduction, lambdas, raii and templates; having also dug into other languages to various depths.

                                            Bonus: Comparison of code generated by std::variant and mpark::variant: https://godbolt.org/z/fanc6E

                                          1. 1

                                            Why would you represent lists as hash-maps? I’m getting PHP flashbacks 😱

                                            1. 3

                                              What’s the problem?

                                              1. 2

                                                Some drawbacks of using hash maps versus actual arrays:

                                                • Lookups are slower, and likely not constant time (IIRC it’s usually more like O(log n))
                                                • They need more memory
                                                • Less cache-friendly
                                                • Iterating them is less efficient compared to an array, as memory is not in a contiguous order. In my own experiments I found that iterating a Rust hash map is about 50 times slower compared to iterating a vector
                                                • Insertions are slower if there are collisions
                                                1. 3

                                                  The implementation of the language can decide to use arrays if it notices that your keys are a contiguous set of integers starting from some small integer. This is what Lua does for example. So that removes all of the implementation-dependent disadvantages you are talking about.

                                                  On the other hand, on the interface / usage side, it does make it so if you eg. want to remove an element and shift all the others down, you need to explicitly say that you want array / list behavior vs. map behavior.

                                                  1. 4

                                                    Yeah, I remember from reading one of the Lua papers that the runtime does a bunch of clever things to optimize for tables being used as arrays. What I didn’t get was why this is better than simply having actual arrays in the language, and removing the need for the clever runtime code.

                                            1. 1

                                              I’ve found mpark’s variant (https://github.com/mpark/variant) to generate better code and be faster than libc++ variant in practice. libc++ variant actually generates its own kind of vtable internally.

                                              1. 9

                                                Great list of tips!

                                                cmd+shift+4 pops up a crosshair to take a screenshot of a region.

                                                And pressing space after cmd+shift+4 lets you screenshot a particular window.

                                                And since 10.14 (I think) taking a screenshot now gives you a little preview in the bottom-right of the display which delays it writing to a file. If you just want it to write the file and skip the preview, cmd+shift+5 gives you an Options menu where you can disable “Show floating thumbnail”.

                                                1. 11

                                                  Don’t miss the fact that ⇧⌘5 can also do screen recordings, with or without audio. Previously you had to run QuickTime Player and find it in the menu.

                                                  1. 5

                                                    Pressing control along with either of those just copies the image to the clipboard, ready for pasting!

                                                    1. 1

                                                      The nice thing about that floating thumbnail is that you can drag & drop it like a real file. Sometimes I’m screen shotting just to share with someone in chat, and that dragging that thumbnail over means I can send images without ever having them written to disk.

                                                      1. 2

                                                        Mentioned in the other comment but yeah– pressing control along with wither hotkey just copies to clipboard inmediately which I’ve found to bw the best path for this usecase. Then I’m able to just Cmd + V in the target.

                                                        1. 2

                                                          On Catalina (not sure about previous versions), you can also hit cmd + shift + 5 and select the clipboard as the default destination. Then you won’t need to add control for screenshots to go to the clipboard.

                                                    1. -2

                                                      Jesus fuck, the pink background. Whats wrong with you, my eyes bleed.

                                                      1. 18

                                                        Mastodon used about ~2.5 GB out of the 4 I have on my Pi. With Pleroma, the total used RAM is only about ~700 MB. That’s crazy!

                                                        I agree it’s crazy. Crazy less bloated, and crazy still bloated.

                                                        700MB. Christ.

                                                        1. 26

                                                          To be clear, the 700 MB is the total RAM usage, i.e. by all programs and not Pleroma alone.

                                                          1. 20

                                                            That 700MB includes a Postgres database and a webserver.

                                                            1. 8

                                                              I wonder if we can still run pleroma in a 256mb ram system. Most of the ram is used by postgres, and that can be configured to use a lot less.

                                                              1. 10

                                                                I bet you can but PostgreSQL is also very tricky to limit RAM usage to a certain cap. First off the defaults are very conservative in most cases you would be cranking all the values up not down but you already know that as if I recall correctly I saw some great articles regarding PostgreSQL inner-workings from your blog posts on pleroma development.

                                                                That said there are several configs that have direct and indirect influence on how much memory PostgreSQL will use: shared_buffers - the actual working set of the data the DB hacks on, that will be the largest immediate RAM allocation. Then we have the tricky parts like work_mem which is a per connection allocation but not a per connection limit. If your work mem is 8 MB and you execute a query which has 4 nodes in the resulting plan you can allocate up to 4*8 MB for that one connection. If you add to that parallel query execution then multiply that by concurrently running workers. I assume pleroma uses a connection pool so that alone can bump RAM usage a lot. Add to that things like maintenance_work_mem for tasks like vacuums and index rebuilds and you quickly can see how the actual memory usage can fluctuate on a whim.

                                                                To the point.

                                                                I agree it’s crazy. Crazy less bloated, and crazy still bloated.

                                                                700MB. Christ.

                                                                I simply think @ethoh is wrong. 700 MB usage is crazy low for a RDBMS and we are talking about RDBMS + a whole app using it. Databases are designed to utilize memory and avoid hitting the disk when not necessary. Unused memory is wasted memory.

                                                                1. 3

                                                                  700 MB usage is crazy low for a RDBMS

                                                                  I don’t really get how you can make this claim with no reference at all to the data storage needs of the application. A fair metric would be the overhead of the DB relative to the application data. In this case we’d need to know some things about how Mastodon and Pleroma work, and how OP managed his instances of them.

                                                                  1. 4

                                                                    I don’t really get how you can make this claim with no reference at all to the data storage needs of the application.

                                                                    In similar fashion the OP claimed that 700 MB is crazy bloated. I was making a reference to that. However to back up my claims with some quick napkin calculations:

                                                                    Default shared_buffers for PostgreSQL 12 is 128 MB. Per PostgreSQL documentation the recommended setting is roughly 25% of available system RAM then measure.

                                                                    If you have a dedicated database server with 1GB or more of RAM, a reasonable starting value for shared_buffers is 25% of the memory in your system.

                                                                    source: https://www.postgresql.org/docs/12/runtime-config-resource.html

                                                                    The system in question has 4 GB of RAM so by that logic 1 GB for shared_buffers would be a reasonable setting - hence 700 MB at that point could be considered crazy low.

                                                                    Default work_mem is 4 MB, max_worker_processes is set to 8 and max_connections by default is 100 (https://www.postgresql.org/docs/12/runtime-config-connection.html#GUC-MAX-CONNECTIONS). This means that query execution can easily eat up to 3.2 GB by default in the absolutely unlikely worst case scenario.

                                                                    maintenance_work_mem is by default an additional 64 MB.

                                                                    So we are looking at PostgreSQL itself using anywhere between 128 MB and 3 GB of RAM with it’s default settings that are ultra conservative and usually the first thing everyone increases. This is before considering the actual data and application workload.

                                                                    By this logic, personally for me 700 MB for PostgreSQL on a running Pleoroma instance including the memory used by Pleroma itself is crazy low.

                                                                    1. 4

                                                                      But, this little Pi is not a dedicated database server, it at least hosts the app too? And defaults are just defaults. Maybe indicative of PG usage in general, across every application that uses it, but that’s a really broad brush to be painting such a tiny picture with! I still think there are a few different species of fruit being compared here. But I do appreciate your explanation, and I think I understand your reasoning now.

                                                                    2. 1

                                                                      Fwiw, my Pleroma database is approaching 60GB in size.

                                                                      1. 1

                                                                        Due to shit posting or bot? You can clean it up a little bit by expiring remote messages older than 3months

                                                                        1. 1

                                                                          I have a dedicated 500GB NVMe for the database. Storage isn’t a problem and it’s nice for search purposes.

                                                                  2. 2

                                                                    I’m still not convinced that postgresql is the best storage for ActivityPub objects. I remember seeing in pleroma that most of the data is stored in a jsonb field, and that makes me think that maybe key-value stores based on object’s IDs would be simpler and maybe(???) faster.

                                                                    I’m currently implementing a storage “engine” based on this idea and I’m saving the plain json as plain files in a directory structure. It, of course, is missing ACID[1] and other niceties, but I feel like the simplicity of it is worth for an application that just wants to serve content for a small ActivityPub service without any overhead.

                                                                    [1] IMHO ACID is not a mandatory requirement for storing ActivityPub objects, as the large part of them (activities) are immutable by design.

                                                                    1. 5

                                                                      Misskey used to use a nosql / document store. They switched to postgresql because of performance issues. I’m sure you could build an AP server with a simpler store, but you we do make heavy use of relational features as well, so the relatively ‘heavy’ database part is worth it for us.

                                                                      1. 2

                                                                        Yes. One problem with a off the shelf key value store in this setup is that scanning over the whole keyspace to be able to filter objects is way less efficient than a good indexed db. (Even though I’m not there yet), I’m thinking of adding some rudimentary indexes based on bloom filters on properties that might require filtering.

                                                                        1. 4

                                                                          postgresql provides indexing for json objects, so it makes a lot of sense to use it even for this kind of use case. Even sqlite has some json support these days.

                                                                      2. 2

                                                                        I am not convinced to store tons of small files individually, they are usually less than 1kb. The overhead from inode will waste 75% of a 4k, and you will also run out of inodes pretty quickly if your fs is not tuned for tons of small files.

                                                                        1. 3

                                                                          inodes are a legacy filesystem problem. Use ZFS :)

                                                                          1. 1

                                                                            The idea behind federation would be that most instances would have a small number of users with small local storage needs.

                                                                        2. 1

                                                                          Not really for recent releases, you need at least 512MB for a stable instance. Pleroma itself use <200MB RAM, and postgresql can use another 200MB, depends on your configuration.

                                                                      3. 9

                                                                        Total RSS for my Pleroma instance on Arch x86_64 (which is extremely lightly used) is ~115MB. There’s a bunch of other RSS being used by the Postgres connections but that’ll depend on your precise configuration.

                                                                        For comparison, my honk instance on Arch armv7l is using 17MB (but it admittedly bare-bones compared to Pleroma.)

                                                                        1. 2

                                                                          How is honk working for you? Do you want to share a link to your instance? I’ve been considering installing it myself. It seems cool, but the only honk deployment I’ve seen in the wild is the developer’s. If we’re talking about saving resources, honk seems to be better for that than Pleroma :)

                                                                          1. 3

                                                                            I run it for my single user instance. Haven’t tried upgrading since I installed it.

                                                                            It generally works as expected, if a little rough - I edited a bunch of the default templates and found the terminology a little obtuse, and threads where some replies are private don’t show any indication which can be a bit confusing.

                                                                            I may setup Plemora at some point, as I would like the extra features, but I might never get around to it because honk is so trouble-free and works alright.

                                                                            1. 2

                                                                              Pretty well - I just run the binary in a screen session on one of my servers for now.

                                                                              https://honk.rjp.is/ - mainly using it as a publish-on-your-own-space feeder for tweets via IFTTT.

                                                                              1. 3

                                                                                Have you looked into crossposting using one of the open source crossposters?

                                                                                I’m assuming that they won’t work because honk has fewer features than Mastodon, but I don’t actually know.

                                                                                1. 2

                                                                                  I did try moa for a while but the link [from moa to twitter] kept disappearing for some reason - I did intend to self-host it but never got around to it. IFTTT is easier for now and if I want to shift off IFTTT, I’ve already got “RSS to Twitter” code for other things I can easily repurpose.

                                                                                  [edited to clarify “link”]

                                                                          2. 4

                                                                            Fwiw it’s a bit over 300MBs on my (single user) instance.

                                                                            1. 3

                                                                              I still think that 300MB is a lot, especially when cheaper VPS can have only 500MB of RAM.

                                                                              1. 3

                                                                                In fairness, 512 mb is a ridiculously low amount of memory.

                                                                                Nowadays it’s possible to configure a physical system with 128c/256t and literally terabytes of ram and we’re still paying 2013 prices for 1c/512mb VPS instances.

                                                                                Think about this.

                                                                                1. 1

                                                                                  I’ve been mostly using (and recommending) the smallest hetzner vps instances, which have 2gb of ram and cost just under 3 euro per month. although looking at lowendbox, i see that you can get a 1gb vps for $1 per month.

                                                                          1. 5

                                                                            why should you migrate? Because Pleroma is cleaner, leaner and prettier looking. Oh, and we have chats.

                                                                            This fails to mention why you shouldn’t migrate.

                                                                            Because Pleroma is easy to set up, it is therefore easier for fash and nazis to set up. There’s a whole lot of abuse that admins and mods have to deal with coming almost exclusively from Pleroma instances, so rather than dealing with that individually, which is time-consuming, frustrating, and stressful, a lot of mod teams have been blocking pleroma instances on sight. None of this is even mentioning the rumours of unsavory and *phobic opinions that have been voiced by members on the dev team. So it’s not a surprise that marginalized communities will act like this, the mod teams want to protect themselves and their users from having to deal with that kind of bullshit, and this is the option that doesn’t involve constant reports and months of stress added to their (already likely-hectic) lives.

                                                                            1. 24

                                                                              You’re saying Pleroma is inherently bad because bad actors use it? That’s not a very good argument.

                                                                              1. 18

                                                                                FWIW I read it more as a warning that you could get caught in the crossfire due to overworked moderators that make overly-broad policies as a measure of desperation, not “pleroma bad”

                                                                                1. 8

                                                                                  I think this is a misunderstanding - I’ve avoided migrating to Pleroma despite wanting to host my own instance because

                                                                                  1. a lot of people I’m friends with, including very technical people, have had a terrible time getting assistance from the maintainers, and

                                                                                  2. a lot of the rest of the Fediverse blocks Pleroma instances on sight, or nearly, because of some genuinely awful stuff that the developers have said and because of the preponderance of fashy instances. This is decidedly unfair to users but it’s not something that can be swept under the rug, not is it “politics over technology”.

                                                                                  1. 17
                                                                                    1. The Pleroma folks have only been helpful if anything at all. “My friends” isn’t a valid source.

                                                                                    2. Again, if you’re going to call a group of people “fashy”, the least you could do is provide sources. “Pleroma = Nazi” seems like a running meme on the fedi, always backed by ZERO evidence. Quit spreading FUD.

                                                                                    1. 1

                                                                                      Quit spreading FUD.

                                                                                      I don’t think you understand what FUD means. The point of FUD is to bolster other products, or remove the product from the ecosystem. How does removing Pleroma from the ecosystem make it better? Mastodon already has a monopoly on the fediverse, but regardless – they are both open projects with large contributor bases? So what exactly is gained here?

                                                                                      FUD implies that the person has something to gain from spreading Fear, Uncertainty, and Doubt. What exactly do random people on the fediverse gain from spreading this?

                                                                                      1. 4

                                                                                        What exactly do random people on the fediverse gain from spreading this?

                                                                                        That Mastodon remains the primary Fediversal network and thus shutting down whoever the network’s hivemind slightly disagrees with.

                                                                                        1. 2

                                                                                          To be quite honest, I don’t think “The Mastodon developers want to stop any competition by spreading that the developers of Pleroma are fascists” can be considered any less of a conspiracy theory than you consider “The Pleroma developers are fascists” to be.

                                                                                          Except the latter has a couple of hundred people in my network saying that they have had personal, negative interactions with the Pleroma developers along the lines of fascism. People who have literally nothing to gain from saying this. People who do not give a shit whether or not Mastodon is the primary node.

                                                                                  2. 5

                                                                                    You’re not giving a very charitable interpretation of their post.

                                                                                    Their comment isn’t that Pleroma is bad because bad people use it. Their comment is that, one disadvantage of Pleroma is that many mod teams ban Pleroma instances on sight.

                                                                                    The underlying reason why Pleroma instances are banned on sight might be that bad people use it, but “bad people use it, therefore it’s bad” wasn’t the argument.

                                                                                  3. 5

                                                                                    Because Pleroma is easy to set up, it is therefore easier for fash and nazis to set up.

                                                                                    This is weak and, imo, a bad way to open this (otherwise very much correct) post. It’s not that there are fashy Pleroma instances becuase it’s easier to set up; rather, it’s because the devs are, truly, terrible bigoted people, and because the software is, in my experience, used a lot more by fashy communities than other fediverse software is.

                                                                                    1. 15

                                                                                      That’s funny, my impression always was that Pleroma instances were a lot more pleasant, and their devs seem more interested in federation and otherwise sane technical practices. My theory is that this was because they didn’t promote themselves on twitter as a “twitter with better moderation”, which necessarily leads to a more toxic user base.

                                                                                      1. -1

                                                                                        their devs seem more interested in federation and otherwise sane technical practices

                                                                                        This is unfortunately true in my experience, in that they are more interested in these things than Eugen, while still expressing bigoted views and supporting overtly fashy instances.

                                                                                        1. 19

                                                                                          Sources please. This is a meme on Fedi, in my experience.

                                                                                      2. 15

                                                                                        the devs are, truly, terrible bigoted people

                                                                                        Example of this?

                                                                                        1. 15

                                                                                          It’s all misdirection and FUD. Nobody ever posts examples they just keep saying it and insisting that it’s true.

                                                                                          1. 14

                                                                                            That’s my point, if you can’t show me at least screenshots of someone saying or doing something terrible, I have no reason to believe you. There’s a ton of heresay and second-hand gossip on the Fediverse (and the internet in general) that I take basically no one’s word at face value.

                                                                                        2. 12

                                                                                          it’s because the devs are, truly, terrible bigoted people

                                                                                          Please cite examples of something they’ve done. This is the most bizarre baseless accusation.

                                                                                      1. 1
                                                                                        • Started working through part III of https://craftinginterpreters.com/contents.html in ‘modern C++’ this week, this is where I’m at: https://godbolt.org/z/fxE8nv (lexer done, bytecode vm and parser for grouped infix expressions done). Continue on that.
                                                                                        • Longer term I’ve been working on a side game project with the engine again in ‘modern C++’ but runs in WASM / web too (also testing on macOS, Windows and iOS – will do a native Android build soon). The web version provides an immediate mode UI API in C++ that makes HTML / CSS elements, and I use that to make a game editor. It also involves a reflection system that gives it serialization and automatic inspection UI capabilities. Screenshot here: https://i.imgur.com/dyUtL8f.png – but yeah, also continue on that.
                                                                                        1. 3

                                                                                          I develop a city building game (100% with Flutter). Gonna start implementing map and add travel ability. Say you can check what is new on map and send a squad there to loot resources or help strangers. Sometimes an interactive fiction event may start and you have to play a mini game.

                                                                                          I blog about development: https://gladimdim.org

                                                                                          Online version of the game (Flutter PWA) https://locadeserta.com/sloboda

                                                                                          Android (Flutter Native): https://locadeserta.com/citybuilding

                                                                                          1. 1

                                                                                            PWA is blank for me on iOS. 🤔

                                                                                          1. 2

                                                                                            It’s funny bc. in Smalltalk if/else are a … “not-poor” (I don’t like this verbage but will use in reference to the title) “man”‘s polymorphism; the former being impl’d using the latter.

                                                                                            In any case, it makes sense to structure your data and visit it in ways so as to reduce branching. eg. visit all the things you want to do A to first, then all the things for B, … and also lay them out in memory that way.

                                                                                            1. 2

                                                                                              Looks like using GSuite and allowing anyone in your company to setup Groups is a vulnerability. It wasn’t making that very clear and I kept wondering how someone gets the mail of any random company delivered to a group. I guess there are more companies using GSuite than I expected!

                                                                                              1. 2

                                                                                                For example, when you ask for a random number in Ruby using Kernel.rand, it automatically seeds the PRNG using the current time and process ID.

                                                                                                WHAT? Why would you do this? This can’t be safe. Why can’t we just use /dev/urandom? Who cares if Linux’s implementation is broken.

                                                                                                1. 2

                                                                                                  The two biggest horrific fuckups of almost every PRNG implementation is that a) the state is global and b) it’s automatically seeded. I really really wish people would just stop doing these things.

                                                                                                1. 6

                                                                                                  If management is sad and perplexed and regretful to see an employee leave, then that employee probably did not demand enough change from their managers. Management in this scenario, and in so many others, is not interested in the best interests of the employee. Accordingly, if an employee is depressed or otherwise experiencing negative mental health effects because of employment, then they have a reasonable expectation that their manager, if competent, must do something to improve the situation.

                                                                                                  1. 14

                                                                                                    +1. I’ve seen engineers fall into two camps when they’re unhappy with their job. The really vocal ones who never stop fighting / advocating for what they want / should happen, and the ones who just bottle it up and get really quiet.

                                                                                                    The former will either get what they want eventually, or they will leave but no will be surprised.

                                                                                                    The latter though… they get stuck in their head, working at the company becomes increasingly depressing / stressful, and one day they just quit. And everyone is surprised because, well, they didn’t say anything (or communicate it in a way that others perceived it as important / etc.).

                                                                                                    Not saying this is necessarily true of the author, but a more general comment.

                                                                                                    It’s always the silent ones.

                                                                                                    1. 9

                                                                                                      Why ask for something from your manager and risk getting fired when you can keep your job, find a new job, and then resign at your own time on your own timeline?

                                                                                                      Maybe your manager won’t fire you, but why take that risk? You don’t owe them anything.

                                                                                                      1. 6

                                                                                                        This is worth answering.

                                                                                                        The last two times I spoke up to management like this are still clear in my mind. In one situation, upper management had instructed employees in ways which contradicted federal law; in another situation, state law had been enacted which affected our products. In the former case, I spoke up not for myself, but for other employees who did not understand that they were being disenfranchised; in the latter case, I spoke up not for myself, but for the entire business’s legal safety.

                                                                                                        I don’t owe my managers anything, yes, but I do certainly owe my employer and fellow employees quite a bit. I have an ethical obligation, as well as possible legal obligations.

                                                                                                        Also, to be frank, I don’t really mind taking a break of a few months between jobs. Employment is difficult, employers are terrible people, and the entire system of wealth and labor extraction makes me sick and tired.

                                                                                                        1. 2

                                                                                                          I do certainly owe … fellow employees quite a bit

                                                                                                          Definitely! This is a great point. If you have the priviledge to be able to handle it, sticking your neck out for fellow employees is absolutely worth trying.

                                                                                                        2. 4

                                                                                                          Managers and ICs are not antagonists. The manager’s job is to interface with other teams and keep the IC out of endless meetings and business processes. This shouldn’t be a yes-boss situation.

                                                                                                          1. 4

                                                                                                            Except the manager has the power to fire the underling, and the underling has no influence over the manager. The power imbalance is real, even if most manager like to pretend it is not.

                                                                                                          2. 3

                                                                                                            I’m really confused why asking for any of these things would put you at risk of being fired? I’m a manager and I cannot imagine thinking about firing someone for expressing their desire for things to be different or better.

                                                                                                            1. 3

                                                                                                              I cannot imagine thinking about firing someone for expressing their desire for things to be different or better.

                                                                                                              Well, then I’m glad you’re a good manager :) But one is not generally safe to assume their manager is a good manager. “Asking for things to be different or better” is very contentious, and is definitely not just a safe thing to do in general.

                                                                                                              1. 2

                                                                                                                Absolutely agree with this.

                                                                                                                If there is genuine concern about being fired for asking a question about additional opportunities, it may be how the question is framed?

                                                                                                                1. 1

                                                                                                                  You’re making the right call, but not everyone does. I lost a job because of this. I escalated a normalization of deviance issue (social and technical – extreme callousness in communication re: legitimate high-severity defects, and an absurdly high potential for PR and/or technical damage to the enterprise), and it ultimately ended my tenure there. I can’t say any more, unfortunately – that’s how bad it went.