Как стать автором
Поиск
Написать публикацию
Обновить
1141.16

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Создание пакета NuGet для библиотеки с платформозависимым API

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров10K

Когда речь заходит о создании .NET библиотеки, части API которой являются платформозависимыми, приходится думать, как всё это оформить в NuGet пакет, да так, чтобы установленная из пакета библиотека работала в разных сценариях (.NET Framework, .NET Core, self-contained app и т.д.). К сожалению, в сети сложно найти инструкцию, которая бы шаг за шагом показывала, как выполнить эту задачу. Данная статья призвана быть такой инструкцией.

Читать далее

И в науку, и в индустрию. Магистерские программы при поддержке JetBrains

Время на прочтение6 мин
Количество просмотров4.9K

Недавно мы писали о бакалаврских программах, на которые советуем абитуриентам обратить внимание. А в этом посте хотим более детально рассказать о магистратурах в Петербурге, которые поддерживает JetBrains:

«Разработка программного обеспечения / Software Engineering» — корпоративная программа JetBrains на базе Университета ИТМО;

«Машинное обучение и анализ данных» в НИУ ВШЭ — Санкт-Петербург;

«Программирование и анализ данных» в НИУ ВШЭ — Санкт-Петербург.

Читать далее

Что под капотом у R-Vision Threat Intelligence Platform?

Время на прочтение10 мин
Количество просмотров3.8K

Привет, Хабр! Меня зовут Александр Зинин, я разработчик платформы управления данными киберразведки R-Vision Threat Intelligence Platform (TIP).

В проекте TIP мы используем актуальный стек технологий: React для фронта, Node.js и TypeScript для не особо нагруженного бэкенда, Rust для тех мест, где важна предсказуемость и скорость. В части БД у нас достаточно стандартный набор: PostgreSQL, Redis, RocksDB, ClickHouse.

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

Читать далее

Apache Pulsar как основа для системы очередей

Время на прочтение13 мин
Количество просмотров23K

Меня зовут Агалецкий Павел, я старший инженер в команде Архитектуры. Эта статья про новую для нас в Авито технологию — Apache Pulsar и построение системы очередей, Queues as a Service, на её основе.

Читать далее

zx – bash скрипты на javascript

Время на прочтение3 мин
Количество просмотров9.7K


Bash широко используется в программировании и является превосходным инструментом, но и у него есть свои недостатки. Поэтому Google разработал пакет zx, который позволяет использовать bash внутри javascript / typescript и имеет около 17к звёзд на github. В данной статье будут рассмотрены плюсы и минусы библиотеки, главные аспекты использования и примеры работы.
Читать дальше →

Декодирование сигнала с видеофона 1988 года выпуска

Время на прочтение4 мин
Количество просмотров5.1K

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

Однажды я увидел на YouTube обзор Sony PCT-15 — это устройство, сделанное в Японии, подключалось к обычной телефонной линии и позволяло не только разговаривать с собеседником, но также отправлять и получать изображения во время разговора. В то время высокоскоростная связь была доступна только для учреждений, военных и правительства, поэтому телефонная линия была единственным возможным способом связи с миром.

Читать далее

Наглядно о том, как работает NumPy

Время на прочтение8 мин
Количество просмотров44K

Есть тексты, похожие на вино или динамит: с годами они не стареют, а напротив приобретают вес и значимость. Сегодня, к старту флагманского курса о Data Science, мы решили поделиться переводом визуального учебного руководства о NumPy 2019 года, прочитав которое даже не слишком близкий к математике человек поймёт, как работает эта библиотека Python. Если вы не хотите долго объяснять NumPy, но делать это всё равно приходится, положите статью в закладки и она сэкономит ваше время.

Читать далее

Андрей Карпати: Bitcoin на Python (часть 1)

Время на прочтение21 мин
Количество просмотров18K
image

Андрей Карпати — директор по искусственному интеллекту и Autopilot Vision в Tesla.

Я считаю, что блокчейн — классная штука, потому что он расширяет open source разработку софта до open source + state. Это кажется интересным нововведением в компьютерных парадигмах; Мы не просто делиться кодом, мы можем предоставить общий доступ к работающему компьютеру, и любой человек в любом месте может использовать его открыто и без разрешения. Семена этой революции, возможно, начались с биткойна, поэтому мне стало любопытно вникнуть в него более подробно, чтобы получить интуитивное понимание того, как он работает. И в духе «то, что я не могу создать, я не понимаю», что может быть лучше, чем реализовать биткойна с нуля?

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

(кстати, если визуальный формат этого поста вас раздражает, посмотрите версию jupyter notebook, у которой идентичный контент).

Шаг 1: создание крипто сущности


Для начала мы хотим создать совершенно новую криптографическую сущность, которая представляет собой всего лишь пару ключей: публичный и приватный. Биткойн использует криптографию на эллиптических кривых (Elliptic-Сurve Сryptography, ECC) вместо чего-то более распространенного, например RSA, для защиты транзакций. Я не собираюсь здесь углубляться в ECC, потому что другие проделали значительно лучшую работу, например, я считаю серию постов в блоге Андреа Корбеллини очень полезным ресурсом. Здесь мы просто напишем код, но чтобы понять, почему он работает математически, вам нужно прочитать эти посты.
Читать дальше →

Интеграция пресетов CMake в Visual Studio и Visual Studio Code

Время на прочтение6 мин
Количество просмотров17K

В CMake 3.19 и 3.20 был зарелижен CMakePresets.json, который позволяет пользователям указывать общие параметры настройки, сборки и тестирования и делиться ими с другими пользователями. Мы добавили поддержку CMakePresets.json в Visual Studio и создали расширение CMake Tools для Visual Studio Code. Теперь вы можете вызывать CMake с CMakePresets.json в Visual Studio, в Visual Studio Code, в конвейере непрерывной интеграции и из терминалов в Windows, Linux и macOS.

Интеграция CMake Presets теперь доступна в Visual Studio 2019 16.10 Preview 2 и CMake Tools 1.7.

Читать далее

Дмитрий Стогов о своём пути и PHP

Время на прочтение8 мин
Количество просмотров7.3K

Дмитрий Стогов из Zend by Perforce уже много лет занимается самым сердцем PHP и знает про него много полезного. В том числе о вопросах, связанных с производительностью.

В своем докладе на конференции PHP Russia 2021 Дмитрий расскажет, как продвигается работа над JIT и какие другие идеи, направленные на повышение производительности, были реализованы в PHP 8.0 и готовятся в PHP 8.1. А уже сегодня можно почитать интервью, в котором я задал эксперту PHP вопросы обо всем понемногу: от его истории до обсуждения современных реалий.

Читать далее

ABBYY NeoML 2.0: Python и многое другое

Время на прочтение11 мин
Количество просмотров5.5K


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

С первой версии в жизни проекта произошло много интересного: мы продолжили разработку на GitHub, освоили Azure DevOps для регулярных сборок, поддержали новые платформы, добавили немало новых и не столь новых, но очень нужных алгоритмов, добавили производительности и — самое главное — сделали для библиотеки Python интерфейс! Собственно, после окончания работ над Python оберткой библиотека и получила номер версии 2.0.

Ниже я подробнее расскажу о том, как это все происходило.
Читать дальше →

Новая версия Visual Studio 2022 Preview 1 стала доступна для установки

Время на прочтение2 мин
Количество просмотров19K

Мы рады сообщить, что первая предварительная версия Visual Studio 2022 стала доступна! Это первый выпуск 64-разрядной Visual Studio, и мы будем рады, если вы скачаете его, попробуете и поделитесь вашими отзывами. Присоединяйтесь!

Под катом подробности о версии!

Читать далее

EDA становится проще, если есть SWEETVIZ

Время на прочтение6 мин
Количество просмотров9.2K

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

Использование библиотеки

Установить библиотеку можно с помощью менеджера пакетов pip следующей командой:

Читать далее

Ближайшие события

Vulkan. Руководство разработчика. Отрисовка

Время на прочтение9 мин
Количество просмотров6K


Я занимаюсь техническими переводами в ижевской IT-компании CG Tribe и продолжаю публиковать перевод уроков Vulkan Tutorial на русский язык. Оригинальный текст руководства можно найти здесь.

Моя сегодняшняя публикация посвящена первым двум статьям раздела Drawing, — Framebuffers и Command buffers.

Содержание
Читать дальше →

Более безопасный способ сбора потоков данных из пользовательских интерфейсов Android

Время на прочтение9 мин
Количество просмотров18K

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

В этой статье вы узнаете, как API Lifecycle.repeatOnLifecycle и Flow.flowWithLifecycle защищают вас от пустой траты ресурсов и почему их лучше использовать по умолчанию для сбора потоков данных из пользовательского интерфейса.

Читать далее

Полное руководство по созданию классических приложений на JavaScript

Время на прочтение8 мин
Количество просмотров18K

Еще недавно разработка классических приложений считалась сложной задачей — для этого приходилось учить специальный язык программирования, например Java или C++. К счастью, сейчас веб-разработчики могут создавать прекрасные классические приложения, конвертируя код JavaScript в полноценные программы. Давайте разберемся, что для этого нужно.

Читать далее

Что вернёт эта функция в Python?

Время на прочтение2 мин
Количество просмотров33K

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

def foo():
try:
return 1
finally:
return 2

Если вам интересно, что получится в результате и как это работает, добро пожаловать под кат.

Читать далее

Найти подстроку в строке

Время на прочтение6 мин
Количество просмотров32K

Алгоритм поиска строки Бойера — Мура — алгоритм общего назначения, предназначенный для поиска подстроки в строке.

Давайте попробуем найти вхождение подстроки в строку.

Подготовка к собеседованию

Помогите прочитать, что здесь написано? (OCR)

Время на прочтение7 мин
Количество просмотров8.2K


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

В 2020 году нам тоже пришлось решать проблему качественной оцифровки документов, и над этим проектом мы с коллегами работали совместно с компанией Verigram. Вот как мы проводили оцифровку документов на примере заказа клиентом SIM-карты прямо из дома.

Превращаем картинку в текст

Дай таблетку, программист. Как в прошлый раз

Время на прочтение4 мин
Количество просмотров20K

Не судите строго, но я в выходные, совершенно случайно, посмотрел телевизор. Канал «Россия 1». Всего несколько минут. Наткнулся на доктора Мясникова, который поздравлял своих коллег с днём медицинского работника (кстати, присоединяюсь к поздравлениям!).

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

Но настоящий врач не может идти на поводу у пациента. А вот программист – вполне себе.

Читать далее

Вклад авторов