Данная заДанная заметка является своего рода комментарием к другой статье на Хабре Удивительная история document.write, которая, в свою очередь, представляет из себя перевод публикации с сайта https://eager.io/ The Curious Case of document.write. Я же здесь хочу лишь подчеркнуть определённую полезность данного метода клиентского JavaScript (https://developer.mozilla.org/ru/docs/Web/API/Document/write), а также немного порассуждать о подходах и проблемах, связанных с генерацией разметки.
Новости
Сказ о том, как мы Python-микросервисы для облака шаблонизировали
Большая боль разработчиков, которые приходят на новый проект — для развертывания сервиса локально нужно пообщаться минимум с десятком людей, не говоря уже про интеграцию с CI/CD-сервером. В один момент мы решили реализовать это удобнее, заодно сократив время онбординга новых сотрудников.
При этом мы хотели получить не только быстрый ввод новых сервисов в эксплуатацию и минимальное время развертывании любого сервиса локально — мы хотели, чтобы все наши сервисы использовали более или менее одинаковые версии библиотек, настройки линтеров и конфигурацию. А поскольку мы финтех, то должен был сохраняться высокий уровень безопасности, а риск человеческих ошибок — снижаться.
Меня зовут Олег Чуркин. Я больше 10 лет занимаюсь разработкой на Python и сейчас руковожу разработкой нового процессинга платежей в QIWI. Расскажу, как мы реализовали boilerplate-шаблон для сервисов — на примере небольшого стартапа внутри нашей большой компании.
О бедном Arcanum замолвите слово
В Arcanum, как и в любой другой игре, существует масса собственных бинарных форматов. Эта статья познакомит вас с форматом упаковки изображений, который использовала студия Troika Games.
PostgreSQL Antipatterns: когда мешает внешний ключ
Внешние ключи (foreign keys) - мощный и удобный механизм контроля логической целостности данных в базе. Но он бывает не только лишь полезен, и может неплохо пригрузить вашу БД.
Внимательный взгляд на план запроса поможет избежать многих проблем - как при чтении из базы, так и при вставке в нее.
Security Week 2219: мобильные трояны со встроенной подпиской
На скриншоте выше показаны три примера приложений с вредоносной добавкой, которые какое-то время висели в официальном магазине приложений Google Play. Во всех присутствовал троян семейства Jocker. Так как в данном случае стоит задача прорваться сквозь проверки в аппстор, первоначальная версия приложения не содержит вредоносного кода. После установки активируется загрузчик, подгружающий «дополнительную функциональность», но и он срабатывает после простой проверки: опубликовано ли приложение в магазине? Если нет, программа считает, что выполняется в сендбоксе проверяющего и скрывает вредоносную функциональность.
Защита от спама и зловредного ПО в Carbonio
Электронная почта, которая является одним из наиболее распространенных форматов корпоративного общения, как правило становится основной целью злоумышленников, которые используют электронные письма как средства доставки зловредного ПО во внутреннюю сеть предприятия. В результате таких атак появляются утечки важной информации или потери корпоративных данных, которые влекут за собой не только финансовые, но и репутационные потери. Надежная защита почтового сервера от кибератак позволяет купировать большую часть киберугроз и именно поэтому защита почтового сервера предприятия становится приоритетом номер один среди системных администраторов и специалистов по кибербезопасности. В Carbonio для защиты от угроз используются такие Open-Source решения, как антивирус ClamAV, антиспам SpamAssassin и интерфейс для их взаимодействия с почтовым сервером new-amavisd. В данной статье мы расскажем о том, как правильно использовать их для обеспечения безопасности почтового сервера Carbonio.
Некоторые станции международной службы лазерной дальнометрии перестали предоставлять данные для ГЛОНАСС
В системе ГЛОНАСС пользователь ориентируется по навигационным спутникам как по маякам. Эти маяки удалены на расстояние около 20 000 км и движутся относительно поверхности земли со скоростью более 3 км/с. Но при этом спутники непрерывно передают параметры, позволяющие рассчитать их положение с точностью порядка метра. И чем точнее эти параметры, тем точнее вы, как пользователь системы, можете определить своё местоположение...
Как мы создавали движок на Unity (часть 0)
Привет, Хабр!
В данном цикле статей мы расскажем, как группа студентов создавала свой игровой движок для визуальных новелл, используя Unity. Звучит не оптимизировано, но почему бы не попробовать?
Разработчик и колпак
Развитие микроэлектроники, ИТ технологий и широкого спектра программных продуктов открыло новые возможности по контролю всего. Датчики, камеры, цифровые следы… Магнитофон в чемодане уже неактуален.
Разработчики пишут, а компании внедряют различные системы для мониторинга эффективности работы сотрудников. Казалось бы, в зоне опасности банковские операционисты, кассиры, сотрудники колл-центров и т.д, а разработчики на коне.
По факту оказывается, что разработчики могут находиться под куда более жестким контролем.
Как же так???
Критическая информационная инфраструктура Индии
Автор: Евгений Баклушин, руководитель направления
Нестабильная геополитическая обстановка и непрерывное развитие ИТ-технологий и инструментов способствуют постоянному росту киберпреступлений (вплоть до кибертерроризма) в отношении критических информационных инфраструктур государств (далее – КИИ). Дополнительное влияние оказывает постоянное появление новых тактик и техник реализации угроз нарушителями. В этой связи все более актуальным становится сотрудничество между государствами и международное сотрудничество бизнеса по противодействию киберпреступлениям в отношении КИИ и совершенствованию систем и средств защиты КИИ. Перспективным направлением в данной области может стать обмен опытом по предотвращению, ликвидации и предупреждению последствий компьютерных атак.
С учетом влияния внешних обстоятельств и изменений в геополитической обстановке первостепенным вектором сотрудничества становится Азия. При этом Китай и обе Кореи довольно самостоятельны и закрыты внутри себя, а Япония активно взаимодействует с западным альянсом. Таким образом наиболее перспективным является взаимодействие (союз) с глобальным ИТ-хабом или «новым информационным чудом» – Индией.
В данной статье мы рассмотрим, как обстоит ситуация с защитой КИИ в Индии, а также чем она отличается от обстановки в России.
Мультиклеты: влияние реконфигурации на бенчмарки и задачи майнинга
В 2014 году была опубликована статья о первом мультиклеточном процессоре с реконфигурацией. За прошедшее время накопился опыт ее использования и понимание, где она может применена с максимальным эффектом.
Как известно, физические и технологические ограничения, объективно существующие при проектировании и изготовлении новых микропроцессоров, постепенно перешли из теоретической в практическую плоскость. Планарные транзисторы перестали уменьшаться в 2D размерах и стали переходить в 3D измерение. Расстояния на чипе стали ограничивать тактовую частоту, а размеры чипа привели к тому, что на пластине годным стало считаться то, что хоть как-то работает. При этом, микропроцессоры стали напоминать ламповые компьютеры 60-х годов прошлого века, на корпусе которых можно было жарить яичницу.
Сегодня большинство бенчмарков процессоров, в первую очередь, оценивают производительность. Насколько быстро рисуется картинка на дисплее, насколько быстро перемножаются матрицы или как быстро осуществляется поиск в базе данных. Это, безусловно, важно. Но почему-то мало кто задается вопросом, насколько это оптимально. Может быть, лучше увеличить время решения на 10% и при этом уменьшить энергопотребление на 50%?
Как изменилась стандартная библиотека Python за последние годы
Когда выходит очередная версия Python, все внимание достается новым фичам языка: моржовому оператору, слиянию словарей, паттерн-матчингу. Еще много пишут об изменениях в асинхронной работе (модуль asyncio
) и типизации (модуль typing
) — эти модули на виду и бурно развиваются.
Остальным модулям стандартной библиотеки достается незаслуженно мало внимания. Хочу это исправить и рассказать, что интересного появилось в версиях 3.8–3.10.
Что происходит с лицензиями в open source
Все больше разработчиков модифицируют лицензии с целью защитить свои открытые продукты от перепродажи сторонними компаниями. Такая практика разделила профессиональное сообщество на два лагеря. Мы решили обсудить ситуацию и разные точки зрения по этому вопросу.
Книга «Изучаем Arduino. 65 проектов своими руками. 2-е издание»
Управление агрегацией логов с помощью Logstash-operator в Kubernetes — opensource-решение от М2
Писать, собирать, агрегировать и сохранять логи для последующего анализа важно: это наиболее подробное представление того, как работает система.
Логи можно собирать и отправлять в централизованную систему по-разному, например используя библиотеки в самом приложении или сторонние агенты вроде Filebeat, Fluent Bit, Vector. Есть множество систем хранения вроде Elasticsearch, Loki, Splunk, файлы на диске или объекты в S3.
Мы в М2 тоже занимаемся этим вопросом и постоянно ищем схемы и инструменты, помогающие улучшать централизованную систему логирования. Я, как инженер развития инфраструктуры, непосредственно принимаю в этом участие. В статье хотел бы поговорить об этапе агрегации и поделиться нашими наработками.
Используем клиентский процессор по максимуму. Часть 1: Rust + WebAssembly
На Хабре существует немало статей, посвящённых повышению производительности программ за счёт параллельных вычислений и использования векторных команд. Я решил дополнить этот список и рассказать о том, как можно оптимально задействовать все ресурсы процессора клиентской стороны веб-приложения.
В этой части мы поговорим о том, как, используя Rust в связке с WebAssembly, можно ускорить тяжёлые вычисления на примере программы для рендеринга фрактала Ньютона. В следующей части будет подробно рассказано о векторных командах и мультипоточных вычислениях в браузере.
Прирост производительности при использовании всех техник оптимизации по сравнению с реализацией на чистом JS может составлять ~1000%: от 8–9 до 100–110 фпс. Это можно проверить на интерактивном онлайн-демо, позволяющем также поиграться с числом потоков, способом вычислений и формой фрактала.
Парадоксальный рост популярности Python в научных вычислениях
Чтобы уверенно пересечь незнакомую местность, можно или двигаться быстрее, или подыскивать удобную дорожку. Другими словами, слишком пристальное внимание к скорости как таковой может вас притормозить. То же касается и разработки программного обеспечения.
Прыжок горбатой лошади или как мы обновляем наши системы
Привет! Меня зовут Евгений Сальников и я тимлид одной из команд Outbound, которая входит в департамент Business Process Automation в Lamoda. В нашем направлении мы отвечаем за сервисы доставки.
Эта статья написана по мотивам реальной задачи по обновлению нашей большой системы, а именно — переход с очень старой версии Apache Camel на актуальную. Я не расскажу чего-то особо нового, но если у вас уже есть Apache Camel и вам «только спросить», как с ним управляться — милости просим.
Смарт-карты: особенности протокола T=0 и на что они влияют
Когда начинаешь изучать смарт карты, то все выглядит достаточно понятно и логично: команды APDU несложны и описаны в ISO 7816-4, интерфейс winscard описан в MSDN. В глубины PCSC погружаться особо и не приходится. Первые программы можно написать довольно быстро. Непонятные особенности вылезают чуть позже, и выясняется, что известные два протокола T=0 и T=1 на самом деле совсем разные протоколы, и они просто похожи друг на друга. Поначалу возникает соблазн работать с ними одинаково, а это может доставить много хлопот вплоть до сбоя коммуникации в самый неожиданный момент.
Зачем разработчикам игр на Unity использовать статический анализ?
С годами стоимость создания игр стала больше, вырос их масштаб, а следовательно, и их кодовая база. Разработчикам становится всё сложнее уследить за ошибками. А забагованная игра влечёт финансовые и репутационные убытки. Как же с этим может помочь статический анализ?