1. 2

    Someone should make an equivalent that allows communicating with axolotls through your screen, Cortazar style.

    1. 2

      We are working with the community to make the game and platform (very close to a Dreamcast) run in a emulator. The touch screen functionalities will probably be the most challenging.

      1. 1

        That would be pretty awesome and a great way to preserve that history. You might want to consider contacting The Living Computer Museum in Seattle to see if they’d be willing to put up am exhibit around simulated version.

        1. 2

          Indeed. Actually, we will try to have it in our own exhibition. But obviously, our preservation work can be reuse by other institutions.

        2. 1

          Is it on a Naomi board?

          1. 1

            It is closer to a regular Dreamcast I would say.

            1. 1

              Seriously though, I understand its importance for computer history, but I’m not sure if I understand who would buy it at the time. Is it a very advanced platform for this day made into a single-purpose computer? What’s unique about it other than the early use of touchscreen? Anyone knows what the list price was?

              1. 1

                I searched for “Sega Fish Life” on duckduckgo and found Fish Life at Sega Retro which says ¥498000.

                1. 1

                  Software was sold at 19800¥. The platform was, as indicated on SEGA website, targeting public places: “Perfect for use in the following locations:

                  • Restaurant Lounges
                  • Aquariums
                  • Hotel and Bank Lobbies, etc.
                  • Libraries
                  • Hospital Waiting Rooms
                  • Halls and Event locations”
                  1. 1

                    ¥498000 sounds like an obscene price that could hardly justify the purchase even for businesses. The software sounds affordable though, and if it was meant to be a platform for interactive displays, I definitely can see the appeal.

      1. 1

        Won’t this break their DDoS protection if Tor users decide to DDoS them?

        1. 7

          A DDoS about as powerful as an internet connection in the middle of Africa

          1. 2

            How would a Tor user DDoS someone?

            1. 1

              There could surely be a way to perform an amplification attack on a system using CloudFlare over Tor

              1. 3

                I think it’s reasonable to presume Cloudflare’s DDoS protection doesn’t reply on a tracking a single user on a shared IP address.

                1. 1

                  Yeah, but you start getting this page when you start getting DDoS’d or it thinks you’re a bot. I’m not sure if the feature for disabling this page will skip the DDoS barrier as well is what I’m saying

          1. 6

            Atlassian is hiring anybody interested in functional programming in Bengaluru. I’ll be available for training in any FP topics you want to learn. Haskell and Scala experience are beneficial but not necessary.

            Senior Full Stack Software Engineer

            Senior Front End Developer

            1. 1

              Nix and/or NixOS experience is super useful too. We use it to ship all of our team’s software.

              1. 1

                OT but do you have any thoughts about using Nix in anger?

                1. 6

                  We build Docker images from Nix then deploy them to Atlassian’s internal PaaS.

                  The benefits we get:

                  • I can build any image we ship to production, byte-for-byte
                  • When we change 1 line of code, we’re 100% confident only what we changed will be shipped
                  • All of our services use the same build commands

                  The problems we have:

                  • Documentation is not great, so Nix is hard to teach
                  • Very common things like pinning cause lots of questions (e.g. what’s problems are caused by Import From Derivation?)
                  • Therefore most team members rely on the few people who have invested the time reading nixpkgs and the Nix source

                  I think the problems are mostly solvable and the benefits can’t be obtained from any existing tools.

                  1. 2

                    It would be helpful for me to see an example of this (Nix->Docker->PaaS) with an example app, if you’re looking for things to write about on your blog.

                    1. 3

                      This shows the Nix and Docker tooling: http://lethalman.blogspot.com/2016/04/cheap-docker-images-with-nix_15.html

                      The PaaS part is mostly a docker push to a repo.

              2. 1

                Indian nationals only?

                1. 1

                  Atlassian will support relocation to offices, including Bengaluru.

                2. 1

                  I am located in bangalore. How can we discuss this further?

                  1. 1

                    Sent you a direct message

                1. 34

                  Good talk.

                  I recently used systemd “in anger” for the first time on a raspi device to orchestrate several scripts and services, and I was pleasantly surprised (but also not surprised, because the FUD crowd is becoming more and more fingerprintable to me). systemd gives me lifecycle, logging, error handling, and structure, declaratively. It turns out structure and constraints are really useful, this is also why go has fast dependency resolution.

                  It violates unix philosohpy

                  That accusation was also made against neovim. The people muttering this stuff are slashdot markov chains, they don’t have any idea what they’re talking about.

                  1. 22

                    The declarative units are definitely a plus. No question.

                    I was anti-systemd when it started gaining popularity, because of the approach (basically kitchen-sinking a lot of *NIX stuff into a single project) and the way the project leader(s) respond to criticism.

                    I’ve used it since it was default in Debian, and the technical benefits are very measurable.

                    That doesnt mean the complaints against it are irrelevant though - it does break the Unix philosophy I think most people are referring to:

                    Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new “features”.

                    1. 30

                      If you believe composability (one program’s output is another program’s input) is an important part of The Unix Philosophy, then ls violates it all day long, always has, likely always will. ls also violates it by providing multiple ways to sort its output, when sort is right there, already doing that job. Arguably, ls formatting its output is a violation of Do One Thing, because awk and printf exist, all ready to turn neat columns into human-friendly text. My point is, The Unix Philosophy isn’t set in stone, and never has been.

                      1. 7

                        Didn’t ls predate the Unix Philosophy? There’s a lot of crufthistory in unix. dd is another example.

                        None of that invalidates the philosophy that arose through an extended design exploration and process.

                        1. 4

                          nobody said it’s set in stone; it’s a set of principles to be applied based on practicality. like any design principle, it can be applied beyond usefulness. some remarks:

                          • i don’t see where ls violates composability. the -l format was specifically designed to be easy to grep.
                          • the sorting options are an example of practicality. they don’t require a lot of code, and would be much more clumsy to implement as a script (specifically when you don’t output the fields you’re sorting on)
                          • about formatting, i assume you’re referring to columniation, which to my knowledge was not in any version of ls released by Bell Labs. checking whether stdout is a terminal is indeed an ugly violation.
                          1. 6

                            i don’t see where ls violates composability. the -l format was specifically designed to be easy to grep.

                            People have written web pages on why parsing the output of ls is a bad idea. Using ls -l doesn’t solve any of these problems.

                            As a matter of fact, the coreutils people have this to say about parsing the output of ls:

                            However ls is really a tool for direct consumption by a human, and in that case further processing is less useful. For futher processing, find(1) is more suited.

                            Moving on…

                            the sorting options are an example of practicality. they don’t require a lot of code, and would be much more clumsy to implement as a script (specifically when you don’t output the fields you’re sorting on)

                            This cuts closer to the point of what we’re saying, but here I also have to defend my half-baked design for a True Unix-y ls Program: It would always output all the data, one line per file, with filenames quoted and otherwise prepared such that they always stick to one column of one line, with things like tab characters replaced by \t and newline characters replaced by \n and so on. Therefore, the formatting and sorting programs always have all the information.

                            But, as I said, always piping the output of my ls into some other script would be clumsier; it would ultimately result in some “human-friendly ls” which has multiple possible pipelines prepared for you, selectable with command-line options, so the end result looks a lot like modern ls.

                            about formatting, i assume you’re referring to columniation, which to my knowledge was not in any version of ls released by Bell Labs. checking whether stdout is a terminal is indeed an ugly violation.

                            I agree that ls shouldn’t check for a tty, but I’m not entirely convinced no program should.

                            1. 4

                              just because some people discourage composing ls with other programs doesn’t mean it’s not the unix way. some people value the unix philosophy and some don’t, and it’s not surprising that those who write GNU software and maintain wikis for GNU software are in the latter camp.

                              your proposal for a decomposed ls sounds more unixy in some ways. but there are still practical reasons not to do it, such as performance and not cluttering the standard command lexicon with ls variants (plan 9 has ls and lc; maybe adding lt, lr, lu, etc. would be too many names just for listing files). it’s a subtle point in unix philosophy to know when departing from one principle is better for the overall simplicity of the system.

                        2. 25

                          With all due respect[1], did your own comment hit your fingerprint detector? Because it should. It’s extrapolating wildly from one personal anecdote[2], and insulting a broad category of people without showing any actual examples[3]. Calling people “markov chains” is fun in the instant you write it, but contributes to the general sludge of ad hominem dehumanization. All your upvoters should be ashamed.

                          [1] SystemD arouses strong passions, and I don’t want this thread to devolve. I’m pointing out that you’re starting it off on the wrong foot. But I’m done here and won’t be responding to any more name-calling.

                          [2] Because God knows, there’s tons of badly designed software out there that has given people great experiences in the short term. Design usually matters in the long term. Using something for the first time is unlikely to tell you anything beyond that somebody peephole-optimized the UX. UX is certainly important, rare and useful in its own right. But it’s a distinct activity.

                          [3] I’d particularly appreciate a link to NeoVim criticism for being anti-Unix. Were they similarly criticizing Vim?

                          1. 9

                            [3] I’d particularly appreciate a link to NeoVim criticism for being anti-Unix. Were they similarly criticizing Vim?

                            Yes, when VIM incorporated a terminal. Which is explicitly against its design goals. From the VIM 7.4 :help design-not

                            VIM IS... NOT                                           *design-not*
                            
                            - Vim is not a shell or an Operating System.  You will not be able to run a
                              shell inside Vim or use it to control a debugger.  This should work the
                              other way around: Use Vim as a component from a shell or in an IDE.
                              A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
                              everything but the kitchen sink, but some people say that you can clean one
                              with it.  ;-)"
                            

                            Neo-VIM appears to acknowledge their departure from VIM’s initial design as their :help design-not has been trimmed and only reads:

                            NVIM IS... NOT                                          design-not
                            
                            Nvim is not an operating system; instead it should be composed with other
                            tools or hosted as a component. Marvim once said: "Unlike Emacs, Nvim does not
                            include the kitchen sink... but it's good for plumbing."
                            

                            Now as a primarily Emacs user I see nothing wrong with not following the UNIX philosophy, but at it is clear that NeoVIM has pushed away from that direction. And because that direction was an against their initial design it is reasonable for users that liked the initial design to criticism NeoVIM because moving further away from the UNIX philosophy.

                            Not that VIM hadn’t already become something more than ‘just edit text’, take quickfix for example. A better example of how an editor can solve the same problem by adhering to the Unix Philosophy of composition through text processing would be Acme. Check out Acme’s alternative to quickfix https://youtu.be/dP1xVpMPn8M?t=551

                            1. 0

                              akkartik, which part of my comment did you identify with? :) FWIW, I’m fond of you personally.

                              I’d particularly appreciate a link to NeoVim criticism for being anti-Unix

                              Every single Hacker News thread about Neovim.

                              Were they similarly criticizing Vim?

                              Not until I reply as such–and the response is hem-and-haw.

                              1. 9

                                To be fair I don’t think the hacker news hive mind is a good judge of anything besides what is currently flavour of the week.

                                Just yesterday I had a comment not just downvoted but flagged and hidden-by-default, because I suggested Electron is a worse option than a web app.

                                HN is basically twitter on Opposite Day: far too happy to remove any idea even vaguely outside what the group considers “acceptable”.

                                1. 4

                                  Indeed, I appreciate your comments as well in general. I wasn’t personally insulted, FWIW. But this is precisely the sort of thing I’m talking about, the assumption that someone pushing back must have their identity wrapped up in the subject. Does our community a disservice.

                                  1. 0

                                    OTOH, I spent way too much of my life taking the FUD seriously. The mantra-parroting drive-by comments that are common in much of the anti-systemd and anti-foo threads should be pushed back. Not given a thoughtful audience.

                                    1. 2

                                      Totally fair. Can you point at any examples?

                                      1. 3

                                        https://news.ycombinator.com/item?id=7289935

                                        The old Unix ways are dying… … Vim is, in the spirit of Unix, a single purpose tool: it edits text.

                                        https://news.ycombinator.com/item?id=10412860

                                        thinks that anything that is too old clearly has some damage and its no longer good technology, like the neovim crowd

                                        Also just search for “vim unix philosophy” you’ll invariably find tons of imaginary nonsense:

                                        https://hn.algolia.com/?query=vim%20unix%20philosophy&sort=byPopularity&prefix&page=0&dateRange=all&type=comment

                                        Please don’t make me search /r/vim :D

                                        1. 4

                                          thinks that anything that is too old clearly has some damage and its no longer good technology, like the neovim crowd

                                          That’s not saying that neovim is ‘anti-Unix philosophy’, it’s saying that neovim is an example of a general pattern of people rewriting and redesigning old things that work perfectly well on the basis that there must be something wrong with anything that’s old.

                                          Which is indeed a general pattern.

                                          1. 1

                                            That’s not saying that neovim is ‘anti-Unix philosophy’

                                            It’s an example of (unfounded) fear, uncertainty, and doubt.

                                            rewriting and redesigning old things that work perfectly well on the basis that there must be something wrong with anything that’s old.

                                            That’s a problem that exists, but attaching it to project X out of habit, without justification, is the pattern I’m complaining about. In Neovim’s case it’s completely unfounded and doesn’t even make sense.

                                            1. 1

                                              It’s not unfounded. It’s pretty obvious that many of the people advocating neovim are doing so precisely because they think ‘new’ and ‘modern’ are things that precisely measure the quality of software. They’re the same people that change which Javascript framework they’re using every 6 weeks. They’re not a stereotype, they’re actual human beings that actually hold these views.

                                              1. 2

                                                Partial rewrite is one of the fastest ways to hand off software maintainership, though. And vim needed broader maintainer / developer community.

                                                1. 0

                                                  Vim’s maintainer/developer community is more than sufficient. It’s a highly extensible text editor. Virtually anything can be done with plugins. You don’t need core editor changes very often if at all, especially now that the async stuff is in there.

                                                  1. 3

                                                    You don’t need core editor changes very often if at all, especially now that the async stuff is in there.

                                                    Which required pressure from NeoVim, if I understood the situation correctly. Vim is basically a one-man show.

                                          2. 2

                                            Thanks :) My attitude is to skip past crap drive-by comments as beneath notice (or linking). But I interpreted you to be saying FUD (about SystemD) that you ended up taking seriously? Any of those would be interesting to see if you happen to have them handy, but no worries if not.

                                            Glad to have you back in the pro-Neovim (which is not necessarily anti-Vim) camp!

                                2. 20

                                  What is FUD is this sort of comment: the classic combination of comparing systemd to the worst possible alternative instead of the best actual alternative with basically claiming everyone that disagrees with you is a ‘slashdot markov chain’ or similar idiotic crap.

                                  On the first point, there are lots of alternatives to sysvinit that aren’t systemd. Lots and lots and lots. Some of them are crap, some are great. systemd doesn’t have a right to be compared only to what it replaced, but also all the other things that could have replaced sysvinit.

                                  On the second point, it’s just bloody rude. But it also shows you don’t really understand what people are saying. ‘I think [xyz] violates the unix philosophy’ is not meaningless. People aren’t saying it for fun. They’re saying it because they think it’s true, and that it’s a bad thing. If you don’t have a good argument for the Unix philosophy not matter, or you think systemd doesn’t actually violate it, please go ahead and explain that. But I’ve never actually seen either of those arguments. The response to ‘it violates the Unix philosophy’ is always just ‘shut up slashdotter’. Same kind of comment you get when you say anything that goes against the proggit/hn hivemind that has now decided amongst other things that: microsoft is amazing, google is horrible, MIT-style licenses are perfect, GPL-style licenses are the devil-incarnate, statically typed languages are perfect, dynamically typed languages are evil, wayland is wonderful, x11 is terrible, etc.

                                  1. 8

                                    claiming everyone that disagrees with you is a ‘slashdot markov chain’ or similar idiotic crap

                                    My claim is about the thoughtless shoveling of groundless rumors. Also I don’t think my quip was idiotic.

                                    there are lots of alternatives to sysvinit that aren’t systemd

                                    That’s fine, I never disparaged alternatives. I said: systemd is good and I’m annoyed that the grumblers said it wasn’t.

                                    1. 2

                                      It’s not good though, for all the reasons that have been said. ‘Better than what you had before’ and ‘good’ aren’t the same thing.

                                      1. 1

                                        seriously. If you don’t like systemd, use something else and promote its benefits. Tired of all the talking down of systemd. It made my life so much easier.

                                        1. 1

                                          seriously. If you like systemd, use it and shut up about it. Tired of all the talking up of systemd as if it’s actually any better than its alternatives, when it is objectively worse, and is poorly managed by nasty people.

                                          1. 4

                                            Have you watched the video this thread is about? Because you really sound like the kind of dogmatist the presenter is talking about.

                                            If you like systemd, use it and shut up about it

                                            Also, isn’t this a double-standard, since when it comes to complaining about systemd, this attitude doesn’t seem that prevalent.

                                            1. 2

                                              No, because no other tool threatens the ecosystem like systemd does.

                                              Analogy: it wasn’t a double-standard 10 years ago to complain about Windows and say ‘if you like Windows, use it and shut up about it’.

                                              1. 3

                                                I see this kind of vague criticism when it comes to systemd alot. What ecosystem is it really breaking? It’s all still open source, there aren’t any proprietary protocols or corporate patents that prevent people from modifying the software to not have to rely on systemd. This “threat”, thr way I see it, has turned out to be at most a “ minor inconvenience “.

                                                I suppose you’re thinking about examples like GNOME, but on the one hand, GNOME isn’t a unix-dogmatist project, but instead they aim to create a integrated desktop experience, consciously trading this in for ideal modularity – and on the other, projects like OpenBSD have managed to strip out what required systemd and have a working desktop environment. Most other examples, of which I know, have a similar pattern.

                                  2. 6

                                    I think that the problem is fanboyism, echo chambers and ideologies.

                                    I might be wrong, so please don’t consider this an accusation. But you writing this sounds like someone hearing that systemd is bad, therefore never looking at it, yet copying it. Then one tries it and finding out that baseless prejudices were in fact baseless.

                                    After that the assumption is that everyone else must have been doing the same and one is enlightened now to see it’s actually really cool.

                                    I think that this group behavior and blindly copying opinions is one of the worst things in IT these days, even though of course it’s not limited to this field.

                                    A lot of people criticizing systemd actually looked at systemd, really deep, maybe even built stuff on it, or at least worked with it in production as sysadmin/devop/sre/…

                                    Yes, I have used systemd, yes I understand why decisions we’re taken, where authors if the software were going, read specs of the various parts (journald for example), etc.

                                    I think I have a pretty good understanding compared to at least most people that only saw it from a users perspective (considering writing unit files to be users perspective as well).

                                    So I could write about that in my CV and be happy that I can answer a lot of questions regarding systemd, advocate its usage to create more demand and be happy.

                                    To sum it up: I still consider systemd to be bad on multiple layers, both implementation and some ideas that I considered great but then through using it seeing that it was a wrong assumption. By the way that’s the thing I would not blame anyone for. It’s good that stuff gets tried, that’s how research works. It’s not the first and not the last project that will come out sounding good, to only find out a lot of things either doesn’t make a difference or make it worse.

                                    I am a critic of systemd but I agree that there’s a lot of FUD as well. Especially when there’s people that blame everything, including own incompetence on systemd. Nobody should ever expect a new project to be a magic bullet. That’s just dumb and I would never blame systemd for trying a different approach or for not being perfect. However I think it has problems on many levels. While I think the implementation isn’t really good that’s something that can be fixed. However I think some parts of the concept level are either pretty bad or have turned out to be bad decisions.

                                    I was very aware that especially in the beginning the implementation was bad. A lot got better. That’s to be expected. However next to various design decisions I consider bad I think many more were based on ideas that I think to most people in IT sound good and reasonable but in the specific scenarios that systemd is used it at least in my experience do not work out at all or only work well in very basic cases.

                                    In other words the cases where other solutions are working maybe not optimal, but that aren’t considered a problem worth fixing because the added complexity isn’t worth it systemd really shines. However when something is more complex I think using systemd frequently turns out to be an even worse solution.

                                    While I don’t wanna go into detail because I don’t think this is the right format for an actual analysis I think systemd in this field a lot in common with both configuration management and JavaScript frameworks. They tend to be amazing for use cases that are simple (todo applications for example), but together with various other complexities often make stuff unnecessarily complicated.

                                    And just like with JavaScript frameworks and configuration management there’s a lot of FUD, ideologies, echochambers, following the opinion of some thought leaders, and very little building your own solid opinion.

                                    Long story short. If you criticize something without knowing what it is about then yes that’s dumb and likely FUD. However assuming that’s the only possible reason for someone criticizing software is similarly dumb and often FUD regarding this opinion.

                                    This by the way also works the reverse. I frequently see people liking software and echoing favorable statements for the same reasons. Not understanding what they say, just copying sentences of opinion leaders, etc.

                                    It’s the same pattern, just the reversal, positive instead of negative.

                                    The problem isn’t someone disliking or liking something, but that opinions and thoughts are repeated without understanding which makes it hard to have discussions and arguments that give both sides any valuable insides or learnings

                                    Then things also get personal. People hate on Poetteing and think he is dumb and Poetteing thinks every critic is dumb. Just because that’s a lot of what you see when every statement is blindly echoed.

                                    1. 1

                                      That’s nice, but the implication of the anti-systemd chorus was that sys v init was good enough. Not all of these other “reasonable objections” that people are breathless to mention.

                                      The timbre reminded me of people who say autotools is preferrable to cmake. People making a lot of noise about irrelevant details and ignoring the net gain.

                                      But you writing this sounds like someone hearing that systemd is bad, therefore never looking at it, yet copying it.

                                      No, I’m reacting to the idea that the systemd controversy took up any space in my mind at all. It’s good software. It doesn’t matter if X or Y is technically better, the popular narrative was that systemd is a negative thing, a net-loss.

                                      1. 2

                                        In your opinion it’s good software and you summed up the “anti-systemd camp” with “sys v init was good enough” even though people from said “anti-systemd camp” on this very thread disagreed that that was their point.

                                        To give you an entirely different point of view, I’m surprised you don’t want to know anything about a key piece of a flagship server operating systems (taking that one distro is technically an OS) affecting the entire eco system and unrelated OS’ (BSDs etc.) that majorly affects administration and development on Linux-based systems. Especially when people have said there are clear technical reasons for disliking the major change and forced compliance with “the new way”.

                                        1. 2

                                          you summed up the “anti-systemd camp” with “sys v init was good enough” even though people from said “anti-systemd camp” on this very thread disagreed that that was their point.

                                          Even in this very thread no one has actually named a preferred alternative. I suspect they don’t want to be dragged into a discussion of details :)

                                          affecting the entire eco system and unrelated OS’ (BSDs etc.)

                                          BSDs would be a great forum for demonstrating the alternatives to systemd.

                                          1. 2

                                            Well, considering how many features that suite of software has picked up, there isn’t currently one so that shortens the conversation :)

                                            launchd is sort of a UNIX alternative too, but it’s currently running only on MacOS and it recently went closed source.

                                    2. 3

                                      It violates unix philosohpy

                                      That accusation was also made against neovim. The people muttering this stuff are slashdot markov chains, they don’t have any idea what they’re talking about.

                                      i don’t follow your reasoning. why is it relevant that people also think neovim violates the unix philosophy? are you saying that neovim conforms to the unix philosophy, and therefore people who say it doesn’t must not know what they’re talking about?

                                      1. 1

                                        are you saying that neovim conforms to the unix philosophy, and therefore people who say it doesn’t must not know what they’re talking about?

                                        When the implication is that Vim better aligns with the unix philosophy, yes, anyone who avers that doesn’t know what they’re talking about. “Unix philosophy” was never a goal of Vim (”:help design-not” was strongly worded to that effect until last year, but it was never true anyways) and shows a deep lack of familiarity with Vim’s features.

                                        Some people likewise speak of a mythical “Vim way” which again means basically nothing. But that’s a different topic.

                                        1. 1

                                          vim does have fewer features which can be handled by other tools though right? not that vim is particularly unixy, but we’re talking degrees

                                      2. 1

                                        The people muttering this stuff are slashdot markov chains, they don’t have any idea what they’re talking about

                                        I’ll bookmark this comment just for this description.

                                      1. 8

                                        Why are we upvoting a press release?

                                        1. 2

                                          Apologies if lobste.rs isn’t the right place for this announcement. But I can’t help but wonder why that might be. Can you or one of the upvoter’s explain?

                                          1. 2

                                            Look at the rest of the discussion in this thread. It’s about nim the technology. There are heaps of other places to post and read press releases. lobste.rs is a place to discuss technology.

                                            There are no hard and fast rules about what links are appropriate here. I suggest taking a look at this meta thread on the topic of Lobsters Community Standards.

                                        1. 1

                                          The repository offering an execSql method isn’t a punched-through abstraction. For example, where is that Transaction type coming from? The ORM? The ORM is also the DB abstraction layer?

                                          I assume the repository is initialised with a connection to the database. That connection and the whole abstraction around the DB is what the author decided “punched-through” to…

                                          My takeaway is that the author feels services should expose their dependencies.

                                          1. 3

                                            14 newsletters is way too many

                                            1. 5

                                              This is textbook example of a link-spam article.

                                            1. 1

                                              I must have missed where in this video ReasonML, the language, is actually introduced. Double-click a Visual Studio plugin aaaaaand… continued in the next, as yet unreleased, video?

                                              1. 2

                                                If you’re interested in more:

                                              1. 3

                                                In progress:

                                                Recently finished:

                                                • Building E-commerce Applications, a complete waste of money and basically just a lazy compilation of undedited blog posts. Booooo.

                                                • Come and Take It: The Gun Printer’s Guide to Thinking Free, by Cody Wilson of Defense Distributed fame. I finished this probably a week before the current kerfluffle started. There’s a whoooole lot of self-congratulatory bullshit and bluster in this, as Wilson is first and foremost (in my opinion) an attention whore, but buried in there are a couple of good reflections on the role of toolmakers in the pursuit of independence.

                                                • Come as You Are, a delightful book by Emily Nagoski that I heard about through OhJoySexToy (webcomic about sexual health and practices). It covers a lot of interesting academic information about sex, attraction, and romance, and can help in debugging certain failure modes of relationships or in preemptively being a better partner.

                                                1. 3

                                                  buried in there are a couple of good reflections on the role of toolmakers in the pursuit of independence.

                                                  We cannot be free until we control the means of production? That sounds like a good reflection, all right :-)

                                                  (Note: this may sound like I’m trying to rile you. I’m not, I am genuinely amused to see Marx echoed in this unexpected context.)

                                                  1. 4

                                                    As the good Chairman once said, “Political power grows out of the barrel of the gun…”.

                                                    A lot of Marxists, communists, and libertarians I think would actually have a lot to talk to each other about if they weren’t so busy engaging in culture war these days.

                                                    1. 3

                                                      It isn’t too surprising, since all three sprang from the same philosophical tradition.

                                                      A funny aside: a friend of mine recently noted, with regard to economics, we’re all Marxists now.

                                                      1. 3

                                                        Yup! Certain groups don’t really like to think about it, but because Marx did the first serious systematic analysis of how economies worked on a global scale (and coined the word “capitalism”, although contrary to popular opinion he did not coin but merely redefined “communism”), all modern economics owes a debt to Marx at least as big as the one it owes to Von Neumann. Even those opposed to Marx’s conclusions are using methods he pioneered to fight them. (Or, to be more direct: “economics begins with Marx” / “Karl Marx invented capitalism”)

                                                        1. 2

                                                          You might like this recent podcast episode from BBC Thinking Allowed: Marx and Marxism: https://www.bbc.co.uk/programmes/b0b2kpm0

                                                  2. 3

                                                    Come and Take It: The Gun Printer’s Guide to Thinking Free, by Cody Wilson of Defense Distributed fame. I finished this probably a week before the current kerfluffle started. There’s a whoooole lot of self-congratulatory bullshit and bluster in this, as Wilson is first and foremost (in my opinion) an attention whore, but buried in there are a couple of good reflections on the role of toolmakers in the pursuit of independence.

                                                    This was on my reading list; but, after I did the ’ol Amazon “Look Inside,” I took it off because it looked like the signal/noise would be unacceptable. Please give a shout if it ends up being worthwhile. I watched a few of his pre-DD/early-DD lectures on philosopy, and the guy gave me stuff to chew on.

                                                    1. 2

                                                      So, again, having finished it I think the same points could be handled in a pamphlet instead of the drawn-out narrative Wilson attenpts.

                                                      1. 1

                                                        Thanks for humouring my obviously lacking reading comprehension skills. 🤦🏾‍♂️

                                                      2. 1

                                                        Lectures on philosophy? Had no idea he was into that, mind sharing some links?

                                                        1. 2

                                                          Cody Wilson Philosophy, Part I is the first of a two part series.

                                                          Why I printed a gun is short and sweet; but, doesn’t get too deep.

                                                    1. 2

                                                      My last book was King Leopold’s Ghost. It’s the story of how Belgium— or more specifically, their king— colonised the Congo. To the author’s credit, he doesn’t shy away from the horrors of history; but, he also is clear about his contemporary moral judgements too.

                                                      I’m half-way through Structures: Or Why Things Don’t Fall Down. The author, J.E. Gordon, has been called one of the founders of materials science. This book is a layman’s introduction to structural and materials engineering. The highest compliment I can give is that Gordon’s way of explaining his subject is Feynman-esque.

                                                      Next up: Getting Past No and Getting To Yes, two infamous texts on negotiation that came from Harvard Law School. I’ve absorbed bits and pieces of their valuable advice throughout my years in consulting. It’s long-past time for me to give them a proper read.

                                                      1. 4

                                                        My Lisp take:

                                                        (defun circular-p (list) (setf *print-circle* t) (eql #\# (aref (format nil "~A" list) 0)))

                                                        1. 3

                                                          YES 🤣

                                                        1. 2

                                                          I’ve never heard of this joke, but if you want to find a cycle in a linked list, the canonical way to do it is to use two pointers and have one walk one step at a time, while the other walks two. If they are ever equal after they take a step, there’s a cycle. Using signals is – I think it’s safe to say – way over the top. (Unless that’s the joke.)

                                                          1. 8

                                                            That is the joke. The way I heard it was: keep free()ing the nodes, and if there’s a crash (due to double-free) you found a cycle.

                                                            1. 2

                                                              I’ve heard of the two-pointer approach (with pointer variables typically given the names “tortoise” and “hare”), but I really like the double-free approach.

                                                              1. 1

                                                                Of course, free(x) could be a noop if you have a garbage collecting C (like Zeta-C)

                                                              1. 2

                                                                tbh TLD as a concept is as alien to end-users as IP address.

                                                                people want to go to facebook, so they try facebook.com because .com is the ‘go-to’ for websites.

                                                                Now whenever i want to order pizza i just google “dominoes” so i can sidestep the domain guessing completely.

                                                                so google is a second level dns system and it’s how the whole thing should work in the first place

                                                                1. 5

                                                                  people want to go to facebook, so they try facebook.com because .com is the ‘go-to’ for websites.

                                                                  Probably but in non US countries there is a mix of tlds used. About 50% of websites here will use the ccTLD and there is a good mix of .org and .net used as well as .org.au and .net.au. Also a lot of new websites are using .io and .tv

                                                                  But like you said, I doubt many people type domains names anymore and just search the website name.

                                                                  1. 4

                                                                    tbh TLD as a concept is as alien to end-users as IP address.

                                                                    I agree.

                                                                    people want to go to facebook, so they try facebook.com because .com is the ‘go-to’ for websites.

                                                                    … in the US.

                                                                    Now whenever i want to order pizza i just google “dominoes” so i can sidestep the domain guessing completely.

                                                                    You don’t search your app store for a “dominoes” app? 😉

                                                                    1. 1

                                                                      I feel like this is interesting opsec article, even though not technical. What would be the best topic/category for it?

                                                                      1. 1

                                                                        Best topic/category? There isn’t, it’s not lobste.rs material.

                                                                        That said, I thought it was interesting too. I even linked it to a few friends.

                                                                    1. 7

                                                                      Note that there is no proof that this actually a page built by ARM as far as I can tell, and the domain is registered with domain privacy on a different registrar than other ARM or SoftBank owned domains.

                                                                      I’m not saying this is not an official ARM page, but it might just as well be some prankster trying to make ARM look bad by creating this foot-in-mouth campaign page which can’t not be compared to the old and eternally criticized Microsoft “Get the facts” campaign of yesteryear.

                                                                      Edit: and it’s been taken down. Either ARM realized the negative PR this was causing, or it’s been taken down because of unauthorized use of the ARM trademarks, or the prankster’s Azure credit ran out?

                                                                      1. 16

                                                                        Note that there is no proof that this actually a page built by ARM […]

                                                                        The infographic is hosted on ARM’s servers.

                                                                        1. 6

                                                                          Well that’s pretty conclusive, never mind me!

                                                                      1. 5

                                                                        Generative artwork has been dominated by the intelligent and the intellectual. It has been obsessed with the discovery of clever algorithms and optimizations.

                                                                        I think the author should provide evidence of his premise. I can’t think of any generative art where the method was emphasized more than the outcome. Maybe my experience is an exception to the rule.

                                                                        Secondly, I’m not sure that the method doesn’t matter. He makes some very broad generalizations about the audience: “the viewer doesn’t give a shit if Rothko ground his own pigment by hand.” I don’t know how many viewers tend to care about that detail of Rothko’s work in particular. But I think many viewers do care about the methods used to produce Sol Lewitt’s Instruction-based art. And those works, which are essentially algorithms manually executed by assistants, are a much closer analogue to generative art produced with a computer. It is banal to point out that people, both artists and audience, are different and will find meaning in different things. Some people find the method meaningful. Others don’t. This should be something we all already understand.

                                                                        In general, this piece lacks nuance and fails to meet a basic standard for critical thinking.

                                                                        1. 3

                                                                          I can’t think of any generative art where the method was emphasized more than the outcome.

                                                                          Algorithmic symphonies from one line of code and Some deep analysis of one-line music programs.

                                                                          1. 2

                                                                            What’s completely missing from the article is that inspiration often comes through process and as a product of the repeated, practiced application of process.

                                                                            Agnes Martin’s work is a great example, it’s dense and obsessive and preternaturally powerful, she spent years and years doing it over and over, her work got denser and more powerful the more she did it and as far as I can tell the inspiration happened in tandem(/symbiosis) with or as a function of her relentless work on it. Sure there can be an inspiration to make a great work but without the skill and the process required to realise it the great work doesn’t happen.

                                                                            Rothko’s process was fundamental, and because we don’t have any Rothko work to which he didn’t apply his process, we have no way of knowing whether art he produced without doing so would have been able to produce the extraordinarily deep and emotionally rich work he produced with it. I’m no expert but I’m guessing no, the reason the work is so strong is not only the process nor only the inspiration but a combination of the two, honed and enriched by years of practice, until the process and the inspiration are completely intertwined and function as one. Which is why his work was so extraordinary and why he was such an extraordinary talent. And why it probably makes a great deal of difference to the viewer that he ground his own pigment, even if they’re not aware of it, because that was necessary to achieve the inspired effect he was aiming for.

                                                                            And - here’s the point - all of this is why it’s so incredibly rare to get genuinely good, meaningful generative art, because the mix of sufficient technical skill with sufficient artistic inspiration is so damn rare, and (in my view at least) a majority of it is people who are good at math or geometry or OpenGL and fancy themselves as artists, but are far from that, because they either haven’t got the natural inspiration as a starting-point or they haven’t spent long enough developing it yet.

                                                                            So yes, of course an overly intellectual focus will likely produce a less emotionally connecting or inspired piece of work - but pure emotion or inspiration without technical capability, at least in something as fundamentally technically complex as generative art, will likely produce works that just aren’t very good. Arguing it should be more of one aspect than the other seems to me to be missing the point.

                                                                            (Post written on the bus in a moment of inspiration subsequently edited on the desktop for technical correctness and, uh, coherence)

                                                                          1. 10

                                                                            I’ve started valuing simplicity a lot more lately, I think unless there is a very good reason the simpler the code, the better. But, I believe that correctness should go first. If a program is not correct it doesn’t matter if it’s simple, it will just not do whatever it’s meant to do, so it is a bad program. I understand where you are coming from, if it’s complex the chances of it also being not correct are higher. But I still think correctness should be placed above.

                                                                            That said I agree that we should strive for simplicity a lot more than we do. Just recently, at the new job I’ve started at, I’ve been rewriting a whole part of the codebase which has mostly come down to simplifying a lot what was there. I’ve found that a very good way of simplifying is thinking about the data flow inside your application. Instead of thinking in some “elegant” abstract organization of code think what data comes in, how the data is transformed and then how it leaves. Once you’ve found how the data is transformed, the program structure will become a lot simpler in my experience. So that’s mostly what I’ve been doing.

                                                                            1. 12

                                                                              I think it’s easier to make simple code correct than to make correct code simple (without starting over and having to make it correct again). If our objective is to reach the same end point, then we should take the easier path.

                                                                              1. 1

                                                                                I think I might disagree. How do I know my code is correct? However I know, that is the key. Even in the worst case of starting over— something someone who isn’t me may do in the future— correctness remains.

                                                                                Writing complicated code in the exploration of a design space can be the easier path.

                                                                                1. 1

                                                                                  If we’re talking about a section of code that will be more or less written once and considered “finished”, then I would agree that correctness should come first. This situation certainly exists, but many of us have probably never encountered it. In the case of “living” software (for which the requirements are constantly evolving, for better or for worse), simplicity makes ongoing correctness more attainable. To be clear, though, I don’t think this is a “pick two” kind of a deal, you need all three, but the order in which you satisfy them matters.

                                                                              2. 3

                                                                                but it’s not just a choice “oh shall I make this simple or go with a complex solution?”, it’s a constant battle. it takes a mix of art, design, genius, care. We are told not to do rewrites but rewrites are one of the best ways to achieves simplicity.

                                                                                Instead of thinking in some “elegant” abstract organization of code think what data comes in, how the data is transformed and then how it leaves. Once you’ve found how the data is transformed, the program structure will become a lot simpler in my experience. So that’s mostly what I’ve been doing.

                                                                                I think this is one of the best guidelines we could give for “how to achieve simplicity” in programming.

                                                                                1. 2

                                                                                  but it’s not just a choice “oh shall I make this simple or go with a complex solution?”, it’s a constant battle. it takes a mix of art, design, genius, care.

                                                                                  Yes, simplicity in a complex (or even in a simple!) domain is very hard to achieve, and I think we should all strive for that as much as we can. But I still think that correctness has to come first for the simplicity to be meaningful.

                                                                                  We are told not to do rewrites but rewrites are one of the best ways to achieves simplicity.

                                                                                  Couldn’t agree more, I recently read an article (that I can’t find now) about how repetition of code is less costly than the wrong abstraction. I think that is very true, and for that to work we need to be constantly refactoring and rewriting our code in order to simplify in the right ways instead of settling in a wrong abstraction early in the process. Bloat and complexity are diseases for a program.

                                                                              1. 5

                                                                                The conflation of “correct” with the absence of bugs makes this argument hard to critique.

                                                                                1. No code is bug-free.
                                                                                2. Software with bugs is not correct.
                                                                                3. Simple code is easier to make correct.
                                                                                4. Simple code is easier to make fast.
                                                                                5. Therefore: prioritise simple code, to make future work easier.

                                                                                If I’m understanding this argument correctly, then I see several fallacies. The biggest problem is the assertion that no code can ever be correct. Then why even try for simplicity? What is the heuristic for knowing if my simple code is correct… enough?

                                                                                I think there might be something in another assertion: correct code is easier to make simple. Most first cuts at a problem are complicated. But it’s hard as hell to get to simple without knowing what logic can stay and what logic is extraneous.

                                                                                You need to take problems apart, identify smaller problems within them and ruthlessly remove scope until you find the basic problem you can apply a basic solution to.

                                                                                This proposal defers the conflict. Once I have a “basic” problem and solution… then what?

                                                                                This argument ignores the jump from not-working code to working code. This argument assumes “simple” code is easy to understand and easy to change.

                                                                                Get off my lawn. 😉

                                                                                1. 3

                                                                                  The conflation of “correct” with the absence of bugs makes this argument hard to critique.

                                                                                  Yeah. For me, coming from a theoretical CS background, correctness is meaningless without a formal specification. If you don’t have a spec, how can you even know what correctness is? Code that you debug into existence alongside a kind of “I know it when I see it spec” can be perfectly functional and useful, but not “correct” in any meaningful sense.

                                                                                  (Sometimes of course, you debug something into existence & then realise that there’s an underlying structure to the problem that you hadn’t seen before. Bonus! Now you can spec it out and catch future errors, if you care enough to do that.)

                                                                                1. 2

                                                                                  Great post - I admit to being a bit curious to see those rspec macros too, even if it’s not a general approach.

                                                                                  1. 5

                                                                                    I don’t know about macros; but, I often generate tests from data in rspec. I too am curious what the macros bring to the table.

                                                                                    I found this rspec truth table DSL too. It has a nice syntax…

                                                                                    1. 2

                                                                                      I really wish I could share them, but it was at an old job and I don’t have the source code :(

                                                                                      1. 1

                                                                                        I don’t know about Rust. The matching in F# allows coding up sophisticated match situations. The compiler will tell you if you have left out a case. My favorite example is balancing a Red/Black Tree. This would be many lines of hard to understand imperative code:

                                                                                        type a t =

                                                                                        | Node of color * a * a t * a t 
                                                                                        
                                                                                        | Leaf
                                                                                        

                                                                                        let balance = function

                                                                                        | Black, z, Node (Red, y, Node (Red, x, a, b), c), d
                                                                                        
                                                                                        | Black, z, Node (Red, x, a, Node (Red, y, b, c)), d
                                                                                        
                                                                                        | Black, x, a, Node (Red, z, Node (Red, y, b, c), d)
                                                                                        
                                                                                        | Black, x, a, Node (Red, y, b, Node (Red, z, c, d)) ->
                                                                                        
                                                                                        	Node (Red, y, Node (Black, x, a, b), Node (Black, z, c, d))
                                                                                        | x -> 
                                                                                        	Node
                                                                                        
                                                                                      1. 0

                                                                                        In a slavery, the ultimate threat is the threat of violence. You can beat a disobedient slave. You can beat the gulagees or the prisoners in reeducation camps.

                                                                                        What is going on here is that some people who have terrible starts at life, were given an opportunity to make their lives relatively better. But these opportunities are relatively worse from the position of a western developed worlders. So these westerners then complain about the from-their-view-poorer conditions.

                                                                                        Do abuses exist, yes. But I know a teenager who works at a retail store who’s not realising his full leverage as given by the laws. His parents also let it slide, because they think it’s good for him to learn ‘how it is like in the real world’. So from a full-on lawyer perspective, one could say the guy is being abused.

                                                                                        The workers have to work a low paying job with bad condition because her financial situation, the relative wealth of her birth country and other factors reduce her negotiative power. But despite any of that, she’s better off working in these poor conditions with low pay than she would be back at her village. She is better of being given this opportunity.

                                                                                        The labour of developed countries back when the countries were developing had to endure such conditions too. And their leveraged that to give their children and themselves better lives in time. Every society has got to go through this process. If you try to impose enforced better pays and conditions, the employers will move to another country or another labour pool, and these poor workers will lose their chance to improve their lives. The surplus of poor people will always ensure that there’s some people ready to be ‘abused’ for $2 a day, because the alternative is even worse.

                                                                                        1. 30

                                                                                          I think your comment could be a valuable historic source in the future.
                                                                                          It shows pretty well the kind of rationalization “western developed worlders” do of the oppression they foster and benefit from. Teenagers abused in retail stores learn “real world” just as girls that were abused in Nigeria.

                                                                                          Just because criminals do it, it’s not something we should teach.

                                                                                          In a slavery, the ultimate threat is the threat of violence.

                                                                                          Some consider tortures as a form of violence. And starvation is a form of torture, you know?
                                                                                          Just because it’s inflicted by a community instead of a deputed soldier, it does not means it’s less violent.

                                                                                          She is better of being given this opportunity.

                                                                                          You should really read more carefully.
                                                                                          These people pay for this “opportunity”. They literaly take loans on their house to pay for it.
                                                                                          And, it turns out, they pay to be enslaved. The product does not match the promises. They are tricked.

                                                                                          Because you know, when private people have the power to remove your civil rights if you don’t do what they want, you are a slave. And if they can remove your civil rights when you get pregnant, you are a slave. And they can force you to pay for a job, you are a slave…

                                                                                          Every society has got to go through this process. […]
                                                                                          The surplus of poor people will always ensure that there’s some people ready to be ‘abused’ for $2 a day..

                                                                                          Honestly I find this argument pretty disgusting.
                                                                                          Exploting people weakness just because you can is not something that have a place in a civil world.

                                                                                          As someone who claim to “fight for freedom”, you should really consider what kind of freedom you are supporting. The freedom of western consumers? The freedom of western IT companies? Who’s the freedom you care about?

                                                                                          1. 1

                                                                                            It shows pretty well the kind of rationalization “western developed worlders” do of the oppression they foster and benefit from.

                                                                                            So how do you rationalise all the stuff you consume that were produce through this process?

                                                                                            1. 4

                                                                                              Creating a demand is not inherently wrong. How companies choose to go about fulfilling the demand is where the concern is. One thing consumers do have is the power to choose which companies they spend their dollars with. Some companies are better than others.

                                                                                              1. 3

                                                                                                Why should I rationalise?

                                                                                                I actively minimize the blood footprint of my purchease. And I only buy what I really need. Often used.

                                                                                                Also I actively teach people to be “Ads Adverse”: the more people try to convince me to buy something the less I’m going to buy it. Culture, knowledge and critical thinking are the key to freedom.

                                                                                                Indeed each marketing campaign convey (at least) two message:

                                                                                                • one is specific to one product: you need this shit to be happy (whatever it means to you)
                                                                                                • one is general capitalist propaganda: you are the shit you own

                                                                                                Both are ridicously false! But propaganda’s goal is always to make the oppressed internalize the oppression so that they cannot challenge it effectively. As you can see in yourself, it’s pretty effective.

                                                                                                I do not rationalise the means of oppressions that oppress me, you and Malasian immigrants.
                                                                                                I study them. And I actively fight them through culture. I make them evident.

                                                                                                I do not think that the solutions to the bloody issues of Capitalism can be found in free market.
                                                                                                That’s groupthink. The solutions are in culture, knowledge, understanding.

                                                                                                Meanwhile I call people with their name, be it “murderer” at Uber and Tesla, “slavist” at Apple and so on…

                                                                                                1. 0

                                                                                                  I actively minimize the blood footprint of my purchease.

                                                                                                  Do you?

                                                                                                  Because the very fact that you are capable of replying to me, shows that you have not minimised your blood footprint.

                                                                                                  1. 1

                                                                                                    I know it might seem impossible to people used to represent all values through the same unit, but in fact you can optimize several dimensions at once.

                                                                                                    Also, in a complex system you have leverage, multipliers and so on to consider, so that you can have a zero (or even negative) sum over a dimension while having non-zero magnitudes all over the other dimensions.

                                                                                                    But if all this math seems too complex for you, consider I have legally free access to several internet connected public and private computers that I did not buy and I do not own.
                                                                                                    I let you as an exercise to guess how it is possible… :-)

                                                                                              2. 10

                                                                                                many employers also confiscate and hold workers’ passports in order to keep them from leaving an untenable situation

                                                                                                1. 7

                                                                                                  Work makes freedom - as you point out.

                                                                                                  1. 6

                                                                                                    This might be the cleanest Godwin call-out I’ve ever seen. I tip my hat to you.

                                                                                                  2. 6

                                                                                                    The surplus of poor people will always ensure that there’s some people ready to be ‘abused’ for $2 a day

                                                                                                    I know that I won’t convince you to change your worldview by typing into a text box on a website where you have put your very worldview into your username, but please consider the possibility that poverty is intentionally created and sustained to maintain a cheap labor market.

                                                                                                    What would that look like? Who would benefit? What would they say to keep it going? Does that imaginary world match what you see in the real one?