1. 2

    I may be missing something, but doesn’t this mix up the usual meanings of “row” and “column”?

    1.  

      Yeah, I was thinking the same thing. They’re definitely reversed.

      1.  

        not if you hold your phone sideways

        1.  

          No, It is just my stupid mistake .. fixed.

        1. 7

          Incorrect rants are the best rants? No, (x < 10 && 5 < x) does not imply 10 < 5.

          I agree that some form of consistency here makes reading such conditions less error prone. I’m partial to using half-open intervals [l,u) and expressing membership as (l <= x && x < u).

          1. 2

            I think I agree, but I’m less certain this works so perfectly across broader JavaScript ecosystem. Was the module in question kind of a lucky hit that normally required no fs access?

            In Openbsd, efforts to more or less do the same run into the roadblock that every (C) library thinks it needs to do everything and will randomly open files all over the place whenever it feels like it. This hypothetical safeaddezclamation will no doubt require access to /etc/locale and www.unicode.org and so forth to make sure that it adds the correct punctuation mark.

            1. 2

              Shouldn’t it help that JavaScript is a higher-level language, though? It’s reasonable for a C program to open the “file” /dev/fd/2 if it wants to write to stderr, but I think it’s also reasonable to place a restriction on JavaScript programs that if they want access to stderr they have to use a higher-level construct like process.stderr.write or something. This facility in turn could be protected by something like POLA.

              1. 1

                Regarding the Openbsd example, it seems that making these dependencies explicit might lead to improved libraries eventually?

                For the access to /etc/locale, I imagine that this could be done through a call to a locale-function in the standard library. (Assuming there’s a way to bless a library to access the file system even from libraries that don’t have permission themselves…)

                And network access to unicode.org is unexpected enough that I’d be sure to want to know about it as a user of said library.

              1. 1

                I’m curious about the primary benefits of a dedicated token (STORJ). Is this about controlling the network, or a means of funding the development? Differently put, what are the disadvantages of launching this with an established currency? The whitepaper doesn’t really seem to shed any light on this.

                1. 4

                  In the V2 network, we reached the point where we were making payments to over 100K storage node operators in 180 countries/territories. We expect the V3 network to be much larger. We are also going to be making programmatic referral payments to open source projects/companies that help build demand (i.e., enable open source to directly monetize the cloud). A token provides a practical way to do this at scale, with micropayments, smart contracts, etc. But…as we say in the white paper…it could also work with fiat currency or physical transfer of live goats.

                  1. 2

                    Overall, it gives us significant flexibility. Right now we’re simply using the token to exchange value, which is convenient because it has value and we have a lot of tokens (we’re ICO funded).

                    In the future, though, it allows us to be a bit more inventive with our options. We’re expecting to continually improve the architecture and decentralize further over time, and programmable money opens some previously closed doors.

                  1. 1

                    My first thought would be to use TikZ which is a TeX-based drawing language. There are some computer science examples here, though I can’t find any that have that kind of data layouts. Also this stackexchange answer.

                    1. 3

                      If I’m not mistaken, the project is still being developed by the lead, but not for Facebook.

                      1. 2

                        The github repository is quite young and has recent activity, by three Facebook developers (according to github profiles).

                      1. 6

                        I’d like to see screen shots of the lower resolution variants.

                        As an aside, does anyone else find the font used for the article to be very hard to read? Can’t quite put my finger on it, but it seems to have too much horizontal spacing or something.

                        1. 3

                          Yes, I think the horizontal spacing is a little too wide. It seems to be the default spacing for the font that’s being used. If you’re curious about how to change the way it looks, try opening the developer tools and putting this into the Console.

                          document.body.style.letterSpacing = "-.04em"
                          

                          This adds the value you specify to the font default spacing - hence the negative value, to reduce the spacing.

                          1. 1

                            That does improve things, thanks! Incidentally, the font turns out to be “Work Sans”: https://fontlibrary.org/en/font/work-sans

                          2. 2

                            I will create a proper site for Spleen with screenshots in various sizes, but meanwhile, here is a screenshot of the 5x8 version.

                          1. 12

                            Mailbox.org for 1€ per month.

                            The interface is not as good as Google, but they will not shut down my account if I make the wrong comment on YouTube. Even if they do, there is a support channel.

                            1. 3

                              I’m also an mailbox.org, with a custom domain. I barely use the web interface, which is ok but not great. Seems reliable and they appear to know what they’re doing.

                              1. 2

                                I’ve also been on mailbox.org for almost 3 years now. I had to disable some of the spam filters when it turned out that mailbox blackholed a conference acceptance email(!) that I’d received. Other than that one incident, I’m happy with them.

                              1. 6

                                I agree with the core idea that some behavior is better tested at an integration test level rather then the unit test level.

                                However, I feel the article misses one very important use case for unit tests, namely to ensure that code in languages without strong compilation-time checks works at all. E.g. it’s quite valuable to have a basic “unit” test with any Python function that just executes it with some data to ensure a lack of syntax errors and basic type errors.

                                1. 9

                                  The headline is a bit click-baity, but the write-up is high quality. In summary, the ratio between visitor count according to google analytics and that according to server log files has decreased from around 1 to around 0.5 for a selection of sites.

                                  One possible explanation is ad/tracking blockers blocking Google Analytics. Shouldn’t it be possible to determine that precisely, by making the Google Analytics javascript call back to your server? Then you should be able to get a precise reading on “fraction of log-file visitors that reach Google Analytics” by correlating log file entries for normal site visits and callbacks.

                                  1. 6

                                    In terms of minimalist pastebins, I’m fond of http://sprunge.us, which doesn’t need a dedicated client tool. This one is quite featureful by comparison, with editing of notes and TeXdown formatting!

                                    1. 2

                                      this is nice, I’ve gone ahead and copied the API partially (you still need to provide a name for the script)

                                      echo "test" | curl -F 'note=<-' https://jott.live/save/raw/<name>/
                                      
                                    1. 4

                                      Oh, this is a bit rich: closed by Frederik Braun with a link to this discussion.

                                        1. 7

                                          Okay, I’ll bite.

                                          it was suggested by a Mozilla developer to fill a bug here: https://wandering.shop/@callahad/100621620793416331/embed

                                          I agree with what @callahad@wandering.shop says right away: If you browse to a website. It gives you JavaScript. The browser executes it. That’s by design! Nowadays, the web is specified by W3C and WHATWG as an application platform. You have to accept that the web is not about hypertext anymore.

                                          This is not a bug in Firefox. Are you saying that these attacks are not possible?

                                          I am saying that this is not specific to Firefox, but inherent to the browser as a concept.

                                          Bugzilla is not a discussion forum. Indeed this is a bug report.

                                          Ah, here’s where we disagree. I understand that a bug is an ambiguous concept. This is why we have our Bugzilla etiquette, which also contains a link to Mozilla’s bug writing guidelines.

                                          Furthermore, what you seek to discuss is not specific to Mozilla or Firefox. True. Several other browsers are affected too, but:

                                          1. This doesn’t means that it’s not a bug in Firefox
                                          2. As a browser “built for people, not for profit” I think you are more interested about the topic.

                                          Please elaborate, I am not sure what you mean to imply.

                                          1. 9

                                            This is just trolling, and I’ll assume you know it. What are you trying to achieve?

                                            Can we expect reports against the Linux kernel and bash because they facilitate inserting a USB stick given by some other party and running a shell script that’s free to read files in your home directory? Against Debian/apt for executing install scripts obtained from user specified package repositories?

                                        1. 5

                                          I personally prefer a reasonable coding assignment over a normal interview. IMO it’s reasonable and makes sense to have people write code as part of the vetting process for a job writing code.

                                          Whoever did the test in the shortest time with the “cleanest” code wins. Everyone else loses.

                                          Is this really a thing? I’ve never seen a hiring process setup as a direct competition before.

                                          1. 8

                                            The article talks specifically about coding challenges as the first step in the hiring process. It doesn’t argue against coding assignments after the hiring company has invested some resources itself.

                                          1. 8

                                            As someone who is a total stranger to Elm, its dev and its community, but was interested for a long time in learning this language, I wonder if this opinion reflects the feeling of the “great number” or not.

                                            1. 21

                                              I have to say that I personally can very much see where he’s coming from. GitHub contributions are dealt with in a very frustrating way (IMO they’d do better not allowing issues and PRs at all). There’s a bit of a religious vibe to the community; the inner circle knows what’s good for you.

                                              That said, they may very well be successful with their approach by a number of metrics. Does it hurt to loose a few technically minded independent thinkers if the language becomes more accessible to beginners?

                                              Where I see the largest dissonance is in how Elm is marketed: If the language is sold as competitive to established frameworks, you’re asking people to invest in this technology. Then turning around and saying your native modules are gone and you shouldn’t complain because no one said the language was ready feels a bit wrong.

                                              1. 7

                                                Yeah when I look at the home page, it does seem like it is over-marketed: http://elm-lang.org/

                                                At the very least, the FAQ should probably contain a disclaimer about breaking changes: http://faq.elm-community.org/

                                                Ctrl-F “compatibility” doesn’t find anything.

                                                It’s perhaps true that pre-1.0 software is free to break, but it seems like there is a huge misunderstanding in the community about compatibility. The version number doesn’t really mean much in my book – it’s more a matter of how many people actually rely on the software for production use, and how difficult their upgrade path is. (Python 3 flauted this, but it got by.)

                                                I think a lot of the conflict could be solved by making fewer promises and providing some straightforward, factual documentation with disclaimers.

                                                I watched the “What is Success?” talk a couple nights ago and it seemed like there is a lot of unnecessary conflict and pain in this project. It sounds like there is a lot to learn from Elm though – I have done some stuff with MUV and I like it a lot. (Although, while the types and purity probably help, but you can do this in any language.)

                                                1. 4

                                                  I watched the “What is Success?” talk a couple nights ago and it seemed like there is a lot of unnecessary conflict and pain in this project

                                                  I watched the talk also, after another… Lobster(?)… Posted it in another thread. My biggest takeaway was that Evan really doesn’t want to deal with an online community. People at IRL meetups, yes. Students in college, yes. People/companies online trying to use the language? No. His leading example of online criticism he doesn’t want to deal with was literally “Elm is wrong” (he quoted without any context, which isn’t that helpful. But maybe that was all of it.)

                                                  That’s fine. He’s the inventor of the language, and the lead engineer. He probably does have better things to do. But as an outsider it seems to me that someone has to engage more productively with the wider community. Our, just come out and say you don’t care what they think, you’ll get what you’re given, and you can use it if you choose. But either way communicate more clearly what’s going on, and what to expect.

                                              2. 13

                                                I’ve shipped multiple production applications in Elm and attempted to engage with the community and I can say that their characterization perfectly matches mine.

                                                Native modules being removed in particular has caused me to no longer use Elm in the future. I was always ok with dealing with any breakage a native module might cause every release, and I’m even ok with not allowing them to be published for external consumption, but to disallow them completely is unreasonable. I’m sure a number of people feel the same way as I do, but it feels impossible to provide meaningful feedback.

                                                1. 9

                                                  I work for a company that began using Elm for all new projects about a year and a half ago. That stopped recently. There are several reasons that people stopped using Elm. Some simply don’t like the language. And others, like the author of this post, want to like the language but are put off by the culture. That includes me. This article closely resembles several conversations I’ve had at work in the past year.

                                                1. 4

                                                  What a curious way to announce this much awaited new Elm release. Does anyone here know more about the ideas behind that? I’d have expected some kind of public beta and a proper release announcement…

                                                  1. 4

                                                    Yeah, it’s a bit…different, but it looks like picking and highlighting one feature is what was done for previous releases as well: http://elm-lang.org/blog

                                                    1. 2

                                                      Especially given the “is Elm dead?” questions that have been popping up in the past few months. I guess it’s better to be head-down working on the next release, but I think just a little more communication or visibility into the project might have helped alleviate some of the concerns.

                                                      1. 3

                                                        This topic was addressed by Evan (creator of Elm) in his recent talk at Elm Europe 2018 titled: “What is success?”

                                                        1. 2

                                                          So I watched the video, and this is addressed around the 41 minute mark: “There’s pressure on me to be always be saying everything that’s going on with Elm development, and the trouble is that it’s not always very interesting… it’s like… ‘still working’”.

                                                          I think “still working” would have been better, though. I don’t think anyone expected weekly updates. Every 2 months updating the Github readme with “still working” would have been fine. And the fear that saying you’re working on X and then it doesn’t pan out, so better to not say anything at all, seems like the worse option.

                                                          I also think the talk is a little dismissive of Javascript, and the community. Sure, the number of packages is by no means the be-all of a good language ecosystem, but it says something about the platform and its viability. If nothing else, it means there are alternatives within the ecosystem. People have limited time, and very limited time to invest in learning brand new things, so they naturally look for some way to compare the opportunities they have. Is looking at numbers the ideal behaviour? Maybe not, but if I want to sell Elm to my boss and she asks me when the last release was and I say “18 months ago” and she asks if I know when the next one will be and I say “no”… that’s how languages don’t get adopted and ecosystems don’t grow.

                                                          As a complete outsider, but also as someone who wants Elm to succeed, I think community management is something they need to take really seriously. It seems like Evan really doesn’t want to do it, so fine, have someone else do it. You can dislike that there are persistent questions about the future of your project, but they’re best addressed at the time, not left unanswered.

                                                          1. 3

                                                            Personally, I’m not really convinced by those arguments.

                                                            I especially don’t understand why 18 months since last release, and no known date of new release, are arguments against adoption of the language. Take C or C++ — they rarely have new releases. Is this an argument against adoption? I don’t think so; actually, more like for adoption in my opinion! Slow pace of releases can mean that the languages are mature and stable. I’d be really surprised and annoyed by a boss who would think otherwise.

                                                            It now occurred to me, that maybe Lua is a good example of a language having a similar development mode as Elm. It’s also evolved behind super tightly closed doors. And new versions are usually dumped on the community out of the blue; though usually with public betas & RCs. But those are published only for fleshing out bugs; language design input is mostly not taken into account. AFAIK, the community is generally OK with this. And the language is totally used and relied upon in numerous niches in the industry (including a large one in game development)!

                                                            1. 5

                                                              “Elm” includes the language specification and the compiler.

                                                              The C language specification rarely has new releases, but the C compiler, gcc, has 4 releases per year. There would be major concern from the community and your boss if gcc activity was perceived as drying up.

                                                              1. 1

                                                                Ah; good one, never thought of it this way; big thanks for pointing this out to me!

                                                              2. 2

                                                                Take C or C++ — they rarely have new releases

                                                                C and C++ have been mature and in very wide use for decades, where Elm is a very young language - just a few years old. Same with Lua, it’s been in widespread use for, what, 10 years or more? I think that’s the difference. Elm is still much more of an unknown quantity.

                                                                Slow pace of releases can mean that the languages are mature and stable

                                                                Sure - when the language is mature and stable. I don’t think anyone would consider Elm to be that way: this new release, if I understand correctly, breaks every package out there until they’re upgraded by their maintainer.

                                                                1. 3

                                                                  Personally, after some initial usage, I currently actually have a surprising impression of Elm being in fact mature. It kinda feels to me as an island of sanity and stability in the ocean of JS ecosystem… (Again, strictly personal opinion, please forgive me should you find this offensive.) I didn’t realize this sentiment so strongly until writing these words here, so I’m also sincerely curious if this could be a sign of me not knowing Elm well enough to stumble upon some warts? Hmh, and for a somewhat more colourful angle, you know what they say: old doesn’t necessarily mean mature, and converse ;P

                                                                  And — by the way — notably, new releases of Lua actually do also infamously tend to break more or less every package out there :P Newbies tend to be aggravated by this, veterans AFAIU tend to accept it as a cost that enables major improvements to the language.

                                                                  That said, I think I’m starting to grasp what you’re trying to tell me. Especially the phrase about “unknown quantity”. Still, I think it’s rare for a language to become “corporate grade non-risky”. But then, as much as, say C++ is a “known quantity”, to me it’s especially “known” for being… finicky

                                                          2. 2

                                                            Yeah the last release was in Nov 2016.

                                                            1. 1

                                                              The devs are active on https://discourse.elm-lang.org/, which might help people see the project activity.

                                                            2. 1

                                                              since they recently disallowed using javascript in elm packages, it only makes sense that they’d lead with what that had won them, i.e. function level dead code elimination.

                                                            1. 4

                                                              Interesting. There’s a JavaScript demo to play around with the syntax at https://eno-lang.org/demo/. Would be neat to get some kind of generic parse tree (JSON?) for an eno document.

                                                              I’m a bit unclear on what it means that “all whitespace is optional”, and how to deal with whitespace in values. It appears that leading and trailing whitespace in a field like

                                                              Greeting: Hello World
                                                              

                                                              is stripped. It seems that to encode leading whitespace, you need a block:

                                                              ---Greeting
                                                              Hello World
                                                              ---Greeting
                                                              

                                                              (This is relevant to me as this seems like a possible alternative to YAML that requires less painful indentation while offering raw multi-line blocks. I’m currently using YAML as a format for puzzles, but it’s not perfect, compare puzzle-draw.)

                                                              1. 3

                                                                For the generic JSON-like parse tree you can use https://eno-lang.org/javascript/#Section-raw, note however that this debug output tree only contains strings (the parser does not know about your types) and as most elements can be turned into arrays by repetition in eno, most elements are wrapped as such in the raw inspection format by default (here again the parser cannot know :)).

                                                                Regarding whitespace you are correct - leading and trailing whitespace is always stripped, except in blocks, where all whitespace is retained verbatim, and your usecase is exactly the thing this mechanism is designed for, would be happy to hear about your experience in case you do try eno to store your puzzles! (Also feel free to get in contact in case of questions or if anything in the documentation can be improved)

                                                                1. 3

                                                                  Looks like line continuations or escaping might work for including whitespace: https://eno-lang.org/advanced/

                                                                  1. 2

                                                                    Leading and trailing whitespace removal also happens for line continuations (except for the space separator itself which is added in by the parser), escaping only exists for keys, no value in eno ever has to be escaped, that is one of the design principles in the language to keep non-technical users from running into unpredictable and for them often unsolvable behavior. :)

                                                                    Thanks a lot for helping out! - I’ll take the fact that not everything is clear yet as a nudge for myself to improve documentation in the coming weeks and months! ;)

                                                                1. 1

                                                                  Here’s their humans.txt: http://humanstxt.org/humans.txt

                                                                  1. 2

                                                                    Very helpful hands-on optimization exercise, thank you!

                                                                    At one point, they switch from lists to vectors for a slow-down, then get to an overall improvement by refactoring to not use fixM hence avoid expensive equality checks. I’m curious what the effect of the latter refactoring would have been while staying with lists.

                                                                    1. 3

                                                                      The link is to a very useless spam quora question. The email provider does exist (see wikipedia: https://en.wikipedia.org/wiki/Tutanota), but there’s no indication it’s particularly a Gmail alternative rather than just another mail provider.

                                                                      1. 2

                                                                        The link provides a good rationale for how the company operates and what their goals are. Their product is open source, and can be self-hosted, which is quite a bit more than just being another email provider in my opinion.

                                                                      1. 6

                                                                        This would be more convincing with a bit more attention to detail with respect to the readability of the article. E.g., there’s a couple of missing spaces between words/sentences, and the <h3> are barely distinguishable from the rest of the text.

                                                                        (And, yes, Medium…)