Социальные сети Рунета
Четверг, 18 апреля 2024

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

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

8 причин, по которым вы обязательно захотите использовать Azure Notebooks Если Вы data scientist, или занимаетесь машинным обучением, как я — наверняка Вы пишете большую часть кода в Jupyter Notebooks. Для всех остальных поясню: Jupyter — это замечательная система, позволяющая Вам сочетать исполняемый программный код и текстовые фрагменты на основ...

Что такое музыкальное программирование — кто и почему им занимается, устраивая настоящие live-сессии Ранее мы говорили об инструменте OpenMusic. Он позволяет писать музыку, используя объектно-ориентированный подход. Сегодня речь пойдет о людях, которые создают композиции с помощью специализированных языков программирования. И зачастую делают это «в прямом эфире». Читать д...

Allure-Android. Информативные отчеты для мобильной автоматизации Автоматизация мобильных приложений довольно молодая сфера: фреймворков много и многие проекты сталкиваются с проблемой выбора самого «быстрого, стабильного, простого в использовании». Также и мы около двух лет назад стояли перед выбором нового инструмента автоматизации тести...

С чего начиналась монополия, или немного возни с IBM PC 5150 For English press One У каждого любителя старого железа есть фетиш. Зачастую на территории восточной (да и части западной тоже) Европы это ZX Spectrum, замечательный компьютер, который, впрочем, не оставил значительного наследия. Другое дело — IBM PC 5150. Этот компьютер ...

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

Reactor, WebFlux, Kotlin Coroutines, или Асинхронность на простом примере Многие сервисы в современном мире, по большей части, «ничего не делают». Их задачи сводятся к запросам к другим базам/сервисам/кешам и агрегации всех этих данных по различным правилам и разнообразной бизнес-логике. Поэтому неудивительно, что появляются такие языки, как Go...

[Перевод] Использование JavaScript-модулей в продакшне: современное состояние дел. Часть 1 Два года назад я писал о методике, которую сейчас обычно называют паттерном module/nomodule. Её применение позволяет писать JavaScript-код, используя возможности ES2015+, а потом применять бандлеры и транспиляторы для создания двух версий кодовой базы. Одна из них содержит с...

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

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

[Перевод] Chaos Engineering: искусство умышленного разрушения Прим. перев.: Рады поделиться переводом замечательного материала от старшего технологического евангелиста из AWS — Adrian Hornsby. В простых словах он объясняет важность экспериментов, призванных смягчить последствия сбоев в ИТ-системах. Вы, наверное, уже слышали про Chaos M...

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

[Перевод] Понимание разницы между СI и СD: «если что-то вызывает боль, делайте это почаще» Disclaimer. Костис Капелонис — Developer advocate (человек, защищающий и отстаивающий принципы программной разработки) Codefresh, первой платформы CI/CD для Kubernetes и контейнеров. Миссия Codefresh «Автоматизировать и упрости всё, от кода до облака». Как инженер-программис...

Знакомимся с языком Swift на примере игры Snake Всем привет! В преддверии запуска курса «iOS-разработчик. Базовый курс» мы организовали очередной открытый урок. Этот вебинар рассчитан на людей, которые имеют опыт разработки на любых языках и платформах, однако желают ещё изучить язык Swift и освоить разработку под iOS. ...

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

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

Пишем Reverse socks5 proxy на powershell.Часть 3 История об исследовании и разработке в 3-х частях. Часть 3 — практическая. Буков много — пользы еще больше Предыдущие статьи из цикла можно найти тут и здесь =) Проверка боем Давайте теперь проверим работу нашего скрипта на практике. Для этого попробуем выбросить обратный ...

Причины внедрить в процесс разработки статический анализатор кода PVS-Studio PVS-Studio – это инструмент для поиска ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках C, C++, C# или Java. PVS-Studio относится к классу инструментов статического тестирования защищённости приложений (Static Application Security Testing, S...

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

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

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

Завершающий курс специализации по Python от Mail.ru Group Python — простой и гибкий язык, применяемый во многих областях современной разработки. На нём создают веб-приложения, пишут игры, анализируют данные и выполняют многие другие задачи. Mail.ru Group запустила на платформе Coursera специализацию «Программирование на Python», ...

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

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

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

[Перевод] А есть ли случайные числа в CSS? CSS позволяет создавать динамические макеты и интерфейсы в Интернете, но как язык разметки он является статическим — после установки значения его нельзя изменить. Идея случайности не обсуждается. Генерация случайных чисел во время выполнения — это территория JavaScript, а ...

[Перевод] Пишем API для React компонентов, часть 6: создаем связь между компонентами Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важен Пишем API для React компонентов,...

Лабораторная работа: настраиваем lvm, raid на linux Небольшое отступление: данная л\р является синтетической. Некоторые задания которые здесь описаны можно сделать гораздо проще, но поскольку задача л/р — познакомиться с функционалом raid, lvm то некоторые операции искусственно усложнены. Требования к инструментам для выполне...

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

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

[Перевод] Топ-5 JS-фреймворков для фронтенд-разработки в 2020 году. Часть 2 Публикуем вторую часть перевода материала, посвящённого пятёрке лучших JavaScript-инструментов для разработки клиентских частей веб-проектов. В первой части речь шла о библиотеке React и о фреймворке Angular. Здесь мы обсудим Vue, Ember и Backbone. Читать дальше →

[Из песочницы] Ломаем паттерн проектирования — Singleton в PHP Одним прекрасным рабочим днём я писал unit-тесты для бизнес-логики на проекте, в котором работаю. Передо мною стояла задача инициализировать некоторые приватные свойства класса определёнными значениями. Читать дальше →

Как правильно распределить 6 заявок на 4х сотрудников? В редакцию портала поступил вопрос: Вопрос про конвеер заявок. Допустим поступает 5 заявок на 4х сотрудников. 4 раздаются автоматом, а как бысть с 5й? Варианты: 1) Заявка висит в очереди, пока кто-то не освободится и не закроет свою, а после этого назначается на первого ос...

Опыт интеграции онлайн кассы Атол с собственной торговой CRM Вокруг онлайн касс в последнее время дикий ажиотаж, 1 июля 2019 заканчивается последняя отсрочка, поэтому и мне пришлось заняться этим вопросом. Тем, у кого 1С или другая система особо можно не напрягаться, но если у вас собственная самописная система, то на ваши плечи ложит...

Интеграция Kubernetes Dashboard и пользователей GitLab Kubernetes Dashboard — простой в работе инструмент для получения актуальных сведений о работающем кластере и минимального управления им. Начинаешь его ценить ещё больше, когда доступ к этим возможностям нужен не только администраторам/DevOps-инженерам, но и тем, кто меньше...

[Перевод] Как вы избавляетесь от неиспользуемого CSS-кода? Часть 1 Автор статьи, первую часть перевода которой мы сегодня публикуем, хотел бы, чтобы читатели заранее знали о том, что избавление от ненужного CSS — это трудная задача. Если вы это читаете в надежде найти некий инструмент, запустив который, вы сможете узнать о том, какой именно...

[Из песочницы] Быстрый Яндекс словарь Наверное все знают что у Яндекс есть замечательный бесплатный сервис Яндекс.Словарь где можно посмотреть перевод нужного вам слова, но для лично меня он не удобен тем что постоянно нужно было переключаться на Chrome, вручную вводить текст или вставлять из буфера обмена, даже...

Пишем свой язык программирования, часть 2: промежуточное представление программ Введение Приветствую всех, кто заглянул почитать мою очередную статью. Повторюсь, я описываю создание языка языка программирования, на основе проведенной ранее работы, результаты которой описал в этом посте. В первой части (линк: habr.com/post/435202) я описал этапы прое...

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

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

[Перевод] Как соединить GitLab и Pantheon и оптимизировать рабочие процессы Drupal и WordPress Наш гость, создатель инструментов для разработчиков из Pantheon, рассказывает, как автоматизировать деплои WordPress с помощью GitLab CI/CD. В Pantheon я занимаюсь связями с разработчиками, поэтому всегда ищу новые способы помочь разработчикам WordPress и Drupal решать проб...

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

[Перевод] Gap — светлое будущее для отступов в Flexbox (как в Grid) Одна из моих любимых частей спецификации CSS Grid — это grid-gap. Они позволяют легко создавать отступы между элементами внутри сетки. Margins и приёмы, к которым мы прибегаем, чтобы реализовать их в разных ситуациях, долгое время были одним из главных моментов, раздражаю...

VBA и Python для автоматизации Excel и MS Office Поводом для заметки послужила статья на Хабре, в которой автор описывал, как он решал на Python задачу сбора и анализа метаданных из файлов Excel. Эта заметка более подробно раскрывает всем известный тезис: Под конкретную задачу надо выбирать наиболее подходящий инструмент п...

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

[Перевод] Процедурные дороги в Houdini и Unity Для моей постапокалиптической игры Frameshift мне нужно было заполнить очень большой открытый мир разнообразными городами. В нашей команде всего 3 человека, поэтому я, разумеется, воспользовался процедурной мощью Houdini! Раньше, когда не знал о Houdini, я писал на C# соб...

[Перевод] Погружение в Move — язык программирования блокчейна Libra от Facebook Далее мы рассмотрим в деталях основные характеристики языка Move и в чем его ключевые различия с другим, уже популярным языком для смарт-контрактов — Solidity (на платформе Ethereum). Материал основан на изучении доступного он-лайн 26-страничного whitepaper-а. Введение Move...

[Перевод] 10 самых влиятельных языков программирования последних 50 лет и их создатели В IT-вселенной существует множество языков программирования. С каждым годом их становится всё больше и больше. Например, сравнительно недавно появились языки Scala, Kotlin, Go и Closure. Но история говорит нам о том, что выживут лишь немногие из них. Языки, о которых пойдёт...

[Перевод] 10 малоизвестных возможностей инструментов разработчика Chrome Автор заметки, перевод которой мы публикуем, пользуется инструментами разработчика Chrome почти каждый день. Здесь он хочет рассказать о малоизвестных возможностях этих инструментов. Он говорит, что если бы знал о них раньше, то ему они точно бы пригодились. Читать дальше ...

Контент-маркетинг в США, Латинской Америке и Азии: полезные советы, ссылки и инструменты для бюджетного продвижения Изображение: Unsplash Выход за пределы родного рынка для любого стартапа – непростое испытание. У вас ограничены ресурсы, вы мало знаете о специфике продвижения в новых странах, не работали с локальными языками. Задача охватить даже минимальную аудиторию в разных концах...

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

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

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

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

[Из песочницы] Интеграция ClangFormat и Notepad++ ClangFormat является одним из лучших инструментов для автоматического форматирования исходных кодов на языках C, C++, Java, JavaScript, Objective-C, C#. Существуют плагины для популярных сред разработки (IDE), но часто нужно быстро отформатировать файл или часть файла с исхо...

[Из песочницы] Изучая go: пишем p2p мессенджер со сквозным шифрованием Yet another P2P Messenger Читать отзывы и документацию о языке не достаточно, чтобы научиться на нем писать более менее полезные приложения. Обязательно для закрепления нужно создать что-то интересное, чтобы наработки можно было бы использовать в других своих задачах. Стать...

[Перевод] Будущее PHP Это мертвый язык программирования или нет? У PHP наверняка были лучшие времена. Но действительно ли он мертв? На форумах, подобных StackOverflow, люди предполагают, что PHP мертв. У них есть верная точка зрения, или может быть, они просто не любят PHP? Давайте посмотрим ...

Как мы проводим регрессионное тестирование расчета заработной платы в SAP HCM Механизм расчета заработной платы в SAP HCM является надежным и в то же время гибким инструментом. Этот инструмент позволяет учитывать любые требования законодательства и локальных нормативных актов в области вознаграждения сотрудников. Однако обратной стороной медали такой ...

Python стал «языком 2018 года» по версии экспертов TIOBE Эксперты TIOBE назвали Python языком программирования 2018 года. По словам специалистов, Python сегодня является неотъемлемой частью многих IT-сфер. Он лидирует по использованию в статистике и при создании систем искусственного интеллекта, скриптов и системных тестов, а такж...

Custom instruments: когда signpost недостаточно Instruments для Xcode компании Apple — это инструменты для анализа производительности iOS-приложения. Их используют для сбора и отображения данных, которые необходимы в отладке кода. В прошлом году Apple презентовала Custom Instruments. Это возможность расширить стандартный ...

Немного технической лирики о C++ Tools от JetBrains, и при чем тут единороги Начну не с моего типичного “Привет, Хабр! У нас тут очередной крутой релиз”, а с “Привет, меня зовут Настя, я ПММ в JetBrains и я отвечаю за наши инструменты для C++”. Или нет, попробую еще раз, вот так: “Привет, пишет вам C++ разработчик с 8-летним стажем, который 5 лет наз...

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

ARM Assembler Editor: Если гора не идет к Магомеду, Магомед идет к горе… Если кто не знает мне интересно программирование на ассемблере для микроконтроллеров STM32… И все бы хорошо, да только программировать особо негде… Те среды которые есть в настоящий момент заточены больше для языка Си и программирование в них на ассемблере не сильно отличае...

Canon RF 35mm F1.8 Macro IS STM: широкоугольный макрообъектив для нового байонета Canon RF Canon RF 35mm F1.8 Macro IS STM — отличный универсальный боец. Пускай «под микроскопом» можно найти признаки несовершенства, это замечательный объектив за свои деньги, который может стать вашим самым выгодным приобретением. В одном корпусе вы получаете инструмент для макросъ...

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

[Перевод] Как робот-доставщик изменил кулинарные привычки американских студентов Два месяца назад, в конце января, началось тестирование роботов Starship Technologies в Университета Джорджа Мейсона в Виргинии. Руководство вуза разрешило компании внедрить на кампус 25 её устройств, настроенных на доставку заказов от крупнейших локальных фаст-фудов и рес...

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

Как работать с Shader Graph в Unity3D Графы шейдеров это новый инструмент для создания шейдеров в юнити. Он позволяет создавать шейдеры людям не имеющим навыков написания кода. Результат каждой операции виден при редактировании. Идеальный инструмент для новичков и экспериментаторов. Читать дальше →

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

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

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

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

[Из песочницы] SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM В данной статье я постараюсь рассказать о фреймворке SpaceVIL (Space of Visual Items Layout), который служит для построения пользовательских графических интерфейсов на платформах .Net / .Net Core и JVM. SpaceVIL является кроссплатформенным и мультиязычным фреймворком, в его ...

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

Опровергаем четыре стереотипа о языке программирования Rust Язык программирования Rust, созданный и поддерживаемый корпорацией Mozilla, позволяет обычным программистам писать одновременно и безопасные и быстрые системы: от калькуляторов до высоконагруженных серверов. За своё относительно короткое время существования данный язык уже ...

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

Инструменты разработки и оформления спецификаций программы nanoCAD Механика Основным конструкторским документом в соответствии с ГОСТ 2.102-2013 для сборочных единиц, комплексов и комплектов является спецификация. На сборочном чертеже многие элементы конструкции могут быть показаны упрощенно и даже условно, но при этом спецификация такого чертежа вс...

Укрощение Горыныча, или Декомпиляция eBPF в Ghidra Автор статьи Nalen98 Добрый день! Тема моего исследования в рамках летней стажировки «Summer of Hack 2019» в компании Digital Security была «Декомпиляция eBPF в Ghidra». Нужно было разработать на языке Sleigh систему трансляции байткода eBPF в PCode Ghidra для возможност...

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

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

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

[Перевод] Создание игры для SEGA Mega Drive/Genesis в 2019 году Даже сегодня люди по-прежнему продолжают создавать новые игры для старых консолей. Мы называем их «homebrew». Иногда это способ реализовать детскую мечту о создании игры для консоли, на которой играл ребёнком. Но кроме того это ещё и интересная задача для любого дизайнера и...

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

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

[Перевод] Анализ сишного Hello World Hello World — одна из первых программ, которые мы пишем на любом языке программирования. Для C hello world выглядит просто и коротко: #include <stdio.h> void main() { printf("Hello World!\n"); } Поскольку программа такая короткая, должно быть элементарно объяснить,...

Что такое логическое программирование и зачем оно нам нужно У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал) Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас. Можно по-раз...

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

Что такое Legal Support: рекомендации юристу IT-компании Риск – дело благородное, но при ведении бизнеса деньги любят счет и порядок. Для того, чтобы сохранить теплые отношения с клиентами и вместе с тем уменьшить рисковые факторы, сервисные компании создают свои юридические службы – Legal Support. Мы уже много лет работаем в IT и...

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

[Перевод] Сравнение BDD фреймворков Python: плюсы и минусы Всем привет. Уже в этом месяце в ОТУС стартует курс "Python QA Engineer". В преддверии старта данного курса делимся с вами переводом интересного материала. Почти все основные языки программирования имеют фреймворки для BDD тестирования, и Python не исключение. И по факту, у...

Основы шаблонов С++: шаблоны функций Дисклаймер: статья была начата еще в феврале, но, по зависящим от меня причинам, закончена не была. Тема очень обширна, поэтому публикуется в урезаном виде. Что не поместилось, будет рассмотренно позже. Невозможно разбираться в современном С++, не зная, что такое шаблоны п...

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

[Перевод] «Алгебраические эффекты» человеческим языком Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех. Вы слышали об алгебраических эффектах? Мои п...

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

[Перевод] 3 популярных инструмента для организации непрерывного развертывания (Continuous Deployment) Continuous Deployment (непрерывное развертывание) — особый подход в разработке программного обеспечения, который применяется для быстрого, безопасного и эффективного внедрения различных функций в ПО. Основная идея — создание надежного автоматизированного процесса, позво...

Программирование в России введут с начальной школы Одно из заданий детского курса программирования на Code.org. Справа — программа на языке Blockly Согласно предложению Министерством просвещения РФ, в курс математики для младших школьников включат основы создания кодов и языков программирования, пишут «Известия». Это преду...

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

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

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

ООП в языке R (часть 1): S3 классы R это объектно ориентированный язык. В нём, абсолютно всё является объектом, начиная от функций и заканчивая таблицами. В свою очередь каждый объект в R должен относится к какому либо классу. На самом деле в окружающем нас мире ситуация примерно такая же. Мы окружены объекта...

Пост-пост, мета-мета. Учимся писать на Хабр — А далеко до релиза? — Да пара вёрсток. Докатился — пишу на Хабр о том, как писать на Хабр. Хотя причины есть — я пять лет занимаюсь этим, перевидал и перепробовал кучу инструментов, так что теперь делюсь с вами самыми лучшим. Я расскажу о том, как прийти от HTML-разметки...

Боль, таблетки и две кареты скорой помощи, или Как мы все-таки забрались на пятое место IronStar 226 в Сочи Никогда. Слышите? Никогда не соглашайтесь участвовать в этом безумии. У нас в ИТ все совсем неплохо — теплые и уютные офисы, большие мониторы, хорошие столовые, ДМС. Хочется драйва, работы на пределе сил, переживаний? Пожалуйста. Идите работать на проекты типа ГИС ЖКХ (ранее...

Состоялся релиз Metasploit Framework 5.0   Metasploit Framework — это наиболее известный инструмент для создания, тестирования и использования эксплоитов. Позволяет производить эксплуатацию и постэксплуатацию уязвимостей, доставку «полезной нагрузки» (payloads) на атакуемую цель. Metasploit Framework 5.0 — наибол...

Помощь девопсам по внедрению PKI Ключевые интеграции Venafi У девопсов и так много работы, а от них ещё требуют экспертных знаний по криптографии и инфраструктуре открытых ключей (PKI). Это неправильно. Действительно, у каждой машины должен быть валидный TLS-сертификат. Они нужны для серверов, контейнеро...

[Перевод] Пишем API для React компонентов, часть 3: порядок пропсов важен Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важен Пишем API для React компонентов,...

Как оценить производительность Linux-сервера: открытые инструменты для бенчмаркинга Мы в 1cloud.ru подготовили подборку инструментов и скриптов для оценки производительности процессоров, СХД и памяти на Linux-машинах: Iometer, DD, vpsbench, HammerDB и 7-Zip. Другие наши подборки с бенчмарками: Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone In...

Пишем свой язык программирования, часть 1: пишем языковую ВМ Введение Доброго времени суток всем хабрачитателям! Итак, пожалуй стоит сказать, что целью моей работы, на основе которой будет написан ряд статеек было пройти весь путь создания полнофункционального ЯП самому с 0 и затем поделиться своими знаниями, наработками и опытом с и...

Книга «Выразительный JavaScript. Современное веб-программирование. 3-е издание» Привет, Хаброжители! Эта книга позволит глубоко погрузиться в тему, научиться писать красивый и эффективный код. Вы познакомитесь с синтаксисом, стрелочными и асинхронными функциями, итератором, шаблонными строками и блочной областью видимости. Марейн Хавербеке — практик. ...

VMmanager 6: новый инструмент для создания виртуальных машин от ISPsystem 5 февраля мы открыли бета-тестирование облачной версии VMmanager 6, новой панели виртуализации. Приглашаем сообщество Хабра (всех, кто сталкивается с созданием и управлением виртуальными машинами) посмотреть её и оставить свои отзывы. Читать дальше →

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

Опыт перевода большого проекта с Flow на TypeScript JavaScript – это один из языков с динамической типизацией. Такие языки удобны для быстрой разработки приложений, но когда несколько команд берутся за разработку одного большого проекта, лучше с самого начала выбрать один из инструментов для проверки типов. Можно начать р...

[Перевод] Встраиваемые функции в Go Go позволяет писать на ассемблере. Но авторы языка написали такую стандартную библиотеку, что бы этого делать не пришлось. Есть способы писать переносимый и быстрый код одновремено. Как? Добро пожаловат под cut. Читать дальше →

[Перевод] Реализация шаблона проектирования Command в Unity Вы задавались когда-нибудь вопросом, как в играх наподобие Super Meat Boy реализована функция реплея? Один из способов её реализации — выполнять ввод точно так же, как это делал игрок, что, в свою очередь, означает, что ввод нужно как-то хранить. Для этого и многого другого...

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

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

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

Как скачать книги из iBooks на Mac Загружаем все нужные книги В 2013 году Apple добавила в macOS прекрасный инструмент для чтения книг, журналов и заметок — iBooks. Приложение довольно быстро приобрело популярность — во многом благодаря тесной интеграции в экосистему Apple. Если вы активный пользо...

[Перевод] Топ-5 JS-фреймворков для фронтенд-разработки в 2020 году. Часть 1 Вероятно, фронтенд-разработчикам знакомо нечто подобное: вводишь в поисковике «лучшие JavaScript-фреймворки» и получаешь в ответ целую гору результатов, из которой очень непросто выбрать именно то, что нужно. Что лучше всего подходит для разработки клиентских частей веб-про...

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

[Перевод] C# является языком низкого уровня? Я большой поклонник всего, что делает Фабьен Санглард, мне нравится его блог, и я прочитал обе его книги от корки до корки (о них рассказывали в недавнем подкасте Hansleminutes). Недавно Фабьен написал отличный пост, где расшифровал крошечный рейтрейсер, деобфусцировав код ...

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

Сколькими способами можно записать факториал на Scheme? Злые языки утверждают, что функциональные языки программирования — «языки для написания факториалов». Чаще всего так определяют язык Haskell, мы же начнем с того функционального языка, который сильно повлиял и на Haskell, и на подмножество средств для функционального програм...

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

Обзор Bus Driver Simulator 2019. Специфическая игра Есть определенные нишевые проекты, которые создаются специально для отдельной аудитории, которая любит специфические развлечения. Например, есть геймеры, которые обожают реалистичные симуляторы самолетов — там нужно потратить несколько недель только на то, чтобы правильно на...

Voxgun – сервис для создания профессионального видеоконтента без лишних усилий Всем привет! Сегодня хотел рассказать вам о новом интересном проекте – сервисе для создания видео для бизнеса Voxgun. Этот инструмент позволяет создавать видео-контент с профессиональной озвучкой и анимацией меньше чем за 10 минут и без профильных навыков. Читать дальше →

Amazon запускает доставку дронами. Как это будет работать Вчера Amazon впервые представила собственный дрон для доставки – на своей первой конференции Re:Mars в Лас-Вегасе. Это на самом деле уникальное устройство, доверху напичканное сенсорами и алгоритмами. К тому же, это дрон-трансформер. Он умеет лететь вертикально, как вертол...

Используем статические ссылки на свойства объектов при помощи лямбд Так уж исторически сложилось, что в Java для свойств объектов (properties) не предусмотрено никакой физической сущности. Свойства в Java — это некоторые соглашения в именовании полей и методов доступа к ним (аксессоров). И, хотя наличие физических свойств в языке упростило б...

Как создавать мемы на Android Создавать мемы на смартфоне — легко! Знаете ли вы, что мемы, которые так популярны в социальных сетях, по одной из теорий, были созданы Гарри Фрисом в 1970-х годах? Он любил фотографировать своих кошек, а затем придумывал к фотографиям забавные надписи и создавал таким...

Секреты быстрого набора текста на iPhone: 11 возможностей, о которых вы могли не знать Наши мобильные устройства не зря называют коммуникаторами. Помимо голоса, одним из популярных инструментов общения является текст. С помощью виртуальной клавиатуры смартфонов мы пишем комментарии в социальных сетях, SMS-сообщения, электронные письма. Для многих людей iPhone ...

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

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

[Перевод] Пишем API для React компонентов, часть 5: просто используйте композицию Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важен Пишем API для React компонентов,...

[Перевод] Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важенУ нас есть компонент переключатель...

Исследования: магнитный материал для 3д-печати Учёные из Национальной лаборатории Министерства энергетики США имени Лоуренса, находящейся в городе Беркли в штате Калифорния, разработали усовершенствованный 3Д-материал с магнитными свойствами. Таким образом специалистам удалось совершить научный прорыв. «Нам удал...

Применение R для утилитарных задач Хороший инструмент + наличие навыков работы с ним, что достигается путем практики, позволяет легко и элегантно решать множество различных «как бы» нетипичных задач. Ниже пара подобных примеров. Уверен, что многие могут этот список расширить. Является продолжением предыдущих ...

Книга "{Вы не знаете JS} Типы и грамматические конструкции" Каким бы опытом программирования на JavaScript вы ни обладали, скорее всего, вы не понимаете язык в полной мере. Это лаконичное руководство исследует типы более глубоко, чем все существующие книги: вы узнаете, как работают типы, о проблемах их преобразования и научитесь пол...

[Из песочницы] Своё интернет радио Многие из нас по утрам любят слушать радио. И вот в одно прекрасное утро я осознал, что не хочу слушать местные ФМ радиостанции. Не интересно. Но привычка оказалась вредной. И я решил заменить ФМ-приемник интернет приемником. Быстренько купил детали на Алиэкспресс и собрал и...

Mattermost. Интеграция с внешними сервисами Выбирая замену, используемой у нас системы обмена сообщениями, наткнулся на описание Mattermost, и решил попробовать. Одним из плюсов, описываемой системы, является простая интеграция со сторонними сервисами, так называемые "хуки" (outgoing и incoming hooks). Вот про настрой...

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

[Перевод] Пишем HTTP/1.1 & HTTP/2 клиент и сервер на Golang Golang — отличный язык программирования с широким спектром возможностей. В этой статье показано, как на Go можно написать клиент и сервер для протоколов HTTP/1.1 и HTTP/2. Читать дальше →

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

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

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

Интеграция с SAP ERP. Реализация мобильного прайс-чекера в магазине В рассматриваемом нами примере интеграции SAP ERP со сторонним ПО, мы будем использовать SAP Connector for Microsoft .NET для получения данных из SAP. Программное обеспечение для терминала сбора данных (ТСД) будет взаимодействовать с Microsoft Internet Information Server (II...

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

DynamicData: Изменяющиеся коллекции, шаблон проектирования MVVM и реактивные расширения В феврале 2019 года состоялся релиз ReactiveUI 9  —  кроссплатформенного фреймворка для построения приложений с графическим пользовательским интерфейсом на платформе Microsoft .NET. ReactiveUI  — это инструмент для тесной интеграции реактивных расширений с шаблоном проектиро...

Что мы знаем о микросервисах Привет! Меня зовут Вадим Мадисон, я руковожу разработкой System Platform Авито. О том, как мы в компании переходим с монолитной архитектуры на микросервисную, было сказано не раз. Пора поделиться тем, как мы преобразовали свою инфраструктуру, чтобы извлечь из микросервисов м...

Не очередной язык программирования В последнее время на рынке появилось огромное количество новых языков программирования: Go, Swift, Rust, Dart, Julia, Kotlin, Hack, Bosque – и это только из числа тех, которые на слуху. Ценность того, что эти языки привносят в мир программирования, тяжело переоценить, но,...

Как мы в QIWI пришли к единому стилю взаимодействия между View и ViewModel в рамках MVVM Изначально весь проект был написан на Objective-C и использовал ReactiveCocoa версии 2.0 Взаимодействие между View и ViewModel осуществлялось посредствам биндингов свойств вью модели, и все бы ничего, за исключением того, что отладкой такого кода заниматься было очень сложно...

Пишем Android приложение для киноманов — Часть 1 (Прототипирование) Доброго времени суток, Хабр! Не секрет, что недавно компания Google утвердила в качестве приоритетного языка программирования ОС Android — Kotlin. В этой и последующих статьях будет рассказываться о создании приложения на этом языке. Читать дальше →

Работа с датами на языке R (базовые возможности, а также пакеты lubridate и timeperiodsR) Получить текущую дату в любом языке программирования, операция эквивалентная "Hello world!". Язык R не является исключением. В этой статье мы разберёмся с тем, как устроена работа с датами в базовом синтаксисе языка R, а также рассмотрим несколько полезных пакетов, расширяющ...

[Перевод] Знакомство с SwiftUI: Создание простого приложения с использованием TableView Во время проведения WWDC 2019, одним из самым больших и захватывающих моментом был анонс релиза SwiftUI. SwiftUI — это совершенно новый фреймворк, который позволяет проектировать и разрабатывать пользовательские интерфейсы с написанием меньшего количества кода, декларативным...

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

[Перевод] Как Shopify организовала совместную работу более 1000 разработчиков Сложно организовать совместную работу большой команды, тем более над общей кодовой базой, такой как Shopify. Наш монолит меняется по 40 раз на дню. Мы отслеживаем разработку в trunk-based рабочем процессе и ежедневно вливаем в мастер по 400 коммитов. У нас три правила безо...

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

Заворачиваем весь трафик ОС в Tor Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHub В последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных у...

Минкомсвязь настаивает на едином операторе 5G Несмотря на критику экспертов и операторов мобильной связи, Минкомсвязь настаивает на едином инфраструктурном операторе, ссылаясь на нехватку частот, пишет РБК. За создание единого инфраструктурного оператора несколько лет выступает «Ростелеком», который хотел бы выполнят...

[Перевод - recovery mode ] Как правильно обрабатывать ошибки: тишина — не всегда хорошо У меня никогда не было какого-то особого мнения относительно обработки ошибок. Если я начинала работать с существующим кодом, я продолжала выполнять задачу, над которой трудился автор исходника; если писала код с нуля — делала то, что казалось мне правильным. Но недавно...

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

Анонсы конференции Microsoft Ignite 2019 · Azure Arc. Запуск предварительной версии решения для создания интегрированных гибридных сред. Azure Arc предоставляет возможность использовать единые сервисы, средства управления и инструменты обеспечения безопасности Azure в любой инфраструктуре, включая обл...

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

Steal: кто крадёт у виртуалок процессорное время Привет! Хочу рассказать простым языком о механике возникновения steal внутри виртуальных машин и о некоторых неочевидных артефактах, которые нам удалось выяснить при его исследовании, в которое мне пришлось погрузиться как техдиру облачной платформы Mail.ru Cloud Solutions...

Julia NLP. Обрабатываем тексты Анализ и обработка текстов на естественном языке является постоянно актуальной задачей, которая решалась, решается и будет решаться всеми доступными способами. На сегодня хотелось бы поговорить о средствах решения для решения этой задачи, именно, на языке Julia. Безусловно,...

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

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

Кое-что о пространстве имён Я программирую на PHP. И немножко на JS. Когда-то я программировал на Java, ещё раньше — на LotusScript. Попробовал на вкус python и dart. Basic, Fortran, Pascal, Prolog, VisualBasic, С++/С, perl — на всём этом я тоже изображал что-то исполняемое. Языки программирования меня...

Что необходимо знать о GDPR в 2019 Сегодня поговорим о “великом и ужасном” GDPR (General Data Protection Regulation) или Общем регламенте по защите персональных данных. Не смотря на то, что закон был принят еще в мае 2018 года, многие компании до сих пор не выполняют всех его требований. Мы встретились с н...

[Из песочницы] OBD2 reader — диагностика автомобиля При создании приложения мы столкнулись с множеством выборов, проблем и так далее, с которыми попробуем ознакомить вас в этой статье. Как оказалось с автомобилем можно вести диалог, причем довольно таки продуктивный. Естественно для того чтобы организовать общение с автомобил...

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

[Перевод] Самая красивая теорема математики: тождество Эйлера Посмотрев лекцию профессора Робина Уилсона о тождестве Эйлера, я наконец смог понять, почему тождество Эйлера является самым красивым уравнением. Чтобы поделиться моим восхищением это темой и укрепить собственные знания, я изложу заметки, сделанные во время лекции. А здесь в...

Инструменты для автотестов, интеграция Yandex Mapkit 3, крутой дизайн и подход Server Driven UI — анонс Android-митапа Привет! Меня зовут Андрей Данилов, я андроид-разработчик в Авито. Хочу пригласить вас на Android-митап, который пройдёт в нашем офисе 28 сентября. Обсудим опыт интеграции Yandex Mapkit 3 в приложение, инструменты для автотестов, поговорим, как сделать по-настоящему запоминаю...

Калькулятор TI-89 Titanium и его программирование на C Не так давно на Хабре была статья про графический калькулятор TI-83, и, поскольку я являюсь обладателем TI-89 Titanium — калькулятором следующего поколения от Texas Instruments, под катом я решил рассказать про него, и показать, как для этого калькулятора можно создавать сво...

[Перевод] Улучшаем письменный английский: как понять, когда использовать пассивный залог Один из наиболее часто встречаемых в интернете советов по улучшению письменного английского звучит так: «Не используйте пассивный залог» (passive voice). Об этом пишут в различных блогах, такие конструкции в 100% случаев подчеркивают многие инструменты для проверки граммат...

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

[Перевод] Разбираемся в Angular Ivy: Incremental DOM и Virtual DOM Angular — наш основной инструмент для написания приложения TestMace. В одной из прошлых статей мы затронули тему Ivy рендерера. Самое время поподробнее узнать, чем Ivy отличается от предыдущего движка. В нашей компании Nrwl мы уже какое-то время находимся в предвкушении во...

[Из песочницы] System.Console, Mono и NCurses Всем привет, в своей работе (а ранее и в учебе) я часто использую C# и этот язык стал мне, что называется, привычным. Решив немного потренироваться в программировании, я написал консольный текстовый редактор для Linux. Вкратце опишу полученный опыт. В Mono класс System.C...

[Из песочницы] Openshift — красношляпые поделки OpenShift Развертка Openshift. Конфигурация после установки. Создание и подключение PV. Создание и разворачивание проекта Red Hat Decision Manager (enterprise аналог kie-workbench). Создание и разворачивание проектов AMQ (red hat active mq) и postgressql c использованием п...

Edition-Based Redefinition. Часть 2 Привет! Как и обещала в предыдущем посте про Edition-Based Redefinition — вот вторая часть. Итак, с чем мы работаем? Наш основной production сервер — это Oracle 12С, Enterprise Edition. И, что важно отметить, на нем работает несколько десятков приложений одновременно. Поч...

AIOps на практике — что может Huawei FabricInsight В ответ на рост количества работающих приложений и числа сетевых устройств повышается пропускная способность сетей и ужесточаются требования к доставке пакетов. В масштабах критически важных для бизнеса облачных ЦОД традиционный подход к обслуживанию инфраструктуры уже не по...

C++ Enterprise Edition. Возможно ли? C++ Enterprise Edition Что такое "enterprise edition" Удивительно, но за все время моей работы в IT, я ниразу не слышал, чтобы кто-то говорил "enterprise edition" относительно языка программирования, кроме как для Java. Но ведь приложения для корпоративного сегмента люди пи...

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

[Перевод] KlusterKit KlusterKit: набор инструментов с открытым исходным кодом для упрощения деплоев Kubernetes и работы в физически изолированных локальных средах Сегодня мы с радостью объявляем, что Platform9 открывает исходные коды Klusterkit, набора из трех инструментов, по лицензии Apache v...

[Перевод] Создание изометрических 2D-уровней с помощью системы Tilemap В Unity 2018.3 появилась поддержка изометрических тайловых карт, очень напоминающая поддержку тайловых карт шестиугольников, которая была добавлена в версии 2018.2. Новые функции Tilemap позволяют быстро и эффективно создавать 2D-окружения на основе изометрических и шестиуг...

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

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

[Из песочницы] Что такое автоматизированное машинное обучение (AutoML) Что такое автоматизированное машинное обучение (AutoML) и собирается ли оно лишить специалистов по данным (Data Scientists) работы? С того момента как стали появляться инструменты автоматизированного машинного обучения (AutoML), такие как Google AutoML, эксперты обсуждают ...

Citrix - лидер поставщиков Digital Workspace Согласно отчетам международных исследовательских агентств, в 2018 году компания Citrix неоднократно признавалась лидером в области самых разных технологий, позволяющих создавать интеллектуальные цифровые рабочие среды. Они позволяют современным специалистам выполнять свои ра...

[Перевод] Отлаживаем развертывание ПО со strace Моя основная работа — это, по большей части, развертывание систем ПО, то есть уйму времени я трачу, пытаясь ответить на такие вот вопросы: У разработчика это ПО работает, а у меня нет. Почему? Вчера это ПО у меня работало, а сегодня нет. Почему? Это — своего рода отладка,...

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

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

NB-IoT: как он работает? Часть 3: SCEF – единое окно доступа к услугам оператора В статье «NB-IoT: как он работает? Часть 2», рассказывая про архитектуру пакетного ядра сети NB-IoT, мы упомянули про появление нового узла SCEF. Объясняем в третьей части, что же это такое и зачем это нужно? При создании M2M-сервиса разработчики приложений сталкиваются с...

[Из песочницы] Rutoken, OpenSSL и локальный УЦ для подписи сообщений Некоторое время назад возникла необходимость в рамках проекта ограничить одновременное число компьютеров, имеющих доступ к web-приложению, работающему в рамках локальной сети заказчика. Решение использовать аппаратные USB-токены для идентификации компьютера пришло само собо...

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

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

CMake и C++ — братья навек В процессе разработки я люблю менять компиляторы, режимы сборки, версии зависимостей, производить статический анализ, замерять производительность, собирать покрытие, генерировать документацию и т.д. И очень люблю CMake, потому что он позволяет мне делать всё то, что я хочу....

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

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

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

Как мы закрываем уязвимости в ОС Astra Linux Special Edition Операционных систем без уязвимостей не бывает — вопрос лишь в том, как эффективно разработчики их выявляют и закрывают. Наша ОС Astra Linux Special Edition здесь не исключение: мы постоянно проверяем и тестируем код на ошибки, нарушения логики, прочие баги и оперативно их ус...

[Перевод] Учебный курс по React, часть 24: второе занятие по работе с формами Сегодня мы продолжим разговор об использовании форм в React. В прошлый раз мы рассматривали особенности взаимодействия компонентов и текстовых полей. Здесь же мы обсудим работу с другими элементами форм. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX →...

"Ну что сыграем?" Косплей. Герои "Ведьмака" играют в Гвинт! Хорошего настроения! Вселенная "сопряжения сфер" или вселенная "Ведьмака" - настолько фентезийно покорила прекрасное геймерское сообщество, что команда из прекрасных русских косплееров решила перевоплотить застольную игру франшизы в замечательный косплей.

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

BrightLocal запустил инструмент для отслеживания локальной выдачи Google Компания BrightLocal представила новый инструмент Local RankFlux, который отслеживает ежедневные изменения в локальной выдаче Google и позволяет определять возможные обновления алгоритма локального поиска. В то время, как большинство трекеров отслеживают колебания в органиче...

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

История одного монолита Часть первая, в которой читатель познакомится с краткой историей появления внутренних продуктов 2ГИС и эволюцией системы доставки данных от нескольких скриптов до полноценного приложения. Сегодня я расскажу вам историю, которая началась 9 лет назад в компании ДубльГИС. Ч...

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

[Перевод] “IoT omnichannel evolution” или как интернет вещей может повлиять на омниканальность Мир ecom разделен на две половины: одни знают про омниканальность все вдоль и поперек; другие еще задаются вопросами, чем эта технология может быть полезна бизнесу. Первые рассуждают о том, как интернет вещей (IoT) может сформировать новый подход к омниканальности. Мы пере...

Как реализовать язык программирования на JavaScript. Часть 1: Парсер Здравствуйте! Представляю вам любительский перевод руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достаточно мн...

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

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

[Перевод] Mozilla собирается использовать WASI для всех устройств, компьютеров и операционных систем Всем привет! На связи TestMace и мы продолжаем знакомить вас с самыми горячими новостями из мира JavaScript. На очереди перевод статьи о WASI — технологии, которая позволит использовать WebAssembly вне браузеров Один формат, чтоб править всеми Компания Mozilla на этой недел...

defi.js — реактивная библиотека, основанная на Object.defineProperty defi.js — это библиотека, включающая в себя дюжину функций, которые добавляют интересные фичи любым JavaScript объектам с помощью геттеров и сеттеров. Гифка для привлечения внимания (3.5МБ) Репозиторий В качестве Hello World создадим небольшой виджет, состоящий из поля имен...

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

Google запустил инструмент для создания запросов к Google Ads API Google представил новый инструмент, предназначенный для построения запросов к Google Ads API. Новый API использует язык запросов Google Ads, который позволяет возвращать результаты по ресурсам аккаунта и метрикам. Как объяснили в компании, синтаксис этого языка даёт возможно...

[Перевод] Организовываем эффективный рабочий процесс веб-разработчиков: Confluence, Airtable и другие инструменты Я работаю фронтенд-разработчиком около двух лет, участвовал в создании самых разных проектов. Один из выученных мной уроков: взаимодействие между разными группами разработчиков, объединенных одной целью, но имеющих различные задачи и степень ответственности, — дело непрос...

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

Как мы учим французов экологии и собираем бутылки Студенты из Университета Париж-Сакле (Франция) стали участниками практикума по переработке пластика, который проходит с 1 по 13 июля 2019 года в ФабЛабе НИТУ «МИСиС». Курс посвящен работе c машинами Precious Plastic. Открытый проект голландца Дэйва Хаккенса Precious Plasti...

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

Элементарно, Watson: вы интегрируетесь с Voximplant Работа с естественными языками (NLU, NLP) – зона активной конкуренции между IT-гигантами. Равно как и развитие ИИ. Ну и, соответственно, пересечение этих множеств – тоже горячая ниша, за которой интересно наблюдать и осваивать новое. Voximplant давно подружился с гугловским...

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

Привет от программистов 80-х Современных программистов можно назвать баловнями. К их услугам — мощнейшие среды разработки, множество языков программирования. А всего 30 лет назад учёные и энтузиасты-одиночки писали программы даже на калькуляторах. Осторожно, под катом много фотографий! Читать дальше ...

[Перевод] Serverless CI/CD на AWS Было бы круто, если бы развертывание в формате копи-пейст осталось в прошлом, но, увы, дела обстоят иначе. Бывает, разработчикам предпочтительней именно такой метод поставки. Хоть сейчас пиши статью о том, почему это не есть гуд, но вы и без меня все знаете. С тенденцией к ...

Как настроить Continuous Deployment для своего проекта: личный опыт Перевели для вас статью Юлиуса Минмо о настройке непрерывной интеграции (Continuous Deployment) для своего проекта. Автоматизация позволяет сэкономить кучу времени и сил. Статья будет полезна, в первую очередь, начинающим программистам. Непрерывная интеграция — отличная ...

Холивар. История рунета. Часть 5. Тролли: ЖЖ, бешеный принтер, Потупчик Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е Холивар. История рунета. Часть 2. Контркультура: пАдонки, марихуана и Кремль Холивар. История рунета. Часть 3. Поисковики: Яндекс vs Рамблер. Как не делать инвестиции Холивар. История рунета. Ч...

IKEA создала новый шрифт из… диванов Недавно Сеть захлестнула волна мемов, связанная с онлайн-планировщиком Design your own sofa от компании IKEA. Этот инструмент позволяет клиентам создавать собственные макеты диванов из различных секций. Когда пользователи выяснили, что планировщик допускал практически любую ...

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

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

[Перевод] SVG фильтры 101 Это первая статья в серии об SVG фильтрах. Это руководство поможет понять, что это такое, и покажет, как использовать их для создания собственных визуальных эффектов. CSS в настоящее время предоставляет нам способ применения цветовых эффектов к изображениям, таких как насыщ...

[Из песочницы] Имплементация кэша на Verilog В данной статье разбор простейшей реализации RAM на языке Verilog. Перед тем, как перейти к разбору кода, рекомендуется изучить базовый синтаксис языка Verilog. Здесь вы можете найти обучающие материалы. Читать дальше →

Книга «Kotlin. Программирование для профессионалов» Привет, Хаброжители! Книга Джоша Скина и Дэвида Гринхола основана на популярном курсе Kotlin Essentials от Big Nerd Ranch. Яркие и полезные примеры, четкие объяснения ключевых концепций и основополагающих API не только знакомят с языком Kotlin, но и учат эффективно использо...

[Перевод] Как реализовать язык программирования на JavaScript. Часть 3: CPS-интерпретатор Здравствуйте! Представляю вам третью часть моего перевода руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достат...

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

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

Криптографические протоколы: определения, запись, свойства, классификация, атаки Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На...

Роботы-курьеры Starship выполнили 50 000 доставок Компания Starship Technologies, в 2016 году запустившая тестовый сервис доставки товаров колесными роботами, сообщила о достижении круглой отметки — роботы-курьеры, практическая эксплуатация которых началась совсем недавно, уже выполнили 50 000 коммерческих достав...

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

Livy — недостающее звено цепи Hadoop Spark Airflow Python Привет всем, немного информации "из под капота" дата инженерного цеха Альфастрахования — что будоражит наши технические умы. Apache Spark — замечательный инструмент, позволяющий просто и очень быстро обрабатывать большие объемы данных на достаточно скромных вычислительных ...

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

[Перевод] Современное окружение для React Native приложений В этой статье мы рассмотрим настройку React Native окружения с использованием expo-cli, Typescript, и Jest. Typescript поможет нам избежать ошибок при разработке и написать более эффективное мобильное приложение. Современные разработки позволяют интегрировать Typescript в ...

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

[Из песочницы] Система контроля библиотеки на Flask-Potion, Часть 0: готовим всё, что понадобится Введение В своей работе я уже некоторое время использую Flask-Potion — фреймворк, основными достоинствами которого являются: весьма удобная интеграция с SQLAlchemy моделями, автогенерация crud-эндпоинтов, наличие клиента potion-client (весьма удобного, если пишешь API сервис...

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

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

Холивар. История рунета. Часть 4. Mail.ru: игры, соцсети, Дуров Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е Холивар. История рунета. Часть 2. Контркультура: пАдонки, марихуана и Кремль Холивар. История рунета. Часть 3. Поисковики: Яндекс vs Рамблер. Как не делать инвестиции «Дамы и господа, Марк Цук...

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

Простая логистика своими руками Хочу поделиться с Вами опытом создания логистической системы на одном торговом предприятии. Одним прекрасным днём, в не близком 2012 году, руководитель поставил задачу: подумать над проблемой оптимизации затрат на транспортную логистику организации. Основная сфера деятел...

Неопределённая параметризация как универсальный метод построения архитектуры приложения на C++ и Java за минимальн. цену C++ — язык запутанный, и существенным его недостатком является сложность создания изолированных блоков кода. В типовом проекте всё зависит от всего. Эта статья показывает, как писать высокоизолированный код, который минимально зависит от конкретных библиотек (включая стандар...

[Перевод] 2D-тени на Signed Distance Fields Теперь, когда мы знаем основы комбинирования функций расстояний со знаком, можно использовать их для создания крутых вещей. В этом туториале мы применим их для рендеринга мягких двухмерных теней. Если вы пока не читали моих предыдущих туториалов о полях расстояний со знаком ...

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

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

[Перевод] Как мы подняли производительность Tensorflow Serving на 70% Tensorflow стал стандартной платформой для машинного обучения (ML), популярной как в индустрии, так и в научных исследованиях. Создано множество свободных библиотек, инструментов и фреймворков для обучения и обслуживания моделей ML. Проект Tensorflow Serving помогает обслужи...

Cruise открывает исходный код Worldview В Cruise Automation сотни инженеров и тестировщиков работают с данными, собранными на дорогах и через симулятор. Также специальная внутренняя команда AV Tools создает приложения для визуализации, поиска и анализа этих данных. Ведь пользователи и разработчики должны понимать ...

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

[Из песочницы] Язык программирования, помещающийся на почтовой открытке Источник Ральф Джонсон, один из членов "Банды четырёх", однажды показал, как синтаксис языка Smalltalk-80 можно уместить на почтой открытке. Сейчас, спустя почти 30 лет после появления первой версии Smalltalk, самым быстроразвивающимся диалектом Smalltalk является...

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

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

[Перевод] Метрики производительности для исследования невероятно быстрых веб-приложений Есть одно высказывание: «Что ты не можешь измерить, то ты не можешь улучшить». Автор статьи, перевод которой мы сегодня публикуем, работает в компании Superhuman. Он говорит, что эта компания занимается разработкой самого быстрого в мире почтового клиента. Здесь речь пойдёт ...

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

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

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

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

Возможности языка Q и KDB+ на примере сервиса реального времени О том, что такое база KDB+, язык программирования Q, какие у них есть сильные и слабые стороны, можно прочитать в моей предыдущей статье и кратко во введении. В статье же мы реализуем на Q сервис, который будет обрабатывать входящий поток данных и высчитывать поминутно разли...

Кибергруппировка TaskMasters атакует организации в России и СНГ Главная цель группы - кража конфиденциальной информации организаций. Группа действует на протяжении как минимум нескольких лет: обнаружены следы активности TaskMasters начиная с 2010 года.Группа использовала необычный метод закрепления в инфраструктуре: участники создавали с...

Идентификация устройств IoT с точки зрения разработчика Несколько дней назад компания GlobalSign открыла портал для разработчиков IoT Developer Portal. Здесь можно бесплатно зарегистрироваться (только по корпоративным адресам), выбрать API для интеграции, бесплатно получить сертификаты X.509 и протестировать свою систему идентиф...

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

Электронное государство будущего. Часть 3 Часть 1 >> Часть 2 Общегосударственная система выборов и референдумов ОГСВР — подсистема ОГАС 2.0. Позволяет гражданам создавать петиции, вести обсуждение законопроектов, участвовать в общегосударственных электронных референдумах и электронных выборах всех уровней....

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

[Перевод] Новый курс по Python от Microsoft [на английском] Вероятно, самое большое препятствие при изучении любого нового языка программирования — просто знать, с чего начать. Что важно? Что нужно знать, чтобы стать профи? Трудно исследовать документы, когда даже нет уверенности, что читаешь то, что нужно. Возможно, вы присматривае...

Митап по PHP в Иванове Привет, Хабр! Мы рады сообщить, что уже в эту субботу в офисе компании Инвольта состоится митап на тему: “PHP: Неправильный путь. Почему важно знать инструменты Native PHP сегодня. Личный опыт разработчика Rambler.” Как уже понятно из темы, на митапе мы будем говорить про ...

Беспростойная миграция RabbitMQ в Kubernetes RabbitMQ – написанный на языке Erlang брокер сообщений, позволяющий организовать отказоустойчивый кластер с полной репликацией данных на несколько узлов, где каждый узел может обслуживать запросы на чтение и запись. Имея в production-эксплуатации множество кластеров Kubern...

Приглашаем на неделю NLP в Яндекс С 26 по 29 марта в Яндексе пройдёт неделя NLP, организованная совместно Школой анализа данных и Yandex.Research. Это четырёхдневный интенсив, рассчитанный на разработчиков и исследователей, хорошо знакомых с Natural Language Processing и глубинным обучением. Лекторы курса: ...

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

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

[Из песочницы] Что нужно для разработки игр и кем реально является разработчик игр Большинство людей (нормальных), которые планируют заниматься программированием (как хобби или основной профессией) обычно задаются вопросами: «Что такое программирование?», «Зачем мне нужно программирование?», «Какой язык я буду учить?», «Что я получу в итоге?». Таким был и...

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

11-летний испанский мальчик написал код для сотни видеоигр Антонио Гарсия Висенте выполняет задачи, которые перед ним ставят преподаватели, но не забывает и о Клубе юных программистов при Университете Вальядолида, где началась его «карьера». Как пишут Новости ИТ, Когда Антонио, родившемуся в Вальядолиде в 2007 году, было всего 6 лет...

[recovery mode] Интеграция Опенкарт с учетными системами Опенкарт — один из самых распространенных интернет-магазинов. Во многих случаях возникает задача интеграции со складской учетной системой (чаще всего с 1С). Интеграция предполагает, как минимум, передачу заказов с ИМ в складскую систему для их обработки и отправки товаров п...

[Из песочницы] Опыт внедрения fastlane для автоматизации всех этапов мобильного CI/CD Я бы хотела поговорить о непрерывной интеграции и доставке для мобильных приложений с помощью fastlane. Как мы внедряем CI/CD на все мобильные приложения, как мы к этому шли и что получилось в итоге. Читать дальше →

CLion 2019.1: ClangFormat, подсветка кода через Clangd, memory view, начальная поддержка микроконтроллеров Привет, Хабр! У команды CLion множество отличных новостей — питерская часть команды вместе с другими коллегами успешно перебралась в новый офис, к нам присоединились новые классные разработчики, а главное, мы буквально на днях выпустили первое большое обновление в этом году...

[Перевод] Учебник по JavaFX: основные макеты Перевод статьи «JavaFX Tutorial: Basic layouts» автора Vojtech Ruzicka. Как организовать и разместить GUI компоненты в приложении JavaFX. Это четвертая статья в серии о JavaFX. В предыдущей статье я описал, как использовать FXML и SceneBuilder для создания вашего пользоват...

[Перевод] Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важенЭтот пост — перевод первой статьи ...

[Перевод] Ускорение разведочного анализа данных с использованием библиотеки pandas-profiling Первым делом, приступая к работе с новым набором данных, нужно понять его. Для того чтобы это сделать, нужно, например, выяснить диапазоны значений, принимаемых переменными, их типы, а также узнать о количестве пропущенных значений. Библиотека pandas предоставляет нам множе...

Андрей Терехов: «Можно сколько угодно говорить, что американское лучше, но наша машина никогда не ломается» Завкафедрой системного программирования СПбГУ, профессор, доктор физмат наук, президент компании «Ланит-Терком» Андрей Николаевич Терехов — о том, как делал первый в СССР транслятор языков Алгол 68 и Ада, о силе обкома КПСС и рождении «Самсона», который никогда не ломался....

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

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

[Перевод] Автоматизация Android. Супер простое руководство по созданию первого Espresso-теста Здравствуйте, друзья. В преддверии старта курса «Mobile QA Engineer», хотим поделиться с вами переводом интересного материала. Что такое Espresso? Нет, это не напиток, который вы пьете каждый день, чтобы взбодриться. Espresso — это тестовый фреймворк с открытым исходным к...

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

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

[Перевод] Искусство аннотирования: пишем Java-friendly код на Kotlin Привет, Хабр! Сегодня мы затронем важнейшую тему: интероперабельность Java и Kotlin. Авторы предлагаемой публикации разумно предполагают, что переписать на Kotlin базу кода, сделанную на Java, маловозможно. Поэтому правильнее обеспечить взаимодействие кода на Java и Kotlin....

Apple выпустила Android-приложение для управления наушниками Beats Пожалуй, самыми удобными наушниками для Android-смартфонов являются Pixel Buds. Они не только обладают функцией бесшовного сопряжения, но еще и имеют множество полезных возможностей, а управлять ими не сложнее, чем AirPods от Apple. К сожалению, музыкальные способности Pixe...

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

Устройство компилятора Swift. Часть 1 Swift — это не только язык программирования. Это проект, в который помимо компилятора входит много других компонентов. Да и сам компилятор — это не большая и страшная коробка, которая с помощью магии превращает ваш код в набор понятных для машины инструкций. Его тоже можно ...

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

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

Слёрм DevOps: от Git до SRE со всеми остановками 4-6 сентября в Санкт-Петербурге, в конференц-зале Selectel пройдет трехдневный Слёрм DevOps. Мы строили программу, исходя из мысли, что теоретические труды по DevOps, как и мануалы к инструментам, каждый может прочитать самостоятельно. Интересны только опыт и практика: расс...

Достать worklog из Jira Всем привет, недвано я писал про api клиент для Jira. Разбираться с ним я начал, когда возникла необходимость автоматизировать формирование отчета по времени(отчеты нужны заказчику). В итоге получися небольшой инструмент который позволяет быстро и легко вытаскивать необходим...

Выпуск Rust 1.37.0: Profile-Guided Optimization, неименованные константы и cargo vendor Представляем вашему вниманию перевод публикации о новой версии всеми любимого языка программирования Rust. Введение Команда разработчиков Rust рада сообщить о выпуске новой версии, 1.37.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное...

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

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

Фото дня: российский антропоморфный робот в действии В Центре подготовки космонавтов им. Ю.А.Гагарина (ЦПК) успешно прошли эксперименты по отработке взаимодействий космонавта с антропоморфным роботом, управляемым в телеоператорном режиме. Фотографии ЦПК Система, о которой идёт речь, позволяет машине в точности повторять действ...

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

Распознавание номеров. Практическое пособие. Часть 1 Все начиналось банально — моя компания уже год платила ежемесячно плату за сервис, который умел находить регион с номерными знаками на фото. Эта функция применяется для автоматической зарисовки номера у некоторых клиентов. И в один прекрасный день МВД Украины открыло дост...

WebFPGA — разработка на Verilog в браузере Думаю, многие программисты, начиная от питонистов-датасайентистов и заканчивая суровыми разработчиками драйверов, временами возводят очи горе и мечтательно вздыхают: «Эх, пoжёcтчe бы чего, похардкорнее...». Мы, конечно, говорим про Verilog, язык описания и моделирования элек...

[Перевод] LLVM IR и Go В этой статье мы рассмотрим, как построить программу на Go, такую, как компилятор или статический анализатор, которая взаимодействует с фреймворком компиляции LLVM, используя язык ассемблера LLVM IR. TL;DR мы написали библиотеку для взаимодействия с LLVM IR на чистом Go, см...

Открытый урок «Создание REST-клиентов на Spring» И снова доброго времени суток! Совсем скоро у нас стартует обучение очередной группы «Разработчик на Spring Framework», в связи с чем мы провели открытый урок, что стало уже традицией в преддверии запуска. На этом вебинаре говорили о разработке REST-клиентов с помощью Spring...

[Из песочницы] Аскетичный вебъ: прототип барахолки на go и js Всем привет, хочу поделиться результатом размышлений на тему — каким может быть современное веб-приложение. В качестве примера рассмотрим проектирование доски объявлений для комиксов. В некотором смысле рассматриваемый продукт рассчитан на аудиторию гиков и им сочувствующих,...

[Перевод] Осваиваем async/await на реальном примере Конструкция async/await представляет собой сравнительно новый подход к написанию асинхронного кода в JavaScript. Она основана на промисах и, в результате, не блокирует главный поток. Новшество этой конструкции заключается в том, что благодаря ей асинхронный код становится по...

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

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

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

Управление SSL/TLS сертификатами в облаках и контейнерах — не человеческая работа Из презентации Venafi: как установка сертификатов вручную тормозит процесс непрерывной интеграции и развёртывания приложений Облачные сервисы и контейнеры стали стандартом де-факто для развёртывания веб-приложений. Однако интеграция сертификатов SSL/TLS в окружение DevOps ...

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

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

[Из песочницы] Легкое создание отчетов на C/C++ Если вы разрабатываете на C/C++ какое-либо ПО для операторов (администраторов) больниц, магазинов, сервисов проката гироскутеров, ремонта сотовых телефонов, то наверняка сталкивались с задачей создания отчетов, чтобы печатать их на принтере, ну или хотя бы в PDF. Существует ...

[Перевод] JavaScript-движки: как они работают? От стека вызовов до промисов — (почти) всё, что вам нужно знать Вы когда-нибудь задумывались, как браузеры читают и исполняют JavaScript-код? Это выглядит таинственно, но в этом посте вы можете получить представление, что же происходит под капотом. Начнём наше путешествие в язык с экскурсии в удивительный мир JavaScript-движков. Читать...

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

Поддержка monorep и multirep в werf и при чём здесь Docker Registry Тема монорепозитория обсуждалась уже не раз и, как правило, вызывает весьма активные споры. Создавая werf как Open Source-инструмент, призванный улучшить процессы сборки кода приложений из Git в Docker-образы (и их последующей доставки в Kubernetes), мы мало размышляем на ...

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

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

[Из песочницы] Создание REST API с Node.js и базой данных Oracle Привет, Хабр! представляю вашему вниманию перевод статьи «Creating a REST API: Web Server Basics». Часть 1. Создание REST API: основы веб-сервера Веб-сервер является одним из наиболее важных компонентов REST API. В этом посте вы начнете свой проект API REST, создав нескольк...

[Перевод] Что лучше выбрать в 2020 году — React или Vue? JavaScript-фреймворки стали неотъемлемой частью каждого современного веб-проекта. Существует множество подобных фреймворков, в результате разработчикам постоянно приходится задаваться вопросом о том, что выбрать. Искать ответ на этот вопрос придётся и в 2020 году. Если вы ...

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

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

Nitter, альтернативный фронтенд для Twitter Nitter — это свободный фронтенд для Twitter, ориентированный на сохранение пользовательской конфиденциальности. Проект написан на языке Nim, и находится в стадии активной разработки, ни одного релиза пока не было. Аналогичным фронтендом для YouTube является Invidious, которы...

Гонка вооружений В мае на Google I/O 2019 было объявлено о новом фреймворке для разработки декларативного UI под Android с названием Jetpack Compose. Через месяц на WWDC 2019 было объявлено о декларативном UI фреймворке под IOS с названием SwiftUI. После этих конференции стало понятно, к ч...

Как обнаружить атаки на Windows-инфраструктуру: изучаем инструментарий хакеров С каждым годом растет количество атак в корпоративном секторе: например в 2017 году зафиксировали на 13% больше уникальных инцидентов чем в 2016 г., а по итогам 2018 — на 27% больше инцидентов, чем в предыдущем периоде. В том числе и тех, где основным рабочим инструментом ...

Робот пылесос Roomba пылесосит на картах Doom Разработчик игры Doom, Rich Whitehouse нашел довольно необычный способ отпраздновать 25-летие Doom: заставив своего робота пылесосить на созданных картах игры назвав это Doomba. Ветеран индустрии разработал скрипт для инструмента преобразования игровых данных Noesis, кот...

[Перевод] Каково быть мейнтейнером свободного ПО 2013 год. Я узнаю об альфе нового проекта под названием GNOME Calendar. Интересно. Я люблю календари. «Круто, буду следить за ним», — сказал я по молодости. В ветке ui-rework шла бурная разработка. Каждый день несколько новых коммитов. Скачать, собрать, протестировать. И в...

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

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

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

Проектирование Электро-Механической Marble Machine v2.0 Я хочу рассказать о второй версии моей электро-механической Marble Machine и о процессе ее проектирования. Про первую спиральную машину я уже писал здесь на хабре. Времени с тех пор прошло не мало, и вот, в принципе, задуманное осуществлено: два подъемника и два спуска рабо...

[Из песочницы] ListenIt — расширение Google Chrome для автоматического создания аудио версий статей Всем привет! Меня зовут Евгений, я создал расширение ListenIt для браузера Google Chrome. Расширение позволяет автоматически создавать аудиоверсии статей, а читателям прослушивать их прямо с сайта. Читать дальше →

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

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

[Из песочницы] Новичку only: 10 вещей, которые вы должны знать как веб-разработчик Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Things You Should Know As a Web Developer» автора Anuupadhyay. Написание тысячи строк кода и превращение в веб-сайт — одна из творческих и сложных вещей для веб-разработчиков. Если вы в этом деле новичок, увидели ...

[Перевод] Вышли обновления ML.NET и Model Builder: что нового Мы рады сообщить о выходе обновлений Model Builder и ML.NET. ML.NET — это кроссплатформенная среда машинного обучения с открытым исходным кодом (Windows, Linux, macOS) для разработчиков .NET. ML.NET предлагает Model Builder (простой инструмент пользовательского интерфейса)...

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

Прекрасная подборка отличного Косплея на Псайлок (Psylocke) от Анастасии Зеленовой, при участии Ирины Мейер! Доброго времени суток, дорогие друзья! Представляю вашему вниманию подборку прекрасного и незабываемого косплея на Псайлок (Psylocke) по мотивам «Marvel Comics» от шикарной и просто замечательной русской косплей-модели Анастасии Зеленовой!

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

[Перевод] Руководство по API Коллекций Vavr VAVR (известная ранее, как Javaslang) — это некоммерческая функциональная библиотека для Java 8+. Она позволяет писать функциональный Scala-подобный код в Java и служит для уменьшения количества кода и повышения его качества. Сайт библиотеки. Под катом — перевод статьи, сис...

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

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

Как работает «умный» завод General Electric Инструменты Индустрии 4.0 комплексно используются крупными мировыми производителями уже сегодня. Такие «фабрики будущего» являют собой прообраз модели, на основе которой будет организовано производство Четвертой промышленной революции, и подобных предприятий становится все...

Адаптируем AutoMapper под себя AutoMapper один из основных инструментов применяемых в разработке Enterprise приложений, поэтому хочется писать как можно меньше кода определяя маппинг сущностей. Мне не нравится дублирование в MapFrom при широких проекциях. CreateMap<Pupil, PupilDto>() .ForMember(x =...

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

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

[Из песочницы] Как Telegram сливает вас Ростелекому Привет, Хабр. Однажды мы сидели, занимались своими очень продуктивными делами, как ВНЕЗАПНО выясняется тот факт, что по какой-то неведомой причине к инфраструктуре Telegram в качестве пира подключены как минимум замечательный Ростелеком и не менее прекрасный НТЦ «ФИОРД». С...

Как мы сдружили EF 6 с MSSQL и PostgresSQL Жил-был проект на EF 6 с СУБД MSSQL. И появилась необходимость добавить возможность его работы с СУБД PostgreSQL. Проблем здесь мы не ожидали, ведь есть большое количество статей на эту тему, и на форумах можно найти обсуждение похожих задач. Однако, на деле не все оказало...

[Перевод] Любопытные извращения из мира ИТ — 3 Сайт The Daily WTF уже 14 лет собирает курьёзные, дикие и/или печальные истории из мира ИТ. Я перевёл несколько рассказов, показавшихся мне интересными. Все имена и названия компаний изменены. Предыдущие выпуски можно найти по метке "любопытные извращения". История первая:...

[Перевод] Самодельный сборщик мусора для OpenJDK Это перевод статьи Алексея Шипилёва «Do It Yourself (OpenJDK) Garbage Collector», публикуется с согласия автора. О любых опечатках и других багах сообщайте в личку — мы их поправим.Процесс создания чего-нибудь в рантайме языка — весёлое упражнение. По крайней мере, создание ...

Что (не)нужно знать для создания игр на Unity Unity — игровой движок, с далеко не нулевым порогом вхождения (сравнивая с тем же Game Maker Studio), и в этой статье я расскажу с какими проблемами столкнулся начиная его изучение, и какие решения этих проблем нашел. Я буду описывать подобные моменты на примере своей 2d и...

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

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

Ezblock Pi — программирование без программирования, в этот раз для фанатов Raspberry Pi Идея писать код, не пиша код (да-да, пиша — деепричастие настоящего времени от глагола писать, живите теперь с этим) не раз приходила в голову и умным людям, и просто лентяям. Мечта о графическом интерфейсе, в рамках которого можно кидать одни кубики на другие, рисовать взаи...

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

Настройка кластера Nomad с помощью Consul и интеграция с Gitlab Введение В последнее время стремительно растет популярность Kubernetes — все больше и больше проектов внедряют его у себя. Я же хотел коснуться такого оркестратора, как Nomad: он отлично подойдет проектам, где уже используются другие решения от компании HashiCorp, например,...

Холивар. История рунета. Часть 2. Контркультура: пАдонки, марихуана и Кремль Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е В конце 90-х монополия интеллектуалов на рунет была нарушена. В царство завлабов и филологов ворвались два юных хулигана — Константин Рыков по кличке Jason Foris, и Егор Лавров по кличке Skele...

Причины бросить Mac OS и выбрать Linux Если вы выбираете между Mac OS и Linux, то этот пост будет для вас. Подробно расписал — продолжать использовать Linux или переключиться на Mac OS. И Linux, и Mac OS являются Unix-подобными ОС и предоставляют доступ к командам Unix, а также к оболочкам bash и прочим. В срав...

Buildbot: сказ с примерами еще об одной системе непрерывной интеграции (картинка с официального сайта) Buildbot, как несложно догадаться из названия, является инструментом для непрерывной интеграции (continuous integration system, ci). Про него уже было несколько статей на хабре, но, с моей точки зрения, из них не очень понятны преимущества с...

Grasshopper 2.6.2 Grasshopper — приложение, позволяющее выучить основы программирования на языке JavaScript с помощью бесплатных коротких уроков. Обучение в новом сервисе представлено в игровой форме, из-за чего программа напоминает самый популярный сервис для изучения иностранных языков Duol...

[Из песочницы] Как минимизировать ошибки при интеграции с внешними сервисами: опыт онлайн-брокера За полтора года мы интегрировались по API с двадцатью внешними сервисами. Первые пять интеграций прошли через боль и слезы — мы допустили все возможные ошибки. По несколько раз переписывали код, расставались с партнерами перед самым релизом, потому что не смогли договориться...

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

[Перевод] XML практически всегда применяется не по назначению Язык XML был изобретен в 1996 году. Едва он успел появиться, как возможности его применения уже начали понимать неправильно, и для тех целей, к которым его пытались адаптировать, он был не лучшим выбором. Не будет преувеличением сказать, что подавляющее большинство схем XM...

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

Google поддерживает Unicode в результатах локального поиска Англоязычные пользователи заметили, что Google поддерживает символы Unicode в результатах локального поиска. SEO-консультант из Нью-Джерси Энди Симпсон (Andy Simpson) заметил локальную панель с использованием юникода, когда выполнял поиск по запросу [nathan’s tonsorial...

[Перевод] Язык программирования Swift на Raspberry Pi Raspberry PI 3 Model B+ В этом мануале мы разберем основы использования Swift на Raspberry Pi. Raspberry Pi — небольшой и недорогой одноплатный компьютер, потенциал которого ограничен лишь его вычислительными ресурсами. Он хорошо известен техногикам и любителям DIY. Это о...

[Перевод] Ищем утечки памяти в приложениях на Python Ola! мы продолжаем серию публикаций приуроченных к запуску курса «Web-разработчик на Python» и прямо сейчас делимся с вами переводом еще одной интересной статьи. В Zendesk мы используем Python для создания продуктов с машинным обучением. В приложениях с использованием машин...

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

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

ESET изучила новый арсенал хакерской группировки Turla Недавно ESET зафиксировала несколько кибератак на дипломатические учреждения в Восточной Европе. Во всех случаях использовались скрипты PowerShell, которые позволяют загружать и запускать вредоносные программы прямо в памяти.Этот способ более эффективен для сокрытия вредонос...

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

Томские программисты обучат компьютер естественному русскому "Системы анализа текстов в каждом языке предполагают свой набор инструментов для работы. Русский относится к синтетическим языкам: грамматические значения в нём передаются за счёт высокой степени изменяемости слов, что создаёт дополнительные сложности по сравнению, напр...

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

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

[Перевод] Безумие дотфайлов Мы больше не контролируем свои домашние каталоги. В моём собственном 25 обычных файлов и 144 скрытых. В дотфайлах хранятся данные, которые не принадлежат мне: они принадлежат программистам, чьи программы решили захватить моё пространство, предназначенное для хранения моих л...

Разработка чат-бота (laravel+botman) Welcome! Я, как junior full stack разработчик, при попытке написать бота с использованием laravel и botman’а столкнулся с многими проблемами. Во-первых, я плохо знаю английский, а на русском статей очень мало на эту тему, а те, что есть не помогли мне решить мои проблемы. В ...

[Из песочницы] Организация поиска по веб-странице на JavaScript (без jQuery) Пару дней назад получил тестовое задание от компании на вакансию Front-end dev. Конечно же, задание состояло из нескольких пунктов. Но сейчас речь пойдет только об одном из них — организация поиска по странице. Т.е. банальный поиск по введенному в поле тексту (аналог Ctrl+F ...

XMrig атакует через PowerShell-скрипты и EternalBlue Эксперты Trend Micro обнаружили криптоджекинговую кампанию, которая объединила в себе несколько вредоносных PowerShell-скриптов и эксплойт EternalBlue. Атаки злоумышленников направлены на пользователей в странах Азиатско-Тихоокеанского региона. Для доставки майнера XMrig на ...

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

Книга «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство» Больше года я работал над книгой «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство», и вот теперь эта работа завершена, а книга издана и доступна в Литресе. Надеюсь, моя книга поможет быстро приступить к созданию смарт-контактов Solidity ...

Фантастические плагины, vol. 2. Практика Здесь можно почитать первую статью с теорией плагиностроения. А в этой части я расскажу, с какими проблемами мы сталкивались во время создания плагина и как пытались их решать. Читать дальше →

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

[Перевод] Учебный курс по React, часть 13: компоненты, основанные на классах Сегодня мы публикуем перевод очередного занятия учебного курса по React. Оно посвящено компонентам, основанным на классах. Такие компоненты создают с использованием ключевого слова class. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функци...

[Перевод] Интеграция проверок пароля в KeePass по базе данных утечек Данная статья по шагам описывает процесс интеграции проверок пароля на безопасность в менеджере паролей KeePass. Проверки используют последнюю базу данных Have I Been Pwned, где хранятся утекшие пароли, и всё это работает локально, поэтому вам не надо беспокоиться о возможно...

DARPA занялось созданием искусственного интеллекта нового поколения Источник: Коммерсант Агенство Defense Advanced Research Projects Agency (DARPA), о проектах которого не раз писали на Хабре, недавно взялось за проект создания искусственного интеллекта следующего поколения Artificial Intelligence Next (AI Next). Идеологи и создатели увере...

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

[Перевод] Искусственный интеллект Horizon Zero Dawn: индивидуальное поведение В первой части исследования ИИ Horizon Zero Dawn я рассказал, как игра создаёт стада управляемых искусственным интеллектом животных-машин. Для этого требуется сложная система иерархии агентов, в которой каждая машина может принимать решения о том, как вести себя, пользуясь п...

Небольшой обзор SIMD в .NET/C# Вашему вниманию предлагается небольшой обзор возможностей векторизации алгоритмов в .NET Framework и .NETCORE. Цель статьи познакомить с этими приёмами тех, кто их вообще не знал и показать, что .NET не сильно отстаёт от "настоящих, компилируемых" языков для нативной разрабо...

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

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

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

Почему мы выбрали Electron Предыстория Мы небольшая команда разработчиков, занимаемся созданием нового инструмента для работы с API Testmace. По факту это продвинутый rest клиент с возможностью создавать автоматизированные тесты API с помощью графического интерфейса, оснащенный такими приятными штукам...

[Перевод] Всё, что вам нужно знать про CSS Margin Одним из первых, что многие из нас усвоили, когда изучали CSS, были особенности разных составляющих блока в CSS, описываемые как «Блочная Модель CSS». Один из элементов в блочной модели — margin (внешний отступ), прозрачная область вокруг блока, которая отталкивает другие эл...

Пишем под FPGA без HDL. Сравнение высокоуровневых средств разработки В последнее время производители FPGA и сторонние компании активно развивают методы разработки для FPGA, отличающиеся от привычных подходов использованием высокоуровневых средств разработки. Являясь FPGA-разработчиком, в качестве основного инструмента я использую язык описа...

[Перевод] Flutter: прокачиваем AppBar & SliverAppBar Во Flutter для создания панели инструментов используется хорошо всем известный AppBar, ну а когда нам нужна динамическая панель инструментов, которая покажет контент при свайпе, мы используем отличный виджет SliverAppBar. Оба виджета позволяют сделать приложение чуточку крас...

Компания «Балтика» сообщила о внедрении новых диджитал-инструментов для повышения качества клиентского сервиса Крупнейший отечественный пивоваренный бренд «Балтика» (часть Carlsberg Group) силами своей пресс-службы объявил о том, что он осуществил успешное внедрение в бизнес-процессы ряда инноваций в области цифровизации бизнеса. Речь идет о проекте по GPS-мониторингу качества доста...

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

PVS-Studio идёт в облака: GitLab CI/CD Эта статья является продолжением цикла публикаций об использовании PVS-Studio в облачных системах. На этот раз мы рассмотрим работу анализатора совместно с GitLab CI — продуктом от GitLab Inc. Интеграция статического анализатора в CI систему позволяет выявить баги сразу пос...

Тесты или типы? — Rust version Пару дней назад 0xd34df00d опубликовал здесь перевод статьи, описывающей, что можно узнать о функции в разных языках, если рассматривать её как "чёрный ящик", не используя информацию о её реализации (но, разумеется, не мешая ей пользоваться компилятору). Разумеется, получаем...

[Из песочницы] Простой парсер для youtube в гугл таблицах Предыстория Появилась задача собрать данные по 2000+ youtube видео, из которых необходимо было извлечь название видео, канала и язык. Функция IMPORTXML, с помощью которой можно выполнять парсинг с сайтов, — не помогла, поскольку, как оказалось в дальнейшем, youtube хранит д...

Исследование быстродействия СУБД MS SQL Server Developer 2016 и PostgreSQL 10.5 для 1С Цели и требования к тестированию «1С Бухгалтерии» Основной целью проводимого тестирования является сравнение поведения системы 1С на двух разных СУБД при прочих одинаковых условиях. Т.е. конфигурация баз данных 1С и первоначальная заполненность данными должны быть одинаковым...

Swift under the hood: Generic implementation Generic code enables you to write flexible, reusable functions and types that can work with any type, subject to requirements that you define. You can write code that avoids duplication and expresses its intent in a clear, abstracted manner. — Swift docsКаждый, кто писал на ...

Loli — новый высокопроизводительный язык В этой статье мы поговорим о новом интерпретируемом языке Loli, рассмотрим синтаксис и сравним с языками C и Python. Читать дальше →

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

.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 2 Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight. Я продолжаю создавать текстовую версию своего выступления на митапе по многопоточности. С первой частью можно ознакомиться здесь или здесь, там речь больше шла о базовом наборе инструментов, что...

Гомер или первый в истории Opensource. ч.1 Кажется, что Гомер с его поэмами — это что-то далекое, архаичное, трудночитаемое и наивное. Но это не так. Мы все пронизаны Гомером, древнегреческой культурой из которой вышла вся Европа: наш язык пестрит словами и цитатами из древнегреческой литературы: взять хотя бы такие ...

Батавские слёзки, легковые машины и Gorilla Glass: о некоторых видах укрепленного стекла Привет, Хабр! Все мы слышали такие слова, как "закаленное стекло", "Gorilla Glass", "химическая обработка стекла". Тем не менее, в большинстве случаев мы и не задумываемся о том, как все эти вещи устроены, а зря — эта тема содержит в себе множество удивительных фактов и инт...

[Перевод] Что я узнал про оптимизацию в Python Всем привет. Сегодня хотим поделиться еще одним переводом подготовленным в преддверии запуска курса «Разработчик Python». Поехали! Я использовал Python чаще, чем любой другой язык программирования в последние 4-5 лет. Python – преобладающий язык для билдов под Firefox, те...

[Из песочницы] Создание своего jsfiddle, часть 1 Привет всем читателем habr. В данной статье мы напишем свой онлайн редактор кода. Зачем я писал свой онлайн редактор кода В один день мне стало интересно насколько сложно создать свой онлайн редактор по типу jsfiddle, из-за чего я решил написать свой редактор. Написание сво...

[Из песочницы] Назад в будущее с WebAssembly Привет, Хабр! Представляю вашему вниманию перевод статьи «Back To The Future With WebAssembly» автора Attila Vágó. Данный пост является переводом статьи, в которой рассказывается о свойствах WebAssemly и Emscripten. Оригинал статьи на английском языке. Автор статьи Аттила ...

Делаем ретро-игру из 80-х или как готовить макеты для лазерной резки Хабр, привет! Так получилось, что меня давно просили сделать старую настольную игру из СССР — «Сражение». Вот пришло время выполнять обещание, заодно решила показать как создавать макеты для лазерной резки и что получается в итоге. Большой сложности в этом нет, но есть неко...

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

Cisco HyperFlex vs. конкуренты: тестируем производительность Мы продолжаем знакомить вас с гиперконвергентной системой Cisco HyperFlex. В апреле 2019 года компания Cisco в очередной раз проводит серию демонстраций нового гиперконвергентного решения Cisco HyperFlex в регионах России и в Казахстане. Записаться на демонстрацию можно чер...

Приложение для iOS и Android на Kotlin + Flutter UI Вступление Всем привет. Какое-то время назад, я решил делать свой проект для Android и iOS одновременно. Естественно, встал вопрос о выборе технологий. Пару недель присматривался к популярным стекам и выбрал Kotlin/Native. Поскольку я являюсь Android-разработчиком, то с Ko...

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

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

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

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

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

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

[Перевод] Visual Studio for Mac: 5 новых крутых функций За прошедший год команда Visual Studio for Mac обновила редакторы в среде IDE, чтобы они стали быстрее, плавнее и продуктивнее. Мы сделали это, создав нативный интерфейс редактора macOS на основе того же самого бэкенда редактора, что и Visual Studio в Windows. В версии 8.1 м...

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

[Из песочницы] От моделирования процессов к проектированию автоматизированной системы (Часть 1) «Один день из жизни белки» или от моделирования процессов к проектированию автоматизированной системы учёта материальных ценностей «Белка-1.0» (Часть 1) Использована иллюстрация к "Сказке о царе Салтане" А.С.Пушкина, изд."Детская литература", Москва, 194...

Книга «Kafka Streams в действии. Приложения и микросервисы для работы в реальном времени» Привет, Хаброжители! Эта книга подойдет для любого разработчика, который хочет разобраться в потоковой обработке. Понимание распределенного программирования поможет лучше изучить Kafka и Kafka Streams. Было бы неплохо знать и сам фреймворк Kafka, но это не обязательно: я ра...

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

[Перевод] Cascadeur: будущее игровой анимации Всем привет! Мы — студия разработки Banzai Games. Рады наконец открыть здесь свой блог. Будем писать о наших технологиях, проектах и делиться историями из жизни компании. Первый материал — перевод интервью с основателем студии Евгением Дябиным, которое он дал коллегам из и...

[Из песочницы] Сложности работы с Redux и их решение Redux среди нас Это один из самых популярных state-manager`ов. Он прост в использовании, прозрачен и предсказуем. С его помощью можно организовать хранение и изменение данных. А если считать, что action`ы и reducer`ы являются частью redux`а, то можно без преувеличения утве...

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

Facebook обновляет инструменты для создания видео Facebook объявил о запуске новых функций для создания видео, которые будут доступны при настройке прямого эфира, совместного просмотра (Watch Party) и при использовании инструмента Creator Studio. Обновления были разработаны с учётом обратной связи от пользователей, которые ...

[Перевод] Что такое Android Lint и как он помогает писать поддерживаемый код Когда разработчик не достаточно осторожен, дела могут пойти весьма плохо. Например, классические упущения разработчика — использование новой версии API, которая не поддерживает работу со старым кодом, выполнение действий, которые требуют специальных пользовательских разреше...

Эдуард Медведев, CTO в Tungsten Labs: «Мы доросли до момента, когда технологии могут причинить массовый вред» Если вдруг вы не знали, сегодня можно поднять сервер, запустить и откатить деплой, заскейлить кластер, просто отправив сообщение телеграм-боту. Эдуард Медведев, CTO в Tungsten Labs (Германия), выступал на третьем дне Слёрма DevOps с темой «Автоматизация инфраструктуры с Chat...

Производительность анимаций на сайтах При разработке сайтов, выходящих за рамки условного бутстрапа, рано или поздно возникают вопросы, связанные с производительностью анимаций. Особенно важными они являются в дизайнерских сайтах, вроде тех, что попадают в каталоги Awwwards, FWA, CSS Design Awards и.т.д. При эт...

Editor.js прекрасный редактор сохраняющий исходный код в JSON формате CodeX крутые ребята, которые базируются в Университете ИТМО. На базе этого университета студенты и выпускники создают интересные и полезные проекты: Hawk.so, Capella, AR-tester и другие. Один проект очень помог нашему бизнесу. Редактор Editor.js сохраняющий исходный код в J...

[Перевод] Пингвин в окне: о потенциале и перспективах WSL2 Привет, Хабр! Пока у нас вовсю продолжается летняя распродажа, мы хотели бы предложить вам обсудить одну из самых масштабных тем, которую прорабатываем в последнее время — взаимодействие Windows и Linux, связанное, в частности, с развитием системы WSL. WSL 2 уже на подходе,...

[Перевод] Пишем чистый и масштабируемый JavaScript-код: 12 советов Язык JavaScript родом из раннего веба. Сначала на нём писали простые скрипты, которые «оживляли» страницы сайтов. Теперь же JS превратился в полноценный язык программирования, который можно использовать даже для разработки серверных проектов. Современные веб-приложения силь...

[Перевод] Основы движков JavaScript: общие формы и Inline кэширование. Часть 2 Всем привет! Курс «Безопасность информационных систем» стартует уже через 2 недели, поэтому сегодня мы хотим опубликовать вторую часть статьи, публикация которой приурочена к его запуску. Прочитать первую часть можно тут. Итак, начнем. Inline Caches (ICs) Основной идеей, к...

[Перевод] Возможности современного JavaScript, о которых вы могли не знать Несмотря на то, что в последние семь лет я пишу на JavaScript почти каждый рабочий день, должен признаться, что уделяю мало внимания сообщениям о нововведениях от ES. Главные возможности вроде async/await и прокси — это одно, но ещё каждый год идёт поток мелких поэтапных и...

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

[Из песочницы] Как и зачем я писал парсер для сайта Tradingview. Автоматизация торговли своими руками Проблема: На текущий момент наиболее удобным и полноценным программным обеспечением (далее ПО) для автоматизации торговли на российском биржевом рынке является небезызвестный ТСЛАБ. Несмотря на несомненные плюсы в виде удобного визуального редактора для написания торговых ск...

Разработчики Intel закрыли 19 брешей в драйверах видеокарт Компания Intel выпустила пакет обновлений, устраняющих серьезные уязвимости в графическом драйвере для Windows 10, — ошибки позволяли злоумышленникам повышать привилегии, читать закрытые данные и выполнять сторонний код на пользовательском компьютере. Разработчики устранили ...

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

[Перевод] Реверс-инжиниринг Fantastic Dizzy Fantastic Dizzy — это игра в жанре «пазл-платформер», созданная в 1991 году компанией Codemasters. Она является частью серии игр про Диззи (Dizzy Series). Несмотря на то, что серия Dizzy до сих пор популярна, и по ней создаются любительские игры (Dizzy Age), похоже, что никт...

[Из песочницы] Three.js — делаем controls для космосима или планетария Разрабатывая свой проект на тему космоса, столкнулся с тем что в three.js почему-то нет готового и удобного инструмента управления камерой, подходящего под такие задачи. Конечно я допускаю что просто плохо искал… Но, довольно продолжительный поиск результатов не дал. OrbitC...

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

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

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

[Из песочницы] Архитектура компьютерных систем 1 часть. Логические вентили Логические элементы Доброго времени суток, я начинаю серию статей по написанию виртуальной машины на языке Golang. Я выбрал этот язык так как он прост для чтения и имеет в стандартной библиотеке уже необходимые функции, которые пригодятся в дальнейшем. Эта статья не несёт в...

gui приложение для задачи о ходе коня Это туториал по созданию интерактивного приложения для решения задачи о ходе коня на языках processing и p5.js Посмотреть саму программу можно здесь. Для управления «конём» используется метод mouseDragged(); пример программы, использующей этот метод здесь. Отмена хода осуще...

Make Your Database Dream of Electric Sheep: Designing for Autonomous Operation Как вы думаете, кто лучше настроит PostgreSQL — DBA или ML алгоритм? И если второй, то пора ли нам задуматься, чем заняться, когда нас заменят машины. Или до этого не дойдет, и важные решения все-таки должен принимать человек. Наверное, уровень изоляции и требования к устойч...

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

Не очередной язык программирования. Часть 2: Логика представлений Вторая часть трилогии о языке и платформе lsFusion. Первую часть можно найти тут. В ней речь пойдет о логике представлений, а именно обо всем том, что связано с объединением данных и отображением их пользователю или другим информационным системам. Читать дальше →

Google Tag Manager: неочевидные и полезные настройки триггеров Маркетолог в Otzyvmarketing Станислав Романов рассказал, как с помощью диспетчера тегов Google Tag Manager (GTM) настроить аналитику и отслеживать скачивание файлов с сайта. Статья для тех, кто знает основы языка JavaScript и уже работал с GTM.  Читать дальше →

[Из песочницы] Всё что вам нужно знать о Node.js Привет, Хабр! Представляю вашему вниманию перевод статьи "Everything you need to know about Node.js" автора Jorge Ramón. В наши дни платформа Node.js является одной из самых популярных платформ для построения эффективных и масштабируемых REST API's. Она так же под...

Холивар. История рунета. Часть 6. Блокировки: Лурк, Лента, 282-я и китайский путь Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е Холивар. История рунета. Часть 2. Контркультура: пАдонки, марихуана и Кремль Холивар. История рунета. Часть 3. Поисковики: Яндекс vs Рамблер. Как не делать инвестиции Холивар. История рунета. Ч...

[Перевод] Python становится самым популярным языком программирования в мире Еще летом на The economist вышла статья о том, что Python все активнее завоевывает рынок. Но завирусилась она только сейчас. Вероятно, так произошло из-за того, что она очень неоднозначная. Ведь несмотря на такой заголовок, автор заявляет, что Python, теоретически, может пов...

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

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

Arend – язык с зависимыми типами, основанный на HoTT (часть 2) В первой части статьи про язык Arend мы рассматривали простейшие индуктивные типы, рекурсивные функции, классы и множества. 2. Сортировка списков в Arend 2.1 Упорядоченные списки в Arend Определим тип упорядоченных списков как пару, состоящую из списка и доказательства его ...

[Перевод] Встречайте Big Data Tools: поддержка Spark и Zeppelin-ноутбуков в IntelliJ IDEA У нас отличные новости. Мы рады объявить о выходе Big Data Tools — нового плагина для IntelliJ IDEA, который обеспечивает интеграцию со Spark и поддерживает редактирование и запуск Zeppelin-ноутбуков. Теперь вы можете создавать, редактировать и запускать Zeppelin notebooks п...

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

В России создадут электронно-лучевой 3D-принтер Основными преимуществами электронно-лучевого принтера для печати металлическими порошками, разрабатываемого НПП "Торий" холдинга "Росэлектроника", являются большая скорость и точность работы, а также низкая чувствительность к качеству порошков. Кроме того...

Kubernetes tips & tricks: перевод работающих в кластере ресурсов под управление Helm 2 Необходимость подхвата ресурсов кластера Kubernetes может возникнуть в боевых условиях, когда нельзя просто пересоздать их инструментами Helm. Можно выделить две основные причины: Будет простой — вне зависимости от того, облако у вас или bare metal. При удалении могут ...

[Из песочницы] Nil не всегда nil Nil не всегда nil "Что? Что вообще здесь написано?" спросите вы. Сейчас все разложу. Когда начинал изучать язык — не думал что зайду в этот узкий случай. Это также не рационально как и изменять итерируемую коллекцию. Читать дальше →

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

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

Машинное зрение vs интуиция человека: алгоритмы нарушения работы программ распознавания объектов Логика машин безупречна, они не совершают ошибок, если их алгоритм работает исправно и заданные параметры соответствуют необходимым стандартам. Попросите машину выбрать маршрут от точки А в точку Б, и она построит самый оптимальный, учитывая расстояние, расход топлива, нал...

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

Особенности австралийского английского Мы продолжаем наш цикл материалов про диалекты и акценты английского языка. И на этот раз поговорим об Австралии. В лингвистическом контексте развитие английского языка в Австралии привлекает внимание. Ведь первыми поселенцами на материке, не считая аборигенов, были ссыльн...

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

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

Spring JPA репозитории в CUBA Тема статьи достаточно узконаправленная, но, возможно, окажется полезной тем, кто разрабатывает свои собственные хранилища данных и думает об интеграции со Spring Framework. Предпосылки Разработчики обычно не очень любят менять свои привычки (зачастую, в список привычек вхо...

[Из песочницы] Интеграция AppCenter и GitLab Трям, здравствуйте! Хочу рассказать о своём опыте настройки интергации GitLab и AppCenter через BitBucket. Необходимость такой интеграции возникла в ходе настройки автоматического запуска UI тестов для кроссплатформенного проекта на Xamarin. Подробный туториал под катом! Чи...

Свободная Рисовалка — песочница крафт по клеточкам 1.0 Вам нравится рисовать рисунки по клеточкам? Вы рисовали рисунки по клеточкам в тетради? Тогда это замечательно приложение по клеточкам именно для Вас! В интернете есть множество картинок по клеточкам. Смотрите или создавайте свои собственные образы рисунков по клеточкам, по ...

[Перевод] Готовимся к 2020 году: 8 трендов клиентской JavaScript-разработки, о которых нужно знать Автор материала, перевод которого мы сегодня публикуем, говорит, что хочет поделиться с читателями прогнозом, который касается развития веб-технологий на ближайшие годы. В частности, здесь речь пойдёт о том, что, по мнению автора, фронтенд-разработчикам, вероятно, стоить нач...

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

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

Дайджест интересных материалов для мобильного разработчика #304 (24 — 30 июня) В нашем новом выпуске создание вездесущих сплэшскринов, уход прекрасного Джони Айва, тщательная проверка приложений в App Store, параноидальные видео, искусственная музыка и много других интересных материалов. Читать дальше →

[Перевод] Как начать использовать User Mode в Linux Вступление от переводчика: На фоне массового входа в нашу жизнь различного рода контейнеров может быть довольно интересно и полезно узнать, с каких технологий это всё начиналось когда-то. Некоторые из них можно с пользой применять и по сей день, но не все о таких способах по...

Создание альтернативного дисплея для синтезатора/сэмплера Ensoniq EPS16+ и ASR10 Привет, Хабр! Здесь я расскажу об одном (к сожалению до сих пор неоконченном) проекте по созданию альтернативый стандартному дисплею Ensoniq EPS16+ и ASR10. Читать дальше →

100 000 000 000: столько слов ежедневно переводит Google Компания Google опубликовала эмоциональный рекламный ролик, посвященный тому, как компания помогает людям со всего мира общаться и находить общий язык, если они не могут объясниться собственными силами. Ежедневно переводчик Google выполняет свою задачу, обрабатывая боле...

ИИ научился создавать видео с одного кадра. Старые картины теперь можно сделать живыми Технология из Гарри Поттера дошла до наших дней. Теперь для создания полноценного видео человека достаточно одной его картинки или фотографии. Исследователи машинного обучения из «Сколково» и центра Samsung AI из Москвы опубликовали свою работу о создании такой системы, вм...

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

Неоднозначный Preform Приветствую всех!Несколько месяцев уже использую принтер Form2, машина очень стабильная, настраивать в ней особо нечего, и писать не о чем, скууучно) Но интересные моменты есть.Здесь я рассказывал о своих первых впечатлениях о Форм2.Здесь я рассказывал о своем опыте настройк...

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

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

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

Программирование для детей. Пять самых крутых игр на HTML и JavaScript Привет, Хаброжители! Хотите сделать отличный подарок ребёнку, желающему научиться программировать, или научить взрослого, далёкого от мира кодов? Тогда книга-героиня нашего поста Вам подойдет. Эта книга научит писать код веб-игр на языках HTML и JavaScript и даже поможет чи...

Custom refactoring tool: Swift Любой инженер стремится сделать процесс своей работы максимально оптимизированным. Нам, как мобильным разработчикам iOS, очень часто приходится работать с однообразными структурами языка. Компания Apple улучшает инструменты разработчиков, прилагая много усилий, чтобы нам был...

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

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

Linux Kernel 5.0 — пишем Simple Block Device под blk-mq Good News, Everyone! Linux kernel 5.0 уже здесь и появляется в экспериментальных дистрибутивах, таких как Arch, openSUSE Tumbleweed, Fedora. А если посмотреть на RC дистрибутивов Ubuntu Disko Dingo и Red Hat 8, то станет понятно: скоро kernel 5.0 с десктопов фанатов пе...

[Перевод] Если вы не пишете программу, не используйте язык программирования Лесли Лэмпорт — автор основополагающих работ в распределённых вычислениях, а ещё вы его можете знать по буквам La в слове LaTeX — «Lamport TeX». Это он впервые, ещё в 1979 году, ввёл понятие последовательной согласованности, а его статья «How to Make a Multiprocessor Comput...

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

Все, что вы хотели знать о SwiftUI, но боялись спросить Привет! Меня зовут Ренат, я разрабатываю сервис по аналитике подписок в iOS – Apphud. Как вы знаете, Apple на WWDC 2019 представила свой новый фреймворк SwiftUI, который призван в будущем заменить (или нет?) привычный нам UIKit. SwiftUI позволяет описывать интерфейс приложе...

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

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

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

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

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