Inspired by article How to Handle Multiple Git Accounts
Work with multiple SSH keys for authorization and commit signing.
ssh-keygen -t ed25519 -C "firstname@work-email.com"
Inspired by article How to Handle Multiple Git Accounts
Work with multiple SSH keys for authorization and commit signing.
ssh-keygen -t ed25519 -C "firstname@work-email.com"
# Github CLI commands to work with dependabot PRs | |
# List dependabot PRs that need review | |
gh pr list -l dependencies --search "status:success review:none" | |
gh pr list -A app/dependabot --search "status:success review:none" | |
# Instruct dependabot to merge all reviewed PRs, oldest first | |
gh pr list \ | |
-A app/dependabot \ | |
--search "status:success review:approved" \ |
# DO NOT PUT THE WIFI DONGLE IN THE DEVICE BEFORE MENTIONED EXPLICITLY BELOW | |
# Brief note, after this the UI will not show the usb dongle, | |
# the wifi does work and I get an IP address, so all works, | |
# but I don't go into detail of making it show on the Raspbian UI. | |
# (for this purpose I don't care about the UI) | |
# For the use of this I connected my device to an ethernet connection and through the Router could see the IP which I can SSH into. | |
## STEP 1: Prepare machine and install packages needed |
! Remove Facebook sponsored posts | |
!facebook.com##div[data-pagelet^="FeedUnit"]:has(a[role^=button]:has(> span > span:matches-css(position: relative):has-text(S))) | |
!facebook.com##div[data-pagelet^="FeedUnit"]:has(div[role^=button]:has(> span > span:matches-css(position: relative):has-text(S))) | |
!facebook.com##div[data-pagelet^="FeedUnit"]:has(a[aria-label="Sponsored"]) | |
facebook.com##div[role="feed"] div > span > span > a > span:upward(div[role="feed"] > div) | |
! Remove Facebook "Suggested for You" | |
!facebook.com##div[data-pagelet^="FeedUnit"]:has(div[role="article"]:has(span > span > span:has-text(Suggested for You))) | |
! Remove Facebook "New Message" | |
facebook.com##span:has(div[aria-label="New Message"]) | |
! Remove Facebook "Create Room" |
class LiveEvent<T> : MediatorLiveData<T>() { | |
private val observers = ConcurrentHashMap<LifecycleOwner, MutableSet<ObserverWrapper<T>>>() | |
@MainThread | |
override fun observe(owner: LifecycleOwner, observer: Observer<T>) { | |
val wrapper = ObserverWrapper(observer) | |
val set = observers[owner] | |
set?.apply { | |
add(wrapper) |
/* | |
* Copyright 2017 Google Inc. | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file | |
* except in compliance with the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software distributed under the | |
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
# Some options that may or may not be applicable to you | |
[user] | |
name = Zach Olivare | |
email = zach@olivare.net | |
[push] | |
default = upstream | |
[core] | |
autocrlf = input # Force replacing CRLF line endings with LF | |
ignorecase = false | |
# editor = code --wait |
/** | |
_____ _____ _ | |
| __ \ / ____| | | | |
| | | | ___| | _ __ _ _ _ __ | |_ ___ _ __ | |
| | | |/ _ \ | | '__| | | | '_ \| __/ _ \| '__| | |
| |__| | __/ |____| | | |_| | |_) | || (_) | | | |
|_____/ \___|\_____|_| \__, | .__/ \__\___/|_| | |
__/ | | | |
|___/|_| | |
*/ |
/* | |
* Copyright 2016 Google Inc. | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software |
#include <SoftwareSerial.h> | |
#include <ESP8266WiFi.h> | |
#include <ESP8266mDNS.h> | |
#include <ArduinoOTA.h> | |
#include <SoftwareSerial.h> | |
#include <Ticker.h> | |
const char* ssid = "Bembun"; | |
const char* password = "ananasakaama"; |