1. 3

    I don’t understand why this matters. Both Windows and Mac versions can still be downloaded from the docker website without logging in:

    I found those by googling “docker for $OS”. The Mac page was the top result and the windows was the third.

    1. 16

      I searched docker for windows and it took me to this page. Which asks for a login to download. I think the big deal is how dishonest the reply from the docker team is.

      “we’ve made this change to make sure we can improve the Docker for Mac and Windows experience for users moving forward.”

      This is such obvious marketing BS and it’s insulting that they think the average developer doesn’t know this is so they can send more marketing emails and not to “Improve experiences”.

      1. 1

        In their defense, it takes money to improve the experience, and marketing yields money. So indirectly, marketing allows them to improve the experience. I entirely agree that they should just come out and say that, however.

        1. 1

          I love this reasoning! I wonder where else they could improve.

          I think funneling more docker users into Enterprise plans would be big $$$, maybe they could cap the number of images downloaded from the store for free, and then sell licences for more downloads.

      2. 7

        It’s required from >= 18.03

      1. 2

        Does anyone here use Bitwarden? I didn’t know about it, but it looks really attractive.

        1. 3

          Yes, it’s awesome. It’s also the only password manager that has a Firefox for Android extension (to my knowledge).

          1. 3

            Yes. It has some rough edges – I wish syncing was better – but it’s working great.

            My syncing issue has to do with the fact that everything has its own copy the data: desktop app, mobile app, browser plugins, etc. When you make a change they do not sync between them all immediately. You can have a Bitwarden app or plugin that is days behind so you have to go to settings and do a manual sync. Very annoying, but not a deal breaker.

            1. 2

              I use the venerable pass. It has none of this mobile mumbojumbo or autosync frills the kids today are talking about.

              It’s so simple and lean, I never thought pass git pull would be annoying.

              I would appreciate a mobile UI sometimes, though. A Sailfish client. But that’s not a dealbreaker either.

              Maybe I could hook the missus up with Rubywarden, though. Pass would be too much for her.

              Addendum: There appears to be a QML frontend on OpenRepos. Found through storeman. Not a complete client but have to give it a spin :)

              1. 1

                There is definitely a pass app for android. I’m not sure about iOS.

                1. 1

                  As someone who uses a mobile and two desktops, having passwords being synced across devices is a must-have. It’s just too much of a pain to remember to copy new passwords from my phone to machine A, then B, and vice-versa.

                  1. 1

                    Home desktop, work desktop, work laptop, work macOS laptop and hopefully soon two Sailfish mobiles running pass.

                    Made git pull a habit, not a chore, but ymmv.

              2. 2

                yeah, it’s open source and possible to run self-hosted as well.

                check out the discussion from a topic from a few days ago, id just be copying from there:

              1. 3

                In the industry, you can optimize througput over latency because you produce the same thing over and over again. But in software development, you usually develop something new. If the software you need already exists, you just use it. You need an agile process because you develop something new, and you cannot plan everything ahead of time. Some issues are discovered along the road. Because of this, I don’t think the latency versus throughput trade-off is really relevant here.

                1. 2

                  And yet, we do reinvent the wheel very often in software development. Sure, nobody writes the same program a million times but there are plenty of programmers who pump out CRUD web apps.

                  1. 3

                    But those CRUD apps are customized, and the customer paying for them may change the requirements. “Develop something new” doesn’t have to mean “develop something revolutionary” or even “develop something novel”, it just means something that doesn’t already exist.

                    To the extent that most CRUD apps share certain design characteristics, that’s why we’ve got LEGO programming or whatever people are calling it now. But even if you use a bunch of off-the-shelf components the customer can make decisions that result in the need to put the pieces together somewhat differently.

                1. 24

                  As I read this I thought about my experiences with Diaspora and Mastodon. Pages like this one or this one (click “Get Started”, I couldn’t do a deep link because JavaScript) are, IMHO, a big part of the reason these services don’t take off. How can an average user be expected to choose from a basically random list of nodes? How can I, a reasonably “technical” person, even be expected to do so?

                  So then why not host my own node? First, I don’t have time and most people I know don’t either. If I was 15 again I totally would because I had nothing better to do. I also don’t want to play tech support for a good chunk of my social network, and providing a service to someone has a tendency to make them view you as the tech support.

                  Second, if I do that I’m now in charge of security for my data. As terrible as Twitter and Facebook are, they’re probably still a lot better at securing my data than I am (at the very least they probably patch their systems more often than I would). Even worse, if some non-technical person decides to bite the bullet and create a node for his/her friends, how secure do you think that’s going to be?

                  Further, what are the odds that I, or whoever is maintaining the node, basically gets bored of it one day and kills the whole thing? Pretty damn high (maybe I and all my friends are assholes, though, so whatever).

                  Anyway, this post really spoke to me because I’ve been trying to escape Evil companies for awhile now and “federated” just doesn’t seem to be the answer. I now believe that centralized is here to stay, but that we should start looking at the organizations that control the data instead of the technology. For example, if Facebook were an open non-profit with a charter that legally prevented certain kinds of data “sharing” and “harvesting” maybe I wouldn’t have any problem with it.

                  1. 18

                    How can an average user be expected to choose from a basically random list of nodes?

                    How did they choose their email provider? Not be carefully weighing the technical options, surely. They chose whatever their friends or parents used, because with working federation it doesn’t matter.

                    what are the odds that I, or whoever is maintaining the node, basically gets bored of it one day and kills the whole thing?

                    Same as what happened with many early email providers: when they died, people switched to different ones and told their friends their new addresses.

                    Really, all this argument of “what if federation isn’t a holy grail” is pointless because we all already use a federated system — email — and we know for a fact that it works for humans, despite all its flaws.

                    1. 8

                      How did they choose their email provider? Not be carefully weighing the technical options, surely. They chose whatever their friends or parents used, because with working federation it doesn’t matter.

                      In contrast to mastodon instances - which are very alike - email providers have differentiated on the interface and guarantees they provide and market that. People react to that.

                      1. 2

                        In contrast to mastodon instances

                        While this was largely true in the beginning, many Fediverse nodes now do market themselves based on default interface, additional features (e.g. running the GlitchSoc fork or something like it), or even using non-Mastodon software like Pleroma. I suspect this will only increase as additional implementations (Rustodon) and forks (#ForkTogether) take off and proliferate.

                      2. 8

                        How did they choose their email provider?

                        I think federated apps like Mastodon are fundamentally different than email providers. Most email providers are sustainable businesses, they earn money with adds or paid plans or whatever and have their own emails servers and clients with specific features. Self-hosted email servers are a minority. Please tell if I wrong, but I don’t think one can easily earn money with a Mastodon instance.

                        However I agree that both are federated.

                        1. 1

                          i don’t know if any nodes do this but you could charge for mastodon hosting

                        2. 6

                          You’re certainly not wrong, though I would argue that email, particularly as it was 20+ years ago when it went “mainstream”, is much simpler (for instance, it doesn’t require any long-term persistence or complicated access control) and therefore easier to federate successfully (in a way that humans can handle) than social networking.

                          1. 1

                            AP style social network federation also doesn’t require long-term persistence or complicated access control.

                            1. 1

                              email is social networking. are there particular social networking features you had in mind?

                              1. 3

                                Yeah, I listed them in my comment… “long-term persistence or complicated access control”. Admittedly I didn’t go into much detail. Email is a very simple social network, there isn’t much “meat” to it, particularly as it existed when it became popular.

                                1. 1

                                  email has very long term persistence, much longer than something like facebook because it’s much easier to make backups of your emails than to make backups of your facebook interactions.

                                  i guess i don’t know what you mean by “complicated access control.”

                                  1. 1

                                    Email is basically fire and forget. You download it to your computer and then you’ve got it forever (modern email does more, but also includes more of the privacy / data issues that come with other social networks). But most users can’t easily give other people on-demand access to their emails, which is the case with Facebook, Twitter, etc. Email is really meant for private communication (possibly with a large group, but still private), Facebook and company are for private, semi-private, and even public communication, and they require a user to be able to easily retroactively grant or retract permissions. Email doesn’t handle these other use-cases (this isn’t a fault of email, it doesn’t try to).

                                2. 2

                                  The ability for interested parties to interact without reply all. I can post a picture of a beautiful burrito, and people can comment or ignore at their leisure, and then reply to each other. I guess there’s some preposterous email solution where I mail out a link to an ad hoc mailing list with every update and various parties subscribe, but… meh.

                                  1. 2

                                    something that handles a feature like that need not be email per se, but it could have a very similar design, or be built on top of email. something like what you suggested wouldn’t seem preposterous if the clients were set up to facilitate that kind of use.

                              2. 3

                                In the case of Mastodon, which instance you pick does matter. Users can make posts that are only visible to others in the same instance. If you pick the “wrong” home instance, you’ll have to make another account in another instance to see the instance-private posts there. If you’re a new Mastodon user, you might not know that one instance is good for artists and another good for musicians, etc. In any case, this is as easily solvable problem by adding descriptions and user-provided reviews to each instance.

                              3. 2

                                These ‘which instance to join’ sites are completely useless, I wish they wouldn’t exist at all.

                                1. 1

                                  Second, if I do that I’m now in charge of security for my data. As terrible as Twitter and Facebook are, they’re probably still a lot better at securing my data than I am

                                  Setting a price tag on your datas doesn’t secure them. There are enough scams and hoaxes on Facebook to share your information with other companies that I have to disagree with you. And since those social networks are collecing more data than necessary, it is easier to lose data.

                                  1. 2

                                    Facebook and Twitter also present single valuable targets and are thus more likely to be targeted. A hundred mastodon instances may be individually less secure due to the operators having fewer resources or less experience, but compromising a single server won’t get you as much.

                                    1. 2

                                      That’s a good point, although Wordpress vulnerabilities are still a big deal even though there are tons of small servers. The server might not be a monolith, but if the software is then it’s only slightly more work to attack N instances.

                                      1. 1

                                        True, although it depends whether the vulnerabilities are in the application being served or in the web server or OS serving it.

                                1. 5

                                  Please do not link to this article on Reddit or Hacker News.

                                  Well, good thing we’re not Reddit or HN!

                                  On a more serious note, I wonder why he says that.

                                  1. 2

                                    I came here to ask the same question. Presumably because they want you to use their comment system to discuss it? But how will you find the article if it’s not linked where someone will find it?

                                    1. 6

                                      HN and Reddit can be pretty toxic, it might just be that the author doesn’t want to deal with that.

                                      1. 3

                                        I never got into HN, but yeah, Reddit can get pretty awful.

                                      2. 1

                                        Two other explanations based on previous comments people made on HN after their stuff hit front page:

                                        1. They dont want a work in progress to be seen by that large a crowd of technical and business people yet. A lot of negatives can come from it.

                                        2. They don’t want their site taken down by the HN Hug of Death. As HN reads it, nobody else can unless they think to hit Wayback. I dont recall if it happens to Medium articles.

                                    1. 14

                                      I’ve been reading a lot of Nancy Leveson’s work and she provided had an amazing explanation for why software engineering is so different from “conventional” engineering. In f.ex mechanical engineering, the main danger is component failure: Something breaks and cascades through the machine. In software engineering, the main danger is emergence: the combination of multiple interacting pieces, all working perfectly, leads to a global problem.

                                      It’s not a “we’re more incompetent than the REAL software engineers”. She studied the designers of missile systems, power plants, and aircraft, all places that take software engineering extremely seriously. But they’re all still buggy for emergence reasons.

                                      1. 9

                                        It sure feels like the emergence is the consequence of the sheer scale.

                                        I came across this tweet recently https://twitter.com/nikitonsky/status/1014411340088213504 Bet that missile systems, power plants, and aircraft all have less code than many relatively simple desktop apps.

                                        1. 2

                                          That’s interesting. A quick search indicates that the F-35, which has had numerous delays and reliability issues (I read somewhere that pilots have to reboot one of the onboard computers every 10 minutes or so) has over 8 million lines of code.

                                        2. 2

                                          It’s true. I don’t think it counters the point, though. How many of those systems are designed with integration patterns or analyses that ensure the individual components work together properly? I doubt many. The few I’ve seen came out of the correct-by-construction approaches. Even they usually have simplified mechanisms for the integration that make it easier to analyze the system. Many real-world systems use unnecessarily, complicated forms of integration from how they couple modules up to the build systems they use.

                                          I think emergence will have a mix of intrinsic and accidental complexity as usual. I think many failures are caused by accidental, though.

                                          1. 1

                                            Is there a good link to her argument?

                                            1. 2

                                              I’m basing a lot of this off her free online book engineering a safer future. She also has a seminar on it here: https://youtu.be/8bzWvII9OD4

                                          1. 2

                                            Let’s tackle the biggest fallacy that results from carrying around this metaphor: That debt must be paid off.

                                            This simply isn’t true. Not every slightly imperfect design decision or code created needs to be revisited and returned to a perfect state or otherwise reworked. Perhaps the bit of code is not read often and runs well. Perhaps it changes rarely.

                                            I see what the author is getting at here. An organization might be tempted to “pay off” technical debt just for its own sake or in order to free up room to “borrow” somewhere else. This is also alluded to at the end when the author says:

                                            Are you “paying off” the debt for the sake of it?

                                            I would argue, however, that if there’s nothing external gained by “paying off” the technical debt then it isn’t really technical debt. We’ve all left a piece of code not-quite-finished and thought “gosh, if I had another month I could make this truly elegant”. But that doesn’t mean we generated technical debt, it just means our output didn’t live up to our own, personal, standards.

                                            The defining characteristic of technical debt, IMHO, is that it imposes external costs on the organization or product. So, yes, the “technical debt” metaphor does break down in this case, but not in the way the author argues.

                                            Some of these traits do overlap, you can ignore code or make design decisions that will cause rework later in exchange for shipping. This is sort of “buying” something using your “debt” but the price isn’t very clear, making this a potentially difficult trade off to evaluate well.

                                            I agree that this bit is true, but it is also often true for corporate financial debt. When a company borrows money it is generally to make some kind of investment (more machines, a new office building, additional inventory). These kinds of investments have the same “clarity” problem as incurring debt in order to ship a product sooner.

                                            Will the new machines work as well as advertised? Will the new office actually improve productivity? Will demand for the product hold up? When we ask ourselves whether a bit of technical debt is “worth it” we really should consider the question from a number of angles, many of which are ultimately qualitative. Financial investments work the same way. Admittedly, it is easier to put at least a veneer of quantitative precision on a financial investment because they have clear units ($ or whatever).

                                            But instead, that there can be benefit from considering and conceptualizing the problem a bit more directly, as a burden, instead of an often rarely measured, poorly defined pool that you can continue to dump things into.

                                            This is basically how financial debt works as well. You only get so much of it before you can’t borrow any more, even in the short term, and in order to be worth the trouble the debt needs to produce some kind of return.

                                            I agree, however, that organizations should more seriously attempt to measure or otherwise evaluate their level of technical debt. This is one place where technical debt is definitely different from financial debt. With financial debt there is an external entity that keeps track for you. Technical debt is basically owed to yourself, so if you don’t keep track, no one will. To me, this is the most important point in this blog post.

                                            Anyway, I don’t disagree with the author that the metaphor isn’t perfect, I just don’t thinks it’s as inaccurate as he or she argues or inaccurate in the ways that he or she argues.

                                            1. 2

                                              Indeed. Personal debt may be a poor analogy, but if we’re talking about software at companies, then corporate debt is better. Companies always have debt, they pay some off, they borrow more to do so, constantly rolling the debt forward. Until the day comes when they can’t, and then boom, total collapse.

                                            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. 21

                                                  Stylus is using the same theme database without collecting your history:

                                                  1. 7

                                                    +1

                                                    But the problem is: how to ensure that Stylus (or any alternative) won’t become the next “Stylish”?

                                                    1. 7

                                                      I’ve written a couple of my own extensions, partly for this reason. For certain complicated or common needs (like ad-blocking) I have no choice but to find an extension I trust and use it. But in other cases I just end up writing my own because I can’t find something that doesn’t feel sketchy.

                                                      Ironically, one of my extensions was recently removed from the Firefox store because there was some incidental code in a dependency (that isn’t used at runtime) that makes a network request.

                                                      1. 1

                                                        I’ve written a couple of my own extensions, partly for this reason.

                                                        This is the “hacker’s approach” that I prefer.
                                                        Everyone should be able to hack software for his own need.

                                                        For certain complicated or common needs (like ad-blocking) I have no choice but to find an extension I trust and use it.

                                                        Well, actually you can also review them, if the sources are available.

                                                        1. 6

                                                          Well, actually you can also review them, if the sources are available.

                                                          Certainly an important part of the process, but both major browsers push updates to extensions silently, and there’s no guarantee that the code my browser runs is the same code that was in the OSS repository. It’s a crap situation all-around, really.

                                                          1. 4

                                                            This is the “hacker’s approach” that I prefer.

                                                            I prefer it too, but as far as I can tell webextensions goes out of its way to make this tedious and annoying.

                                                            I’ve tried building webextensions from source, and as far as I can tell there is no way to permanently install them. You can only install them for a single session at a time. (Hopefully there’s a workaround someone can suggest, but I didn’t find one at the time.) It was pretty appalling from a hackability/software-freedom perspective, so I was pretty surprised to see it coming from Mozilla.

                                                            1. 2

                                                              Idk about mozilla, but I made my own permanently installed extension for an appliance with chromium. Precisely to avoid the risk of updates or unavailability due to internet outages.

                                                        2. 4

                                                          Consumers should demand that extensions don’t improperly use personal info, and that the browser vendors only allow extensions that adhere to these rules.

                                                          1. 17

                                                            Consumers should demand that extensions don’t improperly use personal info

                                                            Do you know any consumer that want extensions to sell their personal info?
                                                            I mean, it’s like relying on consumers’ demand for pencils that do not explode.

                                                            Yes, they might ask for it… if only they knew they should!
                                                            (I’m not just sarcastic: perfect symmetric information is the theoretical assumption of free market efficiency)

                                                            1. 2

                                                              I was being half sarcastic. Marketing is basically information arbitrage, after all.

                                                              But as a practical matter I believe voluntary regulation is the way forward for this. Laws are struggling to catch up, although it would be interesting to see how GDPR applies here.

                                                              1. 5

                                                                I believe voluntary regulation is the way forward for this.

                                                                Gentlemen agreements work in a world of gentlemen.
                                                                In a world wide market cheating is too easy. It’s too easy to hide.

                                                                GDPR reception shows how much we can trust companies “voluntary regulations”.

                                                                Laws are struggling to catch up

                                                                True. This is basically because many politics rely on corporate “experts” to supply for their ignorance.

                                                            2. 3

                                                              In theory the permissions system should govern this. For example, I can imagine a themeing extension needing permission to access page content; but it should be easy to make it work without any external communication, e.g. no network access, read-only access to its own data directory (themes could be separate extensions, and rely on the extension manager to copy them into place), etc.

                                                              1. 2

                                                                It can leak data to its server by modifying just css, not even touching DOM, by adding background images for example. I don’t know if it’s even possible to design browser extensions system so extension effects are decently isolated.

                                                                However, these exfiltration hacks might attract attention easier than plain XHR.

                                                                1. 1

                                                                  Hmm, yes. I was mistakenly thinking of a theme as akin to rendering given HTML to a bitmap; when in fact it’s more like a preprocessor whose result is sent to the browser engine. With no way of distinguishing between original page content and extension-provided markup, you’re right that it’s easy to exfiltrate data.

                                                                  I can think of ways around this (e.g. setting a dirty bit on anything coming from the theme, or extending cross domain policies somehow, etc.) but it does seem like I was being a bit naive about how hard it would be.

                                                            3. 2

                                                              Theoretically, you could audit the GitHub repo (https://github.com/openstyles/stylus) and build it yourself. Unfortunately that doesn’t seem too feasable.

                                                              1. 1

                                                                For this reason I install the absolute minimum extensions. I usually only have privacy badger installed as I’m fairly sure the EFF won’t sell out.

                                                            1. 3

                                                              Writing an web app completely in a non-Javascript language

                                                              I am mystified by people excited by this from Go WASM backend. This is already possible and WASM doesn’t help much, since you can target JavaScript instead of WASM. In fact, GopherJS (Go to JavaScript compiler) is a lot more mature than Go WASM backend and anyone who want to write an web app completely in Go should use GopherJS instead. About the only thing Go WASM backend is better is performance.

                                                              1. 4

                                                                I help maintain a reasonably complex application that is written in Go, part of which is compiled to JS using GopherJS and while it works OK, it’s not great. Part of this is just the Go-JS mismatch (lack of ints in JS, for example causes massive pain). GopherJS also doesn’t have a strong community or organization behind it (https://github.com/gopherjs/gopherjs/graphs/contributors). My understanding is that the WASM target will be first-class (I could be mistaken).

                                                              1. 4

                                                                I’m unfamiliar with this literature, but a -0.25 correlation doesn’t seem as bad as they make it sound, what am I missing? I mean, clearly there’s more going on here, but I don’t understand why they refer to this as a “slight” tendency.

                                                                Which brings me to my next question, what’s up with all the pairwise correlations? I would have expected a regression model of some sort that could account for several independent variables at once. Maybe I don’t entirely understand their data set?

                                                                Finally, I would have expected to see p-values reported. I realize these can be controversial, but the authors appear to have reported significance (the bold values) without explaining how they measured it.

                                                                Anyway, if anyone can explain any of this to me, I’d appreciate it :-)

                                                                1. 3

                                                                  For a good laugh, look here at this PR.

                                                                  1. 18

                                                                    It’s both easier and more polite to ignore someone you think is being weird in a harmless way. Pointing and laughing at a person/community is the start of brigading. Lobsters isn’t big enough to be competent at this kind of evil, but it’s still a bad thing to try.

                                                                    1. 6

                                                                      https://github.com/tootsuite/mastodon/pull/7391#issuecomment-389261480

                                                                      What other project has its lead calmly explaining the difference between horse_ebooks and actual horses to clarify a pull request?

                                                                      1. 3

                                                                        And yet, he manages to offend someone.

                                                                        1. 4

                                                                          Can someone explain the controversy here? I legitimately do not understand. Is the individual claiming to be a computer and a person? Or do they just believe that someday some people will be computers and desire to future-proof the messages (as it alluded to in another comment)?

                                                                          1. 7

                                                                            This person is claiming they think of themselves as a robot, and is insulted at the insinuation that robots are not people.

                                                                            Posts like this remind me of just how strange things can get when you connect most of the people on the planet.

                                                                            1. 6

                                                                              So, I tried contacting the author:

                                                                              http://mynameiser.in/post/174391127526/hi-my-name-is-jordi-im-also

                                                                              Looks like she believes she’s a robot in the transhumanist sense. I thought transhumanists thought they would be robots some day, not that they already are robots now.

                                                                              I tried reading through her toots as she suggested, but it was making me feel unhappy, because she herself seems very unhappy. She seems to be going through personal stuff like breaking up from a bad relationship or something.

                                                                              I still don’t understand what is going on and what exactly does she mean by saying she’s a robot. Whatever the reason, though, mocking her is counterproductive and all around a dick thing to do. Her request in the PR was denied, which I think is reasonable. So “no” was said to something, contrary to what zpojqwfejwfhiunz said elsewhere.

                                                                              1. 6

                                                                                As someone who’s loosely in touch with some of the transhumanist scene, her answer makes no sense and was honestly kind of flippant and rude to you.

                                                                                That said, it sounds like she’s been dealing with a lot of abuse lately from the fact that this Github thread went viral. I’m not surprised, because there are certain people who will jump on any opportunity to mock someone like her in an attempt to score points with people who share their politics. In this case she’s being used as a proxy to discredit the social justice movement, because that’s what she uses to justify her identity.

                                                                                Abuse is never okay and cases like this require some pretty heavy moderation so that they don’t spiral out of control. But they also require a pretty firm hand so that you don’t end up getting pulled into every crazy ideascape that the internet comes up with. If I was the moderator of this GitHub thread, I would have told her, “Whatever it is you’re trying to express when you say ‘I am a robot,’ the Mastodon [BOT] flag is not the right way to do it.” End of discussion, and if anyone comes around to try to harass her, use the moderator powers liberally so as not to veer off-topic.

                                                                                Then you could get into the actual meat of the discussion at hand, which was things like “If I have a bot that reposts my Twitter onto Mastodon, could that really be said to ‘not represent a person’? Maybe another wording would be better.”

                                                                                In the end she’s just a girl who likes to say she’s a robot on the internet. If that bugs you or confuses you, the nicest thing you can do is just take it like that and just ignore her.

                                                                                1. 8

                                                                                  I don’t think she was rude to me. She’s just busy with other things and has no obligation to respond to every rando who asks her stuff. I’m thankful she answered me at all. It’s a bit of effort, however slight, to formulate a response for anyone.

                                                                                  1. 3

                                                                                    I mean, I can kind of see where you’re coming from, but I’d still argue that starting with “You should develop your software in accordance to my unusual worldview”, followed by flippantly refusing to actually explain that worldview when politely asked, is at least not nice.

                                                                                    Regardless, that might justify a firm hand, but not harassment, because nothing justifies harassment.

                                                                                    1. 2

                                                                                      I see this point of view too. But I’m also just some rando on the internet. She doesn’t owe me anything, If someone needed to hear her reasons, that would have been the Mastodon devs. They handled it in a different way, and I think they handled it well, overall.

                                                                                      1. 1

                                                                                        I’m inclined to agree on that last point, though it’s hard to say for sure given all the deleted comments.

                                                                                        And I do hope she can work through whatever she’s going through.

                                                                                2. 4

                                                                                  I don’t know, personally, anyone who identifies as a robot, but I do know a bunch of people who identify as cyborgs. Some of it’s transhumanist stuff – embedding sensors under the skin, that sort of thing. But much of it is reframing of stuff we don’t think of that way: artificial limbs, pacemakers, etc, but also reliance on smartphones, google glass or similar, and other devices.

                                                                                  From that standpoint, robot doesn’t seem a stretch at all.

                                                                                  That said, I agree that the feature wasn’t intended to be (and shouldn’t be) a badge. But someone did submit a PR to make the wording more neutral and inclusive, and that was accepted (#7507), and I think that’s a positive thing.

                                                                                  1. 2

                                                                                    Actually, that rewording even seems clearer to me regardless of whether someone calls themself a robot or not. “Not a person” sounds a bit ambiguous; because you can totally mechanically turk any bot account at any time, or the account could be a mirror of a real person’s tweets or something.

                                                                                  2. 1

                                                                                    That’s unfortunate. It’s always difficult to deal with these things. I, too, understood transhumanism to be more of a future thing, but apparently at least some people interpret it differently. Thanks for following up where I was too lazy!

                                                                                  3. -6

                                                                                    American ‘snowflake’ phenomenon. The offendee believes that the rest of the world must fully and immediately capitulate to whatever pronoun they decided to apply to themselves that week, and anything other than complete and unquestioning deference is blatant whatever-ism.

                                                                                    1. 16

                                                                                      Person in question is Brazilian, but don’t let easily checked facts get in the way of your narrative.

                                                                                      1. -5

                                                                                        Thanks for the clarification. Ugh, the phenomenon is spreading. I hope it’s not contagious. Should we shut down Madagascar? :-D

                                                                                        1. 3

                                                                                          TBH I think it’s just what happens when you connect a lot of people who speak your language to the internet, and the USA had more people connected than elsewhere.

                                                                                          1. 0

                                                                                            It definitely takes a lot of people to make a world. To paraphrase Garcia, “what a long strange trip it will be”.

                                                                                      2. 3

                                                                                        She says “she” is a fine pronoun for her.

                                                                                  4. 1

                                                                                    It’s wonderful. :)

                                                                                  5. 3

                                                                                    What is happening there? I can’t tell if this is satire or reality

                                                                                    1. 2

                                                                                      That’s pretty common with Mastodon; there’s an acrid effluence that tinges the air for hours after it leaves the room. That smell’s name? Never saying no to anyone.

                                                                                      1. 12

                                                                                        Seems “never saying no to anyone” has also been happening to lobster’s invite system :(

                                                                                        People here on lobsters used to post links to content they endorse and learn something from and want to share in a positive way. Whatever your motivation was to submit this story, it apparently wasn’t that…

                                                                                        1. 4

                                                                                          The person who shared the “good laugh” has been here twice as long as you have.

                                                                                          1. 1

                                                                                            I’m absolutely not saying you’re wrong, but I’m pretty confident there’s something to be learned here. I may not necessarily know what the lesson is yet, but this is not the first or the last situation of this kind to present itself in software development writ large.

                                                                                    1. 11

                                                                                      This problem is largely solved by “Jump To” in an IDE (or fancy editor). This sort of thing is why I no longer do real work in languages without these niceties. I just don’t have the patience for it any more.

                                                                                      1. 5

                                                                                        Code reviews and online examples can suffer though - I have a very hard time reading unfamiliar Haskell and Agda code on Github where definitions aren’t either explicitly imported in an import list or given a qualified name. But perhaps that’s an argument for better online tooling…

                                                                                        1. 2

                                                                                          That’s a good point, although I agree that better tooling is probably the answer, particularly since fully-qualified imports still mean you’re stuck tracking down docs and such in code review with most of the existing tools.

                                                                                          1. 1

                                                                                            I have to admit, I fully agree with brendan here. Fully qualified imports really do increase readability to any new, or even old code.

                                                                                            I don’t think better tooling is the best approach, I find explicit versus implicit generally explicit ends up being clearer.

                                                                                            A possible middle ground is allow ONE unqualified import only as (if i remember right, only skimmed docs) purescript does. That would at least remove ambiguity as to where something could be coming from.

                                                                                          2. 1

                                                                                            Haskell’s Haddock supports hyperlinked source and so does Agda.

                                                                                          3. 4

                                                                                            you don’t even need that much; I find vim’s split-window feature is perfectly usable if I want to read the code where something is defined, or look at both the current code and the top of a file simultaneously. whereas on the flip side I know if no good way to eliminate the visual clutter caused by fully qualified names everywhere.

                                                                                            1. 4

                                                                                              You also can generate ctags and use them in vim ;)

                                                                                              1. 1

                                                                                                true :) I used to do that more often in my c++ days; somehow I lost the habit now that I’m doing python at work and ocaml at home, even though ctags would probably help with both of those.

                                                                                              2. 3

                                                                                                this doesn’t solve the “import all names” problem that you hit in languages like Python where some people do import * or you are importing something that was already re-exported from another location. You end up with busy work that an IDE could handle with a name lookup

                                                                                                Though I agree that once you find the definition, split windows is a pretty nice way to operate

                                                                                                1. 1

                                                                                                  I too find the result to be cluttered. But I also find new programming languages/syntaxes to be strange and chaotic in the same way. Once I use the language long enough, I am no longer overwhelmed. My hypothesis is that the eye will adapt to fully qualified names everywhere in the same way.

                                                                                                2. 1

                                                                                                  I came here to say just this: with a sufficiently smart editor (vim, ide, or otherwise) this problem goes away almost entirely.

                                                                                                  That said, I think there are some arguments to be made for always-qualified imports

                                                                                                  1. 6

                                                                                                    I think it can be a cultural thing as well. I never enjoy typing datetime.datetime but don’t mind collections.namedtuple. itertools.ifilter is annoying though. Redundant words or information looks and reads bad.

                                                                                                    When the culture is to assume qualified imports, then the library will always be used to provide context, and that can be quite nice.

                                                                                                    When resolving a qualified name is the same syntax as a method call, that can look bad quickly. Python very much suffers from this problem. Think of Clojure stylebanespace syntax as an alternative.

                                                                                                  2. 1

                                                                                                    Does “Jump To” actually jump you to the import declaration or the function definition? I’ve never used an IDE. My guess is that an IDE would largely eliminate manual identification of the function’s origin. So that’s useful! But I’m not convinced that this would be faster than reading the module name inline in plain text. No keystroke or mouse click required to get the information. I guess the argument for using an IDE to solve this problem is something like the IDE places the information close at hand while also enabling a less verbose code style. That’s a reasonable argument. At some point the conversation becomes purely a debate about the pros and cons of IDEs. Then I would say that it’s nice to have code that doesn’t incur a dependency on a code editor.

                                                                                                    1. 2

                                                                                                      You can jump to the declaration in most IDEs (provided there is support for the language). In many you can also view the documentation for a symbol inline, no need to go searching in most cases. I agree with you that this really just changes the debate to one about tooling. However, since many people (myself included) prefer the readability of unqualified imports, tooling support is important to at least think about. For example, I work in Dart a lot at work, the Dart community tends toward unqualified imports because, at least in part, I think, pretty much everyone who writes Dart code uses either an IDE or an editor plugin with IDE-like features.

                                                                                                  1. 39

                                                                                                    “We all know the real reason Slack has closed off their gateways. Their business model dictates that they should.”

                                                                                                    Which is why they should’ve never been used in the first place if anyone wanted to keep anything. This isn’t a new lesson with mission-critical, proprietary software. Anyone relying on profit-hungry, 3rd parties is just asking for it. Only people I feel sympathy for are those who didn’t know the risks (esp non-technical folks) or those who did that were forced by managers/customers to use the product at work despite its disadvantages (esp resource hogging).

                                                                                                    1. 19

                                                                                                      I mean, I think categorizing this as a “bait and switch” is disingenuous. How many people were attracted to Slack by their gateways versus their total addressable market or indeed their total number of users? I’m going to go out on a limb and say that number is basically zero.

                                                                                                      Too, the people who are affected by this change are overwhelmingly the people who should have known better. It’s hard for me to gather much sympathy.

                                                                                                      ETA: I’m not a fan of Slack, particularly their godawful clients, but I think this article falls into the classic “It is what I want, therefore it is what everyone wants” fallacy. As my boss at Apple once told me, “we’d go broke if we made products for you.”

                                                                                                      1. 27

                                                                                                        How many didn’t push harder against slack because they could just use a bridge?

                                                                                                        1. 5

                                                                                                          I mean, the problem is that, as Slack is paying for their product by spending Marc Andreessen’s money and not selling goods and services to their users, what leverage does a user have?

                                                                                                          1. 9

                                                                                                            I think the idea was that people didn’t push back against their own organizations and managers in their decision to go with Slack because they figured “well, I can just use a bridge and not have to care”.

                                                                                                        2. 7

                                                                                                          I mean, I think categorizing this as a “bait and switch” is disingenuous. How many people were attracted to Slack by their gateways versus their total addressable market or indeed their total number of users? I’m going to go out on a limb and say that number is basically zero.

                                                                                                          What evidence do you have for this? I know of at least 5 people who agreed to adopt slack for various personal projects explicitly because of its IRC gateway.

                                                                                                          1. 3

                                                                                                            Against the total universe of Slack users? OK, 5 people you know personally, against a total user population of 9MM. I’m not saying that people who use the gateways don’t exist; I’m saying that as a percentage of Slack’s total userbase, the number is insignificant; it is, to the first order of approximation, zero.

                                                                                                            1. 6

                                                                                                              I don’t think you actually know this and I am not sure if it is relevant for bait-and-switch how many such users exist now. Question is how many of them were there in early days when Slack first started to fight for mind-share?

                                                                                                              My guess would be a lot since it started as a glorified web interface over IRC. However, probably like you I don’t actually know and can only go with anecdotal experience from people I know which was similar to @feoh.

                                                                                                              1. 2

                                                                                                                It’s a bit funny that you say “sure, 5 people, but that’s just your anecdote, you don’t have actual numbers” and then go on to confidently assert what the numbers are… apparently without having them, or at the very least without showing them.

                                                                                                                I also concur with @markos that there were probably disproportionately many gateway users among early adopters of Slack. I watched with concern as its use spread among libre projects, and it was the gateways that made it hard to sell the argument on general principle against it. Apparently “you’re putting yourself in a position to get burned” is not sufficient to convince anyone; people have to actually get burned before they’ll renege on a choice. (And I’m not convinced that they learn from the experience.) I must also admit “it’s where the users are” is hard to argue against; as long as everything goes well, that fact matters.

                                                                                                                The answer may be that we need something more mobile-device-friendly than traditional XMPP? (I know of things like XEP-0286… but a profile only helps as far as it is deployed.)

                                                                                                            2. 2

                                                                                                              I totally agree they’d be majority of those affected.

                                                                                                            3. 5

                                                                                                              non-technical folks

                                                                                                              I doubt there are many non-technical people left that still use IRC, but I think the general idea behind this holds true. people who don’t know the risks of putting companies in control of their stuff get screwed over when this sort of thing happens.

                                                                                                              1. 3

                                                                                                                I doubt there are many non-technical people left that still use IRC

                                                                                                                There are lots (for some definition of lots). At least Undernet and Snoonet are completely non-technical, and while they probably don’t have that many users in terms of absolute numbers, in relative terms they comprise a big chunk of all IRC users.

                                                                                                            1. 18

                                                                                                              I completely agree. The more I end up doing at work the less I end up doing on my own time. I am confident in my abilities to build, to learn, to grow, and the company that employs me believes in growing its employees. I spent a bulk of my free time on other stuff like audio production, photography, cooking, etc. You become one dimensional as a human if you only do one thing, and that goes for anything - not just software development.

                                                                                                              1. 17

                                                                                                                The more I end up doing at work the less I end up doing on my own time.

                                                                                                                I have definitely found this to be true, in a way. When my work project is interesting and clearly defined, meaning I am able to make good progress and feel like I’ve actually “done” something, I tend to write a lot less code on my own time. So programming on my own time is kind of a creative release “valve” that gives me an outlet when work doesn’t.

                                                                                                                1. 5

                                                                                                                  Sometimes I satisfy my compulsion to create when it isn’t being satisfied at work by cooking.

                                                                                                                  1. 4

                                                                                                                    So programming on my own time is kind of a creative release “valve” that gives me an outlet when work doesn’t.

                                                                                                                    This is exactly how it works for me.

                                                                                                                    And if you see that I’m writing an operating system that aim to replace the whole stack from dynamic linking to JavaScript-enabled browsers with simpler and more effective solutions, you might get an idea about my deep frustration with hyped mainstream technologies.

                                                                                                                    Without Jehanne I could simply explode.

                                                                                                                  2. 5

                                                                                                                    I also agree. I’m not experienced as some people since I’m just a junior developer but I’ve tried forcing myself to code in my free time and it just didn’t work out for me personally, either I would get burnt out and lose interest, or just not do it right at all. Now I’ve found other hobbies that I enjoy and do them when I can, and I’ve found that coding in my free time came from sudden ideas, like recently I’ve been coding a Discord bot and it has been slow going, but it’s been far more enjoyable than forcing myself to code at any given time.

                                                                                                                  1. 7

                                                                                                                    I’ve been using Syncthing for well over a year now in a similar configuration. It definitely feels “invisible”, I basically do nothing to maintain it.

                                                                                                                    1. 2

                                                                                                                      It generally works quite well for me too, though I find it tricky to add - or especially remove a device with a bit fiddling.

                                                                                                                    1. 15

                                                                                                                      This is one of my pet peeves, and as an end user I feel web apps are one of the worst things to happen to computer software in a long time.

                                                                                                                      One place the difference is really noticeable is comparing Google Docs to the standalone Microsoft Office applications. Google Docs is missing 90% of the features and the interface is terrible. Whenever I need to create a document I jump to my Macbook and use Pages (which isn’t great either, but beats Google by a mile).

                                                                                                                      Another place where the difference is really noticeable is comparing Outlook in Office 365 to standalone Outlook. The features are very limited, there’s no ability to customize it, features that existed for 15 years in Outlook aren’t there any more, etc. It’s a mess.

                                                                                                                      Even the promise of cross-platform compatibility doesn’t work out in practice, because the larger web apps inevitably end up only working on specific browsers.

                                                                                                                      1. 17

                                                                                                                        The most striking thing in my eyes is the fact that millions of dollars by multiple vendors have been poured into making the web a viable app platform and yet it hasn’t produced much in the way of complex apps that support professional workflows. Some may regard this as a feature (think 37 Signals aka Basecamp), but the fact that it Gmail and Gmaps remain the most technically sophisticated webapps out there is damning.

                                                                                                                        It just goes to show you that no amount of money and wishful thinking can paper over a conceptual impedance mismatch.

                                                                                                                        1. 5

                                                                                                                          one counterexample: Salesforce.com

                                                                                                                          Sure, it’s a CRM. But it’s also an extremely pluggable environment. Third parties work to offer pluggable functionality, there’s “remote debugging” if your client has issues. There’s entire VMs working on huge sets of data.

                                                                                                                          It’s very close to being a Smalltalk-style image per user. The web-y-ness allows working with various data sources in interesting ways, allowing third parties to set up stuff within your own environment. It’s an extremely connected environment, and essentially impossible without the web.

                                                                                                                          1. 4

                                                                                                                            I don’t imagine that it’s impossible for there to be a web application that is strictly better than a desktop one, for some given set of tasks, but by the time the platform mutates into one that enables said application, the platform will not look anything like the pig’s breakfast we see today. It won’t be within a million billion miles of elegant, but somehow more layers of abstraction will be piled on and we’ll muddle through, because Google’s gotta keep those ad dollars flowing.

                                                                                                                            I hate it. I hate it all so, so, so much.

                                                                                                                            1. 2

                                                                                                                              For all the advances, the web has become an execrable platform commandeered by ad agencies and data brokers. I keep javascript locked down pretty tightly using NoScript whitelisting sites I visit often, mainly to avoid a lot of the egregiously bad ideas. Some pet peeves - scroll jacking, unreadable, ultra low-contrast designs, having to load multiple javascripts frameworks just to read some fucking text with a few pictures.

                                                                                                                            2. 2

                                                                                                                              …it hasn’t produced much in the way of complex apps that support professional workflows

                                                                                                                              I’m not sure this is true, unless we have very different definitions of complexity and professional workflows. In the past decade some of the web apps I’ve worked on were:

                                                                                                                              • A self-service telephony configuration app with features like group rign, follow-me, etc.
                                                                                                                              • An ERP system for the flooring industry, including shipping, receiving, accounts payable/recievable, etc.
                                                                                                                              • An app for designing & formatting physical books for print-on-demand self publishing

                                                                                                                              Currently I’m working on a web-based contact center and communications platform that supports routing of calls/chats/tweets/email/voicemails to agents, review and quality analysis of agent interactions, real-time stats in the browser for contact-center management, workforce planning, agent script editing and display, telephony administration, company directory, chat & telephony for non-contact-center users, and probably a bunch of other stuff I’m forgetting. It’s nothing if not complex and professional.

                                                                                                                              Like most projects, all of these applications had their fair share of issues, but the problems were not specific to the web, and would likely have been issues in any desktop application built by the same companies. Mismanagement of projects, insufficient time to deal with technical debt, poor business decisions, legacy tech that must be accomodated - those problems are not specific to any platform.

                                                                                                                              I’m speaking mostly from personal experience, but it may be possible that apparent lack of “complex webapps supporting professional workflows” is primarily due to those apps existing in niche markets that don’t get publicity in the same way social media platforms and end-user tools like email/office software do.

                                                                                                                              1. 1

                                                                                                                                Gmail and Gmaps remain the most technically sophisticated webapps out there is damning.

                                                                                                                                In the consumer space, sure. But there are some reasonably complex enterprise-y web apps. MS Office (and even the Mac productivity suite) historically weren’t “free” applications, so it’s not entirely fair to compare them against “free” web apps.

                                                                                                                                That being said, web apps are mostly crap and I use them because of factors other than quality (convenience largely).

                                                                                                                            1. 20

                                                                                                                              Look, here’s the thing. If you’re holding 30 million dollars in 250 lines of code that you haven’t audited, then it’s on you. Seriously. It takes any half-decent appsec guy less than one man-day to fleece those 250 lines. At most, that would cost them a few thousands of dollars. They didn’t do it because they wanted it all for free. They didn’t do it because they’re greedy and cheap. They absolutely deserve this.

                                                                                                                              I kinda agree with this, honestly. :-\

                                                                                                                              1. 2

                                                                                                                                I kinda agree with this, honestly. :-\

                                                                                                                                That’s because, as your post history on Lobsters has established, you need to get you some ethics and morals.

                                                                                                                                I kinda agree with the top comment in the article:

                                                                                                                                “ Look, here’s the thing. If you’re holding 30 million dollars in 250 lines of code that you haven’t audited, then it’s on you.”

                                                                                                                                Look here’s the thing. If you’ve parked your car on the street like a pleb instead of buying a house with a garage, then its on you.

                                                                                                                                Look here’s the thing. If you’re holding a PC and a TV and a washing machine in a house with single glazing on the rear windows, then it’s on you.

                                                                                                                                Whilst this was an extremely interesting read and I’m sure awesome fun to pull off, theft is theft. The rule of law is the rule of law. You know that these ETH belong to other people and you have taken them for yourself. That’s theft, and I hope the law catches up with you.

                                                                                                                                1. 13

                                                                                                                                  But the entire point of “smart” contracts is that the code IS the contract, right? Your analogy is flawed. It’s not like stealing a car, it’s like finding a loophole in an agreement (or “dumb” contract) and exploiting it in the courts. That happens literally every day, and it is perfectly legal.

                                                                                                                                  The difference is that when you have actual humans making the decisions instead of computers you can make more subtle arguments about what was intended instead of being beholden to the most pedantic possible interpretation of the contract.

                                                                                                                                  1. 14

                                                                                                                                    This is the correct interpretation. The “smart contract” hype is built around the concept that the blockchain is the judge and the jury: it’s all built on the assumption that the blockchain is incorruptible and perfect. To quote from Gavin Wood’s paper “Ethereum: A Secure Decentralised Generalised Transaction Ledger:”

                                                                                                                                    [Ethereum has attributes] not often found in the real world. The incorruptibility of judgment, often difficult to find, comes naturally from a disinterested algorithmic interpreter.

                                                                                                                                    Further:

                                                                                                                                    …natural language is necessarily vague, information is often lacking, and plain old prejudices are difficult to shake.

                                                                                                                                    Most ominously, perhaps:

                                                                                                                                    …the future of law would be heavily affected by [smart contract] systems… Ethereum may be seen as a general implementation of such a crypto-law system.

                                                                                                                                    Based on these concepts, the idea that they’re building a perfect replacement for law, they implemented a Turing-complete language with no concept of or provision for proofs, and run it on a distributed VM from which no malicious programs can be purged. Brilliant!

                                                                                                                                    1. 4

                                                                                                                                      Is it brilliant? I’m not so sure: what sovereign citizens and computer geeks alike seem to believe is that the law is a sequence of perfectly defined rules - which is why the former loves to look for the magical series of words that exempts them from it.

                                                                                                                                      But in reality the law is often about intent and judgment. If I found a bank that let me put my name on everyone’s account and I did with the purpose of withdrawing their savings, the court would hold a dim view of me saying “but they let me do it!

                                                                                                                                      1. 4

                                                                                                                                        That was sarcasm. :)

                                                                                                                                        1. 3

                                                                                                                                          thank god. but like the best sarcasm - and I say this with complete sincerity - it’s indistinguishable from what people are claiming both here and in the article.

                                                                                                                                          1. 1

                                                                                                                                            Well note, only the “Brilliant” part was sarcasm. The rest was literally quoting a seminal paper in the space.

                                                                                                                                      2. 2

                                                                                                                                        hopefully the interest in contract languages on blockchains will encourage more folks to get involved in formal verification.

                                                                                                                                      3. 3

                                                                                                                                        But the entire point of “smart” contracts is that the code IS the contract

                                                                                                                                        Agreed. The analogies given above were ridiculous:

                                                                                                                                        Look here’s the thing. If you’ve parked your car on the street like a pleb instead of buying a house with a garage, then its on you.

                                                                                                                                        This is not a comparison. Try this instead:

                                                                                                                                        Look here’s the thing. If you’ve parked your limited edition McLaren F1 on the street instead of in your garage, then yeah that was dumb

                                                                                                                                        But this is still a rubbish analogy because in Ethereum: Code is Law.

                                                                                                                                        1. 8

                                                                                                                                          The correct analogy would be to leave the thing unlocked, with the keys in a plastic box inside, and with a notarized affidavit that reads, ‘I, goodger, hereby transfer ownership of this vehicle and its contents to whomsoever may open this box’.

                                                                                                                                          1. -1

                                                                                                                                            Bingo!!

                                                                                                                                      4. 19

                                                                                                                                        That’s because, as your post history on Lobsters has established, you need to get you some ethics and morals.

                                                                                                                                        Says the guy who posted 9/11 truther conspiracies from his blog. Angersock has ethics and morals, and I’m a little disheartened that your ad hominem attack got upvoted.

                                                                                                                                        1. 6

                                                                                                                                          There are a few certain types of stories regarding politics and cryptocurrencies that seem to bring out a group of extremely angry and aggressive posters that don’t seem to want to have anything but traditional internet yelling. “Get morals” has been yelled at me any time the US government is brought up and always seems heavily upvoted.

                                                                                                                                          1. -5

                                                                                                                                            Says the guy who posted 9/11 truther conspiracies from his blog

                                                                                                                                            And what is wrong with that?

                                                                                                                                            9/11 Truthers are called 9/11 Truthers because they aren’t 9/11 Frauds.

                                                                                                                                            EDIT: BTW, those downvoting this as “off-topic” might want to downvote @ngoldbaum’s post instead. I didn’t bring up 9/11, he did. I’ll defend myself if called and, and so to quote from elsewhere: It’s been 16 years now and over $300k in research by multiple teams have refuted NIST multiple times — enough is enough.

                                                                                                                                            and I’m a little disheartened

                                                                                                                                            That’s too bad.

                                                                                                                                            It’s what happens to people who don’t understand basic physics.

                                                                                                                                            Have fun with the paid sock puppets though.

                                                                                                                                            1. 2

                                                                                                                                              Damn, I’m a sock puppet after all… Also ad hominem.

                                                                                                                                              1. 2

                                                                                                                                                me too! #sockpuppet

                                                                                                                                                1. -4

                                                                                                                                                  Keep it up, y’all are going to spend the end of your lives in a prison of your own making.

                                                                                                                                                  You think smart people can’t see past these fake votes?

                                                                                                                                                  1. 5

                                                                                                                                                    It must be very hard living a life where you think every time someone disagrees with you it’s because of a huge conspiracy.

                                                                                                                                                    I encourage you to talk to a mental health professional.

                                                                                                                                                    1. -2

                                                                                                                                                      It must be very hard living a life where you think every time someone disagrees with you it’s because of a huge conspiracy.

                                                                                                                                                      You misunderstand, I don’t think that.

                                                                                                                                                      But 9/11 is a huge conspiracy, so on this particular topic it’s perfectly sensible to think that.

                                                                                                                                                    2. 2

                                                                                                                                                      I know that this is futile and I’m shouting into the void, but why would you assume that everyone who disagrees with you is a sock puppet? These aren’t fake votes I think people are disagreeing with your aggressiveness, there is no reason for this to be a psy-ops campaign just to mess with you.

                                                                                                                                                      1. -4

                                                                                                                                                        but why would you assume that everyone who disagrees with you is a sock puppet?

                                                                                                                                                        See my response to your sock puppet friend’s identical question.

                                                                                                                                                        But, tell me (since now with the fake downvotes nobody can see your response), how much do you get paid to write this stuff?

                                                                                                                                                        Are you an American? If so, is it enough to sleep at night, knowing that you’re supporting the terrorists who attacked this country on 9/11?

                                                                                                                                                        1. -3

                                                                                                                                                          You gonna answer my question or just exercise your downvote button?

                                                                                                                                                          Think McFly!

                                                                                                                                                2. -5

                                                                                                                                                  Angersock has ethics and morals

                                                                                                                                                  Yeah, theft is cool man. Totally ethical. Totally moral. And your upvotes totally didn’t appear simultaneously as a bunch of sock puppets upvoted your comment.

                                                                                                                                            1. 4

                                                                                                                                              Stupid question: can I just put the local prices (I don’t live in the USA) there and have some meaningful results? In other words: is there anything US specific?

                                                                                                                                              1. 2

                                                                                                                                                In the US, one can deduct mortgage interest paid on their primary residence from their income. The calculator factors this in, so you could set the marginal tax rate slider to 0% and that should remove it from the calculations if you don’t have an equivalent deduction in your country.

                                                                                                                                                1. 3

                                                                                                                                                  I mean you can, but I haven’t paid enough interest to justify itemizing for years at this point. I think, like… two or maybe three years of my mortgage generated enough. Another year of my business generated enough. Mostly, though, it hasn’t been worth doing any deductions.

                                                                                                                                                  1. 3

                                                                                                                                                    If you live in a state with state income tax then that deduction alone can put you over the standard deduction to start with, so the home mortgage interest will be added on top even if it’s small on its own.

                                                                                                                                                    1. 1

                                                                                                                                                      Wait, you can deduct state income tax? Do you know if online services like TurboTax take that into account when recommending whether you should itemize or not? I’ve never even attempted to itemize because I assumed it wouldn’t be worthwhile…

                                                                                                                                                      1. 4

                                                                                                                                                        Every few years, get a CPA to do your taxes. Find out what you’ve been doing wrong. Re-file. Then use the program for a few more years.

                                                                                                                                                        1. 3

                                                                                                                                                          Every tax program should handle that.

                                                                                                                                                1. 1

                                                                                                                                                  I tried OCaml for a bit but the weirdness got to me after awhile. There was a ton of magic around project setup and compilation that I didn’t understand and couldn’t find properly explained, and the fact there is more than one “standard” library bugged the heck out of me. I’m hoping that once the Linux story solidifies a bit more around .NET I’ll be able to reasonably give F# a shot.

                                                                                                                                                  1. 3

                                                                                                                                                    I’ve been using F# on Linux for a few years now using Mono. It’s a bit more manual than .NET Core, but it’s stable.

                                                                                                                                                    1. 3

                                                                                                                                                      If you’re interested in trying again, I created a build system (yes, yet another one) specifically designed for getting going fast in most cases. I have a blog post here:

                                                                                                                                                      http://blog.appliedcompscilab.com/2016-Q4/index.html

                                                                                                                                                      Short version: all you need is a pds.conf which is in TOML so fairly straight forward, a specific directory structure (src/<project>) and GNU Make. Then you run pds && make -f pds.mk and you’re done. Supports tests as well as debug builds.

                                                                                                                                                      1. 5

                                                                                                                                                        I’m not sure it is worth pushing yet another build system that seemingly nobody uses (at least I haven’t yet run across a package which uses it) when jbuilder seems to be gaining so much momentum in the OCaml world lately.

                                                                                                                                                        1. 3

                                                                                                                                                          Maybe, but pds is pretty easy to port away from for most builds and it’s so trivial to get started and much less confusing than jbuilder’s config, IMO. My personal view is that jbuilder is a mistake but I’ll wait to switch over to it once it’s gained enough momentum. At that point, I can just switch pds over to producing jbuilder configs instead. But I’m a symptom of the problem rather than the solution unfortunately. I also use @c-cube’s containers, so yet another stdlib replacement/extension :)

                                                                                                                                                          1. 4

                                                                                                                                                            My personal view is that jbuilder is a mistake

                                                                                                                                                            Could you elaborate on why? IMO jbuilder is not perfect either but if we get a modern, documented build system which is hopefully easy to setup, it would be a massive win over all the other solutions we currently use.

                                                                                                                                                      2. 1

                                                                                                                                                        I agree, the different choices in tooling is sort of disorienting and it can lead to analysis-paralysis. For a toy compiler project I started working on, I tried to find the most basic tooling that would work: whatever ocaml compiler came with my distro, ocamlbuild, make, and then eventually, extlib, ocpindent, and then after some more time, opam, ocamlfind, utop. It may make sense to use the tooling outlined in this article if future maintainability is a big concern, but to get started and to learn ocaml, I don’t find it necessary (and definitely not appealing). Having done this, I don’t pine so much for standardization (;

                                                                                                                                                        1. 1

                                                                                                                                                          There’s more than one standard library in a lot of languages, though. Why does that bother you?

                                                                                                                                                          1. 4

                                                                                                                                                            It bothers me because it makes the language more difficult to learn. It also wasn’t always clear to me that an alternative was in use because, IIRC, they’re not (always) clearly namespaced. I have run into this in Haskell as well, FWIW.

                                                                                                                                                            1. 2

                                                                                                                                                              Typically it’s visible when you use an alternative stdlib because you start your files with open Batteries or open Core or open Containers. I agree it’s annoying that the stdlib is not richer, and it’s a bit slow to accept contributions, but in a way the existence of alternative stdlibs/extensions shows how easy it is to roll your own :-)

                                                                                                                                                            2. 4

                                                                                                                                                              You can’t have two standards, that’s a double standard!

                                                                                                                                                              1. 1

                                                                                                                                                                Which languages?

                                                                                                                                                                1. 1

                                                                                                                                                                  Haskell, C, and D come to mind. You could also argue that Python has multiple standard libraries because it has different implementations that effectively can’t use some aspects of the normal stdlib (PyPy). Then there’s Java: SE, EE, and ME are the same language with different sets of functionality in the standard libraries.

                                                                                                                                                              2. 1

                                                                                                                                                                Out of curiosity, have you tried OP’s project setup?

                                                                                                                                                                Also, there is only one OCaml standard library–the one that comes bundled with OCaml. The other ‘standard libraries’, Batteries Jane Street’s Core, are optional add-ons made for specific purposes.

                                                                                                                                                                1. 2

                                                                                                                                                                  I haven’t tried OP’s setup, but honestly it seems even worse than what I had. I pretty much followed this: https://ocaml.org/learn/tutorials/get_up_and_running.html. I ended up using Oasis, which was just awful, every time I added a file or dependency I had to fiddle with the config until everything would build again, but at least there wasn’t an entirely separate language.

                                                                                                                                                                  From OP:

                                                                                                                                                                  (jbuild_version 1)
                                                                                                                                                                  
                                                                                                                                                                  (executable
                                                                                                                                                                    ((name main)                 ; The name of your entry file, minus the .ml
                                                                                                                                                                     (public_name OcamlTestProj) ; Whatever you like, as far as I can tell
                                                                                                                                                                     (libraries (lib))))         ; Express a dependency on the "lib" module
                                                                                                                                                                  

                                                                                                                                                                  Note the comment, “as far as I can tell”. To me, that’s a terrible sign. A person who has gone to a reasonable amount of effort to explain how to set up a project can’t even figure out the tooling completely.

                                                                                                                                                                  1. 2

                                                                                                                                                                    Jbuilder is quite nicely documented (see http://jbuilder.readthedocs.io/en/latest/). The public_name defines the name of the produced executable in the install context. It does not take much effort to read it from there

                                                                                                                                                                    1. 2

                                                                                                                                                                      Of course you still have to find out that Jbuilder exists, which the official site doesn’t seem to mention… I am lazy, I don’t like choices, I just want one, blessed tool that works more or less out-of-the-box if you follow a set of relatively simple rules (I’m even OK with wrapping the tool in a simple, handwritten Makefile, which is what I do in Go). I’m not arrogant enough to think that the way I prefer is the “right” way, in fact in some cases it would be dead wrong (like for extremely complex, multi-language software projects), but that explains why I dropped OCaml for hobby stuff.

                                                                                                                                                                      1. 1

                                                                                                                                                                        OK, but your criticism is that you have to find out that JBuilder exists, commenting on a post that tells you about JBuilder.

                                                                                                                                                                        1. 1

                                                                                                                                                                          To be fair, jbuilder is very young (not even 1.0 yet actually) but it might become the “standard” build tool the OCaml community has been waiting for for years (decades?). Then clearly there will be more doc and pointers towards it.

                                                                                                                                                                          1. 1

                                                                                                                                                                            Well obviously I know about it now, but it still isn’t terribly discoverable for someone new to the language. My actual point, and I probably didn’t make this as clear as I should have, sorry, is that in my experience OCaml isn’t very friendly to beginners, in part because its tooling story is kind of weak and fragmented.

                                                                                                                                                                            1. 2

                                                                                                                                                                              Yeah. This is true. Especially on Windows. People are working on it but it’s slow and it’s taking time to consolidate all the disparate efforts. I myself am not getting terribly excited about OCaml native but funnily enough I am about BuckleScript (OCaml->JS compiler) because of its easy setup (npm i -g bs-platform) and incredible interop story.

                                                                                                                                                                              Others are getting equally into ReasonML ( https://reasonml.github.io/ )because it’s coming from a single source (Facebook) is starting to build a compelling tooling/documentation story.

                                                                                                                                                                              1. 2

                                                                                                                                                                                I didn’t know about either of these, thanks!

                                                                                                                                                                      2. 1

                                                                                                                                                                        OP here: I didn’t really make any effort to pursue documentation re: the public_name field, and I have really almost no production experience with OCaml whatsoever. I certainly have complaints about OCaml’s tooling, but I can assure you that any argument against it appealing to my authority is certainly flawed.

                                                                                                                                                                        1. 1

                                                                                                                                                                          I wasn’t really appealing to your authority, in fact kind of the opposite. I don’t like using systems that converge to copy-paste magic, and that seems to be what you did, and is likely what I would do. I don’t want to use a weird programming language to configure my project, I want something simple, with happy defaults, that can be understood easily.

                                                                                                                                                                          I guess I generally prefer convention over configuration in this case, and that doesn’t seem to be what the OCaml community values, which is why I gave up on it. I’m not saying anyone is right or wrong, it’s just not a good fit for me, particularly for hobby projects.