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

[Перевод] JDK 9/JEP 280: конкатенация строк никогда больше не будет прежней И снова здравствуйте. Как мы уже писали, на следующей неделе стартует новая группа обучения по курсу «Разработчик Java», по устоявшейся традиции делимся с вами переводом интересного материала по теме. Начиная с JDK 9 конкатенация строк претерпела значительные изменения. JE...

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

Как запустить java-проект на shell-раннере при пуше в репозиторий GitLab’а Меня зовут Иван Сидоренко, я инженер по тестированию в компании Digital Design. Передо мной стояла задача — внедрить запуск автотестов, написанных на Java Selenium. Я новичок в CI/CD, поэтому столкнулся со множеством проблем. Подробных инструкций в интернете по этой задаче ...

[Перевод] Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 2 — Компиляция с Emscripten Список переведённых частей серии: Приготовления Компиляция с Emscripten (вы тут) Начиная с этой части, материал будет посложнее, так что не стесняйтесь гуглить по ходу чтения, если не понимаете, что происходит. К тому же я постараюсь задокументировать решение возможных...

[Из песочницы] uJVM: платформа для запуска Java-приложений на микроконтроллерах (MCU) Добрый день, уважаемые хабровчане. В этом цикле статей я попытаюсь рассказать Вам о Java Virtual Machine и запуске Java программ на микроконтроллерах. Тема достаточно спорная: Зачем Java на микроконтроллерах, где и так мало ресурсов? Лучше нативного кода написаного на чистом...

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

[recovery mode] REST страсти по 200 Давно я хотел написать эту статью. Все думал — с какой стороны зайти правильнее? Но, вдруг, недавно, на Хабре появилась подобная статья, которая вызвала бурю в стакане. Больше всего меня удивил тот простой факт, что статью начали вбивать в минуса, хотя она даже не декларир...

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

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

Атакуем Joker 2019 полностью: как прошла самая крупная Java-конференция в России В октябре я далеко не впервые загрузился в самолет и отправился из далекого Иркутска в направлении Санкт-Петербурга. На Java-конференциях JUG Ru Group я оказывался и раньше, но всё равно не ожидал, что в этот раз будет побит рекорд, и в «Экспофоруме» соберутся более двух тыс...

Maven-путь построения Go проектов Сначала небольшая предыстория. В начале 2010-х, я сделал небольшую утилиту-конвертер для BIN файлов эмулятора БК-0010 в WAV файлы. Утилита была написана на Python с целью максимальной переносимости, работала без проблем и я на какое то время забыл о ней. Но в 2016м появился ...

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

Поднимаем производительность SSD c колен, куда нажимать и зачем На самом деле, речь сегодня пойдёт не только о бывших в использование какое-либо время накопителях, ведь проблема низкого быстродействия может затронуть даже только что принесённый из магазина SSD. Конечно, физику не обманешь – со временем все твердотельные накопители будут ...

Инфраструктура сборки проекта с docker На Хабре уже есть материалы про то, как настроить docker-контейнер для компиляции проекта. Например, Использование Docker для сборки и запуска проекта на C++. В этой статье, как и в предыдущей будет рассмотрен вопрос сборки проекта, но здесь я бы хотел выйти за рамки туториа...

[Перевод] Анализ TSDB в Prometheus 2 База данных временных рядов (TSDB, time series database) в Prometheus 2 – это отличный пример инженерного решения, которое предлагает серьёзные улучшения в сравнении с хранилищем v2 в Prometheus 1 в плане скорости накопления данных и выполнения запросов, эффективности испо...

Подробно о dynamic: подковерные игры компилятора, утечка памяти, нюансы производительности Прелюдия Рассмотрим следующий код: //Any native COM object var comType = Type.GetTypeFromCLSID(new Guid("E13B6688-3F39-11D0-96F6-00A0C9191601")); while (true) { dynamic com = Activator.CreateInstance(comType); //do some work Marshal.FinalReleaseComObject(com...

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

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

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

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

Компиляция программ с помощью из Notepad++ Компиляция программ с помощью Notepad++ Цель: Научиться компилировать программы из командной строки. Научиться компилировать из текстового редактора Notepad++, создавать скрипты и макросы, устанавливать системные переменные. Терминология Читать дальше →

Проверка проекта CDK с помощью статического анализатора IntelliJ IDEA Я решил потестировать статический анализатор Java-кода IntelliJ IDEA и с его помощью проверил проект The Chemistry Development Kit. Здесь я приведу некоторые ошибки, которые я нашёл. Думаю, что часть из них характерна для Java-программ в целом, поэтому могут быть интересны. ...

[Из песочницы] Мой опыт администрирования IBM DB2 Express-C при использовании с 1C: Предприятием Довелось работать с IBM DB2. И на 1С, и сервер на Django использовал эту СУБД одно время, OLAP запросы довольно шустро обрабатывал (правда, требовалась ручная настройка индексов, ну и веб-сервера, конечно, чтобы отклик был в пределах 2 секунд). Году в 2015 подготовил эту неб...

[Из песочницы] Python + Pyside2 или просто «Калькулятор» Привет, Хабр! Меня зовут Саша. Я Junior разработчик. Работаю тестировщиком ПО. В основном я пишу тесты при помощи Python+Selenium, но Python стал настолько интересен, что мне захотелось углубиться в него и выучить как можно больше фреймворков! Я захотел написать десктопное ...

GOSTIM: P2P F2F E2EE IM за один вечер с ГОСТ-криптографией Будучи разработчиком PyGOST библиотеки (ГОСТовые криптографические примитивы на чистом Python), я нередко получаю вопросы о том как на коленке реализовать простейший безопасный обмен сообщениями. Многие считают прикладную криптографию достаточно простой штукой, и .encrypt() ...

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

Ломаем простую «крякми» при помощи Ghidra — Часть 2 В первой части статьи мы при помощи Ghidra провели автоматический анализ простой программы-крякми (которую мы скачали с сайта crackmes.one). Мы разобрались с тем, как переименовывать «непонятные» функции прямо в листинге декомпилятора, а также поняли алгоритм программы «верх...

Как создать Python wrapper и не сойти с ума Недавно на Хабре прочитал статью про очень полезный инструмент, и так как я уже давно искал какой-то проект, чтобы начать контрибьютить, решил посмотреть, что там есть на гитхабе и чем можно помочь. Одно из issue было на счет создания обертки (дальше буду использовать wrappe...

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

Замеряем производительность Qt Решила продолжить цикл статей об ОС «Аврора» (до недавнего времени называвшейся Sailfish). За время, что я работаю с этой ОС, у меня накопились разные наблюдения, которые касаются производительности приложений на Qt и системы в целом, ибо девайсами она разнообразными обвешан...

[Перевод] Компиляция C в WebAssembly без Emscripten Компилятор — часть Emscripten. А что, если удалить все свистелки и оставить только его? Emscripten необходим для компиляции C/C++ в WebAssembly. Но это гораздо больше, чем просто компилятор. Цель Emscripten в том, чтобы полностью заменить ваш компилятор C/C++ и запустить в ...

«Современные» обедающие философы на C++ посредством акторов и CSP Некоторое время назад ссылка на статью "Modern dining philosophers" распространилась по ресурсам вроде Reddit и HackerNews. Статья интересная, она показывает несколько решений этой известной задачи, реализованных на современном C++ с использованием task-based подхода. Если к...

К вопросу о TI «Сейчас я покажу вам портрет… Хм… Я предупреждаю вас, что это именно портрет… Во всяком случае, прошу отнестись к нему, как к портрету... В данном посте пойдет речь о разработке и отладке программ для МК СС1350 в рекомендованной производителем среде разработки CCS. Будут за...

[Перевод] Как мы подняли производительность Tensorflow Serving на 70% Tensorflow стал стандартной платформой для машинного обучения (ML), популярной как в индустрии, так и в научных исследованиях. Создано множество свободных библиотек, инструментов и фреймворков для обучения и обслуживания моделей ML. Проект Tensorflow Serving помогает обслужи...

Swift.assert — жизнь после релиза Как часто вы используете Swift.assert() в вашем коде? Я, честно, использую довольно часто (Если это плохая практика, то, пожалуйста, напишите в комментариях — почему это плохо?). В моем коде часто можно встретить, например, такой вызов: Swift.assert(Thread.isMainThread) Не ...

SVG 3D: создание, вращение по оси и анимация Чуть более недели назад, в рамках конкурса от Телеграм, пришлось окунуться в "волшебный мир" svg, математических формул, оптимизации и анимации. Конкурсным заданием было создание достаточно простого чарта на JS, но некоторые нюансы задания и акцент на производительности дел...

И ещё один Steam Windows Client Local Privilege Escalation 0day В предыдущей серии Не так давно я опубликовал описание уязвимости для Steam. Я получил много отзывов от читателей. Valve не проронили ни слова, а HackerOne прислал огромное слезливое письмо и, в основном, молчал. В итоге меня забанили Valve на H1 — я не могу участвовать в и...

Как внедрить аналитику и не сломать приложение? Привет! Меня зовут Соснин Илья. Я работаю в Lamoda Android разработчиком. Крашу кнопочки, прогаю списочки и, к сожалению, пишу аналитику… Lamoda — это Data Driven Company, в которой все решения принимаются на основе поведения пользователей. Сначала мы наблюдаем и только пот...

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

[Из песочницы] Про мобильную приватность и Open Source Привет Хабр. Не так давно у меня появилось желание написать целую серию статей о безопасности, приватности и анонимности в интернете. Я не хочу тратить время читателей, в очередной раз описывая весьма плачевную ситуацию со сбором персональных данных, все это и так уже бы...

Продолжаем мучать маленького. В этот раз под «микроскопом» A4988 (или «что в имени тебе моём») (или «а о чем оно стучитъ»). — Пилите, Шура, пилите, они золотые.Золотой телёнокИтак, как оно должно работать – вроде разобрались вот здесь.Стало понятно, что оно и должно-то работать так себе, а уж почему оно зачастую работает ещё хуже – попробуем разобраться в этот раз. Подробнее...

Что мне не нравится в Windows 10 Встретил тут очередной список «10 причин, которые сподвигли перейти с Windows 10 на Linux» и решил составить свой список того, что мне не нравится в Windows 10 — ОС, которой я пользуюсь сегодня. Переходить на Linux я не собираюсь в обозримом будущем, но это совсем не значит,...

Методология БЭМ на примере стикеров в opencart Поскольку я предпочитаю методологию БЭМ, начав работать с opencart, я сразу же столкнулся с ужасными для меня вещами, это вложенные селекторы. Они повсюду! Начиная от шаблона по умолчанию, заканчивая практически всеми модулями и авторскими шаблонами. Почему так? Мне кажетс...

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

[Перевод] Не в момент выполнения, а в момент проектирования Давным-давно мудрый старый разработчик дал мне совет, который до недавнего времени я не очень ценил. Во время код ревью мы рассматривали некоторую функцию, которая требовала, чтобы программа выводила список букв A-Z (например, список контактов с набором кнопок, которые по...

Использование REST в ENM Ericsson на Python Здравствуйте. Не так давно Ericsson выпустил новую систему управления Ericsson Network Manager (ENM), которая уже успела появится у некоторых операторов сотовой связи. Было бы интересно разобрать некоторые вопросы по работе с ней и, в этой статье, коснёмся вопроса работы с н...

Видеоурок Теплицы: почему теги Title и Description так важны для поисковой оптимизации Мы не раз в своих видеоуроках рассказывали о поисковой оптимизации и описывали простые и действенные способы поднять сайт в поисковой выдаче. Главным условием успешной поисковой оптимизации является правильно сформулированный заголовок страницы — тэг Title. Менее значим...

Распределенная компиляция C/C++ проектов с помощью ICECC … Работаете вы, например, над очень большим проектом. Проект реально очень большой, написан на C или C++, и его билд «с нуля» может занять несколько часов, да и сборка после каких-то фиксов или патчей тоже требует немало времени, особенно если изменения коснулись чего-то фу...

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

[Перевод] Цена JavaScript в 2019 году За последние несколько лет в том, что называют «ценой JavaScript», наблюдаются серьёзные положительные изменения благодаря повышению скорости парсинга и компиляции скриптов браузерами. Сейчас, в 2019 году, главными составляющими нагрузки на системы, создаваемой JavaScript, я...

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

NX JAVA meetup #14: исследование производительности на проде, плюсы и минусы Spark в решениях на основе Cassandra Привет! 29 августа в петербургском офисе Nexign пройдет java-митап. Начало в 19:30. Больше подробностей и ссылка на регистрацию — под катом. Читать дальше →

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

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

[Перевод] RISC-V с нуля В этой статье мы исследуем различные низкоуровневые концепции (компиляция и компоновка, примитивные среды выполнения, ассемблер и многое другое) через призму архитектуры RISC-V и её экосистемы. Я сам веб-разработчик, на работе ничем таким не занимаюсь, но мне это очень интер...

[Перевод] Приключения с ptrace(2) На Хабре уже писали про перехват системных вызовов с помощью ptrace; Алекса написал про это намного более развёрнутый пост, который я решил перевести. С чего начать Общение между отлаживаемой программой и отладчиком происходит при помощи сигналов. Это существенно усложняет...

Rollup: уже можно собирать приложения Rollup — это сборщик javascript приложений и библиотек нового поколения. Многим он давно знаком как перспективный сборщик, который хорошо подходит для сборки библиотек, но плохо подходит для сборки приложений. Однако время идет, продукт активно развивается. Я впервые попроб...

Разворачиваем автоматизацию за пару часов: TypeScript, Protractor, Jasmine Привет, Хабр! Меня зовут Виталий Котов, я довольно много занимаюсь автоматизацией тестирования и мне это нравится. Недавно я участвовал в проекте по настройке автоматизации «с нуля» на стеке TypeScript + Protractor + Jasmine. Для меня этот стек был новым и необходимую инфор...

Кросс-компиляция в docker. Почему бы и нет? Что такое кросс-компиляция? Какие есть инструменты для сборки бинарных файлов для Windows в Linux? Как настроить docker-контейнер для всего этого? Вот лишь небольшая часть вопросов, которые будут обсуждаться ниже. Читать дальше →

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

Создаем видео из фотографий Очень часто у пользователей возникает желание сделать красивый фильм из фотографий. Это отличный подарок, например, или дополнение к подарку. Однако, если делать это в не в специальном софте, то вы потратите кучу времени и сил. Намного эффективнее скачать приложение ФотоШОУ ...

Последние изменения в IO-стеке Linux с точки зрения DBA Главные вопросы работы с базой данных связаны с особенностями устройства операционной системы, на которой работает база. Сейчас Linux — основная операционная система для баз данных. Solaris, Microsoft и даже HPUX все еще применяются в энтерпрайзе, но первое место им больше н...

[Из песочницы] Построение пакета RPM для Rosa Linux на практике Если Вы уже давно пользуетесь операционной системой Linux и хоть немного разбираетесь в программировании, рано или поздно Вам может понадобиться собрать программу из исходного кода. Может быть, нужной программы не окажется в репозиториях дистрибутива. Или в этих репозиториях...

Cron в Linux: история, использование и устройство Классик писал, что счастливые часов не наблюдают. В те дикие времена ещё не было ни программистов, ни Unix, но в наши дни программисты знают твёрдо: вместо них за временем проследит cron. Утилиты командной строки для меня одновременно слабость и рутина. sed, awk, wc, cut и ...

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

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

Как Microsoft Excel работает с высотами рядов Иногда мне бывает скучно и я, вооружившись отладчиком, начинаю копаться в разных программах. В этот раз мой выбор пал на Excel и было желание разобраться как он оперирует высотами рядов, в чём хранит, как считает высоту диапазона ячеек и т.д. Разбирал я Excel 2010 (excel.exe...

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

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

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

Fibaro Home Center 2 и термостат для теплого пола HeatIt. Как поднять температуру Столкнулся я с задачей управлять теплым полом из интерфейса Fibaro Home Center 2. Вроде бы простейшая задача, но нет. По желанию заказчика термостаты должны отталкиваться от температуры пола. Решено было использовать термостаты HeatIt. Читать дальше →

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

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

Лояльность на ваш вкус Как в Х5 запускали программы лояльности В магазине практически любой торговой сети кассир задаст вопрос «У вас есть карта магазина?». В этом посте хочу рассказать о программах лояльности для покупателей в магазинах нашей компании. Х5 управляет магазинами нескольких торговых ...

[Перевод] LLVM IR и Go В этой статье мы рассмотрим, как построить программу на Go, такую, как компилятор или статический анализатор, которая взаимодействует с фреймворком компиляции LLVM, используя язык ассемблера LLVM IR. TL;DR мы написали библиотеку для взаимодействия с LLVM IR на чистом Go, см...

Что делать тимлиду, чтобы команда не выгорала Недавно в подкасте "Цинковый прод" мы обсуждали выгорание. Я решил структурировать некоторые мысли и оформить в виде статьи История первая Однажды, когда я еще был простым линейным разработчиком, я решил пофрилансить. Друг попросил доработать одну довольно хитрую систему, п...

[recovery mode] Как я отказался от Ruby в пользу Python, работая над бэкендом Перевели для вас статью Бенуа Зен, разработчика ПО в компании Sqreen. Бенуа работает над backend веб-сервиса и недавно перешел с Ruby на Python. В 2008 году, когда я еще учился на разработчика ПО, два моих друга решили основать компанию, назвав ее Feedbooks. Их целью бы...

[Из песочницы] Сколько стоит OpenSource Значение термина Open Source очень часто отождествляют с отсутствием необходимости платить за программный продукт. Стремление к экономии, к «халяве» не чуждо большинству, и вроде как OpenSource должен являться той волшебной таблеткой, которая должна была уже давно спасти вес...

Google Pixel 4 может использовать новый способ вызова помощника Google Google встраивает ряд интересных функций в смартфоны Pixel 4 и Pixel 4 XL. И новая функция, которая позволяет пользователям Pixel 4 и Pixel 4 XL активировать Google Assistant. Новый способ - "Raise to Talk". Как сообщается, эта функция работает после того, как пользователь ...

[Перевод] Disposable ref structs в C# 8.0 Давайте посмотрим, что об этом сказано в блоге о предстоящих изменениях в С# 8.0 (версия Visual Studio 2019 Preview 2): «stack-only структуры появились в С# 7.2. Они чрезвычайно полезны, но при этом их использование тесно связано с ограничениями, например невозможностью реа...

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

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

Универсальный DSL. Возможно ли это? Язык предметной области. Не перегружен конструкциями языка общего назначения. При этом позволяет всего несколькими строчками реализовать весьма сложную логику. Все это — DSL. Однако создание DSL требует от разработчика соответствующей квалификации. Регулярное использование...

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

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

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

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

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

[Перевод] Почему мы так долго ждали изобретения велосипеда? Велосипед, каким он известен нам сегодня, изобрели лишь в конце XIX века. Однако это было простое механическое изобретение. Казалось, оно не требует гениальных идей и уж точно никакой научной подготовки. Так почему же его не изобрели раньше? Я задал этот вопрос в твиттер...

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

[Перевод] Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 3 — Конвертация avi в mp4 Список переведённых частей серии: Приготовления Компиляция с Emscripten Конвертация avi в mp4 (вы тут) В этой части ма разберём: Компиляцию библиотеки FFmpeg с оптимизированными аргументами. Управление файловой системой Emscripten. Разработку ffmpeg.js v0.1.0 и конвер...

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

Сухой лёд позволил разогнать видеокарту Radeon VII почти до 2150 МГц по ядру После того, как мы узнали, что производительность видеокарты Radeon VII на операциях с двойной точностью гораздо выше, чем AMD заявляла во время анонса, осталось разобраться с экстремальным разгоном. Известный оверклокер der8auer решил опробовать функцию авторазгона в ...

Управление семисегментным дисплеем с помощью ПЛИС Привет, Хабр! Хочу внести свою посильную лепту в продвижение ПЛИС. В этой статье я постараюсь объяснить, как на языке VHDL описать устройство, управляющее семисегментным дисплеем. Но перед тем как начать, хочу кратко рассказать о том как я пришел к ПЛИС и почему я выбрал язы...

Java Native Image: проверка возможности использования Не так давно Oracle выпустил первый релиз проекта GraalVM (https://www.graalvm.org/). Релизу был сразу присвоен номер 19.0.0, видимо, для того чтобы убедить, что проект зрелый и готов к использованию в серьезных приложениях. Одна из частей этого проекта: Substrate VM — фре...

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

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

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

[Из песочницы] Пример простой нейросети на С/C++ Всем привет. Решил поделиться простым и ёмким на мой взгляд решением нейронной сети на С++. Почему эта информация должна быть интересна? Ответ: я старался в минимальном наборе запрограммировать работу многослойного перцептрона, да так, чтобы его можно было настраивать ка...

[Перевод] Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования (Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров. Его написал Colm MacCárthaigh один из основных контрибьюторов Apache. Я спросил разрешение Колма на перевод, он любезно согласился). Я объясню вам доступным языком, что происходит при шифровании да...

Приглашаем на DINS Java EVENING 18 сентября Приглашаем всех интересующихся java-разработкой на очередной открытый DINS Java EVENING, который пройдет в нашем офисе на Старо-Петергофском, 19. Этим вечером Денис Репп из Wrike расскажет, как организовать работу с техническим долгом в критически важных частях продукта. Ан...

[recovery mode] Почему они мне не перезвонили-6, или будь внимателен, юзернейм Когда почти год назад я писал статью "Как экономить свое и чужое время на собеседованиях, или немножко о заблуждениях HR", я исходил из предположения о добропорядочности и заинтересованности двух сторон в длительном сотрудничестве (взаимный выигрыш, win-win, вот это все). П...

[Из песочницы] Angular. Понимание @Input, @Output и EventEmitter Привет, Хабр! Представляю вашему вниманию перевод статьи «Understanding @Input, @Output and EventEmitter in Angular» автора foolishneo. Приветствую всех желающих накапливать информацию о тонкостях работы фреймворка Angular. Сегодня посчитал нужным лучше изучить информацию,...

[Перевод] Сценарии использования и производительность Blazor Server в .NET Core 3.0 С момента релиза Blazor Server с .NET Core 3.0 в прошлом месяце многие люди поделились с нами своим восторгом от возможности создания клиентского веб-интерфейса используя только с .NET и C#. В то же время мы также слышали много вопросов о том, что такое Blazor Server, как он...

Анализ толщин модели в blender 2.81 2.81 уже в хорошей бете, можно пользоваться, хотя некоторые вопросы с производительностью пока не решили. Он вообще из по-честному не самой интуитивной программы превращается в очень мощный инструмент моделирования, который по скульпту уже скоро догонит ZBrush. Смотрел толщи...

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

Возможно ли без Redux? На сегодняшний день можно найти уйму позиций, где требуется react/redux. React прекрасен, вопросов нет. Вопрос к Redux — возможно ли без него. Если погуглить чуть-чуть, найдется добротная статья на хабре (https://habr.com/ru/post/350850/), где автор задается таким же вопросо...

Почему не приходят PUSH-уведомления в VoIP-клиенте 3CX для Android Возможно, вы уже попробовали наше новое приложение 3CX для Android Beta. Сейчас мы активно работаем над релизом, который будет включать, кроме прочего, поддержку видеосвязи! Если вы еще не видели новый клиент 3CX, вступайте в группу бета-тестировщиков! Однако мы обратили вн...

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

Пять ключевых вопросов для ритейла при миграции к нам в облака Какими вопросами задались бы ритейлеры типа X5 Retail Group, Open, Auchan и прочие при переезде в Cloud4Y? Для ритейлеров настали сложные времена. Привычки покупателей и их хотелки за последнюю декаду изменились. Online-конкуренты вот-вот станут наступать на хвост. Покуп...

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

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

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

Установка openmeetings 5.0.0-M1. WEB-конференции без Flash Добрый день, Уважаемые Хабравчане и Гости портала! Не так давно у меня возникла необходимость поднять небольшой сервер для ВКС. Рассматривалось не так много вариантов — BBB и Openmeetings, т.к. только они по функционалу отвечали: Бесплатно Демонстрация рабочего стола, д...

Необычные системные вызовы на Linux Что видит программист, начиная работать с языком C? Он видит fopen, printf, scanf и ещё много других функций. Видит он и всякие open и mmap — казалось бы, зачем их выделять? Но, в отличие от первой группы, эти две функции при выполнении на ядре Linux являются системными в...

Павел Финкельштейн о Kotlin в production на jug.msk.ru 13 марта 2019 года в офисе компании КРОК прошла очередная встреча сообщества московских Java-разработчиков jug.msk.ru, на которой Паша Финкельштейн рассказал о своём опыте использования языка программирования Kotlin. Читать дальше →

Как рисует браузер. Лекция Яндекса До недавнего времени я работал в команде Яндекс.Браузера и по следам этого опыта сделал доклад на конференции YaTalks. Доклад был о том, что у браузера под капотом и как ваши странички превращаются в пиксели на экране. Минимум фронтенда, только внутренности браузера, только ...

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

[Перевод] Windows Notification Facility: cамая недокументированная поверхность атаки Под катом представлен перевод презентации "The Windows Notification Facility: The Most Undocumented Kernel Attack Surface Yet", представленной Alex Ionescu и Gabrielle Viala на конференции BlackHat 2018. О чем пойдет речь в публикации Что такое Windows Notification Facilit...

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

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

Shader — это не магия. Написание шейдеров в Unity. Введение Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня хочется поговорить про шейдеры. Умение писать шейдеры (и в целом работать с рендером) очень важно при разработке под мобильные платформы или AR/VR, если хочется добиться крутой графики. М...

[Перевод] Глубокое обучение с подкреплением: пинг-понг по сырым пикселям Это давно назревшая статья об обучении с подкреплением Reinforcement Learning (RL). RL – крутая тема! Вы, возможно, знаете, что компьютеры теперь могут автоматически учиться играть в игры ATARI (получая на вход сырые игровые пиксели!). Они бьют чемпионов мира в игру Го, ви...

[Перевод] Вышел .NET Core 3.0 (Preview 6) На прошлой неделе вышел .NET Core 3.0 (Preview 6). В него вошли обновления компиляции сборок для улучшения запуска, улучшения оптимизации приложений по размеру с улучшениями компоновщика и EventPipe. Мы также выпустили новые образы Docker для Alpine на ARM64. Скачать .NET C...

Как стать коммиттером и действительно ли вам это нужно Привет! Меня зовут Дмитрий Павлов, я работаю в GridGain, а также являюсь коммиттером и участником PMC в Apache Ignite и контрибьютором в Apache Training. Недавно я выступал c докладом о работе коммиттера на митапе Сбербанка по open source. С развитием opensource-сообщества у...

Корпоративная мышь – Да вы достали меня со своим качеством! – кричал Николай. – Вы – служба качества, вот вы и занимайтесь своими прямыми обязанностями! А я буду детали точить! – Каждый точит, как хочет? – пространно спросил Сергей, глядя в стол. Потом чуть встрепенулся, поднял глаза и продол...

Разработка ТамТам-бота на Python Привет, Хабр! Позвольте представиться: меня зовут Сергей Агальцов, и я "программист по жизни". Это значит, что я давно уже IT-менеджер, а вовсе не программист по профессии, но программирование использую постоянно, как в своей основной деятельности, так и как хобби. Как част...

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

2. Типовые сценарии использования Check Point Maestro Совсем недавно компания Check Point презентовала новую масштабируемую платформу Maestro. Мы уже публиковали целую статью о том, что это такое и как оно работает. Если коротко — позволяет почти линейно увеличивать производительность шлюза безопасности путем объединения неск...

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

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

Как мы в IntelliJ IDEA ищем лямбда-выражения Важной возможностью любой IDE является поиск и навигация по коду. Один из часто используемых вариантов поиска на языке Java — поиск всех реализаций данного интерфейса. Часто такая функция называется иерархией типов (Type Hierarchy) и выглядит как на картинке справа. Перебира...

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

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

[Перевод] Асинхронное программирование – производительность async: понять расходы на async и await Это статья достаточно древняя, но не потерявшая актуальности. Когда разговор заходит об async/await, как правило, появляется ссылка на неё. Перевода на русский найти не смог, решил помочь кто не fluent. Асинхронное программирование долгое время было царством самых опытных р...

Инструменты Node.js разработчика. Удаленный вызов процедур на веб-сокетах О технологии websocket часто рассказывают страшилки, например что она не поддерживается веб-браузерами, или что провайдеры/админы глушат трафик websocket — поэтому ее нельзя использовать в приложениях. С другой стороны, разработчики не всегда заранее представляют подводные к...

Что позволено Jupyter? Наша история началась с, казалось бы, несложной задачи. Нужно было настроить аналитические инструменты для для data science специалистов и просто аналитиков данных. С таким заданием к нам обратились коллеги из подразделений розничных рисков и CRM, где исторически высока конц...

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

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

[Из песочницы] Фриланс или офис? Ответ фрилансера Привет, я фрилансер по жизни. Меня часто спрашивают почему я не реализовываю себя в офисе компании. Говорят, что удаленная работа в фирме — это некая золотая середина. Сейчас я постараюсь ответить на все вопросы разом в виде некого сравнения труда в офисе компании или как ...

[Из песочницы] Беспроводная зарядка. Как она работает на практике У меня свой магазин разных беспроводных зарядных устройств. За год работы в этой области я успел разобраться в характеристиках работы устройств, различиях, проблемных областях зарядок и прочитать очень много статей, в которых пишут не разобравшись в тематике. В этой и сле...

Статический анализ IntelliJ IDEA против человеческого разума Не так давно я изучал вывод статического анализатора IntelliJ IDEA для Java-кода и наткнулся на интересный случай. Так как соответствующий фрагмент кода не является open source, я его анонимизировал и отвязал от внешних зависимостей. Будем считать, что он выглядел так: priva...

Honor V20 появился в AnTuTu На просторах интернета появилась новость о том, что новый смартфон Honor V20, который китайская компания Huawei пока что не анонсировала, набирает слишком мало баллов в синтетическом тесте AnTuTu. Конечно, новость очень странная, ведь как можно оценивать продукт в разрезе пр...

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

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

Python из C В прошлом году появилась необходимость дополнить старый проект написанный на C функционалом на python3. Не смотря на то, что есть статьи на эту тему я помучился и в том году и сейчас когда писал программы для статьи. Поэтому приведу свои примеры по тому как работать с pytho...

[Из песочницы] Как работать со множественными запросами. Композиция, Reducer, ФП Привет, Хабр. Меня зовут Максим, я iOS-разработчик в компании FINCH. Сегодня я покажу вам некоторые практики использования функционального программирования, которые мы наработали у себя в отделе. Читать дальше →

Автоматизация трёх гвоздей Пока я работал программистом, все было хорошо. Когда я стал руководителем программистов, появились определенные трудности, но их удалось преодолеть. Когда меня поставили руководить стратегическими изменениями, все стало плохо. Я начал упускать. Читать дальше →

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

Расслоения в стали. Как они образуются Тема этой статьи несколько необычна для Хабра. Меня побудило ее написать простое и понятное желание напомнить, что в свое время в нашей стране на очень высоком уровне была металловедческая наука, в частности ее раздел по исследованию причин разрушения высокопрочных материало...

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

Microsoft работает над эмуляцией x64-приложений в Windows 10 on ARM Устройства под управлением Windows 10 on ARM по-прежнему занимают небольшую долю рынка, а главным барьером на пути их использования является невозможность запуска 64-битные (x64) приложений. Но, по всей видимости, компания Microsoft занимается решением этого вопроса. Как со...

WebRTC,stereopi: telepresense по-домашнему Для начала ролик с youtube для вдохновения: Предупреждение: проект на видео — лишь образец, который можно сделать по туториалу в статье в части стереозрения и «поворотов головой». Танки с пультами xbox не прилагаются. Не смотря на наглядность, скудный рассказ самого авт...

[Из песочницы] Придумываем технологию Powercheck Меня всегда интересовало как устроен и работает индикатор заряда на батарейках Duracell: А также почему под ним указано, что тестировать нужно при 21°С. Но перед тем как посмотреть на решение, которое используется в батарейках, давайте попробуем прийти к нему самостоятельн...

Разработка простейшей «прошивки» для ПЛИС, установленной в Redd, и отладка на примере теста памяти Как-то у меня не получается выражать свою мысль коротко. Прошлой осенью возникло желание рассказать поподробнее про освоенную мною архитектуру PSoC, что вылилось в цикл статей про неё. Сейчас я участвую в подготовке аппаратной части для нашего комплекса удалённой отладки Red...

Тесты на Си без SMS и регистрации Недавно zerocost написал интересную статью «Тесты на C++ без макросов и динамической памяти», в которой рассматривается минималистический фреймворк для тестирования Си++ кода. Автору (почти) удалось избежать использования макросов для регистрации тестов, однако вместо них в ...

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

10 бесплатных утилит ApexSQL для управления базами данных Microsoft SQL Server Привет, Хабр! Мы много работаем с Quest Software, и в этом году они приобрели ApexSQL — производителя решений для управления и мониторинга баз данных Microsoft SQL Server. В России об этих ребятах, как нам кажется, знают мало. На главной своего сайта они пишут «Killer tool...

Дефективное встраивание функций в Go Эквивалентен ли по производительности код, представленный ниже? // (A). Вызов HasPrefix будет встроен. return strings.HasPrefix(s, "#") // (B). Ручное встраивание тела HasPrefix. return len(s) >= len("#") && s[:len("#")] == "#" Ответ: нет. За подробностями и объя...

[Из песочницы] OpenVPN и Active Directory (Kerberos без пользовательских сертификатов) Про OpenVPN написано много гайдов, в том числе и про авторизацию через Active Directory. Большинство из них сводится к использованию LDAP, подхода с использованием Kerberos, оформленного в полноценную статью, я не нашел. Впрочем, чего-то нового тут изобретено не будет, я лиш...

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

[Перевод] Как реализовать деплой с GitHub на продакшн сервер, использовав Webhook У меня давно вошло в привычку создавать репозитории на GitHub. Это куда эффективнее, чем держать все на Google Drive или, того хуже, на жестком диске. Но здесь сразу появляется вопрос: как выполнить деплой на рабочий сервер? Большинство поисковых запросов выводили меня ...

Цемент марки Интеграция Вчера поднял тему «Бизнес, не горюй» о том, каковы реальные целей ИТ-проектов. Не все поверили, что я говорю серьезно, но я не шучу. Я уверен, что нам (кто мы и сколько нас?) нужны кейсы по достижению реальных целей. Подсадить, зацементировать, выжать и поучиться. Разумеет...

E-Dobavki — веб-сервис поиска пищевых добавок на Java и Spring Boot, написанный моими студентами Введение Так получилось, что последние почти два года я преподаю программирование в одной из IT школ Киева. Занялся я этим Just For Fun. Когда-то я вел блог по программированию, потом забросил. Но желание рассказывать полезные вещи заинтересованным людям никуда не делось. Мо...

Книга «Kafka Streams в действии. Приложения и микросервисы для работы в реальном времени» Привет, Хаброжители! Эта книга подойдет для любого разработчика, который хочет разобраться в потоковой обработке. Понимание распределенного программирования поможет лучше изучить Kafka и Kafka Streams. Было бы неплохо знать и сам фреймворк Kafka, но это не обязательно: я ра...

[Перевод] Управление стейтом с помощью React Hooks – без Redux и Context API Всем привет! Меня зовут Артур, я работаю ВКонтакте в команде мобильного веба, занимаюсь проектом VKUI — библиотекой React-компонентов, с помощью которой написаны некоторые наши интерфейсы в мобильных приложениях. Вопрос работы с глобальным стейтом у нас пока открыт. Существу...

Обзор 14 headless cms 2019 Некоторое время назад в одной заметной на российском рынке публичной компании, в которой я работал, встал вопрос об использовании headless cms. Среди множества реализаций нужно было выбрать одну. Это рассказ о том, как я формировал критерии выбора, как анализировал cms-ки, и...

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

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

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

Просто еще одна Qt обертка для gRPC и protobuf Не так давно я озадачился тем, что нет достаточно удобных и простых враппера и генератора для protobuf и gRPC, основанных и полностью совместимых с Qt. Натыкался на статьи, в т.ч. здесь, об обертках, но их использование мне показалось куда менее практичным, чем даже сущест...

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

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

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

Uibook — инструмент для визуального тестирования React-компонентов с медиа-запросами Всем привет! Меня зовут Виталий Ризо, я фронтенд-разработчик в «Амплифере». Мы сделали Uibook — простой инструмент для визуального тестирования React-компонентов с реальными медиа-запросами. Расскажу, как он работает и чем может быть полезен вам. Читать дальше →

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

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

[Из песочницы] Размышления о Agile The measure of intelligence is the ability to change. Albert Einstein Предисловие Представляю ИТ-сообществу “Размышления о Agile” или можно назвать данную статью так, “Agile, это все же философия или проектная методология?”. Цель данной статьи — обсудить с ИТ-сообществом в...

Анонс Qualcomm Snapdragon 712: игровой 10-нм чип для среднего класса Qualcomm представила чипсет Snapdragon 712. Это незначительно улучшенная версия Snapdragon 710, отличающаяся от него только максимальной частотой вычислительных ядер: она поднята с 2,2 ГГц до 2,3 ГГц. Qualcomm обещает, что вкупе с оптимизацией архитектуры это повысило произв...

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

[Из песочницы] Применение X-Macro в модерновом C++ коде Современные тренды разработки на C++ предполагают максимально возможный отказ от макросов в коде. Но иногда без макросов, причем в особо уродливом их проявлении, не обойтись, так как без них еще хуже. Об этом и рассказ. Как известно, первым этапом компиляции C и C++ являетс...

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

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

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

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

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

[Перевод] Выученные уроки через 40 лет после взлёта и быстрого падения первого «убойного приложения» Помните VisiCalc, первую в мире электронную таблицу? А сегодняшние технологические гиганты помнят – именно поэтому они скупают и вкладываются в потенциальных конкурентов Изначально программа VisiCalc работала только на Apple II. Она стоила $100, а компьютер – не менее $200...

Python vs. Scala для Apache Spark — ожидаемый benchmark с неожиданным результатом Apache Spark на сегодняшний день является, пожалуй, наиболее популярной платформой для анализа данных большого объема. Немалый вклад в её популярность вносит и возможность использования из-под Python. При этом все сходятся на том, что в рамках стандартного API производитель...

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

OSDay 19 или почему еще жив язык Си Недавно (10-11 июня) в Москве прошла очередная научно-практическая конференция OSDay. На этот раз конференция проходила в математическом институте им. В.А. Стеклова РАН. Формально она была посвящена инструментам разработки операционных платформ и системного программного обе...

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

Samsung отказывается от разработки собственных ядер для мобильных платформ, Exynos 9830 уже никогда не догонит Snapdragon 865 Samsung наравне с Qualcomm модифицировала ядра Arm для своих мобильных платформ, в основном – топовых. Однако теперь эта практика завершается: компания полностью переходит на использование лицензионных ядер Arm, а научно-исследовательский центр, в котором над зада...

[Из песочницы] Реверс-инжиниринг электрокарниза AM82TV Есть у меня пара электрокарнизов компании Akko — AM82TV. Модель эта выделяется из собратьев наиболее полным набором интерфейсов управления. Шторами можно управлять по радиоканалу, есть “сухие контакты”, пофазное управление (замыканием управляющих проводов с сетевыми). Есть и...

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

PHP Xdebug proxy: когда стандартных возможностей Xdebug не хватает Для отладки PHP-программ часто используют Xdebug. Однако стандартных возможностей IDE и Xdebug не всегда достаточно. Часть проблем можно решить с помощью Xdebug proxy — pydbgpproxy, но всё же не все. Поэтому я реализовал PHP Xdebug proxy на базе асинхронного фреймворка amph...

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

Обзор докладов Java-трека c конференции RigaDevDays Всем привет! С 29 по 31 мая состоялась конференция RigaDevDays в Риге. Это был 5-ый юбилейный год конференции. Более 600 участников собрались в кинотеатре Forum Cinemas, чтобы послушать доклады по технологиям — C#, Java, MachineLearning, Microservices, SQL. Конференция прох...

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

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

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

Июльские патчи Oracle устранили более 300 угроз Корпорация Oracle выпустила очередной пакет обновлений безопасности (Critical Patch Update, CPU), закрыв в своих продуктах 319 уязвимостей. Свыше 50 багов получили высшую оценку угрозы, набрав 9,8 балла по шкале CVSS. Больше всего заплаток пришлось на приложения Oracle Finan...

Как редактировать STL файл в Inventor (Mesh Enabler) и MeshMixer Данный пост посвящен редактированию STL моделей в Inventor и MeshMixer. Он будет интересен тем, кто работает в Inventor и столкнулся с проблемой редактирования STL файла и не знает путей решения. Решил эту проблему двумя способами - скачивание специального плагина из APPStor...

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

Разработка чат-бота (telegram + youtube) Почему это вообще появилось здесь? Недавно я написал статью о разработке бота на php с использование laravel+botman для telegram. Самое первое, что написали, цитирую, “стрельба из пушки по воробьям”. Я согласен с этим, даже осознавал это во время разработки, но мне был инте...

Услуга легкий безусловный возврат. Почта России Доброго времени суток, Хабр! Не так давно Почта России запустила услугу «Легкий возврат», но о ней еще не все знают и даже в отделениях почты. И тут вопрос даже не «когда?», а «кто?» залажает потеряет мою посылку. Сразу напишу, что эпопея только началась и чем закончится ...

Курс лекций по JavaScript и Node.js в КПИ Товарищи инженеры, как и было обещано в анонсе, половина лекций (а это 51) уже доступны для просмотра на ютюбе и я продолжу их записывать в 2019 году. Часть из нужно будет перезаписать, потому, что в первых лекциях не самый лучший звук и потому, что очень простые темы у мен...

Как писать хороший и понятный код: 3 простых способа для программиста От переводчика: сегодня публикуем для вас статью разработчика из Индии Рави Шанкара Рахана. Он рассказывает о том, что стоит делать, если вы хотите научиться писать простой и понятный код. Статья рекомендуется всем начинающим программистам. Написать простой код несложно...

[Перевод] Шпионим за вашими программами с помощью Strace Не смогли пройти мимо и перевели ко Дню программиста комикс Джулии Эванс об утилите Strace. Полезный инструмент, который помогает отслеживать системные вызовы и доставку сигналов между процессами и ядром Linux. Читайте и вдохновляйтесь. С наступающим, друзья! Читать дальш...

[Перевод] Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 1 — Приготовления Из этой части вы узнаете: Зачем это всё нужно Как скомпилировать FFmpeg в Docker Зачем это всё нужно Главные задачи у серии публикаций такие: Создать туториал по использованию Emscripten для компиляции C/C++ библиотек в JavaScript (более детальный и полезный, чем написа...

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

[Из песочницы] Идея, как можно предоставлять сотрудникам временный доступ к ресурсам клиента, не светя лишний раз пароли Небольшая предыстория После лекции на HighLoad++ 2017. Я посмотрел этот доклад, “Как мы админа увольняли”, в записи. Докладчик сказал, что все web компании испытывает проблемы с паролями, и у меня появилась идея как это решить. Скорее всего кто-то уже сделал, но, если честно...

Rust + CLion = Любовь Привет, Хабр! В общем как я обещал вот рассказ о том как CLion в качестве IDE для Rust на MacOS использовать. Почему не IntelliJ IDEA? Потому что CLion может дебажить. Почему LLDB, а не GDB? Потому что LLDB у меня вместе с XCode был установлен. Мне нравиться эта IDE и наде...

Сотовые оператора «МТС», «МегаФон», «Билайн» и Tele2 в два раза поднимут цены на всех тарифных планах, и вот почему Ни для кого уже давно не секрет, что постепенно в России все дорожает. Дороже становятся не только различные услуги и продукты питания, но даже еще и услуги ЖКХ, то есть платить с каждым годом за Сообщение Сотовые оператора «МТС», «МегаФон», «Билайн» и Tele2 в два раза под...

Deep Learning vs common sense: разрабатываем чат-бота Чем больше пользователей у вашего сервиса, тем выше вероятность, что им понадобится помощь. Чат с техподдержкой — очевидное, но довольно дорогое решение. Но если применить технологии машинного обучения, можно неплохо сэкономить. Отвечать на простые вопросы сейчас может и бо...

Сократить бэкапы на 99.5% с hashget hashget — это бесплатный, оперсорсный дедупликатор — похожая на архиватор утилита, которая позволяет значительно сократить размер бэкапов, а так же организовать схемы инкрементального и дифференциального бэкапа и не только. Это обзорная статья для описания возможностей. Само...

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

О боевых инкапаситантах Привет, %username%. gjf опять на связи. Сразу прошу прощения, если предыдущая статья показалась тебе слишком скучной, но в некоторых вопросах у меня напрочь пропадает чувство юмора. И прошу прощения, если разрушил иллюзии некоторых читателей. Но по итогам голосования мы...

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

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

Как не промахнуться с бюджетом на серийное производство корпусов: 20 примеров из практики бюро по инженерному дизайну Публикация всего двух статей о том, как самостоятельно оценить стоимость производства корпуса для прибора (первая и вторая) подняла просто волну запросов из серии «А вот сколько будет стоить наш корпус при тираже 5-100-1000- ∞ штук?» Как выясняется в ходе общения, большин...

[Екатеринбург, анонс] Митап для Java-разработчиков Мы уже писали, что такое JUG.EKB и зачем проводим митапы для Java-разработчиков. Сегодня анонсируем очередную встречу. Читать дальше →

Виктор Гамов о Kafka Streams IQ на jug.msk.ru 8 мая 2019 года на встрече московского сообщества Java-разработчиков jug.msk.ru Виктор Гамов рассказал про Kafka Streams IQ (Interactive Queries). Читать дальше →

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

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

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

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

[Перевод] DEFCON 21. Одних паролей недостаточно, или почему «ломается» шифрование диска и как это можно исправить. Часть 1 Спасибо всем, что пришли, сегодня мы поговорим о полном шифровании жёсткого диска (FDE), которое не так безопасно, как вы думаете. Поднимите руки, кто шифрует таким образом HDD своего компьютера. Поразительно! Ну что же, добро пожаловать на DefCon! Похоже на то, что 90% и...

VPN в каждый дом или как приручить Дракона Ниже я расскажу о том, как заменить ваш VPN провайдер собственным сервером, развернутым на DigitalOcean с использованием WireGuard. В чем главная проблема VPN провайдеров? Вы не знаете что они делают с вашими данными. Очень мало VPN провайдеров прошли сторонний аудит и почти...

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

[Из песочницы] Продвинутый Debug Debug Area — полезная функция в работе iOS разработчика в Xcode. Как только мы начинаем осваивать разработку под iOS, и пытаемся отойти от привычного и любимого print метода, и найти более быстрые и удобные методы понимания состояния системы в определенный период мы начинаем...

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

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

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

[Перевод] Нейросети и глубокое обучение, глава 3, ч.2: почему регуляризация помогает уменьшать переобучение? Содержание Глава 1: использование нейросетей для распознавания рукописных цифр Глава 2: как работает алгоритм обратного распространения Глава 3: ч.1: улучшение способа обучения нейросетей Эмпирически мы увидели, что регуляризация помогает уменьшать переобучение. Это вдохн...

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

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

«Менеджеру нужно продолжать кодить»: интервью со Стивеном Чином Многие Java-разработчики знают Стивена Чина. Кто-то видел его трансляции с Java-мероприятий, кто-то — его интервью с другими известными джавистами, а кто-то — доклады про Java на Raspberry Pi. Да что уж там, в Твиттере он @steveonjava — то есть даже юзернеймом показывает, ...

Мнение: Почему вам не стоит покупать iMac с HDD Многие пользователи при выборе потенциального компьютера отдают предпочтение моноблокам Apple. Большой качественный экран с высоким разрешением, отличная производительность и относительно компактный корпус. Всё это в совокупности делает iMac прекрасным выбором практически д...

GoLand 2019.2: поддержка вызовов функций во время отладки, улучшенные цветовые схемы, кастомные Postfix Completion Сегодня мы выпустили GoLand 2019.2 и спешим рассказать вам о том, что появилось в новой версии. Поддержка вызовов функций во время отладки Теперь можно выяснить, что происходит с выражением в любой момент выполнения программы. Обратите внимание, что эта функциональность ...

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

work&dev fun(damentals) #1. Я был благодарен, за то что меня научили этому, когда я был джуном Это цикл статей. Предыдущую можно прочесть тутМне офигенно повезло. Когда я устроился на работу trainee, я не знал совершенно ничего. Вокруг сидели люди, разговоры которых меня пугали. Любой, сейчас примитивный, термин оставлял пустоту в глазах, а люди, которые ходили на мит...

Пробуем Jetpack Compose в бою? Наконец, настал момент, когда не нужно собирать самостоятельно Android Studio, чтобы попробовать новый декларативный UI framework для Android. Jetpack Compose стал доступен в виде первого Dev Preview в Maven-репозитории Google. С такой новости началось моё утро понедельника....

Memcached plugin от MySQL: инструкция по осторожному применению Здравствуйте! Меня зовут Максим Матюхин, я PHP-программист Badoo. В своей работе мы активно используем MySQL. Но иногда нам не хватает её производительности, поэтому мы постоянно ищем возможности ускорить её работу. В 2010 году Yoshinori Matsunobu представил NoSQL-плагин ...

Почему строить базу знаний компании на основе mediawiki — недурная затея В последнее время Confluence и sharepoint стали почти безраздельно править на рынке баз знаний. Системы отличные, не спорю, но лично мне не хватает их гибкости да и в целом как-то не срослось: вики-возможности sharepoint остались где-то на уровне 2005 года (про работу с оф...

ScrumBut в команде аналитиков: перед взлётом Привет, Хабр! Меня зовут Женя. Я системный аналитик компании «НОРБИТ» и начинающий Scrum-мастер. Я давно присматривалась к Scrum с целью изучить, попробовать и оценить его возможности в нашей команде аналитиков. И вот, после легкого пинка воодушевляющего разговора с РП я пон...

Edition-Based Redefinition: можно ли в production? Привет! Меня зовут Антонина, я Oracle-разработчик IT-подразделения «Sportmaster Lab». Работаю тут всего два года, но благодаря дружной команде, сплоченному коллективу, системе наставничества, корпоративному обучению, накопилась та самая критическая масса, когда хочется не пр...

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

[Из песочницы] Разбираемся в числах с плавающей точкой (часть 0) Здравствуйте, хабровчане. Я давно увлекаюсь темой регистров с плавающей точкой. Меня всегда волновало то, как происходит вывод на экран и т.д. Помню, давным-давно в универе реализовывал свой класс чисел с плавающей точкой, состоящих из 512 бит. Единственное, что я не мог ник...

Генерация конфигов для nginx, история одного pull request Приветствую, товарищи. На моих боевых серверах прекрасный nginx крутится с 2006 года и за годы его администрирования я накопил много конфигов и шаблонов. Я много нахваливал nginx и как-то так вышло, что даже хаб nginx на Хабре тоже завёл я, понты \m/ Друзья попросили подня...

PHP, почём абстракции для народа? Joy: What is going on? Sadness: We’re abstracting! There are four stages. This is the first. Non-objective fragmentation! Bing Bong: Alright, do not panic. What is important is that we all stay together. [suddenly his abstract arm falls off] Joy: Oh! [Sadness and Joy start ...

[Перевод] Lock-in: правда или вымысел? Я много лет обсуждал с клиентами технологии и их поставщиков, и многие употребляют термин "lock-in", означающий барьер для смены поставщика или привязку к поставщику. Вопросы звучали так: "Не станем ли зависимы от поставщика из-за этого продукта?" или "Решение X для нас пре...

[Перевод] Элегантная обработка ошибок в JavaScript с помощью монады Either Давайте немного поговорим о том, как мы обрабатываем ошибки. В JavaScript у нас есть встроенная функция языка для работы с исключениями. Проблемный код мы заключаем в конструкцию try...catch. Это позволяет прописать нормальный путь выполнения в разделе try, а затем разобрать...

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

Как мы спасали код-ревью Я ведущий Java-разработчик в Яндекс.Деньгах. Каждое рабочее утро в 2018 году меня встречали около 30 пулл-реквестов, ожидающих ревью, а у меня не хватало времени разобрать их все за день. В конце лета я ушел в отпуск, а когда вернулся, обнаружил очередь из 50 PR, назначенн...

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

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

Большой брат следит за… собой или карта с историей перемещений в HomeAssistant Вступление. Для своей домашней автоматизации я уже давно использую HomeAssistant. Однажды товарищ у меня спросил, мол, почему у HomeAssistant есть возможность указывать только текущее положение трекера на карте, но нельзя отобразить весь маршрут следования? С тех пор данная ...

Кастомизация резолвинга зависимостей в Spring Привет! Меня зовут Андрей Неведомский и я главный инженер в СберТехе. Я работаю в команде, которая занимается разработкой одного из системных сервисов ЕФС (Единой Фронтальной Системы). В своей работе мы активно используем Spring Framework, в частности его DI, и время от врем...

Почему в iPhone 12 должно быть 6 гигабайт оперативной памяти Оперативной памяти в iPhone 11 Pro вроде достаточно, но хотелось бы больше Apple никогда не гналась за бенчмарками и цифрами. Когда только появились первые смартфоны на Android с 6 ГБ оперативной памяти, в некоторых iPhone еще устанавливали 1 ГБ ОЗУ. И знаете, этого хватало!...

[Перевод] Чем функциональные компоненты React отличаются от компонентов, основанных на классах? Чем функциональные компоненты React отличаются от компонентов, основанных на классах? Уже довольно давно традиционный ответ на этот вопрос звучит так: «Применение классов позволяет пользоваться большим количеством возможностей компонентов, например — состоянием». Теперь, с п...

[Из песочницы] Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз Здравсвуйте, хабровчане! Предлагаю вашему вниманию перевод статьи «How a single PostgreSQL config change improved slow query performance by 50x» автора Pavan Patibandla. Она очень сильно мне помогла улучшить производительность PostgreSQL. В Amplitude наша цель — предоставит...

Встраиваем Lua интерпретатор в проект для микроконтроллера (stm32) В достаточно крупных приложениях немалую часть проекта составляет бизнес-логика. Эту часть программы удобно отлаживать на компьютере, после чего встраивать в состав проекта для микроконтроллера, ожидая, что эта часть будет выполняться в точности так, как было задумано без ...

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

[Перевод] Оттенки значений в английском языке: как использовать глаголы Advise, Recommend, Suggest Английский язык часто воспринимается как нечто не столь сложное, как некоторые другие языки – взять тот же немецкий. Но на самом деле в нем есть достаточное количество трудностей и тонких моментов («Пишется Ливерпуль, а читается Манчестер» ). Один из них, вызывающий личн...

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

Задача N тел или как взорвать галактику не выходя из кухни Не так давно я прочёл фантастический роман «Задача трёх тел» Лю Цысиня. В нём у одних инопланетян была проблема — они не умели, с достаточной для них точностью, вычислять траекторию своей родной планеты. В отличии от нас, они жили в системе из трёх звёзд, и от их взаимного...

Видеонаблюдение в Москве: текущие реалии и перспективы По данным ДИТ, в этом году городская система видеонаблюдения Москвы состоит из примерно 167 тысяч камер. Эти устройства установлены в самых разных местах — площадях, парках, больницах, супермаркетах и т.п. Камеры как аналоговые, так и цифровые, но последних становится все...

Елена Балашова: «Активисты подняли вопрос о том, чтобы данные нашего ГИС-портала были открыты для OpenStreetMap» Год назад администрация Тольятти перевела почти все свои интернет-ресурсы на лицензию Creative Commons Attribution, а данные своего ГИС-портала персонально разрешила использовать сообществу OpenStreetMap. Почему они решили это сделать, отчего чиновники боятся открытых данн...

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

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

Joker 2019: триумф года Неделю назад, 25-26 октября 2019 года, в Санкт-Петербурге прошла Java-конференция Joker 2019. Что на ней происходило, какие доклады были, что показалось интересным — обо всём этом дальше. Читать дальше →

Олег Шелаев про GraalVM на jug.msk.ru На прошедшей 4 апреля 2019 года встрече сообщества московских Java-разработчиков jug.msk.ru Олег Шелаев из OracleLabs сделал доклад о GraalVM. Читать дальше →

Kubernetes tips & tricks: о локальной разработке и Telepresence Нас все чаще спрашивают про разработку микросервисов в Kubernetes. Разработчики, особенно интерпретируемых языков, хотят быстро поправить код в любимой IDE и без ожидания сборки/деплоя увидеть результат — по простому нажатию на F5. И когда речь шла про монолитное приложени...

JavaScript: Большое целое Ну почему Не так давно JavaScript похвастался новым примитивным типом данных BigInt для работы с числами произвольной точности. Про мотивацию и варианты использования уже рассказан/переведен необходимый минимум информации. А мне бы хотелось обратить чуть больше внимания на превнесенн...

Организация системы эвентов в Unity — глазами геймдизайнера Всем привет! Заранее извиняюсь за дилетантизм, но я почитал статью о том, как человек пытался бороться с чрезмерной связностью сущностей в Unity, и подумал, что было бы интересно рассказать о своём велосипеде, который я сколотил для создания игровых прототипов как геймдизай...

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

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

Улучшенная версия 7-нм техпроцесса TSMC поднимет быстродействие на 5% Шанс для AMD поднять производительность процессоров малой кровью.

Отчёт с Java Virtual Machine Language Summit 2019 Сегодня закончился двенадцатый саммит JVM LS. Как обычно, это было хардкорное мероприятие с техническими докладами, посвящёнными виртуальным машинам и языкам, которые на них работают. Как обычно, саммит проходил в Санта-Кларе, в кампусе компании Оракл. Как обычно, желающих ...

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

Даннинг с Крюгером, Сократ и круги знаний Меня давно занимает тема познания. Так я столкнулся с изречением Сократа — «Я знаю, что ничего не знаю», с эффектом Даннинга-Крюгера. Уверился в истинности этих концепций. Увидел их взаимосвязь. А кроме того мне у меня появилась уверенность, что можно математически обосноват...

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

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

FAQ по HeadHunter API (публикация вакансий) Небольшая история про наш рекрутинговый сервис под заказчика и большая история про проблемы, которые появились при интеграции с HeadHunter с точки зрения публикации вакансий. Почему HeadHunter? Потому что на Superjob всё несколько проще (но это не точно). Читать дальше →

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

Лучшая программа для обработки аудио Если Вы работаете с аудиофайлами, то вам наверняка потребуется хороший редактор, который поможет вам легко обрезать требуемые файлы. Если вы перейдете по данной ссылке http://audiomaster.su/cut-audio.php, то сможете познакомиться с программой АудиоМастер, которая будет особе...

Windows 10 19H2 – это Service Pack Уже давно идет тестирование обновлений 19H1 и 20H1, но при этом никто ничего не слышал про осеннее обновление 19H2. Даже неизвестно, как его тестирование будет проходить, так как каналы Fast Ring и Skip Ahead заняты тестированием следующего весеннего обновления Windows 10 20...

Кластерное хранилище для небольших web-кластеров на базе drbd+ocfs2 О чем мы расскажем: Как быстро развернуть общее хранилище для двух серверов на базе решений drbd+ocfs2. Для кого это будет полезно: Туториал станет полезен системным администраторам и всем, кто выбирает способ реализации хранилища или хотят попробовать решение. От каких р...

К вопросу о VNA или японо-китайский прибор «А что, так можно было?» В крайнем посте Джека Гансли был упомянут появившийся недавно на просторах Инета прибор, именуемый NanoVNA, или малогабаритный портативный векторный анализатор цепей (ВАЦ) в диапазоне 50кГц-900МГц со стоимостью 50 долларов США. «Пятьдесят долларов,...

К вопросу о преобразованиях и прочих операциях Синяя Гусеница: А ну нас-то не собьешь. Мы себе сидим, знаем: ждут нас превращения. А что? А ничего! Сидим, курим, ждем… Алиса- кукла: Чего? Синяя Гусеница: Чего, чего! Превращений. Дом — в дым, дым- в даму, а дама — в маму. Вот так-то. Не мешайте, не заскакивайте вперед, а ...

SamsPcbGuide, часть 11: Технологии, корпуса BGA-типа и космос В обсуждениях к предыдущей статье proton17 написал, что в космос обычные BGA не летают, дав ссылки на корпуса CCGA-типа как образец надёжности. Я решил разобраться в этом вопросе и нашёл много интересной информации (во многом благодаря вот этому ↓ человеку). Читать дальше ...

Как распилить монолит на сервисы и сохранить производительность In-memory кэшей без потери консистентности Всем привет. Меня зовут Александр, я Java-разработчик в группе компаний Tinkoff. В данной статье хочу поделиться опытом решения проблем, связанных с синхронизацией состояния кэшей в распределенных системах. Мы столкнулись с ними, разбивая наше монолитное приложение на микр...

this и ScopeChain в EcmaScript Привет, Хабр! В предыдущей статье мы рассматривали общую теории ООП в применении к EcmaScript и популярное заблуждение начинающих разработчиков относительно отличия ООП в JS и классических языках. Сегодня мы поговорим о двух других не менее важных концепциях EcmaScript, а...

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

[Из песочницы] Устранение рекурсии в Python Привет, Хабр! Представляю вашему вниманию перевод статьи "Removing a recursion in Python, part 1" автора Эрика Липперта (Eric Lippert). На протяжении последних 20 лет я восхищался простоте и возможностям Python, хотя на самом деле никогда не работал с ним и не изуч...

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

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

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

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

Как я пришел к формальной спецификации RISC-V процессора на F# Томными зимними вечерами, когда солнце лениво пробегало сквозь пелену дней — я нашел в себе силы заняться реализацией давней мечты: разобраться как же устроены процессоры. Эта мечта привела меня к написанию формально спецификации RISC-V процессора. Проект на Github Читать д...

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

Управление компьютером через ПДУ от усилителя с помощью Arduino и Node.js Предисловие История начинается с того, что пол года назад я купил усилитель Yamaha A-S501. В комплекте с ним шёл пульт дистанционного управления, который мог управлять и усилителем, и ямаховским CD-плеером, которого у меня естественно не было. Поэтому большинство кнопок на ...

Как iPadOS 13.1 работает на iPad Air 2 iPad Air 2, выпущенный 2014 году до сих пор поддерживается Apple 24 сентября Apple выпустила публичный релиз iPadOS 13.1, о чём AppleInsider.ru своевременно вам сообщил. Тот факт, что операционная система прекрасно оптимизирована под самые современные планшеты Apple, не вызы...

Ускорение файлового ввода-вывода C/C++, не особо напрягаясь Предисловие Есть на свете такая простая и очень полезная утилита — BDelta, и так вышло, что она очень давно укоренилась в нашем производственном процессе (правда её версию установить не удалось, но она точно была не последней доступной). Используем её по прямому назначению...

[Из песочницы] Создание приложения Sticky Notes с использованием 8base, GraphQL и React Посмотреть демо версию программы здесь. Во все времена тайм менеджмент был связан для меня с огромной борьбой, запланированные задачи забыты, заметки потеряны, потому что они распределены по нескольким приложениям, сохраняющим заметки. Решение заключается вовсе не в прило...

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

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

Junior-разработчики — почему мы их нанимаем и как мы с ними работаем Всем привет! Меня зовут Катя Юдина, и я IT-рекрутмент менеджер в Авито. В этой статье расскажу, почему мы не боимся нанимать джуниоров, как мы к этому пришли и какую пользу мы с ними приносим друг другу. Статья будет полезна компаниям, которые хотят нанимать джуниоров, но по...

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

[Из песочницы] Опыт применения Coroutines и Retrofit2 Что это? Кто еще не читал документацию — настоятельно рекомендую к ознакомлению. Что пишет джетбрейнс: Сопрограммы упрощают асинхронное программирование, оставив все осложнения внутри библиотек. Логика программы может быть выражена последовательно в сопрограммах, а базовая б...

[Из песочницы] Пишем простую нейронную сеть с использованием математики и Numpy Зачем очередная статья про то, как писать нейронные сети с нуля? Увы, я не смог найти статьи, где были бы описаны теория и код с нуля до полностью работающей модели. Сразу предупреждаю, что тут будет много математики. Я предполагаю, что читатель знаком с основами линейной а...

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

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

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

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

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

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

Иван Углянский и Владимир Ситников на jug.msk.ru 30 мая 2019 года Иван Углянский и Владимир Ситников представили свои доклады «Ходячие объекты-мертвецы, или GC всегда прав» и «Java тормозит: CodeCache edition» на встрече московского сообщества Java-разработчиков jug.msk.ru. Читать дальше →

Как проектировать продукт, если вы решили выйти на зарубежный рынок Привет! Меня зовут Наташа, я UX-исследователь в компании, которая занимается проектированием, дизайном и исследованиями. Кроме участия в русскоязычных проектах (Рокетбанк, Точка и многое другое), мы пытаемся выходить и на зарубежный рынок. В этой статье я расскажу, на что с...

[Перевод] Почему стандарт USB нужно было делать таким сложным? USB Type-C Что такое USB Gen 1, Gen 2 и Gen 2×2? (предыстория от февраля 2019) Раньше найти USB побыстрее было просто: выбирайте USB 3.0 вместо USB 2.0. но теперь вам придётся разобраться в том, чем отличаются USB 3.2 Gen 1, Gen 2 и Gen 2×2 – а также в том, чем отличаются ...

[Из песочницы] Почему Swift может стать большим событием в глубинном обучении Здравствуй, Хабр! Представляю вашему вниманию перевод заинтересовавшей меня статьи «Why Swift May Be the Next Big Thing in Deep Learning» автора Max Pechyonkin, в которой автор рассуждает о языке на котором будет осуществляться глубокое обучение в ближайшие годы. Читать дал...

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

Как писать полиморфические программы c помощью Arrow Привет, Хабр! Меня зовут Артём Добровинский, я работаю в компании Finch. Предлагаю к прочтению статью одного из отцов библиотеки функционального программирования Arrow о том, как писать полиморфические программы. Часто люди, которые только начинают писать в функциональном...

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

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

К чему приложить прикладного лингвиста? “Что за дело? Это многих славных путь.” Н.А. Некрасов Всем привет! Меня зовут Карина, и я “совместитель” — совмещаю учёбу в магистратуре и работу технического писателя в Veeam Software. О том, как у меня это вышло, я и хочу рассказать. Заодно кто-то узнает, как можно прийти...

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

Unity Package Manager Unity — платформа, которая существует довольно давно и постоянно развивается. Однако, работая в ней с несколькими проектами одновременно, все еще можно столкнуться со сложностями в использовании общих исходников (.cs), библиотек (.dll) и остальных ассетов (изображения, звуки...

[Перевод] Изменения модальной презентации экранов в iOS 13 Всем привет! Меня зовут Илья, я из Tinkoff.ru. Я перевел для вас статью от Geoff Hackworth про то, как изменился стиль модальной презентации в iOS 13, на что это повлияло и как работает обратная совместимость с предыдущими версиями iOS и Xcode. Читать дальше →

[Из песочницы] 4 Причины, почему вы должны забыть о Redux в приложениях на React Я работаю с Реактом на протяжении почти 3 лет, использовал как Redux так и MobX и у меня к текущему моменту возник вопрос. Почему абсолютное большинство front-end разработчиков продолжают свято верить в то, что Redux + Redux Saga + Reselect + 100500 других библиотек «облегча...

[Перевод] Результаты бенчмарка сетевых плагинов Kubernetes (CNI) по сети 10 Гбит/с (обновлено: апрель 2019) Это обновление моего предыдущего бенчмарка, который теперь работает на Kubernetes 1.14 с актуальной версией CNI на апрель 2019 года. Во-первых, хочу поблагодарить команду Cilium: ребята помогли мне проверить и исправить скрипты мониторинга метрик. Что изменилось с ноября 20...

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

Как мы тестировали WD ActiveScale P100 для нашего S3-хранилища Мы периодически тестируем новое оборудование и ПО для использования в наших сервисах. Всегда хочется больше возможностей за разумные деньги. Сегодня расскажу, как мы разбирались в устройстве Western Digital ActiveScale P100 и пытались примерить его под наше S3-хранилище. Ср...

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

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

[Из песочницы] Инстансы по информационной безопасности на платформе attackdefense.com … Мы живем в эпоху больших событий и маленьких людей … Уинстон Черчилль Сегодня вашему вниманию представляем первую статью из цикла о разборе и прохождении лабораторных работ с ресурса attackdefense.com с поддержкой известного организатор конференций (Black Hat и Pentes...

Ненормативная схемотехника: семисегментный индикатор на ATtiny13 Мы простых путей не ищем. Предыдущая, она же первая моя публикация вызвала резонанс среди пользователей Хабра. Решил не останавливаться. Продолжаем выжимать невозможное из ATtiny13. Сразу же предупреждаю, описанные решения снова нестандартны, и у кого-то могут вызвать нег...

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

RC Машинки: Введение Всем привет, сегодня я бы хотел рассказать вам об RC Cars, машинках на радиоуправлении. Это хобби и достаточно веселое. Лично для себя я нахожу в нем хоть какую-то доли реальности. Сидеть целыми днями клепать кнопочки на Backbone и React уже стало рутиной и надо это дело ка...

[Из песочницы] BlaBlaCar стал тем, для чего не предназначался Ни для кого не секрет: в топе сейчас «идейные» бренды, активно развивающие свою философию, позиционирующие продукт через стиль жизни, отражение принципов потребителя. Вспомним тот же Apple с его «Think different»: гораздо круче чувствовать себя бросившим вызов системе гением...

Сетевой комбайн: ASUS RT-AC88U Смартфоны заменили нам КПК и телефоны, телевизоры объединили функции простого «ящика» и видеопроигрывателя, а роутеры так и остались обособленными устройствами. На производстве такое положение дел понятно и вопросов не вызывает, а в домашней среде выглядит странно. К чему ра...

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 2 Продолжаем разговор про 3Д шутер за выходные. Если что, то напоминаю, что это вторая половина: Часть первая: отрисовка стен Часть вторая: населяем наш мир + оконный интерфейс Как я и говорил, я всеми силами поддерживаю желание в студентах делать что-то своими руками. В ча...

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

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

Сотовые операторы «МТС», «МегаФон», «Билайн» и Tele2 в два раза поднимут цены на всех тарифных планах За последние полгода сотовые операторы из «большой четверки» значительно подняли цены на свои услуги для большинства абонентов, чем многие жители России конечно же остались недовольны, ведь теперь платить за прежние возможности и услуги нужно больше Сообщение Сотовые операт...

[Из песочницы] SSEGWSW: Server-Sent Events Gateway by Service Workers Привет! Меня зовут Саша и я работаю архитектором в Тинькофф Бизнес. В этой статье хочу рассказать о том, как преодолеть ограничение браузеров на количество открытых долгоживущих HTTP-соединений в рамках одного домена при помощи service worker. Если хотите — смело пропуска...

Почему так сложно выбрать, какое кино посмотреть (и что можно было бы сделать) Это — ответ на пост на животрепещущую тему «что посмотреть». Автор сам напросился поднял правильный вопрос, но почему-то свел все к странной психологической аналогии «заедания стресса», заявив: «Пока вы сами не знаете, что хотите посмотреть — никто вам не поможет. Будете туп...

Иван Пономарёв про Kafka Streams API на встрече jug.msk.ru 25 июля 2019 года прошла встреча московского сообщества Java-разработчиков jug.msk.ru, на которой Иван Пономарёв представил доклад про Kafka Streams API. Читать дальше →

Несколько программ из Play Store оказались заражены. Срочно удалите их со своего смартфона! В приложениях Google Play Store нашли вирусы. Опять Операционная система Android является очень удобной и приятной в использовании, ее можно кастомизировать по своему желанию и устанавливать сторонние лаунчеры… примерно такие доводы (и еще массу других) можно услышать ...

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

[Перевод] Управление памятью в Python Задумывались ли вы когда-нибудь о том, как данные, с которыми вы работаете, выглядят в недрах Python? О том, как переменные создаются и хранятся в памяти? О том, как и когда они удаляются? Материал, перевод которого мы публикуем, посвящён исследованиям глубин Python, в ходе ...

Улучшение производительности Zabbix + PostgreSQL при помощи партиционирования и индексирования Примерно год назад передо мной и моими коллегами была поставлена задача разобраться с использованием популярной системы мониторинга сетевой инфраструктуры — Zabbix. После изучения документации мы сразу же перешли к нагрузочному тестированию: хотели оценить с каким количество...

Software Defined Radio — как это работает? Часть 6 Привет, Хабр. В предыдущей части мы рассмотрели возможность передачи простых сигналов с помощью GNU Radio. Сейчас мы пойдем дальше, и посмотрим, как передать что-нибудь посложнее. Начнем с радиолюбительских сигналов WSPR, а затем создадим работающий программный QAM-модем. ...

Чем нам запомнилась последняя JokerConf На прошлой неделе в Санкт-Петербурге прошла международная Java-конференция Joker. Мы попросили наших ребят, которые её посетили, рассказать немного об организации и самых интересных, по их мнению, выступлениях. Кто-то отметил самые хайповые и весёлые, кто-то — самые актуальн...

BlessRNG или проверяем ГСЧ на честность В геймдеве часто нужно что-нибудь завязать на рандоме: у Unity для этого есть свой Random, а параллельно с ним существует System.Random. Когда-то давно на одном из проектов сложилось впечатление, что оба могут работать по-разному (хотя должны иметь равномерное распределени...

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

Тесты: производительность CPU 16-дюймового MacBook Pro осталась прежней, в отличие от GPU Не так давно Apple представила новый 16-дюймовый ноутбук MacBook Pro. Новинка получила новую ножничную клавиатуру, увеличенный дисплей с тонкими рамками, улучшенные динамики, а также была улучшена работа графики. Всё это звучит здорово, но наверняка уже заметили, что в своей...

Google: почему rel=canonical может игнорироваться на сайтах, использующих JS Сотрудник Google Джон Мюллер ответил в Reddit на вопрос касательно проблем с атрибутом rel=canonical на сайте, использующем Angular JS. Автор вопроса написал: «У меня проблемы с каноническими URL на сайте, и я считаю, что это связано с Angular JS, используемым в HTML. Для ты...

[Из песочницы] Пишем никому не нужный эмулятор Доброго времени суток. Довольно давно имелось желание написать эмулятор какого-нибудь процессора. А что может быть лучше, чем изобрести велосипед? Имя велосипеду — V16, от склеивания слова Virtual и, собственно, разрядности. Читать дальше →

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

[Перевод] Serverless CI/CD на AWS Было бы круто, если бы развертывание в формате копи-пейст осталось в прошлом, но, увы, дела обстоят иначе. Бывает, разработчикам предпочтительней именно такой метод поставки. Хоть сейчас пиши статью о том, почему это не есть гуд, но вы и без меня все знаете. С тенденцией к ...

Jaxb (XJC) генерация классов из XML Schema (XSD) с описаниями классов и полей в виде аннотаций. XJC плагин Думаю многие Java-разработчики которые хоть раз сталкивались с Web-сервисами, использовали генерацию Java DTO классов по описанию XML Schema (XSD). Jaxb с этим справляется на ура, не важно как его использовать, через xjc или wsimport вызов из командной строки, maven или grad...

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

Разработка Unix подобной OS — Многозадачность и системные вызовы (7) В предыдущей статье мы научились работать с виртуальным адресным пространством. Сегодня мы добавим поддержку многозадачности. Читать дальше →

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

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

Укрощение Горыныча, или Декомпиляция eBPF в Ghidra Автор статьи Nalen98 Добрый день! Тема моего исследования в рамках летней стажировки «Summer of Hack 2019» в компании Digital Security была «Декомпиляция eBPF в Ghidra». Нужно было разработать на языке Sleigh систему трансляции байткода eBPF в PCode Ghidra для возможност...

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

IT-фестиваль TechTrain 2019: как JUG.ru, JUGNsk и JUG.MSK участвовали в нём 24-25 августа 2019 года в Санкт-Петербурге прошёл IT-фестиваль TechTrain 2019, в котором приняли участие представители Java-сообществ JUG.ru (Санкт-Петербург), JUGNsk (Новосибирск) и JUG.MSK (Москва). Как прошла конференция, что было на совместном стенде JUG — обо всём этом ...

Apache, ViewState&Deserialisation В данной статье рассмотрим уязвимость на основе подмены сериализованного Java-объекта ViewState и метод её эксплуатации на примере web-приложения виртуальной машины с HackTheBox, использующей технологию Apache MyFaces. Читать дальше →

Инженерные подходы и чеклисты: как не сойти с ума в хаосе задач Привет! Меня зовут Олег, и я frontend-разработчик в Альфа-Банке. Я хочу рассказать вам немного философскую историю — про инженерный подход к разработке, про мою первую работу и грабли, которые я там собрал, про то, почему чеклисты очень важны (и спасают жизни). А еще про ...

Несколько подводных камней статической типизации в Python Думаю, мы все потихоньку уже привыкаем, что у Python есть аннотации типов: их завезли два релиза назад (3.5) в аннотации функций и методов (PEP 484), и в прошлом релизе (3.6) к переменным (PEP 526). Так как оба этих PEP были вдохновлены MyPy, расскажу, какие житейские радос...

Мой опыт прошивки Marlin 2 на Skr E3 DIP с драйверами 2208 UART. Доброго времени суток.Купил я пару недель назад Ender 3 Pro и сразу заказал к нему skr E3 DIP с драйверами 2208 UART в комплекте.После установки столкнулся с проблемой что последний офф марлин работает некорректно на плате от skr.Собрал сборку офф марлина почти без проблем и...

С Днём Радио и Связи! Короткая открытка по поводу Если обратиться к простому обывателю, то он наверняка скажет, что радио умирает, потому что на кухне радио точка давно обрезана, приёмник работает только на даче, а в машине любимые треки проигрываются с флешки или онлайн-плейлиста. Но мы-то с вами знаем, что не будь радио, ...

WhatsApp с 1-го числа перестанет работать на Android и iOS Все более широкий круг людей людей предпочитает общаться с использованием интернета и каких-либо сервисов, которые работают за счет него. Наиболее популярным среди таковых является WhatsApp, потому что постоянная аудитория пользователей такого не так давно перевалила Сообще...

Почему я перешел из UX в PM'а и потом в Lead PM'а и что изменилось? — Привет, Саша. Расскажи, пожалуйста, как долго ты работаешь в Wrike, и чем ты занимался до прихода в компанию? — Привет. В Wrike работаю шесть лет. До этого работал в другой организации и занимался там сначала search engine optimization и потом перешел в проджект-менеджеры....

4 способа удалить приложение в iOS 13 Удалить приложение в iOS 13 можно несколькими способами После выхода iOS 13 вечером 19 сентября мы получили множество вопросов о работе новой версии мобильной операционной системы от Apple. Удивительно, но один из самых распространенных касался удаления приложений: даже те, ...

Хакеры в рамках законов РФ После публикации статьи о моих исследования в качестве Grey hat, в комментариях к статье и в чате Telegram (@router_os) люди стали писать, что я нарушил все законы и меня посадят. И как обещал, спустя несколько месяцев я пишу эту статью и даже не из камеры СИЗО :-) Более т...

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

Зачем вам учить Go Источник картинки Go — относительно молодой, но популярный язык программирования. По данным опроса Stack Overflow, именно Golang получил третье место в рейтинге языков программирования, которые хотели бы освоить разработчики. В этой статье мы попробуем разобраться в причина...

Nullable Reference типы в C# 8.0 и статический анализ Не секрет, что Microsoft достаточно давно работает над выпуском восьмой версии C#. В недавно состоявшемся релизе Visual Studio 2019 новая версия языка (C# 8.0) уже доступна, но пока ещё только в качестве beta релиза. В планах этой новой версии есть несколько возможностей, р...

Две стороны медали по имени «Вечность» Я знаю, что значительная часть людей, которая интересуется проблематикой мозга, ищет ответ вовсе не на вопросы типа «Как связана лимбическая система с мозолистым телом?» Вы ищете ответ на вопрос: — Где именно в этих двух килограммах жирового студня живет то, что вы именуете...

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

[Перевод] Почему я отказался от Disqus и вам тоже пора Замена Disqus на Commento снизила размер страниц в 10 раз Когда я завёл блог, то установил Disqus для комментариев. Это был естественный выбор: сайты по всему интернету ставили Disqus, его легко настроить, и есть бесплатный вариант использования. Я спокойно интегрировал дв...

[Из песочницы] Генератор мемов на Ruby для привлечения интереса к языку По моему мнению язык Ruby перестал быть популярным как в 2012 — 2014 году и поэтому у меня возникло желание пока про язык совсем не забыли, попробовать его снова донести в массы, ведь Ruby по моему мнению самый удобный и практичный язык для веб разработки. Я с неделю назад ...

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

Как сделать триггер DAG'а в Airflow, используя Experimental API При подготовке наших образовательных программ мы периодически сталкиваемся со сложностями с точки зрения работы с некоторыми инструментами. И на тот момент, когда мы с ними сталикваемся, не всегда есть достаточно документации и статей, которые помогли бы с этой проблемой спр...

Полный перевод инструкции для асессоров Google Как ранжирует Google сайты, как работает его алгоритм? Этими вопросами можно долго мучиться и не находить на них ответа, в то время как давно доступна инструкция Google для асессоров. Безусловно, в ней нет алгоритмов, но есть принципы разметки сайтов в сети. Учитывая требова...

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

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

Исключения в Python теперь считаются анти-паттерном Что такое исключения? Из названия понятно — они возникают, когда в программе происходит исключительная ситуация. Вы спросите, почему исключения — анти-паттерн, и как они вообще относятся к типизации? Я попробовал разобраться, и теперь хочу обсудить это с вами, хабражители. ...

Разработка простейшей «прошивки» для ПЛИС, установленной в Redd. Часть 2. Программный код Итак, в прошлой статье мы разработали простейшую процессорную систему, с помощью которой планируем провести тест микросхемы ОЗУ, подключённой к ПЛИС комплекса Redd. Сегодня же мы сделаем для этой аппаратной среды программу на языке С++, а также разберёмся, как эту программу ...

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

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

Оптимизация запросов базы данных на примере B2B сервиса для строителей Как вырасти в 10 раз под количеству запросов к БД не переезжая на более производительный сервер и сохранить работоспособность системы? Я расскажу, как мы боролись с падением производительности нашей базы данных, как оптимизировали SQL запросы, чтобы обслуживать как можно бол...

Ломаем игру на память: целый детектив Эта игра не давала нам покоя несколько месяцев. Правила очень простые: надо выкладывать карточки с картинками и придумывать сказку. Потом вспомнить её. Простая штука на запоминание, подумали мы. Сто раз в такое играли, и всё наше образование просто вопит, что сейчас буд...

Пробуем preload (PHP 7.4) и RoadRunner Привет, Хабр!  Мы часто пишем и говорим о производительности PHP: как мы ей занимаемся в целом, как мы сэкономили 1 млн долларов при переходе на PHP 7.0, а также переводим разные материалы на эту тему. Это вызвано тем, что аудитория наших продуктов растёт, а масштабирован...

[Перевод] React, JSX, импорт ES модулей (в том числе динамический) в браузере без Webpack Эта статья — попытка свести воедино имеющиеся на текущий момент средства и выяснить, возможно ли создавать production ready приложения на React без предварительной компиляции сборщиками типа Webpack, или по крайней мере свести такую компиляцию к минимуму. Все описанное носит...

[Из песочницы] Скелетная анимация на стороне видеокарты Не так давно Unity представила ECS. В процессе изучения мне стала интерестно, а каким образом можно подружить анимацию и ECS. И в процессе поиска я наткнулся на интересную технику, которую применяли ребята из NORDVEUS в своем демо для доклада Unite Austin 2017. Unite Austin...

BudgetTracker — ещё один open-source инструмент для личного учета финансов Почему? Несколько лет назад я заинтересовался получением пассивного дохода и решил попробовать инвестировать с помощью p2b-площадок. Через некоторое время стало заметно, что денежные средства оказались очень сильно фрагментированы по площадкам, банкам, долгам, и это затрудня...

Опыт использования flatten-maven-plugin для упрощения версионирования в maven-проектах О нас В 1С мы разрабатываем не только платформу 1С: Предприятие на С++ и JavaScript, но и приложения на Java – в частности новую среду разработки Enterprise Development Tools на базе Eclipse и сервер глубоко интегрированного с платформой мессенджера – Системы Взаимодействия....

Очередной обход авторизации в публичных Wi-Fi сетях На эту тему уже было несколько статей — Как обойти SMS-идентификацию при подключении к публичным Wi-Fi сетям? и И еще раз: не пользуйтесь публичным WiFi, но появляются новые методы авторизации, поэтому пришло время поговорить об этом еще раз. Недавно в московском кафе я натк...

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

Эволюция кластерного взаимодействия. Как мы внедряли ActiveMQ и Hazelcast В течение последних 7 лет я вместе с командой занимаюсь поддержкой и развитием ядра продукта RealtimeBoard: клиент-серверным и кластерным взаимодействием, работой с базой данных. У нас Java с разными библиотеками на борту. Запускается всё вне контейнера, через Maven-плагин....

Почему для нового проекта я взял Robot Framework Недавно я сменил проект — пришел в новую разработку, где до меня не было никакого тестирования, ни ручного, ни автоматического. Условий на инструментарий (за исключением того, что это Python) заказчик не накладывал, так что я сделал собственный выбор. В этой статье я расскаж...

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

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

Astra Linux и Liberica JDK – российское платформенное решение для работы Java-приложений ГК Astra Linux первой из разработчиков отечественных операционных систем подтвердила совместимость последних версий ОС Astra Linux c российским Java-дистрибутивом Liberica JDK, программным продуктом компании BellSoft.

[Перевод] Gap — светлое будущее для отступов в Flexbox (как в Grid) Одна из моих любимых частей спецификации CSS Grid — это grid-gap. Они позволяют легко создавать отступы между элементами внутри сетки. Margins и приёмы, к которым мы прибегаем, чтобы реализовать их в разных ситуациях, долгое время были одним из главных моментов, раздражаю...

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

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

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

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

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

Univention Corporate Server (UCS) — установка простого и удобного LDAP сервера с web-панелью и его связка с Nextcloud Рано или поздно на любом маленьком или среднем предприятии возникает задача по созданию единого центра авторизации пользователей в многочисленных сервисах и порталах компании. Среди кандидатов на такой центр авторизации сразу приходит в голову Microsoft Active Directory ил...

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

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

Создаем несложный шахматный ИИ: 5 простых этапов Перевели для вас статью Лори Хартикка (Lauri Hartikka) о создании простейшего ИИ для шахмат. Она написана еще в 2017 году, но базовые принципы остались теми же. Все файлы, которые использовал Лори, тоже доступны. Простой искусственный интеллект, который умеет играть в ш...

[Из песочницы] Phoenix LiveView: когда вам больше не нужен JavaScript* * для создания динамической страницы Не так давно 12.12.2018 был анонсирован выход новой библиотеки для фанатов phoenix framework под названием Phoenix LiveView. Я бы хотел поделиться с вами впечатлениями от ее использования и phoenix в целом, а в следующей статье попробова...

[Из песочницы] Микросервисная архитектура = распределенные вычисления Приветствую всех читателей Хабра! Меня зовут Игорь Рыбаков и я технический директор в казахстанской IT-компании DAR. Сегодня я поделюсь с вами пониманием и использованием принципов параллельных вычислений в современных информационных системах. Чтобы глубже разобраться в этом...

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

Установка Chrome-софтфона 3CX через Gsuite и миграция записей с Google Drive Централизованная установка расширения 3CX для Chrome через GSuite В 3CX V16 Update 4 Alpha появилось новое расширение для Chrome, позволяющее звонить без открытия веб-клиента. Вы можете работать с любым настольным приложением, но при поступлении входящего вызова в нижнем пра...

[Из песочницы] Строим домашний CI/CD при помощи GitHub Actions и Python Как то вечером, придя домой с работы, я решил немного позаниматься домашним проектом. Я сделал несколько правок и сразу захотел поэкспериментировать с ними. Но до экспериментов мне пришлось заходить на VPS, пулить изменения, пересобирать контейнер и запускать его. Тут я и ре...

Ачивки "сяоми" и "шаоми" Здравствуйте, господа. У меня давно возник вопрос: почему ачивки «сяоми» и «шаоми» считаются плохими, если они выдаются «за свежие и удачные шутки». Разве свежие и удачные шутки-это плохо?

Приглашаем на SphinxSearch-meetup SuperJob 28 февраля в офисе SuperJob состоится встреча разработчиков, посвящённая системе полнотекстового поиска Sphinx. Специалисты Avito и SuperJob поделятся своим опытом использования технологии. Участники встречи смогут задать свои вопросы автору Sphinx Андрею Аксёнову. Традицио...

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

Праздник или выходной? Приближается Первое Мая, уважаемые хабробвчане. Не так давно я прояснил для себя, как важно продолжать задавать себе простые вопросы, даже если кажется, что ответ нам уже известен. Итак, что мы празднуем? Читать дальше →

Кругом враги. Как параноику планировать свою работу Казалось бы, что сложного может быть в планировании своей работы? Берёшь листок бумаги, записываешь на нём задачи, делаешь — всё просто. Но в реальности планирование почему-то не работает «из коробки». Приходит вот такой страшный зверь и самым наглым образом всё портит. К...

[Перевод] Не потерял ли GraphQL актуальности в эпоху HTTP/2? Недавно Фил Стерджен опубликовал твит, который сильно задел любителей GraphQL. В этом твите речь шла о том, что GraphQL — это, по определению, технология, которая противоречит сущности HTTP/2. О том, что уже вышел стандарт HTTP/3, и о том, что автор твита не очень понимает т...

Фурор на рынке IoT произведет новый SDK-пакет для СнК IoT Wi-Fi W600 Пекинская компания Winner Micro, специализирующаяся на проектировании интегральных схем (IC), недавно представила свой новый SDK-пакет для СнК IoT Wi-Fi W600. Открытый инструментальный пакет поддерживает процессы компиляции и отладки с использованием Eclipse + IDE + GCC + Op...

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

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

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

Введение в аннотации типов Python. Продолжение Автор иллюстрации — Magdalena Tomczyk В первой части статьи я описал основы использования аннотаций типов. Однако несколько важных моментов остались не рассмотрены. Во-первых, дженерики — важный механизм, во-вторых иногда может оказаться полезным узнать информацию об ожидае...

Кто кушает память нашего iPhone? Чистим яблоки Все современные устройства дивным образам подчиняются второму началу термодинамики — энтропия (в простонародье — хаос) возрастает, если к системе не прикладывать внешние усилия. За примерно 3 года использования своего iPhone я особо не прикладывал усилий к очистке памяти тел...

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

Как сделать два приложения из одного. Опыт Тинькофф Джуниор Привет, меня зовут Андрей и я занимаюсь приложениями Тинькофф и Тинькофф Джуниор для платформы Android. Хочу рассказать о том, как мы собираем два похожих приложения из одной кодовой базы. Тинькофф Джуниор — это мобильное банковское приложение, ориентированное на детей ...

[Из песочницы] Автоматический кошачий туалет Может ли «умный дом» дом считаться «умным» если любимые кошки ходят в лоток с наполнителем? Конечно, мы многое прощаем своим любимцам! Но, согласитесь, что каждый день, по нескольку раз, подметать наполнитель вокруг лотка и определять по запаху, что его пора сменить — неско...

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

[Перевод] ServiceLoader: встроенный DI-фреймворк, о котором вы, возможно, никогда не слышали Салют, друзья. Уже в эту пятницу пройдет первое занятие в новой группе курса «Разработчик Java». Именно этому курсу и будет посвящена текущая публикация. Многие из java-разработчиков для внедрения зависимостей используют Spring. Некоторые, возможно, пробовали Google Guice...

Что-что случится 1 февраля? Не то что бы, конечно, это было первое обсуждение вопроса на Хабре. Однако до сего момента в основном обсуждались последствия, в то время как, на наш взгляд, куда интереснее первопричины. Итак, на 1 февраля запланирован DNS Flag Day. Эффекты этого события будут наступать по...

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

Митя Александров и Дмитрий Константинов на встрече jug.msk.ru 23 октября 2019 года, за пару дней до конференции Joker 2019, состоялась встреча московского сообщества Java-разработчиков jug.msk.ru. С докладами выступили Митя Александров (про MicroProfile) и Дмитрий Константинов (про Cassandra). Читать дальше →

Иван Осипов и Юрий Артамонов про Kotlin и плагины к IntelliJ IDEA на встрече jug.msk.ru 14 ноября 2019 года на встрече московского сообщества Java-разработчиков jug.msk.ru Иван Осипов и Юрий Артамонов представили доклады про миграцию приложений с Java на Kotlin и про написание плагинов для IntelliJ IDEA. Читать дальше →

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

[Из песочницы] Децентрализованная аффилейт-программа с открытым исходным кодом на блокчейне Waves Децентрализованная аффилейт-программа на блокчейне Waves, реализованная в рамках гранта Waves Labs командой Bettex. Пост не является рекламным! Программа имеет открытый исходный код, ее использование и распространение бесплатно. Применение программы стимулирует развитие dAp...

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

Слава богу, что я не менеджер Я довольно давно работаю DBA + database performance expert + еще много чего в одной крупной компании. Работа очень комфортная, но какое-то время я переживал из-за того, что моя позиция тупиковая. Расти по карьерной лестнице мне решительно невозможно: я единственный человек в...

Тестирование процессора Intel Core i9-9820X в играх Мы продолжаем рассматривать вопрос игровой производительности обновленных процессоров Intel Skylake-X. Напомним, что Core i9-9820X – это решение с 10 ядрами и 20 потоками. Уже сразу можно говорить об эмоциях использования многоядерных процессоров в играх и далеко не радужных...

Помощник Google теперь будет читать сообщения WhatsApp и Telegram Чтобы воспользоваться этим навыком ассистента ему необходимо разрешить доступ к уведомлениям. После команды «прочти [мои] сообщения», помощник поочередно зачитает вслух последние уведомления, указав из какого приложения они поступили. Все сообщения отражаются в виде карточки...

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

[recovery mode] Популярные вопросы разработчика о тестировании Эта статья — не теоретическое руководство по написанию тестов и не how-to по использованию инструментария в определенном стеке, а ряд популярных вопросов, иногда даже у многих не сформировавшихся, на которые я постараюсь дать ответы. Источником этих вопросов служат коллеги, ...

Как жить с профвыгоранием. Видео с Badoo Techleads Meetup #4 Привет! Собрали видео и слайды с четвёртого Badoo Techleads Meetup. Это традиционная встреча тимлидов, CTO и руководителей разработки в нашем офисе. Тему подняли непростую: как бороться с профессиональным выгоранием, мотивировать команду и самих себя. Мы намеренно практи...

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

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

GPS для навозного жука: мультимодальная система ориентирования Есть вопросы, которые мы задавали либо пытались на них ответить: почему небо синее, сколько звезд на небосводе, кто сильнее — белая акула или косатка и т.д. А есть вопросы, которые мы не задавали, но ответ от этого менее интересным не становится. К таким вопросам можно отн...

Project Mainline в Android 10 Вчера вышло очередное обновление ОС для мобильных устройств от Google. Одним из главных нововведений Android 10 стал «Project Mainline». Попробую разобраться что это, для чего и как работает. Читать дальше →

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

[Перевод] Пишем свой сетевой слой на Swift: протокол-ориентированный подход Сейчас практически 100% приложений используют работу с сетью, поэтому вопрос организации и использования сетевого слоя встает перед каждым. Есть два основных подхода к решению этой проблемы, это либо использование сторонних библиотек, либо собственная реализация сетевого с...

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

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

Вице-президент Xiaomi гарантирует: за два года работы производительность Redmi 8 и Redmi 8A снизится не более чем на 15% Компания Xiaomi формально представила смартфоны Redmi 8 и Redmi 8A в Китае всего два дня назад, но в продажу они поступят только 15 октября. А пока до старта продаж остается немного времени, глава бренда и вице-президент Xiaomi Лю Вейбинг (Лю Вейбинг) продолжает рассказ...

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

Функция совместного использования экрана появилась в мобильной версии Skype Настольная версия программы Skype уже давно позволяет пользователям осуществлять совместное использование экрана. Разработчики объявили о том, что эта популярная функция теперь доступна пользователям мобильной версии Skype для программных платформ Android и iOS.

Работа с Worker “как хочется“, а не “как можно” В этой статье будет использоваться ГРЯЗНЫЙ, небезопасный, "костыльный", страшный и т. д. метод eval. Слабонервным не читать! Сразу скажу, что некоторые проблемы удобства использования решить не удалось: в коде, который будет передан в worker, нельзя использовать замыкание. ...

Какие архитектурные улучшения получила iOS 13 Во время презентации iOS 13 на WWDC 2019, Крейг Федериги пообещал прирост в скорости работы новой операционной системы. По заявлениям Apple, алгоритм распознавания лиц Face ID стал работать на 30% быстрее, а скорость запуска приложений увеличилась до двух раз. Подобных пока...

Любишь пользоваться читами, люби и эссе писать: второй шанс для читеров от Bethesda Все мы знаем, что Fallout 76 славиться не только кучей багов, но и обилием читеров. Bethesda активно борется с данной категорией геймеров, однако вместо обычного бана навсегда, компания решила скреативить. Согласно нескольким источникам, забаненным пользователям на почту нач...

C/C++ из Python (C API) Продолжаем тему как вызывать C/C++ из Python3. Теперь используем C API для создания модуля, на этом примере мы сможем разобраться как работает cffi и прочие библиотеки упрощающие нам жизнь. Потому что на мой взгляд это самый трудный способ. Читать дальше →

Запускаем systemd в контейнере Мы давно следим за темой использования systemd в контейнерах. Еще в 2014 году наш инженер по безопасности Дэниел Уолш (Daniel Walsh) написал статью Running systemd within a Docker Container, а еще через пару лет – другую, которая называлась Running systemd in a non-privilege...

XVI конференция разработчиков свободных программ Недавно в славном городе Калуге проходила XVI конференция разработчиков свободных программ. Конференцию организовывала компания “Базальт-СПО”. Embox, являясь свободным проектом, также выступал на конференции. Я, традиционно, не буду делать обзора всех докладов, а расскажу ...

Опыт участия в программе F2P Campus Меня периодически мотает по разным странам (если точнее, по разным программам акселерации). Стараюсь делиться опытом, т.к. у нас что-то совсем глухо с этим в стране. А существующие инвест фонды берут стартапы/команды на скотских условиях. Можно почитать про наш опыт в Y Comb...

Neutralinojs — что ты такое? Или UNIX way там, где не ждали Недавно я совершенно случайно наткнулся на простую рекламную заметочку "Neutralinojs — альтернатива Electron, потребляющая меньше памяти", рассказывающую о том, что есть такая крутая вещь как Neutralinojs. Заметочка, как и следует ей быть, совсем короткая и не несёт никакой ...

Как договориться с внутренним критиком «У меня ничего не выйдет», «даже пробовать не буду», «они меня засмеют и не послушают», «не нужно было ничего затевать». Если такие мысли не дают вам покоя, вероятно, ваш внутренний критик торжествует. Но не стоит давать ему слишком много полномочий. Почему чрезмерная самок...

[Из песочницы] Менеджмент для начинающих: руководитель или завхоз Теория “менеджмента” немало преуспела в анализе поведения руководителей, в изучении причин их успехов и неудач, в систематизации знаний о том, как развивать в себе сильные качества оных, и бороться со слабыми. Особым вниманием у нас пользуются зарубежные теоретики. Спроси...

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

[Перевод] Отлаживаем развертывание ПО со strace Моя основная работа — это, по большей части, развертывание систем ПО, то есть уйму времени я трачу, пытаясь ответить на такие вот вопросы: У разработчика это ПО работает, а у меня нет. Почему? Вчера это ПО у меня работало, а сегодня нет. Почему? Это — своего рода отладка,...

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

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

[Перевод] WolframClientForPython | Новая клиентская библиотека Wolfram Language для Python Оригинал перевода в моём блоге Получение полного доступа к языку Wolfram Language из языка Python Язык Wolfram (Wolfram Language) дает программистам в руки уникальный язык с огромным множеством сложных алгоритмов, а также встроенных знаний об окружающем мире. На протяжении...

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

[Из песочницы] Custom Bottom Sheet: как это должно работать Предисловие Не так давно я прочитал статью о Bottom Sheet'e и, посовещавшись с коллегами, принял решение внедрить данную штуку в наше приложение. Потратив достаточно часов с целью научить Bottom Sheet выезжать в несколько шагов (like Google Maps), я осознал его тупость и огр...

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

[Из песочницы] Модели в информационной безопасности Добрый день, Хабровчане! 1. Вместо вступления Недавно опубликованный перевод Ментальные модели ИБ заинтересовал меня не только общим посылом (в частности, применение моделей в обучении – острый для меня вопрос, ведь учёба – процесс непрерывный), но и списком ссылок на модел...

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

[recovery mode] Вышел Embarcadero RAD Studio 10.3.2 или то что мертво… умерло Привет, Хабр! Присаживайтесь поудобней, заварите себе чайку, ибо я пишу немного затянуто и через правое ухо. Итак, Вы готовы? Отлично, тогда приступаем. ВНИМАНИЕ! Информация, описанная ниже, написана исключительно в исследовательских целях и не предназначена для использовани...

Почему программист — не самая перспективная профессия Юноше, обдумывающему житье, Решающему — делать жизнь с кого, Cкажу, не задумываясь — делай ее C товарища… Склифосовского ! Привет, Хабр! Следуя завету древних “хочешь разобраться в вопросе — напиши об этом статью”, я решил разобраться в вопросе — а какие собственно спец...

Workers архитектуры Clean Swift Привет, читатель! Ранее мы разобрали как устроен VIP цикл и как совершать переходы между с ценами с передачей данных. Теперь нужно разобраться как разгрузить наш Interactor от переизбытка логики и вынести ее часть для повторного использования другими сценами. И в этом нам ...

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

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

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

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

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

[Из песочницы] Кросс-компиляция OpenCV 4 для Raspberry Pi и BeagleBone Black Всем привет. Когда я захотел установить OpenCV на свою малинку для одного проекта, я был сильно разочарован результатом. Оказалось, что для новых версий образов Raspbian с поддержкой Python3.7 невозможно установить из репозитория библиотеку столь привычной командой pip inst...

Персонализируй это: как мы в QIWI работаем с рекомендациями Всем привет! Меня зовут Лидия, я тимлид небольшой DataScience-команды в QIWI. Мы с ребятами довольно часто сталкиваемся с задачей исследования потребностей клиентов, и в этом посте мне бы хотелось поделиться мыслями о том, как начать тему с сегментацией и какие подходы мо...

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

[Из песочницы] Попытки начать обучение ребенка программированию с Minecraft pocket edition На дворе осень и сын все чаще остается дома, уткнувшись в телефон или планшет, слабо реагируя на внешние раздражители. Меня это огорчает. Сам я начал программировать, как мне кажется, с того, что к моему первому компьютеру БК 0010-01 игры то на кассетах в комплекте шли, а в...

[Перевод] Выжимаем максимум из графических калькуляторов: игры на TI-83 В 80-х и 90-х не каждому ребёнку родители покупали Game Boy. Я был одним из таких детей, и оставался единственным на игровой площадке, у кого не было GB. Вместо консоли у меня был графический калькулятор. Мой отец горел сильным желанием с детства готовить меня к SAT. Поэто...

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

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

Нагрузочное тестирование CPU и SSD облачных хостеров: сравниваем Selectel, Servers, MCS и Я.Облако Мы постоянно работаем с интернет-магазинами и сервисами и периодически у наших клиентов встает вопрос, где же им хостить свои проекты. Вопросы эти более чем обыденные: какой хостинг выбрать, в каком регионе, что решать с конфигурацией. В последние годы все большее предпочт...

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