Социальные сети Рунета
Четверг, 25 апреля 2024

[recovery mode] Кейс: слезаем с иглы контекстной рекламы на бесплатный SEO-трафик Данный кейс можно разделить на 2 части. Первая часть короткая – в ней суть. Вторая часть – подробности работы. У кого есть опыт в сфере – могут ознакомиться только с первой частью. Тем, кому интересны детали (кому-то покажутся очевидными и банальными) – для вас вторая часть....

Оптимизация программ под Garbage Collector Не так давно на Хабре появилась прекрасная статья Оптимизация сборки мусора в высоконагруженном .NET сервисе. Эта статья очень интересна тем, что авторы, вооружившись теорией сделали ранее невозможное: оптимизировали свое приложение, используя знания о работе GC. И если ране...

Статическое распределение памяти в микроконтроллерах Холмс: Любезнейший, не подскажите где мы находимся? Пастух: Вы находитесь на воздушном шаре!!! Холмс: Вы должно быть программист. Пастух: Да, но как вы догадались? Холмс: Только программист мог дать столь точный и при этом столь бесполезный ответ. … отрывок из известного а...

Одна голова хорошо, а две — лучше, или парное программирование в действии Драйвер и навигатор в действии (северокорейский вариант методики) От переводчика: сегодня публикуем для вас статью Эндрю Спрула, специалиста по Data Science. Он рассказывает о преимуществах парной работы программистов над одним и тем же проектом. Я часто слышу, как люди...

[Из песочницы] Оптимизация сайта для GooglePage Speed (учтены все особенности после его обновления) Эта статья будет интересна, кто столкнулся с разного рода проблемами после обновления Google PageSpeed и претензиям со стороны заказчиков или начальника, почему упал бал или возникло такое количество замечаний. А так же тем, кто производит оптимизацию сайтов. В первую очеред...

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

CLRium #5 Garbage Collector: полное погружение в омут памяти 13 апреля в Санкт-Петербурге (оффлайн и онлайн) и 20 апреля — в Москве (только оффлайн) пройдет самый крупный семинар CLRium#5 за всё время его существования. До Sold-Out Питера осталось всего лишь 30 мест! А видеозаписи получат владельцы всех типов билетов. Прокопав дебри а...

Дискретная математика для WMS: алгоритм сжатия товаров в ячейках (часть 2) В статье мы расскажем, как разрабатывали алгоритм оптимального сжатия остатков товаров в ячейках. Расскажем как выбирали нужную метаэвристику среду «зоопарка» фреймворков: табу-поиск, генетический алгоритм, муравьиная колония и др. Проведем вычислительный эксперимент по ...

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

Дискретная математика для WMS: алгоритм сжатия товаров в ячейках (часть 1) В статье мы расскажем, как решали проблему нехватки свободных ячеек на складе и о разработке алгоритма дискретной оптимизации для решения такой задачи. Расскажем о том, как мы «строили» математическую модель задачи оптимизации, и о том с какими трудностями мы неожиданно ст...

Оптимизация Unity UI В этой статье разбираются вопросы оптимизации UI-элементов проектов, сделанных в ​Unity​. На основании информации из официальной документации и личного опыта я постарался наглядно объяснить принципы работы UI-элементов. Также здесь вы найдёте практические советы, которые по...

[Перевод] Кеширование в Laravel: основы плюс tips&tricks Техника кеширования позволяет создавать более масштабируемые приложения, запоминания результаты некоторых запросов в быстрое in-memory хранилище. Однако, некорректно реализованное кеширование может сильно ухудшить впечатление пользователя о вашем приложении. Эта статья содер...

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

Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 2: оптимизация байт-кода в PHP 7.1 В первой части рассказа по мотивам выступления Дмитрия Стогова из Zend Technologies на HighLoad++ мы разбирались во внутреннем устройстве PHP. Детально и из первых уст узнали, какие изменениях в базовых структурах данных позволили ускорить PHP 7 более чем в два раза. На этом...

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

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

Ускоряем неускоряемое или знакомимся с SIMD Есть класс задач, которые нельзя ускорить за счёт оптимизации алгоритмов, а ускорить надо. В этой практически тупиковой ситуации к нам на помощь приходят разработчики процессоров, которые сделали команды, позволяющие выполнять операции на большим количеством данных за одну о...

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

Старикам здесь не место? Программируем после тридцати пяти Привет, меня зовут Дмитрий, и я программист. Прошлым летом я получил приглашение Яндекса и перебрался работать в Москву. Недавно мне исполнилось 35 лет. В этой статье я хотел бы затронуть вопрос, который не раз обсуждался на Хабре: насколько реально быть программистом в 3...

Ты помнишь, как все начиналось. Все было впервые и вновь О том, как пришлось заняться оптимизацией запроса PostgreSQL и что из всего этого получилось. Почему пришлось? Да потому, что предыдущие 4 года все работало тихо, спокойно, как часики тикали. В качестве эпиграфа. Основано на реальных событиях. Все имена изменены, совпад...

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

[Перевод] Как сделать SFINAE изящным и надежным И снова здравствуйте. Делимся с вами интересной статьёй, перевод которой подготовлен специально для студентов курса «Разработчик C++». Сегодня у нас гостевой пост Адама Балаша (Ádám Balázs). Адам является инженером-программистом в Verizon Smart Communities Hungary и зани...

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

Google: оптимизация для пользователей = оптимизация для RankBrain На днях сотрудник Google Гэри Илш ответил на вопрос касательно оптимизации для RankBrain. В частности, изменились ли рекомендации поисковика или же они остались прежними. Вопрос, адресованный Илшу и Джону Мюллеру, был опубликован в Twitter. Его автор спросил: «По-прежнему ли...

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

[Из песочницы] Оптимизация производительности apache2 Многие используют apache2 в качестве веб-сервера. Однако мало кто задумывается об оптимизации его производительности, что прямо пропорционально сказывается на скорости загрузки страниц сайта, скорости обработки скриптов (в частности php), а также на росте нагрузки на ЦП и ув...

PHP для начинающих. Сессия Всем хорошего дня. Перед вами первая статья из серии PHP для начинающих разработчиков. Это будет необычная серия статей, тут не будет echo "Hello World", тут будет hardcore из жизни PHP программистов с небольшой примесью «домашней работы» для закрепления материала. Начну с...

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

pg_stat_statements + pg_stat_activity + loq_query = pg_ash? В качестве короткого дополнения к статье Попытка создать аналог ASH для PostgreSQL. Задача Необходимо связать историю представлений pg_stat_statemenets, pg_stat_activity. В результате, используя историю планов выполнения из сервисной таблицы log_query, можно получить очень ...

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

[Перевод] Как повысить производительность фронтенда веб-приложения: пять советов Во многих своих фронтендовых проектах я в какой-то момент сталкивался со снижением производительности — обычно такое случается, когда возрастает сложность приложения, и это нормально. Тем не менее, разработчики всё же ответственны за производительность, поэтому в своей ста...

[Перевод] Оптимизация поиска в ширину: как обработать граф с 10 миллиардами состояний Пару месяцев назад мне наконец пришлось признать, что я недостаточно умён, чтобы пройти некоторые уровни головоломки Snakebird. Единственным способом вернуть себе часть самоуважения было написание солвера. Так я мог бы притвориться, что создать программу для решения головол...

Оптимизация конструкции методами теории автоматического управления В предыдущей статье "Скрещивание ужа и ежа.." мы проверяли применимость методов настройки систем автоматического управления к «реальным» моделям. В это статье попробуем оптимизировать не систему управления, а сам «физический» объект. Для настройки регуляторов существует бол...

Check Point: оптимизация CPU и RAM Здравствуйте, коллеги! Сегодня я хотел бы обсудить очень актуальную для многих администраторов Check Point тему «Оптимизация CPU и RAM». Нередки случаи, когда шлюз и/или менеджмент сервер потребляют неожиданно много этих ресурсов и хотелось бы понять, куда они “утекают” и ...

Эксперимент — от парного программирования к программированию всей командой Очень хочу поделиться с вами переводом статьи про эксперимент с моб-программированием от одного из его создателей, Вуди Зила. Это когда вся команда сразу работает за одним компьютером. Как парное программирование, только групповое. Я бывший Java-разработчик и тимлид с 11-лет...

[Перевод] Как была устроена графика NES Выпущенная в 1983 году домашняя консоль Nintendo Entertainment System (NES) была дешёвой, но мощной машиной, достигшей феноменального успеха. При помощи блока обработки изображений (Picture Processing Unit, PPU) система могла создавать достаточно впечатляющую по тем времена...

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

[Перевод] «Чёрные дыры» веб-аналитики: сколько данных теряется в GA и почему Если вы когда-нибудь сравнивали данные двух аналитических инструментов на одном и том же сайте или сравнивали аналитику с отчётами и продажах, то, вероятно, замечали, что они не всегда совпадают. В этой статье я объясню, почему в статистике платформ веб-аналитики отсутству...

Основы шаблонов С++: шаблоны функций Дисклаймер: статья была начата еще в феврале, но, по зависящим от меня причинам, закончена не была. Тема очень обширна, поэтому публикуется в урезаном виде. Что не поместилось, будет рассмотренно позже. Невозможно разбираться в современном С++, не зная, что такое шаблоны п...

[Из песочницы] Аппаратный bit banding CortexM3/M4(ARM), архитектура ядра, ассемблер, С/C++14 и капля мета программирования Введение Внимание, это не очередная «Hello world»статья о том как помигать светодиодом или попасть в свое первое прерывание на STM32. Однако, я постарался дать исчерпывающие объяснения по всем затрагиваемым вопросам, поэтому статья будет полезна не только многим профессионал...

[Перевод] Почему const не ускоряет код на С/C++? Несколько месяцев назад я упомянул в одном посте, что это миф, будто бы const помогает включать оптимизации компилятора в C и C++. Я решил, что нужно объяснить это утверждение, особенно потому, что раньше я сам верил в этот миф. Начну с теории и искусственных примеров, а за...

Как правильно оптимизировать разделы каталога в интернет-магазине: пошаговая инструкция Категории, они же разделы каталога, порой играют ключевую роль в продвижении сайта. Сюда посетители заходят напрямую из поисковиков. От того, насколько правильно и корректно вы оптимизировали эти страницы, зависит практически 90% успеха продвижения. За годы работы мы в AlkoD...

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

[Перевод] Оптимизация стратегии игры в Блэкджек методом Монте-Карло Перевод статьи подготовлен специально для студентов курса «Machine learning». Обучение с подкреплением штурмом взяло мир Искусственного Интеллекта. Начиная от AlphaGo и AlphaStar, все большее число видов деятельности, в которых раньше доминировал человек, теперь завоевано...

Чек-лист по ASO: текстовая оптимизация Продолжаем цикл статей об оптимизации и продвижении приложений на мобильных рынках. В прошлый раз мы разобрали все составляющие визуального образа продукта и пообещали так же детально рассказать и о текстовой оптимизации. Выполняем свое обещание под катом. Читать дальше →

Как мы нашли критичную уязвимость AspNetCore.Mvc и перешли на собственную сериализацию Привет, Хабр! В этой статье мы хотим поделиться нашим опытом в оптимизации производительности и исследовании особенностей AspNetCore.Mvc. Предыстория Несколько лет назад на одном из наших нагруженных сервисов мы заметили существенное потребление ресурсов CPU. Это выгляде...

Как глубока кроличья нора? CLRium #5: Garbage Collector Мир несется вперед, движимый прогрессом и конкуренцией. Нам с вами нереально повезло: ведь для нас работают величайшие умы, создавая поистине серъезные механизмы: компиляторы, IDE, базы данных. Делают их так, что мы получаем истинное удовольствие, используя их. Один из этих ...

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

Веб-приложение, мобильное приложение, стартап. Программисты не нужны? В прошлом году наделало много шуму заявление председателя правления отечественного крупнейшего банка Германа Грефа, который сообщил: "программисты не нужны, мы с ними боремся". Многие обучающиеся на программиста или планировавшие ими стать задумались над тем, что и эту профе...

Автотестирование: десять лайфхаков от команды Skyeng Привет, я Андрей Шальнев, QA Automation Lead в проекте Skyeng Vimbox. В течение года мы с командой занимались оптимизацией процессов автоматического тестирования и сейчас вплотную подошли к ее финальной стадии. А это хороший повод выдохнуть, пересмотреть бэклог и подвести к...

SciPy, оптимизация с условиями SciPy (произносится как сай пай) — это основанный на numpy математический пакет, включающий в себя также библиотеки на C и Fortran. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных, как MATLAB, IDL, Octave, R или SciLab. В это...

Ликбез по памяти: какой она бывает, и что нам это дает Хорошая память — неоспоримое преимущество для студентов и тот навык, который уж точно пригодится в жизни — вне зависимости от того, какими были ваши учебные дисциплины. Сегодня мы решили открыть серию материалов о том, как прокачать память — начнем с короткого ликбеза: како...

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

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

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

Повторное использование форм на React Привет! У нас в БКС есть админка и множество форм, но в React-сообществе нет общепринятого метода — как их проектировать для переиспользования. В официальном гайде Facebook’a нет подробной информации о том, как работать с формами в реальных условиях, где нужна валидация и п...

MDM: удалённый вайп, доставка приложений на телефоны и ноутбуки и прочие радости Когда говорят об MDM, который Mobile Device Management, все почему-то сразу представляют kill-switch, который дистанционно подрывает утерянный телефон по команде сотрудника ИБ. Нет, в целом это тоже есть, только без пиротехнических эффектов. Но есть ещё куча других рутинны...

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

Как оптимизировать pandas при работе с большими datasetами (очерк) Когда памяти вагоны и/или dataset небольшой можно смело закидывать его в pandas безо всяких оптимизаций. Однако, если данные большие, остро встает вопрос, как их обрабатывать или хотя бы считать. Предлагается взглянуть на оптимизацию в миниатюре, дабы не вытаскивать из сети...

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

Почему некоторые мобильные игры становятся настолько успешными? В Google Play больше миллиона игр, все они разнообразны, но почему-то лишь единицы становятся успешными. Индустрия мобильных игр получает в год 63,2 миллиарда долларов, и это огромные цифры. Основной доход, конечно же, приходится на крупные проекты, такие как PUBG или Fortn...

[Перевод] Трагедия Common Lisp: почему популярные языки раздуваются в сложности Адаптировано из обсуждения 2015 года. Здесь Common Lisp служит лишь одним из многих наглядных примеров Будущее JavaScript? Я с 2007 года работаю в комитете по стандартам JavaScript (TC39). Мы ценим простоту языка, но со временем утратили бдительность. Сложность стала не...

Хитрости в Machine Learning — работа с несколькими моделями в Keras Это моя первая статья по теме Машинное обучение. С недавнего времени я профессионально занимаюсь машинным обучением и компьютерным зрением. В этой и будущих статьях я буду делиться наблюдениями и решениями специфических проблем при использовании TensorFlow и Keras. В этой ст...

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

Что делать, чтобы получать нормальные деньги и работать в комфортных условиях будучи программистом Этот пост вырос из комментария к одной статье здесь, на Хабре. Вполне обычного комментария, разве что сразу несколько человек сказали, что было бы очень хорошо оформить его в виде отдельного поста, а МойКруг даже не дожидаясь этого опубликовали этот самый комментарий отдельн...

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

8-битная аналоговая память для работы с нейросетями В конце года на Хабре появилась статья о том, что компании IBM удалось создать первый 8-битный чип, основанный на памяти с изменением фазового состояния (phase-change memory). Сегодня мы расскажем, как работает устройство, представленное ИТ-гигантом. Читать дальше →

Современный валютный рынок Маринус ван Реймерсвале. Меняла и его жена. 1539 г. Музей Прадо, Мадрид. Я начал работать в Deutsche Bank программистом на Java в 2009-м году (последствия кризиса, чудо на Гудзоне, «Миллионер из трущоб», свиной грипп, поражение сборной в Мариборе). На собеседовании мне соо...

Про одного парня История реальная, я все видел своими глазами. Несколько лет один парень, как и многие из вас, работал программистом. На всякий случай напишу так: «программистом». Потому что он был 1Сником, на фиксе, производственной компании. До этого он пробовал разные специальности – 4 ...

Оптимизация и продвижение в поисковых системах В начале года в продажу вышла четвертая версия книги “Оптимизация и продвижение в поисковых системах”. Первый раз “Оптимизация” издавалась двенадцать лет назад и для многих, кто в те годы начинал карьеру, стала азбукой SEO. Над новым изданием, напечатанным после долгой паузы...

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

Не баг, а фича: исследование моторики и мозговой активности человека с полидактилией Тело человека можно сравнить с очень сложным механизмом, состоящим из множества отдельных систем, которые работают слаженно и своевременно для обеспечения жизнедеятельности. Можно сравнить и с программой, состоящей из тысяч строк кода, каждая из которых выполняет определен...

[Перевод] Swift: ARC и управление памятью Будучи современным языком высокого уровня, Swift в основном берёт на себя управление памятью в ваших приложениях, занимаясь выделением и освобождением памяти. Это происходит благодаря механизму, который называется Automatic Reference Counting, или сокращенно ARC. В этом руко...

[Из песочницы] Как не мусорить в Java Существует популярное заблуждение о том, что если не нравится garbage collection, то надо писать не на Java, а на C/C++. Последние три года я занимался написанием low latency кода на Java для торговли валютой, и мне приходилось всячески избегать создания лишних объектов. В и...

Улучшаем профиль в LinkedIn перед поиском работы На момент написания статьи, в социальной сети LinkedIn размещено порядка 30 миллионов вакансий от 20 миллионов компаний по всему миру. Не удивительно, что 90% рекрутеров используют LinkedIn как один из основных ресурсов поиска кандидатов. Правильно оформленный LinkedIn проф...

Рисовать — это 10% работы UX-дизайнера Привет, Хабр! Меня зовут Никита. Год назад я пришёл работать в Промсвязьбанк UX-дизайнером в команду по разработке интерфейсов ДБО для малого и среднего бизнеса. В то время нашей команде прилетали совершенно разные задачи, с разных продуктов. Зачастую уже в виде четко описан...

[Из песочницы] Как работают веб-приложения Это статья для начинающих разработчиков и тех, кто хочет немного ориентироваться в терминах и технологиях современных веб-приложений. В статье написано о том, чем веб-приложения отличаются от сайтов, какие бывают веб-приложения, из чего они состоят и как работают. Читать да...

Android-приложение в памяти. Доклад об оптимизации для Яндекс.Лончера В облегченной системе Android Go действуют повышенные требования к предустановленным приложениям — размеру и используемой памяти. Перед нами встала задача в эти требования уложиться. Мы провели ряд оптимизаций и решили серьезно поменять архитектуру нашей графической оболочки...

[Перевод] Сборщик мусора в V8: как работает Orinoco Не то чтобы работа сборщика мусора — это то, о чём каждый день думает фронтенд-разработчик, но это очень интересно. Если честно, это одна из самых жестоких статей, что я читал за последнее время: тут много про смерть в молодом возрасте, про гонения из одной области памяти в ...

У всех горит от эффективности В прошлом выпуске "Цинкового прода" мы обсуждали три статьи про эффективность различных процессов. Про то "Как Безос PowerPoint отключил", "Владелец одной компании заставляет жить по 5 часов в день без отвлечений" и "Асинхронная коммуникация дуистов".Эта статья является комп...

[Перевод] Почему отписка от рассылки занимает несколько дней? В одном твите спрашивали, почему отписка от рассылки может «занимать несколько дней». Пристегнитесь покрепче, я сейчас расскажу вам невероятную историю о том, как это делается в энтерпрайз-разработке™… Есть один банк. Наверняка вы о нем слышали, а если вы живете в Великоб...

«Мам, ты уволена»: как вести бизнес с родственниками На первый взгляд кажется, что эта статья могла бы состоять из одного слова: «никак». Но на самом деле всё не так страшно, если руководствоваться не одними лишь эмоциями. Собрали советы, которые помогут работать с родными и не разрушить семью.

[Перевод] Полнофункциональная динамическая трассировка в Linux с использованием eBPF и bpftrace «В режиме трассировки программист видит последовательность выполнения команд и значения переменных на данном шаге выполнения программы, что позволяет легче обнаруживать ошибки» — сообщает нам Википедия. Сами будучи поклонниками Linux, мы регулярно сталкиваемся с вопросом, ...

Оптимизация node.js приложения Дано: старое http node.js приложение и возросшая нагрузка на него. Стандартные решения проблемы: докинуть серверов, все переписать с 0, оптимизировать уже написанное. Давайте попробуем пойти путем оптимизации и разобраться, как можно найти и улучшить слабые места приложения....

Опровергаем четыре стереотипа о языке программирования Rust Язык программирования Rust, созданный и поддерживаемый корпорацией Mozilla, позволяет обычным программистам писать одновременно и безопасные и быстрые системы: от калькуляторов до высоконагруженных серверов. За своё относительно короткое время существования данный язык уже ...

[Из песочницы] novtable оптимизация Компилятор Microsoft позволяет добавить расширение «novtable» для атрибута «__declspec» при объявлении класса. Заявленная цель — значительно уменьшить размер генерируемого кода. На экспериментах с нашими компонентами уменьшение составило от 0,6 до 1,2 процента от размера D...

Как настроить Continuous Deployment для своего проекта: личный опыт Перевели для вас статью Юлиуса Минмо о настройке непрерывной интеграции (Continuous Deployment) для своего проекта. Автоматизация позволяет сэкономить кучу времени и сил. Статья будет полезна, в первую очередь, начинающим программистам. Непрерывная интеграция — отличная ...

Liveprof покажет, когда и почему менялась производительность вашего PHP-приложения Привет, Хабр! Меня зовут Тимур Шагиахметов, я PHP-разработчик в Badoo. Производительность приложения — один из важнейших критериев качества работы программиста. В вопросах оптимизации PHP-приложений помощником является профайлер. Недавно мы рассказывали о том, какими и...

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

[Перевод] Структуры данных для программистов игр: bulk data Любому программисту будет полезно понимание различных структур данных и способов анализа их производительности. Но на практике мне ни разу не пригождались АВЛ-деревья, красно-чёрные деревья, префиксные деревья, списки с пропусками, и т.д. Некоторые структуры данных я исполь...

[Не] используйте CDN Практически в любой статье или инструменте для оптимизации скорости сайтов есть скромный пункт «используйте CDN». Вообще, CDN – это content delivery network или сеть доставки контента. Мы в компании «Метод Лаб» часто встречаемся с вопросами клиентов по этой теме, некоторые с...

[recovery mode] Что показывает вольтметр или математика розетки О чем эта статья Сегодня я ненадолго отступлю от своей обычной темы о визуальном программировании контроллеров и обращусь к теме измерений напряжения прямо в ней, в розетке! Родилась эта статья из дискуссий за чаем, когда разразился спор среди «всезнающих и всеведающих» п...

Самые короткие научные статьи Математика В 2005 году ученые Джон Конуэй (John Conway) и Александр Сойфер (Alexander Soifer) решили написать «самую короткую научную статью по математике в мире». Непосредственно тело статьи состоит из двух слов (и двух иллюстраций — в них содержится ответ на вопрос, постав...

Check Point Maestro Hyperscale Network Security — новая масштабируемая security платформа Компания Check Point довольно резво начала 2019 год сделав сразу несколько анонсов. Рассказать обо всем в одной статье не получится, поэтому начнем с самого главного — Check Point Maestro Hyperscale Network Security. Maestro это новая масштабируемая платформа, которая позв...

Трекинг украденного велосипеда по протоколу NB-IoT Интернет вещей проникает повсюду, даже в велосипеды. Вы можете своими руками смастерить маленький трекер с поддержкой протокола NB-IoT. В любой момент этот гаджет ответит на ваш запрос через интернет и сообщит GPS-координаты велосипеда. И что самое приятное, такой трекер р...

В умных стратегиях Google Ads стала доступна оптимизация по офлайн-посещениям Google Ads позволил проводить оптимизацию по офлайн-посещениям при использовании интеллектуального назначения ставок. Новая функция доступна для поисковых и торговых кампаний. Ранее учитывать можно было только онлайн-конверсии. Прежде чем использовать новый вариант на уровне...

Директ открыл доступ к оптимизации ROI по целям для всех рекламодателей Команда Яндекс.Директа объявила, что оптимизация ROI по ключевым целям стала доступна для всех рекламодателей. Для этого Яндекс обновил стратегию «Оптимизация рентабельности». Теперь её можно подключить в несколько кликов, а для её работы не обязательно настраивать электронн...

Variational Inference — что это такое и с чем это едят? Привет, Хабр! Недавно пообщался с коллегами о вариационном автоэнкодере и выяснилось что многие даже работающие в Deep Learning знают о вариационном выводе (Variational Inference) и в частности Нижней вариационной границе только по наслышке и не до конца понимают что это та...

[Из песочницы] Какой уровень востребованности PHP разработчиков на 1 квартал 2019 года? На рынке труда программисты PHP являются одними из наиболее востребованных специалистов. За последние 3 года их популярность среди работодателей выросла на более чем на 12%. PHP — самый распространенный язык программирования общего назначения с открытым исходным кодом, многи...

[Перевод] Мертв ли Hadoop? Часть 2 Перевод статьи подготовлен специально для студентов курса «Data Engineer». Читать первую часть Никому не нужна Big Data Когда вы услышите «Никому не нужна Big Data», посмотрите на резюме докладчика. Африканский телекоммуникационный оператор, переживающий удивительные уро...

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

[Перевод] Как работает оптимизирующий компилятор Оптимизирующие компиляторы — основа современного ПО: они позволяют программистам писать код на понятном для них языке, затем преобразуя его в код, который сможет эффективно исполняться оборудованием. Задача оптимизирующих компиляторов заключается в том, чтобы понять, что де...

SQL Index Manager — бесплатный тул для дефрагментации и обслуживания индексов Много лет работая SQL Server DBA и занимаясь то администрированием серверов, то оптимизацией производительности. В общем, захотелось в свободное время захотелось сделать что-то полезное для Вселенной и коллег по цеху. Так в итоге получился небольшой опенсорс тул по обслужива...

[Перевод] Заметка о void в JavaScript и TypeScript Если вы, до того, как заинтересовались JavaScript, писали на традиционных языках с сильной типизацией, то вы, возможно, знакомы с концепцией void. Это — тип, использование которого сообщает программисту о том, что соответствующие функции и методы при их вызове ничего не возв...

Продуктовая разработка на Go: история одного проекта Всем привет! Меня зовут Максим Рындин, я тимлид двух команд в Gett – Billing и Infrastructure. Хочу рассказать про продуктовую веб-разработку, которую мы в Gett ведем преимущественно на языке Go. Я расскажу, как в 2015-2017 годах мы переходили на этот язык, почему вообще е...

SMARTlife: Условия в которых комфортно работать программисту и контент редактору Редакция портала Smartphone.ua состоит не только из редакторов, оператора и монтажера. Наш коллектив дополняет программист, который следит за работоспособностью проекта и прямо сейчас работает над мобильной версией сайта.

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

[Перевод] Используем все возможности индексов в PostgreSQL В мире Postgres индексы крайне важны для эффективной навигации по хранилищу базы данных (его называют «куча», heap). Postgres не поддерживает для него кластеризацию, и архитектура MVCC приводит к тому, что у вас накапливается много версий одного и того же кортежа. Поэтому о...

[Перевод] Что я узнал про оптимизацию в Python Всем привет. Сегодня хотим поделиться еще одним переводом подготовленным в преддверии запуска курса «Разработчик Python». Поехали! Я использовал Python чаще, чем любой другой язык программирования в последние 4-5 лет. Python – преобладающий язык для билдов под Firefox, те...

[Из песочницы] OutOfMemory и использование векторных изображений в Android Studio Привет, Хабр! В данной статье, ориентированной на новичков, я бы хотел дать несколько советов по оптимизации использования приложением памяти устройства, дабы постоянно не получать OutOfMemory, а также рассмотреть использование векторных изображений в текущей актуальной верс...

Обзор Dota Underlords. Новые шахматы Давайте посмотрим на новое детище компании Valve, которая долгое время хотела договориться с разработчиками Dota Auto Chess, но в итоге просто создала свою собственную игру. У нее есть определенное преимущество в виде оптимизации и достаточно продвинутого набора знакомых гер...

AWS Lambda — теория, знакомство Краткий экскурс в AWS Lambda Что это? AWS Lambda: это вычислительный сервис, который позволяет запускать код практически для любого типа приложения или серверной службы — и все это без необходимости администрирования. AWS Lambda выполняет все администрирование за вас, включа...

[Из песочницы] Что значит unsafe в Rust? Привет, Хабр! Представляю вашему вниманию перевод статьи "What Is Rust's unsafe?" автора Nora Codes. Мне доводилось видеть много недопониманий относительно того, что значит ключевое слово unsafe для полезности и правильности языка Rust и его продвижения как "б...

SciPy, оптимизация SciPy (произносится как сай пай) — это пакет прикладных математических процедур, основанный на расширении Numpy Python. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных и прототипирования сложных систем, как MATLAB, IDL, Octave,...

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

[Перевод] Минимум один трюк Vim, про который вы не знали Я уже восемь лет работаю в Vim и постоянно открываю что-то новое. Принято считать это достоинством Vim. Как по мне, так это недостаток открытости: куча скрытых функций спрятаны слишком глубоко. Вот говорят о красоте модального редактирования и текстовых объектах, но мне каж...

[Из песочницы] Dagger 2 – это элементарно (Часть 1) Содержание Введение Что такое Dependency Injection, Пример зависимости Dagger 2 – введение Первое использование Dagger 2 Введение Статья написана не продвинутым программистом для таких же, обычными и понятными словами В статье используется пример кода на Kotlin. Версия da...

Продуктовая аналитика в студии полного цикла В этой статье я расскажу о продуктовой аналитике на примере нашей студии, IT Territory. Статья состоит из трех частей. В первой я расскажу, как устроен отдел продуктовой аналитики, кем являются его сотрудники, чем они занимаются и почему все именно так, а не иначе. Во втор...

10 способов сэкономить на IT-инфраструктуре для всех Это был 2013 год. Я пришёл работать в одну из компаний-разработчиков, создающих ПО для частных пользователей. Мне говорили разное, но меньше всего я ожидал увидеть то, что увидел: 32 непогашенных виртуалки на арендованном тогда ещё неприлично дорогом VDS, три «свободных» лиц...

Оптимизация производительности .NET (C#) приложений Статей с подобным заголовком достаточно много, поэтому постараюсь избежать банальных тем. Надеюсь, что даже очень опытные разработчики найдут здесь что-то новое для себя. В данной статье будут рассмотрены только простые механизмы и подходы к оптимизации, которые позволят п...

[Перевод] Cython: более чем 30-кратное ускорение Python-кода Python — это язык, который любят многие программисты. Этим языком невероятно легко пользоваться. Всё дело в том, что код, написанный на Python, отличается интуитивной понятностью и хорошей читабельностью. Однако в разговорах о Python часто можно слышать одну и ту же жалобу н...

Еще один способ оптимизации docker-образов для Java приложений История по оптимизации образов для java приложений началась с выхода статьи в блоге спринга — Spring Boot in a Container. В ней обсуждались различные аспекты по созданию docker образов для spring boot приложений, в том числе и такой интересный вопрос, как уменьшение размеров...

[Из песочницы] Как сойти за хорошего программиста Привет, Хабр! Представляю вашему вниманию перевод статьи «How To Fake Being a Good Programmer» автора Stan Sootla. Программисты – это, своего рода, волшебники: слегка потрепанные персонажи-бедняки, которые умеют превращать кофе в строчки кода. Я не владею магией, я всего ...

Когда больше — лучше. Samsung Galaxy Note10+ победил iPhone 11 Pro Max из-за втрое большего объёма ОЗУ Как известно, новые смартфоны Apple получили по 4 ГБ ОЗУ. Это немного по современным меркам, но iOS работает не так, как Android, поэтому зачастую пользователи iPhone не жалуются на недостаток оперативной памяти. Впрочем, это не мешает сравнить iPhone 11 Pro Max и Samsu...

Как рендерится кадр в Shadow Fight 3 Технический 3D-художник Banzai Games Роман Терский рассказал о том, как происходит отрисовка кадра и устроены материалы для персонажей в мобильной игре Shadow Fight 3, а также раскрыл небольшие хитрости в настройке окружения Shadow Fight 3 — игра в жанре файтинг/РПГ, разр...

ChipWhisperer: атака по энергопотреблению на Магму Автор статьи: rakf В рамках Summer of Hack 2019 в Digital Security я разбирался с атакой по энергопотреблению и работал с ChipWhisperer. Что это? Анализ энергопотребления — это один из видов атак по сторонним каналам. То есть атак, использующих информацию, которая появляетс...

Загадка нейтрино от Сверхновой 1987А Сверхновая 1987А: во время и до вспышки Не очень давно здесь была неплохая статья Bars21 о нейтрино от сверхновых. Она мне очень понравилась, и кое-какие моменты (например, про урка-процесс) натолкнули на то, что мы не только читали или слушали одних и тех же преподавателе...

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

Делфийская история успеха программиста из Улан-Удэ Мир суровый, но маленький и возможности его изменить есть у каждого. В 1996 году начиная изучать только что появившийся Delphi, я не мог себе представить, какая будет судьба у этого языка, который сильно повлиял на Java и C#, а также какая судьба будет у самой компании Borla...

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

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

[recovery mode] Добавляем функциональность Razor Pages в стандартный .NET Razor Pages — новая фича, появившаяся в Core.Net 2.0. Razor Page — это страница, состоящая из стандартной разметки (View) и бэкенд класса. В каком то смысле напоминает Web Forms только без поддержки сохранения состояния. Преимущество такого решения очевидно — мы избавляемся ...

Что предложат новые хранилища для систем ИИ и МО MAX Data объединят с Optane DC для эффективной работы с системами ИИ и МО. Фото — Hitesh Choudhary — Unsplash По данным исследования MIT Sloan Management Review и The Boston Consulting Group, 85% из трех тысяч опрошенных управленцев считают, что системы ИИ помогут их комп...

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

Методы оптимизации кода для Redd. Часть 1: влияние кэша В первой статье цикла я активно продвигал идею, что разработка кода под Redd вторична, а первичен основной проект. Redd — вспомогательный инструмент, так что тратить на него уйму времени неправильно. То есть разработка под него должна идти быстро. Но это совсем не значит, чт...

Julia и метод покоординатного спуска Метод покоординатного спуска является одним из простейших методов многомерной оптимизации и неплохо справляется с поиском локального минимума функций с относительно гладким рельефом, поэтому знакомство с методами оптимизации лучше начинать именно с него. Поиск экстремума ве...

Serverless-подход для быстрой разработки рабочего видео-сервиса Я работаю в аутсорсе, где главный принцип можно описать фразой «продавай много, делай быстро». Чем быстрее сделаем, тем больше заработаем. И, желательно, чтобы всё работало не на костылях и соплях, а с приемлемым уровнем качества. Я расскажу о своём опыте, когда за коротки...

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

Использование графов для решения разреженных систем линейных уравнений Прелюдия Численное решение линейных систем уравнений является незаменимым шагом во многих сферах прикладной математики, инженерии и IT-индустрии, будь то работа с графикой, расчёт аэродинамики какого-нибудь самолёта или оптимизация логистики. Модная нынче «машинка» без этог...

[Из песочницы] Автоматизация для самозанятых: как интегрировать налог с IT проектом С 1 января 2019 года для четырёх субъектов Российской Федерации (Москвы, Московской и Калужской областей, а также республики Татарстан) был принят закон, внедряющий пилотным проектом новый Налог на Профессиональную Деятельность (НПД). Если вкратце, его главная задача — избав...

Артем Светлов: «Каждый день на работе я вижу, как OSM помогает самым разным компаниям» Артем Светлов aka trolleway — программист из NextGIS, а также любитель архитектуры и общественного транспорта. Он не только правит OpenStreetMap, но и каждый день работает с данными из него. Помимо этого, он увлекается съемкой сферических панорам улиц. Зачем он это делает, ...

[Из песочницы] Sourcery для автоматического конвертирования в структуры объектов Realm В интернете, да и даже на Хабре, есть куча статей о том, как работать с Realm. Эта база данных достаточно удобная и требует минимальных усилий для написания кода, если ей уметь пользоваться. В этой статье будет описан метод работы, к которому пришел я. Читать дальше →

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

Нам нужен другой 1С-Битрикс, часть 2 После публикации первой статьи в деле борьбы за права причастных к 1С-Битриксу появились соподвижники Dekmabot и Sergik_DS со статьями «Почему Битрикс — Битрикс» и «За что, Битрикс? Или сказочный мир 1С», чему я несказанно рад. Как там пишут в руководствах по зачинанию старт...

Протокол SPBm как основа Extreme Automated Campus Решения компании Extreme Networks «Extreme Automated Campus» обеспечивают возможность одновременного использования множества путей передачи и быстрого восстановления в случае аварии. Сеть, состоящая из множества физических коммутаторов, представляет собой один распределённый...

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

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

Java это не только кровавый энтерпрайз, но и быстрые latency-sensitive приложения Я занимаюсь алгоритмической торговлей в Райффайзенбанке. Это довольно специфичная область банковской сферы. Мы делаем торговую платформу, работающую с низкими и предсказуемыми задержками. Успех приложения зависит в том числе и от скорости работы приложения, поэтому нам прихо...

4 способа сэкономить на бэкапах в облаке Резервное копирование виртуальных машин — одно из направлений, которому нужно уделять особое внимание при оптимизации расходов компании. Рассказываем, как можно и бэкапы в облаке настроить, и бюджет сэкономить. Читать дальше →

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

[Из песочницы] Ускоряем сборку веб-приложения с webpack По мере того как ваше приложение развивается и растёт, увеличивается и время его сборки — от нескольких минут при пересборке в development-режиме до десятков минут при «холодной» production-сборке. Это совершенно неприемлемо. Мы, разработчики, не любим переключать контекст в...

[Перевод] Почему программисты продолжают использовать многословный Java, хотя есть лаконичный Python Java и Python — одинаково популярные языки программирования. Однако Python более продуктивен: в нем меньше объем кода, нужного для решения задачи. Почему же программисты до сих пор работают с Java там, где можно применить Python? Давайте разбираться. Читать дальше →

[Перевод] Почему мы предпочитаем CSS(--variable) переменным SASS($variable)? С момента релиза CodyHouse Framework, пару месяцев назад, многие пользователи спрашивали нас, почему мы выбрали переменные CSS вместо переменных SASS, хотя мы используем SASS в этой среде. В этой статье я расскажу о преимуществах использования пользовательских свойств и о то...

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

Как ЛАНИТ оснастил инженерными и ИТ-системами дилинговый центр в Сбербанке В конце 2017 года группа компаний ЛАНИТ закончила один из самых интересных и ярких проектов в своей практике — Дилинговый центр Сбербанка в Москве. Из этой статьи вы узнаете, как именно «дочки» ЛАНИТ оборудовали новый дом для брокеров и уложились в рекордно короткие сроки. ...

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

[Перевод] Чем занимается геймдизайнер? Привет, Хабр! Представляю вам перевод статьи "What Does a Game Designer do?" автора Kai Wüest. Kai Wüest — продюсер из Исландии, работавший раньше тестировщиком, а затем — геймдизайнером. День в роли геймдизайнера Легендарный геймдизайнер. Человек, миф, легенда, стоящая за ...

[Перевод] Каким был первый айфон? Фото: Tom Warren Странный вопрос. Многие видели его презентацию, на которой Стив Джобс, в частности, заявил, что новый смартфон разрабатывали два с половиной года. Вскоре после этого новинка появилась на витринах салонов связи. Любопытно посмотреть, какие прототипы были у...

[Перевод] Технология Terragraph от Facebook переходит от испытаний к коммерческому использованию Набор программ позволяет группам небольших базовых станций беспроводной связи, работающим на частотах 60 ГГц, общаться друг с другом Беспроводной мир: техники в Микебуде (Венгрия) устанавливают малые станции с поддержкой Terragraph для испытаний, начавшихся в мае 2018-го В...

Добровольно-принудительно: почему помощь Google Ads в оптимизации кампаний может вызвать негатив Автор: Иван Акимов – аккаунт-директор ArrowMedia (Kokoc Group) На днях Google предупредил некоторых зарубежных рекламодателей о том, что собирается помогать им с оптимизацией рекламных кампаний, если они не откажутся от этого предложения. Стоит отметить, что это не первая по...

Как перемещать, выгружать и интегрировать очень большие данные дёшево и быстро? Что такое pushdown-оптимизация? Любая операция с большими данными требует больших вычислительных мощностей. Обычное перемещение данных из базы на Hadoop может длиться неделями или стоить, как крыло самолёта. Не хотите ждать и тратиться? Сбалансируйте нагрузку на разные платформы. Один из способов – pushdow...

Новый смартфон OUKITEL K12 с мощным аккумулятором на 10 000 мАч Состоялась премьера смартфона-пауэр банка K12 с аккумулятором на 10 000 мАч и очень быстрой зарядкой. Почти всю переднюю часть занимает 6.3-дюймовый Full HD+ дисплей с разрешением 2340x1080 пикселей, соотношением сторон 19.5:9 и вырезом-капелькой. Модель чипа пока не уточ...

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

[Перевод] Настройка параметров ядра Linux для оптимизации PostgreSQL Оптимальная производительность PostgreSQL зависит от правильно определенных параметров операционной системы. Плохо настроенные параметры ядра ОС могут привести к снижению производительности сервера базы данных. Поэтому обязательно, чтобы эти параметры были настроены в соотв...

[Перевод] Поиск на скорости 1 ТБ/с TL;DR: Четыре года назад я покинул Google с идеей нового инструмента для мониторинга серверов. Идея состояла в том, чтобы объединить в одну службу обычно изолированные функции сбора и анализа логов, сбора метрик, оповещений и панели мониторинга. Один из принципов — сервис до...

Приложения для электронных книг на операционной системе Android (часть 1) Многие современные электронные книги работают под операционной системой Android, что позволяет, помимо использования штатного программного обеспечения электронных книг, устанавливать и дополнительное ПО. В этом – одно из преимуществ электронных книг, работающих под ОС Androi...

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

Поймай меня, если сможешь. Версия менеджера Ты – программист. Я – эффективный менеджер. Ну, ты так считаешь. Может, даже статью про меня напишешь, наберешь кучу плюсов – тема-то благодатная. В статье обязательно слово «эффективный» в кавычки поставишь. Я уже не работаю в вашей компании. Решил рассказать тебе, как всё...

[Перевод] Указатели сложны, или Что хранится в байте? Привет, Хабр! Представляю вашему вниманию перевод статьи "Pointers Are Complicated, or: What's in a Byte?" авторства Ralf Jung. Этим летом я снова работаю над Rust фуллтайм, и я снова буду работать (помимо прочих вещей) над "моделью памяти" для Rust/MIR. Однако, прежде чем я...

Последний рубеж обороны QA: автоматическое обнаружение ошибок Привет! Меня зовут Асхат Нурыев, я ведущий инженер по автоматизации в компании DINS. Я работаю в Dino Systems последние 7 лет. За это время пришлось заниматься разными задачами: от написания автоматических функциональных тестов до тестирования производительности и высокой...

[Перевод] Пишем API на Python (с Flask и RapidAPI) Если вы читаете эту статью, вероятно, вы уже знакомы с возможностями, которые открываются при использовании API (Application Programming Interface). Добавив в свое приложение один из многих открытых API, вы можете расширить функциональность этого приложения либо же допол...

Разработка чат-бота (laravel+botman) Welcome! Я, как junior full stack разработчик, при попытке написать бота с использованием laravel и botman’а столкнулся с многими проблемами. Во-первых, я плохо знаю английский, а на русском статей очень мало на эту тему, а те, что есть не помогли мне решить мои проблемы. В ...

[Перевод] Грокаем DLR Предисловие переводчика Это скорее вольный пересказ, а не перевод. Я включил в эту статью только те части оригинала, которые имеют непосредственное отношение к внутренним механизмам работы DLR или объясняют важные идеи. Примечания будут заключены в квадратные скобки Многие...

Об ошибках, возникающих ниоткуда и в которых некого винить: Феномен Размазывания Ответственности В статье не пойдет речь о безответственных сотрудниках, как можно было бы предположить по заголовку статьи. Мы обсудим одну реальную техническую опасность, которая возможно поджидает и вас, если вы создаёте распределённые системы. В одной Enterprise системе жила-была комп...

[Из песочницы] Рефакторинга много не бывает Привет, Хабр! Представляю вашему вниманию перевод статьи "Refactoring — oops, I’ve been doing it backwards" автора Джастина Фуллера (Justin Fuller). Я очень завишу от рефакторинга, и не боюсь признать это, но есть только одна проблема: я всегда делал это задом на...

[Из песочницы] Знакомство с Sass модулями Привет, Хабр! Представляю вашему вниманию перевод статьи «Introducing Sass Modules» автора Miriam Suzanne. Недавно в Sass появилась функциональность, которая вам знакома по другим языкам: модульная система. Это большой шаг вперед для @import, одной из наиболее часто использ...

Директ повысит конверсии за счет оптимизации цены на Поиске В Яндекс.Директе появится оптимизация закупки конверсий при ручном управлении ставками на Поиске.Технология позволит рекламодателям легче выигрывать торги за наиболее конверсионный трафик и экономить бюджет при низкой вероятности целевых переходов.  По одному и тому же ...

[Из песочницы] Make it True — Разработка логической игры на Unity Хочу поделиться процессом разработки простой мобильной игры силами двух разработчиков и художника. Данная статья в большей мере состоит описания технической реализации. Осторожно, много текста! Статья не являются руководством или уроком, хотя надеюсь что читатели смогут в...

Мотивация, делегирование и автоматизация: рецепт создания суперкоманды Знакомьтесь, это Дима. Он тимлид и отвечает за техдолг и код-ревью, за планирование и технические процессы, за выполнение разработчиками задач в срок — мотивирует, нанимает и, если надо, увольняет. Дима хочет работать только над важными задачами, но работает над миллионом са...

Анатолий Слюсарь: «Период ЕС ЭВМ позволил нам обучить системных и прикладных программистов» Анатолий Слюсарь начинал карьеру, работая на ЭВМ ЕС-1022 в вычислительном центре Ленинградского обкома КПСС (Ленинградское отделение НИИ Автоматической аппаратуры, в дальнейшем — ЛФ НИИ «Восход»). В интервью он вспоминает, как работали программисты 1980–1990-х и дает оценк...

OnePlus 7 Pro против iPhone XS Max. Скорость работы OnePlus, как всегда, поражает Смартфоны OnePlus славятся не только тем, что они «убийцы флагманов», но и скоростью работы. Оптимизация оболочки OxygenOS позволяет аппаратам производителя работать быстрее большинства других смартфонов. OnePlus 7 Pro, конечно, исключением не стал. В Сети п...

Как мы в Parallels покоряли Sign In with Apple Думаю у многих уже после WWDC 2019 на слуху Sign In with Apple (кратко SIWA). В материале я расскажу с какими конкретно подводными камнями пришлось столкнуться при интеграции этой штукенции в наш лицензионный портал. Данная статья не совсем для тех, кто только решил разобр...

iOS 13 beta 3 серьёзно ускорила запуск приложений Пару дней назад для загрузки стала доступна третья бета-версия iOS 13. В сборке было найдено не так много нововведений, поскольку основной упор был сделан на исправление многочисленных ошибок и недоработок. Однако положительные изменения всё же есть — многие пользоват...

Wargaming Platform: Hello World WTF is Platform? В Wargaming есть отдельное подразделение, которое занимается… занимается разработкой некой «платформы» для издания игр. Объяснить, что такое Платформа, чем она является и не является, весьма сложно — но я попробую. Почему появилась статья Привет! Меня зовут ...

[recovery mode] Сбалансированные показатели сайта. Часть 4: Внешняя оптимизация В прошлых частях мы разбирали Cтратегию и ее составляющие, а также затронули тему внутренних показателей сайта, влияющих на продвижение. В этой же статье обратимся ко внешней оптимизации. Читать дальше →

Что нам стоит CDN построить? Привет Хабр! В этой статье мы будем строить свой CDN. Почему не воспользоваться готовыми решениями? Потому что сайт автора полностью статический, сделанный на Jekyll, с большими картинками, которые нужно отдавать максимально быстро. Сервер не должен быть кэширующим, он долже...

[Перевод] Модели дженериков и метапрограммирования: Go, Rust, Swift, D и другие В некоторых сферах программирования нормально хотеть написать такую структуру данных или алгоритм, которые могут работать с элементами разных типов. Например, список дженериков или алгоритм сортировки, которому нужна только функция сравнения. В разных языках предложены всев...

[Перевод] GitHub Package Registry будет поддерживать пакеты Swift 10 мая мы запустили ограниченный бета-тест GitHub Package Registry, службы управления пакетами, которая позволяет легко публиковать публичные или частные пакеты рядом с исходным кодом. В настоящее время сервис поддерживает знакомые инструменты управления пакетами: JavaScript...

Никита Шамгунов рассказал The Bell про работу в Microsoft и Facebook, разговор с Гейтсом и базу данных MemSQL Фото: РБК Вчера The Bell опубликовал интервью с Никитой Шамгуновым. Они назвали его одним из лучших программистов в России, и даже если не быть категоричными, он действительно крут. С детства изучал математику и компьютерные науки, занял третье место на чемпионате мира по ...

[Из песочницы] Преобразование черно-белых изображений в ASCII-графику при помощи неотрицательного матричного разложения В общем случае преобразование изображения в ASCII-графику представляет собой довольно трудоемкую задачу, однако существуют алгоритмы, позволяющие автоматизировать данный процесс. В данной статье рассматривается подход, предложенный исследователями Paul D. O’Grady и Scott T....

[Перевод] За последние 12 лет я ни разу не показал резюме В группах Facebook для начинающих программистов часто спрашивают, как улучшить резюме, чтобы легче получить работу. За свою 12-летнюю карьеру я прошёл путь от джуниора до технического директора — и резюме ни разу мне не пригодилось. Не то, чтобы я не пытался. Просто у меня...

[Перевод] 39 новых фич, которые будут доступны в Java 12 Из замечательного интервью на Хабре: «Саймон Риттер — человек, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Cont...

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

Подсчитываем энергобюджет радиолинии для спутника формата CubeSat Предисловие Думаю, нужно коротко пояснить, почему вдруг такая, казалось бы, тривиальная тема с подсчетом энергобюджета и почему именно спутники CubeSat? Ну, здесь всё достаточно просто: моя короткая педагогическая практика показала (мне), что тема эта хоть и базисная, но дал...

Короткая JS-задачка для понедельника Которая родилась в процессе изучения кошмаров LexicalEnvironment и вообще ликбеза на тему "Почему оно работает так". Задача получилась действительно из серии wtfjs, но после внимательного рассмотрения — полностью укладывается в логику работы языка. Читать дальше →

[Перевод] Node.js: управление памятью, доступной приложениям, выполняемым в контейнерах При запуске Node.js-приложений в контейнерах Docker традиционные настройки памяти не всегда работают так, как ожидается. Материал, перевод которого мы сегодня публикуем, посвящён поиску ответа на вопрос о том, почему это так. Здесь же будут приведены практические рекомендаци...

AWS Elasticsearch: фундаментально дефектный продукт Перевод статьи Nick Price В настоящее время я работаю над большим проектом логирования, который изначально был реализован с использованием AWS Elasticsearch. Поработав с крупномасштабными магистральными кластерами Elasticsearch в течение нескольких лет, я совершенно повер...

Optlib. Реализация генетического алгоритма оптимизации на Rust В этой статье описывается библиотека optlib, предназначенная для решения задач глобальной оптимизации на языке Rust. На момент написания этой статьи в этой библиотеке реализован генетический алгоритм нахождения глобального минимума функции. Библиотека optlib не привязана к к...

[Перевод] Smem – Отчеты о распределении памяти между процессами и пользователями в Linux И снова здравствуйте. Друзья, хотим поделиться с вами переводом полезного материала о мониторинге использования памяти в Linux. Данный материал подготовлен специально для студентов курса «Администратор Linux». Управление памятью в вопросах мониторинга ее использования – о...

[Перевод] Сервис-воркеры в клиенте Slack: об ускорении загрузки и оффлайн-режиме Материал, перевод которого мы сегодня публикуем, посвящён рассказу об оптимизации новой версии настольного клиента Slack, одной из центральных особенностей которой стало ускорение загрузки. Читать дальше →

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

Как работать с Google Trends — полное руководство для новичков Привет, Хабр! Заметил, что многие не знают, как работать с трендами в интернете. И тем более, не знают о существовании бесплатного сервиса, решающего эту проблему- Google Trends Сервис поможет узнать, что волнует ваших клиентов сегодня, интересен ли ваш товар рынку, как...

Oppo присоединилась к проекту CameraX API от Google В этом году Google представила CameraX API — это библиотека или набор AI-алгоритмов Android Jetack, предназначенных для того, чтобы облегчить разработку приложения камеры.   Их преимуществом является то, что разработчикам не нужно прописывать специальный код в сво...

[Перевод] Если вы что-то создаёте, избегайте расписания менеджера В книге ”Masters of Doom” о компании id Software и её влиянии на массовую культуру Дэвид Кушнер размышлял о необычном стиле работы ведущего программиста Джона Кармака. Чтобы повысить производительность и не отвлекаться от работы над движком Quake, тот принял агрессивный п...

3D взмывает ввысь: создан новый композит для аэрокосмоса, снизивший вес деталей на 20% Аддитивное производство металлических деталей становится все более востребовано, и неудивительно: по сравнению с традиционными промышленными технологиями, такими как литье, порошковая металлургия и механическая обработка, «аддитивка» позволяет создавать детали сложной формы,...

[Перевод] Три совета по управлению временем для тех, кто всё перепробовал Оптимизация времени и расписания не должна быть сложной математической задачей Если поискать в Интернете «советы по тайм-менеджменту», вы найдете множество страниц с рекомендациями — начиная с личных блогов и заканчивая рецензируемыми статьями, — где вам обязательно расск...

[Перевод] Бесстрашная защита. Безопасность памяти в Rust В прошлом году Mozilla выпустила Quantum CSS для Firefox, который стал кульминацией восьми лет разработки Rust — безопасного для памяти языка системного программирования. Потребовалось более года, чтобы переписать основной компонент браузера на Rust. До сих пор все основны...

[Перевод] Зачем ЯОП? Зачем Racket? Это продолжение статьи «Зачем Racket? Зачем Lisp?», которую я написал примерно через год после того, как открыл для себя Racket. Будучи новичком, я не мог понять дифирамбов, которые со всех сторон сыпались в адрес Lisp. Я не знал, что и думать. Как понимать, что Lisp в конце...

Ресурсное планирование. Почему оно не работает? Часть 1 Ценность ресурсного планирования для IT-компании сложно подвергнуть сомнению. Ресурсные планы есть у многих. А действительно работающей системой ресурсного планирования похвалиться могут совсем немногие. Почему же? Давайте разберёмся. Что такое действительно работающая сист...

Концепты VueJS для backend разработчиков — мастер-класс 22 июня 22 июня в конгресс-центр «Альфа» пройдет мастер-класс «Концепты VueJS для backend разработчиков» Ведущий — Сергей Рябенко имеет пятнадцатилетний опыт коммерческой разработки в различных ролях. Работал разработчиком в LinguaLeo и Head of Engineering в SalesLift. Последний г...

Hello, World! Глубокое погружение в Терминалы На написание данной статьи меня вдохновила статья об анализе Сишного printf. Однако, там был пропущен момент о том, какой путь проходят данные после того, как они попадают в терминальное устройство. В данной статье я хочу исправить этот недочет и проанализировать путь данны...

[Из песочницы] Разработка под Docker. Локальное окружение. Часть 1 Возможно, одна из самых основных причин почему мне нравится докер это то, что он позволяет избавиться от необходимости установки на компьютер различных сервисов. К их числу можно отнести и сам веб-сервер Apache или Nginx, базы данных и прочие компоненты инфраструктуры прилож...

Почему трудно работать в мультинациональной команде Всем привет! Я почти два года работаю в мультинациональной команде. Проект голландский, фронт-офис в Нидерландах плюс пара бэк-офисов: российский и чешский. Голландия – страна, в которую переезжают работать люди с разных точек мира, и собственно эта компания не исключение. ...

Персонализация товарных рекомендаций на больших данных с помощью Vowpal Wabbit Привет! Меня зовут Никита Учителев. Я представляю отдел Research & Development компании Lamoda. Нас 20+ человек, и мы работаем над различными рекомендациями на сайте и в приложениях, разрабатываем поиск, определяем сортировку товаров в каталогах, обеспечиваем возможность...

Как мы переложили управление инфраструктурой на Terraform — и начали жить У нас было 4 Amazon-аккаунта, 9 VPC и 30 мощнейших девелоперских окружений, стейджей, регрессий — всего более 1000 EC2 instance всех цветов и оттенков. Раз уж начал коллекционировать облачные решения для бизнеса, то надо идти в своем увлечении до конца и продумать как все э...

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

Масштабирование приложения в Kubernetes на основе метрик из Prometheus Распространённая ситуация: у вас есть несколько приложений, у одного из них пиковая нагрузка приходится на дневное время, а в другие часы к нему никто не обращается (либо обращаются, но редко); при этом другим приложениям мощности кластера могут пригодиться и в ночное врем...

[Перевод] Профилирование кода Go-проекта и решение проблемы с выделением памяти Пожалуй, каждому программисту известны слова Кента Бека: «Make it work, make it right, make it fast». Сначала надо сделать так, чтобы программа работала, дальше — надо заставить её работать правильно, а уже потом можно переходить к оптимизации.  Автор статьи, перевод кото...

Где мы взяли флакон? Flowcon, или Флакон – методика управления, в том числе – задачами. Потоком, проектом, разработкой, рутинными функциями, регуляркой и т.д. Многие, узнав о методике и решениях на ее основе, задают вопросы – что да как, в чем суть, на основе каких «мировых практик» сделано, ка...

Статическое распределение объектов FreeRTOS По умолчанию все объекты в системе FreeRTOS распределяются динамически — очереди, семафоры, таймеры, задачи (потоки), и мьютексы. Программист видит только «кучу» — область где динамически выделяется память по запросу программы или системы, а что там творится внутри – не ясно...

Инженерный подход к разработке ПО Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Требования и спецификации — пережиток прошлого? Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндексе, до ...

Вышла iOS 13.1 beta 2 для разработчиков. Что нового   Apple выпустила вторую бета-версию iOS 13.1 для авторизованных разработчиков. Номер сборки — 17A5831c. UPD 00.17: публичная бета также доступна. В этой прошивке компания поработала над оптимизацией операционной системы и исправила многочисленные баги. Также закр...

[Перевод] Amazon Prime Day 2019 – Powered by AWS Команда TestMace продолжает публикацию переводов об интересных моментах web-сферы. На очереди описание Amazon Prime Day с точки зрения разработки высоконагруженных сервисов. Приятного чтения! Уже по традиции я бы хотел рассказать вам о некоторых преимуществах AWS, которые...

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

RubyRussia 2019. Юлиан Покровский: как оптимизировать монолит Несмотря на огромное количество материалов по теме оптимизации монолита, часто хочется убежать от глубоко изучения вопроса и попробовать угадать, как сделать приложение быстрей или компактней. Хорошая новость: принцип Парето работает и здесь. На конференции RubyRussia 28 сен...

OnePlus выпустила Android 10 для OnePlus 6 и 6T. Но есть проблема OnePlus 6 и 6T получили Android 10, но без проблем не обошлось Несмотря на то что на рынке Android-смартфонов по-прежнему преобладают аппараты на базе старых версий операционной системы, флагманы актуальных поколений всё-таки получают обновления. Да, это происходит не так ст...

Промо-сезон на Banggood: беспрецедентные скидки и максимально выгодные предложения Ведущий китайский ритейлер Banggood объявил об оптимизации веб-сайтов для пяти регионов, среди которых Россия, Ближний Восток, Индия, Япония и Бразилия. Это позволит адаптировать интерфейс в соответствии с потребностями местного рынка и поведением пользователей. Региональные...

Психоанализ эффекта недооцененного специалиста. Часть 1. Кто и почему 1. Вступление Несправедливость неисчислима: исправляя одну, рискуешь совершить другую. Ромен Роллан Работая программистом с начала 90-ых, мне не однократно приходилось сталкиваться с проблемами недооцененности. Вот например, я такой молодой, умный, со всех сторон положительн...

Как реализуется Retentioneering в App in the Air Удержать пользователя в мобильном приложении – это целая наука. Ее основы в нашей статье на VC.ru описал автор курса Growth Hacking: аналитика мобильного приложения Максим Годзи, руководитель подразделения Машинного обучения в App in the Air. Максим рассказывает о разработ...

Samsung и Apple не могут угнаться за OnePlus OnePlus 7 Pro — это отличный смартфон во многих смыслах, но есть одна вещь, которая его по-настоящему возвышает над конкурентами — это скорость: попользуйтесь им даже короткое время, и вы заметите, что этот смартфон устанавливает совершенно новый стандарт произв...

[Из песочницы] Как я не стал программистом в 35 лет С самого начала сентября широким потоком хлынули на Хабр публикации об успешном успехе на тему «Детство программиста», «Как стать программистом после N лет», «Как я ушёл в IT из другой профессии», «Путь в программирование» и так далее. Подобные статьи пишут постоянно, но во...

PyDERASN: как я написал ASN.1 библиотеку с slots and blobs ASN.1 это стандарт (ISO, ITU-T, ГОСТ) языка описывающего структурированную информацию, а также правил кодирования этой информации. Для меня как программиста это просто ещё один формат сериализации и представления данных, наравне с JSON, XML, XDR и другими. Он крайне распрост...

Разработчики рассказали, что не могут перенести Android-приложения на HarmonyOS HarmonyOS — новая ОС от Huawei на замену Android Без чего немыслима никакая современная ОС? Конечно, без экосистемы и софта. Но если спроектировать составные элементы экосистемы такой компании, как Huawei, в общем-то, по силам, то перенести чужое ПО вручную — уже...

Как мы оценивали качество документации Привет, Хабр! Меня зовут Леша, я системный аналитик одной из продуктовых команд Альфа-Банка. Сейчас я занимаюсь развитием нового интернет-банка для юридических лиц и индивидуальных предпринимателей. А когда ты аналитик, тем более в подобном канале, без документации и плотно...

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

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

ConfigureAwait, кто виноват и что делать? В своей практике я часто встречаю, в различном окружении, код вроде того, что приведен ниже: [1] var x = FooWithResultAsync(/*...*/).Result; //или [2] FooAsync(/*...*/).Wait(); //или [3] FooAsync(/*...*/).GetAwaiter().GetResult(); //или [4] FooAsync(/*...*/) .Configur...

Хватит спорить про функциональное программирование и ООП Пост содержит некоторое количество стёба, минздрав убедительно просит неподготовленного читателя воздержаться от прочтения. Статьи на тему «ФП лучше» или «ООП лучше» напоминают дебаты, что же лучше для обеда, вилка или ложка. Традиционно джуны начинали с ложки, но кто-то оче...

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

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

Концепция взаимодействия рекламных каналов и ее применение на практике Осмысленность отчетов о рекламных кампаниях(РК) значительно упрощает людям жиз… оптимизацию расходов. В процессе повышения уровня этой осмысленности, мы нашли один очень эффективный способ максимизировать рентабельность, принимая во внимание то, что мы назвали «взаимодействи...

[Перевод] Поиск пути среди круглых препятствий Навигация по лесу Алгоритм поиска пути A* — это мощный инструмент для быстрой генерации оптимальных путей. Обычно A* демонстрируют при навигации по картам из сеток, но он может использоваться не только для сеток! Он может работать с любыми графами. Можно использовать A* для ...

[Из песочницы] Proof-Of-Work эффективен Привет, Хабр! Представляю вашему вниманию перевод статьи «PoW is Efficient» автора Dan Held. Вступление Большинство людей думает, что энергия, потраченная на Proof-Of-Work (далее PoW), тратится впустую. В этой статье я расскажу, почему все основано на энергии, включая деньг...

[Перевод] Python как предельный случай C++. Часть 2/2 Продолжение. Начало в «Python как предельный случай C++. Часть 1/2». Переменные и типы данных Теперь, когда мы окончательно разобрались с математикой, давайте определимся, что в нашем языке должны означать переменные. В С++ у программиста есть выбор: использовать автоматичес...

[Перевод] Асинхронное общение — вот настоящая причина, почему удалённая работа более эффективна Теперь асинхронную связь внедряют не только на удалёнке Иллюстрация: Yin Weihung Исследование за исследованием вновь доказывают, что удалённые работники более продуктивны, чем их коллеги в офисе. Только не совсем понятно, почему. Да, люди сохраняют время (и рассудок), из...

Как сократить расходы на базы данных в 2 раза (вебинар) Руководите или отвечаете за работу ИТ-подразделения компании? Устали от регулярных потерь производительности, инцидентов и вливаний бюджетов в инфраструктуру баз данных? 27 ноября (среда) в 12:00 по Мск пройдет открытый вебинар Виталия Саве...

MSI выпускает обновления BIOS для материнских плат Outs AM4 MSI, ведущий мировой производитель игровых материнских плат, берет на себя инициативу выпустить обновления BIOS для AMD. Эта последняя версия AMD Combo PI 1.0.0.4 Patch B (SMU v46.54) значительно улучшена во всех аспектах, касающихся отладки и оптимизации для предыдущей вер...

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

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

Тюнинг Firebird и Linux для БД размером 691 Гб с 1000+ пользователей Firebird является очень популярной открытой СУБД в России, и, несмотря на отсутствие шумных маркетинговых акций, используется в большом количестве ответственных систем, особенно в медицинских и государственных системах автоматизации. Размер БД и количество активных пользова...

[Перевод] Четыре оси дизайна RPG Эта статья началась с ответа на многогранный, но в то же время довольно прямолинейный вопрос: из чего же состоит хорошая ролевая игра? На протяжении своей карьеры я поработал над несколькими RPG, и даже читал презентацию по этой теме, но никогда не рассматривал её целостно. ...

[Из песочницы] ClusterJ — работаем с MySQL NDB Cluster из Java Привет, Хабр! В этой статье я хочу рассмотреть такую библиотеку для Java, как ClusterJ, которая позволяет очень просто работать с движком MySQL NDBCLUSTER из Java кода, которая представляет собой высокоуровневое API, схожее по концепции с JPA и Hibernate. В рамках статьи со...

[Перевод] Улучшенный sandboxing для Groovy скриптов От переводчика: При разработке CUBA Platform мы заложили в этот фреймворк возможность исполнения пользовательских скриптов для более гибкой настройки бизнес-логики приложений. О том, хороша или плоха эта возможность (и мы говорим не только о CUBA), ведутся долгие споры, но ...

[Из песочницы] В чем разница между 4G и 5G? Привет, Хабр! Я учусь по специальности радиотехника. В последнее время многие знакомые спрашивают меня, зачем переходить на технологию 5G и в чем разница между 4G и 5G. Поэтому сегодня представляю вашему вниманию перевод статьи на эту тему. Читать дальше →

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

Вселенная отчётности на SAP Примерно 4 года назад мы перенесли нашу систему отчётности с Oracle на SAP Hana. Сегодня в ней хранится около 10 000 таблиц, ею пользуется 38 000 человек и в ней ежедневно происходят более 5000 процессов загрузки. На текущий момент наш комплекс, на котором работает система...

[Из песочницы] Headless CMS. Почему я пишу свою Всем привет! Написать эту публикацию меня побудила вот эта недавняя статья (вчера увидел). Пересказывать основные признаки Headless/content-first/api-first и т.п. CMS я не буду, материала полно и наверняка уже многие знакомы с этим трендом. А хочу я рассказать почему и ка...

[Перевод] 3 практических примера использования деструктурирования в JavaScript Пишем код чище, используя паттерны деструктурирования Вы, наверное, уже знакомы с деструктурированием в JavaScript. Оно пришло к нам в 2015 году в спецификации ES6, но если вам нужно освежить знания, то на сайте Mozilla можно почитать большую подробную статью, как это всё р...

[Из песочницы] Откуда растут ноги у Java Memory Model Современное железо и компиляторы готовы перевернуть с ног на голову наш код, лишь бы он работал быстрее. А их производители тщательно скрывают свою внутреннюю кухню. И все прекрасно, пока код выполняется в одном потоке. В многопоточной среде можно волей-неволей наблюдать и...

[Перевод] Затраты на AWS, которые должен знать каждый программист Заголовок этого поста — прямая отсылка к диаграмме «Времена задержек, которые должен знать каждый программист». В настоящее время есть несколько версий этой диаграммы, и трудно установить оригинального автора. Некоторые говорят, что это Джефф Дин. Если вы работаете над прое...

[Из песочницы] Управление несколькими шаговыми двигателями Nema 17 одновременно или NemaStepper Всем привет. Я думаю что вы, если работали с arduino+nema 17, знаете, что запустить несколько двигателей одновременно бывает очень затруднительно. Есть разные способы решения этой проблемы, самый простой, пожалуй — использование библиотеки NemaStepper. Библиотека упрощае...

[Из песочницы] Цена качества: 7 принципов оптимизации затрат на тестирование Думаете, как сэкономить на тестировании вашего ПО? Вы не одиноки. Возникает лишь одно маленькое но: если софт не дотестировать, возможны самые негативные сценарии – от дорогостоящей и крайне невыгодной вам доработки приложения на поздних стадиях до потери репутации и ухода...

CI/CD с помощью AWS и Bamboo Наша команда состоит из одного разработчика и одного DevOps инженера. Я отвечаю за разворачивание приложения в кластере Amazon ECS. В качестве CI/CD сервера я использую Bamboo. В этой статье я подробно расскажу, как я осуществляю разворачивание приложения в dev-среде. Чита...

Размышления про идеальный корпус Здравствуйте. На написание этой статьи меня побудил наметившийся апгрейд домашней системы и недавняя статья Настольный. Металлический. Бесшумный. Твой?. Что-бы найти приемлемый вариант мне пришлось перелопатить кучу моделей корпусов и сейчас я хочу поделиться своей болью с в...

[Перевод] Отладка игр для NES: как она происходит сегодня Если вы когда-нибудь занимались программированием, то знакомы с концепцией багов. Если бы они нам не досаждали, процесс разработки стал бы намного быстрее и приятней. Но эти баги просто ждут момента, чтобы испортить наш код, рабочий график и творческий поток. К счастью, сущ...

Разбор: как на самом деле работает Forex, и что надо знать о торговле валютой на бирже для минимизации рисков Изображение: Unsplash Год назад Центробанк России аннулировал лицензии пяти крупных форекс-дилеров. В их числе оказались известные в нашей стране компании «Альпари Форекс», «Телетрейд Групп» и «Форекс Клуб». В новой статье поговорим о том, почему это должно было произой...

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

[Перевод] Представляем «CLI Builder»‎-ы В этой статье мы рассмотрим новый API Angular CLI, который позволит вам расширять существующие возможности CLI и добавлять новые. Мы обсудим, как работать с этим API, и какие существуют точки его расширения, позволяющие добавлять новый функционал в CLI. Читать дальше →

[Перевод] DEFCON 21. Одних паролей недостаточно, или почему «ломается» шифрование диска и как это можно исправить. Часть 2 DEFCON 21. Одних паролей недостаточно, или почему «ломается» шифрование диска и как это можно исправить. Часть 1 Существуют забавные штуки, такие, как монотонно возрастающие счетчики, с помощью которых можно контролировать активность TMP, а затем проверять полученные значен...

Почему не SQL? Без преувеличения можно сказать, что SQL — один из самых распространенных в мире языков. Информационные системы могут быть написаны на Java, Python, JavaScript, C#, PHP и десятке других языков, но SQL база в том или ином виде будет в абсолютном большинстве таких систем. Ср...

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

[Перевод] История создания Norton Commander. Часть 1 / 3 Пьяный программист сидит с открытым Norton Commander на экране. На обоих панелях открыт диск С. «Ну и зачем мне два диска С с одними и теми же файлами?» — подумал он и стер все его содержимое, нажав F8 и Enter. — анекдот конца 80-х годов Нортон (Norton Commander) for DOS...

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

Почему мы используем GraphQL в 8base Друзья, всем привет! Эта статья в первую очередь будет интересна фронтенд-разработчикам, особенно тем кому актуальна тема GraphQL, но в то же время я надеюсь, что она будет полезна и бэкенд-разработчикам и поможет им понять преимущества GraphQL глазами фронтендера. Читать...

Техника избежания неопределённого поведения при обращении к синглтону В статье рассмотрены причины возникновения и способы избежания неопределённого поведения при обращении к синглтону в современном c++. Приведены примеры однопоточного кода. Ничего compiler-specific, всё в соответствии со стандартом. Читать дальше →

[Из песочницы] Как организовать работу QA. Один практически примененный способ Предыстория Недавно одна моя знакомая QA Engineer, которая долгое время работала в вялотекущем проекте, где круг ее обязанностей был строго очерчен, сменила работу и устроилась в свежезапущенный проект. Просидев пару дней без обозначенных сверху заданий, и откровенно заскуча...

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

Методы оптимизации кода для Redd. Часть 2: некэшируемая память и параллельная работа шин В прошлой статье мы выяснили, что кэш — это безусловно полезная штука, но применительно к контроллерной логике он иногда создаёт трудности. В частности, он вносит непредсказуемость длительности импульсов либо иных задержек при программном формировании временных диаграмм. Ну,...

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

Представлены стильные умные часы Fossil Gen 5 за 20 000 рублей Fossil — американский бренд, выпускающий часы уже больше 30 лет и все это время экспериментирующий с концепцией умных часов. Но если раньше их модели могли привлечь исключительно внешним видом, то сейчас вполне способны заинтересовать и начинкой. Fossil Gen 5 — это умные ча...

Поиск похожих изображений, разбор одного алгоритма Пришлось мне недавно решать задачку по оптимизации поиска дубликатов изображений. Существующее решение работает на довольно известной библиотеке, написанной на Python, — Image Match, основанной на работе «AN IMAGE SIGNATURE FOR ANY KIND OF IMAGE» за авторством H. Chi Wong...

Некоторые аспекты оптимизации LINQ-запросов в C#.NET для MS SQL Server LINQ вошел в .NET как новый мощный язык манипуляции с данными. LINQ to SQL как часть его позволяет достаточно удобно общаться с СУБД с помощью например Entity Framework. Однако, достаточно часто применяя его, разработчики забывают смотреть на то, какой именно SQL-запрос буде...

Что необходимо знать о GDPR в 2019 Сегодня поговорим о “великом и ужасном” GDPR (General Data Protection Regulation) или Общем регламенте по защите персональных данных. Не смотря на то, что закон был принят еще в мае 2018 года, многие компании до сих пор не выполняют всех его требований. Мы встретились с н...

[Из песочницы] Что они думали о программистах Привет, Хабр! Представляю вашему вниманию перевод статьи «What They Thought of Programmers» автора Robert C. Martin. Интересно и познавательно вернуться в прошлое и посмотреть, как программисты были представлены в массовой культуре. Что люди о нас думали? Знали ли они, кто ...

[Перевод] Сравнение потребления памяти различных GUI тулкитов Всем привет! Наша команда разрабатывает IDE для работы с API TestMace. В одной из наших предыдущих статей читатели указывали на непомерно большое потребление памяти electron-приложений. Что ж, настало время цифр :) В данной статье автор оценивает потребление памяти одноокон...

[Из песочницы] Метод создания DRAG and DROP эффекта Придя впервые к технологии DRAG and DROP столкнулся с очень тяжелым её описанием (Это мое субъективное мнение. Прошу с ним не соглашаться, а перечитать все что только можно и посмотреть на этот вопрос с многих сторон). И решил написать пару статей, нацеленных на начинающих р...

Пользователи хотят Windows 10X на Surface Duo Хотя многие поклонники Windows Phone поняли прагматичное решение Microsoft выпустить свое устройство Surface Duo на Android, есть пользователи, который все еще требует, чтобы Microsoft выполнила то, что она обещали за многие годы – Surface Phone под управлением Windows. Даже...

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

MU-MIMO: один из алгоритмов реализации Предисловие В качестве дополнения к моей недавней статье хотелось бы также поговорить о теме MU (Multi User) MIMO. Есть у мною уже упомянутого профессора Хаардта одна очень известная статья, где он вместе со своими коллегами предлагает алгоритм разделения пользователей по ни...

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

Wolfensteiny 3D — реверс-инжиниринг 251 байтов JavaScript При написании кода многие не задумываются ни о чем, кроме логики самой программы. Меньшее число людей думают об оптимизации кода по времени, по памяти. Но лишь единицы доходят до последнего уровня — сжатии программы до рекордно маленького размера. Посмотрите, например, на ...

[Перевод] Четыре больших ошибки, которые совершал каждый программист Фотограф — Blake Connally, источник — Unsplash Создание программного обеспечения — искусство. Написание кода позволяет нам самовыражаться. И каждый разработчик делает это по-своему. Но индивидуализм не бесплатен — в этой статье я напишу о некоторых самых распространённых оши...

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

Категории выражений в C++ Категории выражений, такие как lvalue и rvalue, относятся, скорее, к фундаментальным теоретическим понятиям языка C++, чем к практическим аспектам его использования. По этой причине многие даже опытные программисты достаточно смутно представляют себе, что они означают. В это...

[Перевод] Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 1 Серверный код в Instagram пишут исключительно на Python. Ну, в основном это именно так. Мы используем немного Cython, а в состав зависимостей входит немало C++-кода, с которым можно работать из Python как с C-расширениями. Наше серверное приложение — это монолит, представ...

[Из песочницы] WWDC19: Приступим к работе с Test Plan для XCTest Привет, Хабр! Представляю вашему вниманию перевод статьи «WWDC19: Getting Started with Test Plan for XCTest» автора Shashikant Jagtap. На прошедшей конференции WWDC компания Apple показала новые классные фичи для разработчиков. В Xcode 11 так же добавлено несколько потряс...

Поговорим про мониторинг: живая запись подкаста Devops Deflope с New Relic на митапе 23 октября Привет! Так случилось, что мы — активные пользователи одной весьма известной платформы, и в конце октября ее инженеры приедут в гости к нашей команде. Подумав, что вопросы к ним могут быть не только у нас, решили собрать всех желающих, а также дружественный подкаст и знакомы...

[Из песочницы] Регресс или регрессив в тестировании О себе писать не буду (кто я и чем занимаюсь). Моя статья возможно ответит на эти вопросы. Не могу терпеть эту боль и слышать как неправильно произносят некоторые определения в тестировании. Да, я — тестировщик. Хотя мои близкие меня постоянно спрашивают — «Ты точно тести...

[Из песочницы] Навигация в кроссплатформенных приложениях: почему NavController победил angular/router в Ionic 4 Всем привет! Меня зовут Никита Жигамовский, программист в KitApp и я хочу рассказать о своем опыте построения навигации в Ionic 4: проблеме, с которой столкнулся, и ее решении. Я занимаюсь разработкой кросс-платформенных решений для мобильных приложений с 2018 года. Рань...

Игровой смартфон Nubia Red Magic 3 теперь продается во всем мире по цене от 30 000 рублей В конце апреля компания Nubia представила один из самых мощных смартфонов современности — игровой Red Magic 3 по вполне доступной цене. Сегодня он официально начал продаваться во всем мире, включая Европу. Работает Red Magic 3 на Snapdragon 855 с объемом оперативной памяти ...

[Из песочницы] Разработка визуальных тестов на базе Gemini и Storybook Привет, Хабр! В этой статье я хочу поделиться опытом разработки визуальных тестов в нашей команде. Так получилось, что о тестировании верстки мы задумались не сразу. Ну съедет какая-нибудь рамка на пару пикселей, ну поправим. В конце концов, есть же тестировщики — мимо них ...

Обзор ATLAS. Тоже самое, что и ARK Очень редко мы выпускаем обзоры на игры, которые не можем посоветовать нашим читателям. Иногда игры просто ужасны настолько, что про это нельзя не сказать, иногда есть некий кредит доверия. С ATLAS просто хочется верить в то, что игра будет хорошая после того, как ее код дов...

[Перевод] Интервью — 10 вопросов про Swift. Часть 2 До запуска курса «iOS-разработчик» остается все меньше времени, поэтому сегодня мы продолжаем публиковать материал из серии «10 вопросов про Swift». Первую часть которого можно прочитать тут. Объясните дженерики в Swift? Дженерики (универсальные шаблоны) позволяют вам пис...

[Перевод] 42 оператора расширенного поиска Google (полный список) Те, кто давно занимается поисковой оптимизацией, хорошо знают об операторах расширенного поиска Google. Например, почти все знают об операторе site:, который ограничивает поисковую выдачу одним сайтом. Большинство операторов легко запомнить, это короткие команды. Но уметь э...

[Перевод] Я нашёл отличного программиста по имени Стив Возняк Давным-давно, когда компьютеры были большими, а бизнес скучным, произошло нечто неожиданное. Молодые хакеры нашли способ собрать персональные компьютеры на дешёвых микропроцессорах от телетайпов и светофоров. Одним из них был Стив Возняк. Эти ребята восприняли ограничения св...

[Из песочницы] «Извини, но у меня депрессия»: как работать с заболевшим сотрудником «Извини, кажется, мне надо было раньше это сказать – я столкнулся с депрессией». Такое письмо мне пришло утром от одного из сотрудников, который уже пару дней не мог закрыть несложный тикет. Контекст: работаю тимлидом в крупной корпорации, в подчинении – удаленная команда ...

Flash-анимации в Unity3D своими руками. Часть первая, лирическая В этой серии статей я расскажу о том, как и почему мы решили создать своё собственное решение для импорта flash-анимаций в Unity, об оптимизациях и внутренней кухне получившегося плагина. А также в программе: рассказ о внутренностях формата swf, особенностях расширения Unity...

Один день до DotNext 2019 Piter. Анонс бесплатной трансляции 15 мая, то есть уже завтра, состоится конференция DotNext 2019 Piter. Это два дня докладов про настоящее и будущее платформы .NET, оптимизацию производительности, детали внутреннего устройства платформы, архитектуру, решение необычных задач и так далее. Общее количество до...

[Перевод] Асинхронный PHP. Зачем? Асинхронное программирование сегодня востребовано, особенно в веб-разработке, где отзывчивость приложения особенно важна. Никому не хочется ждать, пока приложение «отвиснет», пусть даже в это время оно выполняет запрос к базе данных, отправляет электронное письмо или работ...

[Перевод] 15 рекомендаций по развертыванию программных средств бизнес-аналитики Всем привет. В конце июня мы запускаем новый курс «Аналитик BI». И уже сегодня хотим поделиться первым материалом подготовленным специально к курсу. Бизнес-аналитика, позволяющая значительно повысить прибыльность и эффективность коммерческой деятельности, требуется любой с...

Деревянные игрушки, часть первая — 1982-1985 Когда писал обзоры на ноутбук Compaq LTE, не думал, что настолько затяну с игрушечной частью. Но, как выяснилось, тут «работы» гораздо больше, чем думал. К примеру, куча игр, в которые играл уже в девяностые, оказалась из восьмидесятых. Плюс одно тянет за собой другое — втор...

Без картриджей: 5 возможностей экономии для малого бизнеса вместе с HP Оптимизация расходов – одна из первоочередных задач для собственника бизнеса, менеджеров, да и простых предпринимателей. Использование новых печатающих устройств НР открывает сразу несколько путей для экономии средств и ресурсов, в том числе и времени. Возможность 1: Экономь...

ООП, «святая троица» и SOLID: некоторый минимум знаний о них Необходимое вступление Я не гарантирую, что изложенные здесь трактовки общепринятых терминов и принципов совпадают с тем, что изложили в солидных научных статьях калифорнийские профессора во второй половине прошлого века. Я не гарантирую, что мои трактовки полностью разделя...

[recovery mode] ShIoTiny: часы без пружины или реальное время и как с ним работать О чем эта статья Продолжаем цикл статей о ShIoTiny — визуально программируемом контроллере на базе чипа ESP8266. В этот статье рассказано о часах реального времени в контроллере ShIoTiny, синхронизации времени и использовании узлов работы с часами. Сайт проекта ShIoTiny...

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

Как мы в ЦИАН укрощали терабайты логов Всем привет, меня зовут Александр, я работаю в ЦИАН инженером и занимаюсь системным администрированием и автоматизацией инфраструктурных процессов. В комментариях к одной из прошлых статей нас попросили рассказать, откуда мы берем 4 ТБ логов в день и что с ними делаем. Да,...

[Из песочницы] Создание сторис для Instagram из PHP Вступление В последнее время люди более охотно смотрят в социальных сетяx видео, нежели просматривают фотографии. Сторис в инстаграм набирает в 3-4 раза больше просмотров, чем просто выложенная фотография. Ну и конечно же, не перестаём забывать, что социальные сети это не т...

В TikTok появился таргетинг через сторонние приложения Приложение для публикации коротких видео TikTok тестирует программу, позволяющую рекламодателям таргетировать рекламу для пользователей соцсети в других приложениях. Пользовательская база, аналогичная аудиториям Facebook, LinkedIn и других компаний-гигантов, позволяет реклам...

[Из песочницы] Работа с JSON RPC в Symfony 4 Всем привет, сегодня поговорим о том, как подружить Symfony 4, JSON RPC и OpenAPI 3. Данная статья рассчитана не на новичков, вы уже должны понимать как работать с Symfony, Depedency Injection и другими «страшными» вещами. Сегодня рассмотрим одну конкретную реализацию JSON ...

[Из песочницы] Всё что вам нужно знать о Node.js Привет, Хабр! Представляю вашему вниманию перевод статьи "Everything you need to know about Node.js" автора Jorge Ramón. В наши дни платформа Node.js является одной из самых популярных платформ для построения эффективных и масштабируемых REST API's. Она так же под...

5 вещей, которые чаще всего не понимают новички в JavaScript Всем привет! В конце сентября в OTUS стартует новый поток курса «Fullstack разработчик JavaScript». В преддверии начала занятий хотим поделиться с вами авторской статьей, подготовленной специально для студентов курса. Автор статьи: Павел Якупов Превью. Хочу сразу отмети...

G.Skill выпускает набор модулей памяти DDR4-3800 CL14, «оптимизированный» для процессоров AMD Ryzen 3000 и чипсета X570 Компания G.SKill представила набор модулей памяти Trident Z Neo DDR4-3800. По словам производителя, он «оптимизирован» для процессоров AMD Ryzen 3000 и чипсета X570, позволяя получить высокую производительность и стабильность работы систем на новых процессор...

Зачем избегать друзей, или как я растерял все свои плюсы Привет, Хабр. Пару дней назад мне на глаза попался вот этот твит: C++ - Stateful TMP#cpp #cplusplus #Cpp20https://t.co/Q3sh3XtiHC pic.twitter.com/AkCRB2zvrT— Kris Jusiak (@krisjusiak) October 21, 2019 Вкратце: в очередной раз в C++ нашли какую-то лажу, которая появилась та...

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

[Перевод] Аппаратные «характеристики» в .NET Core (теперь не только SIMD) Введение Несколько лет назад, мы решили, что настало время поддержать SIMD код в .NET. Мы представили пространство имен System.Numerics с типами Vector2, Vector3,Vector4 и Vector<T>. Эти типы представляют API общего назначения для создания, доступа и оперирования векто...

Apache Kafka + Spring Boot: Hello, microservices Привет, Хабр! В этом посте мы напишем приложение на Spring Boot 2 с использованием Apache Kafka под Linux, от установки JRE до работающего микросервисного приложения. Коллеги из отдела фронтэнд-разработки, увидевшие статью, сетуют на то, что я не объясняю, что такое Apache ...

Истории-Live с рынка бизнеса и продаж Я просто расскажу истории своих знакомых. Есть у меня один знакомых, который занимается шкафами. Вот его рассказ: Если я повышаю стоимость шкафа с 20 000 до 20150 рублей, то всё пизда продажи встают. Ебучие 150 рублей полностью отключают продажи. Этот ебучий демпинг уже меня...

Что нам стоит IoT построить? Свой IoT на Amazon за один день Начать разбираться с IoT (Internet of Things) платформами меня останавливало отсутствие IoT устройства, которое было бы совместимо по протоколам и способам доступа. Но когда я понял, что в качестве устройства можно использовать обыкновенный смартфон, то реализация работающей...

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

Моменты жизни Стивена Вольфрама — создателя Mathematica, Wolfam|Alpha, A New Kind Of Science и много чего ещё Оригинал поста в моём личном блоге Мне посчастливилось лично познакомиться со Стивеном Вольфрамом на Первой Российской конференции «Wolfram технологии», которая проходила в 2013 г. в СПбГУ. После мы пересекались на телемосте Стивена в Digital October. Записи этих выступлен...

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

Инженерный подход к разработке ПО. От теории к практике Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Что делать, когда возможностей тестов недостаточно? Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндекс.П...

Рыночная стоимость кобот вырастет до 12,3 миллиарда долларов в 2025 году Доля рынка растет из-за потребности предприятий в автоматизации своих процессов, а также в следствие растущего дефицита рабочей силы на рынке труда.Коллаборативный робот (кобот) является более универсальным и гибким решением роботизации, чем традиционный промышленный робот. ...

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

Astra Linux 1.6 (Смоленск). Готова ли система к работе с простыми пользователями? Примеры костылей Нейтрализация пользователя и процесс установки новой ОС Привет, Хабр. Сегодня хотим поделиться опытом миграции одной организации (далее – Заказчик) на отечественную ОС в рамках выполнения требований по импортозамещению. Сразу нужно обозначить, что Заказчик выбрал и закупил...

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

Блокировки в PostgreSQL: 2. Блокировки строк В прошлый раз мы говорили о блокировках на уровне объектов, в частности — о блокировках отношений. Сегодня посмотрим, как в PostgreSQL устроены блокировки строк и как они используются вместе с блокировками объектов, поговорим про очереди ожидания и про тех, кто лезет без оче...

Работа с MS SQL из Powershell на Linux Эта статья чисто практическая и посвящена моей грустной истории Готовясь к Zero Touch PROD для RDS (MS SQL), про который нам прожужжали все уши, я сделал презентацию (POC — Proof Of Concept) автоматизации: набора powershell скриптов. После презентации, когда стихли бурные, п...

[recovery mode] Одна задача из SEO рутины: решение в 3 шага По правде говоря, это не «бомбический» кейс, а стандартная ситуация в SEO и её обычное решение. Из таких ситуаций состоит большая часть работы. В данном случае, статья будет интересна владельцам интернет магазинов. Сайт клиента в один момент сильно потерял в позициях. Как...

[Перевод] Вся правда об ОСРВ. Статья #29. Прерывания в Nucleus SE Все современные микропроцессоры и микроконтроллеры содержат какие-либо механизмы прерывания. Эти механизмы необходимы для обеспечения «отзывчивости», требуемой многими приложениями. Безусловно, отзывчивость и предсказуемость являются основной целью при использовании ОСРВ, но...

"Техносерв" оптимизирует бизнес-процессы "Сахалин Энерджи" на базе Process Mining Интегратор "Техносерв" сообщил о завершении проекта по внедрению в нефтегазовой компании "Сахалин Энерджи" решения для мониторинга, анализа и оптимизации бизнес-процессов. Работая на базе технологии Process Mining, система позволяет сделать моментальный &...

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

Сoncurrent collections за 10 минут Photo by Robert V. Ruggiero Тема не новая. Но задавая вопрос “что такое concurrent collections и когда их использовать?” на собеседовании или code review, я почти всегда получаю ответ, состоящий из одного предложения: “они полностью защищают нас от race conditions” (что не...

Книга «Высокопроизводительный код на платформе .NET. 2-е издание» Эта книга научит вас добиваться максимальной производительности управляемого кода, в идеале не жертвуя ни одним из преимуществ среды .NET, а в худшем случае жертвуя минимальным их числом. Вы освоите рациональные методы программирования, узнаете, чего следует избегать и, что...

Отображение и оптимизация вывода на терминал в вебе Не так давно я столкнулся с довольно простой и одновременно интересной задачей: реализация read-only терминала в веб приложении. Интереса задаче придавали три важных аспекта: поддержка основных ANSI Escape sequences поддержка минимум 50 000 строк данных отображение данных п...

Разработчики гонки Assetto Corsa Competizione официально прекращает поддержку Nvidia RTX С момента выпуска графических карт Nvidia 20XX в конце прошлого года многие разработчики пытаются внедрить многие функции (такие как трассировка лучей или DLSS) в свои игры. Однако, Assetto Corsa Competizione (которая должна быть выпущена в следующем месяце) была одной из н...

[Перевод] Простые методы оптимизации программ Go Я всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок. В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к сущ...

[Перевод] Всё, что вам нужно знать про CSS Margin Одним из первых, что многие из нас усвоили, когда изучали CSS, были особенности разных составляющих блока в CSS, описываемые как «Блочная Модель CSS». Один из элементов в блочной модели — margin (внешний отступ), прозрачная область вокруг блока, которая отталкивает другие эл...

Оптимизация конверсий на поиске — FAQ от Яндекса В конце апреля Яндекс сообщил о скором запуске оптимизации закупки конверсий при ручном управлении ставками на Поиске.Технология должна помочь рекламодателям легче выигрывать торги за наиболее конверсионный трафик и экономить бюджет при низкой вероятности целевых переходов.&...

Разбор. Как работает SOCKS-прокси: плюсы, минусы, отличия от других технологий Изображение: Pexels В современном интернете, где все острее встает вопрос обеспечения анонимности, многие люди начинают задумываться о том, какие инструменты для этого им использовать. Здесь часто возникает путаница, поскольку не все разбираются в аспектах существующих те...

[Перевод] Приключения неуловимой малвари, часть 1 Этой статьей мы начинаем серию публикаций о неуловимых малвари. Программы для взлома, не оставляющие следов атаки, известные также как fileless («бестелесные», невидимые, безфайловые), как правило, используют PowerShell на системах Windows, чтобы скрытно выполнять команды ...

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

Простая логистика своими руками Хочу поделиться с Вами опытом создания логистической системы на одном торговом предприятии. Одним прекрасным днём, в не близком 2012 году, руководитель поставил задачу: подумать над проблемой оптимизации затрат на транспортную логистику организации. Основная сфера деятел...

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

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

Компас команды Привет! Меня зовут Маша, я Scrum Master в ivi. Работаю с командами биллинга и веб-разработки и помогаю ребятам организовывать рабочие процессы так, чтобы не только эффективно достигать целей, которые ставит бизнес, но и получать удовольствие от того, что ты делаешь. В своих ...

«Техносерв» оптимизирует бизнес-процессы «Сахалин Энерджи» Компания «Техносерв», крупнейший российский системный интегратор, объявляет о завершении проекта по внедрению в нефтегазовой компании «Сахалин Энерджи» решения для мониторинга, анализа и оптимизации бизнес-процессов. Работая на базе технологии Process Mining, система позволя...

[Перевод] Система частиц в Core Animation. Рождественская история Всем привет! Рождество давно прошло, но после него у нас осталась занимательная история о том, как при помощи нечасто используемой возможности Core Animation можно создать пользователям праздничное настроение. Делюсь переводом статьи моего лондонского коллеги Алексиса. Р...

Геттеры/сеттеры и проблема с инкапсуляцией в Symfony коде Сравнительно недавно работаю с Symfony (чуть более года) и во всех проектах, что довелось поработать — сущности всегда создавались таким образом, что они содержали только приватные поля и голые сеттеры/геттеры к ним. В статьи будут рассуждения и примеры, почему такой подход...

[Перевод] Указатели в Python: в чём суть? Если вы когда-нибудь работали с такими низкоуровневыми языками, как С или С++, то наверняка слышали про указатели. Они позволяют сильно повышать эффективность разных кусков кода. Но также они могут запутывать новичков — и даже опытных разработчиков — и приводить к багам упр...

Happy Party или пара строк-воспоминаний о знакомстве с секционированием в PostgreSQL10 Предисловие или как возникла идея секционирования Начало истории здесь: Ты помнишь, как все начиналось. Все было впервые и вновь. После того, как почти все ресурсы для оптимизации запроса, на тот момент, были исчерпаны, встал вопрос — а что же дальше? Так и возникла идея о с...

И все-таки, почему Posit являются достойной альтернативой IEEE 754 Месяц Posit объявлен на Хабре открытым, а значит я не могу пройти мимо и проигнорировать обрушившуюся на них критику. В предыдущих сериях: Новый подход может помочь нам избавиться от вычислений с плавающей запятой Posit-арифметика: победа над floating point на его собственн...

OpenCV на STM32F7-Discovery Я один из разработчиков операционной системы Embox, и в этой статье я расскажу про то, как у меня получилось запустить OpenCV на плате STM32746G. Если вбить в поисковик что-то вроде "OpenCV on STM32 board", можно найти довольно много тех, кто интересуется использованием это...

Универсальный пул У нас есть ArrayPool для переиспользования массивов. Работает это так: взяли массив определенной длинны что то с ним поделали и положили обратно. Нужно это для больших объектов которые по логике программы долго не должны храниться. В предыдущей статье описана эта проблема. ...

Интеграция 18 банков и 9 торговых площадок друг с другом за месяц — особая разновидность рабочего ада 1 октября 2018 г. многие из нас ждали апокалипсиса. Но он не случился. Не знаю, как у остальных, а у меня точно была мотивация: если закупка не пройдёт, то больница не купит лекарств, детям в школах не купят творога и учебников. Я хотел сделать что-то работающее хотя бы на...

Единственный способ ускорения Android, без root С выходом новых операционных систем, компания Google смогла решить кучу проблем Android, что очень приблизило комфорт от использования данной системы к ios, однако это касается только Android Oreo и его приемников. Так можно хоть что-то сделать, в плане оптимизации общей отз...

Инвентаризация от И до Я. Считаем ИТ-активы На этом скриншоте результат работы Quest KACE относительно компьютера бухгалтера одной из российских компаний. Выяснилось, что часть ПО установлена, но не используется. Здесь приведены цены, по которым это ПО закупалось. В вашем случае цена на ПО может отличаться, здесь ва...

[Перевод] «Алгебраические эффекты» человеческим языком Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех. Вы слышали об алгебраических эффектах? Мои п...

К вопросу о сдвигах, знаках и быстродействии МК «Найди всему причину и ты многое поймешь» Возможно, мои постоянные читатели (ну не может быть, чтобы их не было) помнят, что я как то в своем посте недоумевал по поводу того, что при описании регистров внешних устройств используется атрибут unsigned. В комментариях было пред...

[Перевод] Мысли о современном C++ и игровой разработке Новый год для игровых разработчиков начался с волны критики, обрушившейся в адрес комитета по стандартизации C++ после публикации Араса Пранкевичуса «Жалобы по поводу современного C++». Возник серьезный вопрос: действительно ли комитет стандартов потерял связь с реальностью,...

Парадокс Питона (The Python Paradox) В последнем выпуске подкаста "Цинковый прод" помимо всего прочего обсуждался так называемый парадокс Питона (The Python Paradox). Как ни странно, на Хабре нет практически ни одного упоминания об этом парадоксе. При том, что, несмотря на свою простоту, мысль очень интересная...

AERODISK Engine: Катастрофоустойчивость. Часть 1 Привет, читатели хабра! Темой этой статьи будет реализация средств катастрофоустойчивости в системах хранения AERODISK Engine. Изначально мы хотели написать в одной статье про оба средства: репликацию и метрокластер, но, к сожалению, статья получилась слишком большой, поэто...

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

[Из песочницы] Замена Punto Switcher, раскладки Бирмана с помощью скрипта на autohotkey В данной статье я не предлагаю полностью заменить Punto Switcher (Спасибо Сергею Москалёву за данную программу), а только в очень ограниченном функционале. Довольно давно пользуюсь программой Punto Switcher, но не в целях автопереключения, а как переключатель по левому и пра...

Сетевой мониторинг и выявления аномальной сетевой активности с помощью решений Flowmon Networks В последнее время в Интернете можно найти огромное кол-во материалов по теме анализа трафика на периметре сети. При этом все почему-то совершенно забыли об анализе локального трафика, который является не менее важным. Данная статья как раз и посещена этой теме. На примере ...

[Из песочницы] Оптимизация скриптов с Webpack SplitChunksPlugin В этой статье я бы хотел поделиться своим опытом по разбиению бандлов для многостраничного сайта с помощью Webpack 4. Cначала создадим для каждой страницы свою точку входа. Рассмотрим на примере 4 страниц: const path = require("path"); const PATHS = { src: path...

[Перевод] GitLab 11.7 поставляется с Releases, Multi-level Child Epics и реестром NPM Управление релизами стало намного проще GitLab 11.7 выпускает Releases в GitLab Core. Теперь у пользователей есть снэпшоты релиза, включающие не только исходный код, но и все связанные артефакты. Больше не надо вручную собирать исходный код, выходные данные сборки и прочие ...

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

Google добавила в Google Assistant поддержку быстрых команд В Google Assistant появилась поддержка быстрых команд Голосовые ассистенты удобны всем. Они управляют умным домом, ищут за нас информацию в интернете и выполняют другие поручения вроде установки будильника или напоминаний. Однако почему-то мало кто вспоминает о том, что поль...

Эффективное привлечение пользователей с оптимизацией по CPO. Кейс Rocket10 и OZON На рынке электронной торговли существует тесная связь между потребителями с одной стороны и продавцами или ритейлерами с другой. Как найти своего покупателя и почему выстраивание партнерских отношений жизненно важно в продвижении интернет-магазина, мы расскажем на примере ке...

Смартфоны Samsung в России теперь можно использовать как платежные терминалы Samsung Pay позволяет не только платить, но и принимать платежи. Правда, не всем Бесконтактной оплатой уже никого не удивить. Несмотря на то что до ума довести эту технологию пока удалось только Apple, миллионы людей с удовольствием оплачивают покупки при помощи своих Androi...

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

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

[Перевод] Деревья квадрантов и распознавание коллизий Эта неделя была короткой, в понедельник и вторник я продолжал работать над системой 2D-освещения. Остальное время я потратил на реализацию деревьев квадрантов (quadtree). В этой статье я поделюсь своей реализацией и мыслями, возникшими в процессе её проектирования. Во-пер...

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

Умный сервис кэша на базе ZeroMQ и Tarantool Руслан Ароматов, главный разработчик, МКБ Привет, Хабр! Я работаю бэкенд-разработчиком в Московском кредитном банке, и за время работы у меня накопился некоторый опыт, которым я хотел бы поделиться с сообществом. Сегодня я расскажу, как мы писали свой собственный сервис к...

Как улучшить защиту периметра сети? Практические рекомендации для Check Point и не только Мы продолжаем цикл статей, посвященных оптимизации security настроек средств защиты периметра сети (NGFW). Хочу сразу заметить, что приведенные рекомендации подходят не только для владельцев Check Point. По сути, если разобраться, угрозы одинаковы для всех, просто каждый N...

Собеседуем работодателя или как не уволиться в первый месяц Первый рабочий день и… о боже что я тут делаю?! Нет, ну серьезно кто вообще так пишет код? Дружный коллектив? Мои коллеги вообще заметили, что я вышел на работу? Древний SVN, шумный опен спейс и «типа SCRUM» и это лишь малая часть из тех «приятных» сюрпризов которае вас м...

[Из песочницы] Планирование в Go: Часть I — Планировщик ОС Привет, Хабр! Представляю вашему вниманию перевод статьи «Scheduling In Go: Part I — OS Scheduler» автора Билла Кеннеди, о том, как работает внутренний планировщик Go. Это первый пост в серии из трех частей, который даст представление о механике и семантике, лежащей в осно...

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

Драйвер шагового двигателя "под микроскопом" на примере DRV8825 (PWM, Overshoot, Slow Decay, Fast Decay, Mixed Decay, SS34, пропуск шагов, ложные выводы, панацея и всё такое) Заранее прошу прощения, если рассуждения местами сумбурны, писал за один заход, но слишком много материала для одного раза. Также там есть опечатки.Описанное в статье даёт представление о работе не только DRV8825, но и драйверов двигателей вообще.Что из себя представляет DRV...

Как из домашнего ПК средствами виртуализации сохранить игровую систему Благодаря конкуренции и развитию НТП современные ПК позволяют выполнять множество простых и сложных задач одновременно, например играть и воспроизводить видео на ТВ, рендерить графику и читать новости в интернете, раздавая торренты параллельно, и т.д. и т.п. Многие идут даль...

[Перевод] Почему, зачем и когда нужно использовать ValueTask Этот перевод появился благодаря хорошему комментарию 0x1000000. В .NET Framework 4 появилось пространство System.Threading.Tasks, а с ним и класс Task. Этот тип и порождённый от него Task<TResult> долго дожидались, пока их признают стандартами в .NET в роли ключевых а...

[Из песочницы] Как я стал PMP и как это лучше не делать Я давно осознал, что делиться опытом — это полезно. Но только недавно я понял, что им можно делиться не только со знакомыми и близкими, но и со всеми. Поэтому, я хочу рассказать, как я шел к сертификации, почему я это делал и чем это закончилось. Читать дальше →

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

Ложные срабатывания в PVS-Studio: как глубока кроличья нора Наша команда оказывает быструю и эффективную поддержку клиентов. В поддержке принимают участие только программисты, так как вопросы нам тоже задают программисты и над многими из них приходится подумать. Хочется описать одно из недавних обращений в поддержку на тему ложного с...

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

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

Малый бизнес: автоматизировать или нет? На одной улице в соседних домах живут две женщины. Они не знакомы друг с другом, но их объединяет одна приятная вещь: обе готовят торты. Обе начали пытаться готовить на заказ в 2007 году. Одна имеет свой бизнес, не успевает раздавать заказы, открыла курсы и ищет себе постоян...

Habr Special #18 / Новые гаджеты Apple, полностью модульный смартфон, деревня программистов в Беларуси, феномен XY В этом выпуске: 00:38 — Новинки Apple: iPhone 11, Watch и бюджетный iPad для студентов. Добавляет ли профессиональности приставка Pro? 08:28 — «Честнофон» Fairphone — полностью модульный гаджет, у которого можно заменить буквально все части. 13:15 — «Медленная мода» тормо...

[Из песочницы] Лучшие практики React и советы, которые каждый разработчик должен знать. Часть 1 Привет, Хабр! Представляю вашему вниманию перевод статьи «React Best Practices & Tips Every React Developer Should Know Pt.1» автора Alex Devero. React — одна из самых популярных библиотек для построения интерактивных пользовательских интерфейсов. В этой статье я пока...

Победа на PHDays 9. Делимся лайфхаками в трёх частях. Часть 1 Всем привет! Меня зовут Виталий Малкин. Я руководитель отдела анализа защищённости компании «Информзащита» и по совместительству капитан команды True0xA3. Этой статьей мы начинаем цикл из 3-х материалов, посвящённых нашему выступлению на PHDays IX Standoff. В этой статье мы ...

[Из песочницы] Фантазии на тему метаклассов в C# Программистам вроде меня, которые пришли в C# с большим опытом работы в Delphi, часто не хватает того, что в Delphi принято называть ссылками на класс (class reference), а в теоретических работах – метаклассами. Я несколько раз натыкался в разных форумах на обсуждение, прохо...

Как работает сжатие в объектно-ориентированной архитектуре памяти Команда инженеров из MIT разработала объектно-ориентированную иерархию памяти для более эффективной работы с данными. В статье разбираемся с тем, как она устроена. Читать дальше →

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

[Перевод] Чем закончилась история с бомжом-программистом Решил разузнать из первоисточников как начиналась, развивалась и закончилась история про то, как программист обучал бомжа. Я даже пролистал всю группу в FB с логами проекта (там чересчур много деталей для поста на Хабре). Самые иллюстрирующие моменты есть в трёх статьях на M...

[Перевод] Создание приложения с использованием Styled-Components в Vue.js Привет, Хабр! На днях наткнулся на одну очень интересную статью на португальском. К счастью, удалось найти её английскую версию. Предлагаю вашему вниманию перевод на русский. Другие мои переводы вы можете найти на мой странице на хабре. Ссылка на оригинал: португальский, ан...

Часть 1. QInst: лучше день потерять, потом за пять минут долететь (пишем инструментацию тривиально) В предыдущей части я приблизительно описал, как можно загрузить eBPF функции из ELF-файла. Теперь пришла пора перейти от фэнтези к советским мультикам, и следуя мудрому совету, потратив один раз некоторое количество усилий, сделать универсальный инструмент инструментации (ил...

[Перевод] API IntersectionObserver и ленивая загрузка изображений Использование ленивой загрузки изображений для улучшения производительности веб-проектов — востребованная техника оптимизации. Всё дело в том, что изображения — это «тяжёлые» ресурсы, которыми переполнены современные веб-сайты. Мы уже кое-что об этом публиковали. Здесь можно...

Как передать файлы с Android-устройства на Mac Передать файлы с Android на MacOS и обратно проще, чем кажется Одна из многих замечательных вещей в Android заключается в том, что вы можете легко копировать и переносить файлы с настольного ПК или ноутбука, просто подключив свой телефон через USB. К сожалению, все не так пр...

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

Повышаем продуктивность на GitHub: советы для новичков и не только От переводчика: публикуем для вас статью Даррена Барнса, который делится своим опытом работы с GitHub. Его советы будут полезны, в первую очередь, новичкам. Возможно, и опытный кодер найдет что-то для себя. GitHub — отличный сервис, которым пользуются пусть не все, но ...

Анализ производительности запросов в ClickHouse. Доклад Яндекса Что делать, если ваш запрос к базе выполняется недостаточно быстро? Как узнать, оптимально ли запрос использует вычислительные ресурсы или его можно ускорить? На последней конференции HighLoad++ в Москве я рассказал об интроспекции производительности запросов — и о том, что ...

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

WearMouse, аэромышь для часов Wear OS Здравствуй, Хабр! Хочу предложить вашему вниманию немного магии для часов на Wear OS. Некоторое время назад, незадолго до выпуска Android 9.0, был представлен новый публичный API, позволяющий использовать устройства на Android в качестве Bluetooth-устройств ввода (мышь, кл...

Интервью с Zabbix: 12 откровенных ответов В IT есть такое суеверие: «Работает, не трогай». Это можно сказать и про нашу систему мониторинга. В Southbridge мы используем Zabbix — когда мы его выбирали, он был очень крут. И, по сути, альтернатив у него не было. Со временем наша экосистема обросла инструкциями, дополн...

[Из песочницы] Учимся стандарту проектирования — Entity Relationship Здравствуйте. Данная статья посвящена одной из самых популярных, а также и многим знакомой, модели проектирования — ER(Entity Relationship), которая была предложена учёным, в области информатики — Питером Ченом, в 1976 году. По ходу статьи простым языком на простых примера...

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

Физические безумства Добрый день, уважаемый читатель! Я, начинающий Java-программист, долгое время не мог освоиться с библиотекой Box2D. Во-первых, из-за того, что она написана для C++, и по ней нет документации, а синтаксис Си я не знаю. Во-вторых, из-за того, что подробные уроки по этой библио...

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

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

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

[Перевод] Как работает kubectl exec? Прим. перев.: автор статьи — Erkan Erol, инженер из SAP — делится своим изучением механизмов функционирования команды kubectl exec, столь привычной для всех, кто работает с Kubernetes. Весь алгоритм он сопровождает листингами исходного кода Kubernetes (и связанных проектов),...

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

[Из песочницы] Как найти лучшую локацию для бизнеса? Лайфхак Всем привет! Меня зовут Андрей Киселев, я основатель компании «ЖИШИ СУШИ». Любой бизнес успешней в местах с хорошей проходимостью, но как найти это место? Рассказываю на личном опыте в статье как сравнивать локации онлайн. Есть три способа оценки проходимости: визуальн...

[Перевод] Как с Prometheus собирать метрики, не искаженные привязкой ко времени Многие сетевые приложения состоят из веб-сервера, обрабатывающего трафик в реальном времени, и дополнительного обработчика, запускаемого в фоне асинхронно. Есть множество отличных советов по проверке состояния трафика да и сообщество не перестает разрабатывать инструменты в...

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

[Из песочницы] Своё интернет радио Многие из нас по утрам любят слушать радио. И вот в одно прекрасное утро я осознал, что не хочу слушать местные ФМ радиостанции. Не интересно. Но привычка оказалась вредной. И я решил заменить ФМ-приемник интернет приемником. Быстренько купил детали на Алиэкспресс и собрал и...

Работа с callbacks в React За время свой работы, я периодически сталкивался с тем, что разработчики не всегда четко представляют, каким образом работает механизм передачи данных через props, в частности колбеков, и почему их PureComponents обновляется так часто. Поэтому в данной статье мы разберемся,...

[Перевод] Как втиснуть 16 ГБ памяти на материнскую плату, которая не поддерживает такой объём Некоторое время назад я поставил на один из своих компьютеров 16 ГБ памяти. На нём стоит материнка Foxconn P55MX с Core i5 750. Можно было бы и заменить этот старый CPU, но он он пока нормально работает и делает всё, что мне нужно. Вот что интересно. Материнская плата офици...

Peloton: следующая Apple или еще один скам? На Хабре о Peloton пока что знают только по короткой новостной заметке. А зря. Кейс тут очень интересный. Эта компания делает велосипеды с встроенным онлайн-стримингом. Казалось бы, что за бред (и что может быть проще)? Тем не менее она уже оценивается более чем в $9 млрд,...

Век живи — век учись. Часть 1. Школа и профориентация У меня есть знакомый из Гренобля, сын русских эмигрантов, — после школы (collège+lycée) он переехал в Бордо и устроился работать в порт, через год перешёл в цветочный магазин SMM-щиком, ещё через год окончил короткие курсы и стал кем-то вроде референта руководителя. После дв...

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

Обзор cPanel — веб-консоли для управления сайтами и хостингом Продолжаем серию постов о панелях управления хостингом и сайтами (веб-консолях), которые RUVDS предлагает своим клиентам. Сегодня мы рассмотрим одну из самых популярных панелей cPanel, лицензию на которую можно получить бесплатно на 2 недели, при покупке виртуального сервера...

JS. Proxy. Подводный камень, о котором нужно знать Эта статья будет интересна тем кто использует Proxy, для реактивности или рефлексии. Поведение JS методов, нам хорошо знакома если мы просто используем их в рамках объекта. Если метод передается через свойство другому объект, то он работает с тем this, который определен в р...

Процессоры Intel Core i9-9900KS и Cascade Lake-X выйдут в октябре Выход процессора Intel Core i9-9900KS, который, по словам компании, будет работать на частоте 5,0 ГГц, ожидается уже в октябре. Об этом заявили вице-президент Intel по маркетингу Джон Карвилл (Jon Carvill) и специалист по оптимизации быстродействия Райан Шраут (Ryan Shrout) ...

Как устроен поиск Яндекс.Маркета и что будет, если упадёт один из серверов Привет, меня зовут Евгений. Я работаю в инфраструктуре поиска Яндекс.Маркета. Хочу рассказать сообществу Хабра о внутренней кухне Маркета – а рассказать есть что. Прежде всего, как устроен поиск Маркета, процессы и архитектура. Как мы справляемся с внештатными ситуациями: чт...

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

[Перевод] Монорепозитории: пожалуйста не надо От переводчика: Привет, Хабр! Да, это очередная статья о преимуществах и недостатках монорепозиториев. Собирался написать свою статью о том, как мы используем монорепозиторий, как мы переходили с maven на bazel и что из этого получилось. Но пока собирался с мыслями, вышла от...

YIMP — Панель управления для Yii 2 на Bootstrap 4 Уверен, что у многих разработчиков, предпочитающих фреймворки готовым CMS, есть в запасе решение на Bootstrap или его аналогах, которое используется в для создания интерфейсов админок и прочих бэк-офисов. И у меня такое есть. Успешно работает много лет, но безнадежно устарел...

Лучшие альтернативы Твиттеру Может, Твиттер не так уж и необходим? Важно, чтобы все люди в обществе высказывали свое мнение. Но они, похоже, уже не могут сделать это в Twitter. Только за последний год мы наблюдали массу скандалов, когда различные активисты и прочие странные личности набрасывались на люд...

[Из песочницы] Работаем с коботом Dobot M1 Год назад на Хабре выходил обзор настольного робота Dobot Magician. В этой статье я предлагаю оценить его старшего брата Dobot M1 в действии. Также я попытаюсь объяснить, почему для своего проекта выбрал именно данную модель, опишу процесс разработки демки в Qt/c++, а также ...

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

[Перевод] Заблуждения программистов о Unix-времени Приношу извинения Патрику МакКензи. Вчера Дэнни поинтересовался любопытными фактами о Unix-времени, а я вспомнил, что иногда оно работает совершенно неинтуитивно. Вот эти три факта кажутся в высшей степени разумными и логичными, не так ли? Время Unix — это количество сек...

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

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

CHUWI UBook Pro готов к продаже Официально представлен планшетный компьютер CHUWI UBook Pro, который работает на 8 гигабайта оперативной памяти и 256 гигабайт встроенной памяти. Этого предостаточно, чтобы вы могли играть в игры, запускать разного рода контент для работы или развлечений, плюс у новинки боль...

[Перевод] Распаковка: загрузчик Dridex Доброй ночи, друзья! Менее чем через месяц у нас стартует курс «Реверс-инжиниринг», в связи с этим традиционно делимся полезным материалом по теме. У некоторых читателей были проблемы с распаковкой начального загрузчика для Dridex (того, что был сброшен макросом), поэтому с...

Kafka и микросервисы: обзор Всем привет. В этой статье я расскажу, почему мы в Авито девять месяцев назад выбрали Kafka, и что она из себя представляет. Поделюсь одним из кейсов использования — брокер сообщений. И напоследок поговорим о том, какие плюсы мы получили от применения подхода Kafka as a Ser...

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

Google удалось вывести из-под налогообложения $22,7 млрд через Ирландию и Бермуды Изображение: Unsplash Журналисты Reuters выяснили, что использование схемы налоговой оптимизации под названием «двойная ирландская с голландским сэндвичем» позволило Google в 2017 году вывести из-под налогообложения почти $23 млрд. Читать дальше →

Беспощадная автоматизация. Director's Cut Я хочу рассказать о своем опыте ускорения автоматизации в команде программистов, и о том, какие приемы мы применили на практике, и что из этого получилось. Начальные условия Наш эксперимент по ускорению работы программистов мы проводили в следующих условиях: это было террит...

[Из песочницы] 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 ...

Топологическая оптимизация двигателя Стирлинга. №2. Любой мог додуматься, но не суть.Не суть, идея до смешного проста, но имеет отношение к топологической оптимизации====quote====Если говорить сухим академическим языком, топологическая оптимизация – это процесс изменения конструкции, структуры детали и ее варьирующихся параме...

Преимущества анализа приложений 7 уровня в межсетевых экранах. Часть 1. Основы Почему появилась эта статья? Неоднократно приходил к коллегам-безопасникам, которые пользуются межсетевым экраном нового поколения и видел, что они продолжают писать правила по номерам портов. На мое предложение перейти писать по имени приложений, слышал «А вдруг так не зар...

[Перевод] Исследование глубин аннотаций типов в Python. Часть 1 C 2014 года, когда в Python появилась поддержка аннотаций типов, программисты работают над их внедрением в свой код. Автор материала, первую часть перевода которого мы публикуем сегодня, говорит, что по её оценке, довольно смелой, сейчас аннотации типов (иногда их называют «...

4 приложения-навигатора для Android в помощь автомобилистам Можно использовать телефон как навигатор в автомобиле Около 10 лет назад у многих в машине была бумажная карта. Потом такие карты стали заменять навигационными устройствами, которые отображают маршрут, сообщают дорогу и предупреждают о дорожных работах и радарах. Они удобны,...

Большое интервью с Клиффом Кликом — отцом JIT-компиляции в Java Клифф Клик — CTO компании Cratus (IoT сенсоры для улучшения процессов), основатель и сооснователь нескольких стартапов (включая Rocket Realtime School, Neurensic и H2O.ai) с несколькими успешными экзитами. Клифф написал свой первый компилятор в 15 лет (Pascal для TRS Z-80)! ...

Оптимизация сборки мусора в высоконагруженном .NET сервисе Ежедневно в сервисе Pyrus работают десятки тысяч сотрудников из нескольких тысяч организаций по всему миру. Отзывчивость сервиса (скорость обработки запросов) мы считаем важным конкурентным преимуществом, так как она напрямую влияет на впечатление пользователей. Ключевой мет...

Пользователи жалуются, что iOS 13.2 выбивает приложения из памяти В iOS 13 приложения работали корректно, в iOS 13.2 все поломалось Все больше пользователей iPhone и iPad жалуются на чрезмерное потребление оперативной памяти в iOS 13 и iPadOS 13, что приводит к частой перезагрузке таких приложений, как Safari, YouTube и «Почта» вскоре посл...

JSConf Budapest 2019 Привет, Хабр! Меня зовут Дмитрий Татаринцев, я работаю frontend-разработчиком в FunCorp. В конце сентября я посетил JSConf в Будапеште. Это одна из серии комьюнити-конференций, проходящих по всему миру. В своем обзоре я кратко расскажу про организацию и более подробно — пр...

Есть ли вирусы под Мас? Есть ли «вирусы» под Mac? Если совсем коротко, то скорее да, чем нет. Хотите узнать, почему такой немного странный ответ? Читать дальше →

[Перевод] IntelliSense для C++ в Visual Studio теперь работает на основе примеров в вашем коде С тех пор, как мы анонсировали IntelliSense for templates, от вас поступили отличные предложения. Одно очень популярное предложение состояло в том, чтобы Template Bar автоматически заполнял вариант на основе примеров в коде. В Visual Studio 2019 версии 16.1 Preview 2 мы доба...

[Перевод] Операционная система на Rust. Страничная память: продвинутый уровень В этой статье объясняется, как ядру операционной системы получить доступ к фреймам физической памяти. Изучим функцию для преобразования виртуальных адресов в физические. Также разберёмся, как создавать новые сопоставления в таблицах страниц. Этот блог выложен на GitHub. Есл...

Делаем процесс разработки тяжеловесного программного обеспечения под микроконтроллеры более удобным (нет) Сейчас уже никого не удивить микроконтроллерами с энергонезависимой (чаще всего Flash) памятью объемом 512 килобайт и более. Их стоимость постепенно снижается, а доступность напротив, растет. Наличие такого объема энергонезависимой памяти дает возможность писать «тяжелые» по...

Осторожно — Docker контейнер Redis запускает криптомайнер Это будет очень короткая статья о человеческой жадности и предупреждение о надобности проверять любой опен- и не опен-сорс. Сегодня утром я случайно и с удивлением увидел на графиках моего хостинга 100% загруженность процессора. При том, что он не минимальной конфигурации, ...

О применении параметрических методов спектрального оценивания в радиолокации — метод MUSIC. Дополнение к статье Попалась мне неплохая статья, про метод спектрального оценивания, который отлично подходит для короткого сигнала из суммы слабозашумленных гармоник. (-копия) Возможно, мои комментарии помогут читателю вникнуть в суть метода. Что немного огорчило, так это не до конца реал...

Как я наводил порядок в проекте, где лес прямых рук (настройки tslint, prettier, etc) И снова здравствуйте. На связи Омельницкий Сергей. Сегодня я поделюсь с Вами одной из своих головных болей, а именно — что делать, когда проект пишут много разноуровневых программистов на примере angular приложения. Так повелось, что я долгое время работал только со своей к...

[Из песочницы] Невидимый деплой монолитного приложения в продакшн на AWS. Личный опыт Я – Lead DevOps Engineer в международной SaaS-компании. Мы разрабатываем платформу для совместной работы кроссфункциональных команд. В статье поделюсь тем, как наша DevOps-команда решила проблему ежедневных серверных релизов монолитного stateful-приложения и сделала их автом...

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

[Из песочницы] Могут ли рекламные агентства убивать бизнес в начале пути Существует большое количество рекламных объявлений от SMM агентств, которые обещают поток клиентов за маленький бюджет при минимальных рисках. И вы задумывались о том, чтобы заказать услуги рекламного агентства для увеличения количество клиентов. Что лучше? Настроить реклам...

[Перевод] Как работать вне офиса и не сойти с ума В последние годы полностью удаленные компании, такие как GitLab, Zapier и InVision, доказали, что культура удалённой работы — это не просто привилегия, но и явное преимущество для бизнеса. И развитие технологий лишь ускоряет этот переход. Мы можем мгновенно общаться в Slack ...

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

«ТехноТекст», кульминация: приближается финал конкурса авторов Приближается конец осени и года. Заканчивается и второй конкурс техноавторов. 28 сентября на Хабрасеминаре мы наградим победителей «ТехноТекста» — 2019. От авторов больше ничего не зависит — заявки больше не принимаются, над статьями работает жюри. И вот с ними и со спонсора...

Завершение недорогого проекта «Мини-пекарня»: последние штрихи игровой машины В завершающем материале цикла, посвященного недорогому игровому ПК форм-фактора mini-ITX, созданному в кратчайшие сроки при ограниченном бюджете, мы поговорим о финальных штрихах кастомизации, оптимизации системы охлаждения, разгоне комплектующих и сравнении быстродействия с...

[Перевод] «Современный» C++: сеанс плача с причитаниями Здесь будет длиннющая стена текста, с типа случайными мыслями. Основные идеи: В C++ очень важно время компиляции, Производительность сборки без оптимизаций тоже важна, Когнитивная нагрузка ещё важней. Вот по этому пункту особо распространяться не буду, но если язык программ...

Post mortem: cледи за middleware или как мы сломали комментарии Привет! У нас не очень приятная новость: мы допустили ошибку в мобильной версии, которая могла вас побеспокоить все праздничные дни. Суть проблемы: человек отправляет комментарий к посту, видит его со своим логином и уходит со страницы, но если обновить страницу, этот комме...

Процессоры сигналов изображения ARM Mali-C52 и Mali-C32 предназначены для беспилотных транспортных средств, роботов, домашних умных устройств и камер видеонаблюдения Компания ARM представила процессоры сигналов изображения (ISP) Mali-C52 и Mali-C32. По словам разработчика, они обеспечивают «лучшее в своем классе качество изображения». Для них доступен «полный пакет программного обеспечения и полный набор инструмент...

PG12: Дюжина патчей от Postgres Professional Приятно видеть знакомые фамилии в списке Acknowledgments официального релиза PostgreSQL 12. Мы решили свести вместе попавшие в релиз новшества и некоторые багфиксы, над которыми трудились наши разработчики. 1. Поддержка JSONPath (В Release Notes это звучит как Add support f...

Samsung представила Galaxy A80 с поворотным модулем камеры за 50 000 рублей Компания Samsung разошлась не на шутку. И речь не только о количестве анонсов новых смартфонов, но и об их качестве. Вчера производитель показал оригинальный Galaxy A80 с выезжающей поворотной камерой. Это только первый анонс, а полноценная презентация намечена на май. В ус...

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8 Состоялся очередной бета-релиз AvaloniaUI. В релиз вошло большое количество багфиксов, оптимизаций производительности и ряд новых возможностей. Что нового, можно узнать под катом. Читать дальше →

Сравнение производительности виртуальных машин 6 облачных платформ: Selectel, MCS, Я.Облако, Google Cloud, AWS и Azure Давеча на глаза мне тут попалось аж две статьи из одного корпоративного блога, касающиеся облаков — одна про Kubernetes, а во второй была попытка замера производительности по методике, которая мне показалась сомнительной (спойлер — и не зря). Про K8s мне тоже есть что сказат...

[Из песочницы] На одной асимптотике далеко не уедешь… Любители посоревноваться в алгоритмах часто говорят об асимптотике того или иного решения задачи. При этом нередко можно встретить высказывания, что, мол, «вот этот» алгоритм работает за O(n), а «вон тот»  – за O(n·log(n)), значит первый однозначно быстрее и, следовательно,...

Фриланс-вебдев — как и с кем НЕ стоит работать КДПВ взята отсюда Часто слышу истории вида "пробовал фрилансить — не понравилось" и встречаю много заблуждений по поводу этого типа работ, потому что люди просто начали "не с той стороны". Постараюсь исправить ситуацию этим постом. Сразу оговорюсь — большая часть того, что з...

Опыт перевода большого проекта с Flow на TypeScript JavaScript – это один из языков с динамической типизацией. Такие языки удобны для быстрой разработки приложений, но когда несколько команд берутся за разработку одного большого проекта, лучше с самого начала выбрать один из инструментов для проверки типов. Можно начать р...

Как подружить PLUTO и HDSDR Не так давно импульсивно купил симпатичный SDR трансивер для детей и юношества – ADALM PLUTO. К моему сожалению он работает с кучей софта под LINUX, а вот мой любимый HDSDR его не поддерживает. Недолго думая стал разбираться с этой проблемой и вот что из этого получилось:...

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

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

[Перевод] 13 приёмов работы с npm, которые помогают экономить время Каждый день миллионы разработчиков, создавая свои JavaScript-приложения, обращаются к npm (или к Yarn). Выполнение команд наподобие npm init или npx create-react-app стало привычным способом начала работы над практически любым JavaScript-проектом. Это может быть сервер, клие...

Беспроводной датчик температуры, влажности и атмосферного давления на nRF52832 Приветствую всех читателей Habr! Сегодняшняя статья будет о датчике температуры, влажности и атмосферного давления c длительным скором работы от одной батарейки. Датчик работает на микроконтролере nRF52832 (даташит). Для получения температуры, влажности и атмосферного давлен...

Обучающие настольные игры для программистов На рынке труда в Java-разработке наблюдается интересная ситуация. Активных резюме разработчиков больше 100 000 и на одно резюме приходится одна вакансия. В то же время работодатели и кадровые агентства жалуются на недостаток кадров, и, несмотря на тысячи резюме, найти хороше...

Осторожно — ГАЗ! или Как мы делали негазированные смарт-контракты Блокчейн и смарт-контракты все еще остаются горячей темой среди разработчиков и технических специалистов, много исследований и рассуждений об их будущем и о том, куда это все движется и приведет нас. У нас в Waves Platform свой взгляд на то, какими должны быть смарт-контрак...

Подключение к Windows по SSH как в Linux Меня всегда удручало подключение к Windows машинам. Нет, я не противник и не сторонник Microsoft и их продуктов. Каждый продукт существует для своей цели, но речь не об этом. Для меня всегда было мучительно больно подключаться к серверам с Windows, потому что эти подключения...

Gestalt-тестирование: новый подход к оптимизации почтовых рассылок на основе байесовской теории и машинного обучения Мультивариантное (A/B/N, или сплит) тестирование – самый популярный способ тестирования почтовых рассылок. Этот инструмент доказал свою эффективность, но у него есть недостатки, связанные в первую очередь с тем, что тестирование и основная отправка разнесены во времени. ...

3D-печать керамикой: преимущества и сферы применения | Технология Admaflex (часть 1). Сегодня мы начинаем цикл статей о керамической 3D-печати. Расскажем о преимуществах и сферах применения 3D-печати керамикой, особенностях технологического процесса, оборудовании и материалах для печати. <br /> <br>Керамика - материал будущего<br /> Почему к...

[Перевод] Тайная история Donkey Kong: от аркадных автоматов до NES Donkey Kong — это, вероятно, один из величайших аутсайдеров игрового мира. Он нарушил все правила, потому что его создатель, теперь уже легендарный Сигэру Миямото, этих правил не знал. Он не только стал началом одного из ярчайших умов отрасли видеоигр, но и зародил жанр «бе...

[Перевод] PHP GR8: повысит ли JIT производительность PHP 8 PHP — один из основных языков разработки в Badoo. В наших дата-центрах тысячи процессорных ядер заняты выполнением миллионов строк кода на PHP. Мы внимательно следим за новинками и активно ищем пути улучшения производительности, так как на наших объёмах даже небольшая опти...

[Перевод] Детальный разбор AWS Lambda Перевод статьи подготовлен специально для студентов курса «Облачные сервисы». Интересно развиваться в данном направлении? Смотрите мастер-класс Егора Зуева (TeamLead в компании InBit) «AWS EC2 сервис» и присоединяйтесь к ближайшей группе курса: старт 26 сентября. Все больш...

[Перевод] Что раздувает память в Ruby? У нас в Phusion работает простой многопоточный HTTP-прокси на Ruby (раздаёт пакеты DEB и RPM). Я видел на нём потребление памяти 1,3 ГБ. Но это безумие для stateless-процесса… Вопрос: Что это? Ответ: Использование памяти процессом Ruby с течением времени! Оказывается, я н...

[Перевод] Big O Примечание. Сокращенный перевод, скорее пересказ своими словами. UPD: как отметили в комментариях, примеры не идеальны. Автор не ищет лучшее решение задачи, его цель объяснить сложность алгоритмов «на пальцах». Big O нотация нужна для описания сложности алгоритмов. Для этог...

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