465 Matching Annotations
  1. Feb 2021
    1. ActiveInteraction plays nicely with Rails. You can use interactions to handle your business logic instead of models or controllers.
    2. Since we're using an interaction, we don't need strong parameters. The interaction will ignore any inputs that weren't defined by filters. So you can forget about params.require and params.permit because interactions handle that for you.
    1. DSLs can be problematic for the user since the user has to manage state (e.g. am I supposed to call valid? first or update_attributes?). This is exactly why the #validate is the only method to change state in Reform.
    2. The reason Reform does updating attributes and validation in the same step is because I wanna reduce public methods. This is to save users from having to remember state.

      I see what he means, but what would you call this (tag)? "have to remember state"? maybe "have to remember" is close enough

      Or maybe order is important / do things in the right order is all we need to describe the problem/need.

    1. As of today, you can Wishlist OpenTTD on SteamE. Historically, OpenTTD always had a single home from where we distributed the game. We used to be hosted on SourceForge (you know you are old, if you remember that being a thing :D), and slowly moved towards our own self-created distribution methods. These days, we mostly distribute our game via our website. But times are changing, and so is our hair. Over the last few months, we have silently been working to become a bit more visible in the world. Don’t worry, not for reasons you might think: OpenTTD has as many active users as it had in 2007. But more because we no longer think it is the right approach to only distribute via our own website. This became painfully apparent when we noticed other people post OpenTTD on some stores. They are not always updated with new releases, sometimes even slacking behind a few years. And maybe more important to us: we can not guarantee that the uploaded version is unmodified and is the version as we intended. So, instead of fighting it, why not turn around and join them! Why not release our own, verified, builds on those stores! And this is exactly what we have been working on lately. And when I say “we”, a bit ironic to me, I mean the two developers that are around longest (myself and orudge) ;) A while back orudge added OpenTTD to the Microsoft Store. And today, I am happy to announce we will be on SteamE too! Well, we are on Steam, but we haven’t released anything there yet (sorry that I got your hopes up, just to squash them right after :( ). This is partially because of how Steam works, but also because we know we can bring a better experience for Steam with our upcoming release. That brings me to the most exciting news: if everything goes as planned, we will release OpenTTD 1.11 on Steam on the first of April, 2021! And that is not even an April fools’ joke! You can already Wishlist OpenTTD today .. and till we release on Steam, you can find our game via our website ;)
    1. As of today, you can Wishlist OpenTTD on SteamE. Historically, OpenTTD always had a single home from where we distributed the game. We used to be hosted on SourceForge (you know you are old, if you remember that being a thing :D), and slowly moved towards our own self-created distribution methods. These days, we mostly distribute our game via our website. But times are changing, and so is our hair. Over the last few months, we have silently been working to become a bit more visible in the world. Don’t worry, not for reasons you might think: OpenTTD has as many active users as it had in 2007. But more because we no longer think it is the right approach to only distribute via our own website.
    1. Tired of games where there are tips and tutorials of all kinds and you can finish them without much difficulty?
    1. Unlike naming children, coding involves naming things on a daily basis. When you write code, naming things isn’t just hard, it’s a relentless demand for creativity. Fortunately, programmers are creative people.
    2. If we renamed things more often, then it probably wouldn’t be so hard to name them in the first place.
    3. We also find it hard to agree on what good names and bad names look like, which makes it hard to know when renaming improves a name.
    4. violates our expectation that hard things should be technical
    5. This is funny because it’s unexpected. Cache invalidation sounds like a hard thing, while naming sounds more straightforward. The joke works because it violates our expectation that hard things should be technical. It’s also funny because it’s true.
    6. Anyone who has ever tried to name a child knows that naming is hard. Naming things in code is harder. It’s bad enough that you have to commit to a name that someone isn’t going to like. You also have to be able to live with it.
    7. In principle, the naming things in code need only be temporary, but names in code stick just like nicknames at school.
    1. So the hard and unsolvable problem becomes: how up-to-date do you really need to be?
    2. After considering the value we place, and the tradeoffs we make, when it comes to knowing anything of significance, I think it becomes much easier to understand why cache invalidation is one of the hard problems in computer science

      the crux of the problem is: trade-offs

    3. the 2 hardest problems in computer science are essentially the 2 hardest problems of life in general, as far as humans and information are concerned.
    4. The non-determinism is why cache invalidation — and that other hard problem, naming things — are uniquely and intractably hard problems in computer science. Computers can perfectly solve deterministic problems. But they can’t predict when to invalidate a cache because, ultimately, we, the humans who design and build computational processes, can’t agree on when a cache needs to be invalidated.
    5. Sometimes humorously extended as “cache invalidation, naming things, and off-by-one errors.”
    1. There’s only one hard thing in Computer Science: human communication. The most complex part of cache invalidation is figuring out what the heck people mean with the word cache. Once you get that sorted out, the rest is not that complicated; the tools are out there, and they’re pretty good.
    1. Well, I'm glad they did, because Turbolinks is a much better piece of software than jquery-pjax ever was. It's actively maintained and doesn't require jQuery at all! So we're one step closer to our dream of ditching $.
  2. Jan 2021
  3. Dec 2020
    1. Maybe something more neutral just meaning a virtual element / no-element container would better express the intention? And regarding the syntax, maybe it would also feel less repetitive / boilerplaty than <svelte:slot slot="name" />... Maybe something like <svelte:fragment slot="name"> or <svelte:virtual slot="name">?
    1. Please follow these steps before attempting to return a Pump or Sprayer: Download the Pump & Sprayer Return Form (PDF) Refer to page 2 to verify that your product SKU or item number is listed – if not, it can be returned to a store Complete the form and email to pumps_sprayers@harborfreight.com All required fields must be filled in or we may be unable to fulfill your request
  4. Nov 2020
    1. Traditional online funnels — more often than not — require you to have a separate:Content management system (ex. WordPress, Joomla)Web host (ex. SiteGround, Bluehost)Page builder (ex. Elementor, Beaver)Email autoresponder (ex. MailChimp, Aweber, GetResponse)Order formShopping cartWeb analyticsOther marketing tools
    1. For example, your application should work offline, but it doesn’t mean that you must set-up a background queue or store your data in a persistent storage – a offline message (e.g. “You’re offline, check your network status.”) is enough.
    1. There was a major refactoring in the resolver (https://github.com/webpack/enhanced-resolve). This means the resolving option were changed too. Mostly simplification and changes that make it more unlikely to configure it incorrectly.
    1. When you email me, please include a minimal bash script that demonstrates the problem in the body of the email (not as an attachment). Also very clearly state what the desired output or effect should be, and what error or failure you are getting instead. You are much more likely to get a response if your script isn't some giant monster with obtuse identifiers that I would have to spend all afternoon parsing.
    1. However, this coalescing was very complicated, both in the specification and implementations, due to the dynamism of computed property names for accessors. Coalescing was a big source of overhead (e.g., in terms of code size) in polyfill implementations of "Stage 2" decorators.
    1. In July 2010, Microsoft let go Jimmy Schementi, one of two remaining members of the IronRuby core team, and stopped funding the project.[19][20] In October 2010 Microsoft announced the Iron projects (IronRuby and IronPython) were being changed to "external" projects and enabling "community members to make contributions without Microsoft's involvement or sponsorship by a Microsoft employee".
    1. {#key} was introduced in Svelte v3.28, before that you needed to use a keyed {#each} block with only one item When the key changes, svelte removes the component and adds a new one, therefor triggering the transition.
    1. Svelte's advantage here is that it indicates the need for an update at the place where the associated data is updated, instead of at each place the data is used. Then each template expression of reactive statement is able to check very quickly if it needs to rerender or not.
    2. Svelte slots are much easier to use and reason about than Angular transclude, especially in cases where you don't want an extra wrapper element around the slot content.
    1. We expect a certain pattern when validate devtool name, pay attention and dont mix up the sequence of devtool string. The pattern is: [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map.
    1. This is Sass based, and therefore doesn't require Svelte components

      Just because we could make Svelte wrapper components for each Material typography [thing], doesn't mean we should.

      Compare:

      • material-ui [react] did make wrapper components for typography.

        • But why did they? Is there a technical reason why they couldn't just do what svelte-material-ui did (as in, something technical that Svelte empowers/allows?), or did they just not consider it?
      • svelte-material-ui did not.

        • And they were probably wise to not do so. Just reuse the existing work from the Material team so that there's less work for you to keep in sync and less chance of divergence.
    1. If your Svelte components contain <style> tags, by default the compiler will add JavaScript that injects those styles into the page when the component is rendered. That's not ideal, because it adds weight to your JavaScript, prevents styles from being fetched in parallel with your code, and can even cause CSP violations. A better option is to extract the CSS into a separate file. Using the emitCss option as shown below would cause a virtual CSS file to be emitted for each Svelte component. The resulting file is then imported by the component, thus following the standard Webpack compilation flow.
  5. Oct 2020
    1. "We should try to find a replacement for omgwtfssl, which is currently used to generate self-signed certificates. The name is inappropriate and unprofessional."
    1. Instead of this, you can use a File type variable.
    2. Previously, a common pattern was to read the value of a CI variable, save it in a file, and then use that file in your script:
    1. I don't want Svelte to go out of its way to try to catch all these edge cases. It would require lots of fragile heuristics in the compiler. I want a solid compiler I can trust, not something magic but often out of service. I want it the simplest possible.
    1. Yeah I see what you're saying. In my case, I had a group of classes that relied on each other but they were all part of one conceptual "module" so I made a new file that imports and exposes all of them. In that new file I put the imports in the right order and made sure no code accesses the classes except through the new interface.
    1. Doing so also means adding empty import statements to guarantee correct order of evaluation of modules (in ES modules, evaluation order is determined statically by the order of import declarations, whereas in CommonJS – and environments that simulate CommonJS by shipping a module loader, i.e. Browserify and Webpack – evaluation order is determined at runtime by the order in which require statements are encountered).

      Here: dynamic loading (libraries/functions) meaning: at run time

    2. Specifically, since Root, Rule and AtRule all extend Container, it's essential that Container is evaluated (and therefore, in the context of a Rollup bundle, included) first. In order to do this, input.js (which is the 'gateway' to all the PostCSS stuff) must import root.js, root.js must import rule.js before it imports container.js, and rule.js must import at-rule.js before it imports container.js. Having those imports ensures that container.js doesn't then try to place Root, Rule or AtRule ahead of itself in the bundle.
    3. Replaced nested `require` statements with `import` declarations for the sake of a leaner bundle. This entails adding empty imports to three files to guarantee correct ordering – see https://github.com/styled-components/styled-components/pull/100
    1. Note that the <WarningEngine/> component must be at the bottom of the form to guarantee that all the fields have registered.
    1. Sometimes we can’t implement a solution that’s fully spec-compliant, and in those cases using a polyfill might be the wrong answer. A polyfill would translate into telling the rest of the codebase that it’s okay to use the feature, that it’ll work just like in modern browsers, but it might not in edge cases.
    1. Note how we have to duplicate the code between these two lifecycle methods in class. This is because in many cases we want to perform the same side effect regardless of whether the component just mounted, or if it has been updated. Conceptually, we want it to happen after every render — but React class components don’t have a method like this. We could extract a separate method but we would still have to call it in two places.
    1. So while Solid's JSX and might resemble React it by no means works like React and there should be no illusions that a JSX library will just work with Solid. Afterall, there are no JSX libraries, as they all work without JSX, only HyperScript or React ones.
    1. However, if you want to create a backend API that is meant to be consumed only by your frontend, then you don't need REST nor GraphQL — RPC, such as Wildcard, is enough.
    1. Those banners should really be reserved for the important stuff. Because they're not, I've developed a reflex to immediately close those banners without paying attention. It's almost the same as blocking it with an ad-blocker; which defies the (original) purpose of banners.
  6. Sep 2020
    1. let:hovering={active}

      It seems like it should be the other way around:

      let:active={hovering}
      

      to make it look like a regular let assignment.

      It's only when you consider what/how let:hovering on its own means/works that it makes a bit more sense that it is the way it is. When it's on its own, it's a little clearer that it's saying to "make use of" an available slot prop having the given name. (Very much like bind, where the LHS is also the name of the prop we're getting the data from.) Obviously we have to identify which prop we're wanting to use/pull data from, so that seems like the most essential/main/only thing the name could be referring to. (Of course, as a shortcut (in this shorthand version), and for consistency, it also names the local variable with the same name, but it wouldn't have to.)

      Another even simpler way to remember / look at it:

      1. Everything on the left hand of an prop/attribute [arg] corresponds to something in the component/element that you're passing the [arg] to. Usually it's a prop that you're passing in, but in this case (and in the case of bind:) it's more like a prop that you're pulling out of that component, and attaching to. Either way, the name on the LHS always corresponds to an export let inside that named component.
      2. Everything on the right side corresponds to a name/variable in the local scope. Usually it passes the value of that variable, but in the case of a let: or bind: it actually "passes the variable by reference" (not the value) and associates that local variable with the LHS (the "remote" side).

      Another example is bind: You're actually binding the RHS to the value of the exported prop named on the LHS, but when you read it (until you get used to it?) it can look like it's saying bind a variable named LHS to the prop on the RHS.

    1. It gets worse when you're working on a team. No-one dares touch styles authored by someone else, because it's often unclear what they're doing, what markup they apply to, and what disasters will unfold if you remove them. The consequence of all this is the append-only stylesheet. There's no way of knowing which code can safely be removed, so it's common to undo some existing style with another, more specific style — even on relatively small projects.
    1. I didn’t quite understand that until I saw this tweet from Ryan Florence, who is a genius when it comes to explaining the React programming model in ways that normal people can understand — ‘the question is not when does this effect run, the question is with which state does this effect synchronize with?’

    1. If you can't understand where it's coming from in the stack traces, please post screenshots or create reproducing sandboxes and we'll try to help. Most of these are probably coming from a few libraries, so the most productive thing to do is to reduce these cases and then file issues with those libraries.
    1. Customers care more about the value our application adds to their lives than the programming language or framework the application is built with. Visible Technical Debt such as bugs and missing features and poor performance takes precedence over Hidden Technical Debt such as poor test code coverage, modularity or removing dead code
    2. In the real world — the time to pay off technical debt is scarce — in most of the time fueled by the fear of the unknown. The management loves to milk the cow but not to change the litter. The developers on another hand avoid modernizing legacy code — to avoid trouble in case anything breaks.
  7. Aug 2020
    1. For example, to search for text occurrences, I used ack-grep. Later on, I found that there is a faster approach using ag. Then, there is an even faster alternative called ripgrep.
    1. If you are a senior, try talking to a junior or someone less experienced than you. Many companies are running what is called ”reverse mentoring” programs where juniors coach senior members of a company. Senior’s experience is traded for a fresh perspective from a junior. You’d be amazed at how much you could learn and share.
    2. The hype is something common in our industry. Remember NoSQL? Or when everyone went crazy over microservices? Or the AI / Machine learning burst? The list goes on and on. People get excited about new and breakthrough technologies and ideas.
    3. The idea of having to learn something new is good, and I agree with that, but how often should you do that? Looking at the world of JavaScript, a new idea, blog post, library, framework, and whatnot pops up very often. Things become trending, and people quickly try to adopt that. I’m not saying you should not adopt new things and consider different approaches to a solution, not at all! I am trying to propose the idea of doing that less often.
    1. you could imagine my extreme disappointment after i came back after a year and a half to find that the entire exploration map was about 80% smaller, every different island was within clear view of your starting island completely decimating any sense of adventure or exploration you could have had.Almost all materials could be collected and all items built within four and a half hours. Islands are literally numbered one to five to display they're level of danger.not only that but you were practically spoon fed each advancement in the game, it feels like it was taken from a greatly ambitious open world, exploration survival game that would take months to finish and achieve everything in. To now being an arcade style iphone app game catered to ten year olds that would foolishly enter their parents card details in order to buy 10,000 roblox coins.
    1. I have over 689 hours into this game and would like to talk about the changes made to the Exploration. In my opinion the Exploration which made this game amazing now stinks!. You know longer need a ship to hit the islands. The exploration has pretty much been removed. One of the things that made this game so amazing was grinding to make your ship and heading out to Explore and find the other islands. Now all the islands are really close to the spawn point, there are not that many and well they stink. There is no reason or need to make a ship because you can easily reach all the island with a raft.
  8. Jul 2020
    1. "AOO is not, and isn't designed to be, the 'super coolest open source office suite with all the latest bells and whistles,'" Jagielski continued. "Our research shows that a 'basic,' functional office suite, which is streamlined with a 'simple' and uncluttered, uncomplicated UI, serves an incredible under-represented community.
    1. The meta charset information must also be the first child of the <head> tag. The reason this tag must be first is to avoid re-interpreting content that was added before the meta charset tag.

      But what if another tag also specified that it had to be the first child "because ..."? Maybe that hasn't happened yet, but it could and then you'd have to decide which one truly was more important to put first? (Hopefully/probably it wouldn't even matter that much.)

    1. A simplified pricing and packaging (PnP) strategy serves customers in the optimal way per the industry best practice. More SKUs lead to a more complex PnP model as a company scales, which eventually causes huge confusion to customers.
  9. Jun 2020
    1. For the longest time, whenever I read the news, I’ve often felt the depressing sensation of lacking the background I need to understand the stories that seem truly important. Day after day would bring front pages with headlines trumpeting new developments out of city hall, and day after day I’d fruitlessly comb through the stories for an explanation of their relevance, history or import. Nut grafs seemed to provide only enough information for me to realize the story was out of my depth.
    1. Links can sidestep this debate by seamlessly offering context and depth. The journalist can break a complex story into a non-linear narrative, with links to important sub-stories and background. Readers who are already familiar with certain material, or simply not interested, can skip lightly over the story. Readers who want more can dive deeper at any point. That ability can open up new modes of storytelling unavailable in a linear, start-to-finish medium.

      storytelling: digital, not digitised

    1. I don’t want the product with the best content overall, I want the product that is going to serve me up the best content every single time, regardless of whether or not it was created in-house.

      discovery, aggregation, curation. narrator

    1. I regularly get people coming to me and asking me to write a book. I always pass because I can’t imagine writing in a format that has an end. I can’t imagine writing in a format that doesn’t provide instant feedback. I can’t imagine writing in a format that requires a structure. I can’t imagine writing in a format that isn’t a stream of consciousness. I can’t imagine thinking about what I am going to write more than ten minutes before writing it. I can’t imagine killing trees to carry my words. So I will continue to write a blog. It’s the perfect format for me. AVC is way more than a book. It is a living breathing thing that sustains me and that is me.
    1. “I blog in Spanish and English for different reasons. In English I blog to communicate my ideas and views, in Spanish, where for some unknown reason many more people comment, I write to learn. The collective intelligence of my commentators is greater than mine.” Martin Varsavsky Founder and CEO FON
  10. May 2020
    1. Because the conditional connectives thus complicate the formal reasoning about programs, they are better avoided.
    1. Sometimes plugins can conflict with a theme or with each other.  Disable all your plugins and see if the problem persists. If everything is working once the plugins were disabled it means there's a conflict with a plugin or maybe even a set of plugins. Enable the plugins one by one to identify the one that is creating the conflict.
    1. Right click on the /wp-content/plugins folder and rename it plugins.old. This will deactivate all of the plugins. In most cases, this will also lock the WordPress admin area as well.  You will still be able to perform these steps from within the File Manager.Reactivate the plugins folder by following the above instructions and renaming the folder plugins. This will allow you to reactivate each plugin individually to isolate the offending plugin and resolve the 500 Internal Server Error.  This should also allow access to the WordPress Dashboard again. From the WordPress Dashboard: Reactivate each plugin (one at a time) and refresh the website to see if the issue has been resolved.
    1. they’re a new media form, with different possibilities from either essays or code, and with striking opportunities to go much further

      we run with what we have

      that author of Cognitive Productivity, created some tagging systems "confined" by his tool at hand

      people using twitter threads to branch out thoughts e.g. visa, and https://twitter.com/PeterorjustP/status/1139267256263872518

      people got hooked on roam because it allows "graph thinking", linking concepts (#roamcult)

      people enjoy andy's evergreen notes because it stacks like a paper, intuitive

      people enjoy sketchnotes and sketch summaries for talks, books because it's not as linear, easy to absorb

      people absorb tutorial and demos in videos better than text (at least I do) -- effective. e.g. knovigator, worldbrain, roam...

      youtube / instructional vids / media helps internalisation of tacit knowledge more (that basketball whiz kid who got the footwork down from studying on youtube)

      people enjoying figma because the UX is the best so far. miro as well.

  11. www.kickstarter.com www.kickstarter.com
    1. Requested Dormant Username Enter the username you would like to request, without the preceding URL (e.g., "User" instead of "gitlab.com/User")

      Problem Type: Dormant Username Requests

    1. The GitLab.com support team does offer support for: Account specific issues (unable to log in, GDPR, etc.) Broken features/states for specific users or repositories Issues with GitLab.com availability
    2. Out of Scope The following details what is outside of the scope of support for self-managed instances with a license.
  12. Apr 2020
    1. The extra “space” from vertical navigation might encourage some designers to go overboard and clutter the navigation menu; as with top, horizontal navigation, stick to only the top four or five links within the site.
    1. many organisations block torrents (for obvious reasons) and I know, for example, that either of these options would have posed insurmountable hurdles at my previous employment
    2. Actually, I probably would have ended up just paying for it myself due to the procurement challenges of even a single-digit dollar amount, but let's not get me started on that
    1. I don't think this is a common enough use case to warrant this change (which would need documentation and tests if it were to be accepted). Overall, the goal has been to simplify the validators, and prune out edge cases. This use case can be easily accomplished by just using a method instead.
    1. Markdown provides shorthand for the most common features of HTML. One of its best features is that you can always fallback to the full syntax for HTML. This includes doing things that aren't included in markdown. Personally, I like that markdown is concise and includes very little fluff. It makes it easier to learn the whole set of shorthand. This is particularly important if you expect someone else to read your code later.

      One of its best features is that you can always [fall back[ to the full syntax for HTML.

      See rebuttal below.

    1. It's typically a lot easier for software engineers to pull data out of a service that they use than it is for regular users. If APIs are available, we engineers can cobble together a program to pull our data out. Without APIs, we can even whip up a screen scraper to get a copy of the data. Unfortunately, for most users this is not an option, and they're often left wondering if they can get their data out at all.
    1. minitest doesn't reinvent anything that ruby already provides, like: classes, modules, inheritance, methods. This means you only have to learn ruby to use minitest and all of your regular OO practices like extract-method refactorings still apply.
    1. Don't use it! Writing simple assertions (and Minitest way of transforming them to expectations) is almost always a better idea anyway. Work with your favourite library authors to start with assertions and add matchers for convenience and not the other way around. Keep it simple.
  13. Mar 2020
    1. I discuss the flaws of this in regards to spreadsheets in Spreadsheets Are Sabotaging Your Business. In brief, when people inevitably started using the more complex formulas available, they unknowingly broke the fundamental design concept of paper spreadsheets: that humans can understand what’s happening between the cells.
    1. It won't let me go beyond this page. I'm sure I've answered the CAPTCHA correctly at least some of the 10+ times I've tried. What's going on?

      I can't even access their static website to find contact information for how to contact them about this problem!

    1. Don't be discouraged when you get feedback about a method that isn't all sunshine and roses. Facets has been around long enough now that it needs to maintain a certain degree of quality control, and that means serious discernment about what goes into the library. That includes having in depth discussions the merits of methods, even about the best name for a method --even if the functionality has been accepted the name may not.

      about: merits

    1. Q. Why does Rubinius not support frozen and tainted? A. Rubinius has better features; frozen and tainted are considered harmful. To elaborate... Both frozen and tainted depend on strewing checks throughout the source code. As a classic weak-link system, only one of those checks needs to be misplaced for the guarantees offered by either to fail. Since the number of checks is high, and as new code is written new checks need to be considered, the features inherently constitute unbounded complexity and unbounded risk.
    1. Much like the cookies you eat are an asset to humankind, HTTP cookies are an asset to the internet. They help personalize the web experience and make things like online shopping and logging into accounts so much easier and more efficient.
  14. Feb 2020
    1. people assume that by asking someone a question privately, they are doing everyone else a favor by bothering the fewest amount of people.
    2. We encourage team members to consider making private issues public wherever possible so that we can all learn from the experience, rather than requiring a small group to spend effort translating those learnings in the future.
    1. Write things down We document everything: in the handbook, in meeting notes, in issues. We do that because "the faintest pencil is better than the sharpest memory." It is far more efficient to read a document at your convenience than to have to ask and explain. Having something in version control also lets everyone contribute suggestions to improve it.
  15. Jan 2020
    1. We tend to treat our knowledge as personal property to be protected and defended. It is an ornament that allows us to rise in the pecking order.
  16. Dec 2019
    1. One of the more clever aspects of the agent is how it can verify a user's identity (or more precisely, possession of a private key) without revealing that private key to anybody.
    1. Just for the record newer versions of ssh support the -W option, you can do something like ProxyCommand ssh -W %h:%p gateway instead of depending on nc
    1. The x mark is also sometimes used for this purpose (most notably on election ballot papers, e.g. in the United Kingdom), but otherwise usually indicates "no", incorrectness, or failure.
  17. Nov 2019
  18. Oct 2019
    1. If you're given a set of factories (say, from a gem developer) but want to change them to fit into your application better, you can modify that factory instead of creating a child factory and adding attributes there.
  19. Mar 2019
    1. therefore at least to some extent a failure

      this is strange; I suppose you can 'succeed' in carrying out the utterance, but it does not consecrate anything, which... is the entire point? So, strange to say that it fails only in part when in another sense it fails completely. It's like I succeeded in taking a shot but missed the basket?

    2. One thing we might go on to do, of course, is to take it all back

      How can you take back an action? (though you could retract a claim about an action, of course)

    3. So far then we have merely felt the firm ground of prejudice slide away beneath our feet.

      Not absolute; not bedrock (though we thought it was). And merely? This is "merely" the dissolution of what you thought reality was?

    4. That this is SO can perhaps hardly be proved, but it is, I should claim, a fact.

      Haha - claiming "truth" for something that he acknowledges might not be provable - 'take my word for it, it's a fact'. Use of the performative again in "claim," e.g. "I claim" cannot be responded to with "that's not true!"

    5. outward and audible sign

      Proverbial tip of the iceberg; the "seen" part.

    6. Here we should say that in saying-these words we are doing some- thing-namely, marrying, rat her than reporting some- thing, namely that we are marrying

      Important distinction between doing and reporting; the former obviously an action, and the latter a verifiable statement. But can the lines blur? Is "I do" ever reporting the fact that you are getting married, which is verifiable?

    7. Yet to be 'true' or 'false' is traditionally the characteristic mark of a statement.

      All statements are boolean: T/F

    8. all cases considered

      Not sure that all cases considered are worth considering...?

    9. the only merit I should like to claim for it is that of being true, at least in parts

      You would think the goal of an essay would be to find or argue a truth, but here he is marginalizing it; truth is not the goal.

      Arguing that truth and falsehood are not what matters; that the performative exists outside such claims (as we learn later).

      Using the performative in his opening through the use of "I claim"; and here he claims truth. He performs his own argument.

    10. we shall next consider what we actually do say about the utterance concerned when one or another of its normal concomitants is absent

      So the utterance is surrounded by other ceremonial trappings, and without which there is a presumption that the utterance is hollow, that the accompaniments make it "complete"; suggests that the ceremony becomes greater than the sum of its parts by being able to bring about this binding force which the parts cannot do individually; or can they - is just the utterance enough to describe and seal the inward act? The other question is, does the utterance imply (and describe) the other trappings?

    11. our word is our bond

      And yet these are just words; as believable or unbelievable as the uttering of an oath?

    12. Thus 'I promise to . . . 9 obliges me-puts on record my spiritual assumption of a spiritual shackle.

      The consecration of the oath; but when is the uttering just a garnishment? For some, the internal / spiritual bond is the key thing, binding regardless of whether the one to whom the words are uttered believes them or not; the words are just words, but the intent is everything. The intent can exist without the words, and so the words can exist without the intent. It is the words though that offer a public record of commitment, and against which one's character is judged and assessed in accordance with their ability to live up to them.

    13. fictitious

      Interesting choice of words; many swear that they are real and binding, but, yes, they are imaginary (in our culture); we require signed contracts, and verbal oaths are nice, but have a romantic tinge to them and we expect them maybe to not be kept as frequently.

    14. the outward utterance is a description, true or false, of the occurrence of the inward performance

      The process by which we arm feelings of guilt / responsibility / etc to trigger when we have second thoughts about the vow we've made