Социальные сети Рунета
Воскресенье, 17 февраля 2019
30 октября 2018   00:50

[Из песочницы] Подход к реализации RBAC в ReactJS

Вступление Привет, дорогой читатель! Некоторое время (около года) назад столкнулся с необходимостью условной отрисовки компонентов в ReactJS в зависимости от текущих прав пользователя. Первым делом начал искать готовые решения и «лучшие практики». Статья "Role based authori...

Подробности на сайте: habr.com

[Из песочницы] Parse & Android: рекомендации начинающим разработчикам Аннотация В данной статье я бы хотел поделиться общими впечатлениями от использования BaaS – решения под названием Parse для разработки бэкэнда Android-приложения, рассказать о всех «подводных камнях», с которыми мне пришлось столкнуться в период разработки. Впервые эту плат...

Реализация SSD кэширования в СХД QSAN XCubeSAN Технологии повышения производительности, основанные на использовании SSD и широко применяемые в СХД, уже давно изобретены. Прежде всего – это применение SSD в качестве пространства хранения, что на 100% эффективно, но дорого. Поэтому в ход идут технологии тиринга и кэширован...

[Из песочницы] Введение в WSGI-серверы: Часть первая Данная статья является переводом статьи Кевина Голдберга «An Introduction to Python WSGI Servers: Part 1» blog.appdynamics.com/engineering/an-introduction-to-python-wsgi-servers-part-1 с небольшими дополнениями от переводчика Краткая история серверов WSGI Python WSGI-серв...

Как организовать общее состояние в react-приложениях без использования библиотек (и зачем нужен mobx) Cразу небольшой спойлер — организация состояния в mobx ничем не отличается от организации общего состояния без использования mobx на чистом реакте. Ответ на закономерный вопрос зачем тогда собственно этот mobx нужен вы найдете в конце статьи а пока статья будет посвящена воп...

Kivy. Xamarin. React Native. Три фреймворка — один эксперимент (часть 2) Это вторая статья из цикла, где мы проводим сравнение Kivy, Xamarin.Forms и React Native. В ней я постараюсь написать такой же планировщик задач, но с использованием Xamarin.Forms. Посмотрю, как у меня это получится, и с чем мне придется столкнуться. Повторять ТЗ я не буд...

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

[Из песочницы] Использование GtkApplication. Особенности отрисовки librsvg Аннотация статьи. Использование GtkApplication. Каркас приложения. Makefile. Отрисовка библиотекой librsvg. Экспорт изображения в GtkImage и его масшабирование. Масштабирование SVG самописными функциями. Получение полного пути в приложениях. Тесты быстродействия GtkDrawing...

Классификация больших объемов данных на Apache Spark с использованием произвольных моделей машинного обучения Часть 2: Решение И снова здравствуйте! Сегодня я продолжу свой рассказ о том, как мы классифицируем большие объёмы данных на Apache Spark, используя произвольные модели машинного обучения. В первой части статьи мы рассмотрели саму постановку задачи, а также основные проблемы...

[recovery mode] В 2018 мы наконец стали воспринимать всерьез время, проведенное за смартфоном Представляю вашему вниманию перевод статьи Кэтрин Шу (Catherine Shu) опубликованной на TechCrunch. В начале этого года я зашла на Amazon со своего айфона чтобы посмотреть что нового там появилось, и увидела обложку книги «Как Расстаться С Вашим Телефоном» от Кэтрин Прайс. ...

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

[Перевод] Основы внедрения зависимостей В этой статье я расскажу об основах внедрения зависимостей (англ. Dependency Injection, DI) простым языком, а также расскажу о причинах использования этого подхода. Эта статья предназначена для тех, кто не знает, что такое внедрение зависимостей, или сомневается в необходим...

PVS-Studio ROI Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Мы решили оформить ответ в виде статьи и привести таблицы, которые покажут, насколько анализатор может быть полезен. Мы не можем в статье доказа...

Коротко о работе с RabbitMQ из Python Так повелось, что в процессе работы в МегаФоне, приходится сталкиваться с однотипными задачами при работе с RabbitMQ. Закономерно возникает вопрос: «Как упростить и автоматизировать выполнение таких задач?» Первое решение, которое приходит в голову, использовать интерфейс ...

Конечные React Компоненты Чем мне нравится экосистема React, так это тем, что за многими решениями сидит ИДЕЯ. Различные авторы пишут различные статьи в поддержку существующего порядка и обьясняют почему все "правильно", так что всем понятно — партия держит правильный курс. Через некоторые время ИДЕЯ...

Настройка Jira под ваши нужды. Cовершенный флоу и идеальный тикет Если вы работаете в IT-компании, то, скорее всего, ваши процессы построены вокруг известного продукта Atlassian — Jira. На рынке есть множество таск-трекеров для решения тех же задач, в том числе open-source-решения (Trac, Redmine, Bugzilla), но, пожалуй, именно Jira имеет ...

[Перевод] UDB. Что же это такое? В комментариях к моей статье про управление RGB светодиодами средствами блока UDB микроконтроллеров PSoC фирмы Cypress было высказано мнение, что неплохо бы в начале статьи кратко рассказать, что такое вообще UDB. Как я уже отметил в статье, про UDB кратко не написать, но ...

Используем Node.js для работы с очень, очень большими файлами и наборами raw-данных Этот пост — перевод оригинальной статьи Пейдж Нидринхауз, full-stack software engineer. Ее основная специальность — JavaScript, но Пейдж изучает и другие языки и фреймворки. А полученным опытом делится со своими читателями. К слову, статья будет интересна начинающим разра...

Портирование Quake3 В операционной системе Embox (разработчиком которой я являюсь) какое-то время назад появилась поддержка OpenGL, но толковой проверки работоспособности не было, только отрисовка сцен с несколькими графическими примитивами. Я никогда особо не интересовался геймдевом, хотя, са...

[Из песочницы] Guice всемогущий: assistedinject, multibindings, generics В последнее время чаще стал встречать команды, которые используют Guice в качестве DI фреймворка. Стал его бояться (слезать с любимого Spring!?), и, как это обычно в жизни и бывает, страхи мои материализовались — я попал на проект, на котором активно используется Guice… В и...

А еще у нас есть жираф Не так давно я перешел из команды Parallels в Rambler Group. До этого момента компания у меня ассоциировалась исключительно с историей первого российского поисковика, развлекательным порталом и почтовым сервисом моей жены. На самом деле все оказалось значительно масштабней...

InfoWatch Traffic Monitor. По лезвию багов и фич «Игорь, у него ДВА сердца!!!» Анна Попова, руководитель Блока DLP ГК Инфосекьюрити, продолжает делиться своими впечатлениями от использования разных DLP-систем. В прошлой статье она рассказала о плюсах и минусах решения КИБ SearchInform. Сегодня, как и было обещано, поговор...

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

[Перевод] Делаем проект по машинному обучению на Python. Часть 2 Перевод A Complete Machine Learning Walk-Through in Python: Part Two Собрать воедино все части проекта по машинному обучению бывает весьма непросто. В этой серии статей мы пройдём через все этапы реализации процесса машинного обучения с использованием реальных данных, и у...

Как запустить iOS-приложение через React Native Это перевод оригинальной статьи программистки, ведущей блог под псевдонимом Soujanya PS. Она профессионал своего дела и любит не только разрабатывать приложения и сервисы, но и писать об этом статьи. Вот ее обзор запуска iOS-приложения с использованием фреймворка React N...

[Перевод] Текстуры для 64k intro: как это делается сегодня Эта статья является второй частью нашей серии о создании H – Immersion. Первую часть можно прочитать здесь: Погружение в Immersion. При создании анимации всего лишь в 64 КБ сложно использовать готовые изображения. Мы не можем хранить их традиционным способом, потому что это...

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

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

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

[recovery mode] И еще раз про КИБ SearchInform: разбираемся с новинками Анна Попова, руководитель Блока DLP ГК Инфосекьюрити, продолжает делиться своими впечатлениями от использования разных DLP-систем. В этой статье пойдет речь о КИБ SearchInform. Читать дальше →

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

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

«Резиновый хозяин искать на Алибаба облако»: размещаем Elasticsearch на мощностях Alibaba Cloud Некоторое время назад я рассказывал о нашем опыте решения сложных задач с помощью Elasticsearch. Это была история про колбасу, где мы разработали поиск по базе минимум из 50 000 документов, который позволяет искать ингредиенты в составе продуктов и автоматически формироват...

Управляем стоимостью проекта с Earned Value Management Как измерять и контролировать эффективность исполнения планов проектов — такие вопросы являются постоянной головной болью их руководителей. Подходов к решению этих задач много. В данной статье мы рассмотрим основные элементы техники по управлению освоенным объемом (Earned Va...

[Из песочницы] Основы реактивного программирования с использованием RxJS Часть 1. Реактивность и потоки Данная серия статей посвящена реактивности и ее применению в JS с использованием такой замечательной библиотеки как RxJS. Для кого эта статья: в основном, здесь я буду объяснять основы, поэтому в первую очередь статья рассчитана на новичков в ...

Язык программирования Zig Первым комментарием к замечательной статье Субъективное видение идеального языка программирования оказалась ссылка на язык программирования Zig. Естественно, стало интересно, что же это такое за язык, который претендует на шину C++, D и Rust. Посмотрел — язык показался симп...

[Перевод] Реализация BottomAppBar. Часть 2: Меню и элемент управления Navigation Drawer В предыдущей статье мы обсудили основы BottomAppBar, который не так давно представили на Google I/O 2018 как часть Material компонентов для Android. Мы рассмотрели способ реализации BottomAppBar и изучили его атрибуты. Также BottomAppBar может отображать элементы меню и эле...

Errorx — библиотека для работы с ошибками в Go Что такое Errorx и чем он полезен Errorx — это библиотека для работы с ошибками в Go. Она предоставляет инструменты для решения проблем, связанных с механизмом ошибок в больших проектах, и единый синтаксис для работы с ними. Большинство серверных компонентов Joom пишутся на...

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

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

[Перевод] Собираем собственный аудио усилитель профессионального уровня не (очень) дорого Получаем потрясающий стереозвук на основе платы 3e Audio Д-класса Перевод статьи с сайта IEEE Spectrum, автор – Гленн Зорпет Несколько лет назад я решил узнать, насколько дёшево можно сделать самому усилитель Д-класса аудиофильского качества. Тогда у меня получилось $523,...

[Перевод] Создание GIF-анимации с помощью OpenCV Из этого туториала вы узнаете, как создавать анимированные GIF-файлы с помощью OpenCV, Python и ImageMagick. Затем объедините эти методы, чтобы создать генератор мемов с OpenCV! Нам всем нужно время от времени посмеяться. И, возможно, лучший способ найти лулзы — это мемы....

[Из песочницы] Как создать чат-бота для ВКонтакте, используя Python, Django и webhook Зачем ещё одна статья про создание чат-бота? Возможно я плохо искал, но я не смог найти подробного руководства по созданию бота на python с применением фреймворка Django и подхода webhook, работающего на хостинге от российской компании. В большинстве материалов говориться о ...

Строим храмы — в коде и в жизни. Мой опыт разработки своего второго Android-приложения Приветствую читателей хабра. Вашему вниманию предлагается перевод статьи «Building Cathedrals — In Coding, And In Life. My experience with publishing my second app at 19» Kunal Shandilya. Начало роста приносит человеку новые трудности. Принимая эти трудности, человек обес...

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

Использование камеры Fish eye на Raspberry Pi 3 с ROS — часть 2 Добрый день уважаемые читатели Хабра! Это вторая часть рассказа об использовании fish eye камеры на Raspberry Pi 3. Первую часть можно найти здесь. В этой статье я расскажу о калибровке fish eye камеры и применении камеры в детекции объектов с помощью пакета find_object_2d. ...

[Из песочницы] Android navigation component. Простые вещи, которые приходится делать самому Всем привет! Хочу рассказать об особенностях в работе Navigation Architecture Component, из-за которых у меня сложилось неоднозначное впечатление о библиотеке. Эта статья не пошаговая инструкция, в ней опущены детали реализации, чтобы сосредоточить внимание на ключевых мом...

[Перевод] Эмуляция литералов свойств с Java 8 Method Reference От переводчика: к переводу этой статьи меня подтолкнула обида от отсутствия оператора nameOf в языке Java. Для нетерпеливых — в конце статьи есть готовая реализация в исходниках и бинарниках. Одна из вещей, которой часто не хватает разработчикам библиотек в Java, — литерал...

[Из песочницы] Реализация алгоритма k-means (k-средних) на примере работы с пикселями Всем привет! Недавно нужно было написать код для реализации сегментации изображения с помощью метода k – средних (англ. k-means). Ну, первым делом Google в помощь. Нашел много информации, как и с математической точки зрения (всякие там сложные математические каракули, хрен п...

[Перевод] Drag и Swipe в RecyclerView. Часть 1: ItemTouchHelper Существует множество обучающих материалов, библиотек и примеров реализации drag & drop и swipe-to-dismiss в Android c использованием RecyclerView. В большинстве из них по-прежнему используются устаревший View.OnDragListener и подход SwipeToDismiss, разработанный Романом...

Анализ подходов к связыванию модулей в Node.js Многие разработчики Node.js для связывания модулей используют исключительно создание жёсткой зависимости с помощью require(), однако существуют и другие подходы, со своими плюсами и минусами. О них я в этой статье и расскажу. Будут рассмотрены четыре подхода: Жёсткие завис...

[Перевод] Докеризация веб-служб на R и Python Привет, Хабр! Контейнеризация — это подход к разработке программного обеспечения, при котором приложение или служба, их зависимости и конфигурация (абстрактные файлы манифеста развертывания) упаковываются вместе в образ контейнера. В этой статье рассмотрим создание docker-об...

[Перевод] Строим систему реактивных компонентов с помощью Kotlin Всем привет! Меня зовут Анатолий Варивончик, я Android-разработчик Badoo. Сегодня я поделюсь с вами переводом второй части статьи моего коллеги Zsolt Kocsi о реализации MVI, которую мы ежедневно используем в процессе разработки. Первая часть здесь. Чего мы хотим и как мы...

[Перевод] 11 библиотек (наборов компонентов) для React Native, о которых стоит знать в 2018-м В начале года мы опубликовали несколько материалов о популярных наборах компонентов для React, Angular и Vue. Сегодня мы представляем вашему вниманию перевод статьи из той же серии, посвящённой React Native. Учитывая непрекращающийся рост популярности React, и то, что мобиль...

Динамическое программирование или «Разделяй и Властвуй» В этой статье рассматриваются сходства и различия двух подходов к решению алгоритмических задач: динамического программирования (dynamic programing) и принципа «разделяй и властвуй» (divide and conquer). Сравнение будем производить на примере, соответственно, двух алгоритмов...

Кластер kubernetes HA с containerd. Или есть ли жизнь без docker? Развертываение kubernetes HA с containerd Добрый день уважаемые читатели Хабра! 24.05.2018 г. в официальном блоге Kubernetes была опубликована статья под названием Kubernetes Containerd Integration Goes GA, в которой говорится, что интеграция containerd с Kubernetes готова ...

GraalVM: смешались в кучу C и Scala Не знаю, как на вас, а на меня в последнее время производят сильное впечатление статьи про новые Java-технологии — Graal, Truffle и все-все-все. Выглядит так, как будто раньше ты придумал язык, написал интерпретатор, порадовался какой язык хороший и погрустил, какой медленны...

QSAN XCubeNAS — NAS для корпоративного использования На текущий момент предложения на рынке корпоративных NAS разделились на два полярных лагеря. В одном лагере находятся дорогие и функциональные системы типа Netapp FAS или EMC Unity. В другом – выходящие за рамки сегмента домашних устройств решения вроде QNAP или Synology, ко...

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

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

Как адаптировать UX/UI под permissions Во многих проектах существует процессы аутентификации (в той или иной степени). Написано много “бест практис” во всех известных технологиях и т.д. и т.п. Но вот пользователь сделал логин и? Ведь он далеко не всё может сделать. Как определить что он может видеть, а что нет. ...

Практика тестирования бэкенда на Java + Rest-Assured В предыдущей статье я поделился своим опытом автоматизации на Robot Framework. Теперь же речь пойдет о несколько другом подходе к тестированию API для проекта на Kotlin. Воспользовавшись свободой выбора стека технологий и опираясь на желание попробовать «в бою» что-то новое...

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

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

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

Android LiveData на Kotlin с использованием Retrofit и coroutines Статья рассказывает об использовании Android Components ViewModel, LifeCycle и LiveData. Эти компоненты позволяют не заботиться о жизненном цикле Activity. Так же рассмотрен пример применения современного Coroutines в связке с репозитарием на Retrofit fun main(args: Array&...

Компонентная архитектура UI в iOS-приложении Привет, Хабр! Меня зовут Валера, и уже два года я разрабатываю iOS-приложение в составе команды Badoo. Один из наших приоритетов — легкосопровождаемый код. Из-за большого количества новых фич, еженедельно попадающих к нам в руки, нам нужно в первую очередь думать об архит...

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

Java и Project Reactor. Эпизод 2 Привет! Удивительно, но первая часть статьи даже кому-то понравилась. Отдельное спасибо за ваши отзывы и комментарии. У меня для вас плохая хорошая новость: нам ещё есть о чём поговорить! А если точнее, то о некоторых деталях работы Reactor. Читать дальше →

Использование камеры Fish eye на Raspberry Pi 3 с ROS — часть 1 Добрый день уважаемые читатели Хабра. Несколько лет назад я писал об использовании камеры Raspberry Pi Camera Board на Raspberry Pi в связке с ROS. В этой и следующей статьях я бы хотел рассказать об использовании широкоугольной камеры типа fish eye на Raspberry Pi 3 с устан...

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

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

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

[Перевод] Сетевой код Age of Empires: 1500 лучников на модем 28,8 кбит/с Примечание переводчика: этой статье уже 17 лет, и интересна она только с исторической точки зрения. Любопытно узнать, как удавалось разработчикам добиться плавной сетевой игры в эпоху 28,8k-модемов и первых «Пентиумов». В этой статье рассказывается об архитектуре и реализа...

Подключение bootstrap в Next.js Категорически приветствую. Столкнулся я тут с необходимостью подключить Bootsrtap в Next.js. Беглый гуглёж дал несколько тем на stackoverflow, парочку монструозных (всё в одном и все пакеты устарели ) шаблонов на гитхабе, и немножечко оффдоков. На деле же всё оказалось дов...

Повторное использование приватных Android библиотек с помощью Sonatype Nexus Repository OSS Думаю, что у многих возникала необходимость повторно использовать отдельные модули своего Android приложения в другом проекте. Для решения этой задачи есть простые пути, например, публично разместить Android библиотеку с помощью JitPack. Решение отличное, но если нужно разме...

[Из песочницы] Внедрение зависимостей в сервис Apache Ignite.NET Разрабатывая различные приложения, использующие популярную библиотеку Castle Windsor для внедрения зависимостей и Apache Ignite.NET в качестве «ключика», который открывает дверь в «облачные» вычисления, я столкнулся с небольшим неудобством: у меня не было никакой возможности...

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

[Из песочницы] Кратко о redux-saga каналах Добрый день, дорогие друзья. В данной статье хотел бы максимально просто и кратко описать механизм redux-saga каналов, на примерах приближенных к реальным кейсам, надеюсь у меня это вышло. Итак, начнем. Читать дальше →

[Из песочницы] Реализация PPPOS на stm32f4-discovery Однажды передо мной возникла задача обеспечить выход в сеть Интернет на STM32 имея для этого только COM порт. Для решения этой задачи мне понадобился PPP, или, еcли быть точным, PPPoS (англ. Point-to-Point Protocol over Serial — один из способов реализации PPP, используется ...

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

У Intel снова проблемы с 10-нанометровой продукцией В начале месяца компания Intel пообещала, что мобильные 10-нанометровые процессоры Ice Lake в составе готовых решений появятся к концу текущего года. Intel не указала названий моделей или их параметров, но рассказала много интересного и полезного об особенностях грядущи...

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

Опыт настройки и использования WSL (подсистемы Linux в Windows 10) К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически...

[Из песочницы] BEM'a не должно существовать Здравствуйте. BEM'а не должно существовать. Есть огромное количество причин не использовать эту методологию, но из-за её простоты использования и непонимания работы CSS и HTML, методология широко распространилась среди фронтендеров всего мира, в большинстве случаев среди р...

Kivy. Xamarin. React Native. Три фреймворка — один эксперемент Приветствую всех! Как только дым от жаркой дискуссии в комментариях к моей статье Kivy — фреймворк для кроссплатформенной разработки №1 осел, и среди прочих пробился достойный внимания комментарий, мы (Mirimon, SeOd), подумали, что было бы интересно и нам и читателям самост...

[Из песочницы] Что значат метрики для Agile команд? Проходя собеседование на позицию Product Owner я понял, что у меня серьезный пробел по бизнес метрикам в Agile проекте, т.к. работаю в госструктуре. В русском сегменте информация достаточно скудная. В английском сегменте очень понравилась статья Ashwinee Kalkura. Поэтому реш...

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

Пишем торговых роботов с помощью графического фреймворка StockSharp. Часть 2 Мы продолжаем говорить о создании торговых роботов с помощью платформы StockSharp. В первом материале речь шла о создании проекта и отрисовке основных элементов торговой системы. В заключительном материале цикла займемся непосредственной реализацией торговой стратегии. Чит...

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

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

[recovery mode] Пиратская копия платного сервиса в 39 строчек Python кода Во время выполнения заказа по разработке telegram бота у меня возникла необходимость получения скриншота веб-страницы с его доставкой пользователю. Зачем задумываться над решением проблемы, когда его можно найти? Как оказалось, чтобы не платить! Подробнее пот катом. Читать ...

Так ли страшен Rust, как его малюют Некоторое время назад я начал понимать необходимость разнообразить мой опыт программирования исключительно на C#. После некоторого изучения различных вариантов, таких как Haskell, Scala, Rust и некоторых других, выбор пал на последний. Со временем я начал обращать внимание, ...

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

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

Поваренная книга разработчика: DDD-рецепты (3-я часть, Архитектура приложения) Введение В рамках предыдущих статей мы выделили область применения подхода и рассмотрели основные методологические принципы Domain Driven Design. В данной статье я хотел бы обозначить основные современные подходы к построению архитектуры корпоративных систем: Supple, Screami...

Глубокое обучение с использованием R и mxnet. Часть 1. Основы работы Привет, Хабр! Эта статья является первой частью руководства по приготовления нейронных сетей с использованием библиотеки mxnet на языке R. Источником вдохновения послужила онлайн-книга Deep Learning — The Straight Dope, объема которой достаточно для осознанного использова...

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

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

Тестирование приложения на Go как черный ящик при помощи Rspec Хорошо написанные тесты значительно уменьшают риск “поломать” приложение при добавлении новой фитчи или исправлении ошибки. В сложных системах, состоящих из нескольких взаимосвязанных компонентов, наиболее сложным является тестирование их точек соприкосновения. В этой стат...

Создание игры «Like Coins» на Godot Engine. Часть 2 Я надеюсь вы заждались второй части статьи затрагивающей аспекты разработки игр при помощи "Godot Engine", на примере игры "Like Coins"? На повестке дня приготовлено много всего "вкусного" и "полезного". Сразу оговорюсь, что в этой статье мы завершим ранее начатую игру, нача...

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

Как я начал любить Vue Вступление Данный пост — это логическое продолжение моего поста/статьи — Как я перестал любить Angular / How I stopped loving Angular. Рекомендуется к ознакомлению перед прочтением. Вот уже около года во всех проектах, в которых я участвую, я использую Vue вместо Angular. В...

Как мы мигрировали базу данных из Redis и Riak KV в PostgreSQL. Часть 1: процесс Это первая часть статьи, в которой я расскажу о том, как мы построили процесс работы над большим проектом по миграции БД: про безопасные эксперименты, командное планирование и кросс-командное взаимодействие. В следующих статьях подробней расскажу про технические проблемы, ко...

Как мы делали БелАЗ. Часть 3 – Пусконаладка на разрезе Это третья статья из цикла о самосвале (первая, вторая). Теперь мы едем на карьер, устанавливать электрооборудование на машину и выезжать в первый рейс! Но, конечно же, так просто, с наскоку, ничего не ездит, и я расскажу про множество проблем с которыми мы столкнулись во в...

[Из песочницы] Разбираем протокол чайника Redmond G200S и подключаем его к HomeAssistant Вступление На Гиктаймс уже была статья, посвященная разбору протокола чайника Redmond SkyKettle. Однако там речь шла о модели RK-M171S, здесь же речь пойдет о более функциональном G200S. В данной модели изменился протокол взаимодействия, из за чего подход автора предыдущей с...

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

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

ИТОГ 3-х месяцев: Альтернатива платному отключению рекламы в бесплатном приложении Android Здравствуй, Дорогой читатель ХабраХабра! В данной мини-статье я хочу рассказать/показать итог моей альтернативы платному отключению рекламы в бесплатном приложении Android. Всем, кому интересно добро пожаловать под кат! Читать дальше →

[recovery mode] DevBoy — как я создал проект устройства с открытым исходным кодом и запустил проект на Kickstarter Привет друзья! Меня зовут Николай, читателем Хабра являюсь давно, а вот с написанием статей как-то не сложилось. Пора исправлять эту ситуацию, тем более что как раз имеется повод — только что я запустил компанию на Kickstarter для реализации устройства с открытым исходным к...

Твой код решающий ДОМ.РФ проводит свой первый в Воронеже Хакатон – марафон программирования для решения инновационной задачи. За лучшее решение команда получит грант на обучение или развитие своего проекта в размере 300 000 рублей. Самым талантливым разработчикам по результатам Хакатона ДОМ.Р...

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

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

[Из песочницы] Heisenbug 2018 Moscow: взгляд из толпы Всем привет, меня зовут Таня и это моя первая статья на Хабре. В начале декабря проходила конференция Heisenbug 2018 в Москве. Это событие было уже освещено многими: раз, два, три. Я отметила для себя, что в основном были затронуты только положительные моменты, хотя были...

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

«Теория Большого взрыва» и практика применения Python Вступление В последнее время активно изучаю язык программирования Python. Особенно меня заинтересовало использование Python в распознавании и классификации лиц. В статье я попробую применить распознавание лиц для сериала «Теория Большого взрыва». Читать дальше →

[Перевод] Как Unsplash масштабируется силами небольшой команды Фото: Alex Smith | Unsplash Добрый день! Меня зовут Виктор Пряжников, я работаю в отделе Features компании Badoo. Основная задача нашего отдела — разработка функционала, который видят пользователи нашего сайта и приложений. Когда мне попалась на глаза статья сооснователя ...

Независимая приёмка ЦОД Всем привет! Меня зовут Кирилл Шадский, я руководитель отдела управления внешними ЦОД компании ДатаЛайн.   Эта статья посвящена наиболее важным аспектам проведения приёмо-сдаточных испытаний, а также возможным проблемам и подводным камням, которые могут попортить немало не...

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

Бэкап для Linux, или как создать снапшот Всем привет! Я работаю в Veeam над проектом Veeam Agent for Linux. С помощью этого продукта можно бэкапить машину с ОС Linux. «Agent» в названии означает, что программа позволяет бэкапить физические машины. Виртуалки тоже бэкапит, но располагается при этом на гостевой ОС. В...

Где больше платят программистам. Сравниваем 22 страны Пару месяцев назад я постила сводную таблицу-сравнение под названием «Лучшая страна для программиста». В ней было 9 стран. Статья была горячо воспринята и в силу некоторых ошибок в ней, и в силу желания читателей получить сходные данные по другим странам. Я обещала доделать ...

[Из песочницы] Работа с формами в React.js, используя базовый инструментарий Введение За время работы на React.js мне часто приходилось сталкиваться с обработкой форм. Через мои руки прошли Redux-Form, React-Redux-Form, но ни одна из библиотек не удовлетворила меня в полной мере. Мне не нравилось, что состояние формы хранится в reducer, а каждое собы...

Проксируем файлы из AWS S3 средствами nginx Казалось бы, задача реализации фронтенда для AWS на nginx звучит как типовой кейс для StackOverflow — ведь проблем с проксированием файлов из S3 быть не может? На деле выяснилось, что готовое решение не так-то просто найти, и данная статья должна исправить эту ситуацию. З...

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

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

[Перевод] Станут ли воксели новой прорывной технологией? Мы пообщались с потрясающими разработчиками Atomontage, пытаясь разобраться, смогут ли воксели вернуться и победить пиксели. Воксельная разработка Бранислав: в 2000-2002 годах я участвовал в соревнованиях европейской демосцены. Я написал несколько 256-байтных демо (также н...

Centrifugo v2 — будущее сервера real-time сообщений и библиотека для Go Возможно, некоторые из читателей уже слышали про Centrifugo раньше. В данной статье речь пойдет о разработке второй версии сервера и новой real-time библиотеке для языка Go, лежащей в его основе. Меня зовут Александр Емелин. Летом прошлого года я присоединился к команде Авит...

Краудтестинг, или Где взять опыт для первой работы в тестировании Изображение: источник Привет, Хабр! Меня зовут Евгений Кузнецов. Я работаю в Badoo, в отделе QA. Почти пять лет назад я начал интересоваться тестированием: читал книги, искал информацию в интернете. На одном из форумов наткнулся на тему про подработку, где один из участн...

Как мы замахнулись на мобильный fast paced шутер: технологии и подходы Год назад у нас в компании был один проект — мобильный шутер War Robots с относительно медленными, но красочными и напряженными боями. Игра продолжает развиваться, у нее десятки миллионов установок и игроков по всему миру, постоянно выходят апдейты. В какой-то момент мы за...

[Из песочницы] Кто на новенького? Мой первый опыт в разработке игры – от идеи до публикации Всем привет! Меня зовут Алексей, я из Санкт-Петербурга. В этой статье расскажу про свой первый опыт разработки мобильной игры под Android на Unity3d. Если Вам близка идея создания собственной игры или приложения, но Вы находитесь в раздумьях или не уверены в своих силах —...

Почему так много агрессии у некоторых "отечественных" производителей 3D техники и расходников? Добрый день. На эту небольшую статью натолкнуло несколько последних историй на сайте, в которых производители вместо признания своих ошибок или недочётов начинали себя вести, мягко говоря, хамовато и агрессивно. Это странно. Мы все здесь потенциальные потребители ваших товар...

[Перевод] Секреты JavaScript-кухни: специи Взгляните на следующие фрагменты кода, решающие одну и ту же задачу, и подумайте о том, какой из них вам больше нравится. Вот первый: Вот второй: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] .filter(int => isEven(int)) .filter(int => isBiggerThan(3, int)) .map(int => int ...

Amazon уступила Microsoft второе вместо в рейтинге самых дорогих компаний Капитализация компании Amazon в сентябре текущего года превысила отметку в 1 трлн долларов, что дало ей право занять второе место рейтинга самых дорогих компаний мира – сразу после Apple. Но прошло всего два месяца, и Amazon уже больше не вторая, а третья компания...

Как организовать ваши зависимости во Vue-приложении Все, кто знаком с Vue, знают, что у Vue-приложения одна точка входа — файл main.js. Там, помимо создания экземпляра Vue, происходит импорт и своего рода Dependency Injection всех ваших глобальных зависимостей (директив, компонентов, плагинов). Чем больше проект, тем больше с...

OpenSceneGraph: Обработка событий Введение Одной из особенностей языка C++, за которую его часто критикуют — отсутствие в стандарте механизма обработки событий. Между тем данных механизм это один из основных путей взаимодействия одних программных компонентов с другими программными компонентами и аппаратным ...

Поваренная книга Ruby-разработчика: Domain Driven Design рецепты ( 2-я часть, структура и взаимодействие ) Введение В первой статье мы выделили область применения обозначенных практик, для каких проектов их можно применять, а для каких не следует. В данной статье я хотел бы сделать краткий обзор основных принципов DDD, а также поделиться личным опытом их применения. Более подро...

[Перевод] Визуализация данных при помощи Angular и D3 D3.js — это JavaScript библотека для манипулирования документами на основе входных данных. Angular — фреймворк, который может похвастаться высокой производительностью привязки данных. Ниже я рассмотрю один хороший подход по использованию всей этой мощи. От симуляций D3 до S...

[Перевод] Распространенные ошибки, которые допускают разработчики в UX Я занимаю должность консультанта по UX для одного из партнеров компании Mendix, и мне часто приходится работать с небольшими самоорганизованными командами, которые создают отличные приложения для решения внутренних проблем. Моя задача — совершенствовать UX в этих приложениях...

Яндекс присоединился к защите Linux и IT-индустрии от патентного троллинга Мы верим, что жизни миллионов пользователей меняются к лучшему только тогда, когда идея превращается в готовый продукт, а не используется для шантажа и ограничений. Поэтому Яндекс вступил в альянсы Open Invention Network и LOT Network, объединяющие тысячи разработчиков для с...

WebSockets в Angular. Часть 2. Продуктовые решения В предыдущей статье речь шла об общем решении для вебсокетов в Angular, где мы на основе WebSocketSubject построили шину с реконнектом и сервисом для использования в компонентах. Подобная реализация подходит для большинства простых случаев, например, приема и отправки сооб...

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

Тайна ритуального “прогрева" или почему “тёплые” наушники звучат “лучше” Пару лет назад мы уже касались темы т.н. прогрева наушников. Тогда мы выяснили, что производители наушников считают «прогрев» ересью не имеют спецификаций по поводу «прогрева» и заявляют о том, что он ничего не меняет. В частности, представители Shure и Sennheiser отметили,...

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

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

[Из песочницы] Сравнение C# и JavaScript. Основы Мой более-менее серьезный путь в программировании начался с написания программ на языке C#, иногда я пробовал писать на JavaScript, и то и дело впадал в ступор в таких ситуациях, когда неверно указывал имя переменной и узнавал об этом спустя много много лет час отладки, так...

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

На поводу у трендов, или движение навстречу RxJava и LiveData На дворе 2018 год. Всё чаще встречаются слова RxJava и LiveData. Но если вдруг так случилось, что в вашем приложении до сих пор балом правят старомодные решения вроде библиотеки android-priority-jobqueue или AsyncTask (да, бывает и так), то эта статья специально для вас. ...

[Из песочницы] Python Selenium и Krisha.kz. Первые в Big Data Предисловие Изучать что-то новое всегда интересно, это захватывает тебя полностью, по крайней мере у меня так. Вот и в этот раз, увлёкшись изучением программирования на языке Python, задался вопросом, где его можно применить, кроме как при создании фотосепаратора (статья про...

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

[recovery mode] Dracula Theme — универсальная тема оформления практически для всего Введение Всем привет, как-то давно мне иметь дело с большим количеством разных текстовых редакторов и IDE, на различных операционных системах. Тогда мне очень сильно начал раздражать такой момент, что на каждой их них стоит своя тема оформления кода, плюс ещё несколько друг...

RPC — повод попробовать новое в C++ 14 / 17 Несколько лет назад разработчики на C++ получили долгожданный стандарт C++ 11, принесший много нового. И у меня был интерес быстрее перейти к его использованию в повседневно решаемых задачах. Перейти к C++ 14 и 17 такого не было. Казалось, нет того набора фич, который бы заи...

Европарламент одобрил законопроект об авторских правах в Интернете Крупные интернет-компании рассматривают законопроект как крайне неудобный. Комитет Европарламента по законодательству одобрил законопроект, который обязывает делиться с владельцами авторских прав своими доходами и нести ответственность за нарушения авторских прав в Интерн...

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

Oracle Certified Associate и Oracle Certified Professional. Общее впечатление и нюансы подготовки Привет, Хабр! Меня зовут Маша, я работаю в КРОК. Сегодня я хочу рассказать вам о получении сертификатов Oracle Certified Associate и Oracle Certified Professional. Вообще, в спорах о полезности профессиональной сертификации (да и ее необходимости в принципе) среди разраб...

Помощь зала Как обычно начну издалека. Из чудовищного, невообразимого далека. Как я уже ранее говорил, я литератор. Пишу рассказы, повести, романы. Собираюсь написать в соавторстве с Вами роман #ДАШАНАЛУНЕ. Но речь сейчас пойдет не о нем. #ДАШАНАЛУНЕ – роман более серьёзный, реалистич...

Способы применения и искажения меткости в играх. Наглядные графики для сравнения Вычислять факт попадания в играх на основе полученной меткости можно по разному: — сравнивая с одним псевдослучайным числом (которое тоже можно получать по разному [1]); — сравнивая с наибольшим или наименьшим из двух псевдослучайных чисел; — сравнивая среднее из двух и б...

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

Нужна ли вам «умная» кружка или достаточно обычной, или как быстро остывает кофе Гаджеты входят в нашу жизнь прочно и неотвратимо. Некоторые сразу находят свою нишу, некоторым требуется на это время. А есть и такие, которые нам пытаются навязать хитрые маркетологи. Кофе является одним из столпов IT. Неудивительно, что маркетинг вышел за рамки сортов ко...

Личное знакомство с PET-G (часть 1) Доброго всем!Спасибо многим за изложения собственного опыта в статьях\обзорах. многое пригодилось в работе с принтером, многое удивляло (он художник! он так видит!) своим противоречием. Но не будем кидаться камнями.Хотелось описать свои впечатления от PET-G пластика. Букафф ...

Первый шаг к складному смартфону Samsung: производство OLED-дисплеев скоро стартует Корейское издание ETNews сообщило, что компания Samsung готова к старту производства гибких OLED-дисплеев. Компонент найдет свое применение в инновационном складном смартфоне и первая партия панелей в количестве 100 тысяч единиц будет готова к концу текущего года. Интересно,...

Классификация больших объемов данных на Apache Spark с использованием произвольных моделей машинного обучения Часть 1: Постановка задачи Привет, Хабр! Я архитектор решений в компании CleverData. Сегодня я расскажу про то, как мы классифицируем большие объемы данных с использованием моделей, построенных с применением практически любой доступной библиотеки машинного обучения. В этой с...

[Из песочницы] Основные проблемы разработки современных интерфейсов Привет, Хабр! Представляю вашему вниманию перевод поста Дэна Абрамова «The Elements of UI Engineering» о современных проблемах и задачах, которые должны быть решены в хорошем интерфейсе. Автор разбирает фундаментальные проблемы при разработке интерфейсов, осмысление и решени...

[Перевод] Обзор нововведений Android Design Support Library v28 И снова здравствуйте. Приближаем к дате запуска наш новый курс «Разработчик Android», осталось всего ничего и осталось немного интересных материалов, которыми делимся со всеми, в том числе и потенциальными слушателями. Поехали. Недавно была анонсирована 28 версия Android ...

Идеала нет: как я искал язык программирования для себя От переводчика: этот пост — несколько сокращенный перевод оригинальной статьи Гала Шлезингера, опытного frontend-разработчика. Ему очень нравится программировать, а его хобби — изучение различных (и порою весьма неожиданных) языков программирования как для рабочих целей, ...

Создание бота для участия в Russian AI Cup 2018 CodeBall Сложилась традиция, что после соревнований по спортивному программированию победитель или просто игрок выкладывает на Хабре статью, чтобы рассказать как здорово было участвовать в соревновании и как вариант победить в нем. Из его статьи конечно же многое можно почерпнуть дл...

[Перевод] Оптимизация рендеринга сцены из диснеевского мультфильма «Моана». Части 4 и 5 У меня есть ветка pbrt, которую я использую для проверки новых идей, реализации интересных мыслей из научных статей и в целом для исследования всего того, что в результате обычно оказывается в новой редакции книги Physically Based Rendering. В отличие от pbrt-v3, который мы...

Реализация Spring Framework API с нуля. Пошаговое руководство для начинающих. Часть 1 Spring Framework является одним из самых сложных фремворков для понимания и изучения. Большинство разработчиков изучают его медленно, через практические задачи и гугл. Этот подход не эффективен, так как не даёт полной картины и при этом требует больших затрат. Я хотел бы ...

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

ASP.NET Razor: решение некоторых проблем с архитектурой для модели представления Введение Здравствуйте, коллеги! Сегодня хочу поделиться с вами своим опытом разработки архитектуры View Model в рамках разработки веб-приложений на платформе ASP.NET, используя шаблонизатор Razor. Описываемые в данной статье технические реализации подходят для всех актуальн...

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

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

[Из песочницы] Конвертирование XLS файлов в Google Spreadsheet с использованием Google Apps Script Меня зовут Александр и я фрилансер, основная моя специализация — это Google Apps Script. Одному из заказчиков потребовалось программно конвертировать файлы Microsoft Excel в Google Spreadsheets. Я раньше с такой задачей не сталкивался, поэтому призвал на помощь Google. Перер...

[Перевод] RoadRunner: PHP не создан, чтобы умирать, или Golang спешит на помощь Привет, Хабр! Мы в Badoo активно работаем над производительностью PHP, поскольку у нас достаточно большая система на этом языке и вопрос производительности — это вопрос экономии денег. Более десяти лет назад мы создали для этого PHP-FPM, который сначала представлял собой н...

Akinator 6.6.3 Akinator the Genie — Программа, угадывающая задуманного Вами персонажа. Описание: Акинатор… джинн вернулся! Акинатор может читать ваши мысли и угадать загаданного вами персонажа, просто задав вам несколько вопросов. Задумайте настоящего или вымышленного персонажа и Ак...

Лучшие блокчейн-проекты. Август 2018 (голосование) В наши дни разнообразных ICO так же много, как и коррумпированных политиков, что усложняет поиск проектов, заслуживающих внимания. Однако, ICO по-прежнему не утратили своей привлекательности, поэтому есть смысл внимательно изучать их бесконечный список в поисках «бриллианта»...

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

Реализация программной платформы защищённого NAS В предыдущей статье было описано проектирование программной платформы NAS. Настало время её реализовать. Читать дальше →

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

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

Реализация горячей перезагрузки С++ кода в Linux и macOS: копаем глубже *Ссылка на библиотеку и демо видео в конце статьи. Для понимания того, что происходит, и кто все эти люди, рекомендую прочитать предыдущую статью. В прошлой статье мы ознакомились с подходом, позволяющим осуществлять "горячую" перезагрузку c++ кода. "Код" в данном случае — ...

Полное руководство по правильному использованию анимации в UX Предлагаю вашему вниманию перевод очень крутой статьи по анимации интерфейса. The ultimate guide to proper use of animation in UX автора Taras Skytskyi. В настоящее время трудно впечатлить или даже удивить анимацией интерфейса. Она показывает взаимодействие между экранами...

[Из песочницы] Мечтают ли приложения на Flutter о платформа-ориентированных виджетах? Привет, Хабр! Представляю вашему вниманию перевод статьи «Do Flutter apps dream of platform aware widgets?» Разрабатывая приложения на Flutter с нативным дизайном под iOS и Android, я столкнулся с тем, что мне пришлось писать кучу условий для проверки платформы на которой и...

Spark SQL. Немного об оптимизаторе запросов Всем привет. В качестве введения, хочется рассказать, как я дошел до жизни такой. До того как встретиться с Big Data и Spark, в частности, мне довелось много и часто оптимизировать SQL запросы, сначала для MSSQL, потом для Oracle, и вот теперь я столкнулся со SparkSQL. И ...

GUI-фреймворки — на поток Приветствую вас, коллеги! Пару-тройку месяцев назад я начал приглядываться к Golang с целью использовать его для десктопных приложений. Язык понравился, объем и тематика написанных для него пакетов произвели впечатление, но вот с GUI дело обстоит не так радужно. Не буду сей...

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

[Перевод] Лучший Способ Программирования (Better way To Code) От переводчика: Я не являюсь ни профессиональным программистом ни профессиональным переводчиком, но появление описанного в статье инструмента от создателя популярной библиотеки D3.js произвело на меня сильное впечатление. С удивлением обнаружил, что на Хабре, да и вообще в ...

Node.js без node_modules На прошлой неделе разработчики Yarn (пакетного менеджера для Javascript) анонсировали новую фичу – Plug'n'Play установку. Эта возможность позволяет запускать Node.js проекты без использования папки node_modules, в которую обычно устанавливаются зависимости проекта перед запу...

Unity3D: Модификация делегата iOS приложения Думаю, многим в ходе разработке игры для iOS приходилось сталкиваться с тем, что возникает необходимость использовать тот или иной нативный функционал. Касаемо Unity3D, в данном вопросе может возникать очень много проблем: для того, чтобы внедрить какую-то фичу, приходится с...

Unity, ECS и все-все-все Сколько уже было мануалов "Как сделать игру на Unity за 3 часа", "Делаем Counter-Strike за вечер" и т.п.? Низкий порог входа — это, несомненно, главный плюс и минус Unity. Действительно, можно накидать “ассетов”, дописать несколько простых “скриптов”, обмотать синей изолент...

[Из песочницы] Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети Изначально у меня не было планов о статье, тем более о выступлении на конференции. Но случилась конференция. И после выступления на ней, у смотревших появились ко мне вопросы касательно реализации некоторых технических моментов. Так и получилось слово за слово — статья. Зап...

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

Magic link или история о том, как мы упростили жизнь пользователю В статье я поделюсь личным опытом разработки и реализации “волшебных ссылок”. Расскажу зачем они нужны в нашем проекте, как функционируют и в конце даже всплакну над тем, что отсутствие такого функционала в больших системах используемых мною заставляет меня гневно рвать на с...

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

CES 2019: интерьерные решения для робомобилей будущего в представлении Toyota Производитель автомобильных компонентов Toyota Boshoku, входящий в группу Toyota, впервые примет участие в предстоящей выставке электроники CES 2019 (8–11 января, Лас-Вегас, Невада, США). Компания поделится своим видением того, каким может быть интерьер самоуправляемых транс...

Если проект «Театр» используй акторов… В этой статье будет рассказ об опыте использования акторного подхода в одном интересном проекте автоматизированной системы управления для театра. Это именно впечатление от использования, не более того. Заглянуть за кулисы...

Как я начал карьеру разработчика с нуля и получил оффер всего через 10 месяцев Эта статья — перевод оригинального поста Сика Худеиба, который недавно решил резко изменить свою жизнь, сменив профессию с учителя на программиста. От автора: Моя история — о том, как у меня получилось с нуля начать карьеру frontend-разработчика, не имея никакого специа...

[Перевод] Выбираемся из кроличей норы SPA при помощи современного Rails TL;DR: Тропа SPA темна и полна ужасов. Ты можешь бесстрашно сражаться с ними… или выбрать другой путь, который приведёт тебя к нужному месту: современный Rails. Я вспоминаю, как думал, что Rails фокусируется на неправильной цели, когда DHH анонсировали Turbolinks в 2012 г...

Istio и Kubernetes в production. Часть 2. Tracing В прошлой статье мы рассмотрели базовые компоненты Service Mesh Istio, познакомились с системой и ответили на основные вопросы, которые обычно возникают в начале работы с Istio. В этой части мы посмотрим на то, как организовать сбор tracing информации по сети. Читать дальш...

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

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

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

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

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

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

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

Разработка и тестирование смарт-контрактов Hyperledger Fabric Hyperledger Fabric (HLF) — платформа с открытым исходным кодом, использующая технологию распределенного реестра (DLT — distributed ledger technology), предназначенная для разработки приложений, работающих в среде бизнес-сетей, созданных и контролируемых консорциумом организа...

Еще один вариант генерации превьюшек для изображений с использованием AWS Lambda & golang + nodejs + nginx Здравствуйте уважаемые пользователи Хабра! Меня зовут Никита, в текущий момент времени я тружусь backend-разработчиком в стартапе мобильного приложения. Наконец у меня появилась действительно нетривиальная и достаточно интересная задача решением которой хочу поделиться с В...

[Перевод] Комментирование кода: хороший, плохой, злой Вы наверняка это слышали: «Хороший код является самодокументированным». Я больше 20 лет зарабатываю написанием кода, и слышал эту фразу чаще всего. Это клише. И как во многих других клише, здесь есть зерно истины. Но это истиной уже столько злоупотребляли, что большинс...

Реализация целочисленного БПФ на ПЛИС Всем привет! Однажды меня спросили заказчики, нет ли у меня в проектах целочисленного БПФ, на что я всегда отвечал, что это уже сделано другими в виде готовых, хоть и кривых, но бесплатных IP-ядер (Altera / Xilinx) – берите и пользуйтесь. Однако, эти ядра не оптимальны, обл...

[Из песочницы] Реализация горячей перезагрузки С++ кода в Linux * Ссылка на библиотеку в конце статьи. В самой статье изложены механизмы, реализованные в библиотеке, со средней детализацией. Реализация для macOS еще не закончена, но она мало чем отличается от реализации для Linux. Здесь в основном рассматривается реализация для Linux. Г...

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

Методика D.I.Y. проекта. Часть вводная Данная статья написана радиолюбителем, имеющим опыт руководства проектами по разработке и постановке на производство сложной радиоэлектронной аппаратуры. Цель данной статьи: помочь энтузиастам в организации их проектной деятельности, а также обозначить различия в подходах ...

Как мы в «1С: Предприятии» решаем системы алгебраических уравнений Работа с числовыми матрицами в целом и решение систем линейных алгебраических уравнений в частности — классическая математическая и алгоритмическая задача, широко используемая при моделировании и расчёте огромного класса бизнес-процессов (например, при расчёте себестоимости)...

Топ-5 креативных и инновационных новостных сайтов на английском языке Если вам от 20 до 35 лет, и вы «живете» в интернете и соцсетях, то эта пятерка определенно вам понравится. В них очень мало всего того, к чему мы привыкли в традиционных СМИ. Смелый дизайн, необычные форматы, простота изложения и неформальный подход в общении с читателями ...

[Из песочницы] Сказ о том, как я в Финляндию переехала Всего год назад я сидела на Хабре и читала подобного рода статьи для того, чтобы поддержать свой боевой дух, когда решила покинуть родной Казахстан и найти работу в Европе. Но, к моему сожалению, все статьи начинались примерно одинаково: “Меня зовут username и я программирую...

[Перевод] Играем в Mortal Kombat с помощью TensorFlow.js Экспериментируя с улучшениями для модели прогнозирования Guess.js, я стал присматриваться к глубокому обучению: к рекуррентным нейронным сетям (RNN), в частности, LSTM из-за их «необоснованной эффективности» в той области, где работает Guess.js. В то же время я начал игратьс...

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

5 книг, которые советует Билл Гейтс в 2018 году Билл Гейтс регулярно делится в своем блоге впечатлениями о прочитанных книгах и советует те, что ему понравились. В начале декабре появилась новая запись: Если вы любите на праздники дарить или получать книги, то вы похожи на меня. Хорошее чтиво – лучший подарок: вдумчивый ...

[Из песочницы] От API first на OAS до single contract на RAML Привет, %username%! Ты наверняка знаешь, что такое API интерфейсы и то, как много от них зависит в твоем проекте. Более того, я так же полагаю, что ты уже знаком с тем, что такое API first подход и знаешь, что Swagger и его Open API являются одними из самых популярных инс...

Как построить IIoT архитектуру своими руками. Часть 2: «Вещи» В предыдущей статье мы достаточно кратко рассмотрели организацию и процессинг IoT данных с помощью проекта Apache NiFi. Этой статьей мы открываем серию, в которой детально расскажем о каждом этапе, начиная от самих устройств и заканчивая DataLake платформой аналитикой, машин...

Контроль над ресурсами. Настраиваем SwiftGen Наверное, в каждом большом iOS-проекте — долгожителе можно наткнуться на иконки, которые нигде не используются, или обращения к ключам локализации, которые уже давно не существуют. Чаще всего такие ситуации возникают из-за невнимательности, а лучшее лекарство от невнимательн...

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

[Из песочницы] Создаем простой API-шлюз в ASP.NET Core Привет, Хабр! Представляю вашему вниманию перевод статьи "Creating a simple API Gateway in ASP.NET Core". Время чтения: ~10 минут В моей предыдущей статье, JWT аутентификация для микросервисов в .NET, я рассмотрел процесс создания микросервиса для аутентификации пользователе...

Менеджеры зависимостей В этой статье я расскажу, в чем менеджеры зависимостей (package manager) схожи по внутреннему устройству, алгоритму работы, и в чем их принципиальные отличия. Я рассматривал package manager’ы, предназначенные для разработки под iOS/OS X, но содержание статьи с некоторыми д...

Моя история прохождений интервью в IB IT (Java разработчик) с примерами типичных заданий Так получилось, что я хотел стать программистом еще учась в университете в Москве, но стал им уже за пределами России и не сразу — путь был долог и тернист. Я ходил на множество интервью (вначале искал я, потом уже искали меня), вникал в тонкости работы и размышлял на тему —...

[Из песочницы] SNMP + Java – невозможное возможно: пишем парсер MIB-файлов SNMP – не самый юзер-френдли протокол: MIB-файлы слишком длинные и запутанные, а OID'ы просто невозможно запомнить. А что если возникла необходимость работать с SNMP на Java? Например, написать автотесты для проверки API SNMP-сервера. Путём проб и ошибок при наличии доволь...

Асинхронный обмен данными с удалённым приложением через SSH Доброго времени суток, друзья и коллеги. Меня всё ещё зовут Дмитрий Смирнов, и я всё ещё, к моему вящему удовольствию, являюсь разработчиком ISPsystem. Некоторое время назад я начал работу над совершенно новым проектом, который меня очень вдохновил, поскольку новое — это в н...

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

Apache Spark — достоинства, недостатки, пожелания Мне давно хотелось изложить свои впечатления об Apache Spark, и тут как раз попалась на глаза вот эта статья от сотрудника Pivotal Robert Bennett: thenewstack.io/the-good-bad-and-ugly-apache-spark-for-data-science-work, опубликованная совсем недавно, 26 июня 2018. Это не бу...

[recovery mode] Лента новостей: почему мы делаем это неправильно? Здравствуй, меня зовут Дмитрий Карловский и у меня для вас новость. Ну как новость, свежий взгляд на привычную вещь в виде очередной статьи. Скорее всего вы попадёте на неё из какой-либо ленты новостей. Или не попадёте, если новость будет опубликована не вовремя. Независимо ...

Мой опыт внедрения 1С (часть 1. Вводная) Всем привет! Я автор этой статьи. И пришло время написать продолжение… спустя почти 4 года. На момент написания прошлой статьи я была студенткой колледжа, сейчас я студентка вуза. На момент написания статьи я работала официанткой, сейчас я руковожу внедрениями 1С в органи...

[Из песочницы] Пишем стэковую виртуальную машину на Rust'e Здравствуй, Хабр! Уже несколько недель я занят разработкой своего языка программирования на Rust. Мне бы хотелось расказать о том с чем может столкнуться новичок в этом деле и о чем ему следует знать. Читать дальше →

Использование QML Map для построения воздушных трасс — Часть 1 Уже довольно долго использую QML для построения графических интерфейсов, но возможности поработать в реальном проекте с Qt Location API и QML Map, до настоящего времени, не было. Поэтому стало интересно попробовать эту компоненту для построения воздушных трасс. Под катом оп...

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

[Перевод] 7 лучших практик по эксплуатации контейнеров по версии Google Прим. перев.: Автор оригинальной статьи — Théo Chamley, архитектор облачных решений Google. В этой публикации для блога Google Cloud он представил краткую выжимку из более детального руководства его компании, названного «Best Practices for Operating Containers». В нём специа...

Раскрыта цена, которую придётся доплатить за связь 5G во флагманском смартфоне Стали известны новые подробности о готовящемся к выпуску смартфоне с поддержкой сотовой связи пятого поколения от компании OnePlus. Информацией поделился ресурс Fudzilla. По данным источника первый смартфон OnePlus с поддержкой 5G окажется на 100 долларов дороже текущей мод...

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

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

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

[Перевод] Современная MVI-архитектура на базе Kotlin. Часть 1 За последние два года Android-разработчики в Badoo прошли длинный тернистый путь от MVP к совершенно иному подходу к архитектуре приложений. Мы с ANublo хотим поделиться переводом статьи нашего коллеги Zsolt Kocsi, описывающую проблемы, с которыми мы столкнулись, и их реше...

[Перевод] Вся правда об ОСРВ. Статья #18. Группы флагов событий: вспомогательные службы и структуры данных Эта статья продолжает описывать группы флагов событий. Предыдущие статьи серии: Статья #17. Группы флагов событий: введение и базовые службы Статья #16. Сигналы Статья #15. Разделы памяти: службы и структуры данных Статья #14. Разделы памяти: введение и базовые службы ...

[Из песочницы] Пишем компонент с «материальными» кнопками для Svelte Вдохновившись статьями SvelteJS: Релиз второй версии, Исчезающие фреймворки и Re: «Сравнение JS-фреймворков: React, Vue и Hyperapp», про «исчезающий» фреймворк Svelte (читается «свелт», а то мало ли), я захотел его попробовать. И для начала решил написать небольшой компонент...

Расширение PHP и Kotlin Native. Часть третья, наверное финальная В первой части рассказываются совсем базовые вещи про настройку инструментария и общие концепции. Вторая часть про, так сказать, первый подход к снаряду, задумки, наметки, планы. В этой статье будет чуть больше хардкора про интероп Си и K/N, много макросов, боли, безысход...

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

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

Насколько полезна функция контроля активности из iOS 12 в реальной жизни Контроллер активности, появившийся в бета-версии iOS 12, действительно может помочь сократить время использования iPhone до двух раз. К такому выводу пришел корреспондент New York Times Брайн Чен, проведя независимый эксперимент с участием 14-летней дочери своего редактора...

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

Семинар: «Объектное хранилище DataLine: выбор оборудования, возможности и сценарии использования», 31 мая, Москва Привет, Хабр! Давно мы не проводили семинары — исправляемся. 31 мая совместно с Lenovo мы расскажем о новом сервисе DataLine — объектном хранилище. Поговорим о том, как мы выбирали решение и с чем столкнулись в процессе создания сервиса. Рассмотрим основные сценарии испол...

Переезд в ЦОД: Как это было Дорогие хабровчане, добрый день! Для начала хочу искренне всех поздравить с прошедшим Новым Годом и Рождеством! Ну и сразу с места в карьер. В прошлой статье было обещано рассказать непосредственно о самом переезде в ЦОД Linxdatacenter в Санкт-Петербурге. Даже было назначен...

Мой опыт трудоустройства на роль Agile Coach в Европе, часть вторая И снова здравствуйте! В первой части моей статьи я рассказал о мотивации, сподвигнувшей меня на попытки перебраться в Европу, а также осветил в деталях первые 5 месяцев моих поисков. Ниже Вы найдете продолжение моей истории и несколько выводов, которые я сделал для себя. А...

Отзыв о Питерском офисе Top3DShop Привет всем!Очень долго искал компанию, которая смогла бы напечатать то, что мне было необходимо.После нескольких неудачных экспериментов на FDM принтерах, появилось понимание, что для реализации задуманного мне нужен DLP или SLA принтер.Так как в нашем городе такого счастья...

Фантастические тимлиды и где они обитают Всем привет! Меня зовут Анатолий Панов, я работаю в ИТ уже больше 15 лет. За это время прошел путь от разработчика до руководителя тимлидов. Работал в таких компаниях как Badoo, Lazada. С начала этого года я в Авито. Руковожу разработкой новых проектов и разработкой для верт...

CodeRainbow: интерактивное изучение и документирование кода Часто программистам приходится разбираться с чужим незнакомым кодом. Это может быть и изучение интересных проектов с открытым кодом, и необходимость по работе — в случае присоединения к новому проекту, при анализе большого объема legacy кода и т.д. Думаю, каждый из вас ста...

Microsoft объявила о поддержке стандарта Web Authentication в браузере Edge Сегодня компания Microsoft объявила о внедрении поддержки стандарта Web Authentication в браузере Edge в Windows 10, благодаря которой пользователи смогут использовать Windows Hello для авторизации на веб-сайтах без использования привычных паролей. Отмечается, что поддержка...

Универсальное решение для UITableViewRowAction и UIContextualAction Многие сталкивались с проблемой реализации красивого отображения кнопок для UITableViewCell при сдвиге влево. Некоторые использовали стандартный функционал «из коробки», другие заморачивались над собственной реализацией, а кто-то обошелся Unicode-символами. В этой статье я...

COBIT 5: Практика адаптации Организационных структур и Ролей в компании Проникновение ИТ в деловую среду идет повсеместно и ускоренными темпами. Цифровая трансформация – необходимое условия для развития бизнеса различной величины и направлений деятельности. Однако, как мы отмечали ранее, слаженная работа ИТ и бизнеса является одним из основных ф...

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

Книга «Современный PHP» Хотя современные разработчики все больше ориентируются на сетевые источники информации, мне кажется, у книг посвященных программированию все же есть своя ниша. Статьи представляют решение конкретных задач, описание конкретных моментов. Книги – это более общий взгляд на техно...

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

LLTR Часть 1: Первые шаги в OMNeT++ и INET OMNeT++ (Objective Modular Network Testbed in C++) Discrete Event Simulator – это модульная, компонентно‑ориентированная C++ библиотека и фреймворк для дискретно‑событийного моделирования, используемая прежде всего для создания симуляторов сетей. Попросту говоря это “симуля...

Распознавание товаров на полках с помощью нейронных сетей на технологиях Keras и Tensorflow Object Detection API В статье мы расскажем о применении свёрточных нейронных сетей для решения практической бизнес-задачи восстановления реалограммы по фотографии полок с товарами. С помощью Tensorflow Object Detection API мы натренируем модель поиска/локализации. Улучшим качество поиска мелких ...

Грузим терабайты бочками или SparkStreaming vs Spring+YARN+Java В рамках проекта интеграции GridGain и хранилища на базе Hadoop (HDFS + HBASE) мы столкнулись с задачей получения и обработки существенного объема данных, примерно до 80 Тб в день. Это необходимо для построения витрин и для восстановления удаленных в GridGain данных после и...

[Перевод] Моки, стабы и шпионы в Spock Framework Spock предоставляет 3 мощных (но разных по сути) инструмента, упрощающих написание тестов: Mock, Stub и Spy. Довольно часто коду, который нужно протестировать, требуется взаимодействовать с внешними модулями, называющимися зависимостями (в оригинальной статье используется т...

[Из песочницы] Проблемы доступа к персональным данным от лица всех участников процесса Приветствую дорогие хабровчане. Лирическое отступлениеКак пользователь одного из «высокоразвитых» ресурсов рунета, я обнаружил довольно распространённую картину в админке своего профиля: от моего имени рассылался спам. Для меня это стало некоторым сигналом, так как за то в...

Легенда о Фреймворке Всевластия В последнее время набирает популярность тренд «исчезающих фреймворков», локомотивом которого, без сомнения, можно считать SvelteJS — buildtime-фреймворк и компилятор в ванильный javascript. Несмотря на то, что концептуально Svelte весьма прост, а в использовании еще проще,...

Автоматизируем тестирование redux селекторов в приложении В этой статье я хотел бы поделиться своими идеями того, как можно автоматизировать написание unit-тестов в react/redux приложениях. Идеи эти родились в одной из дискуссий с коллегами, в процессе написания тестов, и, как мне кажется, предложенное решение имеет право на жизнь....

Реализация нового транспортного протокола NTCP2 сети I2P Транспортные протоколы I2P были разработаны почти 15 лет назад, когда основной задачей было сокрытие содержимого трафика, а не факт использования того или иного протокола. dpi и блокировку трафика в то время никто не принимал в расчет. Однако времена меняются и хотя существу...

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

Улучшение качества изображения с помощью нейронной сети Сегодня, хочу рассказать об интересном подходе по улучшению качества изображения. Официальное название подхода Super Resolution. Улучшение качества изображения программными методами известно с начала появления цифровых снимков, но в последние 3 года произошёл качественный ск...

[Из песочницы] Подводные камни разработки Google Play Instant Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь Android-разработкой в PROFI.RU. Недавно я написал приложение с мгновенным запуском для наших клиентов. Если вы ещё не знакомы с технологией, приглашаю вас сначала посетить Android Developers. С презентации Instant Apps (G...

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

Особенности тестирования кредитов: как один баг влияет на тысячи долларов выручки Привет. Меня зовут Ольга Михальчук, я QA engineer (Quality Assurance engineer или тестировщик) в финтех-компании ID Finance. В этом посте я расскажу, чем занимаются QA и как искать и исправлять баги в кредитных калькуляциях, пока они не привели к большим убыткам в вашей комп...

Безопасность или паранойя: временные права при запуске команд В прошлой статье «Меньше администраторов всем» я рассказывал о принципах работы без прав администратора ― в частности, о технологии Just Enough Administration (JEA). Этот механизм хоть и гибкий, но сложный в настройке, и в ряде ситуаций можно обойтись и без него. Например,...

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

К вопросу о пульсациях, интересных людях и индуктивностях Law 14 (Edison’s Law) ‘Better’ is the enemy of ‘good’ Недавно мой коллега, которого я неоднократно упоминаю в своих постах (как правило, в роли реинкарнации доктора Ватсона, основное предназначение которого заключается в придании большего блеска основному персонажу изложен...

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

[Из песочницы] Кроссплатформенная утилита мониторинга SNMP-трафика без зависимостей и наличия GUI Здравствуй, Хабр! В процессе своей работы (администрирование активного оборудования) столкнулся с необходимостью оперативного получения онлайн-данных (желательно с графиком) входящего/исходящего трафика на сетевом интерфейсе по SNMP. При этом всегда попадается такое оборудо...

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

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

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

[Из песочницы] Подписываемся на Kafka по HTTP или как упростить себе Веб-хуки Существует множество способов обработки сообщений из Pub-Sub систем: использование отдельного сервиса, выделение изолированного процесса, оркестрация пулом процессов/потоков, сложные IPC, Poll-over-Http и многие другие. Сегодня я хочу рассказать о том, как использовать Pub-S...

Как мы сдавали экзамен Certified Kubernetes Administrator В прошлом году у организации CNCF (Cloud Native Computing Foundation), помогающей развиваться таким Open Source-проектам, как Kubernetes и Prometheus, появилась программа сертификации CKA (Certified Kubernetes Administrator). В начале этого лета мы решили в ней поучаствова...

UI-компоненты на пиксельных шейдерах: пишем ваш первый шейдер Кого можно назвать «пиксельных шейдеров начальник и пикселов командир»? Дениса Радина, работающего в Evolution Gaming над фотореалистичными веб-играми с использованием React и WebGL: он известен многим как раз под именем Pixels Commander. В декабре на нашей конференции Holy...

Реверс хрома и установка расширений Доброго времени суток, дорогой читатель! Хром обновляется, но новых статей про то, как программно установить расширение в хром нет, помимо --load-extension — но это не наш вариант, ведь мы не ищем легких путей. Сегодня расскажу как действительно можно одним exe-шником полу...

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

Динамическое ценообразование, или Как Яндекс.Такси прогнозирует высокий спрос Раньше для вызова такси приходилось звонить на разные номера диспетчерских служб и ждать подачу машины полчаса или даже больше. Теперь сервисы такси хорошо автоматизированы, а среднее время подачи автомобиля Яндекс.Такси в Москве около 3-4 минут. Но стоит пойти дождю или зак...

[Перевод] AliceVision: фотограмметрия из командной строки Вам нужно автоматизировать огромное количество фотограмметрических сканов? Тогда у меня для вас хорошие новости. В видео показана программа для фотограмметрии Meshroom с открытым исходным кодом. Этот проект в разных формах существует уже довольно давно, но недавно разработ...

[Из песочницы] PHPDump — Отладка в консоли Google Chrome и взаимодействие с CMS MODX Сразу к делу Есть собственный продукт который успешно мне помогает в отладке и назвал его PhpDump. В свое время CMS MODX побудил меня написать свой отладчик. Конечно же есть var_dump, phpConsole, xDebug в PHP. Но тут я со своим PhpDump. Скажу что решение не идеальное, но о...

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

Как декларативно описать коллапсирующий Toolbar Хочу представить решение того, как можно описать CollapsingToolbar, с акцентом на читаемости кода. В статье не будет объясняться, что такое и как написать свой CoordinatorLayout.Behavior. Если читателю интересно в этом разобраться, есть много статей, в том числе на хабре. ...

К вашему полку прибыло!!! Добрый день, дамы и господа! Давно читаю на данном сайте новости, посты и пр., однако, зарегистрирован совсем недавно, в связи с тем, что определился с выбором и приобрел себе 3d принтер MAESTRO! В общем, решил я тоже начать писать различные статьи и рассказывать о своих раб...

[Из песочницы] Концепция идеального разума. Универсальный ИИ Что такое искусственный разум или сильный искусственный интеллект? На каком этапе создания искусственного разума (ИР) находится человечество? Опасен или полезен ИР? Эти и другие вопросы я хочу осветить в данной статье. Вопрос создания искусственного разума заинтересовал ...

Использование аккумулятора от iPhone при разработке носимой электроники Приветствую, читатель. Довольно часто у меня возникает задача разработки портативных устройств с питанием от одной ячейки Li-ion аккумулятора. И, если заказчика обычно это не беспокоит, то у меня, как у опытного инженера, при виде такого ТЗ по спине пробегает дрожь. Это связ...

Альтернатива: «Как научить Zabbix отправлять уведомления о проблемах прямо на рабочий стол» На волне статьи от Ильи (ableev) хочу рассказать об ином подходе для уведомлений от системы монторинга Zabbix на рабочем столе. Последние 3 месяца я пользуюсь расширением для браузера zabbix vue. От меня в этот проект прилетел только перевод на русский, так что это не рекла...

ConvNets. Создание прототипа проекта с помощью Mask R-CNN Привет, Хабр! Мы, наконец, дождались еще одной части серии материалов от выпускника наших программ “Специалист по большим данным” и “Deep Learning”, Кирилла Данилюка, об использовании популярных на сегодняшний день нейронных сетей Mask R-CNN как части системы для классификац...

Конвертация данных GraphQL для компонента CustomTreeData из DevExtreme-Reactive Понадобилось тут отобразить данные в виде дерева, с возможностью редактировать разные поля, удалять/добавлять строки и т.д. В процессе поиска подходящих компонентов (хотелось найти под material-ui и react) стал пробовать devextreme-reactive. Ньюанс, однако, оказался в том, ч...

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

[Из песочницы] Играем с потоками в Node.JS 10.5.0 Доброго времени суток У меня на работе возник спор между мной и дотнетчиками насчет потоков в новой версии Node.JS и необходимости их синхронизоровать. Для начала решили выбрать задачу о параллельной записи строк в файл. Тема с worker_threads горячая, прошу под кат. Читать ...

Как правильно фотографировать: 12 простых советов для тех, кто хочет улучшить качество своих фотографий Научиться хорошо снимать трудно – наверное, стать писателем или программистом даже легче. Навести камеру и нажать кнопку легко, а вот сделать по-настоящему качественный снимок… У меня ушел год на то, чтобы создать первый по-настоящему хороший снимок. И я готов поделить...

Russian AI Cup 2018, история 9 места Итак Меня, как и в прошлом году, зовут Андрей Рыбалка, только в этот раз мне 33. И, раз уж я оказался в десятке лучших, я решил снова поделиться своим подходом к написанию игрового бота для Russian AI Cup 2018. В этот раз заданием был футбол. Сама задача несколько напоминала...

Работа с базой данных из приложения В начале я обозначу некоторые проблемы и особенности при работе с БД, покажу дыры в абстракциях. Далее мы разберем более простую абстракцию, основанную на иммутабельности. Предполагается, что читатель немного знаком с паттернами Active Record, Data Maper, Identity Map и Unit...

[Перевод] Микросервисы на Go с помощью Go kit: Введение В этой статье я опишу использование Go kit, набора инструментов и библиотек для создания микросервисов на Go. Эта статья — введение в Go kit. Первая часть в моем блоге, исходный код примеров доступен здесь. Читать дальше →

Если очень хочется: 10-гигабит на меди Всем привет! Меня зовут Александр, я сетевой инженер в компании DataLine. Сегодня я продолжу тему 10-гигабитного Ethernet-соединения для новичков. В комментариях к прошлой статье справедливо заметили, что мы не раскрыли тему меди. Постараюсь исправить этот пробел. Сразу о...

Знакомство с обновленной линейкой игровых гарнитур SteelSeries Arctis 2019 В свое время наушники серии Arctis от SteelSeries произвели хорошее впечатление благодаря качественному звуку и удобной конструкции. В конце 2018 года компания обновила свой модельный ряд гарнитур, учтя ошибки и пожелания пользователей. В сегодняшнем обзоре речь пойдет о мод...

Глубокое обучение программированию: что, зачем и как Disclaimer: эта статья подготовлена Skillbox совместно с Егором Яковишеном, ведущим разработчиком Setka Editor и трекером ФРИИ. В наше время научиться программировать на базовом уровне относительно несложно. К примеру, американский бездомный Лео Гранд, обладавший только ...

[Из песочницы] Как я съездил на Droidcon Berlin Привет, меня зовут Виталий, я Android разработчик компании Tinkoff.ru, работаю в Санкт-Петербургском офисе и в этом году я впервые посетил международную конференцию Droidcon Berlin, поэтом кратко хотел рассказать о своих впечатлениях. Данная статья не содержит большого колич...

Динамическая генерация DAG в Airflow Всем привет! Меня зовут Антон, в Ростелекоме я занимаюсь разработкой центрального хранилища данных. Наше хранилище состоит из модулей, в качестве оркестратора которых используются несколько инстансов Informatica, часть из которых мы хотим перевести на Airflow в рамках перехо...

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

[Из песочницы] О том, как из C# перешел в Elixir/Phoenix Как-то раз пришлось мне менять работу. До этого я работал только с языками типа Python, C++, C# и ещё парочкой подобных. А теперь пришлось начать работать с функциональным языком. Первые впечатления были «да что за фигня?». Однако у меня получилось достаточно быстро адаптиро...

Из счетчика Гейгера, спичек и ардуины. Часть первая — теория Давно не проблема купить прибор под условным названием «бытовой дозиметр» (были б деньги — в этом смысле, Фукусима радиофобам и радиофилам (TM) подгадила), но думаю, что этот прибор было бы интересно сделать своими руками. Сердцем нашего прибора будет счетчик Гейгера. Мы з...

Слушать и говорить: анонс HolyJS 2018 Moscow Что главное на конференциях — доклады или общение? Свои сторонники есть и у первого варианта («информация по делу важнее разговоров»), и у второго («учиться можно и дома, а вот поговорить с экспертами дорогого стоит»). 24-25 ноября мы проведём в Москве конференцию для Ja...

Жизненный цикл статьи на Хабре: пишем хабрапарсер Привет Хабр! Многие постоянные читатели и авторы сайта наверное задумывались о том, какой жизненный цикл имеют опубликованные здесь статьи. И хотя интуитивно это и так более-менее ясно (очевидно например, что статья на первой странице имеет максимальное число просмотров), н...

Что такое Scholarship от Apple и почему это больше, чем просто билет на WWDC Билет на WWDC стоит $1600, и чтобы его получить, нужно участвовать в лотерее. Для студентов со всего мира Apple каждый год устраивает конкурс, в котором можно выиграть бесплатный билет на конференцию и получить другие приятные бонусы. В этом году мне повезло выиграть Schola...

Прикручиваем мультиплеер к мобильной игре «Составь слова из слова» на iOS и Android, написанной на C++ Ранее я уже писал о своем опыте разработки мобильной словесной игры на Android и iOS, которая пользуется определенной популярностью, и я решил прикрутить к ней режим мультиплеера, когда два игрока соревнуются между собой, составляя слова по очереди, как заключительном раунде...

Что не так с обучением с подкреплением (Reinforcement Learning)? Еще в начале 2018 года вышла статья Deep Reinforcement Learning Doesn't Work Yet ("Обучение с подкреплением пока не работает"). Основная претензия которой сводилась к тому, что современные алгоритмы обучения с подкреплением требуют для решения задачи примерно столько же вре...

История защиты персональных данных: как появился GDPR С момента вступления в силу 25 мая 2018 года европейского регламента по защите персональных данных (General Data Protection Regulation – GDPR) прошло уже 6 месяцев. Этот закон распространяет свое действие в том числе и на территорию Российской Федерации, но лишь косвенно и...

LG Stylo 4 стоит 180 долларов В последнее время смартфоны компании LG были достаточно дорогими и не каждый мог себе такое позволить. Бренд почему-то решил, что сейчас пользователи готовы платить больше только за известный логотип, хотя на самом деле все совершенно иначе работает на современном рынке. Теп...

[Из песочницы] Внедряем Angular компоненты в React, Vue и даже JQuery если хотите Если вы нашли крутой компонент в npm, но она с приставкой ng, ngx, angular и так далее, то не стоит расстраиваться по этому поводу. Есть много решений, чтобы этот компонент оказался у вас. В данной статье рассмотрим решение, которое официально поддерживается Angular Team, а ...

Жажда крови: интервью с основателем DonorSearch «Чудеса случаются, когда ты рискуешь всем ради мечты, которую кроме тебя не видит никто. Нужно просто верить.» — Клинт Иствуд, фильм «Малышка на миллион». Привет, Хабр! Хочу представить вам Руслана Шекурова, выпускника первого потока philtech-акселератора, который, как мн...

«Флант» и Okmeter: симбиоз на благо мониторинга Пройдя длинный путь системного администрирования Linux-серверов, в качестве базовых инструментов для сбора статистики и мониторинга мы успели попробовать разные варианты реализации. Самописные скрипты (и даже веб-приложения), Cacti, Zabbix — наиболее устоявшиеся у нас в то...

Автоматическое разрешение конфликтов с помощью операциональных преобразований Автоматическое разрешение конфликтов в среде с более, чем одним ведущим узлом (в данной статье под ведущим узлом понимается узел, который принимает запросы на изменение данных) – очень интересная область исследований. Существует несколько различных подходов и алгоритмов, в ...

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

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

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

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

[Перевод] Трюки при линковке и загрузке файлов Mach-O Представляю вашему вниманию перевод моей статьи из блога Проекта Darling. Маленькая справка по используемым понятиям: Darwin – операционная система с открытым исходным кодом, лежащая в основе macOS, iOS и других ОС от Apple; Mach-O – бинарный формат исполняемых файлов и библ...

“Буст” аккаунтов вне закона: новые положения в законодательстве Южной Кореи Южная Корея – страна, где киберспорт процветает и развивается семимильными шагами. Однако на ряду с развитием, имеются и ограничения на законодательном уровне. Так, в стране принят закон о продвижении игровой индустрии, где прописаны правила регулирующие киберспорт и и...

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

MVP и Dagger 2 – скелет Android-приложения – часть 1 Данная статья нацелена на новичков в Android-разработке и призвана помочь в создании минимально необходимой структуры приложения. Так получилось, что я относительно недавно начал программировать под Android – после месяца без проекта в компании, где я работаю, меня определи...

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

[Перевод] Material design: Shape – советы по улучшению графического интерфейса с помощью изменения форм элементов От переводчика Здравствуйте. Этот перевод я делаю потому как сам недавно начал разбираться с Shape в Android, решил пошарить по material.io, и нашел там этот сборник советов по использованию. Мне он показался интересным, полезным, и познавательным, поэтому я решил поделить...

OAuth Authorization Provider для asp net core Начал изучать asp.net core и первое что пытался найти это некое подобие «OAuthAuthorizationServerProvider» для реализации генерации тикета и «IAuthenticationTokenProvider» для реализаций рефреш токена как в обычном asp.net, но не нашел. Не исключено, что плохо искал, и может...

Нативный русский язык из Xorg в rdesktop — мелочь, а приятно У всех людей свой опыт использования Linux десктопа, но лично для меня очень важным является тандем linux desktop + rdesktop в виртуальные машины. Причины тому — определенный софт, который зачастую работает только под Windows, или работает под Windows лучше, а также необходи...

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

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

[Перевод] Вся правда об ОСРВ. Статья #9. Планировщик: реализация Основные принципы работы планировщиков ОСРВ были рассмотрены в статье «Задачи и планирование». В настоящей статье мы рассмотрим возможности, которые предлагает Nucleus RTOS, а также более подробно те, которые предоставляет Nucleus SE. Читать дальше →

Fake Door как часть Customer Development У меня есть нож, есть арбалет, Они служат мне уже тысячу лет. (с) КиШ Предположим, вам надо проверить насколько новая фича будет востребована клиентами. Зачастую, это решается с помощью интервьюирования, опросов, и т.д. У этих замечательных подходов есть свои плюсы/минусы...

Adobe Spark Post — лучшее приложение для оформления постов соцсетей Как хорошо нужно понимать дизайн, чтобы на выходе получать качественные постеры для соцсетей или других целей? Для этого необязательно нужно быть дизайнером. Достаточно скачать нужное приложение и использовать готовые инструменты и компоненты. Наверное, лучшим таким приложе...

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

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

[Перевод] Что происходит при создании контейнера Flexbox? Это перевод статьи Rachel Andrew, являющейся одним из разработчиков спецификаций CSS. В короткой серии статей я собираюсь потратить некоторое время на детальную распаковку Flexbox — точно так же, как я делала в прошлом с grid. Мы рассмотрим, для чего был разработан Flexbox, ...

Первые впечатления от смартфона Honor Magic2: возвращение слайдеров Уставшие от «моноброви» компании постепенно начинают искать новые подходы к дизайну смартфонов – при этом не жертвуя процентом лицевой панели, отданным под дисплей. Так возвращаются в оборот слайдеры: сначала с электронным приводом (OPPO Find X), а теперь и с ручным...

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

Определение цифры на слух: реализация на Arduino В этой статье я продолжу воплощать свое вдохновение лабораторной работой №3 уже в железе. Речь пойдет о детектировании цифры по звуку в тоновом режиме набора на Arduino с помощью алгоритма Герцеля. Читать дальше →

[Из песочницы] Humansnotinvited: разгадываем капчу на bash Приветствую, дорогой читатель! Многие из Вас встречались с капчей — автоматическим тестом Тьюринга. Она позволяет отделить реальных людей от различных ботов. В последнее время очень популярной стала reCAPTCHA от Google Inc. На ней Вы должны выбрать изображения, содержащие н...

Методы удержания игроков: примеры из игр различных жанров Меня зовут Оксана Фомина, я анализирую поведение пользователей и увеличиваю доходы игры, в том числе за счет повышения удержания игроков. В первой части статьи «МЕТОДЫ УДЕРЖАНИЯ ИГРОКОВ В СЛОТ-ИГРАХ: Часть 1» я рассмотрела применение методов удержания игроков на примере сло...

Новые безумные проекты Илона Маска: конфетная фабрика Cryptocandy и сервис Pravda Прежде всего, не стоит крутить пальцем у виска и считать, что это шутка. Очень похожую реакцию у общественности вызвало первое сообщение Илона Маска (Elon Musk) о желании проложить сеть тоннелей под Лос-Анджелесом. Менее чем через полтора года после этого первый тоннель...

Проблемы современной записи математических текстов В недавней статье товарищ KvanTTT поднял вопрос: Можете пояснить что вам не нравится в современной записи (математических положений и) формул и как ее можно улучшить? Я постарался ответить в одном комментарии, но размер текстового поля не позволил закончить выкладки. Данная...

Что почитать про организацию рабочих мест, коворкинги и дизайн пространств для дистанционной работы Получилось так, что с 2012 года я курирую московский Techstars Startup Digest. Это — email-рассылка мероприятий для IT-специалистов, основателей стартапов и маркетологов. Моя задача — отфильтровать непомерно дорогие и рекламные эвенты — в рассылку попадают бесплатные или оч...

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

НДС на внутренние покупки Должен ли разработчик платить НДС с покупок внутри условно бесплатного приложения? В предыдущей статье НДС на услуги в электронной форме мы затронули важную тему освобождения от НДС реализации по лицензионным договорам. В связи с этим у разработчиков free-to-play приложен...

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

[Перевод] Senior Engineer в поисках работы. Как я прошел 20 собеседований с HR и что я об этом думаю Предисловие для читателей Хабра — статья поиске работы на рынке разработки в Украине (который в основном об аутсорсе на иностранных заказчиков) поэтому некоторые вещи могут показаться странными (LinkedIn, собеседования с заказчиками, обязательное требование разговорного англ...

Google запретила Nokia скрывать «чёлки» Некоторое время назад компания Essential удалили из настроек своего смартфона опцию, которая позволяла скрыть «чёлку» устройства. Тогда это объяснили тем, что реализация данного механизма вызывала конфликт с компонентами Android, которые отвечают за пользовательский интерф...

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

Тестируем создание библиотеки компонент для Angular с помощью новой команды для Angular/Cli — library Когда проектов становится чуть больше чем один, возникает необходимость как-то переиспользовать не только отдельные модули с кодом, но и сами UI-компоненты. Вариантов решения проблемы много — от традиционного копипаста, до настройки отдельного проекта с тестами, документаци...

[Из песочницы] Vanessa-Automation — инструмент тестирования прикладных решений на платформе 1С: Предприятие Не с начала Много вы знаете инструментов тестирования, которые умеют: Получать шаги на языке Gherkin сразу из того, что накликал пользователь? Создавать видео-инструкции автоматически, с субтитрами, black Jack'ом и Еленой?) Создавать *.feature файл на английском языке в рум...

[Перевод] Шардинг в Блокчейне Всем привет, я один из разработчиков Near Protocol, который, среди прочего, реализует шардинг, и в этой статье хочу подробно рассказать что вообще такое шардинг в блокчейне, как он работает, и коснуться ряда проблем, которые возникают при попытке его построить. Хорошо извест...

[Из песочницы] Производительность торговой платформы на простом примере В этой статье я хочу в научно-популярной форме рассказать об оптимизации времени отклика в торговых платформах бирж и банков (HFT). Для справки речь идет о временах от сотен наносекунд до сотен микросекунд. Для большинства других приложений многие приведенные ниже методы оп...

Настройка Firefox/Chrome для очень медленного и лимитированного интернета     Давайте попробуем сделать из, например, Firefox броузер, который будет полезен когда у вас очень дорогой трафик, или очень низкая скорость интернета, а вам срочно нужно перелопатить кучу текстовой информации в минимально читаемом виде, конечно же без Javascript. Для этог...

Изучение английского — непопулярное мнение Всем привет. Очередная статья от «курсов изучения английского» сподвигла меня написать свои заметки. Этой статьёй я надеюсь ответить на некоторые вопросы изучающих язык и отговорить от глупых советов «запомнить вот эти 10/15/20 слов/конструкций», которые подаются как некие ...

Исследование файловой системы HDD видеорегистратора модели QCM-08DL Данная статья посвящена изучению файловой структуры жёсткого диска восьмиканального видеорегистратора с целью массового извлечения файлов с видеозаписями. В конце статьи приводится реализация соответствующей программы на языке С. Читать дальше →

Терминальный сервер для AutoCAD Терминальный сервер для CAD систем интересовал меня давно и данная статья является результатом изысканий в сети Интернет. В этой статье поговорим конкретно о терминальном сервере для Автокада. Автокад довольно ресурсоёмкое приложение требующее все ресурсы железа: и оператив...

У дизайнера новая идея? Что может быть проще Привет, хабровчанин! Дизайнеры люди идейные, а заказчики с их бизнес-требованиями, тем более. Представь, что ты сваял свой самый лучший UIkit на свете на самом крутом %вставить свое% JS фреймворке. Казалось бы, там есть все, что нужно проекту. Теперь-то ты сможешь пить коф...

Таймтрекер на Google Scripts, Docs и Spreadsheets В предыдущей статье речь шла о подходе к техническому заданию в Decart IT-production. Когда мы внедрили эти изменения, проекты велись в облачной Jira, но ее потенциал использовался на минимальном уровне. Для небольшой компании достаточно грамотной постановки задач, таймтре...

[Из песочницы] (5-2) Способа перенести большую SQL таблицу Введение Всем привет! Это моя первая статья и пишу я ее от лица младшего инженера-разработчика на языке C#. Так что здесь не будет каких-то подробных сведений о SQL, лишь практические сведения и размышления по решению довольно не очевидной задачи, с которой мне пришлось стол...

LG Display произведёт 2–4 млн дисплеев для 6,5-дюймового iPhone Apple — главный конкурент Samsung на рынке смартфонов. Samsung — крупнейший в мире поставщик OLED-панелей для смартфонов. Из-за этого Apple вынуждена закупать у своего соперника дисплеи для iPhone X и его преемников. Поэтому неудивительно, что купертиновцы постоянно ищут пут...

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

[Перевод] Замедляем Windows, часть 2: создание процессов Windows давно упрекают за медлительность файловых операций и создания процессов. А вы когда-нибудь пробовали сделать их ещё медленнее? Эта статья покажет технику, как постепенно замедлять создание процессов в Windows (до бесконечности) незаметно для большинства пользовател...

Два скилла, которые помогут стать отличным разработчиком От переводчика: эта статья — перевод оригинальной статьи Бара Франека, специалиста по JavaScript. В новом своем материале он решил рассказать, какие навыки помогают разработчику в его ежедневном труде. Но речь не о программных инструментах, а, скорее, ментальных. Без раз...

CES 2019: интерьерные решения для робомобилей будущего в представлении Toyota Производитель автомобильных компонентов Toyota Boshoku, входящий в группу Toyota, впервые примет участие в предстоящей выставке электроники CES 2019 (8–11 января, Лас-Вегас, Невада, США). Компания поделится своим видением того, каким может быть интерьер самоуп...

Псс, парень… Есть работа! Утро рабочего дня…Главред открывает рабочую почту и видит десятки писем от людей, желающих работать в команде AndroidInsider.ru. Среди них есть очень достойные кандидаты, но вот незадача — текучки кадров у нас нет. Впрочем, пришло время расширяться, а это значит...

[Перевод] Чтобы вести разработку быстрее, необходимо замедлиться Примечание переводчика: Начало года — отличное время, чтобы вдумчиво оценить прошедший год. Окинуть широким взглядом происходящее и понять, как сделать 2019 год лучше, спокойнее и продуктивнее. В этом деле нам показалась полезной статья How To Slow Down to Go Faster Than E...

Sportiduino — система электронной отметки для спортивных соревнований, часть 3 → Часть 1, Часть 2 Прошёл год после прошлой публикации, и мне часто задают вопрос, что изменилось с тех пор. Если кратко, то был произведён переход на чипы Ntag, сделаны небольшие изменения в схеме для обеспечения лучшей чувствительности, громкости сигнала и корректного х...

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

[Перевод] Введение в систему модулей Go Грядущий релиз версии 1.11 языка программирования Go принесет экспериментальную поддержку модулей — новую систему управления зависимостями для Go. (прим.перев.: релиз состоялся) Недавно я уже писал об этом небольшой пост. С тех пор кое-что слегка поменялось, да и мы стали бл...

External — GUI для Golang Приветствую вас, коллеги! Около месяца назад я опубликовал здесь статью GUI-фреймворки — на поток, где предлагалась технология создания GUI-фреймворков для разных языков программирования, основанная на подключении (tcp/ip или каком другом) к внешнему процессу, играющему рол...

Cursor API как альтернатива стандартному Paging Недостатки стандартного Paging API Изначально мы должны понять, почему подход с offset pagination не годится для больших датасетов с помощью следующего примера: Клиент предоставляет два параметра — LIMIT для ожидаемого максимального количества результатов и OFFSET для смеще...

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

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

[Перевод] Понимаем RBAC в Kubernetes Прим. перев.: Статья написана Javier Salmeron — инженером из хорошо известной в Kubernetes-сообществе компании Bitnami — и была опубликована в блоге CNCF в начале августа. Автор рассказывает о самых основах механизма RBAC (управление доступом на основе ролей), появившегося в...

Как отказаться от ненужных рассылок с помощью одной кнопки. Опыт команды Яндекс.Почты Согласно нашим исследования, не менее 20% пользователей страдают от большого числа непрочитанных писем. Львиная доля этих писем — регулярные рассылки. Большая часть из них никогда не будет открыта и прочитана — они лежат мёртвым грузом и отвлекают от полезных писем. Для ре...

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

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

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

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

Новый загрузчик Buhtrap Сегодня мы расскажем вам о новом подходе к рассылке ВПО группировкой Buhtrap. Модуль загрузчика 19 декабря нам стало известно о вредоносной рассылке, содержащей исполняемый файл (md5: faf833a1456e1bb85117d95c23892368). Файл принимал различные названия: «Сверка за декабрь....

К вопросу о кривых Безье, быстродействии Ардуино и одном интересном сайте, или как я провел выходные «Решить парадокс Грея с дельфинами может любой, а ты попробуй сделать это без дельфинов. » Вообще то планировал я провести выходные несколько по иному, съездить на Copter Huck (не то, чтобы я был фанатом коптеров, просто посмотреть, что молодежь придумывает, потусоваться ...

Восход Cолнца Вручную #2: По хардкору за IDE, Cmake, и моё разочарование в животных В предыдущей статье имел наглость использовать CLion в качестве IDE. И тут же прибежал человек с вопросом: ой, проприетарная платная поделка, продался, зажрался, итп. Справедливости ради, на Хабре такой комментарий был всего один, но в реальности их тысячи. Например, крайний...

[Перевод] Внедрение зависимостей в Go Недавно я создал небольшой проект на языке Go. После нескольких лет работы с Java я был сильно удивлён тем, как вяло внедрение зависимостей (Dependency Injection, DI) применяется в экосистеме Go. Для своего проекта я решил использовать библиотеку dig от компании Uber, и он...

Расширение PHP и Kotlin Native. Часть первая, наивная В этой статье рассматривается самый наивный и простой подход к созданию расширения PHP с использованием Kotlin Native. Обращаю внимание, что не на, а с использованием. Это скорее некий туториал с описанием возникших при скрещивании ужа с ежом проблем и путей их решения. Отк...

Символьные вычисления средствами Python. Часть1. Основы Реализация алгоритмов на языке Python с использованием символьных вычислений и интерпретируемого языка очень удобна при решении задач математического моделирования процессов и объектов. Основываясь на библиотеке SymPy, Python с успехом справляется с решением уравнений и си...

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

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

Хитрое префиксное дерево Си реализация Введение Прошло долгих четыре месяца с момента публикации статьи о моей попытке низкоуровневой реализации префиксного дерева. Несмотря на все мои старания потолок на который оказалась способна моя прошлая реализация префиксного дерева был ~80 тыс. слов в секунду. Я потратил...

Как избавиться от уведомлений о фантомных апдейтах в iOS 12 Уведомление о доступности «фантомного» обновления, которое получают бета-тестеры iOS 12, можно отключить путем изменения даты на затронутом устройстве. В этом на собственном опыте убедились читатели AppleInsider.ru, сообщившие о найденном решении в редакцию. Чтобы перевес...

Почти OCR для получения пароля VPNBook. PHP + Mikrotik Недавно VPNBook стал публиковать пароль вместо прямого текста в виде изображения. «Ну как же так» — подумал я и начал искать пути решения этой проблемы. Распознаем «картиночный» пароль VPNBook на PHP. И, конечно, скрипт для Mikrotik. Читать дальше →

Big Data resistance 1 или неуловимый Джо. Интернет анонимность, антидетект, антитрекинг для анти-вас и анти-нас Доброго времени прочтения, уважаемые читатели Хабра. Прочитал за последнее время ряд статей, в том числе на Хабре, по цифровым отпечаткам браузеров и слежке за пользователями в Интернете. Например статья Анонимная идентификация браузеров и Ловушка в интернете журнал Forbes,...

Apple переходит на китайские компоненты для iPhone, iPad и MacBook Хотя Apple и является самой дорогой корпорацией мира и имеет максимально высокую наценку на свою продукцию, это не мешает её руководству искать новые пути снижения себестоимости товаров. По сообщению ресурса DigiTimes, за последнее время купертинцы значительно расширили…

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

Создание приложения на .NET Core и Kubernetes: наш опыт Всем привет! Сегодня расскажем об опыте одного из наших DevOps проектов. Мы решили реализовать новое приложение под Linux с использованием .Net Core на микросервисной архитектуре. Мы рассчитываем, что проект будет активно развиваться, а пользователей будет всё больше и бо...

Центробанк просит полномочий для досудебной блокировки вредоносных сайтов На днях стало известно о том, что ЦБ планирует получить право без суда блокировать сайты, используемые финансовыми мошенниками. Эта идея уже вышла из стадии концепта, е обсуждали на совещании у вице-премьера Максима Акимова, пишут «Ведомости». Для реализации запрашиваемой ...

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

Дизайнеры и разработчики: заклятые друзья и лучшие враги Привет, Хабр! Меня зовут Лена Жукова, я фронтенд-разработчик в Сбертехе. В посте я разберу не новую, но всегда актуальную тему — взаимоотношения дизайнера и фронтенд-разработчика. Статья пригодится новичкам и командам, у которых еще не выстроены процессы работы. Рассмотрим ...

[Перевод] Что нужно ждать о создании стратегий для торговли на бирже: насколько эффективно машинное обучение В нашем блоге на Хабре мы публиковали адаптированные переводы материалов из блога The Financial Hacker, посвященные вопросам создания стратегий для торговли на бирже. Ранее мы обсудили поиск рыночных неэффективностей, создание моделей торговых стратегий, и принципы их прог...

[Перевод] Dead Cells: использование 3D-конвейера для 2D-анимации Можно сказать, что девиз почти всех инди-разработчиков — это «Большие мечты при ограниченных ресурсах». Когда я начал работать над первой игрой Motion Twin для Steam Dead Cells, эта фраза стала и моим девизом. Меня зовут Тома Вассёр, в течение целого года я был единственны...

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

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

Стоимость комплектующих iPhone XS Max составляет $443 iPhone XS Max с 256 ГБ памяти стоит, по оценкам, 443 долл. США, согласно предоставленным данным TechInsights в результате вскрытия нового устройства. Комплектующие iPhone XS Max почти на 50$ дороже, чем стоимость компонентов в размере $ 395,44 для iPhone X. В iPhone XS Max с...

Покрываем A/B-тесты UI-тестами. Как не запутаться в собственном коде Привет, Хабр! Меня зовут Виталий Котов, я работаю в компании Badoo и бо́льшую часть времени занимаюсь вопросами автоматизации тестирования. Решением одного такого вопроса я и хочу поделиться в этой статье. Речь пойдёт о том, как мы организовали процесс работы UI-тестов с A...

Blizzard уменьшила поддержку Heroes of the Storm и отменила киберспортивные матчи в 2019 году Завершается очередной год — самое время оглянуться назад и обдумать планы на будущее. Именно это и сделали разработчики Heroes of the Storm из Blizzard Entertainment. Эта MOBA, объединяющая в одной вселенной героев из различных серий компании, постепенно бледн...

Автоматизируем UI-тесты Android приложения с использование паттерна Page Object Паттерн Page Object появился в тестировании web и очень хорошо себя там зарекомендовал. Когда я начал автоматизировать тесты для android приложения, то первым делом подумал про него. Поискал информацию в сети, поспрашивал коллег и, в принципе, не нашел доводов не попробова...

Как я создала прибыльное Android приложение по распознаванию текста Всем привет. В прошлой статье я рассказывала, как заработать свои первые 100$ в Google Play Market. В этой статье я больше расскажу о разработке и управлении проектом. Предмет статьи — Android приложение по распознаванию текста, которое в маркете 4 месяца и имеет почти 10 0...

[на правах рекламы] Новогоднее безумие: Windows 10 Pro за $11.47, Office 2016 за Pro $25.98 и Office 2019 за $53.32 Новогодние и Рождественские каникулы не за горами, и все уже ищут лучшие праздничные скидки! На случай, если вы в последнее время пытаетесь обновить программное обеспечение компьютера, для вас есть несколько хороших предложений. *** на правах рекламы ***

Навигация с архитектурными компонентами от Google. Часть 1. Знакомство Одной из проблем, с которыми сталкивается разработчик немного подразросшегося приложения — навигация между экранами. Когда сценарии становятся нелинейными, уже тяжело обойтись стандартными startActivity и changeFragment. Эту проблему каждый решал по-своему: делал какое-то св...

[Перевод] Сущности в DDD-стиле с Entity Framework Core Эта статья о том, как применить принципы Domain-Driven Design (DDD) к классам, которые Entity Framework Core (EF Core) использует для отображения на базу данных и почему это может быть полезно. TLDR В DDD-подходе есть множество преимуществ, но главное – DDD переносит код оп...

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

Анатомия инцидента, или как работать над уменьшением downtime Рано или поздно в любом проекте настает время работать над стабильность/доступностью вашего сервиса. Для каких-то сервисов на начальном этапе важнее скорость разработки фич, в этот момент и команда не сформирована полностью и технологии выбираются не особо тщательно. Для др...

Как сервис-провайдер делал свой Service Desk Всем привет! Меня зовут Алексей Волков. Bместе с моим коллегой, разработчиком Александром Соловьевым (alsov), мы делаем внутренние веб-сервисы в DataLine. Этой осенью мы запустили свой сервисдеск на замену BMC Remedy. В посте расскажу, почему мы отказались от готового решени...

[Перевод] Конференция DEFCON 19. Anonymous и мы. Часть 2 Конференция DEFCON 19. Anonymous и мы. Часть 1 Джошуа Корман: вы знаете, я не сторонник самосуда, но я не думаю, что подобный подход должен исчезнуть. Это важный вопрос. Если мы думаем, что наша отрасль дисфункциональна и не уверены, что будем услышаны, тогда давайте примен...

Удобный способ тестирования React-компонентов Я написал построитель дополнительных отчетов (custom reporter) для Jest и выложил на GitHub. Мой построитель называется Jest-snapshots-book, он создает HTML-книгу снимков компонентов React-приложения. В статье речь пойдет о том, что такое Jest, snapshot-тестирование, для ...

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

opencv4arts: Нарисуй мой город, Винсент OpenCV — библиотека с историей непрерывной разработки в 20 лет. Возраст, когда начинаешь копаться в себе, искать предназначение. Есть ли проекты на ее основе, которые сделали чью-то жизнь лучше, кого-то счастливее? А можешь ли ты сделать это сам? В поисках ответов и желании ...

Дашборды Check Point — вот что я люблю — Зачем вы мне втираете про удобный интерфейс? Это вообще не важно. Меня интересует только функционал! (из беседы с клиентом) При выборе NGFW (или UTM) чаще всего смотрят исключительно на функционал устройства. С этим подходом трудно поспорить (да и не нужно). Устройство б...

[Из песочницы] Записки IoT-провайдера. Введение Здравствуйте, уважаемые читатели Хабра. Меня зовут Олег Плотников, я директор Центра Промышленного Интернета одной из IT-компаний. Этой статьей я бы хотел начать целый цикл заметок про Интернет Вещей и конкретно про технологию LoRa. О ней уже не раз писали на Хабре, писали и...

Зоопарк AFL фазеров На Хабре уже пару раз появлялись статьи, поднимающие тему American Fuzzy Lop (AFL) (1,2). Но в данной статье речь пойдет не о классическом AFL, а о вспомогательных утилитах для него и его модификациях, которые, на наш взгляд, могут значительно улучшить качество фаззинга. Е...

Facebook платит $20 в месяц за установку своего псевдо-VPN Многие читатели Хабра не верят, что на продаже своих персональных данных россияне могут зарабатывать до 5000 рублей в месяц, как сказали эксперты ФРИИ. Но последний скандал с Facebook показывает, что эта оценка имеет право на существование. Оказалось, что Facebook уже боле...

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

Беспроводные клавиатуры для одновременной работы с Windows, MacOS, Android и iOS Беспроводные универсальные клавиатуры стали для меня открытием совсем недавно, когда появилась необходимость в подобном устройстве. В моем случае необходимость написания статей, решения определенных задач в программировании и музыке создают некоторые сложности. Например, с...

Опыт внедрения автоматизации в процесс ручного тестирования на примере Android-приложения Совместно с нашими партнёрами мы активно разрабатываем, тестируем и поддерживаем семейство приложений для разных платформ: Android, iOS, Windows. Приложения активно развиваются, вместе с чем увеличивается и объём тестирования, в первую очередь — регрессионного. Мы решили по...

Быстрый старт с WPF. Часть 1. Привязка, INotifyPropertyChanged и MVVM Всем привет! По разным причинам большинство из нас использует десктопные приложения, как минимум, браузер :) А у некоторых из нас возникает необходимость в написании своих. В этой статье я хочу пробежаться по процессу разработки несложного десктопного приложения с использова...

Цветомузыка на светодиодной ленте WS2812 Привет дорогой читатель. Предлагаю к сборке еще один вариант цветомузыки. Данный вариант построен на модуле с микроконтроллером STM32F103C8T6. Схема цветомузыки Читать дальше →

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

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

[Перевод] Как обеспечивается высокая доступность в Kubernetes Прим. перев.: Оригинальная статья была написана техническим писателем из Google, работающим над документацией для Kubernetes (Andrew Chen), и директором по software engineering из SAP (Dominik Tornow). Её цель — доступно и наглядно объяснить основы организации и реализации h...

[Из песочницы] Взлет Хелидона Привет, Хабр! Представляю вашему вниманию перевод статьи Дмитрия Корнилова Helidon Takes Flight. Я не являюсь сотрудником Oracle, но мне показалась интересной статья о новом, набирающем популярность, типе фреймворков. Итак, поехали… Сегодня хороший день. Сегодня мы представ...

[Из песочницы] Chisel — (не совсем) новый подход к разработке цифровой логики С развитием микроэлектроники, rtl дизайны становились все больше и больше. Реюзабилити кода на verilog доставляет массу неудобств, даже с использованием generate, макросов и фишек system verilog. Chisel же, дает возможность применить всю мощь объектного и функционального пр...

Разыгрываем билеты на воркшоп «Advanced React State Management With MobX» Привет, хаброчитатели! Мы с классными новостями. Как только наши коллеги узнали, что Michel Weststrate готов сделать воркшоп в Москве, сразу собрали группу желающих. И решили разыграть два билета на мастер-класс среди читателей хаброблога. Про воркшоп и условия розыгрыша ч...

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

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

Gartner: слишком мало организаций готовы перейти на цифровые способы работе Многие организации стремятся развивать мобильные, более гибкие подходы к работе, выполняемой в команде, и всё больше компаний ищут содействия в …

[Перевод] Создание игры для Game Boy Несколько недель назад я решила поработать над игрой для Game Boy, создание которой доставило мне большое удовольствие. Её рабочее название «Aqua and Ashes». Игра имеет открытые исходники и выложена на https://github.com/InvisibleUp/AquaAndAshes. Как мне пришла в голову эт...

Становление дизайнера: от фриланса из общежития до работы с топовыми компаниями и запуска своего продукта Эта статья стала самой объемной, важной, но, при этом, самой простой в написании, а все потому, что я не придумывал сюжет, не искал факты и не формировал заключение. В ней все так, как было, начиная с моего приезда в Москву из маленькой деревни, до сегодняшнего дня. (~ 17...

Веб-компоненты. Часть 3: html шаблоны и импорты Вступление Приветствую коллеги. Данная статья является третьей и последней статьей в серии статей о веб-компонентах.Первые две статьи доступны по ссылкам: Веб компоненты. Часть 1: Пользовательские элементы Веб-компоненты. Часть 2: Теневой DOM В данной статье речь пойдет о &...

Котики vs нейросеть 2. Или запускаем SqueezeNet v.1.1 на Raspberry Zero в realtime (почти) Всем привет! После написания не совсем серьезной и не особо полезной в практическом ключе первой части меня слегка заглодала совесть. И я решил довести начатое до конца. То есть выбрать-таки реализацию нейросети для запуска на Rasperry Pi Zero W в реальном времени (конечно,...

[Из песочницы] Реализация Вавилонской библиотеки В этой статье Вы узнаете всё о Вавилонской библиотеке, а самое главное — как воссоздать её, да и вообще любую библиотеку. Читать дальше →

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

Hello World для получения данных с Bluetooth (BLE) устройства через C# Добрый день. Пару недель назад я столкнулся с проблемой, что нормальной и современной статьи по первому получению данных с Bluetooth просто нет. И пришлось повозиться чтобы понять с чего начать и как это вообще осуществить. И чтобы люди не повторяли мои ошибки, вот краткое э...

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

Kubernetes кластер за $20 в месяц TL; DR Поднимаем кластер для обслуживания веб-приложений без записи состояния (stateless web applications) вместе с ingress, letsencrypt, не используя средства автоматизации вроде kubespray, kubeadm и любых других. Время на чтение: ~45-60 минут, на воспроизведение действий: ...

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

AWS re:Invent 2018 — впечатления от первого дня На Хабре мало публикаций об одной из самых масштабных технологических конференций. Это AWS re:Invent, которая стартанула сегодня (26 ноября) в Лас Вегасе. Понято, что в русскоязычном пространстве использование AWS может быть несколько ограниченно. Тем не менее, лидер облач...

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

Как правильно и неправильно спать Не так давно мимо нас пробегала неплохая статья об ужасном состоянии производительности современного ПО (оригинал на английском, перевод на Хабре). Эта статья напомнила мне об одном антипаттерне кода, который встречается весьма часто и в общем кое-как работает, но приводит к...

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

Вопросы не мальчика, а джуна. 22 вопроса работодателю на собеседовании на позицию «Middle Python-разработчик» Введение За 2 года мне посчастливилось посетить более сорока собеседований в качестве кандидата на позицию «Middle Python-разработчик». На последних пятнадцати собеседованиях я понял необходимость задавать вопросы работодателю, чтобы в дальнейшем не столкнуться с неожиданн...

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

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

Google добавит в Chrome важную защитную функцию Разработчики Google намерены внедрить в Chrome для настольных платформ функцию защиты от атак типа drive-by, состоящих в самопроизвольной загрузке на устройство нежелательных компонентов. Чаще всего загрузку инициируют плавающие фреймы на скомпрометированных веб-сайтах, что...

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

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

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

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

Ландшафт сервисов облачного машинного перевода. Лекция в Яндексе Это последний доклад с шестого Гипербатона, который мы опубликуем на Хабре. Григорий Сапунов из Intento поделился подходом к оценке качества сервисов облачного машинного перевода, рассказал о результатах оценки и главных отличиях между доступными сервисами. — Меня зовут Гр...

Защита данных облачного Microsoft Office 365 с помощью решения Veeam Все больше организаций переходит к использованию облачного Microsoft Office 365, и Veeam продолжает обеспечивать для них защиту данных – наши решения работают 24х7, а разработчики следуют календарю релизов и обновлений. Так, когда многие наши читатели были на отдыхе в разгар...

Как Яндекс создавал дополненную реальность в Картах для iOS. Опыт использования ARKit Остается всё меньше людей, которых можно удивить дополненной реальностью (AR). Для кого-то эта технология ассоциируется с игрушкой на пару часов. Другие находят ей более практичное применение. Меня зовут Дмитрий, и я разрабатываю Яндекс.Карты для iOS. Сегодня я расскажу чита...

bobaos.pub — KNX TP/UART, Raspberry Pi и Redis Нет предела совершенству. Казалось бы, все работало хорошо, исправлялись мелкие баги и прочее. Сейчас я расскажу, во-первых, о проблемах, с которыми столкнулся за все время, прошедшее с момента предыдущей статьи, и, во-вторых, о решениях, которые способствовали текущему ст...

Apple Metal в MAPS.ME Всем привет! В мире существует огромное количество приложений на OpenGL, и, кажется, Apple c этим не вполне согласна. Начиная с iOS 12 и MacOS Mojave, OpenGL переведен в статус устаревшего. Мы интегрировали Apple Metal в MAPS.ME и готовы поделиться своим опытом и результата...

Всё под контролем. Зачем нужны системы мониторинга инженерной инфраструктуры центров обработки данных Хабр, привет! Я ведущий инженер компании «ЛАНИТ-Интеграция». Работаю здесь больше 20 лет. Последние семь лет занимаюсь инженерным обеспечением ЦОДов: устанавливаю и запускаю оборудование в работу. С каждым годом появляется всё больше требований к надежности и удобству испо...

Журнал «Мир фантастики» возрождается из пепла Наверняка многие наши читатели помнят, о таком замечательном журнале, как «Мир фантастики», который на протяжении 15 лет знакомил читателей с фэнтези и фантастикой во всех их многообразных проявлениях: от книг и сериалов до кино и настолок. А в 2006 он был даже признан лучши...

Книга «Head First Agile. Гибкое управление проектами» Всем привет! Самое время переходить на гибкую разработку. Наконец-то найден современный, последовательный подход к решению тех проблем, с которыми сражались целые поколения команд разработчиков. Гибкие команды используют простые понятные практики, эффективность которых в ре...

[Перевод] Angular 6+ полное руководство по внедрению зависимостей.  providedIn vs providers:[] В Angular 6 появился новый улучшенный синтаксис для внедрения зависимостей сервисов в приложение (provideIn). Несмотря на то, что уже вышел Angular 7, эта тема до сих пор остается актуальной. Существует много путаницы в комментариях GitHub, Slack и Stack Overflow, так что ...

Google Assistant становится значительно умнее. Разработчики добавляют две важные функции Неделю назад голосовой ассистент Google получил поддержку интересной особенности. Тогда помощник научился отправлять пожертвования в популярные фонды. Для этого было достаточно назвать сумму и название организации, причём в случае необходимости последнюю уточняет сам Assist...

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

Большой портальный фрезерный станок с ЧПУ своими руками Здравствуй дорогой читатель, в этой статье хочу поделиться своим опытом постройки фрезерного портального станка с числовым программным управлением. Читать дальше →

DMA: мифы и реальность Введение В прошлой статье («Часть 2: Использование блоков UDB контроллеров PSoC фирмы Cypress для уменьшения числа прерываний в 3D-принтере») я отметил один очень интересный факт: если автомат в UDB изымал данные из FIFO слишком быстро, он успевал заметить состояние, что н...

Проектирование типами: Как сделать некорректные состояния невыразимыми на C# Как правило статьи, рассказывающие о проектировании типами, содержат примеры на функциональных языках — Haskell, F# и других. Может показаться, что эта концепция неприменима к объектно-ориентированным языкам, но это не так. В этой статье я переведу примеры из статьи Скотта В...

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

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

UE4 | Инвентарь для Multiplayer #4 | Создание и подключение конейнера Список статейUE4 | Инвентарь для Multiplayer #1 | Хранилище данных на DataAsset UE4 | Инвентарь для Multiplayer #2 | Подключение Blueprint к C++ UE4 | Инвентарь для Multiplayer #3 | Структура взаимодействия UE4 | Инвентарь для Multiplayer #4 | Создание и подключение конейнер...

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

[DotNetBook] Span: новый тип данных .NET С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом (уже готово около 200 страниц книги, так что добро пожаловать в конец статьи за ссылками). Как язык, так и платформа существуют уже много лет: и все...

Некоторая неудобная правда об LDAC Эта статья – продолжение обсуждения, зарождённого в предыдущей статье. Как показала практика, работа команды маркетологов Sony дала свои плоды – и кодек LDAC в своей Bluetooth-реализации набирает популярность и даже завоевал некоторое количество фанатов. Разберём, действ...

[Из песочницы] DNS прокси на Node.JS своими руками Понесло пакет по кочкам в дальний лес за DNS… Л. Каганов "Гамлет на дне"При разработке сетевого приложения иногда возникает необходимость запустить его локально, но обращаться к нему по реальному доменному имени. Стандартное проверенное решение — прописать домен в ...

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

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

Ретроспектива технологических стартапов. Как это было в 90-х и чуть раньше Предыдущая статья цикла: Ретроспектива технологических стартапов. Z3 — первый релейный компьютер В этой статье продолжаю ретроспективу стартапов. Перенесёмся из Германии Второй Мировой в молодую Россию начала 90-х прошлого столетия. В этот раз будет много примеров о том к...

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

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

IT Релокация. Обзор плюсов и минусов жизни в Бангкоке год спустя Моя история началась где-то в октябре 2016 года когда в голове поселилась мысль «А почему бы не попробовать работать за рубежом?». Сначала были простые интервью с аутсорсинг компаниями из Англии. Было очень много вакансий с описанием «возможны частые командировки в Америку...

Граали соревнования Telecom Data Cup. Самое жаркое впереди В начале ноября стартовал чемпионат по машинному обучению и анализу данных под кодовым названием Telecom Data Cup, организаторами которого являются Mail.Ru Group и МегаФон. Соревнование запущено на уже известной платформе ML Boot Camp. На ней стараемся проводить большинс...

[] Бикватернионы Если вы открыли данную статью, то наверняка уже слышали о кватернионах, и возможно даже используете их в своих разработках. Но пора подняться на уровень выше — к бикватернионам. Можно и еще выше — к седионам! Но не сейчас. В данной статье даны основные понятия о бикватернио...

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

Экструдер Бульдог для Anycubic i3 Mega С момента использования моего Anycubic i3 Mega все время терзали меня постоянные сомнения, ну почему либо стучит экструдер, либо снижай скорость?Со временем (и опытом) для своего принтера решил оптимальную скорость для сопла 0.4 около 50мм/сек, а для сопла 0.6 около 30-40мм/...

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

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

[Из песочницы] VR-игра на блокчейне с использованием ERC-1155 токена: React 360 или Unity? VR-игры всегда вызывали у нас восхищение. Это некое подобие магии в цифровой оболочке, полный эффект погружения в другой мир. На всех конференциях VR-проектам уделяется наибольшее внимание, масштабные стенды, сотни зрителей, ожидающих своей очереди нырнуть в свежесозданную в...

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

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

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

Что нового: стали известны подробности о реализации новой архитектуры Zen 2 В начале месяца в AMD рассказали о Zen 2. Первые чипы ожидаются уже в 2019. Рассказываем об особенностях архитектуры и о том, что она даст в контексте AMD vs Intel. Читать дальше →