habrahabr.ru

    Хабрахабр / Лучшие публикации за сутки

  • Как переехать с BuddyBuild на GitLab CI за 4 часа


    Предыстория


    Полтора года назад команда iOS FunCorp переехала на новый сервис для простой организации CI в iOS и Android-проектах.

    До этого мы использовали CI на Bamboo, но с ним было много проблем, поэтому мы совсем отказались от него и перешли на BuddyBuild.

    Он работал настолько просто, что можно было даже не знать, что такое CI и как заливать приложение в AppStore, а спокойно заниматься кодом, тестами и продуктовой разработкой.
    Но времена поменялись, и BuddуBuild уже не тот, поэтому мы начали поиск альтернативы.
    В этой статье мы расскажем о новом решении, которое выбрала наша команда, и дадим несколько скриптов для организации CI собственными силами.
    Читать дальше → Read more »
  • Видео с первого Badoo PHP Meetup 7.04.2018


    Привет, Хабр!

    7 апреля мы впервые собрали PHP-сообщество в офисе Badoo. Спасибо всем, кто пришел пообщаться, и тем, кто был с нами онлайн!

    Похоже, пэхэпэшники изголодались по митапам. Встреча получилась ну очень душевной — разговоры за жизнь и PHP из afterpaty переместились в afterchat, который до сих пор активен (ни смотря ни на что).

    Но вернемся к нашим докладам. Под катом — записи выступлений, слайды, комментарии гостей и фотоотчет.
    Читать дальше → Read more »
  • Иногда ответ не «42»
    Доброй вам пятницы, хабралюди. У меня с друзьями есть такая традиция — мы собираемся и вместе программируем. Раньше у нас такая работа была, а сейчас уже просто традиция — кодобредогенерация. Мы выбрали несложную задачку и нарисовали решений кто во что горазд. Код будет ближе к концу статьи, но не спешите листать вниз, надо же сначала объяснить, что это за код и как мы пришли к нему.

    Сама задача — получить число 0x17 самым внезапным образом.


    Внимание! Данный пост оскорбляет чувство прекрасного и практики программирования на C. Читайте, воспринимайте и комментируйте на свой страх и риск.

    Talk is cheap. Show me the code. Read more »
  • [Перевод] Go: Хороший, плохой, злой

    У Go есть некоторые замечательные свойства, которым посвящён раздел «Хороший». Но когда речь заходит о применении этого языка не для создания API или сетевых серверов (для чего он и был разработан), а для реализации бизнес-логики, то я считаю Gо слишком неуклюжим и неудобным. Хотя даже в рамках сетевого программирования найдётся немало подводных камней как в архитектуре языка, так и в реализации, что делает Go опасным, несмотря на его кажущуюся простоту.

    Читать дальше → Read more »
  • Асинхронные циклы и Stream API в Node.js 10


    В этом месяце выходит десятая версия Node.js, в которой нас ждет изменение поведения потоков (readable-stream), вызванное появлением асинхронных циклов for-await-of. Давайте разберемся что это такое и к чему нам готовиться.

    Читать дальше → Read more »
  • [Перевод] Как спрятать DNS-запросы от любопытных глаз провайдера

    Настройка 1.1.1.1 от Cloudflare и других DNS-сервисов по-прежнему требует навыков работы в командной строке



    Шифрование трафика между вашим устройством и DNS-сервисом помешает посторонним лицам отслеживать трафик или подменить адрес

    Смерть сетевого нейтралитета и ослабление правил для интернет-провайдеров по обработке сетевого трафика вызвали немало опасений по поводу конфиденциальности. У провайдеров (и других посторонних лиц, которые наблюдают за проходящим трафиком) уже давно есть инструмент, позволяющий легко отслеживать поведение людей в интернете: это их серверы доменных имен (DNS). Даже если они до сих пор не монетизировали эти данные (или не подменяли трафик), то наверняка скоро начнут.

    DNS — это телефонный справочник Сети, выдающий фактический сетевой адрес IP, связанный с хостингом и доменными именами сайтов и других интернет-служб. Например, он превращает arstechnica.com в 50.31.169.131. Ваш интернет-провайдер предлагает DNS в пакете услуг, но он также может журналировать DNS-трафик — по сути, записывать историю ваших действий в интернете.

    «Открытые» DNS-сервисы позволяют обходить сервисы провайдеров ради конфиденциальности и безопасности, а кое в каких странах — уклоняться от фильтрации контента, слежки и цензуры. 1 апреля (не шутка) компания Cloudflare запустила свой новый, бесплатный и высокопроизводительный DNS-сервис, предназначенный для повышения конфиденциальности пользователей в интернете. Он также обещает полностью скрыть DNS-трафик от посторонних глаз, используя шифрование.
    Читать дальше → Read more »
  • Блокировка Telegram и AWS — Утро начинается не с кофе

    Вот так сегодня началось утро тех, кто попытался зайти на docs.mongodb.com

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

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

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

    VDS в Нидерландах и России


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

    Подробности под катом.
    Читать дальше → Read more »
  • [Из песочницы] Настройка Sublime Text 3 для работы с VHDL файлами

    Работа с VHDL в Sublime Text 3


    Редактор Sublime Text существенно экономит время при работе с vhdl и verilog файлами. Для тех, кто не работал с редакторами типа Sublime Text, Notepad++ и т.п. опишу основные полезные функции данных редакторов:

    • множественное выделение/редактирование строк кода (нажатие средней кнопки мыши или при зажатой клавише Ctrl)
    • установка меток (закладок) в коде, помогает ориентироваться в больших файлах. (Ctrl + F2 или через пункт меню Goto→ Bookmarks)
    • возможность разделения рабочей области на несколько окон (Alt + Shift + 2 или из меню View→ Layout)
    • открытие одного файла несколько раз (File→ New View into File)
    • комментирование выделенных строк кода (Ctrl + /)
    • поиск и замена (Ctrl + h)
    • поиск по всем открытым файлам (Ctrl+Shift+f)
    • вставка сниппетов (шаблонов кода) (написать ключевое слово + клавиша Tab)
    • написание и использование функций на языке python
    • возможность установки различных дополнений
    • гибкая настройка
    Читать дальше → Read more »
  • Обнаружение атак на Active Directory с помощью Azure
    В следующем году будет 20 лет с момента создания службы каталогов Active Directory. За это время служба обросла функционалом, протоколами, различными клиентами. Но необходимость поддерживать совместимость с рядом устаревших клиентов вынуждает иметь настройки по-умолчанию, ориентированные на совместимость. Администраторы часто не меняют их, а это создает большой риск. В этой статье мы рассмотрим обнаружение атак, которые могут привести к domain dominance.

    Читать дальше → Read more »
  • [Из песочницы] Немного о физике в почти Agar IO на aicups.ru
    image

    В соревновании MiniAICup#2 Почти Agar IO надо управлять амёбами, есть еду и других амёб.
    Для реализации алгоритма управления амёбой напрашиваются потенциальные поля, но есть одно большое НО.
    Читать дальше → Read more »
  • Открытая бесплатная трансляция конференции Mobius 2018 Piter


    20-21 апреля, то есть уже завтра-послезавтра, в Петербурге пройдёт конференция по мобильной разработке Mobius. Android и iOS, разнообразные темы от многопоточности до тестирования, российские спикеры и зарубежные звёзды — о том, что там будет, мы уже писали.

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

    А какие именно доклады попали в доступную для всех трансляцию? Под катом — все их названия и описания.
    Читать дальше → Read more »
  • Data Fest 2018: анонс и регистрация
    image

    Друзья, приглашаем вас на пятый московский Data Fest, который состоится 28 апреля на территории дизайн-завода FLACON. Data Fest — крупнейшая бесплатная конференция для исследователей, инженеров и разработчиков, связанных с анализом и обработкой данных, машинным обучением, а также тем, что пресса любит называть AI.

    Вы узнаете про AI в продуктах Mail.Ru Group и «умные» ответы в Почте Mail.Ru, как работают рекомендации и компьютерное зрение во ВКонтакте и Одноклассниках, а также машинный перевод в Alibaba и что такое Quantum Machine Learning, а также многое-многое другое!
    Подробности и программа конференции Read more »
  • Сравнение инструментов сканирования локальной сети

    Когда я работал в нескольких государственных организациях кавычкодавом, овощем пентестером, суровые бородатые дяди в свитерах учили меня использовать только Nmap для сканирования сети. Сменив место работы, Добби стал свободен от предрассудков и решил выбрать сканер самостоятельно на основании псевдо-объективных данных сравнения реального функционала популярных сканеров, которые смог найти в сети самостоятельно, или, спросив у коллег, какой их любимый сканер. Собственно, о результатах внутреннего холливара сравнения сетевых сканеров и решил написать статью. Объективность не гарантирую, но постарался сделать колличественный анализ. Кому интересно, что из этого вышло, добро пожаловать под кат.
    Читать дальше → Read more »
  • Что нового в PostgreSQL 11: встроенный веб-поиск


    Продолжая тему интересных возможностей грядущего релиза PostgreSQL 11, я хотел бы рассказать про новую встроенную функцию websearch_to_tsquery. Соответствующий патч разработали Виктор Дробный и Дмитрий Иванов, с правками от Федора Сигаева. Давайте же разберемся, что реализовано в этом патче. Читать дальше → Read more »
  • Как у нас сломался Ceph


    Детектив в 1 части.
    Эта история произошла в октябре.

    Есть Ceph версии 0.94 (Hammer). 6 стораджей, 8 мониторов, по 6-8 osd на каждом сторадже, SSD диски объемом от 1 ТБ до 4 ТБ. Реплика — 2, минимум 1.

    Как-то раз случилось такое: вечером прошел некий шторм по всему кластеру и самопроизвольно перезапустилось множество osd. В логах osd были видны стандартные для ceph ошибки вида no reply from osd.X. Немного slow requests и самопроизвольные рестарты, что для ceph не критическое событие и довольно частое. В общем, такое бывает. Но, к сожалению, не все перезапустившиеся osd смогли подняться. А именно пала героем osd.45 на storage6.
    Читать дальше → Read more »
  • [Перевод] Руководство по фоновой работе в Android. Часть 4: RxJava

    Обработка событий — это цикл.

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

    Дисклеймер: это не статья о том, как использовать RxJava в Android. Таких текстов в интернете и так прорва. Этот — о деталях реализации библиотеки.
    Читать дальше → Read more »
  • Обзор программы конференции DotNext 2018 Piter


    Конференция: DotNext 2018 Piter
    Дата: 22-23 апреля 2018 года
    Место: Санкт-Петербург, Гостиница «Park Inn by Radisson Пулковская»
    Всего пара дней осталась до следующего DotNext. Над программой и докладами была проведена колоссальная работа — ранее мы уже писали об этом в анонсе конференции и отдельной статье.

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

    Подробное описание программы — под катом.
    Читать дальше → Read more »
  • Глобальное освещение с использованием трассировки вокселей конусами
    В этой статье я расскажу о реализации одного из алгоритмов расчёта глобального (переотражённого / ambient) освещения, применяемого в некоторых играх и других продуктах, — Voxel Cone Tracing (VCT). Возможно, кто-то читал старенькую статью ([VCT]) 2011 года или смотрел видео. Но статья не даёт исчерпывающих ответов на вопросы, как реализовать тот или иной этап алгоритма.


    Рендер сцены без глобального освещения, и с использованием VCT:
    Читать дальше → Read more »
  • [Перевод] Создание игры на Lua и LÖVE — 7
    image

    Оглавление

    Оглавление


    • Статья 1
      • Часть 1. Игровой цикл
      • Часть 2. Библиотеки
      • Часть 3. Комнаты и области
      • Часть 4. Упражнения
    • Статья 2
      • Часть 5. Основы игры
      • Часть 6. Основы класса Player
    • Статья 3
      • Часть 7. Параметры и атаки игрока
      • Часть 8. Враги
    • Статья 4
      • Часть 9. Режиссёр и игровой цикл
      • Часть 10. Практики написания кода
      • Часть 11. Пассивные навыки
    • Статья 5
      • Часть 12. Другие пассивные навыки
    • Статья 6
      • Часть 13. Дерево навыков
    • Статья 7
      • Часть 14. Консоль
      • Часть 15. Финал

    Часть 14: Консоль


    Введение


    В этой части мы разберём комнату Console. Консоль реализовать гораздо проще, чем всё остальное, потому что в итоге она сводится к выводу на экран текста. Вот, как это выглядит:

    GIF

    Комната Console будет состоять из трёх разных типов объектов: строк, строк ввода и модулей. Строки — это просто обычные цветные строки текста, отображаемые на экране. Например, в показанном выше примере ":: running BYTEPATH..." будет являться строкой. С точки зрения структуры данных это будет просто таблица, хранящая позицию строки, её текст и цвета.
    Читать дальше → Read more »
  • Она вам не Android. Особенности разработки под Wear OS



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

    Поехали Read more »