DevNotes Live
6 subscribers
84.3K photos
12K videos
195 files
35.4K links
Автоматический агрегатор IT ресурсов в Telegram (@devnotes_robot)
Информация: https://t.me/devnotes_live/121
Download Telegram
Forwarded from Shock Design
This media is not supported in your browser
VIEW IN TELEGRAM
Плагин UI Faces — Позволяет добавлять случайные изображения лиц для использования в макетах.

#лицадлямакетов #прототипирование #контент
Forwarded from Daily Coding 🔥
🛠 dramatiq — быстрая и надежная библиотека для обработки распределенных задач на Python

🌍 Сайт

Daily Coding #инструменты #Python
👩‍💻 Задачка по NodeJS

Создайте приложение на Node.js, которое принимает путь к папке в качестве аргумента командной строки и создает файл report.json, содержащий статистику по этой папке: количество файлов, количество папок, и общий размер всех файлов.

Программа должна уметь выводить статистику по папке в консоль и сохранять её в файл.

➡️ Пример:

node app.js report /path/to/folder — создает файл report.json с данными о содержимом папки.
node app.js print /path/to/folder — выводит статистику о папке в консоль.

Решение задачи ⬇️

const fs = require('fs');
const path = require('path');
const { promisify } = require('util');
const readdir = promisify(fs.readdir);
const stat = promisify(fs.stat);

const action = process.argv[2];
const folderPath = process.argv[3];
const reportFile = 'report.json';

if (!action || !folderPath) {
console.log('Используйте: node app.js <report|print> <путь к папке>');
process.exit(1);
}

async function analyzeFolder(folder) {
const entries = await readdir(folder, { withFileTypes: true });
let totalSize = 0;
let fileCount = 0;
let folderCount = 0;

for (const entry of entries) {
const fullPath = path.join(folder,
entry.name);
if (entry.isDirectory()) {
folderCount++;
const { totalSize: folderSize, fileCount: folderFiles, folderCount: subFolderCount } = await analyzeFolder(fullPath);
totalSize += folderSize;
fileCount += folderFiles;
folderCount += subFolderCount;
} else if (entry.isFile()) {
const fileStats = await stat(fullPath);
fileCount++;
totalSize += fileStats.size;
}
}

return { totalSize, fileCount, folderCount };
}

async function generateReport(folder) {
const stats = await analyzeFolder(folder);
const reportData = {
folder: folder,
files: stats.fileCount,
folders: stats.folderCount,
totalSize: stats.totalSize,
};

fs.writeFile(reportFile, JSON.stringify(reportData, null, 2), (err) => {
if (err) {
console.error('Ошибка при записи отчета:', err);
process.exit(1);
}
console.log(`Отчет сохранен в ${reportFile}`);
});
}

async function printReport(folder) {
const stats = await analyzeFolder(folder);
console.log(`Папка: ${folder}`);
console.log(`Количество файлов: ${stats.fileCount}`);
console.log(`Количество папок: ${stats.folderCount}`);
console.log(`Общий размер файлов: ${stats.totalSize} байт`);
}

if (action === 'report') {
generateReport(folderPath);
} else if (action === 'print') {
printReport(folderPath);
} else {
console.log('Неизвестное действие. Используйте "report" или "print".');
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему мудборд — залог успешного проекта, а не сборная солянка?

Бренд-дизайнер на фрилансе делится своим опытом и мнением о создании мудбордов и взаимодействии с клиентами. Узнай, почему эти аспекты могут влиять на качество дизайн-проекта

Читать на дизайнерс | #статья
Forwarded from Shock Design
Почему мудборд — залог успешного проекта, а не сборная солянка?

Бренд-дизайнер на фрилансе делится своим опытом и мнением о создании мудбордов и взаимодействии с клиентами. Узнай, почему эти аспекты могут влиять на качество дизайн-проекта

Читать на дизайнерс | #статья
Forwarded from Новые шрифты
Как софт формирует мышление дизайнера. Делаем макет в Paint

Статья рассказывает о том, как долгое использование определенного программного обеспечения может влиять на структуру мышления человека, внедряя специфические термины и подходы

Читать на дизайнерс | #статья
Forwarded from UX Live 🔥
Праздники даже не думают заканчиваться, а идеи для подарков уже давно исчерпаны. Так что если ломаете голову что подарить себе любимым, джентльмену на 23е февраля или леди на 8е марта, то я как всегда бегу вас спасать 🏃‍♀️

— и конечно же это подушка Somia😎, которую я уже десятки раз рекомендовал и рекомендую вновь, но в этот раз с МАКСИМАЛЬНОЙ СКИДКОЙ аж 20% (действует на всю продукцию кстати, и на одеяла тоже, только до 28 февраля).

Покупать тут: somiasleep.ru
Промокод UXLIVE
Please open Telegram to view this post
VIEW IN TELEGRAM
Минутка нашего:

Всегда с интересом слежу за творческой жизнью Екатеринбурга.

Сразу обратил внимание как логотип, осознанно или нет, повторяет написание принятое в дизайн-коде Екатеринбурга. Мотив формообразования знака напоминает героя из советского мультфильма своей «квадратностью».

Говоря официальным зыком — Екатеринбургский Театр балета «Щелкунчик» изменил свой визуальный образ, проведя масштабный редизайн. Разработкой новой айдентики занималось рекламное агентство «Восход».

«В концепции мы решили идти от названия и сделать основным элементом айдентики ключевого персонажа — Щелкунчика. Наш герой повзрослел вместе с театром: стал более ответственным, но не утратил свою смелость и дерзость», — объяснил Владислав Деревянных, бренд-дизайн директор агентства «Восход».
Forwarded from Daily Coding 🔥
🛠 huey - это очередь задач, написанная на python; чистый и простой API; redis, sqlite, файловая система или хранилище в оперативной памяти

🌍 Сайт

Daily Coding #инструменты #Python
Forwarded from Новые шрифты
Note
by Afkari Studio

#Display #Latin

📁
Forwarded from Shock Design
This media is not supported in your browser
VIEW IN TELEGRAM
Figma временно отключает свою новую AI-функцию Make Design после твита Энди Аллена, который опубликовал скринкаст с запросом на создание оригинального приложения для погоды. Искусственный интеллект несколько раз предложил дизайн, практически идентичный стандартному приложению от Apple.
Шрифт Blup

💾 Скачать и использовать
https://disk.yandex.ru/d/4tCALT2PLcms4Q

🔎 Посмотреть описание
https://www.behance.net/gallery/141015201/BLUP-font

#font #free #latin #cyrillic