952 Matching Annotations
  1. Sep 2021
  2. Aug 2021
    1. def compare_state_dict(dict1, dict2): # compare keys for key in dict1: if key not in dict2: return False for key in dict2: if key not in dict1: return False for (k,v) in dict1.items(): if not torch.all(torch.isclose(v, dict2[k])) return False return True

      Comparing two pytorch dicts

    1. Since the reader was able to shape hand and finger as he or she saw fit, we can sometimes recognise a particular reader within a single manuscript, or even within the books of a library. The charming hands function as a kind of fingerprint of a particular reader, allowing us to assess what he or she found important about a book or a collection of books.

      I've heard the word "hand" as in the phrase "an operator's hand" used in telegraphy to indicate how an experienced telegraph operator could identify the person at the other end with whom they were communicating by the pace and timbre of the code. I've particularly heard reference to it by code breakers during wartime. It's much the same sort of information as identifying someone by their voice on the phone or in a distinctive walk as seen at a distance. I've also thought of using this idea in typing as a means of secondary confirmation for identifying someone while they input a password on a keyboard.

      I wonder if that reference predates this sort of similar "hand" use for identifying someone, if this may have come first, or if they're independent of each other?

    1. If you want more, you can do so by directly specifying TextMate theme color rules

      code

      {
        "editor.tokenColorCustomizations": {
          "[Noctis]": {
            "textMateRules": [
              {
                "scope": "markup.list",
                "settings": { "fontStyle": "" }
              },
              {
                "scope": "text.markdown.notes.tag",
                "settings": { "fontStyle": "italic" }
              }
            ]
          }
        }
      }
      

      Inspect the scope using the command "Developer: Inspect Editor Tokens and Scopes"

  3. Jul 2021
    1. body script, body style {

      This doesn't work well with scripts (and style elements) injected by the Hypothesis bookmarklet or the Wayback Machine's toolbar. On that note, it's pretty poor hygiene on their part to (a) inject this stuff in the body to begin with, and (b) not include at the very least a class attribute clearly defining the origin/role of the injected content. As I described elsewhere:

      set the class on the injected element to an abbreviated address like <style class="example.org/sidebar/2.4/injected-content/">. And then drop a page there explaining the purpose and requirements (read: assumptions) of your injected element. This is virtually guaranteed not to conflict with any other class use (e.g. CSS rules in applied style sheets), and it makes it easier for other add-ons (or the page author or end user) to avoid conflicts with you.

    2. * Monospace fonts always render at 80% of normal body text for some * reason that I don't understand but is still annoying all the same.

      Dealing with it this way is a mistake. The only reasonable thing to do is to tell the user to adjust their browser's default font settings or deal with it. (This seems to only affect Firefox's default UA stylesheet/preferences, not Chrome.)

      Check out how the most recent iteration of the w2g streamline "client" https://graph.5apps.com/LP/streamline approaches styling.

  4. Jun 2021
    1. We’ve broken our project up into three different types of packages: apps which are preact apps intended to be bundled and deployed somewhere, modules which are plain npm packages for node/browsers and do not bundle their dependencies, and workers which are either Worker or ServiceWorker scripts entirely bundled up with no imports or exports. We don’t have to keep these three types of packages separated, but it helps us navigate around.
    1. Rather than write new tooling we decided to take advantage of tooling we had in place for our unit tests. Our unit tests already used FactoryBot, a test data generation library, for building up test datasets for a variety of test scenarios. Plus, we had already built up a nice suite of helpers that we coud re-use. By using tools and libraries already a part of the backend technology’s ecosystem we were able to spend less time building additional tooling. We had less code to maintain because of this and more time to work on solving our customer’s pain points.
    1. That means if an attacker can inject some JavaScript code that runs on the web app’s domain, they can steal all the data in localStorage. The same is true for any third-party JavaScript libraries used by the web app. Indeed, any sensitive data stored in localStorage can be compromised by JavaScript. In particular, if an attacker is able to snag an API token, then they can access the API masquerading as an authenticated user.
    1. One of the consequences (although arguably not the primary motivation) of DRY is that you tend to end up with chunks of complex code expressed once, with simpler code referencing it throughout the codebase. I can't speak for anyone else, but I consider it a win if I can reduce repetition and tuck it away in some framework or initialisation code. Having a single accessor definition for a commonly used accessor makes me happy - and the new Object class code can be tested to hell and back. The upshot is more beautiful, readable code.

      new tag?:

      • extract reusable functions to reduce duplication / allow elegant patterns elsewhere
  5. May 2021
    1. Article D511-51Création Décret n°2009-553 du 15 mai 2009 - art.La commission académique est présidée par le recteur ou son représentant. Elle comprend en outre cinq membres : 1° Un inspecteur d'académie, directeur des services départementaux de l'éducation nationale ; 2° Un chef d'établissement ; 3° Un professeur ; 4° Deux représentants des parents d'élèves. Les membres autres que le président sont nommés pour deux ans par le recteur ou son représentant. Un suppléant est nommé dans les mêmes conditions pour chacun des membres de la commission, à l'exception de son président. Pour la désignation des représentants des parents d'élèves, le recteur recueille les propositions des associations représentées au conseil académique de l'éducation nationale.Décret n° 2009-627 du 6 juin 2009 article 1 : Les dispositions réglementaires instituant les commissions administratives à caractère consultatif dont la liste est annexée au présent décret sont prorogées pour une durée de cinq ans (Commission académique d'appel).
  6. Apr 2021
    1. “Who cares? Let’s just go with the style-guide” — to which my response is that caring about the details is in the heart of much of our doings. Yes, this is not a major issue; def self.method is not even a code smell. Actually, that whole debate is on the verge of being incidental. Yet the learning process and the gained knowledge involved in understanding each choice is alone worth the discussion. Furthermore, I believe that the class << self notation echoes a better, more stable understanding of Ruby and Object Orientation in Ruby. Lastly, remember that style-guides may change or be altered (carefully, though!).
    2. Yet, it certainly is important to make the proper choices when picking up style. Similarly to fashion, code style reflects our credo as developers, our values and philosophy. In order to make an informed decision, it’s mandatory to understand the issue at stake well. We all have defined class methods many times, but do we really know how do they work?
    1. Quelques textesArticle R. 421-46 du code de l’éducation«Le comité d'éducation à la santé et à la citoyenneté réunit, sous la présidence du chefd'établissement, les personnels d'éducation, sociaux et de santé de l'établissement et desreprésentants des personnels enseignants, des parents et des élèves, désignés par le chefd'établissement sur proposition des membres du conseil d'administration appartenant à leurscatégories respectives, ainsi que les représentants de la commune et de la collectivitéterritoriale de rattachement au sein de ce conseil. En fonction des sujets traités, il peutassocier à ses travaux toute personne dont il estime l'avis utile»
  7. Mar 2021
    1. Effacement des sanctions et amnistieLes sanctions, même assorties du sursis à leur exécution, sont inscrites au dossier administratif de l'élève. L'avertissementest effacé du dossier administratif de l'élève à l'issue de l'année scolaire, le blâme et la mesure de responsabilisationsont effacés du dossier administratif de l’élève à l’issue de l’année suivant celle qui a suivi le prononcé de la sanction. Les autres sanctions, hormis l'exclusion définitive, sont effacées du dossier administratif de l'élève à l’issue de la deuxième année suivant celle du prononcé de la sanction.Toutefois, un élève peut demander(même s’il est mineur)l'effacement des sanctions inscrites, y compris l’exclusion définitive, dans son dossier administratif lorsqu'il change d'établissement(art R511-13).Les sanctions, y compris l’exclusion définitive, sont effacées du dossier administratif de l'élève au terme de sa scolarité dans le second degré (art R511-13).
    2. Les nouvelles dispositions émanant du décret n°2019-906 prévoient que le Conseil d’Administration de l’établissement doit désormais établir, à partir des enquêtes trimestriellessur les sanctions, un rapport relatif au fonctionnement pédagogique et des conditions matérielles de fonctionnement dont une partie est consacrée au bilan des décisions rendues en matière disciplinaire, élaboré à partir du registre des sanctions de l’établissement, et des suites données par le chef d’établissement aux demandes écrites de saisine du conseil de discipline émanant d’un membre de la communauté éducative
    3. Le règlement intérieur doit désormais prévoir les mesures de prévention, de responsabilisation et d’accompagnement pour les élèves ayant fait l’objet d’une exclusion temporaire (article R 421-5):«... prévoit les modalités de mise en œuvre des mesures de prévention, de responsabilisation et d'accompagnement, notamment lorsqu'elles font suite à la réintégration d'un élève exclu temporairement pour des faits de violence.»
    1. here is my set of best practices.I review libraries before adding them to my project. This involves skimming the code or reading it in its entirety if short, skimming the list of its dependencies, and making some quality judgements on liveliness, reliability, and maintainability in case I need to fix things myself. Note that length isn't a factor on its own, but may figure into some of these other estimates. I have on occasion pasted short modules directly into my code because I didn't think their recursive dependencies were justified.I then pin the library version and all of its dependencies with npm-shrinkwrap.Periodically, or when I need specific changes, I use npm-check to review updates. Here, I actually do look at all the changes since my pinned version, through a combination of change and commit logs. I make the call on whether the fixes and improvements outweigh the risk of updating; usually the changes are trivial and the answer is yes, so I update, shrinkwrap, skim the diff, done.I prefer not to pull in dependencies at deploy time, since I don't need the headache of github or npm being down when I need to deploy, and production machines may not have external internet access, let alone toolchains for compiling binary modules. Npm-pack followed by npm-install of the tarball is your friend here, and gets you pretty close to 100% reproducible deploys and rollbacks.This list intentionally has lots of judgement calls and few absolute rules. I don't follow all of them for all of my projects, but it is what I would consider a reasonable process for things that matter.
    1. The only place I can find it is in the sprockets-rails gem. javascript_include_tag calls this: def find_debug_asset(path) if asset = find_asset(path, pipeline: :debug) raise_unless_precompiled_asset asset.logical_path.sub('.debug', '') asset end end
  8. Feb 2021
    1. To understand this helper, you should understand that every step invocation calls Output() for you behind the scenes. The following DSL use is identical to the one [above]. class Execute < Trailblazer::Activity::Railway step :find_provider, Output(Trailblazer::Activity::Left, :failure) => Track(:failure), Output(Trailblazer::Activity::Right, :success) => Track(:success)
    1. While you could program this little piece of logic and flow yourself using a bunch of Ruby methods along with a considerable amount of ifs and elses, and maybe elsif, if you’re feeling fancy, a Trailblazer activity provides you a simple API for creating such flow without having to write and maintain any control code. It is an abstraction.
    1. note that TRB source code modifications are not proprietary

      In other words, you can build on this software in your proprietary software but can't change the Trailblazer source unless you're willing to contribute it back.

      loophole: I wonder if this will actually just push people to move their code -- which at the core is/would be a direction modification to the source code - out to a separate module. That's so easy to do with Ruby, so this restriction hardly seems like it would have any effect on encouraging contributions.

    1. Trailblazer extends the conventional MVC stack in Rails. Keep in mind that adding layers doesn't necessarily mean adding more code and complexity. The opposite is the case: Controller, view and model become lean endpoints for HTTP, rendering and persistence. Redundant code gets eliminated by putting very little application code into the right layer.
    1. Why is all this interaction code better? Two reasons: One, you can reuse the FindAccount interaction in other places, like your API controller or a Resque task. And two, if you want to change how accounts are found, you only have to change one place.

      Pretty weak arguments though...

      1. We could just as easily used a plain object or module to extract this for easy reuse and having it in only one place (avoiding duplication).
    1. 2.L’article 40 du code de procédure pénaleL’article 40 du code de procédure pénale, déjà évoqué, dispose que «toute autorité constituée, tout officier public ou fonctionnaire qui, dans l’exercice de ses fonctions, acquiert la connaissance d’un crime ou d’un délit est tenu d’en donner avis sans délai au procureur de la République et de transmettre à ce magistrat tous les renseignements, procès-verbaux et actes qui y sont relatifs». Cet article a donc pour effet de délier du secret professionnel les officiers publics ou les fonctionnaires en leur imposant de dénoncer au procureur de la République les crimes ou délits dont ils ont acquis la connaissance dans l’exercice de leurs fonctions. Cetteobligation de dénonciation s’impose à tous les fonctionnaires et concerne toutes les infractions. Un médecin de PMI, un médecin scolaire ou un médecin hospitalier peut donc être concerné par cette obligation. Cependant, le non-respect de cette obligation de dénonciation n’est pas pénalement sanctionné, ce qui en limite considérablement la portée.
  9. Jan 2021
  10. Dec 2020
    1. Treating the web as a compile target has a lot of implications, many negative. For example “view source” is a beloved feature of the web that’s an important part of its history and especially useful for learning, but Svelte’s compiled output is much harder to follow than its source. Source maps, which Svelte uses to map its web language outputs back to its source language, have limitations.
  11. Nov 2020
    1. When you’re implementing a bad plan yourself, instead of having a mentor bail you out by fixing it, a few really useful things happen:You learn many more details about why it was a bad idea. If someone else tells you your plan is bad, they’ll probably list the top two or three reasons. By actually following through, you’ll also get to learn reasons 4–1,217.You spend about 100x more time thinking about how you’ll avoid ever making that type of mistake again, i.e., digesting what you’ve learned and integrating it into your overall decision-making.By watching my mistakes and successes play out well or badly over the course of months, I was able to build much more detailed, precise models about what does and doesn’t matter for long-term codebase health. Eventually, that let me make architectural decisions with much more conviction.

      There's a benefit to embarking on a challenge without a more experienced authority to bail you out.

      • You learn many more details about why it's a bad idea.
      • The lessons you learn in terms of how to avoid the mistakes you made stick with you longer

      (I would add that the experience is more visceral, it activates more modalities in your brain, and you remember it much more clearly.)

      These types of experiences result in what the author calls more "detailed, precise models". For me they result in a sort of intuition.

  12. Oct 2020
    1. export const validationSchema = {
        field: {
          account: [Validators.required.validator, iban.validator, ibanBlackList],
          name: [Validators.required.validator],
          integerAmount: [
      

      Able to update this schema on the fly, with:

        React.useEffect(() => {
          getDisabledCountryIBANCollection().then(countries => {
            const newValidationSchema = {
              ...validationSchema,
              field: {
                ...validationSchema.field,
                account: [
                  ...validationSchema.field.account,
                  {
                    validator: countryBlackList,
                    customArgs: {
                      countries,
                    },
                  },
                ],
              },
            };
      
            formValidation.updateValidationSchema(newValidationSchema);
          });
        }, []);
      
    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.