35 Matching Annotations
  1. May 2018
    1. Helm uses gRPC. When gRPC made their 1.4.0 release they made an important change that wasn't obvious from the release notes. Prior to 1.4.0 there was one function of MaxMsgSize. In, and following, the 1.4.0 release this function was deprecated and there were two new functions of MaxRecvMsgSize and MaxSendMsgSize. Where MaxMsgSize had previously set the size on both send and receive it was now just set the receive value. This was a change in behavior.

      This example is somehow clearer than the entire @sdboyer essay.

  2. Mar 2018
    1. Some people program after work. I think this is cool, but I don’t! I don’t really feel like I have the energy to do it.

      Another argument against github as resume.

    1. It is of course possible to build systems that use semantic versioning without semantic import versioning, but only by giving up either partial code upgrades or import uniqueness.

      What does it say about me that this hasn't bitten me so far?

    1. We will be taking away some control and expressiveness, just as we took away makefiles, in service of simplifying the system and eliminating complexity for users

      What are the footguns lurking in dep?

    1. We received a word from Digital Ocean, OVH, Linode and Amazon that they tackled the memcached problem, their networks should not be a vector in future attacks. Hurray!

      How? Are they disabling UDP on behalf of their users?

    1. The other problem is that it introduces a lot of performance overhead (for the same reason that strace does: it works using ptrace)! If I run the same program with and without ltrace, the ltraced version will be way slower.

      Would be interesting to verify that the rust/ebpf ltrace clone actually has less overhead than ltrace.

  3. Feb 2018
    1. There are many truly excellent products sold on the high-touch model, but to a first approximation, engineering and product are generally considered less important in high-touch SaaS businesses than the sales engine is.

      Unclear that customers even see the product before buying.

    2. You will find that the sales model for SaaS defines much more about a product (and company) than other distinctions, like whether a company sells to customers (B2C) or businesses (B2B), whether it is bootstrapped or riding the VC rocket ship trajectory, or what technology stack it is built on.

      The implication being that SaaS businesses think less about sales models than other factors.

    1. The point of my article is not to point you in any direction, even though it seems that way. I merely point out the main controversial points of AMP, and how and why it works the way it does. In particular, why it’s so fast. Which is not because of AMP. Not at all because of AMP.

      Summary: AMP is fast because Google search preloads results, not because of the AMP standard. Google's search monopoly means users can only get value from AMP as provided by Google.

    1. Having executable documentation for a package guarantees that the information will not go out of date as the API changes.

      Looks like better doctests.

    2. Stripe, for example, does a really good job of this by providing test mode tokens.

      Cool!

    3. additional mocks to account for all of these cases previously unaccounted for

      Agree that testing against a real database is more useful, but that also won't account for all failure modes, unless tests also make the real database fail in various ways.

    4. As a result, you cannot do this without also changing your codebase such that errors are less noticed by (& less impactful on) your users.

      Examples would help me here--I'm not exactly sure how to do this. Recent production problems on my team have been all-or-nothing, e.g. DNS is broken and nothing works.

    5. Yet when it comes to testing (or worse, when developing) microservices, most organizations seem to be quite attached to an antediluvian model of testing all components in unison.

      This mostly hasn't been my experience--at least when it comes to Cloud Foundry, I'm used to extensive unit tests for each component, plus end-to-end tests for important behavior (but not everything).

    1. I’ve also started asking “hey, do you have a document listing your recent successes that I can look through to make sure I haven’t forgetten anything?“. Some people keep one, and it’s really helpful when they do!

      One theme here is figuring out what the person you're reviewing thinks and amplifying it--figuring out what they're proud of accomplishing, what they want to do next year, etc.

    1. the last one being the only one that is in active development

      Why were the other projects dropped? For pyston, looks like it wasn't worth the effort for dropbox: https://blog.pyston.org/2017/01/31/pyston-0-6-1-released-and-future-plans/

    2. I’m working on other problems

      Which problems? Can they be adapted to work with numpy/numba? Maybe a better argument is that python's performance matters for some problems.

    1. Distributions can be based on a deep fork of Kubernetes

      Is this what actually happens, or do vendors commit to upstream?

    1. Basically I worked on porting https://github.com/iovisor/gobpf (a go BCC library) to Rust.

      Not sure why Go and Rust are better for BPF than Python yet. The Python code looks pretty gnarly though: https://github.com/iovisor/bcc/blob/master/tools/tcplife.py

  4. Jan 2018
    1. Because the branching factor is typically in the thousands

      How does postgres pick the branching factor?

    1. Along with the languages normal strengths – incredible runtime speed, an amazing concurrency story, a great batteries-included standard library, and the fastest edit-compile-debug loop in the business – Go’s stability and ease of deployment is going to make it a tremendous addition to the Lambda platform

      I agree with all this, but I don't see this as an argument that go is well-suited for lambda specifically. It seems like the argument here is just that go is good.

    2. It’s rare to write software and not have it come back to haunt you in a few year’s time as it needs to be fixed and upgraded.

      In my experience, this happens with libraries more often than languages--Python is more stable than Django.

    3. These holes tell us something else about Lambda: new runtimes are non-trivial to create, run, and/or maintain

      Seems like a reasonable inference, but why is this true? Do platforms like openwhisk have the same limitations?

    1. Instrumentation with statsd

      Could use prometheus exporter and kubernetes discovery.

    2. S3 snapshots of indexes

      Possible with CronJob resources?

    1. worthy of its own post

      Looking forward to this post.

    2. In the previous scenario, the backend selected to handle client A will be handling approximately 3000x less load then the backend selected to handle client B! This is a large problem and generally defeats the purpose of load balancing in the first place.

      Syslog works around this problem with options like ActionSendTCPRebindInterval.

    1. The wider arc of Go’s pragmas is they are used inside the standard library to gain a foothold to implement the runtime, including the garbage collector, in Go itself. Pragmas allowed the runtime developers to extend, the language just enough to meet the requirements of the problem. You’ll find pragmas used, sparingly, inside the standard library, although you’ll never find them listed in godoc.

      Use cases: tests, integrate with C/assembly, optimize, implement golang in golang.

  5. Mar 2014
    1. Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

    2. and any associated material, as this material is generated. The approach may be summed up by the slogan 'no insider information'. It is the logical extreme of transparent approaches to research and explicitly includes the making available of failed, less significant, and otherwise unpublished experiments; so called 'dark data'.[1] The practice of open notebook science, although

      asdf

    3. long with all raw and processed data, and any associated material, as this material is generated. The approach may be summed up by the slogan 'no insider information'. It is the logical extreme of transparent approaches to research and explicitly includes the making available of failed, less significant, and otherwise unpublished experiments; so called 'dark data'.[1] The practice of open notebook science, although not the norm in the academic community, has gained significant recent attention in the research[2][3] and general[1][4] media as part of a general trend towards more open approaches in research practice and publishing. Open notebook science can therefore be described as part of a wider open science movement that includes the advocacy and adoption of open

      asdf

    4. ng with all raw and processed data, and any associated material, as this material is generated. The approach may be summed up by the slogan 'no insider information'. It is the logical extreme of transparent approaches to research and explicitly includes the making available of failed, less significant, and otherwise unpublished experiments; so called 'dark data'.[1] The practice of open notebook science, although not the norm in the academic community, has gained significant recent attention in the research[2][3] and general[1][4] media as part of a general trend towards more open approaches in research practice an

      asdf

  6. Feb 2014
    1. s, we use the abstract as a guide as to which information needs to be coded. In the Archival Project, we only code results mentioned in the abstract. This doesn't mean, however, that you only need to read the abstract. What it means is that you should identify the topics mentioned there, and look for them in the rest of the article.

      i don't like this

    2. developed a specific coding scheme for volunteers to follow. As a supplement to that scheme, the following tutorial can be used to gain more facility with identifying article structure and und

      this is cool