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
Вдохновение айдентикой семейного бизнеса CHESINI. MEAT & FISH от студии Emanuele Abrate.
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
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
Минутка нашего:

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

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

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

«В концепции мы решили идти от названия и сделать основным элементом айдентики ключевого персонажа — Щелкунчика. Наш герой повзрослел вместе с театром: стал более ответственным, но не утратил свою смелость и дерзость», — объяснил Владислав Деревянных, бренд-дизайн директор агентства «Восход».