Forwarded from PSD | Дизайн-пространство
B2B-интерфейсы перестают быть ужасными и скучными
Статья о том, как поддерживать здоровье на работе и справляться с повседневным стрессом. Важные советы для успешной работы и баланса между работой и отдыхом
Читать на дизайнерс | #статья
Статья о том, как поддерживать здоровье на работе и справляться с повседневным стрессом. Важные советы для успешной работы и баланса между работой и отдыхом
Читать на дизайнерс | #статья
Forwarded from Node.JS [ru] | Серверный JavaScript
Внутри статьи она подробно расписывает этапы собеседований, лайфхаки и делится учебными ресурсами, которые ей помогли.
Плюс девушка великодушно оставила ссылки на свой Notion с полезными заметками по математике и LLM.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from PSD | Дизайн-пространство
This media is not supported in your browser
VIEW IN TELEGRAM
Неплохая связка ИИ инстурментов 😎 🖤 🤨 , для тех, кто пилит продуктовые концепты.
Midjourney + Krea
Оригинал видео тут
Midjourney + Krea
Оригинал видео тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Daily Coding 🔥
🛠 PostGIS расширяет возможности реляционной базы данных PostgreSQL, добавляя поддержку хранения, индексирования и запросов к геопространственным данным.
🌍 Сайт
Daily Coding #инструменты #SQL & Max
🌍 Сайт
Daily Coding #инструменты #SQL & Max
Forwarded from эйай ньюз
В Vesuvius Challenge впервые прочитали весь обуглившийся свиток
Из-за того что папирус разлагается за несколько сотен лет, за тысячелетия было утеряно большинство текстов из той эпохи. Геркуланумским папирусам в каком-то смысле повезло — из-за извержения Везувия две тысячи лет назад свитки обуглились и были погребены, что позволило им сохраниться.
Уже в наше время вышло сделать трёхмерные сканы свитков при помощи рентгена и использовать нейросети для их "виртуального разворачивания". Таким образом в 2023 году победителям Vesuvius Challenge удалось прочитать небольшой отрывок из одного папируса, после чего нескольких участников наняли заниматься этим на постоянной основе, что привело к реконструкции содержимого всего свитка.
К сожалению, большая часть PHerc. 1667, расшифрованного свитка, была физически уничтожена во время нескольких попыток открыть его в 19 и 20 веке, так что из 19-24 сантиметров свитка, физически уцелело лишь 8. По нему понятно, что это стоический текст датированный 2 веком до нашей эры, у которого удалось идентифицировать автора — Аристокреона, ученика известного стоического философа Хрисиппа.
Остались ещё сотни свитков которые ждут своего часа, команда и не думает останавливаться. Новый текст из свитков в ближайшие годы станет регулярным событием.
Блогпост
@ai_newz
Из-за того что папирус разлагается за несколько сотен лет, за тысячелетия было утеряно большинство текстов из той эпохи. Геркуланумским папирусам в каком-то смысле повезло — из-за извержения Везувия две тысячи лет назад свитки обуглились и были погребены, что позволило им сохраниться.
Уже в наше время вышло сделать трёхмерные сканы свитков при помощи рентгена и использовать нейросети для их "виртуального разворачивания". Таким образом в 2023 году победителям Vesuvius Challenge удалось прочитать небольшой отрывок из одного папируса, после чего нескольких участников наняли заниматься этим на постоянной основе, что привело к реконструкции содержимого всего свитка.
К сожалению, большая часть PHerc. 1667, расшифрованного свитка, была физически уничтожена во время нескольких попыток открыть его в 19 и 20 веке, так что из 19-24 сантиметров свитка, физически уцелело лишь 8. По нему понятно, что это стоический текст датированный 2 веком до нашей эры, у которого удалось идентифицировать автора — Аристокреона, ученика известного стоического философа Хрисиппа.
Остались ещё сотни свитков которые ждут своего часа, команда и не думает останавливаться. Новый текст из свитков в ближайшие годы станет регулярным событием.
Блогпост
@ai_newz
Forwarded from Node.JS [ru] | Серверный JavaScript
Когда await превращается в троттлинг: микрозадачи, которые убивают latency
Event Loop в Node.js — штука предсказуемая. Цикл фаз: таймеры, I/O, poll, check, close. И между каждой макротаской прогоняются все микротаски, которые накопились. Каждый await создаёт микротаску. В спокойном микросервисе это незаметно, но под нагрузкой очередь микрозадач переполняет Event Loop, вызывая рост латентности без нагрузки на CPU.
Проблема: microtask queue overflow
Представь: async-функция в цикле обрабатывает пачку данных:
Каждая итерация пушит микротаску. Под нагрузкой очередь вырастает до десятков тысяч. Event Loop не успевает делать тики — latency растёт, хотя CPU свободен. Типичная ошибка: думать, что async всегда безопасен, и не замечать накладных расходов.
Диагностика: как найти виновника
Симптомы:
* латентность скачет под нагрузкой, но синхронные операции легковесные
* Event Loop utilization показывает всплески в фазе microtask
* таймеры и сокеты отвечают с задержкой, хотя процессор не на 100%
Для диагностики используй:
*
* логирование времени обработки микротаски через хук
Оптимизация: убираем лишние await
1. Не делай await в цикле, если функция синхронная. Вместо:
Просто:
2. Используй
3. Избегай
4. Тяжёлые операции уноси в фоновую очередь (Bull или BullMQ): не грузи Event Loop тем, что можно сделать отдельно.
Почему это критично в микросервисах?
При 5000 RPS и 20 микрозадачах на каждый запрос очередь вырастает до 100к. Чистка занимает миллисекунды — для highload это вечность. Практический совет: если функция могла быть синхронной — не делай её async. async — это не модно, это накладные расходы.
Вывод:
Диагностируй перегрузку Event Loop через мониторинг задержки, а оптимизируй — удалением лишних await и контролем конкурентности в циклах.
Event Loop в Node.js — штука предсказуемая. Цикл фаз: таймеры, I/O, poll, check, close. И между каждой макротаской прогоняются все микротаски, которые накопились. Каждый await создаёт микротаску. В спокойном микросервисе это незаметно, но под нагрузкой очередь микрозадач переполняет Event Loop, вызывая рост латентности без нагрузки на CPU.
Проблема: microtask queue overflow
Представь: async-функция в цикле обрабатывает пачку данных:
async function processBatch(items) {
for (const item of items) {
await processOne(item);
}
}Каждая итерация пушит микротаску. Под нагрузкой очередь вырастает до десятков тысяч. Event Loop не успевает делать тики — latency растёт, хотя CPU свободен. Типичная ошибка: думать, что async всегда безопасен, и не замечать накладных расходов.
Диагностика: как найти виновника
Симптомы:
* латентность скачет под нагрузкой, но синхронные операции легковесные
* Event Loop utilization показывает всплески в фазе microtask
* таймеры и сокеты отвечают с задержкой, хотя процессор не на 100%
Для диагностики используй:
*
perf_hooks.monitorEventLoopDelay() — если задержка растёт вместе с числом микрозадач* логирование времени обработки микротаски через хук
process.nextTick()Оптимизация: убираем лишние await
1. Не делай await в цикле, если функция синхронная. Вместо:
for (const item of items) await syncFunc(item);
Просто:
items.forEach(item => syncFunc(item));
2. Используй
Promise.all с контролем конкурентности:const CONCURRENCY = 10;
for (let i = 0; i < items.length; i += CONCURRENCY) {
await Promise.all(items.slice(i, i + CONCURRENCY).map(processOne));
}
3. Избегай
await с new Promise(resolve => ...) внутри циклов — отложи resolve, если возможно.4. Тяжёлые операции уноси в фоновую очередь (Bull или BullMQ): не грузи Event Loop тем, что можно сделать отдельно.
Почему это критично в микросервисах?
При 5000 RPS и 20 микрозадачах на каждый запрос очередь вырастает до 100к. Чистка занимает миллисекунды — для highload это вечность. Практический совет: если функция могла быть синхронной — не делай её async. async — это не модно, это накладные расходы.
Вывод:
Диагностируй перегрузку Event Loop через мониторинг задержки, а оптимизируй — удалением лишних await и контролем конкурентности в циклах.
Forwarded from Цифровой геноцид
Свежая книга 2025 года с разбором самых последних или не очень последних атак: что особенно зацепило взгляд - это настоящая классификация мотивации киберпреступника: хулиган, террорист, месть как побудительный мотив, аморальность как свойство, шантаж, саботаж, разведка - и разные теории, которые объясняют ту или иную преступную схему поведения киберпреступника
Кейсы показывают разные истории, например, вот кибератаки на украинские АЭС:
Согласно некоторым сообщениям, один из сотрудников энергосистемы заметил, что курсор на его компьютере начал перемещаться по экрану самостоятельно. Он попытался вернуть контроль над компьютером, но было уже поздно. Его сеанс был завершён, а 225 000 жителей оказались без света.
Атакующие тщательно планировали операцию в течение многих месяцев, сначала проводя разведку, чтобы изучить сети и получить учётные данные операторов, а затем осуществив синхронизированную атаку, напоминающую хорошо отрепетированный танец.
Задолго до событий декабря 2015 года, в течение самого 2015 года, в рамках кампании целевого фишинга (spear‑phishing) атакующие нацелились на ИТ‑персонал и системных администраторов, работавших в различных компаниях по распределению электроэнергии в Украине.
Кампания spear‑phishing заключалась в рассылке выбранным сотрудникам вредоносных писем, и при нажатии на вложение в одном из таких писем появлялось всплывающее окно с просьбой включить макросы для просмотра документа.
Включение макросов приводило к заражению их машин программой под названием BlackEnergy3.
Другие истории еще более интересные - например, пресловутая Кембридж Аналитика на фейсбуке, которая собирала данные пользователей, проблемы Линкендина, который настраивал социальные графы в других соцсетях ("Возможно вы знакомы с")
Все читать вряд ли стоит, но как сборник кейсов или иллюстраций рисков - интересно
Кейсы показывают разные истории, например, вот кибератаки на украинские АЭС:
Согласно некоторым сообщениям, один из сотрудников энергосистемы заметил, что курсор на его компьютере начал перемещаться по экрану самостоятельно. Он попытался вернуть контроль над компьютером, но было уже поздно. Его сеанс был завершён, а 225 000 жителей оказались без света.
Атакующие тщательно планировали операцию в течение многих месяцев, сначала проводя разведку, чтобы изучить сети и получить учётные данные операторов, а затем осуществив синхронизированную атаку, напоминающую хорошо отрепетированный танец.
Задолго до событий декабря 2015 года, в течение самого 2015 года, в рамках кампании целевого фишинга (spear‑phishing) атакующие нацелились на ИТ‑персонал и системных администраторов, работавших в различных компаниях по распределению электроэнергии в Украине.
Кампания spear‑phishing заключалась в рассылке выбранным сотрудникам вредоносных писем, и при нажатии на вложение в одном из таких писем появлялось всплывающее окно с просьбой включить макросы для просмотра документа.
Включение макросов приводило к заражению их машин программой под названием BlackEnergy3.
Другие истории еще более интересные - например, пресловутая Кембридж Аналитика на фейсбуке, которая собирала данные пользователей, проблемы Линкендина, который настраивал социальные графы в других соцсетях ("Возможно вы знакомы с")
Все читать вряд ли стоит, но как сборник кейсов или иллюстраций рисков - интересно
Forwarded from PSD | Дизайн-пространство
Dodo Future Week 2026. Айдентика и оформление мероприятия.
DFW 2026 - ежегодное стратегическое мероприятие, определяющее курс развития компании
Читать на дизайнерс | #кейс
DFW 2026 - ежегодное стратегическое мероприятие, определяющее курс развития компании
Читать на дизайнерс | #кейс
Forwarded from Daily Coding 🔥
🛠 Sugar - модульная библиотека для работы с нативными объектами JavaScript, расширения их прототипов и предоставления разработчикам возможности применять различные полезные функции непосредственно к переменным JS. Методы Sugar используются для самых разных целей, начиная от элементарной математики и заканчивая форматированием даты и проверкой типов.
🌍 Сайт
Daily Coding #инструменты #JavaScript & Max
🌍 Сайт
Daily Coding #инструменты #JavaScript & Max