158 Matching Annotations
  1. Last 7 days
  2. Nov 2022
  3. Oct 2022
  4. Sep 2022
  5. Aug 2022
    1. I created a gem called rspec_n that installs an executable that will do this. It will re-run the test suite N times by default. You can make it stop as soon as it hits a failing iteration via the -s cli option. It will display other stats about the iterations as well.
  6. Jun 2022
  7. May 2022
  8. Mar 2022
  9. Feb 2022
  10. Nov 2021
  11. Jul 2021
    1. This looks like a bookmarking service that is billing itself as a digital commonplace book. I'm not sure about the digital ownership aspect, but it does have a relatively pretty UI.

      Looks like it works via a Chrome extension: https://chrome.google.com/webstore/detail/commonplaces-your-digital/ckiapimepnnpdnoehhmghgpmiondhbof

  12. Jun 2021
  13. May 2021
    1. The NoScript extension for Firefox mitigates CSRF threats by distinguishing trusted from untrusted sites, and removing authentication & payloads from POST requests sent by untrusted sites to trusted ones. The Application Boundary Enforcer module in NoScript also blocks requests sent from internet pages to local sites (e.g. localhost), preventing CSRF attacks on local services (such as uTorrent) or routers.
    2. The Self Destructing Cookies extension for Firefox does not directly protect from CSRF, but can reduce the attack window, by deleting cookies as soon as they are no longer associated with an open tab.
  14. Apr 2021
  15. Mar 2021
    1. _Underline_

      I really like that they allow this. How come most other Markdown flavors (including GitHub, GitLab) don't provide a way to underline text?

    1. # Parallel Ruby universes ("Rubyverses") - A proposed interface for # parallel, "semi-private" method or method-and-data spaces via # "closely associated" objects.
    1. A proposal to specify the path for bury with classes as values of a hash arg: {}.bury(users: Array, 0 => Hash, name: Hash, something: 'Value') # {user: [{name: {something: 'Value'}]} So all absent nodes could be created via klass.new

      Didn't understand it at first, but now I think it's a pretty clever/decent solution.

      Just a bit more verbose than one might like...

      At first I had reservations about the fact that this requires you to pass a hash ... or rather, once you start using a hash as your "list", you can't just "switch back" to an array (a "problem" I've noticed in RSpec, where you have some tags that are symbols, and some that are hashes: you have to list the symbols first: describe 'thing', :happy_path, driver: :chrome):

      {}.bury(users: Array, 0, 'Value')
      

      But I think that's okay in practice. Just use a hash for all "elements" in your list:

      {}.bury(users: Array, 0 => 'Value')
      
    1. For pluggability, an endpoint is split into a Protocol and an Adapter part. This separates generic logic from environment-dependent code.
    2. Note how a handful of default steps lead into six standardized termini, allowing to plug protocols into different adapters. Imagine replacing your self-written API adapter with a canonical JSON-API adapter, for example.
  16. Feb 2021
  17. Jan 2021
  18. Dec 2020
    1. website developers and extension authors

      Like, for example, Google having a problem with ad-blockers in Google Chrome. This is an example of why monopolies aren't great; Google makes money selling ads but they also control a browser that most people use. There's a conflict here when the users of the browser install extensions that limit Google's ability to show you ads.

  19. Oct 2020
    1. The problem is that the since both the JSX transpiler and the traceur compiler are actually parsing the full javascript AST, they would have to mutually agree on the syntax extensions you use: traceur can't parse the faux-xml syntax JSX adds, and JSX can't parse the async or await keywords, for example, or generator functions.
  20. Sep 2020
    1. In '07, safety implied an unacceptable performance hit on slow single-core devices with 128MiB of RAM.

      In 2007, safety implied an unacceptable performance hit for hosting extensions, on devices with one core and 128MiB ram. In 2020, the lack of extensions is the ultimate app-ification of the web, the reduction of the web into a useless, powerless medium where users have no control.

  21. Jul 2020
    1. require 'set' class Array def uniq_elements(&prc) prc ||= ->(e) { e } uniques, dups = {}, Set.new each do |e| k = prc[e] ((uniques.key?(k)) ? (dups << k; uniques.delete(k)) : uniques[k] = e) unless dups.include?(k) end uniques.values end end
  22. Jun 2020
  23. May 2020
    1. 1. Disabling concrete extension update. That's what I wanted! You can do this by editing the extensions manifest json-file on Windows: C:\Users\<USERNAME>\AppData\Local\Google\Chrome\User Data\Default\Extensions\<EXTENSION-ID>\<VERSION>\manifest.json (find out the extensions ID by enabling developer mode in the extension settings page) on Ubuntu for Chromium: ${HOME}/.config/chromium/Default/Preferences In this file set "update_url" property to something invalid like "https://localhost" for example. For now according to given url updating of that extension is simply impossible.
    1. I believe that beginning to distribute tools that patch Firefox and give back power to users and allow them to install unsigned extensions is necessary when an organization is taking away our rights without giving us a compelling reason for doing so.
    2. The other pressing issue is that users have lost the right to run private extensions in the release version of Firefox, without needing to hand over their source code to Mozilla.
    1. I would like to know if you know a way to load unsigned extensions without requiring a developer or unbranded version of Firefox.
    2. To load one temporarily go to about:debugging, "This Firefox" and click "Load temporary add-on from file". More permanently: many (most?) Linux distributions allow unsigned extensions to be placed in /usr/lib/firefox/browser/extensions/ and they will automatically be loaded, provided they have valid names (e.g. dodgy@unsignedextension.com.xpi).
    1. Add-ons that are intended for internal or private use, are only accessible to a closed user group, or for distribution testing may not be listed on AMO. Such add-ons may be uploaded for self-distribution instead.
  24. Apr 2020
  25. Mar 2020
    1. On top of standard Markdown blockquotes, which require prepending > to quoted lines, GFM supports multiline blockquotes fenced by >>>:

      First sighting of this >>>. I like it! It's always a pain to paste in a quote and then have to manually prefix every line with >, esp. if there are many lines.

      I also like that it very nicely parallels the multilne code block delimeter syntax.

    1. This is where the incredibly useful gettext filter comes in. If you take a peek at your plugin's code you'll see strings like this: .gist table { margin-bottom: 0; } <?php _e( 'Related Products', 'woocommerce' ); ?> view raw sample-translatable-string.php hosted with by GitHub You can easily translate these strings by adding a filter to your functions.php file: .gist table { margin-bottom: 0; } <?php /** * Change text strings * * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext */ function my_text_strings( $translated_text, $text, $domain ) { switch ( $translated_text ) { case 'Related Products' : $translated_text = __( 'Check out these related products', 'woocommerce' ); break; } return $translated_text; } add_filter( 'gettext', 'my_text_strings', 20, 3 );
  26. Jan 2020
  27. Dec 2019
  28. github.com github.com