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

Эволюция H2 — оконные функции, CTE, JSON/XML во встраиваемой базе данных Есть open source проекты которые стали коммерчески успешным мейнстримом, как например PostgreSQL/Elasticsearch. Другие, к примеру RethinkDB, проиграли на рынке и остановили разработку. А проект H2 database встраиваемой базы данных, написанной на языке java, развивается и здр...

Когда стандарта HTTP мало. Коммитим в Micronaut Всем привет, меня зовут Дмитрий, и сегодня я расскажу о том, как производственная необходимость заставила меня стать контрибутором для фреймворка Micronaut. Наверняка многие о нём слышали. Если вкратце, то это легковесная альтернатива Spring Boot, где основной упор сделан не...

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

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

Расширяемый Postgres На прошедшем PGConf.Russia был доклад про расширение MobilityDB, а Андрей Бородин предложил идею расширять методы индексов под задачу. Продолжу тему с расширением Postgres под решаемую задачу на примере расширения сделанного в рамках HighLoad Cup 2018, код доступен на GithH...

Взаимодействие R с базами данных на примере Microsoft SQL Server и других СУБД Поскольку львиная доля бизнес информации храниться в базах данных. На каком бы языке программирования вы не писали, вам придётся производить различные действия с ними. В этой статье я расскажу о двух интерфейса для работы с базами данных в R. Большая часть примеров демонстри...

Учимся писать Waves смарт-контракты на RIDE и RIDE4DAPPS. Часть 1 (Многопользовательский кошелек) Всем привет! Совсем недавно Waves Labs анонсировал конкурс для разработчиков приуроченный к релизу в тестовую сеть расширения языка смарт-контрактов RIDE для децентрализованных приложений Ride4Dapps! Мы выбрали кейс DAO, так как Ventuary планирует заниматься разработкой dAp...

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

[Из песочницы] Логирование всех запросов к Базе данных в Asp.Net Boilerplate 4.3 .Net Core 2.1 Часто в проекте возникает непонятная ошибка для которой необходимо максимальное логирование всех запросов к Базе данных. Статья поможет тем, кто пишет (развертывает на сервере) один из своих первых проектов на Asp.Net Boilerplate. Читать дальше →

Использование DiagnosticSource в .NET Core: практика В предыдущей статье я рассказал про механизм DiagnosticSource и на простом примере показал, как с его помощью можно перехватывать запросы в базу данных через классы SqlConnection и SqlCommand и измерять время их выполнения. В настоящее время DiagnosticSource уже используется...

[Из песочницы] Миграция данных с mongoDB и Spring Boot Каждый разработчик рано или поздно встречается с необходимостью миграции данных в базе данных. На нашем проекте мы используем mongoDB в качестве базы данных. Мы подходили к миграции данных разными способами: писали js скрипты и запускали непосредственно в базе данных исполь...

[Из песочницы] PHP: Как разобрать сложный XML-файл и не утонуть в собственном коде Доброе время суток! Сфера применения XML-формата достаточно обширна. Наряду с CSV, JSON и другими, XML — один из самых распространенных способов представить данные для обмена между различными сервисами, программами и сайтами. В качестве примера можно привести формат Commerc...

Сравнение компараторов для синхронизации схем и данных баз данных MS SQL Server Описание общей потребности в синхронизации изменений При работе с базами данных часто приходится решать проблему синхронизации изменений. Если в компании используется всего одна промышленная среда, то в дополнение к ней требуется как минимум еще одна дополнительная среда для...

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

[Из песочницы] Деплоим изоморфное веб-приложение на примере Nuxt.js В средних и больших проектах сайт не ограничивается одним сервисом  —  к примеру только сайтом, как правило существует база данных, API, сервер который маршрутизирует запросы ко всем этим сервисам. Выкатывать и обновлять все это без какой-либо стандартизации непросто, а мас...

Трансляция проектов и библиотек из Altium Designer в PADS Professional Часто у инженеров возникает необходимость транслировать проекты из одной САПР в другую. На предприятиях не редко бывает такая ситуация, когда разные отделы проектируют в разных САПРах. Также трансляция проектов может потребоваться, когда ваша система проектирования уже не с...

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

[Из песочницы] Три неочевидных примера использования шаблонизаторов в backend-е С одной стороны, предмет действительно был квадратным. C другой стороны он был круглым. Но с третьей стороны, с которой должен быть треугольник, предмет вышел кривой и косой. — Алешенька идет на совещанку? — в дверь просунулась Леночкина заинтересованная физиономия. — Алеш...

Написание UDR на языке Pascal В Firebird уже достаточно давно существует возможность расширения возможностей языка PSQL с помощью написания внешних функций — UDF (User Defined Functions). UDF можно писать практически на любом компилируемом языке программирования. В Firebird 3.0 была введена плагинная арх...

Security Week 25: уязвимость в Evernote и сотни взломанных интернет-магазинов Специалисты компании Guardio обнаружили (новость, исследование) интересную уязвимость в Evernote. Точнее, не в самом приложении для хранения заметок, а в расширении для браузера Google Chrome. Evernote Web Clipper позволяет сохранять веб-страницы, причем как целиком, так и ч...

Вулканический поросенок, или SQL своими руками Сбор, хранение, преобразование и презентация данных — основные задачи, стоящие перед инженерами данных (англ. data engineer). Отдел Business Intelligence Badoo в сутки принимает и обрабатывает больше 20 млрд событий, отправляемых с пользовательских устройств, или 2 Тб входя...

[Из песочницы] Заметки верстальщика: Полезные расширения Google Chrome в 2019 году В моем браузере установлено около 30 расширений, которые упрощают жизнь и работу в интернете. В этой статье я хочу поделиться 10 актуальными расширениями Google Chrome для верстальщика, которые постоянно использую при разработке сайтов. Читать дальше →

Chrome расширения для веб-разработки и работы с GitHub Привет всем. Хочу поделиться с вами некоторыми из расширений для Хрома, которые я использую при разработке, анализе сайтов, в работе с GitHub и просто в повседневной жизни. Уверен, что для большинства читателей, список этих расширений не будет открытием, но те, кто узнает ...

[Перевод] Python в Visual Studio Code: сентябрьское обновление расширения Мы рады сообщить, что сентябрьское обновление расширения Python для Visual Studio Code уже доступно. Вы можете загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Если у вас уже установлено расширение Python, вы так...

[Перевод] Python в Visual Studio Code – октябрьское обновление Мы рады сообщить о доступности октябрьского обновления расширения Python для Visual Studio Code. Вы можете загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Если у вас уже установлено расширение Python, вы также...

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2) В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach. Данная статья является продолжением, но может быть рассмотрена как автономное р...

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

[Перевод] Python в Visual Studio Code. Апрельский выпуск Мы рады сообщить, что в апреле 2019 вышло обновление расширения Python для Visual Studio Code. Вы можете загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Вы можете узнать больше о поддержке Python в Visual Studio...

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

Математические неопределенности на примере Python Всем привет! Мы очень часто пользуемся привычными числами в наших любимых языках программирования. Привычные это 1, -1.5, pi или даже комплексные. А вот NaN, +Inf, -Inf используется нами гораздо реже. Примечание: В статье я использую элементарные функции Python версии 3.6....

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

[Перевод] Руководство по аутентификации в Node.js без passport.js и сторонних сервисов Автор статьи, перевод которой мы сегодня публикуем, говорит, что сейчас можно наблюдать рост популярности таких сервисов аутентификации, как Google Firebase Authentication, AWS Cognito и Auth0. Индустриальным стандартом стали универсальные решения наподобие passport.js. Но, ...

Модельно ориентированное проектирование. Создание достоверной модели, на примере авиационного теплообменника «Если на клетке слона прочтёшь надпись «буйвол», не верь глазам своим» Козьма Прутков В предыдущей статье о модельно-ориентированном проектировании было показано, зачем нужна модель объекта, и доказано, что без этой модели объекта про model based design можно говорить толь...

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

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 2 В предыдущей части мы разобрались с основными возможностями Liquibase и написали базовый пример Spring boot приложения, который использует Liquibase для инициализации БД. Полный код базового приложения можно увидеть тут. В этой статье мы поговорим про liquibase-maven-plugin ...

Умный сервис кэша на базе ZeroMQ и Tarantool Руслан Ароматов, главный разработчик, МКБ Привет, Хабр! Я работаю бэкенд-разработчиком в Московском кредитном банке, и за время работы у меня накопился некоторый опыт, которым я хотел бы поделиться с сообществом. Сегодня я расскажу, как мы писали свой собственный сервис к...

Xamarin.Forms — декоративное отображение QRCode с помощью SkiaSharp Для вывода/чтения штрихкодов есть популярная библиотека ZXing. Она умеет выводить и считывать много разных форматов: QRCode, Aztec и другие, более 2 десятков. Для считывания кодов в ней есть готовый контрол ZXingScannerView. Требуется минимум кода, чтобы добавить этот функ...

Software Defined Radio — как это работает? Часть 4 Привет Хабр. В третьей части было рассказано, как получить доступ к SDR-приемнику посредством языка Python. Сейчас мы познакомимся с программой GNU Radio — системой, позволяющей создать достаточно сложную конфигурацию радиоустройства, не написав ни единой строчки кода. Д...

Использование DiagnosticSource в .NET Core: теория DiagnosticSource — это простой, но весьма полезный набор API (доступен в NuGet пакете System.Diagnostics.DiagnosticSource), который, с одной стороны, позволяет различным библиотекам отправлять именованные события о своей работе, а с другой — позволяет приложениям подписывать...

DEV Labs 2019. Python для решения нетривиальных задач. Онлайн-митап Уважаемые коллеги! Приглашаем принять участие в онлайн-митапе серии DEV Labs, который пройдёт 20 марта и будет посвящён языку Python. Расскажем о применении Python в сфере проектирования систем «умного дома» и рассмотрим примеры решения задач по распознаванию человеческих д...

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

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

[Перевод] Sketch + Node.js: генерируем иконки для множества платформ и брендов Нет ничего проще, чем добавить иконку в проект: нужно всего лишь написать дизайнеру, он экспортирует её из Sketch и пришлет вам нужный вариант, а вы используете ее у себя в коде. Если же у вас с десяток проектов, несколько платформ и множество А/Б-тестов на дизайн, то дост...

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

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

Как возникают «умные города» По данным ООН, на 2018 год 55,3 % населения Земли живут в городах. К 2030 году 60 % людей по всему миру будут жить в городах с населением как минимум в 0,5 млн человек. Рост в 5 % за 12 лет — это свидетельство продолжающегося процесса урбанизации. Поэтому сейчас важно понять...

[Из песочницы] Функциональные компоненты с React Hooks. Чем они лучше? Относительно недавно вышла версия React.js 16.8, с которой нам стали доступны хуки. Концепция хуков позволяет писать полноценные функциональные компоненты, используя все возможности React, и позволяет делать это во многом более удобно, чем мы это делали с помощью классов. М...

[Из песочницы] Бизнес-логика в базе данных при помощи SchemaKeeper Цель данной статьи — на примере библиотеки schema-keeper показать инструменты, которые позволяют существенно облегчить процесс разработки баз данных в рамках PHP-проектов, использующих СУБД PostgreSQL. Информация из этой статьи, в первую очередь, будет полезна разработ...

Генерация документов с помощью ONLYOFFICE DocumentBuilder Привет, Хабр. Я хочу рассказать об утилите под названием DocumentBuilder, которая позволяет генерировать документы, таблицы и презентации, а также показать, как можно его использовать для решения ваших задач, на примере создания резюме из шаблонов. Работает билдер следующи...

Основы формата GLTF и GLB, часть 2 Данная статья является продолжением рассмотра основ GLTF и GLB форматов. Вы можете найти первую часть статьи здесь. В первой части мы рассмотрели с вами зачем изначально планировался формат, а также такие артефакты и их атрибуты GLTF формата как Scene, Node, Buffer, BufferVi...

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

[Из песочницы] Кое-что об inode Периодически, с целью переезда в ЦРС собеседуюсь в разных крупных компаниях, в основном питера и москвы на должность DevOps. Обратил внимание, что во многих компаниях (во многих хороших компаниях, например в яндексе) задают два сходных вопроса: что такое inode; по каким ...

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

Сколько стоит безопасность веб-приложений (на примере Barracuda WAF-as-a-Service) Итак, в выборе WAF программного обеспечения, устройства или облачных служб можно руководствоваться характеристиками продукта, легкостью развертывания, рейтингами производителя, качеством технической поддержки, примерами внедрений в других компаниях, сходных с вашей, и отзы...

О новых стандартах C++ Сегодня у меня довольно короткий пост. Я бы его и не писал, наверное, но на Хабре в комментах довольно часто можно встретить мнение, что плюсы становятся хуже, комитет делает непонятно что непонятно зачем, и вообще верните мне мой 2007-й. А тут такой наглядный пример вдруг п...

Простое шифрование БД SQlite Так получилось, что я очень люблю использовать SQLite СУБД. Программируя на ассемблере, я иногда нуждаюсь в полноценной СУБД. Мои программы редко превышают в размере несколько сотен килобайт. Понятно, что использовать с ним СУБД в несколько сотен мегабайт по меньшей мере пр...

Основы реактивного программирования с использованием RxJS. Часть 3. Higher Order Observables В данной статье мы рассмотрим, как можно в одном потоке обрабатывать другой, для чего это нужно, и как нам в этом помогут операторы Higher Order Observables (дальше HOO). При работе с потоками часто возникает ситуация, когда необходимо в качестве значения одному потоку пе...

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

Работа с навигацией при рефакторинге легаси проекта в React Native Данный материал посвящен работе по рефакторингу навигации в мобильной разработке. В статье приведены примеры возможных проблем, а также выходов из сложных ситуаций, связанных с работой навигации в мобильной разработке на React Native. Мы рассмотрим основные особенности и ...

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

Как выгружать данные с вложенной структурой из Google BigQuery на примере пользовательских параметров Google Analytics Google BigQuery — популярная облачная база данных, которой пользуются компании по всему миру. Она особенно удобна для работы с “сырыми” данными Google Analytics: в GA 360 интеграция с BigQuery настраивается в несколько кликов, а для бесплатной версии существуют сторонние ск...

Топ-3 расширения для Google Chrome, которые уберегут вас от слежки Тотальной безопасности не бывает, и с этим нужно уметь мириться. Ни одна операционная система или программа не обеспечит вам гарантированной защиты – что-нибудь обязательно «утечет», а затем будет использовано против вас. Тем не менее, это совершенно не означает, что следуе...

PHPUnit. Мокаем Doctrine Entity Manager Во многих современных приложениях для работы с базой данных используется проект Doctrine ORM. Хорошим тоном считается выносить работу с БД в сервисы. А сервисы нужно тестировать. Для тестирования сервисов можно подключить тестовую базу данных, а можно замокать Менеджер сущно...

[Перевод] Windows Subsystem for Linux (WSL) версии 2: как это будет? (FAQ) Под катом расположен перевод опубликованного FAQ'а о деталях будущей WSL второй версии (автор — Craig Loewen). Затронутые вопросы: WSL 2 использует Hyper-V? Будет ли WSL 2 доступна на Windows 10 Home? Что будет с WSL 1? Она будет заброшена? Будет ли возможность одновремен...

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

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

[Перевод] [ПЕРЕВОД] Браузерная ленивая загрузка изображений (атрибут loading) Поддержка встроенной ленивой загрузки изображений и iframe пришла в веб! Начиная с Chrome 76 версии, вы можете использовать новый атрибут loading для ленивой загрузки ресурсов без необходимости писать для этого дополнительный код или использовать стороннюю JavaScript-библи...

Доступ к свойствам внутри поля Jsonb для Npgsql PostgreSQL имеет тип данных Jsonb, который позволяет добавлять к стандартной реляционной модели дополнительные свойства с возможностью поиска по ним. EntityFramework Core с расширением Npgsql умеет вытягивать данные поля в тип System.String Однако для фильтрации по Json свой...

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

Расширение макроса assert() для реализации минимальной обработки ошибок – Сир, я придумал защиту от дракона. Он нам больше не страшен! Она срабатывает от взмахов крыльев дракона и включает громкую сирену, так чтобы все слышали, что приближается дракон. – Что-нибудь ещё эта защита делает? – Нет, зачем? Мы будем предупреждены! – Да… Съедены под во...

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

Security Week 36: срок жизни уязвимостей в смартфонах Главная новость прошлой недели — масштабное исследование реальной атаки на устройства на базе iOS, опубликованное экспертом Яном Бером из команды Google Project Zero (новость, блогпост Яна со ссылками на семь дополнительных публикаций). Это редкий пример исследования, в кото...

[Из песочницы] Использование учетных записей Joomla в проекте на Django Допустим что сайт, которым пользуются ваши пользователи, написан на Joomla, но для создания нового продукта для вашей аудитории вы выбрали связку Python/Django. Как следствие, возникает необходимость использовать в Django учетные записи пользователей из базы данных Joomla. ...

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

Material как WebComponents В последнее время, как я уже отмечал в предыдущей статье, вполне себе активно ведутся разработки WebComponents оберток для популярных фреймворков позволяющий использовать их через браузерное API. Это значит, что если вы хотите использовать готовые компоненты созданные на том...

[Перевод] Отличия LabelEncoder и OneHotEncoder в SciKit Learn Если вы недавно начали свой путь в машинном обучении, вы можете запутаться между LabelEncoder и OneHotEncoder. Оба кодировщика — часть библиотеки SciKit Learn в Python и оба используются для преобразования категориальных или текстовых данных в числа, которые наши предсказате...

[Из песочницы] Три относительно честных способа создания Flutter проекта Итак, с презентацией Google первой стабильной версии Flutter, которая случилась 4 декабря 2018 г. начался процесс изменения ландшафта на полях мобильного программирования. Появился новый игрок, способный изменить правила самой игры. Теперь из одной базы кода можно создават...

[Перевод] Python в Visual Studio Code — июньский релиз Мы рады сообщить, что расширение Python для Visual Studio Code от июня 2019 года уже доступно. Вы можете загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Если у вас уже установлено расширение Python, вы также мож...

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

Бэкап файловых и SQL баз 1С средствами Effector Saver (в облако и с шифрованием) В этой статье я хочу поделиться опытом резервного копирования файловых и SQL баз 1С в локальное, сетевое и облачное (на примере Google Drive) хранилище с помощью Effector Saver. Писал инструкцию для друга, но думаю она пригодиться и кому-то из вас. И как всегда, в комментар...

Поиск данных и объектов в базе данных MS SQL Server с помощью бесплатной утилиты dbForge Search Описание общей потребности в поиске данных и объектов в базе данных Поиск данных, а также хранимых процедур, таблиц и других объектов в базе данных является достаточно актуальным вопросом в том числе и для C#-разработчиков, а также и для .NET-разработки в целом. Достаточно ...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 47. Устранение неполадок OSPF Сегодня мы продолжим тему предыдущего урока о протоколе OSPF, которому посвящен раздел 2.4 тематики ICND2, и рассмотрим устранение типичных проблем реализации этого протокола. Вернемся к примеру Packet Tracer, которым мы закончили последнее видео. Для начала я исправлю обозн...

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

[Перевод] Аналитика логов Nginx с помощью Amazon Athena и Cube.js Обычно для мониторинга и анализа работы Nginx используют коммерческие продукты или готовые open-source альтернативы, такие как Prometheus + Grafana. Это хороший вариант для мониторинга или real-time аналитики, но не слишком удобный для исторического анализа. На любом популяр...

[Перевод] 26 рекомендаций по использованию типа var в Java The Java Local Variable Type Inference (LVTI) или кратко — тип var (идентификатор var — это не ключевое слово, а зарезервированное имя типа) был добавлен в Java 10 с помощью JEP 286: Local-Variable Type Inference. Являясь 100% функцией компилятора, она не влияет на байт-код...

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

Пишем на Rust + CUDA C Всем привет! В данном руководстве хочу рассказать как подружить CUDA C/С++ и Rust. И в качестве примера напишем небольшую программу на Rust для вычисления скалярного произведения векторов, вычисление скалярного произведения будет производиться на GPU с использованием CUDA ...

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

[Перевод] Расширение mypy с помощью плагинов Добрый день, друзья. А мы продолжаем наращивать интенсивность запуска новых курсов и уже сейчас рады сообщить о том, что в конце апреля стартуют занятия по курсу «Web-разработчик на Python». В связи с этим традиционно делимся переводом полезного материала. Начнём. Известно,...

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

Расчет нулевой гипотезы, на примере анализа зарплат украинских программистов Решил поделиться, да бы и самому не забывать, как можно использовать простые статистические инструменты для анализа данных. В качестве примера использовался анонимный опрос относительно зарплат, стажа и позиций украинских программистов за 2014 и 2019 год. (1) Этапы анализа...

Тестирование performance-расширений Google на примере «Ситилинка» Как всё начиналось: от OLV к performance-расширениям в YouTube.

Security Week 30: приватность, технологии и общество 12 июля в прессе появились пока не подтвержденные официально сообщения о том, что Facebook пошел на соглашение с Федеральной Торговой Комиссией США по поводу утечки пользовательской информации. Основной темой расследования FTC стали действия компании Cambridge Analytica, еще...

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

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

Python и FPGA. Тестирование В продолжение к первой статье, хочу на примере показать вариант работы с FPGA (ПЛИС) на python. В данной статье затрону подробнее аспект тестирования. Если фреймворк MyHDL позволяет людям, работающим на python, используя знакомый синтаксис и экосистему, заглянуть в мир FPGA,...

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

[Из песочницы] Почему вы должны думать о функциональном программировании Привет, Хабр! Представляю вашему вниманию перевод своей статьи «Why you should think about functional programming», посвященной функциональному программированию. Почему вы должны думать о функциональном программировании? Давайте ответим на следующие вопросы: всегда ли в...

[Из песочницы] Делаем расширение для браузера, проверяющее результаты ЕГЭ Я, как и любой другой выпускник, переживаю по поводу экзаменов. От баллов, полученных на ЕГЭ зависит слишком многое, поэтому сейчас трудно думать о чем то другом. Чтобы не обновлять сайт check.ege.edu.ru каждые две минуты, я решил написать расширение, которое будет делать э...

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

Темы и стили в Android без магии. И как их готовить с SwitchCompat В предыдущей статье мы рассмотрели как использовать темы и стили на уровне кода, на примере кастомной view. В этой статье давайте разберем несколько способов стилизации стандартного ui элемента, а в частности SwitchCompat. Читать дальше →

Мелкая питонячая радость #8: мелкие удовольствия для работы с БД Беглый опрос коллег на моем текущем проекте показал, что при словах "ORM и работа с БД" в подавляющем большинстве случаев звучат слова "Алхимия" и "Django ORM". Знания этих двух слов, в общем, достаточно, чтобы писать чистый, аккуратный и рабочий код. Но расширение инженерно...

Пишем высокопроизводительный http клиент на примере fasthttp. Александр Валялкин (VertaMedia) Библиотека Fasthttp — ускоренная альтернатива net/http из старндартных пакетов Golang. Как она устроена? Почему она такая быстрая? Паттерны из Fasthttp можно использовать для ускорения ваших приложений, вашего кода. Кому интересно, добро пожаловать под кат. Читать дальше →

Яндекс улучшит алгоритмы распознавания голоса Пресс-секретарь ЗАО «Яндекс», Василий Ивашкин сообщил, что в поддержку службы Яндекс.Такси участились жалобы на качество распознавания речи. Как сами водители, так и пассажиры жалуются, что речь с акцентом очень плохо распознается. Часто возникают недоразумения при попытке...

Использование API HTMS для работы с реляционно-сетевой базой данных Введение В статье «Реляционно-сетевая модель данных» была предложена новая концепция моделирования данных HTMS, являющаяся развитием канонической реляционной модели. В настоящем материале будет показано на примерах, как ее можно практически использовать с применением API лог...

[Из песочницы] Расширения VSCode, которые облегчат разработку на JavaScript и Vue На сегодняшний день существует достаточное количество средств для разработки с поддержкой языка JavaScript и основанных на нем фреймворков. Вопрос выбора конкретного инструмента стоит вне этой статьи, тут же я постараюсь описать свой пользовательский опыт работы с Visual Stu...

Kubernetes Operator на Python без фреймворков и SDK Go на данный момент является монополистом среди языков программирования, которые люди выбирают для написания операторов для Kubernetes. Тому есть такие объективные причины, как: Существует мощнейший фреймворк для разработки операторов на Go — Operator SDK. На Go написа...

Топ ошибок со стороны разработки при работе с PostgreSQL HighLoad++ существует давно, и про работу с PostgreSQL мы говорим регулярно. Но у разработчиков все равно из месяца в месяц, из года в год возникают одни и те же проблемы. Когда в маленьких компаниях без DBA в штате случаются ошибки в работе с базами данных, в этом нет ничег...

Три парадигмы асинхронного программирования в Vertx Я хочу показать три парадигмы асинхронного программирования — callbacks, futures, coroutines на примере простого веб приложения на фрейморке Vertx. Код будем писать на Котлине. Допустим у нас есть приложение, которое получает некую строку в HTTP запросе, по ней ищет URL в б...

Программирование LibreOffice Base. Часть 2 В части 2 будет рассмотрена связь между таблицами базы данных и формами. В частности как задавать связь между двумя таблицами и использовать таблицы-«справочники» в качестве источника данных для выпадающих списков. Читать дальше →

[Перевод] Тесты или типы Привет, Хабр. На днях я искал, как сделать что-то в Idris, и наткнулся на неплохой пост, вольный перевод которого выглядит вполне уместным. Вольности и отсебятину, где необходимо, я буду обозначать ⟦вот такими закорючками в начале и в конце⟧. Когда стоит использовать тесты, ...

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

[Перевод] Как написать смарт контракт на WebAssembly в сети Ontology? Часть 2: С++ В этой статье мы разберем на двух примерах, как написать смарт контракт на языке C++, используя WASM на основе блокчейн сети Ontology. Сегодня, после нескольких месяцев стабильной работы в тестовом режиме, Ontology запустила WASM в основной сети, что позволяет безболезненн...

Центральные тепловые пункты подключены к АСДУ теплосетями Пензы Компанией «КРУГ» проведены работы по расширению автоматизированной системы диспетчерского управления теплосетями г. Пензы на базе …

Построение поведенческих воронок на языке R, на основе данных полученных из Logs API Яндекс.Метрики Анализ воронки продаж — типичная задача для интернет маркетинга, и в частности электронной коммерции. С её помощью вы можете: Выяснить на каком из шагов к покупке вы теряете потенциальных клиентов. Моделировать объём дополнительного притока выручки, в случае расширения каж...

[Перевод] ООП мертво, да здравствует ООП Источники вдохновения Этот пост возник благодаря недавней публикации Араса Пранцкевичуса о докладе, предназначенном для программистов-джуниоров. В нём рассказывается о том, как адаптироваться к новым ECS-архитектурам. Арас следует привычной схеме (объяснения ниже): показыва...

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

Как мы тестировали несколько баз данных временных рядов За последние несколько лет базы данных временных рядов (Time-series databases) превратились из диковинной штуки (узкоспециализированно применяющейся либо в открытых системах мониторинга (и привязанной к конкретным решениям), либо в Big Data проектах) в «товар народного пот...

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

Получение статистики по всем клиентам из API Яндекс Директ в разрезе дней с помощью Python В работе часто использую короткую статистику в разрезе дней чтобы отслеживать отклонения трафика. Более подробно о написании запросов написал в статье « Получение рекламных кампаний Яндекс Директ с помощью API в DataFrame (Python)». В данной статье я в большей степени рас...

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

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

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

[Перевод] Теория вместо эвристики: становимся лучше как frontend-разработчики Перевод Becoming a better front-end developer using fundamentals instead of heuristics Наш опыт показывает, что не имеющие технического образования разработчики и самоучки чаще полагаются не на теоретические принципы, а на эвристические методы. Эвристика — шаблоны и пров...

Больше и мощнее: как мы обеспечили работу нового оборудования в ЦОД MediaTek Нередко компании сталкиваются с необходимостью установить новое, более мощное оборудование в уже существующих помещениях. Иногда решить эту задачу бывает непросто, но существует ряд стандартных подходов, помогающих выполнить ее. О них мы сегодня расскажем на примере ЦОД Medi...

[Перевод] Как встроить С-библиотеку в Swift-фреймворк В 2014 году был представлен Swift, новый язык для разработки приложений экосистемы Apple. Новинка принесла не только новые возможности и функции, но и проблемы — тем, кто хотел пользоваться старыми добрыми C-библиотеками. В этой статье я рассмотрю одну из них — бандлинг C-...

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

[Перевод] Анонсировано расширение Azure IoT Edge Tools (Preview) Мы рады объявить о доступности preview-версии нового расширения для Visual Studio 2019 — Azure IoT Edge Tools. Расширение предоставляет богатый набор функций для поддержки разработки решений IoT Edge с использованием Visual Studio 2019: Читать дальше →

[Перевод] Интеграционные тесты баз данных с помощью Spring Boot и Testcontainers 1. Обзор С помощью Spring Data JPA можно легко создавать запросы к БД и тестировать их с помощью встроенной базы данных H2. Но иногда тестирование на реальной базе данных намного более полезно, особенно если мы используем запросы, привязанные к конкретной реализации БД. В эт...

[Перевод] Внепроцессный отладчик для C++ в Visual Studio 2019 В Visual Studio 2019 Preview 1 представлен улучшенный отладчик для C++, который использует внешний 64-разрядный процесс для размещения своих ресурсозатратных компонентов. Если у вас ранее возникали проблемы с памятью при отладке приложений C++, теперь эти проблемы должны быт...

Запускаем OpenVPN в Докере за 2 секунды Привет, хабровчане! Сталкивались ли вы когда-либо с ситуацией, когда очень хотелось бы виртуально перенестись в другой город, страну или на другой континет? У меня такая необходимость возникает достаточно часто, поэтому возможность иметь свой VPN сервер, который можно запуст...

[Перевод] IntelliSense для C++ в Visual Studio теперь работает на основе примеров в вашем коде С тех пор, как мы анонсировали IntelliSense for templates, от вас поступили отличные предложения. Одно очень популярное предложение состояло в том, чтобы Template Bar автоматически заполнял вариант на основе примеров в коде. В Visual Studio 2019 версии 16.1 Preview 2 мы доба...

[Перевод] Циклическая генерация подземелий на примере Unexplored Хватит создавать ветвящиеся пути, начинайте использовать циклическую генерацию подземелий. Ваши уровни станут гораздо более похожими на созданные вручную. Чаще всего для генерации подземелий в играх жанра roguelike на карту добавляются сгенерированные или заранее созданные...

[Перевод] Выпуск Rust 1.33 Команда разработчиков Rust рада сообщить о выпуске новой версии Rust, 1.33.0. Rust — это язык программирования, который дает возможность каждому создавать надежное и эффективное программное обеспечение. Если у вас установлена предыдущая версия Rust с помощью rustup, то для о...

DSC и напильник: часть 1. Настройка DSC Pull Server для работы с базой данных SQL PowerShell Desired State Configuration (DSC) сильно упрощает работу по развертыванию и конфигурированию операционной системы, ролей сервера и приложений, когда у вас сотни серверов. Но при использовании DSC on-premises, т.е. не в MS Azure, возникает пара нюансов. Они осо...

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

Как выбрать СХД, не выстрелив себе в ногу Введение Пришла пора покупать СХД. Какую взять, кого слушать? Вендор А рассказывает про вендора B, а еще есть интегратор C, который рассказывает обратное и советует вендора D. В такой ситуации и у опытного архитектора по системам хранения голова пойдет кругом, особенно со в...

О чем думать на NALSD собеседовании Я описывал ранее типичное кодинг-интервью. Помимо кодинга почти всегда есть вопрос на проектирование систем. (Large) System Design. В случае собеседований на SRE, это еще более интересный (как по мне) зверь — NALSD. Non-abstract large system design. Главное отличие между SWE...

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

[Из песочницы] BotMan знакомство Хочу рассказать о PHP фреймворке для создания ботов BotMan (Сайт). Botman можно использовать и как библиотеку, и как расширение Laravel (BotMan Studio). Читать дальше →

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

WAL в PostgreSQL: 4. Настройка журнала Итак, мы познакомились с устройством буферного кеша и на его примере поняли, что когда при сбое пропадает содержимое оперативной памяти, для восстановления необходим журнал предзаписи. Размер необходимых файлов журнала и время восстановления ограничены благодаря периодически...

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

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

Tic Tac Toe, часть 7: pytest и Travis CI Tic Tac Toe: содержание цикла статейВ этой статье рассмотрим Непрерывную Интеграцию/Сontinuous Integration на примере использования Travis CI. Читать дальше →

[Перевод] Механизмы расширяемых расширений в JavaScript Здравствуйте, коллеги! Напоминаем, что не так давно у нас вышло 3-е издание легендарной книги «Выразительный JavaScript» (Eloquent JavaScript) — на русском языке напечатано впервые, хотя качественные переводы предыдущих изданий встречались в Интернете. Тем не менее, ни J...

Особенности работы Auto Tiering в СХД Qsan XCubeSAN Продолжая рассматривать технологии ускорения операций ввода/вывода в применении к СХД, начатые в предыдущей статье, нельзя не остановиться на такой весьма популярной опции, как тиринг (Auto Tiering). Хотя идеология работы данной функции весьма близка у различных производител...

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

FFI: пишем на Rust в PHP-программе В PHP 7.4 появится FFI, т.е. можно подключать библиотеки на языке C (или, например, Rust) напрямую, без необходимости писать целый extension и разбираться в его многочисленных нюансах. Давайте попробуем написать код на Rust, и используем его PHP-программе Читать дальше →

Apple показала, как можно кастомизировать AirPods Кастомизация AirPods возможна. Apple одобряет Несмотря на то что кастомизация – это удел пользователей Android, очень часто фанаты Apple тоже оказываются не против доработать свои устройства, сделав их привлекательнее по крайней мере внешне. Но поскольку в кастомизации iPhon...

Обработка исключений ASP.NET при помощи IRO.Mvc.MvcExceptionHandler Если вы являетесь c# бекенд разработчиком, наверняка рано или поздно появилась необходимость найти унифицированный способ обработки исключительных ситуаций. Хотя, даже если вы довольствуетесь кодом 500 в ответе, эта статья все равно поможет улучшить ваш способ, при этом не...

Microsoft готовит опцию по раскрытию пароля в Edge на Chromium Microsoft недавно начала работу над новой функцией для проекта Chromium с открытым исходным кодом, которая будет полезна для различных браузеров, включая новые – Edge и Google Chrome. В соответствии с новым коммитом Microsoft хочет добавить в Chromium новую функцию, которая ...

[Из песочницы] Учимся стандарту проектирования — Entity Relationship Здравствуйте. Данная статья посвящена одной из самых популярных, а также и многим знакомой, модели проектирования — ER(Entity Relationship), которая была предложена учёным, в области информатики — Питером Ченом, в 1976 году. По ходу статьи простым языком на простых примера...

[Перевод] 9 полезных браузерных расширений для разработчиков (cписок на 2020 год) Как упростить себе жизнь при помощи браузерных плагинов. Хитрые веб-разработчики умеют пользоваться браузером на уровне «god-mode». Расширения(плагины, add-on) чрезвычайно полезны, когда речь идет об улучшении рабочей среды и повышении производительности написания кода. Не...

[Из песочницы] Тесты на C++ без макросов и динамической памяти Многие популярные библиотеки для тестирования, например Google Test, Catch2, Boost.Test тяжело завязаны на использование макросов, так что в качестве примера тестов на этих библиотеках вы обычно увидите картину вроде такой: namespace { // Tests the default c'tor. TEST(MyStr...

[Из песочницы] Элементарные шифры на понятном языке Привет, Хабр! Все мы довольно часто слышим такие слова и словосочетания, как «шифрование данных», «секретные шифры», «криптозащита», «шифрование», но далеко не все понимают, о чем конкретно идет речь. В этом посте разберемся, что из себя представляет шифрование и рассмотрим...

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

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

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

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

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

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

pudge встраиваемая база данных в 500 строк на golang pudge — встраиваемая key/value база данных, написанная на стандартной библиотеке Go. Остановлюсь на принципиальных отличиях от существующих решений. Stateless pudge.Set("../test/test", "Hello", "World") Пудж автоматически создаст базу данных test, включая вложенные дире...

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

Тест программ для резервного копирования: выбираем сейф для Windows и файлов В качестве классического примера необходимости использовать резервное копирование системы и данных можно привести событие почти годичной давности. Обновление Windows 10, поступившее в октябре 2018 года, доставило массу неприятнстей тысячам пользователей. Лишь спустя два дня...

Как настроить типы задач и не сойти с ума Вводная частьВ предыдущем посте я писал как организовать процесс “грумминга” задач в системе JIra так чтобы “Менеджеру продукта” было удобно осуществлять навигацию по всему Беклогу продукта. Продолжая продуктовую тему напишу о том как я долго шел к пониманию того — что такое...

[Из песочницы] Применение Go в производственных системах. Валидаторы Добрый день, Хабр! Я довольно часто начинаю утро с просмотра хабра и наконец решил внести свой вклад в данный процесс изучения интересного. Если всё сложится, то это первая моя статься из цикла применения языка GO на производственных системах. Я хочу рассказать некоторые т...

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

Magento 2: импорт продуктов из внешних источников Magento является e-commerce решением, т.е. больше нацелено на продажу продуктов, чем на сопутствующий продажам складской, логистический или финансовый учёт. Для сопутствующего лучше подходят другие приложения (например, ERP-системы). Поэтому достаточно часто в практике испол...

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

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

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

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

[Перевод] Node.js для начинающих: основы работы с файлами Сегодня мы поговорим о том, как работать с файловой системой средствами Node.js, рассмотрим базовые операции, выполняемые с файлами. К таким операциям относятся следующие: Создание файла Чтение файла Запись данных в файл Удаление файла Переименование файла Необходимость в...

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

[Из песочницы] Сборка примера Augmented Faces ARCore в Unity Надеюсь, данная статья будет полезна тем, кто хочет пощупать возможности дополненной реальности ARCore в Unity, но при этом не смог найти понятной инструкции. Мы соберем пример приложения дополненной реальности Augmented Faces ARCore для Unity, оно будет отслеживать через...

[recovery mode] Расширения Google Chrome для программиста Работа программиста настолько сложна и разнообразна, что в ней просто не обойтись без помощи различных инструментов. Подготовил для вас список полезных расширений для Google Chrome, которые облегчат вашу жизнь и сэкономят время. 1. Code Cola Плагин, который предлагает ши...

[Перевод] Пример создания Makefile для Go-приложений В этом руководстве мы рассмотрим, как разработчик Go может использовать Makefile при разработке собственных приложений. Что такое Makefile-ы? Makefile — невероятно полезный инструмент автоматизации, который можно использовать для запуска и сборки приложений не только на G...

Руководство для начинающих по машинному обучению и структуре Data Science Для всех, кому интересна тематика работы с данными, машинного обучения и искусственного интеллекта и для тех, кто только начинает свой путь в изучении — этот пост для вас. Все библиотеки ниже бесплатны, и большинство из них с открытым исходным кодом и выложены на GitHub. Исп...

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

Утро админа: добавляем место на десятках серверов за кофе Каждый день мне приходится добавлять место на одном, двух, трех, пяти, а бывает – и десяти database серверах. Почему? Потому что для них характерен естественный рост баз. Серверов сотни, все они виртуалки с дисками на thin provisioning. Если им заранее выдать много места, то...

Выпущено расширение Windows Defender Application Guard для Firefox и Chrome Чтобы сделать доступной технологию контейнеров для других веб-браузеров и предоставить клиентам комплексное для изолирование потенциальных атак, компания Microsoft разработала расширение Windows Defender Application Guard для Google Chrome и Mozilla Firefox. Когда пользоват...

Не очень большие данные В статье будут рассмотрены возможности, предоставляемые встроенным или декларативным секционированием в 12 версии PostgreSQL. Демонстрация подготовлена для одноименного доклада на конференции HighLoad++Siberia 2019. Все примеры выполнены на недавно появившейся бета-версии: ...

От новых API в Chromium пострадает не только uBlock Origin, но и другие расширения Три месяца разработчики Chromium обсуждают новые программные интерфейсы declarativeNetRequest API, лишающие возможности полноценно использовать webRequest API. Расширения используют данные API для блокировки контента на лету во время загрузки страницы. В новой системе блокир...

Техносфера. Курс лекций «Управление IT-проектами и продуктом» Недавно наш образовательный проект Техносфера выложил последние лекции из курса «Управление IT-проектами и продуктом». Вы получите знания в области управления продуктами и проектами на примере Mail.ru Group, поймёте роль менеджера продукта и проекта, узнаете о перспективах...

Ошибки, которые не находит статический анализ кода, потому, что он не используется Время от времени читатели наших статей о проверке открытых проектов обращают внимание, что статический анализатор кода PVS-Studio выявляет большой процент ошибок, которые незначительны или вообще не влияют на работу приложения. Это действительно так. Большинство важных ошибо...

AvaloniaUI особенности на примере MessageBox Avalonia ui — восхитительный фреймворк, к которому хочется возвращаться снова и снова. Так давайте же вернемся к нему еще раз и рассмотрим некоторые особенности вместе с моим message box. Читать дальше →

[Перевод] Повышаем производительность разработки на примере Vue — часть 2 Если вы не читали Часть 1, вы можете исправить сиё недоразумение здесь. Переиспользование конфигураций Новая библиотека vue-cli-3 избавила от необходимости поддерживать сложные шаблоны сборки и конфигураций. Вместо этого она позволяет разработчику сосредоточиться на создании...

[Из песочницы] Как при помощи 2 видов unit-тестов сделать приложение более стабильным Привет, Habr. Меня зовут Илья Смирнов, я Android-разработчик в компании FINCH. Хочу показать вам несколько примеров работы с Unit-тестами, которые мы наработали у себя в команде. В наших проектах используется два вида Unit-тестов: проверка на соответствие и проверка на выз...

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

Telegram-бот для изучения иностранных языков: от зубрежки слов к говорению Не так давно я писал уже о своем боте для изучения иностранных языков. Точнее — для расширения словарного запаса (aka зубрежки слов). В той же статье я написал, что изучение слов без контекста малопродуктивно и что лучше изучать тексты, чем просто пытаться вбить себе в голо...

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

GitHub запускает свои щупальца в CI/CD и менеджмент артефактов В мае 2019 года GitHub анонсировала выход сервиса Package Registry. Вслед за этим, уже в августе, была анонсирована поддержка CI/CD в Actions. В статье я расскажу, что это за сервисы и как это можно использовать на примере небольшого пет-проекта на GitHub. Читать дальше →

Упрощенный доступ к данным внутренней FAT12 для STM32 В предыдущей статье был рассмотрен вариант использования микроконтроллера STM32F103C8T6 как flash накопителя с внутренней файловой системой FAT12. Теперь можно рассмотреть, каким образом получить данные из нашей внутренней файловой системы. К примеру нам необходимо хранить н...

«Без лишних экспериментов», или как мы банковский акселератор запустили Известный американский венчурный фонд и стартап-акселератор 500Startups как-то расспросил 100 менеджеров крупных корпораций об их работе со стартапами. Оказалось, что практически все компании работают со стартапами, но только один пилотный проект из четырех трансформируется ...

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

Масштабирование приложения в Kubernetes на основе метрик из Prometheus Распространённая ситуация: у вас есть несколько приложений, у одного из них пиковая нагрузка приходится на дневное время, а в другие часы к нему никто не обращается (либо обращаются, но редко); при этом другим приложениям мощности кластера могут пригодиться и в ночное врем...

[Из песочницы] Общее представление об архитектуре Clean Swift Привет, читатель! В этой статье я расскажу об архитектуре iOS приложений — Clean Swift. Мы рассмотрим основные теоретические моменты и разберем пример на практике. Читать дальше →

Google ограничит работу расширений для блокировки рекламы в Chrome Google собирается внедрить Manifest v3, который не даст эффективно работать расширениям для блокировки рекламы в Chrome. При этом корпоративные пользователи по-прежнему смогут использовать адблокеры. В частности, Google планирует убрать тот API, который сейчас используют эти...

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

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

VS Code — сниппеты Puppeteer Это расширение Visual Studio Code добавляет предопределенные полезные фрагменты кода для Puppeteer. Проверьте API для получения дополнительной информации о доступных возможностях. Читать дальше →

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

9 типовых проблем в сети, которые можно обнаружить с помощью анализа NetFlow (на примере Flowmon) Относительно недавно мы публиковали статью “Сетевой мониторинг и выявления аномальной сетевой активности с помощью решений Flowmon Networks”. Там мы кратко рассмотрели возможности этого продукта и процесс установки. Неожиданно для нас, после статьи и вебинара, поступило бо...

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

Julia: типы, мультиметоды и арифметика над полиномами В этой публикации речь пойдёт об основной, на мой взгляд, отличительной особенности языка Julia — представлении функций в виде методов с множественной диспетчеризацией. Это позволяет повысить производительность вычислений, не снижая читаемости кода и не портя абстрагируемост...

[Перевод] 7 ключевых индикаторов риска Active Directory на панели мониторинга Varonis Все, что нужно злоумышленнику, – это время и мотивация для проникновения в вашу сеть. Но наша с вами работа состоит в том, чтобы не дать ему этого сделать или, по крайней мере, максимально усложнить эту задачу. Нужно начать с определения слабых мест в Active Directory (дал...

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

Huawei: Защита плоскости управления В статье рассматриваются аспекты защиты плоскости управления маршрутизаторов Huawei NE Series. Примеры приведены для NE40e, с программным обеспечением: VRP V800R008. На других типах маршрутизаторов (например NE5k) и с другой версией ПО, конфигурация может несколько отличатьс...

Встроенные средства контроля времени исполнения программного приложения В публикации представлена программная реализация встроенных средств сбора и накопления метрической информации по времени исполнения приложений, написанных на C/C++/C#. Существо описываемого подхода базируется на включении в программный код приложения “контрольных точек” из...

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

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

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

Бессерверный REST API «на коленке за 5 минут» Привет, Хабр! Сегодня продолжим разговор о возможностях, которые предоставляет нам Amazon Web Services и о том, как эти возможности использовать в решении прикладных задач. На простом примере рассмотрим создание буквально за несколько минут собственного бессерверного автом...

[Из песочницы] Очереди — что это, зачем и как использовать? Посмотрим на возможности AWS SQS Сначала давайте дадим определение понятию «очередь — queue». Возьмем для рассмотрения тип очереди «FIFO»(first in, first out). Если взять значение из википедии — «это абстрактный тип данных с дисциплиной доступа к элементам». Если вкратце, это означает что мы не можем из н...

Flutter в примерах. Deep Links в приложениях на Flutter Новый мультиплатформенный фреймворк от Google – Flutter – уверенно набирает поклонников. Все больше людей интересуются этой технологией и пробуют ее как в pet-, так и в коммерческих проектах. Все больше статей и примеров появляется в рунете, но какое-то время назад я обратил...

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

[Перевод] Процедурные паттерны, которые можно использовать с тайловыми картами Процедурная генерация используется для повышения вариабельности игр. Среди известных проектов можно упомянуть Minecraft, Enter the Gungeon и Descenders. В этом посте я объясню некоторые из алгоритмов, которые можно применять при работе с системой Tilemap, появившейся как 2D-...

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 1 Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. ...

Обновление для Firefox восстановит работу расширений Расширения отключили из-за сертификата безопасности

Создаем виджет с помощью пользовательских CSS-свойств: встраиваем кастомную ссылку на сайт NHL Автор курса Нетологии «HTML-верстка», Стас Мельников, показал пример верстки виджета, который можно встроить на сторонний сайт. В прошлый раз мы рассказали, что такое пользовательские свойства, а сейчас на примере сайта NHL покажем, как с их помощью встроить кастомную ссыл...

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

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

Zimbra Collaboration Suite и MS Exchange на одном домене Несмотря на то, что процесс миграции с MS Exchange на Zimbra при помощи ZCS Migration Wizard довольно прост и очень быстро выполняется, он подойдет далеко не каждому предприятию. Не каждая компания может позволить себе броситься в омут с головой, в одночасье сменив один из г...

[Перевод] Новости из мира OpenStreetMap № 485 (29.10.2019-04.11.2019) Навигационная система Теслы и система OSM 1 | Teslamotorsclub – Map data OpenStreetMap contributors Картографирование Пользователь SelfishSeahorse предлагает отмечать в OSM полосы на дорогах, которые специально отведены для пешеходов. StreetCred — компания, основанная Рэ...

Data Version Control (DVC): версионирование данных и воспроизводимость экспериментов Эта статья — своеобразный мастер-класс «DVC для автоматизации ML экспериментов и версионирования данных», который прошел 18 июня на митапе ML REPA (Machine Learning REPA: Reproducibility, Experiments and Pipelines Automation) на площадке нашего банка. Тут я расскажу об осо...

[Перевод] Введение в Redis с использованием Spring Boot Перевод статьи подготовлен специально для студентов курса «Разработчик на Spring Framework». В этой статье мы рассмотрим основы использования Redis через Spring Boot с помощью библиотеки Spring Data Redis. Мы создадим приложение, которое демонстрирует, как выполнять CR...

Больше удобств адептам JSON-RPC Привет! Однажды, на одном проекте, где мне довелось работать только фронтом, мне пришлось столкнуться не с вездесущим REST, и не с хайповым GraphQL, а со старичком RPC, а именно — его вариантом JSON-RPC 2.0. И знаете, с тех пор (когда делаю и бэк) я использую почти всегда ...

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

3. Типовой сценарий внедрения Check Point Maestro В прошлых двух статьях (первая, вторая) мы рассмотрели принцип работы Check Point Maestro, а также технические и экономические преимущества этого решения. Теперь хотелось бы перейти к конкретному примеру и описать возможный сценарий внедрения Check Point Maestro. Я покажу ...

Прерывания от внешних устройств в системе x86. Часть 3. Настройка роутинга прерываний в чипсете на примере coreboot Продолжаем рассматривать настройку прерываний от внешних устройств в системе x86. В части 1 (Эволюция контроллеров прерываний) мы рассмотрели теоретические основы контроллеров прерываний и общие термины, в части 2 (Опции загрузки ядра Linux) посмотрели как на практике ОС ос...

Google отключает десктопное Chrome-расширение Data Saver Google сообщил, что отключит десктопное расширение для Chrome «Экономия трафика» (Data Saver). Теперь эта функция будет называться Lite mode, а воспользоваться ею смогут только владельцы устройств на Android. Lite mode будет и дальше сокращать трафик, получаемый при загрузке...

[Перевод] Бесплатная библиотека Wolfram Engine для разработчиков программного обеспечения Оригинал перевода в моём блоге Пара видео о Wolfram Language Почему вы до сих пор не используете технологии Wolfram? Что ж, такое случается, и довольно часто. В процессе общения с разработчиками программного обеспечения, они достаточно лестно отзываются о наших технология...

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

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

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

[Из песочницы] Linux машина в домене Windows AD с помощью sssd и krb5 Была необходимость ввести в домен Windows машину с Ubuntu. Для этих целей обычно используют Samba и Winbind. Но возможен альтернативный вариант с sssd, краткое руководство по нему ниже. Для примера будем использовать: Домен = contoso.com Контроллер домена = dc.contoso.com ...

Как добавить второе лицо для Face ID Если Вы пользуетесь iPhone X или новее, возможно, у Вас возникала ситуация, когда телефоном пользуется кто-то ещё, например дети, и проще было бы добавить ещё лицо в базу Face ID, чем всё время вводить пароль. В обновлении iOS 12 компания Apple ввела интересную функцию, позв...

[Из песочницы] Простой Telegram-бот на Python за 30 минут На Хабре, да и не только, про ботов рассказано уже так много, что даже слишком. Но заинтересовавшись пару недель назад данной темой, найти нормальный материал у меня так и не вышло: все статьи были либо для совсем чайников и ограничивались отправкой сообщения в ответ на сооб...

[Из песочницы] Angular schematics, или как я писал свой шаблон для angular cli Здравствуйте, меня зовут Максим. Уже несколько лет я занимаюсь front-end разработкой. Мне часто приходится иметь дело с версткой различных html шаблонов. В своей повседневной работе я обычно пользуюсь сборщиком webpack c настроенным шаблонизатором pug, а также использую мето...

Application Security Manager. Разработчик или безопасник? Большинство успешных атак организации реализуется через уязвимости и закладки в софте. К счастью, сканер уязвимостей ПО уже рассматривается компаниями не как что-то экзотическое, а как необходимый элемент инфраструктуры защиты. Если при небольших объемах разработки можно исп...

Не устарела ли ваша ERP-система безнадежно? Важно понимать, что применение готовых приложений, а также новый подход к кастомизации ERP, используя расширения (extension), позволят увеличивать возможности ERP изолированно, не пересекаясь с ядром ERP-системы – оно остается нетронутым и обновляется без проблем из-...

Пишем собственный CLI для React Если вы делаете Ctrl+C каждый раз при создании нового компонента в реакте, то эта статья точно для вас! У реакта нет своего CLI, и понятно почему. Не существует определенных правил, как именно должна выглядеть структура компонента, есть только общие рекомендации в документа...

Техника избежания неопределённого поведения при обращении к синглтону В статье рассмотрены причины возникновения и способы избежания неопределённого поведения при обращении к синглтону в современном c++. Приведены примеры однопоточного кода. Ничего compiler-specific, всё в соответствии со стандартом. Читать дальше →

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

Как из-за открытой базы ClickHouse могли пострадать персональные данные пациентов и врачей Я много пишу про обнаружение свободно доступных баз данных практически во всех странах мира, но новостей про российские базы данных, оставленные в открытом доступе почти нет. Хотя недавно и писал про «руку Кремля», которую с перепугу обнаружил голландский исследователь в бол...

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

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

Две стороны WebView: о быстром запуске проектов и краже персональных данных Привет, Хабр! Меня зовут Евгений, я Full Stack JS разработчик, текущий стек Node.js + React + React Native. В разработке я более 10 лет. В мобильной разработке пробовал разные инструменты от Cordova до React Native. Получив опыт работы с Cardova, я понял, что мне хотелось ...

[Из песочницы] Ревизия уровней доступа пользователей с помощью Power BI на примере CMS Битрикс (БУС) В статье показан пример применения Power BI для анализа доступов пользователей на сайте под управлением 1С-Битрикс. Читать дальше →

Тюнинг Firebird и Linux для БД размером 691 Гб с 1000+ пользователей Firebird является очень популярной открытой СУБД в России, и, несмотря на отсутствие шумных маркетинговых акций, используется в большом количестве ответственных систем, особенно в медицинских и государственных системах автоматизации. Размер БД и количество активных пользова...

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

[Из песочницы] Frontend для backend девелопера Сразу хочу оговорится, что данная статья не предназначена для тех, у кого разработка frontend основная деятельность. Целевая аудитория: разработчики backend которым понадобилось срочно прикрутить web UI или просто интересуются новыми областями, ну и возможно fullstack разраб...

[Перевод] Советы по организации работы c Git Как обычно используют git? Пара базовых команд, чтобы «всех синхронизировать». Разочарование от git часто возникает у тех, кто никогда не выходит за пределы этого поверхностного понимания. Однако освоение git наверняка окупится. Сколько времени вы тратите на использование gi...

Отправка статистики из DataFrame в BigQuery на примере статистики Яндекс Директ В этой статье расскажу о том, как я свел статистику по всему контексту в одном месте с помощью BigQuery и Data Studio У меня появилась необходимость визуализировать данные по всем источникам трафика. Для данной задачи я использую Data Studio. Google Ads туда подтягивается ...

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

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

Расширение Application Guard доступно для Chrome и Firefox Microsoft для браузеров Chrome и Firefox выпустило расширение Windows Defender Application Guard, которое перенаправляет вас в безопасный контейнер браузера Edge, если сайт окажется подозрительным или вредоносным. При переходе на доверенный сайт, вы снова вернетесь в ваш бр...

[Из песочницы] .NET зоопарк под призмой NET Core Всем привет! Сегодня мы рассмотрим разные фишки и изменения, которые появились в .NET Core платформе и сравним их с Framework. Я разбил статью на модули для более лучшего понимания. Эта статья будет интересна тем кто собирается переходить на .NET Core или уже использует его....

[Из песочницы] Феерический screensaver для Kodi Назначение хранителя экрана для «Kodi» Проект предназначен для создания «Феерического» хранителя экрана с минимальным количеством исходного кода на языке Python. Проект является простейшим плагином для мультимедиа центра Kodi. Проект показывает как можно создать очень кра...

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

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

[Перевод] Примеры использования некоторых новых возможностей JavaScript Автор материала, перевод которого мы сегодня публикуем, говорит, что новые возможности JavaScript, которые попали в стандарт ES2019, уже официально доступны в браузерах Chrome, Firefox и Safari, а также на платформе Node.js. Если нужно поддерживать устаревшие браузеры, то во...

[Из песочницы] CI/CD, используя Jenkins на Kubernetes Добрый день. На Хабре уже есть несколько статей о jenkins, ci/cd и kubernetes, но в данной я хочу сконцентрироваться не на разборе возможностей этих технологий, а на максимально простой их конфигурации для постройки ci/cd pipeline. Я подразумеваю, что читатель имеет базовое ...

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

Улучшаем работу Wi-Fi. Часть 3. Размещение точек доступа Обычно, когда говорят, что можно повысить качество работы чего-либо, то имеют в виду внедрение каких-либо новинок, обновлений, в общем всего того, что связано с приобретением новой техники. Однако в погоне за техническими новинками иногда упускаются такие важные вещи как ус...

[Перевод] Монады за 15 минут Вступление На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудито...

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

[Из песочницы] Фантазии на тему метаклассов в C# Программистам вроде меня, которые пришли в C# с большим опытом работы в Delphi, часто не хватает того, что в Delphi принято называть ссылками на класс (class reference), а в теоретических работах – метаклассами. Я несколько раз натыкался в разных форумах на обсуждение, прохо...

Meizu 16s Pro протестировали в Geekbench: SoC Snapdragon 855 Plus не подтверждена В базе данных бенчмарка Geekebcnh обнаружился новый смартфон – alps m1973. Как пишет источник, под этим обозначением скрывается модель Meizu 16s Pro, а раз так, то ее производительность можно оценить уже сейчас. Увы, судя по данным тестового приложения, смартфон ...

5 способов полезного использования Raspberry Pi. Часть вторая Привет Хабр. В первой части были рассмотрены 5 способов использования Raspberry Pi. Тема оказалась достаточно интересной, и сегодня я рассмотрю еще несколько вариантов того, как можно с пользой использовать этот микрокомпьютер. Фото с сайта learn.adafruit.com Как и в пре...

Гугология (это не опечатка) для программистов О математике (так, чтобы было интересно) писать сложнее, чем о физике. Однако я надеюсь, что вы дочитаете хотя бы до примеров сумасшедших программ на C. Читать дальше →

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

Deno: время Node.JS уходит? Прошло примерно 18 месяцев с внутреннего релиза Deno, вышел preview release, появилось несколько статей на Хабре, и Райан ездит по конференциям и рассказывает о нём. Однако я нигде так и не видел сколько-нибудь вдумчивого разбора этого проекта — почему-то все ограничиваются...

Более полезного расширения для браузера Chrome, пожалуй, нет Компания Google выпустила расширение Password Checkup для браузера Chrome. Оно предупреждает пользователя, что пароль, введённый им на сайте, был скомпрометирован и содержится в открытых базах.

Один день из жизни модели ресторана Данная статья описывает новые компоненты фреймворка для имитационного моделирования, ранее представленного в статье «Простая система имитационного моделирования на Go». По мере расширения фреймворка появилась возможность моделировать более сложные системы, например, провест...

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

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

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

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

Google выпустила расширение для Chrome, которое защитит от взлома аккаунта В середине января СМИ сообщили о публикации на облачном сервисе MEGA базы данных с почтовыми аккаунтами и паролями к ним. База оказалась просто огромной (более 1 млрд уникальных комбинаций), из-за чего многие сразу же стали проверять собственные аккаунты с помощью сервиса H...

[Перевод] Извлечение данных при машинном обучении Хотите узнать о трех методах получения данных для своего следующего проекта по ML? Тогда читайте перевод статьи Rebecca Vickery, опубликованной в блоге Towards Data Science на сайте Medium! Она будет интересна начинающим специалистам. Получение качественных данных — это пе...

Microsoft тестирует новые улучшения для Edge на базе Chromium в Windows 10 Edge на основе Chromium получил улучшения в последних обновлениях, и Microsoft работает над рядом других улучшений, включая внедрение современного стиля по умолчанию для элементов HTML.Недельная документация показывает, что Microsoft добавила поддержку настройки стиля по умо...

[Из песочницы] Максимальный постоянный ток через полевой транзистор На просторах интернета достаточно много информации о полевых транзисторах (далее ПТ) и их параметрах, но один из довольно простых, на первый взгляд, параметров, а именно – максимальный постоянный ток, который транзистор может через себя пропустить в ключевом режиме, и не сго...

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

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

Avalonia первая встреча Когда мы встречаем новый язык, мы пишем «Hello word», а когда встречаем новый UI, то создаем блокнот. Здесь же я хочу показать простейший пример дружбы с корссплатформенным GUI Framework AvaloniaUI. Читать дальше →

[Из песочницы] Deploy Symfony + React приложения на AWS посредством CI Добрый день, в данной статье я покажу как развернуть Symfony 4 приложение на AWS. В официальной документации есть пример подобного процесса, однако мой вариант не столь тривиален, как загрузка zip архива с приложением. На дворе 2019, в моде docker, микросервисная архитектура...

Состоялось Общее собрание учредителей Координационного центра доменов .RU/.РФ 4 февраля состоялось Общее собрание учредителей Координационного центра доменов .RU/.РФ. Общее собрание учредителей рассмотрело проект приоритетных направлений деятельности АНО «Координационный центр национального домена сети Интернет» на 2020–2022 годы. Согласно докуме...

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

Браузер Edge (Chromium) оказался в Сети За последние несколько недель было много утечек вокруг нового браузера Edge на основе Chromium от Microsoft. Сначала мы сообщали о просочившихся скриншотах, затем были документы техподдержки, страница расширений и даже не работающий установщик. Но теперь, полностью браузер п...

Google Chrome ломает приложения для монтажа видео на Mac Основная проблема Google Chrome состоит в том, что он пытается быть не просто браузером, а, по сути, операционкой в операционке, возлагая на себя даже слишком много обязанностей. Их выполнение приводит к тому, что браузер запускает массу всевозможных процессов, на обеспечен...

Сетевой накопитель QSAN XCubeNAS XN5004R: стоечная модель для малого бизнеса С точки зрения аппаратных характеристик, QSAN XCubeNAS XN5004R может похвастаться необычной для формата 1U конфигурацией дисковых отсеков 4×LFF+2×SFF, платформой с процессором Intel Celeron и возможностью установки большого объема оперативной памяти, четырьмя гигабитными сет...

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

Как багхантеры перехватывали письма в пневмопочте на ZeroNights Про Bug Bounty уже многое сказано и необходимость подобных программ для компаний кажется очевидной. За время существования нашей собственной программы Почта Mail.ru выплатила более $250 000, средняя выплата составляет $379, чуть подробнее об этом мы уже писали. А сегодня, ...

[Из песочницы] Что такое HED/MRSD и для чего это может понадобиться? Нормальным, здоровым людям информация, изложенная ниже, в принципе нужна лишь для расширения кругозора, однако если у вас серьезные проблемы со здоровьем, которые ученые только пробуют эффективно лечить. Или же вы просто достаточно безрассудны рискованны и хотите достичь быс...

Определение кодировки текста в PHP вместо mb_detect_encoding Существует несколько кодировок символов кириллицы. При создании сайтов в Интернете обычно используют: utf-8 windows-1251 koi8-r Еще популярные кодировки: iso-8859-5 ibm866 mac-cyrillic Вероятно это не весь список, это те кодировки с которыми я часто сталкиваюсь. Иног...

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

Топ-7 способов быстрой проверки компетенций IT-специалистов до собеседования Найм IT-специалистов – это непростая задача. Во-первых, сейчас на рынке наблюдается дефицит опытных кадров, они это понимают. Кандидаты часто не готовы тратить много времени на «отборочные мероприятия» работодателя, если их предварительно не заинтересовать. Ранее популярная ...

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

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

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

[Из песочницы] Direct routing и балансировка с помощью NFT vs Nginx При разработке высоконагруженых сетевых приложений возникает необходимость в балансировке нагрузки. Популярным инструментом L7 балансировки является Nginx. Он позволяет кешировать ответы, выбирать различные стратегии и даже скриптить на LUA.  Несмотря на все прелести Ngin...

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

10++ способов работать с аппаратными регистрами на С++ (на примере IAR и Cortex M) Рис. И. Кийко Всем доброго здравия! Помните наверное бородатый анекдот, а может быть и правдивую историю про то, как студента спрашивали о способе измерить высоту здания с помощью барометра. Студент привел, по-моему около 20 или 30 способов, при этом не назвав прямого(ч...

[Из песочницы] Liqubase и Maven Введение Liquibase представляет из себя систему управления версиями базы данных, в основном это касается структуры и в меньшей степени содержимого базы. При этом описание базы с одной стороны достаточно абстрактно и позволяет использовать на нижнем уровне различные СУБД, и с...

Нововведение Google может усложнить блокировку рекламы Компания Google, похоже, решила усложнить жизнь разработчикам блокировщиков рекламы, а заодно и пользователям. Рэймонд Хилл (Raymond Hill), автор uBlock Origin и uMatrix, предупредил о невозможности использования в браузере Chrome дополнения uBlock Origin, если в ко...

[Перевод] Технические детали недавнего сбоя расширений Firefox Об авторе. Эрик Рескорла — технический директор группы Firefox в Mozilla Недавно в Firefox произошёл инцидент, когда большинство дополнений (расширений, аддонов) перестали работать. Это связано с ошибкой с нашей стороны: мы не заметили, что истёк срок действия одного из сер...

Ускоряем PHP-коннекторы для Tarantool с помощью Async, Swoole и Parallel В экосистеме PHP на данный момент существует два коннектора для работы с сервером Tarantool ― это официальное расширение PECL tarantool/tarantool-php, написанное на С, и tarantool-php/client, написанный на PHP. Я являюсь автором последнего. В этой статье я хотел бы подели...

[Из песочницы] Как я не стал программистом в 35 лет С самого начала сентября широким потоком хлынули на Хабр публикации об успешном успехе на тему «Детство программиста», «Как стать программистом после N лет», «Как я ушёл в IT из другой профессии», «Путь в программирование» и так далее. Подобные статьи пишут постоянно, но во...

Чем чревато отключение «лишних» проверок в САПР печатных плат В современных условиях инженеру-проектировщику необходимо постоянно получать новые знания, чтобы быть востребованным на рынке труда. Часто получать новую информацию приходится, так сказать, “без отрыва от производства”: в ходе работы над проектом, в поездках на работу и т.п....

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

Внедрение в архитектуру советских программируемых калькуляторов «Электроника МК-52» В этой статье я хочу рассказать об архитектуре советских программируемых микрокалькуляторов на примере калькулятора «Электроника МК-52» и как можно внедриться в его архитектуру. Советские калькуляторы семейства "Электроника Б3-34" («Электроника МК-56», «Электроника МК-61»...

Все свое: туториал по созданию новых действий для UiPath RPA Данная статья – обучающий материал, который позволяет по шагам пройтись по процессу создания и публикации нового компонента для платформы UiPath RPA. Это удобно в разных случаях, например, для простой интеграции с системами компании или в ситуациях, когда компания хочет помо...

Анемичная и «Богатая» модель в контексте GRASP шаблонов В недавнем выпуске подкаста DotNet&More мы обсуждали с Максимом Аршиновым его предстоящий доклад на Московский .Next "Блеск и нищета предметной модели". С позицией Максима можно будет легко познакомиться непосредственно на конференции. И, в качестве дополнения, я бы хоте...

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

Обеспечение безопасности в беспроводных протоколах на примере LoRaWAN Привет, Хабр. Мне хотелось бы в очередной раз поговорить о том, как обеспечивается базовый (читай: минимально необходимый) уровень безопасности данных в беспроводных сетях, используемых в IoT-устройствах, на примере LoRaWAN. Почему именно LoRaWAN? Во-первых, потому, что эт...

Понимаем UICollectionViewLayout на примере Photos App Здравствуй, Хабр! Меня зовут Никита, я работаю над мобильными SDK в компании ABBYY и в том числе занимаюсь UI-компонентом для сканирования и удобного просмотра многостраничных документов на смартфоне. Этот компонент сокращает время на разработку приложений на базе технологии...

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

[Из песочницы] Создание Android приложения с использованием Anko Layouts и Anko Coroutines Примерно год назад я начал использовать Kotlin в своих Android проектах. Мне хотелось попробовать что-то новое, что было бы интересно изучать. Тогда я и наткнулся на Anko. К тому времени писать UI на xml порядком осточертело. Мне всегда нравилось писать интерфейс руками, не...

Заводим Spring StateMachine Вступление В проектах я встречался с тремя примерами, так или иначе связанными с теорией конечных автоматов Пример 1. Занимательный говнокод код. Занимает уйму времени, на то чтоб понять что происходит. Характерной особенностью воплощения обозначенной теории в коде являет...

[Перевод] Вычисление 2D-коллизий: алгоритм Гилберта — Джонсона — Кирти Я занялся изучением процессов распознавания коллизий, и это привело меня к алгоритму Гилберта — Джонсона — Кирти (Gilbert-Johnson-Keerthi, GJK). Все примеры кода в посте написаны на TypeScript. В примерах используются созданные мной структуры, которые подробно в посте не р...

К вопросу о буферах (кольцевых) «Если затраты на разработку архитектуры кажутся Вам чрезмерными, подумайте, во сколько Вам может обойтись неправильная архитектура» — не могу точно вспомнить источник Когда то, «давным-давно, в одной далекой галактике», я приобрел замечательную книгу Чарльза Уэзерелла «Эт...

[Из песочницы] Транзакции и механизмы их контроля Транзакции Транзакцией называется последовательность операций над данными имеющая начало и конец Транзакция это последовательное выполнение операций чтения и записи. Окончанием транзакции может быть либо сохранение изменений (фиксация, commit) либо отмена изменений (откат, r...

Уникальный калькулятор MyScript Calculator 2 доступен на iOS и Android бесплатно Разработчики приложения MyScript Calculator 2 сделали все для того, чтобы сделать процесс решения примеров и уравнений максимально простым и интуитивным. Вместо того, чтобы выбирать нужные цифры и знаки на виртуальной клавиатуре, вам достаточно просто написать пальцем,...

Пример расчета пенсии IT-шника из Москвы Сегодня мне вдруг захотелось узнать, какую пенсию я получал бы, если бы вышел на пенсию в этом 2019 году. До пенсии мне ещё лет 25-30, но всё же интересно, сколько пенсии я накопил за 15 лет работы в IT (из которых 12 лет работаю в Москве). Читать дальше →

Настройка vscode под stm32 на примере отладочной платы stm32f429i-disco Всем привет! Сегодня рассмотрим настройку удобной и красивой среды разработки для программиста микроконтроллеров с помощью набора полностью бесплатных инструментов разработки. Все шаги проверены на виртуальной машине со свежеустановленной Ubuntu 16.04 xenial desktop. Подраз...

Книга «GraphQL: язык запросов для современных веб-приложений» Привет, Хаброжители! У нас вышла книга по языку запросов GraphQL. Мы решили поделиться переводом главы «Анатомия запросов GraphQL» «Снежный клык» (Snowtooth) — выдуманный горнолыжный курорт. Ради примеров в данной главе мы сделаем вид, что это настоящая гора и мы там работ...

Ошибка выжившего «Защита» — хороший ярлык для плохих дел. Милтон Фридман Этот текст получился в результате анализа некоторых комментариев к статьям «Дефекты лайков» и «Экономика и права человека». Интерпретируя какие-либо данные и делая выводы, некоторые комментаторы совершали типичную «о...

[Из песочницы] Fish Redux — новая Redux библиотека для Flutter В конце 2018 года Google, не без помощи Open-Source сообщества, сделал большой подарок для мобильных разработчиков, выпустив первую стабильную версию кросс-платформенного фреймворка для мобильной разработки Flutter. Однако, при разработке крупных приложений, немного больших,...

Пример фейковой флешки на 32 GB Сегодня поступила в работу довольно любопытная флеш-карта – USB PEN-drive ADATA 32 GB. Устройство примечательно тем, что является практически новым, куплено буквально несколько дней назад, и после записи на него данных перестало работать. В системе флешка определяется как Ge...

Эксплуатация cookie-based XSS | $2300 Bug Bounty story ⠀Уже на протяжении довольно длительного времени я охочусь за уязвимостями на платформе HackerOne, выделяю некоторое количество времени вне основной работы, чтобы проверить любимые и новые программы. Бесчисленное количество раз приходилось натыкаться на cookie-based XSS уяз...

Тренды сферы финансов: крупным компаниям нужно все больше ИТ-специалистов Сфера финансов — высокотехнологичная отрасль. Для того, чтобы пользователи могли не вставая с дивана подать заявку на кредит или купить акции той или иной компании, задействуются различные протоколы передачи финансовых данных (например, FIX, FAST, Plaza II), терминалы, бро...

[Перевод] Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I Перевод статьи подготовлен для студентов курса «MS SQL Server разработчик» Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с SQL для большинства должностей являются обязательными. В этой статье с вопрос...

Про установку и использование LineageOS 16, F-Droid Предлагаю вашему вниманию инструкцию как оптимально(по моему мнению) перейти на свободное программное обеспечение при использовании смартфона на примере операционной системы LineageOS(далее сокращённо LOS) и приложений из F-Droid. Я думаю, что это статья будет вам интересна,...

Передача двумерных списков из python в DLL Всем привет. Решил несколько дополнить статью C/C++ из Python. Передача стандартных типов, таких как int, bool, float и так далее довольно проста, но мало необходима. С такими данными быстро справится и сам python, и врядли у кого-то возникнет необходимость вынесения части т...

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

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

Data Science: предсказание бизнес-событий для улучшения сервиса Алгоритмы рекомендаций, предсказания событий либо оценки рисков – трендовое решение в банках, страховых компаниях и многих других отраслях бизнеса. Например, эти программы помогают на основе анализа данных предположить, когда клиент вернет банковский кредит, какой будет спро...

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

В плагине WP Live Chat Support обнаружили уязвимость Аналитики компании Sucuri нашли в WordPress-плагине WP Live Chat Support опасный баг. Уязвимость позволяет неавторизованному злоумышленнику провести XSS-атаку и внедрить вредоносный код на все страницы сайта, которые используют расширение. После получения информации о недост...

Множественные эксперименты: теория и практика В современном мире сложно представить развитие продукта без A/B-тестирования. Чтобы успешно запустить продукт или новую функциональность — надо грамотно спроектировать A/B, рассчитать и интерпретировать его результаты. Иногда нам требуется тестирование более чем для двух гру...

Конференция Lua in Moscow 2019 В первое воскресенье марта в офисе Mail.ru Group пройдёт третья международная конференция Lua in Moscow 2019. Вас ждут выступления автора языка Роберто Иерусалимского и лучших зарубежных и отечественных экспертов по Lua и LuaJIT. Lua — уникальный язык программирования, ко...

Peephole микрооптимизации в С++ и C# компиляторах В школе, когда мы решали уравнения или считали формулы, мы пытались их сперва сократить несколько раз, к примеру Z = X - (Y + X) сокращается в Z = -Y. В современных компиляторах это подмножество так называемых peephole-оптимизаций, в которых мы по, грубо говоря, набору шабло...

Автомобильный офлайновый GPS-навигатор Navitel N500 Magnetic: удобное крепление, Linux и пожизненное обновление карт Имеет ли смысл обычному автовладельцу приобретать отдельное специализированное устройство, или же будет достаточно привычного смартфона с установленной программой навигации? Ответ будет зависеть в первую очередь от длительности предстоящий поездки или поездок. Совершив неско...

[Из песочницы] Разделяй и властвуй, или медленно пишем — быстро читаем В одном из моих проектов возникла необходимость последовательной записи оцифрованных наборов данных с 3-х каналов АЦП. Результаты замеров нужно было сохранять со скоростью 6 КБайт/сек, при этом длительность цикла сбора данных могла составлять сутки и более. Таким образом об...

[Из песочницы] Абстрактная фабрика на пальцах Написать данную статью меня заставили две причины. Совсем недавно я познакомился с паттерном Абстрактная фабрика. Как говорится – «Не умеешь сам, научи товарища». Известно, что один из лучших способов закрепления материала – это объяснение кому-либо ранее изученного. Вторая ...

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

В Украине запустили онлайн-ресурс о кино DzygaMDB, создатели которого вдохновлялись примерами IMDb и Rotten Tomatoes В Украине запустили сервис о кино DzygaMDB — первый онлайн-ресурс с полной базой данных про кино, теле- и видеопроекты, актеров и компании, которые занимаются видеопродакшеном. DzygaMDB — это платформа, на базе которой можно онлайн провести кастинг и найти всех нужных специа...

Google внедряет новые правила приватности для расширения к Chrome и Drive Компания Google анонсировала внедрение новых правил, которые ограничат доступ к данным пользователей для сторонних дополнений к Chrome и Drive. Теперь разработчики расширений для браузера Chrome должны запрашивать минимальное количество пользовательских данных, необходимое д...

Доверие к мобильным SDK Недавняя история о бэкдоре в популярнейшей NPM-библиотеке заставила многих задуматься о том, насколько мы доверяем стороннему коду и как смело используем его в своих проектах (потенциально подставляя тем самым пользователей наших продуктов). Но ещё за месяцы до того, как ...

Разработка под Docker. Локальное окружение. Часть 2 — Nginx+PHP+MySql+phpMyAdmin Рассмотрим пример развертки локального окружения состоящего из связки Nginx+PHP+MySql+phpMyAdmin. Данная связка очень популярна и может удовлетворить ряд стандартных потребностей рядового разработчика. Как и в прошлом посте акцент будет смещен в сторону утилиты docker-compo...

Нарушающий законы физики двигатель проверят в Германии Как сообщает Wired, команда из Дрезденского технического университета должна опубликовать результаты своего эксперимента в августе 2019 года, а работы по его подготовке и проведению идут уже около года. Для проверки наличия малейшей тяги у EmDrive будут использованы усоверше...

Google Ads анонсировал новые расширения для рекламы в YouTube Google готовит к запуску новые расширения для рекламы в YouTube. Об этом сообщается в Справочном центре Google Ads. Так, позже в этом году расширение «Призыв к действию», которое на данный момент доступно для объявлений формата TrueView in-stream и рекламы без возможности пр...

Эксплуатация Microsoft Edge от CVE до RCE на Windows 10 В рамках данной статьи мы достаточно подробно рассмотрим процесс написания эксплоита под уязвимость в Microsoft Edge, с последующим выходом из песочницы. Если вам интересно узнать, как выглядит этот процесс, то welcome под кат! Читать дальше →

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

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

Домен-фронтинг на базе TLS 1.3 Введение Современные корпоративные системы фильтрации контента, от таких именитых производителей как Cisco, BlueCoat, FireEye имеют довольно много общего с более мощными их собратьями — DPI системами, которые усиленно внедряются на национальном уровне. Суть работы и тех и д...

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

TDDx2, BDD, DDD, FDD, MDD и PDD, или все, что вы хотите узнать о Driven Development Просматривая статьи по проектированию ПО, я постоянно встречал тучу невиданных сокращений и вскользь упоминаемых практик разработки. TDD — ну, это все знают, сначала пишем тесты, а потом остальной код. BDD — что-то знакомое, вроде как, тоже тесты, но особенные. TDD — снов...

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

[Перевод] Бессерверные вычисления на основе OpenWhisk, часть 2 Эта статья продолжает цикл переводных заметок об OpenWhisk от автора Priti Desai. Сегодня будут рассмотрены примеры развертывания GitHub webhook, периодических сигналов, а также приведено простейшее приложение для отправки сообщений в Slack. Читать дальше →

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

Первые опыты использования потокового протокола на примере связи ЦП и процессора в ПЛИС комплекса REDD В предыдущих статьях мы уже познакомились с шиной Avalon-MM, где MM означает Memory Mapped, то есть проецируемая на память. Эта шина вполне себе универсальная. К ней может быть подключено несколько ведущих (Master) и несколько ведомых (Slave) устройств. Мы уже подключали с...

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

[Перевод] 9 советов по созданию инди-игр от разработчика-одиночки Разработка игр в одиночку предоставляет удивительную свободу творчества и ставит невероятно сложные задачи. Любой, кто работал в соло над проектом (по собственному выбору или ещё по каким-либо причинам), знает как трудно сделать всю работу самостоятельно. Планировать всё и с...

15 расширений Google Chrome для удобной работы с вкладками Если вы часто и помногу открываете новые вкладки в Google Chrome, со временем он превращается в громоздкое, запутанное и грузящее систему чудовище. Чтобы избежать проблем с браузером, обратите внимание на нашу подборку полезных расширений для удобной работы с вкладками. Они ...

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

Производитель называет «умной» подсветку корпуса Corsair iCUE 220T RGB Airflow Компания Corsair объявила о выпуске компьютерного корпуса iCUE 220T RGB Airflow и новой линейки RGB-вентиляторов iCUE SP RGB PRO, в которую вошли модели типоразмера 120 и 140 мм В описании корпуса iCUE 220T RGB Airflow производитель выделяет хорошее охлаждение и «...

Acronis Design: Дополнительные инструменты дизайнера Я Сергей, ведущий дизайнер в компании Acronis. В этой статье я расскажу о тех инструментах, которые мы не только внедряем, но разрабатываем для других дизайнеров внутри компании. Речь пойдет о плагинах для Sketch, консольных утилитах и расширениях для Chrome. Читать дальше...

[recovery mode] Внутренние и вложенные классы java. Часть 1 Внутренние и вложенные классы java 02.03.2017 — 2019 год Часть 1. Начало Цель статьи: Рассказать о внутренних, вложенных, локальных, анонимных классах. Показать примеры их использования. Написать и протестировать классы в коде на java. Рассказать о свойствах этих клас...

Twitch Extensions. Пишем свое расширение для взаимодействия со зрителями Для подписчиковДва года назад разработчики стриминговой платформы Twitch представили новый способ взаимодействия стримеров и зрителей — Twitch Extensions. Эта система позволяет разработчикам дополнять и улучшать интерфейс как сайта, так и мобильного приложения, создавая разл...

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

[Из песочницы] Передача знания и Нейронный машинный перевод на практике Нейронный машинные перевод (НМП, англ. Neural Machine Translation, NMT) развивается очень быстро. Сегодня, чтобы собрать свой переводчик, не нужно иметь два высших образования. Но чтобы обучить модель, нужен большой параллельный корпус (корпус, в котором предложению на исход...

factory_trace gem поможет почистить ваши factories Если вы пишите тесты для вашего проекта и используете factory_bot для генерации тестовых данных, то представляю вам гем factory_trace, который поможет вам поддерживать ваши factories & traits в актуальном состоянии. Читать дальше →

Security Week 35: статистика утекших паролей и атаки через Google Drive Прошедшая неделя отметилась как минимум двумя громкими событиями в сфере инфобезопасности. Впервые за долгое время для актуальных моделей Apple iPhone со свежей прошивкой iOS 12.4 доступен джейлбрейк (новость, пост на хабре). Джейлбрейк эксплуатирует уязвимость, которую закр...

Безопасный доступ к полям регистров на С++ без ущерба эффективности(на примере CortexM) Рис. взят с сайта www.extremetech.com/wp-content/uploads/2016/07/MegaProcessor-Feature.jpg Всем доброго здравия! В прошлой статье я рассмотрел вопрос о проблеме доступа к регистрам микроконтроллера с ядром CortexM на языке С++ и показал простые варианты решения части про...

Устанавливаем GUI на Windows Server Core В прошлом нашем посте мы рассказали как готовим стандартные клиентские виртуальные машины и показали на примере нашего нового тарифа Ultralight за 120 рублей, как мы создавали стандартный образ Windows Server 2019 Core. В службу поддержки стали поступать заявки как работать...

RESTinio — это асинхронный HTTP-сервер. Простой пример из практики: отдача большого объема данных в ответ Недавно мне довелось поработать над приложением, которое должно было контролировать скорость своих исходящих подключений. Например, подключаясь к одному URL приложение должно было ограничить себя, скажем, 200KiB/sec. А подключаясь к другому URL — всего 30KiB/sec. Самым инте...

Предлагаемые изменения в Chromium нарушат работу uBlock Origin Разработчик uBlock Origin заявил, что его расширение для блокировки рекламы не сможет работать, если будут приняты изменения в Chromium. Речь идёт о внедрении declarativeNetRequest API, которые лишают возможности использовать webRequest API. Google считает, что изменения нео...

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

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

Software Defined Radio — как это работает? Часть 2 Привет, Хабр. В первой части были описаны основные виды SDR-устройств и кратко были приведены их характеристики. Во второй части я расскажу подробнее о плюсах и минусах SDR, также будет рассмотрен пример доступа к приемнику из языка Python. Продолжение под катом (осторож...

Иструменты Node.js разработчика. Очереди заданий (job queue) При реализации бэка веб-приложений и мобильных приложений, даже самых простых, уже стало привычным использование таких инструментов как: базы данных, почтовый (smtp) сервер, redis-сервер. Набор используемых инструментов постоянно расширяется. Например, очереди сообщений, суд...

Обман нейронной сети для начинающих В рамках ежегодного контеста ZeroNights HackQuest 2018 участникам предлагалось попробовать силы в целом ряде нетривиальных заданий и конкурсов. Часть одного из них была связана с генерированием adversarial-примера для нейронной сети. В наших статьях мы уже уделяли внимание ...

Унифицированная обработка ошибок (C++ вариант для микроконтроллеров) При разработке ПО для микроконтроллеров на С++ очень часто можно столкнуться с тем, что использование стандартной библиотеки может привести к нежелательным дополнительным расходам ресурсов, как ОЗУ, так и ПЗУ. Поэтому зачастую классы и методы из библиотеки std не совсем подх...

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

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

Мультимедиа центр «Kodi» и Yocto Project Введение в Yocto Project Yocto Project — это совместный Open Source проект для упрощения разработки дистрибутивов для встраиваемых систем. Yocto содержит большое количество шаблонов, метаданных и инструментальных средств сборки. В Yocto Project вы можете подключить большо...

[Из песочницы] Методы сжатия/хранения медиа данных в форматах WAVE и JPEG, часть 1 Здравствуйте! Моя первая серия статей будет направлена на изучение методов сжатия и хранения изображений/звука, таких как JPEG (изобр.) и WAVE (звук), также в них будут примеры программ с использованием этих форматов (.jpg, .wav) на практике. В этой части мы рассмотрим именн...

Смотри меня полностью: выжимаем максимум из live video на мобильных платформах Самый простой способ воспроизвести видео на мобильном устройстве — это открыть ссылку имеющимся в системе плеером, но это не всегда эффективно. Можно взять ExoPlayer и оптимизировать его, а можно вообще написать свой видеоплеер, используя только кодеки и сокеты. В статье ...

Дискриминация сотрудников по возрасту — беспощадная и бессмысленная Возможно, вы знаете, что закон РФ № 1032-1 от 19.04.1991 в редакции от 02.07.2013 г. запрещает распространять информацию, ограничивающую права или устанавливающую преимущества для соискателей по полу, возрасту, семейному положению и другим обстоятельствам, не связанным с дел...

Apple, по слухам, добавит поддержку USB-мыши в iPad Pro В последнем выпуске подкаста Connected на Relay FM главный редактор MacStories Федерико Витиччи предположил, что поддержка USB-мыши в конечном итоге может появиться в iPad Pro в качестве функции универсального доступа. «То, что я слышал, без адаптеров, вы сможете использоват...

«Основы программирования» набор на бесплатный курс с примерами на JavaScript Дорогие товарищи инженеры и будущие инженеры, сообщество Метархия открывает набор на бесплатный курс «Основы программирования», который будет доступен на youtube и github без всяких ограничений. Часть лекций уже записана в конце 2018 и начале 2019 года, а часть будет прочит...

Все очень плохо или новый вид перехвата трафика 13 марта в рабочую группу RIPE по борьбе со злоупотреблениями поступило предложение рассматривать BGP-перехват (hjjack) в качестве нарушения политики RIPE. В случае принятия предложения интернет-провайдер, атакованный с помощью перехвата трафика, получал бы возможность отпра...

Медиаменеджер Ярослав Муравьев рассказал о секретах насыщения медиаполя в Татарстане В ходе работы медиатренажера WORKSHOCK в Казани выступил медиаменеджер и предприниматель Ярослав Муравьев. По его словам, он разочарован инфополем Республики Татарстан, которое отчаянно нуждается в качественном позитивном контенте. Эксперт привел в пример кейсы, которые наде...

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

Автомобильное комбо-устройство Mio MiVue i85: компактный регистратор с функциями радар-детектора Рассмотренный регистратор в плане качества видео звезд с неба не хватает, это следует признать. Однако высокое качество видеоряда — вовсе не главное требование к автомобильному регистратору, это же не видеокамера. Mio MiVue i85 умеет автоматически включаться и выключаться (п...

Figma компонент и организация экземпляров на примере Userpic Качественная дизайн-система в Фигме всегда учитывает возможные состояния определенных компонентов. Если до появления Global Styles вариант был лишь один — всегда создавать новый компонент для каждого состояния (например текстовое поле может быть default, а может быть focus...

Рекламные интеграции: как это работает? Реклама — один из популярных способов монетизации развлекательных проектов и приложений. На примере iFunny я расскажу о механизмах получения рекламы и некоторых сложностях, с которыми можно столкнуться при интеграции рекламных SDK. Читать дальше →

Moto Mod 5G для Moto Z3 На MWC 2019 был представлен довольно интересный Mod Moto 5G для флагмана компании Moto Z3. Данный мод - это 5G, который при использовании в зонах с 5G охватит сетевые возможности ZG 4G и позволит покупателям использовать сверхбыструю скорость интернета 5G. Moto Mod 5G по...

Ящик Пандоры: разбираем эксплуатацию уязвимости WinRAR на примере задания NeoQUEST-2019 Как часто нам на помощь приходит старый добрый WinRAR! Из раза в раз он заботливо и бескорыстно распаковывает наши архивы, и запаковывает их обратно. Но мы стали старше, и теперь хочется попробовать что-то поинтереснее, правда? А тут как раз нашли 19-летнюю уязвимость, позв...

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

Основы формата GLTF и GLB, часть 1 Что такое GLTF и GLB? GLTF (GL Transmission Format) — это формат файла для хранения 3Д сцен и моделей, который является крайне простым в понимании (структура записана в стандарте JSON), расширяемым и легко взаимодействующим с современными веб-технологиями. Данный формат хоро...

[Перевод] Создание дизайн-документа миссии повествовательной игры на примере Last of Us Я всегда начинаю с того, что задаю много вопросов и провожу активные исследования. За свою карьеру я успел поработать над множеством сиквелов уже существовавших франшиз. Лучшее, что ты можешь сделать в этом случае — полностью освоить жанр игры и изучить мир. Среди прочих пр...

Жёлтое — Вакуум — Облако Последние несколько лет я, по непонятной причине, стараюсь подтолкнуть людей к расширению профессионального кругозора. Я убежден, что в современном мире невозможно занять достойное место, занимаясь узкоспециализированной деятельностью – только узкоспециализированной деятельн...

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

Инструменты Node.js разработчика. Работа с веб-сокетами по протоколу mqtt Технология веб-сокет позволяет в веб-приложении или в мобильном приложении реализовать отправку сообщений с сервера на клиент, что невозможно сделать средствами REST-API. Для работы с веб-сокетами часто используют библиотеку socket.io, или же разработчики работают с нативным...

[Перевод] Диаграмма Ганта vs Канбан доска Если коротко – диаграммы Ганта полезны, когда зависимости являются основным фактором формирования расписания, тогда как Канбан доски можно использовать для работ, которые не имеют зависимостей между собой. Кроме того, диаграммы Ганта подходят, когда существует предварительн...

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

Обзор Uniscend All Day Compact 10000 mAh. Power Bank на все случаи жизни Согласитесь, практически у каждого человека в «вооружении» есть сразу несколько гаджетов, которые нуждаются в периодической подзарядке аккумулятора. Однако иногда бывают ситуации, когда рядом с вами просто нет розетки и приходится искать различные решения для того, чтобы под...

[Из песочницы] Android preferences delegate В данной статье разобран пример создания делегата для SharedPreferences, который уменьшает boilerplate и делает использование SharedPrefernces более удобным. Те кто хочет посмотреть результат, может перейти к готовому решению, остальным добро пожаловать под кат. Читать дальш...

Опыт разработки сервиса Refund Tool с асинхронным API на Kafka Что может заставить такую большую компанию как Lamoda с отлаженным процессом и десятками взаимосвязанных сервисов существенно менять подход? Мотивация может быть совершенно разная: от законодательной до присущего всем программистам желания экспериментировать. Но это вовсе н...

История типизации на примере одного большого проекта Всем привет! Сегодня я расскажу вам историю развития типизации на примере одного из проектов в Ostrovok.ru. Эта история началась задолго до хайпа о typing в python3.5, более того, она началась внутри проекта, написанного еще на python2.7. 2013 год: совсем недавно был рел...

Расширения для Visual Studio Code которые помогают работать с Git Visual Studio Code имеет git по умолчанию, но встроенных функций хватает не всегда для удобной и быстрой работы. Также для эффективной работы с git требуется визуализация процессов. Читать дальше →

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 10. Режимы работы портов свитча Сегодня мы рассмотрим режимы портов свитча и функции свитча. Свитч имеет два режима работы: Access, или статический доступ, и Trunk – режим туннельной магистрали. Первый режим используется, когда вы подсоединяете к порту свитча какое-либо конечное устройство. Если вы подсоед...

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

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

Мультиязычные приложения в Angular В этой статье рассмотрим как можно быстро перевести ваш Angular проект на мультиязычный режим работы и какие есть для этого утилиты. Читать дальше →

[Перевод] Технический долг Программные системы склонны к накоплению мусора — внутренних недоработок, которые затрудняют дальнейшее изменение и расширение системы по сравнению с идеальным кодом. Технический долг — это метафора, придуманная Уордом Каннингемом. Она объясняет, как воспринимать этот мусор,...

Домен-фронтинг на базе TLS 1.3. Часть 2 Введение В первой части статьи мы дали краткое описание механизма encrypted SNI (eSNI). Показали каким образом на его основе можно уклоняться от детектирования современными DPI-системами (на примере билайновского DPI и запрещенного РКН рутрекера), а также исследовали новый в...

Соцсеть Facebook запустила в США сервис для знакомств Dating Facebook запустила в США сервис для знакомств внутри соцсети Dating. Об этом пишет TechCrunch со ссылкой на сообщение компании. Воспользоваться сервисом, который появился в виде дополнительной вкладки в основном приложении Facebook для смартфонов, можно с 18 лет. При регистр...

Логи не нужны? Разработка сильно изменилась за последние годы. Вместо монолитных приложений пришли микросервисы и функции. Базы данных из универсальных промышленных монстров переродились в узконаправленные. Docker изменил взгляд на деплой. Но изменилось ли наше представление о логах? Одна...

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

[Перевод] Создаём эффект распространения цвета в Unity На этот эффект меня вдохновил эпизод Powerpuff Girls. Я хотела создать эффект распространения цвета в чёрно-белом мире, но реализовать его в координатах мирового пространства, чтобы видеть, как цвет закрашивает объекты, а не просто плоско распределяется по экрану, как в мул...

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

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

[Перевод] Деплоим ML проект, используя Flask как REST API, и делаем доступным через приложение на Flutter Введение Машинное обучение уже везде и, пожалуй, почти невозможно найти софт, не использующий его прямо или косвенно. Давайте создадим небольшое приложение, способное загружать изображения на сервер для последующего распознавания с помощью ML. А после сделаем их доступными ...

Анализ кода CUBA Platform с помощью PVS-Studio Для Java программистов существуют полезные инструменты, помогающие писать качественный код, например, мощная среда разработки IntelliJ IDEA, бесплатные анализаторы SpotBugs, PMD и другие. Всё это уже используется в разработке проекта CUBA Platform, и в этом обзоре найденных...

Практическое применение трансформации AST-деревьев на примере Putout Введение Каждый день при работе над кодом, на пути к реализации полезного для пользователя функционала, становятся вынужденные (неизбежные, либо же просто желательные) изменения кода. Это может быть рефакторинг, обновление библиотеки или фреймворка до новой мажорной версии, ...

Работаем с USB Custom HID на Android В современных Android — приложениях для взаимодействия с другими устройствами чаще всего используются беспроводные протоколы передачи данных, как например Bluetooth. В годы, когда часть устройств имеют беспроводную зарядку, сложно представить себе связку Android устройства ...

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

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 31. CDP, Syslog и NTP. Часть 1 Сегодня мы рассмотрим 3 концепции: проприетарный протокол Cisco CDP, системный журнал Syslog и протокол сетевого времени NTP. Мы также продолжим обсуждение темы неполадок и рассмотрим несколько инструментов для их диагностики, затем ознакомимся с Syslog и NTP и в конце урока...

Как я писал бота с ДЗ и менял базу данных Здравствуйте, Хабровчане! Сегодня я постараюсь поведать вам как школьник может наговнокодить написать бота для хранения домашки для VK. ОсторожноСразу обращу внимание, что для серьёзных проектов так строить инфраструктуру нельзя, весь этот проект создавался только для развл...

[Из песочницы] CSS-переход свойства height от 0px до auto Здравствуй, Хабр! Хочу поделиться ещё одним способом создания css-перехода (transition) свойства height от 0px до auto. Столкнулся с данной проблемой при разработке веб-компонентов TreeView и DataGrid. В TreeView решил сделать плавное развёртывание/свёртывание узлов, а в ...

Сборка кинематики H-bot и CoreXY Дорогие друзья!В продолжении прошлой темы "Набор для самостоятельной сборки 3D принтера B&R" опишу сборку кинематики.Верхняя панель и балка позволяют собрать 3D принтер как на кинематики H-bot, так и на кинематики CoreXY. На данный момент в наборах для сборки B&R реализовано...

[Из песочницы] Как в Microsoft SQL Server получать данные из Google Analytics при помощи R В этом материале я хочу подробно показать, как можно при помощи R в Microsoft SQL Server реализовать получение данных из Google Analytics (и вообще из любого API). Благодарности: Поскольку я ни разу не маркетолог мне требовалась помощь специалиста. Тестовый кабинет и доступ ...

[Из песочницы] Начало работы с stm32 или не повторяйте моих ошибок Небольшой рассказ о граблях, встреченных на пути познания ARM на примере stm32f103c8t6 и stm32l151rct6. Читать дальше →

[Из песочницы] Изоморфизм спешит на помощь «Изоморфизм» — одно из базовых понятий современной математики. На конкретных примерах на Haskell и C# я не только растолкую теорию для нематематиков (не используя при этом никаких непонятных математических символов и терминов), но и покажу как этим можно пользоваться в повсе...

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

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

Семинар по SLS 6 сентября Приглашаем вас на семинар по SLS-3D-печати, который пройдет 6 сентября в технопарке «Калибр»: «Возможности, преимущества над FDM и SLA, примеры внедрения». На семинаре представители Sinterit, приехавшие специально для этого из Польши, ознакомят участников с первой доступно...

Как сэкономить память на iPhone 11, 11 Pro или 11 Pro Max Тройная камера iPhone 11 Pro Max Несмотря на обилие слухов о поддержке Apple Pencil и реверсивной зарядке, самое значимое изменение, которое претерпели новые iPhone, оказалось связано всё-таки с их камерами. Новинки получили не только по дополнительному модулю с ультрашироки...

[Из песочницы] Как не надо писать шаблоны для bootstrap Мало кто сейчас пишет дизайн сайта с нуля — зачем, если есть куча замечательных CSS фреймворков? Наиболее популярен среди них bootstrap. Тем не менее, всем хочется, чтобы сайт выглядел уникально, не так как у других — поэтому поверх часто втыкают(в меру возможностей) бесплат...

[Из песочницы] Как заглянуть в глаза Кассандре и не потерять при этом данные, стабильность и веру в NoSQL Говорят, в жизни все стоит попробовать хотя бы раз. И если вы привыкли работать с реляционными СУБД, то познакомиться на практике с NoSQL стоит в первую очередь хотя бы для общего развития. Сейчас в силу бурного развития этой технологии очень много противоречивых мнений и ...

Tic Tac Toe, часть 6: Flask и Celery/RabbitMQ Tic Tac Toe: содержание цикла статейПопробуем подключить Celery/RabbitMQ к нашему проекту. В качестве основы возьмем проект с Flask'ом. Celery займется вычислением случайного числа. Читать дальше →

Как я наводил порядок в проекте, где лес прямых рук (настройки tslint, prettier, etc) И снова здравствуйте. На связи Омельницкий Сергей. Сегодня я поделюсь с Вами одной из своих головных болей, а именно — что делать, когда проект пишут много разноуровневых программистов на примере angular приложения. Так повелось, что я долгое время работал только со своей к...

Один из методов получения истории блокировок в PostgreSQL Продолжение статьи "Попытка создать аналог ASH для PostgreSQL ". В статье будет рассмотрено и показано на конкретных запросах и примерах — какую же полезную информацию можно получить с помощью истории представления pg_locks. Предупреждение. В связи с новизной темы и незавер...

[Перевод - recovery mode ] Использование Union вместо OR Иногда медленные запросы можно исправить, немного изменив запрос. Один из таких примеров может быть проиллюстрирован, когда несколько значений сравниваются в предложении WHERE с помощью оператора OR или IN. Часто OR может вызывать сканирование индекса или таблицы, которая м...

Дайджест новостей из мира PostgreSQL. Предновогодний (укороченный) выпуск №13 Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL. В этом предновогоднем выпуске не будем утомлять вас длинным перечнем новостей. С Наступающим Новым Годом! Релизы pgAdmin4 3.6 В этой версии добавлены: из панели Properties можно дропать несколько...

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

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

Password Checkup — расширение от Google, которое проверит ваши пароли на безопасность Плагин сообщит, если какой-либо из ваших аккаунтов подвержен взлому.

[Перевод] Скорость хранилища подходит для etcd? Спросим fio Короткая история о fio и etcd Производительность кластера etcd во многом зависит от производительности его хранилища. etcd экспортирует некоторые метрики в Prometheus, чтобы предоставить нужные сведения о производительности хранилища. Например, метрику wal_fsync_duration_se...

Мощная модель OPPO AX7 Фирменная оболочка ColorOS 5.2 на базе Android 8.1 Oreo включает ряд полезных опций. Например, «Умная панель» поддерживает не только горизонтальную, но и вертикальную полноэкранную многозадачность. Её можно активировать, проведя пальцами по двум сторонам дисплея. Пользовател...

[Перевод] Руководство по React Native для начинающих Android-разработчиков (с примером приложения) Представляем вам перевод статьи Nikhil Sachdeva, опубликованной на hackernoon.com. Автор делится опытом разработки мобильных приложений с помощью React Native и предлагает создать свое приложение, используя этот фреймворк. Я был Android-разработчиком и довольно длительное...

[recovery mode] Бесплатные ссылки, или чем заняться на досуге владельцу сайта Эта статья будет полезна владельцам бизнеса, которые занимаются продвижением своего сайта самостоятельно, но в “пассивном режиме”: в свободное время понемногу изучают вопрос, пытаются вникнуть в разные аспекты, пробуют разные способы и сервисы. Иными словами, не ставят жестк...

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

Анализ данных на Scala — суровая необходимость или приятная возможность? Традиционными инструментами в сфере Data Science являются такие языки, как R и Python — расслабленный синтаксис и большое количество библиотек для машинного обучения и обработки данных позволяет достаточно быстро получить некоторые работающие решения. Однако бывают ситуации...

Razer Kraken Ultimate покорит геймеров Компания Razer довольно часто радует нас крутыми игровыми решениями, которые за свои деньги легко уделывают всех потенциальных конкурентов. Гарнитура Razer Kraken Ultimate является ярким тому примером — здесь есть поддержка технологии THX Spatial Audio с отличным качеством з...

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

[Перевод] Внедрение детектора поддельных новостей в мобильной версии браузера Microsoft Edge выявляет сомнительные источники Microsoft хочет предупредить пользователей о ненадежных новостных источниках с помощью новой функции в своем браузере Edge на мобильных устройствах. В расширении партнерства «NewsGuard», оповещения начали появляться в некоторых новостных историях на «Edge mobile browser» о ...

[Перевод] Представьте себе ваши данные перед тем, как вы их соберете Перевод подготовлен для студентов курса «Прикладная аналитика на R». Нам, как исследователям данных (data scientist), часто дают набор данных и просят использовать его для получения информации. Мы используем R для обработки, визуализации, моделирования, подготовки таблиц и...

Автоматизация импортов в Python До После import math import os.path import requests # 100500 other imports print(math.pi) print(os.path.join('my', 'path')) print(requests.get) import smart_imports smart_imports.all() print(math.pi) print(os_path.join('my', 'path')) print(requests.get) Так получи...

[Перевод] Node.js-проекты, в которых лучше не использовать lock-файлы Автор материала, перевод которого мы сегодня публикуем, говорит, что одна из проблем, с которыми приходится сталкиваться программистам, заключается в том, что у них их код работает, а у кого-то другого выдаёт ошибки. Эта проблема, возможно, одна из самых распространённых, во...

Microsoft ML Spark: расширение Spark, делающее SparkML человечнее, и LightGBM как бонус Многие, кто работал с Spark ML, знают, что некоторые вещи там сделаны "не совсем удачно" или не сделаны вообще. Позиция разработчиков Spark в том, что SparkML — это базовая платформа, а все расширения должны быть отдельными пакетами. Но это не всегда удобно, ведь Data Scient...

Хочешь <s>похудеть</s> учиться ИТ самостоятельно? Спроси меня как Есть мнение, с которым я часто сталкиваюсь, — учиться самостоятельно невозможно, нужны профессионалы, которые будут вас вести по этому тернистому пути — объяснять, проверять, контролировать. Попробую опровергнуть это утверждение, а для этого, как известно, достаточно привест...

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

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

Некоторые аспекты оптимизации LINQ-запросов в C#.NET для MS SQL Server LINQ вошел в .NET как новый мощный язык манипуляции с данными. LINQ to SQL как часть его позволяет достаточно удобно общаться с СУБД с помощью например Entity Framework. Однако, достаточно часто применяя его, разработчики забывают смотреть на то, какой именно SQL-запрос буде...

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

Навигация внутри Android приложения Введение При Андроид разработке мы используем разные архитектурные решения(паттерны). Например Mvp, Mvvm, Mvi и т.д… Каждый из этих паттернов решает несколько важных задач и поскольку они не идеальны они нам оставляют кое-какие нерешенные задачи. К примеру этих задач относят...

Основы статической маршрутизации в Mikrotik RouterOS Маршрутизация — процесс поиска оптимального пути для передачи пакетов в сетях TCP/IP. Любой устройство подключенное к сети IPv4 содержит процесс и таблицы маршрутизации. Данная статья не является HOWTO, она описывает на примерах статическую маршрутизацию в RouterOS, я намере...

Выход из зоны комфорта: с nodejs на dlang В 2017м году я начал писать проект на nodejs — реализацию протокола ObjectServer от Weinzierl для доступа к значениям KNX. В процессе написания было изучено: работа с бинарными протоколами, представление данных, работа с сокетами(unix sockets в частности), работа с redis баз...

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

3D-сканеры в автомобилестроении: 4 преимущества и 4 успешных проекта В нашем материале, посвященном применению аддитивных технологий в автопроме, мы подробно рассмотрели их главные преимущества и потенциал для российской отрасли. И если внедрение 3D-печати пока сопряжено с определенными трудностями (например, с необходимостью крупных инвест...

[Из песочницы] Довериться Кодду или своим объектам? Хранимые объекты без головной боли: простой пример работы с объектами Caché на языках ObjectScript и Python Замок Нойшванштайн В июне 2020 года ровно 50 лет табличным хранилищам данных или говоря формально — реляционной модели данных. Вот официальный документ – та самая зн...

[Из песочницы] Краткое введение в рекурсию. JavaScript Перевод: Привет, Хабр! Представляю вашему вниманию перевод статьи "A Quick Intro to Recursion in Javascript" Yazeed Bzadough. Примечание. Рекурсия не единожды обсуждалась на хабре, но данная статья даёт базовое понимание рекурсии. Это будет полезно начинающим разр...

ITFO4: шоколадки и автомобили, или «где доступ к ресурсу?» Участвуя в курсе ITIL4 Foundation в качестве наблюдателя, обратил внимание, что многим участникам оказывается непросто понять и прочувствовать разницу между продажей товара и продажей услуги. Это особенно сильно проявлялось во время выполнения практических упражнений. Да и п...

Как написать вредное API Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. Всем привет! Я работаю тимлидом команды Integration Development в сервисе онлайн-бронирования отелей Ostrovok.ru и сегодня хотел бы поделиться своим опытом работы с ра...

Safari больше не поддерживает небезопасные расширения на macOS: как обойти ошибку Если вы пытаетесь установить старое расширение для браузера Safari, то наверняка получаете ошибку с предупреждением о том, что «яблочный» интернет-обозреватель теперь работает только с проверенными Apple приложениями. Но что делать, если нужна именно старая версия? ПО ТЕМЕ: ...

Альтернативный оркестратор nomad на десктопе В настоящее время оркестрация контейнеров ассоциируется в первую очередь с kubernetes. Но это не единственный возможный выбор. Есть и альтернативные средства оркестрации, например nomad, разработчик HashiCorp (хорошо известный как разработчик средства виртуализации Vagrant)....

Пробуем сэкономить. Нагревательный стол 220В. Часть1. И так, вот стоит пред нами почти собранный принтер. Посчитаем примерно сколько ему надо энергии для работы.1. Электроника - 0,2А (беру самые распространённые ArduinoMega2560+RAMPS+4штА4988+80мм вентилятор)2.Шаговые двигатели 4шт 17HS4401. Измерения показали 1,4А при одноврем...

Устанавливаем Vmware ESXi на Mac Pro 1,1 В статье описываю свой опыт установки VMware ESXi на старинный Apple Mac Pro 1,1. От заказчика поставлена задача – расширить файловый сервер. Как создавался файловый сервер компании на PowerMac G5 в 2016, и какого было обслуживать созданное legacy достойно отдельной стать...

Пример разбора C++ кода с помощью libclang на Python На одном личном проекте на C++ мне потребовалось получать информацию о типах объектов во время выполнения приложения. В C++ есть встроенный механизм Run-Time Type Information (RTTI), и конечно же первая мысль была использовать именно его, но я решил написать свою реализацию,...

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

[Перевод] Практический пример использования render-функций Vue: создание типографской сетки для дизайн-системы В материале, перевод которого мы сегодня публикуем, речь пойдёт о том, как создать типографскую сетку для дизайн-системы с использованием render-функций Vue. Вот демонстрационная версия проекта, который мы будем здесь рассматривать. Здесь можно найти его код. Автор этого мат...

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

[Из песочницы] FFmpeg начало работы с Visual Studio Привет! Начну с того, что я занимаюсь разработкой программы определения автомобильных номеров на дешевом слабо мощном процессоре типа Intel ATOM Z8350. Мы получили достаточно хорошие результаты в определении российских номеров на статической картинке (до 97%) с не плохим быс...

vCloud Director Extender: миграция В этой статье будет рассмотрена процедура расширения сети предприятия в облако провайдера посредством компонента VMware NSX® Edge™ Gateway Standalone. А также детально разобраны виды миграции виртуальных машин. Прежде чем приступать к миграциям и настройке сети...

[Из песочницы] Extension в Dart (Flutter) В недавном релизе языка Dart 2.6 в языке появилась новая функция, static extension или статические методы расширения, который позволяет вам добавить новые методы к существующим типам. Зачем вообще нужны extension? Как их использовать и на что они годятся? Введение Начнём ...

[Перевод] Что нужно знать о массивах JavaScript Представляем вам перевод статьи автора Thomas Lombart, которая была опубликована на сайте medium.freecodecamp.org. Перевод публикуется с разрешения автора. Пример использования метода reduce для сокращения массива Позвольте мне сделать смелое заявление: циклы часто бывают...

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

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

Netramesh – легковесное service mesh решение В процессе перехода от монолитного приложения к микросервисной архитектуре мы сталкиваемся с новыми проблемами. В монолитном приложении обычно достаточно просто определить, в какой части системы произошла ошибка. Скорее всего, проблема в коде самого монолита, либо в базе дан...

Как зависит перевод термина trunk от вендора коммутаторов? На эту ошибку (или, если хотите, разночтение) я обратил внимание во время проверки перевода по коммутаторам NETGEAR. Дело в том, что при переводе термина “trunk” нужно обязательно учитывать, чьей трактовки придерживается вендор — Cisco или HP, ибо между ними очень разный тех...

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

Управляем Windows Server из Windows Admin Center В данной статье мы продолжаем рассказывать про работу с Windows Server Core 2019. В прошлых постах мы рассказали как готовим клиентские виртуальные машины на примере нашего нового тарифа VDS Ultralight с Server Core за 99 рублей. Затем показали как работать с Windows Server ...

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

Алгоритм взаимодействия сотен тысяч уникальных частиц на GPU, в GLES3 и WebGL2 Описание алгоритма логики, и разбор рабочего примера в виде техно-демки-игры WebGL2 версия этой демки https://danilw.itch.io/flat-maze-web остальные ссылки смотрите в статье. Статья разбита на две части, сначала про логику, и вторая часть про применение в игре, первая часть...

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