Социальные сети Рунета
Вторник, 14 мая 2024

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

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

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

Вычисляем символьные выражения с нечеткими треугольными числами в python Привет, Хабр! Сегодня миниатюрный туториал о том, как сделать разбор строки с математическим выражением и вычислить его используя нечеткие треугольные числа. При соответствующих изменениях кода туториал сгодится для работы и с другими «кастомными» переменными. Требования: ...

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

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

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 2 Библиотека генератора ассемблерного кода для микроконтроллеров AVR Часть 2. Начало работы Как и планировалось, в этой части рассмотрим более подробно особенности программирования с использованием библиотеки NanoRTOS. Те, кто начал чтение с этого поста, могут ознакомиться с о...

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

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

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

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

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

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

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

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

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

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

[Перевод] Ответственный подход к JavaScript-разработке, часть 1 Цифры говорят нам о том, что рост объёмов JavaScript-кода плохо влияет на производительность веб-проектов. Если так будет продолжаться и дальше, то уже очень скоро при загрузке средней страницы будет передаваться как минимум 400 Кб JS-кода. И это — всего лишь объём передавае...

Функция buildargv с помощью Ragel Забавное использование Ragel State Machine Compiler для создания функции разбора строки на int argc, char *argv[]. Все началось с того, что понадобилась функция buildargv, чтобы разбирать строку для последующей передачи в int main (int argc, char *argv[]) { body } Ну ладно п...

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

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

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

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

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

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

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

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

Субъективное видение идеального языка программирования Дальнейший текст — моя точка зрения. Возможно, она позволит кому-то по-новому взглянуть на дизайн языков программирования или увидеть какие-то преимущества и недостатки конкретных фич. Я не буду лезть в частные подробности типа "в языке должна быть конструкция while", а прос...

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

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

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

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

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

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

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

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

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

Искусство парсинга 2 или транслитерация собственной разметки +БОНУС: как включать классы друг в друга в C++ Привет, Хабр! Эта статья — прямое продолжение статьи Искусство парсинга или DOM собственными руками, где мы разобрали HTML-документ и построили на его основе абстрактное синтаксическое дерево (AST) с доступом к любому элементу ч...

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

[Из песочницы] Анализ эмоциональной окраски отзывов с Кинопоиска Вступление Обработка естественного языка (NLP) является популярной и важной областью машинного обучения. В данном хабре я опишу свой первый проект, связанный с анализом эмоциональной окраски кино отзывов, написанный на Python. Задача сентиментного анализа является довольно р...

[Из песочницы] Начинаем FPGA на Python Технология FPGA (ПЛИС) в настоящее время обретает большую популярность. Растёт количество сфер применения: помимо обработки цифровых сигналов, FPGA используются для ускорения машинного обучения, в blockchain технологиях, обработке видео и в IoT. Данная технология имеет од...

C/C++ из Python (CFFI, pybind11) Продолжаем тему как вызывать C/C++ из Python3. Теперь используем библиотеки cffi, pybind11. Способ через ctypes был рассмотрен в предыдущей статье. Читать дальше →

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

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

[Перевод] Как без особенных усилий создать ИИ-расиста Предостерегающий урок. Сделаем классификатор тональности! Анализ тональности (сентимент-анализ) — очень распространённая задача в обработке естественного языка (NLP), и это неудивительно. Для бизнеса важно понимать, какие мнения высказывают люди: положительные или отрицате...

Особенности настройки Palo Alto: SSL VPN Несмотря на все преимущества межсетевых экранов Palo Alto, в рунете не так много материалов по настройке этих устройств, а также текстов, описывающих опыт их внедрения. Мы решили обобщить материалы, накопленные у нас за время работы с оборудованием этого вендора и рассказа...

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

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

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

[Перевод] Визуализация работы PEG парсера В прошлый раз получился простой генератор парсера PEG. Сейчас же я покажу, что на самом деле делает сгенерированный парсер при разборе программы. Я погрузился в ретро-мир ASCII-арта, в частности, библиотеку с именем «curses», которая доступна в стандартной поставке Python дл...

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

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

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

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

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

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

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

Интервью с Иваном Кругловым, Principal Developer в Booking.com: Service Mesh и «нестандартные» инструменты Booking Иван Круглов, Principal Developer в Booking.com, выступал на Слёрм DevOps c темой SRE, а после выступления согласился за чашкой кофе поговорить о Kubernetes, Service Mesh, open source и «нестандартных» решениях в Booking.com Так как тема SRE оказался намного обширнее, то Ива...

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

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

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

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

ИТ-игра «Что? Где? Когда?». Разбор вопросов 29 августа в офисе ManyChat прошел интеллектуальный ИТ-вечер «Что? Где? Когда?». За звание лучших знатоков боролось сразу 10 команд. Мы рады поделиться с вами записью с мероприятия, разбором вопросов, а также некоторыми секретами о следующих встречах. Все подробности скрываю...

Новый режим «никаких замедлений» существенно ускорит браузер Google Chrome Разработчики браузера Google Chrome начали тестировать режим под названием Never-Slow Mode, проще говоря «никаких замедлений». Функция пока недоступна в публичных сборках браузера, но может скоро появиться.  Согласно описанию, это экспериментальный реж...

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

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

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

[Из песочницы] Уведомления о входах на сервер (SSH/TERMINAL) дешево и сердито Приветствую сообщество. Это первая публикация, далеко не профи-администратора, но просто захотелось поделиться короткой и простой наработкой, которая может оказаться полезной для такого же новичка как я сам. Сложилось так, что потребовалось контролировать около 30 VDS-ок на...

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

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

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

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

[Перевод] JavaScript не нужно ничем заменять — другие языки тоже столкнутся с теми же проблемами «Существует только два вида языков: те, на которые жалуются и те, которыми никто не пользуется», — Бьёрн Страуструп, создатель C++ Очень часто слышатся заявления о том, что JavaScript нужно заменить каким-то другим языком. Причиной всегда становится то, что у JavaScript нак...

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

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

5 типовых задач на собеседованиях по JavaScript: разбор и решения От переводчика: опубликовали для вас статью Марии Перна (Maria Antonietta Perna), которая рассказывает о типовых задачах по JavaScript, чаще всего предлагаемых соискателям-разработчикам на собеседованиях. Статья будет полезна, в первую очередь, начинающим программистам. ...

[Из песочницы] Случайные перестановки и случайные разбиения Я много лет читаю курсы по комбинаторике и графам для студентов-математиков и computer scientists (как это по-русски, компьютерных научников?), раньше в Академическом университете, а теперь в СПбГУ. Программа у нас построена так, что эти темы проходят как часть «теоретическо...

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

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

[Из песочницы] Рендеринг 3D графики с помощью OpenGL Введение Рендеринг 3D графики — непростое занятие, но крайне интересное и захватывающее. Эта статья для тех, кто только начинает знакомство с OpenGL или для тех кому интересно, как работают графические конвейеры, и что они из себя представляют. В этой статье не будет точных ...

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

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

Проверка обёртки OpenCvSharp над OpenCV с помощью PVS-Studio OpenCV — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом, знакомая многим разработчикам на C++. Помимо C++, OpenCV также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Так как ...

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

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

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

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

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

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

[Из песочницы] Oracle VM Server for SPARC для чайников (How-to) Небольшой How-to для начинающих работать с ОС Solaris и платформой виртуализации Oracle VM Server for SPARC, ранее известной как Sun Logical Domains. Oracle VM представляет из себя гипервизор XEN, установленный на ОС Solaris. Управлять гипервизором возможно из командной ...

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

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

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

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

[Перевод] Конкурс по программированию на Q#: Microsoft Q# Coding Contest Команда Microsoft Quantum рада анонсировать Q# Coding Contest – зима 2019! В этом конкурсе вы можете проверить свои навыки квантового программирования, решая задачи квантовых вычислений на Q#. Победители получат футболку Microsoft Quantum! Квантовые вычисления — это принципи...

[Перевод] Детальный разбор новых возможностей React 16+, часть 1: общие сведения Сегодня мы представляем вам первую часть перевода этого большого материала. Он посвящён детальному разбору новых возможностей React, которые появились в этой библиотеке начиная с версии 16. Автор этого материала уже 5 лет занимается программированием. В прошлом он был дизайн...

Статистика и мониторинг PHP скриптов в реальном времени. ClickHouse и Grafana идут на помощь к Pinba В этой статье я расскажу как использовать pinba совместно с clickhouse и grafana вместо pinba_engine и pinboard. На php-проекте pinba — пожалуй единственный надёжный способ понять, что происходит с производительностью. Правда обычно pinba внедряется только тогда, когда уже н...

Введение в контекстно-ориентированное программирование на Kotlin Это перевод статьи An introduction to context-oriented programming in Kotlin В этой статье я постараюсь описать новое явление, которое возникло как побочный результат стремительного развития языка Kotlin. Речь идет о новом подходе к проектированию архитектуры приложений и б...

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

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

HolyJS 2019: Разбор задач от компании SEMrush (Часть 2) Это вторая часть разбора задач от нашего стенда на конференции HolyJS, прошедшей в Санкт-Петербурге 24-25 мая. Для большего контекста рекомендуется сначала ознакомиться с первой частью настоящего материала. А если Countdown Expression уже пройден, то добро пожаловать на сл...

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

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

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

Intel oneAPI — один за всех Итак, случилось то, о чем еще с июля месяца говорила компания Intel — вышла бета-версия Intel oneAPI Toolkits, набора инструментов для разработки, с которыми жизнь больше не будет прежней. В состав набора, как и обещалось, вошел компилятор нового языка Data Parallel C++, наб...

Устройство компилятора Swift. Часть 3 Продолжаем изучать компилятор Swift. Эта часть посвящена Swift Intermediate Language. Если вы не видели предыдущие, рекомендую перейти по ссылке и прочитать: Общий обзор компонентов. Разбор исходного файла. Читать дальше →

[Перевод] Разбор задачи с собеседования в Google: синонимичные запросы Это новая статья из разбора задач с собеседований в Google. Когда я там работал, то предлагал кандидатам такие задачи. Потом произошла утечка, и их запретили. Но у медали есть обратная сторона: теперь я могу свободно объяснить решение. Читать дальше →

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

Julia, Градиентный спуск и симплекс метод Продолжаем знакомство с методами многомерной оптимизации. Далее предложена реализация метода наискорейшего спуска с анализом скорости выполнения, а также имплементация метода Нелдера-Мида средствами языка Julia и C++. Читать дальше →

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

Telegraff: Kotlin DSL для Telegram На Хабре тысячи статей про то, как сделать Телеграм бота под разные языки программирования и платформы. Тема далеко не новая. Но Telegraff – лучший фреймворк для реализации Телеграм ботов и я это под катом докажу. А ну-ка

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 5 ← Часть 4. Программирование периферийных устройств и обработка прерываний Библиотека генератора ассемблерного кода для микроконтроллеров AVR Часть 5. Проектирование многопоточных приложений В предыдущих частях статьи мы подробно останавливались на основах программирования с ...

[Перевод] Новости из мира OpenStreetMap № 472 (30.07.2019-05.08.2019) How to carve OSM data into a slade plate – by Harald Hartmann 1 | Foto Harald Hartmann | Map data OpenStreetmap contributors Картографирование Продолжаются дискуссии (в Twitter, в списке рассылки) вокруг онлайн-редактора от Facebook — RapiD'a. Если вы хотите серьезно погр...

Функциональные интерфейсы… в VBA "…те, кто не прочь поглазеть на любителя прилюдно свалять дурака, пусть понаблюдают, как я доказываю, что Java и Visual Basic – близнецы, разлученные при рождении, а С++ им даже не дальний родственник." Брюс Мак-Кинни “Крепкий орешек Visual Basic” Введение Постоянный инте...

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

[Перевод] Рассказ о решении проблемы с производительностью Moment.js Moment.js — это одна из самых популярных JavaScript-библиотек для разбора и форматирования дат. В компании WhereTo используют Node.js, поэтому для них применение этой библиотеки было совершенно естественным ходом. Проблем с серверным использованием Moment.js не ожидалось. В ...

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

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

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

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

[Из песочницы] Рассылка Push-уведомлений с SpringBoot сервера Предисловие Приветствую Вас. Недавно передо мной стала задача — настроить Push-уведомления на сайте. С этим я столкнулся впервые и во много разобраться мне помогла эта статья. В ней же уже есть описание серверной стороны, но, в процессе изучения данной темы я обнаружил более...

Устройство компилятора Swift. Часть 4 Это последняя часть моего обзора компилятора Swift. Я покажу, как можно осуществить генерацию LLVM IR из AST и что выдаёт настоящий фронтенд. Если вы не читали предыдущие части, то переходите по ссылкам: Общий обзор компонентов Разбор исходного файла Swift intermediate lan...

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

[Перевод] Рассказ о том, почему я до сих пор использую jQuery Многие, когда речь заходит о jQuery, говорят так: «Просто пользуйтесь обычным JavaScript. Библиотека jQuery вам не нужна». Что тут сказать? Я не нуждаюсь во многих вещах, но, несмотря на это, хорошо, когда они есть. Так и jQuery. Я в этой библиотеке не нуждаюсь, но её, опред...

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

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

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

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

Badoo Techleads Meetup #5. Непростые ситуации Меня зовут Денис Чернобай, я отвечаю за frontend-разработку в компании Badoo. Три года назад мы впервые собрали сообщество IT-руководителей, чтобы обсудить объединяющие его темы, и продолжаем следить за тем, что волнует коллег по цеху.  Здорово, что тимлиды и CTO делятся ...

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

[Из песочницы] Сравнение популярных CLI-библиотек для Python: click, cement, fire и другие Python — отличный язык для консольных приложений, и это подчёркивает большое количество библиотек для этих задач. Но какие вообще библиотеки существуют? А какую лучше взять? В этом материале сравниваются популярные и не очень инструменты для консольного мира и дана попытка...

Не морочьте мне голову со своим функциональным программированием Адепты функционального программирования любят завлекать новичков обещаниями идеальной выразительности кода, 100% корректностью, лёгкостью поддержки и простотой рефакторинга, а иногда даже пророчат высочайшую производительность. Однако, опытные разработчики знают, что такого ...

Надежное программирование в разрезе языков. Часть 2 — Претенденты Первая часть с функциональными требованиями тут Заявленные как языки программирования с прицелом на надежность. В алфавитном порядке — Active Oberon, Ada, BetterC, IEC 61131-3 ST, Safe-C. Читать дальше →

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

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

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

[Из песочницы] Обзор возможностей Qt Creator 4.10 и QBS 1.14 для программирования микроконтроллеров Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы представить небольшой обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров. Кому эта тема интересна, добро пожатовать по кат. Читат...

Язык программирования P4 P4 — это язык программирования, предназначенный для программирования правил маршрутизации пакетов. В отличие от языка общего назначения, такого как C или Python, P4 — это предметно-ориентированный язык с рядом конструкций, оптимизированных для сетевой маршрутизации. P4 — эт...

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

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

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

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

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

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

WWDC 2019: главное с презентации Keynote по версии роботов В противовес прошлой WWDC, где основной фокус был на быстродействие и небольшие улучшения, сегодня представили все и сразу: новый Mac Pro, новые сервисы и давно желаемые функции для разработчиков. Кто-то говорит, что это лучший WWDC с 2014 года, когда представили новый язы...

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

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

Android: security-новшества Android Q и эксплоит против смартфонов Samsung Для подписчиковСегодня в выпуске: улучшения безопасности Android Q, обновления Android через Google Play, разбор DoS-эксплоита против почти всех смартфонов Samsung, исследование северокорейского клона игры Sim City, программирование интерфейса приложения без XML и головной б...

Геймдизайн в жизнь. Экономика игры (Часть II) Доброго дня! Немного об авторе: меня зовут Мария, гейм дизайнер. Это третья статья из цикла по применению теории геймдизайна в жизни. Ссылки: Первая статья: «Гейм дизайн в жизнь. Пример разбора механики игры» Вторая статья: «Геймдизайн в жизнь. Экономика игры (Часть I)» ...

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

Приглашаем 6 марта на ElixirLangMoscow Meetup #9 6 марта приглашаем вас на ElixirLangMoscow Meetup #9 в московский офис Mail.ru Group. Язык программирования Elixir продолжает развиваться, и мы вместе с сообществом проводим Elixir-митапы. Программа выступлений адаптирована как под активных разработчиков на Elixir, так и п...

Явка провалена: выводим AgentTesla на чистую воду. Часть 1 Недавно в Group-IB обратилась европейская компания-производитель электромонтажного оборудования — ее сотрудник получил по почте подозрительное письмо с вредоносным вложением. Илья Померанцев, специалист по анализу вредоносного кода CERT Group-IB, провел детальный анализ это...

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

[Из песочницы] Vuex — чрезмерное использование геттеров в приложении. Разбор ошибки В этой статье пойдет речь об распространенной ошибке, которую делают большинство начинающих при разработке приложения на Vue + Vuex. Мы поговорим о геттерах (getters) и как их правильно использовать. Также мы рассмотрим вспомогательные функции mapState и mapGetters. Примеча...

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

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

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

Выпуск Rust 1.36.0: Трейт Future, стабилизация alloc и MaybeUninit<T> Представляю вашему вниманию перевод публикации о новой версии всеми любимого языка программирования Rust. Введение Команда по разработке языка программирования Rust рада анонсировать новую версию, 1.36.0. Rust — это язык программирования, позволяющий каждому разрабатывать на...

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

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

Введение в Си. Послание из прошлого столетия ПРЕДИСЛОВИЕ Я несколько раз в своих комментариях ссылался ссылался на книгу Эндрю Таненбаума «Operating Systems Design and Implementation» на ее первое издание и на то, как в ней представлен язык Си. И эти комментарии всегда вызывали интерес. Я решил, что пришло время опубли...

[Из песочницы] Wolfram Function Repository: открытый доступ к платформе для расширений языка Wolfram Привет, Хабр! Представляю вашему вниманию перевод поста Стивена Вольфрама "The Wolfram Function Repository: Launching an Open Platform for Extending the Wolfram Language". Предпосылки состоятельности языка Wolfram Сегодня мы стоим на пороге великих свершений вмест...

Профессиональный лексический анализ на регулярных выражениях Синтаксический анализ текста всегда начинается с лексического анализа или tokenizing-а. Существует простой способ решить эту задачу практически для любого языка с помощью регулярных выражений. Еще одно применение старым добрым regexp-ам. Читать дальше →

Android: чего ожидать от Android Q, что внутри северокорейского смартфона и что такое контекстно ориентированное программирование Для подписчиковСегодня в выпуске: рассказ о решении некоторых проблем безопасности в Android Q, разбор работы новой системы обновления Android APEX, реверс северокорейского смартфона, введение в контекстно ориентированное программирование на Kotlin, а также советы по работе ...

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

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

Функциональное программирование с точки зрения EcmaScript. Чистые функции, лямбды, имутабельность Привет, Хабр! Сегодня мы начнём говорить на очень важную тему — функциональное программирование. Значение ФП в современной веб-разработке трудно переоценить. Архитектура любого крупного современного проекта включает в себя пользовательские библиотеки функций и на собеседов...

HolyJS 2019: Разбор задач от компании SEMrush (Часть 1) На прошедшей 24-25 мая в Санкт-Петербурге очередной конференции для JavaScript-разработчиков HolyJS стенд нашей компании предлагал всем желающим новые задачки. В этот раз их было 3 штуки! Задачи выдавались по очереди, а за решение каждой последующей полагался знак отличия ...

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

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

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

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

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

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

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

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

[Из песочницы] Как с нуля написать приложение? С чего начать новичку? Flutter / Программирование Пол года назад я сама искала такую статью и теперь я очень хочу посоветовать себе в прошлом с чего можно начать. 1. Выбрать тему приложения Не нужно долгих мук выбора, просто начните делать то, что вам пригодилось бы. Лучше что-то простое. Нужно понимать, что мы пока не стр...

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

Как управлять часами? Разбор фронтенд-трека второго чемпионата по программированию Новый хабрапост в серии разборов недавно прошедшего чемпионата. Участникам квалификации, которые выбрали секцию фронтенда, нужно было решить несколько задач очень разной сложности: первая (по нашим ожиданиям) занимала 20 минут, последняя — около часа. Мы проверяли широкий сп...

Flare-On 2019 write-up -0x01 — Intro Данная статья посвящена разбору всех заданий Flare-On 2019 — ежегодного соревнования по реверс-инжинирингу от FireEye. В данных соревнованиях я принимаю участие уже второй раз. В предыдущем году мне удалось попасть на 11-ое место по времени сдачи, решив все з...

Вредонос Sustes обновился и теперь распространяется через уязвимость в Exim (CVE-2019-10149) Вредонос Sustes обновился и теперь распространяется через уязвимость в Exim (CVE-2019-10149). Новая волна криптомайнера Sustes теперь использует для заражений июньскую уязвимость в почтовом сервере Exim. Начиная с 11 августа наши сетевые сенсоры PT Network Attack Discover...

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

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

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

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

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

[Перевод] Пиксельный Lo-fi в Unity Визуальный стиль моей находящейся в разработке игры LAUNDRY GAME (да, это бессовестная реклама) основан на больших чётких пикселях в 3D. Я обожаю 3D в низком разрешении. Мне задавали много вопросов о том, как я это сделал, поэтому я решил написать туториал. Примечание: это...

C++ против C# Всем известно, что нет ничего глупее споров «какой язык лучше». Например, лучше для чего? Разные языки успешны в разных нишах — и бессмысленно делать категоричные выводы, не учитывая это. Но что получится, если обратиться к опытным специалистам, которые сами всё это поним...

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

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

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

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

Microsoft осквернила командную строку: в ней появились вкладки, темы и… эмидзи Шло время, менялись операционные системы и их пользователи, но святая святых Windows – приложение командной строки – оставалось практически неизменным. И вот сегодня традиционный миропорядок рухнул – Microsoft на мероприятии Build 2019, которое в эти д...

Async/await в C#: концепция, внутреннее устройство, полезные приемы Доброго времени суток. В этот раз поговорим на тему, в которой начинал разбираться каждый уважающий себя адепт языка C# — асинхронное программирование с использованием Task или, в простонародье, async/await. Microsoft проделали хорошую работу — ведь для того, чтобы использов...

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

Разбор полетов AirSelfie 2 Не так давно стала доступна новинка — летающая камера AirSelfie 2. Попала она и в мои руки — предлагаю посмотреть небольшой отчет и выводы по этому гаджету. Читать дальше →

Новый спецпроект от ForkLog и æternity «Смена парадигмы: функциональное программирование в блокчейн-разработке» Криптоэнтузиасты, ходлеры, разработчики и даже некоторые экономисты считают, что за блокчейном будущее. Но за чем будущее блокчейна? ForkLog и æternity рассмотрели этот вопрос с точки зрения стилей и языков программирования в новом спецпроекте «Смена парадигмы: функционально...

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

Разработчики назвали самые востребованные языки программирования Самыми популярными языками программирования для освоения в этом году у разработчиков будут Open Source-язык …

[Из песочницы] Кросспостинг постов из Instagram в паблик VK на Python Предисловие Решил выйти на новый рынок сбыта, тем более, целевая аудитория моего интернет-магазина, не имеющая аккаунтов в Instagram, давно интересовалась появлением дубликата в VK. Идея хорошая, но постов на странице сотни, соответственно вручную работать ctrl+c ctrl+v не...

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

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

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

Усложнение C++ неизбежно. И не только C++ Давно хотел написать подобный текст, но все никак не доходили руки. А вот после завершившегося летнего заседания комитета по стандартизации C++ и поднявшегося воя о том, что сложность языка еще больше увеличилась, пришлось таки изыскать время и зафиксировать собственные мысл...

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

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

Пять перспективных языков программирования со светлым будущим (3 года спустя) В 2016-м году я опубликовал перевод статьи про 5 перспективных языков программирования, в которой прогнозировался их рост в ближайшие 2-3 года. Зачастую прогнозы так и остаются прогнозами, без последующего анализа. Но я решил, что это непорядок. И посколько 3 года уже проле...

Секция Backend на DUMP Казань: архитектура облачных приложений, общительные микросервисы, DDD и не только Что делать, если секция Backend на конференции одна, а языков программирования несколько? Получается, либо каждому по докладу, и тогда что делать все остальное время? Либо больше внимания одному-двум языкам, а все остальные не в удел. Кажется, мы нашли выход. В Backend на DU...

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

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

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

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

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

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

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

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

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

Как установить русский язык на iPhone или iPad (iOS) Достаточно часто к нам обращаются новоиспеченные iOS-пользователи, которые по разным причинам стали владельцами iPhone или iPad с языком системы отличным от русского. Надо сказать, что iOS поддерживает огромное количество языков и иногда изменить язык системы не так просто, ...

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

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

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

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

Соревнование по программированию Kotlin Heroes JetBrains начала сотрудничество с Codeforces в продвижении языка Kotlin среди любителей спортивного программирования. Codeforces предоставляет Kotlin-разработчикам платформу, на которой можно посостязаться в алгоритмическом программировании и отточить свое мастерство. Вместе...

PyDERASN: как я написал ASN.1 библиотеку с slots and blobs ASN.1 это стандарт (ISO, ITU-T, ГОСТ) языка описывающего структурированную информацию, а также правил кодирования этой информации. Для меня как программиста это просто ещё один формат сериализации и представления данных, наравне с JSON, XML, XDR и другими. Он крайне распрост...

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

SciPy, оптимизация с условиями SciPy (произносится как сай пай) — это основанный на numpy математический пакет, включающий в себя также библиотеки на C и Fortran. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных, как MATLAB, IDL, Octave, R или SciLab. В это...

Microsoft Store удалил восемь приложений со скриптом для скрытого майнинга Специализирующаяся на кибербезопасности компания Symantec обнаружила в Microsoft Store для Windows восемь приложений со встроенной усовершенствованной версией Coinhive, скрипта для скрытого майнинга криптовалюты Monero. Symantec has found 8 potentially unwanted apps on the @...

[recovery mode] Что мне не нравится в Python Привет, Хабр! Я подумал о том чего мне не хватает в Python, и что мне не нравится. Дисклеймер: это мое субъективное мнение, оно может не совпадать с Вашим. Я с удовольствием программирую на Python, но у любой технологии (языка программирования в частности) есть свои недос...

Протокольно ориентированное программирование, часть 3 Завершающая статья на тему протокольно ориентированного программирования. В этой части мы рассмотрим как переменные обобщенного типа хранятся и копируются и как с ними работает метод dispatch. Читать дальше →

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

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

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

Cron в Linux: история, использование и устройство Классик писал, что счастливые часов не наблюдают. В те дикие времена ещё не было ни программистов, ни Unix, но в наши дни программисты знают твёрдо: вместо них за временем проследит cron. Утилиты командной строки для меня одновременно слабость и рутина. sed, awk, wc, cut и ...

Обзор методов сегментации изображений в библиотеке scikit-image Thresholding Это самый простой способ отделить объекты от фона, выбрав пиксели выше или ниже определенного порога. Это обычно полезно, когда мы собираемся сегментировать объекты по их фону. Вы можете прочитать больше о пороге здесь. Люди, знакомы с фильмом «Терминатор», нав...

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

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

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

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

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

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

Препарируем PHP. Как устроены while, foreach, array_walk и некоторые другие страшные слова Дело было вечером, делать было нечего. Самое время устроить небольшой разбор того, чем изнутри отличаются некоторые способы перебора массивов в PHP. Исходники от master ветки (это сейчас 7.4 с вкраплениями 8) Генератор опкодов от php 7.3.0. Замеры производились на 7.3.6. ...

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

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

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

Верховный суд США рассмотрит иск Oracle к Google Верховный суд США объявил о намерении рассмотреть спор между технологическими гигантами Oracle и Google по делу, способному вылиться в штрафы в миллиарды долларов. Речь идёт о старых разбирательствах, которые тянутся не один год. Ещё в 2010 году Oracle впервые обратилась в с...

Deep (Learning+Random) Forest и разбор статей Продолжаем рассказывать про конференцию по статистике и машинному обучению AISTATS 2019. В этом посте разберем статьи про глубокие модели из ансамблей деревьев, mix регуляризацию для сильно разреженных данных и эффективную по времени аппроксимацию кросс-валидации. Читать да...

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

Обработка системных вызовов посредством LD_PRELOAD с единой точкой входа Делая пере-реализацию QInst на LLVM, я столкнулся с такой проблемой: QEMU в режиме эмуляции одного процесса естественным образом перехватывает все «гостевые» системные вызовы. В итоге плагин инструментации имеет единую точку входа для их предобработки, где можно по номерам S...

Полет в стратосферу. Ломаем Struts через Action-приложение и мастерим Forward Shell Для подписчиковВ этой статье я покажу, как получить рут на виртуалке Stratosphere с CTF-площадки [Hack The Box](https://www.hackthebox.eu/). На этот раз мы повоюем с фреймворком Apache Struts для получения RCE, рассмотрим в действии редко обсуждаемую, но очень полезную конце...

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

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

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

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

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

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

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

Golang: специфические вопросы производительности Язык Go набирает популярность. Настолько уверенно, что появляется все больше конференций, например, GolangConf, а язык входит в десятку самых высокооплачиваемых технологий. Поэтому уже имеет смысл разговаривать о его специфических проблемах, например, производительности. Кро...

Как работает PageRank: реализация на языке R через линейную алгебру и power-метод Привет, хабровчане! Меня зовут Алексей. На этот раз я вещаю с рабочего места в ИТАР-ТАСС. В данном небольшом тексте я познакомлю вас с методом расчета PageRank © (далее буду называть его ПР) на простых, понятных примерах, на языке R. Алгоритм является интеллектуальным дос...

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

Ускорение запуска Julia при помощи PackageCompiler.jl Зайдя на официальный сайт языка программирования Julia, можно увидеть утверждение: "Julia is fast!". Однако, новые пользователи на практике сталкиваются с проблемой медленной загрузки модулей, в особенности графических [1,2]. Диалектически, причиной медленного запуска являет...

Три дзена reactive extensions "Reactive Extensions" — это больше, чем фреймворк. Хотя бы потому, что существует практически идентичная реализация (с поправкой на особенности конкретного языка и соответствующих практик оптимизации) под каждый популярный ЯП. Есенин утверждает, что «большое видится на расст...

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

[Из песочницы] Почему Вы должны попробовать FastAPI? Лого взято из Github репозитория FastAPI FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, основанный на новых возможностях Python 3.6+, таких как: подсказки типов (type-hi...

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

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

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

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

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

Лаборатория хакера: Ч1. LibSSH auth bypass Я начинаю цикл статей, посвященных разбору задач сервиса pentesterlab. К сожалению, у меня нет Про-версии курса, поэтому я ограничен только списком свободных задач. Каждый кейс — система, содержащая уязвимость, которой необходимо воспользоваться для достижения определенной ц...

В Windows появится командная строка со смайлами и ядром Linux Приложение Windows Terminal появится в общем доступе летом и станет единым интерфейсом для взаимодействия пользователя со средами CMD (классическая командная строка), PowerShell (средство автоматизации, включающее в себя командную строку и язык сценариев) и Windows Subsystem...

Работа с API КОМПАС-3D → Урок 15 → Составные строки на основе параграфа В уроке 12 мы познакомились с составными строками и рассмотрели недокументированный способ их создания. В уроке 13 были представлены параграфы. Сегодня мы рассмотрим, как их использовать для создания составных строк. Для начала возьмем строки, включающие в свой состав отклон...

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

Android: обман Face ID, сравнение Java и Kotlin и разбор паттернов MVC, MVI, MVVM Для подписчиковСегодня в выпуске: простой и эффективный способ обмана Face ID, реверс-инжиниринг прошивок IoT-устройств, неожиданные результаты сравнения производительности Java и Kotlin, сравнение паттернов MVC, MVP, MVVM и MVI, советы по использованию Android Studio. А так...

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

Can I haz? Рассматриваем ФП-паттерн Has Привет, Хабр. Сегодня мы рассмотрим такой ФП-паттерн, как Has-класс. Это довольно любопытная штука по нескольким причинам: во-первых, мы лишний раз убедимся, что паттерны в ФП таки есть. Во-вторых, оказывается, что реализацию этого паттерна можно поручить машине, что вылилос...

Автоматизация SQL server в Jenkins: возвращаем результат красиво Снова продолжая тему обустройства Zero Touch PROD под RDS. Будущие DBA не будут иметь возможности подключиться к PROD серверам напрямую, но смогут использовать Jenkins jobs для ограниченного набора операций. DBA запускает job и через некоторое время получает письмо с отчетом...

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

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

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

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

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

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

Apache Tomcat получил важное обновление защиты Разработчики Apache Software Foundation (ASF) обновили сервер приложений Tomcat, чтобы устранить обнаруженный ранее RCE-баг. Брешь CVE-2019-0232 позволяла взломщикам выполнять сторонний код в уязвимых системах и брать их под контроль. В начале марта о проблеме сообщили специ...

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

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

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

Разбор уязвимостей EvilParcel Введение В середине апреля мы опубликовали новость о троянце Android.InfectionAds.1, который эксплуатировал несколько критических уязвимостей в ОС Android. Одна из них — CVE-2017-13156 (также известна как Janus) — позволяет вредоносной программе заражать APK-файлы, не повреж...

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

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

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

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

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

[Из песочницы] Разбор решенных задач с чемпионата по программированию от Яндекса (фронт-энд разработка) 2019 Завершилось мое участие в чемпионате по программированию. Я неплохо прошел квалификацию, решив 4 из 6 задач и шел на 20 месте, поэтому были надежды и в финале попасть топ 20. Но к сожалению не удалось попасть даже в топ-100. После драки кулаками не машут, но я смог решить ещ...

Проблемы пакетной обработки запросов и их решения (часть 2) Это продолжение статьи «Проблемы пакетной обработки запросов и их решения». Рекомендуется сначала ознакомиться с первой частью, так как в ней подробно описана суть задачи и некоторые подходы к ее решению. Здесь же мы рассмотрим другие методы. Читать дальше →

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

[Перевод] Собственная реализация библиотеки ECS На этой неделе я начал работать над своим движком для игры Vagabond и приступил к реализации шаблона entity-component-system. В этой статье я хочу рассказать о своей реализации, которая свободно доступна на GitHub. Но вместо простого комментирования кода я хочу объяснить, ...

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

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

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

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

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

[Перевод] Заложники COBOL и математика. Часть 1 Посмотрим правде в глаза: никто не любит дробные числа — даже компьютеры. Когда речь заходит о языке программирования COBOL — первый вопрос, который всплывает у всех в голове, всегда выглядит так: «Почему человечество всё ещё использует этот язык во множестве жизненно важны...

РНР-безопасность: где и как хранить пароли. Часть 1 Каждый год в мире происходит все больше хакерских атак: от краж кредитных карт до взломов сайтов онлайн-магазинов. Уверены, что ваши скрипты по настоящему защищены? В преддверии старта курса «Backend-разработчик на PHP» наш коллега подготовил интересную публикацию на тему бе...

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

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

Биткоин-биржа KuCoin отберет токены у участников IEO за использование скриптов Криптовалютная биржа KuCoin завершила расследование в отношении пользователей, использовавших скрипты в ходе IEO проекта MultiVAC. Announcement of MultiVAC (MTV) Airdrop Distribution and Scripting User Processing Read more about this news on:https://t.co/mH1BgeYZ3D@MultiVAC_...

Google App Script, Mikrotik, Telegram и VPNBook затеяли сыграть квартет Сегодня в программе: Куда еще можно применить Google Apps Script, если закончились нормальные идеи. Автоматизация работы с VPNBook через цепочку скриптов на разных языках, которые я не знаю. Недо-cURL от Mikrotik. Telegram через одно место, чтобы не оказаться в другом, самко...

[Перевод] Элегантная обработка ошибок в JavaScript с помощью монады Either Давайте немного поговорим о том, как мы обрабатываем ошибки. В JavaScript у нас есть встроенная функция языка для работы с исключениями. Проблемный код мы заключаем в конструкцию try...catch. Это позволяет прописать нормальный путь выполнения в разделе try, а затем разобрать...

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

Julia и нейронные сети: Flux Прошло чуть больше года, с тех пор как MIT объявил о релизе высокопроизводительного языка общего назначения Julia. С тех пор язык набирает популярность: он используется в более чем 1500 университетах (в некоторых преподается в качестве первого ЯП), а области применения охва...

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

Дайджест IT событий марта (часть вторая) Заканчиваем обзор IT мероприятий этого месяца, оказавшегося неожиданно урожайным. Митапы продолжают удерживать лидерские позиции, но на этот раз их ощутимее разбавляют крупные конференции и хакатоны. Среди популярных тем — data science, Интернет вещей и машинное обучение. ...

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

SQL: решение задачи о рабочем времени Здравствуйте, в эфире опять Радио SQL! Сегодня у нас решение задачи, которую мы передавали в нашем предыдущем эфире, и обещали разобрать в следующий раз. И вот этот следующий раз наступил. Задача вызвала живой отклик у гуманоидов галактики Млечный путь (и неудивительно, с их...

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

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

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

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

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

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

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

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

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

13 книг для аналитиков: об анализе и обработке данных, работе на языках R и Python Конспект материала сайта для предпринимателей, маркетологов, программистов и аналитиков Coriers.

Где обучать детей программированию? Ежегодно HeadHunter проводит “Школу программистов”, где обучает студентов и молодых специалистов всем хитростям разработки, а также работе в команде. Помимо языков программирования ребята изучают основы дизайна, тонкости командной разработки. Недавно мы стали обсуждать, ка...

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

Программирование LibreOffice Base В opensource офисных пакетах OpenOffice, LibreOffice есть редко используемая и очень скупо документированная возможность — программирование, которая позволяет быстро разрабатывать приложения, аналогичные, например, приложениям Microsoft Access. Сегодня я сделаю небольшой обз...

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

Дайджест IT событий марта (часть первая) С весной приходит и новый пик активности программистов в нерабочее время — нам снова приходится разбить мартовский обзор на две части. Основу светской жизни в этом месяце составляют небольшие встречи по интересам — языки (Pythpn, Lua, Elixir), веб-рзработка, тестирование. ...

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

Магические трансформации типов данных в Rust: Интринсика mem::transmute<T, U> Введение Язык программирования Rust, невзирая на всеохватывающую идеологию безопасности данных, располагает и небезопасными методиками программирования, ведь порой они могут повышать скорость путём устранения лишних вычислений, а порой это просто жизненная необходимость. Од...

MVCC-3. Версии строк Итак, мы рассмотрели вопросы, связанные с изоляцией, и сделали отступление об организации данных на низком уровне. И наконец добрались до самого интересного — до версий строк. Заголовок Как мы уже говорили, каждая строка может одновременно присутствовать в базе данных в не...

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

bobaoskit — аксессуары, dnssd и WebSocket Таким образом я описал строение системы управляемых программных аксессуаров. Упрощенная модель включает в себя главный процесс(bobaoskit.worker) и скрипты аксессуаров(использующие объекты bobaoskit.sdk и bobaoskit.accessory). От главного процесса идет запрос к аксессуару дл...

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

Топ 10 ошибок в C++ проектах за 2018 год Вот уже три месяца, как 2018 год позади. Для многих он пролетел почти незаметно, но для нас, разработчиков PVS-Studio, он оказался весьма насыщенным. Мы трудились в поте лица, бесстрашно боролись за продвижение статического анализа в массы и искали новые ошибки в открытых пр...

ld -z separate-code Речь в этой статье пойдёт о небольшой security-фиче, добавленной в GNU ld к релизу 2.30 в январе 2018 года. На русском языке это улучшение упоминалось на opennet с такой аннотацией: режим "-z separate-code", повышающий защищённость исполняемых файлов ценой небольшого увели...

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

Podlodka #134: Scala Сейчас довольно часто говорят о том, что мейнстримовые языки программирования все чаще заимствуют концепции из мира функционального программирования, но при этом отдают главенствующую роль парадигме ООП. Этому подвержены как молодые языки, так и языки с долгой историей. Поэт...

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

Решение заданий WorldSkills модуля Network в компетенции «СиСА». Часть 2 — Базовая настройка Продолжаем разбор заданий модуля Network чемпионата WorldSkills в компетенции «Сетевое и системное администрирование». В статье будут рассмотрены следующие задания: На ВСЕХ устройствах создайте виртуальные интерфейсы, подынтерфейсы и интерфейсы типа петля. Назначьте IP-ад...

[Перевод] UDB. Что же это такое? Часть 4. Datapath ALU Как и обещали в прошлый раз, мы начинаем детальный разбор Арифметико-Логического Устройства (Arithmetic and Logic Unit, ALU). Читать дальше →

Microsoft осквернила командную строку: в ней появились вкладки, темы и… эмодзи Шло время, менялись операционные системы и их пользователи, но святая святых Windows – приложение командной строки – оставалось практически неизменным. И вот сегодня традиционный миропорядок рухнул – Microsoft на мероприятии Build 2019, которое в эти дни проходит в Сиэтле (ш...

Беседы о функциональном программировании на C++ Siberia 2019 Всем привет! Недавно в Новосибирске прошла очередная C++ Siberia 2019. На конференции была уютная атмосфера и много хороших докладов. Пользуясь случаем, я побеседовал с двумя нашими докладчиками, которых совсем скоро вы сможете увидеть и в Москве. Иван Чукич — один из разр...

Книга «Swift. Основы разработки приложений под iOS, iPadOS и macOS. 5-е изд. дополненное и переработанное» Привет, Хаброжители! Язык Swift молод, он растет, развивается и изменяется, хотя основные подходы к программированию и разработке уже сформировались. В новом, пятом издании книги была полностью переработана первая часть книги, что делает знакомство с языком Swift более комф...

Sony WH-1000XM3 — лучшие беспроводные наушники? Этим небольшим обзором — да что там говорить, небольшим имхо — я хочу завершить небольшой цикл, предыдущая часть которого находится здесь. На самом деле я уже всё сказал, что хотел, но уважаемый Gordon01 заставил меня съездить к старому знакомому за 900 км от дома (Кирилл,...

«Эмпирические результаты лишь для публикации, реальные мотивы работ — эстетические». Большое интервью с Майклом Скоттом Майкл Скотт — уже 34 года как профессор Computer Science в Рочестерском университетe, а в родном универститете Wisconsin–Madison был деканом в течение пяти лет. Он занимается исследованиям в области параллельного и распределённого программирования и дизайна языков и обучает...

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

Обзор Huawei P30 Pro — флагман на все времена? В обзоре Huawei P30 Pro поговорим про смартфон, на что он способен, чем хуже или лучше конкурентов. А позже, как следует сравним камеры. Так что вооружайтесь едой и напитками по душе, разбор будет плотный и очень детальный!

[Перевод] Программная реализация усилителя класса D Best-404-Error интересуется, можно ли получить результат компиляции длиной менее 512 байт, если исходник написан на языке высокого уровня. Можно, если упростить возлагаемую на прошивку задачу. Программная реализация усилителя класса D позволяет менять его параметры (часто...

Лицензионный ключ для WordPress-темы оказался зловредом Необычный способ скрыть вредоносный скрипт обнаружили специалисты компании Sucuri. Злоумышленники поместили код программы-спамера в фальшивый лицензионный ключ для темы оформления WordPress. Эксперты затрудняются сказать, каким образом файл был доставлен в инфицированную сис...

«Ты узнаешь ее из тысячи...» или классифицируем изображения с веб-камеры в реальном времени с помощью PyTorch Вот бывает же в жизни такое. Сидишь себе не шалишь, никого не трогаешь, починяешь примус, а тут из этого примуса, из телевизора, да и вообще из каждого утюга, до тебя доносится: «нейронные сети, глубокое обучение, искусственный интеллект, цифровая экономика…». Я — человек,...

Экспертную оценку трендам в сфере продвижения компаний и проектов дадут на III Всероссийском форуме PR директоров Как сообщает «Interforums.ru», руководители пресс-служб, PR-директора и специалисты по связям с общественностью получили возможность принять участие в мероприятии PR+ Forum 2019. С 7 по 8 февраля 2019 года в Москве состоится III Всероссийский форум PR директоров, где будут ...

Исключения в Kotlin и их особенности Наша компания уже более двух лет использует Kotlin в продакшене. Лично я с этим языком столкнулся около года назад. Тут есть много тем для разговора, но сегодня поговорим об обработке ошибок, в том числе в функциональном стиле. Расскажу, как это можно делать в Kotlin. (Фо...

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

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

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

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

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

7 главных недостатков Windows 10 Подробный анализ главных недостатков Windows 10, вызывающих недовольство пользователей. Разбор багов, обновлений, телеметрии и огрехов интерфейса. Альтернативные ОС в 2019 году.

5 причин для перехода к 3D-печати металлических изделий Если вы занимаетесь проектированием или изготовлением металлических деталей, то вы уже знаете о некоторых возможностях 3D-печати металлом. Возможно, вы даже уже думали об использовании аддитивных технологий для реализации проекта. Так что вас останавливает? Может быть, вы пы...

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

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

Quick Draw Doodle Recognition: как подружить R, C++ и нейросетки Привет, Хабр! Осенью прошлого года на Kaggle проходил конкурс по классификации нарисованных от руки картинок Quick Draw Doodle Recognition, в котором среди прочих поучаствовала команда R-щиков в составе Артема Клевцова, Филиппа Управителева и Андрея Огурцова. Подробно опи...

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

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

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

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

ShIoTiny: узлы, связи и события или особенности рисования программ Основные тезисы или о чем эта статья Тема статьи — визуальное программирование ПЛК ShIoTiny для умного дома, описанного тут: ShIoTiny: малая автоматизация, интернет вещей или «за полгода до отпуска». Очень кратко рассмотрены такие понятия, как узлы, связи, события, а такж...

[Из песочницы] Пишем telegram бота на python с помощью библиотеки telebot Лирическое отступление Боты сегодня — это многофункциональный инструмент, как для бизнеса, так и для развлечений. Лично я считаю, что за ними будущее. Конечно, прочитав эту статью, вы не сможете создавать большие проекты, но заинтересоваться и начать — вполне. Установка и н...

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

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

Arend – язык с зависимыми типами, основанный на HoTT (часть 1) В данном посте мы поговорим о только что выпущенном JetBrains языке с зависимыми типами Arend. Этот язык разрабатывался JetBrains Research на протяжении последних нескольких лет. И хотя репозитории уже год назад были выложены в открытый доступ на github.com/JetBrains, полноц...

Статистика сайта и своё маленькое хранилище Утилита Webalizer и инструмент Google Analytics помогали мне много лет получать представление о том, что происходит на веб сайтах. Сейчас я понимаю, что они дают очень мало полезной информации. Имея доступ к своему файлу access.log, разобраться со статистикой очень просто и ...

Создание таблиц в дизайн системе Figma и реализация в Storybook (React) В предыдущей статье на тему дизайна таблиц в Фигме мы выяснили, что базовый элемент создания любого data grid — это компонент ячейки, внутри которого спрятано все необходимое для того, чтобы оставаться в одном экземпляре и строить таблицы ячейка-за-ячейкой. Теперь поговори...

Мощный модуль для типизации Vuex Мотивом для написания данной статьи послужила другая статья на тему типизации Vue и, соответственно, Vuex. К моему удивлению я не обнаружил там упоминания модуля, который, по моему мнению, является лучшим в своем роде «типизатором» Vuex. Поиск по Хабру, да и вообще по Рунету...

Мой опыт подключения LPS331AP к Omega Onion2 Доброго времени суток, хабровчане! Небольшое предисловие Намедни я стал счастливым владельцем одного из самых маленьких одноплатников, работающим на LEDE, и первое, что захотелось сделать (после моргания светодиодом) — домашняя метеостанция, к которой можно получить доступ ...

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

Microsoft представила Windows Terminal – новую командную строку для Windows В рамках стартовавшей вчера конференции для разработчиков Build 2019 компания Microsoft представила новое приложение для Windows 10 под названием Windows Terminal, которое объединит в едином интерфейсе командные строки PowerShell и CMD, а также подсистему Windows Subsystem f...

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

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

Schneider Electric залатала баги в приложении ProClima Разработчики Schneider Electric исправили три уязвимости в программе ProClima, предназначенной для проектирования климатических систем в шкафах с электротехническим оборудованием. Эксплуатация багов могла привести к подмене DLL, выполнению несанкционированных операций в гран...

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

[Перевод] Асинхронное программирование – производительность async: понять расходы на async и await Это статья достаточно древняя, но не потерявшая актуальности. Когда разговор заходит об async/await, как правило, появляется ссылка на неё. Перевода на русский найти не смог, решил помочь кто не fluent. Асинхронное программирование долгое время было царством самых опытных р...

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

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

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

[Из песочницы] Разбор неисправных ноутбучных аккумуляторов. Заметки электровелосипедиста Здравствуйте. По роду деятельности более 6 лет занимаюсь ремонтом и сборкой Li-ion аккумуляторных батарей для электровелосипедов. У меня часто оказываются неисправные ноутбучные аккумуляторы, которые отдают мастера по ремонту компьютерной техники за небольшие деньги. Чи...

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

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

Новый скрипт от Brainlabs поможет отследить эффективность разных стратегий биддинга в Google Ads Глава Brainlabs Дэниел Гилберт (Daniel Gilbert) поделился скриптом, который позволяет отслеживать и сравнивать эффективность ряда стратегий назначения ставок в Google Ads. Это решение призвано помочь рекламодателям понять, какие стратегии для них наиболее эффективны, и дать ...

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

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

На что способна ада. Делаем утилиту для определения гипервизора на полузабытом языке Для подписчиковЛучше всего познавать язык на реальном проекте, поэтому, когда я решил поэкспериментировать с адой, я поставил себе реальную и интересную задачу: написать утилиту для детекта работы в гипервизоре. Это само по себе занятно, а новый язык программирования позволи...

PHDays 9: разбор заданий AI CTF Тема безопасности машинного обучения довольно хайповая последнее время и хотелось затронуть именно практическую ее сторону. А тут повод крутой — PHDays, где собираются самые разные специалисты из мира ИБ и есть возможность привлечь внимание к этой теме. В общем-то мы сделал...

Расчёт каннибализации на основе классического A/B-теста и метод bootstrap’а В данной статье рассмотрен метод расчёта каннибализации для мобильного приложения на основе классического A/B-теста. В данном случае рассматриваются и оцениваются целевые действия в рамках процесса реаттрибуции с рекламного источника (Direct, Criteo, AdWords UAC и прочих) по...

Microsoft представила новый язык программирования Он получил название Bosque.

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

[Из песочницы] Анализ языка VKScript: JavaScript, ты ли это? TL;DR VKScript — это не JavaScript. Семантика этого языка кардинально отличается от семантики JavaScript. См. заключение. Читать дальше →

Waves выпустила обновление ноды с поддержкой языка RIDE Блокчейн-экосистема Waves Platform выпустила обновление ноды версии 0.17, благодаря которому в тестовой сети стал доступен язык программирования RIDE для dApps. Об этом журналу ForkLog сообщили представители компании. Одной из характеристик языка является защита разработчико...

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

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

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

[Перевод] Зачем ЯОП? Зачем Racket? Это продолжение статьи «Зачем Racket? Зачем Lisp?», которую я написал примерно через год после того, как открыл для себя Racket. Будучи новичком, я не мог понять дифирамбов, которые со всех сторон сыпались в адрес Lisp. Я не знал, что и думать. Как понимать, что Lisp в конце...

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

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

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

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

Прокси-бот Ngioweb портирован на Linux Злоумышленники взломали тысячи WordPress-сайтов,  создали ботнет и осуществляют проксирование трафика по заказу. Проведенный в Qihoo 360 анализ показал, что в качестве прокси-агента предприимчивые хакеры используют Linux-версию Ngioweb — вредоносной программы, впервые засвет...

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

Maven-путь построения Go проектов Сначала небольшая предыстория. В начале 2010-х, я сделал небольшую утилиту-конвертер для BIN файлов эмулятора БК-0010 в WAV файлы. Утилита была написана на Python с целью максимальной переносимости, работала без проблем и я на какое то время забыл о ней. Но в 2016м появился ...

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

Погружение в свёрточные нейронные сети: передача обучения (transfer learning) Полный курс на русском языке можно найти по этой ссылке. Оригинальный курс на английском доступен по этой ссылке. Читать дальше →

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

Утечка данных покупателей магазинов re:Store, Samsung, Sony Centre, Nike, LEGO и Street Beat На прошлой неделе издание Коммерсантъ сообщило, что «базы клиентов Street Beat и Sony Centre оказались в открытом доступе», но на самом деле все гораздо хуже, чем написано в статье. Подробный технический разбор данной утечки я уже делал у себя в Telegram-канале, поэтому ту...

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

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

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

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

Microsoft решила помочь начинающим кодерам в изучении Python Люди, решившие выучить новый язык программирования, нередко не могут понять, с чего начать. Специально для них Microsoft подготовила небольшой видеокурс по Python для начинающих. Как сообщается, курс состоит из 44 коротких видеоуроков — их длина варьируется от 2 до 12 ...

[Перевод] MetricKit. Анализ производительности iOS приложений Новая игрушка Мы продолжаем знакомится с новым материалом от Apple, представленным на WWDC. На этот раз рассмотрим MetricKit, это абсолютно новый фреймворк, который служит инструментом для мониторинга производительности приложений. Читать дальше →

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

[Из песочницы] Dart vs Node.js: сравниваем производительность на реализациях HTTP сервера Всем доброго времени суток! В этом году с выходом Flutter — фреймворка для кроссплатформенной разработки приложений наметился подъем хайпа по языку Dart. Как и любой перфекционист прокрастинирующий от скуки лентяй я задумался о сравнении производительности серверной реализа...

Распознавание объектов в режиме реального времени на iOS с помощью YOLOv3 Всем привет! В данной статье мы напишем небольшую программу для решения задачи детектирования и распознавания объектов (object detection) в режиме реального времени. Программа будет написана на языке программирования Swift под платформу iOS. Для детектирования объектов буд...

DOU.UA опубликовал рейтинг языков программирования среди украинских IT-специалистов. В лидерах Java, JavaScript, C#, PHP и Python Украинское издание DOU.UA провело опрос среди украинских специалистов, в котором приняло участие более 900 респондентов, 90% из которых проживают в Украине. Полученные данные позволили определить наиболее популярные среди украинских специалистов языки программирования. В это...

«Надежда — плохая стратегия». Интенсив по SRE в Москве, 3-5 февраля Анонсируем первый в России практический курс по SRE: Слёрм SRE. На интенсиве мы будем три дня строить, ломать, чинить и улучшать сайт-агрегатор по продаже билетов в кино. Мы выбрали агрегатор билетов, потому что у него множество сценариев отказа: наплыв посетителей и DDoS-а...

К вопросу о модулях Недавно случайно зашел на сайт фирмы «Амперка» (в стиле «мы пошли искать запчасти для экскаватора и, естественно, оказались на порно сайте») и вспомнил, как я однажды осуществлял нелицеприятный разбор их модуля индикации. Решил посмотреть, как с данным модулем обстоят дела в...

Курс лекций по JavaScript и Node.js в КПИ Товарищи инженеры, как и было обещано в анонсе, половина лекций (а это 51) уже доступны для просмотра на ютюбе и я продолжу их записывать в 2019 году. Часть из нужно будет перезаписать, потому, что в первых лекциях не самый лучший звук и потому, что очень простые темы у мен...

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

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

Искусственный интеллект на примере простой игры. Часть 2 В этот раз выбрана игра «Змейка». Создана библиотека для нейросети на языке Go. Найден принцип обучения, зависимый от «глубины» памяти. Написан сервер для игры между разработчиками. Читать дальше →

Анализ коммитов и pull request'ов в Travis CI, Buddy и AppVeyor с помощью PVS-Studio В анализаторе PVS-Studio для языков С и C++ на Linux и macOS, начиная с версии 7.04, появилась тестовая возможность проверить список указанных файлов. С помощью нового режима можно настроить анализатор для проверки коммитов и pull request'ов. В этой статье будет рассказано,...

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

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

Microsoft создала язык программирования для слабовидящих детей С помощью Code Jumper будут не только знакомить детей с основами программирования, но и давать им необходимые навыки для развития дальнейшей карьеры в ИТ-отрасли.

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 4 ← Часть 3. Косвенная адресация и управление потоком исполнения Библиотека генератора ассемблерного кода для микроконтроллеров AVR Часть 4. Программирование периферийных устройств и обработка прерываний В этой части поста мы, как и обещали, займемся одним из самых востребован...

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

Камера OnePlus 7 Pro оказалась не той, за кого себя выдаёт После презентации OnePlus 7 Pro стало понятно, что китайская компания действительно хорошенько поработала над возможностями камеры в своём новом флагмане. Правда, некоторое время спустя издание Android Police детальнее разобралось в вопросе камер 7 Pro и выяснило, что заявл...

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

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

Luxor Сегодня мы рассмотрим графический пакет для языка Julia, который называется Luxor. Это один из тех инструментов, которые превращают процесс создания векторных изображений в решение логических задачек с сопутствующей бурей эмоций. Осторожно! Под катом 8.5 Мб легковесных карт...

Разбор камеры Oppo Reno Камеры Periscope - это способ обеспечить большие фокусные расстояния в тонком форм-факторе смартфона. Но как они работают? Видео, демонстрирующее разборку камеры Oppo Reno, может пролить свет на это. Модуль перископа имеет размеры всего 23,5 х 11,5 х 5,73 мм. В целом...

[Перевод] Следующие шаги на пути к Go 2 Состояние Мы вовсю работаем над Go 1.13, релиз которого, надеюсь, состоится в начале августа этого года. Это первый релиз, который будет включать в себя изменения конкретно в языке (а не просто незначительные правки спецификации) после длительного моратория на любые такие из...

[Перевод] Что записано в this? Закулисье JavaScript-объектов JavaScript — это мультипарадигменный язык, поддерживающий объектно-ориентированное программирование и динамическую привязку методов — мощную концепцию, которая позволяет структуре JavaScript-кода меняться во время выполнения программы. Это даёт разработчикам серьёзные возмож...

PHP Composer: фиксим зависимости без боли Многие из вас наверняка сталкивались с ситуацией, когда в библиотеке или фреймворке, который вы используете, есть баг или нет необходимой функциональности. Предположим, вы даже не поленились и сформировали pull request. Но примут его далеко не сразу, а следующий релиз продук...

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

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

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

Загадочный Forth. Знакомимся с одним из важнейших языков программирования, о котором мало кто знает Для подписчиковForth применяют в самых разных областях, включая чипсеты PCI и космические аппараты, а Павел Дуров будет использовать схожий язык в смарт-контрактах криптовалюты TON. Не претерпев больших изменений, один из старейших языков программирования позволяет воплотить...

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

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

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

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

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

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

Оцениваем пропускную способность MIMO канала (алгоритм Water-pouring прилагается) Предисловие В лето 2016 от всем известного события вашему покорному слуге в числе группы других студентов удалось побывать на лекциях профессора Мартина Хаардта по тематике MIMO, проводимых им в рамках международной магистерской программы "Communication and Signal Processin...

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

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

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

PhpStorm 2019.3: поддержка PHP 7.4, PSR-12, WSL, MongoDB и многое другое Всем привет! Мы рады представить вам третий мажорный релиз PhpStorm в этом году! Обзор релиза можно посмотреть на странице “What’s new”. А под катом — подробный разбор всех заметных изменений и новых возможностей. Осторожно — очень много картинок. Скачать новую версию мож...

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

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

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

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

Ошибка с миграцией локали ru-RU в Google Chrome и как от нее избавиться Это статья о том, как я боролся с последствиями некорректной миграции «ru-RU» на «ru» в Google Chrome. Это статья для тех, у кого Chrome выглядит примерно так: или, говоря простым языком, упрямо продолжает отображать сайты на русском языке несмотря на то что везде в наст...

Говорят, Haskell — язык для гениев и академиков. Правда? Однажды я разговаривал с основателем израильского стартапа, который разрабатывал скоростную базу данных на GPU. В их стеке были Haskell и C++, и основатель жаловался, как тяжело найти людей в команду. В Москву он прилетал в том числе искать хороших программистов. Я остор...

Анализ производительности ВМ в VMware vSphere. Часть 3: Storage Часть 1. Про CPU Часть 2. Про Memory Сегодня разберем метрики дисковой подсистемы в vSphere. Проблема со стораджем – самая частая причина медленной работы виртуальной машины. Если в случаях с CPU и RAM траблшутинг заканчивается на уровне гипервизора, то при проблемах с ди...

Проверяем инкапсуляцию с помощью Roslyn Что такое Roslyn? Roslyn – это набор компиляторов с открытым исходным кодом и API для анализа кода для языков C# и VisualBasic .NET от Microsoft. Анализатор Roslyn – мощный инструмент для анализа кода, нахождения ошибок и их исправления. Синтаксическое дерево и семантическая...

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

LuaVela: реализация Lua 5.1, основанная на LuaJIT 2.0 Некоторое время назад мы анонсировали публичный релиз и открыли под лицензией MIT исходный код LuaVela – реализации Lua 5.1, основанной на LuaJIT 2.0. Мы начали работать над ним в 2015 году, и к началу 2017 года его использовали в более чем 95% проектов компании. Сейчас хоче...

[Из песочницы] Краткий разбор статьи «DeViSE: A Deep Visual-Semantic Embedding Model» Рассматриваемая статья. Введение Современные распознавательные системы лимитированы классифицировать на относительно не большое количество семантически не связанных между собой классов. Привлечение текстовой информации, даже несвязанной с картинками, позволяет обогатить моде...

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

[Перевод] 6 английских фраз, которые можно использовать при переговорах о зарплате с зарубежными компаниями Тема поиска работы за рубежом довольно популярна на хабре в последние годы. Однако если с профессиональными навыками у отечественных инженеров, как правило, все отлично, то уровень английского языка не всегда на должном уровне. Это может вызывать сложности – например, мало...

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

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

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

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

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

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

[Перевод] Разновидности SIMD Во время разработки meshoptimizer частенько возникает вопрос: «А может этому алгоритму использовать SIMD?» Библиотека ориентирована на производительность, но SIMD не всегда обеспечивает значительные преимущества по скорости. К сожалению, SIMD может сделать код менее перено...

Всё, кроме Kotlin: Андрей Бреслав о гендерном балансе в IT, эмоциях и не только Андрей Бреслав (abreslav) известен прежде всего как человек, возглавляющий работу над языком Kotlin. Но в последнее время он стал выступать с докладами совсем о другом: весной говорил о важности эмоций при работе в IT, а в августе на TechTrain представит доклад «Это выгодн...

Neoquest 2019: «Связь с небесами» Недавно закончился очередной NeoQuest. Под катом разбор третьего задания, относящегося к поиску web-уязвимостей и немножко фишингу. Интересно, как обмануть Telegram бота и заставить его поделиться ключом? Тогда добро пожаловать под кат. Читать дальше →

Quals: Saudi and Oman National Cyber Security CTF 2019. WriteUp Привет, Хабр. 7-9 февраля 2019 года проходил квалификационный этап соревнования на площадке cybertalents, цель — поиск киберталантов для Омана и Саудовской Аравии. Люди из других стран, согласно правилам мероприятия, участвуют вне конкурса. Под катом — разбор определенных з...

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

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

Data and Models Version control in Computer Vision meetup Сообщество ML-REPA приглашает на открытый митап по вопросам воспроизводимости и управлению экспериментами в computer vision, который пройдет 15 августа в офисе Райффайзенбанк в Нагатино. На митапе будем разбираться с особенностями обеспечения воспроизводимости эксперименто...

Huawei P30 Pro плохо поддается ремонту Huawei P30 Pro, новейший флагман этого китайского производителя, только недавно был анонсирован, а умельцы из iFixit уже успели его разобрать до винтика. Это оказалось сложно, так что ремонт этого смартфона, скорее всего, будет довольно дорогим удовольствием. Как и большинс...

[Из песочницы] Изучение комбинаторных парсеров с Rust Привет, Хабр! Представляю вашему вниманию перевод статьи "Learning Parser Combinators With Rust". Эта статья учит основам комбинаторных парсеров людей, которые уже знакомы с Rust. Предполагается, что никаких других знаний не требуется, а всё, что не имеет прямого о...

Magento 2: импорт продуктов прямо в базу В предыдущей статье я описал процесс импорта продуктов в Magento 2 обычным способом — через модели и репозитории. Обычный способ отличается весьма низкой скоростью обработки данных. На моём ноутбуке выходило примерно один продукт в секунду. В данном продолжении я рассматрива...

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

Английский vs. Эсперанто: за кем будущее? За последние 50 лет позиции английского языка на международной арене усилились до невиданного ранее уровня. На сегодня в мире примерно 378 миллионов людей говорят на английском в качестве родного и еще от 470 миллионов до 1 миллиарда указывают его как второй язык. Что приме...

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

Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012 и их влиянии на электронную подпись ГОСТ Р 34.10-2012 В свое время реализация отечественных криптографических алгоритмов в библиотеке libgcrypt очень меня вдохновила. Стало возможным задействовать эти алгоритмы и в Kleopatra и в Kmail и в GnuPg в целом, рассматривать библиотеку libgcrypt как алтернативу openssl с ГОСТ-ым engine...

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

Зловред заражает Android-устройства через рекламные баннеры Вредоносный скрипт, внедренный в платформу для создания анимированной рекламы, заражает устройства на Android и массово собирает системные данные. Об этом сообщили специалисты Media Trust, обнаружившие кампанию в декабре 2018 года. Аналитики отмечают высокий уровень программ...

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

[Перевод] Основы Natural Language Processing для текста Обработка естественного языка сейчас не используются разве что в совсем консервативных отраслях. В большинстве технологических решений распознавание и обработка «человеческих» языков давно внедрена: именно поэтому обычный IVR с жестко заданными опциями ответов постепенно ухо...

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

[Из песочницы] 4 Причины, почему вы должны забыть о Redux в приложениях на React Я работаю с Реактом на протяжении почти 3 лет, использовал как Redux так и MobX и у меня к текущему моменту возник вопрос. Почему абсолютное большинство front-end разработчиков продолжают свято верить в то, что Redux + Redux Saga + Reselect + 100500 других библиотек «облегча...

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

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