80 Matching Annotations
  1. Nov 2023
    1. when I was CTO of a company and someone joined, the first thing they had to do was to spend two weeks reading AWDwR from cover to cover. Once you know the framework, there is no magic, only defaults that act as a catalizer and let you fly.
  2. May 2023
    1. The HoverBar Duo’s base is stable and heavy enough to support Apple’s biggest 12.9” iPad Pro.

      Having spent the past two days exploring the potential of the used first-generation HoverBar Duo I somehow managed to acquire for $35, I would emphasize "enough" here as a qualifier at least once over.

      Though the following is pure speculation, there were a few highly observable clues to suggest that the previous owner also had a heavy iPad Pro (perhaps a 13,9 as I have,) though - after over-tightening all the adjustment screws (all but stripping threads in the case of the one at the base,) they were ultimately not satisfied with the Duo's management of the weight, even tightened to that state.

      (Again, entirely speculative but.)

  3. Mar 2023
  4. Dec 2022
    1. The most correct thing is to create a directory with the name lua/ and inside it put all the files that will be imported by init.lua, example:

      I think to not do that, at least when just starting with NeoVim configuration.

      Instead, I would keep adding configuration in init.lua to see what happens in which order, will be easier experimenting moving things around, without behind-the-scenes loading.

      This seems a nice feature though, looking forward to leveraging it when I have some fixed parts to load.

  5. Nov 2022
    1. So when configuring Capybara, I'm using ignore_default_browser_options, and only re-use this DEFAULT_OPTIONS and exclude the key I don't want Capybara::Cuprite::Driver.new( app, { ignore_default_browser_options: true, window_size: [1200, 800], browser_options: { 'no-sandbox': nil }.merge(Ferrum::Browser::Options::Chrome::DEFAULT_OPTIONS.except( "disable-features", "disable-translate", "headless" )), headless: false, } )
    1. I just assumed that nesting/inheriting settings would be a thing because of course it would
    2. git_workspace/ ├── .vscode │ └── settings.json # global settings, my preferred ones ├── my-personal-projects/ │ └── project1/ │ └── .git/ └── company-projects/ ├── .vscode │ └── settings.json # local settings, overrides some of my personal ones ├── project2/ │ └── .git/ └── project3/ └── .git/
  6. Sep 2022
    1. Giving ~, YAML’s representation of nil, as a value cancels the setting of the corresponding key in the parent configuration.
  7. Jul 2022
    1. ActiveSupport.on_load :active_storage_blob do def accessible_to?(accessor) attachments.includes(:record).any? { |attachment| attachment.accessible_to?(accessor) } || attachments.none? end end ActiveSupport.on_load :active_storage_attachment do def accessible_to?(accessor) record.try(:accessible_to?, accessor) end end ActiveSupport.on_load :action_text_rich_text do def accessible_to?(accessor) record.try(:accessible_to?, accessor) end end module ActiveStorage::Authorize extend ActiveSupport::Concern included do before_action :require_authorization end private def require_authorization head :forbidden unless authorized? end def authorized? @blob.accessible_to?(Current.identity) end end Rails.application.config.to_prepare do ActiveStorage::Blobs::RedirectController.include ActiveStorage::Authorize ActiveStorage::Blobs::ProxyController.include ActiveStorage::Authorize ActiveStorage::Representations::RedirectController.include ActiveStorage::Authorize ActiveStorage::Representations::ProxyController.include ActiveStorage::Authorize end

      Interesting, rather clean approach, I think

  8. Jun 2022
    1. [[permalink]] A URL which can be used as a bookmark to open Drafts and select the current draft. The deprecated [[draft_open_url]] returns this same value, but permalink is preferred.

      Whoo! I have... A lot of actions to update.

  9. Mar 2022
    1. # Allows you to just run "pry" inside a Rails app directory and get # everything loaded as rails c does. Inside a Bundler directory does # what bundle console does.
  10. Feb 2022
    1. Telegram message IDs are purely chronological from their channel/group chat’s creation – the first message in a channel or group chat is 1 and the 15th is 15. Together with the simplicity of channel/group chat IDs, which are just their alphanumeric @ names, this format makes URL schemes for Telegram message links super malleable and easy to understand.

      I’ve created a Siri Shortcut and TextExpander snippet that utilize this simplicity to make navigating to specific Telegram messages super easy.) and TextExpander snippet thathttp://insert-your-link-here.com utilize this simplicity to make navigating to specific Telegram messages super easy.

  11. Jan 2022
  12. Oct 2021
  13. Sep 2021
  14. Aug 2021
    1. In the vast majority of cases when I'm using prettier-ignore I'm only really looking to prevent it from breaking my code into new lines, whilst keeping its other transformations such as switching quotes and adding space between brackets. When ignoring single lines, fixing these formatting problems by hand is very manageable. With the ability to have Prettier ignore entire blocks of code I think the ability to specify what you want it to ignore is essential.
  15. Jul 2021
    1. (This, incidentally, is why the current 'zero-config' marketing fad is such nonsense: it really means 'abdicate the responsibility for config'. Instead of a single place where you can view all the build config in a structured, coherent form, you have the exact same amount of config but scattered around your project in lots of annoying files that are harder to understand.)
  16. Jun 2021
    1. Setting Capybara.server_port worked when the selenium integration test ran independent of other integration tests, but failed to change the port when run with other tests, at least in my env. Asking for the port number capybara wanted to use, seemed to work better with running multiple tests. Maybe it would have worked if I changed the port for all tests, instead of letting some choose on their own.
    1. app_host is used whenever you call visit to generate the url, server_host sets the ip the server should accept connections from to use (0.0.0.0 means all network interfaces) and finally server_port sets the server port (auto generated by default).You are correct in that both app and server host should be set. Could you try server_host = “0.0.0.0” and app_host = “http://rails:#{Capybara.server_port}”.

      app_host ~ server_host

    1. Prettier intentionally doesn’t support any kind of global configuration. This is to make sure that when a project is copied to another computer, Prettier’s behavior stays the same. Otherwise, Prettier wouldn’t be able to guarantee that everybody in a team gets the same consistent results.
  17. Apr 2021
    1. # +devise_for+ is meant to play nicely with other routes methods. For example, # by calling +devise_for+ inside a namespace, it automatically nests your devise # controllers: # # namespace :publisher do # devise_for :account # end
  18. Mar 2021
  19. Feb 2021
    1. STATSD_SAMPLE_RATE: (default: 1.0)

      It's recommended to configure this library by setting environment variables.

      The thing I don't like about configuration via environment variables is that everything is limited/reduced to the string type. You can't even use simple numeric types, let alone nice rich value objects like you could if configuration were done in the native language (Ruby).

      If you try to, you get:

      ENV['STATSD_SAMPLE_RATE'] = 1
      config/initializers/statsd.rb:8:in `[]=': no implicit conversion of Integer into String (TypeError)
      
    1. programmers can try to be aware of their configuration systems and the cognitive overhead they impose on people.
    2. Another thing I don’t like: our asset behavior is decoupled from the assets. If you’re mucking around in your app/assets folder, then you have to first know that such a config exists, and then hunt it down in a totally different config folder. It would be nice if, while we’re working in asset land, we didn’t have to mentally jump around.
  20. Nov 2020
  21. Oct 2020
    1. To silence circular dependencies warnings for let's say moment library use: // rollup.config.js import path from 'path' const onwarn = warning => { // Silence circular dependency warning for moment package if ( warning.code === 'CIRCULAR_DEPENDENCY' && !warning.importer.indexOf(path.normalize('node_modules/moment/src/lib/')) ) { return } console.warn(`(!) ${warning.message}`) }
    1. The concept of Convention over Configuration is impossible without sensible default values. The key word here is "sensible". The default values have to make sense for at least 80% (if not more) of all the uses of a library/service/framework.
  22. Sep 2020
    1. The problem I have with this approach to state and prop variables is that the difference between them is very blurry. In React you can clearly see that a prop is an input to component (because of clear function notation), and that state is something internal. In Svelte they are both just variables, with the exception that props use export keyword.

      This is something I've seen before: people noticing that Svelte is missing some kind of naming convention.

      React has use___ convention, for example. Without that, it makes it hard to see the difference between and know just from the name that a function is an (mentioned in the other article I read) action and not a event handler or even component, for example.

  23. Jun 2020
  24. May 2020
    1. Enable the sub-chart The way we’ve chosen to implement compartmentalized sub-charts includes the ability to disable the components that you may not want in a given deployment. For this reason, the first setting you should decide on is enabled.
  25. Apr 2020
    1. If you really want to configure hundreds of ESLint rules individually, you can always use eslint directly with eslint-config-standard to layer your changes on top. standard-eject can help you migrate from standard to eslint and eslint-config-standard.
  26. Mar 2020
  27. Feb 2020
    1. DevOps has taught us that the software development process can be generalized and reused for dealing with change not just in application code but also in infrastructure, docs and tests. It can all just be code.
    1. CAC Isn’t Shipping Apps With Configs A shallow reading of configuration as code might lead you to add a configs folder to your release package and throw in the files. That approach would be wrong and dangerous. That solution means that a configuration change requires a release of the application. This meets the goal of adding an audit trail for configs but muddies the water by mixing them with code changes. If a new feature requires both a code and configuration change, this might make sense. But what if you’re only changing the configuration? What if you’re just increasing a cache setting in production?
    2. Configuration as Code vs. Infrastructure as Code Some treat CAC and infrastructure as code (IAC) as the same thing. They’re not, and there’s a reason we have two distinct terms.
  28. Dec 2019
    1. A zero-config development setup is provided, but nwb also supports configuration and plugin modules which add extra functionality (e.g. Sass support), should you need them
  29. Nov 2019
    1. If you really want to be sure your customisation gets loaded first or last, you can use * as your before or after reference.

      controlling order

    2. before and after also accept arrays of constraints.

      controlling order

    3. Much like the configuration layer, we need to specify a name for this transformation. This will help other modules negotiate their priority over the injector in relation to yours.
    1. Onivim 2 leverages the VSCode Extension Host process in its entirety - meaning, eventually, complete support for VSCode extensions and configuration.
    1. File-relative configuration Babel loads .babelrc (and .babelrc.js / .babelrc.cjs / package.json#babel) files by searching up the directory structure starting from the "filename" being compiled (limited by the caveats below). This can be powerful because it allows you to create independent configurations for subsections of a package. File-relative configurations are also merged over top of project-wide config values, making them potentially useful for specific overrides, though that can also be accomplished through "overrides".
  30. Oct 2019
    1. Setting up Nginx properly requires quite a bit of work. Using websockets or using Rails streaming? Make sure you disable response buffering for the relevant URIs, otherwise they won’t work correctly. Phusion Passenger 5’s builtin reverse proxy does the right thing by default, without any configuration. In other words: it’s all about making things simple.
  31. Aug 2019
  32. Dec 2017
  33. Sep 2017
  34. Jan 2014
    1. The closest thing to common ground may be events for configuration-management software like PuppetConf or ChefConf, or possibly re:Invent.