DevNotes Live
6 subscribers
84.2K 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
Material Design — компания Google обновила гайдлайны материал дизайна до третьей версии.

m3.material.io
The Silver Circle

UX/UI
This media is not supported in your browser
VIEW IN TELEGRAM
Плагин Logo Creator — создайте красивый логотип, выбирая различные формы или выбирая лучший логотип из готовых коллекций из более 100 логотипов.

#вектор #графика #иконки #лого
👩‍💻 Задачка по 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
Приветки! Пора 🐱

Это завершающая статья цикла о личном опыте в типографике, о критике, о взгляде на шрифтовой дизайн, как на систему решений. Зачем нужно многообразие шрифтов, где и как их применять, и что важнее — ритм, характер, читабельность, следование канонам или что-то еще?

Основная мысль статьи про рационализацию шрифтового дизайна: как проектировать шрифт через цель и контекст, через любовь к своему делу, а не через набор догм. Разбираю, почему один и тот же «правильный» принцип может быть уместен в текстовой гарнитуре и вреден в шрифте для логотипа/заголовка, как заранее задать рамки проекта и на что смотреть, чтобы шрифт реально работал в коммуникационном дизайне.

+ Большое число примеров, мои новые проекты, отсылки к мастерам (как положено), а также рабочие инструменты и небольшое практическое руководство для начинающих.


Если вы делаете брендинг, постеры, обложки — в общем то, что назвается акциденцией — это как раз тот взгляд, который экономит нервы и делает решения осмысленнее.

ЧИТАТЬ СТАТЬЮ
ЧИТАТЬ СТАТЬЮ
ЧИТАТЬ СТАТЬЮ
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Адовый UX
Очень реалистично снегом засыпало. Нихуя не видно
Forwarded from Адовый UX
> Остальное дерьмо

Обожаю, когда муниципальные службы пишут человечно и понятно, а не своём бюрократическом волапюке
Forwarded from Адовый UX
Пердетские чатки
Forwarded from Адовый UX
Я ещё могу понять, почему у американских компаний русские тексты всё время не влезают (они клали хуй на тесты локализации), но ваш-то блять, Яндекс Книги, основной рынок — Россия. И вы выпускаете вот такой экран для промо новой фичи?
Некоторые промежуточные итоги 2025

Каждый год я делаю подборку-дайджест постов со ссылками — это помогает мне управлять содержанием канала, предлагает определённую навигацию для читателей и позволяет управлять знаниями и ссылками.
Наверное, будет правильно также указать несколько больших проектов прошлого года.

1. Автоматизация эвристик и ИИ-чекеры ошибок.

Год начался с публикации проекта на Хабре о наших попытках использовать чекеры и системы проверок интерфейсов и веб-страниц при помощи больших языковых моделей. https://habr.com/ru/companies/rostelecom/articles/881358/

Одновременно сразу несколько исследовательских групп в мире проводили аналогичные или похожие исследования, на мой взгляд, связанные с VLM-аналитикой видео. (Например, «Applying Large Language Model to User Experience Testing» by Nien-Lin Hsueh, Hsuen-Jen Lin and Lien-Chi Lai в китайском журнале инженерии, и более сложный «Generating Automatic Feedback on UI Mockups with Large Language Models».) В целом, это происходит по всему миру: некоторые SaaS-продукты для управления разработкой и задачами внедряют сервисы записи видео. Мне это напоминает эксперименты Тейлора с видеозаписями рабочих на станках, после чего записи скармливают LLM — такое взаимодействие позволяет анализировать действия и управлять разработкой.

Проект анализа взаимодействий всё ещё идёт. У нас есть мощная методология, которая учитывает когнитивную инженерию систем и систему ошибок. Надеюсь увидеть новые релизы нашего проекта в будущем: больше стандартизации и автоматизации интерфейсов.

В общем, скоро кое-что покажем про автоматизацию проверок UX в Ростелекоме! :)

2. RAG и инженерия знаний для проектов философии. Стоит отметить проект создания Retrieval-Augmented Generation на полном собрании сочинений выдающегося философа Александра Гельевича Дугина. Он был разработан специально для Форума будущего 2050 (в Москву аж отец Илона Маска приехал специально для этого мероприятия). Корпус текстов философа насчитывал порядка 70 томов, всех твитов и постов в соцсетях, включал онтологию для разметки знаний и учитывал связи между фактами. Кроме того, была интегрирована лента новостей, чтобы размеченные знания для LLM учитывали новые события. Были и попытки визуализации.

Предполагаю, что подобные разработки станут важной частью национальных проектов по созданию RAG для сложных отраслей знания — digital humanities. Проект выключен, но некоторые скриншоты — в комментариях.
Если нужен RAG — пишите, у меня есть команда разработки, весьма выдающихся профессионалов, с которыми честь для меня работать: https://lilalogos.github.io/Harpocrat/

3. Цифровое востоковедение - странная отрасль. Совместно с проектом «Южная Луна» мы сделали проект, который, несмотря на лёгкий оттенок шутливости, кажется мне занятным и имеющим определённое будущее. Цифровая версия «Книги Перемен» позволяет получить предсказание, сгенерированное языковой моделью (которая, как известно, просто градиентный спуск), и интерпретацию. В каком-то смысле мы сами галлюцинируем, когда воспринимаем то, что написано LLM, доверяя её стохастической интуиции. LLM дают креативные, умные и, следовательно, кажущиеся правдивыми ответы, хотя мы должны понимать: эти ответы — лишь некоторые из возможных среди тысяч различных и противоречивых!

https://south-moon.ru/
Естественно, это ещё и оммаж Филиппу Дику.

4. Гонка за трекингом результатов исследований.
Здесь я бы выделил свою публикацию на площадке «Корус Консалтинг» относительно метрик расчёта: https://korusconsulting.ru/blog/biznes/kak-ux-issledovaniya-pomogayut-uvelichit-pribyl-biznesa/

Но основная идея очень простая: на мой взгляд, никто не придумал ничего лучше вычитания ROI. Единственная нормальная экономическая эффективность — это разница в исправлениях в начале и в конце. Собственно, эта моя колонка — просто пересказ «Cost-Justifying Usability: An Update for the Internet Age». Желающие могут посмотреть в «Цифровом геноциде» и пособие Nielsen Norman по примерам расчётов ROI: https://t.me/gulagdigital/3048
5. Важный проект с использованием Applied Cognitive Task Analysis. Для меня он имеет особое значение: доклад и презентация результатов применения ACTA для формирования жёстких требований к продуктам и UX. Основная идея в том, что традиционные способы описания решений (эвристики эксперта, когнитивные искажения и т. д.) не учитывают реальность: в не-лабораторных условиях решения принимаются принципиально иначе (нет анализа вариантов, нет оценки — только одно профессионально-интуитивное решение).
Метод ACTA основан на интервью и моделировании ситуаций, чтобы сформировать аудит знаний эксперта. Это техника интервьюирования для выявления ключевых когнитивных элементов экспертных задач.
Обычно включает три фазы: (i) разработка диаграммы задачи; (ii) интервью по аудиту знаний; (iii) анализ данных и представление знаний.
Иногда для исследования альтернативных представлений познания добавляют анализ критических инцидентов и/или симуляционное интервью. Смысл — в таблице когнитивных требований и аудите знаний собрать максимально подробно, каких навыков и знаний не хватает на уровне продукта, чтобы предотвратить аварии и увеличить производительность.

https://biasconf.ru/talks/955d60dc159c461db5bb3b8ad236e30c/ Отдельно спасибо, что удалось выступить на конференции BiasConf с этой нишевой темой. По итогам написана статья для научного журнала Шанинки, надеюсь, что дойдет до печати

Почему я думаю, что это важно? Неявные знания — интересный источник вдохновения для языковых моделей и инноваций в автоматизации и гиперавтоматизации. Легко автоматизировать формализуемые области, но гораздо сложнее — те, где знания трудноуловимы, прогнозы строятся на приметах, а обучение носит цеховой характер с тайнами мастерства.

6. Академия. В прошлом году создал и провёл курс для студентов-программистов МФТИ (Высшая школа программной инженерии) https://hsse.mipt.ru/ по основам UX-проектирования. Несмотря на малый объём и сжатые сроки, вижу отчётливый интерес у молодых разработчиков к вопросам взаимодействия с интерфейсом. Всё больше работодателей ждёт, что рядовые исполнители будут учитывать пользовательское поведение для влияния на продукт на самом нижнем уровне. Ряд ребят сильно увлечены проектами и желанием понять пользователя (судя по отзывам).

Прошло уже два потока, и надеюсь, что в следующем году построение интерфейсов для программистов будет только на уровне text-to-design — это гораздо актуальнее в наши дни. Да и вообще чувствуешь себя моложе и бодрее! Мб лекции выложу в пдф позднее

7. Книга по советскому UX и юзабилити. Всё ещё пишу её, но времени почти не остаётся — только урывками. Зато удалось прочесть почти все тома «Технической эстетики» в разделах эргономики. Это само по себе занятное упражнение.

8. Семинар по UX и когнитивной эргономике. Провёл его — подумаю, что и как стоит поменять в формате в следующем году, чтобы мероприятия стали ещё интереснее и полезнее: https://t.me/gulagdigital/3515

9. Главное — проект «Лукоморье» в Ростелекоме. Отдельно стоит отметить его успех и рост команды исследований, которой мне выпала честь быть лидом: https://lukit.ru/ Думаю, без сильного тыла команды, культуры экспериментов и товарищеского духа многое было бы невозможно попробовать и применить.
Безусловно, это лучшее место для UX-исследователя, чтобы погрузиться в модные передовые темы формата Developer Experience и изучать работу людей, которые создают IT-продукты.
Верю, что команда покажет себя фундаментально в следующем году на конференциях и выступлениях

А список-навигация постов будет позднее! :) Всех с наступающими!
Uncommon Illustrations

💾 Скачать и использовать
https://www.artify.co/uncommon-illustrations

🔎 Посмотреть описание
https://www.artify.co/uncommon-illustrations

#illustrations