1. 5

    I read the examples thinking, hey, this looks and works a lot like ocaml with different syntax — even the way it handles mutability is the same. And it turns out it is built in ocaml! Nice. I didn’t look further to see if it’s compiling to ocaml and then to wasm under the hood, but I wasn’t aware ocaml had a wasm target so perhaps it’s all just a coincidence.

    1. 3

      Congrats on the new project. Given you are the creator of the social site sublevel, which seems to still be alive, what was the impetus for going on to make this new one also?

      1. 2

        I guess I don’t know enough about CPU architecture as I can’t understand the reason behind this change. Could someone explain why Intel would want to increase so dramatically the number of cycles a pause takes? Is it meant to be an efficiency tradeoff that means fewer explicit pauses while waiting for locks?

        1. 8

          Indeed a timing change like this is normally due to power efficiency constraints or targets. I’d conjecture that in their internal evaluation benchmarks, Intel decided that this allowed their cores to more aggressively drop to a lower power state while seeing an acceptable performance loss (which is exactly what Intel’s docs say, shown in the article). It would seem that the .NET spinlock implementation was dependent on knowing the latency of pause instruction. I wouldn’t call this a hardware performance regression. It just looks like software didn’t support the hardware well yet, and soon there will be official support by MS. It’s still a well done exploration into the performance regression of that workload.

          EDIT: as someone pointed out in the HN thread, the change in cache configuration in Skylake is another possible (and probably bigger) motivation for changing the pause latency. He points out that specifically a dirty read from another core’s L2 has increased latency compared to previous gen’s dirty hit to the inclusive L3. I’d assume a shared hit wouldn’t be that much better.

          EDIT2: DVFS latencies are on the order of ms for Intel speed shift, orders of magnitude too large to be useful in this context. The “small power benefit” mentioned would just be the reduction in dynamic power from the reduction in spinning.

        1. 1

          You might be interested in sgo, a “Go dialect” that prevents nil errors by enforcing if thing != nil checks at compile time: https://github.com/tcard/sgo/blob/master/README.md

          1. 6

            As others have alluded to, this is the classic plight of early “Web 2.0” successes where they thought they could keep their service “free” by using advertiser support. Only when nobody cared and everybody was enjoying their free lunch Twitter among many others has started to clamp down.

            What I would LOVE to see is widespread acceptance of the idea that advertiser funding is a fatally flawed model. One way for Twitter to go with this is to offer a “pro” option which would be ad free and paid, and also allow full and open access to all of its APIs, including the ones they’ve nuked in recent years.

            One of the things that drew me to Twitter was its diverse ecosystem of users and clients because developers had free reign to innovate using their platform. Clearly the future for this kind of innovation lies with tools like Mastodon and Pleroma, but as I say above it’s not too late for companies like Twitter to make bold moves and fix the broken model before it destroys them.

            1. 2

              I find the “pro” strategy appealing, but I can’t think of a big site that’s succeeded with it. I’ve seen a lot of sites try and it doesn’t really seem to last. I don’t have numbers available, but I suspect that advertising revenue substantially outweighs subscription revenue most of the time.

              1. 4

                Can’t remember where I heard it, but on some sites the value of a user (to advertisers) who would use a pro option exceeds what said user is willing to pay.

                Not sure if true or not, but it has stuck in my mind.

                1. 2

                  Yes, that’s what I was suggesting.

                  1. 1

                    Oh! This is super interesting for a completely different discussion I’ve been having recently. Can you do me a favor and try to find out where you got that?

                  2. 2

                    I did some googling wondering if I could find some real data on this and failed. Flickr comes to mind, which was in fact quite successful and is still much loved despite having been bought by that roving dumpster fire that is Yahoo, and recently SmugMug.

                    1. 1

                      This is not at all an apples-to-apples comparison, but The Guardian (a newspaper/media co) now makes more from subscribers than from advertising. It’s a far cry from saying “this model works!” (the same article notes they still posted a loss) but I think it’s promising.

                    2. 2

                      What I would LOVE to see is widespread acceptance of the idea that advertiser funding is a fatally flawed model. One way for Twitter to go with this is to offer a “pro” option which would be ad free and paid, and also allow full and open access to all of its APIs, including the ones they’ve nuked in recent years.

                      This may be an unpopular opinion, but I don’t think social networks offer enough value for enough people to pay in the “pro” model. It might work on a small scale, but I don’t think it can work for a network as large as Twitter.

                      1. 2

                        You may be right. That would have me leaning towards the idea that behemoths like Twitter will need to go full on closed system draconian advertising for everyone and no third party anything, which will drive away the minority who really care (who should likely be seeking safe harbor in open networks like Mastodon at this point anyway.)

                        I personally feel that if someone could make a Mastodon or Mastodon-like server simple enough to deploy that grandma could do it, Mastodon would really take off in a big way.

                    1. 2

                      I didn’t know the language supported adding type annotation to functions… that’s neat!

                      1. 2

                        They were added in Python 3.5 I think. There’s no way to enforce them at runtime, unfortunately, they’re essentially just “type hints” that can be read by tools like Pyre to point out type errors.

                        1. 1

                          You can enforce them at runtime with decorators from third party libraries, for example enforce. It’s similar to how you can’t enforce them at “compile” time either; instead, you call mypy.

                      1. 5

                        Does the FB post come with a link to somewhere else? It would be nice, out of principle, not to try to open an FB link in vain.

                        Most likely login nag and tracking cookies…

                        1. 5

                          I know what you mean. The docs are at https://pyre-check.org/.

                        1. 4

                          I’ve really missed Tab Groups and the ability to hide groups of tabs since Firefox 57, so this is welcome news. I use tab groups like workspaces for different tasks, and there hasn’t really been a good alternative way to manage this since the upgrade.

                          1. 2

                            Yes! I’m a heavy tab user. Getting TabGroups back would be the best news about Firefox I could hear. Nothing else has collectively improved my experience with Firefox as much as losing TabGroups has been detrimental to it.

                          1. 1

                            AFAIK it should be [native looking] not [native]. There are two meanings fit native. First is that code is compiled to binary native to the CPU - Dart is not compiled. Second is that it uses native controls for look and feel - Flutter draws everything itself. Second meaning in this context is more useful. It may look native, but every system update requires work to make it look native again. Not saying that it can always be slightly off, especially in feels department.

                            React Native uses native controls, so they have somewhat overlapping use cases, but one can do what other cannot.

                            Also what’s with the AI tag?

                            1. 4

                              As far I understand it, Dart is indeed compiled — see here under “how does Flutter run my code on Android?” and the related iOS entry at https://flutter.io/faq/. I think it’s fair to label this “native”, even though it doesn’t use the OS’s native UI controls.

                              1. 2

                                Thanks I stand corrected.

                              2. 1

                                iOS still forbids JITs and interpreters (except builtin javascript) so it should be AOT compiled if it targets iOS.

                                When talking about UIs, “native” usually means “uses OS-native widgets”. For example, react-native usually considered “native” because it uses such widgets despite using javascript for UI logic. GTK is not native on Windows but native on Gnome desktop. I don’t understand obsession for AOTing UI glue code on mobile devices (especially iOS).

                                1. 1

                                  Interpreters are allowed on iOS, but only for code included with package or user created.

                                  It’s more an obsession for AOTing everything, because most code bases are mostly homogenous. So for example the computation heavy code will be written in the same language as the UI glue code. For better or worse.

                                2. 1

                                  Also what’s with the AI tag?

                                  Fat fingers at my end, looking for an android tag when posting from a mobile. Apols

                                1. 3

                                  I think a few issues mentioned here (like copy and paste being weird key combos) are related to using the default Windows console application specifically. But you can run bash.exe from other apps too! I like ConEmu, it’s a lot nicer to use.

                                  https://conemu.github.io/

                                  1. 3

                                    I’ve used https://github.com/mintty/wsltty that was mentioned on the bug under Github

                                  1. 4

                                    Side note: is it just me or is the font really hard to read?

                                    1. 3

                                      It uses Helvetica, which on my system matches (fc-match Helvetica) to a bitmap font that looks bad.

                                      1. 5

                                        Welcome to the suck that is font config. But not to worry. It’s all open source. And there’s a config file. You can fix it yourself!

                                      2. 2

                                        Not just you. It’s too light, both in weight and in colour, I think, so almost impossible to read on my phone. I gave up.

                                        1. 1

                                          looks fine here.

                                        1. 7

                                          And we wonder why women leave the computing industry at a faster rate than men….

                                          1. 6

                                            Why? Because a male programmer choose to demonstrate this concept by showing paintings of boobs instead of penises? He could have, of course, demonstrated this with something else, but this clearly gets the point across of how bad it can get without being completely obscene, or actually committing data that would confirm the problem to begin with.

                                            1. 6

                                              I’ve noticed that a lot of men have a problem with seeing other men’s penises. There’s a certain threat factor involved with an exposed penis. Consider how many men act grossed out at the thought of other men being nude for an extended amount of time in the locker rooms. Why are they so nude? They must be pedophiles getting off from exposing themselves. Even worse if they’re older men, their nudity is doubly threatening.

                                              Anyway, my point is, yes, choosing breasts was a very gendered, male choice.

                                              1. 7

                                                The author explains it quite plainly:

                                                Immutability is a double-edged sword. Transaction data stays forever, which is good. But a wicked mind could leverage immutability to store harmful images or texts about a third party FOREVER, with the goal of inflicting social damage. Once stored, it is irreversible. And it interferes with the Right to be forgotten. Think about a spiteful vengeance in the context of a lovers’ spat or a relationship break-up. That’s why I’ve used artistic boobs, as a fun analogy

                                                1. 4

                                                  Does everything have to be political? Can you not just see what he’s doing and look at the intent instead of trying to insert some unrelated narrative?

                                                  1. 5

                                                    That ship sailed a long time ago, sibling.

                                                    1. 6

                                                      Does everything have to be political?

                                                      He made it political in the first place by choosing breasts. If you don’t want people to discuss human anatomy, pick something else as an example, something that doesn’t bring the same kind of attention. We are frail, social creatures and that means politics.

                                                      1. 5

                                                        I don’t see how breasts are remotely political.

                                                        1. 2

                                                          Obviously, doctor, you’ve never had to deal with hearing the public’s opinions about your breasts.

                                                        2. 4

                                                          pick something else as an example,

                                                          The danger of picking something else is that the entire danger will be lost on the casual reader. “Oh noes!!!! I can put flowers in the block chain and they are forever!!!! AAAAAHHHH WHAT WILL I DO???” v. my immediate reaction of “I sure hope my daughters, in 8 years, don’t start snapchatting breast picks to their so called friends who make it impossible to delete, forever!”

                                                          1. 1

                                                            If you don’t want people to discuss human anatomy, pick something else as an example, something that doesn’t bring the same kind of attention.

                                                            something that doesn’t bring the same kind of attention.

                                                            Maybe that’s the meta reason? To get everyone wound up and subconciously realize what this post is really about?

                                                    2. 7

                                                      I popped into the comments to say the same thing. I suppose I can see why he thought using those pictures was apt, but I think the point could’ve been made just as strongly using any image.

                                                      1. 3

                                                        Your remark, true or not, is not germane to this topic and will likely only lead to flaming.

                                                        If you can’t say anything about the technology, don’t say anything at all.

                                                        1. 9

                                                          If you can’t say anything about the technology, don’t say anything at all.

                                                          It seems to me that you’re encouraging the self-censoring of one viewpoint under the guise of maintaining neutraity. When the dispute is between “this is in poor taste” and “there is nothing wrong with this”, silence on the subject is an implicit endorsement of the latter.

                                                          1. 5

                                                            My point is that that dispute is uninteresting and off-topic compared to the technology.

                                                            1. 2

                                                              When the dispute is between “this is in poor taste” and “there is nothing wrong with this”, silence on the subject is an implicit endorsement of the latter.

                                                              You are perfectly free to find something in bad taste. And you’re free to express that opinion. But trying to constitute an argument out of it, for the purpose of holding people to a standard you haven’t met yourself, is illegitimate. Extremely fashionable, but still not valid.

                                                        1. 9

                                                          The comments in here…

                                                          • “Though I’m still waiting for my ‘Fetch Title’ button on the web UI”
                                                          • “Though I’m still waiting for a way to view my bookmarks with the twitter and twitter_favs filtered out”
                                                          • “Does this mean that we’ll get an official mobile version of Pinboard”

                                                          Along with my own thoughts when renewing my pinboard acct. recently (tag-suggestions, pay more $ for prettier pdf archiving, etc.) make me think there’s still room for a bootstrapped competitor if one’s really driven to do it. Either that or routes to improve other solutions (e.g. improving shaarli, extending standard notes, etc.)

                                                          (seriously, i love pinboard overall though)

                                                          1. 7

                                                            I’m pretty sure Maciej would love to have competition (seriously).

                                                            1. 4

                                                              I would renew my Pinboard account just for all the other work Maciej does, but getting few more features as a Pinboard user is nice too.

                                                              1. 2

                                                                Indeed, I still renewed. One nuance I should’ve pointed out about pinboards decision to not invest too much in the ui is that its opened up the opportunity for pinboard apps by other indie developers. I could actually see it being a reason for Maciej to be a bit afraid of squashing the “ui playground” of existing pinboard client apps in the process.

                                                                This is something I’ve explicitly observed in other services with a large tech-savvy userbase, where they’ve rejected acquiring native iOS apps that use their service because it would immediately make them a competitor / alienator to other client apps supporting the service.

                                                              2. 1

                                                                Bookmarking apps come and go, so I get that one reason people stick with Pinboard is that they’re fairly confident it’s going to be around in 5 years, regardless of lack of development. That’s fair. All the same, I’m trying to build something that competes by adding some stuff that Pinboard doesn’t do (syncing github starred repos, official Android client, iOS client is on the way) and backing that up with regular updates. I can’t really point to anything convincing that says my thing will be around in 5 years, but on the other hand, it costs barely anything to run, and I’m stubborn, so I don’t see why not.

                                                                Anyway, if anyone is shopping for an alternative and thinks Maciej is doing well enough already, you might like to take a look at https://larder.io.

                                                                1. 1

                                                                  Nice! Wish I heard about this before resubscribing to pinboard for a few more years, bookmarked this for later (along with changemap).

                                                                  You may want to consider doing some marketing (i.e. listing your site on places like alternativeto, etc.). I recall actively looking for some alternatives last month but didn’t find your service.

                                                              1. 2

                                                                Good to see this is still going. You weren’t able to sell it or find a new caretaker in the end?

                                                                1. 2

                                                                  Despite already having a lot on the go, last week I started a new project for managing public roadmaps. Most “transparent businesses” that already share their upcoming, in-progress, and completed tasks use trello, but of course it’s not made for this exact use-case. So handling user suggestions is a hack, and you can’t generate a nice changelog from it, for example. It’s a generic task management tool, not a tool for public roadmaps. Anyway, we (Hello Code) currently use trello for our apps' roadmaps too, but I’ve been building something better that we can first test for ourselves, with our users, and then hopefully offer to others. I’m pretty pumped about it, so I’ve been working a bit harder than usual trying to get it done. I’m hoping by the end of this week it’ll be ready for us to use.

                                                                  And hey, if anyone here needs something like this, send me a message!

                                                                  1. 2

                                                                    On Saturday I sent out the first GitHub releases update email for Larder, our bookmarking app that syncs GitHub starred repos. If any of a user’s repos has had a new release (via GitHub’s releases feature) within the week, it’ll link to the release and include the release notes. I built this more because I wanted a way to keep track, but I had a positive response from current users too so I’m glad I made the effort.

                                                                    This week I’m switching back to work on Exist (personal analytics platform). I’m finally getting stuck into changing the architecture to handle tracking intra-day events. Currently we store values for each of a user’s attributes as a total for a day, eg. total tweets sent or total tasks completed, but changing this to store events, eg. a single tweet with a timestamp, will let us do some more clever analysis around times of day users do things. Probably some k-means clustering, and definitely some more fine-grained correlations, rather than just the current “on days where you do this a lot, you also do this other thing a lot”. It’s going to be a big change, and probably take me months! Users will just have to hold tight.

                                                                    1. 1

                                                                      Last week I released the Android app for my bookmarking service for developers, Larder, so this week I’ve been doing some little tweaks and bug fixes based on dogfooding it. There’s still a way to go (no edit or delete from the app yet) but as a way to save bookmarks via the share menu, and for browsing and searching bookmarks, it works pretty well. I mostly do web dev so it’s nice to feel like I can finally call myself a decent Android developer as well.

                                                                      Larder is still very small in terms of user base though, so I’ve been having a lot of back-and-forth with my co-founder about how best to market it. She’s the more experienced person there, but neither of are especially comfortable with the sort of things one seems to need to do to market one’s products these days, so we’re trying to work out what we can do that’ll work but not feel spammy. I’m interested in the idea of interviewing devs about their setup and their work for the blog, so maybe we’ll give that a go and see if we can get anybody sort of well-known to respond.

                                                                      1. 5

                                                                        Reading through the examples I thought, hey, this looks a lot like elm! And not surprisingly, the readme had this to say:

                                                                        Yup, it’s greatly inspired by the elm architecture. But contrary to elm, choo doesn’t introduce a completely new language to build web applications.

                                                                        1. 2

                                                                          I launched Larder, a bookmarking service for developers, a few weeks ago, and this week has been about adding more features to that. The web client and browser extensions are pretty solid now, but there’s plenty of auxiliary stuff that needs to be done.

                                                                          I’ve been continuing to tweak the home page (I can’t help myself, even when it’s “good enough” and I should be working on other more useful features) and next I’ll be working on getting the Android app to beta stage. It’s hard to decide which features to prioritise, but I think having native mobile clients is probably more useful, especially in signalling that we’re invested in the project, than adding more of the developer-oriented features like importing starred Stack Overflow questions.

                                                                          In terms of side projects, I’ve been making progress on my toy programming language, Braid. I have the lexing and parsing pretty sorted, and can generate enough basic LLVM IR to compile and run simple functions involving ints and strings.

                                                                          1. 1

                                                                            The readme states this project is no longer maintained and doesn’t work any more. I don’t really understand why it’s here. There’s value in reading their approach to uploading instagram photos, I guess?