1. 2

    I don’t spend a lot of time working with Javascript but I see these articles a lot and a common complaint is that yes, vanilla Javascript is powerful these days but it’s hard to maintain over larger codebases. So between the “frameworks/libraries” crowd and the “vanilla JS” crowd… is it actually possible or advisable to create a modern web application in “a little bit of plain Javascript”?

    1. 3

      Depending on the app, I think it’s possible and advisable to create a modern web app with a little bit of plain JS. Basecamp have a whole thing about sprinkling JS on top of a solid HTML/CSS foundation, and their new email app HEY is supposedly built like that, with JS just taking over HTTP requests (links, form submissions) and applying them in-place. (I haven’t used the app, I’m just intuiting based on a Twitter thread that was doing the rounds). So basically, you’d use:

      • fetch() for the request
      • the History API to manipulate browser history
      • various DOM querying/manipulation methods to glue everything together

      Web Components are a set of specs that as a whole should further the goal — just drop in its JS file and get a new custom component with which you interact like any other DOM element — but unfortunately there are various roadblocks, bugs, and limitations that limit their impact.

      Closer to the SPA spectrum (one HTML rather than many), you definitely can have everyting in plain JS, but it won’t be a little for anything non-trivial and it will get unwieldy. I guess there are two parts to the “plain” story:

      • not transpiled, nor supported by any build process; this is a major spaghetti maker. Without proper support for modules, dependency management is finicky and you’re stuck with carefully putting everying in the right order in the global namespace. Support for native modules is gaining ground, but for near-universal support you can’t rely on them alone.

      • using the Web APIs directly, rather than relying on libraries and frameworks; definitely possible, after you develop a sense on how to organize things, but I think for larger teams it can become challenging because keeping it sane relies on devising, and following, your own rules and constraints.

      1. 4

        My last from scratch project I built using Stimulus (https://stimulusjs.org/) from Basecamp. It’s just enough JS. That plus turbo links really made the app super simple but also SPA like.

        Highly recommended.

      2. 1

        It’s possible. Main selling point of Javascript frameworks - it is a framework. With vanilla js your app can become a mess if you’re not really good at architecture (and I believe a few is good). On other hand you can use a framework which prescribes where to put stuff, and how to organise data flow. Lots of people complain about bloated web and blame frameworks. I believe without frameworks it will be worse.

        1. 1

          I think we could get a long way by injected a middle path between “completely plain, download from cdn url” and “dependency hellhole full on framework with multiple compilation steps” projects tbh, it’s just that the tooling and norms are pushing you towards the latter and the type of person attracted to the former is not necessarily going to have the knowledge or patience to leverage the standard tooling in a more minimalist way.

          It is possible to support stricter subsets of modern browser versions if you want to avoid a lot of back compat compilation steps with Babel or remove it entirely, it is possible to limit your dependencies to heavy well specced libraries like markdown or community standard utility libs like lodash, or at the very least be meticulous about what needs to go in build dependencies vs devDependencies. but it takes both domain knowledge and patience which don’t necessarily pay off in commercial work (until of course, they do, but by then you’ve got a massive SPA on your hands most likely and the issues have been compounded).

          And this problem is of course transitive and endemic to the community norms, your well selected libraries must themselves also have been authored with an eye towards similar standards, and the bigger your project gets the more likely it is you’ll have dependencies or transitive dependencies that carry some bloated or poorly maintained package dependencies of their own. I would love to see workflows that have the flexibility of build and bundle tooling with a minimalist approach to dependencies, but it’s just quite uncommon atm.

        1. 9

          Good list. I think another thing that’s really valuable is just adding a

          <meta name="viewport" content="width=device-width, initial-scale=1">
          

          line to the header so that it doesn’t look horrible on mobile. Lots of people read on their phones, and it’s a one line way to make it look decent without thinking too hard!

          https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag

          1. 5

            This link might be old hat, but for those who haven’t seen it, I found its argument on this topic to be pretty compelling:

            http://winestockwebdesign.com/Essays/Lisp_Curse.html

            1. 3

              Clojure is a clear counterexample to this argument.

              1. 3

                …And it would be very interesting to study more about Clojure’s community and tech ecosystem to try to come up with an argument as to why.

                1. 3

                  Clojure was only 2 years post 1.0 when this was written, and though it’s a counterexample to be sure, it’s only one in the long history of lisps in the past half dozen decades.

                  1. 1

                    Yet it seems to be the first lisp written with the expectation that you wouldn’t spend your time manipulating lists to get things done, but rather spend your time getting things done by manipulating lists. Just the perception of this novice.

              1. 4

                :eyeroll: not another monad tutorial

                j/k this paper is OG great :)

                1. 8

                  I didn’t expect something like this from Cadey, always seemed like a go advocate. (See also the fun hello-world compilation test with big functions.) I’ll still bet we’ll see another post about all the things that are (still) hard to get working in rust, in contrast to more mature ecosystems :)

                  1. 28

                    Expect the unexpected. I’m hitting a point in my career (and understanding of programming) where I really think that more elaborate tools are better. I gotta do a lot more with Rust to get fully up to speed on it, but so far I think it is a lot more fair to trade slower development time for more correctness.

                    1. 5

                      Nice to hear and wasn’t meant offensive. My second point was more from my own experience. Though it really depends on the use case.

                      1. 12

                        It does, but correctness is probably a lot more important than developer efficiency. At least if you don’t want to wake people like me up at 3 AM :)

                        1. 15

                          I hold a slightly different belief: correctness enables developer efficiency. In all its forms (type systems, test suits, formal proofs, module invariants, &c.), it enables developers to stop worrying about different things. The more background cycles you can free up to work on the actual problem, the more productive your developers become.

                          1. 10

                            Types both direct me towards solutions AND check my solutions, at the SAME TIME.

                            1. 8

                              I think the phrase “slow is smooth and smooth is fast” is applicable here.

                              1. 3

                                IMO Correctness costs early, and pays off later. Maintenance is always easier the more explicit everything is, because you’re always shuffling different contexts in and out of your meat cache, and when you can’t see information in the code you’re looking at, you have to constantly stop and go hunting for it.

                                1. 3

                                  Having coded rust for a while and used typical GC-based langs as well, I can totally see both sides. Especially when you also add the ecosystem into the mix. For some it’s faster to build stuff and also remove it fast again, the overhead to get it truly right isn’t worth it. I personally strive for the opposite but sometimes it’s really hard to sell this.

                                  1. 7

                                    I spent a lot of time looking at green tests and flames in production, and decided there had to be a better way to catch problems before they set prod on fire. Now I’m all about the types.

                                2. 2

                                  Would be interesting to hear how this turns out. Most of my experience is from writing async stuff pre async/await, so I’m curious how it feels now. (Haven’t had the time to switch over my projects.)

                              2. 5

                                I feel this, in fact I feel a take brewing but I don’t have it fully realized yet.

                                We have this eternal tension between “developer efficiency” which usually means, maybe simplicity however you may define it or intuitiveness (also subjective of course) and lack of friction to get up and running, and correctness which means robust software that handles many error cases and can self correct in some cases… but maybe this is a false dichotomy.

                                I am thinking of musical instruments, where in order to really express yourself it takes years of effort to become fluent technically. nobody bats an eye at this, but we all also appreciate that the easiest way to play liszt on the piano is to put a bluetooth speaker on the top of it and connect it to spotify. I’m joking, but not by much.

                                Anyway what I’m getting at is that the sharpest tools cut the most easily, which is axiomatic and we all laugh at the C jokes, but why shouldn’t it take a lot of effort to become fluent in them?

                                This isn’t really a well thought out take but maybe you see what I’m getting at.

                                1. 3

                                  Be careful, nowadays your attitude that using tools properly might take years of practice is often dismissed as “gatekeeping”.

                                2. 3

                                  What kind of stuff are you looking to make with Rust?

                                  1. 7

                                    So far I’m easing into what I know really well: chatbots and webapps. Eventually I hope to port Olin to Rust and use it as the backend for wasmcloud. I’ve started to work on something for this here, but right now it’s a very elaborate hello world :)

                                    1. 3

                                      Here’s my first real public facing one: https://printerfacts.cetacean.club Here’s the source code: https://github.com/Xe/printerfacts

                                      1. 2

                                        Very cool, looking forward to reading more about that in the future.

                                    2. 3

                                      Interesting view. How do you feel about tools like Ada Spark, Agda, and others that try even harder for correctness?

                                      1. 2

                                        I have no opinion on them because I haven’t used them yet.

                                  1. 8

                                    Tech tutorials on Medium are the worst. I don’t have an account so I always get the paywall, and it’s annoying enough to have to open an incognito window or another browser that I usually just keep looking for another answer.

                                    I get why non-tech writers would use something like Medium, but I wish more developers who write would just set up their own site and use Netlify. I think writing in markdown is a much more pleasant experience, too.

                                    1. 5

                                      The lack of proper syntax highlighting is a real deal breaker for me as an author. You are left with screen grabs of your editor window or “HOSTED WITH HEART BY GITHUB” gists embeds everywhere, which are terribly painful to work with.

                                      1. 2

                                        Agreed. I have no idea why anyone uses it for any writing that involves code.

                                        1. 1

                                          Because it’s by far the easiest option. I don’t have to fart around with anything.

                                          1. 1

                                            What about dev.to? Just as easy, no paywall.

                                      2. 1

                                        I don’t have an account so I always get the paywall, and it’s annoying enough to have to open an incognito window or another browser that I usually just keep looking for another answer.

                                        You might like the Cookie AutoDelete extension.

                                        1. 1

                                          Me too, I have to open medium links in a private tab. Not only to avoid the paywall but also to escape from the Google Accounts 3rd party cookie, which is impossible to block on Firefox for iOS.

                                          Now, on my phone, I don’t even click on Medium links anymore.

                                        1. 15

                                          This is the complete list of domains where a user’s next submission could be blocked for having a majority of submissions from them. It’s a little close to being a worst-of list I don’t like to share queries of (especially where the submitters column is 1…) but I wanted to include it as a list of examples of content marketing.

                                          MariaDB [lobsters]> select domain, count(*) as submitted, count(distinct stories.user_id) as submitters, (select count(*) from stories s where s.domain_id = domains.id group by s.user_id order by 1 desc limit 1) as from_one_submitter from domains join stories on domains.id = stories.domain_id group by domain having count(*) > 5 and (from_one_submitter + 1) * 2 > count(*) order by 2 desc;
                                          +-------------------------------------+-----------+------------+--------------------+
                                          | domain                              | submitted | submitters | from_one_submitter |
                                          +-------------------------------------+-----------+------------+--------------------+
                                          | blogs.msdn.microsoft.com            |       206 |         36 |                132 |
                                          | jvns.ca                             |       159 |         36 |                 80 |
                                          | blog.netbsd.org                     |       126 |         13 |                 85 |
                                          | css-tricks.com                      |       116 |         15 |                 86 |
                                          | developer.telerik.com               |       113 |          5 |                101 |
                                          | codewithoutrules.com                |        93 |          2 |                 92 |
                                          | righto.com                          |        91 |         19 |                 64 |
                                          | flippinawesome.org                  |        90 |          2 |                 86 |
                                          | phoronix.com                        |        85 |         31 |                 44 |
                                          | oilshell.org                        |        83 |          4 |                 80 |
                                          | devblogs.microsoft.com              |        75 |         20 |                 42 |
                                          | spin.atomicobject.com               |        74 |         20 |                 39 |
                                          | blog.softwaremill.com               |        73 |          4 |                 55 |
                                          | lemire.me                           |        72 |         22 |                 45 |
                                          | ponyfoo.com                         |        68 |          5 |                 64 |
                                          | mail-index.netbsd.org               |        61 |          5 |                 44 |
                                          | citusdata.com                       |        60 |         10 |                 41 |
                                          | alistapart.com                      |        58 |         14 |                 45 |
                                          | hillelwayne.com                     |        58 |          3 |                 56 |
                                          | smashingmagazine.com                |        57 |         17 |                 33 |
                                          | dailydrip.com                       |        55 |          4 |                 39 |
                                          | vermaden.wordpress.com              |        55 |          2 |                 54 |
                                          | vuejsdevelopers.com                 |        52 |          1 |                 52 |
                                          | schneems.com                        |        50 |          6 |                 45 |
                                          | eev.ee                              |        49 |         17 |                 31 |
                                          | crate.io                            |        48 |          2 |                 47 |
                                          | driftingruby.com                    |        48 |          1 |                 48 |
                                          | bendyworks.com                      |        46 |          8 |                 25 |
                                          | petecorey.com                       |        44 |          2 |                 43 |
                                          | codepen.io                          |        42 |         14 |                 21 |
                                          | kev.inburke.com                     |        42 |          5 |                 38 |
                                          | imaginarycloud.com                  |        41 |          3 |                 39 |
                                          | zwischenzugs.com                    |        41 |          5 |                 36 |
                                          | intoli.com                          |        40 |          3 |                 28 |
                                          | pythonspeed.com                     |        40 |          1 |                 40 |
                                          | ma.ttias.be                         |        39 |          7 |                 30 |
                                          | pdfs.semanticscholar.org            |        39 |         11 |                 24 |
                                          | fsf.org                             |        38 |         15 |                 20 |
                                          | tboox.org                           |        38 |          1 |                 38 |
                                          | mattwarren.org                      |        37 |          5 |                 31 |
                                          | nanxiao.me                          |        37 |          2 |                 36 |
                                          | daringfireball.net                  |        36 |         11 |                 24 |
                                          | christophermeiklejohn.com           |        35 |          4 |                 32 |
                                          | dolphin-emu.org                     |        35 |          6 |                 24 |
                                          | filfre.net                          |        35 |          9 |                 25 |
                                          | 250bpm.com                          |        34 |         12 |                 22 |
                                          | blogs.gnome.org                     |        34 |         16 |                 17 |
                                          | christine.website                   |        34 |          2 |                 32 |
                                          | newrustacean.com                    |        34 |          1 |                 34 |
                                          | tech.marksblogg.com                 |        34 |          3 |                 32 |
                                          | flak.tedunangst.com                 |        33 |          6 |                 28 |
                                          | kevq.uk                             |        33 |          2 |                 32 |
                                          | os2museum.com                       |        33 |          7 |                 26 |
                                          | pixelstech.net                      |        33 |          2 |                 30 |
                                          | stackbuilders.com                   |        33 |          5 |                 17 |
                                          | blog.ikura.co                       |        32 |          2 |                 30 |
                                          | blog.logrocket.com                  |        32 |          6 |                 22 |
                                          | blog.runnable.com                   |        32 |          4 |                 22 |
                                          | craigkerstiens.com                  |        32 |          8 |                 22 |
                                          | deliberate-software.com             |        31 |          4 |                 27 |
                                          | promptworks.com                     |        31 |          4 |                 27 |
                                          | bravenewgeek.com                    |        30 |         10 |                 21 |
                                          | drmaciver.com                       |        30 |         14 |                 16 |
                                          | beza1e1.tuxen.de                    |        29 |          4 |                 26 |
                                          | bluishcoder.co.nz                   |        29 |          6 |                 24 |
                                          | neo4j.com                           |        29 |          6 |                 16 |
                                          | solipsys.co.uk                      |        29 |          5 |                 24 |
                                          | blinkingcaret.com                   |        28 |          2 |                 27 |
                                          | joezimjs.com                        |        28 |          1 |                 28 |
                                          | geeklan.co.uk                       |        27 |          1 |                 27 |
                                          | interrupt.memfault.com              |        27 |          2 |                 26 |
                                          | victorzhou.com                      |        27 |          2 |                 26 |
                                          | blog.mariusschulz.com               |        26 |          3 |                 21 |
                                          | davidgerard.co.uk                   |        26 |          1 |                 26 |
                                          | gigasquidsoftware.com               |        26 |          2 |                 21 |
                                          | gkbrk.com                           |        26 |          2 |                 25 |
                                          | jeremymorgan.com                    |        26 |          2 |                 25 |
                                          | saturnflyer.com                     |        26 |          2 |                 25 |
                                          | sicpers.info                        |        26 |          5 |                 21 |
                                          | blog.higg.im                        |        25 |          1 |                 25 |
                                          | pragtob.wordpress.com               |        25 |          1 |                 25 |
                                          | raganwald.com                       |        25 |         12 |                 13 |
                                          | telerik.com                         |        25 |          2 |                 21 |
                                          | hoelz.ro                            |        24 |          1 |                 24 |
                                          | metaredux.com                       |        24 |          3 |                 22 |
                                          | nedbatchelder.com                   |        24 |          7 |                 17 |
                                          | netbsd.org                          |        24 |          8 |                 13 |
                                          | osnews.com                          |        24 |          6 |                 18 |
                                          | raymii.org                          |        24 |          3 |                 22 |
                                          | verisimilitudes.net                 |        24 |          2 |                 23 |
                                          | about.sourcegraph.com               |        23 |          5 |                 15 |
                                          | arp242.net                          |        23 |          9 |                 14 |
                                          | blog.jle.im                         |        23 |          7 |                 13 |
                                          | blog.pragmaticengineer.com          |        23 |          4 |                 20 |
                                          | blog.sqreen.io                      |        23 |          3 |                 21 |
                                          | dragan.rocks                        |        23 |          3 |                 18 |
                                          | ecc-comp.blogspot.com               |        23 |          2 |                 22 |
                                          | parsonsmatt.org                     |        23 |          5 |                 19 |
                                          | bitemyapp.com                       |        22 |          3 |                 19 |
                                          | cambus.net                          |        22 |          3 |                 20 |
                                          | tedium.co                           |        22 |          8 |                 13 |
                                          | blog.takipi.com                     |        21 |          6 |                 10 |
                                          | brooker.co.za                       |        21 |          9 |                 11 |
                                          | carlchenet.com                      |        21 |          2 |                 20 |
                                          | beastie.pl                          |        20 |          1 |                 20 |
                                          | kanoki.org                          |        20 |          2 |                 19 |
                                          | lethain.com                         |        20 |          8 |                 11 |
                                          | modernweb.com                       |        20 |          2 |                 18 |
                                          | wilfred.me.uk                       |        20 |          4 |                 15 |
                                          | blog.ably.io                        |        19 |          4 |                  9 |
                                          | blog.codeship.com                   |        19 |          8 |                  9 |
                                          | blog.dantup.com                     |        19 |          1 |                 19 |
                                          | blog.floydhub.com                   |        19 |          6 |                 14 |
                                          | blog.graphqleditor.com              |        19 |          2 |                 13 |
                                          | blog.testdouble.com                 |        19 |          7 |                 10 |
                                          | ops.tips                            |        19 |          2 |                 17 |
                                          | people.eecs.berkeley.edu            |        19 |          9 |                  9 |
                                          | shape-of-code.coding-guidelines.com |        19 |          8 |                 12 |
                                          | sigusr2.net                         |        19 |          2 |                 18 |
                                          | sourcegraph.com                     |        19 |          6 |                 10 |
                                          | testdroid.com                       |        19 |          2 |                 17 |
                                          | wyeworks.com                        |        19 |          4 |                 12 |
                                          | blog.bitsrc.io                      |        18 |          6 |                 13 |
                                          | michaelochurch.wordpress.com        |        18 |         10 |                  9 |
                                          | monades.roperzh.com                 |        18 |          1 |                 18 |
                                          | patshaughnessy.net                  |        18 |          7 |                 11 |
                                          | raphlinus.github.io                 |        18 |          5 |                 13 |
                                          | stratus3d.com                       |        18 |          2 |                 17 |
                                          | yegor256.com                        |        18 |          8 |                 10 |
                                          | amir.rachum.com                     |        17 |          2 |                 16 |
                                          | blog.hboeck.de                      |        17 |          5 |                 13 |
                                          | blog.packagecloud.io                |        17 |          5 |                 12 |
                                          | doxsey.net                          |        17 |          2 |                 16 |
                                          | fluentcpp.com                       |        17 |          4 |                  8 |
                                          | jackhiston.com                      |        17 |          2 |                 16 |
                                          | jezenthomas.com                     |        17 |          2 |                 16 |
                                          | jlongster.com                       |        17 |         10 |                  8 |
                                          | oshug.org                           |        17 |          1 |                 17 |
                                          | ponylang.org                        |        17 |          4 |                 14 |
                                          | prathamesh.tech                     |        17 |          1 |                 17 |
                                          | silvestarbistrovic.from.hr          |        17 |          1 |                 17 |
                                          | talospace.com                       |        17 |          2 |                 12 |
                                          | virtuallyfun.com                    |        17 |          6 |                 10 |
                                          | wordsandbuttons.online              |        17 |          5 |                 13 |
                                          | 256kilobytes.com                    |        16 |          3 |                 14 |
                                          | bfilipek.com                        |        16 |          4 |                 10 |
                                          | blog.carlosgaldino.com              |        16 |          2 |                 15 |
                                          | blog.jessitron.com                  |        16 |          6 |                 10 |
                                          | blog.librato.com                    |        16 |          3 |                 11 |
                                          | brianmckenna.org                    |        16 |          3 |                 14 |
                                          | coolcoder.in                        |        16 |          2 |                 13 |
                                          | ds9a.nl                             |        16 |          5 |                  9 |
                                          | fitzgeraldnick.com                  |        16 |          4 |                 13 |
                                          | fsharpforfunandprofit.com           |        16 |          8 |                  9 |
                                          | itsfoss.com                         |        16 |          5 |                  9 |
                                          | lauradhamilton.com                  |        16 |          1 |                 16 |
                                          | microservicesweekly.com             |        16 |          1 |                 16 |
                                          | notamonadtutorial.com               |        16 |          1 |                 16 |
                                          | objective-see.com                   |        16 |          6 |                 11 |
                                          | omgubuntu.co.uk                     |        16 |          7 |                 10 |
                                          | aiprobook.com                       |        15 |          1 |                 15 |
                                          | blog.asrpo.com                      |        15 |          1 |                 15 |
                                          | blog.cubehero.com                   |        15 |          1 |                 15 |
                                          | blog.drewolson.org                  |        15 |          6 |                  9 |
                                          | blog.garage-coding.com              |        15 |          1 |                 15 |
                                          | blog.jakubarnold.cz                 |        15 |          2 |                 14 |
                                          | blog.jonlu.ca                       |        15 |          2 |                 13 |
                                          | blog.scottnonnenberg.com            |        15 |          2 |                 14 |
                                          | boxbase.org                         |        15 |          3 |                 12 |
                                          | cmcenroe.me                         |        15 |          1 |                 15 |
                                          | degoes.net                          |        15 |          7 |                  7 |
                                          | dev.theladders.com                  |        15 |          1 |                 15 |
                                          | geshan.com.np                       |        15 |          3 |                 13 |
                                          | jozefg.bitbucket.org                |        15 |          8 |                  7 |
                                          | oshogbo.vexillium.org               |        15 |          3 |                 12 |
                                          | thefullstack.xyz                    |        15 |          1 |                 15 |
                                          | vaibhavsagar.com                    |        15 |          6 |                  9 |
                                          | well-typed.com                      |        15 |          6 |                  9 |
                                          | zendev.com                          |        15 |          1 |                 15 |
                                          | alexkyte.me                         |        14 |          2 |                 11 |
                                          | bitquabit.com                       |        14 |          4 |                 10 |
                                          | blog.jcoglan.com                    |        14 |          8 |                  7 |
                                          | blogs.technet.microsoft.com         |        14 |          6 |                  8 |
                                          | chrisshort.net                      |        14 |          2 |                 13 |
                                          | clever-cloud.com                    |        14 |          4 |                  8 |
                                          | csswizardry.com                     |        14 |          4 |                  9 |
                                          | dustycloud.org                      |        14 |          4 |                 11 |
                                          | haiku-os.org                        |        14 |          5 |                 10 |
                                          | hardenedbsd.org                     |        14 |          2 |                 13 |
                                          | hypothesis.works                    |        14 |          5 |                  9 |
                                          | ithare.com                          |        14 |          5 |                 10 |
                                          | jepsen.io                           |        14 |          3 |                 12 |
                                          | jugad2.blogspot.com                 |        14 |          1 |                 14 |
                                          | juxt.pro                            |        14 |          4 |                  7 |
                                          | meyerweb.com                        |        14 |          4 |                 11 |
                                          | orbifold.xyz                        |        14 |          2 |                 13 |
                                          | paperswelove.org                    |        14 |          6 |                  7 |
                                          | paragonie.com                       |        14 |          4 |                 10 |
                                          | penguindreams.org                   |        14 |          1 |                 14 |
                                          | sethvargo.com                       |        14 |          2 |                 13 |
                                          | tiny-giant-books.com                |        14 |          1 |                 14 |
                                          | videlalvaro.github.io               |        14 |          3 |                 11 |
                                          | yodaiken.com                        |        14 |          3 |                 12 |
                                          | alexgaynor.net                      |        13 |          4 |                 10 |
                                          | blog.learngoprogramming.com         |        13 |          1 |                 13 |
                                          | blog.ploeh.dk                       |        13 |          7 |                  7 |
                                          | boston.conman.org                   |        13 |          2 |                 12 |
                                          | defn.io                             |        13 |          1 |                 13 |
                                          | dirk.to                             |        13 |          1 |                 13 |
                                          | dmitryfrank.com                     |        13 |          3 |                 11 |
                                          | dspace.mit.edu                      |        13 |          7 |                  6 |
                                          | engineering.appfolio.com            |        13 |          5 |                  6 |
                                          | getstream.io                        |        13 |          2 |                 12 |
                                          | hookrace.net                        |        13 |          8 |                  6 |
                                          | jvt.me                              |        13 |          1 |                 13 |
                                          | loige.co                            |        13 |          1 |                 13 |
                                          | longren.io                          |        13 |          1 |                 13 |
                                          | maxhallinan.com                     |        13 |          2 |                 12 |
                                          | mempko.wordpress.com                |        13 |          2 |                 12 |
                                          | onebigfluke.com                     |        13 |          5 |                  9 |
                                          | tedinski.com                        |        13 |          5 |                  8 |
                                          | tel.github.io                       |        13 |          3 |                 11 |
                                          | benlakey.com                        |        12 |          2 |                  8 |
                                          | blog.demofox.org                    |        12 |          4 |                  8 |
                                          | chrismm.com                         |        12 |          4 |                  9 |
                                          | codon.com                           |        12 |          5 |                  7 |
                                          | daverupert.com                      |        12 |          4 |                  8 |
                                          | dylanfoundry.org                    |        12 |          2 |                 11 |
                                          | inaka.net                           |        12 |          4 |                  6 |
                                          | readtext.org                        |        12 |          1 |                 12 |
                                          | robustperception.io                 |        12 |          2 |                 11 |
                                          | snowplowanalytics.com               |        12 |          1 |                 12 |
                                          | transposit.com                      |        12 |          1 |                 12 |
                                          | ubuntu.com                          |        12 |          5 |                  8 |
                                          | ably.io                             |        11 |          5 |                  6 |
                                          | autodidacts.io                      |        11 |          1 |                 11 |
                                          | blog.arkency.com                    |        11 |          4 |                  6 |
                                          | blog.ponyfoo.com                    |        11 |          1 |                 11 |
                                          | bloomca-me.github.io                |        11 |          2 |                 10 |
                                          | csrc.nist.gov                       |        11 |          7 |                  5 |
                                          | cstheory.stackexchange.com          |        11 |          6 |                  6 |
                                          | designpepper.com                    |        11 |          1 |                 11 |
                                          | flaviocopes.com                     |        11 |          1 |                 11 |
                                          | gavinmiller.io                      |        11 |          1 |                 11 |
                                          | howistart.org                       |        11 |          4 |                  7 |
                                          | icyphox.sh                          |        11 |          4 |                  8 |
                                          | iridakos.com                        |        11 |          2 |                 10 |
                                          | itnext.io                           |        11 |          5 |                  5 |
                                          | javiercasas.com                     |        11 |          1 |                 11 |
                                          | kaushikghose.wordpress.com          |        11 |          2 |                 10 |
                                          | kristerw.blogspot.com               |        11 |          5 |                  5 |
                                          | lauris.github.io                    |        11 |          1 |                 11 |
                                          | letterstoanewdeveloper.com          |        11 |          3 |                  9 |
                                          | longren.org                         |        11 |          1 |                 11 |
                                          | michaelburge.us                     |        11 |          3 |                  9 |
                                          | notes.eatonphil.com                 |        11 |          5 |                  7 |
                                          | nrempel.com                         |        11 |          1 |                 11 |
                                          | pagetable.com                       |        11 |          7 |                  5 |
                                          | productchart.com                    |        11 |          1 |                 11 |
                                          | romanzolotarev.com                  |        11 |          2 |                 10 |
                                          | runnable.com                        |        11 |          1 |                 11 |
                                          | shipilev.net                        |        11 |          7 |                  5 |
                                          | spootnik.org                        |        11 |          2 |                 10 |
                                          | tenderlovemaking.com                |        11 |          6 |                  5 |
                                          | theprogrammersparadox.blogspot.com  |        11 |          1 |                 11 |
                                          | thorstenball.com                    |        11 |          5 |                  5 |
                                          | traininjs.com                       |        11 |          1 |                 11 |
                                          | urbit.org                           |        11 |          6 |                  5 |
                                          | v8.dev                              |        11 |          3 |                  9 |
                                          | vmssoftware.com                     |        11 |          4 |                  8 |
                                          | additiveanalytics.com               |        10 |          1 |                 10 |
                                          | arcan-fe.com                        |        10 |          2 |                  9 |
                                          | arne-mertz.de                       |        10 |          4 |                  6 |
                                          | arrdem.com                          |        10 |          1 |                 10 |
                                          | blog.codacy.com                     |        10 |          2 |                  9 |
                                          | blog.okturtles.com                  |        10 |          3 |                  8 |
                                          | bradfrost.com                       |        10 |          2 |                  9 |
                                          | centurylinklabs.com                 |        10 |          1 |                 10 |
                                          | chargen.one                         |        10 |          3 |                  8 |
                                          | devup.co                            |        10 |          1 |                 10 |
                                          | eigenstate.org                      |        10 |          1 |                 10 |
                                          | grsecurity.net                      |        10 |          5 |                  6 |
                                          | kevinmahoney.co.uk                  |        10 |          2 |                  9 |
                                          | kmjn.org                            |        10 |          2 |                  9 |
                                          | learnbchs.org                       |        10 |          4 |                  7 |
                                          | manifest.fm                         |        10 |          1 |                 10 |
                                          | mapzen.com                          |        10 |          1 |                 10 |
                                          | marianoguerra.org                   |        10 |          3 |                  8 |
                                          | naildrivin5.com                     |        10 |          4 |                  5 |
                                          | pages.cs.wisc.edu                   |        10 |          6 |                  5 |
                                          | pathsensitive.com                   |        10 |          3 |                  8 |
                                          | pheelicks.com                       |        10 |          1 |                 10 |
                                          | pothibo.com                         |        10 |          1 |                 10 |
                                          | precompile.com                      |        10 |          1 |                 10 |
                                          | quickleft.com                       |        10 |          1 |                 10 |
                                          | redblobgames.com                    |        10 |          5 |                  6 |
                                          | singularityhacker.com               |        10 |          1 |                 10 |
                                          | skerritt.blog                       |        10 |          2 |                  8 |
                                          | snowsuit.io                         |        10 |          2 |                  9 |
                                          | sobolevn.me                         |        10 |          1 |                 10 |
                                          | superjavascript.com                 |        10 |          1 |                 10 |
                                          | svnweb.freebsd.org                  |        10 |          4 |                  6 |
                                          | tenfourfox.blogspot.com             |        10 |          2 |                  7 |
                                          | theory.stanford.edu                 |        10 |          5 |                  6 |
                                          | wozniak.ca                          |        10 |          3 |                  8 |
                                          | yellerapp.com                       |        10 |          4 |                  5 |
                                          | 24ways.org                          |         9 |          2 |                  8 |
                                          | ai.googleblog.com                   |         9 |          4 |                  6 |
                                          | akkartik.name                       |         9 |          6 |                  4 |
                                          | alchemistowl.org                    |         9 |          4 |                  5 |
                                          | backtrace.io                        |         9 |          5 |                  5 |
                                          | badcode.rocks                       |         9 |          1 |                  9 |
                                          | blog.appliedcompscilab.com          |         9 |          1 |                  9 |
                                          | blog.bigbinary.com                  |         9 |          4 |                  4 |
                                          | blog.getambassador.io               |         9 |          2 |                  8 |
                                          | blog.grandstack.io                  |         9 |          1 |                  9 |
                                          | blog.jenkster.com                   |         9 |          5 |                  4 |
                                          | blog.joinmastodon.org               |         9 |          5 |                  5 |
                                          | blog.ret2.io                        |         9 |          6 |                  4 |
                                          | blog.tintagel.pl                    |         9 |          2 |                  8 |
                                          | blogs.telerik.com                   |         9 |          1 |                  9 |
                                          | cambium.consulting                  |         9 |          2 |                  7 |
                                          | cnn.com                             |         9 |          6 |                  4 |
                                          | conal.net                           |         9 |          5 |                  5 |
                                          | crawshaw.io                         |         9 |          6 |                  4 |
                                          | cs.berkeley.edu                     |         9 |          5 |                  5 |
                                          | danielcompton.net                   |         9 |          2 |                  8 |
                                          | fedoramagazine.org                  |         9 |          5 |                  4 |
                                          | fusion.net                          |         9 |          6 |                  4 |
                                          | goto.ucsd.edu                       |         9 |          5 |                  5 |
                                          | hackazach.net                       |         9 |          1 |                  9 |
                                          | hakibenita.com                      |         9 |          2 |                  8 |
                                          | infoscience.epfl.ch                 |         9 |          3 |                  7 |
                                          | joachim-breitner.de                 |         9 |          4 |                  5 |
                                          | jonlennartaasenden.wordpress.com    |         9 |          1 |                  9 |
                                          | kamalmarhubi.com                    |         9 |          5 |                  5 |
                                          | kennethreitz.org                    |         9 |          6 |                  4 |
                                          | learnk8s.io                         |         9 |          2 |                  5 |
                                          | lists.zx2c4.com                     |         9 |          3 |                  7 |
                                          | lyonwj.com                          |         9 |          2 |                  8 |
                                          | monkeysnatchbanana.com              |         9 |          2 |                  8 |
                                          | naughtycomputer.uk                  |         9 |          2 |                  8 |
                                          | pharr.org                           |         9 |          5 |                  4 |
                                          | philcalcado.com                     |         9 |          2 |                  8 |
                                          | pluralsight.com                     |         9 |          3 |                  4 |
                                          | ponylang.io                         |         9 |          1 |                  9 |
                                          | prl.ccs.neu.edu                     |         9 |          3 |                  5 |
                                          | qfpl.io                             |         9 |          3 |                  7 |
                                          | rachelandrew.co.uk                  |         9 |          2 |                  8 |
                                          | rain-1.github.io                    |         9 |          3 |                  7 |
                                          | ro-che.info                         |         9 |          5 |                  4 |
                                          | robertwpearce.com                   |         9 |          1 |                  9 |
                                          | rubypigeon.com                      |         9 |          4 |                  5 |
                                          | ryanbrink.com                       |         9 |          1 |                  9 |
                                          | stormpath.com                       |         9 |          3 |                  4 |
                                          | taylor.fausak.me                    |         9 |          4 |                  4 |
                                          | tech.adroll.com                     |         9 |          5 |                  5 |
                                          | vfoley.xyz                          |         9 |          1 |                  9 |
                                          | abe-winter.github.io                |         8 |          4 |                  5 |
                                          | anupshinde.com                      |         8 |          1 |                  8 |
                                          | azeria-labs.com                     |         8 |          5 |                  4 |
                                          | beepb00p.xyz                        |         8 |          3 |                  6 |
                                          | blog.bloomca.me                     |         8 |          1 |                  8 |
                                          | blog.jfo.click                      |         8 |          4 |                  5 |
                                          | blog.obligd.com                     |         8 |          2 |                  7 |
                                          | blog.scottlogic.com                 |         8 |          5 |                  4 |
                                          | blogs.technet.com                   |         8 |          4 |                  4 |
                                          | cbloomrants.blogspot.com            |         8 |          4 |                  5 |
                                          | cis.upenn.edu                       |         8 |          5 |                  4 |
                                          | cloudbootup.com                     |         8 |          1 |                  8 |
                                          | codeblog.jonskeet.uk                |         8 |          4 |                  5 |
                                          | community.rapid7.com                |         8 |          3 |                  6 |
                                          | composition.al                      |         8 |          5 |                  4 |
                                          | crondev.blog                        |         8 |          1 |                  8 |
                                          | dave.autonoma.ca                    |         8 |          1 |                  8 |
                                          | daveceddia.com                      |         8 |          2 |                  7 |
                                          | doc.ic.ac.uk                        |         8 |          5 |                  4 |
                                          | dockyard.com                        |         8 |          4 |                  4 |
                                          | fivethirtyeight.com                 |         8 |          5 |                  4 |
                                          | fixingtao.com                       |         8 |          1 |                  8 |
                                          | franciskim.co                       |         8 |          1 |                  8 |
                                          | gazerlog.com                        |         8 |          1 |                  8 |
                                          | gilesbowkett.blogspot.com           |         8 |          4 |                  4 |
                                          | ieee-security.org                   |         8 |          4 |                  4 |
                                          | inko-lang.org                       |         8 |          3 |                  6 |
                                          | jaspervdj.be                        |         8 |          3 |                  6 |
                                          | jocellyn.cz                         |         8 |          1 |                  8 |
                                          | kyleisom.net                        |         8 |          2 |                  7 |
                                          | learntemail.sam.today               |         8 |          3 |                  4 |
                                          | m50d.github.io                      |         8 |          2 |                  7 |
                                          | mako.cc                             |         8 |          4 |                  5 |
                                          | michaelboeke.com                    |         8 |          2 |                  7 |
                                          | osmocom.org                         |         8 |          2 |                  7 |
                                          | pointieststick.com                  |         8 |          2 |                  7 |
                                          | probablydance.com                   |         8 |          5 |                  4 |
                                          | push.cx                             |         8 |          2 |                  7 |
                                          | pythonsweetness.tumblr.com          |         8 |          3 |                  6 |
                                          | randomhacks.net                     |         8 |          4 |                  5 |
                                          | redditblog.com                      |         8 |          3 |                  4 |
                                          | remotesynthesis.com                 |         8 |          4 |                  5 |
                                          | rystsov.info                        |         8 |          2 |                  7 |
                                          | sgoel.org                           |         8 |          1 |                  8 |
                                          | sourcesort.com                      |         8 |          1 |                  8 |
                                          | storj.io                            |         8 |          4 |                  5 |
                                          | tbf-rnd.life                        |         8 |          1 |                  8 |
                                          | thoughtcrime.org                    |         8 |          5 |                  4 |
                                          | trackchanges.postlight.com          |         8 |          5 |                  4 |
                                          | travisdowns.github.io               |         8 |          4 |                  4 |
                                          | vincent.bernat.im                   |         8 |          4 |                  5 |
                                          | weblog.jamisbuck.org                |         8 |          1 |                  8 |
                                          | wezm.net                            |         8 |          2 |                  7 |
                                          | wikimatze.de                        |         8 |          1 |                  8 |
                                          | 200ok.ch                            |         7 |          3 |                  5 |
                                          | alpinelinux.org                     |         7 |          4 |                  3 |
                                          | andregarzia.com                     |         7 |          1 |                  7 |
                                          | angersock.com                       |         7 |          1 |                  7 |
                                          | atilanevesoncode.wordpress.com      |         7 |          3 |                  5 |
                                          | ben-evans.com                       |         7 |          3 |                  4 |
                                          | bitsofco.de                         |         7 |          3 |                  5 |
                                          | blather.michaelwlucas.com           |         7 |          4 |                  4 |
                                          | blog.0day.rocks                     |         7 |          3 |                  5 |
                                          | blog.2ndquadrant.com                |         7 |          4 |                  4 |
                                          | blog.bejarano.io                    |         7 |          2 |                  6 |
                                          | blog.bitrise.io                     |         7 |          1 |                  7 |
                                          | blog.dereferenced.org               |         7 |          1 |                  7 |
                                          | blog.hackership.org                 |         7 |          2 |                  6 |
                                          | blog.honeybadger.io                 |         7 |          4 |                  4 |
                                          | blog.keen.io                        |         7 |          1 |                  7 |
                                          | blog.meetupfeed.com                 |         7 |          1 |                  7 |
                                          | blog.mirabellette.eu                |         7 |          1 |                  7 |
                                          | blog.mirabellette.netlib.re         |         7 |          1 |                  7 |
                                          | blog.particle.io                    |         7 |          3 |                  3 |
                                          | blog.plan99.net                     |         7 |          5 |                  3 |
                                          | blog.powerdns.com                   |         7 |          2 |                  6 |
                                          | blog.saeloun.com                    |         7 |          5 |                  3 |
                                          | blog.soykaf.com                     |         7 |          3 |                  5 |
                                          | blog.steveklabnik.com               |         7 |          4 |                  4 |
                                          | blog.superfeedr.com                 |         7 |          1 |                  7 |
                                          | blog.thecodewhisperer.com           |         7 |          1 |                  7 |
                                          | blog.threatstack.com                |         7 |          2 |                  6 |
                                          | boinkor.net                         |         7 |          1 |                  7 |
                                          | bristolcrypto.blogspot.com          |         7 |          3 |                  3 |
                                          | brycv.com                           |         7 |          1 |                  7 |
                                          | calnewport.com                      |         7 |          4 |                  4 |
                                          | cfenollosa.com                      |         7 |          2 |                  6 |
                                          | chrispenner.ca                      |         7 |          5 |                  3 |
                                          | chrisseaton.com                     |         7 |          5 |                  3 |
                                          | codearcana.com                      |         7 |          4 |                  3 |
                                          | corecursive.com                     |         7 |          5 |                  3 |
                                          | cryptome.org                        |         7 |          5 |                  3 |
                                          | cs.mcgill.ca                        |         7 |          4 |                  3 |
                                          | cseweb.ucsd.edu                     |         7 |          5 |                  3 |
                                          | dbader.org                          |         7 |          3 |                  5 |
                                          | duartes.org                         |         7 |          4 |                  3 |
                                          | engineering.freeagent.com           |         7 |          1 |                  7 |
                                          | f-droid.org                         |         7 |          2 |                  6 |
                                          | freebsdfoundation.org               |         7 |          5 |                  3 |
                                          | functional.works-hub.com            |         7 |          3 |                  5 |
                                          | gamedev.net                         |         7 |          5 |                  3 |
                                          | gpfault.net                         |         7 |          2 |                  6 |
                                          | gregnavis.com                       |         7 |          1 |                  7 |
                                          | grimoire.ca                         |         7 |          5 |                  3 |
                                          | gwern.net                           |         7 |          2 |                  6 |
                                          | hackflow.com                        |         7 |          2 |                  6 |
                                          | henrikwarne.com                     |         7 |          5 |                  3 |
                                          | hosted.ap.org                       |         7 |          2 |                  6 |
                                          | junglecoder.com                     |         7 |          1 |                  7 |
                                          | keen.io                             |         7 |          3 |                  5 |
                                          | keith-mifsud.me                     |         7 |          1 |                  7 |
                                          | kristaps.bsd.lv                     |         7 |          5 |                  3 |
                                          | libreboot.org                       |         7 |          4 |                  3 |
                                          | lukew.com                           |         7 |          2 |                  6 |
                                          | meiert.com                          |         7 |          2 |                  6 |
                                          | mgba.io                             |         7 |          4 |                  3 |
                                          | modern-sql.com                      |         7 |          3 |                  5 |
                                          | mollyrocket.com                     |         7 |          5 |                  3 |
                                          | mondaynote.com                      |         7 |          3 |                  5 |
                                          | mtlynch.io                          |         7 |          5 |                  3 |
                                          | natpryce.com                        |         7 |          2 |                  6 |
                                          | nibblestew.blogspot.com             |         7 |          4 |                  3 |
                                          | nikita-volkov.github.io             |         7 |          4 |                  4 |
                                          | opendylan.org                       |         7 |          3 |                  5 |
                                          | paulox.net                          |         7 |          2 |                  6 |
                                          | perspectives.mvdirona.com           |         7 |          4 |                  4 |
                                          | pkgsrc.org                          |         7 |          3 |                  5 |
                                          | quuxplusone.github.io               |         7 |          3 |                  5 |
                                          | racket-news.com                     |         7 |          2 |                  4 |
                                          | rcoh.me                             |         7 |          3 |                  5 |
                                          | rdegges.com                         |         7 |          3 |                  4 |
                                          | redox-os.org                        |         7 |          5 |                  3 |
                                          | reverse.put.as                      |         7 |          3 |                  4 |
                                          | rickcarlino.com                     |         7 |          1 |                  7 |
                                          | robey.lag.net                       |         7 |          4 |                  4 |
                                          | sandimetz.com                       |         7 |          3 |                  5 |
                                          | scarybeastsecurity.blogspot.com     |         7 |          5 |                  3 |
                                          | setosa.io                           |         7 |          5 |                  3 |
                                          | sgt.hootr.club                      |         7 |          1 |                  7 |
                                          | soc.github.io                       |         7 |          1 |                  7 |
                                          | stressgrid.com                      |         7 |          1 |                  7 |
                                          | strugee.net                         |         7 |          2 |                  5 |
                                          | sulami.github.io                    |         7 |          1 |                  7 |
                                          | sysadvent.blogspot.com              |         7 |          5 |                  3 |
                                          | taniarascia.com                     |         7 |          1 |                  7 |
                                          | tante.cc                            |         7 |          2 |                  6 |
                                          | teh.id.au                           |         7 |          2 |                  6 |
                                          | theartofmachinery.com               |         7 |          4 |                  4 |
                                          | thebuild.com                        |         7 |          3 |                  5 |
                                          | twolfson.com                        |         7 |          1 |                  7 |
                                          | ultimaratioregum.co.uk              |         7 |          2 |                  6 |
                                          | unterwaditzer.net                   |         7 |          1 |                  7 |
                                          | usrsb.in                            |         7 |          3 |                  5 |
                                          | vladocar.github.io                  |         7 |          1 |                  7 |
                                          | vmcall.blog                         |         7 |          2 |                  6 |
                                          | wccftech.com                        |         7 |          2 |                  6 |
                                          | whitane.com                         |         7 |          1 |                  7 |
                                          | yogthos.net                         |         7 |          4 |                  4 |
                                          | 0xcc.re                             |         6 |          1 |                  6 |
                                          | 9front.org                          |         6 |          4 |                  3 |
                                          | acha.ninja                          |         6 |          1 |                  6 |
                                          | ai.google                           |         6 |          4 |                  3 |
                                          | alediaferia.com                     |         6 |          1 |                  6 |
                                          | alex.dzyoba.com                     |         6 |          3 |                  4 |
                                          | alexrs.me                           |         6 |          1 |                  6 |
                                          | anishathalye.com                    |         6 |          1 |                  6 |
                                          | balaskas.gr                         |         6 |          3 |                  4 |
                                          | benedikt-bitterli.me                |         6 |          3 |                  3 |
                                          | benwilber.github.io                 |         6 |          1 |                  6 |
                                          | bernsteinbear.com                   |         6 |          2 |                  5 |
                                          | bitcannon.net                       |         6 |          2 |                  5 |
                                          | blog.cesanta.com                    |         6 |          2 |                  5 |
                                          | blog.ericgoldman.org                |         6 |          2 |                  5 |
                                          | blog.esciencecenter.nl              |         6 |          2 |                  4 |
                                          | blog.felixangell.com                |         6 |          3 |                  4 |
                                          | blog.frankel.ch                     |         6 |          2 |                  5 |
                                          | blog.fuzzing-project.org            |         6 |          2 |                  5 |
                                          | blog.minio.io                       |         6 |          1 |                  6 |
                                          | blog.park.io                        |         6 |          1 |                  6 |
                                          | blog.parsely.com                    |         6 |          2 |                  5 |
                                          | blog.prakashvenkat.com              |         6 |          1 |                  6 |
                                          | blog.talosintel.com                 |         6 |          4 |                  3 |
                                          | blog.zdsmith.com                    |         6 |          1 |                  6 |
                                          | blogs.apache.org                    |         6 |          2 |                  5 |
                                          | bowero.nl                           |         6 |          2 |                  5 |
                                          | branchandbound.net                  |         6 |          1 |                  6 |
                                          | bsdcan.org                          |         6 |          4 |                  3 |
                                          | bubbl.in                            |         6 |          2 |                  5 |
                                          | chr4.org                            |         6 |          1 |                  6 |
                                          | cipht.net                           |         6 |          4 |                  3 |
                                          | commonsware.com                     |         6 |          1 |                  6 |
                                          | cookieplmonster.github.io           |         6 |          2 |                  5 |
                                          | creativedeletion.com                |         6 |          3 |                  3 |
                                          | cs.nyu.edu                          |         6 |          4 |                  3 |
                                          | cybertec.at                         |         6 |          2 |                  5 |
                                          | dacav.roundhousecode.com            |         6 |          1 |                  6 |
                                          | dbp.io                              |         6 |          4 |                  3 |
                                          | developer.squareup.com              |         6 |          3 |                  3 |
                                          | discuss.ocaml.org                   |         6 |          3 |                  3 |
                                          | dmathieu.com                        |         6 |          2 |                  5 |
                                          | domm.plix.at                        |         6 |          2 |                  5 |
                                          | dotlayer.com                        |         6 |          1 |                  6 |
                                          | dragonflydigest.com                 |         6 |          4 |                  3 |
                                          | ecalamia.com                        |         6 |          1 |                  6 |
                                          | eclecticlight.co                    |         6 |          4 |                  3 |
                                          | embeddeduse.com                     |         6 |          1 |                  6 |
                                          | enotagain.com                       |         6 |          1 |                  6 |
                                          | eurogamer.net                       |         6 |          3 |                  4 |
                                          | ftp.openbsd.org                     |         6 |          4 |                  3 |
                                          | gafferongames.com                   |         6 |          4 |                  3 |
                                          | gamozolabs.github.io                |         6 |          3 |                  4 |
                                          | garbagecollected.org                |         6 |          1 |                  6 |
                                          | golem.de                            |         6 |          1 |                  6 |
                                          | gynvael.coldwind.pl                 |         6 |          2 |                  5 |
                                          | herbertograca.com                   |         6 |          4 |                  3 |
                                          | holger-peters.de                    |         6 |          2 |                  5 |
                                          | homakov.blogspot.com                |         6 |          4 |                  3 |
                                          | hydraz.semi.works                   |         6 |          2 |                  5 |
                                          | inessential.com                     |         6 |          4 |                  3 |
                                          | io.pellucid.com                     |         6 |          1 |                  6 |
                                          | isc.sans.edu                        |         6 |          3 |                  4 |
                                          | joeellis.la                         |         6 |          1 |                  6 |
                                          | jpadilla.com                        |         6 |          1 |                  6 |
                                          | julien.danjou.info                  |         6 |          3 |                  4 |
                                          | julienblanchard.com                 |         6 |          1 |                  6 |
                                          | kateheddleston.com                  |         6 |          3 |                  4 |
                                          | kitchensoap.com                     |         6 |          4 |                  3 |
                                          | korban.net                          |         6 |          1 |                  6 |
                                          | kyleconroy.com                      |         6 |          2 |                  5 |
                                          | limelight.link                      |         6 |          1 |                  6 |
                                          | loper-os.org                        |         6 |          4 |                  3 |
                                          | lord.io                             |         6 |          3 |                  3 |
                                          | lowrisc.org                         |         6 |          3 |                  4 |
                                          | markkarpov.com                      |         6 |          3 |                  4 |
                                          | matthias-endler.de                  |         6 |          4 |                  3 |
                                          | michaelnygard.com                   |         6 |          4 |                  3 |
                                          | mikekohn.net                        |         6 |          3 |                  4 |
                                          | mooreds.com                         |         6 |          2 |                  5 |
                                          | nelenkov.blogspot.com               |         6 |          1 |                  6 |
                                          | nextjournal.com                     |         6 |          3 |                  4 |
                                          | ngoldbaum.github.io                 |         6 |          1 |                  6 |
                                          | noidea.dog                          |         6 |          2 |                  4 |
                                          | norswap.com                         |         6 |          1 |                  6 |
                                          | number-none.com                     |         6 |          4 |                  3 |
                                          | openmirage.org                      |         6 |          4 |                  3 |
                                          | opensourceconnections.com           |         6 |          3 |                  3 |
                                          | openstreetmap.org                   |         6 |          4 |                  3 |
                                          | paleotronic.com                     |         6 |          4 |                  3 |
                                          | pattern-match.com                   |         6 |          3 |                  3 |
                                          | pcmag.com                           |         6 |          3 |                  4 |
                                          | piechowski.io                       |         6 |          1 |                  6 |
                                          | probablyfine.co.uk                  |         6 |          1 |                  6 |
                                          | purelyfunctional.tv                 |         6 |          2 |                  5 |
                                          | pythonforengineers.com              |         6 |          1 |                  6 |
                                          | realtimeapi.io                      |         6 |          2 |                  4 |
                                          | rkn.io                              |         6 |          1 |                  6 |
                                          | roy.marples.name                    |         6 |          1 |                  6 |
                                          | rubygems.org                        |         6 |          2 |                  5 |
                                          | ryanbigg.com                        |         6 |          3 |                  4 |
                                          | silvestar.codes                     |         6 |          1 |                  6 |
                                          | sizovs.net                          |         6 |          2 |                  5 |
                                          | streaming.media.ccc.de              |         6 |          3 |                  4 |
                                          | supertcp.com                        |         6 |          1 |                  6 |
                                          | sweetness.hmmz.org                  |         6 |          1 |                  6 |
                                          | talkoverflow.com                    |         6 |          1 |                  6 |
                                          | techblog.shutl.com                  |         6 |          1 |                  6 |
                                          | terathon.com                        |         6 |          2 |                  4 |
                                          | tomassetti.me                       |         6 |          3 |                  3 |
                                          | triplebyte.com                      |         6 |          3 |                  4 |
                                          | triplefault.io                      |         6 |          2 |                  5 |
                                          | typeclasses.com                     |         6 |          1 |                  6 |
                                          | ucare.cs.uchicago.edu               |         6 |          3 |                  4 |
                                          | ungleich.ch                         |         6 |          2 |                  5 |
                                          | venam.nixers.net                    |         6 |          3 |                  4 |
                                          | vidarholen.net                      |         6 |          3 |                  4 |
                                          | vvvvalvalval.github.io              |         6 |          3 |                  3 |
                                          | yggdrasil-network.github.io         |         6 |          3 |                  4 |
                                          | zdziarski.com                       |         6 |          3 |                  3 |
                                          | zerotosingularity.com               |         6 |          1 |                  6 |
                                          | zge.us.to                           |         6 |          1 |                  6 |
                                          | ziglang.org                         |         6 |          4 |                  3 |
                                          | zoetrope.io                         |         6 |          2 |                  5 |
                                          | zork.net                            |         6 |          3 |                  4 |
                                          +-------------------------------------+-----------+------------+--------------------+
                                          641 rows in set (3.42 sec)
                                          
                                          
                                          
                                          1. 37

                                            I am 100% on board with mitigating content marketing (especially the egregious examples you provide) but yeah… I’m uneasy about this as an active member of the community whose own blog appears on this list because it’s one of the only places I submit links to. I visit lobste.rs almost every day and appreciate that so many of the links are relevant to my interests and especially that the front page is slow moving enough that I can actually keep up with it, but I don’t submit many stories other than my own posts, and this list makes me feel like that’s not a welcome pattern. I appreciate that it is pretty close to the behavior of a self promoter (though I guess it is in a way, but I am not selling anything, I just happen not to have much else to show). This leaves me with four options, if and when I start actively blogging more (which is something I would like to do soon, and also the reason I’m commenting):

                                            1. start submitting more posts I didn’t write to offset those that I did.
                                            2. only submit my own posts when they’re extra special by some metric or another
                                            3. get other people to submit my posts
                                            4. don’t submit my posts

                                            1 seems spammy af, 2 is a little weird but maybe the right answer (I would prefer just to submit everything and let the algorithm sort through them, where the algorithm is people’s eyes… tbh this is sometimes an HN strength, as you’re not guaranteed a front page land there and even if you get it, it fades quickly.)

                                            3 is just gross, and 4 bums me out.

                                            also it just makes me feel bad that I fall in this bucket I guess. Is “lurker who submits their own work from time to time” just doomed to be bucketed with “content marketing garbage spam”?

                                            1. 14

                                              I’m sorry I made you feel bad, and I agree these are all bad choices. Your posts are certainly welcome, and folks up and down this thread are already brainstorming ways to fix it.

                                              1. 2

                                                Maybe there should be a separate page on Lobsters for bloggers to submit an RSS/Atom feed! That way regularly blog content can be labeled separately, and vetted for quality of the blog itself, rather than the person/people submitting it to Lobsters.

                                                1. 4

                                                  I certainly don’t want to have a whole RSS feed autoposted here, but I’m not saying your idea is bad - something along the line of a moderation queue for whole RSS feeds for stuff that >50% gets posted anyway is something to think about.

                                                  1. 3

                                                    I think jcs experimented with adding Planet-style aggregation years ago.

                                                    FWIW, this assumes 100% of the blog’s posts are in scope, and someone needs to clean up titles/tags, sometimes add context.

                                                2. 16

                                                  So three questions:

                                                  1. What’s the average upvote score for articles from these sites? What about average upvote score for the articles submitted by the majority submitter?
                                                  2. How much content marketing stuff from dev.to, hackernoon, and medium is not on here?
                                                  3. How many of the majority submissions are from authors? Like I’d guess a lot of stuff from blogs.msdn.microsoft.com is from people who specifically are looking for interesting articles from there while everybody else isn’t.

                                                  (Disclaimer I’d really like to keep posting stuff from my site, but if the rest of the majority-things are by content marketers then it’s still worth it overall. Also, I think I’m well-known enough that other people would probably post stuff from my site anyway.)

                                                  1. 9

                                                    What’s the average upvote score for articles from these sites? What about average upvote score for the articles submitted by the majority submitter?

                                                    I think this is a key detail. I don’t self-submit often, but the 12 posts I have submitted over 2 years have generally been well received. I’d say the same goes for you. Well received self-submissions are something we don’t want to discourage. If someone is self-posting and the posts are not getting many votes then it seems more likely they should be subject to the post limit.

                                                    1. 9

                                                      I agree with corporate-operated blogs in this list, but I don’t understand the presence of private blogs such as jvns.ca or Daring Fireball. Those blogs usually have high-quality content (in my humble opinion) and I’ve never seen any form of content marketing on those websites (I could be wrong though).

                                                      1. 7

                                                        I think Daring Fireball is such an outlier, isn’t it like one the top 3 most-read sites with a 100% Apple focus anyway? I’m not using any Apple stuff, but I can’t help but getting the news anyway - and I personally don’t like reading it.. but I think it’s very often news-heavy and we don’t so many “New product by X” posts here, for a good reason.

                                                        Yes, Apple is a bad topic for me to comment, but Daring Fireball is not a personal blog anymore. He’s one of the major Apple-ecosystem influencers and pundits. This is 100% a business website by now.

                                                      2. 2

                                                        I also think this would be a useful component to include. My domain falls on the list, and I’m a bit sad to see my domain on the list. It’s technically content marketing, but I put a massive amount of effort into each post and the content is generally very well received both here and on Hacker News. I would understand the decision to block it, but I think that taking the average submission rating into account would still address the problem without eliminating content that is a good fit for the site. This also incentivizes people to only submit their best content.

                                                        1. 1
                                                          1. Averages are misleading because of site growth over time. (Related)
                                                          2. A significant amount. (Related)
                                                          3. Feels like most, but this a trickier query than I have spare brainpower to write. I worry that it would incentivize not checking that box because it’d be subtle and deniable.
                                                        2. 14

                                                          Is there anything we could do in terms of vetting a user? For example, as far as I am concerned, @andyc, @akkartik and @hwayne all submit rather high quality content from their own blogs, I’d rather not miss them.

                                                          1. 11

                                                            This just struck me when I was trying to submit my Nix rebuttal post.

                                                            1. 2

                                                              That’s a shame… I’ve always enjoyed your posts on christine.website and I think it would be a real loss if your website were to be blocked.

                                                              1. 2

                                                                Apparently it’s going to be fixed and this was just an extreme over-reaction. I’m still gonna post though :)

                                                            2. 10

                                                              15 of the top 30 in this list are sites that I probably actively visit when they’re linked from Lobste.rs and otherwise don’t visit. Excluding them may surface less popular content but it would also seem to reduce the visibility of content that I’ve come to trust and want to get from Lobste.rs. 7 of the next 20 are in that same bucket, so penalizing by this metric would inhibit submissions 44% of the top 50 domains considered content marketing.

                                                              1. 8

                                                                @pushcx, thanks for all the hard work on the site. I really appreciate this site a lot. Now, I’m a bit offended to be included in this list. I’m a web developer and volunteer for some FOSS communities, I have a low traffic blog and every now and then I share some of my blog posts here. Not all of them, just the ones I think have value for users here. I’m not selling anything on this site, and my blog posts are not related to anything I sell.

                                                                If this website is going to be hostile to blogs with such low traffic as mine with very few posts per month, about 500 users per month, then I think this site loses a ton of value. Not because they will be missing me but because the criteria that includes me and my site here, will also include lots of other minor bloggers. No one is posting my posts here because I don’t have a large number of readers, I’m probably faster to share content than some hypothetical reader.

                                                                Seriously, scanning this list I can see many blogs I actually subscribe and that provide me with good content, not upselling anything. I don’t think this metric is a good way to filter who you want to filter. What this metrics leads to is that only content from domains that are so popular that a ton of people repost content from them will end up in this site. This is not only an echo chamber that makes whatever is popular, more popular. But also gatekeeping small people who just want share their own story every now and then, and will prove that the blogosphere is dead since we can’t share blog posts.

                                                                1. 6

                                                                  As Lobster’s is my primary article discovery site, I’m a bit worried that this change will cause me to miss great articles because the author couldn’t post it, and they don’t have other avenues / connections to get it noticed (read: they suck at marketing, don’t have an RSS / atom feed, etc).

                                                                  I typically self submit (I’m on the list here) and sometimes it gets upvoted, sometimes it doesn’t. I kind of thought that was the purpose of votes, and flags, and such, but ¯\_(ツ)_/¯.

                                                                  At least this change creates a new “market.” We can create a voting ring of sorts that keeps track of their submissions to certain domains and nominates someone to submit queued up links. The list of domains above is a good seed list of potential members, too….

                                                                  I should probably just go back to over subscribing to RSS / Atom

                                                                  1. 6

                                                                    Could you run this query? I’m not entirely sure it’s correct, but it should sort by the percentage of single user submissions.

                                                                    select domain, count(*) as submitted, count(distinct stories.user_id) as submitters, (select count(*) from stories s where s.domain_id = domains.id group by s.user_id order by 1 desc limit 1) as from_one_submitter, (select count(*) from stories s where s.domain_id = domains.id group by s.user_id order by 1 desc limit 1)/count(*)*100 as submited_by_one_percentage from domains join stories on domains.id = stories.domain_id group by domain having count(*) > 5 and (from_one_submitter + 1) * 2 > count(*) order by 5 desc;
                                                                    
                                                                    1. 6

                                                                      Looks correct to me. Results.

                                                                      (I put the original list in a comment because I saw it as central to the discussion, so I didn’t want it on free hosting even though I don’t have a convenient place to indefinitely host a small static file attached to Lobsters.)

                                                                    2. 5

                                                                      I was a little worried to see my name On A List, and also a little flattered to know that my blog was getting so many posts from here. I had to look into who was doing all the posting, and, well, maybe you ought to watch out yourself ;)

                                                                      1. 4

                                                                        TIL I’m a content marketer, alongside such evil spammers as the Free Software Foundation and Hillel Wayne! And the tell was that I used federated blogging technology—my own article feed at my own domain, integrated into the fediverse via RSS—rather than high-quality centralised platforms like Facebook notes or Medium.

                                                                        Unfortunately, I’m really bad at content marketing. I tend to publish articles that explore ideas about software that I (and others, mercifully) find interesting, rather than SEO-first eyeball scrapers. I forgot to monetise with affiliate content, adverts, store links, or anything. Nobody even clicks the tip jar button on the site.

                                                                        I guess I need to find a community where us “Badly-marketed Low-value Output Generators”, or “BLOGgers”, can share, discover, and comment on each other’s posts without disrupting those people who are focused on consuming Medium-rate content. Preferably with a focus on programming, just because that is the niche vertical I have chosen to exploit with my rational-minded acquisitive process. Does anyone know where that community hangs out?

                                                                        1. 4

                                                                          Maybe copy query output to a gist or nopaste and link it?
                                                                          I found it hard to read due to line wrapping. :/

                                                                          1. 3

                                                                            Wow… Okay. Did this site just become hostile to its users? My site is on the list.

                                                                            1. 4

                                                                              No.

                                                                            2. 1

                                                                              First of all, thanks for the good work. Now, since you invite:

                                                                              kibitzing about particulars

                                                                              and pointing out false positives. I expected @ahu’s site to be on there and it is[1], since one of his stories got moderated in a way I disagree with. (And I see other sites that I think are high-quality, but I’m happy to also see a lot of low-quality sites on the list.)

                                                                              Having said that, if you look at his submissions you’ll see that it is mostly geeky stuff so I would rather classify him as an author than a content marketeer. He is a geek and happens to be a pretty good writer. His last article on Huawei, 5G and Europe has been doing some good rounds on Twitter (I won’t link to it directly but search for “5G: The outsourced elephant in the room”).

                                                                              The only thing he perhaps went overboard with is the DoH centralization by Firefox on Cloudflare, which is an item we (PowerDNS) are pretty concerned about, but not for business reasons as implied by its proponents. Hell, we live in The Netherlands and couldn’t care less if we get fired or not since we got actual social security.

                                                                              [1] ds9a.nl, but I didn’t expect blog.powerdns.com to be there as well

                                                                              disclaimer: I’m a PowerDNS employee and ahu was my ‘boss’

                                                                            1. 2

                                                                              I recently had this same experience, started on middleman in 2014 and then went to jekyll for a while and then when I had written enough that that was too slow, moved to hugo and recently decided to try writing my own, and I was really amazed at how easy it was to get functional parity to hugo (for the parts of it I was using anyway) in only 100 lines of javascript that performs completely fine even without any caching strategies and while doing everything sync. I got tired of having to fiddle with little things I don’t care about every time I updated (oh, they changed the name of the sitewide baseurl var again? alright.) Now I just have to worry about language level changes which are less of an issue and I’m more likely to be up to speed on them anyway, and I can add whatever features I want to my generator at my own speed. A+ personal project, a lot simpler than I would have feared and you get that “build your own lightsaber” effect too. I’d like to write about it a little bit, soon.

                                                                              1. 1

                                                                                yeah, but I think it absolutely depends if you can find the right libraries to do the heavy lifting for you. In my case that’s the (quite sophisticated) templating language, I did not plan to write that on my own. Markdown parsers are a lot easier to come by and I suppose I could’ve done the TOML parser for my very limited use case relatively quickly.

                                                                                1. 1

                                                                                  Oh yeah, of course. Markdown is relatively stable and (in the case of common mark) spec’d, with high quality libs that I don’t think will change that quickly either.

                                                                                2. 1

                                                                                  Why would anyone want to change the global base URL variable name?!

                                                                                  I find it surprising that people break SSG version compatibility so often when it’s arguably the class of software easiest to keep compatible.

                                                                                1. 5

                                                                                  I coincidentally set this up last week and hooboy it’s been fantastic. I finally might buy a smart tv now knowing I have an easy way to exert granular control over its mothership beams… (by which I mean any tv at all as it seems impossible to get a modern tv that’s not “smart” and yes I know I can just not use those bits but I want to use some of it sometimes…)

                                                                                  Highly recommend the pi hole though, really worth the (pretty minimal, after procuring the raspberry pi ) effort.

                                                                                  1. 5

                                                                                    Hardware/embedded systems (tbd what that means exactly)… I have been consistently reminded that probably the thing I could learn about that would help me the most in my work is databases and sql (probably postgresql) properly as opposed to just the random bits of it I pick up.

                                                                                    1. 7

                                                                                      Don’t forget that these things change pretty regularly too, and not all time zone data is updated at the same time. Had a good one recently: Brazil got rid of daylight savings time a few weeks ago. We had a job the is queued with a Postgres query but has a sanity check before executing that uses @js-joda/timezone, which was updated almost immediately. So the job queued an hour before it was supposed to be sent because the Postgres timezones hadn’t been updated yet. It completed an hour later but it was quite a head scratcher.

                                                                                      1. 1

                                                                                        Oh man, that sucks.

                                                                                        All of Brazil, or only some states? What was the lead time?

                                                                                        I deal with timezone/DST at work. Luckily (?) we no longer have any customers in Brazil.

                                                                                        1. 2

                                                                                          It was all of Brazil although I think we only had one customer affected, in Sao Paolo. Lead time was… less than you would expect? The news certainly didn’t make it to us before this incident at least.

                                                                                          I am continually amazed at how damned confusing timezones can be, even when using good libs and knowing wha you’re doing. It’s always a brain teaser when converting in your head from where you are to where the code will be running to where the client will be running.

                                                                                      1. 2

                                                                                        I’m going to try and make general tsaos chicken.

                                                                                        1. 10

                                                                                          I’m not sure most people really think that “you don’t need comments if your code is self-documenting”, but rather think that “you don’t need many comments if your code is self-documenting”. There is a subtle – yet important – difference!

                                                                                          So if you’re looking for self-documenting code without any comments at all, then yeah, you might not find it.

                                                                                          I’m firmly in the “self-documenting” camp, but I often add a single line comment above a function to describe what it does in plain English. I also prefer to group things with comments, especially in slightly longer comments.

                                                                                          But stuff like f = getFoo() // get a foo object from the database? Yeah nah.

                                                                                          1. 3

                                                                                            Indeed, excessively self documenting functions lead to 27 word function names. I do like the kind of comments that show up when I hover over a function in particular however.

                                                                                            1. 8

                                                                                              Names are about “What” comments are about “Why”.

                                                                                              1. 3

                                                                                                This one. You can encode logic, but not motivation.

                                                                                          1. 3

                                                                                            as soon as I read “in this article chris…” I knew it would be Chris Ford. I’ve loved everything I’ve ever seen from him, most specifically this talk and some other one I can’t seem to find right now.

                                                                                            1. 3

                                                                                              I dump my files into /var/www/html/ for Apache and that’s the end of it. I write all of the HTML, SVG, and whatnot by hand and when I want to add a new article I copy the HEAD and all of that from a previous article. Then, I add the article to index.html and that’s the end of it.

                                                                                              There is one question I have, however. I’ve recently wanted to add the ability to comment on my website and the current mechanism is sending me an email, as explained here, but this seems a high enough barrier that I’ll receive very few, as I’ve received none so far. I figured it would be sufficient to add a form to that page, but I don’t know how to attach an arbitrary program to a form. As I’ll be doing this all manually, it would even be enough to simply have Apache log the POST requests sent to a certain URL, but every option I’ve come across so far requires me to either install something or perform some heavy configuration, both of which I’m reluctant to do.

                                                                                              I suppose I could tell it to vomit the POST to a port I have listening, but surely there’s a better way, right?

                                                                                              1. 3

                                                                                                This is actually a great use case for php. Since you already have Apache set up, you would use it with mod_php and direct the post request to a php controller. From there you can do whatever you want in process, probably the simplest thing would just have the server itself email you and then optionally log the data or action somewhere. So no messing around with sockets or other processes on the host side or spinning up and managing arbitrary interpreters as the module handles those details.

                                                                                                1. 2

                                                                                                  You can also write cgi modules for python and your favorite language, though php is basically made for this. So you have choices that can also lead to “easy to write scripts for single endpoints”

                                                                                                2. 2

                                                                                                  This is close to the sort of thing I’m talking about. Static assets are easy - but what do you do when you just want to add a small dynamic part, like a contact form? A full “web app” with the accompanying sysadmin headaches just seems like massive overkill.

                                                                                                  1. 2

                                                                                                    Couldn’t you just use some plain JavaScript via XMLHttp​Request?

                                                                                                    POST Example

                                                                                                    var xhr = new XMLHttpRequest();
                                                                                                    xhr.open("POST", '/server', true);
                                                                                                    
                                                                                                    //Send the proper header information along with the request
                                                                                                    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                                                                                                    
                                                                                                    xhr.onreadystatechange = function() { // Call a function when the state changes.
                                                                                                        if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
                                                                                                            // Request finished. Do processing here.
                                                                                                        }
                                                                                                    }
                                                                                                    xhr.send("foo=bar&lorem=ipsum");
                                                                                                    // xhr.send(new Int8Array()); 
                                                                                                    // xhr.send(document);
                                                                                                    
                                                                                                    1. 2

                                                                                                      I don’t know JavaScript and I don’t know PHP. I want to avoid adding something to Apache and if I were to use any JavaScript, then it wouldn’t work in Links, Lynx, w3m, Dillo, or Netsurf; it would be the only JavaScript on my entire website. I’ve taken special precaution to have my website be usable in every WWW browser I test with and so that’s not an option.

                                                                                                      Really, I’m actually surprised this is so complicated, all to add a single form that wouldn’t even create a dynamic page.

                                                                                                      1. 2

                                                                                                        It sounds like you want cgi scripts then. https://httpd.apache.org/docs/2.4/howto/cgi.html which still take a touch of config.

                                                                                                        Or you want to log the post data and just manually grep it later, this page gives you three options, two of which are modules and the other one is use an application layer: https://www.simplified.guide/apache/log-post#log-post-request-data-in-apache-in-application.

                                                                                                        On the bright side you definitely don’t need js to send a simple post so that’s good.

                                                                                                  1. 15

                                                                                                    I’d never tell anyone what to do with their kid, but sleep training was enormously effective for us. If you’re at the end of your rope, and are okay with it; give it a shot.

                                                                                                    Note: n=1 for this

                                                                                                    1. 7

                                                                                                      Both of our girls (2 and 4) responded really well to sleep training. TBH, actually, I think the wife and I were the ones who really needed the training.

                                                                                                      1. 1

                                                                                                        I hasten to add, we didn’t sleep train them at 2 and 4, but that’s how old they are now. The older girl was sleep trained at 11 months, because she had heart surgery at six months, and we were (understandably) loath to do anything out of her ordinary routine until we got the all clear from her cardiologist. The baby was trained at about eight months.

                                                                                                      2. 4

                                                                                                        Us too. And there are a lot of studies of how sleep training beginning at six months (I think; I need to double-check the exact age) has absolutely zero psychological side effects. Except on the parents of course, who may actually be somewhat sane.

                                                                                                        1. 3

                                                                                                          Got a link to any such studies other than the Middlemiss one? That study has been used again and again to reassure parents it’s okay to sleep train, but the study itself was deeply flawed [1]. I encourage anyone considering sleep training to read more than just that study, and to read more widely about sleep training in general. Here’s some articles (with lots more references in them) to get started [2], [3], [4].

                                                                                                          We used “The No Cry Sleep Solution” [5] with middling success. Overall, I think you kinda just have to accept that it’s going to be a time of bad sleep, but that you’re making that sacrifice for your kiddo.

                                                                                                          [1] https://expectingscience.com/2016/04/21/the-middlemiss-study-tells-us-nothing-about-sleep-training-cry-it-out-or-infant-stress/

                                                                                                          [2] https://www.psychologytoday.com/us/blog/moral-landscapes/201407/parents-misled-cry-it-out-sleep-training-reports

                                                                                                          [3] http://evolutionaryparenting.com/controlled-crying-cortisol-and-attachment-a-critical-look/

                                                                                                          [4] https://www.laleche.org.uk/letting-babies-cry-facts-behind-studies/

                                                                                                          [5] https://nocrysolution.com/

                                                                                                          1. 2

                                                                                                            I’ll find one in the morning. To be clear, I’m not recommending and didn’t practice cry-it-out; we just did some phased process that on cursory glance looks similar to no-cry. I’m in fact up at 5 am specifically because I’m getting our kid settled again.

                                                                                                        2. 4

                                                                                                          Cant plus one this enough, sleep training was one of the best parenting decisions we’ve made. It’s hard on everyone for like a week and then its soooooo much better for everyone. My 18 month old sleeps so well now, falls asleep on his own most of the time, sleeps through the night and sleeps like a rock unless he’s sick or otherwise agitated by something unrelated. Ymmv of course and ever kid and family is different but for my money it has been invaluable.

                                                                                                          1. 2

                                                                                                            sleep training

                                                                                                            For all 4 of our kids, we used the training outlined in Save Our Sleep. Our eldest is ASD and had a lot of trouble with sleep - the training made the world of difference to him, and us. All the kids sleep well now between 10 and 12hrs depending on age.

                                                                                                            I used to need to send my wife out of the house because she couldn’t stand the sound of my son crying. It was pretty brutal. The the difference in his (and our) mood stability during waking times was more than worth the pain.

                                                                                                            1. 1

                                                                                                              I would have thought sleep training would be standard practise by now… certainly our midwives talked about it in our prenatal.

                                                                                                              1. 1

                                                                                                                It is, like most things in the world of parenting, still A Thing. That’s OK, people should do what works for their family.

                                                                                                            1. 0

                                                                                                              this is a bit off topic, but I have run into this strange bug a lot recently where, if I am running two instances of firefox side by side using two different profiles, the personal profile one just crashes. It seems to be directly triggered by clicking a shortened link in twitter, which is extra weird, and I wonder if anyone else has this problem?

                                                                                                              1. 5

                                                                                                                totally off-topic :D But do you have a crash report submitted or a crash signature to share? Going to about:crashes might help you.

                                                                                                                1. 4

                                                                                                                  Oh I totally do, 20 submitted so far :) will dm.

                                                                                                              1. 4

                                                                                                                FWIW this is one of the examples that made me “get” WebAssembly:

                                                                                                                https://github.com/WAVM/WAVM/blob/master/Examples/echo.wast

                                                                                                                It’s an implementation of /bin/echo, and is pretty readable if you stare at it for awhile.

                                                                                                                • It “imports” _fwrite and _stdout from the environment. By default WASM is sandboxed, so it can only do I/O on injected “objects”.
                                                                                                                • It exports main() for the wrapper to call (in this case, the command line, but more often the browser)
                                                                                                                • It defines a strlen() function that does the obvious thing – loop over the characters until you get to NUL.
                                                                                                                • it defines an fputs function that calls strlen() and _fwrite()
                                                                                                                • The main program loops over the argv array and returns an integer status 0
                                                                                                                • The keywords are mostly self explanatory:
                                                                                                                  • module, func, return
                                                                                                                  • import, export
                                                                                                                  • local, set_local
                                                                                                                  • if, loop
                                                                                                                  • data appears to be for global constants
                                                                                                                  • drop ignores a return value (since WASM is a stack machine I suppose)

                                                                                                                It’s very verbose! But everything is pretty explicit which makes it readable for small examples like this. There are other examples in the same dir:

                                                                                                                https://github.com/WAVM/WAVM/tree/master/Examples

                                                                                                                The WebAssembly paper explained enough of the conceptual model, which made this example fairly readable:

                                                                                                                Bringing the web up to speed with WebAssembly

                                                                                                                1. 1

                                                                                                                  Hey thanks for these resources, I will look them over!

                                                                                                                  I think my next post will be about making minimum versions of all the sections the spec outlines and then trying to do something useful with them, so the echo example is a very good one.

                                                                                                                1. 2

                                                                                                                  I have kept my distance from WebAssembly for the past few years. Your article has piqued my interest in it again; going to take a closer look now.

                                                                                                                  1. 2

                                                                                                                    I understand the distance, its elevator pitch is somehow both really compelling and also kind of superfluous at the same time. I’m really interested to see how it evolves long term though, and it being standardized and shipped in all relevant contexts is a big positive signal for that long term.

                                                                                                                  1. 2

                                                                                                                    Nice write up and interesting to see your e2e round tripping tool chain. Is this something you came up with? And is this a way to develop/debug?

                                                                                                                    1. 1

                                                                                                                      If you mean wasm2wat and wat2wasm, they are part of wabt (web assembly binary toolkit) which I link to in the post. If you mean the xxd parts, that’s definitely useful in viewing binary files as visually understandable text without transforming it at all. Thanks for reading!