Социальные сети Рунета
Пятница, 10 мая 2024

[Перевод] PHP дженерики уже сегодня (ну, почти) Если спросить PHP-разработчиков, какую возможность они хотят увидеть в PHP, большинство назовет дженерики. Поддержка дженериков на уровне языка была бы наилучшим решением. Но, реализовать их сложно. Мы надеемся, что однажды нативная поддержка станет частью языка, но, вероятн...

[Перевод] Дженерики в TypeScript: разбираемся вместе Всем привет! Команда TestMace публикует очередной перевод статьи из мира web-разработки. На этот раз для новичков! Приятного чтения. Развеем пелену таинственности и недопонимания над синтаксисом <T> и наконец подружимся с ним Наверное, только матёрые разработчики Java...

Реализация сопоставления с образцом в Java Многие современные языки поддерживают сопоставление с образцом (pattern matching) на уровне языка. Java в данный момент не поддерживает pattern matching, но есть надежды что в будущем все может измениться. Сопоставление с образцом раскрывают перед разработчиком возможность п...

[Перевод] Интервью — 10 вопросов про Swift. Часть 2 До запуска курса «iOS-разработчик» остается все меньше времени, поэтому сегодня мы продолжаем публиковать материал из серии «10 вопросов про Swift». Первую часть которого можно прочитать тут. Объясните дженерики в Swift? Дженерики (универсальные шаблоны) позволяют вам пис...

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

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

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

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

[Перевод] Модели дженериков и метапрограммирования: Go, Rust, Swift, D и другие В некоторых сферах программирования нормально хотеть написать такую структуру данных или алгоритм, которые могут работать с элементами разных типов. Например, список дженериков или алгоритм сортировки, которому нужна только функция сравнения. В разных языках предложены всев...

[Перевод] Зачем нужны дженерики? Эта статья о том, что будет означать добавление дженериков в Go, и почему я считаю, что нам это следует сделать. Также я коснусь возможного изменения архитектуры языка ради добавления дженериков. Go вышел 10 ноября 2009-го. Меньше чем через сутки появился первый комментари...

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

[Перевод] 10 самых распространенных ошибок при работе с платформой Spring. Часть 1 Всем привет. Сегодня делимся первой частью статьи, перевод которой подготовлен специально для студентов курса «Разработчик на Spring Framework». Начнём! Spring — пожалуй, одна из самых популярных платформ разработки на языке Java. Это мощный, но довольно сложный в освоении...

Наследование в C++: beginner, intermediate, advanced В этой статье наследование описано на трех уровнях: beginner, intermediate и advanced. Expert нет. И ни слова про SOLID. Честно. Beginner Что такое наследование? Наследование является одним из основополагающих принципов ООП. В соответствии с ним, класс может использовать пер...

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

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

[Перевод] Разбор: как на самом деле правильно использовать Present Perfect в английском Из всех используемых в английском языке времен, именно Present perfect зачастую оказывается одним из самых трудных для понимания не-носителями. Аналоги этого времени существуют во множестве языков, но в использовании есть едва уловимые отличия. В итоге английская версия pr...

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

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

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

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

[Перевод] Создание современных облачных приложений с использованием Pulumi и .NET Core Мы рады объявить о поддержке .NET Core для Pulumi! Это объявление означает, что вы можете декларировать облачную инфраструктуру — включая все в Azure, например Kubernetes, Functions, AppService, Виртуальные машины, CosmosDB и другое, — используя ваш любимый язык .NET, включа...

Тесты на Codeception для PHP-бэкендов Всем привет! Меня зовут Паша, и я QA инженер команды Order Processing в Lamoda. Недавно я выступал на PHP Badoo Meetup. Сегодня хочу представить расшифровку своего доклада. Речь пойдет про Codeception, про то, как мы его используем в Lamoda и как на нем пишем тесты. Чи...

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

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

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

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

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

Еще один вариант среды для разработки WordPress (docker, wp-cli) Есть официальные образы для развертывания WordPress и использования wp-cli. Но при их совместном использовании мне приходилось расшаривать всю папку WordPress и хотелось, чтобы было больше возможностей для кастомизации установки. Очень хотелось после запуска контейнера видет...

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

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

Мысленный эксперимент: Flutter на Go Совсем недавно я открыл для себя Flutter – новый фреймворк от Google для разработки кроссплатформенных мобильных приложений – и даже имел возможность показать основы Flutter человеку, который никогда не программировал до этого. Сам Flutter написан на Dart – языке, родившимся...

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

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

Один день из поддержки пользователей PVS-Studio Мы рады любым тематическим общениям на тему качества кода. Нам пишут клиенты, студенты и любые другие пользователи со всех уголков интернета. Независимо от страны, часового пояса или языка. Языка разговорного, конечно. Среди языков программирования нам всё же интересен огра...

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

Настройка LaTeX в Sublime Text Ниже представлено руководство по установке текстового редактора Sublime Text, с последующим добавлением в него возможности использования системы компьютерной вёрстки LaTeX. В качестве бонуса научим его понимать язык Julia. Читать дальше →

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

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

[Перевод] Оборачиваем последовательности в Swift Всем привет. Сегодня хотим поделиться переводом подготовленным в преддверии запуска курса «iOS Разработчик. Продвинутый курс». Поехали! Одним из основных преимуществ протокольно-ориентированного дизайна Swift является то, что он позволяет нам писать общий код, который совме...

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

Автоматизация управления Let's Encrypt SSL сертификатами используя DNS-01 challenge и AWS Пост описывает шаги для автоматизации управления SSL сертификатами от Let's Encrypt CA используя DNS-01 challenge и AWS. acme-dns-route53 — это инструмент, который позволит нам реализовать данную фичу. Он умеет работать с SSL сертификатами от Let's Encrypt, сохранять их в Am...

PHP Xdebug proxy: когда стандартных возможностей Xdebug не хватает Для отладки PHP-программ часто используют Xdebug. Однако стандартных возможностей IDE и Xdebug не всегда достаточно. Часть проблем можно решить с помощью Xdebug proxy — pydbgpproxy, но всё же не все. Поэтому я реализовал PHP Xdebug proxy на базе асинхронного фреймворка amph...

Немного о лексическом анализе Давным-давно, когда небо было голубым, трава зеленее и по Земле бродили динозавры… Нет, забудьте про динозавров. Ну, в общем, когда-то тогда пришла в голову мысль отвлечься от стандартного web-программирования и заняться чем-то более безумным. Можно было, конечно, чем угод...

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

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

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

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

Идиоматичное программирование GPU на Rust: Библиотека Emu Введение Emu — это высокоуровневый язык программирования видеокарт, способный встраиваться в обычный код на системном языке программирования Rust. В данной статье речь пойдёт о синтаксисе Emu, его особенностях, а также будут показаны несколько наглядных примеров его использ...

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

Vivado: Picasso mode Аннотация Безумию все возрасты покорны При проектировании каких-либо модулей на ПЛИС невольно иногда приходит в голову мысль о не совсем стандартном использовании самой среды проектирования и инструментов, которые она предоставляет для проектирования. В этой небольшой заметк...

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

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

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

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

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

Книга «Как устроен JavaScript» Большинство языков программирования выросли из древней парадигмы, порожденной еще во времена Фортрана. Гуру JavaScript Дуглас Крокфорд выкорчевывает эти засохшие корни, позволяя нам задуматься над будущим программирования, перейдя на новый уровень понимания требований к Сле...

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

Новые возможности С# 8: switch expressions В конце января группа разработчиков .NET Core выпустила новую версию фреймворка .NET Core 3 preview 2. В нем были реализованы некоторые новые возможности языка С#. Что мне кажется довольно интересным, это switch expressions. Хотя это добавление кажется простым, я думаю, что ...

Введение в аннотации типов Python. Продолжение Автор иллюстрации — Magdalena Tomczyk В первой части статьи я описал основы использования аннотаций типов. Однако несколько важных моментов остались не рассмотрены. Во-первых, дженерики — важный механизм, во-вторых иногда может оказаться полезным узнать информацию об ожидае...

[Перевод] Цена TypeScript В 2017-2019 годах можно было наблюдать серьёзный рост TypeScript. Происходило это по вполне понятным причинам. В этом языке есть много хорошего. Почти половина респондентов исследования State of JavaScript 2018 года уже пробовали TypeScript и собираются писать на нём в будущ...

[Из песочницы] Три Больших Лжи о JavaScript Привет, Хабр! Представляю вашему вниманию мой перевод статьи "The Three Big Lies About JavaScript" автора Richard Kenneth. Данная статья была написана в мае 2016 года, однако ее актуальность, на мой взгляд, не исчезла. Я начинающий программист, поэтому возможны оши...

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

[Перевод] Оттенки значений в английском языке: как использовать глаголы Advise, Recommend, Suggest Английский язык часто воспринимается как нечто не столь сложное, как некоторые другие языки – взять тот же немецкий. Но на самом деле в нем есть достаточное количество трудностей и тонких моментов («Пишется Ливерпуль, а читается Манчестер» ). Один из них, вызывающий личн...

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

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

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

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

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

Электромобиль Honda e получит видеокамеры Side Camera Mirror System вместо обычных боковых зеркал даже в базовом оснащении На прошлой неделе Honda открыла европейские предзаказы на электрохэтчбек Honda e, а сегодня сообщила, что вместо боковых зеркал модель получит фирменную систему на основе видеокамер Side Camera Mirror System. При этом данная система будет входить в стандартную комплектацию с...

Интерфейсы как абстрактные типы данных в Go Не так давно коллега ретвитнул отличный пост How to Use Go Interfaces. В нем рассматриваются некоторые ошибки при использовании интерфейсов в Go, а также даются некоторые рекомендации по поводу того, как их все-таки стоит использовать. В статье, упомянутой выше, автор приво...

Представлены умные часы Amazfit Smart Sports Watch 3: два процессора, автономность до 14 дней, NFC и датчик ЧСС за $180 Вместе с умными часами Amazfit GTS компания Huami сегодня представила и модель, стоящую на ступень выше - Amazfit Smart Sports Watch 3. Эти часы в базовом исполнении стоят $180, топовая версия часов оценена в $240. Эти варианты различаются только материалами. К примеру,...

[recovery mode] Вертикальное письмо в современном IT Привет, Хабр! Двунаправленным письмом в наше время никого не удивить. Оно поддерживается управляющими символами Уникода, для него создан HTML-тег <bdo>. Но горизонтальные письменности – не единственные существующие и применяемые для записи человеческой речи. Кроме обыч...

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

SmartCard I2C Protocol. Обмен APDU командами через I2C интерфейс Введение Некоторое время назад я принимал участие в разработке устройства, в котором было необходимо реализовать российскую криптографию. Так как в дальнейшем предполагалось это решение сертифицировать, то к реализации криптографии выдвигались определенные требования. И как ...

Взгляд со стороны EcmaScript на общую теорию ООП Привет, Хабр! До сего дня я занимался лишь переводами интересных, на мой взгляд, статей англоязычных авторов. И вот настала пора самому что-то написать. Для первой статьи я выбрал тему, которая, я уверен, будет полезна junior-разработчикам, стремящимся дорасти до «мидлов»,...

Джулия и параллельные вычисления С момента выхода в августе 2018, язык Julia активно набирает популярность, войдя в топ 10 языков на Github и топ 20 самых популярных профессиональных навыков по версии Upwork. Для начинающих стартуют курсы и выпускаются книги. Julia используется для планирования космических...

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

766 км — новый рекорд дальности для LoRaWAN Передачу данных на рекордное расстояние осуществили инженеры из Испании. Они работали с протоколом LoRaWAN (для IoT), а передача велась с аэростата на базовую станцию в горах. Читать дальше →

Знакомство со статическим анализатором PVS-Studio при разработке C++ программ в среде Linux PVS-Studio поддерживает анализ проектов на языках C, C++, C# и Java. Использовать анализатор можно под системами Windows, Linux и macOS. В этой заметке речь пойдет об анализе кода, написанного на C и C++ в среде Linux. Установка Установить PVS-Studio под Linux можно разными...

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

Курс по C++ в CS центре, вторая часть Computer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса. Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Scienc...

[Перевод] Заметка о void в JavaScript и TypeScript Если вы, до того, как заинтересовались JavaScript, писали на традиционных языках с сильной типизацией, то вы, возможно, знакомы с концепцией void. Это — тип, использование которого сообщает программисту о том, что соответствующие функции и методы при их вызове ничего не возв...

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

ControlValueAccessor и contenteditable в Angular Вы когда-нибудь задумывались, как работает связка форм Angular и HTML элементов, через которые пользователь заносит данные? С самого начала для этого использовали ControlValueAccessor — специальный интерфейс, состоящий всего из 4 методов: interface ControlValueAccessor { w...

[Из песочницы] JAMstack: Как создать свой блог используя Gatsby + Contentful + Netlify Вы уже слышали о новом подходе JAMstack? Возможность писать веб-приложения на любимом фреймворке, управлять контентом из админ панели, а на выходе получать полностью валидные HTML-страницы построенные согласно с самыми последними рекомендациями SEO, PWA и a11y. Интересно? То...

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

Должны ли строки в Python быть итерируемы? И сотворил Гвидо строки по образу C, по образу массивов символов сотворил их. И увидел Гвидо, что это хорошо. Или нет? Представьте, что вы пишете совершенно идиоматичный код по обходу неких данных с вложенностью. Beautiful is better than ugly, simple is better than complex,...

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

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

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

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

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

Как настроить Linux для входа в домен с использованием алгоритмов ГОСТ Введение Протокол Kerberos 5 сейчас активно используется для аутентификации. Особенностью данного протокола является то, что он осуществляет аутентификацию, базируясь на трех китах: Симметричное шифрование Хеширование ЭЦП Третья доверенная сторона Начиная с пятой версии п...

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

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

[Из песочницы] Генератор мемов на Ruby для привлечения интереса к языку По моему мнению язык Ruby перестал быть популярным как в 2012 — 2014 году и поэтому у меня возникло желание пока про язык совсем не забыли, попробовать его снова донести в массы, ведь Ruby по моему мнению самый удобный и практичный язык для веб разработки. Я с неделю назад ...

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

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

[Перевод] WolframClientForPython | Новая клиентская библиотека Wolfram Language для Python Оригинал перевода в моём блоге Получение полного доступа к языку Wolfram Language из языка Python Язык Wolfram (Wolfram Language) дает программистам в руки уникальный язык с огромным множеством сложных алгоритмов, а также встроенных знаний об окружающем мире. На протяжении...

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

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

[Перевод] Как в 1995 году писали игры для Sega Saturn Это документ, написанный мной в 1995 году, когда я работал над первой игрой студии Neversoft: Skeleton Warriors. Это была первая игра, в которой я не использовал язык ассемблера 68K. Фото сделано примерно в то время. Комплект разработчика (dev kit) («Small Box» и ICE) стоит...

Empire ERP. Занимательная бухгалтерия: главная книга, счета, баланс В данной статье мы осуществим попытку проникновения в самое сердце "кровавого энтерпрайза" — в бухгалтерию. Вначале мы проведем исследование главной книги, счетов и баланса, выявим присущие им свойства и алгоритмы. Используем Python и технологию Test Driven Development. Здес...

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

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

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

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

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

Intel показала новый процессор i9-9900KS с Turbo-частотой 5 Ghz на ядро Вчера компания Intel представила публике свой новый восьмиядерный процессор (16 потоков) i9-9900KS с тактовой частотой в 5,0 Ghz на каждое ядро в режиме Turbo. Режим Turbo в процессорах Intel — это система, которая автоматически поднимает тактовую частоту ядер при увеличении...

Что не так с GraphQL В последнее время GraphQL набирает всё большую популярность. Изящный синтаксис запросов, типизация и подписки. Кажется: "вот оно — мы нашли идеальный язык обмена данными!"... Я разрабатываю с использованием этого языка уже больше года, и скажу вам: всё далеко не так гладко. ...

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

Локальная автономная система сбора данных (продолжение) Начало на данном сайте по ссылке. Самым удобным для использования вариантом съёма информации о включении пускателя оказался вариант с оптопарой PC817. Принципиальная схема Платы содержат по три одинаковых схемы, всё помещено в коробки из ABS пластика, размер 100х100 мм. ...

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

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

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

5 способов сделать Python-сервер на Raspberry Pi. Часть 2 Привет Хабр. Сегодня мы продолжим изучать сетевые возможности Raspberry Pi, а точнее их реализацию на языке Python. В первой части мы рассмотрели базовые функции простейшего веб-сервера, работающего на Raspberry Pi. Сейчас мы пойдем дальше, и рассмотрим несколько способов, ...

Intel One API Project: архитектур много, API один На проходившем в июне Intel Software Technology Day ведущие инженеры компании рассказали о софтверном проекте под названием «Intel One API» — унифицированной модели программирования для облегчения разработки ПО под разнообразные вычислительные архитектуры, включающей в себ...

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

[Перевод] Новшества JavaScript: итоги Google I/O 2019. Часть 1 Материал, первую часть перевода которого мы сегодня публикуем, посвящён новым стандартным возможностям JavaScript, о которых шла речь на конференции Google I/O 2019. В частности, здесь мы поговорим о регулярных выражениях, о полях классов, о работе со строками. Ретроспект...

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

Как мы в IntelliJ IDEA ищем лямбда-выражения Важной возможностью любой IDE является поиск и навигация по коду. Один из часто используемых вариантов поиска на языке Java — поиск всех реализаций данного интерфейса. Часто такая функция называется иерархией типов (Type Hierarchy) и выглядит как на картинке справа. Перебира...

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

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

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

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

Новая версия Honor MagicBook Pro оценена в $660 Компания Honor представила новую версию ноутбука MagicBook Pro, стандартная версия которого характеризуется 16,1-дюймовым дисплеем, видеокартой GeForce MX250, процессорами Intel Core i5 или Core i7, а также ценой в 800 долларов за базовую версию. Новая версия оснащается 8 ил...

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

[Перевод] Как написать смарт контракт на WebAssembly в сети Ontology? Часть 1: Rust Технология Ontology Wasm снижает стоимость переноса смарт контрактов dApp со сложной бизнес- логикой на блокчейн, тем самым значительно обогащая dApp экосистему. В настоящее время Ontology Wasm одновременно поддерживает разработку как на языке Rust, так и на языке C++. Яз...

Перевод интернета вещей на российское оборудование отложен Один из двух российских производителей базовых станций LPWAN — компания «Стриж» В ноябре 2018 года Государственная комиссия по радиочастотам (ГКРЧ) подготовила проект решения, которое требует использовать для интернета вещей базовые станции LPWAN только российского произв...

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

Появились изображения мини-ПК NUC Frost Canyon Лишь вчера появилась информация о конфигурациях и ценах NUC Frost Canyon, которые скоро представит компания Intel, а сегодня источник опубликовал изображения этих мини-ПК. Напомним, покупателям будут предложены готовые системы и базовые комплекты без ОЗУ и накопител...

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

[Перевод] Питон, пожирающий мир: как побочный проект одного разработчика стал популярнейшим языком программирования Разочаровавшись в недостатках существовавших языков программирования, Гвидо Ван Россум создал язык Python. Сейчас этот язык используют миллионы людей, и Ник Хит беседует с ван Россумом о прошлом и будущем языка. Гвидо Ван Россум в штаб-квартире Dropbox в 2014 году В конце ...

Сыграй в IT-Alias с инженерами Badoo IT-Alias — уникальный вариант классической настолки, игра на взаимопонимание и проверку технического словарного запаса. Её сделали инженеры Badoo, чтобы играть с участниками конференций и наших митапов. А сегодня мы хотим сыграть в IT-Alias с читателями Хабра — и подарить ...

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

[Из песочницы] Мой подход к реализации делегатов в C++: вызов функции с неизвестными параметрами во время выполнения Предыстория Мне нравится язык C++. Я бы даже сказал, что это мой любимый язык. Кроме того, для своих разработок я использую технологии .NET, и многие идеи в нём, по моему мнению, просто восхитительны. Однажды мне пришла в голову идея – как реализовать некоторые средства рефл...

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

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

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

[Из песочницы] Инкапсуляция в Python 3 Определение Значение термина «инкапсуляция» расплывчато и отличается от источника к источнику. Принято считать, что инкапсуляция — один из основополагающих принципов ООП, хотя некоторые научные статьи вовсе упускают инкапсуляцию из списка. К примеру, Джон Митчелл в книге «К...

[Перевод] Обмен данными между React-компонентами с использованием библиотеки RxJS Перед вами перевод статьи Chidume Nnamdi, опубликованной на blog.bitsrc.io. Перевод публикуется с разрешения автора. Появление библиотеки RxJS открыло массу новых возможностей в мире JS. Цель RxJS — достигать многого, используя небольшое количество кода. Прочитав эту стат...

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

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

[recovery mode] Что такое Cordentity? [Перевод статьи] Cordentity — это приложение Corda (CorDapp) позволяющее использовать возможности технологии Self Sovereign Identity (SSI) другим CorDapps. Другими словами, Cordentity = Corda + Identity. Мы рады объявить, что теперь Cordentity является проектом Hyperledger Labs с открытым и...

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

[Перевод] Jetpack Compose Jetpack Compose это отдельный набор инструментов разработанный для упрощения разработки UI. Он соединяет модель реактивного программирования с лакончностью и лёгкостью использования языка программирования Kotlin ПРИМЕЧАНИЕ: Jetpack Compose в настоящее время находится в ст...

Инструменты для запуска и разработки Java приложений, компиляция, выполнение на JVM Ни для кого не секрет, что на данный момент Java — один из самых популярных языков программирования в мире. Дата официального выпуска Java — 23 мая 1995 года. Эта статья посвящена основам основ: в ней изложены базовые особенности языка, которые придутся кстати начинающим “д...

Kotlin Native: следите за файлами Когда вы пишите command line утилиту, последнее, на что вам хочется полагаться, так это на то, что на компьютере где она будет запущена установлен JVM, Ruby или Python. Так же хотелось бы на выходе иметь один бинарный файл, который будет легко запустить. И не возиться слишко...

[Из песочницы] Использование верилятора как средства быстрого моделирования RTL проектов. Введение в UVM В данной статье будут описаны установка и применение бесплатного ПО для моделирования схем цифровой логики на языке Verilog как альтернативы коммерческих продуктов Incisve от компании Cadense и ModelSim от компании MentorGraphics. Сравнение моделирования в ModelSim и Verilat...

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

Обфускация Mimikatz Дешево и сердито обходим Windows Defender Всем привет. Сегодня рассмотрим вариант запуска mimikatz на Windows 10. Mimikatz — инструмент, реализующий функционал Windows Credentials Editor и позволяющий извлечь аутентификационные данные залогинившегося в системе пользователя ...

Apple подробно рассказала о защите пользователей На сайте Apple.com появился раздел «Конфиден­циальность» на русском языке с пояснениями основополагающих принципов в подходе компании к защите пользователей.

[Из песочницы] Хэш таблицы в Go. Детали реализации Порассуждаем об имплементации map в языке без дженериков, рассмотрим что такое хэш таблица, как она устроена в Go, какие есть плюсы и минусы данной реализации и на что стоит обратить внимание при использовании данной структуры. Детали под катом. Читать дальше →

Ещё один способ отстрелить себе ногу, используя std::thread Стандарт C++11 принёс в язык стандартный механизм поддержки тредов (их часто называют потоками, но это создаёт путаницу с термином streams, так что я буду использовать оригинальный англоязычный термин в русской транскрипции). Однако, как и любой механизм в C++, этот несёт в ...

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

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

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

F#3: Форматирование текста При работе с любым языком вам, скорее всего, нужно будет отформатировать текст, и F# ничем не отличается. Поскольку F# является языком .NET, мы всегда можем использовать Console.WriteLine (..) и String.Format (..), где мы можем использовать любой из обычных форматеров, кото...

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

Инженеры из MIT создали революционный микрочип Группой инженеров из MIT и Analog Devices была разработана самая сложная конструкция микросхемы, в основе которой кремниевые транзисторы из углеродных нанотрубок. Новый чип был изготовлен с использованием современных технологий. Подробнее об этом читайте на THG.ru.

Nullable Reference типы в C# 8.0 и статический анализ Не секрет, что Microsoft достаточно давно работает над выпуском восьмой версии C#. В недавно состоявшемся релизе Visual Studio 2019 новая версия языка (C# 8.0) уже доступна, но пока ещё только в качестве beta релиза. В планах этой новой версии есть несколько возможностей, р...

Python vs. Scala для Apache Spark — ожидаемый benchmark с неожиданным результатом Apache Spark на сегодняшний день является, пожалуй, наиболее популярной платформой для анализа данных большого объема. Немалый вклад в её популярность вносит и возможность использования из-под Python. При этом все сходятся на том, что в рамках стандартного API производитель...

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

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

[Перевод] Семь лет работы разработчиком: какие уроки я извлёк Время летит, правда? Моя карьера началась в 2012 году, с первой стажировки по C++. Честно говоря, я понятия не имел, что делаю (на самом деле, ничего не изменилось). Однако я извлёк несколько уроков. Отказ от ответственности: в этом сообщении не будет никакого кода. Вопр...

[Перевод] Работа с часовыми поясами в JavaScript Недавно я работал над задачей добавления часовых поясов в JS-библиотеку календаря, которую ведёт моя команда. Мне было хорошо известно о никудышной поддержке часовых поясов в JavaScript, но я надеялся, что абстрагирование имеющихся объектов данных позволит легко решить бол...

Исправляем паттерн проектирования — Singleton в PHP Недавно я писал о том, как сломать паттерн проектирования — Singleton в PHP. После написания статьи я искал новый вариант реализации паттерна: есть ли способ создать Singleton в PHP, не давая возможности создавать новые экзепляры класса с помощью Closure::bind()? Читать даль...

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

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

Lazarus — пишем компонент для анимации спрайтов Вместо предисловия В одесской школе ученики 8-го класса на уроках информатики используют бесплатную кроссплатформенную среду разработки Lazarus (официальный сайт: www.lazarus-ide.org), внешне и внутренне очень напоминающую любимый многими Delphi, использующую версию Object P...

[Из песочницы] Асинхронный PHP и история одного велосипеда После выхода PHP7 появилась возможность сравнительно небольшой ценой писать долгоживущие приложения. Для программистов стали доступны такие проекты, как prooph, broadway, tactician, messenger, авторы которых берут на себя решение наиболее частых проблем. Но что если сделать ...

Расставляем стандартные ячейки (заметки постороннего) Натолкнувшись на статью “Уничтожим монополию …”, автор, как человек пусть от EDA очень далёкий, но от природы любознательный, не поленился пройтись по ссылкам и невольно поймал себя на мысли, что одно из основных технических решений — использование рядов стандартных ячеек (...

[Из песочницы] Тестирование API с использованием Postman и Excel Всем привет, я руководитель отдела тестирования, и недавно по работе появилась задача на тестирование API. Для ее решения освоил новый для меня инструмент Postman и JavaScript. Первоначально на каждый API я писал свои коллекции и готовил тестовые данные в JSON формате. Это ...

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

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

[Перевод] (Не очень) скрытые издержки общей кодовой базы iOS и Android До недавнего времени у Dropbox была техническая стратегия использовать общий код C++ для мобильных приложений iOS и Android. Идея понятна: написать код один раз на C++ вместо его дублирования отдельно на Java и Objective C. Мы приняли эту стратегию ещё в 2013 году, когда гру...

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

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

Социальная инженерия с помощью программ Universal Windows Platform (APPX) TL;DR: В APPX-файл Universal Windows Platform можно упаковать обычный exe-файл, который будет запускаться в Windows 10 (сборка 1607 и новее) примерно так же, как обычные exe-файлы. Это можно использовать для атак социальной инженерии, с помощью рассылки через email — почто...

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

[Перевод] Топ 20 навигационных фич в IntelliJ IDEA Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс». И хотя в данном материале речь пойдет преимущественно о Java, материал будет полезен Android-разработчикам Продолжая серию статей, в которых я освещаю основные фичи IntelliJ...

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

Около 50% россиян готовы продавать свои персональные данные По данным Ipsos и Всемирного экономического форума большинство граждан России хотели бы получить возможность запретить компаниям использовать свои персональные данные. Правда, около 50% опрошенных готовы предоставлять персональные данные за вознаграждение, о чем пишет «Комме...

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

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

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

Зачем вам учить Go Источник картинки Go — относительно молодой, но популярный язык программирования. По данным опроса Stack Overflow, именно Golang получил третье место в рейтинге языков программирования, которые хотели бы освоить разработчики. В этой статье мы попробуем разобраться в причина...

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

2. Анализ логов Check Point: SmartEvent Здравствуйте, коллеги. В прошлый раз, в статье «1. Анализ логов Check Point: официальное приложение Check Point для Splunk» мы обсуждали разбор логов шлюза безопасности на основе официального приложения в системе логирования Splunk. В заключении пришли к выводу что хоть пр...

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

[Из песочницы] Какой уровень востребованности PHP разработчиков на 1 квартал 2019 года? На рынке труда программисты PHP являются одними из наиболее востребованных специалистов. За последние 3 года их популярность среди работодателей выросла на более чем на 12%. PHP — самый распространенный язык программирования общего назначения с открытым исходным кодом, многи...

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

[Перевод] Самые быстрые Python веб-фреймворки в 2019 В 2018 году Python укрепил свои позиции популярности среди программистов и вошел в Top 3 самых популярных языков на github. Все больше и больше людей переходит на светлую сторону…то есть Python. Появилось еще большее количество разработчиков, которые интересуются данным яз...

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

Язык Bosque — новый язык программирования от Microsoft Буквально несколько дней назад компания Microsoft представила публике новый язык программирования. Языку дали название Bosque. Главная миссия дизайна языка — лучше быть богатым и здоровым, чем бедным и больным чтобы он был прост и понятен как для человека, так и для компьюте...

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

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

[Перевод] Особенности использования типа данных Symbol в JavaScript Символьные примитивы — это одно из новшеств стандарта ES6, которое принесло в JavaScript некоторые ценные возможности. Символы, представленные типом данных Symbol, особенно полезны при использовании их в качестве идентификаторов свойств объектов. В связи с таким сценарием их...

[Из песочницы] Изучаем STM8S Медленный старт. Часть 0 МК семейства STM8S относительно STM8L/32 имеет меньший арсенал периферии, но позволяет без лишних усложнений разобраться с основами и получить необходимые навыки для работы с его старшими братьями. 0. На кого ориентирован материал, зачем и почему При написании данной стать...

[Из песочницы] Объектно-ориентированное программирование в Java и Python: сходства и отличия Привет, Хабр! Представляю вашему вниманию перевод статьи “Object-Oriented Programming in Python vs Java” автора Джона Финчера. Реализация объектно-ориентированного программирования (ООП) в языках Java и Python отличается. Принцип работы с объектами, типами переменных и прочи...

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

[Перевод] Disposable ref structs в C# 8.0 Давайте посмотрим, что об этом сказано в блоге о предстоящих изменениях в С# 8.0 (версия Visual Studio 2019 Preview 2): «stack-only структуры появились в С# 7.2. Они чрезвычайно полезны, но при этом их использование тесно связано с ограничениями, например невозможностью реа...

[Перевод] Сверхпростое логгирование в Javascript — два декоратора, и готово Вам еще не надоело писать logger.info('ServiceName.methodName.') и logger.info('ServiceName.methodName -> done.') на каждый чих? Может вы, так же как и я, неоднократно задумывались о том, чтобы это дело автоматизировать? В данной статье рассказ пойдет о class-logger, как...

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

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

[Из песочницы] Синтаксический разбор предложения на русском языке В данной статье описывается процесс синтаксического анализа предложения русского языка с использованием контекстно-свободной грамматики и алгоритма LR-анализа. Обработка естественного языка — общее направление искусственного интеллекта и математической лингвистики. Оно изуч...

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

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

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

Bluetooth LE не так уж и страшен, или Как улучшить пользовательский опыт без особых усилий Недавно мы в команде придумали и реализовали функцию передачи денег по воздуху с помощью технологии Bluetooth LE. Я хочу рассказать вам, как мы это сделали и что Apple предоставляет нам из инструментов. Многие разработчики думают что Bluetooth — это сложно, ведь это достаточ...

Слёрм и МегаСлёрм в Москве в конце мая В конце мая Southbridge проводит в Москве очередную серию интенсивов по Kubernetes. Слёрм-4 предназначен тем, кто только знакомится с Kubernetes. Каждый участник создаст собственный кластер и развернет в нем приложение. Даты: 27-29 мая. Очное и онлайн-участие. Цена единая, ...

Подключиться мобильным устройством к базе данных без написания серверного кода Привет, Хабр! Хочу поделиться своим опытом использования Форсайт мобильной платформы. Если у вас встанет задача удалённого хранения данных и при этом не писать собственный сервер, то первое, что придёт на ум это инструмент Firebase Realtime Database. Большинство читающих зн...

Компания Amazon Web Services поддержала проект Rust Компания Amazon Web Services проспонсирует проект Rust, который занимается развитием одноименного языка программирования. Инженеры смогут бесплатно использовать ресурсы облачной платформы, чтобы поставлять компоненты компилятора, создавать загрузочные контейнеры и автоматизи...

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

[Из песочницы] Тестирование настройки sendBeacon для отправки данных При использовании стандартных методов отправки данных в Google Analytics есть вероятность, что система не успеет отправить все события, если процесс был прерван перезагрузкой страницы. В начале этого года вышло несколько публикаций о том, как улучшить целостность собираемых ...

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

Книга «Знакомство с PyTorch: глубокое обучение при обработке естественного языка» Привет, Хаброжители! Обработка текстов на естественном языке (Natural Language Processing, NLP) — крайне важная задача в области искусственного интеллекта. Успешная реализация делает возможными такие продукты, как Alexa от Amazon и Google Translate. Эта книга поможет вам из...

GOSTIM: P2P F2F E2EE IM за один вечер с ГОСТ-криптографией Будучи разработчиком PyGOST библиотеки (ГОСТовые криптографические примитивы на чистом Python), я нередко получаю вопросы о том как на коленке реализовать простейший безопасный обмен сообщениями. Многие считают прикладную криптографию достаточно простой штукой, и .encrypt() ...

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

Управление Raspberry через websockets Raspberry Pi снискали огромную популярность по всему миру. Однако многие из любителей-разработчиков сталкиваются с проблемой доступа к устройству из интернета. Как правило приходится необходимо колдовать с DDNS или докупать статический IP адрес. Оба варианта предполагают нас...

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

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

Как создать Python wrapper и не сойти с ума Недавно на Хабре прочитал статью про очень полезный инструмент, и так как я уже давно искал какой-то проект, чтобы начать контрибьютить, решил посмотреть, что там есть на гитхабе и чем можно помочь. Одно из issue было на счет создания обертки (дальше буду использовать wrappe...

Как реализовать контекстные меню (Context Menu) в iOS 13 Всем привет, меня зовут Денис, мы разрабатываем сервис по аналитике подписок iOS-приложений – Apphud. На WWDC 2019 Apple представила новый способ взаимодействия с интерфейсом вашего приложения: контекстные меню. Они выглядят так: В этой статье мы рассмотрим некоторые тонкос...

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

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

Мелкая питонячая радость #1: loguru Сегодня мы обсудим, зачем кому-то понадобилось писать замену стандартному питонячему логеру logging и как этой штукой пользоваться. Читать дальше →

Facebook планирует использовать дроны для увеличения скорости интернета Инженеры Facebook рассматривают возможность использования компактных БПЛА для увеличения скорости интернета.

Использование новых NVMe SSD в качестве загрузочного диска на старых системах с Legacy BIOS (для любой ОС) Короткий мануал — как реализовать поддержку загрузочного NVMe SSD на старых материнских платах с Legacy BIOS и с использованием Clover (для любых ОС). По следам вот этого поста, где на мой взгляд, решение не так изящно и не для всех BIOS & OS. Читать дальше →

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

6 нежданчиков от Джулии Наконец-таки появилось русскоязычное руководство по языку Julia. Там реализовано полноценное введение в язык для тех, у кого мало опыта в программировании (остальным будет полезно для общего развития), так же имеется введение в машинное обучение и куча заданий для закреплен...

[Перевод] Наследование в JavaScript с точки зрения занудного ботаника: Фабрика Конструкторов Это история об одной очень специальной части JavaScript, самого используемого искусственного языка в мире в настоящее время (2019). В статье представлен своего рода философский взгляд на Наследование в JavaScript, и я смею лишь надеяться, что он основан на самом впечатляюще...

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

Язык программирования Ü. Введение, мотивация к созданию, цели Введение С 2016-го года (с перерывами) я разрабатываю собственный язык программирования. Название данного языка — «Ü». Почему Ü? Потому, что хотелось однобуквенного названия, а все буквы из набора A-Z уже заняты. Данная статья имеет задачу ознакомить публику с данным языко...

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

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

Книга «Data mining. Извлечение информации из Facebook, Twitter, LinkedIn, Instagram, GitHub» Привет, Хаброжители! В недрах популярных социальных сетей — Twitter, Facebook, LinkedIn и Instagram — скрыты богатейшие залежи информации. Из этой книги исследователи, аналитики и разработчики узнают, как извлекать эти уникальные данные, используя код на Python, Jupyter Not...

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

GOSINT — open source решение для управления индикаторами компрометации (IoC) Одной из горячих тем в кибербезопасности в последнее время стали SOCи (Security Operations Center), которые не очень удачно переводят на русский язык как «центры мониторинга безопасности», умаляя тем самым одну из важных функций SOC, связанную с реагированием на инциденты ИБ...

Вокруг беты за 260 дней: как мы учились прислушиваться к пользователям Все знают: догфудить собственный продукт (ну, есть корм своей собаки – разрабатывать продукт, который сам же используешь) – это правильный во всех отношениях принцип. Работая над конструктором чатботов Aimylogic, мы в Just AI прекрасно представляли, каким он должен быть, но ...

Кто такие DevOps? На данный момент это чуть ли не самая дорогая позиция на рынке. Суета вокруг "DevOps" инженеров превосходит все мыслимые пределы, а тем хуже с Senior DevOps инженерами. Я работаю руководителем отдела интеграции и автоматизации, угадайте английскую расшифровку — DevOps Manage...

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

Илон Маск предупредил, что с 1 мая цена за полный автопилот (опция Full Self-Driving) для автомобилей Tesla заметно вырастет На днях Tesla включила базовый Autopilot в стандартный набор возможностей всех автомобилей, за исключением самой доступной версии Tesla Model 3 (Standard Range), попутно снизив его цену на $1000. Но кроме базовой функциональности Autopilot, позволяющей автомобилю самостоятел...

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

Надежное программирование в разрезе языков — нубообзор. Часть 1 В очередной раз провозившись два дня на написание и отладку всего четырехсот строк кода системной библиотеки, возникла мысль — “как бы хорошо, если бы программы писались менее болезненным способом”. И в первую очередь, поскольку отладка занимает гораздо больше времени, чем ...

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

Как мы тестировали drag&drop в HTML5 Так или иначе, все сталкивались с ситуациями, когда в банальной обстановке вдруг происходило что-то необычное. Примерно такой случай произошел с нами при тестировании нового приложения на проверенном сто раз окружении. Сюрпризом для нас стало использование некоторых возможно...

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

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

[Перевод] Почему вам стоит использовать язык Ада для программирования вашей системы Язык программирования Ада родился в середине 1970-х, когда министерство обороны США и министерство обороны Британии решили заменить сотни специализированных языков программирования для встроенных вычислительных систем, всё чаще использовавшихся в военных проектах. Язык Ада...

[Перевод] Многопоточность в Node.js: модуль worker_threads 18 января было объявлено о выходе платформы Node.js версии 11.7.0. Среди заметных изменений этой версии можно отметить вывод из разряда экспериментальных модуля worker_threads, который появился в Node.js 10.5.0. Теперь для его использования не нужен флаг --experimental-worke...

Reaktive — мультиплатформенная библиотека для реактивного Kotlin Многие сегодня любят реактивное программирование. В нём масса плюсов: и отсутствие так называемого "callback hell", и встроенный механизм обработки ошибок, и функциональный стиль программирования, который уменьшает вероятность багов. Значительно проще писать многопоточный ...

[Перевод] Введение в юнит-тестирование в Unity Вам любопытно, как работает юнит-тестирование в Unity? Не знаете, что такое юнит-тестирование в целом? Если вы ответили положительно на эти вопросы, то данный туториал будет вам полезен. Из него вы узнаете о юнит-тестировании следующее: Что это такое Его польза Достоинств...

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

Как могли бы выглядеть регистры в 1С при наличии ООП В 1С одним из ключевых элементов системы являются регистры. Этот термин имеет свой аналог в английском языке — ledger. Он первоначально появился в бухгалтерской практике, но со временем его логика начала использоваться и в других сферах. В отличие от 1С, где регистры явля...

[Перевод] Собеседование: Swift. Вопросы и ответы Языку программирования Swift всего четыре года, но он уже становится основным языком разработки для iOS. Развиваясь до версии 5.0, Swift превратился в сложный и мощный язык, отвечающий как объектно-ориентированной, так и функциональной парадигме. И с каждым новым релизом в н...

Новый Chromebook 15 от компании HP Компьютерный бренд HP расширил свою линейку Chromebook выпустив новый продукт, Chromebook 15. HP Chromebook 15 предлагается в двух вариантах хранения - 64 ГБ и 128 ГБ. HP Chromebook 15 поставляется с 15,6-дюймовым сенсорным IPS BrightView WLED-дисплеем с разрешением экра...

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

[Перевод] Представляем .NET 5 6 мая было объявлено, что следующим после .NET Core 3.0 релизом будет .NET 5. Это будет следующий большой релиз в семействе .NET. В будущем останется только один .NET, и вы сможете использовать его для разработки под Windows, Linux, macOS, iOS, Android, tvOS, watchOS, WebAs...

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

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

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

МегаСлёрм для инженеров и архитекторов Kubernetes Через 2 недели стартуют интенсивы по Kubernetes: Слёрм-4 для тех, кто знакомится с k8s и МегаСлёрм для инженеров и архитекторов k8s. На Слёрм-4 остались последние 10 мест в зале. Желающих освоить k8s на базовом уровне хватает. Для Ops, который знакомится с Kubernetes, запу...

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

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

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

Smart IdReader SDK — встраиваем распознавание в проекты на Python и PHP Мы, Smart Engines, продолжаем цикл статей про то, как встроить наши технологии распознавания (паспортов, банковских карт и других) в ваши приложения. Ранее мы уже писали про встраивание на iOS и Android, показывали, как встроить распознавание в Телеграм-бота, а сегодня мы ра...

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

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

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

[Перевод] Разбираем Async/Await в JavaScript на примерах Автор статьи разбирает на примерах Async/Await в JavaScript. В целом, Async/Await — удобный способ написания асинхронного кода. До появления этой возможности подобный код писали с использованием коллбэков и промисов. Автор оригинальной статьи раскрывает преимущества Async...

Создание системы отчетности для 1С:ERP на базе OLAP и Excel Как программистам так и пользователям известно, как долго и сложно создаются отчеты в 1C. Однако, мы можем предложить на рассмотрение не стандартное решение — это загрузка данных в OLAP. OLAP — онлайн аналитическая отчетность для предприятий с возможностью построения таблиц ...

Видеокарта Nvidia GeForce RTX 2060 представлена официально: производительность уровня GeForce GTX 1070 Ti при цене $350 Меньше часа тому назад на официальном мероприятии в рамках выставки CES 2019 компания Nvidia официально представила долгожданную видеокарту GeForce RTX 2060. Новинка стала самой доступной 3D-картой для настольных ПК нового семейства – она оценена в $350 за версию ...

Porsche представила более доступную версию электромобиля Taycan Бренд по выпуску спортивных автомобилей Porsche представил в понедельник Taycan 4S, третью, наиболее дешёвую версию своего электрокара. В сентябре немецкий автопроизводитель продемонстрировал Taycan Turbo S и Taycan Turbo — самые мощные и дорогие версии своего полностью элек...

[Перевод] C# или Java? TypeScript или JavaScript? Классификация языков программирования на основе машинного обучения На GitHub представлено больше 300 языков программирования, начиная с общеизвестных языков, таких как Python, Java, и Javascript, и заканчивая эзотерическими языками, такими как Befunge, известными только малым группам людей. Топ-10 языков программирования, размещенных на Gi...

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

[Из песочницы] Не учите паттерны, учите концепции Добрый день (или вечер, или утро, в зависимости от того, когда выйдет этот пост). Я хочу высказаться о элитарной части программирования, и донести, в общем-то, очевидную мысль до начинающих в back-end(и не только) разработке, попутно используя попытку начать писать на Хабре...

[Перевод] 7 шагов к использованию Room. Пошаговое руководство по миграции приложения на Room Room — это библиотека, которая является частью архитектурных компонентов Android. Она облегчает работу с объектами SQLiteDatabase в приложении, уменьшая объём стандартного кода и проверяя SQL-запросы во время компиляции. У вас уже есть Android-проект, который использует SQL...

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

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

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

[Из песочницы] Лучшие практики React и советы, которые каждый разработчик должен знать. Часть 1 Привет, Хабр! Представляю вашему вниманию перевод статьи «React Best Practices & Tips Every React Developer Should Know Pt.1» автора Alex Devero. React — одна из самых популярных библиотек для построения интерактивных пользовательских интерфейсов. В этой статье я пока...

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

Переключение языка в Android-приложении Есть простой способ реализовать переключение языка в Single-Activity приложении. Стек экранов при этом подходе не сбрасывается, пользователь остается там, где переключил язык. При переходе на предыдущие экраны, они сразу отображаются переведенными. А результат локализации ч...

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

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

Вместо NVLink и SLI. Nvidia реализовала в драйверах режим CFR, позволяющий использовать в играх несколько GPU одновременно У пользователей видеокарт Nvidia скоро появится возможность использования в играх нескольких видеокарт одновременно, причем для этого не потребуется никаких усилий – все реализовано на уровне драйвера. Новый режим уже реализован в драйвере, а включить его можно пр...

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

Основные понятия стандартной библиотеки С++ Данная статья определяет основные понятия стандартной библиотеки С++. Она приводится для того чтобы на неё ссылаться в дальнейшем. Наибольшей частью стандартной библиотеки С++ является библиотека STL (Standard Template Library – Стандартная Библиотека Шаблонов). Библиотека S...

Резюме того парня Друзья, нам с вами несказанно повезло. Тот парень еще не уехал, и я выпросил у него резюме. Не потому, что хочу взять его на работу — не тот я человек. Просто мне кажется, оно стоит того, чтобы быть опубликованным. Хотя бы потому, что в нем 22k букв. Вы еще где-нибудь такой ...

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

[Перевод] Сила дженериков в Swift. Часть 2 Добрый день, друзья. Специально для студентов курса «iOS Разработчик. Продвинутый курс» мы подготовили перевод второй части статьи «Сила дженериков в Swift». Связанные типы, условия where, сабскрипты и прочее… В статье «Сила дженериков в Swift. Часть 1» описывались gene...

Индексаторы в C# под капотом: индексируем лучше Доу-Джонса Доброго времени суток. В данной статье я предлагаю ознакомиться с индексаторами в различных типах. Посмотрим код языка ассемблера для данных индексаторов и характеристики каждой инструкций по ее скорости. Также я предложу несколько очевидных выводов. Но что именно использова...

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

Дайджест новостей из мира PostgreSQL. Выпуск №15 Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL. Новости Главное событие месяца — это, конечно, Feature Freeze. Мартовский коммитфест закрыт. Основной облик версии PostgreSQL 12 определился. Дальше будут доработки и исправления, но не изменения в ...

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

HackerRank: JavaScript обошёл Java в качестве самого популярного языка программирования Платформа HackerRank, объединяющая более 5 млн программистов со всего мира, опубликовала результаты своего ежегодного исследования, посвящённого навыкам разработчиков – Developer Skills Report 2019. В опросе приняли участие более 71 тыс. инженеров по программному обеспечению...

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

Один день из жизни DevOps Накануне запуска курса «DevOps-практики и инструменты» мы провели очередной открытый урок. Вебинар получился весьма содержательным. По сути, это была полуторачасовая практика в режиме нон-стоп: рассмотрели 4 основных инструмента современного DevOps-инженера, каждый из ко...

Блеск и нищета переводной литературы — Лучше вообще не читать, чем такое. Часто ли вы читаете техническую литературу? Именно литературу, а не мануалы на хабре или багрепорты на гитхабе? А когда читаете, на каком языке предпочитаете это делать (если есть возможность выбирать, конечно)? Какую версию предпочтёт...

Знакомство со статическим анализатором PVS-Studio для Java На протяжении многих лет команда PVS-Studio развивает одноименный статический анализатор. На данный момент анализатор представляет собой сложное программное решение и предоставляет возможность анализа таких языков программирования, как C, C++, C# и Java на платформах Windows...

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

Фотогалерея: наушники AKG, созданные специально для Samsung Galaxy Note10 Слухи о том, что компания Samsung сопроводит смартфоны Galaxy Note10 проводными наушниками с разъемом USB-C, подтвердились. Сделано это для минимизации пользовательского дискомфорта, связанного с отсутствием в Galaxy Note10 стандартного разъема для наушников. Как ...

[Перевод] Пять вопросов о проектировании языков программирования Руководящая философия 1. Языки программирования для людей Языки программирования это то, как люди говорят с компьютерами. Компьютер будет рад поговорить на любом языке, который не будет двусмысленным. Причина почему у нас есть высокоуровневые языки — потому что люди не мо...

Эволюция создания веб-приложений на Java История развития построения веб-приложений на языке программирования Java с примерами их использования на временном промежутке от появления спецификации сервлетов до сегодняшнего дня. Читать дальше →

Это надо видеть: 3D-технологии помогли создать «умные» очки для инженеров Первые в мире «умные» защитные очки являются последним словом дизайна и электронной техники. Они начинены сложной электроникой, но при этом настолько легкие и удобные, что их можно носить весь день. Инженеры, операторы и контролеры могут использовать такие очки для трансля...

Обход блокировок РКН используя DNSTap и BGP Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены. В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные "Реви...

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

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

RedmiBook 14 Pro с процессором Intel 10-го поколения Ноутбук RedmiBook 14 Pro был запущен в четверг вместе с Redmi Note 8, Redmi Note 8 Pro и Redmi TV. RedmiBook 14 Pro оснащен процессорами Intel 10-го поколения .Xiaomi выпустила RedmiBook 14 Pro в двух новых цветовых вариантах - сером и розовом. RedmiBook 14 Pro будет предла...

Предварительный обзор Samsung Galaxy S10+. Улучшеная версия флагмана Совсем недавно компания Samsung официально представила свои новые флагманы, которые поразили аудиторию своими возможностями и характеристиками. Мы уже рассказали вам про базовую версию флагмана, теперь пришло время посмотреть на Samsung Galaxy S10+ — это более продвинутый ва...

Инженеры «скрутили» свет в оптоволокне — новая технология ускорит передачу данных в сто раз В октябре журнал Nature Communications опубликовал научную работу инженеров из Австралии, в которой описана технология передачи данных с помощью «скрученного в спираль» света. Под катом обсуждаем принципы работы и перспективы решения. Читать дальше →

Epson EF-100: самый компактный лазерный проектор в мире Компания Epson анонсировала проектор EF-100: утверждается, что на сегодняшний день это самое компактное в мире устройство, использующее лазерную технологию. Габариты новинки составляют всего 210 × 227 × 88 мм. Покупатели смогут выбирать между двумя вариантами цветового испол...

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

Архитектурный шаблон «Итератор» («Iterator») во вселенной «Swift» «Итератор» – один из шаблонов проектирования, которые программисты чаще всего не замечают, потому что его реализация, как правило, встроена непосредственно в стандартные средства языка программирования. Тем не менее, это тоже один из поведенческих шаблонов, описанных в книге...

[Перевод] JavaScript — лучший язык программирования для начинающих. Так это или нет? JavaScript, несмотря на его многочисленные недостатки, возможно, является самым лучшим языком программирования для начинающих разработчиков, и лучшим языком, с которым могут повозиться дети. Шёл 2007 год. Отличное издательство технических книг O’Reilly Media обратилось ко ...

Мониторинг окружающей среды в серверном помещении (Bolid + Zabbix) Наверное самым простым способом для ИТ-специалиста при решении задачи мониторинга окружающей среды в серверном помещении будет использование специализированных контроллеров с выдачей данных по SNMP (например, NetBotz или NetPing). Но для тех кто не боится трудностей и хочет ...

В Galaxy Note10 не будет гнезда 3,5 мм, Samsung компенсирует это новой моделью наушников с портом USB-C Не случайно на многих рендерах смартфонов Galaxy Note10 отсутствовала не только клавиша для запуска голосового помощника Bixby, но и стандартный разъем для наушников.  Как пишет источник, Galaxy Note10 действительно лишены гнезда 3,5 мм, именно по этой причине Sams...

Thermaltake предлагает игровой стол Level 20 RGB Battlestation Gaming Desk за $1200 Компания Thermaltake представила стол для геймеров с многоречивым названием Level 20 RGB Battlestation Gaming Desk. Инженеры Thermaltake реализовали возможность электрической регулировки высоты стола с памятью для четырех позиций и отображением текущего положения. Площадь...

Напиши свою песню за 10 минут (модуль textgenrnn Python3) Сегодня попробуем обучить свою собственную нейронную сеть, чтобы писала текст для песен. Обучающей выборкой будут тексты группы "Руки Вверх". Ничто не мешает чтобы поменять данные на тексты своих любимых групп. Для извлечения данных с веб-сайтов используем Python3 (модуль B...

[Перевод] Пишем кастомный трансформер AST на TypeScript Команда TestMace снова с вами. На этот раз мы публикуем перевод статьи о преобразовании кода TypeScript, используя возможности компилятора. Приятного чтения! Введение Это мой первый пост, и в нём мне бы хотелось показать решение одной задачи с помощью API компилятора TypeScr...

[Из песочницы] Пишем блог на микросервисах – часть 2 «API Gateway» В первой части нашего цикла статей «Пишем блог на микросервисах» мы описали общий подход к решению задачи. Теперь пришла очередь API Gateway или API GW. В нашем c ptimofeev API GW мы реализуем следующие функции: Конвертация REST запросов в gRPC запросы и наоборот. Логир...

DataArt примет открытую лекцию Андрея Терехова, завкафедрой системного программирования Матмеха СПбГУ 5 декабря — это будет четверг — в центре разработки DataArt в Санкт-Петербурге пройдет лекция доктора физмат наук, профессора, члена правления РУСОФТ Андрея Николаевича Терехова. Он расскажет о самых популярных советских ЭВМ, о работе над транслятором языка Алгол-68 для ни...

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

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

«Скользкие» места C++17 В последние годы C++ шагает вперед семимильными шагами, и угнаться за всеми тонкостями и хитросплетениями языка бывает весьма и весьма непросто. Уже не за горами новый стандарт, однако внедрение свежих веяний — процесс не самый быстрый и простой, поэтому, пока есть немного...

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

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

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

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

Как писать полиморфические программы c помощью Arrow Привет, Хабр! Меня зовут Артём Добровинский, я работаю в компании Finch. Предлагаю к прочтению статью одного из отцов библиотеки функционального программирования Arrow о том, как писать полиморфические программы. Часто люди, которые только начинают писать в функциональном...

5 способов полезного использования Raspberry Pi Привет Хабр. Raspberry Pi наверное есть дома почти у каждого, и рискну предположить, что у многих она валяется без дела. А ведь Raspberry это не только ценный мех, но и вполне мощный fanless-компьютер с Linux. Сегодня мы рассмотрим полезные возможности Raspberry Pi, для исп...

История и альтернативы платформы .NET Недавно мне повезло пообщаться с Крисом Бэйконом, который написал DotNetAnywhere (альтернативный вариант .NET Runtime), и я остроумно заметил: … ты, наверное, один из тех немногих, кто создал собственную среду выполнения .NET, и это круто!если исключить тех, кто на зарплате,...

Самые редкие и самые дорогие языки программирования. Часть II Недавно для читателей Habr я провела небольшое исследование языков программирования, таких как Rust, Dart, Erlang, чтобы выяснить, насколько они являются редкими на российском рынке IT. В ответ на мое исследование посыпалось больше количество комментариев и вопросов касате...

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

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

Полный привод в матрицах 4×4 Само умножение нехитрое, элементы строк умножаются на столбцы поэлементно и складываются. Как корректно умножать можно посмотреть здесь Языковая часть написана на Delphi, а для оптимизации код выполнен с применением встроенного 64-х битного ассемблера. Рассматриваются 4 прак...

Виды контекста в JavaScript И снова здраствуйте! Мы уже писали о том, что в конце сентября в OTUS стартует новый поток курса «Fullstack разработчик JavaScript». В преддверии начала занятий продолжаем делиться с вами авторскими статьями, подготовленными специально для студентов курса. Сегодня разберем в...

Вариант клонирования БД для разработки/тестирования Вкратце опишу как организовал клонирование БД (создание нескольких экземпляров БД из одного бэкапа) на текущем проекте. Способ позволяет сэкономить время и место на жестком диске. Ситуация: есть толстая БД (скажем, сотня Гб). Хочется иметь эту базу со всеми данными отдельно...

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

Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 2: оптимизация байт-кода в PHP 7.1 В первой части рассказа по мотивам выступления Дмитрия Стогова из Zend Technologies на HighLoad++ мы разбирались во внутреннем устройстве PHP. Детально и из первых уст узнали, какие изменениях в базовых структурах данных позволили ускорить PHP 7 более чем в два раза. На этом...

Xiaomi выпустила Mint Keyboard с искусственным интеллектом Смартфоны Xiaomi и Redmi поставляются с фирменной оболочкой MIUI, которая устанавливается поверх Android и имеет собственное приложение-клавиатуру. Но Xiaomi решила предложить больше вариантов набора текста и выпустила приложение Mint Keyboard с искусственным интеллектом. Но...

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

Курс «Основы эффективной работы с технологиями Wolfram»: более 13 часов видеолекций, теория и задачи Все документы курса можно скачать здесь. Этот курс я прочел пару лет назад для довольно обширной аудитории. Он содержит очень много информации о том, как устроена система Mathematica, Wolfram Cloud и язык Wolfram Language. Однако, конечно, время не стоит на месте и за по...

Arduino DIY «Демоническая карусель» Всем привет. На данный момент я разработал прототип детского интерактивного тира в виде конструктора, которую я назвал “демоническая карусель”. Задумка была реализовать конструктор в области робототехники. Используя технологию 3D печати и различныx готовых плат, которые мо...

О том, что мы реализовали в EWM благодаря вашим советам Это пост о том, как мы доводим до ума English Word Mania — мобильное приложение, которое помогает обогащать лексический запас при изучении английского языка и превращает этот процесс в соревнование. После предыдущей публикации мы получили ценный фидбек от читателей, который ...

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

Azure Search Если какой-то из ваших проектов использует данные хранящиеся в Ажуровской базе, то вполне возможно, что у вас есть возможность задействовать поиск по данным с помощью Azure search. Совершать поиск можно не только по базам (Azure Cosmos DB, Azure SQL Database, SQL Server hos...

[Перевод] HTML — это и есть веб Что нынче с HTML во фронтенде? В последнее время я разговаривал со многими разработчиками. Похоже, что некоторые даже не разбираются в HTML. В смысле, кое-что они понимают. Они понимают, что такое div и что такое span, и когда всё выглядит хорошо и работает по щелчку, им это...

Xiaomi выпустила клавиатуру Mint с искусственным интеллектом Смартфоны Xiaomi и Redmi поставляются с фирменной оболочкой MIUI, которая устанавливается поверх Android и имеет собственное приложение-клавиатуру. Но Xiaomi решила предложить больше вариантов набора текста и выпустила приложение Mint Keyboard с искусственным интеллектом. Но...

Представлены ноутбуки Lenovo ThinkPad L490 и ThinkPad L590 на базе процессоров Intel Whiskey Lake Ассортимент бизнес-ноутбуков Lenovo пополнился двумя моделями ThinkPad L490 и ThinkPad L590, пришедшим на смену прошлогодним ThinkPad L480 и ThinkPad L580 соответственно. Несмотря на новые индексы, изменений совсем немного. Lenovo ThinkPad L490 Самое главное – эт...

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

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

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

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

Используем пайпы для пивотинга Ни для кого не секрет, что корпоративные IPS становятся все умнее и умнее. Сейчас уже никого не удивишь IPS с SSL-митмом на периметре сети или даже внутри корпоративной сети между сегментами. В то же время, по-мимо всем известных IPS, стали появляться и распространяться разл...

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

ЧПУ в хоббийной мастерской (часть 2) → Первая часть В статье рассмотрим стандартное и нестандартное использование CNC-роутера. Для чего кроме вырезания деревянных картинок можно приспособить такой станок. Осторожно, трафик. Читать дальше →

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

R пакет tidyr и его новые функции pivot_long и pivot_wide Пакет tidyr входит в ядро одной из наиболее популярных библиотек на языке R — tidyverse. Основное назначение пакета — приведение данных к аккуратному виду. На Хабре уже есть публикация посвящённая данному пакету, но датируюется она 2015 годом. А я хочу рассказать, о наиболее...

Представлен ноутбук Xiaomi Mi Notebook Air нового поколения: процессоры Intel Core восьмого поколения, масса около 1кг и цена от $535 Как и предполагалось, сегодня компания Xiaomi представила новое поколение мобильных компьютеров Mi Notebook Air. Новинки поступят в продажу в Китае через два дня, 28 марта, цены стартуют с отметки $535. В такую сумму оценен новый Mi Notebook Air в базовой конфигурации ...

Termux шаг за шагом (Часть 2) В прошлой части мы с вами познакомились с базовыми командами Termux'а, настроили SSH соединение с ПК, научились создавать alias'ы и установили несколько полезных утилит. В этот раз нам предстоит шагнуть еще дальше, мы с вами: узнаем про Termux:API установим Python и nano, а...

Plasma Cash Chain как решение трилеммы масштабируемости в блокчейн Добрый день, уважаемые читатели! Данная статья посвящена Plasma Cash Chain и проливает свет на следующие темы: трилемма масштабируемости и способы ее решения; структуры данных чайлд чейна и их отображение в рутчейне; реализация ввода в рутчейн; реализация вывода из рутче...

Java Native Image: проверка возможности использования Не так давно Oracle выпустил первый релиз проекта GraalVM (https://www.graalvm.org/). Релизу был сразу присвоен номер 19.0.0, видимо, для того чтобы убедить, что проект зрелый и готов к использованию в серьезных приложениях. Одна из частей этого проекта: Substrate VM — фре...

Фотоаппарат на дискетах: 8 интересных фактов о Sony Mavica MVC-FD85 (много картинок) Меня раньше всегда забавляло, что в старой фантастике люди далёкого будущего продолжают пользоваться старыми носителями информации. Космические корабли бороздят просторы далёких галактик, но на Земле и в космосе всё ещё используют дискеты или магнитные ленты. А теперь пре...

В анализаторе все должно быть прекрасно: и функциональность, и интерфейс… Изучаем новый интерфейс Solar appScreener 3.1 Как говаривал Генри Форд, все можно сделать лучше, чем делалось до сих пор. Вот и мы так подумали, когда приступили к работе над версией 3.1 нашего анализатора защищенности приложений. Нам ОООЧЕНЬ хотелось сделать наш продукт не только самым крутым по функциональности: напри...

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

[Перевод] There vs. Their vs. They’re: Как понять, какое слово использовать Омофоны – одна из сложных тем при изучении английского. При использовании таких слов часто допускают ошибки, ведь они звучат одинаково, но различается их значение. На первый взгляд это может показаться удивительным, но одними из наиболее трудных омофонов для не-носителей я...

Повторное использование форм на React Привет! У нас в БКС есть админка и множество форм, но в React-сообществе нет общепринятого метода — как их проектировать для переиспользования. В официальном гайде Facebook’a нет подробной информации о том, как работать с формами в реальных условиях, где нужна валидация и п...

Монолит для сотен версий клиентов: как мы пишем и поддерживаем тесты Всем привет! Я бэкенд-разработчик в серверной команде Badoo. На прошлогодней конференции HighLoad я выступал с докладом, текстовым вариантом которого и хочу поделиться с вами. Этот пост будет наиболее полезен тем, кто самостоятельно пишет тесты для бэкенда и испытывает пр...

[Из песочницы] Матрёшка Си. Слойная система языка программы Попробуем представить химию без Периодической системы Менделеева (1869). Сколько же элементов надо было держать в голове, причём в произвольном порядке… (Тогда — 60.) Для этого достаточно подумать об одном или нескольких сразу языках программирования. Те же чувства, тот же...

[Перевод] Протокол QUIC в деле: как его внедрял Uber, чтобы оптимизировать производительность За протоколом QUIC чрезвычайно интересно наблюдать, поэтому мы любим писать о нем. Но если предыдущие публикации о QUIC носили больше исторический (краеведческий, если хотите) характер и матчасть, то сегодня мы рады опубликовать перевод другого толка – речь пойдет про реальн...

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

[Перевод] ZIO & Cats Effect: удачный союз Cats Effect стал своего рода «Reactive Streams» для функционального Scala-мира, позволив объединить всю разнообразную экосистему библиотек вместе. Многие отличные библиотеки: http4s, fs2, doobie — реализуются только на базе тайп классов из Cats Effect. А библиотеки типа ZIO...

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

Google рассказала, как создавать приложения на Android «Разработка Android-приложений на языке Kotlin» – это бесплатный онлайн-курс, который компания Google разработала совместно с образовательной организацией Udacity для того, чтобы любой желающий мог пройти самостоятельное обучение и постичь азы (и не только) программирования...

Не очередной язык программирования. Часть 3: Физика Третья и заключительная часть серии статей о языке lsFusion (ссылки на первую и вторую части) В ней речь пойдет о физической модели: всем том, что не связано с функционалом системы, а связано с ее разработкой и оптимизацией производительности, когда данных становится слиш...

700 евро – это только начало: опубликованы новые подробности о стоимости смартфона OnePlus 7 Pro Сегодня утром мы уже писали о возможной стоимости смартфона OnePlus 7 Pro – предполагалось, что цена базовой версии составит $745. Что ж, на деле аппарат будет еще дороже. Новые подробности о цене OnePlus 7 Pro опубликовал известный сетевой информатор Ишан Агарвал...

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

[Из песочницы] Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис Для кого Выбор способа обмена. Описание API. Реализация API на стороне 1С. Android. Cтруктура приложения. BroadcastReceiver. Получаем данные ШК на примере АТОЛ Smart.Lite. Реализуем обмен и хранение данных. Используем Retrofit 2, Room, Coroutines. Пользовательский интерфейс...

Supermicro расширяет ассортимент продуктов NVMe с оптимальными параметрами Компания Super Micro Computer, Inc. (SMCI), мировой лидер в сфере корпоративных вычислительных, сетевых решений, хранилищ данных и экологически безопасной обработки данных, представила первую в отрасли линейку серверов и хранилищ данных с поддержкой дисков NVMe по...

Больше статистики сайта в своём маленьком хранилище Анализируя статистику сайта, мы получаем представление о том, что происходит с ним. Результаты мы сопоставляем с другими знаниями о продукте или сервисе и этим улучшаем наш опыт. Когда анализ первых результатов завершён, прошло осмысление иформации и сделаны выводы, начинае...

[Перевод] Dav1d – самый быстрый декодер AV1 теперь в Firefoх по умолчанию Вступление от Voximplant Да, мы не впервые пишем про AV1 – у нас уже был перевод про Chrome 70 с поддержкой кодека, и вот мы снова делимся новостями. В этот раз – слово Nathan Egge, старшему инженеру Mozilla и участнику фонда Xiph.org, который порадовал новостью про дефолтну...

[Перевод] О декораторах в Python Всем привет! Перевод статьи подготовлен для студентов курса «Web-разработчик на Python». Интересно развиваться в данном направлении? Запишитесь на День Открытых Дверей курса и пообщайтесь вживую с преподавателем: онлайн-трансляция 23 июля в 20:00 по мск.! Когда вы упражняли...

Архитектура Digital Workspace на платформе Citrix Cloud Введение Статья описывает возможности и архитектурные особенности облачной платформы Citrix Cloud и набора сервисов Citrix Workspace. Данные решения являются центральным элементом и основой для реализации концепции цифровых рабочих мест (digital workspaсe) от компании Citr...

[Из песочницы] Как создать 2D игру с Python и аркадной библиотекой Привет, Хабр! представляю вашему вниманию перевод статьи How to create a 2D game with Python and the Arcade library автора Paul Vincent Craven Как создать 2D игру с Python и аркадной библиотекой Узнайте, как начать работу с Arcade, простой в использовании библиотеки Python д...

Павел Финкельштейн о Kotlin в production на jug.msk.ru 13 марта 2019 года в офисе компании КРОК прошла очередная встреча сообщества московских Java-разработчиков jug.msk.ru, на которой Паша Финкельштейн рассказал о своём опыте использования языка программирования Kotlin. Читать дальше →

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

[Перевод] RxDart: магические трансформации потоков Добро пожаловать — это третья часть моей серии статей об архитектуре Flutter. Введение Основы Dart Streams RxDart: магические трансформации потоков (этот пост) Основы RxVMS: RxCommand и GetIt RxVMS: Службы и Менеджеры RxVMS: самодостаточные виджеты Аутентификация пользова...

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

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

Инструкция: как тестировать ansible-роли и узнавать о проблемах до продакшена Всем привет! Я работаю DevOps-инженером в сервисе бронирования отелей Ostrovok.ru. В этой статье я хочу рассказать о нашем опыте тестирования ansible-ролей. В Ostrovok.ru в качестве менеджера конфигураций мы используем ansible. Недавно мы пришли к необходимости тестирования ...

В Java может появиться новая сериализация На сайте OpenJDK появился новый исследовательский документ, в котором описывается идея введения в язык новой улучшенной сериализации взамен старой. Сериализация в Java существует с версии 1.1, то есть практически с момента её рождения. С одной стороны, сериализация является...

[Перевод] Что есть и чего нет в Go. Часть 1 Всем привет, в преддверии старта нового потока по курсу «Разработчик Golang» хотим поделиться с вами переводом интересной статьи, в первой части которой разбираются элементы, которые есть в Go. Поехали. Go создавался с оглядкой назад, и его базовая комплектация действител...

Скорость передачи данных портативного SSD Transcend ESD230C, который по габаритам сравним с кредитной картой, достигает 520 МБ/с Компания Transcend представляет портативный твердотельный накопитель ESD230C с интерфейсом USB 3.1 Gen 2 Type-C, который отличается небольшими размерами и очень высокой скоростью передачи данных. Благодаря использованию интерфейса SuperSpeed USB 3.1 Gen 2 и применению ...

Умный дом в контейнерах (ioBroker + Zigbee в Docker) Вступление Некоторое время пользовался несколькими стандартными реле Sonoff, управляющими светом через Google Home Mini. Но в итоге захотелось большего. Стандартного функционала не хватает, решил постепенно делать систему на чем-то более гибком. Выбрал ioBroker. Сначала, как...

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

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

[Перевод] Lombok возвращает величие Java Мы в Grubhub почти во всём бэкенде используем Java. Это проверенный язык, который за последние 20 лет доказал свою скорость и надёжность. Но с годами возраст «старичка» всё-таки начал сказываться. Java — один из самых популярных языков JVM, но не единственный. В последние...

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

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

[Перевод] Posit-арифметика: победа над floating point на его собственном поле. Часть 2 Часть 1 4. Количественное сравнение числовых систем 4.1. Определение десятичной точности Точность обратна ошибке. Если у нас есть пара чисел x и y (ненулевых и одного знака), расстояние между ними в порядках величин составляет десятичных порядков, это та же самая мера, к...

LEGO MINDSTORMS Education EV3 + MicroPython: программируем детский конструктор взрослым языком Привет, Хабр! Мы уже рассказывали о платформе LEGO MINDSTORMS Education EV3. Основные задачи этой платформы — обучение на практических примерах, развитие навыков STEAM и формирование инженерного мышления. В ней можно проводить лабораторные работы по изучению механики и динам...

На какие вопросы по виртуализации вы ожидаете ответ от выпускника? Именно в такой постановке — на какие вопросы по виртуализации вы ожидаете ответ и, желательно, правильный от выпускника. Опыта у него, скорее всего, ещё нет, но базовые вещи… А что каждый подразумевает под этими базовыми вещами, знание которых обязательно? Читать дальше →

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

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

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

Спецификация Lightning Network прошла первый формальный тест на безопасность Первая формальная проверка спецификации сети Lightning Network (LN) на безопасность дала положительные результаты, пишет CoinDesk. В своей работе под названием A Composable Security Treatment of the Lightning Network, участие в которой также приняла компания IOHK, исследоват...

«Яндекс.Телефон» не пользуется спросом Фото: Артём Геодакян/ТАСС Как и предполагали эксперты, завышенная цена 18 000 руб. не позволила первому российскому смартфону стать по-настоящему массовым. Продажи «Яндекс.Телефона» начались 6 декабря 2019 года, но за неполный месяц розничные сети сумели реализовать всего ...

Как подружить стоковый Sonoff c OctoPrint -ом Пост оформлен как замета.     Имеется самый самый простой Sonoff (модель - Basic2). От него питается принтер. И raspberry pi 3b+ с OctoPrint -ом и Telegram ботом. Мне не хотелось менять стоковую прошивку, чтобы не терять возможность управления принтером из любой точки мира г...

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

Confluence для публичной базы знаний: меняем дизайн и настраиваем разделение по языкам У нас есть шесть продуктов, которые используют в России и за рубежом. Это значит, что документация к ним должна быть в одном месте, но разделена по продуктам и языкам. Раньше мы использовали MediaWiki, но со временем она устарела. От платформы мы ожидали так же хорошую вёрс...

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

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

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

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

Intel представила CPU для рабочих станций Xeon W-3200 поколения Cascade Lake Процессоры были представлены одновременно с новыми решениями Apple Mac Pro, в состав которых они, судя по всему, и входят. Фактически новинки являются вариациями серверных процессоров Intel Xeon Cascade Lake SP. На данный момент представлено девять моделей CPU Xeon W с число...

Service Level Agreement: пишем SLA для… других, или заключение SLA с Оператором связи Уверен, что многие хабражители хоть раз в жизни занимались вопросом обеспечения услугами связи для какой нибудь конторы или компании (собственное жилище тоже считается), все мы когда-то, увы не всегда вдумчиво, «подмахивали» договор на услуги связи, надеясь, что все будет хо...

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

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

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

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

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

Цена OnePlus 7 Pro в Китае оказалась намного ниже, чем в Европе Представленный пару дней назад смартфон OnePlus 7 Pro действительно оказался одним из самых интересных флагманов на рынке, однако некоторых может смутить его цена. В США аппарат оценили в 670-750 долларов, а в Европе 710-830 евро в зависимости от версии. Стандартная модель O...

Performance Review и выявление тайного знания (обзор и видео доклада) 26 апреля на конференции KnowledgeConf 2019 прозвучал доклад «Performance Review и выявление тайного знания». Обычно мы рассказываем про технологии, однако, чтобы развиваться как компания, занимаемся далеко не только этим. Данное выступление, посвящённое инженерам и их раз...

Новая CMOS-матрица расширяет возможности съемки движущихся объектов Это перевод-адаптация статьи, опубликованной инженерами Canon в японском журнале по прикладной физике Japanese Journal of Applied Physic. Применение в фототехнике светочувствительных матриц позволило отойти от использования механического затвора и его вариаций. Это дало по...

Знакомство с Python для камрадов переросших «язык A vs. язык B» и другие предрассудки Для всех хабравчан, у которых возникло ощущение дежа-вю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ бы...

[Из песочницы] Записка frontend-архитектора #1. Нельзя просто так взять и использовать Redux Дисклеймер Уважаемый читатель! Если вы не имеете понятия, что такое React и Redux, читать дальше не имеет смысла, дальше технический бред. Я серьезно, понимание к чему эта записка, требует работы с указанными библиотеками — несмотря на то, что я постараюсь писать понятно, эт...

[Перевод] Ленивая загрузка изображений средствами браузера Автор материала, перевод которого мы сегодня публикуем, Эдди Османи из Google, говорит, что уже в Chrome 75 вполне может появиться поддержка нового атрибута элементов <img> и <iframe> loading. Это означает, что данные элементы будут поддерживать стандартные возмо...

Ноутбук Eurocom Sky X4C: съёмная видеокарта, настольные CPU, до четырёх накопителей и цена, которая может перевалить за 17 000 долларов Компания Eurocom пополнила свой ассортимент ноутбуком Sky X4C, который сам производитель называет мобильным суперкомпьютером. У новинки действительно есть отличительные черты, которые делают его необычным. В первую очередь это использование графических ускорителей в фор...

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

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

[Перевод] MVC без C: Что изменит SwiftUI в архитектуре приложений? MVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — Controller. На WWDC19 был представле...

[Перевод] Пишем API на Python (с Flask и RapidAPI) Если вы читаете эту статью, вероятно, вы уже знакомы с возможностями, которые открываются при использовании API (Application Programming Interface). Добавив в свое приложение один из многих открытых API, вы можете расширить функциональность этого приложения либо же допол...

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

Экран смартфона Asus ZenFone 6 разогнали до 75 Гц Практика разгона экрана путем модификации ПО энтузиастами хорошо знакома по моделям Xiaomi, но сейчас руки специалистов добрались до другой модели – Asus ZenFone 6. Установка новой версии ядра под названием Proton повышает кадровую частоту дисплея смартфона до 75 ...

Xiaomi представила Mi Gaming 2019 Компания Xiaomi официально представила новый игровой ноутбук Mi Gaming 2019, который реализован в трех вариантах комплектации. Есть модель с процессором на четыре ядра с 8 гигабайтами оперативной памяти и видеокартой GTX 1660 Ti, есть более мощное решение, которое выдает зам...

Пишем свой язык программирования, часть 4: Представление структур и классов, генерация аллокаторов Доброго времени суток тем, кто решил ознакомиться с моей очередной статьёй. Первым делом выкладываю ссылки на предыдущие части: Часть 1: пишем языковую ВМ Часть 2: промежуточное представление программ Часть 3: Архитектура транслятора. Разбор языковых структур и математиче...

HyperX представила геймерскую клавиатуру HyperX Alloy Origins с механическими переключателями собственной конструкции Компания HyperX в рамках выставки Computex 2019 представила HyperX Alloy Origins — свою первую игровую клавиатуру с механическими переключателями собственной конструкции. Большинство производителей механических клавиатур используют переключатели Cherry MX или Kailh, та...

Биткоин и приватность — как шифропанки реализуют мечту о свободном интернете будущего Они пишут код. Их код открыт для всех и может быть использован бесплатно. Но делают они это не из альтруизма – они знают, что кто-то в этом мире должен писать код и создавать программы, помогающие защищать приватность. Они убеждены, что приватность, в том числе от государств...

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

[Из песочницы] Небольшой бэкдор на Flask или как управлять компьютером в локальной сети Привет, Хабр! Недавно я посмотрел скачанную версию стрима по программированию «Как создать свое веб-приложение на Flask». И решил закрепить свои знания в каком-нибудь проекте. Долго не знал, что написать и мне пришла идея: «А почему бы не сделать мини-бэкдор на Flask?». В ...

Инженер Amazon создал блокирующее устройство с ИИ, которое не пускает в дом кота с уличной добычей Инженер Amazon Бен Хэмм разработал умный блокиратор, который не дает его коту по кличке Метрик приносить внутрь дома пойманных охотничьими лапками и зубками и по факту уже мертвых птиц и крыс. Читать дальше →

[Из песочницы] Как открыть ссылку в Python. Работа с WebBrowser и решение проблемы с Internet Explorer В ходе работы на курсачом для универа столкнулся со стандартным модулем Python — WebBrowser. Через этот модуль я хотел реализовать работу голосового ассистента с дефолтным браузером, но всё пошло не так гладко как ожидалось. Давайте для начала расскажу вам что это за модуль ...

[Перевод] Rust в Microsoft (или cоздание Security Daemon Azure IoT Edge) Примечание от переводчика: Rust относительно молодой язык программирования, и на этом этапе развития всегда интересные опыты практического применения. Известно, что Intel, DropBox, Amazon, Facebook и другие используют Rust для своих проектах. Про применение Rust в проекте ...

Как поморгать 4 светодиодами на CortexM используя С++17, tuple и извращенное воображение Всем доброго здравия! При обучении студентов разработке встроенного программного обеспечения для микроконтроллеров в университете я использую С++ и иногда даю особо интересующимся студентам всякие задачки на определения особо больных на голову одаренных учеников. В очеред...

[Перевод] О [[trivial_abi]] в Clang-е Наконец-то я написал пост про [[trivial_abi]]! Это новая фирменная фича в транке Clang-а, новая по состоянию на февраль 2018. Это вендорское расширение языка C++, это не стандартный C++, она не поддерживается транком GCC, и нет активных предложений WG21 включить её в станда...

Представлен Talos — «современный Linux-дистрибутив для Kubernetes» На днях американский инженер Andrew Rynhard представил интересный проект: компактный дистрибутив Linux, предназначенный специально для запуска Kubernetes-кластеров. Он получил название из древнегреческой мифологии — Talos. Читать дальше →

Представлена короткая видеокарта Manli GeForce GTX 1660 Super Компания Manli пополнила ассортимент видеокарт несколькими вариантами GeForce GTX 1660 Super, основанной на архитектуре NVIDIA Turing. Данный адаптер характеризуется 1408 потоковыми процессорами, 6 ГБ памяти GDDR6 со 192-битной шиной с частотой 14 ГГц, базовой частотой ядра ...

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

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

Inside The JeMalloc. Базовые Структуры Данных: Pairing Heap & Bitmap Tree Тема Аллокаторов частенько всплывает на просторах интернета: действительно, аллокатор — эдакий краеугольный камень, сердце любого приложения. В этой серии постов я хочу в подробностях рассказать о одном весьма занимательном и именитом аллокаторе — JeMalloc, поддерживаемый ...

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

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

DevOpsProdigy KubeGraf v1.1.0 Сегодня мы зарелизили новую версию нашего плагина для мониторинга k8s — grafana.com/grafana/plugins/devopsprodigy-kubegraf-app — о котором писали ранее. Ключевая фича новой версии — возможность аутентификации с помощью bearer-токена. Теперь посредством манифестов (которые м...

Разговорный BERT — учим нейросеть языку соцсетей Одним из главных событий в области компьютерной лингвистики и машинного обучения в 2018 году был выпуск BERT от Google AI, который признан лучшим докладом года по мнению североамериканского отделения Ассоциации компьютерной лингвистики (NACL). В этой статье мы расскажем об э...

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

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

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

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

TDE в Apache Ignite: история major feature в большом open source проекте Многим организациям, в особенности финансовым, приходится иметь дело с различным стандартами безопасности — например, с PCI DSS. Такие сертификации требуют шифрования данных. Прозрачное шифрование данных на диске Transparent Data Encryption реализовано во многих промышленных...

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

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

Cerebras Systems представила компьютер с самым большим в мире процессором 22×22 сантиметра Схема компьютера CS-1 показывает, что большая часть отведена для питания и охлаждения гигантского «процессора-на-пластине» Wafer Scale Engine (WSE). Фото: Cerebras Systems В августе 2019 года компания Cerebras Systems и её производственный партнер TSMC анонсировали крупне...

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

[Перевод] Работа с ошибками в Go 1.13 В последнее десятилетие мы успешно пользовались тем, что Go обрабатывает ошибки как значения. Хотя в стандартной библиотеке была минимальная поддержка ошибок: лишь функции errors.New и fmt.Errorf, которые генерируют ошибку, содержащую только сообщение — встроенный интерфейс...

Julia: функции и структуры-как-функции Несмотря на то, что в языке Julia по замыслу отсутствует «классическое» объектно-ориентированное программирование с классами и методами, язык предоставляет средства абстрагирования, ключевую роль в которых играет система типов и элементы функционального программирования. Рас...

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

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

iPhone XR продолжает доминировать на рынке смартфонов в США Согласно последним данным исследовательской фирмы CIRP, iPhone XR продолжает доминировать на рынке смартфонов США и стал самой продаваемой моделью во втором квартале. Ранее данные Kantar тоже показали, что iPhone XR является самым продаваемым смартфоном в Великобритании. Есл...

От $365. Стала известна стоимость Xiaomi Mi 9 Lite в Европе Следующей новинкой Xiaomi на европейском рынке станет Mi 9 Lite: смартфон должны представить в Испании 16 сентября, после чего он появится и в других странах ЕС. Один из известных инсайдеров уже раскрыл стоимость модели. Информатор не уверен в этих данных на 100%, одна...

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

«Яндекс.Музыка» автоматически установилась на Windows 10 и заменила стандартное приложение для MP3 Приложение «Яндекс.Музыка» теперь устанавливается по умолчанию в операционной системе Windows 10, пишет «Коммерсантъ» со ссылкой на дискуссии в Microsoft Store. Там официальный представитель «Яндекса» объясняет, что приложение всё равно можно удалить с компьютера. Судя по...

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

[Перевод] Десять лет программирования на Erlang Я присоединился к сообществу Erlang около 10 лет назад, посреди первой фазы хайпа. Нам говорили, что Erlang — это будущее конкурентности и параллелизма. Реализовать их на этом языке проще и быстрее всего, и вы ещё получите бесплатную распределённость. В то время будущее каз...

Клиенты Cloudflare получили доступ к HTTP/3 Облачный провайдер Cloudflare, который обеспечивает работу около 10% существующих интернет-ресурсов, открыл для своих клиентов возможность использовать протокол HTTP/3. Владельцы доменов, размещенных на инфраструктуре Cloudflare могут включить соответствующую опцию в панели ...

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

[Из песочницы] Invidious — альтернативный YouTube-фронтенд «Invidious» — это веб-фронтенд (грубо говоря, веб-клиент) для сайта YouTube. Код проекта написан на языке программирования Crystal, использует СУБД PostgreSQL и распространяется под свободной лицензией AGPLv3+. Читать дальше →

Криптографические токены PKCS#11. Графическая утилита «с функцией подписания и добавлением метки времени». Часть 1 В комментариях к статье «Использование механизмов криптографических токенов PKCS#11 в скриптовых языках» читатель kovserg написал: «С нетерпением ждём статью с функцией подписания документа и добавлением метки времени». Еще раньше другой участник хабра pas писал о том, что б...

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

15-дюймовый HP Chromebook оснащен полноразмерной клавиатурой и сенсорным экраном IPS за $ 449 HP официально представила свой первый Chromebook с диагональю 15,6 дюйма. Он поставляется не только с полноразмерной клавиатурой и цифровой панелью, но также с черным сенсорным экраном IPS и 64 ГБ базовой флэш-памяти. Эта модель стоит от $ 449 долларов, но вы можете доп...

[Перевод] Дорожная карта Android-разработчика в 2019 году Всем привет! У нас отличные новости. В этом месяце в Отус стартует базовый курс "Android-разработчик", а также "Специализация Android-разработчик", которая включает в себя целый пакет курсов. В связи с этим делимся с вами полезной статьей, перевод которой приурочен к данным ...

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

Разработка Kubernetes оператора с Operator Framework Как уже говорилось в статье Радар технологий, Lamoda активно двигается в направлении микросервисной архитектуры. Большинство наших сервисов упаковываются с помощью Helm и деплоятся в Kubernetes. Данный подход полностью удовлетворяет наши потребности в 99% случаев. Остается ...

T+ Conf 2019 не за горами 17 июня (понедельник) в офисе Mail.ru Group пройдёт вторая ежегодная конференция Tarantool Conference, или коротко — T+ Conf. Она адресована как новичкам, так и опытным разработчикам и архитекторам в корпоративном секторе. Вас ждут новые доклады и воркшопы по использовани...

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

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

Как использовать цветные метки для писем в приложении Почта на iPhone   Стандартный почтовый клиент на iPhone с каждым годом получает несколько мелких, но очень полезных фишек. Не стала исключением и iOS 13, в которой немного прокачали приложение Почта. Теперь помечать важные письма станет удобнее. Как использовать стандартные метки...

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

Разработка монолитной Unix подобной OS — Куча (4) В предыдущей статье мы с вами реализовали системный журнал ядра. Теперь пришло время реализовать менеджер динамической памяти. Читать дальше →

Анализ кода ROOT — фреймворка для анализа данных научных исследований Пока в Стокгольме проходила 118-я Нобелевская неделя, в офисе разработки статического анализатора кода PVS-Studio готовился обзор кода проекта ROOT, используемого в научных исследованиях для обработки больших данных. Премию за такой код, конечно, не дашь, а вот подробный обз...

Broadcom BCM56880 — коммутатор Ethernet, выпускаемый по нормам 7 нм и программируемый на языке высокого уровня Компания Broadcom на этой неделе представила микросхему StrataXGS Trident 4 BCM56880, в которой реализованы функции коммутатора Ethernet. К ее достоинствам производитель относит большую пропускную способность — от 2,0 до 12,8 Тбит/с, «высочайшую в отрасли ск...

Thor3D объявляет о сотрудничистве с Rhinoceros (McNeel) Производитель 3D-сканеров (Thor3D) и разработчик программного обеспечения Rhinoceros (McNeel) подписали соглашение: теперь, дистрибьюторы Thor3D смогут перепродавать программное обеспечение Rhino в комплекте с 3D-сканером Calibry. Обширный набор инструментов ПО Rhino для...

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

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

Memcached plugin от MySQL: инструкция по осторожному применению Здравствуйте! Меня зовут Максим Матюхин, я PHP-программист Badoo. В своей работе мы активно используем MySQL. Но иногда нам не хватает её производительности, поэтому мы постоянно ищем возможности ускорить её работу. В 2010 году Yoshinori Matsunobu представил NoSQL-плагин ...

[Из песочницы] Видеонаблюдение на orange pi zero — дешево и совсем не сердито Недавно поставил себе задачу реализовать видеонаблюдение со следующими характеристиками: Минимальное энергопотребление Минимальный размер устройства, которое будет принимать видео с камеры (или нескольких камер). С таким небольшим размером, чтобы можно было его, к примеру,...

Как мы внедряли Agile-testing Привет! Меня зовут Алёна Исакова, я ведущий тестировщик в Авито, и я хочу рассказать вам про свой опыт введения Agile-тестирования в команду. Когда я читала доступные на русском языке статьи про Agile-тестирование и ATDD, у меня сложилось впечатление, что я «не модная», «не ...

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

Kotlin как будущее разработки приложений на Android С момента появления версии 1.0 прошло всего несколько лет, а язык приняли на вооружение многие крупные компании и разработчики. Всё благодаря тому, что создателям языка удалось добиться целей, поставленных в начале пути — разработать инструмент, который был бы удобнее и б...

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