All streams
Search
Write a publication
Pull to refresh
113
33.8
Александр @Albert_Wesker

User

Send message

Спутниковый интернет в России: какие перспективы?

Level of difficultyEasy
Reading time11 min
Views52K


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

Верификация распределённых систем с применением Isabelle/HOL

Level of difficultyHard
Reading time8 min
Views1.9K
image

Мы ежедневно пользуемся распределёнными системами (в форме интернет-сервисов). Эти системы очень полезны, но и реализовывать их непросто, так как сети непредсказуемы. Всякий раз, когда вы передаёте сообщение по сети, предполагается, что оно прибудет очень быстро, но возможны и достаточно долгие задержки. Может случиться так, что сообщение не прибудет вообще, либо прибудет несколько раз. Когда вы отправляете запрос другому процессу и не получаете отклика, вы понятия не имеете, что произошло: потерялся ли запрос, либо тот другой процесс аварийно завершился, либо сам отклик потерялся? Или же на самом деле ничего не потерялось, сообщение просто задержалось и ещё может прибыть. Невозможно доподлинно узнать, что произошло, поскольку ненадёжный обмен сообщениями – единственный способ межпроцессной коммуникации.
Читать дальше →

К 134-летию со дня рождения Владимира Козьмича Зворыкина, создателя телевидения

Level of difficultyEasy
Reading time15 min
Views8.4K
image

Биографии многих великих европейских изобретателей ХХ века можно читать, как исторические романы. Владимир Козьмич Зворыкин – не исключение. В этой заметке мы подробно расскажем о начальном этапе пути великого русского ученого, которого называли «подарком американскому континенту» и создателем «монстра, способного промыть мозги всему человечеству».
Читать дальше →

Микросервисы Rust в серверном WebAssembly

Level of difficultyHard
Reading time8 min
Views6.2K
image

Язык программирования Rust за последние несколько лет значительно распространился. Он несколько лет подряд считается самым любимым языком программирования среди разработчиков и включён в состав ядра Linux. Rust позволяет разработчикам писать корректные программы, обеспечивающие безопасность при работе с памятью, а также такие же компактные и быстрые, как на языке C. Он идеально подходит для создания инфраструктурного программного обеспечения, включая серверные приложения, от которых требуется высокая надёжность и производительность.
Читать дальше →

Будущее программирования с помощью ИИ — первые примеры

Level of difficultyMedium
Reading time6 min
Views18K


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

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

Движок для игры от первого лица в 265 строках Javascript

Level of difficultyHard
Reading time6 min
Views26K
image

Сегодня окунёмся в мир, который можно потрогать. В этой статье мы исследуем, как с нуля, быстро и без особо сложной математики написать движок для игры от первого лица. Для этого мы воспользуемся приёмом под названием «бросание лучей» (raycasting). Возможно, вы видели примеры такой техники в играх Daggerfall и Duke Nukem 3D, а из более свежего – в статьях из «ludum dare» от Нотча Перссона. Что ж, для Нотча это неплохо, но не для меня! Вот демка (управление стрелками и тачпадом) [источник].
Читать дальше →

Интероперабельность между С++ и Rust

Level of difficultyHard
Reading time13 min
Views9.4K
image

image

Этот пост основан на презентации, с которой автор выступил на конференции EuroRust 2022 в Берлине. Доступны слайды и видеозапись.

Автор, работающий в компании Slint, участвует в создании UI-инструментария, написанного на Rust. Этот UI-инструментарий может использоваться и с другими языками и экосистемами, кроме той, для которой был написан, поэтому в Slint предусмотрены API для C++ и даже для Javascript. Естественно, эти API должны восприниматься как совершенно нативные для разработчиков, имеющих дело с этими языками. Именно поэтому ребром стоит вопрос о том, как создать нативно воспринимаемые API к коду Rust для пользователей, привыкших работать с C++.

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

В этом посте хотелось бы исследовать оба направления интеграции между Rust и C++ и представить некоторые инструменты, используемые в Slint.
Читать дальше →

113 лет со дня рождения Конрада Цузе – всемирно признанного изобретателя компьютера

Level of difficultyEasy
Reading time8 min
Views7.5K
image

О биографии Цузе написано немало. Мы не будем повторять уже написанное, а рассмотрим в деталях – как же был создан первый компьютер и что послужило для изобретателя «вдохновением».

Конрад Цузе родился 22 июня 1910 года в Берлине. Столица тогдашней Германской империи, последующих Веймарской республики, Третьего рейха, ГДР и нынешней ФРГ на протяжении большей части прошлого века играла роль одного из центров Европы. Не только политических – как колыбель трех крупнейших войн (двух мировых и одной «холодной»), – но и научных. В Берлине Планк создал квантовую физику, а Эйнштейн – общую теорию относительности. К ним можно добавить и Цузе с его первым программируемым компьютером.
Читать дальше →

Typst — современная альтернатива LaTeX

Level of difficultyMedium
Reading time7 min
Views19K


Языки разметки хорошо подходят для создания и редактирования структурированных документов. Они лучше автоматизированы и гибки, чем аналоги с WYSIWYG. Здесь контент отделён от представления, задаётся текст и его структура, далее на основе выбранного шаблона форматируется документ. Подобную систему компьютерной вёрстки TEX (TeX) разработал Дональд Кнут в 1978 году, окончательный релиз оформился в 1979-м. Системы на основе TeX до сих пор являются актуальными в этой области и продолжают развиваться. Вот несколько примеров.
Читать дальше →

Есть проблемы гораздо сложнее, чем NP-Complete

Level of difficultyMedium
Reading time8 min
Views11K


Люди часто сравнивают P и NP в таком духе, что проблемы P простые, а NP — сложные. Но это чрезмерное упрощение. На самом деле проблемы могут быть намного, намного сложнее, чем NP.

В этом смысле можно вспомнить интеллектуально-фантастический триллер Travelling Salesman (Коммивояжёр, 2012) о четырёх математиках, нанятых правительством США для решения самой сложной проблемы в истории информатики — равенства классов сложности P и NP (P versus NP problem). И им это удалось. Чиновник министерства обороны США предлагает за их алгоритм вознаграждение $10 млн. Но сами математики слишком хорошо понимают, какие разрушительные последствия принесёт в мир их открытие. Один из лучших фильмов про математику в истории кинематографа…
Читать дальше →

Уделываем классические компьютеры при помощи Borealis

Level of difficultyMedium
Reading time12 min
Views8.3K
image

Эта история повествует о первом в мире общедоступном квантовом компьютере, развёрнутом в облаке.

Компания Xanadu весной 2022 года объявила о запуске Borealis, новейшего квантового компьютера, развёрнутого в облаке и предоставленного в общий доступ. В этом компьютере 216 кубитов в сжатом состоянии – то есть, почти в 20 раз больше, чем в X12, системе предыдущего поколения, также действовавшей в облаке. Borealis – это крупнейший в истории фотонный квантовый компьютер, а также первая в своём роде машина, предоставленная в публичное использование.
Читать дальше →

Я написал одну из самых быстрых библиотек датафреймов

Level of difficultyHard
Reading time9 min
Views11K
image

1. Вступление


У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.

Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
Читать дальше →

Elsie: программируемые презентации

Level of difficultyHard
Reading time10 min
Views8.2K
image

Как известно, существует целый ряд инструментов для создания информативных технических слайдов, и у этих инструментов есть свои недостатки. TLDR:

  • При работе с WYSIWYG-решениями (напр., PowerPoint) требуется выполнять вручную массу монотонной работы, они не слишком хорошо поддерживают подсветку синтаксиса, не предоставляют качественных инструментов для точной отрисовки сложных фигур и анимации, а также их не так просто интегрировать с контролем исходников.
  • Декларативные инструменты (напр., Beamer или reveal.js) гораздо лучше. В них серьёзно поддерживается подсветка синтаксиса, они позволяют рисовать сложные фигуры и анимацию (в особенности Beamer) и, кроме того, с лёгкостью версионируются. Правда, ни один из используемых с ними декларативных языков (ни LaTeX, ни HTML) не дают достаточной гибкости для создания по-настоящему сложных слайдов.

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

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

Blink: супербыстрый эмулятор x86_64 размером 119 КБ

Level of difficultyMedium
Reading time6 min
Views20K


На Хабре когда-то писали про талантливую программистку Джастин Танни, автора маленьких и очень быстрых приложений. Приятно знать, что она не останавливает свою неординарную деятельность. Например, одна из её последних разработок — крошечный эмулятор под названием Blink размером всего 116 КБ, который очень быстро компилирует WASM и выполняет Linux-программы x86_64 под разными платформами и даже в браузере.
Читать дальше →

Что надёжнее, SSD или HDD? Холивар продолжается…

Level of difficultyMedium
Reading time6 min
Views49K


Почти семь лет назад (13 августа 2015 года) компания Samsung представила первый в мире SSD на 16 ТБ, но после этого бурное развитие как будто застопорилось. Где супердешёвые SSD на десятки терабайт, почему мы их не видим во всех компьютерах вокруг? Неужели до сих пор живы мифы о ненадёжности SSD?

Попробуем разобраться.
Читать дальше →

eBPF и его возможности

Reading time10 min
Views40K
image

Откройте для себя современные возможности ядра GNU/Linux, которые пригодятся вам для обеспечения мониторинга, наблюдаемости, безопасности, инжиниринга производительности и профилирования – всё это достижимо при помощи eBPF. Ниже будет разобрано несколько практических случаев и дана информация, касающаяся внутреннего устройства BPF.
Читать дальше →

«Странная алгебра», философия упрощения и изобретение бита. К 107-летию со дня рождения Клода Элвуда Шеннона

Level of difficultyEasy
Reading time7 min
Views10K
image

Как совершаются великие научные открытия? Как вообще работает механизм «гениальности»?

Сегодня мы с вами попробуем раскрыть эту тайну – и понять, что не существует универсального ответа на этот вопрос.

Клод Элвуд Шеннон наиболее популярные и революционные свои работы сделал очень рано. Многие эксперты считают, что два его важнейших вклада в науку – магистерская диссертация 1938 г., развивающая метод использования булевой логики для представления схем, и его статья 1948 г. по теории связи, определившие область и революционный метод, с помощью которого мы обозреваем мир. Основа этих двух работ и большинства других его работ – идея, что математические концепции можно использовать для создания структур и понимания чего угодно.
Читать дальше →

Почему мы выбрасываем исправные гаджеты?

Reading time10 min
Views15K


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

Организуем окружение Rust и сборку Docker с применением Nix Flakes

Level of difficultyHard
Reading time8 min
Views8.2K
image

Чем интересен Nix


В Rust новое окружение для разработки обычно настраивается без труда – просто воспользуйтесь rustup и в добрый путь. Но при использовании такого сборочного инструмента как язык Nix, вы можете приобрести гораздо больше, лишь немного потрудившись. Ведь Nix позволяет:

  • Указывать в коде зависимости от проектов, не написанных на rust;
  • Автоматически добавлять в путь все инструменты/зависимости ваших проектов при помощи direnv;
  • С лёгкостью собирать тонкие контейнеры Docker.

Стоит начать применять Nix при работе в репозитории – и «как раньше» уже не захочется. Никаких больше README со списком команд Homebrew, apt, pacman и др., которые было бы необходимо выполнять. Сборка тонких контейнеров Docker делается в два счёта, без необходимости вручную вручную обрабатывать множество слоёв, из которых требуется копировать сборочные артефакты.
Читать дальше →

«Программирование — вторая грамотность». К 92-летию со дня рождения ученого-программиста Андрея Петровича Ершова

Level of difficultyEasy
Reading time10 min
Views9.2K
image

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

И в относительно новой по историческим меркам науке информатике есть такой человек – это академик Андрей Петрович Ершов – выдающийся советский ученый, педагог и просто прекрасный человек, обладавший тонким языковым чутьем.

27 октября 1980 года Андрея Петровича пригласили выступить с заглавным докладом на 3-й Всемирной конференции ИФИП и Юнеско по применению ЭВМ в обучении. И Ершов выступил с совершенно замечательной речью под нетипичным метафорическим названием «Программирование – вторая грамотность». Так что же он имел в виду?
Читать дальше →

Information

Rating
219-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity