Forwarded from Node.JS [ru] | Серверный JavaScript
Скрытый убийца производительности: синхронный DNS в
Высоконагруженный HTTP-клиент на Node.js внезапно теряет пропускную способность? Event loop залипает при большом количестве параллельных запросов? Чаще всего проблема не в HTTP, а в том, как система разрешает доменные имена.
В чем суть?
Как диагностировать?
1. Подключить
2. Использовать
3.
Как устранить?
Для
Типичная ошибка: использование только
Вывод: блокировка из-за
dns.lookup под нагрузкойВысоконагруженный HTTP-клиент на Node.js внезапно теряет пропускную способность? Event loop залипает при большом количестве параллельных запросов? Чаще всего проблема не в HTTP, а в том, как система разрешает доменные имена.
В чем суть?
dns.lookup (используется http.request, https, axios по умолчанию) при вызове без флагов обращается к системному getaddrinfo через libuv. Этот вызов синхронный и блокирует event loop на время резолвинга. При 1000+ RPS latency одного разрешения (например, 50 мс) превращается в 50 000 мс общего блокирования цикла.Как диагностировать?
1. Подключить
dns.promises и выполнить dns.promises.lookup при нагрузке. Если event loop задерживает микротаски, виновник найден.2. Использовать
process.hrtime.bigint() до и после dns.lookup - разница > 10 мс системного времени указывает на проблему.3.
clinic doctor - на графике async latency видны ступеньки, совпадающие с пиками DNS-запросов.Как устранить?
Для
http(s) агентов - замена на асинхронный DNS:const { createConnection } = require('net');
const dns = require('dns/promises');
const agent = new http.Agent({
createConnection: async (options, cb) => {
const { address } = await dns.lookup(options.hostname);
const socket = createConnection({ ...options, host: address });
cb(null, socket);
},
});Типичная ошибка: использование только
maxSockets или scheduling: 'lifo' снижает частоту новых соединений, но не решает первопричину при множестве уникальных хостов. Проще - библиотеки dns-cache или cacheable-lookup.Вывод: блокировка из-за
dns.lookup - классическая проблема одного потока Node.js на стыке системных вызовов, решается заменой на асинхронное разрешение через dns.promises или кастомный агент.Forwarded from Daily Coding 🔥
Каждый найдет что-то по душе:
1202 ГБ — Python
1811 ГБ — Frontend
1100 ГБ — C / C++ / C#
804 ГБ — Java
411 ГБ — SQL & БД
309 ГБ — DevOps
998 ГБ — ИБ & Хакинг
773 ГБ — Kotlin / Swift
189 ГБ — PHP
201 ГБ — GoLang
170 ГБ — Rust
167 ГБ — QA / Тестирование
310 ГБ — 1C + Лицензии
495 ГБ — Машинное обучение
704 ГБ — Аналитика Данных
991 ГБ — Дизайн
Материалы в закрепе, постоянно пополняются👆🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from UI_UX inspiration
Мобильное приложение с мировым временем
Категория: #приложение
Язык: #en
https://.com/shots/26376023-World-Time-Mobile-App-UI
Чат UI/UX
Категория: #приложение
Язык: #en
https://.com/shots/26376023-World-Time-Mobile-App-UI
Чат UI/UX
Forwarded from UI_UX inspiration
Forwarded from Daily Coding 🔥
🛠 Sugar - модульная библиотека для работы с нативными объектами JavaScript, расширения их прототипов и предоставления разработчикам возможности применять различные полезные функции непосредственно к переменным JS. Методы Sugar используются для самых разных целей, начиная от элементарной математики и заканчивая форматированием даты и проверкой типов.
🌍 Сайт
Daily Coding #инструменты #JavaScript & Max
🌍 Сайт
Daily Coding #инструменты #JavaScript & Max
Forwarded from Node.JS [ru] | Серверный JavaScript
Диагностика и устранение неявной фрагментации кучи в Node.js
Long-lived HTTP серверы с разными по размеру payload часто страдают от "дырявой" кучи, хотя утечек памяти нет. Память фрагментируется из-за чередования маленьких и больших Buffer-ов, что ведет к росту RSS и частым GC паузам.
Как проявляется фрагментация
После обработки HTTP запросов создаются Buffer-ы разного размера: маленькие для заголовков, большие для тела. GC освобождает их неупорядоченно, оставляя пустоты между выделенными блоками. Со временем это увеличивает RSS на 20-40% без утечек. Симптомы: падение производительности через 12+' часов работы, частые stop-the-world паузы GC.
Диагностика в production
Первый шаг — трассировка с
Решение: Buffer Pool для однородности
Создайте пул Buffer-ов фиксированного сегмента, например 1024 байта. Это снижает разнообразие размеров и уменьшает фрагментацию. Пример:
Практические советы и ошибки
- Для максимального снижения фрагментации используйте
- Настройте
- Типичная ошибка — использовать
- В Node 20+ можно изолировать тяжелые операции через
Вывод: Фрагментация кучи в long-lived серверах — реальная проблема, решаемая через Buffer Pool с фиксированным сегментом и контроль аллокаций, а не через поиск утечек.
Long-lived HTTP серверы с разными по размеру payload часто страдают от "дырявой" кучи, хотя утечек памяти нет. Память фрагментируется из-за чередования маленьких и больших Buffer-ов, что ведет к росту RSS и частым GC паузам.
Как проявляется фрагментация
После обработки HTTP запросов создаются Buffer-ы разного размера: маленькие для заголовков, большие для тела. GC освобождает их неупорядоченно, оставляя пустоты между выделенными блоками. Со временем это увеличивает RSS на 20-40% без утечек. Симптомы: падение производительности через 12+' часов работы, частые stop-the-world паузы GC.
Диагностика в production
Первый шаг — трассировка с
--trace-gc. Запустите: NODE_OPTIONS="--trace-gc" node app.js. В выводе ищите Mark-sweep паузы >50ms. Второй шаг — сравнение heapdump-ов через час и сутки работы в Chrome DevTools. Ищите фрагментированные объекты Buffer, разбросанные по куче. Третий шаг — проверьте флаги V8: node --v8-options | grep -i "heap.*frag".Решение: Buffer Pool для однородности
Создайте пул Buffer-ов фиксированного сегмента, например 1024 байта. Это снижает разнообразие размеров и уменьшает фрагментацию. Пример:
class BufferPool {
constructor(size = 1024) {
this.pool = [];
this.size = size;
}
alloc(size) {
if (size > this.size) return Buffer.allocUnsafe(size);
if (this.pool.length) return this.pool.pop().slice(0, size);
return Buffer.allocUnsafe(this.size);
}
free(buf) { this.pool.push(buf); }
}Практические советы и ошибки
- Для максимального снижения фрагментации используйте
Buffer.allocUnsafeSlow вместо Buffer.allocUnsafe в пуле — он избегает shared memory pool.- Настройте
--max-old-space-size и --optimize-for-size для ограничения кучи.- Типичная ошибка — использовать
Buffer.allocUnsafe для всех случаев без разбора. Это увеличивает фрагментацию из-за случайных размеров.- В Node 20+ можно изолировать тяжелые операции через
--experimental-vm-modules в отдельных контекстах.Вывод: Фрагментация кучи в long-lived серверах — реальная проблема, решаемая через Buffer Pool с фиксированным сегментом и контроль аллокаций, а не через поиск утечек.
Forwarded from UI_UX inspiration
Forwarded from UI_UX inspiration
Мобильное приложение для онлайн-обучения
Категория: #приложение
Язык: #en
https://.com/shots/24692535-Online-Education-Mobile-app
Категория: #приложение
Язык: #en
https://.com/shots/24692535-Online-Education-Mobile-app
Forwarded from PSD | Дизайн-пространство
Сборник дизайнерских цитат. Часть 1
Открой мир цитат вместе со мной! Изучай умные мысли, находи вдохновение и делай свою жизнь интереснее
Читать на дизайнерс | #статья
Открой мир цитат вместе со мной! Изучай умные мысли, находи вдохновение и делай свою жизнь интереснее
Читать на дизайнерс | #статья
Forwarded from UI_UX inspiration
Сборник дизайнерских цитат. Часть 1
Открой мир цитат вместе со мной! Изучай умные мысли, находи вдохновение и делай свою жизнь интереснее
Читать на дизайнерс | #статья
Открой мир цитат вместе со мной! Изучай умные мысли, находи вдохновение и делай свою жизнь интереснее
Читать на дизайнерс | #статья
Forwarded from Daily Coding 🔥
⚡️В России запустили первую онлайн-магистратуру по искусственному интеллекту
Её создали Университет Иннополис и Зерокодер, обучивший работе с ИИ более 15 000 человек. Для рынка это большой прорыв – раньше такой программы просто не было.
Что даёт магистратура лично вам:
- Вы запускаете собственный ИИ-продукт за время учёбы – он же становится дипломной работой;
- Осваиваете ИИ, no-code и вайб-кодинг без программирования, техническая база не нужна;
- Получаете диплом магистра государственного образца и отсрочку от армии;
- Учитесь онлайн из любого города, без отрыва от работы;
- Попадаете в среду практиков: основатели, венчурные инвесторы, выпускник Y Combinator; практика – в Т-Банке, Яндексе, Сбере.
Программа платная. Но чтобы разобраться, подходит ли она вам, поступать прямо сейчас не нужно.
7 июля в 13:00 МСК пройдёт бесплатный День открытых дверей. На нём выпускники и студенты лично расскажут, как собрали свои продукты – среди них вирусный ИИ-сервис и B2B-платформа, которой уже пользуются 70 компаний. Приёмная комиссия ответит на ваши вопросы и разберёт детали поступления.
Никаких обязательств: приходите, узнайте и оцените возможности – для этого День открытых дверей и проводится.
Мест на потоке осталось всего 9, к августу их не останется вовсе. Поэтому анонсируем заранее – разберитесь 7 июля.
Регистрация бесплатная по ссылке.
Её создали Университет Иннополис и Зерокодер, обучивший работе с ИИ более 15 000 человек. Для рынка это большой прорыв – раньше такой программы просто не было.
Что даёт магистратура лично вам:
- Вы запускаете собственный ИИ-продукт за время учёбы – он же становится дипломной работой;
- Осваиваете ИИ, no-code и вайб-кодинг без программирования, техническая база не нужна;
- Получаете диплом магистра государственного образца и отсрочку от армии;
- Учитесь онлайн из любого города, без отрыва от работы;
- Попадаете в среду практиков: основатели, венчурные инвесторы, выпускник Y Combinator; практика – в Т-Банке, Яндексе, Сбере.
Программа платная. Но чтобы разобраться, подходит ли она вам, поступать прямо сейчас не нужно.
7 июля в 13:00 МСК пройдёт бесплатный День открытых дверей. На нём выпускники и студенты лично расскажут, как собрали свои продукты – среди них вирусный ИИ-сервис и B2B-платформа, которой уже пользуются 70 компаний. Приёмная комиссия ответит на ваши вопросы и разберёт детали поступления.
Никаких обязательств: приходите, узнайте и оцените возможности – для этого День открытых дверей и проводится.
Мест на потоке осталось всего 9, к августу их не останется вовсе. Поэтому анонсируем заранее – разберитесь 7 июля.
Регистрация бесплатная по ссылке.
Forwarded from UI_UX inspiration
Защита кейса дизайнера: 10 прогонов с ИИ до собеседования
ИИ устроил десять собеседований, чтобы проверить кандидата на лидерство. Тренажер помогает пройти испытание перед настоящими собеседованиями
Читать на дизайнерс | #статья
ИИ устроил десять собеседований, чтобы проверить кандидата на лидерство. Тренажер помогает пройти испытание перед настоящими собеседованиями
Читать на дизайнерс | #статья
Forwarded from UI_UX inspiration
Forwarded from Daily Coding 🔥
📖Prototyping Python Dashboards for Scientists and Engineers
🖋Padraig Houlahan 2024
Создавайте интерактивные информационные панели на основе данных с помощью Python. Это практическое руководство предназначено для тех, кто (обладая скромными навыками программирования) работает в научной и инженерной сферах и хочет использовать возможности Python для визуализации и анализа данных в удобном для пользователя формате информационной панели.
💾 Скачать книгу
Daily Coding #книги #Python & Max
🖋Padraig Houlahan 2024
Создавайте интерактивные информационные панели на основе данных с помощью Python. Это практическое руководство предназначено для тех, кто (обладая скромными навыками программирования) работает в научной и инженерной сферах и хочет использовать возможности Python для визуализации и анализа данных в удобном для пользователя формате информационной панели.
💾 Скачать книгу
Daily Coding #книги #Python & Max
Forwarded from Node.JS [ru] | Серверный JavaScript
Неявный deadlock в Node.js: AsyncLocalStorage + worker_threads + await в run()
Многие знают AsyncLocalStorage для проброса контекста, но скрещивание его с пулом worker_threads и await внутри колбэка run() создаёт неочевидный deadlock. Эта ошибка часто остаётся незамеченной до первого production-инцидента, когда пул потоков залипает при высокой нагрузке.
Как проявляется deadlock
Внутри run() вы помещаете ID запроса и вызываете await, пока воркер не закончит задачу. Если потоков в пуле ограниченное число (например, 2), а запросов много, каждый await блокирует run(), не освобождая поток из пула. Воркеры заняты, потоки ждут await — контекст AsyncLocalStorage не отпускается до полного завершения колбэка.
Пример problem:
Как обнаружить
- Залогируйте время выполнения воркеров: рост с увеличением числа запросов — тревожный сигнал.
- Используйте clinic.js или 0x: они покажут аномальные пики ожидания.
- Типичная ошибка: пул из 2 воркеров и 100 параллельных запросов — все зависнут через несколько секунд.
Практический совет
Не оставляйте await внутри run(). Вынесите ожидание наружу:
Либо передавайте контекст через
Предупреждение
AsyncLocalStorage отлично работает на веб-серверах с краткими синхронными операциями, но await внутри run() с ограниченным пулом потоков — прямой путь к deadlock. Проверяйте такие места на этапе code review.
Вывод: Избегайте await внутри колбэка AsyncLocalStorage.run() при работе с пулом worker_threads — выносите асинхронное ожидание наружу или передавайте контекст через сообщения.
Многие знают AsyncLocalStorage для проброса контекста, но скрещивание его с пулом worker_threads и await внутри колбэка run() создаёт неочевидный deadlock. Эта ошибка часто остаётся незамеченной до первого production-инцидента, когда пул потоков залипает при высокой нагрузке.
Как проявляется deadlock
Внутри run() вы помещаете ID запроса и вызываете await, пока воркер не закончит задачу. Если потоков в пуле ограниченное число (например, 2), а запросов много, каждый await блокирует run(), не освобождая поток из пула. Воркеры заняты, потоки ждут await — контекст AsyncLocalStorage не отпускается до полного завершения колбэка.
Пример problem:
const als = new AsyncLocalStorage();
async function processRequest(data) {
await als.run({ requestId: Date.now() }, async () => {
const worker = new Worker('./worker.js');
const result = await new Promise((resolve, reject) => {
worker.on('message', resolve);
worker.on('error', reject);
});
console.log(als.getStore().requestId);
});
}
Как обнаружить
- Залогируйте время выполнения воркеров: рост с увеличением числа запросов — тревожный сигнал.
- Используйте clinic.js или 0x: они покажут аномальные пики ожидания.
- Типичная ошибка: пул из 2 воркеров и 100 параллельных запросов — все зависнут через несколько секунд.
Практический совет
Не оставляйте await внутри run(). Вынесите ожидание наружу:
async function processRequest(data) {
const worker = new Worker('./worker.js');
const result = await new Promise(/*...*/);
als.run({ requestId: Date.now() }, () => {
console.log(als.getStore().requestId);
});
}Либо передавайте контекст через
worker.postMessage() — это проще и исключает deadlock.Предупреждение
AsyncLocalStorage отлично работает на веб-серверах с краткими синхронными операциями, но await внутри run() с ограниченным пулом потоков — прямой путь к deadlock. Проверяйте такие места на этапе code review.
Вывод: Избегайте await внутри колбэка AsyncLocalStorage.run() при работе с пулом worker_threads — выносите асинхронное ожидание наружу или передавайте контекст через сообщения.
Forwarded from Daily Coding 🔥
📖Mastering Python for Web: A Beginner's Guide
🖋Bin Uzayr Sufyan 2022
Когда речь заходит о простоте использования и доступности для начинающих в мире языков программирования, Python, безусловно, лидирует. В то же время Python незаменим при написании системных скриптов, обработке больших данных, выполнении математических вычислений, создании веб-приложений и быстром прототипировании.
💾 Скачать книгу
Daily Coding #книги #Python & Max
🖋Bin Uzayr Sufyan 2022
Когда речь заходит о простоте использования и доступности для начинающих в мире языков программирования, Python, безусловно, лидирует. В то же время Python незаменим при написании системных скриптов, обработке больших данных, выполнении математических вычислений, создании веб-приложений и быстром прототипировании.
💾 Скачать книгу
Daily Coding #книги #Python & Max
Forwarded from Node.JS [ru] | Серверный JavaScript
Как я хакнул рынок труда: пишем свой ИИ-комбайн для автооткликов на HH.ru
Если вы хоть раз искали работу в IT за последний год, то знаете, что рынок беспощаден к новичкам. Нужно откликнуться на сотни вакансий, а в итоге получаешь отказы от роботов. Чтобы пробиться через фильтры HR, нужно под каждую вакансию писать уникальное сопроводительное письмо. В этой статье автор сделал полный разбор того, как написал собственного автономного ИИ-агента, который ищет вакансии, фильтрует мусор с помощью локальной нейросети, пишет персонализированные сопроводительные письма и отчитывается в Telegram, пока пользователь спокойно занимается своими делами. Скрипт задумывался бесплатным, автономным и не требующим настройки вокруг платных API.
Читать далее
Если вы хоть раз искали работу в IT за последний год, то знаете, что рынок беспощаден к новичкам. Нужно откликнуться на сотни вакансий, а в итоге получаешь отказы от роботов. Чтобы пробиться через фильтры HR, нужно под каждую вакансию писать уникальное сопроводительное письмо. В этой статье автор сделал полный разбор того, как написал собственного автономного ИИ-агента, который ищет вакансии, фильтрует мусор с помощью локальной нейросети, пишет персонализированные сопроводительные письма и отчитывается в Telegram, пока пользователь спокойно занимается своими делами. Скрипт задумывался бесплатным, автономным и не требующим настройки вокруг платных API.
Читать далее
Forwarded from Цифровой геноцид
https://arxiv.org/abs/2606.30534
https://orca-wm.github.io/
Большинство современных систем ИИ обучаются решать конкретные задачи: предсказывать следующее слово в предложении, генерировать следующий кадр видео или выбирать следующее действие робота. Но люди не воспринимают мир как цепочку изолированных предсказаний. Мы строим внутреннюю модель того, как устроен мир — ментальную модель, которая позволяет представлять возможные сценарии, предсказывать последствия и принимать решения.
Новый подход под названием Orca стремится приблизить ИИ к этому принципу. Модель учится формировать представление о том, как мир меняется со временем.
Вместо вопроса «Что будет дальше?» Orca задаёт более глубокий вопрос:
«В каком состоянии сейчас находится мир и как он переходит в следующее состояние?»
Это называется предсказанием следующего состояния (Next-State Prediction). Цель — создать единое латентное пространство мира, в котором визуальная, языковая и связанная с действиями информация объединены в общее представление. В этом пространстве ИИ может рассуждать о связях между объектами, событиями и действиями независимо от формы данных.
Orca обучается двумя взаимодополняющими способами:
🔹 Бессознательное обучение — как человек впитывает окружающую среду, просто наблюдая за ней. Модель учится на непрерывных видеопотоках, улавливая паттерны движения, причинно-следственные связи и естественные изменения в мире.
🔹 Сознательное обучение — как человек понимает мир через язык и объяснения. Orca учится на описаниях важных событий и примерах визуального вопросно-ответного взаимодействия (VQA), связывая происходящее в мире с языковыми концепциями.
Для обучения исследователи собрали огромный датасет: 125 000 часов видео и 160 миллионов аннотаций событий. Это дало модели доступ к очень широкому спектру реальных ситуаций.
После обучения внутренней модели мира её основное представление замораживается. Дальше обучаются только небольшие специализированные модули, которые «считывают» из этого представления разные способности. Исследователи проверили, может ли это внутреннее понимание мира поддерживать:
Генерацию текста — общение о мире
Предсказание изображений — воображение возможных будущих визуальных состояний
Генерацию действий в физическом мире — принятие решений для агентов, взаимодействующих с окружением
Результаты показывают: чем сильнее внутреннее представление мира, тем лучше модель справляется с разными задачами. Orca превзошла другие ИИ-системы сопоставимого размера, которые обучались под конкретные задачи по отдельности. Это говорит о том, что общее понимание мира может быть эффективнее, чем создание отдельных моделей под каждую способность.
Главная идея Orca - переход от ИИ, который просто распознаёт паттерны, к ИИ, который развивает структурированное понимание реальности
https://orca-wm.github.io/
Большинство современных систем ИИ обучаются решать конкретные задачи: предсказывать следующее слово в предложении, генерировать следующий кадр видео или выбирать следующее действие робота. Но люди не воспринимают мир как цепочку изолированных предсказаний. Мы строим внутреннюю модель того, как устроен мир — ментальную модель, которая позволяет представлять возможные сценарии, предсказывать последствия и принимать решения.
Новый подход под названием Orca стремится приблизить ИИ к этому принципу. Модель учится формировать представление о том, как мир меняется со временем.
Вместо вопроса «Что будет дальше?» Orca задаёт более глубокий вопрос:
«В каком состоянии сейчас находится мир и как он переходит в следующее состояние?»
Это называется предсказанием следующего состояния (Next-State Prediction). Цель — создать единое латентное пространство мира, в котором визуальная, языковая и связанная с действиями информация объединены в общее представление. В этом пространстве ИИ может рассуждать о связях между объектами, событиями и действиями независимо от формы данных.
Orca обучается двумя взаимодополняющими способами:
🔹 Бессознательное обучение — как человек впитывает окружающую среду, просто наблюдая за ней. Модель учится на непрерывных видеопотоках, улавливая паттерны движения, причинно-следственные связи и естественные изменения в мире.
🔹 Сознательное обучение — как человек понимает мир через язык и объяснения. Orca учится на описаниях важных событий и примерах визуального вопросно-ответного взаимодействия (VQA), связывая происходящее в мире с языковыми концепциями.
Для обучения исследователи собрали огромный датасет: 125 000 часов видео и 160 миллионов аннотаций событий. Это дало модели доступ к очень широкому спектру реальных ситуаций.
После обучения внутренней модели мира её основное представление замораживается. Дальше обучаются только небольшие специализированные модули, которые «считывают» из этого представления разные способности. Исследователи проверили, может ли это внутреннее понимание мира поддерживать:
Генерацию текста — общение о мире
Предсказание изображений — воображение возможных будущих визуальных состояний
Генерацию действий в физическом мире — принятие решений для агентов, взаимодействующих с окружением
Результаты показывают: чем сильнее внутреннее представление мира, тем лучше модель справляется с разными задачами. Orca превзошла другие ИИ-системы сопоставимого размера, которые обучались под конкретные задачи по отдельности. Это говорит о том, что общее понимание мира может быть эффективнее, чем создание отдельных моделей под каждую способность.
Главная идея Orca - переход от ИИ, который просто распознаёт паттерны, к ИИ, который развивает структурированное понимание реальности
Forwarded from Цифровой геноцид
Эмоциональный дизайн и кенсай инжиниринг, разные подходы к измерению эмоций на уровне технологий
Как-то разговаривал с коллегой относительно опыта измерений эмоций при проектировании определенных технологий, например, рабочих интерфейсов тасктрекинга и других задач управления проектами: показательно, некоторая лакуна в отечественных подходах по сравнению с миром. Например, удивила молодая команда из Казахстана применяющая кансей-инжиниринг для проектирования веб-сайтов (ничего удивительного, но показательно, что метод используется у них, но не в РФ, хотя с 60ых-70ых эти работы ходили по миру и на производствах). Косвенно, это и повод задуматься о том, насколько реально положение российских исследований и проектирования опыта пользователя
The Kansei Engineering Approach in Web Design: Case of Transportation Website от молодого коллектива авторов Kazakh-British Technical University - я так понимаю, что магистерская диссертация, но вообще показательная с точки зрения уровня https://arxiv.org/pdf/2405.03223
О чем идет речь? Напомню, что кансей-инжиниринг разрабатывался изначально для компании Мазда и в каком-то смысле был альтернативой методам Кано - происходя из одного источника семантического дифференциала управления качеством Огсвуда.
Авторы применяют подход Кансей-инжиниринга, исследуя эмоциональное воздействие на логистический веб-сайт на примере платформы Reis.kz. Эта платформа, представляющая собой маркетплейс для поиска грузов и транспортных услуг, предоставляет подходящий контекст для оценки эффективности KE в улучшении пользовательского опыта в конкретной предметной области. Исследование выявляет эмоции, связанные с определёнными характеристиками продукта, через серию опросов, экспериментов и оценок. Впоследствии эти эмоции и психологические ощущения преобразуются в параметры привлекательного веб-дизайна.
Описание метода:
Определение стратегии компании
Сбор кансей-слов
Установка семантической дифференциальной шкалы
Сбор образцов продуктов
Список элементов/категорий
Эксперимент по оценке
Статистический анализ
Интерпретация проанализированных данных
Объяснение данных
Сотрудничество с дизайнерами
Сбор слов
первым шагом является сбор кансей-слов, связанных с новым продуктом и соответствующих стратегии, обсуждавшейся на предыдущем этапе. Кансей-слово — это термин, описывающий контекст продукта. Эти слова могут быть прилагательными или другими частями речи.
Для получения полного набора слов используются следующие источники:
Соответствующая литература
Эксперты
Опытные пользователи
Связанные исследования по Кансей
Идеи, видения
Часть кансей-слов была предоставлена маркетинговыми экспертами и пользователями Reis.kz, а некоторые были адаптированы из связанных исследований по Кансей.
Шкала и сбор образцов конкурентов/бенчмарк
Следующим шагом является размещение собранных кансей-слов в 5-балльной семантической дифференциальной (SD) анкете (шкала Лайкерта), где положительному кансей-слову соответствует наибольшее значение, а отрицательному — наименьшее.
Опросник
Для этого был произведен отбор экспериментальных субъектов и образцов. Респондентам демонстрировали образцы веб-сайтов, использованные в эксперименте по оценке по семантической шкале. В число выбранных транспортных компаний вошли не только казахстанские, но и международные. В список также были включены компании-бенчмарки (эталоны).
Список элементов/категорий
На этом этапе происходит выявление характеристик дизайна собранных образцов продуктов, таких как цвет, шрифт, форма, размер и логотип. Мы выбрали шесть характеристик из всех продуктов для анализа того, как каждый элемент влияет на эмоции:
Насыщенность и интенсивность используемых на странице цветов
Доминирующий цвет на сайте
Количество цветов, используемых на сайте
Видимость логотипа бренда
Размер шрифта, используемого на странице
Наличие изображений на странице и их доля
Данное исследование анализирует визуальные элементы дизайна, используемые на различных цифровых платформах. Таким образом, дизайн каждой платформы оценивается по насыщенности, интенсивности, доминирующим цветам, количеству цветов, видимости логотипа, размеру шрифта и наличию изображений.
Потом происходит непосредственно сбор кансей-цветов
В Кансей-инжиниринге цветовые модели играют важную роль, помогая понять эмоциональные реакции, которые вызывают цвета у пользователей. Анализируя цвета через модели, такие как RGB, CMYK или нечёткие цветовые модели , дизайнеры могут согласовывать эмоциональное воздействие цветов с предпочтениями пользователей. В этом исследовании акцент сделан на эмоциональном воздействии отдельных кансей-цветов, а не на использовании многоцветных палитр. Тем не менее, цветовая гармония может применяться в KE при проектировании веб-интерфейсов, чтобы обеспечить эстетическую целостность и приятность используемых цветов.
Мы использовали несколько базовых цветов, упомянутых в других научных работах. Кроме того, были использованы цвета в соответствии с характеристиками, полученными из опроса.
Анализ
Следующим шагом является анализ оценённых данных с помощью статистических методов для получения взаимосвязей между каждым кансей-словом и образцами продуктов. Был выполнен Анализ главных компонент (PCA) на наборе данных опроса. Доля объяснённой дисперсии. Первые несколько главных компонент охватывают значительную часть общей дисперсии данных. Первая главная компонента (PC1) в одиночку объясняет примерно 32% дисперсии, вторая (PC2) — около 16%. Первые две главные компоненты вместе объясняют почти 48% общей дисперсии
Накопленная дисперсия. Накопленная объяснённая дисперсия показывает, что первые четыре компоненты объясняют около 68% общей дисперсии, а первые двадцать четыре компоненты — около 99% дисперсии
Далее мы создаём биплот — тип графика, который позволяет визуализировать результаты PCA. Он отображает как оценки (преобразованные значения PC для каждого наблюдения), так и нагрузки (коэффициенты, описывающие линейную комбинацию исходных переменных для получения компонент) на одном графике. Биплот помогает понять, как исходные переменные вносят вклад в главные компоненты и как распределены наблюдения относительно этих компонент.
Какие выводы? Анализ главных компонент показывает, что восприятие дизайна в логистике формируется под влиянием различных скрытых факторов. Первая главная компонента (PC1), объясняющая наибольшую долю дисперсии, в значительной степени определяется атрибутами «Красивый», «Ясный» и «Инновационный». Эта компонента получила название «Элегантная инновация». Это указывает на то, что эстетика и ясность дизайна в сочетании с восприятием инновационности являются главными факторами, формирующими общее впечатление от дизайна в логистике.
Вторая главная компонента (PC2) в основном связана с атрибутами «Комплексный», «Надёжный» и «Яркий». Мы назвали эту компоненту «Сияющее доверие».
Например, продукты, получившие высокие оценки по PC1, воспринимаются как красивые, ясные и инновационные, в то время как высокие оценки по PC2 указывают на комплексность, надёжность и яркость.
Затем при помощи рекомендаций дизайнеров изменяли сам продукт и тд
Я бы не концентрировался на выводах - понятно, что это магистерская работа, подобного рода результаты можно получить более простыми операциями. Показательна скорее зрелость метода и его границы применимости, которые предлагается использовать в русле когнитивной эргономики и когнитивной инженерии
Если у вас есть желание поговорить на эти и другие связанные с хуман факторс темами, то пишите мне @lilalogos , я всегда открыт к бесплатным и платным консультациям. Кроме того, можете изучить мой семинар, если интересны такие же темы https://t.me/gulagdigital/3515
Как-то разговаривал с коллегой относительно опыта измерений эмоций при проектировании определенных технологий, например, рабочих интерфейсов тасктрекинга и других задач управления проектами: показательно, некоторая лакуна в отечественных подходах по сравнению с миром. Например, удивила молодая команда из Казахстана применяющая кансей-инжиниринг для проектирования веб-сайтов (ничего удивительного, но показательно, что метод используется у них, но не в РФ, хотя с 60ых-70ых эти работы ходили по миру и на производствах). Косвенно, это и повод задуматься о том, насколько реально положение российских исследований и проектирования опыта пользователя
The Kansei Engineering Approach in Web Design: Case of Transportation Website от молодого коллектива авторов Kazakh-British Technical University - я так понимаю, что магистерская диссертация, но вообще показательная с точки зрения уровня https://arxiv.org/pdf/2405.03223
О чем идет речь? Напомню, что кансей-инжиниринг разрабатывался изначально для компании Мазда и в каком-то смысле был альтернативой методам Кано - происходя из одного источника семантического дифференциала управления качеством Огсвуда.
Авторы применяют подход Кансей-инжиниринга, исследуя эмоциональное воздействие на логистический веб-сайт на примере платформы Reis.kz. Эта платформа, представляющая собой маркетплейс для поиска грузов и транспортных услуг, предоставляет подходящий контекст для оценки эффективности KE в улучшении пользовательского опыта в конкретной предметной области. Исследование выявляет эмоции, связанные с определёнными характеристиками продукта, через серию опросов, экспериментов и оценок. Впоследствии эти эмоции и психологические ощущения преобразуются в параметры привлекательного веб-дизайна.
Описание метода:
Определение стратегии компании
Сбор кансей-слов
Установка семантической дифференциальной шкалы
Сбор образцов продуктов
Список элементов/категорий
Эксперимент по оценке
Статистический анализ
Интерпретация проанализированных данных
Объяснение данных
Сотрудничество с дизайнерами
Сбор слов
первым шагом является сбор кансей-слов, связанных с новым продуктом и соответствующих стратегии, обсуждавшейся на предыдущем этапе. Кансей-слово — это термин, описывающий контекст продукта. Эти слова могут быть прилагательными или другими частями речи.
Для получения полного набора слов используются следующие источники:
Соответствующая литература
Эксперты
Опытные пользователи
Связанные исследования по Кансей
Идеи, видения
Часть кансей-слов была предоставлена маркетинговыми экспертами и пользователями Reis.kz, а некоторые были адаптированы из связанных исследований по Кансей.
Шкала и сбор образцов конкурентов/бенчмарк
Следующим шагом является размещение собранных кансей-слов в 5-балльной семантической дифференциальной (SD) анкете (шкала Лайкерта), где положительному кансей-слову соответствует наибольшее значение, а отрицательному — наименьшее.
Опросник
Для этого был произведен отбор экспериментальных субъектов и образцов. Респондентам демонстрировали образцы веб-сайтов, использованные в эксперименте по оценке по семантической шкале. В число выбранных транспортных компаний вошли не только казахстанские, но и международные. В список также были включены компании-бенчмарки (эталоны).
Список элементов/категорий
На этом этапе происходит выявление характеристик дизайна собранных образцов продуктов, таких как цвет, шрифт, форма, размер и логотип. Мы выбрали шесть характеристик из всех продуктов для анализа того, как каждый элемент влияет на эмоции:
Насыщенность и интенсивность используемых на странице цветов
Доминирующий цвет на сайте
Количество цветов, используемых на сайте
Видимость логотипа бренда
Размер шрифта, используемого на странице
Наличие изображений на странице и их доля
Данное исследование анализирует визуальные элементы дизайна, используемые на различных цифровых платформах. Таким образом, дизайн каждой платформы оценивается по насыщенности, интенсивности, доминирующим цветам, количеству цветов, видимости логотипа, размеру шрифта и наличию изображений.
Потом происходит непосредственно сбор кансей-цветов
В Кансей-инжиниринге цветовые модели играют важную роль, помогая понять эмоциональные реакции, которые вызывают цвета у пользователей. Анализируя цвета через модели, такие как RGB, CMYK или нечёткие цветовые модели , дизайнеры могут согласовывать эмоциональное воздействие цветов с предпочтениями пользователей. В этом исследовании акцент сделан на эмоциональном воздействии отдельных кансей-цветов, а не на использовании многоцветных палитр. Тем не менее, цветовая гармония может применяться в KE при проектировании веб-интерфейсов, чтобы обеспечить эстетическую целостность и приятность используемых цветов.
Мы использовали несколько базовых цветов, упомянутых в других научных работах. Кроме того, были использованы цвета в соответствии с характеристиками, полученными из опроса.
Анализ
Следующим шагом является анализ оценённых данных с помощью статистических методов для получения взаимосвязей между каждым кансей-словом и образцами продуктов. Был выполнен Анализ главных компонент (PCA) на наборе данных опроса. Доля объяснённой дисперсии. Первые несколько главных компонент охватывают значительную часть общей дисперсии данных. Первая главная компонента (PC1) в одиночку объясняет примерно 32% дисперсии, вторая (PC2) — около 16%. Первые две главные компоненты вместе объясняют почти 48% общей дисперсии
Накопленная дисперсия. Накопленная объяснённая дисперсия показывает, что первые четыре компоненты объясняют около 68% общей дисперсии, а первые двадцать четыре компоненты — около 99% дисперсии
Далее мы создаём биплот — тип графика, который позволяет визуализировать результаты PCA. Он отображает как оценки (преобразованные значения PC для каждого наблюдения), так и нагрузки (коэффициенты, описывающие линейную комбинацию исходных переменных для получения компонент) на одном графике. Биплот помогает понять, как исходные переменные вносят вклад в главные компоненты и как распределены наблюдения относительно этих компонент.
Какие выводы? Анализ главных компонент показывает, что восприятие дизайна в логистике формируется под влиянием различных скрытых факторов. Первая главная компонента (PC1), объясняющая наибольшую долю дисперсии, в значительной степени определяется атрибутами «Красивый», «Ясный» и «Инновационный». Эта компонента получила название «Элегантная инновация». Это указывает на то, что эстетика и ясность дизайна в сочетании с восприятием инновационности являются главными факторами, формирующими общее впечатление от дизайна в логистике.
Вторая главная компонента (PC2) в основном связана с атрибутами «Комплексный», «Надёжный» и «Яркий». Мы назвали эту компоненту «Сияющее доверие».
Например, продукты, получившие высокие оценки по PC1, воспринимаются как красивые, ясные и инновационные, в то время как высокие оценки по PC2 указывают на комплексность, надёжность и яркость.
Затем при помощи рекомендаций дизайнеров изменяли сам продукт и тд
Я бы не концентрировался на выводах - понятно, что это магистерская работа, подобного рода результаты можно получить более простыми операциями. Показательна скорее зрелость метода и его границы применимости, которые предлагается использовать в русле когнитивной эргономики и когнитивной инженерии
Если у вас есть желание поговорить на эти и другие связанные с хуман факторс темами, то пишите мне @lilalogos , я всегда открыт к бесплатным и платным консультациям. Кроме того, можете изучить мой семинар, если интересны такие же темы https://t.me/gulagdigital/3515
Forwarded from Цифровой геноцид
Как кансей выглядит наглядно
Есть специальные программы вообще для этого, напомню как Артемий Лебедев ругался на русскую систему ВААЛ в своем Ководстве, но вообще в мире периодически такие цифровые среды релизят
Есть специальные программы вообще для этого, напомню как Артемий Лебедев ругался на русскую систему ВААЛ в своем Ководстве, но вообще в мире периодически такие цифровые среды релизят