Pull to refresh
17
0
Алексей Сторожев @storoj

User

Send message

​Как создать собственное расширение компилятора C++

Level of difficultyMedium
Reading time10 min
Views8.5K


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

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

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

Про решаемость пятнашек

Level of difficultyMedium
Reading time8 min
Views21K

Привет, я создатель известного в узких кругах приложения 15 Puzzle для Android.

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

Читать далее

Гайд по сплит клавиатурам

Level of difficultyEasy
Reading time31 min
Views23K

Этот гайд создан для тех, кто интересуется сплит клавиатурами, но еще не знаком с их особенностями и преимуществами или рассматривает переход на них. Главная цель гайда – предоставить всестороннюю информацию о сплит клавиатурах: от их истории и типов до подробного рассмотрения их конструкции, обучения слепой печати, изменения раскладки и так далее.

Мы стремимся сделать переход на сплит клавиатуру максимально плавным и безболезненным. Понимание того, как они устроены и как их можно адаптировать под свои нужды, снизит барьер входа и поможет преодолеть опасения перед переходом.

Читать далее

Царица наук: математика, беспощадная ты мука

Level of difficultyEasy
Reading time7 min
Views38K

Дайджест про то, как и зачем учить математику, 
если ты взрослый

С самых юных лет было очевидно, что я — естественнонаучник: ребёнок, выросший в семье инженеров и с неподдельным интересом обожающий всё живое, зелёное и биологическое. Дальше началось смешное: во дворе была филологическая гимназия, а чего далеко ходить... В свою очередь, гимназии нужны были олимпиадники и вот она, математика и мама с грозными задачниками, ибо в школе нас просто не учили (была вообще импортная адаптивная программа с усеченной геометрией). Для школы и вуза стараний родителей хватило, для олимпиад нет: физика шла на ура, а математика с приличным скрипом. Как я сейчас говорю, «не щёлкало». Сейчас мне 37 лет и я нет‑нет, да возвращаюсь к математике, хотя она мне точно не нужна ни в работе, ни в увлечении.

Читать далее

Памятка пользователям ssh

Reading time13 min
Views1.6M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →

Странности великих компьютерщиков, часть 1

Level of difficultyEasy
Reading time11 min
Views24K

По мнению обывателя, все айтишники, программисты и вообще «компьютерщики» — немного странные. Или не немного. Образ компьютерного гика с необычными привычками и чудачествами давно вошёл в мировую культуру в качестве тропа наравне с образом «безумного учёного». Впрочем, обычно это образ довольно-таки благожелательный, и он имеет под собой, пожалуй, некоторые основания.

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

Математическая модель игры Доббль

Reading time12 min
Views59K

Уровни сложности чтения


  • Я слишком молод, чтобы думать


    • Введение и правила игры
    • Как они это делают?
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности

  • Сделай мне умно


    • Введение и правила игры
    • Как они это делают?
    • При чём тут карточки?
    • Проективные плоскости малых порядков
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности

  • Кошмар


    • Введение и правила игры
    • Как они это делают?
    • Конечная геометрия для грудничков
    • При чём тут карточки?
    • Проективные плоскости малых порядков
    • Как построить проективную плоскость?
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности


Введение и правила игры


Несколько лет назад я купил игру Доббль (Dobble, оригинальное название “Spot It!”). Это очень простая, быстрая и весёлая игра, которую я считаю одной из лучших настольных игр вообще.

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

Раскрываем секреты загрузочных ISO-образов

Reading time20 min
Views118K


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

Коллекционирую лучшие C++ практики

Reading time3 min
Views21K

Коллекционирую лучшие C++ практики


Что-то наши публикации всё больше о плохом, чем о хорошем. Здесь баг, тут код с запахом, это антипаттерн, вот так писать не надо. Помогите увидеть светлую сторону программирования на С++. Оставляйте комментарии.

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

Подводные камни Bash

Reading time32 min
Views99K


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


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

Как стать мидлом или сеньором-разработчиком, обучаясь на любых курсах по программированию?

Reading time1 min
Views126K

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

Читать далее

Как я создаю игры на своём 3D движке в одиночку

Reading time7 min
Views18K

Много лет назад я занимался созданием маленьких Flash игр и публиковал их на сайте Newgrounds. Сейчас я делаю полноценные игры для ПК.

На сегодняшний день у меня 4 законченные коммерческие игры в Steam, и самая последняя из них — выпущенная в 2021 году Pilie Pals, о процессе создания которой я расскажу в этой статье.

Я работал над игрой всего примерно 6 месяцев, по вечерам после работы и на выходных. Я занимаюсь дизайном, программированием, графикой, звуками и музыкой в одиночку, и использую свой собственный движок 3D игр.

Читать далее

Умный дом iOS разработчика

Reading time6 min
Views16K

В свободное время (а иногда и в рабочее) я изучаю микроконтроллеры и собираю умный дом у себя в квартире, а так как по профессии я iOS-разработчик, то на умный дом я смотрю через призму iPhone и HomeKit. После сборки более-менее рабочего умного дома и, столкнувшись с кучей проблем, решил рассказать про свой опыт и устройства в цикле из 2 статей. Первая статья будет небольшим ликбезом в теорию микроконтроллеров и протоколов, а во второй уже поделюсь конкретным применением этих протоколов и фреймворков в моем умном доме.

Читать далее

Лето в Карабаше

Reading time4 min
Views3.4K

Лето – время хорошей погоды, отдыха и постоянных прогулок. К сожалению, иногда в России оно длится не 3 месяца, а несколько меньше. Тем важнее, чтобы мы могли использовать это время максимально эффективно. Речь не об отдыхе за границей, а о том, чтобы в городе люди могли чувствовать себя комфортно, чтобы было место, где можно отдохнуть в выходные – погулять, увидеть что-то интересное, если нет собственной дачи.

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

Читать далее

MFS — паттерн построения UI в iOS приложениях

Reading time14 min
Views3.7K

Логика развития мобильных приложений заключается в постепенном усложнении функциональной нагрузки на пользовательский интерфейс.

Что, в свою очередь, приводит к росту кодовой базы и затруднению ее обслуживания.
MFS - позволяет создавать современный дизайн приложений и при этом избежать такого явления как MassiveViewController.

Читать далее

Как Linux'овский sort сортирует строки

Reading time19 min
Views23K

Введение


Всё началось с короткого скрипта, который должен был объединить информацию об адресах e-mail сотрудников, полученных из списка пользователей почтовой рассылки, с должностями сотрудников, полученными из базы отдела кадров. Оба списка были экспортированы в текстовые файлы в кодировке Юникод UTF-8 и сохранены с юниксовскими концами строк.


Содержимое mail.txt


Иванов Андрей;ia@example.com

Содержимое buhg.txt


Иванова Алла;маляр
Ёлкина Элла;крановщица
Иванов Андрей;слесарь
Абаканов Михаил;маляр

Для объединения файлы были отсортированы юниксовской командой sort и поданы на вход юниксовской программе join, которая неожиданно завершилась с ошибкой:


$> sort buhg.txt > buhg.srt
$> sort mail.txt > mail.srt
$> join buhg.srt mail.srt > result
join: buhg.srt:4: is not sorted: Иванов Андрей;слесарь

Просмотр результата сортировки глазами показал, что в целом сортировка правильная, но в случае совпадений мужских и женских фамилий, женские идут перед мужскими:


$> sort buhg.txt
Абаканов Михаил;маляр
Ёлкина Элла;крановщица
Иванова Алла;маляр
Иванов Андрей;слесарь

Выглядит как глюк сортировки в Юникоде или как проявление феминизма в алгоритме сортировки. Первое, конечно, правдоподобнее.

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

Почему в машинном обучении используют «синтетические» данные

Reading time3 min
Views4.9K
Обсуждаем мнения ИТ-сообщества и экспертов индустрии. Также рассмотрим пару проектов, в рамках которых разрабатывают инструменты для генерации «искусственных» данных. Один из них представили выходцы из Агентства национальной безопасности США и Google.

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

Александр Павлюк: «Мне очень хочется, чтобы в OSM постепенно появлялись планы зданий»

Reading time8 min
Views3.8K

Александр Павлюк — программист, который увлекается фотограмметрией и съемкой с коптера. Он делает ортофотопланы и собирается освоить технологию SLAM. Как он подсел на моноколесо, зачем ему отдельный роутинг и причем здесь OSM — обо всем это Александр рассказал в интервью.
Читать дальше →

Ваша коммерческая информация на Microsoft Exchange Online? Ваша ли она по праву — и если да, то по какому?

Reading time14 min
Views14K

Мы часто пользуемся программными решениями западных IT-корпораций — облачными хранилищами, почтой, системами управления проектами. Размещаем и храним там переписку, код, коммерческую информацию. И уверены, что это надёжно, что наша информация всегда будет нам доступна и точно не потеряется.


Но это не всегда так. А с некоторых пор совсем не так.


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



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

Корпоративный туалет

Reading time7 min
Views29K
Сергей понуро брел по коридорам вслед за главным инженером. Тот что-то рассказывал, показывал пальцем то на одну дверь, то на другую, объяснял, какие замечательные люди там трудятся, какие шедевры создают в разных областях. Поначалу Сергею было интересно, он шел рядом, вежливо слушал, послушно поворачивал голову вслед за указующим пальцем, но очень быстро устал.

Сильно выматывал диссонанс. Всегда, на всех предприятиях, на каждом сайте и собеседовании он слышал одно и то же. Мы молодцы, у нас команда, мы создаем шедевры, наши планы по развитию о-го-го, и ничто не сможет нас остановить! А потом, как приглядишься, или поработаешь с ними, то оказывается… Что там конкретно оказывается, не так уж и важно. Но оказывается обязательно.

Решив, что больше это слушать невозможно, и срочно нужен перерыв, Сергей резко остановился.

— Погодите! – громко сказал он. — Где у вас тут… Ну это… Ежикам позвонить можно?

Главный инженер остановился, обернулся и уставился на Сергея непонимающим взглядом.

— Что, простите?

— Ну ежикам позвонить. Посылку отправить. — с тупой улыбкой продолжал Сергей, но, видя, что понимания нет, прекратил использовать метафоры. — Туалет у вас где?
Читать дальше →
1

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity

Specialization

Mobile Application Developer