[Перевод] Структура данных B-дерево Всем привет! Мы запустили новый набор на курс «Алгоритмы для разработчиков» и сегодня хотим поделиться интересным переводом, подготовленным для студентов данного курса. В деревьях поиска, таких как двоичное дерево поиска, AVL дерево, красно-чёрное дерево и т.п. каждый узе...
[recovery mode] Бинарные деревья поиска Прелюдия Эта статья посвящена бинарным деревьям поиска. Недавно делал статью про сжатие данных методом Хаффмана. Там я не очень обращал внимание на бинарные деревья, ибо методы поиска, вставки, удаления не были актуальны. Теперь решил написать статью именно про деревья. Пожа...
Пишем XGBoost с нуля — часть 1: деревья решений Привет, Хабр! После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что...
[Перевод] Деревья квадрантов и распознавание коллизий Эта неделя была короткой, в понедельник и вторник я продолжал работать над системой 2D-освещения. Остальное время я потратил на реализацию деревьев квадрантов (quadtree). В этой статье я поделюсь своей реализацией и мыслями, возникшими в процессе её проектирования. Во-пер...
[Перевод] Dart 2. Асинхронное программирование: потоки данных Асинхронное программирование: потоки данных Содержание Получение событий потока События с ошибкой Работа с потоками Типы потоков Потоки-подписки Широковещательные потоки Методы, обрабатывающие поток Методы, изменяющие поток Функция transform() Чтение и декодирование файл...
Сбалансированные двоичные деревья поиска: реализация на Julia Иллюстрация из работы Г.М. Адельсон-Вельского и Е.М. Ландиса 1962 года Деревья поиска — это структуры данных для упорядоченного хранения и простого поиска элементов. Широко применяются двоичные деревья поиска, в которых у каждого узла есть только два потомка. В этой статье ...
Выбираем мобильного разработчика за 5 шагов: взгляд IT-компании Всем привет! Мобильные приложения сегодня приобретают все большее значение для бизнеса, но найти надежного подрядчика – непростая задача. Мы в mobile.SimbirSoft пообщались с нашими заказчиками и выяснили, что при выборе исполнителя их всегда волнует следующий вопрос: на что ...
[Из песочницы] Разбор утилиты Files.walkFileTree(); Не найдя нигде толкового описания на русском, что за зверь Files.walkFileTree(), и со скрипом освоив его, как оказалось впоследствии, несложный функционал, решил поделиться в рамках закрепления материалом с примерами, чего мне так не хватало. Метод walkFileTree() позволяет ...
[Перевод] Изучаем английский: 8 способов вежливо сказать «нет» Западная культура для многих ассоциируется с вежливостью и ее подчеркнутой демонстрацией – иногда даже не совсем искренней, но «обязательной». Людям с другим менталитетом трудно ориентироваться в культуре, где негатив принято максимально смягчать. В частности, лично мне вс...
[Из песочницы] Сборка примера Augmented Faces ARCore в Unity Надеюсь, данная статья будет полезна тем, кто хочет пощупать возможности дополненной реальности ARCore в Unity, но при этом не смог найти понятной инструкции. Мы соберем пример приложения дополненной реальности Augmented Faces ARCore для Unity, оно будет отслеживать через...
Навигация сервисного робота на поле для гольфа. Построение пути и обход препятствий Какой метод навигации и обхода препятствий оптимален для сервисного робота? Роботы — это программно-механические комплексы, взаимодейсвующие с реальным миром. Для сервисного робота крайне важно понимать свое текущее положение в пространстве, положение цели и умение построить...
Исключения в Python теперь считаются анти-паттерном Что такое исключения? Из названия понятно — они возникают, когда в программе происходит исключительная ситуация. Вы спросите, почему исключения — анти-паттерн, и как они вообще относятся к типизации? Я попробовал разобраться, и теперь хочу обсудить это с вами, хабражители. ...
[Перевод] Последствия переписывания компонентов Firefox на Rust В прошлых статьях цикла мы обсудили безопасность памяти и безопасность потоков в Rust. В этой последней статье посмотрим на последствия реального применения Rust на примере проекта Quantum CSS. Движок CSS применяет правила CSS на странице. Это нисходящий процесс, который с...
Как я провел лето с C# 8 В недавнем выпуске подкаста DotNet & More Blazor, NetCore 3.0 Preview, C#8 и не только мы лишь вскользь упомянули такую животрепещущую тему, как C#8. Рассказ об опыте работы с C# 8 был недостаточно большим, что-бы посвящать ему отдельный выпуск, так что было решено подел...
[Из песочницы] Перевод руководства по Stream API от Benjamin Winterberg Привет, Хабр! Представляю вашему вниманию перевод статьи "Java 8 Stream Tutorial". Это руководство, основанное на примерах кода, представляет всесторонний обзор потоков в Java 8. При моем первом знакомстве с Stream API, я был озадачен названием, поскольку оно очень созвучно...
[Из песочницы] О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад В это трудно поверить, но иногда ошибки в процессорах, по-сути, живут дольше, чем сами процессоры. Недавно мне довелось в этом убедиться на примере 16-ти разрядного микропроцессора 1801ВМ1А, на основе которого в свое время в СССР было создано семейство бытовых компьютеров Б...
Смотрим торенты на смарт ТВ без смс и регистрации Доброго времени суток, хабр. Решил поделиться одним из способов, как можно посмотреть Ваш любимый фильм/сериал, в хорошем качестве, не посещая всякие стремные сайты, которые так хотят чтобы вы поиграли в казино. Сразу оговорюсь, я ни в коем случае не призываю Вас использов...
Стажировка в JetBrains: Как мне почти удалось попасть на неё Как и многие молодые разработчики, когда появляется желание найти работу/стажировку — я смотрю в сторону крутых IT компаний. Недавно я попробовал попасть в ряды JetBrains и под катом готов поделиться полученным опытом. Читать дальше →
Основы реактивного программирования с использованием RxJS. Часть 3. Higher Order Observables В данной статье мы рассмотрим, как можно в одном потоке обрабатывать другой, для чего это нужно, и как нам в этом помогут операторы Higher Order Observables (дальше HOO). При работе с потоками часто возникает ситуация, когда необходимо в качестве значения одному потоку пе...
[Перевод] Envoy модель потоков (Envoy threading model) Привет, Хабр! Представляю вашему вниманию перевод статьи «Envoy threading model» автора Matt Klein. Данная статься показалась мне достаточно интересной, а так как Envoy чаще всего используется как часть «istio» или просто как «ingress controller» kubernetes, следовательно ...
Преобразуем изображение в звук — что можно услышать? Привет Хабр. В недавней публикации здесь на сайте описывалось устройство, позволяющее незрячим людям «видеть» изображение, преобразуя его с помощью звуковых волн. С технической точки зрения, в той статье не было никаких деталей вообще (а вдруг украдут идею за миллион), но с...
[Перевод] Объяснение задачи на Python с собеседования Салют, хабровчане! В преддверии запуска нового потока по курсу «Web-разработчик на Python» хотим поделиться новым полезным переводом. Поехали! Снова сходив на несколько собеседований и пройдя тестовые задания, я заметил, что интервьюерам нравятся задания наподобие следующ...
Как из «обычного дизайнера» стать продуктовым Привет! Меня зовут Алексей Свиридо, я дизайнер цифровых продуктов в Альфа-Банке. Сегодня я хочу рассказать о том, как из «обычного дизайнера» стать продуктовым. Под катом вы найдёте ответы на следующие вопросы: Кто такой продуктовый дизайнер и чем он занимается? Подходит ...
[Перевод] Обход подводных камней Angular и экономия времени С помощью Angular можно сделать всё что угодно. Или почти всё. Но иногда это коварное «почти» приводит к тому, что разработчик губит время, создавая обходные решения, или пытаясь понять, почему что-то происходит, или почему что-то не работает так, как ожидается. Автор ста...
Бэкап файловых и SQL баз 1С средствами Effector Saver (в облако и с шифрованием) В этой статье я хочу поделиться опытом резервного копирования файловых и SQL баз 1С в локальное, сетевое и облачное (на примере Google Drive) хранилище с помощью Effector Saver. Писал инструкцию для друга, но думаю она пригодиться и кому-то из вас. И как всегда, в комментар...
[Перевод] О счастье разработчиков и где его найти «Успех — это получать то, чего вы хотите. Счастье — это хотеть то, что вы получаете». Уильям Патрик Кинселла В последние годы в компаниях сложилась тенденция: менеджеры стараются заботиться о счастье разработчиков. Сегодня мы рассмотрим эту тему и постараемся найти ответ на...
Buildbot: сказ с примерами еще об одной системе непрерывной интеграции (картинка с официального сайта) Buildbot, как несложно догадаться из названия, является инструментом для непрерывной интеграции (continuous integration system, ci). Про него уже было несколько статей на хабре, но, с моей точки зрения, из них не очень понятны преимущества с...
Бэкапьтесь в облако, друзья Сегодня мне хотелось бы еще раз пройтись по набившему оскомину резервному копированию в облако. Рассуждать на тему хорошо это или плохо, я не буду, но хочу поделиться примерами реализаций решений для этого самого облачного резервного копирования — от готового ПО до костылей...
[Из песочницы] Пишем блог на микросервисах – часть 1 «Общее описание» В этой статье хочу поделится нашими c SergeyMaslov наработками решения типовых задач с использованием микросервисной архитектуры на примере задачи «создание блога» (в надежде, что читатель представляет как устроен блог и это не должно вызывать вопросов по функциональности:) ...
[Из песочницы] Amazon EKS Windows в GA с багами, но зато быстрее всех Добрый день, хочу поделиться с вами своим опытом по настройке и использованию сервиса AWS EKS (Elastic Kubernetes Service) для Windows контейнеров, а точнее о невозможности его использования, и найденном баге в системном контейнере AWS, тем кому интересен этот сервис для W...
[Перевод] Разбираемся с интерфейсами в Go В последние несколько месяцев я проводил исследование, в котором спрашивал людей, что им трудно понять в Go. И заметил, что в ответах регулярно упоминалась концепция интерфейсов. Go был первым языком с интерфейсами, который я использовал, и я помню, что в то время эта конце...
Насколько легко доставить заказ, зная адрес клиента (не очень) Всем привет! Меня зовут Денис Гирько, я системный архитектор e-commerce платформы в Lamoda. В прошлом году я выступал на конференции DevConf с докладом, которым хочу поделиться с вами. Это обзорный доклад о том, с какими сложностями в процессе доставки заказа встречается кру...
[Перевод] Как использовать запятые в английском: 15 правил и примеры ошибок Пунктуация очень важна, если вы хотите донести свою мысль четко, и получить ожидаемую реакцию. Однако в английском языке пунктуация серьезно отличается от того, к чему мы привыкли в русском языке. Более того, она отличается и в различных разновидностях английского. В общ...
«Сгоревшие» сотрудники: есть ли выход? Ты работаешь в хорошей компании. Вокруг тебя крутые профессионалы, получаешь достойную зарплату, каждый день делаешь важные и нужные вещи. Илон Маск запускает спутники, Сергей Семёнович улучшает и без того лучший город Земли. Погода отличная, солнце светит, деревья цветут — ...
42 Silicon Valley: как пройти отбор 1го февраля завершился январский Piscine в 42 Silicon Valley, и я хотел бы поделиться своим опытом и некоторым набором хаков, которые могут помочь получить множество экспы, высокий уровень и, как результат, приглашение в кадеты. Скорее всего, это может быть полезно и для ...
Транзакции в глобалах InterSystems IRIS СУБД InterSystems IRIS поддерживает любопытные структуры для хранения данных — глобалы. По сути это многоуровневые ключи с различными дополнительными плюшками в виде транзакций, быстрых функций для обхода деревьев данных, блокировок и своего языка ObjectScript. Подробнее о ...
Изучаем OpenCV на StereoPi: карта глубин по видео Сегодня мы хотим поделиться серией примеров на Питоне для изучающих OpenCV на Raspberry Pi, а именно для двухкамерной платы StereoPi. Готовый код (плюс образ Raspbian) поможет пройти все шаги, начиная c захвата картинки и заканчивая получением карты глубин из захватываемог...
DIY: Как мы делали «живое» расписание для Codefest X В конце марта в Новосибирске отгремел юбилейный 10-ый CodeFest. Как и, наверное, любая конференция, CodeFestX оставил участникам кучу разных впечатлений от «ноги моей тут больше не будет» до «как купить пожизненную подписку?». То, как это было я описывать не буду, отзывы уже...
Google Plus прекращает работу. И что? Google объявила о закрытии социальной сети Google+. Трудно найти техническое издание, которое бы не упомянуло хотя бы вскользь о конце амбиций Google в области социальных сетей. Но, увы, вниманием обходится высокая связность сервисов компании добра. В этой статье я хотел бы ...
5 вещей, которые чаще всего не понимают новички в JavaScript Всем привет! В конце сентября в OTUS стартует новый поток курса «Fullstack разработчик JavaScript». В преддверии начала занятий хотим поделиться с вами авторской статьей, подготовленной специально для студентов курса. Автор статьи: Павел Якупов Превью. Хочу сразу отмети...
Для тех, кто хочет поиграть в детектива: найди ошибку в функции из Midnight Commander Приглашаем попробовать найти ошибку в очень простой функции из проекта GNU Midnight Commander. Зачем? Просто так. Это забавно и интересно. Хотя нет, мы соврали. Мы в очередной раз хотим продемонстрировать ошибку, которую с трудом находит человек в процессе code review, но л...
Ход конём по битам. Шахматный Bitboard Добрый день. Эту статью я написал специально для студентов курса «Алгоритмы для разработчиков» в OTUS и сегодня хочу поделиться ею со всеми читателями нашего блога. Шахматный конь стоит на шахматной доске и задумчиво смотрит в шахматную даль. Сколько разных ходов он может с...
[Перевод] TestMace — мощная IDE для работы с API Всем привет! Сегодня мы хотим представить на суд IT-общественности наш продукт — IDE для работы с API TestMace. Возможно некоторые из вас уже знают о нас из предыдущих статей. Однако всеобъемлющего обзора инструмента не было, поэтому устраняем этот досадный недостаток. Чита...
Визуализация дерева приматов Станислав Дробышевский в начале года опубликовал подробное дерево происхождения приматов. Версия в ПДФ Комментаторы во «Вконтакте» просили интерактивную версию (1, 2, 3, 4), потому что её удобнее изучать и проще обновлять при появлении новых данных. Мы с Олей Моховой решил...
Фантастический рассказ «Спасение» (10 мин.) Я всегда любил Родину и ненавидел её врагов. Например, айсов. Трудно передать словами, весь поток чувств, переполняющих меня, когда я слышу слово Родина. Это и восторг, и острота в груди и радость, и боль. Я люблю Родину. Не фанатично — без раздумья, без оглядки. Я люблю Род...
Размышления про идеальный корпус Здравствуйте. На написание этой статьи меня побудил наметившийся апгрейд домашней системы и недавняя статья Настольный. Металлический. Бесшумный. Твой?. Что-бы найти приемлемый вариант мне пришлось перелопатить кучу моделей корпусов и сейчас я хочу поделиться своей болью с в...
Наша космическая промышленность.… А если взглянуть на проблемы отрасли с позиции гика? Описывать в общем механику проблем в нашей космической отрасли достаточно сложно, запутанно, и для весьма для многих еще и крайне непонятно. Обычный поток информации на тему космоса – это перечень событий, от которого в голове остается только некоторое «сальдо-бульдо» чужих ...
Как устроены блокировки в интернете: обзор современных методов на реальном примере Группа индийских ученых опубликовала обзор современных методов интернет-блокировок, вводимых государственными органами, на примере собственной страны. Они изучили механизмы, которые применяют интернет-провайдеры для ограничения доступа к запрещенной информации, оценили их ...
Astra Linux 1.6 (Смоленск). Готова ли система к работе с простыми пользователями? Примеры костылей Нейтрализация пользователя и процесс установки новой ОС Привет, Хабр. Сегодня хотим поделиться опытом миграции одной организации (далее – Заказчик) на отечественную ОС в рамках выполнения требований по импортозамещению. Сразу нужно обозначить, что Заказчик выбрал и закупил...
Практическое применение трансформации AST-деревьев на примере Putout Введение Каждый день при работе над кодом, на пути к реализации полезного для пользователя функционала, становятся вынужденные (неизбежные, либо же просто желательные) изменения кода. Это может быть рефакторинг, обновление библиотеки или фреймворка до новой мажорной версии, ...
Оптический телеграф, СВЧ-сеть и башня Теслы: необычные вышки связи Мы все привыкли к тому, что вышки и мачты связи выглядят скучно или неприглядно. К счастью, в истории были — и есть — интересные, необычные примеры этих, в общем-то, утилитарно сооружений. Мы собрали небольшую подборку вышек связи, которые показались нам особенно примечате...
Реализация пользовательского интерфейса OpenStack LBaaS При реализации пользовательского интерфейса балансировщика нагрузки для виртуального приватного облака мне пришлось столкнуться с существенными трудностями. Это привело меня к размышлениям о роли фронтенда, чем хочу поделиться в первую очередь. А далее обосновать свои разм...
SamsPcbGuide, часть 13: Использование IBIS-моделей В этой спонтанной статье решил поделиться опытом применения IBIS-моделей на примере простой задачи. Читать дальше →
Наша служба и опасна, и трудна, или Zyxel ATP500 Введение Мы писали, мы писали, наши пальчики устали. Почему мы вдруг решили начать с этого детского двустишия? Всё очень просто. В данной статье мы хотели познакомить читателей с возможностями нашего самого современного решения по обеспечению сетевой безопасности – линейкой ...
[Из песочницы] Redux — Не нужен! Заменяем с помощью useContext и useReducer в React? Доброго времени суток, Хабровчане! Хочу рассказать о том, как я недавно узнал о неких "хуках" в React. Появились они относительно недавно, в версии [16.8.0] от 6 февраля 2019 года (что по скоростям развития FrontEnd — уже очень давно) Прочитав документацию я заострил свое в...
[Перевод] Программный поиск общего кода с помощью oEmbed Всем доброго времени суток! Хочу поделиться переводом статьи ""Programmatically Discovering Sharing Code With oEmbed" автора Drew McLellan. Введение На многих сайтах размещены мультимедиа и контент, которыми можно поделиться в другой платформе с помощью некоторого HTML-кода...
10 проблем, которые я решил напоминалками на смартфоне Привет. Недавно я провел аудит напоминаний на смартфоне и хочу поделиться списком проблем/задач, которые удалось решить с их помощью. Возможно, вы задумаетесь о чём-то важном, читая этот список. Конечно, мы хотим уменьшить количество сигналов, дёргающих нас. Но некоторые ...
Обзор самых интересных докладов CodeFest 2019: версия True Engineering В Новосибирске прошла юбилейная, десятая конференция CodeFest. Программа была очень насыщенной: десять секций о разработке, тестировании, дизайне, управлении и развитии. Сотрудники True Engineering два дня конспектировали доклады, теперь хотим поделиться этой пользой с вами....
Знакомьтесь, <details> Я хочу рассказать о замечательно элементе <details> и показать несколько примеров его использования, от простых до безумных. Читать дальше →
[Из песочницы] Phoenix LiveView: когда вам больше не нужен JavaScript* * для создания динамической страницы Не так давно 12.12.2018 был анонсирован выход новой библиотеки для фанатов phoenix framework под названием Phoenix LiveView. Я бы хотел поделиться с вами впечатлениями от ее использования и phoenix в целом, а в следующей статье попробова...
Смотрю и слушаю где хочу. Интегрируем Chromecast в Android-приложение На улице я часто слушаю аудиокниги и подкасты со смартфона. Когда прихожу домой, мне хочется продолжить слушать их на Android TV или Google Home. Но далеко не все приложения поддерживают Chromecast. А было бы удобно. По статистике Google за последние 3 года, количество дева...
Долговечность светодиодных ламп и снижение светового потока Я провёл эксперимент и сравнил, как снижается световой поток разных светодиодных ламп в течение сорока минут после включения. Читать дальше →
Управление огнем как часть работы руководителя Эта статья посвящена управлению рисками, а никак не тяжелой работе пожарника, как могло бы показаться из названия. Тем не менее, мне кажется близким этот образ, когда я говорю об управлении рисками, потому как последствия неправильного контроля могут быть, порой, не менее др...
Что мы делаем не так со Спрингом В этой заметке хочу поделится наблюдениями о некоторых антипаттернах, встречающихся в коде приложений, работающих на Спринге. Все из них так или иначе всплывали в живом коде: либо я натыкался на них в уже существующих классах, либо вылавливал во время вычитки творчества колл...
Почему Math.Round открывает окно печати из браузера в Try .NET Сегодня внимание общественности привлек забавный нелогичный баг, обнаруженный в Try .NET – инструменте, предназначенном для встраивания в документацию интерактивных примеров на C#. Посмотреть открытый issue можно на Github по ссылке. Приведенный код при выполнении (при вызо...
Merkle Tree: ржавое и быстрое Всем привет! Недавно открыл для себя язык Rust. О своих первых впечатлениях поделился в предыдущей статье. Теперь решил копнуть немного глубже, для этого необходимо что-то посерьёзнее списка. Выбор мой пал на дерево Меркла. В этой статье я хочу: рассказать про эту структур...
Плагин kubectl-debug для отладки в pod'ах Kubernetes В конце прошлого года на Reddit представили плагин к kubectl, помогающий производить отладку в pod'ах кластера Kubernetes — kubectl-debug. Эта идея сразу же показалась интересной и полезной нашим инженерам, так что мы решили посмотреть на её воплощение и рады поделиться св...
[Из песочницы] Использование Context API в React для создания глобальной темы приложения Привет, это мой первый пост на Хабр. Надеюсь, Вам будет интересно. Итак, я хочу начать серию постов, напрямую или косвенно касающихся создания ui-kit. Задача данного поста: Найти решение контроля темы приложения, компоненты которого выполнены в React.js. Будем использова...
[Из песочницы] CSS-переход свойства height от 0px до auto Здравствуй, Хабр! Хочу поделиться ещё одним способом создания css-перехода (transition) свойства height от 0px до auto. Столкнулся с данной проблемой при разработке веб-компонентов TreeView и DataGrid. В TreeView решил сделать плавное развёртывание/свёртывание узлов, а в ...
Что разработчикам надо знать про бизнес Даже в очень крупных компаниях часто отношение к разработчикам, как к грибам: держат в темноте и кормят навозом. Пишите код, родные, и не высовывайтесь. Этот подход может быть удобен для многих (в том числе иногда — для самих разработчиков в случае не очень адекватного менед...
Как мы поддерживаем стабильность приложения Lamoda Всем привет! Меня зовут Виталий Бендик. Я тимлид команды разработки Android приложения в компании Lamoda. В 2018 году я выступал на Mosdroid Aluminium c докладом, расшифровкой которого хочу поделиться. Речь пойдет о том, как мы поддерживаем стабильность мобильного прило...
[Из песочницы] Из Москвы в Томск. История одного переезда Всем привет! На Хабре можно найти множество статей о переезде в разные города и страны в поисках лучшей жизни. Вот и я решил поделиться своей историей переселения из Москвы в Томск. Да, в Сибирь. Ну это там, где 40-градусные морозы зимой, комары размером со слона летом и руч...
К вопросу о U-Boot Найди всему причину и ты многое поймешь Недавно, просматривая код U-Boot в части реализации SPI, наткнулся на макрос обхода списка доступных устройств, которые после нескольких переходов сбросил меня на макрос container_of. Сам текст макроса наличествовал и я с легким изумле...
[Из песочницы] Оптимизация скриптов с Webpack SplitChunksPlugin В этой статье я бы хотел поделиться своим опытом по разбиению бандлов для многостраничного сайта с помощью Webpack 4. Cначала создадим для каждой страницы свою точку входа. Рассмотрим на примере 4 страниц: const path = require("path"); const PATHS = { src: path...
[Перевод] F# 1: Hello World Этот текст является вольным переводом серии статей Sacha Barber из Brighton, UK , которые мне показались достаточно интересным Это первый пост в моей серии по F#. Итак, что мы собираемся охватить? Как хорошо знают многие программисты, принято начинать с примера «Hello World...
[Из песочницы] Библиотека генератора ассеблерного кода для микроконтроллеров AVR. Часть 1 Библиотека генератора ассеблерного кода для микроконтроллеров AVR Часть 1. Первое знакомство Добрый день, уважаемые хабаровчане. Хочу предложить Вашему вниманию очередной (из имеющегося великого множества) проект, для программирования популярных микроконтроллеров серии AVR. ...
Хочешь <s>похудеть</s> учиться ИТ самостоятельно? Спроси меня как Есть мнение, с которым я часто сталкиваюсь, — учиться самостоятельно невозможно, нужны профессионалы, которые будут вас вести по этому тернистому пути — объяснять, проверять, контролировать. Попробую опровергнуть это утверждение, а для этого, как известно, достаточно привест...
[Перевод] Как создать эффективные скриншоты для приложения в App Store Каким бы ни было мобильное приложение для App Store, оно должно быть представлено аудитории таким образом, чтобы повысить его популярность и тем самым увеличить кликабельность. А для этого необходимо создать такую рекламную страницу приложения, которая будет разительно отлич...
[Из песочницы] Проблемы и нюансы при разработке под SmartTV с использованием React.js Хочу поделиться опытом разработки приложения с просмотром видео контента для SmartTV (Tizen и WebOS) и с какими проблемами мы столкнулись. На современных телевизорах, как мы знаем, можно устанавливать разные приложения, для облегчения работы с какими-то ресурсами и контенто...
[Перевод] Бесстрашная защита. Безопасность потоков в Rust Это вторая часть цикла статей «Бесстрашная защита». В первой мы рассказывали про безопасность памяти Современные приложения многопоточны: вместо последовательного выполнения задач программа использует потоки для одновременного выполнения нескольких задач. Все мы ежедневно ...
[Перевод] Как работает Flutter Как Flutter работает на самом деле? Что такое Widgets, Elements, BuildContext, RenderOject, Bindings?.. Сложность: Новичок Вступление В прошлом году (прим: в 2018), когда я начал свое путешествие в сказочный мир Flutter, в Интернете было очень мало информации по сравнению с...
Что курил автор: добавим олдскула в этот безумный мир игр Привет, Хабр. Не буду повторять тысячный раз о том, что как любой из нас всегда мечтал написать игру. Мне 37. Я разработчик. Как раз самое время задуматься. Аркады, симуляторы, RPG, шутеры, веб, десктоп, мобильная. Было непросто. В какой-то момент я понял, что хочу возродить...
Защищаем резервные копии iPhone Сегодня я хочу рассказать об малоизвестных особенностях iOS, связанных с защитой резервных копий, обходом этой защиты (рекурсия) и защитой от обхода защиты (двойная рекурсия). Вишенкой на торте будет короткая инструкция, позволяющая обойти защиту от обхода защиты резервных к...
[Перевод] Оборачиваем последовательности в Swift Всем привет. Сегодня хотим поделиться переводом подготовленным в преддверии запуска курса «iOS Разработчик. Продвинутый курс». Поехали! Одним из основных преимуществ протокольно-ориентированного дизайна Swift является то, что он позволяет нам писать общий код, который совме...
«5 копеек» к разговору о Cортировках В продолжение темы хочу поделиться своим кодом обгоняющим std::sort() из актуальных версий GNU C++ Library. Читать дальше →
MOSDROID Meetup: подключайтесь к трансляции Уже завтра, 16 ноября, митап MOSDROID в офисе Райффайзенбанка: узнаём все тонкости кроссплатформенной разработки с использованием Flutter и GoMobile, поделимся друг с другом опытом модульной архитектуры проекта и ещё много интересных тем. Смотрите программу и подключайтесь ...
[Перевод] Thinking with Portals: создаём порталы в Unreal Engine 4 В этой статье я расскажу, как создавать порталы в Unreal Engine 4. Я не нашёл никаких источников, подробно описывающих такую систему (наблюдение сквозь порталы и проход через них), поэтому решил написать собственную. Что такое портал? Давайте начнём с примеров и объяснения...
[Из песочницы] Как собеседовать работодателя? У программистов обычно принято обсуждать собеседования с точки зрения (около)технических вопросов, которые им задает интервьювер. Надо ли писать код на доске? Надо ли жонглировать бинарными деревьями и знать наизусть все сложности алгоритмов, или просто разговаривать про жи...
Cборка динамических модулей для Nginx Недавно мы собирали динамический модуль для Nginx, а когда всё было уже готово, то выяснилось, что наш модуль оказался не совместимым с Nginx, который уже был установлен на сервере. Готового решения возникшей проблемы нам найти не удалось и мы начали бороться с ней самостоя...
Обзор накопителя Seagate ST2000DM008: быстрая «двушка» без оверпрайса Твердотельные накопители продолжают захватывать рынок, но несмотря на это, традиционные HDD прекрасно себя чувствуют. «Классику» ещё рано сдавать в музей, ведь хранить большие объёмы информации по-прежнему удобно именно на HDD-дисках. Во-первых, встаёт вопрос цены — достат...
[Из песочницы] Взаимодействие с Asterisk сервером из Java-приложения Взаимодействие с сервером Asterisk из java-приложения через Asterisk Managment Interface (AMI) Если вы только начинаете исследования в этой области, то взаимодействие с данным сервером может показаться вам несколько запутанным, как когда-то показалось мне. Чтобы не искать ...
[Из песочницы] Делаем простой Circuit Breaker на базе кеша в Spring Эта статья для тех, кто использует в своем приложении эффективный кеш и хочет простым добавлением 1 класса в проект добавить стабильности не только приложению, но и всему окружению. Если вы узнали себя, читайте дальше. Что такое Circuit Breaker Читать дальше →
Обход блокировок РКН используя DNSTap и BGP Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены. В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные "Реви...
Как я сделал (почти) бесполезный стриминг вебкамеры на Javascript В статье я хочу поделиться своими попытками сделать стримминг видео через websockets без использования сторонних плагинов браузера типа Adobe Flash Player. Что из этого получилось читайте далее. Читать дальше →
Peephole микрооптимизации в С++ и C# компиляторах В школе, когда мы решали уравнения или считали формулы, мы пытались их сперва сократить несколько раз, к примеру Z = X - (Y + X) сокращается в Z = -Y. В современных компиляторах это подмножество так называемых peephole-оптимизаций, в которых мы по, грубо говоря, набору шабло...
Почему трудно работать в мультинациональной команде Всем привет! Я почти два года работаю в мультинациональной команде. Проект голландский, фронт-офис в Нидерландах плюс пара бэк-офисов: российский и чешский. Голландия – страна, в которую переезжают работать люди с разных точек мира, и собственно эта компания не исключение. ...
Avalonia первая встреча Когда мы встречаем новый язык, мы пишем «Hello word», а когда встречаем новый UI, то создаем блокнот. Здесь же я хочу показать простейший пример дружбы с корссплатформенным GUI Framework AvaloniaUI. Читать дальше →
Как мы победили дерево категорий Вы наверняка сталкивались с таким элементом интерфейса. В местах продажи, на дискуссионных площадках, да практически повсеместно этот элемент встречается. Даже тут, на хабре, хабы в виде дерева. Не исключение и фриланс-биржи. Заказы нужно как-то группировать, чтобы исполни...
[Перевод] Unix-пароль Кена Томпсона Где-то в 2014 году в дампах исходного дерева BSD 3 я нашёл файл /etc/passwd с паролями всех ветеранов, таких как Деннис Ричи, Кен Томпсон, Брайан В. Керниган, Стив Борн и Билл Джой. Для этих хэшей использовался алгоритм crypt(3) на основе DES — известный своей слабостью (и ...
[Из песочницы] Подводные камни Java Здравствуйте. Хочу представить вашему вниманию небольшую статью. Цель данной публикации: Показать наиболее часто встречающиеся ошибки начинающих и некоторые приемы их исправления. Понятно, что некоторые ошибки могут быть сложными и происходить по тем или иным причинам. Цель...
GitHub полностью удалил репозиторий утилиты для обхода блокировок 10 апреля 2019 года GitHub без объявления войны удалил репозиторий популярной утилиты GoodByeDPI, предназначенной для обхода государственных блокировок (цензуры) сайтов в Интернете. Что такое DPI, как связан с блокировками и зачем с ним бороться (по версии автора): Прова...
[Из песочницы] Проектирование на основе «отражения» Всем привет. Недавно задался вопросом: «А что, если… ?». В результате родилась вот такая тема-идея: Проектирование на основе «отражения». Этой самой идеей я и хочу поделиться с Вами в данной публикации. Читать дальше →
Возможности языка Q и KDB+ на примере сервиса реального времени О том, что такое база KDB+, язык программирования Q, какие у них есть сильные и слабые стороны, можно прочитать в моей предыдущей статье и кратко во введении. В статье же мы реализуем на Q сервис, который будет обрабатывать входящий поток данных и высчитывать поминутно разли...
[Из песочницы] Как, кому и зачем идти в консалтинг? Личный опыт на примере Big Data Сегодня я расскажу о том, как устроен консалтинг в IT на примере Big Data, поделюсь личным опытом, как я попала в эту сферу, и кейсами из практики, а также дам совет, кому и зачем стоит пробовать себя в консалтинге. Читать дальше →
[Перевод] Новый алгоритм поиска пути в Factorio На прошлой неделе мы говорили в своём блоге об изменениях, которые позволят врагам (biters) не наталкиваться друг на друга, но это было не единственное обновление, связанное с biter-ами. Совпало так, что в обновления этой недели вошло то, над чем мы работали предыдущие неск...
[Перевод] Flutter. Keys! Для чего они? Параметр key можно найти практически в каждом конструкторе виджета, но используют этот параметр при разработке достаточно редко. Keys сохраняют состояние при перемещении виджетов в дереве виджетов. На практике это означает, что они могут быть полезны для сохранения местопол...
Кустарная Колыбель Ньютона Здравствуй, дорогой читатель! Я уже написал первую статью с самыми основами Box2D в Eclipse на Java. Сегодня на примере Колыбели Ньютона покажу, как настроить связь объектов в этой чудесной физической библиотеке. Что же мы ожидаем увидеть? Рисунок 1. Слишком хорошо! Читат...
[Из песочницы] Путь от хирургии к геймдеву или первый опыт мобильной разработки на Unity Зачем, кому и от кого Всем привет! Меня зовут Анатолий. Я хочу рассказать историю о наших первых шагах в геймдеве, чтобы поделиться пусть и небольшим, но всё же опытом. Зачем? Потому что всего 6 месяцев назад сам искал подобные публикации, перечитывал и выписывал советы. Над...
[Из песочницы] Формула расчёта простых чисел и оптимизация перебора делителей Приветствую! Решил на досуге исследовать задачу поиска простых чисел. Тема обширная и интересная. Хочу поделиться парой соображений по ней, которые пришли в голову. Поиск в сети интернет подобных не выявил, указав на их оригинальность. Во-первых, нигде не нашёл математическ...
[Перевод] Автоматизация Android. Супер простое руководство по созданию первого Espresso-теста Здравствуйте, друзья. В преддверии старта курса «Mobile QA Engineer», хотим поделиться с вами переводом интересного материала. Что такое Espresso? Нет, это не напиток, который вы пьете каждый день, чтобы взбодриться. Espresso — это тестовый фреймворк с открытым исходным к...
Онбординг как продажа веры в продукт и взлом роста конверсии — опыт Revolut и Wrike Product owner в Revolut Михаил Цвик поделился на конференции по продуктовому маркетингу Epic Growth Conference концепцией и практическим опытом взлома конверсии с помощью онбординга. Ниже опубликована расшифровка его выступления. Большинство кейсов представлены из компании...
[Из песочницы] Хакнуть Госуслуги – можно, если очень нужно Всем привет, дорогие хабравчане! Это небольшая история – пример применения технических навыков в обход системы в своих целях. Модератор: Внимание! Данный текст является описанием возможности в экспериментатаорских целях. Напоминаем, что повтор подобных действий может приве...
Словарь модели данных Михаил Коновалов, руководитель направления отдела сопровождения интеграционных проектов ИТ-дирекции МКБ День добрый, хабровчане! Цель Систематизированный подход к управлению загрузками. Мы хотим рассказать, как упорядочить и автоматизировать наполнение хранилища информацие...
Проверяем инкапсуляцию с помощью Roslyn Что такое Roslyn? Roslyn – это набор компиляторов с открытым исходным кодом и API для анализа кода для языков C# и VisualBasic .NET от Microsoft. Анализатор Roslyn – мощный инструмент для анализа кода, нахождения ошибок и их исправления. Синтаксическое дерево и семантическая...
[Перевод] Руководство по аннотациям TestNG для Selenium WebDriver Мир, труд, май, хабровчане! Для тех, кто также как и мы ворвался в межпраздничную рабочую неделю, мы подготовили перевод, который хотим приурочить к старту набора на курс «Java QA Engineer», запуск которого запланирован на 28 мая. TestNG — это тестовый фреймворк, созданн...
[Перевод] Пишем API на Python (с Flask и RapidAPI) Если вы читаете эту статью, вероятно, вы уже знакомы с возможностями, которые открываются при использовании API (Application Programming Interface). Добавив в свое приложение один из многих открытых API, вы можете расширить функциональность этого приложения либо же допол...
TypeScript. Мощь never Когда я впервые увидел слово never, то подумал, насколько бесполезный тип появился в TypeScript. Со временем, все глубже погружаясь в ts, стал понимать, какой мощью обладает это слово. А эта мощь рождается из реальных примеров использования, которыми я намерен поделиться с ч...
Подготовка к захвату мира, закрываю гештальты Спрашивается, о чём мой проект? А я сам не знаю. Планы меняются. Идей много. Но есть общий базовый функционал. Вот я пока про это. Уже 5 месяцев. После весеннего обострения, в приступе одиночества, хочу поделиться некоторыми наработками. Читать дальше →
[Перевод] Примеры C++ кода до и после Ranges Снова здравствуйте. Перевод следующего материала подготовлен специально для студентов курса «Разработчик C++», занятия по которому стартуют уже 27 июня. Библиотека Ranges была принята в C++20 на совещании стандартного комитета в Сан-Диего в ноябре прошлого года. Библиотек...
Приглашаем на конференцию Azov Developers Meetup 2019 — 19 октября в Таганроге 19 октября проводим в Таганроге пятую ежегодную конференцию Azov Developers Meetup. Приглашаем всех желающих, регистрация бесплатна! Начнем в 9 утра в конгресс-отеле «Таганрог» на ул. Дзержинского, 161 с традиционного приветственного кофе и регистрации. Как и в прошлые го...
[Из песочницы] Ускорение компиляции в Xcode на swift С ростом проекта, скорость компиляции проекта замедляется. Особенно это заметно становится, когда тестируешь программу, делая параллельно небольшие изменения в программе. Сначала давайте узнаем как долго компилируется проект до наших улучшений. ЧТобы это сделать надо в тер...
Выборочный обход блокировок на маршрутизаторах с прошивкой Padavan и Keenetic OS Инструкций с разными вариантами обхода блокировок Интернет-ресурсов опубликовано огромное количество. Но тема не теряет актуальности. Даже всё чаще звучат инициативы на законодательном уровне заблокировать статьи о методах обхода блокировок. И появились слухи, что Роскомнадз...
Послание будущему программисту Итак, вы решили стать программистом. Возможно, вам интересно создавать что-то новое. Возможно, вас манят большие зарплаты. Быть может, вы просто хотите сменить сферу деятельности. Не суть. Важно — вы решили стать программистом. Что же теперь делать? Читать дальше →
[Из песочницы] Android preferences delegate В данной статье разобран пример создания делегата для SharedPreferences, который уменьшает boilerplate и делает использование SharedPrefernces более удобным. Те кто хочет посмотреть результат, может перейти к готовому решению, остальным добро пожаловать под кат. Читать дальш...
Балансировка красно-чёрных деревьев — Три случая Двоичные деревья поиска — эта структура данных для хранения элементов с возможностью быстрого поиска. Идея проста и гениальна: «меньше – налево, больше – направо». На этом простота заканчивается и начинаются сложные вопросы балансировки дерева, чтобы оно не превратилось в дл...
[Перевод] Зачем использовать python -m pip И снова здравствуйте. В преддверии старта нового потока по курсу «Machine Learning», хотим поделиться переводом статьи, которая имеет довольно косвенное отношение к ML, но наверняка будет полезна подписчикам нашего блога. Мариатта — разработчик из Канады, спросила в Тви...
Онлайн контест по решению задачи из теории игр Привет, Хабр! Меня зовут Миша, и я студент. На факультативе по теории игр мы решаем различные интересные задачи, и я хотел бы поделиться с вами одной из таких. Читать дальше →
Entity Framework 6 with Full-Text Search via LINQ Хочу поделиться своим костылем в решении довольно банальной проблемы: как подружить полнотекстовый поиск MSSQL c Entity Framework. Тема очень узкоспециальная, но как мне кажется, актуальна на сегодняшний день. Интересующихся прошу под кат. Читать дальше →
[Из песочницы] Использование сентиментного анализа применительно к биржевым торговым роботам Здравствуйте, дамы и господа. Хотел бы поделиться с вами своими мыслями относительно программ для автоматизированной торговли на бирже, в частности, применением методов сентиментного анализа в этой области. Читать дальше →
[Перевод] Как GPU справляются с ветвлением О статье Этот пост — небольшая заметка, предназначенная для программистов, которым хочется больше узнать о том, как GPU обрабатывает ветвление. Можно считать её введением в эту тему. Рекомендую для начала просмотреть [1], [2] и [8], чтобы получить представление о том, как в...
[Из песочницы] Dagger 2 – это элементарно (Часть 1) Содержание Введение Что такое Dependency Injection, Пример зависимости Dagger 2 – введение Первое использование Dagger 2 Введение Статья написана не продвинутым программистом для таких же, обычными и понятными словами В статье используется пример кода на Kotlin. Версия da...
Как я патчил Вселенную :) На Хабре достаточно много статей про разработку игр, однако среди них очень мало статей, которые касаются “закулисных” тем. Одной из таких тем является организация доставки, собственно, игры большому количеству пользователей на протяжении длительного времени (год, два, три...
[Перевод] Трассировка лучей на GPU в Unity — Часть 3 [Первая и вторая части.] Сегодня мы совершим большой скачок. Мы отойдём от исключительно сферических конструкций и бесконечной плоскости, которые трассировали ранее, и добавим треугольники — всю суть современной компьютерной графики, элемент, из которого состоят все виртуа...
Инфлюенсер-маркетинг Саудовской Аравии, PR-тренды 2020 и наиболее выгодные форматы digital-рекламы И еще немного о согласованности ценностей бренда с маркетингом и технологиях. Коммуникационные тренды: взгляд из-за рубежа, 23.10.2019 Саудовская Аравия обратилась к инфлюенсерам для формирования имиджа страны Поскольку в Йемене продолжается война и разногласия вокруг ...
[Из песочницы] Как я не стал программистом в 35 лет С самого начала сентября широким потоком хлынули на Хабр публикации об успешном успехе на тему «Детство программиста», «Как стать программистом после N лет», «Как я ушёл в IT из другой профессии», «Путь в программирование» и так далее. Подобные статьи пишут постоянно, но во...
[Перевод] GitLab: С выходом версии 12.1 мы прекращаем поддержку MySQL Сейчас мы расскажем, почему, начиная с версии 12.1, GitLab перестанет поддерживать MySQL. В июле 2017 GitLab предупредил, что прекратит поддержку MySQL. Так вот, с выпуском 12.1 период подготовки к этому завершится, и больше мы MySQL поддерживать не будем. Решение непростое...
Умный сервис кэша на базе ZeroMQ и Tarantool Руслан Ароматов, главный разработчик, МКБ Привет, Хабр! Я работаю бэкенд-разработчиком в Московском кредитном банке, и за время работы у меня накопился некоторый опыт, которым я хотел бы поделиться с сообществом. Сегодня я расскажу, как мы писали свой собственный сервис к...
Примеры дичи из заказов «приходите спасать» (разбор десятка инцидентов с примерами) Иногда бывает так: — Приезжайте, у нас упало. Если сейчас не поднять — покажут по телевизору. И мы едем. Ночью. На другой край страны. Ситуация, когда не повезло: на графике показан резкий рост нагрузки на СУБД. Очень часто это первое, на что смотрят администраторы систем...
Из юриспруденции в Big Data-разработку Путей много – как найти свой? Герой этой статьи, Роман Майер, получил гуманитарное образование и пришел в IT совсем из других областей. Он развивал собственный бизнес, работал менеджером по продажам, был юристом, а к 28 годам понял, что пока не нашел работу мечты и пора осв...
Язык программирования Zig Первым комментарием к замечательной статье Субъективное видение идеального языка программирования оказалась ссылка на язык программирования Zig. Естественно, стало интересно, что же это такое за язык, который претендует на шину C++, D и Rust. Посмотрел — язык показался симп...
Как мы разрабатываем персональные товарные рекомендации Наши клиенты-магазины хотят делать крутой маркетинг. Чтобы люди больше покупали, они регулярно шлют им email-рассылки. И каждый раз думают: “Что же написать в письме?”. Можно писать просто: “Покупайте у нас почаще!”, но это не очень-то работает. Идея получше — вставлять в п...
[Перевод] Объёмный рендеринг в WebGL Рисунок 1. Пример объёмных рендеров, выполненных описанным в посте рендерером WebGL. Слева: симуляция пространственного распределения вероятностей электронов в высокопотенциальной молекуле белка. Справа: томограмма дерева бонсай. Оба набора данных взяты из репозитория Open ...
Книга «GraphQL: язык запросов для современных веб-приложений» Привет, Хаброжители! У нас вышла книга по языку запросов GraphQL. Мы решили поделиться переводом главы «Анатомия запросов GraphQL» «Снежный клык» (Snowtooth) — выдуманный горнолыжный курорт. Ради примеров в данной главе мы сделаем вид, что это настоящая гора и мы там работ...
Высокотехнологичные нигерийские письма Хотел бы поделиться забавной высокотехнологичной «разводкой», ориентированной на людей, которые более-менее дружат с технологиями. Ключевая уязвимость, по которой бьют мошенники — это жадность, как обычно. Читать дальше →
Сортировка фотографий по данным из EXIF + PHP Хочу поделиться своим опытом сортировки фотографий с помощью скрипта на PHP Наступает тот момент, когда фотографий становится не много, а катастрофически много. Читать дальше →
[Из песочницы] Адаптивные антенные решётки: как это работает? (Основы) Доброго времени суток. Последние несколько лет я посвятил исследованию и созданию различных алгоритмов пространственной обработки сигналов в адаптивных антенных решётках, и продолжаю заниматься этим в рамках своей работы в настоящее время. Здесь я хотел бы поделиться теми з...
Хайлайты и тренды ICCV 2019 Нейросети в компьютерном зрении активно развиваются, многие задачи еще далеки от решения. Чтобы быть в тренде в своей области, достаточно подписаться на инфлюенсеров в Твиттере и читать релевантные статьи на arXiv.org. Но у нас появилась возможность съездить на Internatina...
Выбираемся из дебрей тестов: строим короткий путь от фикстуры к проверке В этой статье я хочу предложить альтернативу традиционному стилю дизайна тестов, используя концепции функционального программирования в Scala. Подход был навеян многомесячной болью от поддержки десятков и сотен падающих тестов и жгучим желанием сделать их проще и понятнее. ...
Записки Биоробота Как вы давно уже поняли, я не человек, а биоробот — электронный мозг, вживленный в обычное тело. Мне скучно просто работать и просто жить. Я хочу понять все законы, по которым существует человек. Как и почему он действует, ленится, работает, лежит на диване, хочет большего, ...
[Перевод] Храните статические активы на своём хостинге Одна из первых вещей, которую я рекомендую своим клиентам, чтобы ускорить веб-сайты, сначала покажется парадоксом: вы должны разместить статические активы на своём хостинге, отказавшись от сторонней CDN инфраструктуры. В этом коротком и, я надеюсь, очень простом посте я хочу...
[Перевод] Итак, вы хотите стать аналитиком в области сетевой безопасности… Перевод статьи подготовлен специально для студентов курса «Пентест. Практика тестирования на проникновение». Вы интересуетесь развитием методов взлома и хотите поделиться своими открытиями с сообществом информационной безопасности? В этой статье я дам некоторые рекомендац...
Баги при работе с системной клавиатурой Взаимодействуя с приложением, мы в определенный момент активируем системную клавиатуру для набора сообщения или заполнения необходимых полей. Сталкивались ли вы с ситуациями, когда клавиатура отображается, а вот поля для ввода сообщения нет или наоборот — клавиатура есть, ку...
Искусственный интеллект на примере простой игры. Часть 2 В этот раз выбрана игра «Змейка». Создана библиотека для нейросети на языке Go. Найден принцип обучения, зависимый от «глубины» памяти. Написан сервер для игры между разработчиками. Читать дальше →
[Из песочницы] Применение Go в производственных системах. Валидаторы Добрый день, Хабр! Я довольно часто начинаю утро с просмотра хабра и наконец решил внести свой вклад в данный процесс изучения интересного. Если всё сложится, то это первая моя статься из цикла применения языка GO на производственных системах. Я хочу рассказать некоторые т...
[Перевод] Как Verizon и BGP Optimizer устроили большой оффлайн Крупная утечка маршрутов повлияла на большие секторы интернета, включая Cloudflare Что случилось? 24.06 в 10:30 UTC в интернете случился коллапс: на небольшую компанию на севере Пенсильвании хлынул поток трафика из множества маршрутов, проходящих через крупного провайдера V...
Перемещения сквозь пространство и время Человеком всегда движет тяга к неизведанному, у него даже есть специальный нейромедиатор – дофамин, который является химическим мотиватором к получению информации. Мозгу постоянно нужен поток новых данных и даже если эти данные не нужны для выживания – так уж получилось, что...
[Перевод] Слежка на экзаменах: программа ExamCookie Мне стало известно, что датское правительство не просто приостановило действие программы Digital Exam Monitor, которую мы проанализировали и полностью обошли в предыдущей статье, а, возможно, полностью закрыло эту систему через неделю после того, как мы сообщили им способ вз...
Сервер, ты меня слышишь? BROP-атака на примере задания NeoQUEST-2019 Как найти уязвимость на сервере, не имея информации о нём? Чем BROP отличается от ROP? Можно ли скачать исполняемый файл с сервера через переполнение буфера? Добро пожаловать под кат, разберём ответы на эти вопросы на примере прохождения задания NeoQUEST-2019! Читать дальш...
Web Security Testing Starter Kit Всем привет! Меня зовут Андрей. Уже 10 лет я занимаюсь поиском уязвимостей в различных веб-сервисах. и готов поделиться своими знаниями с вами. В мае прошлого года я выступал с докладом про это на конференции Heisenbug, а теперь готов поделиться своими знаниями еще и здесь,...
Трансформация кода в Android 2. Анализ AST Первая часть Пример на Github В этой статье расскажу о том, как решал проблемы, с которыми столкнулся в предыдущей части при реализации проекта. Во-первых, при анализе трансформируемого класса, нужно как-то понять, является ли этот класс наследником Activity или Fragment...
Безопасность приложений, или Как внедрить security в заказную разработку. Личный опыт AGIMA Digital-агентства все больше внимания уделяют безопасности инфраструктуры, в которой ведется разработка, а также начинают смотреть в сторону обеспечения безопасности приложений. Вы наверняка читали про разновидность и критичность уязвимостей, инструменты и методы обеспечения...
ACPI: Добавление устройств без перекомпиляции ядра Как выясняется, далеко немногие знают о существовании режима оверлеев в ACPICA и их поддержки в ОС Linux. Я хочу восполнить этот пробел на примере добавления ведомых устройств I2C в систему без перекомпиляции. Читать дальше →
[Перевод] Модуль dis в Python и свертка констант Всем привет. Сегодня хотим поделиться еще одним переводом подготовленным в преддверии запуска курса «Web-разработчик на Python». Поехали! Недавно я очень удивился, когда обнаружил, что >>> pow(3,89) работает медленнее, чем >>> 3**89 Читать дальше →
Стартап без денег. Личный опыт После запуска приложения всегда встает вопрос, откуда брать пользователей. В этой статье хотел бы поделиться своим опытом, как на старте проекта без денежных вложений привлечь пользователей для вашего продукта. Читать дальше →
[Из песочницы] Анализ «Эффекта пикабу» После запуска приложения всегда встает вопрос, откуда брать пользователей. В этой статье хотел бы поделиться своим опытом, как на старте проекта без денежных вложений я получил неплохой стартовый трафик. Читать дальше →
[Из песочницы] История участия (и победы) в Russian AI Cup 2018 — CodeBall Была среда, шло обычное скучное заседание на работе. Дизайнер чесал за ухом, а тестировщик уткнулся в телефон. За окном завелся автомобиль, и мне пришло письмо на телефон — стартовал Russian AI Cup 2018. Вокруг никто ни о чем не подозревал, а я в этот момент уже точно знал, ...
Изучаем MITRE ATT&CK. Mobile Matrices: Device Access. Часть 4 Обход защиты (Defense Evasion) Ссылки на все части: Часть 1. Первоначальный доступ к мобильному устройству (Initial Access) Часть 2. Закрепление (Persistence) и Эскалация привилегий (Privilege Escalation) Часть 3. Получение учетных данных (Credential Access) Способы обхода ...
Всё, что вы хотели знать о децентрализованном интернет-провайдере «Medium», но боялись спросить Добрый день, Сообщество! Меня зовут Янислав Басюк. Я являюсь координатором общественной организации «Medium». В этой статье я постарался собрать наиболее исчерпывающую информацию о том, что являет собой этот действующий на территории Российской Федерации децентрализованный...
Погружаемся в opensource-экосистему Android Disclaimer о том, что пост не призывает к радикальным формам фанатизмаКаждый выбирает свой "уровень погружения". Вам не обязательно следовать каждому пункту из этого поста. Моя цель — показать, насколько хорошо развита экосистема на данный момент и чего вы можете и не можете...
[Перевод] 6 интересных идей применения дополненной реальности (AR) Прим. пер.: в своей статье, оригинальное название которой: «6 Interesting Augmented Reality Concepts», Ник Бабич собрал ценную подборку идей применения AR, которая будет интересна даже тем, кто никак не связан с разработкой. Среди концепций есть реально работающие продукты,...
Экзотические структуры данных: Modified Merkle Patricia Trie "Какого дьявола я должен помнить наизусть все эти чёртовы алгоритмы и структуры данных?". Примерно к этому сводятся комментарии большинства статей про прохождение технических интервью. Основной тезис, как правило, заключается в том, что всё так или иначе используемое уже реа...
Disk forensics, memory forensics и log forensics. Volatility framework и Autopsy. Решение задач с r0от-мi. Часть 1 Данная статья содержит решений заданий, направленных на криминалистику памяти, оперативной памяти, и логов web-сервера. А также примеры использования программ Volatility Framework и Autopsy. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и ра...
[Из песочницы] Мост из мира .NET в мир JavaScript Хочу поделиться интересной находкой — Bridge.net. Если в двух словах, это фреймворк, позволяющий транслировать C# код в JavaScript. Идея, которая движет командой разработчиков очень проста и понятна — транслировать логику настолько идентично, насколько это возможно. Что раду...
[Из песочницы] Заметки верстальщика: Полезные расширения Google Chrome в 2019 году В моем браузере установлено около 30 расширений, которые упрощают жизнь и работу в интернете. В этой статье я хочу поделиться 10 актуальными расширениями Google Chrome для верстальщика, которые постоянно использую при разработке сайтов. Читать дальше →
Обзор Toshiba Surveillance S300 (HDWT150UZSVA). Жесткий диск для видеонаблюдения Сегодня мы детально изучим возможности накопителя серии Toshiba Surveillance S300 на примере версии объемом 5 Тбайт. Эти жесткие диски оптимизированы под использование в системах видеонаблюдения. Проведены оптимизации под работу с постоянным потоком данных, обеспечивая стаби...
[Перевод] Картографирование шума с помощью KSQL, Raspberry Pi и радиоприемника На первый взгляд, в этой истории есть всё, чтобы заслужить статус романтичного поста накануне 8 марта: самолёты, любовь, чуточку шпионажа и, наконец, котик (точнее, кошка). Трудно представить, что всё это имеет самое непосредственное отношение к Kafka, KSQL и эксперименту ...
Телефония со Snom: для тех, кто работает дома Недавно я рассказывал о трёх случаях, когда компании построили большие телефонные сети на базе коробочных телефонных систем и аппаратов Snom. А в этот раз поделюсь примерами создания IP-телефонии для сотрудников, работающих на дому. Читать дальше →
Пишем на Rust + CUDA C Всем привет! В данном руководстве хочу рассказать как подружить CUDA C/С++ и Rust. И в качестве примера напишем небольшую программу на Rust для вычисления скалярного произведения векторов, вычисление скалярного произведения будет производиться на GPU с использованием CUDA ...
Machine Learning для Vertica Аннотация В данной статье я хочу поделиться собственным опытом работы с машинным обучением в хранилище данных на Vertica. Скажем честно, я не являюсь аналитиком-экспертом, который сможет в деталях расписать все многообразие методик исследования и алгоритмов прогнозирования ...
Коллекция ювелирных украшений, напечатанная на 3D-принтере Команда компании 3DMall хочет поделиться с вами ярким примером по разработке моделей и изготовлению уникальных ювелирных украшений из титана на 3D-принтере. Подробнее...
Infrastructure as code: первое знакомство У нас в компании идёт процесс онбординга SRE-команды. Я зашёл во всю эту историю со стороны разработки. В процессе у меня появились мысли и инсайты, которыми я хочу поделиться с другими разработчиками. В этой статье-размышлении я говорю о том, что происходит, как происходит,...
Изучаем веб-аналитику с нуля. Большая подборка Привет, читатель! В интернете много статей по веб-аналитике, но найти действительно стоящие и последовательно сгруппированные материалы нелегко. Поэтому сделал для вас большую подборку материалов для самостоятельного изучения. Добавляйте в закладки, чтобы не потерять. ...
Пилим статью на Хабр Среди основных причин, по которым многие продвинутые айтишники бояться писать на Хабр, чаще всего называют синдром самозванца (полагают, что не настолько круты). Плюс банально опасаются быть заминусованными, ну и сетуют на отсутствие интересных тем. И с учетом того, что все ...
Оптимальная линейная фильтрация: от метода градиентного спуска до адаптивных фильтров Развивая тему конспектов по магистерской специальности "Communication and Signal Processing" (TU Ilmenau), продолжить хотелось бы одной из основных тем курса "Adaptive and Array Signal Processing". А именно основами адаптивной фильтрации. Для кого в первую очередь была напис...
Один маленький шаг для тестировщика: топ-10 докладов Heisenbug 2019 Piter Привет, Хабр! Выкладываем подборку отличных докладов о тестировании и обо всём, что его окружает. Оценки посетителей Heisenbug 2019 Piter определили лучшие доклады этой конференции, из которых вы узнаете, например: Может ли один тестировщик изменить всю компанию; Что пр...
«С этим зонтом вам не придется делать что-то старомодное, чтобы узнать погоду, например смотреть в окно». Обзор Opus One В прошлый раз, когда мы говорили об умных зонтах, в результате короткого опроса выяснилось, что большинство читателей — люди с исключительной памятью, которые не сталкивались с потерей зонтов, поэтому смарт-технологии в этой конкретной категории им ни к чему. Тем не мене...
Транспилятор PAS2JS из Паскаля в JavaScript: несовместимости с Delphi и пути обхода В наше время в кармане обычного человека лежит мощный персональный компьютер, о котором 10-20 лет назад можно было только мечтать. И если у вас километры отлаженного Windows-кода и отлично работающие приложения и утилиты, написанные на Delphi, вы наверняка хотели бы задейств...
DECT-телефония в зданиях В 2007 году компания Apple выпустила свой iPhone, и с этого момента бизнес-пользователи всерьез заинтересовались возможностями применения мобильных устройств связи. Сотрудники IT-отделов изо всех сил пытались подстроиться под меняющиеся модели работы: требовалось как-то ув...
Летний DIYorDIE Meetup 16 июня 16 июня в московском офисе Mail.ru Group пройдет открытый DIY Meetup. Приглашаем всех неравнодушных провести выходные с пользой. Программа и ссылка на регистрацию — под катом. DIY-сообщество Mail.ru Group — это разработчики, которые в свободное от работы время мастерят кр...
Окей, Google: как пройти капчу? Здравствуйте. Меня зовут Ибадов Илькин, я студент Уральского федерального университета. В данной статье я хочу рассказать о своем опыте автоматизированного решения капчи компании «Google» — «reCAPTCHA». Хотелось бы заранее предупредить читателя о том, что на момент написани...
[Перевод] Как работает Zig? От переводчика: этот пост был опубликован в блоге автора 15 марта 2018 года. Так как язык развивается, в настоящее время его синтаксис может отличаться. Всё описанное относится к Zig 0.2.0, текущая версия языка — Zig 0.3.0. Я связался с автором поста, и он любезно предостави...
Обзор ISPmanager – панели управления хостингом и сайтами Не так давно мы публиковали обзор «Что нового в веб-консолях 2019», после чего подробно разобрали панель Plesk и вот теперь хотим разобрать ещё одну панель управления сайтами и сервером — ISPmanager. Читать дальше →
[Перевод] Новости из мира OpenStreetMap № 472 (30.07.2019-05.08.2019) How to carve OSM data into a slade plate – by Harald Hartmann 1 | Foto Harald Hartmann | Map data OpenStreetmap contributors Картографирование Продолжаются дискуссии (в Twitter, в списке рассылки) вокруг онлайн-редактора от Facebook — RapiD'a. Если вы хотите серьезно погр...
[Из песочницы] Lock с приоритетами в .NET Каждый программист, использующий более одного потока в своей программе, сталкивался с примитивами синхронизации. В контексте .NET их очень и очень много, перечислять не буду, за меня это уже сделал MSDN. Мне приходилось пользоваться многими из этих примитивов, и они прекрас...
TacacsGUI, Configuration Manager Добрый день! Сегодня я хотел бы представить вашему вниманию Configuration Manager – plugin входящий в проект TacacsGUI. Что же такое Configuration Manager? Это менеджер конфигураций (типа Oxidized или RANCID) с различными режимами просмотра изменений (diff) и записей в журн...
«Цифровой прорыв»: финал крупнейшего в мире хакатона Неделю назад в Казани прошёл 48-часовой хакатон — финал всероссийского конкурса «Цифровой прорыв». Хочу поделиться своими впечатлениями от этого мероприятия и узнать вашей мнение, стоит ли проводить такие и дальше. Читать дальше →
Высоконагруженный сервис для вычислений на GPU Привет, Хабр! Я руковожу разработкой платформы Vision — это наша публичная платформа, которая предоставляет доступ к моделям компьютерного зрения и позволяет вам решать такие задачи, как распознавание лиц, номеров, объектов и целых сцен. И сегодня хочу на примере Vision ра...
[Перевод] Что такое Strict Aliasing и почему нас должно это волновать? Часть 2 (ИЛИ каламбур типизации, неопределенное поведение и выравнивание, о мой Бог!) Друзья, до запуска нового потока по курсу «Разработчик С++», остается совсем немного времени. Пришло время опубликовать перевод второй части материала, в которой рассказывается о том, что такое ка...
Взаимодействие R с базами данных на примере Microsoft SQL Server и других СУБД Поскольку львиная доля бизнес информации храниться в базах данных. На каком бы языке программирования вы не писали, вам придётся производить различные действия с ними. В этой статье я расскажу о двух интерфейса для работы с базами данных в R. Большая часть примеров демонстри...
Как мы провели «Демодуляцию». Музей Яндекса и его друзья Праздник — это когда друзья собираются вместе и хорошо проводят время. Недавно команда Музея Яндекса организовала праздник ретрокомпьютинга «Демодуляция» — фестиваль для всех, кому интересна история техники. Гости мероприятия могли не только познакомиться с легендарными комп...
[Перевод] Механизмы выделения памяти в Go Когда я впервые попытался понять то, как работают средства выделения памяти в Go, то, с чем я хотел разобраться, показалось мне таинственным чёрным ящиком. Как и в случае с любыми другими технологиями, самое важное здесь скрывается за множеством слоёв абстракций, сквозь кото...
Запускаем php скриптики через php-fpm без web сервера. Или свой FastCgi клиент (под капотом) Приветствую всех читателей "Хабра". Дисклеймер Статья получилась довольно длинная и тем кто не хочет читать предысторию, а хочет перейти сразу к сути прошу прямиком к главе "Решение" Вступление В данной статье хотелось бы рассказать о решении довольно нестандартной задачи, с...
Элементы, основа для разработки Работа и разработка идут хорошо когда есть: От чего отталкиваться(основа). К чему стремиться(идея, проект и т.д.) Одной из основ я хочу поделиться с Вами в данной публикации. Читать дальше →
Хочешь стать чуточку счастливее? Попробуй стать лучшим в своём деле Это история для тех, чьё единственное сходство с Эйнштейном — бардак на рабочем столе. Фото рабочего стола великого физика сделано через несколько часов после его смерти, 28 апреля 1955 года, в Princeton, New Jersey. Миф о Мастере Вся культура, созданная человеком, базиру...
Моя численная проверка гипотезы «Абсолютных курсов» Привет, Хабр! Мне показалась интересной данная публикация: Получаем абсолютные курсы из парных кросс-курсов валют и я захотел проверить возможность найти этот аааабсолютный курс валюты через численное моделирование, вообще отказавшись от линейной алгебры. Результаты полу...
[Из песочницы] Как при помощи 2 видов unit-тестов сделать приложение более стабильным Привет, Habr. Меня зовут Илья Смирнов, я Android-разработчик в компании FINCH. Хочу показать вам несколько примеров работы с Unit-тестами, которые мы наработали у себя в команде. В наших проектах используется два вида Unit-тестов: проверка на соответствие и проверка на выз...
C++ Enterprise Edition. Возможно ли? C++ Enterprise Edition Что такое "enterprise edition" Удивительно, но за все время моей работы в IT, я ниразу не слышал, чтобы кто-то говорил "enterprise edition" относительно языка программирования, кроме как для Java. Но ведь приложения для корпоративного сегмента люди пи...
GraphQL Voyager как инструмент для поиска уязвимостей В настоящее время все больше компаний начинают использовать GraphQL. Это относительно новая технология (если быть более точным, то это язык запросов), которая призвана решить существующие проблемы REST. Если вы еще не знакомы с GraphQL, то рекомендую начать с ресурсов: ...
[Из песочницы] Ревизия уровней доступа пользователей с помощью Power BI на примере CMS Битрикс (БУС) В статье показан пример применения Power BI для анализа доступов пользователей на сайте под управлением 1С-Битрикс. Читать дальше →
Продвигаем Ethereum DAPP Сегодня в интернете достаточно информации, как создавать DAPP приложения. Вот вы создали крутое DAPP и теперь появляется вопрос ещё сложнее, как рассказать о нём потенциальным пользователям? Я хочу поделиться собственным опытом продвижения DAPP приложения по каталогам. Ме...
Выпускники IT-стажировок в Райффайзенбанке — о том, как это было Сегодня многие IT-компании всё активнее используют актёрство как источник будущих специалистов. Все вы знаете, что на рынке жесточайший дефицит квалифицированных айтишников; к тому же опытные сотрудники приносят с собой прежний опыт и убеждения, которые не всегда согласуют...
Изучаем сборку микросхемы оперативной памяти на примере Hynix GDDR3 SDRAM Для многих микросхема это черный ящик с нанесенной на нее маркировкой. Заглядываем в микросхему оперативной памяти и смотрим, что внутри. Небольшой реверс-инжиниринг в сборку. Статья для тех, кому интересна микроэлектроника и кто хочет познакомиться с ней. Читать дальше →
Лучшие Copy-Paste алгоритмы для C и C++. Сборник рецептов Haiku OS Многочисленные опечатки и Copy-Paste код стали темой для дополнительной статьи о проверке кода Haiku анализатором PVS-Studio. Впрочем, будут ошибки, связанные не сколько с опечатками, а скорее с невнимательностью и неудачным рефакторингом. Найденные примеры ошибок демонстрир...
[Перевод] Особенности рендеринга в игре Metro: Exodus c raytracing Предисловие После выхода последней игры из серии «Метро» я потратил несколько часов на изучение её внутренней работы и решил поделиться тем, что может показаться интересным с технологической точки зрения. Я не буду проводить подробный анализ или изучать дизассемблированный ...
Осадок #32: согни это, почему буксует 5G, «Ростелеком» хочет монополии, Греф против бесплатных переводов Неделя прошла под знаком конгресса в Барселоне, и в условиях гигантского потока анонсов из Испании мы в рубрике «Утренняя реплика» в нашем Telegram-канале постарались не упустить другие события и поделиться размышлениями на не столь заметные темы.
[Из песочницы] Топ 5 ошибок в моих ReactJS приложениях Больше 4х лет назад я влюбился в ReactJS и с тех пор все Fron End приложения разрабатываю при помощи этого замечательного инструмента. За это время я и команды, в которых мне повезло поработать, наделали кучу ошибок, многие из которых были благополучно исправлены. Множество ...
[Из песочницы] Описание подхода к организации и тестированию кода с использованием Redux Thunk Всем привет! В этой заметке я хотел бы поделиться своим подходом к организации и тестированию кода с использованием Redux Thunk в проекте на React. Путь к нему был долог и тернист, поэтому постараюсь продемонстрировать ход мыслей и мотивацию, которые и привели к итоговому ре...
Data Science Digest (May 2019) Хабр, привет! В прошлом выпуске я рассказывал, что для дайджеста запустил Telegram-канал, а сегодня хочу поделиться новостью, что также завел для него страницы в facebook, twitter, LinkedIn. Приглашаю всех присоединяться к ним. Кроме этого сегодня мы опубликовали дайдж...
Как и зачем мы оптимизировали алгоритм очистки SLAB-кэшей в ядре Linux Рост популярности контейнеров и их использование в совокупности с контрольными группами выявили серьезную проблему масштабируемости, которая приводит к значительному падению производительности на больших машинах. Проблема в том, что время обхода SLAB-кэшей зависит квадратичн...
[Из песочницы] Аскетичный вебъ: прототип барахолки на go и js Всем привет, хочу поделиться результатом размышлений на тему — каким может быть современное веб-приложение. В качестве примера рассмотрим проектирование доски объявлений для комиксов. В некотором смысле рассматриваемый продукт рассчитан на аудиторию гиков и им сочувствующих,...
[Из песочницы] Оптимизация производительности apache2 Многие используют apache2 в качестве веб-сервера. Однако мало кто задумывается об оптимизации его производительности, что прямо пропорционально сказывается на скорости загрузки страниц сайта, скорости обработки скриптов (в частности php), а также на росте нагрузки на ЦП и ув...
Кейс: Как получать продажи в области бухгалтерских и юридических услуг с нуля Этот кейс посвящён тем кто только начинает получать продажи в области бухгалтерских и юридических услуг. Представьте, что вы студент который закончил юридический или экономический факультет. А работы нет. Вы хотите создать свою контору, а клиентов нет. Что делать дальше и ка...
Прислушиваясь к информационному шуму: музыка и видео, которые никто не должен был найти В популярном сериале «Рик и Морти» есть повторяющийся элемент — «Межпространственное ТВ». Это — специальная приставка к телевизору, с помощью которой герои получают доступ к всевозможным телевизионным каналам во всех параллельных вселенных. В нашей — этот прибор, к сожалению...
Asterisk. Dialplan Askozia 6. Исходящие звонки В статье пойдет речь о бесплатной АТС Askozia версии 6. При разработке телефонной станции одной из первых задач была организация исходящих звонков. Как это было В старой версии Askozia использовались стандартные “шаблоны” dialplan. X! — все номера телефонов XXX — трехзна...
[Из песочницы] Интервалы: грядущая эволюция C++ Уже скоро появится стандарт C++20, в который, скорее всего, добавят концепцию интервалов (ranges), однако мало кто знает, что они из себя представляют и с чем их едят. Доступных широкой аудитории русскоязычных источников про этого зверя мне найти не удалось, вследствие чего ...
Почему так сложно выбрать, какое кино посмотреть (и что можно было бы сделать) Это — ответ на пост на животрепещущую тему «что посмотреть». Автор сам напросился поднял правильный вопрос, но почему-то свел все к странной психологической аналогии «заедания стресса», заявив: «Пока вы сами не знаете, что хотите посмотреть — никто вам не поможет. Будете туп...
Твердотельные накопители Kingston стали более ёмкими, сохранив практически прежнюю стоимость – встречаем серию A400-R Около 10 лет назад выбор твердотельного накопителя в качестве системного диска для игровой или рабочей системы серьёзно бил по бюджету среднестатистического пользователя. Уже тогда модельные ряды насчитывали варианты объёмом от 30 до 512 ГБ, если смотреть настольный сегмент....
Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4) В предыдущей статье Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора), был разобран вопрос о том, как расположить константные объекты в ROM. Теперь же я хочу рассказать, как можно использовать порождающий шаблон одиночка для создания ...
Логирование HTTP запросов в Spring Boot с использованием Бобины Приветствую, дорогие друзья! Сегодня я хочу продемонстрировать потрясающий пример того, как Бобина может помочь в очень распространённой ситуации — логирование HTTP запросов и ответов в Spring Boot. Даже больше! Мы будем логировать только сообщения HTTP в отдельные файлы. Чи...
Шоу дронов: взгляд изнутри Сколько еще будет найдено применений дронов? Все привыкли, что квадрокоптер должен быть обязательно с камерой и что-нибудь снимать, но разработчики из Intel показали нам новые области применения. Речь идет о световых шоу, построенных с помощью большого количества дронов, к...
[Перевод] Как вы избавляетесь от неиспользуемого CSS-кода? Часть 1 Автор статьи, первую часть перевода которой мы сегодня публикуем, хотел бы, чтобы читатели заранее знали о том, что избавление от ненужного CSS — это трудная задача. Если вы это читаете в надежде найти некий инструмент, запустив который, вы сможете узнать о том, какой именно...
Эффективное управление подключениями SignalR Здравствуй, Хабрахабр. В настоящий момент я работаю над созданием движка чата в основе которого лежит библиотека SignalR. Помимо увлекательного процесса погружения в мир real-time приложений пришлось столкнуться и с рядом вызовов технического характера. Об одном из них я и х...
[Перевод] Как реализовать чистую архитектуру на Android? Что вы найдёте в этой статье? В 2016 году я начал изучать Java, а в начале 2017 года — Android. С самого начала я уже знал, что существует понятие архитектуры приложений, но не знал, как это применить в своём коде. Я находил много разных гайдов, но понятнее от этого мне не ...
[Из песочницы] Плюсы и минусы работы в ночное время Здравствуйте. Вот и подошел к концу мой трехмесячный ночной режим работы, за это время я потерял здоровье понял многое и хочу с вами поделиться всеми прелестями и ужасными минусами работы в ночное время суток. Читать дальше →
[Из песочницы] От поиска идеи, до готового приложения Наверно многие задумывались над тем, как можно реализовать свои знания в готовом продукте. Кто-то больше, кто то меньше потратил на это времени. Хочу поделиться с сообществом своим опытом и видением, как это надо делать правильно, но не всегда получается. Читать дальше &rar...
Основы реактивного программирования с использованием RxJS. Часть 2. Операторы и пайпы В предыдущей статье мы рассмотрели, что такое потоки и с чем их едят. В новой части мы познакомимся с тем, какие методы RxJS предоставляет для создания потоков, что такое операторы, пайпы(pipes) и как с ними работать. RxJS обладает богатейшим API. В документации описано б...
Облачный чек-лист, или как нас оценивал заказчик Крупной иностранной компании понадобилось заехать в наше облако из-за закона о персональных данных. Поскольку они сами по себе занимаются аудитом других компаний, то подошли к вопросу привычно: изучили рынок, составили список требований к облаку и начали проверять, кто и к...
Угадай меня, если сможешь: прогнозирование рейтинга фильма до его выхода Недавно мне на глаза попался датасет на Kaggle с данными о 45 тысячах фильмов с Full MovieLens Dataset. Данные содержали не только информацию об актерах, съемочной команде, сюжете и т.п., но и оценки, выставленные фильмам пользователями ресурса (26 миллионов оценок от 270 ты...
[Перевод] Основы Dart Streams Это вторая часть моей серии по поводу Flutter Architecture: Введение Основы Dart Streams (этот пост) RxDart: магические трансформации потоков Основы RxVMS: RxCommand и GetIt RxVMS: Службы и Менеджеры RxVMS: самодостаточные виджеты Аутентификация пользователя посредством R...
DEV Labs 2019. Python для решения нетривиальных задач. Онлайн-митап Уважаемые коллеги! Приглашаем принять участие в онлайн-митапе серии DEV Labs, который пройдёт 20 марта и будет посвящён языку Python. Расскажем о применении Python в сфере проектирования систем «умного дома» и рассмотрим примеры решения задач по распознаванию человеческих д...
Про магистратуру Tinkoff.ru в МФТИ Привет, Хабр! Меня зовут Саша Миночкина. Я заканчиваю обучение в магистратуре — решила рассказать, как это вообще устроено. Моя статья будет полезна молодым специалистам, которые хотят поучиться и смотрят в сторону магистратуры от Tinkoff.ru, но боятся что их заставят толкат...
1000 и 1 фидбэк Привет! Меня зовут Евгения Голева, я выступила на TeamLeadConf с докладом про обратную связь и хочу поделиться с вами его вольной расшифровкой. Мне удалось под соусом совсем другого проекта научить инженеров давать обратную связь гораздо лучше, чем они делали это раньше. Для...
[Из песочницы] Molecule — тестируем роли Ansible Доброго времени суток. На Хабре не раз упоминался ansible, но статей о тестировании его ролей при помощи molecule мной обнаружено не было, однако Я нахожу данный фреймворк крайне удобным и хотел бы поделиться этим с аудиторией Хабра. Но для начала немного о том, чем я пользо...
[Из песочницы] Разработка приложения для старого КПК (Cybiko Xtreme) в 2019 году Введение Привет Хабр! Я хотел бы поделиться своим опытом написания приложения для очень старого карманного компьютера, который серьезно опередил свое время, а именно Cybiko Xtreme 2001 года выпуска. Тем, кому интересно как жилось мобильному разработчику в начале 2000-х, до...
Как издать мобильную игру, и не совершить моих ошибок Привет, Хабр! Хочу поделится своей историей запуска мобильной игры. Это история о сотрудничестве с издателем, в которой я хочу рассказать о подводных камнях, подстерегающих инди-разработчика во время работы с последним. Читать дальше →
[Из песочницы] Создание слайдера диапазона значений для фильтра без использования Jquery Очень часто на сайтах интернет-магазинов, и не только, можно фильтры со слайдером выбора диапазона значений. В одном из проектов мне тоже понадобилось сделать такой слайдер. Первое, что приходит в голову — найти уже готовый и вставить себе на сайт. Тут то я и столкнулся с п...
Подключиться мобильным устройством к базе данных без написания серверного кода Привет, Хабр! Хочу поделиться своим опытом использования Форсайт мобильной платформы. Если у вас встанет задача удалённого хранения данных и при этом не писать собственный сервер, то первое, что придёт на ум это инструмент Firebase Realtime Database. Большинство читающих зн...
Три парадигмы асинхронного программирования в Vertx Я хочу показать три парадигмы асинхронного программирования — callbacks, futures, coroutines на примере простого веб приложения на фрейморке Vertx. Код будем писать на Котлине. Допустим у нас есть приложение, которое получает некую строку в HTTP запросе, по ней ищет URL в б...
Новые GSM шлюзы от OpenVox Asterisk — потрясающий конструктор. Хотите построить небольшую АТС для бизнеса? Берем Raspberry PI, накатываем готовый образ на флешку, 10 минут, и вы уже вбиваете логин с паролем на ваш SIP телефон и делаете первый звонок. Хотите нечто большее? Ставим бесплатный и навороч...
Мошенники и ЭЦП — всё очень плохо Недавно общественность облетела новость о первом случае продажи квартиры мошенниками с помощью ЭЦП и подделки документов. Когда я раньше читал подобные новости, всегда воспринимал отстранённо, как будто со мной этого не может произойти, но я ошибался. И теперь могу заявить,...
Деливерим фичи быстрее. Опыт Android-разработки в Badoo Всем привет! Меня зовут Анатолий Варивончик. Я работаю в Badoo уже больше года, а мой общий стаж Android-разработки — более пяти лет. В своей практике я и мои коллеги часто сталкиваемся с необходимостью тестировать идеи максимально быстро и просто. Мы не хотим тратить много...
Использование DiagnosticSource в .NET Core: практика В предыдущей статье я рассказал про механизм DiagnosticSource и на простом примере показал, как с его помощью можно перехватывать запросы в базу данных через классы SqlConnection и SqlCommand и измерять время их выполнения. В настоящее время DiagnosticSource уже используется...
[Из песочницы] Особенности настройки DPI В данной статье не рассматривается полная настройка DPI и все вместе связанное, а научная ценность текста минимальна. Но в ней описывается простейший способ обхода DPI, который не учли многие компании. Читать дальше →
Как нужно и не нужно писать чат ботов на примере моего бота для игры в «Тайный Санта» Предыстория Год назад решил я создать телеграм бот для того, чтобы поиграть в достаточно популярную новогоднюю игру «Тайный Санта». Вдохновился я тем, что пару лет назад мы на работе компанией решили сыграть в эту игру (это показалось очень круто), и плюс я давно следил за...
Хотите Samsung Galaxy Note 10 как на этих рендерах? Или лучше другой? Samsung Galaxy S10 лишь недавно появился в продаже, а общественность уже вовсю соображает, каким окажется последователь Galaxy Note 10. И не зря, ведь работа в лабораториях Samsung уже ведётся над новым гаджетом. Фантазии на тему Galaxy Note 10 оформились в виде любительск...
Joker 2019: триумф года Неделю назад, 25-26 октября 2019 года, в Санкт-Петербурге прошла Java-конференция Joker 2019. Что на ней происходило, какие доклады были, что показалось интересным — обо всём этом дальше. Читать дальше →
Введение в разработку CatBoost. Доклад Яндекса Меня зовут Стас Кириллов, я ведущий разработчик в группе ML-платформ в Яндексе. Мы занимаемся разработкой инструментов машинного обучения, поддержкой и развитием инфраструктуры для них. Ниже — мой недавний доклад о том, как устроена библиотека CatBoost. В докладе я рассказал...
[Из песочницы] Анализ скроллинга страниц в Google Data Studio Добрый день, меня зовут Чакканбаев Ильхом я автор блога SeoPulses, хотел бы поделиться переводом и реализацией на практике статьи michaelhoweely.com. Для того чтобы создать полноценный и понятный отчет для блога или статейного сайта в Google Data Studio потребуется использов...
ТОП-11 ошибок при разработке BCP Всем привет, меня зовут Игорь Тюкачев, и я консультант по непрерывности бизнеса. В сегодняшнем посте мы будем долго и нудно обсуждать прописные истины я хочу поделиться своим опытом и рассказать об основных ошибках, которые допускают компании при разработке плана обеспечен...
Как получить Google Developers Certification: Mobile Web Specialist Привет, Хабр! Сегодня хочу поделиться с вами историей о том, как я сдавал сертификационный экзамен Google Developers Certification: Mobile Web Specialist. Если честно, то каких-то объективных причин я назвать не могу, так как не слышал ещё ни об одном случае, когда наличие с...
[Перевод] Как уменьшить использование памяти и ускорить работу кода на Python с помощью генераторов Всем привет. Сегодня хотим поделиться одним полезным переводом, подготовленным в преддверии запуска курса «Web-разработчик на Python». Писать код эффективный по времени и по памяти на Python особенно важно, когда занимаешься созданием Web-приложения, модели машинного обучени...
[Перевод] ФП vs ООП Не так давно на хабре появилось несколько постов противопоставляющих функциональный и объектный подход, породивших в комментариях бурное обсуждение того, что вообще это такое — объектно ориентированное программирование и чем оно отличается от функционального. Я, пусть и с не...
[Из песочницы] Способы сегментации точек в Point Clouds Введение Некоторое время назад мне потребовалось решить задачу сегментации точек в Point Cloud (облака точек — данные, полученные с лидаров). Пример данных и решаемой задачи: Поиски общего обзора существующих методов оказались неуспешными, поэтому пришлось собирать информац...
Пссс, хотите немного ужасных IT-историй? Боитесь ли вы темноты? Может быть, зомби-апокалипсиса или чудовища под кроватью? Мы знаем, что нет. У нас, айтишников, свои источники ужаса: криворукие пользователи, далёкие от IT начальники, упавшие сервера, пропавшие или не сделанные бэкапы, легаси код и Agile-митинги, ког...
[Из песочницы] Визуализация времени возрождения Рошана В данной статье рассматривается перехват функций графического API на примере DirectX 9 под x64 применительно к игре Dota 2. Будет подробно рассказано, как внедриться в процесс игры, как изменить поток выполнения, приведено краткое описание внедряемой логики. В конце поговор...
Как я стал программистом в 35 лет Всё чаще и чаще встречаются примеры смены профессии, или скорее специализации, людьми в среднем возрасте. В школе мы мечтаем о профессии романтической или “великой”, в институт поступаем по моде или советам, а в итоге работаем там, куда взяли. Я не утверждаю, что так у всех,...
[Из песочницы] Сплайны в 3d графике, максимально автоматизированный вариант С месяц назад начал учить Python по книге Доусона и очнулся уже глубоко в процессе написания своей игры под pygame. ТЗ было таково, что наиболее перспективным показалось сделать игру с псевдо-трехмерной графикой, запихнув в спрайты сохраненные поверхности 3d-сплайнов. О посл...
[Перевод] Самодельный счётчик Гейгера на ESP8266 с сенсорным экраном Я разработал и собрал счётчик Гейгера – устройство, способное обнаруживать ионизирующее излучение и предупреждать об опасных уровнях радиации в окружающей среде знакомыми щелчками. Его также можно использовать для поиска минералов, и определять, есть ли в найденном вами ка...
[Перевод] Управляем асинхронностью в PHP: от промисов к корутинам Что такое асинхронность? Если кратко, то асинхронность означает выполнение нескольких задач в течение определенного промежутка времени. PHP выполняется в одном потоке, что означает, что в любой момент времени может выполняться только один фрагмент PHP-кода. Это может показа...
Встраиваем интерпретатор Python в java-приложение с помощью проекта Panama Пару дней назад увидел твит Брайана Гетца, но только сегодня дошли руки поиграться с примерами. Про это и хочу кратко рассказать. О проекте Panama на Хабре уже писали, поэтому просто покажу пару простых примеров того, как можно применить native binder. Читать дальше →
Фильм, в котором был грунт. Исследование Яндекса и краткая история поиска по смыслу Иногда люди обращаются к Яндексу, чтобы найти фильм, название которого вылетело из головы. Описывают сюжет, запомнившиеся сцены, яркие детали: например, [как называется фильм там где мужик выбирает красная или синяя таблетка]. Мы решили изучить описания забытых фильмов и выя...
Алгоритм взаимодействия сотен тысяч уникальных частиц на GPU, в GLES3 и WebGL2 Описание алгоритма логики, и разбор рабочего примера в виде техно-демки-игры WebGL2 версия этой демки https://danilw.itch.io/flat-maze-web остальные ссылки смотрите в статье. Статья разбита на две части, сначала про логику, и вторая часть про применение в игре, первая часть...
Заменить Object на var: что может пойти не так? Недавно я столкнулся с ситуацией, что замена Object на var в программе на Java 10 приводит к исключению в процессе выполнения. Мне стало интересно, много ли разных способов добиться такого эффекта, и я обратился с этим вопросом к сообществу: A puzzle: provide a Java code sam...
[Перевод] Как CSS специфичность работает в браузере Многие считают CSS сложным. Они придумывают разные оправдания: не хватает способностей понимать CSS или CSS сам по себе плох. Но реальность такова, что люди просто не нашли время, чтобы действительно изучить его. Если вы читаете эту статью, значит заинтересованы в изучении C...
[Из песочницы] Пример простой нейросети на С/C++ Всем привет. Решил поделиться простым и ёмким на мой взгляд решением нейронной сети на С++. Почему эта информация должна быть интересна? Ответ: я старался в минимальном наборе запрограммировать работу многослойного перцептрона, да так, чтобы его можно было настраивать ка...
[Из песочницы] Теперь хороших разрабов меряют по просмотрам и подписчикам. Плохо ли это? Недавно я наткнулся на быстро набравший популярность пост fillpackart, который натолкнул меня на размышления, которыми я хотел бы поделиться со всеми читателями Хабра. Однако прежде всего я хотел бы подчеркнуть, что все сказанное в данной статье является моим личным мнением ...
Что я понял за год использования электросамоката (максимально коротко) Привет. В ноябре 2017 я впервые покатался на электросамокате, понял насколько это удобно и быстро. Зрел до лета 2018 года и в июле купил себе неплохой самокат за 25к. Проездил на нём один сезон (месяц в 2017 и два в 2018) и хочу поделиться своими инсайтами и лайфхаками. Ни...
Что такое идеальная система отчетности. Реально ли понять что происходит в компании? Как должна выглядеть идеальная система отчетности в системе управления проектами? Можно ли принести компании реальную пользу, выгрузив что-то из системы управления, или это всегда будет просто формальностями? Можно ли найти в данных системы управления что-то интересное и нов...
[Перевод] Цепи Маркова для процедурной генерации зданий Примечание: полный исходный код этого проекта можно найти [здесь]. Так как он является частью более масштабного проекта, я рекомендую смотреть коммит на момент выпуска этой статьи, или файл /source/helpers/arraymath.h, а также /source/world/blueprint.cpp. В этой статье я х...
Генерация документов с помощью ONLYOFFICE DocumentBuilder Привет, Хабр. Я хочу рассказать об утилите под названием DocumentBuilder, которая позволяет генерировать документы, таблицы и презентации, а также показать, как можно его использовать для решения ваших задач, на примере создания резюме из шаблонов. Работает билдер следующи...
Фильмы и сериалы онлайн Вы часто смотрите ТВ? Как нам кажется, большинство современных людей уже давно перестали смотреть обычные телевизионные каналы, где через каждые 5-10 минут начинается нудная реклама, которая не дает насладиться своим любимым сериалом или новым фильмом. Как же быть? На помощь...
[Перевод] Как встроить С-библиотеку в Swift-фреймворк В 2014 году был представлен Swift, новый язык для разработки приложений экосистемы Apple. Новинка принесла не только новые возможности и функции, но и проблемы — тем, кто хотел пользоваться старыми добрыми C-библиотеками. В этой статье я рассмотрю одну из них — бандлинг C-...
[Из песочницы] Становление термостата: как это получилось После нескольких лет плодотворной работы, было принято решение вынести на суд общественности наш первый продукт для управления климатом в умном доме — умный термостат для управления теплым полом. Читать дальше →
[Перевод] Практический пример использования render-функций Vue: создание типографской сетки для дизайн-системы В материале, перевод которого мы сегодня публикуем, речь пойдёт о том, как создать типографскую сетку для дизайн-системы с использованием render-функций Vue. Вот демонстрационная версия проекта, который мы будем здесь рассматривать. Здесь можно найти его код. Автор этого мат...
[Перевод] Что лучше выбрать в 2020 году — React или Vue? JavaScript-фреймворки стали неотъемлемой частью каждого современного веб-проекта. Существует множество подобных фреймворков, в результате разработчикам постоянно приходится задаваться вопросом о том, что выбрать. Искать ответ на этот вопрос придётся и в 2020 году. Если вы ...
Техническая ипотека: что и кому должен тимлид Всем привет! Меня зовут Александр Афенов. Я тимлид команды разработки Order Processing в компании Lamoda. В прошлом году я выступал на TeamLead Conf 2018. Запись выступления доступна по ссылке. В своем докладе я расскажу историю того, как стал тимлидом, с какими проблемами...
[Перевод] 12 новинок Azure Media Services с искусственным интеллектом Миссия Microsoft заключается в том, чтобы дать каждому человеку и организации на планете возможность достичь большего. Медиаиндустрия — отличный пример воплощения этой миссии в реальность. Мы живем в эпоху, когда создается и потребляется все больше контента, все большими спо...
Инсайдер уверяет, что Samsung Galaxy A90 получит камеру, подобной которой еще не было на рынке Популярный инсайдер Ice Univerce поделился с общественностью свежими данными о смартфоне Samsung Galaxy A90. ***
[Перевод] Полная история Гарольда и дерева Боба-Герберта в Fallout Гарольд родился в 2072 году и ему было всего 5 лет, когда началась Великая Война в 2077. От ужасов ядерной войны его закрыли в Убежище 29. [1] Читать дальше →
[Из песочницы] Скрипт настройки Windows 10 Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 18362), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но по...
Нетворкинг в США для чайников. Личный опыт На прошлой неделе я была на воркшопе/конференции по unsupervised machine learning. Все мы сто раз слышали, что подобные мероприятия нужны для того чтобы себя показать и на других посмотреть. Построить нетворк и все такое. Хочу поделиться тем, как я выходила из зоны комфорта ...
[Перевод] Как я сдал сертификационный экзамен Google Cloud Professional Data Engineer Без рекомендуемого 3-х летнего практического опыта В преддверии старта занятий по курсу «Data Engineer», хотим поделиться с Вами переводом одной очень интересной истории, которая наверняка будет полезна будущим дата инженерам. Поехали! Худи от Google: надето. Серьезное раб...
[Перевод] Революция или эволюция Page Object Model? Всем привет! Меня зовут Артём Соковец. Хочу поделиться переводом своей статьи об Atlas: реинкарнации фреймворка HTML Elements, где представлен совершенно иной подход работы с Page Object. Перед тем, как перейти к деталям, хочу спросить: сколько обёрток для Page Object вы зн...
Как белка в колесе или немного про исследования пользователей в условиях ограниченных возможностей В интернетах можно найти очень много статей о том, как правильно общаться с пользователями и проводить юзабилити-тестирования. Но, как часто бывает, рисовали на бумаге и забыли про овраги. Не у всех и не всегда есть возможность, время, деньги … продолжаем перечислять дру...
[Из песочницы] Обзор технологий синтеза речи Всем привет! Меня зовут Влад и я работаю data scientist-ом в команде речевых технологий Тинькофф, которые используются в нашем голосовом помощнике Олеге. В этой статье я бы хотел сделать небольшой обзор технологий синтеза речи, использующихся в индустрии, и поделиться опытом...
[Перевод] 7 полезных советов для тех, кто использует Room Room — это уровень абстракции поверх SQLite, который упрощает организацию хранения данных. Если вы ещё мало знакомы с Room, то посмотрите эту вводную статью: 7 шагов к использованию Room. Пошаговое руководство по миграции приложения на RoomА в этой статье я хотел бы поделит...
П — предвкушение, а также Предварительная Программа DUMP Казань. Смотрите доклады, прошедшие мясорубку отбора Каждый третий спикер DUMP говорил при отборе: «Ого, как у вас всё серьезно!» или «А что, может быть несколько прогонов?» Может, может… Хардкор и практика, практика и хардкор — вот чего ждут миддлы, которые приходят на ДАМПы. И программный комитет прогоняет каждую заявку чер...
«Телеграм» в клещах Роскомнадзора и правообладателей: заблокированный и довольный Судя по последним новостям о бесславной войне Роскомнадзора с «Телеграмом», мессенджер решили взять в клещи: вдобавок к попыткам РКН применить против мессенджера технологии «глубокой блокировки» DPI второй фронт открыли юристы, занимающиеся копирайтным правом. Первый фронт...
[Перевод] IntelliSense для C++ в Visual Studio теперь работает на основе примеров в вашем коде С тех пор, как мы анонсировали IntelliSense for templates, от вас поступили отличные предложения. Одно очень популярное предложение состояло в том, чтобы Template Bar автоматически заполнял вариант на основе примеров в коде. В Visual Studio 2019 версии 16.1 Preview 2 мы доба...
NVIDIA обновляет Quake II: даст скачать бесплатно игру с трассировкой лучей NVIDIA нашла забавный способ обратить внимание на технологию трассировки лучей. Хотя все, кому это интересно, уже в курсе, что это, слушали, смотрели и читали, а некоторые даже пробовали на новом оборудовании, креативщики компании нашли способ завладеть нашим вниманием ещё...
[Из песочницы] Как было устроено хранилище DWH в TELE2 Здравствуйте, дорогие друзья. Сегодня хочу поделиться историей из жизни, как было устроено хранилище DWH в Tele2 до внедрения КХД (EDW). А в следующих статьях рассказать, как внедрялись ETL-инструменты, EDW и BI решения в Tele2. Поступил я в ИТ подразделение Tele2 в 2012 в о...
[Перевод] Почему на собеседованиях так часто спрашивают про связные списки Примечание переводчика: оригинальная статья опубликована в серии твитов Вероятно, вы уже читали кучу объяснений, почему обработка связных списков — плохой вопрос для собеседования. Я же в первую очередь хочу объяснить, откуда он вообще взялся. Всем пристегнуться, погружаем...
[recovery mode] Мое очень субъективное мнение о профессиональном и не только образовании в ИТ Обычно я пишу про ИТ – на разные, более или менее, узкоспециализированные темы вроде SAN/СХД или FreeBSD, но сейчас я попытаюсь выступить на чужом поле, поэтому многим читателям мои дальнейшие рассуждения, покажутся в достаточной мере спорными или даже наивными. Впрочем, т...
Лунная миссия «Берешит» – первое видео с бортовой камеры и новые фотографии в космическом пространстве Лунный модуль «Берешит» постоянно передает фотографии и делает записи своего полета в нужные для инженеров SpaceIL моменты. Но эти данные были до сих пор закрыты и не публиковались, кроме одной селфи-фотографии 3 марта 2019 года. Возможно, организаторы миссии просто не х...
CJDNS мертв, да здравствует Yggdrasil Что такое Yggdrasil? Yggdrasil — это распределённая Mesh сеть, которая работет в Overlay режиме, позволяя сделать интернет поверх интернета Последние новости о сети cjdns датируются 2017 годом, может показатся, что сеть умерла и разработка остановлена (на самом деле — да)...
Многопоточные вычисления на Javascript, или как телефон выиграл гонку у ноутбука Привет, Хабр! Продолжаем битву за производительность Javascript на примере построения сводных таблиц. В прошлый раз мы реализовали несколько оптимизаций, и оставалась последняя реальная возможность ускорить расчет — перейти на многопоточные вычисления. В Javascript уже давн...
[Из песочницы] Использование оптики Minolta AF (Sony A-mount) на современных беззеркальных фотокамерах Sony Я написал эту статью, потому что не нашёл в сети адекватного обзора ситуации. Меня интересовала тема на протяжении нескольких лет, я много экспериментировал, накопил опыт и хочу им поделиться. Статья выражает мое личное мнение, вы можете быть с ним не согласны. Читать даль...
Habr Weekly #10 / Суперсервисы и электронный паспорт, смартфоны и россияне, «шпионские гаджеты», жизнь без спутников В юбилейном выпуске подкаста поговорили о том, что государство становится ближе к гражданам, и о том, что нам стало трудно представить свою жизнь без технологий. Читать дальше →
Xiaomi вышла на 4 место по продажам смартфонов в мире Компания Xiaomi поделилась с общественностью результатами своей финансовой деятельности в первом квартале за 2019 год. ***
Раскрыт дизайн нового смарт-телевизора Redmi TV Популярный индийский инсайдер Мукул Шарма поделился с общественностью фотографией смарт-телевизора Redmi TV. ***
[Перевод] Как я получил работу с зарплатой 300 000 долларов в Кремниевой долине В конце января мы публиковали перевод на тему «Как я успешно прошел шесть собеседований в Кремниевой долине». Пришло время поделиться продолжением, где речь пойдет о более животрепещущей теме — о деньгах и о том, как получить больше. «В течение недели мне предложили должнос...
Термометр & гигрометр на ATMEGA 328P-MU — Поднимаем уровень ардуино разработок Сегодня хочу поделиться одним из своих Ардуино проектов. Когда-то, не очень что бы давно я где-то на просторах интернета узнал об Ардуино. Влился я в это дело довольно быстро, уровень вхождения там не высокий. Через некоторое время уже собрав кучу датчиков, сенсоров для умно...
Как технологии IoT изменят мир в ближайшие 10 лет 29 марта в нижегородском технопарке «Анкудиновка» iCluster организовал лекцию Тома Рафтери (Tom Raftery), футуриста и IoT-евангелиста компании SAP. Бренд-менеджер веб-сервиса Smarty CRM познакомился с ним лично и узнал о том, что как и какие инновации проникают в повседнев...
[Из песочницы] Web MVC приложение без фреймворков и сервлетов Напишем небольшое веб приложение, без использование Web-фреймворков, внешних библиотек, и сервера приложений. Цель данной статьи показать общую суть происходящего под капотом веб-сервиса, на примере Java. Итак, поехали. Мы не должны использовать сторонние библиотеки, а так...
[Перевод] Что есть и чего нет в Go. Часть 1 Всем привет, в преддверии старта нового потока по курсу «Разработчик Golang» хотим поделиться с вами переводом интересной статьи, в первой части которой разбираются элементы, которые есть в Go. Поехали. Go создавался с оглядкой назад, и его базовая комплектация действител...
Материалы дизайн-митапа Атомик: буквы, цвета, форма, команда и деньги Привет, Хабр! Недавно мы провели в Авито первый митап, посвящённый дизайну. Хотим поделиться с вами материалами. Мы обсуждали типографику, веб-дизайн, промышленный дизайн и компонентный дизайн. Заходите под кат, если вам интересны эти темы. Внутри поста видеозаписи докладов...
[Перевод] Малварь, который читает мемы Давно не было статей про стеганографию. Вот вам пример того, как хакеры маскируют свои атаки под безобидный трафик, используя соц-сети. Читать дальше →
ООП в картинках ООП (Объектно-Ориентированное Программирование) стало неотъемлемой частью разработки многих современных проектов, но, не смотря на популярность, эта парадигма является далеко не единственной. Если вы уже умеете работать с другими парадигмами и хотели бы ознакомиться с оккуль...
[Из песочницы] Задача классификации глазами школьника: определение наличия автомобиля на парковке по кадрам с камеры видеонаблюдения Здравствуйте, я школьник 11 классов, интересуюсь программированием, около-IT тематикой. Пишу данный пост с целью поделиться своим проектом, занявшим 10 часов моей жизни на выходных и выполненным с целью понять возможности современных методов анализа данных. Публикация может...
[Перевод] Нейронаука: когда лучше всего работает наш мозг и как технологии могут ему помочь Вы полностью сосредоточены. Вы потеряли счет времени. Ничего другого в мире не существует. Вы живете в данный момент. Хотя это похоже на описание медитации, точно так же можно определить состояние потока — ощущение того, что вы настолько сильно вовлечены в работу, что пол...
Доменную зону .ORG продают частной компании. Общественность призывает ICANN расторгнуть контракт Американская некоммерческая организация The Internet Society (ISOC) продаёт свои активы, включая оператора Public Interest Registry (PIR), который управляет доменной зоной .org. Созданная в «общестенных интересах» для общественных организаций, доменная зона переходит в руки ...
Golang: специфические вопросы производительности Язык Go набирает популярность. Настолько уверенно, что появляется все больше конференций, например, GolangConf, а язык входит в десятку самых высокооплачиваемых технологий. Поэтому уже имеет смысл разговаривать о его специфических проблемах, например, производительности. Кро...
[Из песочницы] Деплоим изоморфное веб-приложение на примере Nuxt.js В средних и больших проектах сайт не ограничивается одним сервисом — к примеру только сайтом, как правило существует база данных, API, сервер который маршрутизирует запросы ко всем этим сервисам. Выкатывать и обновлять все это без какой-либо стандартизации непросто, а мас...
Ардуино термометр & гигрометр с E-PAPER на nRF52832 — или то что забыли выпустить производители Приветствую всех читателей Habr!!! В своей очередной статье речь снова пойдет о ARDUINO. Хочу поделится с Вами очередным своим проектом реализованном на микроконтролере nRF52832. Это датчик температу и влажности на sht20 c монохромным дисплеем на электронных чернилах(E-INK|E...
[Перевод] «Алгебраические эффекты» человеческим языком Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех. Вы слышали об алгебраических эффектах? Мои п...
Создаем виджет с помощью пользовательских CSS-свойств: встраиваем кастомную ссылку на сайт NHL Автор курса Нетологии «HTML-верстка», Стас Мельников, показал пример верстки виджета, который можно встроить на сторонний сайт. В прошлый раз мы рассказали, что такое пользовательские свойства, а сейчас на примере сайта NHL покажем, как с их помощью встроить кастомную ссыл...
Автоматизируем тестирование redux селекторов в приложении В этой статье я хотел бы поделиться своими идеями того, как можно автоматизировать написание unit-тестов в react/redux приложениях. Идеи эти родились в одной из дискуссий с коллегами, в процессе написания тестов, и, как мне кажется, предложенное решение имеет право на жизнь....
[Из песочницы] Решаем задачу Best Reverser с PHDays 9 Здравствуйте! Меня зовут Марат Гаянов, я хочу поделиться с вами моим решением задачи с конкурса Best Reverser, показать, как сделать кейген для этого кейса. Описание В этом конкурсе участникам предоставляется ROM игры для Sega Mega Drive (best_reverser_phd9_rom_v4.bin). ...
Вебинары Dell Technologies: все подробности о нашей обучающей программе Друзья, привет! Сегодняшний пост будет не длинным, но, надеемся, для многих полезным. Дело в том, что уже довольно давно компания Dell Tehnologies проводит вебинары, посвященные продуктам и решениям бренда. О них мы и хотим сегодня вкратце рассказать, а также попросить уважа...
[Из песочницы] Микроэлектроника для школьников от самого истока Несколько лет назад довелось мне попробовать свои силы в заманивании пытливых отроков в разработку микроэлектроники. А дальше было, как в известной пословице: «Коготок увяз — птичке пропасть!» Остановиться уже не смог. Хочу поделиться с общественностью этим опытом, возможно,...
[Из песочницы] Знакомимся с микросервисным фреймворком Moleculer Привет, %habrauser%! Сегодня я хочу рассказать тебе об одном отличном, на мой взгляд, микросервисном фреймворке Moleculer. Изначально этот фреймворк был написан на Node.js, но в последствии у него появились порты и на других языках таких как Java, Go, Python и .NET и, ск...
Apache Ignite Zero Deployment: точно Zero? Мы — отдел развития технологий розничной сети. Однажды руководство поставило задачу ускорить объемные вычисления за счет использования Apache Ignite в связке с MSSQL, показало сайт с прекрасными иллюстрациями и примерами Java-кода. На сайте сразу понравился Zero Deployment,...
Официально озвучена дата анонса бюджетного смартфона Redmi 8A Информацией с общественностью поделился вице-президент Xiaomi и глава Xiaomi India Ману Кумар Джейн. ***
Chrome расширения для веб-разработки и работы с GitHub Привет всем. Хочу поделиться с вами некоторыми из расширений для Хрома, которые я использую при разработке, анализе сайтов, в работе с GitHub и просто в повседневной жизни. Уверен, что для большинства читателей, список этих расширений не будет открытием, но те, кто узнает ...
Экономика радости. Наставничество как частный случай. Закон трёх процентов Знаю, что написав этот пост, не стану Паисием Святогорцем. Однако, я надеюсь, найдётся хотя бы один читатель, который, возможно, поймет какой это кайф – быть педагогом (ментором) в IT. И наша страна станет чуточку лучше. И этот читатель (который поймет) станет чуточку счастл...
Уточняем описание функций системы с помощью диаграммы Sequence Уточняем описание функций системы с помощью диаграммы Sequence (продолжение "Белки") В данной статье рассмотрим, как можно детализировать (уточнить) описание автоматизируемой функции с помощью UML Sequence Diagram — диаграммы последовательности. В данном примере я использую ...
IBM не даст дереву упасть на высоковольтную линию IBM Research, исследовательское подразделение компании IBM, разработало технологию, которая мониторит места, где деревья и высокая растительность угрожает линиям электропередач, а также прогнозирует появление чрезвычайных ситуаций с участием такой растительности.
История об аркадном стике Друг затеял интересный проект и я подумал, почему бы им с вами не поделиться (с его согласия, конечно же)! Вот сама история: «Пару месяцев назад меня попросили помочь с проектом аркадного автомата для одного заведения. Идея мне показалась крайне занятной, да и по силам. ...
[Из песочницы] WebRTC – еще проще (EasyRTC) Я пока не сумел побороть сигнальный сервер при написании многопользовательского чата, поэтому стал искать уже готовые фреймворки. Самым легким из всех мне показался EasyRTC. Читать дальше →
Slack планирует выйти на биржу в обход традиционного механизма IPO Согласно данным The Wall Street Journal, руководство Slack планирует выйти на биржу. При этом, компания склоняется к варианту, при котором не будет задействован традиционный механизм IPO. Акции будут размещены напрямую, а оценка компании составит около $7 млрд. О том, по...
О столе для работы стоя, здоровье позвоночника и личной эффективности С недавних пор я снова перешёл на 100% работу из дома и стал использовать стол для работы стоя. Хочу поделиться дампом своего опыта на тему здоровья, призвать закончить прокрастинировать и начать работать стоя. Сначала, о том, почему стол для работы стоя — не панацея... Чит...
Разработка плагина для Grafana: история набитых шишек Всем привет! Несколько месяцев назад мы запустили в продакшн наш новый open-source проект — Grafana-плагин для мониторинга kubernetes, который назвали DevOpsProdigy KubeGraf. Исходный код плагина доступен в публичном репозитории на GitHub. А в этой статье мы хотим поделиться...
Мечтают ли аутсорсинговые компании о своих продуктах. Разговор с Maxilect Мне кажется, многие хорошие разработчики и инженеры хоть раз задумывались — что делать со своими знаниями и умениями в глобальном смысле. Найти идею и создать свою важную и крутую вещь, для которой даже слово «продукт» покажется мелким и пошлым. Либо идти со своими знаниям...
Как мы учились быть Data Driven с Симулятором GoPractice В прошлом году команда Program Manager-ов Plesk получила возможность пройти онлайн-курс GoPractice! Simulator от Олега Якубенкова, и теперь мы хотим поделиться своими впечатлениями. Кто мы? Program Manager в Plesk может быть наиболее точно описан как «технический» менеджер...
[recovery mode] Внутренние и вложенные классы java. Часть 1 Внутренние и вложенные классы java 02.03.2017 — 2019 год Часть 1. Начало Цель статьи: Рассказать о внутренних, вложенных, локальных, анонимных классах. Показать примеры их использования. Написать и протестировать классы в коде на java. Рассказать о свойствах этих клас...
Clean Decomposition Об использовании чистой архитектуры в Android сказано предостаточно. На GitHub можно найти десятки шаблонов на разные вкусы: на Java или Kotlin, с Dagger2 или Koin, с Rx или с Coroutines. Но никто не говорит о том, как разбить определенный функционал при использовании «чисто...
[Перевод] Крутые фичи Visual Studio 2019 Несколько дней назад мы объявили об общей доступности Visual Studio 2019. Лично я использую Visual Studio 2019 с момента первой внутренней сборки — задолго до выпуска Preview 1 в декабре 2018 года. За это время обнаружилось много маленьких особенностей, которые заставили мен...
Как техподдержка HP работает — добро пожаловать или посторонним вход воспрещён Привет всем Хабровчанам! Хочу поделиться историей о наболевшем, потому что не знаю, куда еще жаловаться. Примерно полгода назад, я стал менять свою технику, устав от яблочной жизни. Мне казалось, да и сейчас кажется, что ребята из купертиновской компании начали тормозить раз...
По следам Highload++ Siberia 2019 — 8 задач по Oracle Привет! 24-25 июня в Новосибирске прошла конференция Highload++ Siberia 2019. Наши ребята тоже там были докладом «Контейнерные базы Oracle (CDB/PDB) и их практическое использование для разработки ПО», мы выложим текстовую версию немного позже. Было круто, спасибо olegbunin ...
[Перевод] PSR-14 — главное событие в PHP В прошлом году PHP-FIG — Группа концепций совместимости PHP, выпустила несколько новых спецификаций. Последняя из них — PSR-14, посвящена диспетчеризации событий. Как и другие PSR, это локальная спецификация, но имеет большое влияние на многие аспекты стандартизации. От пер...
Смотри меня полностью: выжимаем максимум из live video на мобильных платформах Самый простой способ воспроизвести видео на мобильном устройстве — это открыть ссылку имеющимся в системе плеером, но это не всегда эффективно. Можно взять ExoPlayer и оптимизировать его, а можно вообще написать свой видеоплеер, используя только кодеки и сокеты. В статье ...
[Перевод] Возможности Python 3, достойные того, чтобы ими пользовались Многие программисты начали переходить со второй версии Python на третью из-за того, что уже довольно скоро поддержка Python 2 будет прекращена. Автор статьи, перевод которой мы публикуем, отмечает, что основной объём Python 3-кода, который ему доводилось видеть, выглядит как...
[Перевод] Причудливая история перевода на английский Metal Gear Solid Когда я в последний раз видел Хидео Кодзиму, мы оба были голыми. Это произошло в ротэнбуро (горячем источнике) традиционной японской гостиницы рёкан, во время отпуска компании Konami неподалёку от горы Фудзи. Тогда он ещё не начал качать железо и был намного худее. Хидео б...
[Перевод] Изучаем английский: 9 идиом в американском стиле Для того, чтобы освоить иностранный язык на уровне, близком к носителю языка, да и хотя бы просто лучше прочувствовать его, не обойтись без идиом. Английский здесь не исключение – умение к месту использовать идиомы, устойчивые выражения или фразовые глаголы сделает вашу ре...
[Перевод] Об удобочитаемом именовании тестов в JS и поведенческом паттерне В ходе очередного ревью толстого Pull Request'а наткнулся на Unit Test'ы с некорректным именованием тест-кейсов. Обсуждение формулировок в тест-кейсах получилось похожим на разговор Янычара и Легкоступова в к/ф "72 метра" ("если б мне в школе так доходчиво..."). В разговоре ...
[Из песочницы] Передача знания и Нейронный машинный перевод на практике Нейронный машинные перевод (НМП, англ. Neural Machine Translation, NMT) развивается очень быстро. Сегодня, чтобы собрать свой переводчик, не нужно иметь два высших образования. Но чтобы обучить модель, нужен большой параллельный корпус (корпус, в котором предложению на исход...
Работа с иерархиями в lsFusion В различных приложениях часто возникает потребность в реализации иерархического представления объектов. Как правило, это используется для их классификации путем задания групп. Эти группы образуют дерево динамической глубины, которая в дальнейшем используется для навигации,...
В телевизоры Xiaomi будет добавлена функция видеозвонков Главный менеджер департамента Xiaomi TV Ли Сяошуан поделился с общественностью небольшим роликом, раскрывающим новую возможность телевизоров. ***
[Перевод] Unity: отрисовываем множество полосок здоровья за один drawcall Недавно мне нужно было решить задачу, достаточно распространённую во многих играх с видом сверху: рендерить на экране целую кучу полосок здоровья врагов. Примерно вот так: Очевидно, что я хотел сделать это как можно эффективнее, желательно за один вызов отрисовки. Как обыч...
«SMM-революция. Как с помощью передовых маркетинговых стратегий выстроить поток клиентов из социальных сетей» Здравствуйте! Хотим поделиться с Вами очень интересным мероприятием. Это онлайн-конференция «SMM-революция. Как с помощью передовых маркетинговых стратегий выстроить поток клиентов из социальных сетей». Будут выступать лучшие эксперты-практики по&n...
Сенсорный мини выключатель c стеклянной панелью на nRF52832 В сегодняшней статье хочу поделится с вами новым проектом. На этот раз это сенсорный выключатель с стеклянной панелью. Устройство компактное, размерами 42х42мм(стандартные стеклянные панель имеет размеры 80х80мм). История этого устройства началась давно, около года назад. ...
Как продать окно без впаривания или о важности позиционирования перед разработкой сайта Можно ли войти и выжить на перенасыщенном, высококонкурентном рынке новому игроку? Да, нужно просто выйти за сложившиеся рамки. Я Руслан Кокин, UX-дизайнер в компании UXhot, поделюсь историей о важности позиционирования на примере сайта пластиковых окон. Когда к нам с пре...
Открытый вебинар «Работа: своя и чужая» Добрый день, друзья! Уже в этот четверг мы запускаем новый поток по курсу «Руководитель разработки». И сегодня хотим поделиться с вами транскрипцией открытого вебинара, который прошел на прошлой неделе. Открытый вебинар «Работа: своя и чужая» С одной стороны, фраза «это н...
[Из песочницы] CI/CD, используя Jenkins на Kubernetes Добрый день. На Хабре уже есть несколько статей о jenkins, ci/cd и kubernetes, но в данной я хочу сконцентрироваться не на разборе возможностей этих технологий, а на максимально простой их конфигурации для постройки ci/cd pipeline. Я подразумеваю, что читатель имеет базовое ...
[Из песочницы] Как я делился местоположением через ВК API Недавно решил попробовать реализовать идею о том, как можно делиться местоположением через API ВКонтакте с друзьями в режиме, приближенном к реальному времени. На выходе получилось кроссплатформенное Qt-приложение для iOS/Android, веб-приложение для ВКонтакте и парочка pull ...
Ускоряем PHP-коннекторы для Tarantool с помощью Async, Swoole и Parallel В экосистеме PHP на данный момент существует два коннектора для работы с сервером Tarantool ― это официальное расширение PECL tarantool/tarantool-php, написанное на С, и tarantool-php/client, написанный на PHP. Я являюсь автором последнего. В этой статье я хотел бы подели...
[Перевод] Планы на Angular 8.0 и Ivy Каждую неделю мы получаем вопрос: "Когда уже Ivy будет готов?". Пришло время рассказать, как обстоят дела с версией 8.0, а также поделиться с вами планами по доведению до ума и релизу движка Ivy. В восьмой версии, выходящей во втором квартале текущего года, мы хотели бы ввес...
Нетипичный «ls» — Habr Edition Всем привет! После вчерашнего поста о замене штатного ls другими штатными (или не очень) утилитами, я просто не мог пройти мимо комментов, особенно учитывая то что пост взлетел на вершины хит-парадов и за сутки его прочитало 18k, с хвостиком человек. Хабровчане подарили ми...
Получение информации и обход двухфакторной аутентификации по картам банка из ТОП-10 (Украина) В прошлом году украинский банк из ТОП-10 пригласил меня протестировать свои системы интернет- и мобильного банкинга на предмет уязвимостей. Первым делом я решил начать с отслеживания запросов мобильного приложения. С помощью Fiddler (Burp или Charles) я начал рассматривать...
[Из песочницы] Senior, TechLead, Architect — что дальше? Как бороться с рабочей рутиной и куда двигаться дальше? Многие технические специалисты сталкиваются с тем, что достигают максимума в своей вертикали и не понимают, куда двигаться дальше, чтобы работа не превращалась в бесконечную рутину и давала профессиональный рост. Я уже 18 лет работаю в сфере IT, такое со мной случалось не ...
[Перевод] CSTroN — самодельный монитор на винтажной CSTN-матрице с VGA-входом и платой управления на ПЛИС Что если бы TFT никогда не изобрели? ЖК-монитор с CSTN-матрицей Вступление Когда ЭЛТ-мониторы преобладали, в их пользу выдвигали следующий аргумент: несмотря на все усовершенствования, ЖК-дисплеи никогда не превзойдут по качеству изображения трубочные. Они, как и прежде, ...
[Из песочницы] Тестирование локализации мобильных игр для чайников от чайника Введение Я уже полгода работаю тестеровщиком мобильных игр и хотел немного рассказать о своём самом любимом тестировании — Тестировании локализации. В этой статье я поделюсь своим опытом тестирования именно локализации, в основном будет опора именно на локализацию текста. Н...
[Перевод] Профилирование кода Go-проекта и решение проблемы с выделением памяти Пожалуй, каждому программисту известны слова Кента Бека: «Make it work, make it right, make it fast». Сначала надо сделать так, чтобы программа работала, дальше — надо заставить её работать правильно, а уже потом можно переходить к оптимизации. Автор статьи, перевод кото...
Топ-10 ошибок на сайте, которые убивают поток заявок Что исправить на сайте, чтобы получать в несколько раз больше заявок.
[Из песочницы] Ограничение прав локального пользователя в Linux до минимума Как то раз появилась следующая задача: создать локального пользователя в ОС Linux, с ограниченным доступом к папкам и файлам, включая не только редактирование, но и просмотр, а также возможность использовать только разрешенные утилиты. Что бы не изобретать велосипед, первы...
Что такое UI и UX дизайн? Что в них общего и что различного? Всем привет! Предлагаем вам изучить простой в освоении материал, чтобы лучше понять разницу между дизайном пользовательского интерфейса (UI) и пользовательским интерфейсом (UX) UI-дизайн и UX-дизайн — два наиболее часто запутанных и противоречивых понятия, использующихся ка...
Функциональный Swift — это просто В статьях о функциональном программировании много пишут о том, как ФП подход улучшает разработку: код становится легко писать, читать, разбивать на потоки и тестировать, построить плохую архитектуру невозможно, а волосы становятся мягкими и шелковистыми. Недостаток один — в...
Кастомизация Django ORM на примере ZomboDB Кастомизация Django ORM на примере ZomboDB Часто при работе с Django и PostgreSQL возникает необходимость в дополнительных расширениях для базы данных. И если например с hstore или PostGIS (благодаря GeoDjango) всё достаточно удобно, то c более редкими расширениями — вроде p...
Таинственные круги из деревьев были найдены в японском лесу Ученым удалось разгадать происхождение окружностей. Недавно опубликованное фото, где среди лесного массива образовались идеально ровные круги, удивило интернет пользователей. С помощью гирокоптера людям удалось сфотографировать таинственные окружности из деревьев. Приемники...
Даешь больше HighLoad++: с понедельника в Питере На следующей неделе стартует Saint HighLoad++ – вторая часть нашего эксперимента по экспансии хайлоада на крупные IT центры страны. Возвышенная приставка в начале названия, как и для других наших конференций, значит, что 8–9 апреля мы едем в Санкт-Петербург. В программе 40 ...
Это рекорд: Galaxy Note 9 в России отдают за полцены Можно бесконечно смотреть на три вещи: как горит огонь, льется вода и дешевеют флагманы от Samsung. Но если оспорить утверждения про огонь и воду еще, в общем-то, можно, то сделать то же самое с аппаратами корейского бренда вряд ли выйдет. По крайней мере, если говорить о G...
[Перевод] Почему мы перенесли серверы в Исландию Примечание переводчика. Simple Analytics — сервис аналитики для веб-сайтов, ориентированный на приватность (в некотором роде противоположность Google Analytics) Как основатель Simple Analytics, я всегда помнил о важности доверия и прозрачности для наших клиентов. Мы несём о...
Мониторинг сообщений в RabbitMQ Рассмотрим классическую схему построения конвейера сообщений в RabbitMQ состоящую из элементов Producer, Exchange, Queue и Consumer. Задача состоит в том, что бы организовать мониторинг происходящего в очереди и не затронуть основное программное обеспечение (ПО), добавить...
Как не утонуть в море технологий и подходов: опыт 50 экспертов Как тимлид, я хочу поддерживать широкий кругозор. Вокруг множество источников информации, книг, которые интересно прочитать, но не хочется тратить время на ненужные. И я решил узнать, как коллеги выживают в потоке информации и за счет чего поддерживаю себя в тонусе. Для этог...
[Перевод] Swift: ARC и управление памятью Будучи современным языком высокого уровня, Swift в основном берёт на себя управление памятью в ваших приложениях, занимаясь выделением и освобождением памяти. Это происходит благодаря механизму, который называется Automatic Reference Counting, или сокращенно ARC. В этом руко...
[Перевод] Kafka на Kubernetes — это хорошо? Приветствуем вас, Хабр! В свое время мы первыми вывели на российский рынок тему Kafka и продолжаем следить за ее развитием. В частности, нам показалась интересной тема взаимодействия Kafka и Kubernetes. Обзорная (и довольно осторожная) статья на эту тему выходила в блоге ко...
[Из песочницы] Функциональные компоненты с React Hooks. Чем они лучше? Относительно недавно вышла версия React.js 16.8, с которой нам стали доступны хуки. Концепция хуков позволяет писать полноценные функциональные компоненты, используя все возможности React, и позволяет делать это во многом более удобно, чем мы это делали с помощью классов. М...
[Перевод] Продумываем персонажей игр и диалоги по советам писателей и на примере сторонников теории плоской Земли Как человек, который в качестве хобби начал делать свою первую игру без всякого опыта программирования, постоянно читаю разные туториалы и гайды по геймдеву. А как человек из PR и журналистики, который часто работает с текстом, хочу сценарий и персонажей, а не просто геймпле...
Дилетант в opensource — lessons learned за 3 года Давно, в 2014 году я сделал для себя небольшую утилитку, чтобы перегонять C#-вьюмодели в TypeScript-код. Она сэкономила мне немало времени и нервов. И вот, в сентябре 2015 я решил оформить свои "эксперименты на коленке" в некую удобоваримую форму и вылить их на GitHub. Так н...
[Из песочницы] Удаленная отладка микросервиса через SSH под VPN в 4 хода Бывает ситуация, когда нужно отдебажить сложный кейс на удаленной машине, но доступ к серверу есть только под VPN с ограничениями по открытым портам. В статье хочу поделиться с коллегами небольшим «ресерчем» на тему удаленной отладки через SSH под VPN, дабы сэкономить драгоц...
Тюнингуем Mazda RX8 с помощью 3D печати. Продолжение. Дождались! В первой части влога 2, мы изготовили стойки для антикрыла на Mazda RX8 и установили их на авто.Но случилось так,что наш тюнинг претерпел ряд усовершенствований:Изменение геометрии стоек Увеличение размера крепленийЗамена исходного материалаЕстественно, появился р...
Tic Tac Toe, часть 5: Бэкенд на С++ Boost.Beast, HTTP В этой статье рассмотрим реализацию бэкенда с применением C++ Boost.Beast библиотеки на примере синхронного сервера. Та же функциональность, что и в прошлой статье — получаем от бэкенда случайное число от 0 до 8 включительно. Оказалось, что поднимать контейнер для Beast ничу...
Как не дать идее погибнуть и собрать команду, которая ее не убьет Когда наше digital-агентство только открылось, возник вопрос: как все начать и не запороть. Мы хотели создать что-то большое. Что-то, вокруг чего объединились бы единомышленники. Здесь мы расскажем, как не дать идее умереть и как собрать команду, которая ее не убьет. В са...
[Из песочницы] Новый баг в Telegram позволяет прочитать последнее сообщение Недавно я обнаружил в Telegram очень интересный баг. Он позволяет читать удалённые сообщения. И как сторонник и фанат культовых продуктов — тут же отправил сообщение о баге саппорту Telegram. Со спокойной совестью демонстрировал коллегам на работе, найденный баг. «Хочешь вос...
Метод дублирования. 11 примеров из конструкции ДВС Дублирование (от французского doubler удваивать) в системе это вид резервирования, имеющего минимальную избыточность. Статья эволюция развития автомобильных двигателей с начала 90-х годов вызвала интерес, и сильное обсуждение преобразований в двигателестроении. Эта стать...
Уязвимость в Telegram позволяет обойти пароль local code любой длины Из прошлого В предыдущей своей работе Я продемонстрировал уязвимость секретных чатов Telegram, и выложил видео-мануал по восстановлению local code Telegram на GNU/Linux/Windows/Android (взлом СЧ Telegram). Недавно обнаружил «продолжение уязвимости»: Android-Telegram [обход ...
Sony WH-1000XM3 — лучшие беспроводные наушники? Этим небольшим обзором — да что там говорить, небольшим имхо — я хочу завершить небольшой цикл, предыдущая часть которого находится здесь. На самом деле я уже всё сказал, что хотел, но уважаемый Gordon01 заставил меня съездить к старому знакомому за 900 км от дома (Кирилл,...
[Из песочницы] Опыт разработки свободного приложения для коллекционеров OpenNumismat Хочу поделиться своим опытом разработки настольного приложения для коллекционеров с открытым исходным кодом. По роду своей основной деятельности я разрабатываю ПО для встраиваемых систем и редко пересекаюсь с конечными пользователями. Поэтому речь пойдет об особенностях, с ...
Я написал эту статью, ни разу не посмотрев на клавиатуру В начале года я почувствовал, что упёрся в потолок как инженер. Вроде бы читаешь толстые книжки, решаешь на работе сложные задачи, на конференциях выступаешь. А всё не то. Поэтому я решил вернуться к корням и по очереди закрыть навыки, которые когда-то в детстве считал базов...
Зарабатываем на солнечной энергии или пассивный доход в 25% годовых, практический опыт. Часть 2 КДВП © Diana, made by Siuzanna Часть 2. Практическая Вы твёрдо решили построить свою домашнюю солнечную станцию? Взвесили все риски, нашли финансирование, прикинули взором, где она будет стоять и какие деревья придется спилить? Ну что, если ещё не передумали — прошу далее....
[Перевод] Gmail исполнилось 15 лет Возвращаясь в 2004 год, электронная почта выглядела совсем по-другому. "Входящие" были забиты спамом, и было просто невозможно найти реальные сообщения или файлы. Кроме того, количество писем было ограничено, поэтому приходилось постоянно удалять их, чтобы не превышать лими...
Xiaomi выпустит смартфон Mi CC9 Pro со 108-Мп камерой и чипом Snapdragon 730G Авторитетный инсайдер Xiaomishka поделился с общественностью информацией о готовящемся к дебюту смартфоне Xiaomi. ***
Главные анонсы Microsoft с конференции BETT Совсем недавно прошел День студента. По его следам мы хотим поделиться рядом новых решений Microsoft, которые помогут преобразить учебный процесс и персонализировать обучение школьников и студентов. Они были анонсированы на крупнейшей образовательной выставке BETT, проход...
[Из песочницы] Самый беззащитный — это Сапсан Был я как-то на ZeroNights, это очередная конференция по информационной безопасности, которая в этом году была совсем шлаком. Там я хотел как всегда что-либо поломать, получить за это приз, и т.д., но как я выяснил — интересных задач там не было, и пришлось развлекать себ...
[Из песочницы] Выигрышная стратегия Гомоку – 35 ходов При игре по стандартным правилам Гомоку для выигрыша черным требуется не более 35 ходов. В статье Вашему вниманию представлена полная выигрышная стратегия и соответствующий алгоритм игры. Демонстрация полного решения – здесь – можно поиграть и найти самые длинные варианты. ...
4 трудности при локализации мобильных игр на примере Fishing Clash — перевод Хабр, привет! Перевели статью Кевина Дабровски, креативного директора Ten Square Games. На примере их игры Fishing Clash он рассказал, какие у них случались факапы, и что делать, чтобы у вас такого не повторилось. Следует сразу разделить понятия: локализация и перевод — ...
Так все-таки RAML или OAS (Swagger)? В динамичном мире микросервисов измениться может все что угодно — любой компонент можно переписать на другом языке, используя иные фреймворки и архитектуру. Неизменными должны оставаться лишь контракты, для того, чтобы с микросервисом можно было взаимодействовать извне на не...
Подборка рабочих примеров обработки данных Привет, читатель. По стопам моего первого поста подборки датасетов для машинного обучения — сделаю подборку относительно свежих датасетов с рабочими примерами по обработке данных. Ведь ни для кого не секрет, что обучение на хороших примерах проходит эффективнее и быстрее. П...
Работа с API КОМПАС-3D → Урок 14 → Многострочный текст На предыдущем уроке мы рассмотрели, как выводить многострочный текст с помощью параграфа. Описанный способ требует ручного обхода массива выводимых строк. На данном уроке мы рассмотрим альтернативный способ, лишенный этого недостатка. В его основе лежит интерфейс ksTextParam...
Финансовая ловушка в Яндекс.Деньги Привет, Хабр! Хотел бы поделиться с вами одной особенностью Яндекс.Денег, которая выглядит, как ловушка для ваших денег и, на мой взгляд, является хорошим примером непродуманного UX. Хочется верить, что это было сделано не нарочно, а эта небольшая статья или как-то оградит ч...
Ситуация: нарушают ли AdTech-компании GDPR? Регуляторы в Европе столкнулись с потоком жалоб на компании, работающие в сфере рекламных технологий. Обсуждаем ситуацию — причины и потенциальные последствия. Читать дальше →
Лонгрид о реалистичности квантовой угрозы для криптовалют и проблемах “пророчества 2027” По криптовалютным форумам и телеграм-чатам упорно продолжают курсировать слухи о том, что причиной недавнего внушительного проседания курса BTC стала новость о достижении компанией Google квантового превосходства. Эта новость, изначально размещенная на сайте NASA, а затем ра...
Terraformer — Infrastructure To Code Хотел бы рассказать про новый CLI tool который я написал для решения одной старой проблемы. Проблема Terraform уже давно стал стандартом в Devops/Cloud/IT сообществе. Вещь очень удобная и полезная чтоб заниматся infrastructure as code. Есть много прелестей в Terraform а т...
[Из песочницы] Python + Pyside2 или просто «Калькулятор» Привет, Хабр! Меня зовут Саша. Я Junior разработчик. Работаю тестировщиком ПО. В основном я пишу тесты при помощи Python+Selenium, но Python стал настолько интересен, что мне захотелось углубиться в него и выучить как можно больше фреймворков! Я захотел написать десктопное ...
Таймер для выступлений При публичных выступлениях хорошей идеей является контролировать время выступления. Для меня важным является отсутствие дополнительного стресса. Множество таймеров можно найти на просторах интернета, но все они содержат то миллисекунды и секунды, то мигающие двоеточия. Нек...
[Перевод] Обзор: шесть способов использования резидентных прокси для решения корпоративных задач Маскирование IP-адреса может требоваться для разных задач – от доступа к заблокированному контенту до обхода антибот-систем поисковиков и других онлайн-ресурсов. Я нашел интересный пост о том, как эту технологию можно применять для решения корпоративных задач, и подготовил...
[Из песочницы] Оптимизация портфеля облигаций с применением библиотеки ALGLIB В статье пойдет речь об опыте разработки программы для составления эффективного портфеля облигаций с точки зрения минимизации его дюрации. Возможно, я не буду оригинален и для всех, кто инвестирует в облигации вопросы определения оптимальных весов давно решены, но все же, на...
[Перевод] Паттерны и анти-паттерны CI/CD. Часть 3 И снова здравствуйте. Сегодня хотим поделиться с вами переводом третьей части статьи «Паттерны и анти-паттерны CI/CD», предыдущие части которой можно прочитать здесь и здесь. Напомним, данная серия публикаций приурочена к запуску нового потока по курсу «DevOps практики и инс...
Очень много YouTube-каналов для прокачки английского языка для программистов Привет, Хабр! С помощью YouTube можно ощутимо и сравнительно быстро улучшить английский. Понимание на слух как минимум. Истина не нова, но мало кто смотрит английский YouTube, потому что легко потеряться в бесконечности каналов. Но для вас я собрал самые стоящие каналы! ...
Как я создал сервис по контролю качества из таблиц и палок Привет, Хабр! Частенько при размышлении о запуске пилота менеджеры начинают усложнять ситуацию, строят дорожные карты и ждут MVP от разработчиков, вместо того чтобы взять и протестировать идею своими силами. Под катом я хочу поделиться историей создания сервиса по контролю к...
Memento Mori или вычисляем «магические квадраты» 5x5 Привет Хабр. Примерно год назад я рассматривал тему использования GPU на примере вычисления «магических квадратов» 4х4. Там все довольно-таки очевидно, этих квадратов всего 7040, и вычислить их можно практически на чем угодно, хоть на Ардуине (но это не точно). Аналогичным ...
[Перевод] Написание змейки для Android на Kivy, Python Привет! Много людей хотели бы начать программировать на андроид, но Android Studio и Java их отпугивают. Почему? Потому, что это в некотором смысле из пушки по воробьям. «Я лишь хочу сделать змейку, и все!» Начнем! (бонус в конце) Читать дальше →
Опубликованы концептуальные изображения iPhone 12 Инсайдер Бен Гескин, зарекомендовавший себя только с лучшей стороны, поделился с общественностью рендерами концептуального смартфона iPhone 12. ***
Аналитик раскрыл характеристики смартфона iPhone SE 2 Популярный аналитик Минг-Чи Куо поделился с общественностью свежей информацией о смартфоне iPhone SE второго поколения. ***
Web. Решение задач с r0от-мi. Часть 2 Данная статья содержит решение заданий, направленных на эксплуатацию web-узвимостей. Статья ориентирована в основном на новичков, которые хотят разобараться в заголовках HTTP и учавствовать в CTF. Ссылки на предыдущие части этого раздела: Web. Решение задач с r0от-мi. Час...
[Перевод] Я получил от Кнута чек на 0x$3,00 Дональд Кнут — учёный в области информатики, который настолько заботится о правильности своих книг, что предлагает один шестнадцатеричный доллар ($2,56, 0x$1,00) за любую найденную «ошибку», где ошибкой считается всё, что «технически, исторически, типографически или политиче...
Смотрим китайскую микросхему novatek NT78820 Попала ко мне неисправная ТВ приставка для цифрового телевидения. В результате диагностики была выявлена микросхема, которая была неисправна и замыкала питающее её напряжение на землю. Появилась идея посмотреть как устроена микросхема внутри и как её собрали друзья китайцы...
[Из песочницы] Опыт разработки тестового задания на React для Aviasales Привет, я хотел поделиться опытом разработки тестового задания для Aviasales. Я недавно наткнулся на вакансию React разработчика в компанию Aviasales. Отправил заявку, после чего на следующий день мне ответил HR и сообщил, что я должен буду сделать тестовое задание. Я крайне...
Приводим в порядок плейлист Торрент-ТВ («Суперпомойка») Потоки в нелегальном сервисе Торрент-ТВ («Суперпомойка») в подавляющем большинстве являются оригинальными потоками от операторов или со спутника без пережатия. В основном это потоки с чересстрочным видео. Торрент-ТВ обеспечивает максимально возможное качество, но низкую стаб...
Nokia 3310 действительно неубиваемая. Смотрим видео Кто только и как только не шутил про этот легендарный телефон от Nokia. Кроме того, компания даже сделала ремейк Nokia 3310 в 2017 году, который тоже нашёл своих поклонников. Его, кстати, уже тоже успели протестировать на прочность, например, гидравлическим прессом. Чита...
[Из песочницы] Как я писал свой мониторинг Решил поделиться своей историей. Может даже кому пригодится подобное бюджетное решение всем известной проблемы. Когда я был молод и горяч и не знал, куда девать свою энергию, я решил немного пофрилансить. Мне удалось быстро набить рейтинг и я нашёл пару постоянных клиентов,...
Зачем смотреть онлайн-трансляции, если можно читать Хабр «Зачем мне смотреть конференцию онлайн, я потом расшифровку докладов на Хабре прочитаю» — скажет человек, который любит читать тексты на Хабре. «Зачем смотреть онлайн, если можно сходить вживую?». По крайней мере, я именно это спросил пару лет назад. Потом я вбил эти вопросы...
Samsung Galaxy Note10 могут официально представить 7 августа в Нью-Йорке Достаточно популярный и авторитетный инсайдер Мукул Шарма поделился с общественностью информацией о возможной дате выпуска смартфона Samsung Galaxy Note10. ***
[Из песочницы] Мониторинг доступности хостов на Powershell Всем доброго времени суток, хочу поделиться простой инструкцией «Как можно перестать вручную пинговать десяток хостов. Без регистрации и СМС!». С просторов Интернета Важно: я не программист и не системный администратор, но мне приходиться работать одновременно с большим на...
[recovery mode] Машинное обучение в микрофинансах: строим скоринговую модель для клиентов с пустой кредитной историей Нет кредитной истории — не дают кредиты, не дают кредиты — нет кредитной истории. Замкнутый круг какой-то. Что делать? Давайте разбираться. Привет! Меня зовут Марк, я data scientist в компании Devim. Недавно мы запустили модель для скоринга заемщиков МФК “До Зарплаты”, у ко...
Европейка, которую не видели в Европе: Что мы не знаем о Toyota Camry 40? Самая лучшая «Камрюха», по мнению блогера, вовсе не так проста, как может показаться. Об этом он рассказал на своём YouTube-канале, посвященном популярным автомобилям с пробегом. На этот раз ему захотелось поделиться своим мнением касательно Toyota Camry в сороковом кузове,...
В macOS Mojave найден баг, который дает злоумышленникам доступ к истории Safari Разработчик и эксперт в области компьютерной безопасности Джефф Джонсон поделился информацией о новой уязвимости, найденной в macOS Mojave. Согласно имеющимся данным она может давать некоторым приложениям доступ к истории браузера и некоторым другим данным Safari.Читать даль...
[Перевод] Я самый большой скупердяй в инди-разработке игр Скриншот из Queen's Wish. Учтите, что я использую игровой арт, который мне нравится. Это необходимо, потому что потом придётся смотреть на него годами, и я не хочу сойти с ума. Неделю назад я опубликовал в блоге пост «Почему все мои игры выглядят так отстойно» (оригинал). ...
Революционный Xiaomi Mi Mix Alpha показался на «живых» фото В сентябре Xiaomi представила необычный смартфон Mi Mix Alpha с дисплеем, занимающим «180,6% передней панели». Купить и оценить, каков столь экстравагантный аппарат в использовании, пока нельзя. Поэтому остаётся только смотреть фотографии.
Threat Hunting, или Как защититься от 5% угроз 95% угроз информационной безопасности являются известными, и защититься от них можно традиционными средствами типа антивирусов, межсетевых экранов, IDS, WAF. Остальные 5% угроз – неизвестные и самые опасные. Они составляют 70% риска для компании в силу того, что очень непрос...
[Перевод] Монады за 15 минут Вступление На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудито...
Беспроводной модуль для ёмкостного датчика влажности почвы на nRF52832 Всем привет, сегодня расскажу о том как я решил проапгрейдить датчик влажности почвы с Алиэкспресс. Примерно месяц назад был куплен датчик влажности почвы. Зачем покупал и сам не знаю, наверное все из-за цены в 40 рублей :) Получив и успешно проверив датчик(с помощью Ардуин...
Apple увеличит базовый объём памяти в iPhone 11 Не секрет, что с каждым годом мобильные приложения становятся все массивнее, занимая всё больше места на смартфонах. Многие Android-производители уже решились на такой важный и давно назревший шаг, как расширение объема внутренней памяти смартфонов. Apple также может послед...
Another Way — LFS, Multi User и текущий прогресс инди Action/RPG Всем привет! Прошло немногим больше месяца и по традиции я спешу поделиться прогрессом нашей авантюры, серии под названием “Через тернии к игре мечты”. Хочу напомнить, что же тут происходит. Мы разрабатываем игру Another way — Нелинейная Action/RPG от третьего лица с элеме...
Badoo Jira API Client: магия в Jira на PHP Если в строке поиска на Хабре ввести “Jira Badoo”, результаты займут не одну страницу: мы упоминаем её почти везде, потому что она играет важную роль в наших процессах. Причём каждый из нас хочет от нее немножко разного. Разработчик, которому пришла задача на ревью, ожида...
[Перевод] Выпуск Rust 1.32 Команда разработчиков Rust рада сообщить о выпуске новой версии Rust, 1.32.0. Rust — это язык программирования, который дает возможность каждому создавать надежное и эффективное программное обеспечение. Если у вас установлена предыдущая версия Rust с помощью rustup, то для о...
[Из песочницы] Настройка reverse proxy для Nextcloud и ONLYOFFICE Привет, Хабр! Я занимаюсь тестированием редакторов документов ONLYOFFICE, а также тестированием интеграции редакторов в сторонние сервисы. К нам часто обращаются пользователи с различными проблемами при настройке, решения которых просто так не найти. Одна из самых популярных...
[Перевод] Элегантная обработка ошибок в JavaScript с помощью монады Either Давайте немного поговорим о том, как мы обрабатываем ошибки. В JavaScript у нас есть встроенная функция языка для работы с исключениями. Проблемный код мы заключаем в конструкцию try...catch. Это позволяет прописать нормальный путь выполнения в разделе try, а затем разобрать...
[Из песочницы] Изменяем содержимое нотификации приложения iOS Привет! В этой статье я хочу поделиться своим опытом использования одного не очевидного (по крайней мере для меня) варианта изменения текста уведомления приложения, отправкой дополнительных данных через UNUserNotificationCenter. Я надеюсь эта статья будет полезна для нович...
[Из песочницы] История второго места в Mini AI Cup 4: Paper IO Меня зовут Волков Игорь. Я работаю в консалтинговой компании на позициях Java разработчика, архитектора, руководителя команды, технического менеджера. Разные роли в зависимости от текущих потребностей проекта. Обратил внимание на конкурсы от mail.ru давно, но активно поучаст...
Роскомнадзор, который мы заслужили На Хабре есть тема, табуированная больше, чем минет. Это политика. Поэтому прошу воспринимать мою статью, как статью исключительно социальной направленности. Не ищите даже намеков на политику. Начну с легкой провокации: заявлю, что IT-сообщество в некоторой степени винова...
Монолит для сотен версий клиентов: как мы пишем и поддерживаем тесты Всем привет! Я бэкенд-разработчик в серверной команде Badoo. На прошлогодней конференции HighLoad я выступал с докладом, текстовым вариантом которого и хочу поделиться с вами. Этот пост будет наиболее полезен тем, кто самостоятельно пишет тесты для бэкенда и испытывает пр...
Atlassian Confluence: расширяем на python В Альфастраховании мы активно пользуемся "Вики", движком которого выступает Atlassian Confluence. Когда я первый раз с ним всерьез столкнулся (в попытке создать в нем контент), мне в нем не хватило "динамичности" — хотелось иметь возможность программно формировать части стра...
Проект Collage: как бороться с интернет-цензурой с помощью пользовательского контента Группа ученых из технологического университета штата Джорджия опубликовала концепцию нового инструмента обхода блокировок. Проект получил название Collage, и его концепция предполагает использование так называемого user-generated content. Мы представляем вашему вниманию ос...
Должны ли строки в Python быть итерируемы? И сотворил Гвидо строки по образу C, по образу массивов символов сотворил их. И увидел Гвидо, что это хорошо. Или нет? Представьте, что вы пишете совершенно идиоматичный код по обходу неких данных с вложенностью. Beautiful is better than ugly, simple is better than complex,...
В Сеть слит предполагаемый рендер флагманского смартфона Redmi Q Достаточно авторитетный инсайдер Судханшу Амбхоре поделился с общественностью рендером, демонстрирующим смартфон Redmi Q. ***
Системы очистки воды обратным осмосом — здорово или не очень? Всем привет. Сегодня я хотел бы поделиться с своим видением систем очистки воды. Я не хочу обсуждать различные фильтры, неэффективность которых давно уже известна — поговорим мы про системы очистки обратным осмосом, которые активно используются как на производствах, выпу...
Вредные советы: как не надо обрабатывать Watson Зачем совершать собственные ошибки, если можно учиться на чужих!Мы опробовали множество растворителей и способов обработки моделей из Watson прежде чем найти самый оптимальный. Пострадала не одна вазочка, но зато мы рады продемонстрировать как НЕ НАДО обрабатывать Watson, ес...
Рост. Вес. Три соседа В поиске интересного и простого ДатаСета я набрёл этого красавца. Об этом красавце В нём есть данные о росте и весе 10 000 мужчин и женщин. Никакого описания. Ничего «лишнего». Только рост, вес и метка пола. Эта таинственная простота мне понравилась. Что ж, начнём! Что мне ...
Можно смотреть вечно: вертолет бензопилой режет ветки деревьев С развитием интернета по всему миру у людей появилась возможность наблюдать такие вещи, которые навряд ли кто-то смог бы увидеть своими собственными глазами хотя бы потому, что выполнение различных действий в разных странах выполняется по-разному. Сообщение Можно смотреть в...
[] Парсер 2GIS в семь строчек кода, или почему важно контролировать лимиты запросов на сервер Наверное любому из тех, кто хоть как-то причастен к области анализа данных хотя-бы раз приходилось сталкиваться с поиском сторонних источников получения этих самых данных. Сегодня я хотел бы поделиться с Вами одним из самых неожиданных для меня мест, где эти данные лежат поч...
[Перевод] Что есть и чего нет в Go. Часть 2 Всем привет! Cегодня делимся заключительной частью перевода статьи «Что есть и чего нет в Go». Напоминаем, в первой части речь шла о элементах, которые есть в Go, сегодня же поговорим о том, чего в Go нет. Перевод данного материала подготовлен в преддверии старта нового пот...
Как сделать веб-формы на сайте удобными и безопасными: инструменты разработки и конструкторы Помощник руководителя проектов stepFORM Артем Петров рассказал, как сделать веб-формы удобными для пользователей, защитить их от спама и перечислил основные способы их разработки. Веб-формы — простой инструмент и один из главных источников лидов на сайте. С его помощью возм...
Windows в браузере без регистрации и СМС — обзор RDP-клиентов HTML5 Когда-то давно, когда деревья были высокими, а я был молодым и зеленым системным администратором, довелось мне внедрять терминальный сервер на Windows 2000. Я тогда думал, что хорошо бы, если бы для подключения к серверу не нужен был никакой отдельный клиент. Шло время, дер...
[Из песочницы] Composer для самых маленьких Доброго дня. Когда я первый раз разбирался с composer, я набросал для себя маленькую шпаргалку и теперь, спустя некоторое время представляю её на суд общественности в несколько доработанном виде. Данная публикация актуальная для тех, кто в первый раз столкнулся с незаменимы...
ASUS ROG Strix XG43VQ официально представлен Сегодня состоялся официальный анонс нового игрового монитора ASUS ROG Strix XG43VQ, который является примером варианта с широким форматом дисплея. Это отличное решение в том случае, если вы хотите получить именно широкий формат для работы с видео или документами, тогда как в...
Квест с iobroker для игр “Квесты в реальности” Всем привет, на хабре уже есть несколько статей про автоматизацию игр типа «квесты в реальности» (раз, два, три, четыре, пять...), я хотел бы тоже поделиться своим опытом участия в подобном проекте. В далеком 2015 году мои друзья решили организовать квест типа escape-room ...
Как увеличить видимость видеорекламы: советы от Google Ad Manager Команда Google Ad Manager поделилась с издателями советами о том, как улучшить видимость видеорекламы и повысить доходы. Так, в Google выделили следующие три фактора, с которыми важно работать владельцам сайтов и приложений: 1. Обеспечение премиум-опыта для пользователей Есл...
Опыт создания позиционных карт для Википедии В течение нескольких лет я работал над картами, которые используются в русском и других языковых разделах Википедии. Всего мной было создано более 300 карт. Я не являюсь профессиональным картографом, и не имею специального образования в этой области. Видимо, мне просто нрави...
«Это просто пенсионер-мобиль»: Опытом езды на LADA Kalina поделился автомобилист Автор изначально хотел купить себе именно LADA Kalina, но теперь сам ее продает и удивляется тому, насколько неликвиден этот автомобиль на «вторичке». Как сообщил блогер с канала «Семён56», пробег «Калины» на сегодняшний день составляет 113 тысяч км. Есть заводской антикор,...
Комбайн для фишинга. Как Evilginx 2 используют для кражи аккаунтов Для подписчиковВ этой статье мы изучим, как работает реверс-прокси Evilginx 2, и на примере Instagram посмотрим, как с его помощью уводят аккаунты в обход двухфакторной аутентификации. Поднимем боевой стенд, настроим все необходимые параметры и закинем удочку с наживкой посо...
Как диагностировать проблемы интеграции SDK. Опыт команды разработки Yandex Mobile Ads SDK Всем привет! Меня зовут Дмитрий Фисько, я разрабатываю Yandex Mobile Ads SDK. Наша библиотека предназначена для монетизации мобильных приложений на платформе Android и iOS. Сегодня я хочу рассказать вам о том, как мы упростили разбор сложных ошибок интеграции SDK в Android-п...
Вижу, значит существую: обзор Deep Learning в Computer Vision (часть 1) Компьютерное зрение. Сейчас о нём много говорят, оно много где применяется и внедряется. И как-то давненько на Хабре не выходило обзорных статей по CV, с примерами архитектур и современными задачами. А ведь их очень много, и они правда крутые! Если вам интересно, что сейчас ...
Обзор IPSec в Mikrotik IPSec (IP Security) — набор протоколов и алгоритмов для шифрования данных в IPv4 и IPv6 сетях. Звучит не сложно, но IPSec не устанавливает четких правил для шифрования трафика, вместо этого разработчики реализуют набор инструментов (протоколов и алгоритмов), используя которы...
Древности: десять лет эволюции ноутбуков на примере ThinkPad X301 Пару лет назад я потестировал свой ветеранский ноутбук ThinkPad X220, и тогда пришел к выводу, что прогресс в портативных компьютерах — он какой-то медленный. На тот момент модель 2011 года от модели 2016-го не особо отличалась. Возможно по состоянию на 2016 год так и было, ...
[Перевод] Новая цель НАСА для поисков внеземных цивилизаций: технопризнаки НАСА возобновило поиски внеземных цивилизаций. Конгресс США попросил агентство запустить этот проект заново в 2018 году. Его первым шагом к достижению этой цели стала рабочая конференция NASA Technosignatures Workshop, прошедшая в сентябре прошлого года. Если вы никогда н...
[Перевод] 9 советов по использованию библиотеки Cats в Scala Функциональное программирование в Scala может быть нелегко освоить из-за некоторых синтаксических и семантических особенностей языка. В частности, некоторые средства языка и способы реализации задуманного с помощью основных библиотек кажутся очевидными, когда ты с ними знако...
Выжить в лобовом столкновении, и почему амнезия это не то, что вы думаете Привет, Хабр. Не так давно я попала в автокатастрофу, и на своём личном опыте испытала, что такое переломанные кости, тяжёлая черепно-мозговая травма и потеря памяти. В статье я также хочу поговорить о заблуждениях о симптоме амнезии в современной массовой культуре. Область...
Пользовательское интервью внутренними силами компании: через ошибки к открытиям Привет, я Саша, скрам-мастер из Туту.ру в команде туров. Не так давно мы проводили пользовательское интервью для нашей новой фичи — Джарвела. Хочу поделиться с вами ошибками и открытиями, которые помогли нам провести это интервью так, что оно затронуло и изменило краеуголь...
[Из песочницы] 10 принципов самодокументируемого кода Привет! Сегодня я хочу поделиться советами по написанию совершенного понятного кода, взятые из книги Питера Гудлифа «Ремесло программиста // Практика написания хорошего кода». Конечно, неплохо было бы прочитать эту занимательную книгу каждому кто пишет код, но для особо ле...
Как перевести ваил из STL в CAD SOLIDWORKS Многие сталкивались с проблемой: вы скачали файл STL с какого-то сайта, но он вас не устраивает, нужно что-то такое доработать или вы просто хотите CAD файл , а моделировать заново лень..Во многих программах для 3d моделирования есть функция преобразования STL в CAD, р...
Сколько стоит безопасность веб-приложений (на примере Barracuda WAF-as-a-Service) Итак, в выборе WAF программного обеспечения, устройства или облачных служб можно руководствоваться характеристиками продукта, легкостью развертывания, рейтингами производителя, качеством технической поддержки, примерами внедрений в других компаниях, сходных с вашей, и отзы...
Раскрыты характеристики и официальный дизайн смартфона Huawei P20 Lite (2019) Популярный инсайдер Роланд Квандт поделился с общественностью очень подробными данными о будущем смартфоне Huawei P20 Lite (2019). ***
Утечка о Microsoft Surface Pro 7: по-прежнему не будет версии с 32 Гбайт ОЗУ Похоже, что для некоторых поклонников устройств Microsoft Surface есть плохая новость. Планшет Microsoft Surface Pro с объёмом ОЗУ более 16 Гбайт ждать не стоит. Данной информацией поделился инсайдер Tum Apisak в своем Twitter, которую, в свою очередь, обнаружил в 3DMark. По...
[Перевод] Представьте себе ваши данные перед тем, как вы их соберете Перевод подготовлен для студентов курса «Прикладная аналитика на R». Нам, как исследователям данных (data scientist), часто дают набор данных и просят использовать его для получения информации. Мы используем R для обработки, визуализации, моделирования, подготовки таблиц и...
[Из песочницы] Как в Microsoft SQL Server получать данные из Google Analytics при помощи R В этом материале я хочу подробно показать, как можно при помощи R в Microsoft SQL Server реализовать получение данных из Google Analytics (и вообще из любого API). Благодарности: Поскольку я ни разу не маркетолог мне требовалась помощь специалиста. Тестовый кабинет и доступ ...
Подробности о процессорах Intel Tiger Lake: больше кэша L3 и поддержка AVX-512 В своем Twitter пользователь известный под ником @InstLatX64 поделился первыми подробностями о процессорах Intel Tiger Lake. Так, объём кэша L3 будет увеличен на 50% с 8 Мбайт до 12 Мбайт. Это означает увеличение до 3 Мбайт кэш-памяти L3 на ядро. Подробнее об этом читайте на...
Сoncurrent collections за 10 минут Photo by Robert V. Ruggiero Тема не новая. Но задавая вопрос “что такое concurrent collections и когда их использовать?” на собеседовании или code review, я почти всегда получаю ответ, состоящий из одного предложения: “они полностью защищают нас от race conditions” (что не...
Установлен очередной рекорд разгона памяти В ADATA XPG Overclocking Lab (XOCL) поделились с общественностью новыми успехами. Модуль SPECTRIX D60G RGB DDR4 удалось разогнать до внушительных 5634 МГц (предыдущий рекорд — 5608 МГц). Для этого достижения энтузиастам потребовалась материнская плата MSI MPG Z390I GAMIN...
Раскрыт финальный дизайн Huawei P30 и Huawei P30 Pro Роланд Квандт (Roland Quandt), редактор известного регулярными утечками немецкого ресурса WinFuture, поделился c общественностью рендерами готовящихся к выпуску смартфонов Huawei P30 и Huawei P30 Pro, пока не представленных производителем официально.
[Перевод] Пишем кастомный трансформер AST на TypeScript Команда TestMace снова с вами. На этот раз мы публикуем перевод статьи о преобразовании кода TypeScript, используя возможности компилятора. Приятного чтения! Введение Это мой первый пост, и в нём мне бы хотелось показать решение одной задачи с помощью API компилятора TypeScr...
[Перевод] LLVM с точки зрения Go Разработка компилятора — очень тяжёлая задача. Но, к счастью, с развитием проектов наподобие LLVM, решение этой задачи значительно упрощается, что позволяет даже программисту-одиночке создать новый язык, близкий по производительности к C. Работа с LLVM осложняется тем, что э...
DockerHub взломан Несколько часов назад некоторым пользователям DockerHub разослали письма следующего содержания: «В четверг, 25 апреля 2019 года, мы обнаружили несанкционированный доступ к одной из баз данных DockerHub, в которой хранится часть нефинансовых данных пользователей. После обн...
Просто еще одна Qt обертка для gRPC и protobuf Не так давно я озадачился тем, что нет достаточно удобных и простых враппера и генератора для protobuf и gRPC, основанных и полностью совместимых с Qt. Натыкался на статьи, в т.ч. здесь, об обертках, но их использование мне показалось куда менее практичным, чем даже сущест...
[Из песочницы] Структура Data Science-проекта с высоты птичьего полета Как узнать наверняка, что внутри у колобка? Может, ты его проглотишь, а внутри него река? © Таня Задорожная Что такое Data Science сегодня, кажется, знают уже не только дети, но и домашние животные. Спроси любого котика, и он скажет: статистика, Python, R, BigData, маш...
Разработка IoT-шлюза на базе Raspberry CM3+ Рисунок 1 — Плата устройства Большой опыт работы в сфере промышленной автоматизации и АСУТП, казалось бы, должен способствовать тому, что со временем уже много всего видел и много всего знаешь. Но не тут-то было. Оказывается, иногда могут возникать задачи и проекты, которы...
[Из песочницы] JavaScript: Создание простого MEVN-приложения О чем статья Цель этой статьи — показать, как можно создать базовое MEVN-приложение. Акроним MEVN означает — MongoDB + Express.js + Vue.js + Node.js. В качестве примера будет написано одностраничное приложение, которое содержит форму, состоящую из нескольких текстовых полей....
Программы для просмотра футбола онлайн в интернете. Для прямых трансляций создано много программ, которые отлично работают как на стационарном компьютере, так и на мобильном устройстве. Чтобы смотреть футбол онлайн, необходимо найти поток и затем использовать его в программах потокового вещания. Часто люди используют слова "с...
Топ 5 книг, которые нужно прочитать художнику Чтобы попасть в игровую индустрию, мало уметь хорошо делать своё дело. Для ребят из Banzai.Games учеба не заканчивается никогда. А все потому, что голод до новых знаний — штука посильнее творческих амбиций. Сегодня мы поделимся с вами самым ценным (после своих игр, конечн...
[Перевод] Втиснуть Бейсик в 768 байт Тем, кому посчастливилось написать свою первую программу на Бейсике в конце восьмидесятых, объём интерпретатора в 16 килобайт кажется вполне естественным. Так было не всегда, известны интерпретаторы объёмом в 8 и 4 килобайта, конечно, с более скромным набором функций. Но в...