Итераторы в Rust

Итераторы сердце языка Rust, язык стремится к zero-cost abstraction (абстракциям с нулевой стоимостью) и итераторы часто работают быстрее классических циклов потому как компилятор оптимизирует их лучше. Понять итераторы Поймите три кита итераторов Все методы итераторов делятся на три группы. Если вы их различаете, то код не будет для вас магией. Создатели (iterators): методы которые создают…

self в Rust

Мутный self в Rust или как раз и навсегда его понять

На начальном у всех новичков возникают проблемы с тем что значит self в rust и чем он отличается от Self. Ниже приведен пример кода из книги «Rust Профессиональное программирование». В книге допущена ошибка, я отметил ее в комментарии. Ожидался self, но случайно был напечатан Self и программа перестала компилироваться. Посмотрите этот код, он отлично иллюстрирует…

Так ли просто написать «Hello, World!» на языке Rust — про ссылки и разыменование

Сегодня столкнулся с интересной проблемой, которая показалась мне забавной. Простенькая задачка, что будет если добавить амперсанд к строке «Hello, World!». Собственно, давайте попробуем разобраться, что происходит когда мы делаем ссылку на «&str» тип. Посмотрите на код ниже, далее мы подробно разберем каждую строку.  

Разберём пошагово, что происходит в каждом вызове println! и почему возникает ошибка E0614.…

Rustlings — решаем задачи по RustBook, настраиваем среду

В этой статье настроим среду разработки и добавим настроек Vim + Tmux, для удобного решения задач курса Rustlings. Для тех кто пока не в теме Rustlings это небольшой курс по языку Rust в котором вам необходимо исправлять ошибки компилятора. Вооружившись знаниями из RustBook вы легко с этим справитесь. Можно читать книгу параллельно, обращаясь к главам…

Без паники! Конфигурация макроса panic в языке Rust

Строка [profile.release] с параметром panic = «abort» в файле Cargo.toml (система сборки Rust) задаёт стратегию обработки паник (panics) для релизной конфигурации (release‑сборки). Что это значит По умолчанию в Rust при панике выполняется unwinding («размотка» стека): программа последовательно проходит по стеку вызовов вверх; освобождает память и вызывает деструкторы для всех локальных объектов; затем завершается. Параметр panic = «abort» отключает unwinding и заменяет его на аварийное завершение (abort): при панике программа немедленно…

Установка memcached в Debian/Ubuntu

Memcached — это программный пакет с открытым исходным кодом, который обеспечивает уровень кэширования в памяти, часто развертываемый в качестве компонента стеков веб-приложений для снижения нагрузки на традиционные базы данных для часто используемых объектов. Установить пакет не составляет труда, но нужно помнить, что для нормальной работы с PHP, необходимо установить и сконфигурировать пакеты для самого языка.…

Запуск PHP скриптов из консоли Linux

Давайте сначала решим зачем нам может понадобиться запускать скрипты PHP через интерфейс командной строки Linux. Первое и самое очевидное решение, мы пишем простой скрипт который должен делать нечто в нашей системе. То есть мы используем PHP как расширенный Bush-скриптинг. Хотим как-то особенно сортировать файлы, делать запись в базу данных, отправлять сообщения или все одновременно. PHP…

Как настроить Ubuntu для Битрикс

Очень многие устанавливают Битрикс на CentOS, точнее на BitrixVm, что объяснимо если вы слабо знакомы с Linux. Я не стану отговаривать, каждому свое. У меня возникало очень много проблем со сборками от команды Битрикс. Очень много необъяснимых ошибок, решить которые под силу не каждому специалисту. И если Битрикс24 без сборки от 1С работать не будет,…

Проблемы динамической типизации в сравнении

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

Почему SSH в контейнерах это зло

Эта статья является продолжением моих изысканий по Docker. Тема навеяна простым примером из жизни. Администратору занимающемуся преимущественно Windows был задан вопрос, если у тебя есть контейнер Docker, как ты будешь им управлять. Не задумываясь тот ответил: «поставлю в контейнер SSH и буду к нему подключаться«. Сегодня я попытаюсь объяснить, почему так делать не нужно. Собственно,…