Forwarded from UI_UX inspiration
Media is too big
VIEW IN TELEGRAM
Forwarded from Shock Design
Forwarded from Node.JS [ru] | Серверный JavaScript
Реализуйте простой HTTP-сервер на Node.js (без фреймворков), который обрабатывает GET-запросы и возвращает
"Hello, client!".Но с одним условием: если IP-адрес клиента делает больше 5 запросов за 10 секунд, сервер должен временно блокировать этот IP на 30 секунд и отвечать ему
"429 Too Many Requests".Решение задачи
const http = require('http');
const PORT = 3000;
const requestLog = {}; // { ip: [timestamps] }
const bannedIPs = {}; // { ip: unblockTimestamp }
function cleanupOldRequests(ip) {
const now =Date.now ();
requestLog[ip] = (requestLog[ip] || []).filter(ts => now - ts < 10000);
}
const server = http.createServer((req, res) => {
const ip = req.socket.remoteAddress;
if (bannedIPs[ip] &&Date.now () < bannedIPs[ip]) {
res.writeHead(429, { 'Content-Type': 'text/plain' });
return res.end('429 Too Many Requests');
}
cleanupOldRequests(ip);
requestLog[ip].push(Date.now ());
if (requestLog[ip].length > 5) {
bannedIPs[ip] =Date.now () + 30000; // блок на 30 сек
requestLog[ip] = [];
res.writeHead(429, { 'Content-Type': 'text/plain' });
return res.end('429 Too Many Requests');
}
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, client!');
});
server.listen(PORT, () => {
console.log(`Server listening on http://localhost:${PORT}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Denis Sexy IT 🤖
Звонок с коллегами, год 2025 (это все персональные боты которые делают заметки встречи ):
Forwarded from UX Notes
Рамазан Нурулаев написал о дизайне таблиц для цеха.
— Тонкие шрифты — мимо. Числа должны читаться даже в маске сварщика. Для цифр — моноширинный шрифт;
— Почти всегда нужна тёмная тема;
— Минимум цветов. Новый цвет — только чтобы привлечь внимание к критичным вещам;
— Системная цветовая индикация, которую нельзя изменить: зелёный — всё хорошо, жёлтый — обратить внимание, красный — что-то случилось;
— Есть дополнительные цвета, которые можно назначить выбранным статусам (или переназначить под себя);
— Рекомендации по выбору цвета есть в сторибуке: «фиолетовый для специальных режимов работы»;
— Пользователи попросили добавить легенду во все формы, где есть цветовая индикация;
— Заголовки столбцов были менее контрастными, чем их содержимое, но они плохо считывались. Сделали их контрастнее, а чтобы отделить от цифр, поменяли шрифт;
— Таблицы почти никогда не прокручивают (особенно, по горизонтали), поэтому они должны быть максимально компактными, но не сливаться в кашу;
— 40 px основная высота строки, 56 px — увеличенная, 32 px — компактная. Надо учитывать, что в них могут быть иконки и кнопки;
— Нужна возможность настраивать их под себя: скрывать столбцы, закреплять, менять их порядок;
— Иногда можно заменить заголовки столбцов на более компактные: «Положение плавки» → «Плавка»;
— Чтобы уменьшить визуальный шум, кнопки действий отображаются при наведении на строку. Пользователь примерно понимает, какие действия ему надо совершить;
— Чтобы было понятно, какие ячейки можно редактировать, в них есть кнопка редактирования. Ячейки с отредактированными данными подсвечиваются жёлтым.
#table #industrial
— Тонкие шрифты — мимо. Числа должны читаться даже в маске сварщика. Для цифр — моноширинный шрифт;
— Почти всегда нужна тёмная тема;
— Минимум цветов. Новый цвет — только чтобы привлечь внимание к критичным вещам;
— Системная цветовая индикация, которую нельзя изменить: зелёный — всё хорошо, жёлтый — обратить внимание, красный — что-то случилось;
— Есть дополнительные цвета, которые можно назначить выбранным статусам (или переназначить под себя);
— Рекомендации по выбору цвета есть в сторибуке: «фиолетовый для специальных режимов работы»;
— Пользователи попросили добавить легенду во все формы, где есть цветовая индикация;
— Заголовки столбцов были менее контрастными, чем их содержимое, но они плохо считывались. Сделали их контрастнее, а чтобы отделить от цифр, поменяли шрифт;
— Таблицы почти никогда не прокручивают (особенно, по горизонтали), поэтому они должны быть максимально компактными, но не сливаться в кашу;
— 40 px основная высота строки, 56 px — увеличенная, 32 px — компактная. Надо учитывать, что в них могут быть иконки и кнопки;
— Нужна возможность настраивать их под себя: скрывать столбцы, закреплять, менять их порядок;
— Иногда можно заменить заголовки столбцов на более компактные: «Положение плавки» → «Плавка»;
— Чтобы уменьшить визуальный шум, кнопки действий отображаются при наведении на строку. Пользователь примерно понимает, какие действия ему надо совершить;
— Чтобы было понятно, какие ячейки можно редактировать, в них есть кнопка редактирования. Ячейки с отредактированными данными подсвечиваются жёлтым.
#table #industrial
Forwarded from Дизайн-снайпер
Минутка показалось:
В интеренете многим показалось глядя на контуры зданий 137 школы в Барнауле, что это то, что в символическом языке называется «ничего не делать» или пинать здание бассейна узнаваемой формы. Проект школы 2021 года.
Теперь это наверное самая известная школа в Барнауле.
Если проектируете объект, всегда думайте как его дизайн будет смотреться и какие ассоциации вызывать в разных проекциях и под разными углами обзора аудиторией.
В интеренете многим показалось глядя на контуры зданий 137 школы в Барнауле, что это то, что в символическом языке называется «ничего не делать» или пинать здание бассейна узнаваемой формы. Проект школы 2021 года.
Теперь это наверное самая известная школа в Барнауле.
Если проектируете объект, всегда думайте как его дизайн будет смотреться и какие ассоциации вызывать в разных проекциях и под разными углами обзора аудиторией.
Forwarded from Shock Design