This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { dirname } from 'node:path'; | |
import { fileURLToPath } from 'node:url'; | |
export const getFilename = (meta) => fileURLToPath(meta.url); | |
export const getDirname = (meta) => dirname(getFilename(meta)); | |
const __filename = getFilename(import.meta); | |
const __dirname = getDirname(import.meta); |
Тут перечислены не законы, последние слово всегда за здравым смыслом. Тут перечислены лишь направление, куда надо стремиться. Принципы, которые должны помочь, когда не знаешь, что выбрать.
- Пользователь. Если что-то сильно мешает UX или есть критическая ошибка, то в первую очередь мы спасаем пользователей. Для этого иногда надо взять ответственность на себя, переубедить толпу, написать плохой код.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Handling Errors using async/await | |
* Has to be used inside an async function | |
*/ | |
try { | |
const response = await axios.get('https://your.site/api/v1/bla/ble/bli'); | |
// Success 🎉 | |
console.log(response); | |
} catch (error) { | |
// Error 😨 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##### Перемещение курсора: | |
Ctrl + a — переход в начало строки | |
Ctrl + b — переход на 1 символ назад | |
Ctrl + c — посылает программе SIGINT. Обычно, прерывает текущее задание | |
Ctrl + d — удаляет символ под курсором (аналог delete) | |
Ctrl + e — переход к концу строки | |
Ctrl + f — переход на 1 символ вперёд | |
Ctrl + xx — переходит от текущей позиции курса в начало строки и обратно. | |
Ctrl + p — Предыдущая команда (Стрелка вверх) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function addLetters(s){ | |
var letters = {}; | |
for(var i = 0; i < s.length; i++){ | |
var letter = s[i].toLowerCase(); | |
if(letter != " "){ | |
if(letters[letter]){ | |
letters[letter] += 1; | |
} else { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# opening and closing windows and popovers | |
defaults write -g NSAutomaticWindowAnimationsEnabled -bool false | |
# smooth scrolling | |
defaults write -g NSScrollAnimationEnabled -bool false | |
# showing and hiding sheets, resizing preference windows, zooming windows | |
# float 0 doesn't work | |
defaults write -g NSWindowResizeTime -float 0.001 |
I've done the same process every couple years since 2013 (Mountain Lion, Mavericks, High Sierra, Catalina) and I updated the Gist each time I've done it.
I kinda regret for not using something like Boxen (or anything similar) to automate the process, but TBH I only actually needed to these steps once every couple years...
NewerOlder