307 Matching Annotations
  1. Last 7 days
  2. Feb 2021
    1. I wanted to keep reviewing restaurants, but I didn’t want to go back into their dining rooms both because of the risk and because I was afraid readers would take it as an all-clear signal. When the governor halted indoor dining again in December, my selfish reaction was relief. Then I briefly got depressed. How would restaurants survive? And how would I keep writing about them?One answer had already started to appear on sidewalks and streets in the form of small greenhouses, huts, tents and yurts. Inside these personal dining rooms, you can (and should) sit just with people from your own household. If the restaurant thoroughly airs the space out between seatings, any germs you breathe in should be the same ones that are bouncing around your home. Many restaurants instruct their servers to stay outside the structures as much as possible, though some don’t.

      Syntax of question and answer reveals itself again. His doubts and negativity are addressed within the first highlighted paragraph with a question coming to Pete's mind. He realized his influence as a critic and decided to take the right step to prevent anything bad from occurring. Despite his sacrifice, the next paragraph he discusses the clever solutions restaurants had come up with which solved his problem for the most part. This description underlines yet more change that brought upon good things, which is the main idea he is relating to the food scene. He creates a comparison between an at home setting along with the solutions restaurants have come up with to further emphasize his point of safety amidst COVID.

    2. Before the pandemic, I normally called chefs after I’d written a review of their restaurant but before it was published, to check facts. The chefs usually sounded as if I were calling with the results of a lab test. One chef called me back from a hospital and told me his wife was in the next room giving birth to their first child, but — oh no, don’t worry, it’s fine, he said; in fact, I’d picked a perfect time to call! These were, in other words, awkward conversations.The ones I had last spring were different. It was as if the fear and distrust all chefs feel toward all critics were gone. They talked about going bankrupt, they talked about crying and not wanting to get out of bed. What did they have left to lose by talking to me?

      Pete highlights a key change that came with COVID, except he emphasizes the good that came from it. This compare and contrast allows the reader to see how the personalities have developed along with the times. There was a silver lining amidst the "crying and not wanting to get out of bed". The drastic comparison of his importance before and after the pandemic with a chef giving equal importance to Pete and his first child underlines just how wrong priorities were previously. His diction, utilizing awkward perfectly to encapsulate the environment surrounding his job before COVID, pushing forth the idea that good can result from change.

    1. ReconfigBehSci on Twitter: ‘@JAndreen @ErikAngner details about human contact networks matter, as epidemiologists pointed out last spring. Https://t.co/DC5FoW5ChY If you think I am wrong about the relevant parameters for Sweden, I’d love to hear more. One place to start is saying how it differs from other Nordic countries’ / Twitter. (n.d.). Retrieved 21 February 2021, from https://twitter.com/SciBeh/status/1362757183121854466

    1. There are times where it is useful to know whether a value was passed to run or the result of a filter default. In particular, it is useful when nil is an acceptable value.

      Yes! An illustration in ruby:

      main > h = {key_with_nil_value: nil}
      => {:key_with_nil_value=>nil}
      main > h[:key_with_nil_value]
      => nil
      main > h[:missing_key]  # this would be undefined in JavaScript (a useful distinction) rather than null, but in Ruby it's indistinguishable from the case where a nil value was actually explicitly _supplied_ by the caller/user
      => nil
      # so we have to check for "missingness" ("undefinedness"?) differently in Ruby
      main > h.key?(:key_with_nil_value)
      => true
      main > h.key?(:missing_key)
      => false

      This is one unfortunate side effect of Ruby having only nil and no built-in way to distinguish between null and undefined like in JavaScript.

    1. Erik Angner. (2021, February 18). Periodic reminder that in terms of outcomes, Swedish corona policy is thoroughly average in EU comparison – not exactly a model to be emulated by the rest of the world, nor a crime against humanity that should be prosecuted in the Hague. Https://t.co/E1CHBFMs6S [Tweet]. @ErikAngner. https://twitter.com/ErikAngner/status/1362319246378872832

    1. This would be more useful if there was an easy way to actually compare the differences...

      This is how I did it:

      cd user-example
      diff -r -u10 before/ after/
      # then compare after/app/forms, which was only in after

      Linked to from https://hyp.is/5YyPAnFNEeu0Vv94pLaypA/github.com/railsgsoc/actionform

    1. You can find a list of applications using this gem in this repository: https://github.com/m-Peter/nested-form-examples . All the examples are implemented in before/after pairs. The before is using the accepts_nested_attributes_for, while the after uses this gem to achieve the same functionality.
    1. Transport Tycoon is easily one of the best Tycoon games, this variant offers indepth control over your logistic networks and zero breakdowns but with loads of new tools to get to grips with you will need to search up a guide.The other variant, OpenTTD, wants to remain more like the original. its not as precise in its logistics but much simpler to pick up and play.Both are multiplayerBoth are freeIf Simutrans feels abit obtuse, try OTTDIf OTTD feels too simple, try Simutrans
  3. Jan 2021
    1. Snaps each pick a ‘base’, for example, Ubuntu18 (corresponding to the set of minimal debs in Ubuntu 18.04 LTS). Nevertheless, the choice of base does not impact on your ability to use a snap on any of the supported Linux distributions or versions — it’s a choice of the publisher and should be invisible to you as a user or developer.

      Snaps sound a lot like container images in this respect.

    1. Taglines are more often next to the company's logo on official advertisements, and are dedicated more specifically to brand awareness than slogans. Slogans carry a brand's values and promises as the company grows and evolves, and can be promoted under an overarching company tagline.
    2. Although both "slogan" and "tagline" tend to be used interchangeably, they actually serve two different purposes. 
    3. Companies have slogans for the same reason they have logos: advertising. While logos are visual representations of a brand, slogans are audible representations of a brand. Both formats grab consumers' attention more readily than the name a company or product might. Plus, they're simpler to understand and remember.
    4. In many ways, they're like mini-mission statements.
    1. And since auto is entirely based on content, we can say it is “indefinitely” sized, its dimensions flex. If we were to put an explicit width on the column, like 50% or 400px, then we would say it is “definitely” sized.
    1. A bind mount is basically where you mount a given directory on top of an existing one. Suppose you have a RAID array where you have a partition mounted at /home2, containing some larger user accounts. If you wanted to remount /home2/user to /home/user (to sidestep issue #1), without the issues that come along with symlinks (it is not a directory, just a token that points to it), you'd do something like mount --bind /home2/bob /home/bob and the directory will then be traversable from both locations. The target folder must exist, same as any mount point. The end result is somewhat similar to a symlink, but instead of creating a special filesystem object, it utilizes the operating system's filesystem mounting machinery to do it, which makes it more transparent to running software. Tools like 'du' and 'find' will still be aware that they are cross filesystem boundaries, and will also behave as such if the bind mount is entirely within a given filesystem. Finally, as they're transient by nature (unlike symlinks), they need to be placed in fstab or some startup script to make them persistent.
    1. Both are elements positioned near a "reference" element, and are hidden until they are triggered. They help conserve space by hiding secondary information or functionality behind a hover or click. They are positioned outside the normal flow of the document so when they are triggered, they are overlaid on top of the existing UI without disrupting the flow of content.
    1. While there are always going to be cases where one is more appropriate than the other, border-bottom offers much more precise control over text-decoration and is therefore probably the preferred method. Here's a quick (likely not exhaustive) list of properties that border-bottom can control/enable that text-decoration cannot:
    1. All in all, building icon systems with SVG isn’t that hard! If you have the right tools available, it can be a pretty easy switch. The benefits of SVG sprites have been discussed at length, and the consensus in the web community is that SVG icon systems come out on top when compared with iconic fonts.
  4. Dec 2020
    1. React abstracts the DOM with functionally pure declarative rendering and provides escape hatches back to mutable imperative DOM land. This is a profound philosophical difference that Rich gave a talk about.
    2. It's true that Svelte does not allow you to map over children like React, but its slot API and <svelte:component> provide similarly powerful composition. You can pass component constructors as props and instantiate them with <svelte:component>, and use slots and their let bindings for higher order composition. It sounds like you're thinking in virtual DOM idioms instead of Svelte's.
    3. My frustration is mainly from Svelte's choices that are very un-JavaScript-like. It doesn't have to be "like React/Vue". React is React because it doesn't restrict what you can do with JavaScript for the most part. It's just common FP practice to fold/map.
  5. Nov 2020
    1. Really? I've been using Flutter for about a week and Svelte seems an order of magnitude better designed. I find Flutter overly complicated.
    2. Svelte by itself is great, but doing a complete PWA (with service workers, etc) that runs and scales on multiple devices with high quality app-like UI controls quickly gets complex. Flutter just provides much better tooling for that out of the box IMO. You are not molding a website into an app, you are just building an app. If I was building a relatively simple web app that is only meant to run on the web, then I might still prefer Svelte in some cases.
    3. Unfortunately it is not just the semantic that is broken. There are lot of things.For example if you look at some of the examples (https://flutter.github.io/samples/#/) - you can see that indeed there are some div and p tags but it is not entirely normal DOM elements. For example you can't even select text anywhere on the screen. And there are more and more little things like that.Just to be clear - Flutter for web is great, I'm happy it exists, but it is not comparable to React/Vue or Svelte.IMO Flutter for web is good to post live examples of Flutter code or maybe some last-minute-boss-request to make a web version of existing app, but for not for full-blown web app. :)
    1. For use$ since svelte is never going to support actions for components, i designed something that reminds React hooks that will in some ways replace this feature.

      Isn't that what use$ is trying to do already? How is that "something that reminds React hooks" any different? Will be interested to see...

    1. SVG has the advantage that integrates very well with Svelte, since it’s an XML and the nodes can be managed as if they were HTML. On the other hand, Canvas is more efficient, but it has to be generated entirely with JavaScript.
    1. That is, if Company A owns 80% or more of the stock of Company B, Company A will not pay taxes on dividends paid by Company B to its stockholders, as the payment of dividends from B to A is essentially transferring cash from one company to the other.
    1. The webpack repository contains an example showing the effect of all devtool variants. Those examples will likely help you to understand the differences.
    1. Frontend frameworks are a positive sum game! Svelte has no monopoly on the compiler paradigm either. Just like I think React is worth learning for the mental model it imparts, where UI is a (pure) function of state, I think the frontend framework-as-compiler paradigm is worth understanding. We're going to see a lot more of it because the tradeoffs are fantastic, to where it'll be a boring talking point before we know it.
    1. You may know several Procfile process management tools, but Overmind has some unique, extraterrestrial powers others don't:
  6. Oct 2020
    1. Indeed, it looks like svelte-hooks did add support for clean-up functions to their useEffect in devongovett/svelte-hooks@1d39d95! ... which is great, though @DylanVann's much simpler and zero-dependency version is even better in some ways.
    1. mixing the turing complete of javascript with the markup of HTML eliminates the readability of JSX so that it is actually harder to parse than a solution like hyperscript
    2. hyperscript is much simpler to refactor and DRY up your code than with JSX, because, being vanilla javascript, its easier to work with variable assignment, loops and conditionals.
    1. Then at some moment I just stumbled upon limitations and inexpressiveness of templates and started to use JSX everywhere — and because JSX was not a typical thing for Vue I switched to React over time. I don’t want to make a step back.
    1. Solid is similar to remoteStorage in that it allows apps and services (including unhosted web apps) to store the user's data under the user's control.
    1. Long, H., correspondentEmailEmailBioEmailFollowEmail, H. L., Dam, rew V., Fowers, rew V. D. focusing on economic dataEmailEmailBioEmailFollowEmailAlyssa, visualization, A. F. reporter focusing on data, data, analysisEmailEmailBioEmailFollowEmailLeslie S. S. reporter focusing on, & storytellingEmailEmailBioEmailFollowEmail, multimedia. (n.d.). The covid-19 recession is the most unequal in modern U.S. history. Washington Post. Retrieved October 2, 2020, from https://www.washingtonpost.com/graphics/2020/business/coronavirus-recession-equality/

  7. Sep 2020
    1. Next.js is a React framework from Vercel (formerly ZEIT), and is the inspiration for Sapper. There are a few notable differences, however:
    1. for example, reactive declarations essentially do the work of React's useMemo, useCallback and useEffect without the boilerplate (or indeed the garbage collection overhead of creating inline functions and arrays on each state change).
    2. In Vue, your markup must be wrapped in a <template> element, which I'd argue is redundant.
    1. Allow creating custom components with the same abilities as native dom. By all means keep the same level of encapsulation, don't push class on components, but allow a component to mark the class property or another as a CSS Class property, in which case you could pass it through the same transformation that native elements go through
    1. I think Svelte's approach where it replaces component instances with the component markup is vastly superior to Angular and the other frameworks. It gives the developer more control over what the DOM structure looks like at runtime—which means better performance and fewer CSS headaches, and also allows the developer to create very powerful recursive components.
    1. Re Object.keys(undefined), I think I'm ok with that failing. AFAIK it would also fail in React
    2. The more I think about this, the more I think that maybe React already has the right solution to this particular issue, and we're tying ourselves in knots trying to avoid unnecessary re-rendering. Basically, this JSX... <Foo {...a} b={1} {...c} d={2}/> ...translates to this JS: React.createElement(Foo, _extends({}, a, { b: 1 }, c, { d: 2 })); If we did the same thing (i.e. bail out of the optimisation allowed by knowing the attribute names ahead of time), our lives would get a lot simpler, and the performance characteristics would be pretty similar in all but somewhat contrived scenarios, I think. (It'll still be faster than React, anyway!)
    1. In most component frameworks, you need to write some code to define your component. With React, the simplest component is an empty function. In other frameworks, you need to import a library and call a special function to define and create your component. With Svelte, you just create a new .svelte file.

      If you compare these two:

      • With React, the simplest component is an empty function.
      • With Svelte, you just create a new .svelte file.

      Creating a new empty function is actually easier/faster than creating and importing a new file. Because you don't have to create a new file just to create a new one-line component. You can create simple helper components within the same file as the main component they help with, and sometimes it is nice to have the flexibility and freedom to compose your files however you want, including the freedom to group multiple closely related components together in the same file.

      In fact one thing I've sometimes found very useful and handy is to be able to define very simple helper components (functions) within the definition of my main component.

      So I would actually put this comparison in the "win" category for React, not Svelte.