Pull to refresh
8K+
132
Николай Мальковский@malkovsky

t.me/a_zachem_eto_nuzhno

6,1
Rating
95
Subscribers
Send message

Топовые фишки в LaTeX часть 1/4

Level of difficultyMedium
Reading time7 min
Reach and readers13K

Меня зовут Виталий и я пишу уже который год самую большую книгу по математике для 411 классов, а так же автор поста (рекомендую почитать) о ней. Пишу я ее в LaTeX и считаю, что современный учебник не должен быть черно-белым, а так же должен быть удобен для использования и учеником и учителем. Здесь я собрал базовые фишки, которые я использую (что-то чаще, что-то реже). Надеюсь, вы найдете что-нибудь полезное для себя :-)

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

Кстати, в следующем посте будут еще <<круче>> функции.

Читать далее

Матрицы и векторы: вычисление обратной матрицы

Reading time7 min
Reach and readers11K

Вычисление обратной матрицы, а именно, вычисление алгебраических дополнений и определителя матрицы займёт большое количество машинных ресурсов при квадратной матрицы высокого порядка. В статье описывается решение и приводятся результаты обращения квадратной матрицы методом решения системы AX = E, где A, X, E - квадратные матрицы порядка n, X - обратная A матрица, E - единичная матрица, E_{ij} = \begin{cases}1 & i = j\\0 & i \neq j\end{cases} и методом LU декомпозиции.

Читать далее

Анатомия performance-critical C++ кода на примере ECS

Level of difficultyMedium
Reading time13 min
Reach and readers9K

Всем привет! Это продолжение статей про мою ECS with Sectors в моём движке Stellar Forge!

В предыдущей статье я описал структуру памяти, что являлось подготовкой фундамента для быстрой итерации, а сейчас хочу рассказать как по этой памяти передвигаться.
Получилась общая обзорная статья о том, как заставить C++ код быть быстрее, так что устраивайтесь поудобнее :-)

Статья будет полезна всем, кто пишет performance-critical код на C++: геймдев, HFT, обработка данных, embedded.

Читать далее

Алгоритмы нужны программистам, или cамая быстрая и простая реализация RMQ

Level of difficultyMedium
Reading time9 min
Reach and readers16K

Недавно встретилась по работе интересная задача, прямо на те самые презираемые на интервью алгоритмы. Очередное доказательство, что, по крайней мере, в Гугле алгоритмы нужны. А значит и интервью у них вообще-то не оторваны от реальности.

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

В статье описано как эту задачу решать действительно быстро - за линейную сложность.

Читать далее

Ведение Telegram-канала с помощью GitHub Actions

Reading time11 min
Reach and readers17K


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


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


И вот, среди прочих родилась простая идея: "А почему бы не автоматизировать отслеживание новых выпусков ИТ-подкастов с помощью Telegram-бота и GitHub Actions? Чтобы просто подписаться на telegram-канал и получать актуальные выпуски подкастов по мере их выхода.


Конечно, можно скачать специализированные приложения, типа "Poket Casts", либо подписаться на RSS, но лично для меня использование Telegram-канала является самым удобным, простым и привычным.


Так был создан telegram-канал @awesome_russian_podcasts, куда в автоматическом режиме публикуются новые выпуски множества ИТ-подкастов, собранных в моём репозитории. Собственно, о процессе создания этого канала (его техническую часть) я и хочу рассказать далее.

Читать дальше →

Об одном интересном свойстве триангуляции Делоне

Level of difficultyMedium
Reading time7 min
Reach and readers16K

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

Свойство: Если какой‑то отрезок AB не включен в триангуляцию Делоне, то существует путь из A в B по отрезкам из триангуляции, такой что каждый из отрезков в нем не длиннее |AB|. На картинке выше отсутствующий отрезок показан красным цветом, а путь — зеленым цветом.

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

Если вам известно более красивое доказательство этого свойства, или вы его где‑то видели — поделитесь, пожалуйста, в комментариях. Также буду благодарен, если вы поделитесь другими решениями для приведенных в статье задач или аналогичными задачами.

Читать далее

TeX в SVG: опенсорс-решение в помощь веб-разработчикам образовательных проектов

Reading time4 min
Reach and readers9.9K

Привет! Меня зовут Костя Мамаев, я занимаюсь фронтенд-разработкой в поиске Яндекса. Некоторое время назад мы вместе с другими ребятами из команды помогали образовательным проектам компании. Среди прочего пришлось решить, казалось бы, простую задачку: отображать на экране и распечатывать на бумаге формулы, закодированные в популярном формате TeX. Звучит, как дело пяти минут, но в результате трёх подходов к снаряду появился полноценный микросервис для серверного рендеринга формул в svg и png. В статье расскажу, зачем мы пошли этим путём и почему ни один из существующих проектов не подошёл «из коробки».

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

Подробнее про три подхода к снаряду

Как писать книгу по физике в LaTeX. Cтатья 1

Reading time26 min
Reach and readers40K
Это моя первая статья на Хабре.

Глава 1. Введение


1.1 Позвольте представиться и почему я это пишу

Я — научный сотрудник, физик. Недавно выпустил книгу по спектроскопии объемом 880 страниц и весом 1560 грамм. Эту книгу я писал 9 лет, параллельно читая лекции по ее содержимому. Она отняла у меня очень много времени, что естественно. Что не естественно — это то, что громадная часть потраченного времени ушла на оформление, то есть на изучение языка Латех. И это при том, что я на Латехе пишу всю жизнь, лично написал и опубликовал около 50 статей в разных издательствах.

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

После публикации книги (пока, увы, только на русском языке) у меня возникло громадное желание написать ещё книгу "Как написать книгу по физике в Латехе"
Читать дальше →

Основы MPI

Reading time4 min
Reach and readers123K
Прочитал статью «Основы MPI для «чайников»» и понял, что статья новичка способна отпугнуть.

Теория


Начнем с начала

Первое время не было единого стандарта (API) для параллельных вычислений и программистам приходилось писать для каждого кластера архитектурно-специфический код. Но, как известно, программисты люди рациональные и быстро было решено организовать стандарты (самые известные — MPI, OpenMP).
Читать дальше →

Иди-ка ты на !@# со своей «токсичностью»

Reading time5 min
Reach and readers218K
IT — не детский садик. Это место для взрослых, руководствующихся логикой и здравым смыслом. Их не надо опекать, не надо следить за словами, не надо переживать, что у них сформируются комплексы. Если человек некомпетентен, надо дать ему об этом явно понять, а не беречь его нежные чувства в ущерб всем остальным.

Так какого же чёрта моё прекрасное IT превращается в детский сад «Весёлый Програм-Мишка»?
Читать дальше →

Топ-10 инструментов Python для машинного обучения и data-science

Reading time4 min
Reach and readers29K


Python — один из наиболее популярных языков программирования. Причина — в его универсальности, ведь это мультитул с возможностью «заточки» под самые разные нужды. Сегодня мы публикуем подборку с описанием 10 полезных для data-scientist и специалиста по ИИ инструментов.

Машинное обучение, нейросети, Big-data — всё более растущий тренд, а значит, нужно все больше специалистов. Синтаксис Python математически точный, так что его понимают не только программисты, но и все, кто связан с техническими науками, — вот почему такое количество новых инструментов создается именно на этом языке.
Читать дальше →

Information

Rating
995-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity