Решил сделать переход с MD5 на SHA256
references
на столбец другой таблицы. В таком случае, на последнее должно стоять ограничение уникальности - иначе как понять на какую строку ссылаться. const promises = [
Promise.reject('rejected1'),
Promise.reject('rejected2'),
Promise.resolve('resolved'),
];
1) err => {throw err;}
2) err => {throw err;}
3) onFullfiled
4) onRejected,
5) onRejected
6) v => v,
С какого количества записей индексация имеет смысл?
Сделал выборку по определенному имени, вышло 75-90 мсек.
SELECT name FROM users WHERE name='Mike';
Добавил индекс CREATE INDEX name_idx ON users (name);
Выборка так и осталась в пределах 75-85 мсек.
1) Подскажите какую лучше поставить операционную систему? Если Linux, то в сторону каких дистрибутивов смотреть. Хотелось бы удалённо подключаться к этому ПК для мониторинга или обновления файлов с github.
2) Актуален ли для подобного Docker или слишком много ресурсов будет отнимать?
3) Правильно ли запускать различные сайты просто на разных портах роутера?
5) Раз выполняется проброс порта, то как это обезопасить?
package main
import "fmt"
type MyError struct {
Message string
}
func (e MyError) Error() string {
return e.Message
}
func (e MyError) Smth() {
}
type SomeInterface interface {
Smth()
}
func main() {
var err SomeInterface
err = MyError{"Something went wrong"}
// Проверяем, реализует ли err интерфейс error
if _, ok := err.(error); ok {
fmt.Println("err реализует интерфейс error")
} else {
fmt.Println("err НЕ реализует интерфейс error")
}
}
Ведь когда мы создаем переменную, то в нее копируется значение другой переменной и мы работаем с копией
Начав работать с языком Go начал придавать значение экономии памяти - не создавать лишних переменных.
this.content.querySelectorAll('.cell').forEach((cell) => {
let timer = null; // дескриптор отложенного обработчика одного клика
cell.addEventListener('click', (e) => {
if(timer)
clearTimeout(timer); // при каждом клике сбрасываем отложенный обработчик обработки одного клика
if(e.detail == 1) // на первом клике устанавливаем отложенный обработчик
timer = setTimeout(handleClickCell, 250); // Выполнение функции по одинарному клику после ожидания второго клика 250мс
if(e.detail == 2) // на втором - выполнение обработчика двойного клика
{
// благодаря счетчику detail в ивенте можем посчитать длину очереди непрерывных кликов, и в нужный момент выполнить функцию на втором клике
console.log('111');
}
} );
});