Социальные сети Рунета
Понедельник, 6 мая 2024

React и Code Splitting С code splitting я познакомился очень давно, в году так 2008, когда Яндекс немного подвис, и скрипты Яндекс.Директа, синхронно подключенные на сайте, просто этот сайт убили. Вообще в те времена было нормой, если ваши "скрипты" это 10 файлов которые вы подключаете в единствен...

Автоматизация сети с помощью Ansible: модуль command Говоря о типовых сценариях автоматизации сети, никак не обойтись без набора модулей command. Благодаря этим модулям, Ansible позволяет запускать команды на сетевом оборудовании так, как будто вы вводите их прямо с консоли. При этом вывод команд не просто проскакивает в окне ...

Качаем 16GB торрент через планшет с 4GB свободного места Задача: Есть ПК без интернета но есть возможность перекинуть файл по USB. Есть планшет с интернетом с которого этот файл можно перекинуть. На планшет можно скачать нужный торрент но не достаточно свободного места. Файл в торренте один и большой. Путь к решению: Я запустил т...

[Из песочницы] Prometheus + Grafana + Node Exporter + Docker в Azure c уведомлениями в Telegram Для начала подготовим виртуальную машину, для этого напишем небольшой скрипт, который разворачивает и автоматизирует некоторые рутинные операции, скрипт использует Azure Cli: project.sh#!/bin/bash echo "AZURE VM Create" echo "Azure Account:" echo "Az...

[Перевод] composer и автодополнение командной строки Так как я все больше и больше добавляю свои скрипты в файлы composer.json, было бы полезно иметь автозаполнение для команды composer в bash. Мой вопрос в Твиттере не дал немедленного решения, и, поскольку я уже делал нечто подобное для Phing, я закатал рукава и написал своё ...

[Перевод] Предварительная загрузка в PHP 7.4 Перевод данной статьи подготовлен специально для студентов курса «Backend разработчик на PHP». В PHP 7.4 добавлена предварительная загрузка — возможность, которая позволяет значительно повысить производительность кода. О предзагрузке в двух словах. Для предварительной...

Освобождаем руки нескольким аналитикам: API Livy для автоматизации типовых банковских задач Привет, Хабр! Не секрет, что для оценки платежеспособности клиентов банки используют данные из различных источников (кредитное бюро, мобильные операторы и т.д.). Количество внешних партнёров может достигать нескольких десятков, а аналитиков в нашей команде наберётся лишь не...

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

IR интерфейс, Raspberry и LIRC Моя задача сечас — научиться отправлять команды кондиционерам и другим устройствам в доме. Исходно эти устройства имеют только IR remote control. Для решения этой задачи у меня есть Raspberry Pi и IR transceiver shield. В статье можно найти конфиги, команды, советы и немного...

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

[Из песочницы] Импорт в Я.Коннект из файла списка пользователей через API Столкнулся с проблемой «ненахода» актуального скрипта для массового создания сотрудников. Проблема связана с переходом Яндекса с PDD (Почта для домена), на Я.Коннект с новой версией API. Скрипты которые мне попадались, были написаны только для «старой» версии API, и потому...

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

[Перевод] Парсим 25Tb с помощью AWK и R Как читать эту статью: прошу прощения за то, что текст получился таким длинным и хаотичным. Чтобы сэкономить ваше время, я каждую главу начинаю со вступления «Чему я научился», в котором одним-двумя предложениями излагаю суть главы. «Просто покажи решение!» Если вы хотите ...

Мой опыт 3D печати игрушки танка Т-72 У меня на новый год нежданно-негаданно подарочком появился дельта принтер 3D FLSUN-QQ. Теперь я пытаюсь его освоить. Что-то получается просто, что-то не получается вовсе или получается с трудом. Процесс освоения 3D печати интересен, но не все идет гладко. Вообще мое предст...

Разрабатываем утилиту на GraalVM Постановка задачи Периодически у меня возникает задача поделиться файлами по локальной сети, например, с коллегой по проекту. Решений для этого может быть очень много — Samba / FTP / scp. Можно просто залить файл в общедоступное публичное место типа Google Drive, приложить к...

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

Redux — пересмотр логики reducer'a и actions На днях ковыряясь в множестве файлов redux'a, где по логике файлы вынесены в reducers, actions, константы типов actions. Bсе это оказалось весьма не простая задача держа все эти типы файлов у себя в голове и прослеживать логику. И… эврика, появилась идея упрощения написания...

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

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

Google: ранжирование файла robots.txt или Sitemap – это плохой знак для сайта На днях сотрудники Google Гэри Илш и Джон Мюллер опубликовали несколько твитов на тему индексации файлов robots.txt и Sitemap. Обсуждение начал Гэри Илш, который заявил, что файл robots.txt может индексироваться и ранжироваться в результатах поиска Google. По его словам, «c ...

[Из песочницы] Трансформация кода в Android Вместо вступления Всё началось с того, что мне захотелось изучить тонкости настройки Gradle, понять его возможности в Android разработке (да и вообще). Начал с жизненного цикла и книги, постепенно писал простые таски, попробовал создать свой первый Gradle плагин (в buildSrc)...

Команда cp: тонкости копирования папок с файлами в Linux В этой статье будут раскрыты некоторые неочевидные вещи связанные с использованием wildcards при копировании, неоднозначное поведение команды cp при копировании, а также способы позволяющие корректно копировать огромное количество файлов без пропусков и вылетов. Допустим ...

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

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

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

[Перевод] Новое в Git 3: замыкания Git — популярная система контроля версий. В ней атомарное изменение одного или нескольких файлов называется коммитом, а несколько последовательно идущих коммитов объединяются в ветку. Ветки используются для того, чтобы реализовывать новые идеи (фичи). Случается, что идея ок...

Вредонос Sustes обновился и теперь распространяется через уязвимость в Exim (CVE-2019-10149) Вредонос Sustes обновился и теперь распространяется через уязвимость в Exim (CVE-2019-10149). Новая волна криптомайнера Sustes теперь использует для заражений июньскую уязвимость в почтовом сервере Exim. Начиная с 11 августа наши сетевые сенсоры PT Network Attack Discover...

Как создавать успешные команды и управлять ими Снова всех приветствую! Как и обещал, я продолжаю писать о менеджменте в IT. В прошлой статье я рассказал о поиске и найме новых игроков в команду. Но какими бы классными и талантливыми людьми они ни были, они пока не команда. Можно провести параллель с футболом: вы можете к...

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

Статистика сайта и своё маленькое хранилище Утилита Webalizer и инструмент Google Analytics помогали мне много лет получать представление о том, что происходит на веб сайтах. Сейчас я понимаю, что они дают очень мало полезной информации. Имея доступ к своему файлу access.log, разобраться со статистикой очень просто и ...

[Из песочницы] Первое рабочее место или как начать разработку API на Node.js Введение В данной статье хотел бы поделиться своими эмоциями и приобретенными навыками в разработке первого REST API на Node.js с использованием TypeScript, как говорится, с нуля. История достаточно банальная: «Закончил университет, получил диплом. Куда же пойти работать?» К...

Как дискомфорт помогает нам совершенствовать процесс разработки Я тимлид и моя задача — обеспечить продуктивную работу команды. Это непросто, поскольку готового рецепта успеха не существует. Конечно, есть признанные методологии: Agile, Lean, Value Stream Mapping. Они дают общие ориентиры и ценности, что уже неплохо, но это лишь ориенти...

[Перевод] Используйте __main__.py Зачем нужен __init__.py знает, наверное, любой питонист, но что насчёт __main__.py? Я видел немало проектов либо рабочих, либо на Github, которые не используют это магический файл, хотя могли бы сделать свою жизнь проще. На мой взгляд, __main__.py это лучший способ для взаим...

Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов В данном разделе я рассматриваю часть возможностей по кастомизации, которые потребовались мне. Это не полный список того, что предлагает buildroot, но они вполне рабочие и не требуют вмешательства в файлы самого buildroot. Читать дальше →

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

Слёрм Базовый в Москве. День Третий. Сбор контрразведчиков и кластера, летающий Павел Селиванов и «Слёрм Окрыляет!» Каюсь. Я чуть опоздал. Всего минут на 10. И первая фраза которую я услышал от Сергея Бондарева: «… не забывайте, это лежит в секрете». И Сергей загадочно блеснул очками. Я вздрогнул и оглянулся кругом. У меня возникло ощущение, что я промахнулся этажом и попал на форум контр...

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

[Из песочницы] IBM Integration Bus и с чем его едят Добрый день, уважаемый читатель. Существует такой класс продуктов как ESB. Как упоминается в Википедии это — связующее программное обеспечение, обеспечивающее централизованный и унифицированный событийно-ориентированный обмен сообщениями между… и далее по тексту. Примеров...

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

Ember.js: (снова) время попробовать Я написал эту статью по мотивам выступления, которое я делал в meetup-группе Berlin.js. Последнее время выходит очень мало русскоязычных материалов об этом достаточно популярном и стабильном фреймворке и я решил немного исправить эту ситуацию. Вы учите Ember.js один раз, а ...

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

Один стендап в Яндекс.Такси, или Чему нужно научить бэкенд-разработчика Моё имя Олег Ермаков, я работаю в команде бэкенд-разработки приложения Яндекс.Такси. У нас принято проводить ежедневные стендапы, где каждый из нас рассказывает о сделанных за день задачах. Вот как это бывает… Имена сотрудников может и изменены, а вот задачи вполне себе реа...

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

C файлами Google Docs теперь можно работать в офлайн-режиме Достаточно всего лишь активировать офлайн-доступ.

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

[recovery mode] Расширение (плагин) SketchUp для проектирования мебели программистом При расчете стоимости новой кухни цена оказалась такой большой, что я решил сделать её сам так как это обойдется в два раза дешевле. Для тренировки решил сделать для себя рабочий стол. Достаточно быстро пришло понимание: чтобы сделать хорошую вещь нужно сделать 3D модель. Эт...

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

Поднимаем сервер 1с с публикацией базы и веб сервисов на Linux Сегодня я бы хотел рассказать, как поднять сервер 1с на linux debian 9 с публикацией web-сервисов. Что такое web-сервисы 1с? Web-сервисы — это один из механизмов платформы, используемых для интеграции с другими информационными системами. Он является средством поддержки...

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

PowerShell, дамп моего опыта Введение Эта статья адресована тем, кто уже познакомился с основами PowerShell, запускал какие-то скрипты со stackexchange и, вероятно, имеет свой текстовый файл с теми или иными сниппетами облегчающими повседневную работу. Целью её написания есть уменьшение энтропии, увелич...

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

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

Обыскать 314 км² за 10 часов — финальное сражение инженеров-поисковиков против леса Представьте задачу — в лесу пропали два человека. Один из них еще подвижен, другой лежит на месте и не может пошевелиться. Известна точка, где их видели последний раз. Радиус поиска вокруг нее — 10 километров. Получается территория площадью 314 км2. У вас есть десять часов...

Удалённое управление эмулятором Fceux с помощью Python В статье я опишу, как сделать эмулятор NES управляемым удалённо, и сервер для удалённой отправки команд на него. Зачем это нужно? Некоторые эмуляторы различных игровых консолей, в том числе и Fceux, позволяют писать и запускать пользовательские скрипты на Lua. Но Lua – пл...

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

Работа с cron под Android и добавление shell-скрипта в автозапуск при загрузке устройства В связи с тем, что мобильные устройства уже давно имеют обширный функционал, то задачи автоматизации можно смело переносить и на них. И, как нельзя лучше, здесь так же хорошо подходит cron для их выполнения. Но если в «обычных» Linux системах настройка cron занимает мало в...

[Перевод] Приключения неуловимой малвари, часть II: скрытные VBA-скрипты Эта статья является частью серии «Fileless Malware». Все остальные части серии: Приключения неуловимой малвари, часть I Приключения неуловимой малвари, часть II: cкрытные VBA-cкрипты (мы тут) Я поклонник сайта гибридного анализа (hybrid analysis, далее HA). Это сво...

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

Jetson Nano: $99 за маленький, но мощный компьютер NVIDIA CUDA-X для работы со всеми ИИ-моделями Маленький, но мощный компьютер для задач ИИ на базе CUDA-X™ обеспечивает производительность в 472 гигафлопс в сегодняшних приложениях для ИИ при энергопотреблении всего 5 Вт. Представленный на GPU Technology Conference генеральным директором NVIDIA Дженсеном Хуанго...

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

Наш первый обед вместе: почему и как мы проводим тестовый день Привет, Хабр! Пару месяцев назад мои коллеги рассказывали про расширение команды в 5 раз: от 50 тогда до 250 разработчиков к концу 2020 года. Как вы могли догадаться, сейчас мы уделяем много внимания найму. При этом, мы не готовы «брать количеством» нанимая всех подряд, мол ...

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

Разрушение Silo через адаптацию VeriSM™ подхода Силосная культура – бич современного бизнеса любого уровня. Главный признак ее возникновения – замкнутость подразделений внутри своих бизнес-процессов, что непременно ведет к смещению фокуса с глобальных задач компании на удовлетворение собственных. Силос по своей сути это б...

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

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

[Из песочницы] Как начать программировать в Adobe Illustrator. Скрипт Expand Clipping Mask. Часть первая Сразу хочу предупредить, что эта серия постов не для матёрых программистов и даже не для программистов вообще. Понимаю, что это звучит крайне вызывающе, учитывая IT-тематику ресурса, и все же позвольте объяснить… В качестве аудитории, я вижу обычных дизайнеров, которые хотел...

[Из песочницы] Ежедневные отчёты по состоянию виртуальных машин с помощью R и PowerShell Вступление День добрый. Уже пол года у нас работает скрипт (точнее набор скриптов), генерирующий отчёты по состоянию виртуальных машин (и не только). Решил поделиться опытом создания и самим кодом. Рассчитываю на критику и на то, что данный материал может быть кому-то полез...

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

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

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

Качество — ответственность команды. Наш QA опыт Я работаю QA-инженером в Miro. Расскажу о нашем эксперименте по передаче разработчикам части задач по тестированию и трансформации роли тестера в роль QA (Quality assurance). Сначала коротко о нашем процессе разработки. У нас ежедневные клиентские релизы и от 3 до 5 серверн...

[Из песочницы] Программируем проходной выключатель. MicroPython на esp8266 (sonoff) с OTA. Часть 1 Всем привет. В процессе ремонта возникла задача сделать проходной выключатель. Конечно же захотелось сделать самым простым и удобным способом, добавив базовые функции управления с телефона. Я выбрал наиболее простую и удобную технологию для этого (конечно, на свой взгляд) —...

[Из песочницы] Шифрование конфигурационных файлов Предыстория Мне поступила задача по настройке CI. Было принято решение использовать трансформацию конфигурационных файлов и конфиденциальные данные хранить в зашифрованном виде. Изучив документацию по шифрованию, вот что было сделано. Key Container В каждой ОС Windows есть...

[Из песочницы] Мониторинг температур на предприятии Пришла задача придумать “что нибудь” для просмотра и контроля за температурами на производстве. Был уже установлен контроллер ПЛК 160 и подключены датчики температур по интерфейсу RS-485 (Википедия). Контроллер и датчики были установлены до меня. Была примерная схема подк...

[Из песочницы] Скрипт настройки Windows 10 Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 18362), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но по...

[recovery mode] Gradle + LLVM Этот небольшой пост может оказаться полезен тем, кто хотел бы быстро начать работать с LLVM, не заморачиваясь с закачкой исходников и просторойкой фреймворка. Кто не хотел бы ковыряться в малопонятных скриптах CMake-а чтобы добиться ожидаемого результата, ну и наконец, прост...

[Перевод] Автоматический перенос приложений iOS (ARM) на macOS (x86) с помощью Bitcode Когда Apple представила технологию Bitcode и сделала её обязательной для watchOS и tvOS, компания словно отмахнулись от вопросов, зачем она вообще нужна. Лишь туманно сказала, что она помогает настраивать двоичные файлы и использует последние улучшения компилятора. С тех по...

Добавляем аппаратные кнопки в Marlin. Так как моя предыдущая статья по поводу переделки стандартной функции HAS_KILL (https://3dtoday.ru/blogs/hellraider/hardware-pause-button-in-marlin/) вызвала определенную заинтересованность в плане добавления дополнительных кнопок управления п прошивку Marlin, то я решил нем...

Security Week 47: нетривиальные уязвимости В прошлом году у нас уже был дайджест про нетривиальные атаки. Тогда речь шла про DoS-атаку на ПК через акустическое воздействие на жесткий диск и кражу пользовательских данных через хак со стилями CSS. А на прошлой неделе как раз было опубликовано два исследования про уязви...

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

Новая спам-атака на пользователей Microsoft Office Последние пару недель исследователи из Microsoft наблюдают активизацию спам-рассылок, нацеленных на эксплуатацию уязвимости CVE-2017-11882. Зловредные письма, по всей видимости, ориентированы на жителей европейских стран, так как они оформлены на разных языках, используемых ...

Как мы полностью поменяли собеседования Меня зовут Саша, и я руковожу backend-разработкой в Tutu.ru. Сегодня я расскажу, почему и как мы полностью поменяли процесс собеседования кандидатов за прошедший 2018 год. Итак, диспозиция на начало года Мы быстро растем – нам нужно набирать новых сотрудников Сообщество ра...

[Перевод] Разбор задачи с собеседования в Google: синонимичные запросы Это новая статья из разбора задач с собеседований в Google. Когда я там работал, то предлагал кандидатам такие задачи. Потом произошла утечка, и их запретили. Но у медали есть обратная сторона: теперь я могу свободно объяснить решение. Читать дальше →

[Перевод] Математики начинают укрощать «задачу о подсолнухе» Серьёзный прорыв в деле решения гипотезы 60-летней давности проливает свет на то, как при росте случайных систем в них начинает появляться порядок Команда из математиков и специалистов по информатике, наконец, продемонстрировала прогресс в решении, на первый взгляд, просто...

Сначала нужно сфотографировать свои уши. Sony показала новую технологию адаптивного звука 360 Reality Audio Компания Sony на выставке IFA 2019 демонстрировала достаточно занятную технологию, которая в будущем появится в потребительских устройствах компании. Технология называется 360 Reality Audio. Её суть достаточно проста. ПО на смартфоне анализирует форму ушей конкретного п...

Надстройка для Excel, облегчающая установку фильтров при работе с кубами (VBA) Как известно, из коробки Excel не позволяет устанавливать фильтры по списку значений для сводных таблиц, а это ведь такая нужная вещь! Как отфильтровать товары по сотне кодов, а потом по другой сотне? Есть, конечно, способы, но все это не то… Или, например, установить для к...

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

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

QVD файлы — что внутри QlikView и его младший брат QlikSense — замечательные BI инструменты, достаточно популярные у нас в стране и "за рубежом". Очень часто эти системы сохраняют "промежуточные" результаты своей работы — данные, которые визуализируют их "дашборды" — в так называемые "QVD файлы". ...

Моя система домашней автоматики Привет, Хабр! Цель этой статьи(цикла) хабраэффект вводный рассказ о моей системе домашней автоматики, конечно я не придумал и создал всё с нуля, а только лишь собрал технологии и проекты которые посчитал наиболее подходящими для этой цели и добавил немного от себя. Уровень ...

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

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

[Из песочницы] Импорт OpenStreetMap. От бинарного исходника к таблице в БД в несколько шагов Обычно, когда кто-то говорит про OSM, то в голове всплывает какой-нибудь из веб-сервисов, или приложение вроде Maps.me, основанные на данных OSM. На самом деле проект OSM — это в первую очередь данные, всё остальное по сути частные случаи их использования. Сервисы предоставл...

[Перевод] Сверхпростое логгирование в Javascript — два декоратора, и готово Вам еще не надоело писать logger.info('ServiceName.methodName.') и logger.info('ServiceName.methodName -> done.') на каждый чих? Может вы, так же как и я, неоднократно задумывались о том, чтобы это дело автоматизировать? В данной статье рассказ пойдет о class-logger, как...

Мой адрес не дом и не улица microBIGDATA или ФИАС в кармане Питер Брейгель Младший, Уплата налога, 1640 год Прошлый заход на бреющем по объектам зашел. Продолжим разведку боем. Сегодня поговорим о тяжелом. Пусть ещё не о BIG DATA, но работать уже неудобно – достаточно большие объёмы данных. Не каждо...

WavesKit — PHP фреймворк для работы с блокчейном Waves Мне нравится PHP за скорость разработки и отличную переносимость. Это очень хорошо, когда в кармане всегда имеется готовый к решению задач инструмент. Было довольно обидно, когда при знакомстве с отечественным блокчейном Waves Platform в его арсенале не оказалось готового SD...

Найм сотрудника начинается с… уважения. Собеседуем инженера Привет! Меня зовут Софья Донгаузер, я руковожу командой подбора IT-специалистов в Lamoda. Long story short: не первый год мы привлекаем IT-специалистов со всей России и СНГ и, по нашему мнению, научились делать это эффективно.  Команда подбора IT-специалистов Что чаще все...

В Минкомсвязи рассказали о планах создать собственную Википедию По версии Минкомсвязи, России нужна своя собственная Википедия

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

Опыт моделеварения от команды Computer Vision Mail.ru Меня зовут Эдуард Тянтов, я руковожу командой Computer Vision в Mail.ru Group. За несколько лет существования наша команда решила десятки задач компьютерного зрения, и сегодня расскажу вам о том, какие методики мы используем для успешного создания моделей машинного обучени...

Долгий путь от RFC 4357 к RFC 8645 или как управлять ключами шифрования Как известно, управление ключами является одной из самых сложных задач в криптографии. Буквально на днях в качестве RFC 8645 опубликован документ “Re-keying Mechanisms for Symmetric Keys” («Механизмы смены симметричных ключей»). Он является результатом двух с половиной лет ...

Пишем меньше дублирующего кода, используя биндинг в Laravel Доброго времени, уважаемые господа. Не так давно столкнулся с явлением дублирующегося и повторяющегося кода при код ревью одного проекта на Laravel. Суть в следующем: у системы существует некоторая структура внутреннего API для AJAX запросов, по сути возвращающая коллек...

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

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

[Перевод] Введение в Screen Capture API — Сканируем QR коды в браузере Введение В этой статье мы, как вы уже догадались, поговорим про Screen Capture API. Этот API появился на свет в 2014 году и новым его назвать сложно, однако поддержка браузерами все еще достаточно слабая. Тем не менее, его вполне можно использовать для персональных проектов ...

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

[Из песочницы] Выбор между XML и SQL для накатывания скриптов LiquiBase на примере Java/Spring/H2 В процессе работы над очередным проектом в команде возникли споры по поводу использования формата XML или SQL в Liquibase. Естественно про Liquibase уже написано много статей, но как всегда хочется добавить свои наблюдения. В статье будет представлен маленький туториал по со...

Анализируем тональность текстов с помощью Fast.ai В статье пойдет речь о классификации тональности текстовых сообщений на русском языке (а по сути любой классификации текстов, используя те же технологии). За основу возьмем данную статью, в которой была рассмотрена классификация тональности на архитектуре CNN с использование...

PHP-библиотеки для e-commerce: работа с АТОЛ и Payture, парсинг кодов GS1 и другие задачи Привет, меня зовут Павел Савельев, я руководитель отдела автоматизации бизнес-процессов в Lamoda. Мы работаем с очень разными задачами, и стараемся подобрать для каждой наиболее удобный инструментарий. Соответственно, мы используем разные языки — в наших системах можно встре...

XLNet против BERT В конце июня коллектив из Carnegie Mellon University показал нам XLNet, сразу выложив публикацию, код и готовую модель (XLNet-Large, Cased: 24-layer, 1024-hidden, 16-heads). Это предобученная модель для решения разных задач обработки естественного языка. В публикации они ...

bobaoskit — аксессуары, dnssd и WebSocket Таким образом я описал строение системы управляемых программных аксессуаров. Упрощенная модель включает в себя главный процесс(bobaoskit.worker) и скрипты аксессуаров(использующие объекты bobaoskit.sdk и bobaoskit.accessory). От главного процесса идет запрос к аксессуару дл...

Когда хочется красивый GUI, а gpu нет Обычно для рабочих утилит не требуется вменяемый UI, с кнопками, списками, окнами, поддержкой мыши и прочей мелочевкой, большинство рабочих «хотелок» можно упаковать в скрипты и иногда запускать их с параметром --help, и так будет даже правильней с точки зрения настройки и м...

Игроки жалуются на вылеты клиента Apex Legends Игроки в Apex Legends стали жаловаться на вылеты клиента из игры. А вылеты были связаны оказывается с релизом Star Wars Jedi: Fallen Order. На форумах Electronic Arts пользователи пробовали разные варианты решения проблемы, но решить проблему все-таки смогли. Достаточно все...

Криптовалютный океан: обзор топ-50 проектов с CoinMarketCap Когда смотришь на бесконечный список криптовалют на CoinMarketCap, первый вопрос который приходит в голову: а чем все они отличаются? И зачем их столько? Первый же ответ из зала — это все хайп и маркетинг! Но осознанные люди не поддаются очарованию простых ответов. Чтобы от...

[Перевод] Пишем кастомный трансформер AST на TypeScript Команда TestMace снова с вами. На этот раз мы публикуем перевод статьи о преобразовании кода TypeScript, используя возможности компилятора. Приятного чтения! Введение Это мой первый пост, и в нём мне бы хотелось показать решение одной задачи с помощью API компилятора TypeScr...

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

Частые проблемы тех, кто выиграл гостендер Итак, вы решили заработать на госконтракте. Регистрируетесь на сайте Госуслуг, потом — в Единой информационной системе в сфере закупок, аккредитовываетесь на электронных площадках, открываете спецсчёт в банке и уже предчувствуете победу в торгах на электронной площадке, боль...

[Из песочницы] Видеозвонок в браузере на PeerJS. Быстрый старт Приветствую всех читателей Хабра. В этом году довелось писать модуль видеосвязи для одного учебного портала для созвона по видеосвязи прямо на сайте учителя с учеником. Раннее такую задачу решать не приходилось. После недолгих поисков обнаружил, что есть 2 пути: Flash и WebR...

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

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

Badoo Jira API Client: магия в Jira на PHP Если в строке поиска на Хабре ввести “Jira Badoo”, результаты займут не одну страницу: мы упоминаем её почти везде, потому что она играет важную роль в наших процессах. Причём каждый из нас хочет от нее немножко разного. Разработчик, которому пришла задача на ревью, ожида...

Портирование Qt на STM32 Добрый день! Мы в проекте Embox запустили Qt на STM32F7-Discovery и хотели бы об этом рассказать. Ранее, мы уже рассказывали как нам удалось запустить OpenCV. Qt — это кроссплатформенный фреймворк, который включает в себя не только графические компоненты, но и такие вещи ка...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 27. Введение в AСL. Часть 2 Еще одна вещь, о которой я забыл упомянуть – ACL не только фильтрует трафик по принципу разрешить/отказать, он выполняет ещё много функций. Например, ACL используется для шифрования трафика VPN, однако для сдачи экзамена CCNA достаточно знать, как он применяется для фильтрац...

[Из песочницы] Улучшение UX при работе с клавишей «Tab» При разработке приложений «фронтендеры» редко обращают внимание на то, как пользователь будет использовать предоставляемые браузером функции клавиш. Я не являюсь исключением, но в один день мне была дана задача касаемо UX и переходов с помощью нажатия «Tab» и «Shift + Tab». ...

[Перевод] Что же такое GitOps? Прим. перев.: После недавней публикации материала о методах pull и push в GitOps мы увидели интерес к этой модели в целом, однако русскоязычных публикаций на эту тему оказалось совсем мало (на хабре их попросту нет). Посему рады предложить вашему вниманию перевод другой стат...

Как мы заново изобретали IP АТС Askozia, после того как проект был продан и закрыт разработчиком Как было все прекрасно до часа X Мы — небольшая команда разработчиков, которая много лет назад занималась разработкой и внедрением программ 1С. В далеком 2011 году мы хорошо знали программные продукты 1С, и не имели опыта в разработке собственных решений. На тот момент компа...

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

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

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

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

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

Муки с калибровкой стола Re-De-Bot на Т-образных шпильках или как в прошивке Marlin отключить выключение питания двигателей по оси Z Собрал себе принтер Re-De-Bot.В начале, по оси Z, я использовал обычные оцинкованные шпильки из строительного магазина, отнюдь не идеальной прямоты, диаметром 8 мм. Качество печати  получилось на 3+. Но при этом я ждал из китая Т-образные шпильки. И вот они наконец приш...

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

[Перевод] LLVM с точки зрения Go Разработка компилятора — очень тяжёлая задача. Но, к счастью, с развитием проектов наподобие LLVM, решение этой задачи значительно упрощается, что позволяет даже программисту-одиночке создать новый язык, близкий по производительности к C. Работа с LLVM осложняется тем, что э...

Быть фулстеком и не быть им Я именно тот 40+ летний синглстек, который упоминался в нашумевшей статье. Когда я вижу таск, где бэкендер упоминает dTo, к которому нужно написать обвязку на фронте… Я запланировано выхожу из себя. Во-первых, я хорошо работаю, когда злой. А тут такой случай. А во-вторых (и ...

Неплохой смартфон DOOGEE N10 предлагают приобрести за 90 долларов Китайский бренд DOOGEE запустил в продажу три устройства. 2 защищённых смартфона DOOGEE S90 и DOOGEE S40, а также один массовый DOOGEE N10. первый из них самый навороченный, второй немного проще, третий расчитан на обычного пользователя, кстати, получил достаточно приятные...

[Перевод] 7 привычек высокоэффективных программистов Начинающие программисты тратят много времени, набирая знания, необходимые для прохождения интервью. Они решают задачи и улучшают свои резюме. Но самое интересное начинается после того, как программист получает вожделенную должность — в каком-нибудь стартапе, в Google, в Amaz...

30-31 марта, SIBUR CHALLENGE в Нижнем Новгороде Всем привет! Уже через пару недель, 30-31 марта, мы проведем в Нижнем Новгороде хакатон, посвященный анализу данных. Отбор команд будет идти до 30 марта, задачи нужно будет решать не абстрактные, а вполне себе живые — мы предоставим реальные данные компании для этого. Во...

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

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

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

[Из песочницы] Мониторинг доступности хостов на Powershell Всем доброго времени суток, хочу поделиться простой инструкцией «Как можно перестать вручную пинговать десяток хостов. Без регистрации и СМС!». С просторов Интернета Важно: я не программист и не системный администратор, но мне приходиться работать одновременно с большим на...

[Перевод] Как НАСА собирается схватить и дозаправить спутник на низкой околоземной орбите В 2022 году роботизированный космический корабль от НАСА займётся обслуживанием спутника Landsat 7 В обозримом будущем доступ в космос останется крайне затратным. Даже при использовании таких трюков, как многоразовые ракеты или запуск с воздушных шаров и гигантских самолёт...

[Перевод] Parcel — мой любимый сборщик проектов Сегодня мы поговорим о сборщиках проектов (о бандлерах), об инструментах, которые облегчают жизнь разработчиков. Суть работы бандлеров заключается в том, что они берут JavaScript-код, содержащийся во множестве файлов, и упаковывают его в один или несколько файлов, определённ...

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

Фредерик Дубут возглавил команду ранжирования Bing Фредерик Дубут, который занимал пост тимлида команды по борьбе с веб-спамом Bing, получил повышение. Теперь он руководитель всего подразделения, которое отвечает за ранжирование в Bing. По словам Дубута, на новой позиции он продолжит тесно работать с теми коллегами, которые ...

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

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

Вещество и антивещество: что это такое, в чем разница и при чем тут нейтрино Антивещество — штука достаточно популярная, как в научной фантастике, так и просто в околонаучных спорах о том, “как все устроено на самом деле”. Фантасты нам подарили звезды и целые планетные системы из антивещества. Дэн Браун через “Ангелов и демонов” донес этот феномен пр...

Ответы на задачи со стенда PVS-Studio на конференциях 2018-2019 Привет! Несмотря на то, что сезон конференций 2019 года ещё в самом разгаре, мы бы хотели обсудить задачи, которые ранее предлагали посетителям нашего стенда. Осень 2019 года мы начали с новым набором задач, поэтому уже можно обнародовать решение старых задачек за 2018 год,...

Проблемы пакетной обработки запросов и их решения (часть 2) Это продолжение статьи «Проблемы пакетной обработки запросов и их решения». Рекомендуется сначала ознакомиться с первой частью, так как в ней подробно описана суть задачи и некоторые подходы к ее решению. Здесь же мы рассмотрим другие методы. Читать дальше →

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

Как распознать картинки и тексты на телефоне с помощью ML Kit Два года назад Сундар Пичаи, глава Google, рассказал о том, что компания из mobile-first становится AI-first и фокусируется на машинном обучении. Год спустя вышел Machine Learning Kit — набор инструментов, с которым можно эффективно использовать ML на iOS и Android. Об ML ...

О космолетах и «спейсах». Как сделать фичу, изменив по дороге весь продукт 24 апреля в платформе Wrike произошло важное изменение: команда объявила публичный релиз новой фичи — “Spaces”, в русской версии — “Пространства”. Цель Spaces — улучшить работу команд в таск-менеджере и упростить навигацию в продукте, сделав процессы органичнее и прозрачнее....

Termux шаг за шагом (Часть 2) В прошлой части мы с вами познакомились с базовыми командами Termux'а, настроили SSH соединение с ПК, научились создавать alias'ы и установили несколько полезных утилит. В этот раз нам предстоит шагнуть еще дальше, мы с вами: узнаем про Termux:API установим Python и nano, а...

[Из песочницы] Автоматизация доставки flow в Apache NiFi Всем привет! Задача заключается в следующем — есть flow, представленный на картинке выше, который надо раскатить на N серверов с Apache NiFi. Flow тестовый — идет генерация файла и отправка в другой инстанс NiFi. Передача данных происходит с помощью протокола NiFi Site to...

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

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

Быстрая и супер-быстрая зарядка от Samsung: есть ли разница В этом году Samsung впервые начала оснащать свои смартфоны супер-быстрой зарядкой мощностью 25 Вт. Первоначально она была эксклюзивной функцией Galaxy S10 5G, но потом появилась и в аппаратах линейки Galaxy A. Предполагалось, что более высокая мощность позволит затрачивать ...

Серый кардинал .NET — Джон Гэллоуэй Знаете ли вы, кто такой Джон Гэллоуэй? А между тем, он есть. Он не только один из авторов «Professional ASP.NET MVC», но и человек, который является исполнительным директором .NET Foundation, по сути – отвечает за весь опенсорс .NET. Основные темы этой статьи: подробности р...

[Из песочницы] Обход ReCaptcha в Selenium тестах ReCaptcha (она же всенародно любимая «капча») — одна из самых болезненных вещей, с которой может столкнуться автоматизатор тестирования на своём пути. В Сети гуляют тысячи разнообразных видео, записанных выходцами из солнечной Индии, касательно того, какими танцами с бубном ...

Зачем Додо Пицце 250 разработчиков? Прошлой осенью мы объявили о том, что планируем расширить IT-команду с 48 до 250 человек. Сразу посыпались вопросы, которые по сути сводились к одному: зачем сети пиццерий 250 разработчиков? Откуда эта цифра? Поэтому в первом посте в нашем блоге хочу ответить именно на этот ...

Как мы решали задачу продолжения плейлистов на RecSys Challenge и заняли 3 место В 2018 наша команда традиционно приняла участие в RecSys Challenge. Это ежегодный конкурс по рекомендательным системам, проводимый в рамках конференции RecSys. Он не такой масштабный, как конкурсы на Kaggle, но считается одним из самых престижных соревнований по рекомендател...

5 советов о Design Leadership. Часть 1 Всем привет. Уже в этом месяце мы запускаем курс «Team Lead 2.0», который подготовлен специально для старших разработчиков, TeamLead’ов, SCRUM мастеров и специалистов, желающих повысить свой профессиональный уровень и получить уникальный опыт, необходимый для эффективного уп...

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

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

Как браузер помогает товарищу майору Знаете, когда я почти нечаянно обнаружил, читая прекрасную книгу Дмитрия Кетова «Внутреннее устройство Linux» (и это не реклама), что каждый скачанный нами файл из Интернета с легкой руки браузера оставляет в расширенных атрибутах файла (в inode файла, не в самом файле) как ...

[Перевод] Ответственный подход к JavaScript-разработке, часть 1 Цифры говорят нам о том, что рост объёмов JavaScript-кода плохо влияет на производительность веб-проектов. Если так будет продолжаться и дальше, то уже очень скоро при загрузке средней страницы будет передаваться как минимум 400 Кб JS-кода. И это — всего лишь объём передавае...

[Из песочницы] Учим компьютер различать звуки: знакомство с конкурсом DCASE и сборка своего аудио классификатора за 30 минут Введение Доброго времени суток, хабр! Накопив немного опыта в решении задач классификации и детектирования акустических событий, мы с ananaskelly решили, что готовы им с вами поделиться. Цель этой статьи — познакомить вас с некоторыми задачами и рассказать о соревновании по ...

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

[Из песочницы] Как мы DLP-систему выбирали (практический опыт) Привет, Хабр! Не так давно возникла довольно типичная ситуация — руководство дало команду «Выбрать систему защиты данных от утечки». Основной критерий выбора — способность решить задачу не допустить утечек критически важной (по мнению руководства) документации, файлов и тому...

Askozia. Как работает Autoprovisioning Plug & Play При разработке АТС Askozia мы столкнулись с задачей по автоматической настройке телефонов и решили ее по-своему. Autoprovisioning Plug & Play (PnP), эту технологию поддерживают многие производители — Yealink, Snom, Fanvil. Основные достоинства автоматической настройки ...

[Перевод] Python — помощник в поиске недорогих авиабилетов для тех, кто любит путешествовать Автор статьи, перевод которой мы публикуем сегодня, говорит, что её цель — рассказать о разработке веб-скрапера на Python с использованием Selenium, который выполняет поиск цен на авиабилеты. При поиске билетов используются гибкие даты (+- 3 дня относительно указанных дат). ...

DeepPavlov для разработчиков: #1 инструменты NLP и создания чат-ботов Всем привет! Мы открываем цикл статей, посвященных решению практических задач, связанных с обработкой естественного языка (Natural Language Processing или просто NLP) и созданием диалоговых агентов (чат-ботов) с помощью open-source библиотеки DeepPavlov, которую разрабатывае...

[Из песочницы] Внедрение Zimbra Collaboration Open Source, авторизация через AD и автоматическое создание почтовых ящиков 1. Исходные данные ОС сервера: CentOS 7 По поводу ОСНа самом деле разница между CentOS7 и любой другой системой будет заключаться исключительно в командах серверу на установку зависимостей, и, возможно, расположении некоторых файлов. Работа ведется в основном с командлетами...

Buildbot в примерах Потребовалось мне настроить процесс сборки и доставки на сайт пакетов программ из Git-репозитария. И увидев, ни так давно, тут на Хабре статью по buildbot (ссылка в конце) решил для этого попробовать его и применить. Так как buildbot — это распределённая система, то будет ло...

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

Как объединить несколько файлов PDF на Mac Automator можно по праву назвать одним из самых недооцененных приложений на macOS. Увы, но многие пользователи не догадываются о скрытых возможностях данной утилиты. Тем не менее потенциал заложенный в программу действительно огромен. Сегодня мы расскажем об скрипте, которы...

Хорошее плохое интервью Это будет небольшая история про большую лень. Так сложилось, что задача поиска людей в команду упала на менеджера проекта. А роль менеджера проекта упала на меня. This is a story of my life... Читать дальше →

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

Доменные имена с валидным SSL для локальных Docker-контейнеров Использование Docker в процессе разработки стало уже стандартом де-факто. Запускать приложение со всеми его зависимостями, используя всего одну команду — становится всё более и более привычным действием. Если приложение предоставляет доступ используя web-интерфейс или какое...

CVE-2019-6111 и другие уязвимости в scp TL;DR; Совсем недавно ( примерно с 1983 года ) оказалось, что OpenSSH, как наследник rsh, для команды scp ( ex. rcp ) позволяет серверу выбрать, какой файл и с какими параметрами вам передать. А уязвимости вывода позволяют скрыть, какой именно файл вам передали. То есть прос...

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

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

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

[recovery mode] Реверс-инжиниринг протокола обмена в оборудовании EOS Сразу скажу, заголовок, возможно, несколько громковат. Мне реально потребовалось выдернуть из протокола всего одну команду для управления диммером. О том, как это было сделано и что получилось в итоге, читайте дальше в статье. Читать дальше →

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

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

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

Идёт массовый отзыв TLS-сертификатов от множества УЦ, по ошибке сгенерированных на 63-битном ГСЧ вместо 64-битного Три дня назад в списке рассылки mozilla.dev.security.policy опубликовано сообщение о массовом нарушении в генерации TLS-сертификатов. Как показало расследование, пострадало несколько удостоверяющих центров, в том числе GoDaddy, Apple и Google. Общее количество неправильных с...

Запуск SAP GUI из браузера Эту статью я сначала написал в свой блог, чтобы потом опять не искать и не вспоминать, но поскольку блог никто не читает, то этой информацией захотелось поделиться со всеми, вдруг кому пригодиться. Во время работы над идеей сервиса по сбросу пароля в системах SAP R/3 возник...

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

Автоматизация SQL server в Jenkins: возвращаем результат красиво Снова продолжая тему обустройства Zero Touch PROD под RDS. Будущие DBA не будут иметь возможности подключиться к PROD серверам напрямую, но смогут использовать Jenkins jobs для ограниченного набора операций. DBA запускает job и через некоторое время получает письмо с отчетом...

QVD-файлы — что внутри, часть 2 В первой статье о структуре QVD файла я описал общую структуру и достаточно подробно остановился на метаданных. В этой статье я опишу формат хранения информации о колонках, поделюсь своим опытом трактовки этих данных. Итак (вспоминаем) QVD файл соответствует реляционной табл...

[Из песочницы] Редактор блок схем — о дружбе Vue.js и MxGraph С чего все началось? Я фронтенд разработчик, но стремлюсь к развитию, решил написать fullstack приложение и стать миллионером получить бесценный опыт. Так вот, начал планировать бэкенд, выбрал MongoDB для хранения данных, и был готов планировать структуру и связи полей. Н...

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

[Перевод] История Vim и руководство по его эффективному использованию Примечание от переводчика: это первая часть монументальной (на самом деле монументальной) статьи о Vim и его возможностях от разработчика из Миннеаполиса и автора проекта PostgREST Джо begriffs Нельсона. Первая часть статьи отводится на знакомство с историей Vim как редакт...

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

Глюк Lerdge-X (версия ПО 2.0.2)? Какой интересный глюк у Lerdge-X (2.0.2) вылез... Напечаталось приблизительно 48% (это около 4 часов работы) , потом печать просто встала, а прогресс-индикатор на дисплее бодро зашагал вперед (по 1% в сек) и дойдя до 100% сообщил мне, что всё готово (так совпало, что всё про...

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

Удалось обнаружить десятки корпоративных хранилищ Box.com, раскрывающих данные компаний Apple, Herbalife и т.д Исследователи из Adversis обнаружили десятки корпоративных аккаунтов на сервисе облачного хранения файлов Box.com, которые содержали свободно доступную чувствительную корпоративную информацию и персональные данные клиентов. Всего было найдено более 90 компаний, у которых на...

Готов к событию в мире разработки? Тогда регистрируйся на Google Хакатон! Суть мероприятия остается неизменной. Командам крутых программистов страны необходимо решить топовые задание от технологического гиганта. Финалисты отправятся на суперфинал в штаб-квартиру Google!

Путь историка из HR в Java программисты: немного везения и упорства Наверняка вам известны истории, когда кто-то целенаправленно начал изучать, скажем, Java, еще в школе, потом пошел в институт, на работу – и вот он уже программер в Силиконовой долине с внушительным окладом. Я хочу вам рассказать о совсем необычном пути в кодеры. Из историко...

Создание и обновление списков рассылки в Zimbra Collaboration OSE на основе групп и пользователей Active Directory 1. Пара слов от автора В комментариях к прошлой статье мне задали интересный вопрос об автоматическом формировании списков рассылки на основе групп безопасности AD. Есть задача – есть решение. Правда, оговорюсь сразу, решение несколько костыльное (почему – читать далее), но ...

[Из песочницы] Ещё одна библиотека для создания mock'ов Добрый день. Я занимаюсь автоматизацией тестирования. Как и у всех автоматизаторов, у меня есть набор библиотек и инструментов, которые я обычно выбираю для написания тестов. Но периодически возникают ситуации, когда ни одна из знакомых библиотек может решить задачу с риском...

Разработчики WordPress частично решили проблему валидности HTML Команда разработчиков WordPress заявила, что версия 5.3 будет использовать улучшенный код, позволяющий частично решить проблему валидности HTML. В частности, улучшение сосредоточено на том, как кодируются теги скриптов и стилей. До внедрения HTML5 было обязательным использов...

Как начать программировать в Adobe Illustrator. Скрипт Expand Clipping Mask. Часть вторая Этот пост — продолжение первой части, где был представлен скрипт Expand Clipping Mask и детально описано, что и как он делает, а также попутно рассмотрены основные принципы создания подобных программ в целом. В этой части я продолжу рассказ о том, как добавить в программу но...

Quick Draw Doodle Recognition: как подружить R, C++ и нейросетки Привет, Хабр! Осенью прошлого года на Kaggle проходил конкурс по классификации нарисованных от руки картинок Quick Draw Doodle Recognition, в котором среди прочих поучаствовала команда R-щиков в составе Артема Клевцова, Филиппа Управителева и Андрея Огурцова. Подробно опи...

Сетевая фабрика для ЦОДа Cisco ACI — в помощь админу С помощью вот этого волшебного куска скрипта Cisco ACI можно быстро настроить сеть. Сетевая фабрика для ЦОДа Cisco ACI cуществует уже пять лет, но на Хабре про неё толком ничего не рассказано, вот и решил это немного исправить. Расскажу на своём опыте, что это такое, какая...

[Перевод] Как отлаживать и профилировать любой EXE-файл с помощью Visual Studio Вам когда-нибудь нужно было отлаживать или профилировать исполняемый файл (файл .exe), для которого у вас нет исходного кода или вы не можете его собрать? Тогда наименее известный тип проекта Visual Studio, проект EXE, для вас! В Visual Studio вы можете открыть любой EXE-фа...

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

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

WebTotem или как мы хотим сделать интернет безопаснее Бесплатный сервис для мониторинга и защиты веб-сайтов. Идея В 2017 году наша команда ЦАРКА начала разрабатывать инструмент для мониторинга всего кибер-пространства в национальной доменной зоне .KZ, а это было порядка 140 000 веб-сайтов. Задача сложная: нужно было операт...

Зачем писать свой React Data Grid в 2019 Привет, Хабр! Я участвую в разработке ECM системы. И в небольшом цикле статей хочу поделится нашим опытом и историей разработки своего React Data Grid (далее просто грид), а именно: почему мы отказались от готовых компонент с какими проблемами и задачами мы столкнули при ра...

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

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

Swift против Rust — бенчмаркинг на Linux с (не)понятным финалом Привет, Хабр! Периодически посматриваю на Swift в качестве языка прикладного программирования для Linux — простой, динамичный, компилируемый, без сборщика мусора, а значит, теоретически, пригоден и для устройств. Решил сравнить его с чем-то таким же молодым и модным — напри...

[Перевод] Реверс-инжиниринг неизвестного процессора по единственной программе TL;DR: мы выполнили обратную разработку программы, написанной для полностью неизвестной архитектуры ЦП без какой-либо документации на ЦП (без эмулятора, без ISA, без всего) всего за десять часов. Из статьи вы узнаете, как нам это удалось… В прошлые выходные мы с командой C...

Основатель Википедии Джимми Уэйлс создал соцсеть без рекламы Основатель проекта Википедия Джимми Уэйлс (Jimmy Wales)запустил WT: Social – социальную сеть без рекламы и «кликбейта». В своем интервью Financial Times Уэйлс назвал свой проект «безумным экспериментом». Он пояснил, что позаимствовал бизнес-модель новой соцсети у Википедии. ...

Лето: время апгрейда… себя Жизнь в мегаполисе требует много здоровья: организм вынужден побеждать смог, пыль, выхлопы, горячий асфальт, инфекции всех мастей, фастфуд, недосыпы и плохое настроение. Хочется глотнуть воздуха, остановиться, выдохнуть, посидеть с друзьями. Мы тут посидели немного и пришли ...

Google тестирует новую кнопку для обновления результатов поиска Англоязычные пользователи заметили, что Google снова тестирует кнопку «Update», с помощью которой можно получить самые свежие результаты поиска. Выглядит это так: Google уже тестировал подобную функцию летом 2018 года. На тот момент оформление было немного другим: ...

Больше статистики сайта в своём маленьком хранилище Анализируя статистику сайта, мы получаем представление о том, что происходит с ним. Результаты мы сопоставляем с другими знаниями о продукте или сервисе и этим улучшаем наш опыт. Когда анализ первых результатов завершён, прошло осмысление иформации и сделаны выводы, начинае...

Построение автоматической системы модерации сообщений Автоматические системы модерации внедряются в веб-сервисы и приложения, где необходимо обрабатывать большое количество сообщений пользователей. Такие системы позволяют сократить издержки на ручную модерацию, ускорить её и обрабатывать все сообщения пользователей в real-time...

Python v3.x: как увеличить скорость декоратора без регистрации и смс Вначале была эта статья. Потом к ней появился комментарий. А в результате я углубился в чтение матчасти, закопался в дебаг и смог оптимизировать код из первой части этой истории. Предлагаю вместе со мной пройтись по основным моментам. Читать дальше →

Chrome будет блокировать скрипты автозагрузки Браузер не допустит автоматического скачивания случайных файлов

[Из песочницы] Переименовываем файлы вместе с переменными — Visual Code Мы все избалованы IDE. Хочу больше баловства! Представляю бесплатное расширение Visual Code по переименованию файлов и переменных multi-replace. Читать дальше →

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

Статистика и мониторинг PHP скриптов в реальном времени. ClickHouse и Grafana идут на помощь к Pinba В этой статье я расскажу как использовать pinba совместно с clickhouse и grafana вместо pinba_engine и pinboard. На php-проекте pinba — пожалуй единственный надёжный способ понять, что происходит с производительностью. Правда обычно pinba внедряется только тогда, когда уже н...

Хайлайты и тренды ICCV 2019 Нейросети в компьютерном зрении активно развиваются, многие задачи еще далеки от решения. Чтобы быть в тренде в своей области, достаточно подписаться на инфлюенсеров в Твиттере и читать релевантные статьи на arXiv.org. Но у нас появилась возможность съездить на Internatina...

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

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

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

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

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

Пссс, хотите немного ужасных IT-историй? Боитесь ли вы темноты? Может быть, зомби-апокалипсиса или чудовища под кроватью? Мы знаем, что нет. У нас, айтишников, свои источники ужаса: криворукие пользователи, далёкие от IT начальники, упавшие сервера, пропавшие или не сделанные бэкапы, легаси код и Agile-митинги, ког...

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

Система предотвращения столкновений: Часть 1. Законодательство как ТЗ для разработчика Приветствую Хаброюзеры. Меня зовут Евгений и в серии статей я хочу рассказать о процессе разработки и тестирования системы предотвращения столкновений промышленной техники и людей, работающих с ней бок о бок. Но сначала небольшая история. Один северный город нашей необъят...

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

Пробы и ошибки при выборе HTTP Reverse Proxy Всем привет! Сегодня мы хотим рассказать о том, как команда сервиса бронирования отелей Ostrovok.ru решала проблему роста микросервиса, задачей которого является обмен информацией с нашими поставщиками. О своем опыте рассказывает undying, DevOps Team Lead в Ostrovok.ru. Чи...

Re-ARM 32 bit. Установка Marlin 2.0 Давно хотелось поставить 32 битную плату управления принтером.Так как сейчас моя плата управления представляет собой стандартный бутерброд Mega+Ramps и свободное место для установки платы большего размера практически отсутствует, то первоначально рассматривался вариант замен...

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

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

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

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

Остров Пику: как из базальтового ада сделали уютный Туссент Гора Пику образовалась очень задолго до прихода колонистов, ещё когда ломалась геологическая плита на Азорах. Высота Эвереста 8848 метров. А Пику — 8449 метров. Из которых 2351 метр приходятся на надводную часть, а остальное — гора под водой. То есть люди уже живут на скло...

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

Багодельня: BUgHunting. Как найти 200 багов за день Всем привет! Меня зовут Юля, и я тестировщик. В прошлом году рассказывала вам про Багодельню — мероприятие, проводимое у нас в компании для чистки бэклога багов. Это вполне жизнеспособный вариант значительно уменьшить его (в разных командах от 10 до 50%) всего за один день. ...

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

EFORTH для МК-161: Структуры данных Эта статья — окончание цикла статей про eForth на программируемом калькуляторе. Начало здесь: habr.com/ru/post/452398 Команды входного языка «Электроники МК-161» занимают только половину файла eForth0.mkl. Вторую половину занимают таблицы, разработать которые был не меньший...

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

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

Неблокирующая отрисовка и обновление графиков с помощью bokeh Есть у меня один Python-скрипт с расчётами. Там был цикл примерно на 2000 итераций, каждая из которых считалась несколько минут. И решил я, чтобы ловчее отлаживать тот скрипт, выводить график кой-каких метрик от номера итерации. И как посчитается очередная итерация, так о...

Трагичная история знакомства с poppler …Или как мы писали пилот приложения для ОС Sailfish с использованием poppler. Год начался с занятной задачи — нашей команде нужно было за короткий срок собрать пилот приложения «Мобильное рабочее место руководителя» на ОС Sailfish. По сути, это мобильный клиент СЭД, т.е. о...

Управление автомобилем по CAN Введение Беспилотный автомобиль StarLine на платформе Lexus RX 450h — научно-исследовательский проект, стартовавший в 2018 году. Проект открыт для амбициозных специалистов из Open Source Community. Мы предлагаем всем желающим поучаствовать в процессе разработки на уровне код...

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

[Из песочницы] Настройка связки php-fpm + nginx под WSL Я — виндузятник и всячески увиливаю от окончательного перехода на Linux на своём PC не смотря на все его преимущества. Поэтому последние пару лет для создания локальных площадок под проекты использовал Docker for Windows. Не сказать что штука сверхстабильная, но существенных...

[Перевод] Я просканировал всю Австрию и нашёл… ...IP-камеры, принтеры, АСУ ТП и многое другое Отказ от ответственности: статья — результат нескольких недель работы. О самых больших проблемах я сообщил владельцам серверов, если смог их найти, а о других — в Cert.at. Кроме того, я не пытался войти ни на какое устройство/се...

Как поморгать 4 светодиодами на CortexM используя С++17, tuple и извращенное воображение Всем доброго здравия! При обучении студентов разработке встроенного программного обеспечения для микроконтроллеров в университете я использую С++ и иногда даю особо интересующимся студентам всякие задачки на определения особо больных на голову одаренных учеников. В очеред...

[Перевод] Пиксельный Lo-fi в Unity Визуальный стиль моей находящейся в разработке игры LAUNDRY GAME (да, это бессовестная реклама) основан на больших чётких пикселях в 3D. Я обожаю 3D в низком разрешении. Мне задавали много вопросов о том, как я это сделал, поэтому я решил написать туториал. Примечание: это...

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

Сборка чугунного скорохода на Spring Boot и AppCDS Сборка чугунного скорохода на Spring Boot и AppCDS Application Class Data Sharing (AppCDS) – фича JVM для ускорения запуска и экономии памяти. Появившись в HotSpot в зачаточном виде ещё в JDK 1.5 (2004 г.), она долгое время оставалась весьма ограниченной, да ещё и отчасти к...

Samsung Space Monitor стоит слишком дорого Недавно на выставке электроники компания Samsung показала свой новый монитор под названием Samsung Space Monitor. Суть монитора в том, что у него крайне необычное крепление на стол и вы в любой момент можете отодвинуть монитор вплотную к стене. Для кого-то это действительно ...

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

[Перевод] PowerShell в роли инструмента для пентеста: скрипты и примеры от Varonis Хакеры любят использовать PowerShell для запуска «fileless malware» — бестелесных вредоносных программ, которые не являются традиционными бинарными файлами с компилированным вредоносным кодом, и по этой причине подчас не могут быть обнаружены антивирусными решениями. Powe...

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

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

Рецепты PostgreSQL: планировщик асинхронных задач Для приготовления планировщика асинхронных задач нам понадобится сам postgres и его расширение pg_task. (Я дал ссылки на свой форк postgres, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальный репозиторий. Можно также воспользоваться готовым обр...

Роботизация искусственного интеллекта на платформе InterSystems IRIS Автор: Сергей Лукьянчиков, инженер-консультант InterSystems Договариваемся о терминологии Робот не обязан быть ни большим, ни человекоподобным, ни в принципе материальным (в пику википедии, которая, впрочем, спустя пару абзацев смягчает начальную формулировку и допускает не...

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

Метод бисекционного деления в тестировании Содержание Описание метода Применение тестировщиками Строка данных Файл Применение разработчиками Резюме Иногда баги сами нас находят. Вот мы впихали большую строку данных — и система подвисла. Это она из-за 1 млн символов упала? Или ей какой-то конкретный не понравилс...

Data Mesh: как работать с данными без монолита Привет, Хабр! Мы в Dodo Pizza Engineering очень любим данные (а кто их сейчас не любит?). Сейчас будет история о том, как накопить все данные мира Dodo Pizza и дать любому сотруднику компании удобный доступ к этому массиву данных. Задача под звёздочкой: сохранить нервы коман...

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

Как мы пересадили всю команду на другой язык за один день (на самом деле — нет) func main() { envs.UpdateDotenv() ctx := context_os.Context(context.Background()) res := resources.Get(ctx) ready := readiness.New() ready.AddProbe(func() { //add some initialization }) h := handlers.New(res) s := server.NewServer(ready) s.HandleFunc("/test", h.Tes...

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

Курсоры БД в Doctrine Используя курсоры, вы сможете порционно получить из БД и обработать большое количество данных, не расходуя при этом память приложения. Уверен, перед каждым веб-разработчиком хотя бы раз вставала подобная задача, передо мной тоже — и не раз. В этой статье я расскажу, в каких...

Переход на Boost-1.65.1 и баги, которые всплыли В прошлом году(уже почти целый год прошел) мы все–таки перешли на новую версию Boost-1.65.1, и под капотом вы найдете тройку багов boost-а, с которыми мы столкнулись. Еще важно упомянуть, что до этого у нас в ПО использовался boost -1.62.1, поскольку какие-то баги появились ...

Будущее инфраструктур центров обработки данных Архитектуры центров обработки данных общего назначения (такие ЦОДы сегодня все еще широко применяются) хорошо отрабатывали свои задачи в прошлом, но с недавних пор большинство из них достигли своих границ масштабируемости, производительности и эффективности. В архитектуре та...

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

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

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

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

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

Chrome уличили в утечке личных данных Проблему в системе безопасности браузера Google Chrome обнаружили сотрудники компании EdgeSpot. Уязвимость заключается в особенностях работы «Хрома» с PDF-файлами. Как выяснилось, документы такого формата могут передавать посторонним пользователям определённые данные об устр...

CLRium #6: Concurrency & Parallelism. Обучение магии распараллеливания задач Наша команда по-настоящему взбудоражена: ведь мы находимся в стадии производства сложнейшего для нас семинара среди всех нами созданных: семинара по многопоточке, конкурентности и прочим смежным вопросам. Мы немного боимся: мы создали целый огромный процесс внутренних соглас...

[Перевод] Математики на примере «пятнашек» вычисляют, как возникает случайность Задача головоломки «пятнашки» — упорядочить пронумерованные плитки. Сегодня математики решили обратную задачу — как перепутать головоломку. Вероятно, вы играли в «пятнашки». Это расстраивающая, но аддиктивная игра, состоящая из 15 плиток и одного пустого пространства, выст...

Agile и потребности мозга: управление стрессом Вам приходилось испытывать сильные эмоции на работе? Как насчёт страха, внезапно захлестнувшего ваш мозг? Легко потом работать эффективно? Если ваша организация уже внедрила agile, но с вами такое всё еще случается – что-то идёт не так. Меня зовут Артем Зарафьянц, и я руко...

[Из песочницы] Уведомления о входах на сервер (SSH/TERMINAL) дешево и сердито Приветствую сообщество. Это первая публикация, далеко не профи-администратора, но просто захотелось поделиться короткой и простой наработкой, которая может оказаться полезной для такого же новичка как я сам. Сложилось так, что потребовалось контролировать около 30 VDS-ок на...

Разбираемся с латинскими сокращениями и фразами в английском языке Полтора года назад, читая работы про уязвимости Meltdown и Spectre, я поймал себя на том, что не очень понимаю разницу между сокращениями i.e. и e.g. Т.е. по контексту вроде бы понятно, но потом вроде бы как-то и не совсем то. В результате я тогда сделал себе небольшую шпар...

Как попасть в топ Google в ЕС/США в нише разработки и найти клиентов с большими бюджетами Пост лучше всего подойдет разработчикам «one-man-company» или командам. Я расскажу, как достаточно легко и просто (при отсутствии или минимальном бюджете) попасть в топ поисковой выдачи в развитых странах в нише разработки и перестать бороться за клиентов в СНГ, которые хотя...

Game over: аналитики сообщают о росте числа DDoS-атак на игровой сегмент «Ростелеком» провел исследование DDoS-атак, осуществлявшихся на российский сегмент интернета в 2018 году. Как свидетельствует отчет, в 2018 году произошел резкий рост не только количества DDoS-атак, но и их мощности. В фокусе внимания злоумышленников чаще всего оказывались и...

[Из песочницы] Год приключений с graphene-python Год приключений с graphene-python Всем привет, я python-разработчик. Последний год я работал с graphene-python + django ORM и за это время я пытался создать какой-то инструмент, чтобы сделать работу с graphene удобнее. В результате у меня получилась небольшая кодовая база g...

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

[Из песочницы] Кросспостинг постов из Instagram в паблик VK на Python Предисловие Решил выйти на новый рынок сбыта, тем более, целевая аудитория моего интернет-магазина, не имеющая аккаунтов в Instagram, давно интересовалась появлением дубликата в VK. Идея хорошая, но постов на странице сотни, соответственно вручную работать ctrl+c ctrl+v не...

[Из песочницы] Как быстро увеличить размер диска на сервере Всем привет! Недавно столкнулся с простой на первый взгляд задачей — увеличить «на горячую» размер диска на сервере Linux. Описание задачи Есть сервер в облаке. В моем случае, это Google Cloud — Compute Engine. Операционная система — Ubuntu. Сейчас подключен диск размером 3...

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

Следим за изменением файлов с помощью Alerting OpenDistro for Elasticsearch Сегодня возникла потребность в мониторинге изменений определенных файлов на сервере, существует много разных способов например osquery от facebook, но так как недавно я начал пользоваться Open Distro for Elasticsearch решил мониторить файлы эластиком, одним из его beat'ов. Ч...

Как рекомендовать музыку, которую почти никто не слушал. Доклад Яндекса Почти у всех рекомендательных систем есть трудности с новым или редким контентом — поскольку с ним взаимодействовала лишь незначительная часть пользователей. В своём докладе на встрече «Яндекс изнутри» Даниил Бурлаков поделился набором трюков, которые используются в рекоменд...

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

Automation Day, или как мы наращиваем слой автотестов Как часто, работая в команде, вы сталкиваетесь с ситуацией, когда часть задач по автоматизации тестирования попадает в бэклог и остается в ручном тестировании навсегда? Мы постоянно сталкиваемся с такой проблемой, и причины всегда разные: не успели / не хватило времени, а ...

[Перевод] Автоматически импортируем избранные библиотеки в IPython или Jupyter Notebook Всем привет! Сегодня мы разберем очень короткий, но полезный лайфхак о том, что нужно сделать, чтобы не вводить, к примеру, «import pandas as pd» по 10 раз в день. Для этого нужно: Перейти к ~/.ipython/profile_default; Создать папку с именем startup, если ее там еще нет; ...

[Из песочницы] Программирование на JavaScript для токарного станка Эту статью следовало бы назвать «генерирование комбинаций шестерен гитары китайского токарного станка для подбора шага подачи с помощью скрипта на JavaScript», но это звучит не так интригующе. Читать дальше →

Google Ads уточнил, какие метрики всё ещё не исправлены после сбоя 2 мая Google Ads продолжает работать над устранением бага, в результате которого отдельные метрики отображают неправильные данные за 1 и 2 мая. Сбой был обнаружен 2 мая. На днях команда сервиса уточнила, какие отчёты и показатели пока ещё не исправлены. Отчёты: Реклама и обычные р...

Новые голосовые приложения на C# в 3CX v16 3CX v16 уже на подходе, и у нас есть отличные новости о нашем приложении для разработчиков Call Flow Designer. В новом релизе CFD использует новый скриптовый «движок», интегрированный в ядро сервера 3CX. Благодаря выполнению скриптов в ядре АТС, производительность голосовых ...

[Из песочницы] Груминг беклога в Jira (Backlog Grooming) Как настроить Scrum-доску для оптимизации процесса Груминга задач Во фреймворке Scrum есть такое понятие как «причесывание задач», перед тем как планировать задачи в спринт. Ведь задачи в спринт должны как известно попадать с минимальным набором атрибутов: оценка задачи, опи...

[Перевод] Настоящее реактивное программирование в Svelte 3.0 Заголовок статьи может показаться немного кричащим, впрочем как и сам фреймворк Svelte и те идеи, что стоят за ним. Если вы ещё не знаете ничего про Svelte, пристегнитесь, сейчас мы рванём навстречу революции. Учтите, что это не урок по началу работы со Svelte. Уже существуе...

5 способов деплоя PHP-кода в условиях хайлоада Если бы хайлоад преподавали в школе, в учебнике по этому предмету была бы такая задача. «У соцсети N есть 2 000 серверов, на которых 150 000 файлов объемом по 900 Мб PHP-кода и стейджинг-кластер на 50 машин. На серверы код деплоится 2 раза в день, на стейджинг-кластере код о...

[Перевод] К CI/CD и Kubernetes GitLab шел необычным путем Как наша команда Delivery, используя только собственные ресурсы, переделала нашу систему под CI/CD. Команды инженеров постоянно испытывают давление: нужно выдавать новые функции в виде достойного продукта и при этом постоянно минимизировать время цикла. Зачастую специалисты...

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

На мобильных выйдет крутая кооперативная игра Keep Talking and Nobody Explodes Keep Talking and Nobody Explodes - безумно популярная кооперативная игра. В Steam у нее 98% положительных отзывов за 3 года с момента релиза. Суть игры в том, что один из игроков оказывается в комнате с заряженной бомбой и вынужден ее обезвредить. Но то, как это сделать пра...

Пять студентов и три распределённых key-value хранилища Или как мы писали клиентскую C++ библиотеку для ZooKeeper, etcd и Consul KV В мире распределённых систем существует ряд типовых задач: хранение информации о составе кластера, управление конфигурацией узлов, детекция сбойных узлов, выбор лидера и другие. Для решения этих зада...

[Перевод] Конфигурируйте Visual Studio в вашей организации с помощью .vsconfig В Visual Studio 2017 Update 15.9 мы добавили возможность экспорта и импорта рабочей нагрузки и выбора компонентов в файл конфигурации установки Visual Studio. Разработчики могут импортировать эти файлы в новые или существующие установки. Проверка этих файлов в ваших исходных...

Архитектурные решения для мобильной игры. Часть 1: Model Эпиграф: — Как я тебе оценю, если неизвестно что делать? — Ну там будут экранчики и кнопочки. — Дима, ты сейчас всю мою жизнь описал в трёх словах! (с) Реальный диалог на митинге в игровой компании Набор потребностей и отвечающих им решений, о которых я поговорю в этой...

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

«Ждёт тебя дорога дальняя…» или решение задачи прогнозирования на C# с помощью Ml.NET (DataScience) В последнее время мне все чаще на глаза попадается информация о фреймворке для машинного обучения Ml.NET. Количество упоминаний о нем переросло в качество, и я решил хотя бы одним глазком глянуть, что же это за зверь такой. Ранее мы с вами уже пробовали решить простейшую з...

Собираем свой Nginx парой команд Привет! Меня зовут Сергей, я работаю инфраструктурным инженером в команде API платформы tinkoff.ru. В этой статье я расскажу о проблемах, с которыми сталкивалась наша команда при подготовке балансировщиков на основе Nginx для различных проектов. Также расскажу об инструмен...

Курс лекций «Основы цифровой обработки сигналов» Всем привет! Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе...

Пользовательское интервью внутренними силами компании: через ошибки к открытиям Привет, я Саша, скрам-мастер из Туту.ру в команде туров. Не так давно мы проводили пользовательское интервью для нашей новой фичи — Джарвела. Хочу поделиться с вами ошибками и открытиями, которые помогли нам провести это интервью так, что оно затронуло и изменило краеуголь...

Marvell готовит серверные ARM-процессоры ThunderX3 и ThunderX4 Судьба у ThunderX2 оказалась незавидной. Изначально проект разрабатывался в недрах Broadcom, потом перешёл в руки Cavium, которую в итоге поглотила Marvell. Анонс этих CPU состоялся ещё в 2016 году, но фактически на рынок они вышли лишь в 2018 году. В таких условиях говорить...

Sberbank AI Journey. Как мы учили нейросеть сдавать экзамен Если вы закончили школу уже во времена ЕГЭ, то вам известно, что все задания в нём имеют набор стандартных формулировок и упорядочены по типам. С одной стороны, это облегчает подготовку к экзамену: школьник уже знает, что нужно делать в задании, даже не читая его условия. С ...

Настройка состава JUnit5 тестов с помощью application.properties Представьте себе ситуацию, когда ваш проект должен компилироваться в различных окружениях. Теперь представьте, что не все тесты должны проходить в этих окружениях — кажому свой набор тестов. И предпочтительней настроить выбор, какие тесты должны выполняться, в… файле applica...

React + IndexDb + автообновление = почти AsyncRedux В данной заметке по шагам расскажу как приготовить IndexDB (база данных, которая встроена в любой современный браузер) для использования в проектах, написанных на ReactJS. В результате Вы сможете использовать данные из IndexDB так же удобно, как если бы они находились в Redu...

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

[Перевод] Почему для открытия меню Windows читает один файл сто тысяч раз? «Проводник тратит 700 мс на то, чтобы открыть контекстное меню панели задач. 75% этого времени он выполняет 114 801 операцию считывания из одного файла, средний объём считываемых данных 68 байт. Мне стоит написать пост об этом, или достаточно саркастичного твита?» За комп...

Как отправить большое видео с iPhone, iPad, Android или компьютера Казалось бы, с ростом скоростей Интернета отправка больших файлов тоже должна становиться более простым занятием. На самом деле задача по-прежнему остается сложной. Самое простое решение – отправить файл по электронной почте, упирается в ограничение в размер письма в 25 МБ, ...

Методы распознавания 3D-объектов для беспилотных автомобилей. Доклад Яндекса Беспилотному авто не обойтись без понимания, что находится вокруг и где именно. В декабре прошлого года разработчик Виктор Отлига выступил на «Дата-елке» с докладом о детекции 3D-объектов. Виктор работает в направлении беспилотных автомобилей Яндекса, в группе обработки доро...

[Из песочницы] Разработка Chrome Extension вместе с Angular CLI Разработкой расширений к Chrome я занимаюсь давно и за это время я прошел целый путь от Greasemonkey юзер-скриптов до полноценного Angular-приложения в оболочке chrome-extension. Моя задача в том, что я патчу некоторые уже работающие сайты, чтобы изменить их функционал и авт...

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

Создание мозаичной картинки Наверняка вы неоднократно видели в интернете такие картинки: Я решил написать универсальный скрипт для создания подобных изображений. Читать дальше →

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

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

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

Краудсорсинг в ML Boot Camp. Считаем mIOU без картинок для новой задачи от Одноклассников Привет! Лето — жаркое. Организаторы «айтишных» чемпионатов много сидели на солнце, сгорели и схватили удар, но главное — собрали новую задачу для очередного (уже девятого) контеста на платформе ML Boot Camp. Чемпионат пройдёт онлайн в течение месяца. Сейчас на платформе за...

Фотогалерея дня: медали для Летних Олимпийских игр 2020, созданные из переработанной электроники Ещё три года назад стало известно, что Япония сделает медали для Летних Олимпийских игр 2020 из переработанной электроники. В стране объявили сбор электронных отходов, и уже в начале текущего года цель практически была достигнута. И вот теперь япон...

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

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

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

Сортировка фотографий по данным из EXIF + PHP Хочу поделиться своим опытом сортировки фотографий с помощью скрипта на PHP Наступает тот момент, когда фотографий становится не много, а катастрофически много. Читать дальше →

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

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

Приглашаем энтузиастов в The Medium Foundation Приветствую, Сообщество! The Medium Foundation — это общественная организация, основной целью которой является разработка сети «Medium» — независимой телекоммуникационной среды передачи данных. Мы оказываем своим пользователям услуги подвижной радиосвязи на безвозмездной ос...

[Из песочницы] Автосэмплер — жизнь после жизни Жил он долго и счастливо… а потом сломался. Пролог Году, кажется в 2009 для одного проекта был куплен прибор-анализатор воды. Ввиду того, что предполагалось его использовать для обеспечения работы технологического оборудования, прибор был куплен в комплектации с автосэмплер...

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

Security Week 17: атаки по цепи поставок В начале апреля мы обсуждали атаку ShadowHammer на ноутбуки Asus как пример вредоносной кампании с использованием цепочки поставщиков. Атаки на supply chain представляют особый интерес для исследователей и особую опасность для бизнеса именно потому, что компрометируют довере...

Как организовать 120 000 фоток и чтобы не было трындеца, с различными уровнями доступа, для команды Решил я поискать работы Sci-Fi-художников прошлого и настоящего, которые рисовали реактивные ранцы. Нашел группу в ВК «Музей будущего», а там — 16 000 фотографий. Пришлось пересмотреть все вручную, навыбирал несколько десятков с джетпакоподбными аппаратами (см. подборку по...

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

Как накормить миллионы китайцев за полчаса Привет! На связи команда инноваций Х5 Retail Group #x5lab. Новые технологии в ритейле – прорывные кассы самообслуживания, мониторинги очередей, роботы на распределительных центрах, терминалы лояльности и многое другое – это к нам. Но сегодня мы хотим рассказать не об этом, а...

Calltouch научился подменять номера на скоростных AMP-страницах Google Calltouch первым научился использовать подмену номера на ускоренных мобильных страницах Google – AMP. Настроить коллтрекинг на AMP-странице можно менее, чем за 10 минут с помощью скриптов Google и Calltouch. Подмена номера требует особой технологии, которую разработал Callto...

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

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

Мобильные отчеты на Oracle BI EE 12c — на раз, два, три. Методология из курса Oracle BI EE 12c CAD У многих компаний — пользователей продукта Oracle BI 12c есть общая проблема: их разработчики по разным причинам не хотят связываться с мобильной разработкой отчетов. На наших курсах по BI этот вопрос в новой версии был освещен достаточно полно, поэтому мы выкладываем факти...

Где скачать моды для Minecraft: 5 удобных сайтов На этих порталах можно найти миллионы карт, скинов, скриптов и наборов текстур для знаменитой игры.

Вероятность выигрыша матча при известной вероятности выигрыша очка Надеюсь, среди читателей есть любители спорта. Если Вы играете в бадминтон или настольный теннис, то Вы возможно задавались вопросом: какова вероятность выиграть игру при известной вероятности выиграть очко? Допустим Вы проигрываете своему сопернику со счетом около 11:7. Каз...

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

[Перевод] Как опубликовать консольную утилиту на PyPI за 1 минуту Разработав консольную утилиту, вы решаетесь опубликовать её на PyPI. Ну правда, что может быть лучше, чем сделать её доступной через pip install? Погуглив, что для этого надо, вы, возможно, наткнётесь на единственный найденный мной пост по теме, который мало того что от 201...

По следам Highload++ Siberia 2019 — 8 задач по Oracle Привет! 24-25 июня в Новосибирске прошла конференция Highload++ Siberia 2019. Наши ребята тоже там были докладом «Контейнерные базы Oracle (CDB/PDB) и их практическое использование для разработки ПО», мы выложим текстовую версию немного позже. Было круто, спасибо olegbunin ...

Подключаем онлайн-карты к навигатору на смартфоне. Часть 3 — OverpassTurbo Превращаем созданный ранее скрипт в API для просмотра интерактивной карты с сайта OverpassTurbo.eu через навигационное приложение смартфона. Читать дальше →

Как выбрать Open Source лицензию для RAD фреймворка на GitHub В этой статье мы немного поговорим об авторском праве, но в основном о выборе свободной лицензии для RAD фреймворка IONDV. Framework и для опенсорсных продуктов на его основе. Мы расскажем о разрешительной лицензии Apache 2.0, о том, что привело нас к ней и с какими решениям...

Kubernetes 1.16 — как обновиться и ничего не сломать Сегодня, 18 сентября, выходит очередная версия Kubernetes — 1.16. Как всегда нас ждет много улучшений и новинок. Но я хотел бы обратить ваше внимание на разделы Action Required файла CHANGELOG-1.16.md. В этих разделах публикуются изменения, которые могут сломать работу ваш...

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

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

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

Аппаратное уничтожение данных на жёстком диске Жжём по полной. Ни для кого не секрет, что для полного и безвозвратного удаления информации с цифрового носителя просто выбрать файл и нажать на клавишу «del» или воспользоваться командой «rm» недостаточно. Сделать так, чтобы умные и дотошные парни не смогли восстановить ...

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

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

Intel OpenVINO на Raspberry Pi: урожай 2018 года В последнем квартале уходящего года, А если быть точным, на прошлой неделе, Разработчики Intel представили новый Релиз OpenVINO toolkit на software. Что нового сделано — обратитесь к changelog'ам, Мне точным в деталях быть не дано, Я в этом посте расскажу лишь немного: Про з...

Золото, HODL, игра на понижение: как выживают биткоин-инвесторы на падающем рынке Всего каких-то полтора-два года назад криптоинвесторам достаточно было приобрести немного биткоинов или несколько более-менее ликвидных альткоинов и просто «ходлить» эти активы, чтобы значительно приумножить капитал. Например, в течение одного лишь 2017 года биткоин вырос в ...

Делаем вездесущий Splash Screen на iOS Привет Хабр! Я расскажу о реализации анимации перехода со сплэш скрина на другие экраны приложения. Задача возникла в рамках глобального ребрендинга, который не мог обойтись без изменения заставки и внешнего вида продукта. Для многих разработчиков, участвующих в крупных...

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

Искусство парсинга 2 или транслитерация собственной разметки +БОНУС: как включать классы друг в друга в C++ Привет, Хабр! Эта статья — прямое продолжение статьи Искусство парсинга или DOM собственными руками, где мы разобрали HTML-документ и построили на его основе абстрактное синтаксическое дерево (AST) с доступом к любому элементу ч...

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

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

Группировка Magecart внедрила скиммер на 17 тысяч веб-сайтов По данным ИБ-экспертов, злоумышленники из группировки Magecart внедрили код скиммера в JavaScript-файлы более 17 тыс. сайтов, размещенных на неправильно настроенных серверах Amazon S3. Некоторые из атакованных веб-ресурсов входят в список 2000 самых посещаемых сайтов в рейти...

[Из песочницы] Тестирование API с использованием Postman и Excel Всем привет, я руководитель отдела тестирования, и недавно по работе появилась задача на тестирование API. Для ее решения освоил новый для меня инструмент Postman и JavaScript. Первоначально на каждый API я писал свои коллекции и готовил тестовые данные в JSON формате. Это ...

Хакеры используют скрипты PowerShell для скрытых атак Киберпреступники атаковали дипломатические учреждения в Восточной Европе с использованием скриптов PowerShell.

Как мы запускаем новый сайт банка. Часть 1 Привет! Меня зовут Илья Голованов. Мы вместе с командой работаем над новым сайтом Промсвязьбанка. В этой статье я расскажу, какие задачи перед нами стоят, с какими проблемами мы сталкиваемся и к каким решениям приходим. Пока новый вид доступен для 30% страниц (их можно увид...

SKR1.3 + TMC2130 и парковка без концевиков! Всем доброго времени суток! Решил написать как реализовать парковку без концевиков на TMC2130, вдруг кому то пригодится. Оговорюсь сразу, что буду делать только для осей X и Y. Для Z не буду, ибо там у меня BLtouch. Для реализации нам потребуется немного доработать драйвер, ...

[Перевод] Немного о затенении по Фонгу «Мы не можем ожидать, что у нас получится отобразить объект точно таким, каким он является в реальности, с текстурами, тенями и т.д. Мы надеемся только на то, чтобы создать изображение, которое достаточно близко к достижению определённой степени реализма». Буй Тыонг Фонг Б...

[Из песочницы] Организация маршрутов в Laravel Здравствуй, Habr. Недавно я согласился на ревью сайта, заказанного на фрилансе. Я ожидал увидеть контроллеры, которые делают вообще все и занимают 200+ строк (и прочие проявления плохого кода), но все было вполне прилично. Валидация не лежала в контроллере, что встречается д...

[Из песочницы] Самый беззащитный — это Сапсан Был я как-то на ZeroNights, это очередная конференция по информационной безопасности, которая в этом году была совсем шлаком. Там я хотел как всегда что-либо поломать, получить за это приз, и т.д., но как я выяснил — интересных задач там не было, и пришлось развлекать себ...

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

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

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

[Перевод] Современная игра для NES, написанная на Lisp-подобном языке What Remains — это повествовательная игра-адвенчура для 8-битной видеоигровой консоли NES, выпущенная в марте 2019 года как бесплатный ROM, запускаемый в эмуляторе. Она создавалась небольшой командой Iodine Dynamics на протяжении двух лет с перерывами. В настоящий момент игр...

Нейросетевой синтез речи с помощью архитектуры Tacotron 2, или «Get alignment or die tryin'» Нашей команде поставили задачу: повторить результаты работы искусственной нейронной сети синтеза речи Tacotron2 авторства DeepMind. Это рассказ о тернистом пути, пройденном нами в ходе реализации проекта. Читать дальше →

Статистика на службе у бизнеса. Методология расчёта множественных экспериментов Добрый день! Как и было обещано в предыдущей статье, сегодня мы продолжим разговор о методологиях, применяемых в A/B-тестировании и рассмотрим методы оценки результатов множественных экспериментов. Мы увидим, что методологии довольно просты, и математическая статистика не т...

Kali Linux получила режим визуальной мимикрии под Windows и другие особенности версии 2019.4 В последнем обновлении популярный среди безопасников и хакеров дистрибутив Kali Linux получил любопытный режим «Undercover» — «под прикрытием», суть которого сводится к визуальной мимикрии под графическую оболочку Windows. Привет, я Kali Linux! Сами разработчики объяснил...

Админ без рук = гиперконвергенция? Это миф, достаточно распространённый в сфере серверного железа. На практике же гиперконвергентные решения (когда всё в одном) нужны много для чего. Исторически сложилось, что первые архитектуры были разработаны Amazon и Google под свои сервисы. Тогда идея была в том, чтоб...

[Перевод] Как я нашёл баг в GNU Tar Автор статьи — Крис Зибенманн, системный администратор Unix в университете Торонто Время от времени в моей работе происходит нечто странное, что заставляет задуматься, даже если сразу непонятно, какие следуют выводы. Недавно я упомянул, что мы нашли ошибку в GNU Tar, и исто...

[Перевод] Apple 2019 в году — это Linux в 2000 году Примечание: этот пост — ироничное наблюдение на тему цикличности истории. Это самое наблюдение не несет какой-либо практической пользы, но в сути своей — весьма меткое, так что я решил, что им стоит поделиться с аудиторией. Ну и конечно же, встретимся в комментариях. На п...

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

Итоги кибербитвы The Standoff, или Как PT Expert Security Center следил за атакующими На Positive Hack Days уже в четвертый раз проводилось соревнование The Standoff: это кибербитва между командами атакующих, защитников и экспертных центров безопасности (SOC) за контроль над инфраструктурой виртуального города F. Перед атакующими стояли те же цели, к котор...

[Из песочницы] Интеграция Jira с GitLab Цель При коммите в git упоминаем в комментарии какую-либо задачу из Jira по имени, после чего происходит две вещи: в GitLab название задачи превращается в активную ссылку на нее в Jira в Jira к задаче добавляется комментарий со ссылками на коммит и пользователя, его со...

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

Epic Games раздаёт разработчикам $100 млн Аттракцион невиданной щедрости устроила компания Epic Games, объявив о раздаче грантов на рекордную сумму $100 млн. На безвозмездное финансирование по программе Epic MegaGrants могут претендовать разработчики, цифровые художники, студенты, преподаватели, школы и т. д. Форм...

Google App Script, Mikrotik, Telegram и VPNBook затеяли сыграть квартет Сегодня в программе: Куда еще можно применить Google Apps Script, если закончились нормальные идеи. Автоматизация работы с VPNBook через цепочку скриптов на разных языках, которые я не знаю. Недо-cURL от Mikrotik. Telegram через одно место, чтобы не оказаться в другом, самко...

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

Доказано: недосып приводит к набору веса всего за 4 дня Достаточно плохо спать всего несколько ночей, чтобы начать толстеть.

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

Уязвимость в браузере Internet Explorer позволяет злоумышленникам красть файлы с ПК под управлением Windows Исследователь безопасности Джон Пейдж (John Page) опубликовал подробные сведения об уязвимости XXE (XML eXternal Entity), обнаруженной в браузере Internet Explorer, которая позволяет злоумышленникам красть файлы с ПК под управлением Windows. Уязвимостью можно воспользов...

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

Стажировка в «Ростелеком-Солар»: качаем Scala-скиллы Всем привет! Для тех, кто мечтает стать Senior Developer и готов присоединиться к крутой команде Scala-разработчиков, с 1 по 15 декабря 2019 года мы запускаем отбор на бесплатный курс по обучению Scala. По окончании обучения пятеро лучших стажеров смогут присоединиться к са...

[Из песочницы] Восстановление данных с XtraDB таблиц без файла структуры, используя побайтовый анализ ibd файла Предыстория Так произошло, что сервере был атакован вирусом шифровальщиком, который по "счастливой случайности", частично отставил не тронутыми файлы .ibd (файлы сырых данных innodb таблиц), но при этом полностью зашифровал файлы .fpm (файлы структур). При этом .i...

Мгновенная настройка привычных файловых ассоциаций Автоматизировал задание файловых ассоциаций, то есть выбор программы которая будет открывать файл из Explorer/Finder. И делюсь. Сначала проблематика. Файлы нужных расширений часто не открываются по умолчанию ничем, а если открываются, то каким-нибудь iTunes. Под windows нужн...

Разработка команды запроса данных из базы — часть 2 В предыдущей части я остановился на том, что разрабатываемая мной команда реализует поведение, которое можно описать вот таким тестом: it('execute should return promise', () => { request.configure(options); request.execute().then((result) => { expect(result....

MPPT контроллер заряда на STM32F334C8T6 В комментариях под моими предыдущими статьями неоднократно возникал вполне резонный вопрос: "Зачем делать dc/dc преобразователи на микроконтроллере, когда есть готовые?" и я в качестве ответа постоянно упоминал, как наиболее яркий пример, контроллер заряда с алгоритмом MPPT....

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

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

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

Обзор и тестирование материнской платы ASUS ROG Maximus XI Formula Из всех модификаций выделяется именно Formula. Так исторически сложилось, что эти модели выпускаются с особенными радиаторами на транзисторах системы питания процессора. По сути это водоблок. Значит, материнская плата предназначена в первую очередь для любителей кастомных СЖ...

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

У новейших одноплатных ПК Raspberry Pi 4 обнаружилась проблема с портом USB-C Одноплатный ПК Raspberry Pi 4 вышел всего пару недель назад, удивив и производительностью, и набором портов. В частности, это первый ПК компании, оснащённый разъёмом USB-C. В данном случае он используется для питания новинки. Однако оказалось, что первый блин у Raspber...

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

Как дебажить переменные окружения в Linux Часто бывает так, что приходишь на машину и обнаруживаешь какой-то скрипт, запущенный под системным пользователем неделю назад. Кто его запустил? Где искать этот run.php? Или добавляешь запись в /etc/crontab, а скрипт там падает с ошибкой «command not found». Почему? И что д...

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

Бенчмаркинг Емели Основная задумка Про бенчмаркинг приложений, движков и различных программных систем писано множество книг, статей и туториалов. Вот что выдает нам старушка Википедия на сей счет: Тест производительности, бенчмарк (англ. benchmark) — контрольная задача, необходимая для опред...

[Из песочницы] Справочник начинающего подкастера Эта статья — краткое руководство для тех, кто хочет запустить свой собственный подкаст. Когда я вместе с моим нынешним соведущим год назад запускал подкаст “В бесконечность и далее”, я не смог найти ни одной по-настоящему всеобъемлющей статьи. Поэтому я решил попытаться запо...

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

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

[Перевод] Введение в Example Mapping Прежде чем взяться за работу над user story, очень важно определить для себя критерии приемки. Это можно сделать, когда вы детализируете бэклог или планируете  ближайший спринт. Некоторые команды для этого проводят специальные встречи, которые называются 3 Амиго (подробнее о...

Microsoft Store удалил восемь приложений со скриптом для скрытого майнинга Специализирующаяся на кибербезопасности компания Symantec обнаружила в Microsoft Store для Windows восемь приложений со встроенной усовершенствованной версией Coinhive, скрипта для скрытого майнинга криптовалюты Monero. Symantec has found 8 potentially unwanted apps on the @...

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

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

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

Хватит качать и хранить нули Нуль-блоками я называю блоки(части файла) заполненные нулевыми байтами. Можно заранее посчитать их хеши и не запрашивать эти блоки у источников а сразу помечать их уже загруженными. Нуль-блоки не надо хранить на диске. Благодаря sparse флагу операционная система просто пом...

Электронные книги и их форматы: говорим про EPUB — его историю, плюсы и минусы Ранее в блоге мы писали о том, как появились форматы электронных книг DjVu и FB2. Тема сегодняшней статьи — EPUB. Изображение: Nathan Oakley / CC BY История формата В 90-е на рынке электронных книг господствовали проприетарные решения. И у многих производителей читалок б...

Деплоим код напрямую в docker-контейнер. Или как не прокрастинировать после каждого коммита Пришла задача WEB-12982 Создаешь ветку web-12982 в репозитории Пока ветка собирается, читаешь тз и пьешь кофе Приступаешь непосредственно к разработке git commit, git push Пока ветка пересобирается листаешь хабр git commit, git push Пока ветка пересобирается листаешь твитте...

Что же такое «Модель предметной области»? Привет, Хабр. Сегодня зашел в канал #school в русскоязычном GoCommunity в Slack и обнаружил там один интересный диалог. Данный диалог навел меня на некоторые мысли относительно того, как коллеги интерпретируют понятие “модель предметной области (домена)”. Как оказалось, су...

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

Как быстро отсортировать файлы по папкам на Mac Automator — это невероятно мощный инструмент для автоматизации действий в macOS. Возможности этой утилиты, фактически, ограничены лишь вашей фантазией. И мы сегодня убедимся в этом в очередной раз, создав простую службу, которая позволит в два счёта отсортировать файл...

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

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

Что ты такое? Как мы spoof от human отличали — да еще и победили Недавно прошел ID R&D Voice Antispoofing Challenge, главной задачей которого было создать алгоритм, способный отличить человеческий голос (human) от синтезированной записи (spoof). Я — ML Researcher в Dasha AI и много работаю над распознаванием речи, поэтому и решил поуч...

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

[Из песочницы] Typescript и react Разработка на javascript иногда становится похожа на работу детектива. Как понять чужой код? Хорошо, если разработчик обладает тонким искусством называть переменные так, чтобы другие поняли суть. А как быть, если члены команды все таки не всегда способны понять замысел своег...

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

Как мы создавали технологию оптического распознавания текста. OCR в Яндексе Привет! Сегодня я расскажу читателям Хабра о том, как мы создавали технологию распознавания текста, работающую на 45 языках и доступную пользователям Яндекс.Облака, какие задачи мы ставили и как их решали. Будет полезно, если вы работаете над схожими проектами или хотите узн...

Структура DNS пакета Предисловие Решил как то написать снифер DNS, так сказать just for fun. Просто посмотреть какие адреса в моей системе резолвятся. Протокол старый, документации должно быть много. Много. Но все статьи очень не полные и заканчиваются, на самом интересном моменте. Да, есть rf...

[Из песочницы] React Native — серебряная пуля для всех проблем? Как мы выбирали кросс-платформенный инструмент для Profi.ru Всем привет, меня зовут Геворг. Я Head of Mobile в Profi.ru. Хочу поделиться с вами историей нашего эксперимента с React Native. Расскажу, как мы оценивали плюсы и минусы разработки на React Native — в теории и на практике. Статья будет полезна тем, кто интересуется кросс-пл...

Эксперты «Лаборатории Касперского» изучили троян Razy Эксперты «Лаборатории Касперского» проанализировали обнаруженный ими в прошлом году зловред Razy. Троян атакует браузеры Mozilla Firefox, «Яндекс.Браузер» и Google Chrome путем внедрения расширений с вредоносными скриптами и крадет биткойны и монеты Ether...

[Перевод] Убил ли Linux коммерческий Unix? Продажи коммерческого Unix падают, будто с обрыва. За этим драматическим спадом должно что-то стоять. Убил ли Linux своего предка, став прекрасной ему заменой, будто реализовав "Вторжение похитителей тел" в мире операционных систем? Начало Unix Первый выпуск Unix состоялс...

[Из песочницы] Визуализации в Google Spreadsheets С момента появления Excel стал самым популярным и универсальным инструментом автоматизации расчетов для непрограммистов и полупрограммистов (таких, как я). В свое время я много всякого писал на VBA, делал в студенчестве скрипты для оформления курсовых, даже запилил для диссе...

Беты Apple живьем: мелочи, о которых не рассказали на презентации Официально новые версии операционных систем Apple появятся только через несколько месяцев, но бета-версии можно «пощупать» уже сейчас. Для этого нужен аккаунт разработчика, компьютер с iTunes, Xcode 11 beta и файлы прошивок: iOS 13, iPad OS 13, TV OS 13, Watch OS 6 и MacOS 1...

Галерея лучших блокнотов по ML и Data Science Привет, читатель. Представляю пост который идёт строго (!) в закладки и передаётся коллегам. Он с подборкой примечательных файлов формата Jupyter Notebook по Machine Learning, Data Science и другим сферам, связанным с анализом данных. Эти блокноты Jupyter, будут наиболее по...

Лучшие программы для чтения комиксов на Android Читать комиксы на Android-смартфоне? Почему бы и нет! Сегодня комиксы стали неотъемлемой частью массовой культуры и при этом комиксы не ограничиваются лишь историями про «супергероев в цветных трусах». Есть и достаточно серьезные произведения, затрагивающие взрослы...

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

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

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

Взломщики атакуют баги в коммерческом WordPress-плагине Опасные уязвимости обнаружили в плагине WP Cost Estimation & Payment Forms Builder специалисты компании Wordfence. Бреши позволяют злоумышленникам внедрять произвольные скрипты на целевой сайт под управлением WordPress, а также перезаписывать некоторые файлы на сервере. ...

История борьбы с цензурой: как работает созданный учеными из MIT и Стенфорда метод flash proxy В начале 2010-х годов объединенная группа специалистов из Стенфордского университета, Массачусетского университета, The Tor Project и SRI International представила результаты своего исследования способов борьбы с цензурой в интернете. Ученые проанализировали существовавш...

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

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

Как получить быстрый доступ к веб-приложениям iCloud из Chrome За что многие пользователи так любят Google Chrome, что готовы ради него отказываться от не в пример более экономичного и быстрого Safari? Конечно, за расширения, которым Google даже посвятила отдельный магазин. Благодаря расширениям можно существенно расширить функциональн...

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 5. Система материалов В предыдущих частях туторов мы рассматривали то, как создаются текстуры. Точнее, то, как всё выглядит под капотом (как выразился Yoooriii в комментариях к 4-ой части). Расставили на свои места термины — пиксели и тексели. Разобрали немного развертку и сетку моделей, PBR и ма...

[Из песочницы] Lehmann Linear DIY или как клонировать породистого немца с хорошим результатом Началось все с того, что как то на прослушке своих ушей Beyerdynamic DT880 600ohm(!) я воткнул их в какой-то породистый ламповый усилок и понял, что жить со своим старичком (тоже ламповым) я уже не смогу. Спойлер, вот он готовый клон немца за 79 тысяч рублей: Читать дальше ...

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

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

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

И снова о макетах Всем привет! У нас тут очередные макеты были отгружены заказчику.В этот раз конструктора Заказчика отдали 3D-файлы горной техники без права передачи на сторону. Но при масштабировании, естественно, слетели размеры тонких элементов, пришлось кое-что и немало допиливать. Но в ...

DroidScript 1.68 DroidScript — программа поможет легко написать приложения для смартфона или планшета используя javascript. При этом нет необходимости в ПК, просто редактируйте код непосредственно на устройстве. А широкий набор api этому только способствует. Однако есть возможность отладки...

[Перевод] Грязные хаки ассемблера 6502 В этой статье перечислены некоторые трюки, которые применяли участники моего маленького конкурса программирования Commodore 64. Правила конкурса были просты: создать исполняемый файл C64 (PRG), который рисует две линии, чтобы сформировать изображение ниже. Побеждал тот, чей ...

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

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

Как установить приложение с обоями для Pixel 4 на любой Android-смартфон Обои для Android В этом году Google решила самостоятельно раскрывать важные подробности о смартфонах Pixel 4 ещё до официального релиза, начав с внешнего вида, камер и продвинутой технологии распознавания лиц. Вероятно, таким образом в компании хотели победить утечки, сделав...

Добавляем Sign in with Apple на back-end На WWDC 2019 Apple представила новую систему авторизации пользователей — Sign in with Apple. Возникла задача интегрировать её в наш back-end и синхронизировать её с уже существующими методами авторизации при помощи email, Google и Facebook. За задачу взялся наш коллега kuren...

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

[Из песочницы] Пентест-лаборатория «Pentestit Test lab 12» — полное прохождение Каждый год компания Pentestit запускает новую лабораторию для тестирования на проникновение «Test Lab», и данная статья будет посвящена прохождению 12-ой лаборатории, получившей название «z 9r347 39u411z3r» или если раскодировать — «The great equalizer». DisclaimerДанная ...

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

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

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

[Перевод] GitLab 12.2: направленные ациклические графы для пайплайнов и управление дизайном Потрясающий выпуск GitLab 12.2 поможет командам оптимизировать пайплайны, расширить возможности совместной работы и управлять взаимозависимостями между проектами. Подробности ниже. Более быстрые и гибкие пайплайны Пайплайны CI нужны для автоматизации задач сборки и тестиров...

[Из песочницы] 2 минуты с Webpack tree-shaking и re-export Вступление Позвольте мне начать. У нас был монолитный фронтэнд с большим наследием. Сервисы жили в одних файлах с компонентами. Всё было вперемешку и с лозунгом на фасаде: “Пусть всё будет под рукой – так легче найти, что надо". И не важно, что длина файла 200+, 300+, 5...

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

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

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

Git это круто! Ваш кэп Это, пожалуй, будет самая короткая моя статья. Более того, сама идея, изложенная в ней, очевидная. Часто в WEB проектах возникают задачи по доставке статики на прод вне релизов. Например, нужно выложить файлы для SPA со всякой маркетинговой лабудой, типа актуальных комиссий...

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

[Перевод] C# или Java? TypeScript или JavaScript? Классификация языков программирования на основе машинного обучения На GitHub представлено больше 300 языков программирования, начиная с общеизвестных языков, таких как Python, Java, и Javascript, и заканчивая эзотерическими языками, такими как Befunge, известными только малым группам людей. Топ-10 языков программирования, размещенных на Gi...

РНР-безопасность: где и как хранить пароли. Часть 1 Каждый год в мире происходит все больше хакерских атак: от краж кредитных карт до взломов сайтов онлайн-магазинов. Уверены, что ваши скрипты по настоящему защищены? В преддверии старта курса «Backend-разработчик на PHP» наш коллега подготовил интересную публикацию на тему бе...

Podlodka #123: Голосовые ассистенты Надоело двигать кнопки и парсить JSON'ы, хочется чего-то новенького? Как насчет создания приложений под голосовые ассистенты?

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

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

Сериал «Марс»: Надуманные аварии и экология вместо космонавтики В комментариях к обзору сериала «Первые» меня попросили высказать мнение о сериале «Марс» National Geographic. В то время как раз ожидался выход второго сезона, так что я решил посмотреть его, а потом уже писать обзор. Последняя серия вышла 17 декабря. Если очень кратко, пер...

Google открывает исходный код парсера robots.txt Сегодня компания Google анонсировала черновик RFC стандарта Robots Exclusion Protocol (REP), попутно сделав доступным свой парсер файла robots.txt под лицензией Apache License 2.0. До сегодняшнего дня какого-либо официального стандарта для Robots Exclusion Protocol (REP) и...

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

В snap-демоне Ubuntu нашли уязвимость Dirty Sock Ключевой компонент многих Linux-дистрибутивов — в первую очередь Ubuntu — содержит серьезную уязвимость, через которую злоумышленники могут получить root-привилегии. К такому выводу пришел ИБ-специалист Крис Моберли (Chris Moberly), разработавший два эксплойта для взлома опе...

Обзор IPSec в Mikrotik IPSec (IP Security) — набор протоколов и алгоритмов для шифрования данных в IPv4 и IPv6 сетях. Звучит не сложно, но IPSec не устанавливает четких правил для шифрования трафика, вместо этого разработчики реализуют набор инструментов (протоколов и алгоритмов), используя которы...

[Перевод] Что происходит, когда вы отправляете SMS Это третья статья в цикле full-stack dev о секретной жизни данных. Она посвящена сложному и длинному маршруту SMS: набор, сохранение, отправка, получение и отображение. Добавлю немного истории и контекст, чтобы разбавить перечень протоколов. Хотя текст довольно технический, ...

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

Способ запуска ГТА 5 на слабый ПК, Ноутбук Предисловие: Пришлось распрощаться сначала со своей gtx 980, а теперь и gtx 1070 TI. И пока, временно, только встроенная видео карта Intel HD 4600. А так привык шпилить в GTA V. Как настроить ГТА 5 на слабом ПК чтобы не лагало Прежде всего это — выкрутить все графические ...

Стоит ли делать кератиновое выпрямление волос Лайфхакер разобрался, в чём суть метода и что потом будет с волосами.

Deezer разработал Spleeter — простой open-source инструмент на базе ИИ, способный отделять вокал от музыки Разделение композиции на вокал и аккомпанемент всегда было непростой задачей. Существуют несколько способов сделать это, но, во-первых, процесс занимает достаточно много времени, а во-вторых, результаты зачастую далеки от совершенства. Новый ИИ-инструмент с открытым исходным...

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

Foundry: решения типовых задач для BaaS BaaS, то есть Backend-as-a-Service, значительно упростили и удешевили развертывание (своей) собственной серверной инфраструктуры. Foundry идет еще дальше и предлагает готовые пайплайны (конвейеры, скрипты) для типовых задач.

Apache Kafka и потоковая обработка данных с помощью Spark Streaming Привет, Хабр! Сегодня мы построим систему, которая будет при помощи Spark Streaming обрабатывать потоки сообщений Apache Kafka и записывать результат обработки в облачную базу данных AWS RDS. Представим, что некая кредитная организация ставит перед нами задачу обработки вхо...

[Из песочницы] Использование C++ и шаблонов с переменным количеством аргументов при программировании микроконтроллеров ARM с ядром Cortex Mx (на примере STM32F10x) Микроконтроллер ARM Cortex M3 STM32F103c8t6 широко распространен как 32-х битный микроконтроллер для любительских проектов. Как для практически любого микроконтроллера, для него существует SDK, включающая, в том числе и заголовоч...

В Search Console появился отчёт по наборам данных Google добавил в Search Console отчёт о новом типе расширенных результатов — наборах данных. Его можно найти в разделе «Улучшения». Этот отчёт будут видеть только те вебмастера, которые разметили свои наборы данных с помощью соответствующей разметки. Список всех типов ...

Intel PAC N3000 — FPGA для сетевых приложений В полном соответствии с тематикой выставки Mobile World Congress 2019, проходящей в эти дни в Барселоне, компания Intel представила на ней целый ряд новинок, предназначенных для телекоммуникационной отрасли. Хотим обратить внимание на одну из них; она достаточно специфична ...

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

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

[Перевод] Разбор: как на самом деле правильно использовать Present Perfect в английском Из всех используемых в английском языке времен, именно Present perfect зачастую оказывается одним из самых трудных для понимания не-носителями. Аналоги этого времени существуют во множестве языков, но в использовании есть едва уловимые отличия. В итоге английская версия pr...

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