20,173 Matching Annotations
  1. Aug 2022
    1. Mermaid allows even non-programmers to easily create detailed and diagrams through the Mermaid Live Editor.
    2. Diagramming and documentation costs precious developer time and gets outdated quickly. But not having diagrams or docs ruins productivity and hurts organizational learning. Mermaid addresses this problem by enabling users to create easily modifiable diagrams, it can also be made part of production scripts (and other pieces of code).
    1. a hyponym is in a type-of relationship with its hypernym
    2. hyponym denoting a subtype
    3. hypernym or hyperonym (sometimes called umbrella term or blanket term[1][2][3][4]) denoting a supertype
    4. In other words, the semantic field of the hyponym is included within that of the hypernym.
    1. We definitely want to have a way to monitor this "queue" as a follow-up with a Prometheus counter. This counter could be used to create alerts in case the queue grows significantly, for example: the scheduled (every 1 minute) worker cannot keep up with the deletions.
    2. A review from the Technical Writing team before you merge is recommended. Reviews can happen after you merge.
    3. Each commit should meet the following criteria: Have a well-written commit message. Has all tests passing when used on its own (e.g. when using git checkout SHA). Can be reverted on its own without also requiring the revert of commit that came before it. Is small enough that it can be reviewed in isolation in under 30 minutes or so.
    1. Even if the browser ignores the closing slash in void tags, it's good practice to close it because: 1. in frameworks like react js if these are not close, it creates an error 2. if you want your document to be readable by an XML parser then must close all elements
    1. I wrote my own OAuth 2 implementation in the end, it actually wasn't that hard once you understand the spec.
    2. We want to use the Doorkeeper gem to implement an OAuth provider in our app. However, we use 2 factor auth in the login process, so we need a way to modify the password grant to accept email, password and a 2fa token (and respond with an appropriate error if the 2fa token is required and missing).
  2. www.pingidentity.com www.pingidentity.com
    1. Diversity, Equity & Inclusion Diversity enables the innovation and creativity needed to move the world forward. We are committed to creating an inclusive culture that is welcoming, respectful and provides equal opportunities for all.
    1. 2) The kanji are organized in chapters with wide themes (respectively: world, food, animals, people, body, spirit, power, learn, tools, places, journey). These chapters are in turn divided up into mini-themes dealing with each chapter (for example, different animals and ideas associated with them). This helped me a lot in mentally organizing kanji and their meanings.
    1. Water your lawn deeply about once a week, or when the grass looks slightly wilted, providing about an inch (2.5 cm.) of water each time. Avoid frequent, shallow irrigation which results in weak roots that can’t tolerate summer heat. Don’t water if the lawn doesn’t need it.

      watering

    1. Roots growing along the surface of the soil is equivalent to an exposed nerve: they are not protected from the environment.
    1. Water deeply but only when the grass shows signs of stress; deep, infrequent irrigation creates strong, drought-tolerant roots. Never water every day; watering too frequently encourages shallow, weak roots and unhealthy grass. For a healthy lawn and sturdy roots, wait as long as possible before waterin

      watering

    1. If the application credentials check out, the authorization server returns an access token to the application. Now the application is authorized to use its own account.
    1. I don’t like that when I read the Basecamp news and had a visceral reaction, my first thought was, “Will my commit access be revoked if I share what’s on my mind?” It’s incredibly unclear what mechanisms exist to remove commit access from someone against their will, and also unclear what recourse those people can take to get it re-instated.
    2. It can be exhausting to backchannel and “find buy-in” for every little thing.

      annotation meta: may need new tag: the need to “find buy-in” for every little thing.

    3. The funny thing is that I didn’t even realize that’s what I was doing. I loved a system driven by programmers because it “made sense to me” about getting changes in.
    4. I loved that if I “did the work”, then I got the benefits.
    5. I loved that if I “did the work”, then I got the benefits. If there’s something in Rails I didn’t like, I felt empowered to change it.
    1. The older you are, the harder it is to get hired; despite laws and expectations to the contrary, unconscious, and even conscious, age discrimination does exist. When you have more experience, you will often be interviewed by people who in the normal course of circumstances would be reporting to you.
    1. Indeed, judging from the accounts of the many employees who have now gone on record about this issue, the “debates” that have been happening at Basecamp are precisely the kinds of conversations that happen when you have a diverse workforce. Different issues affect different people differently, and being able to speak freely about those differences is the hallmark of a healthy culture. But by framing these discussions as “acrimonious debates” rather than “challenging conversations,” Hansson has positioned himself not as a peacemaker, but as a tyrant hell-bent on taking his toys and going home; shutting down discussions rather than holding space for growth and discovery.
    2. If Hansson and Fried had been able to tolerate the dissenting opinions of their own employees, they might have been in for a difficult few weeks or months, but the long-term benefit of cultivating an atmosphere of trust would have been invaluable. Instead, they decided to make their tantrum international news. In doing so, they have all but dismantled the positive reputation they spent more than a decade carefully crafting.
    1. You are not currently logged in. This can be for a number of reasons: The system is temporarily unavailable You haven't logged into the system yet The Username or Password provided is not valid You may not have the required access level You didn't do anything for 30 minutes

      unusual to explain why "You are not currently logged in" -- esp. when you first land on a page and of course haven't even signed in yet.

      Would be more common to explain how you got signed out (assuming you were at one time signed in).

    1. Epics, issues, requirements, and others all have similar but just subtle enough differences in common interactions that the user needs to hold a complicated mental model of how they each behave.
    2. Issues are not extensible enough to support all of the emerging jobs they need to facilitate.
    3. Issues are starting to become cluttered as we add more capabilities to them, and they are not perfect
    4. Using labels to show issue types is cumbersome and makes reporting views more complex.
    5. This leads to duplicated effort and ultimately small differences between common interactions.

      How does it cause that?

    6. New functionality is typically implemented with first class objects that import behavior from issues via shared concerns.

      How does this cause problems?

    7. There is not a coherent interaction model across different types of issues because we use labels for this.
    8. Here are some problems with current issues usage and why we are looking into work items:
    9. WI model will be built on top of the existing Issue model and we’ll gradually migrate Issue model code to the WI model.
    10. To avoid confusion and ensure communication is efficient, we will use the following terms exclusively when discussing work items.
    11. Example of misuse
    1. View tasks in issues, in the Child items section.
    2. The task is not deleted, but the two are no longer connected. It’s not possible to connect them again.

      Should be possible!

    1. Process the log file to determine the spread of data: cat /tmp/sslparams.log | cut -d ' ' -f 2,2 | sort | uniq -c | sort -rn | perl -ane 'printf "%30s %s\n", $F[1], "="x$F[0];'
    1. Replace 'log' with 'clock'; do you think it should be "clockin" because you aren't "clocking" anything? Plus, if 'login' was a verb, you'd not be logging in, but logining. Eww. Or, you'd have just logined instead of logged in.
    2. I feel very happy about them indeed because they take me to the destinations they promise (they're all nouns). Login doesn't take me to my login, which makes me sad. It does take me to a place where I can log in, however.
    1. oh I'm fine with defective verbs. I'm not fine with inconsistency, though. Make it "Signup and login", and make it that on every SE page everywhere ever, and you can countin me.
    1. "you can verb any noun". :) Though, comparing "ssh into a workstation" to "login to host.com", where "log in" exists, it's a bit like saying "entrance the building" when "enter the building" already works
    2. Login is a noun, the same as breakup (suffer a breakup), backup (keep backups safe), spinoff (a Star Wars spinoff), makeup, letdown,
    3. Sure, you can try to solve that problem by using a one-word alternative for any multi-word phrase, but that's not always possible. Instead of relying on luck, being at the mercy of copy writers, and artificially limited to only allowing one-word items, IMHO you would be better off finding a general design solution that works even for multi-word phrases. Adjusting the letter-spacing and margin between items in your list isn't that hard
    4. Given that so much of the web environment isn't being written by writers who care, I'm increasingly seeing 'login' used as a verb.
    1. Don’t make claims unless you can cite documentation, formalized guidelines, and coding examples to back those claims up. People need to know why they are being asked to make a change, and another developer’s personal preference isn’t a good enough argument.
    1. OAuth, or Open Authorization is a protocol for users to authorize websites to access their information without handing over a password.
    1. It would completely change how I view mint.com. It would become a powerful mechanism for opening up my own access to my own financial data which is currently being locked away by my banks, credit card companies and other providers. All I get is a crappy UI from those places. Mint's UI is much better, but an API would completely change the game.
    1. Expenses don’t get posted to your accounts instantly.
    2. I would like something to log and tag my spending instantly.
    3. Following. I haven’t found anything in years. I’m planning on building my own scraper for my bank this winter if I can’t find anything by then
    4. My main issue with mint was having to correct transactions multiple times. Do it one day, do it again the next, then it finally sticks.
    1. This question is locked and replying has been disabled.

      don't lock people's threads!

    2. I also wanted to include the link format in case others had trouble locating the exact settings screen; hopefully this link format works for others.1) https://admin.google.com/ [YOUR DOMAIN HERE] /AdminHome?fral=1#MobileSettings:section=setup&flyout=setup (replace [YOUR DOMAIN HERE] with your own, no spaces)

      providing the link, nice!

    3.         4a. There will be a blue link there that says 'Set up Google Management   -Click ItStep 5. (your header will now say Mobile Management) Scroll down until you see the word 'Custom' it should have a blue dot next to itStep 6. You should see the word 'Android' and it should say 'Basic' to the right of it. There's a drop down box/arrow there, click it and select 'Unmanaged' and that will clear up the lock screen issues.

      solution

    4. Isn't there some tech support at Google to cancel the requirement to enter a pinfor a screen unlock?  I've been having to do this dozens of times a day for monthsand it is driving me crazy!
    5. How do I turn off the requirement to have a lock screen?Today, I'm suddenly unable to use any Google related apps on my phone, because I am now REQUIRED to set up a lock screen on my phone. I get that you want to be super-secure for businesses using enterprise devices. I am not a business. I'm some guy who just happens to have a domain name. My only "employee" is me. I have a two email addresses: My real first name, and the shorter version that most people call me. I do NOT want a lock screen on my phone. I don't want to be forced to give myself permission to use apps on my phone. Why am I now required to add all this bull$%^? Nobody is hacking my interwebs. Give me a f#$%^& break! I don't need a lock screen. I've been using this account for everything (gmail, youtube, etc) for over five years now. I'm not interested in deleting it and going back to my gmail.com account. I'm also not interested in being forced to click multiple times just to use my phone. Let me disable it.So, how do I turn this garbage off?
    1. URI::HTTPS.build(host: AUTH0_CONFIG['auth0_domain'], path: '/v2/logout', query: to_query(request_params)).to_s
    2. def to_query(hash) hash.map { |k, v| "#{k}=#{CGI.escape(v)}" unless v.nil? }.reject(&:nil?).join('&') end
    1. A related technique is git submodules, but they come with annoying caveats (for example people who clone your repository won't clone the submodules unless they call git clone --recursive),
    2. git-subtrac (from the author of the earlier git-subtree) seems to solve some of the problems with git submodules.
    3. # Do this the first time: $ git remote add -f -t master --no-tags gitgit https://github.com/git/git.git $ git subtree add --squash --prefix=third_party/git gitgit/master # In future, you can merge in additional changes as follows: $ git subtree pull --squash --prefix=third_party/git gitgit/master # And you can push changes back upstream as follows: $ git subtree push --prefix=third_party/git gitgit/master # Or possibly (not sure what the difference is): $ git subtree push --squash --prefix=third_party/git gitgit/master
    1. I intend to keep it around and maybe fix up minor things here and there if needed, but don't really have any plans for new features at this point. I think it's great to give people the option to choose the Go port if the advanced features is what they're after.
    1. nodemon will automatically know how to run the script even though out of the box support for processing scripts

      even though out of the box support for processing scripts ?

    1. depended on about 3 million projects

      depended on by about 3 million projects

    Tags

    Annotators

    URL

    1. then two different listeners/renderers switching magically between each other based on the header being present or not, without the end user being informed or clear about this
    2. Thus my docs recommendation of public function beforeFilter(Event $event) // do not render out the now inconsistent one for is(json) if (!$this->request->is('jsonapi')) { throw new NotFoundException('Invalid access, use application/vnd.api+json for Content-Type and Accept.'); } } to specifically only whitelist the desired jsonapi for the general use case.
    3. A default baked app has all those included. Thats why I am saying this - it is by default an issue we should and need to address :)
    1. If you're using JavaScript for writing to a HTML Attribute, look at the .setAttribute and [attribute] methods which will automatically HTML Attribute Encode. Those are Safe Sinks as long as the attribute name is hardcoded and innocuous, like id or class.
    2. If you're using JavaScript for writing to HTML, look at the .textContent attribute as it is a Safe Sink and will automatically HTML Entity Encode.
    1. In a clickjacking attack, the attacker creates a malicious website in which it loads the authorization server URL in a transparent iframe above the attacker’s web page. The attacker’s web page is stacked below the iframe, and has some innocuous-looking buttons or links, placed very carefully to be directly under the authorization server’s confirmation button. When the user clicks the misleading visible button, they are actually clicking the invisible button on the authorization page, thereby granting access to the attacker’s application. This allows the attacker to trick the user into granting access without their knowledge.

      Maybe browsers should prevent transparent iframes?! Most people would never suspect this is even possible.

    1. it's also one of the smartest games I've ever played and I can't recommend it enough if you enjoy system-driven narrative, which it handles exquisitely.

      .

    2. The Quiet Sleep has 'cult classic' written all over it. It uses strategy, management, and tower defence mechanics to take you inside someone's head in a way that I don't think has ever been done before. It's really a bold experiment, and you'll be glad you played it.

      .

    1. Well I would like to express my huge concern regarding the withdrawal of support for the SMB 1.0 network protocol in Windows 11, and future versions of the Microsoft OS, as there are many, many users who need to make use of this communication protocol, especially users households, since there are hundreds of thousands of products that use the embedded Linux operating system on devices that still use the SMB 1.0 protocol, and many devices, such as media players and NAS, that have been discontinued and companies no longer update their firmware.
    1. With Windows 10 version 1511, support for SMBv1 and thus NetBIOS device discovery was disabled by default. Depending on the actual edition, later versions of Windows starting from version 1709 ("Fall Creators Update") do not allow the installation of the SMBv1 client anymore. This causes hosts running Samba not to be listed in the Explorer's "Network (Neighborhood)" views.

      .

    2. Since NetBIOS discovery is not supported by Windows anymore, wsdd makes hosts to appear in Windows again using the Web Service Discovery method.

      .

    1. Windows 10 if configured the way Microsoft wants you to configure it by default will never be able to "discover" your Ubuntu samba shares.

      .

    1. to see the changes the commands make. Among the commands, I'd like to use useradd, userdel, usermod, groupadd, groupmod, & groupdel. And, as I'm guessing you are understanding, these are just the ones I've read about today. If I can get away without modifying any files directly, I'd rather be able to do that because it means I'll have a strong grasp of the commands, and I'd be able to learn the editing of smb.conf (& the other files) by seeing how it/they change as I use the commands.

      .

    2. I'm trying to learn enough about Samba that I'm able to do complete administration from the command line. That's a big task, I know, like learning DOS when all I know is French (I know far more DOS than French, but that's the idea).

      .

    3. I have definitely looked at some of the Samba.org instructions. The problem is mine - I'm either too busy dealing with the kids in the morning, or too tired in the evenings, to be able to - within my realm of patience - find what I need, implement it, test it, and confirm that it works or try something else. Finding it, and recognizing that I've found it, is usually the hard part. That's why a book does me worlds of good - I can read it during the work day when I'm taking a few minutes break, and it's uninterrupted concentration time.

      .

    1. The custom title bar has been a success on Windows, but the customer response on Linux suggests otherwise. Based on feedback, we have decided to make this setting opt-in on Linux and leave the native title bar as the default. The custom title bar provides many benefits including great theming support and better accessibility through keyboard navigation and screen readers. Unfortunately, these benefits do not translate as well to the Linux platform. Linux has a variety of desktop environments and window managers that can make the VS Code theming look foreign to users.
    1. If you insist on having the user id in the version table, you can do this: ActiveRecord::Base.transaction do @user.save! @user.versions.last.update_attributes!(:whodunnit => @user.id) end

      Not ideal... but we can't set it any earlier because we don't know the id until after the save

    1. Wouldn't it be easier to do a squash merge instead? git merge --squash [branch] Like comment: Like comment: 1 like Like Comment button Reply Collapse Expand Brack Carmony Brack Carmony Brack Carmony Follow Joined Jan 3, 2022 • Jan 3 Dropdown menu Copy link Hide Report abuse It would, if the assumption that every commit in the chain is what you want, this lets you keep the power of the rebase available if you want to cherry-pick commits or any of the other crazy features it seems to let you use.
    1. Would be more of a neutral rating for me but seeing that I have only two options (or no review at all), I'll go with the upvote for encouragement as they do appear to be putting some effort into the game.

      .

    1. This is actually the most correct answer, because it explains why people (like me) are suddenly seeing this warning after nearly a decade of using git. However,it would be useful if some guidance were given on the options offered. for example, pointing out that setting pull.ff to "only" doesn't prevent you doing a "pull --rebase" to override it.
    2. I appreciate the time and effort you put into your answer, but frankly this is still completely incomprehensible to me.
    3. one should not upgrade a production environment without extensive testing. I prefer to not upgrade prod at all. Instead, I create a new instance with latest everything, host my apps there, test everything out, and then make it production.
    1. Beyond memory leaks, it's also really useful to be able to re-run a test many times to help with tracking down intermittence failure and race conditions.
    2. I don't understand the hesitation here to accept a really useful addition to rspec. Maintenance burden. Forseen internal changes required to do it. Unforseen internal changes required to do it. Formatter changes to handle new output status for a spec that passed and failed It's simply not a previously design use case of RSpec. It will be hacky to implement.
    3. We already have a very wide configuration API. The further we expand it the more unwieldy it becomes for users. At this point we generally require new features to be implemented first as extension gems, and then to see support, before considering including them in core.
    4. 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.
    1. You can pass any options to puma via the server setting Capybara.server = :puma, { queue_requests: true }
    2. This very much appears to be a bug or design flaw in puma - The fact that a persistent connection ties up a thread on the chance a request might come over that connection seems like not great behavior. This would really only be an issue when puma is run with no workers (which wouldn't be done in production) but it still seems a little nuts.
    1. "It's difficult because we can't tell people exactly what's allowed and not allowed," said Chris Castelli, a manager for the Department of State Lands. "It's even tougher for law enforcement that gets called out to very heated disputes and doesn't have strict laws they can apply." 
    1. the declaration is statutory

      what does this mean here? what is being clarified or contrasted here? statutory as opposed to what?

    2. The extent of public use varies, with Montana affording the greatest access. Rafters can float and fishermen can wade in rivers that flow through private land so long as they enter from public property. They can even leave the river and walk up to the high-water mark.
    1. I understand that you are bound to specification. And also understand that it could take months to decide wether the specification should be changed.

      .

    1. I thought something like git rev-parse --abbrev-ref origin/HEAD would work, but that just seems to show what the default branch was of the repo it was cloned from, at the time of cloning, provided that the remote we cloned from was named origin.

      good enough for my purposes (local git scripts/aliases)!

      ⟫ cat .git/refs/remotes/origin/HEAD ref: refs/remotes/origin/main

    2. This is a terrific answer! Without something like locks or transactions, we indeed will only ever be able to get an updated-as-of-when-the-repository-just-told-us point of accuracy that gets stale if changed in the time since then
    3. It's a great way to test various limits. When you think about this even more, it's a little mind-bending, as we're trying to impose a global clock ("who is the most up to date") on a system that inherently doesn't have a global clock. When we scale time down to nanoseconds, this affects us in the real world of today: a light-nanosecond is not very far.
    4. Which of these to use depends on the result you want. Note that by the time you get the answer, it may be incorrect (out of date). There is no way to fix this locally. Using some ESP,2 imagine the remote you're contacting is in orbit around Saturn. It takes light about 8 minutes to travel from the sun to Earth, and about 80 to travel from the sun to Saturn, so depending on where we are orbitally, they're 72 to 88 minutes away. Any answer you get back from them will necessarily be over an hour out of date.
    5. When we have our git rev-parse examine our Git repository to view our origin/HEAD, what we see is whatever we have stored in this origin/HEAD. That need not match what is in their HEAD at this time. It might match! It might not.
    6. There are many questions we can ask and answer about branch names. Each one is specific to one particular repository because all branch names are local to that particular repository. Any changes anyone makes in that repository affect only that one repository, at least at the time they make them.

      which assumption? well, people make the assumption that our local repo should know some fact about the remote repo, like its default branch, without actually asking the remote about itself

    7. The main problem here is that the problem itself is a little bit poorly defined.
    8. Exaggeration of System Parameters
    9. Using git remote set-head has the advantage of updating a cached answer, which you can then use for some set period. A direct query with git ls-remote has the advantage of getting a fresh answer and being fairly robust. The git remote show method seems like a compromise between these two that has most of their disadvantages with few of their advantages, so that's the one I would avoid.)
    1. You can use the lsblk command. If the disk is already unlocked, it will display two lines: the device and the mapped device, where the mapped device should be of type crypt. # lsblk -l -n /dev/sdaX sdaX 253:11 0 2G 0 part sdaX_crypt (dm-6) 253:11 0 2G 0 crypt If the disk is not yet unlocked, it will only show the device. # lsblk -l -n /dev/sdaX sdaX 253:11 0 2G 0 part
    1. Bear in mind that lsof doesn't seem to present an easy solution because, once the device is disconnected, the associated names provided by lsof no longer include the name of the disconnected device.
    1. Yes, this happens when luks encrypted device was not cleanly deactivated with cryptsetup close. You can try to remove the mapping using dmsetup remove /dev/mapper/luks-... if you want to avoid rebooting.
    1. We can use the readlink command to resolve relative paths, including symlinks. It uses the -f flag to print the full path:
    1. $0 would be OK in most cases, some exceptions are, for instance, when the script you're executing is aliased (through alias in .bash_profile). You should really use $BASH_SOURCE variable, instead of $0.
    2. Using $0 does not work when the script is run using source script or . script; the name of the script is not available.
    3. MY_PATH=$(cd "$MY_PATH" && pwd) # absolutized and normalized

      scripting: finding absolute path

    1. you can also replicate the bind:this syntax if you please: Wrapper.svelte <script> let root export { root as this } </script> <div bind:this={root} />

      This lets the caller use it like this: <Wrapper bind:this={root} />

      in the same way we can already do this with elements: <div bind:this=

  3. Jul 2022
    1. Patrician IV is an overhauling upgrade to Patrician III; so if you have not played the previous games in the Patrician series, starting with IV is really all you need. Also, the game of Patrician is very straightforward and addicting, so playing previous versions won't offer you anything unseen in Patrician IV.
    2. Onto the game itself.

      onto

    1. Don't worry if your project isn't quite ready for Plug'n'Play just yet! This guide will let you migrate without losing your node_modules folder. Only in a later optional section we will cover how to enable PnP support, and this part will only be recommended, not mandatory. Baby steps!
    1. Process Substitution is something everyone should be using regularly! It is super useful. I do something like vimdiff <(grep WARN log.1 | sort | uniq) <(grep WARN log.2 | sort | uniq) every day.

      underused

    1. Always use a while read construct: find . -name "*.txt" -print0 | while read -d $'\0' file do …code using "$file" done The loop will execute while the find command is executing. Plus, this command will work even if a file name is returned with whitespace in it. And, you won't overflow your command line buffer.