Write a function spell() that takes a keyboard layout as a 2D array and an input string. The function will output a list of instructions that will traverse the keyboard to print the input string.
The instructions are:
U: upD: downL: left
| /* | |
| See https://github.com/ReactiveX/rxjs/blob/5.0.2/src/util/subscribeToResult.ts#L70-L77 | |
| And also: | |
| - https://github.com/ReactiveX/rxjs/blob/5.0.2/src/Observable.ts | |
| - https://github.com/ReactiveX/rxjs/blob/5.0.2/src/symbol/observable.ts | |
| */ | |
| if (result instanceof Observable) { | |
| if (result._isScalar) { | |
| destination.next((<any>result).value); | |
| destination.complete(); |
| # | |
| # Automatically generated file; DO NOT EDIT. | |
| # Entware Configuration | |
| # | |
| CONFIG_MODULES=y | |
| CONFIG_HAVE_DOT_CONFIG=y | |
| CONFIG_HOST_OS_LINUX=y | |
| # CONFIG_HOST_OS_MACOS is not set | |
| # CONFIG_TARGET_aarch64_3_10 is not set | |
| # CONFIG_TARGET_armv7_3_2 is not set |
| #!/bin/bash | |
| echo Analyse a given Syncthing versions folder and display the disk space used by files grouped by dates. | |
| targetDir=$( realpath "$1" ) | |
| echo Target directory: "'"$targetDir"'" | |
| echo Start time: $(date) | |
| if ! [[ -d "$targetDir" ]]; then | |
| echo "Unable to access target folder: '$targetDir'" | |
| exit 1 | |
| fi |
This is useful in case you've mistakenly deleted a very large folder and it takes forever to restore the files via "file copy". In this case, we're literally MOVING the old version files to the target location! So be careful, this cannot be reverted!
Usage:
./syncthing-restore-version.sh srcFolder dstFolder
| // Automatically click "Yes" to Youtube Music's "Are you still listening prompts" | |
| // Use your browser's debugging console (https://www.w3schools.com/js/js_debugging.asp) to execute this code. | |
| setInterval(function() { | |
| var button = document.querySelector('.ytmusic-you-there-renderer #button'); | |
| button && button.click(); | |
| }, 500) |
| 1,2c1,6 | |
| < // NOTE: This file is autogenerated. Do not modify. | |
| < // See packages/babel-types/scripts/generators/flow.js for script used. | |
| --- | |
| > /** | |
| > * NOTE: This file is autogenerated. Do not modify. | |
| > * See packages/babel-types/scripts/generators/flow.js for script used. | |
| > * | |
| > * @flow strict | |
| > */ |
| diff --git a/babel.config.js b/babel.config.js | |
| index 56ee9e1..694d1fc 100644 | |
| --- a/babel.config.js | |
| +++ b/babel.config.js | |
| @@ -7,7 +7,13 @@ module.exports = function(api) { | |
| 'module:metro-react-native-babel-preset', | |
| ], | |
| plugins: [ | |
| - 'babel-plugin-fbt', 'babel-plugin-fbt-runtime', | |
| + [ |
| # # How to use? | |
| # Put a breakpoint in angular.module() and when in there, | |
| # Save the `modules` variable on the window object like `window.modules = modules` | |
| # Then load the script below | |
| # Then invoke: `angular.toJson(analyseModules(modules), true)` | |
| analyseModule = (module) -> | |
| module.map (provider) -> | |
| [providerType, type, definition] = provider |
| /** | |
| * $q.allSettled returns a promise that is fulfilled with an array of promise state snapshots, | |
| * but only after all the original promises have settled, i.e. become either fulfilled or rejected. | |
| * | |
| * This method is often used in order to execute a number of operations concurrently and be | |
| * notified when they all finish, regardless of success or failure. | |
| * | |
| * @param promises array or object of promises | |
| * @returns {Promise} when resolved will contain an an array or object of resolved or rejected promises. | |
| * A resolved promise have the form { status: "fulfilled", value: value }. A rejected promise will have |