Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Анимации CSS, основанные на времени

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.8K

Демонстрация анимаций

В моем предыдущем посте Time Uniform For CSS Animation я рассказал о способе создания CSS-анимации с использованием тиков вместо ключевых кадров. Он был ограничен в применении, поскольку в CSS отсутствовала возможность выполнять сложные математические вычисления.

После долгих лет ожидания в CSS теперь поддерживается достаточное количество математических функций, в частности, mod(), round() и тригонометрические функции. Пришло время вернуться к анимации, основанной на времени, надеюсь, на этот раз она будет более полезной.

Читать далее
Всего голосов 15: ↑15 и ↓0+16
Комментарии0

Реализация циклической генерации подземелий «изнутри»: да что тут сложного?

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров10K

Вам нравятся старые Legend of Zelda времён SNES и GBA? Может быть, вам пришлась по вкусу Dark Souls? А, возможно, вы ещё и фанат Quake? Но что объединяет все эти игры? Для меня это в первую очередь дизайн уровней. Головоломки, удобные шорткаты и нелинейность исследования - вот то, что делает карту игры частью общего игрового процесса и вдыхает жизнь в процесс исследования мира.

В наше время расцвета жанра rogue-lite вопрос генерации игровых уровней актуален как никогда. Однако по-настоящему интересные уровни в жанре - большая редкость, я бы даже сказал, феноменальная. Чаще всего уровни представляют собой просто наборы заранее заготовленных комнат-коробок, случайным образом приставленных друг к другу, без какой-либо логичной высокоуровневой картины. Но, всё же, я знаю одну игру, которая взяла принципиально другой подход: Unexplored. На мой взгляд, она пересмотрела устоявшийся стереотип об ограничениях левелдизайна в рогаликах. Всё, что для этого понадобилось - циклическая генерация подземелий (Cyclic dungeon generation).

К сожалению, описаний этого алгоритма в Сети мною было найдено всего лишь два, одно из которых слишком поверхностно, а другое ссылается на отсутствующие в свободном доступе инструменты. Попытка самостоятельно повторить алгоритм без таких инструментов приводит к ряду любопытных задачек.

Каких же?
Всего голосов 28: ↑28 и ↓0+34
Комментарии15

Как «оптимизация» зарплат вредит бизнесу, и что делать

Уровень сложностиСредний
Время на прочтение64 мин
Количество просмотров34K

Оптимизация фонда оплаты труда (далее - ФОТ) в долгосрочной перспективе вредит компаниям, ухудшает их положение и усиливает кризисы.

Этот вопрос мы рассмотрим на основе проблем в Boeing и Blizzard, разбора жёсткого поведения Amazon в отношении сотрудников, с примерами лучших практик Генри Форда и General Electric, а так же ссылками на исследования, с описанием психологических аспектов и ключевых трендов. И рекомендациями: что с этим делать.

Цель данной публикации - описать ключевые аспекты и нюансы проблемы, чтобы любой мог прийти к финансистам, кадровикам или генеральному директору с ней со словами “хватит вредить бизнесу оптимизацией ФОТ!"

Оптимизировать вред оптимизации ФОТ
Всего голосов 90: ↑87 и ↓3+100
Комментарии132

JavaScript: малоизвестные, но полезные API

Время на прочтение10 мин
Количество просмотров19K


Привет, друзья!


Представляю вашему вниманию перевод этой замечательной статьи, посвященной 4 малоизвестным API, которые в некоторых ситуациях могут оказаться весьма полезными:



Код примеров на GitHub.

Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии0

Firefox остаётся самым быстрым браузером

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров40K


Почти год назад случилось знаковое событие: впервые в истории Firefox обошёл Chrome по скорости работы.

Многие помнят, что с момента выхода в 2008 году Chrome отличался высокой производительностью, а Firefox на его фоне выглядел тяжеловесным и страдал от утечек памяти. Но постепенно Mozilla исправила ситуацию, так что в 2023 году браузеры наконец поменялись местами.

Единственное сомнение может вызвать объективность тех тестов, всё-таки Speedometer 2.0 — довольно старый набор 2018 года. Может, он не соответствует современному разжиревшему вебу? Что ж, теперь увидела свет новая версия Speedometer 3.0, поэтому взглянем на более достоверную и объективную картину: какой браузер быстрее на самом деле?
Читать дальше →
Всего голосов 93: ↑90 и ↓3+110
Комментарии129

Фильтр Блума

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров11K



У каждого разработчика есть набор инструментов для решения различных задач. Однако со временем возникает необходимость расширять этот набор, чтобы эффективно справляться с более сложными задачами. В этой статье я хочу познакомить вас с инструментом, которым вы, скорее всего, раньше не пользовались. И хотя он подходит для решения узкого спектра задач, его использование может оказаться весьма полезным. Знакомьтесь — "фильтр Блума" (Bloom filter).

Читать дальше →
Всего голосов 44: ↑41 и ↓3+53
Комментарии16

Самые полезные библиотеки JS для красивых анимаций

Время на прочтение5 мин
Количество просмотров16K

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

Анимации добавляют жизни приложениям и сайтам и делают их простыми в использовании. Мы можем добавлять изменение кнопок при нажатии, всплывающие объекты, эффекты перехода и многое другое, что позволяет пользователю не просто ознакомиться с содержимым, а еще и интересно провести время.

Мы поговорим о библиотеках JavaScript упрощающих добавление этих анимаций для разработчиков, делая приложения более приятными.

Приятного прочтения :-)

Читать далее
Всего голосов 31: ↑31 и ↓0+32
Комментарии6

Пишу Minecraft сервера с нуля. Часть 1. Пинг

Время на прочтение6 мин
Количество просмотров9.9K

Этот цикл статей о разработке серверного ПО совместимого с протоколом Minecraft: Java Edition.

В этой части я акцентирую внимание на основных вещах: типы данных, структура пакетов и как клиент получает информацию о сервере.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии15

Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: свойство display

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров15K


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


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


У меня получился достаточно большой список. Он составлен на основе моего опыта, опыта моих знакомых и публично доступных собеседований. Каждый вопрос будет отдельной статьёй.


Сегодня я дам ответ на следующий вопрос: «Зачем нужно использовать свойство display

Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии12

CSS для печати на бумаге

Время на прочтение10 мин
Количество просмотров11K

По работе я довольно часто занимаюсь созданием генераторов печати на HTML для воссоздания и замены форм, которые компания традиционно заполняла от руки на бумаге или в Excel. Это позволяет компании переходить на новые веб-инструменты, в которых форма автоматически заполняется по параметрам URL из нашей базы данных, создавая при этом тот же результат на бумаге, к которому все привыкли.

В этой статье я объясню основы CSS, управляющие внешним видом веб-страниц при печати, и дам пару советов, которые могут вам помочь в этом.

Читать далее
Всего голосов 23: ↑22 и ↓1+28
Комментарии17

Анимация в браузерах и как с ней работать

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров6.1K

Многие разработчики умеют создавать красивые и плавные анимации, но далеко не все понимают, как на самом деле они работают и что происходит «под капотом» браузера в момент их отрисовки и запуска. Вместе с тем, работа с анимацией без знания основных нюансов нередко заканчивается появлением лагов и чрезмерным потреблением ресурсов.

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

Меня зовут Сергей Чикуёнок. Я ведущий разработчик в ОК. В этом материале я расскажу об основных этапах работы с анимацией для браузеров, ключевых сложностях и вариантах их нативной оптимизации. 

Читать далее
Всего голосов 43: ↑43 и ↓0+43
Комментарии8

Почему варп-двигатель не получится построить при помощи антиматерии

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров13K
image

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

На ускорителях учёные получали мизерное количество античастиц, однако в целом антиматерии за всё время экспериментов было получено всего несколько нанограммов. Макроскопическое количество антивещества никто ещё не получал — из-за высокой стоимости и сложности производства и хранения (так что до придуманного Дэном Брауном сценария ещё далеко).

Столкновение любой частицы с её античастицей приводит к их взаимной аннигиляции, порождая высокоэнергетические фотоны (гамма-лучи), нейтрино, а иногда и менее массивные пары частица-античастица. Большая часть общей энергии аннигиляции выходит в виде ионизирующего излучения. При наличии окружающей материи энергия этого излучения поглощается и преобразуется в другие формы энергии, такие как тепло или свет. Количество выделяемой энергии обычно пропорционально общей массе столкнувшихся материи и антиматерии, в соответствии с известным уравнением эквивалентности массы и энергии, E=mc2.
Читать дальше →
Всего голосов 54: ↑45 и ↓9+55
Комментарии115

Про Бурали-Форти, Пуанкаре и то самое определение единицы

Время на прочтение11 мин
Количество просмотров81K
Если вы, уважаемый мой читатель, имеете обыкновение проводить много времени в интернете, вы наверняка уже видели эту картинку с цитатой:

image

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

В нижеследующем тексте я раскрою перед вами тайну этого загадочного сочетания символов. Пожалуйте под кат, однако помните поучительную историю о любопытной Варваре, которой на базаре рассказали про парадокс Банаха-Тарского, отчего она сошла с ума, разрезала себе нос на конечное количество частей и склеила из них рогатую сферу Александера.
N.B. Я предупреждал.
Всего голосов 145: ↑141 и ↓4+137
Комментарии146

Каково это, создавать язык программирования сегодня?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров17K

«Эта книга – классика. Относитесь к ней бережно».

Такую фразу произнёс архитектор из нашей команды, передавая мне The Dragon Book. Разработкой компиляторов я увлёкся где-то 15 лет назад ещё на заре своей карьеры. Как-то раз, читая эту книгу поздно вечером, я заснул, небрежно уронив её на пол. Надеюсь, владелец не заметил небольшую вмятину на обложке после того, как я ему её вернул.

Вышла эта книжка в 1986 году. В те времена создание компиляторов было крайне сложной задачей, требовавшей обладания различными навыками в области компьютерных наук в целом и программирования в частности. Теперь, почти четыре десятилетия спустя, этой задачей занимаюсь я. Насколько сложна она сегодня? Приглашаю вместе разобрать процесс создания языка и посмотреть, насколько современные инструменты его упростили.
Читать дальше →
Всего голосов 44: ↑41 и ↓3+56
Комментарии5

Беспредел в госзакупках: как ФОМС препятствовал исполнению госконтракта

Время на прочтение9 мин
Количество просмотров13K

«Договорной» тендер, ошибка или личная неприязнь организатора? Мы пока не выяснили.

Привет! На связи Cloud4Y, корпоративный облачный провайдер. Хотим поделиться историей о том, как мы выиграли тендер ФОМС на 26 млн рублей, но оказались «неправильным» победителем. За это нам назначили штраф и могут занести в чёрный список недобросовестных исполнителей.

Читать далее
Всего голосов 77: ↑71 и ↓6+77
Комментарии71

Повторяем Bad apple на языке Python ASCII-графикой

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.2K

Повторяем Bad Apple в Python ASCII-графикой.

Доброго времени суток, уважаемые читатели хабра, в этой статье я расскажу Вам о том, как я повторил клип Bad Apple ASCII-графикой.

Читать далее
Всего голосов 6: ↑5 и ↓1+6
Комментарии34

Утечки памяти, которые не утечки

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров21K

Что случилось? Авария, ужас-ужас

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

В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течёт, сервисы падают с OOM каждый день, все пропало!

Да, картинка действительно удручающая. Всё время, когда есть нагрузка, память в контейнере прирастает и почти не очищается при снятии нагрузки. Все остальные метрики, которые мы собирали были в норме: event loop lag, использование CPU, active request, open handles. Прирастала только используемая память и незначительно увеличивалось время отклика сервиса.

Что-ж, выглядит как классическая утечка, надо искать источник.

Читать далее
Всего голосов 95: ↑94 и ↓1+106
Комментарии15

Как на самом деле работает Java ClassLoader system? (с картинками) — Часть 1/3, Загрузка

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров23K

Так ли на самом деле работает процесс загрузки классов, как его описывает Wikipedia и Baeldung? ClassNotFoundException — это откуда и чье? Какие виды загрузчиков классов актуальны в Java 20?

Объясняем подпроцесс загрузки, из системы Java ClassLoader, на приятных Excalidraw диаграммах, со ссылками на оригинальные источники.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии12

Как графический формат прошлого века привёл к zero-click exploit в iOS

Время на прочтение11 мин
Количество просмотров19K

Тема информационной безопасности в сфере интересов команды М.Видео и Эльдорадо, поэтому делимся с вами очередным интересным переводным тематическим материалом. В начале 2022 года Citizen Lab удалось выявить zero-click-эксплойт на основе NSO iMessage, использовавшийся для атаки на активиста из Саудовской Аравии.

В этой серии из двух постов мы впервые расскажем, как работает zero-click-эксплойт iMessage.

Судя по нашим исследованиям и открытиям, это один из самых технически сложных эксплойтов, которые нам встречались, ещё больше демонстрирующий, что предоставляемые NSO возможности считались доступными только нескольким государствам.

Рассматриваемая в посте уязвимость была устранена 13 сентября 2021 года в iOS 14.8 в рамках CVE-2021-30860.
Читать дальше →
Всего голосов 106: ↑106 и ↓0+106
Комментарии4

Большая шпаргалка по Rust. 1/2

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров14K



Hello world!


Представляю вашему вниманию первую часть большой шпаргалки по Rust.


Вторая часть.


Другой формат, который может показаться вам более удобным.


Обратите внимание: шпаргалка рассчитана на людей, которые хорошо знают любой современный язык программирования, а не на тех, кто только начинает кодить 😉


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

Читать дальше →
Всего голосов 37: ↑35 и ↓2+43
Комментарии5

Информация

В рейтинге
4 634-й
Зарегистрирован
Активность