Социальные сети Рунета
Суббота, 20 апреля 2024

[Перевод] Как реализован рендеринг «Ведьмака 3»: молнии, ведьмачье чутьё и другие эффекты Часть 1. Молнии В этой части мы рассмотрим процесс рендеринга молний в Witcher 3: Wild Hunt. Рендеринг молний выполняется немного позже эффекта занавес дождя, но всё равно происходит в проходе прямого рендеринга. Молнии можно увидеть на этом видео: Они очень быстро исчез...

[Перевод] Современный рендеринг текста в Linux: часть 1 Добро пожаловать в первую часть «Современного рендеринга текста в Linux». В каждой статье из этой серии мы разработаем самодостаточную программу на C для визуализации символа или последовательности символов. Каждая из этих программ будет реализовывать функцию, которую я счит...

[Перевод] Рендеринг шрифтов с помощью масок покрытия, часть 1 Когда мы приступали к разработке нашего профилировщика производительности, то знали, что будем выполнять почти весь рендеринг UI самостоятельно. Вскоре нам пришлось решать, какой подход выбрать для рендеринга шрифтов. У нас были следующие требования: Мы должны иметь возмо...

[Перевод] Разбираемся в Angular Ivy: Incremental DOM и Virtual DOM Angular — наш основной инструмент для написания приложения TestMace. В одной из прошлых статей мы затронули тему Ivy рендерера. Самое время поподробнее узнать, чем Ivy отличается от предыдущего движка. В нашей компании Nrwl мы уже какое-то время находимся в предвкушении во...

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

[Из песочницы] Friendly Open Space JS: Рендеринг на стороне клиента и создание враппера «Friendly Open Space» — очень молодой фреймворк, но бегать уже умеет :-) В данной статье по освоению «Friendly Open Space», мы освоим рендеринг шаблона в браузере и запуск приложения на локальной файловой БД. Ядро фреймворка поддерживает два типа сборки шаблона на клиенте: ...

[Из песочницы] Как я сделал удобной разработку на Vue.js с server-side рендерингом Всем привет! Начну с небольшой предыстории. Свой новый проект я решил попробовать сделать на Vue.js. Мне нужен был серверный рендеринг (SSR), CSS модули, code-splitting и прочие прелести. Разумеется, для повышения производительности разработки нужна была горячая перезагр...

TV Bro 1.2.10 TV Bro — веб браузер, оптимизированный для Android TV. Возможности TV Bro: управление с дистанционного пульта; поддержка вкладок; голосовой поиск; смена User Agent; использует встроенный в Android движок веб рендеринга (WebKit/Blink based); встроенный менеджер загрузо...

[Перевод] История о V8, React и падении производительности. Часть 1 В материале, первую часть перевода которого мы публикуем сегодня, речь пойдёт о том, как JavaScript-движок V8 выбирает оптимальные способы представления различных JS-значений в памяти, и о том, как это влияет на внутренние механизмы V8, касающиеся работы с так называемыми фо...

[Перевод] О сложностях при портировании Dead Cells на мобильные платформы Лаура Саада, главный продюсер в Playdigious, поделилась историей о процессе портирования Dead Cells на мобильные платформы. Предупреждая вопросы: да, Dead Cells будет премиумной мобильной игрой. Игра платна на PC, на консолях, такой останется и на мобилах. Год назад Motion...

Как мы пилили серверный рендеринг и что из этого вышло Всем привет! На протяжении года мы переходим на React и задумались о том, как бы сделать так, чтобы наши пользователи не ждали клиентской шаблонизации, а видели страницу как можно быстрее. С этой целью решили делать серверный рендеринг (SSR — Server Side Rendering) и оптимиз...

Как определить и сократить блокирующие рендеринг ресурсы В статье речь пойдёт об одном из направлений оптимизации критического пути рендеринга. Сообщение Как определить и сократить блокирующие рендеринг ресурсы появились сначала на Searchengines.ru.

Вредные советы: как правильно писать техническую документацию? Часть вторая Советы по грамотному написанию технической документации для пользователей. Часть 2 Продолжение руководства нашего технического писателя Андрея Старовойтова, которое поможет сделать вашу пользовательскую документацию проще и понятнее. Начало статьи можно почитать тут, а то...

Bourbon Engine: UI из JSON Bourbon Engine - движок для рендеринга интерфейса из JSON-документа, который берется с сервера.

Алгоритм взаимодействия сотен тысяч уникальных частиц на GPU, в GLES3 и WebGL2 Описание алгоритма логики, и разбор рабочего примера в виде техно-демки-игры WebGL2 версия этой демки https://danilw.itch.io/flat-maze-web остальные ссылки смотрите в статье. Статья разбита на две части, сначала про логику, и вторая часть про применение в игре, первая часть...

[Перевод] 14 советов по написанию чистого React-кода. Часть 2 Сегодня мы публикуем вторую часть материала о написании чистого кода при разработке React-приложений. Вот ещё несколько полезных советов. → Читать первую часть Читать дальше →

Google тестирует улучшенный движок рендеринга для Googlebot Новый движок работает на Chrome 69 и выше

Nvidia разрабатывает технологию рендеринга на основе нескольких GPU Nvidia инвестирует в разработку новой технологии рендеринга на базе нескольких GPU. Реализованный на уровне одного графического процессора, шахматный рендеринг был одним из многих секретов компании, который улучшил производительность со времёни семейства графических процесс...

Байт-машина для форта (и не только) по-индейски (часть 3) Наступил год 2019. Новогодние праздники подходят к концу. Самое время начать вспоминать байты, команды, переменные, циклы… Что-то я все уже забыл с этими праздниками. Придется вспоминать вместе! Сегодня сделаем интерпретатор для нашей байт-машины. Это третья статья, первы...

Субпиксельный рендеринг произвольных векторных изображений (Haarmony LCD) Субпиксельный рендеринг (вики)— способ увеличить видимое разрешение LCD или OLED дисплея путем рендеринга пикселей с учетом свойств экрана. Используется тот факт, что каждый пиксель экрана фактически состоит из отдельных красных, зеленых и синих субпикселей. В посте я хочу р...

[Перевод] Рендеринг кадра Resident Evil 2 Общие примечания Все результаты получены на довольно старой машине (i7 3770+GTX 770), игра запускалась в DirectX 11 со средним качеством. Для анализа использовались RenderDoc и Nsight. Игра работает на движке Re Engine, ставшем наследником MT Framework — движка предыдущего...

[Из песочницы] Рендеринг 3D графики с помощью OpenGL Введение Рендеринг 3D графики — непростое занятие, но крайне интересное и захватывающее. Эта статья для тех, кто только начинает знакомство с OpenGL или для тех кому интересно, как работают графические конвейеры, и что они из себя представляют. В этой статье не будет точных ...

[Перевод] Как происходит рендеринг кадра A Plague Tale: Innocence Предисловие Как и в других моих исследованиях, давайте начнём с введения. Сегодня мы рассмотрим последнюю игру французского разработчика Asobo Studio. Впервые я увидел видео этой игры в прошлом году, когда коллега поделился со мной 16-минутным геймплейным трейлером. Моё вни...

[Перевод] История первого GPU: Rendition Vérité 1000 Есть много хорошей литературы о движке Quake: книги, бесчисленные статьи в Интернете, блоги и вики-страницы. Среди них всех моими любимыми остаются «Graphics Programming Black Book» Майкла Абраша, опубликованная в 1997 году, и «Rocket Jump: Quake and the Golden Age of First...

Electronic Arts продемонстрировала работу новой технологии рендеринга волос на движке Frostbite Сам видеоролик — лучше любого фильма ужасов.

Google уже определился с датой релиза нового движка для рендеринга Об этом рассказал представитель компании Мартин Сплит

[Перевод] Учебный курс по React, часть 21: второе занятие и практикум по условному рендерингу Сегодня, в переводе следующей части учебного курса по React, мы предлагаем вашему вниманию второе занятие по условному рендерингу и практикум по этой теме. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: ф...

[Перевод] Втиснуть Бейсик в 768 байт Тем, кому посчастливилось написать свою первую программу на Бейсике в конце восьмидесятых, объём интерпретатора в 16 килобайт кажется вполне естественным. Так было не всегда, известны интерпретаторы объёмом в 8 и 4 килобайта, конечно, с более скромным набором функций. Но в...

Google активно работает над новым движком для рендеринга и уже назначил дату релиза В октябре Google заявил, что работает над закрытием разрыва между Googlebot и современными браузерами. На днях выяснилось, что работа активно продвигается и, возможно, уже близится к завершению. Так, на конференции SMX Munich сотрудник Google Мартин Сплит (Martin Splitt), ко...

[Перевод] Исследование шейдера песка игры Journey Среди множества инди-игр, выпущенных за последние 10 лет, одной из самых любимых для меня определённо является Journey. Благодаря своей потрясающей эстетике и красивому саундтреку Journey стала примером превосходства практически в каждом аспекте разработки. Я разработчик иг...

[Перевод] Ускорение instagram.com. Часть 3 Сегодня публикуем перевод третьей части серии материалов об ускорении instagram.com. В первой части мы говорили о предварительной загрузке данных, во второй — об отправке данных клиенту по инициативе сервера. Здесь речь пойдёт о кэшировании. Читать дальше →

[Перевод] Портируем многопользовательскую игру с С++ на веб c Cheerp, WebRTC и Firebase Введение Наша компания Leaning Technologies предоставляет решения по портированию традиционных desktop-приложений в веб. Наш компилятор C++ Cheerp генерирует сочетание WebAssembly и JavaScript, что обеспечивает и простое взаимодействие с браузером, и высокую производительнос...

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

[Из песочницы] Создаем свой компонент с микро-шаблонами Всем привет. Все кто так или иначе писал на фреймворке Angular сталкивался или работал с библиотекой Angular Material. Это очень хорошо написанная библиотека компонентов способная к гибкой стилизации, которая реализована через возможность создания различных тем вашего прилож...

[Перевод] Как работает Flutter Как Flutter работает на самом деле? Что такое Widgets, Elements, BuildContext, RenderOject, Bindings?.. Сложность: Новичок Вступление В прошлом году (прим: в 2018), когда я начал свое путешествие в сказочный мир Flutter, в Интернете было очень мало информации по сравнению с...

История второго места в Russian AI Cup 2018: CodeBall Всем привет! Я студент третьего курса, и в самом начале учёбы в университете я узнал про соревнования по искусственному интеллекту Russian Ai Cup, а позже и Mini Ai Cup, и начал в них активно участвовать, показывая неплохие результаты. В этот раз RAIC выпадал прямо на сесс...

В Google Codelabs добавили практикумы по SPA и динамическому рендерингу Сотрудник Google Мартин Сплит сообщил в Twitter, что в Google Developer Codelabs появились новые SEO-практикумы — по одностраничным приложениям (Single Page Apps, SPA) и динамическому рендерингу. Теперь на этой площадке вебмастера смогут попрактиковаться не только в до...

[recovery mode] ReactJS + MobX — опыт использования DI Мне кажется, настало время поделится подходом для написания ReactJS App, я не претендую на уникальность. Первый абзац можно пропустить. Я занимаюсь web разработкой уже давно, но последние четыре года я плотно сижу на ReactJS и меня все устраивает, в моей жизни был redux, но...

Семь тревожных признаков того, что вы метеозависимы, даже если вы так не думаете Bitch is back (сэр Элтон Джон) Друзья, как я и обещал, возвращаюсь с очередной историей о нашем участии в следующем витке модернизации метеосети Росгидромета. Про первую часть наших приключений можно почитать здесь. Ну а сейчас — долгожданное продолжение. Читать дальше →

[Перевод] Ускорение instagram.com. Часть 2 Сегодня мы представляем вашему вниманию перевод второго материала из серии, посвящённой оптимизации instagram.com. Здесь речь пойдёт об улучшении механизма заблаговременного выполнения GraphQL-запросов и о повышении эффективности передачи HTML-данных клиенту. → Читать, за...

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

[Перевод] Как реализовать язык программирования на JavaScript. Часть 3: CPS-интерпретатор Здравствуйте! Представляю вам третью часть моего перевода руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достат...

[Перевод] .NET Core Workers как службы Windows В .NET Core 3.0 мы представляем новый тип шаблона приложения под названием Worker Service. Этот шаблон предназначен для того, чтобы дать вам отправную точку для написания долго-работающих сервисов в .NET Core. В этом пошаговом руководстве мы создадим worker и запустим его в ...

[Перевод] Wolfenstein 3D: трассировка лучей с помощью WebGL1 После появления прошлым летом графических карт Nvidia RTX трассировка лучей (ray tracing) снова обрела былую популярность. За последние несколько месяцев мою ленту в Twitter заполнил бесконечный поток сравнений графики со включенным и отключенным RTX. Полюбовавшись на тако...

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

В Сети появились спецификации и рендеринг Nokia 1 Plus На данный момент компания HMD Global выпустила два Android Go смартфона. Первым является Nokia 1, который был представлен в феврале прошлого года, а вторым Nokia 2.1. ***

[Перевод] Рендеринг текста вас ненавидит Оглавление 1. Терминология 2. Стиль, вёрстка и форма зависят друг от друга? 3. Текст — это не отдельные символы 3.1. Наложения текста 3.2. Стиль может изменить лигатуру 4. Эмодзи ломают цвет и стиль 5. Сглаживание — это ад 5.1. Субпиксельные смещения ломают кэш глифов...

[Из песочницы] Почему шаблон политики приватности вам не подойдет? Копирование и генерирование политики приватности Копирование шаблонной политики приватности или использование генераторов (автоматическое составление) – весьма распространенная практика. Действительно, в некоторых случаях это может сэкономить время, если речь идет о копирова...

[Перевод] Функциональное мышление. Часть 9 Это уже 9 часть серии статей по функциональному программированию на F#! Уверен, на Хабре существует не очень много настолько длинных циклов. Но мы не собираемся останавливаться. Сегодня расскажем про вложенные функции, модули, пространства имен и смешивание типов и функций в...

[Перевод] Объёмный рендеринг в WebGL Рисунок 1. Пример объёмных рендеров, выполненных описанным в посте рендерером WebGL. Слева: симуляция пространственного распределения вероятностей электронов в высокопотенциальной молекуле белка. Справа: томограмма дерева бонсай. Оба набора данных взяты из репозитория Open ...

[Перевод] Функциональное мышление. Часть 8 Привет, Хабр! Мы с небольшим запозданием возвращаемся с новогодних каникул с продолжением нашей серии статей про функциональное программирование. Сегодня расскажем про понимание функций через сигнатуры и определение собственных типов для сигнатур функций. Подробности под кат...

Microsoft даст возможность протестировать новый браузер Edge всем желающим В конце 2018 года Microsoft объявила, что откажется от движка рендеринга EdgeHTML в пользу Blink и бесплатного браузера Chromium. По сути, это будет тот же Chrome, только из Редмонда, а не из Маунтин-Вью. Отдельно обещана поддержка «родных» расширений. s...

[Из песочницы] ES6 Простым языком Шаблонные литералы Шаблонные литералы заключены в обратные кавычки (` `) вместо двойных или одинарных. Они могут содержать подстановки, обозначаемые знаком доллара и фигурными скобками (${выражение}). Пример: var name = "bill"; console.log(`Hello ${name}`); // He...

[Перевод] Как рендерится кадр Rise of the Tomb Raider Rise of the Tomb Raider (2015 год) — это сиквел превосходного перезапуска Tomb Raider (2013 год). Лично я нахожу обе части интересными, потому что они отошли от стагнирующей оригинальной серии и рассказали историю Лары заново. В этой игре, как и в приквеле, центральное мест...

[Перевод] Учебный курс по React, часть 20: первое занятие по условному рендерингу Сегодня, в переводе следующей части учебного курса по React, мы поговорим об условном рендеринге. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структура проектов → Часть 4: родительск...

[Из песочницы] Мой опыт разработки на Playcanvas Существуют ли среди читателей люди, которые хотя бы краем уха слышали, что есть некий 3D движок для разработки WebGL приложений с редактором, похожим на Unity, только в браузере? Тема крайне непопулярная, но я стал одним из таких людей почти 2 года назад. И теперь мне захоте...

[Перевод] Особенности рендеринга в игре Metro: Exodus c raytracing Предисловие После выхода последней игры из серии «Метро» я потратил несколько часов на изучение её внутренней работы и решил поделиться тем, что может показаться интересным с технологической точки зрения. Я не буду проводить подробный анализ или изучать дизассемблированный ...

Создание приложения на Htmlix с роутером на серверной и клиентской стороне В данной статье будет описано как сделать фронтенд на Htmlix для фильтра по категориям и карточки товара, а также создадим роутер, на клиентской части, чтобы при клике по истории в броузере, у нас появлялась актуальная данному адресу страница. Приложение будет состоять из дв...

Браузер Otter добрался до версии 1.0 После «ухода на покой» классического браузера Opera его знамя подхватили сразу несколько проектов. Первым был Vivaldi, который разрабатывают бывшие создатели «Оперы». Вторым — Otter. Этот браузер ориентирован на воссоздание классическог...

Истории IT юриста. Жизнь аутсорсинг бизнеса. Часть 3 Первая и вторая часть этой занимательной истории по ссылке ниже: Истории IT юриста. Жизнь аутсорсинг бизнеса. Часть 1 Истории IT юриста. Жизнь аутсорсинг бизнеса. Часть 2 #Поиск решения Саша продолжал искать решение, которое спасет от административного штрафа за недекла...

[Перевод] Как работают пули в видеоиграх? Игры FPS (first-person shooter, шутер от первого лица) стали неотъемлемой частью видеоигровой индустрии ещё с момента появления в 1992 году популярнейшей Wolfenstein 3D. С тех пор жанр эволюционировал: улучшалась графика, увеличивались бюджеты на разработку, развивалась экос...

[Перевод] 2D-тени на Signed Distance Fields Теперь, когда мы знаем основы комбинирования функций расстояний со знаком, можно использовать их для создания крутых вещей. В этом туториале мы применим их для рендеринга мягких двухмерных теней. Если вы пока не читали моих предыдущих туториалов о полях расстояний со знаком ...

[Перевод] Серверный рендеринг в бессерверной среде Автор материала, перевод которого мы публикуем, является одним из основателей проекта Webiny — бессерверной CMS, основанной на React, GraphQL и Node.js. Он говорит, что поддержка многоарендной бессерверной облачной платформы — это дело, которому свойственны особенные задачи....

[Перевод] 6 уроков, извлечённых из поиска решения масштабной проблемы на gitlab.com. Часть 1 Материал, первую часть перевода которого мы публикуем сегодня, посвящён масштабной проблеме, которая возникла в gitlab.com. Здесь пойдёт речь о том, как её обнаружили, как с ней боролись, и как, наконец, её решили. Кроме того, столкнувшись с этой проблемой, команда gitlab.co...

[Перевод] Функциональное мышление. Часть 10 Вы представляете, это уже десятая часть цикла! И хотя до этого повествование было сфокусировано на чисто функциональном стиле, иногда удобно переключиться на объектно-ориентированный стиль. А одними из ключевых особенностей объектно-ориентированного стиля являются возможност...

[Перевод] Мой пятый день с Haiku: давайте портируем немножко программ TL;DR: Новичок увидел Haiku в первый раз, пробует портировать некоторые программы из мира Linux. Читать дальше →

[Перевод] Практический пример использования render-функций Vue: создание типографской сетки для дизайн-системы В материале, перевод которого мы сегодня публикуем, речь пойдёт о том, как создать типографскую сетку для дизайн-системы с использованием render-функций Vue. Вот демонстрационная версия проекта, который мы будем здесь рассматривать. Здесь можно найти его код. Автор этого мат...

[Из песочницы] Запуск 619 тысяч тетрисов на GLSL, их рендеринг и простой бот У меня была "идея" сделать максимальное число одновременно запущенных "Тетрисов" для одного шейдера (одной текстуры фреймбуфера). Далее небольшое описание как работает полученный код. Читать дальше →

Восхождение на Эльбрус — Разведка боем. Техническая Часть 2. Прерывания, исключения, системный таймер Продолжаем исследовать Эльбрус путем портирования на него Embox. Данная статья является второй частью технической статьи об архитектуре Эльбрус. В первой части речь шла о стеках, регистрах и так далее. Перед прочтением этой части рекомендуем изучить первую, поскольку в ней р...

[Перевод] Функциональное мышление. Часть 11: Финал Сегодня мы заканчиваем нашу серию статей о функциональном программировании. Получилось 11 частей. Я считаю, что это достижение. В этой статье реализуем простой стековый калькулятор (также известный как "обратная Польская нотация"). Реализация практически полностью построена ...

[Из песочницы] Первое, что нужно сделать запуская проект на Django Приветствую сообщество, встала передо мной задача написать социальную сеть. А коль скоро язык программирования, которым я более-менее владею — это Python, я выбрал фреймворк Django для реализации проекта. Чтобы не тратить время на написание HTML шаблонов и CSS стилей, эти фа...

Google тестирует новый движок рендеринга для Googlebot Специалисты DeepCrawl заметили, что Google тестирует новый, более современный движок рендеринга для Googlebot, работающий на базе Chrome 69 и выше. Сотрудник Google Мартин Сплит (Martin Splitt) опосредованно подтвердил тестирование: «Отличный пост! Мы всё время что-то тестир...

Часть 3: Почти что грузим Linux с SD-карты на RocketChip В предыдущей части был реализован более-менее работающий контроллер памяти, а точнее — обёртка над IP Core из Quartus, являющаяся переходником на TileLink. Сегодня же в рубрике «Портируем RocketChip на малоизвестную китайскую плату с Циклоном» вы увидите работающую консоль....

Патенты в дизайне: часть вторая (примеры от Microsoft, Snapchat, Samsung, Netflix, Airbnb, Tinder) Под катом — вторая часть перевода статьи о том, как крупные, известные компании защищают свои дизайн-решения (и какие именно). Примерное представление о том, как происходит процесс оформления прав на тот или иной интерфейс, можно получить в первой части. Читать дальше →

[Перевод] Топ-5 JS-фреймворков для фронтенд-разработки в 2020 году. Часть 2 Публикуем вторую часть перевода материала, посвящённого пятёрке лучших JavaScript-инструментов для разработки клиентских частей веб-проектов. В первой части речь шла о библиотеке React и о фреймворке Angular. Здесь мы обсудим Vue, Ember и Backbone. Читать дальше →

[Перевод] История о V8, React и падении производительности. Часть 2 Сегодня мы публикуем вторую часть перевода материала, посвящённого внутренним механизмам V8 и расследованию проблемы с производительностью React. → Первая часть Читать дальше →

Как мы выбирали себе ServiceDesk. Часть 2 Продолжаем писать о нашем выборе системы для оцифровки бизнеса. Как все начиналось, читайте здесь Напомню: мы — сервисная компания, которая решила найти волшебную таблетку для своего бизнеса, благодаря которой «вжух» — и все бизнес-процессы пойдут складно и без перебоев. Ч...

Демо “Back Stage”: взгляд на игры следующего поколения Разработчики опубликованной демки уверены, что именно так будут выглядеть игры следующего поколения, «собранные» на базе движка Luminous Engine (специально для ААА-проектов). В создании видеоряда компании Luminous Productions помогала студия Square Enix. В демке активно исп...

[Перевод] Preload, prefetch и другие теги Есть много способов повышения веб-производительности. Один из них — предзагрузка контента, который понадобится позже. Префтечинг CSS, предварительный рендеринг полной страницы или резолвинг доменного имени. Делаем всё заранее, а потом мгновенно отображаем результат! Звучит к...

#Steinberg #Nuendo_10 Steinberg представили новую версию профессионального секвенсора Nuendo, который сочетает в себе большое количество инструментов для работы со звуком и видео, ряд улучшений рабочего процесса, новые функции и улучшенный интерфейс.В Nuendo 10 появилась функция Video Cut Dete...

[Из песочницы] Немного о порождающих шаблонах проектирования Тема шаблонов проектирования достаточно популярна. По ней снято много роликов и написано статей. Объединяет все эти материалы «анти-паттерн» Ненужная сложность (Accidental complexity). В результате примеры заумные, описание запутанное, как применять не понятно. Да и главная ...

[Перевод] Основы движков JavaScript: общие формы и Inline кэширование. Часть 2 Всем привет! Курс «Безопасность информационных систем» стартует уже через 2 недели, поэтому сегодня мы хотим опубликовать вторую часть статьи, публикация которой приурочена к его запуску. Прочитать первую часть можно тут. Итак, начнем. Inline Caches (ICs) Основной идеей, к...

Не очередной язык программирования. Часть 3: Физика Третья и заключительная часть серии статей о языке lsFusion (ссылки на первую и вторую части) В ней речь пойдет о физической модели: всем том, что не связано с функционалом системы, а связано с ее разработкой и оптимизацией производительности, когда данных становится слиш...

[Из песочницы] Оптимизация хвостовой рекурсии в JavaScript Привет, читатель. Иногда для решении задачи приходится использовать Рекурсию, в которой есть свои плюсы и минусы. Я столкнулся с проблемой переполнения стека. Максимальная глубина рекурсии ограничена движком JavaScript. Точно можно рассчитывать на 10000 вложенных вызовов, н...

Не очередной язык программирования. Часть 2: Логика представлений Вторая часть трилогии о языке и платформе lsFusion. Первую часть можно найти тут. В ней речь пойдет о логике представлений, а именно обо всем том, что связано с объединением данных и отображением их пользователю или другим информационным системам. Читать дальше →

Автоматизируем тестирование redux селекторов в приложении В этой статье я хотел бы поделиться своими идеями того, как можно автоматизировать написание unit-тестов в react/redux приложениях. Идеи эти родились в одной из дискуссий с коллегами, в процессе написания тестов, и, как мне кажется, предложенное решение имеет право на жизнь....

Intel Quartz Canyon — NUC для профессионалов Со времени появления мини-ПК Intel NUC мне по-человечески не хватало двух его разновидностей: с пассивным охлаждением и процессором Xeon внутри (подчеркну, речь идет о разных моделях). Первая мечта осуществилась, можно так сказать, силами третьих лиц, вторую тоже уже наверн...

Citymobil — пособие для стартапов по увеличению стабильности на фоне роста. Часть 2. Какие бывают виды аварий? Это вторая статья из цикла про то, как мы в Citymobil увеличивали стабильность сервиса (первую можете почитать здесь). В этой статье я углублюсь в конкретику разбора аварий. Но перед этим я освещу один момент, о котором я должен был подумать заранее и осветить в первой ста...

[Из песочницы] Как относятся к сотрудникам и организуют рабочий процесс в крупных IT-компаниях Здравствуйте, уважаемые читатели Хабра! Я бывший студент МИФИ, в этом году закончил бакалавриат ПМИ. На третьем курсе активно искал возможности стажировки/работы, в общем, практического опыта, о чём и пойдёт речь. Неопытность, жулики, взаимовыручка. Читать дальше →

[Перевод] Назад к микросервисам вместе с Istio. Часть 2 Прим. перев.: Первая часть этого цикла была посвящена знакомству с возможностями Istio и их демонстрации в действии. Теперь же речь пойдёт про более сложные аспекты конфигурации и использования этого service mesh, а в частности — про тонко настраиваемую маршрутизацию и упр...

Архитектурный шаблон «Итератор» («Iterator») во вселенной «Swift» «Итератор» – один из шаблонов проектирования, которые программисты чаще всего не замечают, потому что его реализация, как правило, встроена непосредственно в стандартные средства языка программирования. Тем не менее, это тоже один из поведенческих шаблонов, описанных в книге...

[Перевод] Лучшие продукты отталкиваются от настоящих проблем: Intercom про Jobs-to-be-Done. Часть 2 Вторая часть перевода книги Intercom про Jobs-to-be-Done — это продолжение повествования о том, как концепция Jobs-to-be-Done меняет принципы создания и улучшения IT-продукта. Главы с третьей по шестую. Первая часть. Читать дальше →

[Перевод] 26 рекомендаций по использованию типа var в Java The Java Local Variable Type Inference (LVTI) или кратко — тип var (идентификатор var — это не ключевое слово, а зарезервированное имя типа) был добавлен в Java 10 с помощью JEP 286: Local-Variable Type Inference. Являясь 100% функцией компилятора, она не влияет на байт-код...

[Из песочницы] Функциональный подход обработки ошибок в Dart При переходе на новую технологию, мы лишаемся привычных инструментов для разработки. В каких-то случая мы вынуждены смириться с их отсутствием из-за каких-то технических ограничений, но при возможности переносим инструменты с собой. Разрабатывая android приложения, за основу...

ЧПУ в хоббийной мастерской (часть 3) Изначально, планировал ограничиться двумя постами (раз, два) про мои ЧПУшные эксперименты. Но, тема оказалась многим интересной, поэтому немного ее еще пораскрываю. В этом посте пойдет речь про написание самодельного софта для управления любительским ЧПУ. Читать дальше →

[Перевод] Как заставить игру работать с частотой 60fps Представьте себе задачу: у вас есть игра, и вам нужно, чтобы она работала с частотой 60 fps на 60-герцовом мониторе. Ваш компьютер достаточно быстр для того, чтобы рендеринг и обновление занимали несущественное количество времени, поэтому вы включаете vsync и пишете такой иг...

Рынок б/у серверов в России: все начиналось с Хабра Приветствую, username! Сегодня я расскажу тебе одну занимательную историю о нашем многострадальномгранном российском рынке. Я — один из сооснователей компании по продаже серверов б/у. И речь пойдёт о рынке B2B оборудования. Начну с ворчания: “Помню, как наш рынок под стол пе...

[Перевод] Лучшие практики и инструменты при разработке iOS приложений Разрабатывая мобильные приложения, мне не раз приходилось создавать проекты с нуля. При этом я и моя команда всегда тратили много времени на основную настройку проекта, такие как интеграция сторонних инструментов, настройка структуры проекта, написание базовых классов, интег...

[Перевод] Интро Newton Protocol: что можно уместить в 4 килобайта Недавно я участвовал соревнованиях демосцены Revision 2019 в категории «PC 4k intro», и моё интро выиграло первое место. Я занимался кодингом и графикой, а dixan сочинял музыку. Основное правило соревнования — необходимо создать исполняемый файл или веб-сайт, имеющий размер...

«Иволга 2.0» — поезд, на котором вы поедете по МЦД Сегодня запуск первых двух маршрутов МЦД. По МЦД пойдут не просто поезда, а «Иволги». За пару месяцев до открытия МЦД на Тверском вагоностроительном. К релизу МЦД вышел и новый релиз «Иволги», теперь у неё версия 2.0. Давайте покажу, как собирается этот поезд, и что в нё...

B2B-навык Алисы: от прототипа до первого сэкономленного рубля Не так давно в Санкт-Петербурге прошла вторая конференция Conversations, посвящённая разговорному AI, на которой мне посчастливилось выступить в качестве докладчика. Темой была разработка прототипа B2B-навыка для крупной компании. В докладе рассказывалось о том, как удалось...

Продуктовая аналитика ВКонтакте на базе ClickHouse Развивая любой продукт, будь то видеосервис или лента, истории или статьи, хочется уметь измерять условное «счастье» пользователя. Понимать, делаем мы своими изменениями лучше или хуже, корректировать направление развития продукта, опираясь не на интуицию и собственные ощу...

[Перевод] Анонс новой версии Styled Components v5: Звериный оскал Мы очень рады анонсировать новую пятую версию styled-components! Новая версия полностью обратно-совместима с предыдущей версией при условии использования последней версии React. Бету пятой версии можно попробовать уже сейчас: npm install styled-components@beta Нужна версия...

Написание UDR на языке Pascal В Firebird уже достаточно давно существует возможность расширения возможностей языка PSQL с помощью написания внешних функций — UDF (User Defined Functions). UDF можно писать практически на любом компилируемом языке программирования. В Firebird 3.0 была введена плагинная арх...

Немного о простом. Тест-дизайн. Часть 1 Сегодня тестирование ПО, один из ключевых процессов создания продукта. Неважно, какую Вы используете методологию, подход, процесс, тестирование ПО так или иначе всегда существует в Вашем процессе. В последние годы (да даже наверное десятилетие) тестирование ПО сформировалось...

Asus анонсировала ProArt StudioBook Pro X ProArt StuidoBook Pro X (W730) - это первый ноутбук Quadro, оснащенный процессором Intel 9- го поколения Xeon с графикой Nvidia Quadro RTX 5000. Ноутбук обеспечит производительность для создания, редактирования и рендеринга материала. Модель соответветсвует всем стандартам д...

[Из песочницы] Как сделать легконастраиваемое кеширование в проекте и спасти коллег от написания однотипного кода «Если суть работы программиста в автоматизации работы других людей, то почему моя работа так мало автоматизирована» — думал я, копируя в очередной раз всю необходимую в проекте обвязку для добавления новой сущности в БД. И решил избавиться от этой рутины по добавлению шаблон...

[Из песочницы] Generic Recycler View или как не писать шаблонный код Все мы пишем приложения и у всех нас есть списки. И самое очевидное решение это RecyclerView. Сама по себе реализация не сложна и писать гайд по RecyclerView уже не актуально. Но есть одно но. Каждый раз когда нам нужен список мы создаем класс, в нем прописываем шаблонный ме...

Как мы делали нашу маленькую Unity с нуля У нашей компании есть свой игровой движок, который используется для всех разрабатываемых игр. Он предоставляет всю важную базовую функциональность:  рендеринг; работа с SDK; работа с операционной системой; с сетью и ресурсами.  Однако в нем не хватало того, чем так цени...

С сожалением об отсутствии в C++ полноценного static if или… … как наполнить шаблонный класс разным содержимым в зависимости от значений параметров шаблона? Когда-то, уже довольно давно, язык D начали делать как "правильный C++" с учетом накопившегося в C++ опыта. Со временем D стал не менее сложным и более выразительным языком, чем C...

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2) В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach. Данная статья является продолжением, но может быть рассмотрена как автономное р...

[Перевод] Эмуляция микропроцессора 8008 на ESP8266 На EP8266 можно эмулировать «Радио-86РК», но до микропроцессора 8080 был 8008, о котором сегодня ретрокомпьютерщики вспоминают реже. Его тоже удалось эмулировать на этой платформе и запустить интерпретатор Бейсика SCELBAL. Читать дальше →

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

Google использует новую версию Chromium для рендеринга Теперь поисковик будет видеть весь контент.

[Перевод] 10 самых влиятельных языков программирования последних 50 лет и их создатели В IT-вселенной существует множество языков программирования. С каждым годом их становится всё больше и больше. Например, сравнительно недавно появились языки Scala, Kotlin, Go и Closure. Но история говорит нам о том, что выживут лишь немногие из них. Языки, о которых пойдёт...

Googlebot не запрашивает Analytics и рекламные серверы при сканировании Поисковый робот Googlebot не запрашивает Analytics и многие рекламные серверы при сканировании и рендеринге страниц. Об этом заявил сотрудник Google Мартин Сплитт на конференции SMX East. Такой подход позволяет экономить ресурсы и оптимизировать скорость сканирования. Но это...

Java REPL вам не ScriptEngine Привет, Хабр! Меня зовут Дима, я разработчик в команде “Архитектура” в hh.ru. Среди прочего, я занимаюсь тем, что делаю разработку проще для коллег. Выполнение кода в продакшене является типовой задачей. Поэтому когда я услышал, что с этим есть проблемы, я решил заняться и...

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

[Перевод] История видеопроцессоров: 1976 — 1995 годы Эволюция современных графических процессоров началась с появления в 1995 году первых 3D-карт, за которым последовало широкое распространение 32-битных операционных систем и недорогих персональных компьютеров. До этого индустрия графики в основном состояла из более прозаичн...

Обновленный Frostbite предлагает геймерам «реалистичные волосы» Графика в современных играх с каждым годом становится все более реалистичной. Компьютерные герои напоминают людей, а залитые солнцем трехмерные поля и луга — живую картинку за окном. Студия DICE недавно выпустила обновленную версию движка Frostbite (кстати, он является осно...

Среднее время рендеринга Googlebot после сканирования составляет 5 секунд Раньше на это могла уйти неделя

[Перевод] Интервью Playboy: Стив Джобс, часть 2 Это вторая часть интервью, вошедшее в антологию The Playboy Interview: Moguls, в которой также есть беседы с Джеффом Безосом, Сергеем Брином, Ларри Пейджем, Дэвидом Геффеном и многими другими. Первая часть. Playboy: Вы делаете серьезную ставку на Macintosh. Говорят, что о...

Блокировка Telegram, Hetzner подсеть /16, опыт общения с РКН Работаю в достаточно крупной консалтинговой компании с представительствами по всему миру. Головной офис в Германии… Так сложилось, что, уехав из России около 20 лет назад, до сего момента про РКН и блокировки я лишь читал и сопереживал. Информация ниже, я так понимаю, не но...

Как реализовать язык программирования на JavaScript. Часть 1: Парсер Здравствуйте! Представляю вам любительский перевод руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достаточно мн...

Слухи о сохранении камеры с тремя объективами в квадратном выступе на iPhone 2019 года сохраняются Следующий iPhone XS Max 2019 года и, возможно, iPhone XS 2019 года будут иметь трехкамерную систему в квадратном выступе, как у Huawei Mate 20 Pro, согласно японскому блогу Mac Otakara со ссылкой на информацию от китайских поставщиков. Отчет включает в себя несколько рендеро...

Пишем свой язык программирования, часть 2: промежуточное представление программ Введение Приветствую всех, кто заглянул почитать мою очередную статью. Повторюсь, я описываю создание языка языка программирования, на основе проведенной ранее работы, результаты которой описал в этом посте. В первой части (линк: habr.com/post/435202) я описал этапы прое...

Patriot выпустила быстрый игровой SSD Viper VP4100 с интерфейсом PCIe Gen4 x4 Принадлежащий Patriot игровой бренд Viper Gaming выпустил новый быстрый твердотельный накопитель с говорящим названием Viper VP4100 M.2 2280 PCIe Gen4 x 4 SSD. Новинка ориентирована на продвинутых геймеров, энтузиастов и профессионалов в сфере создания контента и рендеринга ...

[Перевод] Назад к микросервисам вместе с Istio. Часть 3 Прим. перев.: Первая часть этого цикла была посвящена знакомству с возможностями Istio и их демонстрации в действии, вторая — тонко настраиваемой маршрутизации и управлению сетевым трафиком. Теперь же речь пойдёт про безопасность: для демонстрации связанных с ней базовых ф...

Обработка ошибок в Kotlin/Java: как правильно это делать? Источник Обработка ошибок в любой разработке играет важнейшую роль. В программе может пойти не так практически всё: пользователь введёт некорректные данные, или они могут прийти такими по http, или мы ошиблись при написании сериализации/десериализации и в процессе обработки...

Браузер Microsoft Edge на базе Chromium уже онлайн, его можно скачать Что с нетерпением ждем: больше информации о новом браузере Microsoft Edge на основе Chrome. Как мы видели ранее, он поразительно похож на Chrome, что неплохо. Вы даже можете скачать браузер Microsoft Edge на основе Chromium самостоятельно и попробовать, сообщает ITbukva.com....

WBOIT в OpenGL: прозрачность без сортировки Речь пойдёт о “Weighted blended order-independent transparency” (далее WBOIT) — приёме, описанном в JCGT в 2013 г. (ссылка). Читать дальше →

Infrastructure as code: первое знакомство У нас в компании идёт процесс онбординга SRE-команды. Я зашёл во всю эту историю со стороны разработки. В процессе у меня появились мысли и инсайты, которыми я хочу поделиться с другими разработчиками. В этой статье-размышлении я говорю о том, что происходит, как происходит,...

Модуль подводного ультразвукового дальномера. Часть вторая В первой части мы описали процесс разработки тестового варианта модуля подводного дальномера. Пришло время поделиться информацией о второй версии модуля, поскольку заявленные в первой статье предполагаемые изменения мы реализовали. Читать дальше →

[Перевод] Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 1 Публикуем первую часть перевода очередного материала из серии, посвящённой тому, как в Instagram работают с Python. В первом материале этой серии речь шла об особенностях серверного кода Instagram, о том, что он представляет собой монолит, который часто меняется, и о том, ка...

Вредные советы: как правильно писать техническую документацию? Часть третья и последняя Советы по грамотному написанию технической документации для пользователей. Часть 3 (заключительная) Заключение руководства нашего технического писателя Андрея Старовойтова, которое поможет сделать вашу пользовательскую документацию проще и понятнее. На этот раз мы попод...

[Перевод] Зал славы потребительской электроники: истории лучших гаджетов последних 50 лет, часть 3 Вторая часть GPS-навигатор Garmin StreetPilot Garmin StreetPilot помог уничтожить рынок уличных атласов, но, возможно, сохранил несколько браков Путь вперёд: Garmin StreetPilot, появившийся в 1998 году по цене в $400, был одним из первых практичных и доступных GPS-навигат...

[Перевод] 14 советов по написанию чистого React-кода. Часть 1 Написание чистого кода — это навык, который становится обязательным на определённом этапе карьеры программиста. Особенно этот навык важен тогда, когда программист пытается найти свою первую работу. Это, по существу, то, что делает разработчика командным игроком, и то, что сп...

Создаем шаблон Xcode проекта Всем привет, я Ваня — iOS-разработчик. В этой статье я расскажу о том, как создавать Xcode шаблоны проектов и о том, как они помогли сэкономить время на старте проекта. Читать дальше →

[Перевод] Время до первого байта: что это такое и почему это важно Сейчас я работаю над проектом для одного клиента. Речь идёт о сайте из сферы электронной коммерции, поэтому меня очень сильно интересуют некоторые аспекты производительности. Для начала это — различные показатели, характеризующие время загрузки сайта. Дальше — это время нача...

Приложения с поддержкой трассировки лучей NVIDIA RTX будут доступны для миллионов 3D художников и дизайнеров уже в этом году Лучшие инструменты для дизайна и рендеринга от Adobe, Autodesk, Dassault Systèmes, Epic, Unity и других с поддержкой NVIDIA RTX выйдут в 2019 году

[Перевод] Учебный курс по React, часть 6: о некоторых особенностях курса, JSX и JavaScript Сегодня мы публикуем продолжение учебного курса по React. Здесь речь пойдёт о некоторых особенностях курса, касающихся, в частности, стиля кода. Тут же мы подробнее поговорим о взаимоотношениях между JSX и JavaScript. → Часть 1: обзор курса, причины популярности React, Re...

РНР-безопасность: где и как хранить пароли. Часть 2 Всем привет! На прошлой неделе мы опубликовали первую часть данной статьи, чем вызвали нешуточный холивар. Одной из главных претензий было отсутствие в статье упоминания password_hash, как мы и обещали, вторую часть данного материала начнем как раз таки с хеширования парол...

[Перевод] Многопоточность в Node.js: модуль worker_threads 18 января было объявлено о выходе платформы Node.js версии 11.7.0. Среди заметных изменений этой версии можно отметить вывод из разряда экспериментальных модуля worker_threads, который появился в Node.js 10.5.0. Теперь для его использования не нужен флаг --experimental-worke...

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

История рунета: вспоминаем, как закалялась сеть В начале сентября на YouTube вышла первая серия документального мини-сериала «Холивар. История рунета». Разумеется, эта тема не могла оставить наших коллег равнодушными. Многие из нас так или иначе застали появление первых домашних компьютеров и становление рунета в целом,...

Патентные исследования в IT. Курс молодого бойца. Часть I. Как понять требования заказчика и подготовить шаблон отчет Перед вами первая статья из цикла для тех, кто хочет узнать, как правильно делать и оформлять патентные исследования и отчитываться с их помощью перед заказчиком. Разбираемся в терминах, готовим шаблон отчета о патентных исследованиях. Читать дальше →

[Из песочницы] Spark Structured Streaming Applications on Kubernetes. Опыт ФАСТЕН РУС Сегодня я вам расскажу, как нам удалось решить задачу портирования Spark Structured Streaming Applications на Kubernetes (K8s) и реализовать CI стриминга. Читать дальше →

Самые нестрашные яды И снова привет, %username%! Спасибо всем, кто оценил мой опус «Самые страшные яды». Было очень интересно почитать комментарии, какими бы они не были, было очень интересно отвечать. Я рад, что «хит-парад» понравился. Если он не понравился — ну что ж, я сделал всё, что мо...

Появился 3D-рендеринг складного смартфона Samsung Galaxy F Технический блог LetsGoDigital впервые поделился трехмерными изображениями складного телефона Samsung Galaxy F, чтобы показать, как устройство может выглядеть в реальности. ***

[Перевод] Применение интегрирования Монте-Карло в рендеринге Все мы изучали в курсе математики численные методы. Это такие методы, как интегрирование, интерполяция, ряды и так далее. Существует два вида числовых методов: детерминированные и рандомизированные. Типичный детерминированный метод интегрирования функции в интервале выгля...

Как мы спроектировали и реализовали новую сеть на Huawei в московском офисе, часть 2 В предыдущих сериях: «Джет» перешел на новую сеть на базе небезызвестного вендора. Как происходил процесс аудита систем, сбора «хотелок» и укрощения «заповедника мутантов» читайте в первой части. В этот раз я расскажу о процессе миграции пользователей (более 1600 человек) ...

[Перевод] Как разрабатываются и производятся процессоры: проектирование ЦП Теперь, когда мы знаем, как работают процессоры на высоком уровне, настало время углубиться в разбор процесса проектирования их внутренних компонентов. Это вторая статья из серии, посвящённой разработке процессоров. Рекомендую изучить для начала первую часть, чтобы вы поним...

Фантастические плагины, vol. 2. Практика Здесь можно почитать первую статью с теорией плагиностроения. А в этой части я расскажу, с какими проблемами мы сталкивались во время создания плагина и как пытались их решать. Читать дальше →

JMeter — швейцарский нож тестировщика (Часть 2) Сегодня расскажу, как мы с помощью JMeter’а наладили процесс кэширования продуктовых страниц, проверили работу мобильного приложения без самого приложения и создали 2000 юзеров в системе без доступа к базе данных. Кто не в курсе, что здесь происходит, читайте первую часть ...

Самые интересные яды Привет, %username%! Снова вечер, снова мне нечего делать, и я решил потратить немного времени, чтобы написать третью часть своего цикла о ядах. Надеюсь, ты читал первую и вторую часть, и тебе понравилось. В третьей части мы немного отдохнём. Здесь не будет рассказа о тех...

[Из песочницы] Руководство Google по стилю в C++ Часть 1. Именование Часть 2. Комментарии … Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на родном, приятнее иметь...

[Из песочницы] Duality — легкий и быстрый движок для игростроя под Windows (Доп.) Приветствую, читатель. В данной публикации речь пойдет о перспективном и достаточно молодом игровом движке, который незаслуженно остался в тени таких гигантов, как Unity или Unreal Engine. Разработчиками является объединение энтузиастов под руководством Adam's Lair. Как...

О пиве глазами химика. Часть 4 Привет, %username%. Третья часть моего цикла о пиве на Хабре вышла менее приметной, чем предыдущие — судя по комментариям и рейтингу, так что, наверное, я уже несколько утомил своими рассказами. Но поскольку закончить историю о компонентах пива логично и необходимо, перед ...

Подкасты для хипстеров #2 Согласно опросу, проведенному после написания первой статьи рубрики «Подкасты для хипстеров» токсичная своенравная публика Хабра приняла ее довольно положительно и захотела продолжения (на момент написания данной статьи, рейтинг предыдущей составляет +3, что несомненно можно...

Синтетические символы и модули (WinDbg/DbgEng) В этой публикации речь пойдет о синтетических модулях и символах отладочного движка Windows (debugger engine). То есть о сущностях, которые можно искусственно добавить в отладчик для раскраски адресов памяти. Читать дальше →

MaterialDialog: анимированные диалоги для Android Тема диалогов неисчерпаема! MaterialDialog – красивые анимированные диалоги для Android по всем заветам материального дизайна. Использует Lottie для рендеринга анимаций, представляет несколько вариантов окон. Репозиторий: https://github.com/PatilShreyas/MaterialDialog-...

[Перевод] Любопытные извращения из мира ИТ — 5 История первая. Роковые буквы [Оригинал] Когда-то давно Джордж устроился работать в офис Initech. Компания только что арендовала несколько этажей в старом офисном здании, недавно перешедшего из категории «городской упадок» в категорию «элегантные кофейни на первом этаже и ...

[Перевод] Реализация шаблона проектирования Command в Unity Вы задавались когда-нибудь вопросом, как в играх наподобие Super Meat Boy реализована функция реплея? Один из способов её реализации — выполнять ввод точно так же, как это делал игрок, что, в свою очередь, означает, что ввод нужно как-то хранить. Для этого и многого другого...

Вся история Linux. Часть II: корпоративные перипетии Продолжаем вспоминать историю развития одного из самых значимых продуктов в опенсорсном мире. В прошлой статье мы поговорили о разработках, которые предшествовали появлению Linux, и рассказали историю рождения первой версии ядра. В этот раз сосредоточимся на периоде коммерци...

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

Программирование под БК 0010 в 2019-ом году Зачем? Если Вы — энтузиаст ретро-компьютеров, то мотивационную речь можете смело пропустить и перейти к следующему разделу. Весь август 2018-го года я и мой 13-летний сын Ivanq потратили на написание демки Good Apple. На фестивале Chaos Constructions наша работа заняла втор...

Новая игра со старой атмосферой на Three.js. Часть 2 В первой части я рассказал о проблемах, с которыми я столкнулся в процессе создания 3D игры под браузер c использованием Three.js. Теперь я хотел бы подробно остановиться на решении некоторых важных задач при написании игры, типа конструирования уровней, определения столкнов...

[Перевод] Интервью Playboy: Стив Джобс, часть 3 Это третья (заключительная) часть интервью, вошедшее в антологию The Playboy Interview: Moguls, в которой также есть беседы с Джеффом Безосом, Сергеем Брином, Ларри Пейджем, Дэвидом Геффеном и многими другими. Первая часть. Вторая часть. Playboy: Чем вы занялись по возвра...

Bonsai: фамильный вики-движок Лирическое вступление Как-то вечером, наводя порядок в стенном шкафу, я наткнулся на большую картонную коробку. Она пережила два переезда и не открывалась уже столько лет, что я напрочь забыл, что именно в ней хранилось. Оказалось, там лежали фотографии — в альбомах, в конве...

Flutter: локализация приложений средствами Android Studio Про локализацию (интернационализацию) приложений Flutter написано уже достаточно много. Официальная документация довольно подробно останавливается на этом вопросе, кроме этого ряд энтузиастов описывает самые различные подходы. Эта статья не претендует на полноту охвата вопр...

ThingJS v1.0-alpha Последние два года я разрабатывал собственную IoT платформу и сегодня готов показать ее альфа версию. Вместе с партнером мы создаем и поддерживаем IoT устройства. Мы разобрали не один сарай с граблями в процессе этой деятельности. ThingJS родилась не столько из желания, ско...

[recovery mode] В чем набрать и чем собрать C++ проект Задавшись этим вопросом я, в первую очередь, сформулировал требования: жесткие и опциональные (но желательные) для системы сборки и графической среды разработки. Сразу хочу отметить что речь идет о написании C++ кода не под какую-то специфичную платформу типа Android или фре...

[Перевод] Редактирование текста тоже вас ненавидит Опубликованная месяц назад статья Алексис Бингесснер «Рендеринг текста вас ненавидит» очень мне близка. В далёком 2017 году я разрабатывал интерактивный текстовый редактор в браузере. Неудовлетворённый существующими библиотеками на ContentEditable, я подумал: «Эй, да просто...

Основы движков JavaScript: общие формы и Inline кэширование. Часть 1 Привет, друзья. В конце апреля мы запускаем новый курс «Безопасность информационных систем». И уже сейчас хотим поделиться с вами переводом статьи, которая непременно будет очень полезной для курса. В статье описаны ключевые основы, они являются общими для всех движков Jav...

Угловые эффекты Добрый день, дорогой читатель! Это вторая переводная статья из цикла статей о создании физического движка авторства Chris Hecker. Если Вы ещё не ознакомились с первой, то рекомендую это сделать, т. к. всё сразу станет понятнее. Большое спасибо за поддержку первого перевода: ...

Дайджест интересных материалов для мобильного разработчика #301 (3 — 9 июня) Наконец-то можно сказать, что WWDC получился. Роскошный SwiftUI, новые версии операционных систем и новая iPadOS, App Store на часах, PencilKit, Catalyst для портирования приложений на macOS, новые инструменты для виртуальной реальности, реактивный Combine. На полгода разбир...

Thymeleaf: диалект Layout + Spring Boot 2 Диалект Layout — это диалект Thymeleaf, который позволяет пользователям создавать макеты и шаблоны для повторного использования HTML кода. Он имеет иерархический подход и использует шаблон декоратора для «декорирования» файлов макета. Layout Dialect является отдельным проект...

Бэки двух ритейлеров на SAP за 12 часов Эта статья расскажет о масштабном проекте внедрения SAP в нашей компании. После слияния компаний «‎М.Видео»‎ и «‎Эльдорадо»‎ перед техническими отделами была поставлена нетривиальная задача — перевести бизнес-процессы в единый бэкенд, основанный на SAP. Перед стартом у нас...

5 фудтех девайсов и робот с томатами Так уж вышло, что мы в Dodo Pizza Engineering не только пилим систему Dodo IS, но и много читаем про новости фудтеха. Через меня проходит тонна занятной информации: то чашку Петри с мышечными клетками коровы в космос отправят, то очередную съедобную посуду изобретут, то реша...

[Из песочницы] Паттон Джефф. Пользовательские истории. Искусство гибкой разработки ПО Аннотация Книга это рассказанный алгоритм проведения процесса разработки от идеи до внедрения с применением техник agile. Процесс раскладывается по шагам и на каждом шаге указываются методы для шага процесса. Автор указывает, что большая часть методов не оригинальна, не прет...

[Перевод] Заложники COBOL и математика. Часть 2 Сегодня публикуем вторую часть перевода материала о математике, о COBOL, и о том, почему этот язык всё ещё жив. → Первая часть Читать дальше →

[Перевод] Воссоздание старой DOS-игры на C++ 17 В 2016 году я начал работу над хобби-проектом по реверс-инжинирингу игры Duke Nukem II и воссозданию с нуля его движка. Проект имеет название Rigel Engine и выложен в open source (его страница на GitHub). Сегодня, более чем два с половиной года спустя на моём движке уже можн...

[recovery mode] 10 ошибок юного PO (часть II) Вторая часть с моими ошибками, первая тут.  Напомню, что я владелец продукта в команде, состоящей исключительно из разработчиков, и мы делаем IT-платформу для управления партнерскими сетями АЗС.  4. Ошибка четыре. Bus-фактор: то, что сначала казалось многим ошибкой, а по ф...

В 2021 году разработчики получат возможность объединения приложений для iOS и macOS в единое ПО Ещё в прошлом году Apple заявила о том, что даст разработчикам инструмент для простого портирования приложений для iOS на macOS. Тогда говорилось, это случится в 2019 году, но других подробностей не было. Ресурс Bloomberg поделился новыми деталями касательно данной иниц...

Как закалялись бойцы ру->нета. Немного реальной истории Беседуя сегодня с друзьями, начали вспоминать «как все было» в Рунете — причем не со слов политически ангажированных «Ашмановых и прочих приближенных», но как было реально. Подбили на написание статьи. Делать было нечего, написал набросок о чем дальше можно © По сути — р...

Написание собственного неплохого менеджера памяти Доброе время суток, читатель. Возможно, вы уже читали мои предыдущие статьи, и знаете, что я занимаюсь написанием собственной ОС. Сегодня мы поговорим, и рассмотрим несложный и достаточно быстрый алгоритм для управления памятью — менеджер памяти — критически важная часть ОС,...

Vivaldi 2.9 — Улучшение улучшений Всем привет! Процесс совершенствования браузера, как и ремонт в квартире, невозможно закончить — его можно только остановить. И в этом контексте у нас есть две новости, одна — хорошая, а другая — плохая. Плохая новость: да, браузер Vivaldi ещё далёк от совершенства. Хорош...

[Перевод] Шейдеры 3D-игр для начинающих Хотите научиться добавлять в свою 3D-игру текстуры, освещение, тени, карты нормалей, светящиеся объекты, ambient occlusion и другие эффекты? Отлично! В этой статье представлен набор техник затенения, способных поднять уровень графики вашей игры на новые высоты. Я объясняю к...

[Из песочницы] 6 точек роста конверсии или как повысить доверие с помощью телефона на сайте С одной стороны, отказ от телефона на сайте в 2019 году кажется логичным решением, ведь оформить заказ в интернет-магазине можно без звонка. А для вопросов есть онлайн-консультанты, чат-боты и социальные сети. Это сокращает расходы на связь и содержание колл-центра. Но есть ...

При сканировании страниц Google сначала смотрит на код ответа сервера Во время последней видеовстречи для вебмастеров сотрудник Google Джон Мюллер объяснил, что при сканировании контента поисковик в первую очередь проверяет коды ответов сервера (коды состояния HTTP). Вопрос к Мюллеру звучал так: «Интересно, проверяет ли Google коды ответа серв...

[Перевод] Практичный Go: советы по написанию поддерживаемых программ в реальном мире Статья посвящена лучшим практикам написания кода Go. Она составлен в стиле презентации, но без обычных слайдов. Постараемся кратко и чётко пройтись по каждому пункту. Для начала следует договориться, что значит лучшие практики для языка программирования. Здесь можно вспомни...

Встраиваем интерпретатор Python в java-приложение с помощью проекта Panama Пару дней назад увидел твит Брайана Гетца, но только сегодня дошли руки поиграться с примерами. Про это и хочу кратко рассказать. О проекте Panama на Хабре уже писали, поэтому просто покажу пару простых примеров того, как можно применить native binder. Читать дальше →

Zero Bug Policy. Нет багов — нет проблем? Кто про что, а я про баги. В прошлом году я рассказывала вам про Багодельню — мероприятие, проводимое у нас в компании для чистки бэклога багов. Событие хорошее и полезное, но решающее проблему с багами разово. Мы провели уже шесть Багоделен, но количество участников постепе...

[Перевод] Лямбды: от C++11 до C++20. Часть 1 Добрый день, друзья. Сегодня мы подготовили для вас перевод первой части статьи «Лямбды: от C++11 до C++20». Публикация данного материала приурочена к запуску курса «Разработчик C++», который стартует уже завтра. Лямбда-выражения являются одним из наиболее мощных дополнений...

[Перевод] Как посчитать ROI от автоматизации тестирования с Selenium? Перевод статьи подготовлен специально для студентов курса «Python QA Engineer» Кроссбраузерное тестирование – это именно тот тип тестирования, который требует большого количества сил и времени. Тестирование веб-приложения в различных браузерах, на различных операционных си...

Деревянные игрушки, часть седьмая — 1993 1993 для меня получился годом квестов. И потихоньку начинают появляться игры на компакт-дисках — в первую очередь те же квесты. Место забивают видеороликами или аудиотреками. С пометкой «если втыкать диск в CD-проигрыватель, то первый трек не играть». Но это тоже пока где-то...

Как мы внедряли WebAssembly в Яндекс.Картах и почему оставили JavaScript Меня зовут Валерий Шавель, я из команды разработки векторного движка Яндекс.Карт. Недавно мы внедряли в движок технологию WebAssembly. Ниже я расскажу, почему мы её выбрали, какие результаты получили и как вы можете использовать эту технологию в своём проекте. Читать даль...

Вредные советы: как правильно писать техническую документацию? Советы по грамотному написанию технической документации для пользователей. Часть 1 В одной из предыдущих статей мы в общих чертах рассказывали, как именно происходит процесс документирования и локализации наших продуктов. На этот раз под катом – руководство нашего техниче...

Строительные блоки распределенных приложений. Второе приближение Анонс Коллеги, в середине лета я планирую выпустить еще один цикл статей по проектированию систем массового обслуживания: “Эксперимент VTrade” — попытка написать фреймворк для торговых систем. В цикле будет разобрана теория и практика построения биржи, аукциона и магазина. В...

HolyJS 2019: Разбор задач от компании SEMrush (Часть 2) Это вторая часть разбора задач от нашего стенда на конференции HolyJS, прошедшей в Санкт-Петербурге 24-25 мая. Для большего контекста рекомендуется сначала ознакомиться с первой частью настоящего материала. А если Countdown Expression уже пройден, то добро пожаловать на сл...

Деревянные игрушки, часть пятая — 1991 В 1991 году всё больше игр выходило с поддержкой VGA, хотя за EGA ещё держались и не так много игр именно требовали VGA. Для меня же в 1991 начинался период отлучения от РС. Регулярному доступу приходил на смену эпизодический, гораздо больше времени начал проводить за MSX в ...

[Перевод] Создание игры для Game Boy, часть 2 Несколько недель назад я решила поработать над игрой для Game Boy, создание которой доставило мне большое удовольствие. Её рабочее название «Aqua and Ashes». Игра имеет открытые исходники и выложена на GitHub. Предыдущая часть статьи находится здесь. Фантастические спрайты...

Управление командой программистов: как и чем их правильно мотивировать? Часть вторая Эпиграф: Муж, глядя на чумазых детей, говорит жене: ну, что, этих отмоем или новых нарожаем? Под катом вторая часть статьи нашего тимлида, а также директора по развитию продукта RAS — Игоря Марната об особенностях мотивации программистов. С первой частью статьи можно ознако...

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

Эксплуатация Microsoft Edge от CVE до RCE на Windows 10 В рамках данной статьи мы достаточно подробно рассмотрим процесс написания эксплоита под уязвимость в Microsoft Edge, с последующим выходом из песочницы. Если вам интересно узнать, как выглядит этот процесс, то welcome под кат! Читать дальше →

Перенос сайта на статику: мотивация, стоимость, работа Недавно мы сделали то, о чём грезят все программисты и дизайнеры — переписали всё с нуля: полный редизайн нашего сайта и написание «движка» с чистого листа. Ниже поведаем о мотивации и процессе миграции с онлайн-CMS на статику. Читать дальше →

Использование камеры Fish eye на Raspberry Pi 3 с ROS — часть 2 Добрый день уважаемые читатели Хабра! Это вторая часть рассказа об использовании fish eye камеры на Raspberry Pi 3. Первую часть можно найти здесь. В этой статье я расскажу о калибровке fish eye камеры и применении камеры в детекции объектов с помощью пакета find_object_2d. ...

MMRU (Multi Material Russian Upgrade) Remix on MMU2 (Часть 4: Первые механические траблы) Мои эпопеи с запуском MMRU (Multi Material Russian/Ramps Unit) продолжаются. Кто не в теме вот (первая, втораяи третья части моих потуг)ДИСКЛАМЕР для "особенных": да мое решение так себе, да оно не оригинальное, да можно было бы сделать на двух движках, сервах, электромагнит...

Распознавание текста с помощью OCR Tesseract — это движок оптического распознавания символов (OCR) с открытым исходным кодом, является самой популярной и качественной OCR-библиотекой. OCR использует нейронные сети для поиска и распознавания текста на изображениях. Tesseract ищет шаблоны в пикселях, буквах, сл...

[Перевод] Расшифровка трассировщика лучей размером с открытку «Он снова это сделал!», — вот, что первое пришло мне в голову, когда я посмотрел на оборотную сторону флаера Pixar [1], полностью заполненную кодом. Скопление конструкций и выражений была подписана в правом нижнем углу не кем иным, как Эндрю Кенслером. Для тех, кто его не з...

О пиве глазами химика. Часть 1 Привет, %username%. Как я и обещал ранее, я немного пропал в связи со своей командировкой. Нет, она ещё не закончилась, но навеяла некоторые мысли, которыми я решил поделиться с тобой. Речь пойдёт о пиве. Я не буду сейчас топить за те или иные сорта, спорить, какой вкус...

Век живи — век учись. Часть 2. Вуз: 5 лет или 5 коридоров? Высшее образование в России — это тотем, фетиш, пунктик и идея фикс. С детства нам внушалось, что «поступить в институт» это джек-пот: все дороги открыты, работодатели выстроились в очередь, зарплата летит на карту. У этого явления есть исторические и социальные корни, но се...

[Перевод] Путь к проверке типов 4 миллионов строк Python-кода. Часть 2 Сегодня публикуем вторую часть перевода материала о том, как в Dropbox организовывали контроль типов нескольких миллионов строк Python-кода. → Читать первую часть Читать дальше →

Руководство: Thymeleaf + Spring. Часть 3 Первая часть Вторая часть 7 Проверка и сообщения об ошибках Большинство наших форм должны показывать сообщения проверки, чтобы информировать пользователя об ошибках, которые он сделал. Читать дальше →

Разработка демо для NES — HEOHdemo История проведения фестивалей компьютерного искусства, также известных как демопати, насчитывает в нашей стране уже четверть века. Люди со всех концов страны собираются, чтобы показать свои упражнения в извлечении невозможного из старых или современных компьютеров и сверхмал...

Workflow Core — движок бизнес-процессов для .Net Core Всем привет! Мы решили поддержать тему миграции проекта, использующего Windows Workflow Foundation на .Net Core, которую начали коллеги из DIRECTUM, поскольку столкнулись с аналогичной задачей пару лет назад и пошли собственным путем. Читать дальше →

[Из песочницы] Смарт цоколь для лампы REDMOND — добавляем в умный дом В этом обзоре речь пойдет об смарт цоколе бренда REDMOND — SkySocket 202S. Попалась как то мне на глаза статья об схемотехнике данного цоколя, почитав обратил внимание что мозгами данного девайса является чип от компании Nordic Semiconductor 51 серии (nRF51822). Читать даль...

[Перевод] Зал славы потребительской электроники: истории лучших гаджетов последних 50 лет, часть 2 Первая часть Bowmar 901B В 1973 году Bowmar/ALI была крупнейшей компанией-производителем калькуляторов в мире. В 1976 году она закрылась Прощай, логарифмическая линейка: калькулятор Bowmar 901B (по прозвищу «Мозг») считается первым калькулятором с ЖК-экраном и первым карма...

ld -z separate-code Речь в этой статье пойдёт о небольшой security-фиче, добавленной в GNU ld к релизу 2.30 в январе 2018 года. На русском языке это улучшение упоминалось на opennet с такой аннотацией: режим "-z separate-code", повышающий защищённость исполняемых файлов ценой небольшого увели...

[Перевод] Интересные новинки Vue 3 Вместо предисловия Vue используется во всех проектах FunCorp. Мы внимательно следим за развитием фреймворка, постоянно улучшаем процесс разработки и внедряем лучшие практики. И, конечно же, мы не могли пройти мимо и не перевести статью Филиппа Раковски, сооснователя VueStore...

Бета версия 3Д пакета от Nvdia Daz 3D теперь поддерживает RTX Полностью интерактивный 3D-рендеринг стал реальностью с бета-версией программы Daz Studio 4.12.

Новые изображения смартфона Nokia 9 PureView Nokia 9 PureView смартфон от HMD Global является одним из самых ожидаемых смартфонов. Это связано с тем, что смартфон считается первым в мире, который оснащен модулем из пяти камер на задней панели и флагманскими спецификациями. Теперь в Интернете появилось новое изображение...

[Из песочницы] Как устроен ReactJS. Пакет React Большинство людей, работающих во фронтенде, так или иначе сталкивались с реактом. Это JavaScript библиотека, помогающая создавать крутые интерфейсы, в последние годы набрала огромную популярность. При этом, не так много людей знает, как она работает внутри. В этой серии стат...

CGDevs Moscow Meetup #2 Всем привет! 6 марта пройдёт вторая встреча CGDevs Moscow Meetup. Встреча состоится в Высшей школе бизнес-информатики НИУ ВШЭ. С 18:30 до 22:00 мы будем обсуждать разработку игр, компьютерную графику, игровые движки и многое другое, что имеет отношение к красоте и технология...

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

[Перевод] Стоит ли высокое качество ПО затрат на его разработку? Часто в процессе реализации проектов команды сталкиваются с вопросом: чему следует уделять больше внимания – выпуску новых фич или повышению качества кода? Обычно менеджеры делают выбор в пользу фич. Зачастую разработчики таким положением дел недовольны, считая, что им выде...

[Перевод] Как работает рендеринг 3D-игр: обработка вершин В этом посте мы рассмотрим этап работы с вершинами. То есть нам придётся снова достать учебники по математике и вспомнить линейную алгебру, матрицы и тригонометрию. Ура! Мы выясним, как преобразуются 3D-модели и учитываются источники освещения. Также мы подробно объясним р...

Telegram опять раздаёт деньги за разработку простых шаблонов CSS Павел Дуров объявил о втором конкурсе Template Competition 2.0, всем участникам которого платят по $100 за каждый шаблон HTML/CSS для предпросмотра сайта СМИ в мессенджере. А также $2 за каждую ошибку, найденную в чудом шаблоне (сумма вычитается из гонорара автора). Сделат...

[Перевод] Sketch + Node.js: генерируем иконки для множества платформ и брендов. Часть 2 Это вторая часть статьи о создании инструмента, способного экспортировать все помещённые в Sketch-файл иконки: в разных форматах, для разных платформ, с возможностью A/B-тестирования каждой из иконок. Первую часть вы можете прочесть по ссылке. В прошлый раз мы подготов...

Долгожданный шаг в сторону сложно структурированных документов (+видео) Этой статьей на Хабре мы с большим удовольствием анонсируем вам, друзья, что от шаблонных жестко структурированных документов мы перешли к распознаванию различных сложно структурированных. А это, поверьте, совсем другая песня! За деталями добро пожаловать под кат. Читать да...

Руководство: Thymeleaf + Spring. Часть 2 Первая часть Третья часть 5 Отображение Seed Starter Data Первое, что покажет наша страница /WEB-INF/templates/seedstartermng.html, — это список с начальными стартовыми данными, которые в данный момент сохранены. Для этого нам потребуются некоторые внешние сообщения, а т...

[Из песочницы] Как подключить Яндекс Кассу и преуспеть в конверсии В этой статье я поделюсь опытом использования платёжной системы в контексте того, как это может отражаться на конверсии. Часть тезисов будет актуальна для почти любой системы, но в основном речь пойдёт о Яндекс Кассе с целью привнести больше конкретики. Статья будет полезна ...

React & БЭМ – официальная коллаборация. Часть историческая Перед вами история интегрирования БЭМ-методологии в React-вселенную. Материал, который вы прочитаете, построен на опыте разработчиков Яндекса, развивающих самый масштабный и нагруженный сервис в России — Яндекс.Поиск. Мы никогда раньше не рассказывали настолько подробно и гл...

Битва эталонов. Pixel 4 XL оказался существенно медленнее, чем iPhone 11 Pro Max Смартфоны Google считаются одними из самых быстрых аппаратов на рынке. Чистая ОС Android и оптимизация действительно позволяют смартфонам Pixel работать лучше многих других. Но быстрее ли эталонный смартфон с Android новейшего устройства с iOS? На этот вопрос от...

[Из песочницы] Байки разработчика 1С: админские Все разработчики 1С так или иначе тесно взаимодействуют с IT-службами и непосредственно с системными администраторами. Но не всегда это взаимодействие проходит гладко. Несколько забавных историй об этом я и хотел бы Вам рассказать. Читать дальше →

Работа не волк, часть 2. Пройти босса и выжить на испытательном сроке Новая работа — маленькая (а иногда и не очень) новая жизнь. Самое главное это начать её правильно, чтобы верный старт стал началом отличного пути. После того, как вы прошли HR-а, остаётся два важных шага: пройти собеседование с руководителем и удачно завершить испытательный ...

[Перевод] Сети Kubernetes: Ingress Сегодня мы публикуем перевод третьей части руководства по работе с сетями в Kubernetes. В первой части речь шла о подах, во второй — о сервисах, а сегодня мы поговорим о балансировке нагрузки и о ресурсах Kubernetes вида Ingress. Читать дальше →

QA: Хакатоны Заключительная часть трилогии о хакатонах. В первой части я рассказал о мотивации к участию в таких мероприятиях. Вторая часть была посвящена ошибкам организаторов и их результатам. Заключительная часть ответит на вопросы, которые не поместились в первые две части. Читать ...

История Linux. Часть III: новые рынки и старые «враги» Мы вспомнили о первых коммерческих дистрибутивах Linux, которые выходили в 90-х. Теперь пришло время 2000-х — периода, когда эта ОС начала завоевывать потребительские рынки. Читать дальше →

[Перевод] Тестирование Node.js-проектов. Часть 1. Анатомия тестов и типы тестов Автор материала, первую часть перевода которого мы сегодня публикуем, говорит, что он, как независимый консультант по Node.js, каждый год анализирует более 10 проектов. Его клиенты, что вполне оправданно, просят его обратить особое внимание на тестирование. Несколько месяцев...

[Перевод] 6 уроков, извлечённых из поиска решения масштабной проблемы на gitlab.com. Часть 2 Представляем вашему вниманию вторую часть перевода материала о борьбе команды gitlab.com с тиранией времени. → Вот, кстати, первая часть. Читать дальше →

[Перевод] Создание собственных синтаксических конструкций для JavaScript с использованием Babel. Часть 2 Сегодня мы публикуем вторую часть перевода материала о расширении синтаксиса JavaScript с использованием Babel. → Головокружительная первая часть Читать дальше →

Нагрузочное тестирование с locust. Часть 3 Финальная статья об инструменте для нагрузочного тестирования Locust. Сегодня поделюсь наблюдениями, которые накопил в процессе работы. Как всегда, видео прилагается. Часть 1 — тестирование с Locust Часть 2 — продвинутые сценарии Читать дальше →

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

[Перевод] Настройка НА-кластера Kubernetes на «голом железе», мониторинг, логи и примеры использования. Часть 3/3 Часть 1/3 тут. Часть 2/3 тут. Всем привет! А вот и третья часть руководства «Kubernetes на «голом железе»! Я уделю внимание мониторингу кластера и сбору логов, также мы запустим тестовое приложение для использования предварительно настроенных компонентов кластера. Затем про...

[Из песочницы] Красивые точные часы из старого смартфона Речь в статье пойдёт о том, как старый ненужный мобильник переделать в отличные настенные часы с крупными цифрами, всегда точным временем и резервным питанием. Я расскажу о некоторых выясненных особенностях сихронизации времени в ОС Андроид, а также о разных электрических...

Asus Tinker Board — как Raspberry Pi, только для искусственного интеллекта Различных одноплатных ПК на рынке сейчас очень много, хотя многие знают в основном лишь о Raspberry Pi. Новинка компании Asus любопытна тем, что она создавалась совместно с Google, хотя на первый взгляд поисковый гигант крайне далёк от этого сегмента рынка. Компании н...

[Перевод] Эффекты фильтрации SVG. Часть 3. Эффект постеризации изображения при помощи feComponentTransfer В третьей части серии вы узнаете, как работает feComponentTransfer и как можно постеризовать изображения при помощи этого мощного примитива SVG-фильтра. Читать дальше →

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

Как мы делали свой движок Workflow Мы в компании DIRECTUM занимаемся разработкой ECM-системы DirectumRX. Основным элементом модуля Workflow для ECM-системы является движок. Он отвечает за изменение состояния экземпляра процесса (инстанса) по ходу жизненного цикла. Перед тем, как начать разрабатывать модуль Wo...

[Перевод] Как вы избавляетесь от неиспользуемого CSS-кода? Часть 2 Сегодня публикуем вторую часть перевода материала о борьбе с неиспользуемым CSS-кодом. → Первая часть Читать дальше →

[Перевод] Исследование глубин аннотаций типов в Python. Часть 2 Сегодня мы публикуем вторую часть перевода материала, который посвящён аннотациям типов в Python. → Первая часть Читать дальше →

PhpStorm 2019.1: Отладка шаблонов Twig и Blade, поиск мертвого кода, улучшенное автодополнение, и многое другое Мы рады представить вам первый мажорный релиз PhpStorm в этом году! Обзор релиза можно посмотреть на странице “What’s new”. А под катом дополненный перевод этой страницы с демонстрацией наиболее интересных новых возможностей. Читать дальше →

Сборка Android-приложения. Задачка со звёздочкой Привет, Хабр! Летом я выступал на Summer Droid Meetup с докладом про сборку Android-приложения. Видеоверсию можно найти здесь: habr.com/ru/company/funcorp/blog/462825. А для тех, кто больше любит читать, я как раз и написал эту статью. Речь пойдёт о том, что же это такое ...

[Перевод] Юнит-тестирование шаблонов C++ и Mock Injection с помощью трейтов (Traits) Еще раз здравствуйте! До старта занятий в группе по курсу «Разработчик С++» остается меньше недели. В связи с этим мы продолжаем делиться полезным материалом переведенным специально для студентов данного курса. Юнит-тестирование вашего кода с шаблонами время от времени на...

Как я имплантировала RFID себе в руку, а потом еще NFC. Часть 2 Прошло более четырех лет с момента публикации первой части про EM4100 и я решила все же написать вторую часть — про имплантируемый NFC. Преимущества первой 125 кГц метки были ощутимы сразу — ключ к домофонам и внутренним замкам, но хотелось большего — разблокировать телефо...

Обзор AngularConnect 2019. Часть 2 В этой статье продолжаем делиться впечатлениями от поездки в Лондон на AngularConnect 2019. Сегодня расскажем, как все происходило, о докладах второго дня и о том, что полезного мы привезли домой (и нет, это не наклейки!). А вот — первая часть статьи. Читать дальше →

Habr Weekly #25 / Неформальные отношения в команде, сотрудники с аутизмом и критика Телеграма В этом выпуске: 02:10 Неформальные отношения в команде: зачем и как ими управлять, dsemenikhin 21:31 Каково это, когда 75% ваших сотрудников — аутисты, ITSumma 30:38 Бро vs. не бро, Nikitius_Ivanov 40:20 Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт...

[Перевод] Энциклопедия освещения художника Naughty Dog Джои Ленц из Naughty Dog подробно рассказал нам об освещении в UE4: о значениях, источниках, световой температуре, освещении в PBR, ресурсах, по которым можно изучать освещение, а также обо многом другом. На официальном сайте Джои polyplant.co есть множество полезных советов...

Заменить Object на var: что может пойти не так? Недавно я столкнулся с ситуацией, что замена Object на var в программе на Java 10 приводит к исключению в процессе выполнения. Мне стало интересно, много ли разных способов добиться такого эффекта, и я обратился с этим вопросом к сообществу: A puzzle: provide a Java code sam...

Ноутбук Compaq LTE 5000, часть вторая c половиной — бонусная Ноутбук Compaq LTE 5000, часть первая — знакомство Ноутбук Compaq LTE 5000, часть вторая — про недостатки и их лечение Часть про ОС и игры пока ещё потихоньку сочиняется, подозреваю, что она вырастет во что-то большее, чем просто рассказ про запуск старых игрушек. Но как-...

Техническая ипотека: что и кому должен тимлид Всем привет! Меня зовут Александр Афенов. Я тимлид команды разработки Order Processing в компании Lamoda. В прошлом году я выступал на TeamLead Conf 2018. Запись выступления доступна по ссылке. В своем докладе я расскажу историю того, как стал тимлидом, с какими проблемами...

История одного монолита Часть первая, в которой читатель познакомится с краткой историей появления внутренних продуктов 2ГИС и эволюцией системы доставки данных от нескольких скриптов до полноценного приложения. Сегодня я расскажу вам историю, которая началась 9 лет назад в компании ДубльГИС. Ч...

Обсуждение: как стриминговые сервисы меняют музыкальную культуру и подход к написанию песен В прошлых публикациях мы рассказывали про успех Spotify в Индии и про то, как потоковые платформы подстегнули продажи винила. Сегодня речь пойдет о том, как стриминговые сервисы меняют подход к написанию песен и в целом влияют на отношение слушателей к музыке. Читать дальш...

[Из песочницы] Parse & Android: рекомендации начинающим разработчикам Аннотация В данной статье я бы хотел поделиться общими впечатлениями от использования BaaS – решения под названием Parse для разработки бэкэнда Android-приложения, рассказать о всех «подводных камнях», с которыми мне пришлось столкнуться в период разработки. Впервые эту плат...

Новая видеокарта AMD громит конкурента из стана Nvidia, будучи при этом дешевле Компания AMD сегодня представила профессиональный графический ускоритель Radeon Pro W5700. Новинка основана на GPU Navi 10 и имеет производительность в 8,9 TFLOPS. Основной конкурент в лице Quadro RTX 4000 не только медленнее, но и дороже. И AMD решила наглядно продемо...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 22. Третья версия CCNA: продолжаем изучение RIP Я уже говорил, что буду обновлять свои видеоуроки до CCNA v3. Все, что вы выучили на предыдущих уроках, полностью соответствует новому курсу. Если возникнет необходимость, я буду включать дополнительные темы в новые уроки, так что можете не беспокоиться по поводу соответстви...

postfix+dovecot+mysql в FreeBSD Введение Почтовый сервер хотел изучить уже давно, но руки дошли только сейчас, да и информации корректной не особо много удавалось найти, поэтому решил написать как можно более подробную публикацию. В данной публикации пойдёт речь не только о postfix, dovecot, mysql, postfix...

Краткая история хранения данных, часть №2 — от дискет до SSD Вторая часть истории компьютерного хранения данных.

[Перевод] Строители против синтаксиса Java Шаблон проектирования «строитель» — один из самых популярных в Java. Он простой, он помогает делать объекты неизменяемыми, и его можно генерировать инструментами вроде @Builder в Project Lombok или Immutables. Но так ли удобен этот паттерн в Java? Читать дальше →

[Из песочницы] Как я переписывал поисковик авиабилетов с PHP на NodeJS Привет. Меня зовут Андрей, я студент-магистрант в одном из технических ВУЗов Москвы и по совместительству очень скромный начинающий предприниматель и разработчик. В этой статье я решил поделиться своим опытом перехода от PHP (который когда-то мне нравился из-за своей простот...

Mojang прекратила работу над «суперграфикой» для Minecraft Super Duper Graphics Pack, анонсированный еще на E3 2017, должен был добавить в Minecraft анимацию растительности, динамическое освещение, HDR и поддержку 4К-разрешения, а также обновить в игре рендеринг воды и геометрию предметов. Однако производительность апдейта на различ...

Цифровая лирика: мегаподборка песен и клипов о программировании и программистах Широко распространено мнение, что музыкальные способности и талант к программированию взаимосвязаны. Многие профессиональные музыканты питают склонность к точным наукам. Например, Борис Гребенщиков окончил факультет прикладной математики СПбГУ, а гитарист Radiohead Джонни Гр...

Архитектурный шаблон «Строитель» во вселенной «Swift» и «iOS»/«macOS» В этот раз я бы хотел немного поговорить о еще одном порождающем шаблоне проектирования из арсенала «Банды четырех» – «Строителе» («Builder»). Так вышло, что в ходе получения своего (пусть и не слишком обширного) опыта, я довольно часто видел, чтобы паттерн использовался в «...

Эффективное управление подключениями SignalR Здравствуй, Хабрахабр. В настоящий момент я работаю над созданием движка чата в основе которого лежит библиотека SignalR. Помимо увлекательного процесса погружения в мир real-time приложений пришлось столкнуться и с рядом вызовов технического характера. Об одном из них я и х...

OData сервис без написания кода Одним из наиболее важных аспектов разработки программного обеспечения является быстрое создание прототипов. Для большинства служб необходимы по крайней мере некоторые операции CRUD, и большинство приложений можно описать как приложения, управляемые данными. API, которые я п...

RC Машинки: Первые покупки — шасси и силовая установка Силовая установка — звучит как-то странно, но если подумать, то очень четко описывает те самые компоненты которые заставляют модель двигаться. Не уверен входит ли сюда сервопривод (лево/право). Если вы читали первую часть этого цикла, то вы знаете, что есть модели на ДВС и ...

Вся история Linux. Часть I: с чего все началось В этом году ядру Linux исполняется 27 лет. ОС на его базе используют многие корпорации, государственные, исследовательские учреждения и дата-центры по всему миру. За более чем четверть века вышло немало статей (в том числе и на Хабре), рассказывающих о разных отрезках истор...

[Из песочницы] 25 видов «Цезаря» и английские слова В мире криптографии есть много простых способов зашифровать сообщение. Каждый из них по-своему хорош. Об одном из них и пойдёт речь. Ылчу Щзкгув Или в переводе с «Шифра Цезаря» на русский — Шифр Цезаря. Читать дальше →

OS1: примитивное ядро на Rust для x86. Часть 3. Карта памяти, Page fault exception, куча и аллокации Первая часть Вторая часть Тема сегодняшнего разговора — работа с памятью. Я расскажу про инициализацию директории страниц, маппинг физической памяти, управление виртуальной и мою организацию кучи для аллокатора. Как я уже говорил в первой статье, я решил использовать страниц...

Криптографический АРМ на базе токенов PKCS#11. Получение сертификатов для ЕГАИС. Часть 4 И вот, когда я уже практически добавил в криптографический АРМ на базе токенов PKCS#11 cryptoarmpkcs генерацию самоподписанных сертификатов и готов был приступить к написанию статьи, мне пришло такое письмо:Мы являемся УЦ «Имярек», у нас возникло затруднение с выпуском ЭП в...

[Из песочницы] Celery taskcls: новый декоратор, новые возможности Привет, Хабр! Я расскажу тебе историю своего профессионального подгорания. Так вышло, что я терпеть не могу рутинных однообразных действий. У меня за плечами несколько проектов, использующих Celery. Каждый раз, когда задача становится сложнее вывода 2 + 2 = 5, шаблон решения...

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

[Из песочницы] Многоязычный синтез речи с клонированием Хотя нейронные сети стали использоваться для синтеза речи не так давно (например), они уже успели обогнал классические подходы и с каждым годам испытывают на себе всё новые и новый задачи. Например, пару месяцев назад появилась реализация синтеза речи с голосовым клонировани...

Рама для Камаза м 1/16 Продолжаю неспешно чертить и печатать свой "автомобильчик" . На этот раз покажу уже собранную раму для Камаза  с элементами 3D печати. Конечно , можно было бы купить готовую и не парить мозги и не гонять принтер , но ... Во первых - это не наш метод . Во вторых все сред...

Bingbot будет работать на базе последней версии браузера Edge В ближайшие месяцы краулер поисковой системы Bing – Bingbot – начнёт использовать браузер Microsoft Edge для выполнения JavaScript и рендеринга страниц. Кроме того, Bingbot будет постоянно обновляться до последней версии MS Edge, что сделает его «вечнозелёным», как и Googleb...

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

[Из песочницы] Кейс: Автосервис. Разработка рекламных кампаний и внедрение Битрикс24 История сегодня пойдёт про автосервис в Москве и его продвижении в течении 8 месяцев. Первое знакомство было ещё пару лет назад при странных обстоятельствах. Пришёл автосервис за заявками, но при этом никакой аналитики (гугл или метрики) не было, а уж тем более сквозной а...

[Перевод] Монада «Maybe» через async/await в C# (без Task-oв!) Обобщенные асинхронные типы возвращаемых значений — это новая возможность появившаяся в C# 7, которая позволяет использовать не только Task в качестве возвращаемого типа асинхронных (async/await) методов, но также и любые другие типы (классы или структуры), удовлетворяющие ...

Геймдизайн в жизнь. Экономика игры (Часть II) Доброго дня! Немного об авторе: меня зовут Мария, гейм дизайнер. Это третья статья из цикла по применению теории геймдизайна в жизни. Ссылки: Первая статья: «Гейм дизайн в жизнь. Пример разбора механики игры» Вторая статья: «Геймдизайн в жизнь. Экономика игры (Часть I)» ...

Лучшие 50 видеоигр XXI века по версии The Guardian На 10-м месте топа The Guardian расположилась игра Bloodborne, вышедшая на PlayStation 4 в 2015 году. На девятом же оказался первая игра серии BioShock, появившаяся в 2007-м. Восьмое место заняла игра Portal 2, вышедшая, в частности, на ПК, PS3 и Xbox 360 в 2011 году. На сед...

Собирать Docker-образы в werf теперь можно и по обычному Dockerfile Лучше поздно, чем никогда. Или как мы чуть не допустили серьёзную ошибку, не имея поддержки обычных Dockerfiles для сборки образов приложения. Речь пойдёт про werf — GitOps-утилиту, которая интегрируется с любой CI/CD-системой и обеспечивает управление всем жизненным цикл...

5 способов полезного использования Raspberry Pi. Часть вторая Привет Хабр. В первой части были рассмотрены 5 способов использования Raspberry Pi. Тема оказалась достаточно интересной, и сегодня я рассмотрю еще несколько вариантов того, как можно с пользой использовать этот микрокомпьютер. Фото с сайта learn.adafruit.com Как и в пре...

[Из песочницы] Как я поступал в 18 университетов США Всем привет. Меня зовут Даниил, и в этой статье я хочу поделиться с вами своей историей поступления в бакалавриат 18 университетов США. В интернете достаточно много рассказов о том, как можно учиться в магистратуре или аспирантуре совершенно бесплатно, но мало кто знает, что...

Самый первый Google Pixel получил режим астрофотографии, который Google не планировала выпускать Сразу после официального релиза смартфонов Google Pixel 4 и Pixel 4 XL компания Google обновила приложение Google Camera до версии 7.2, представив парочку новых режимов. Во-первых, речь идет о режиме астрофотографии (Astrophotography mode), в котором пользователи могут ...

[Перевод] Зачем в JavaScript нужен строгий режим? Строгий режим (strict mode) — это важная часть современного JavaScript. Именно этот режим позволяет разработчикам пользоваться более ограниченным, чем стандартный, синтаксисом. Семантика строгого режима отличается от традиционного нестрогого режима, который иногда называют ...

Словарик айтишника или Что? Где? Куда? Часть 1 «Привет! Добро пожаловать! Спасибо, что приняла наш оффер. Пойдем знакомиться с твоей командой. У них как раз сейчас дейли. Ты вышла под конец спринта, поэтому пока работы для тебя не запланировали. Как стендап закончится, можешь почитать спеки, командные окиары и просмотрет...

Они просыпаются! (н.-ф. повесть, часть 1 из 2) /* Читателям хаба «Научная фантастика» предлагается небольшая фантастическая повесть. Повесть разбита на 2 части, под катом находится первая. Вторая часть залита и готова к употреблению. Будет опубликована через трое суток — в том случае, если первая часть не выйдет в ми...

Пишем Reverse socks5 proxy на powershell.Часть 3 История об исследовании и разработке в 3-х частях. Часть 3 — практическая. Буков много — пользы еще больше Предыдущие статьи из цикла можно найти тут и здесь =) Проверка боем Давайте теперь проверим работу нашего скрипта на практике. Для этого попробуем выбросить обратный ...

Модернизация IDA Pro. Отладчик для Sega Mega Drive (часть 2) Привет всем, В предыдущей статье мы успешно модифицировали ядро эмулятора игр на Sega Mega Drive / Genesis, добавив в него возможность отладки. Теперь пришёл черёд написания собственно плагина-отладчика для IDA Pro, версия 7.0. Приступим. Читать дальше →

[Перевод] Собственная реализация библиотеки ECS На этой неделе я начал работать над своим движком для игры Vagabond и приступил к реализации шаблона entity-component-system. В этой статье я хочу рассказать о своей реализации, которая свободно доступна на GitHub. Но вместо простого комментирования кода я хочу объяснить, ...

[Перевод] Профилирование Unity UI: кто портит мой батчинг? Вы потратили бесконечное количество времени на оптимизацию Unity UI. Но для того, чтобы вызвать торможения, достаточно небольшой модификации крошечного атрибута почти невидимого элемента UI Canvas. И когда такое случается, даже профилирование Unity UI не спасёт вас от сниже...

Концепт новых умных часов от компании LG LG планирует внедрить камеру в умных часах. Патент, поданный в USTPO компанией LG, раскрывает устройство с парой конструкций для интеграции камеры. Samsung впервые попробовала эту концепцию еще в 2013 году с умными часами Gear первого поколения. Однако после этого поставщик ...

Деревянные игрушки, часть третья — 1989 Где-то в 1989-90 году я стал более-менее регулярно играть на РС, а не время от времени. Нас на выходные брали на работу и почти целый день у нас на троих в распоряжении имелось два компьютера с играми. На третьем компьютере в это время работали в чем-то Windows-подобном, но ...

Spring Data JPA: доводим напильником Приветствую, это вторая заметка о Spring Data JPA. Первая часть была целиком посвящена подводным граблям, а также советам бывалых. В этой части мы поговорим о том, как заточить фреймворк под свои нужды. Все описанные примеры доступны здесь. Читать дальше →

[Перевод] Новшества JavaScript: итоги Google I/O 2019. Часть 2 Сегодня мы публикуем вторую часть перевода материала о новшествах JavaScript. Здесь мы поговорим о разделителях разрядов чисел, о BigInt-числах, о работе с массивами и объектами, о globalThis, о сортировке, об API интернационализации и о промисах. → Первая часть Читать да...

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

Профилирование со сверхсветовой скоростью: теория и практика. Часть 1 Привет! Из заголовка вы уже поняли, о чём я собираюсь рассказать. Тут будет много хардкора: мы обсудим Java, С, С++, ассемблер, немного Linux, немного ядра операционной системы. А ещё разберём практический кейс, поэтому статья будет в трёх больших частях (достаточно объёмных...

Build 2019: Microsoft представила новое приложение командной строки Windows Terminal На конференции Build 2019 компания Microsoft анонсировала новое приложение командной строки для операционной системы Windows, которое получило название Windows Terminal. Он разработан в качестве единого места для получения доступа к PowerShell, CMD и Windows Subsystem for L...

Как нейронные сети графике помогали В 1943 году американские нейропсихологи Мак-Каллок и Питтс разработали компьютерную модель нейронной сети, а в 1958 первая работающая однослойная сеть распознавала некоторые буквы. Сейчас же нейросети для чего только не используются: для прогнозирования курса валют, диагност...

Готовое решение markdown2pdf с исходным кодом для Linux Предисловие Markdown это прекрасный способ написать небольшую статью, а иногда и достаточно объемный текст, с несложным форматированием в виде курсива и толстого шрифта. Также Markdown неплох для написания статей с включением исходного кода. Но иногда хочется без потерь, тан...

[Перевод] Топ 20 навигационных фич в IntelliJ IDEA. Часть 2 Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс». И хотя в данном материале речь пойдет преимущественно о Java, материал будет полезен Android-разработчикам Первая часть тут Читать дальше →

Laravel: объясняем основные понятия. Часть вторая: «Практика» Всем привет! Продолжаем серию авторских публикаций в преддверии старта курса «Framework Laravel». В прошлой статье мы с вами посмотрели на теоретические основы Laravel. Однако теорию любого фреймворка можно изучать достаточно долго и ничего не понять, пока сам не напишешь н...

[Из песочницы] Обзор технологий синтеза речи Всем привет! Меня зовут Влад и я работаю data scientist-ом в команде речевых технологий Тинькофф, которые используются в нашем голосовом помощнике Олеге. В этой статье я бы хотел сделать небольшой обзор технологий синтеза речи, использующихся в индустрии, и поделиться опытом...

Достраиваем в RESTinio четвертый этаж из C++ных шаблонов. Зачем и как? RESTinio — это относительно небольшой проект, представляющий из себя встраиваемый в C++приложения асинхронный HTTP-сервер. Его характерной особенностью является широкое, можно сказать, повсеместное применение C++ных шаблонов. Как в реализации, так и в публичном API. C++ные ш...

[Из песочницы] Библиотека генератора ассеблерного кода для микроконтроллеров AVR. Часть 1 Библиотека генератора ассеблерного кода для микроконтроллеров AVR Часть 1. Первое знакомство Добрый день, уважаемые хабаровчане. Хочу предложить Вашему вниманию очередной (из имеющегося великого множества) проект, для программирования популярных микроконтроллеров серии AVR. ...

[Перевод] Siemens строит электролизный завод для производства стали, работающий за счет ветряков Процесс «озеленения» металлургии — тренд 2019 года. До последнего времени традиционно выплавка металла считалась процессом который невозможно сделать экологичным, но попытки заменить часть процессов при выплавке на более дружественные окружающей среде начались. Причем заме...

[Перевод] Создание игры Tower Defense в Unity: баллистика [Первая, вторая и третья части туториала] Поддержка разных типов башен. Создание башни-мортиры. Вычисление параболических траекторий. Запуск взрывающихся снарядов. Это четвёртая часть туториала, посвящённого созданию простой игры в жанре tower defense. В ней мы добавим ба...

[Перевод] Руководство: типы эссе в английском языке и советы по их написанию Написание эссе – распространенное задание, с которым сталкиваются те, кто изучает английский. Часто эссе используются в качестве домашних заданий, части тестов, и, конечно, в качестве одного из испытаний при поступлении в учебные заведения. Я нашел интересный пост, в кот...

Импортозамещение на практике. Часть 1. Варианты Введение В связи с тем, что близится 2020 год и «час хэ», когда нужно будет отчитаться об исполнении приказа Минкомсвязи о переходе на отечественное ПО (в рамках импортозамещения), да не простое, а из реестра Минкомсвязи, мне прилетела задача о разработке плана, собственно...

Перепрограммируем кассу и печатаем на ней Киану Ривза. Часть 2. ПО для ПК В предыдущей статье я кратко описал свою прошивку для ККТ ШТРИХ-ФР-К, которая позволяет управлять термоголовкой, движками и соответственно выводить на печать все что угодно. В этой части я покажу как написать софт, который будет общаться с кассой и форматировать картинку для...

Russian AI Cup 2018, история 9 места Итак Меня, как и в прошлом году, зовут Андрей Рыбалка, только в этот раз мне 33. И, раз уж я оказался в десятке лучших, я решил снова поделиться своим подходом к написанию игрового бота для Russian AI Cup 2018. В этот раз заданием был футбол. Сама задача несколько напоминала...

[Из песочницы] Pythonhoted.org ошибочно заблокирован Роскомнадзором Поводом для написания статьи послужило отсутствие упоминаний данного события в Рунете. Виной тому, предположительно, является несоблюдение провайдерами требования РКН, о котором пойдет речь ниже. Мне его удалось обнаружить только в корпоративной сети. Но нет никаких сомнений...

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

Hackquest 2018. Results & Writeups. Day 4-7 Как и обещали, выкладываем вторую часть решений ежегодного хакквеста. Day 4-7: напряжение нарастает, а задания всё интереснее! Читать дальше →

Джон Мюллер: динамический рендеринг – это временное решение На днях сотрудник Google Джон Мюллер отметил, что динамический рендеринг – это временное решение, необходимость в котором может полностью отпасть в ближайшие несколько лет. С каждым годом Google всё лучше обрабатывает JavaScript, так что со временем потребность в предоставле...

[Перевод] Любопытные извращения из мира ИТ — 3 Сайт The Daily WTF уже 14 лет собирает курьёзные, дикие и/или печальные истории из мира ИТ. Я перевёл несколько рассказов, показавшихся мне интересными. Все имена и названия компаний изменены. Предыдущие выпуски можно найти по метке "любопытные извращения". История первая:...

[Из песочницы] Создание Dataflow шаблона для стриминга данных из Pub/Sub в BigQuery на базе GCP с помощью Apache Beam SDK и Python В данный момент занимаюсь задачей стриминга (и преобразования) данных. В некоторых кругах такой процесс известен как ETL, т.е. извлечение, преобразование и загрузка информации. Весь процесс включает в себя участие следующих сервисов Google Cloud Platform: Pub/Sub — сервис...

Вместо NVLink и SLI. Nvidia реализовала в драйверах режим CFR, позволяющий использовать в играх несколько GPU одновременно У пользователей видеокарт Nvidia скоро появится возможность использования в играх нескольких видеокарт одновременно, причем для этого не потребуется никаких усилий – все реализовано на уровне драйвера. Новый режим уже реализован в драйвере, а включить его можно пр...

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

Как мы нашли крутой способ связать бизнес и DevOps Философией DevOps, когда разработка соединяется с обслуживанием ПО, уже никого не удивишь. Набирает силу новый тренд — DevOps 2.0 или BizDevOps. В нем в единое целое сливаются уже три компонента: бизнес, разработка и поддержка. И как в DevOps’e инженерные практики ложатся в ...

Деревянные игрушки, часть последняя — 1997 Последний год, в котором выходили заметные тайтлы для DOS. Большая часть AAA-проектов уже идёт только под Windows, хотя в некоторых случаях рядом с виндовым экзешником ещё кладут досовский. Но этому недолго осталось, в 1998 под DOS уже только всякая мелочь была, для большинс...

[recovery mode] Сбалансированные показатели сайта. Часть 2: Техническая оптимизация Это вторая выпуск статей о сбалансированных показателях сайта. В первом выпуске речь шла о формировании стратегии продвижения, базиса для всех дальнейших работ. В этот раз поговорим о технической стороне внутренней оптимизации. Нельзя сказать, что это очень большая тема: осн...

Удивительные истории разработчика, часть 5: Тайны Мироздания И двух лет не прошло, как новая порция моих удивительных историй про приключения около IT кристаллизовалась и ждёт своих читателей. Приключения продолжаются! Присаживайся поудобнее, включай приглушённый свет, кутайся в плед и доставай глинтвейн, ведь в этот раз я поведаю, че...

[Перевод] Путь к проверке типов 4 миллионов строк Python-кода. Часть 3 Представляем вашему вниманию третью часть перевода материала о пути, который прошла компания Dropbox, внедряя у себя систему проверки типов Python-кода. → Предыдущие части: первая и вторая Читать дальше →

Shenmue III будет гораздо длиннее и обширнее первых двух частей Shenmue III находится в разработке уже несколько лет, но в 2019 году наконец-то порадует поклонников продолжением истории Рё Хадзуки, которое ждут с 2001 года. О проекте всё ещё многое неизвестно, но Ю Судзуки (Yu Suzuki) и его команда готовы поделиться некоторыми п...

Первые отзывы о MacBook Pro (2019) Вчера мы публиковали тесты производительности MacBook Pro (2019), и убедились, что скорость работы не оставит равнодушным никого. Пришло время рассказать о личных впечатлениях — тем более, что некоторые зарубежные издания уже успели заполучить новинку на обзор. Чем хо...

Как устроен фреймворк tiOPF для delphi/lazarus. Шаблон «Посетитель» От переводчика Есть две причины, по которым я взялся перевести несколько материалов по разработанному двадцать лет назад для не самой популярной ныне среды программирования фреймворку: 1. Несколько лет назад я, познав многие прелести работы с Entity Framework как ORM для пл...

Как защитить 5G в «умном» городе: применяем новую архитектуру безопасности В прошлом нашем посте речь шла об исследовании международного коллектива учёных A Security Architecture for 5G Networks, которые искали способ защитить сети пятого поколения. Исследователи предлагают для этого новую архитектуру безопасности. Чтобы лучше понимать термины и ...

[Перевод] Q2VKPT: полностью переписанный Quake II с реалистичным освещением Q2VKPT — это первая играбельная игра с полным рейтрейсингом, эффективно симулирующая полностью динамическое освещение в реальном времени с помощью тех же современных технологий, которые используются в киноиндустрии (см. Disney's practical guide to path tracing). Недавний в...

[Перевод] Использование JavaScript-модулей в продакшне: современное состояние дел. Часть 2 Сегодня мы публикуем вторую часть перевода материала, который посвящён использованию JS-модулей в продакшне. → Кстати, вот первая часть статьи. Читать дальше →

Что почитать по PHP на русском? PHP — один из самых популярных языков программирования. А ещё это язык, для изучения которого не так просто найти качественную книгу. Что ж, мы вместе с командой GeekBrains заглянем в интернет-магазин и посмотрим, что стоящего можно найти сегодня по PHP на русском языке. Ч...

CES 2019: NVIDIA показала новую версию своей демонстрации трассировки лучей Project Sol Первоначально NVIDIA анонсировала технологию гибридного рендеринга RTX ещё в марте прошлого года вместе с анонсом стандарта Microsoft DirectX Raytracing. Она позволяет использовать наряду с традиционными методами растрирования трассировку лучей в реальном времени, ч...

Разработка плагина для Grafana: история набитых шишек Всем привет! Несколько месяцев назад мы запустили в продакшн наш новый open-source проект — Grafana-плагин для мониторинга kubernetes, который назвали DevOpsProdigy KubeGraf. Исходный код плагина доступен в публичном репозитории на GitHub. А в этой статье мы хотим поделиться...

[Из песочницы] DevOps в разработке: автоматизация написания кода веб-приложений Доброго времени суток, уважаемые Хабражители! Сегодня DevOps находится на волне успеха. Практически на любой конференции, посвященной автоматизации, можно услышать от спикера мол “мы внедрили DevOps и тут и там, применили это и то, вести проекты стало значительно проще и т....

[Из песочницы] Включаем свет силой мысли, ну почти Написание алгоритмов наверное самая для меня интересная часть в домашней автоматизации. Но даже вся масса сенсоров и сценариев не справляется с буйной фантазией жизни и приходится добавлять способ непосредственного контроля. В качестве органов ручного управления можно поста...

Особенности работы с Mesh в Unity Компьютерная графика, как известно, является основой игровой индустрии. В процессе создания графического контента мы неизбежно сталкиваемся с трудностями, связанными с разницей его представления в среде создания и в приложении. К этим трудностям прибавляются риски простой че...

Microsoft помогает разработчикам портировать игры под DirectX 12 на Windows 7 Графический интерфейс DirectX 12 является эксклюзивным для операционной системой Windows 10. Именно ради него многие любители компьютерных игр вынуждены переходить на последнюю версию операционной системы Microsoft. Без этого они ещё много лет могли бы спокойно работать на с...

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

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

Краткая история необычных музыкальных форматов История форматов звукозаписи не исчерпывается виниловыми пластинками, компактными кассетами, CD и потоковым аудио. Сегодня речь пойдет про другие интересные носители. Читать дальше →

Собираем окружение для современного TDD на JavaScript + VS code TDD уже давно не является чем-то диковинным: на хабре можно найти об этом подходе сотни статей, а каждый новичок знает, какую книгу об экстремальном программировании ему нужно прочитать. Многие мои коллеги тоже используют TDD. Они добавляют тест, пишут код, рефакторят, по...

Shadow of the Tomb Raider. Сравнительное тестирование видеокарт в DirectX 11 и DirectX 12 В 2018 году вышла третья часть возрожденного сериала Tomb Raider. Новые приключения Лары Крофт развернулись на фоне густых джунглей и древних строений Майя. В очередной раз был доработан движок и прямо со старта...

[Из песочницы] Hunt the Wumpus или опыт написания классической игры для Android Слышали ли вы когда-нибудь про Вампуса? Независимо от ответа — добро пожаловать в его владения! В этой статье я хочу поведать вам свою историю создания игры под Android. В зависимости от компетенции читателя передаваемые мною опыт, мысли и решения будут более или менее по...

Пробую .NET Core + Kubernetes + appmetrics + prometheus + grafana + jobs + health checks Краткое знакомство с kubernetes для разработчиков на примере разворачивания простого шаблонного сайта, с постановкой его на мониторинг, выполнением джобов по расписанию и health checks (все исходники прилагаются) — Установка Kubernetes — Установка UI — Запуск своего прил...

[Перевод] Улучшите свой CSS с помощью этих 5 принципов Написание CSS — процесс достаточно простой и понятный, тогда почему для этого требуются еще какие-то принципы и best-practices? По мере увеличения масштабов проекта и количества людей, работающего над ним, всё более и более явно начинают проявляться новые сложности, котор...

[Перевод] Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 2 Сегодня публикуем вторую часть перевода материала, посвящённого статическому анализу больших объёмов серверного Python-кода в Instagram. → Первая часть Читать дальше →

Из физиков в Data Science (Из двигателей науки в офисный планктон). Третья часть Эта картинка, за авторством Артура Кузина (n01z3), достаточно точно суммирует содержание блог поста. Как следствие, дальнейшее повествование должно восприниматься скорее как пятничная история, нежели как что-то крайне полезное и техническое. Кроме того, стоит отметить, что ...

[Из песочницы] Whitespace Обфускатор для PHP Прочитав статью про обфускацию в JavaScript (а именно 3-ю часть статьи), я заинтересовался подобным обфускатором для PHP. Обфускатор, о котором шла речь в статье превращал JavaScript-код в невидимый (на первый взгляд), состоящий из табуляций и пробелов код. Суть заключаетс...

Графические ускорители Intel Xe будут поддерживать аппаратную трассировку лучей На проходящей в эти дни в немецком Штутгарте графической конференции FMX 2019, посвящённой анимации, эффектам, играм и цифровым медиа, компания Intel сделала чрезвычайно интересный анонс, касающийся будущих графических ускорителей семейства Xe. Как объявил Джим Джефферс (Jim...

Справочная: как устроен процесс Continuous Integration Сегодня мы обратимся к истории термина, обсудим сложности внедрения CI и приведем несколько популярных инструментов, которые помогут с ним работать. Читать дальше →

Ускорение запуска Julia при помощи PackageCompiler.jl Зайдя на официальный сайт языка программирования Julia, можно увидеть утверждение: "Julia is fast!". Однако, новые пользователи на практике сталкиваются с проблемой медленной загрузки модулей, в особенности графических [1,2]. Диалектически, причиной медленного запуска являет...

Алиса приобретает навык В этой статье речь пойдёт о голосовых интерфейсах (Voice User Interface — VUI), а также будет показано, как на Node.js можно создать приложение (навык — в терминологии платформы Яндекс.Диалоги) для голосового помощника Алисы. С помощью стороннего API наше приложение будет ...

Технология трассировки пути перевернет игровую индустрию Компания Square Enix выпустила ролик «Back Stage», который демонстрирует возможности рендеринга с применением технологии трассировки пути. Это новое слово в создании гиперреалистичной графики с отслеживанием распределения света в сложных сценах. Считается, что она станет осн...

[Перевод] Анализ и оптимизация React-приложений Люди, вроде меня, которые борются за высокую производительность сайтов, часто тратят на это много времени. Поэтому сейчас я собираюсь раз и навсегда решить проблему низкого быстродействий веб-ресурсов, интерфейс которых написан на React. А именно, я предлагаю всем, кто это ч...

[Перевод] Классификация покрова земли при помощи eo-learn. Часть 3 Когда нужны результаты лучше, чем "удовлетворительно" Часть 1 Часть 2 Переход зоны из зимнего сезона в летний, составлено из изображений Sentinel-2. Можно заметить некоторые отличия в типах покрова по снегу, что описывалось в прошлой статье. Читать дальше →

Идиоматичное программирование GPU на Rust: Библиотека Emu Введение Emu — это высокоуровневый язык программирования видеокарт, способный встраиваться в обычный код на системном языке программирования Rust. В данной статье речь пойдёт о синтаксисе Emu, его особенностях, а также будут показаны несколько наглядных примеров его использ...

DynamicData: Изменяющиеся коллекции, шаблон проектирования MVVM и реактивные расширения В феврале 2019 года состоялся релиз ReactiveUI 9  —  кроссплатформенного фреймворка для построения приложений с графическим пользовательским интерфейсом на платформе Microsoft .NET. ReactiveUI  — это инструмент для тесной интеграции реактивных расширений с шаблоном проектиро...

Так что же будет с аутентификацией и паролями? Вторая часть отчета Javelin «Состояние строгой аутентификации» Недавно исследовательская компания «Javelin Strategy & Research» опубликовала отчёт «The State of Strong Authentication 2019». Его создатели собрали информацию о том какие способы аутентификации используются в корпоративной среде и пользовательских приложениях, а также...

Стала известна возможная схема наименования процессоров AMD Ryzen Threadripper третьего поколения В ноябре AMD хочет вывести на рынок первых представителей третьего поколения процессоров Ryzen Threadripper. Пока известно только то, что младшая модель будет иметь 24 ядра. Указание на возможную схему именования этих процессоров обнаружено в документах организации Seri...

[Перевод] Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 2 Представляем вашему вниманию вторую часть перевода материала, посвящённого особенностям работы с модулями в Python-проектах Instagram. В первой части перевода был дан обзор ситуации и показаны две проблемы. Одна из них касается медленного запуска сервера, вторая — побочных э...

[Перевод] Почему MS-DOS именно две секунды хранит буфер чтения флоппи? MS-DOS 2.0 хранит буфер чтения с диска, но не буфер записи. Буфер чтения важен: он позволяет избежать повторного чтения. И его можно аннулировать, когда том отмонтирован. Но погодите, мы же не отмонтируем дискеты. Мы их просто вынимаем. Дисководы той эпохи можно было откры...

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 2: подготовка документов и переезд Итак, за примерно год (май 2017 — февраль 2018) я, программист C++, нашел-таки работу в Европе. Я десятки раз откликался на вакансии в Англии, Ирландии, Швеции, Нидерландах и даже в Португалии. Я раз двадцать беседовал по телефону, скайпу и прочим системам видео связи с рекр...

Лучшие программы для создания сторис в Instagram Если вы используете Instagram не первый день, то наверняка в курсе существования такой функции, как «истории». Это небольшие фото или видеоролики, которые хранятся 24 часа и доступны в специальном разделе. Однако если вы подписаны на топовых блогеров, то наверняка...

[Из песочницы] Восстание машин началось. Google Play Небоскребы, небоскребы, стены, лифты, этажи, расскажу я вам, ребята, про восстание машин… Сцена из КВН Я — самый настоящий инди-разработчик и это моя страсть. Начал свой путь 4.5 года назад, опубликовав свое первое приложение в Google Play. Мной была сделана вся работа по ...

NLP. Основы. Техники. Саморазвитие. Часть 1 Привет! Меня зовут Иван Смуров, и я возглавляю группу исследований в области NLP в компании ABBYY. О том, чем занимается наша группа, можно почитать здесь. Недавно я читал лекцию про Natural Language Processing (NLP) в Школе глубокого обучения – это кружок при Физтех-школе п...

XEN и будущее automotive: как опенсорс-гипервизор становится конкурентом коммерческим автомобильным решениям Это история в двух частях — о новом витке развития automotive. В первой Алекс Агизим, CTO Automotive & Embedded Systems в EPAM, расскажет о виртуализации в автомобильном компьютере. А также как и почему опенсорсный гипервизор XEN может стать полноценным конкурентом комме...

Дмитрий Мацкевич, Dbrain (часть 2): о нейробиологии, внутренней свободе, «дешевом дофамине» и интуиции Вторая часть разговора Алексея Иванова с Дмитрием Мацкевичем, CEO и кофаундером Dbrain и популяризатором нейронауки. Это одиннадцатое интервью в серии бесед с топовыми специалистами в своих областях про продуктовый подход, предпринимательство, психологию и изменение поведен...

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

12 точек роста конверсии, или контент, который реально продаёт Интернет это та среда, в которой нет возможности потрогать товар руками, поэтому фотография играет очень важную роль при продаже на сайте. Именно поэтому, фотографии товаров на Amazon (одного из самых крупных интернет-магазинов в мире) занимают целых 25% от площади первого э...

Изучаем календарь Эта статья получилась из вопроса, который я вчера задал сам себе. «Существует ли год, в котором ни один месяц не начинается в понедельник?» На первый взгляд — да. Год может начинаться с любого дня недели, месяцы тоже каждый раз начинаются в разные дни недели. Вариантов множ...

[Из песочницы] Обзор и сравнение V2X технологий Summary V2X — это общее название для всех видов коммуникаций между транспортными средствами. Рассмотрим и сравним доступные спецификации, математические модели, увидим какие существуют коммерческие решения в этой области и как их купить в России. Начнем с короткого обзора ...

[Перевод] Пишем Android-приложение на ассемблере Эта рассказ о нестандартном подходе к разработке Android-приложений. Одно дело — установка Android Studio и написание «Hello, World» на Java или Kotlin. Но я покажу, как эту же задачу можно выполнить иначе. Читать дальше →

[Перевод] Создание игры Tower Defense в Unity: башни и стрельба по врагам [Первая и вторая части туториала] Размещаем на поле башни. Целимся во врагов при помощи физики. Отслеживаем их, пока это возможно. Стреляем в них лазерным лучом. Это третья часть серии туториалов о создании простой игры жанра tower defense. В ней рассмотрено создание баше...

Глубины SIEM: корреляции «из коробки». Часть 4. Модель системы как контекст правил корреляции Представьте ситуацию: вы потратили много времени на написание и отладку правил корреляции, а через день обнаружили, что они не работают. Как говорится, никогда такого не было и вот опять! После выясняется, что ночью сеть в очередной раз модернизировали, а парочку серверов за...

[Из песочницы] Что ты такое, замыкания в JavaScript? В этой статье я постараюсь разобрать механизм реализации замыканий в JavaScript. Для этого я буду использовать браузер Chrome. Начнем с определения: Замыкания  - это функции, ссылающиеся на независимые (свободные) переменные. Другими словами, функция, определённая в замыка...

Третья уязвимость Steam Windows Client, но не 0day В предыдущих сериях Не так давно я рассказал о двух уязвимостях Стима: CVE-2019-14743 и CVE-2019-15316. Там была целая история о том, как я пытался зарепортить их, у меня не получалось, меня забанили, и только после публичного раскрытия и помощи сообщества удалось достичь ре...

[Перевод] AMD Radeon VII: рывок в High-End (часть 3) Часть 1 >> Часть 2>>Часть 3 Производительность вычислений Пожалуй, достаточно об играх. Рассмотрим вычислительные аспекты Radeon VII. Хотя он в основе своей похож на Vega первого поколения, вокруг него много шума об улучшенной вычислительной мощности Vega 20. По...

Деревянные игрушки, часть десятая — 1996 В 1996 году у меня наконец-то появилась возможность собрать свой компьютер. Материнку с процессором 486dx33 купил на митинском рынке за какие-то копейки, потому что она больше ни с чем не работала, кроме этого процессора, хоть формально и поддерживала всё, что бывает в приро...

[Из песочницы] Из Москвы в Томск. История одного переезда Всем привет! На Хабре можно найти множество статей о переезде в разные города и страны в поисках лучшей жизни. Вот и я решил поделиться своей историей переселения из Москвы в Томск. Да, в Сибирь. Ну это там, где 40-градусные морозы зимой, комары размером со слона летом и руч...

[Перевод] Что происходило с SSD в 2018 году Прошлый год в истории SSD оказался самым интересным с тех пор, когда эти устройста пошли в массовое потребление. Увеличилась конкуренция и уменьшились цены. Существующие технологии, типа 3D NAND и NVMe, выдали своё полный потенциал, а новые технологи, типа QLC NAND, взяли ...

PVS-Studio for Java отправляется в путь. Следующая остановка — Elasticsearch Далеко не первый год команда PVS-Studio ведет блог о проверках open-source проектов одноименным статическим анализатором кода. На сегодняшний момент проверено более 300 проектов, а в базу найденных ошибок выписано более 12000 случаев. Изначально анализатор был реализован дл...

Все, что нужно знать об iOS App Extensions App Extensions появились в iOS 8 и сделали систему более гибкой, мощной и доступной для пользователей. Приложения могут отображаться в виде виджета в Центре Уведомлений, предлагать свои фильтры для фотографий в Photos, отображать новую системную клавиатуру и многое другое....

[Перевод] Планы на Angular 8.0 и Ivy Каждую неделю мы получаем вопрос: "Когда уже Ivy будет готов?". Пришло время рассказать, как обстоят дела с версией 8.0, а также поделиться с вами планами по доведению до ума и релизу движка Ivy. В восьмой версии, выходящей во втором квартале текущего года, мы хотели бы ввес...

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

[Перевод] Apollo Client. Теперь — с хуками React Автор материала, перевод которого мы публикуем сегодня, говорит, что миссия разработчиков Apollo Client заключается в том, чтобы сделать этот инструмент самым современным и удобным решением для управления состоянием React-приложений. Сообщество React развивается и осваивает ...

Импортозамещение на практике. Часть 2. Начало. Гипервизор В предыдущей статье были рассмотрены варианты, на что можно заменить существующие системы в рамках выполнения приказа об импортозамещении. Далее в статьях речь пойдет о выборе конкретных продуктов для замены развернутых в настоящее время. Начнем с точки отсчета — системы вир...

SIBUR Challenge 2019 – соревнование по анализу промышленных данных Всем привет! Продолжается онлайн-этап конкурса по анализу данных – SIBUR Challenge 2019. Коротко о главном: SIBUR Challenge – это наш фирменный хакатон, который мы делаем вместе с AI Community. В качестве кейсов мы используем реальные производственные задачи, основанные...

Microsoft скроет старый браузер Edge из списка приложений Windows 10 Как известно, Microsoft работает над новой версией браузера Edge на базе проекта Chromium, публичное тестирование которой началось несколько месяцев назад, поэтому неудивительно, что компания планирует избавиться от старой версии Edge (UWP). Разработчик Рафаэль Ривера (Rafa...

Байки из склепа (из 40 лет работы программиста) С ЭВМ (слово компьютер тогда не было в ходу) я столкнулся в году 1977, просто курс такой был на мехмате. Fortran IV, коды М-20, Algol-60, PL/1, сразу после универа попал в программисты (системные программисты!), и пошло-поехало… А несколько лет назад я активно кодировать воо...

Рендер чехла смартфона Nokia 9 PureView В интернете появились рендер-изображений чехлов Nokia 9. Рендеры соответствуют предыдущим изображениям, которые мы видели. Все рендеры имеют семь отверстий для пяти камер, одной вспышки и одной для оптического датчика. На этих фотографиях нет передней части устройств...

Строительные блоки распределенных приложений. Первое приближение В прошлой статье мы разобрали теоретические основы реактивной архитектуры. Пришло время поговорить о потоках данных, путях реализации реактивных Erlang/Elixir систем и шаблонах обмена сообщениями в них: Request-response Request-Chunked Response Response with Request Publis...

[Перевод] Метрики производительности для исследования невероятно быстрых веб-приложений Есть одно высказывание: «Что ты не можешь измерить, то ты не можешь улучшить». Автор статьи, перевод которой мы сегодня публикуем, работает в компании Superhuman. Он говорит, что эта компания занимается разработкой самого быстрого в мире почтового клиента. Здесь речь пойдёт ...

История одного монолита. Часть 2 В прошлой статье я рассказал краткую историю развития внутренних и внешних продуктов компании ДубльГИС. Сегодня погрузимся в детали развития одного из продуктов, а именно экспорта данных. Я расскажу об архитектуре проекта и отдельных технических решениях, которые позволил...

[Из песочницы] История одной оптимизации MySQL Речь пойдет об оптимизации в MySQL базе данных. Это случилось, когда мы делали систему для email рассылок. Наша система должна была высылать десятки млн. писем в день. Отправка письма — задача не из простых, хотя выглядит все довольно примитивно: Собрать письмо из html кр...

Передача двумерных списков из python в DLL Всем привет. Решил несколько дополнить статью C/C++ из Python. Передача стандартных типов, таких как int, bool, float и так далее довольно проста, но мало необходима. С такими данными быстро справится и сам python, и врядли у кого-то возникнет необходимость вынесения части т...

[Перевод] [в закладки] Bash для начинающих: 21 полезная команда Материал, перевод которого мы публикуем сегодня, предназначен для тех, кто хочет освоить командную строку Linux. Умение эффективно пользоваться этим инструментом позволяет экономить немало времени. В частности, речь здесь пойдёт о командной оболочке Bash и о 21 полезной кома...

Operating Systems: Three Easy Pieces. Part 5: Планирование: Multi-Level Feedback Queue (перевод) Введение в операционные системы Привет, Хабр! Хочу представить вашему вниманию серию статей-переводов одной интересной на мой взгляд литературы — OSTEP. В этом материале рассматривается достаточно глубоко работа unix-подобных операционных систем, а именно — работа с процесс...

[Перевод] Создание AR-игры с помощью Vuforia [Под катом есть объёмные GIF] Дополненная реальность (Augmented reality, AR) внезапно стала очень популярным термином. Благодаря Vuforia разработчики с лёгкостью могут дополнять физический мир цифровым контентом. Хотя выпуск ARKit и ARCore позволил повысить известность до...

Unity вместе с Havok работают над новым физическим движком Сегодня на GDC Unity объявили о сотрудничестве с Havok от Microsoft над двумя физическими движками. Первый — Unity Physics, который будет дефолтным, полностью написанный на высокопроизводительном C# коде. Второй — Havok Physics полностью интегрированный в Unity. Читать дал...

Netpeak Software выпустили новую версию программы Netpeak Spider 3.2 Команда Netpeak Software представила новую версию программы для SEO-аудита Netpeak Spider. Функционал инструмента стал ещё шире благодаря реализации рендеринга JavaScript, экспорта отчётов о качестве оптимизации в формате PDF и расширенного описания ошибок в самой программе....

Двигаемые мышкой виджеты. Drag and drop в пределах окна Обычное понимание Drag and Drop(D&D) предполагает, что берётся, например, ссылка на файл из одного виджета и перемещается мышкой в другое окно или виджет. Далее пойдёт речь не о библиотечных функциях D&D, а о собственной реализации перемещения виджета в пределах окна...

RubyRussia 2019. Никита Шильников об алгебраическиех эффектах До конференции RubyRussia остается совсем немного времени. У тех, кто не успел получить свой билет, еще есть шанс забрать на сайте один из последних. Никита Шильников на конференции расскажет об алгебраическиех эффектах, а пока можно почитать интервью по теме доклада. Чита...

Чат на сайте и в выдаче Яндекс В этом тексте речь пойдёт о чатах для бизнеса от Яндекс. 3 апреля 2019 г. Яндекс объявил о том, что он запустил собственную чат-платформу. Надо сказать, что появление чатов на страницах поисковой выдачи Яндекса произошло несколько ранее, но теперь Яндекс берётся и обрабаты...

Завершающий курс специализации по Python от Mail.ru Group Python — простой и гибкий язык, применяемый во многих областях современной разработки. На нём создают веб-приложения, пишут игры, анализируют данные и выполняют многие другие задачи. Mail.ru Group запустила на платформе Coursera специализацию «Программирование на Python», ...

[Перевод] Создание динамических PDF-файлов с использованием React и Node.js Материал, перевод которого мы сегодня публикуем, посвящён созданию динамических PDF-файлов с использованием HTML-кода в качестве шаблона. А именно, речь пойдёт о том, как сформировать простой счёт на оплату неких товаров или услуг, динамические данные, включённые в который, ...

[Из песочницы] Что нужно знать перед переходом на Akka toolkit для реализации Event Sourcing и CQRS Здравствуйте, уважаемые читатели Хабра. Меня зовут Рустем и я главный разработчик в казахстанской ИТ-компании DAR. В этой статье я расскажу, что нужно знать перед тем, как переходить на шаблоны Event Sourcing и CQRS с помощью Akka toolkit. Примерно с 2015 года мы начали прое...

Победа на PHDays 9. Делимся лайфхаками в трёх частях. Часть 2 Всем привет! Меня зовут Виталий Малкин. Я руководитель отдела анализа защищённости компании «Информзащита» и по совместительству капитан команды True0xA3. Чуть больше недели назад мы победили в одном из самых престижных соревнований белых хакеров в СНГ. В прошлой статье (есл...

[Перевод] История электронных компьютеров, часть 4: электронная революция История реле Метод «быстрой передачи сведений», или Зарождение реле Дальнописец Гальванизм Предприниматели А вот, наконец, и реле Говорящий телеграф Просто соединить Забытое поколение релейных компьютеров Электронная эра История электронных компьютеров Пролог Колосс E...

[Из песочницы] Инициализация и работа интерпретатора байткода в JVM HotSpot под x86 Почти каждый Java разработчик знает, что программы, написанные на языке Java изначально компилируются в JVM-байткод и хранятся в виде class-файлов стандартизованного формата. После попадания таких class-файлов внутрь виртуальной машины и пока до них еще не успел добраться ко...

Crytek продемонстрировала трассировку лучей в реальном времени на Radeon RX Vega 56 Компания Crytek опубликовала видео с демонстрацией результатов разработки новой версии её собственного игрового движка CryEngine. Демонстрация называется Neon Noir, и в ней показана работа функции Total Illumination с трассировкой лучей в реальном времени. Ключевой особен...

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

Linux Quest. Поздравляем победителей и рассказываем про решения заданий 25 марта мы открыли регистрацию на Linux Quest, это Игра для любителей и знатоков операционной системы Linux. Немного статистики: зарегистрировалось на игру 1117 человек, из них 317 — нашли хотя бы один ключ, 241 успешно справились с заданием первого этапа, 123 — второго и...

О сравнении форматов хранения в Hadoop: начнем с ORC В Hadoop входят продукты, которые могут работать с файлами разных форматов. Я неоднократно искал, читал и думал над тем — какой же формат лучше. Относительно случайно столкнувшись с форматом ORC, заинтересовался, почитал (и даже чуть покодил) и вот что понял — сравнивать фор...

Google опубликовал серию твитов на тему блокировки смешанного контента в Chrome Команда Google Webmasters опубликовала в Twitter серию твитов, посвящённых предстоящим изменениям в обработке смешанного контента в Chrome. Как сообщалось ранее, с декабря браузер начнёт блокировать весь такой контент. Повлияет ли это изменение на рендеринг сайта? Если сайт ...

Ansible для управления конфигурацией Windows. История успеха На одной из встреч питерского сообщества .Net разработчиков SpbDotNet Community мы пошли на эксперимент и решили рассказать о том, как можно применять подходы, давно ставшие стандартом в мире Linux, для автоматизации Windows-инфраструктур. Но дабы не доводить всё до голослов...

Clean Decomposition Об использовании чистой архитектуры в Android сказано предостаточно. На GitHub можно найти десятки шаблонов на разные вкусы: на Java или Kotlin, с Dagger2 или Koin, с Rx или с Coroutines. Но никто не говорит о том, как разбить определенный функционал при использовании «чисто...

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

[Из песочницы] 10 принципов самодокументируемого кода Привет! Сегодня я хочу поделиться советами по написанию совершенного понятного кода, взятые из книги Питера Гудлифа «Ремесло программиста // Практика написания хорошего кода». Конечно, неплохо было бы прочитать эту занимательную книгу каждому кто пишет код, но для особо ле...

Холивар. История рунета. Часть 2. Контркультура: пАдонки, марихуана и Кремль Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е В конце 90-х монополия интеллектуалов на рунет была нарушена. В царство завлабов и филологов ворвались два юных хулигана — Константин Рыков по кличке Jason Foris, и Егор Лавров по кличке Skele...

[Перевод] Как разрабатываются и производятся процессоры: изготовление чипа Это третья статья из серии о проектировании ЦП. В первой статье мы рассмотрели архитектуру компьютера и объяснили его работу на высоком уровне. Во второй статье говорилось о проектировании и реализации некоторых компонентов чипа. В третьей части мы узнаем, как архитектурные...

Инфраструктура как код, выигрываем на масштабе (Кирилл Ветчинкин, TYME) Модель «Инфраструктура как код (IaC)», которую иногда называют «программируемой инфраструктурой», — это модель, по которой процесс настройки инфраструктуры аналогичен процессу программирования ПО. По сути, она положила начало устранению границ между написанием приложений и с...

[Из песочницы] Менеджмент памяти или как реже стрелять себе в ногу Привет, Хабр! В этой статье я попытаюсь рассказать, что из себя представляет менеджмент памяти в программах/приложениях с точки зрения прикладного программиста. Это не исчерпывающее руководство или мануал, а просто обзор существующих проблем и некоторых подходов к их решению...

[Из песочницы] Почему мы пишем бизнес-логику на Lua Привет, Хабр. В этом посте мы хотим рассказать о том, как и почему мы в IPONWEB используем язык программирования с красивым названием Lua. Lua — скриптовый встраиваемый язык программирования со свободно распространяемым интерпретатором и открытыми исходными текстами на C. О...

[Перевод] Реверс-инжиниринг клиента Dropbox TL;DR. В статье рассказывается об обратной разработке клиента Dropbox, взломе механизмов обфускации и декомпиляции клиента на Python, а также изменении программы для активации функций отладки, которые скрыты в обычном режиме. Если вас интересует только соответствующий код и ...

[Перевод] Как заблокировать работу Microsoft Edge в фоне под Windows 10 Работая на устройстве под управлением ОС Windows 10, вы могли заметить в Task Manager среди запущенных процессов Microsoft Edge, даже если вы не пользуетесь этим браузером. Эти процессы, MicrosoftEdge.exe, MicrosoftEdgeCP.exe и MicrosoftEdgeSH.exe, отображаются там как прио...

VMware NSX для самых маленьких. Часть 5. Настройка балансировщика нагрузки Часть первая. Вводная Часть вторая. Настройка правил Firewall и NAT Часть третья. Настройка DHCP Часть четвертая. Настройка маршрутизации В прошлый раз мы говорили о возможностях NSX Edge в разрезе статической и динамической маршрутизации, а сегодня будем разбираться с ба...

[recovery mode] Tcl для Cisco IOS в простых примерах Представим, что вам нужно развернуть «с нуля» десяток однотипных access-коммутаторов Cisco. Типовая конфигурация включает имя хоста и домена, шлюз по-умолчанию, пароли, список пользователей, IP-адреса для SVI, номера VLAN'ов, настройки транков аплинков и т.д. Вводить это каж...

Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4) В предыдущей статье Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора), был разобран вопрос о том, как расположить константные объекты в ROM. Теперь же я хочу рассказать, как можно использовать порождающий шаблон одиночка для создания ...

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

Бэкап для Linux не пишет писем Всем привет! Сегодня хочу поведать о том, как управлять Veeam Agent for Linux с помощью командной строки, и о том, какие возможности она открывает в умелых руках программиста. На написание статьи меня подтолкнул комментарий к предыдущей статье. Перефразирую удивление поль...

[Перевод] Как написать смарт контракт на WebAssembly в сети Ontology? Часть 2: С++ В этой статье мы разберем на двух примерах, как написать смарт контракт на языке C++, используя WASM на основе блокчейн сети Ontology. Сегодня, после нескольких месяцев стабильной работы в тестовом режиме, Ontology запустила WASM в основной сети, что позволяет безболезненн...

[Перевод] Почему Senior Developer'ы не могут устроиться на работу Сначала о том, как 5 месяцев назад я проходил собеседование на работу. Меня посоветовал друг, и прошло уже немало времени, с момента как я ответил рекрутеру. Я был поражён, как сильно весь процесс изменился за последние 5 лет. После первичного созвона меня отправили на стор...

Надежное программирование в разрезе языков — нубообзор. Часть 1 В очередной раз провозившись два дня на написание и отладку всего четырехсот строк кода системной библиотеки, возникла мысль — “как бы хорошо, если бы программы писались менее болезненным способом”. И в первую очередь, поскольку отладка занимает гораздо больше времени, чем ...

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

Mattermost. Интеграция с внешними сервисами (часть 2) Продолжим разбираться с mattermost в части интеграции с внешними сервисами. Часть вторая. Интеграция с Zabbix Во второй части повествования о интеграции mattermost, речь пойдет про отправку сообщений об авариях из zabbix в mattermost. В результате поисков в сети был взят за ...

Atlassian Confluence: расширяем на python В Альфастраховании мы активно пользуемся "Вики", движком которого выступает Atlassian Confluence. Когда я первый раз с ним всерьез столкнулся (в попытке создать в нем контент), мне в нем не хватило "динамичности" — хотелось иметь возможность программно формировать части стра...

Новинки, которые будут представлены на MWC 2019. Часть 2. Xiaomi, Huawei, Nokia и другие Я продолжаю рассказывать о новых смартфонах, которые должны быть представлены уже через неделю в рамках выставки Mobile World Congress 2019. В этом материале речь пойдёт о новинках от компаний Huawei, Xiaomi, Nokia, OnePlus и LG. Все они запланировали пресс-конференции, а зн...

Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис. Часть 2 (Реализация API на стороне 1С) 1. Выбор способа обмена. Описание API. 2. Реализация API на стороне 1С. 3. Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис. Часть 3(BroadcastReceiver. Получаем данные) Пособий как создать HTTP-сервис в интернете предостаточно. Поэтому сразу опишу реализац...

[Перевод] Oops, I did it again: отладка распространенных ошибок в JavaScript Порой написание кода JavaScript дается сложно, а иногда и просто пугает, что знакомо многим разработчикам. В процессе работы неизбежно возникают ошибки, причем некоторые из них повторяются частенько. В статье, рассчитанной на начинающих разработчиков, рассказывается об эт...

Operating Systems: Three Easy Pieces. Part 4: Введение в планировщик (перевод) Введение в операционные системы Привет, Хабр! Хочу представить вашему вниманию серию статей-переводов одной интересной на мой взгляд литературы — OSTEP. В этом материале рассматривается достаточно глубоко работа unix-подобных операционных систем, а именно — работа с процесс...

Как взять сетевую инфраструктуру под свой контроль. Часть третья. Сетевая безопасность. Продолжение Это вторая часть главы «Сетевая безопасность» (которая в свою очередь является третьей частью цикла статей «Как взять сетевую инфраструктуру под свой контроль»). В первой части этой главы мы рассмотрели некоторые аспекты сетевой безопасности сегмента «Data Center». Эта глава...

iPhone 11 Pro — прорыв или провал? | Дебаты Сегодня на нашем канале стартовала рубрика, в которой Борис Веденский и Валерий Истишев будут обсуждать некую тему с 2 сторон, предлагая различные точки зрения. В первом выпуске речь пойдет о свежеанонсированной линейке смартфонов от Apple. Подробнее об iPhone 11 Pro и 11 P...

ЧПУ в хоббийной мастерской (часть 2) → Первая часть В статье рассмотрим стандартное и нестандартное использование CNC-роутера. Для чего кроме вырезания деревянных картинок можно приспособить такой станок. Осторожно, трафик. Читать дальше →

Деревянные игрушки, часть четвертая — 1990 Восьмидесятые закончились и сразу довольно резко выросло количество игр, как выходящих вообще, так и доступных тогда ещё в СССР. Если честно, не знаю тогдашних источников. Сомневаюсь, что качали откуда-то — в нашей деревне, по крайней мере. Скорее привозили из столицы на мал...

Компактный и лёгкий ультрабук Chuwi AeroBook Устройство можно использовать и для развлечений. На нём без проблем запускаются несложные игры вроде HearthStone в разрешении 1080p и с высокими настройками графики. При необходимости на Chuwi Aero Book можно работать с фотографиями в Photoshop CC 2018. Ноутбуку требуется вс...

Сертификация ISTQB. Часть 2: Как готовиться к сертификации ISTQB? Истории из практики В Первой части нашей статьи по сертификации ISTQB мы постарались ответить на вопросы: Кому? и Зачем? нужен данный сертификат. Меленький спойлер: сотрудничество с ISTQB открывает больше дверей скорее перед компанией-работодателем, чем перед новоявленным владельцем сертификат...

Googlebot рендерит страницу в среднем за 5 секунд после сканирования На сегодняшний день медианное время между сканированием и окончанием рендеринга страницы поисковым роботом Googlebot составляет 5 секунд. Об этом заявил сотрудник поиска Мартин Сплитт на Chrome Dev Summit 2019. При этом даже 90-й процентиль делается «за считанные минуты...

Asterisk. Dialplan Askozia 6. Исходящие звонки В статье пойдет речь о бесплатной АТС Askozia версии 6. При разработке телефонной станции одной из первых задач была организация исходящих звонков. Как это было В старой версии Askozia использовались стандартные “шаблоны” dialplan. X! — все номера телефонов XXX — трехзна...

В macOS 10.15 более не поддерживаются 32-битные приложения. Что вы можете сделать? 7 октября 2019 года Apple выпустила в свет новую версию своей операционной системы для Mac, macOS Catalina. Версия 10.15 содержит множество изменений и улучшений. Одно из значимых – полный отказ от 32-битных приложений. Будучи разработчиком таких приложений для macOS, что в...

В Google Maps теперь можно убрать 3D-рендеринг Карты Google - это больше, чем просто картографическое и навигационное приложение, которое доставит вас из точки «А» в точку «B» по самому быстрому маршруту. Google постоянно работает над внесением небольших изменений в свои приложения, чтобы добавить в них новые возможности...

[Из песочницы] Как я создавал «WildMAN» — пародию на множество 8-битных игр и недавно ее портировал на Android Я думаю каждого фаната приставочных игр интересовала тема создания игр и была мечта создать свою игру, в студенческие годы я увлёкся программированием. Читать дальше →

5 лайфхаков оптимизации SQL-запросов в Greenplum Любые процессы, связанные с базой, рано или поздно сталкиваются с проблемами производительности запросов к этой базе. Хранилище данных Ростелекома построено на Greenplum, большая часть вычислений (transform) производится sql-запросами, которые запускает (либо генерирует и...

[Перевод] Всё, что нужно для начала работы с Vue.js Скорее всего, вы, читая эти строки, уже слышали о JavaScript-фреймворке, который называется Vue. Если вы собирались его опробовать, но не очень хорошо представляли себе то, с чего вам стоит начать, значит — этот материал написан специально для вас. Его автор говорит, что хоч...

Хотите купить смартфон? Идите в библиотеку Apple Carnegie Library Вы всегда хотели пойти в библиотеку, почитать книгу и одновременно купить смартфон? Тогда вам очень повезло.

8 месяцев в доме с призраками: пользователи Reddit поделились самыми страшными историями из жизни После таких историй начинаешь иначе относиться ко всем странным звукам в тишине.

IQOO начнет выпуск со складного смартфона Всего несколько дней назад Vivo анонсировала собственный суббренд под названием IQOO. Согласно сообщениям, этот новый бренд будет выпускать премиальные смартфоны стоимостью более 700 долларов. Это означает, что в ближайшем будущем мы можем ожидать появления устройств ф...

Делегирование обратной зоны подсети менее /24 в BIND. Как это работает Встала однажды передо мной задача, отдать одному из клиентов право на редактирование PTR-записей отданной ему подсети /28. Автоматизации для редактирования настроек BIND извне у меня нет. Поэтому я решил пойти другим путем — делегировать клиенту кусок PTR-зоны подсети /24. ...

[Перевод] Жизненный цикл кода на Python – модель выполнения CPython Всем привет! Наступила весна, а это значит, что до запуска курса «Разработчик Python» остается меньше месяца. Именно этому курсу и будет посвящена наша сегодняшняя публикация. Задачи: — Узнать о внутреннем устройстве Python; — Понять принципы построения абстрактного син...

Звук на проволоке: история телеграфона Первый в истории аппарат для магнитной звукозаписи — телеграфон — был изобретен в 1898 году. Но успех к нему пришёл лишь 45 лет спустя, через год после смерти изобретателя. Рассказываем о появлении гаджета, его коммерческом провале и неожиданном возрождении. Читать дальше...

Основы реактивного программирования с использованием RxJS. Часть 2. Операторы и пайпы В предыдущей статье мы рассмотрели, что такое потоки и с чем их едят. В новой части мы познакомимся с тем, какие методы RxJS предоставляет для создания потоков, что такое операторы, пайпы(pipes) и как с ними работать. RxJS обладает богатейшим API. В документации описано б...

[Из песочницы] Арбитражная система для начинающих, часть 1 Лет 7 назад, имел опыт написания терминала для Московской биржи. Часть команды увлекалась алгоритмической торговлей, в том числе и я. Однако никогда не воспринимал это дело, как реальный источник дохода, хотя были в этом небольшие успехи. Понятно, что конкурировать с банками...

Диздок-десятистраничник — шаблон по книге Скота Роджерса с примером на игру от Pixonic В данной статье я приведу пример составления дизайн-документа для разработки игры в формате десятистраничника. В начале будет приведён общий шаблон документа, предлагаемый Скотом Роджерсом в его книге «Level up. The guid to great video game design» [1]. Затем будет выложен...

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

Деревянные игрушки, часть девятая — 1995 Основное событие года, это, конечно, Windows 95. Пока ещё не очевидная победа — по прежнему сильны DOS (не только MS) и Windows 3.xx, IBM выкатывает русскую OS/2 Warp, где-то ещё шевелится Alpha и даже есть Windows NT под неё. Игры всё ещё делают для DOS, а те, что выходят п...

С чего начиналась монополия, или немного возни с IBM PC 5150 For English press One У каждого любителя старого железа есть фетиш. Зачастую на территории восточной (да и части западной тоже) Европы это ZX Spectrum, замечательный компьютер, который, впрочем, не оставил значительного наследия. Другое дело — IBM PC 5150. Этот компьютер ...

Истории успеха Kubernetes в production. Часть 10: Reddit На прошлой неделе было объявлено о том, что отныне все новые сервисы Reddit запускаются в production на инфраструктуре, основанной на Kubernetes-кластерах. Эта значимая веха на пути миграции на K8s одного из популярнейших онлайн-ресурсов, и вот как к ней пришли… Читать дал...

Реверсим MIPS и Golang — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 2 В данной статье разберемся с декомпиляцией MIPS бинарника в Ghidra и пореверсим программу, написанную на golang, в IDA. Часть 1 — C, C++ и DotNet decompile. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информа...

[Перевод] Введение в Kubernetes для пользователей VMware. Часть 2. Практика Это вторая часть введения в Kubernetes для пользователей VMware. Прежде чем перейти к практической части, ознакомьтесь с предыдущей статьей по ссылке. Читать дальше →

[Из песочницы] Изучаем STM8S Медленный старт. Часть 0 МК семейства STM8S относительно STM8L/32 имеет меньший арсенал периферии, но позволяет без лишних усложнений разобраться с основами и получить необходимые навыки для работы с его старшими братьями. 0. На кого ориентирован материал, зачем и почему При написании данной стать...

Проектируем космическую ракету с нуля. Часть 5 — Первый закон Кеплера Содержание Часть 1 — Задача двух тел Часть 2 — Полу-решение задачи двух тел Часть 3 — Ужепочти-решение задачи двух тел Часть 4 — Второй закон Кеплера Привет всем читателям! Сразу приступим к продолжению без лишних разглагольствований. В прошлый раз остановились на: Э...

Прозрачные видеоочки с HDMI и USB-C заказывали? Встречайте: Epson Moverio BT-35E Когда мы рассказывали в блоге о своих бинокулярных видеоочках Moverio BT-200 и BT-300, одной из ключевых особенностей очков всегда называли малый вес (88 и 69 грамм, соответственно), который удалось обеспечить, вынеся «мозги» устройства в отдельный блок управления на базе An...

[Перевод] Angular без zone.js: максимум производительности Angular-разработчики в большом долгу перед библиотекой zone.js. Она, например, помогает достичь в работе с Angular почти волшебной лёгкости. На самом деле, практически всегда, когда нужно просто поменять какое-нибудь свойство, и мы меняем его, ни о чём не задумываясь, Angula...

Мох и мамонты (часть 2) Про то как мерзлота может стать если не «белым пушным зверьком», то уж точно «чёрным лебедем», притаившим полтора триллиона тонн углерода — читаем первую часть «Мох и мамонты». Про то, как можно остановить таяние мерзлоты, превратить северные широты в высокопродуктивную с...

TabPy для работы с данными в ClickHouse из Tableau Выстраивание коммуникаций между брендами и людьми — то, чем мы в Dentsu Aegis Network занимаемся каждый день, и неотъемлемой частью этой работы является анализ данных. В ряде случаев этот процесс не требует data science (хотя и он у нас есть), тогда мы используем BI платформ...

Apple Watch 4 (44 мм, 2019 г.) vs Pebble Steel Classic (2014 г.) Свои Pebble Steel Classic я купил в 2014 году, аккурат перед выпуском самых первых Apple Watch (0 серия) (можно почитать мой обзор далекого 2014 года https://habr.com/ru/post/364677/). Я помню как сильно сомневался брать Pebble или подождать выпуска Apple Watch (это же Apple...

[Перевод] Асинхронное программирование в Python: краткий обзор Когда говорят о выполнении программ, то под «асинхронным выполнением» понимают такую ситуацию, когда программа не ждёт завершения некоего процесса, а продолжает работу независимо от него. В качестве примера асинхронного программирования можно привести утилиту, которая, работ...

[Перевод] Особенности использования типа данных Symbol в JavaScript Символьные примитивы — это одно из новшеств стандарта ES6, которое принесло в JavaScript некоторые ценные возможности. Символы, представленные типом данных Symbol, особенно полезны при использовании их в качестве идентификаторов свойств объектов. В связи с таким сценарием их...

Gorp.NET – новая библиотека для создания реверсивных шаблонов с целью извлечения данных из структурированного текста Gorp.NET – новая библиотека для создания реверсивных шаблонов с целью извлечения данных из структурированного текста, основанная на имеющейся кодовой базе Salesforce Gorp. Читать дальше →

[Перевод] Изучаем Docker, часть 4: уменьшение размеров образов и ускорение их сборки В этой части перевода серии материалов, которая посвящена Docker, мы поговорим о том, как оптимизировать размеры образов и ускорить их сборку. В прошлых материалах мы сравнивали образы Docker с пиццей, термины с пончиками, а инструкции файлов Dockerfile с бубликами. Сегодня ...

Обновлённая версия Apple Maps предложит более подробные сведения, списки избранных мест и 3D просмотр местности В новой версии мобильной операционной системы iOS 13 будет предлагаться приложение Apple Maps, которое полностью переработано с нуля. Благодаря этому будет обеспечен большой скачок в динамическом рендеринге и интерактивности, что может привлечь внимание пользователей. Команд...

Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK). Enterprise Tactics. Часть 10 Эксфильтрация или утечка данных (Exfiltration) Ссылки на все части: Часть 1. Получение первоначального доступа (Initial Access) Часть 2. Выполнение (Execution) Часть 3. Закрепление (Persistence) Часть 4. Повышение привилегий (Privilege Escalation) Часть 5. Обход защиты (Defe...

Чудеса упаковки от Microsoft: ядро Linux в Windows 10 и движок IE внутри Chromium Edge На своей ежегодной конференции для разработчиков компания Microsoft сделала сразу несколько достаточно важных презентаций. Мы выбрали две из них. Первое: в летней сборке 19H2 Windows 10 будет поставляться полноценное Linux-ядро на базе версии 4.19 от 22 октября 2018 года д...

[Из песочницы] Создание своего jsfiddle, часть 1 Привет всем читателем habr. В данной статье мы напишем свой онлайн редактор кода. Зачем я писал свой онлайн редактор кода В один день мне стало интересно насколько сложно создать свой онлайн редактор по типу jsfiddle, из-за чего я решил написать свой редактор. Написание сво...

Kubernetes для автомобиля: как открыть разработчику доступ к бортовому компьютеру и сделать это безопасно Это история в двух частях — о новом витке развития automotive. Эта «серия» посвящена собственной разработке EPAM – Aos Connected Vehicle Platform. Алекс Агизим, CTO, Automotive & Embedded Systems, объясняет, чем она отличается от традиционного облачного решения и как дае...

Software Defined Radio — как это работает? Часть 10 Привет, Хабр. В «юбилейной» части цикла про SDR хочется рассказать об одном из протоколов, благодаря которому многие радиолюбители «невольно» приобщились к миру цифровых широкополосных сигналов. Этот стандарт также являлся первой (и насколько известно, единственной) попытко...

[Из песочницы] Full-stack TypeScript Apps Привет, Хабр! Представляю вашему вниманию перевод статьи "Full-Stack TypeScript Apps — Part 1: Developing Backend APIs with Nest.js" автора Ana Ribeiro. Часть 1: Разработка серверного API с помощью Nest.JS TL;DR: это серия статей о том, как создать веб-приложение TypeScript ...

RISC-V: RocketChip в неестественной среде обитания Недавно на Хабре публиковалась статья о том, как поэкспериментировать с архитектурой RISC-V без затрат на «железо». А что, если сделать подобное на отладочной плате? Помните мемы про генератор игр: штук 20 галочек в стиле «Графика не хуже Кризиса», «Можно грабить корованы» ...

Google создал галерею пользовательских шаблонов для Tag Manager Google сообщил о запуске галереи пользовательских шаблонов для Диспетчера тегов (Tag Manager) – Community Template Gallery. Новая галерея – это открытая платформа, где партнёры могут делиться своими шаблонами с другими участниками сообщества. Компании затем могут использоват...

Пишем telegram-бота на python с помощью библиотеки telebot часть 2 Всем привет! Это вторая часть статьи, в которой я посвящу время запросам и серверам telegram. Если кто-то еще не видел первую часть, то рекомендую её почитать. В третьей части скорее всего будет описана работа с базами данных. Ну и если у вас опять возникли вопросы, то пишит...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)