Pull to refresh
1
0

Пользователь

Send message

PARI/GP: как посчитать что-то просто, точно и параллельно

Level of difficultyMedium
Reading time12 min
Views1.2K


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

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

В этой статье за ~15 минут вы узнаете, как легко и просто загрузить компьютер на 100% вашими вычислительными задачами, даже если вы не являетесь профессиональным программистом.
Держу пари, вы не знали о PARI
Total votes 26: ↑25 and ↓1+37
Comments18

Как устранить первопричину уязвимостей безопасности памяти

Level of difficultyMedium
Reading time9 min
Views2.6K

Уязвимости безопасности памяти остаются серьёзной угрозой для защиты ПО. Мы, работники Google, считаем, что путь к крупномасштабному устранению этого класса уязвимостей и к защищённому ПО заключается в Safe Coding — подходе secure-by-design, отдающем приоритет переходу на безопасные по памяти языки.

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

Также мы приведём обновлённую статистику того, как благодаря переходу на безопасные по памяти языки, процент уязвимостей безопасности памяти в Android упал за шесть лет с 76% до 24%.
Читать дальше →
Total votes 23: ↑23 and ↓0+35
Comments2

Какой роутер для OpenWrt купить в 2025 году?

Level of difficultyEasy
Reading time21 min
Views95K

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

Роутер, как и любой другой девайс, нужно покупать под запрос. Например, линуксоиды привыкли покупать ноутбуки именно под Linux, а не первый попавшийся. Также и тут: если нужен OpenWrt, то роутер тоже надо выбирать с умом, а не надеяться на то, что кастомная прошивка сделает конфетку из роутера за 700 р.

В 2023 и 2024 появились интересные роутеры, которые уже поддерживаются проектом OpenWrt. Эти роутеры сделаны на базе ARM-процессоров. Такие роутеры появились у нескольких компаний, и дальше их количество будет только увеличиваться.

Читать далее
Total votes 245: ↑245 and ↓0+271
Comments244

Симкод — современный язык ассемблера

Reading time33 min
Views16K

Начну с определений.

Симкод — это последовательность симкоманд.

Симкоманда — это символьная машинная макрокоманда с Си-подобным синтаксисом.

Например, ассемблерной команде add rax, rbx соответствует симкоманда rax += rbx.

Симкод позволяет выразить любой ассемблерный код [и как следствие машинный], только в более человекочитаемом виде. Однако, симкод не пытается назначить символьное обозначение для абсолютно каждой ассемблерной команды — те команды ассемблера, которые не имеют символьной записи, оставляются как есть. Таким образом, симкод является надмножеством ассемблера.
Читать дальше →
Total votes 56: ↑51 and ↓5+61
Comments50

Как сделать и настроить собственный VPN

Level of difficultyEasy
Reading time6 min
Views87K

В статье рассмотрим четыре способа создания собственного VPN. Начнем с самого простого варианта, что под силу даже начинающим пользователям ПК.

Читать далее
Total votes 37: ↑36 and ↓1+42
Comments68

Восемь малоизвестных опций Bash

Reading time3 min
Views43K
Некоторые опции Bash хорошо известны и часто используются. Например, многие в начале скрипта пишут

set -o xtrace

для отладки,

set -o errexit

для выхода по ошибке или

set -o errunset

для выхода, если вызванная переменная не установлена.

Но есть много других опций. Иногда они слишком путано описаны в манах, поэтому я собрал здесь некоторые из наиболее полезных, с объяснением.
Читать дальше →
Total votes 82: ↑79 and ↓3+76
Comments13

Защита от брутфорса и эксплоитов OpenSSH

Reading time4 min
Views12K


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

Нужно отметить, что новая функция OpenSSH фундаментально отличается от fail2ban, sshguard и подобных инструментов, поскольку она не парсит логи и не изменяет правила файрвола, а применяет опции только внутри одной программы, не обращаясь никуда через ядро, что делает её гораздо безопаснее вышеупомянутых утилит.
Читать дальше →
Total votes 15: ↑15 and ↓0+22
Comments11

Ахиллесова пята ИИ: простая задача, обнажившая слабости всех языковых моделей

Level of difficultyEasy
Reading time5 min
Views57K

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

Читать далее
Total votes 80: ↑73 and ↓7+79
Comments303

Buildroot — часть 1. Общие сведения, сборка минимальной системы, настройка через меню

Reading time7 min
Views72K

Введение


В данной серии статей я хочу рассмотреть систему сборки дистрибутива buildroot и поделиться опытом её кастомизации. Здесь будет практический опыт создания небольшой ОС с графическим интерфейсом и минимальным функционалом.


Прежде всего, не следует путать систему сборки и дистрибутив. Buildroot может собрать систему из набора пакетов, которые ему предложили. Buildroot построен на make-файлах и поэтому имеет огромные возможности по кастомизации. Заменить пакет на другую версию, добавить свой пакет, поменять правила сборки пакета, кастомизировать файловую систему после установки всех пакетов? Всё это умеет buildroot.


В России buildroot используется, но на мой взгляд мало русскоязычной информации для новичков.


Цель работы — собрать дистрибутив с live-загрузкой, интерфейсом icewm и браузером. Целевая платформа — virtualbox.


Зачем собирать свой дистрибутив? Зачастую нужен ограниченный функционал при ограниченных ресурсах. Ещё чаще в автоматизации нужно создавать прошивки. Приспосабливать дистрибутив общего назначения, вычищая лишние пакеты и превращать его в прошивку путь более трудоёмкий, чем собрать новый дистриб. Использование Gentoo тоже имеет свои ограничения.


Buildroot система очень мощная, но она ничего не сделает за вас. Она может лишь дать возможности и автоматизировать процесс сборки.


Альтернативные системы сборки (yocto, open build system и прочие) не рассматриваются и не сравниваются.

Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments14

FUSE: как написать свою файловую систему

Level of difficultyHard
Reading time21 min
Views14K

Меня зовут Максим, я ведущий разработчик в VK. Занимаюсь инфраструктурой доставки электронной почты в проекте Mail.ru. Наша команда разработала и довела до эксплуатации файловую систему (ФС) на FUSE в рамках проекта распределённой почтовой очереди. В проекте требовалось реализовать сетевую ФС, которая сохраняет данные в трёх копиях, в разных ЦОДах. Цель — повысить отказоустойчивость, чтобы даже полный выход из строя одного ЦОДа не приводил к нарушениям SLA. Эта статья для всех, кто интересуется файловыми системами и хранением данных. Мы обсудим:

- зачем писать свою ФС;

- как написать свою ФС с помощью фреймворка FUSE;

- какие подводные камни есть у эксплуатации FUSE в production.

Эта статья — результат трёх лет разработки ФС. Сейчас самое время заварить чай, рассказ будет долгим. 

Заварить чай и читать
Total votes 64: ↑64 and ↓0+79
Comments15

Ноутбук с процессором RISC-V: современный лэптоп на базе ОС Linux. Что это за девайс?

Reading time4 min
Views10K

Похоже на то, что популярность архитектуры RISC-V постепенно растет. Это и неудивительно, учитывая ее бесплатность и отсутствие необходимости выплачивать лицензионные отчисления кому бы то ни было. Устройств на базе новых чипов тоже все больше. На днях появился ноутбук с крайне оригинальным названием Laptop II, выпущен он брендом DC-ROMA. Подробности — под катом.

Читать далее
Total votes 11: ↑8 and ↓3+12
Comments56

«Hello, World!» от мира сжатия данных. Канонический алгоритм Хаффмана

Level of difficultyEasy
Reading time7 min
Views5.4K

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

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments18

Как Apple на самом деле следит за вами

Level of difficultyEasy
Reading time12 min
Views38K

По счастливой случайности я оказался резидентом Евросоюза, а значит, на меня также распространяется GDPR. Он позволяет мне запросить копию информации, которая хранится обо мне у всяких разных компаний. Я решил сделать это у Apple, и был неприятно удивлен.

Apple старается собирать как можно меньше данных.

Читать далее
Total votes 144: ↑129 and ↓15+142
Comments152

LINUX: от космических кораблей и суперкомпьютеров до кинопроизводства  и интернета вещей

Level of difficultyEasy
Reading time16 min
Views6.1K

Привет, Хабр! Погрузимся в мир Linux и рассмотрим самые необычные и малоизвестные факты о легендарной операционной системе. Будь вы опытным пользователем или только начинаете знакомство с Linux, вы найдете здесь немало интересных фактов. 

Читать далее
Total votes 20: ↑19 and ↓1+27
Comments19

SVG-виджеты для tcl/tk. Часть I

Level of difficultyMedium
Reading time13 min
Views2.7K

Начать статью хочу с цитаты из слов Брайана Кернигана,которую мне посчастливилось найти:

Tcl/Tk придает работе магическую продуктивность, за несколько часов можно достигнуть тех же результатов, что за дни или недели при разработке на C или C++... Tk весьма эффективен для большинства приложений, многие элементы интерфейса (виджеты) реализованы настолько хорошо, что остается только удивляться, как подобная работа могла быть выполнена так качественно... Удачным кажется и то, что разделение задач между Тсl и С/С++ осуществляется достаточно легко, надо только знать, какой инструмент лучше справляется с задачей... Расширение системы дополнительным Tcl-кодом, загружаемым напрямую в Tcl-библиотеку приложения, в полном согласии с оригинальной идеей Остераута, повышает эффективность программы, в целом, упрощает ее структуру и улучшает мобильность... Я не уверен, что Тсl мог бы выжить как самостоятельный продукт - у него слишком много конкурентов. Но у сочетания Tcl/Tk в Unix-мире нет конкурентов... Система исключительно надежна, очень хорошо документирована... свободно доступна... безукоризненно высокого качества

Читать далее
Total votes 11: ↑8 and ↓3+11
Comments2

Кто реально угрожает C++ (нет, Rust, не ты)

Reading time14 min
Views77K

Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.

Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?

Читать далее
Total votes 220: ↑208 and ↓12+244
Comments362

Как правильно передавать секреты запускаемым программам?

Level of difficultyMedium
Reading time6 min
Views7.2K

Эта статья о том, как правильно передавать секреты запускаемым программам.

Бывает встречаются Unix-системы, на которых некоторые администраторы передают процессам пароли в открытом виде, совершенно не заботясь о том, что их видят все пользователи данной системы.

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

$ ps -ef

и возможно и увидеть некоторые секреты, которых видеть не должны, например, у одного из процессов ниже открыт пароль basicAuth.password (пароль в тексте изменен).

$ strings /proc/1101/cmdline
/usr/local/bin/vmagent
--remoteWrite.url=http://vm-cluster.local:1234/api/v1/write
--remoteWrite.basicAuth.username=user-rw
--remoteWrite.basicAuth.password=123456
--promscrape.config=/usr/local/etc/vmagent-config.yml

Как же быть? Есть несколько способов этого избежать.

Читать далее
Total votes 18: ↑17 and ↓1+19
Comments11

KiB, Kib, KB, Kb

Reading time3 min
Views124K
Вот в этом посте товарищ призывает следовать стандартам. Не всё так с ними просто, со стандартами. Я хочу показать насколько сложна ситуация с обозначениями единиц измерения информации. Не буду объяснять важность темы — кому интересно, прошу под кат.
Подробности
Total votes 37: ↑32 and ↓5+27
Comments53

Язык Janet для смертных. Часть 2 — Компиляция и создание образов

Level of difficultyEasy
Reading time10 min
Views4.1K

Это перевод небольшой книги о языке Janet за авторством Иана Генри (Ian Henry). В этой небольшой книге подробно раскрываются различные аспекты работы с языком, обьяснение синтаксиса и некоторых приемов программирования.

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

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments7

Язык Janet для смертных. Часть 1 — Значения и ссылки

Level of difficultyEasy
Reading time13 min
Views3.6K

Это первая глава перевода небольшой книги о языке Janet за авторством Иана Генри (Ian Henry). В этой книге раскрываются различные аспекты работы с языком, обьяснение синтаксиса и некоторых приемов программирования.

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments5
1
23 ...

Information

Rating
Does not participate
Registered
Activity