Search
Write a publication
Pull to refresh
145
10.8
Александр Рябиков @rsashka

Системный архитектор

Send message

Что такое алгоритм?? Part three and a quarter. «Язык»

Reading time19 min
Views2.9K

И у нас есть организмы, а называем мы их странным именем — "Алгоритмы". И если есть у нас близко два таких "Алгоритма", то может стать полезным их взаимодействие. И если оно полезно самим организмам, то в свою очередь становится полезно и нам. Ведь это тот редкий момент, в который можно, наблюдая, разобраться, как предстало на свет "Слово" из того, что есть "Логос". Ибо абсолютно, совершенно, неоспоримо и уже написано то, к чему нечего добавить.


Ἐν ἀρχῇ ἦν ὁ Λόγος.

Title

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

Осторожно! Развод и фишинг одновременно по нескольким каналам

Reading time4 min
Views25K


На прошлой неделе на РБК была статья, в которой некоторые крупные российские банки в последнее время отмечают значительный рост числа попыток хищений денежных средств клиентов по сравнению с аналогичным периодом прошлого года. Об этом рассказали сразу несколько банков, причем было отдельно отмечено, что использовались различные приемы социальной инженерии.

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

Моя история примечательна тем, что я первый раз столкнулся с хорошо продуманной атакой с применением приемов социальной инженерии, которая была организована одновременно по нескольким каналам!

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

И тот факт, что при атаках начинают применяться приемы социальной инженерии с использованием сразу несколько независимых каналов одновременно, значительно повышает их достоверность и вероятность срабатывания!
Читать дальше →

Свой криптографический протокол — опасная идея

Reading time6 min
Views12K

Разработка своей криптографии в чём-то сравнима с созданием собственного авиадвигателя, говорит эксперт по безопасности Руна Сандвик. Фото: Виталий Кузьмин

Предположим, заказчик требует разработать собственный сетевой протокол. Например, для передачи данных между сервером и мобильным приложением, для связи между микросервисами, модулями программной системы, поверх UDP или поверх TCP. С шифрованием.

Казалось бы, почему не использовать открытые стандарты типа WebSocket и JSON, зачем собственный закрытый протокол? На это обычно приводят ряд причин. Во-первых, для безопасности, чтобы его было сложнее отреверсить и никто не понял, какие данные вы передаёте. Во-вторых, для эффективности. У нас ведь уникальный случай использования, поэтому стандартные решения — не самые оптимальные. Наш собственный протокол будет работать с меньшими задержками, потреблять меньше трафика и меньше расходовать батарею (на мобильных устройствах). И третья причина — функции. В своём протоколе специально для нашего приложения мы реализуем уникальные возможности, каких нет ни в открытом стандарте, ни у конкурентов.

Это распространённые причины, из-за которых разрабатывают проприетарные протоколы.
Читать дальше →

Стандарт C++20: обзор новых возможностей C++. Часть 5 «Корутины»

Reading time9 min
Views20K


25 февраля автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов рассказал о новом этапе языка C++ — Стандарте C++20. В лекции сделан обзор основных нововведений Стандарта, рассказывается, как их применять уже сейчас и чем они могут быть полезны.

При подготовке вебинара стояла цель сделать обзор всех ключевых возможностей C++20. Поэтому вебинар получился насыщенным. Он растянулся на почти 2,5 часа. Для вашего удобства мы разбили текст на шесть частей:

  1. Модули и краткая история C++.
  2. Операция «космический корабль».
  3. Концепты.
  4. Ranges.
  5. Корутины.
  6. Другие фичи ядра и стандартной библиотеки. Заключение.

Это пятая часть, кратко рассказывающая о корутинах, или сопрограммах, в современном C++.

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



Но существуют решения, позволяющие усидеть на двух стульях.

Мотивация


Очень часто при программировании возникает задача вернуть из функции не один объект, а целый набор. Есть несколько вариантов решения:
Читать дальше →

Лаконичный итератор для декларативного синтаксиса

Reading time7 min
Views2.6K


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

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

Ну и судя по моим наблюдениям Хабр — ума палата, буду рад любым комментариям и предложениям, которые помогут протестировать или улучшить предлагаемое решение.
Читать дальше →

Необычная концепция синтаксиса языка программирования

Reading time8 min
Views9K


Хочу представить на обсуждение читателей немного необычный концепт языка программирования, в котором отсутствует проблема, присущая практически всем промышленным языкам — постоянное увеличение сложности синтаксиса языка из-за его естественного развития по мере выхода новых версий и добавления новых фич. Эта проблема описана в материале Простое сложное программирование и Какая «идеальная» цель развития у языков программирования?

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

Особенности языка:

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

Ну и в соответствии с собственным наблюдением Хабр — ума палата, буду рад любым комментариям и предложениям, которые помогут протестировать или улучшить предлагаемое решение.
Читать дальше →

Практическое руководство по анонимности в онлайне

Reading time9 min
Views215K

Направленная антенна для удалённого доступа к публичному Wi-Fi

Обеспечить собственную безопасность (анонимность) в онлайне — тяжкий труд, требующий массивного объёма знаний. Даже лучшие профессионалы не всегда справляются.

Но это возможно.

Предупреждение. Для усвоения информации в полном объёме требуется несколько недель.
Читать дальше →

Насколько реально противостоять шантажу копирастов?

Reading time5 min
Views5K


Когда-то на Хабре была статья Борьба с пиратством и контрафактом в сети без помощи судов, в которой перечислялись разные способы защиты правообладателей от нарушителей авторских прав в Интернете.

И хотя сам материал содержит вроде бы обоснованные способы борьбы с контрафактом, но по факту, наше текущее законодательство дает возможность владельцам авторских прав использовать данные инструменты со значительными злоупотреблениями. И как в подтверждение этого, совсем недавняя статья Роскомнадзор заблокировал портал и форум 4PDA.

Но, как оказывается, не все безнадежно. Совсем недавно появился очень важный юридический прецедент, основываясь на котором можно в значительной степени упростить разборки в суде с необоснованными претензиями правообладателей.
Читать дальше →

Новые цены на микроконтроллеры STM32 из свежих поставок

Reading time2 min
Views23K


Наверное уже многим надоело, что все кому не лень, пишут про очередной кризис в производстве микросхем, повышение отпускных цен на радиодетали и микроэлектронику или невозможность их приобрести вследствие нарушившихся цепочек поставок из-за пандемии COVID-19, майнинговой лихорадки или продолжающейся торговой войны США и Китая.

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

И вот теперь эту напасть я увидел воочию и сполна прочувстовал на себе. И если сказать, что был удивлен и шокирован, то это не сказать вообще ничего. Я просто не поверил своим глазам, когда увидел стоимость копеечного микроконтроллера STM32F105 из новой поставки.
Читать дальше →

Сам себе Гутенберг. Делаем параллельные книги

Reading time12 min
Views23K

Lingtrain parallel books


Upd. 04.12.2021 — Наш телеграм канал


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


Сегодня мы сделаем решительный шаг в сторону исправления этой ситуации.


Из чего делаем


На входе у нас будут два текстовых файла с оригинальным текстом и его переводом. Для примера возьмем книгу "Убить пересмешника" Харпер Ли на русском и английском языках.


Начало документов выглядит так (отрывки приведены в таком виде, в котором они были найдены в сети):

Выровнять пересмешника

Расширенные возможности MessagePack

Reading time11 min
Views11K

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

В этой статье я не буду рассказывать, как устроен MessagePack или сравнивать его с аналогами: материалов на эту тему в Интернете предостаточно. Чего действительно не хватает, так это информации о расширенной системе типов MessagePack. Я постараюсь объяснить и показать на примерах, что это такое и как с помощью дополнительных типов сделать сериализацию еще более эффективной.

Читать далее

Скромное обаяние конспирологии

Reading time23 min
Views46K


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

Ubuntu 16.04: Получаем обновления безопасности после окончания основной поддержки

Reading time1 min
Views12K

В апреле 2021 у операционной системы Ubuntu 16.04 закончилась стадия основной поддержки https://wiki.ubuntu.com/Releases и тем самым обозначило прекращение выхода обновлений для неё.

Данный релиз был выпущен в апреле 2016 года и поддерживался до апреля 2021 года.

Однако, пользователи Ubuntu 16.04 могут получить патчи безопасности для своей системы до апреля 2024 года.

Для этого используется подключение к программе Ubuntu Advantage и на один аккаунт можно добавить 3 машины (бесплатно для персонального использования) получив ключ. Все что необходимо для этого - это Ubuntu One аккаунт.

Для коммерческого использования предлагается платная подписка, цены варьируют от $25 за desktop, $75 за виртуальный сервер и $225 за физический сервер в год и выше, более дорогие цены подразумевают не только обновления, но и получение технической поддержки через тикеты и по телефону.

В одном из последних обновлений Ubuntu 16.04 в систему устанавливается утилита ua с помощью которой происходит подключение к сервису

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

sudo ua attach ваш_токен

Проверить статус подключения можно командой

sudo ua status

Тем самым вы будете получать обновления еще три года до апреля 2024. Также следует отметить, что если вы являетесь Ubuntu community member, то вы сможете подключить к сервису до 50 машин.

Следует отметить, что для релизов, которые еще актуальны (ubuntu 18.04, 20.04) существует сервис livepatch и с его помощью возможно получение и установка патчей безопасности ядра без перезагрузки системы. Условия использования сервиса такие же - 3 машины бесплатно (и до 50 машин для community members).

Читать далее

Можно ли быть немножко беременным, или Российское проклятье Open Source

Reading time5 min
Views38K
Ровно два года назад, в апреле 2019 года, произошло знаменательное событие для всех сторонников свободного и открытого ПО, которые следят за Российскими новостями. АО «МЦСТ» "опубликовало" ОС Эльбрус для свободного скачивания. И несмотря на некоторые сложности в самом начале из-за возникшего ажиотажа, этот дистрибутив остается в свободном доступе по сей день и даже продолжает периодически обновляться.

На текущий момент доступны для скачивания версии «Эльбрус Линукс» 6.0.0 на базе ядра Linux 5.4 и версии 5.0-rc3 и 4.0.4 на базе ядра Linux 4.9.



Я специально написал слово «опубликован» в кавычках, т.к. на тот момент исходные тексты дистрибутива Эльбрус Линукс в свободном доступе отсутствовали. Два года назад в разговоре с CNews директор по маркетингу МЦСТ Константин Трушкин сообщил, что
… исходные коды на продукты компании пока недоступны ни для самостоятельного скачивания, ни по запросу, но в скором времени компания намерена их открыть.

Разные пакеты ПО выпускались МЦСТ под различными открытыми лицензиями, и под ними же будет происходить распространение исходных кодов.

Раскрывая исходные коды, компания преследует маркетинговые цели, связанные с продвижением продуктов МЦСТ, а также стремится расширить комьюнити разработчиков ПО под ОС «Эльбрус».
Так где можно получить исходники Эльбрус Линукс?

Госуслуги и запись на прием. Живая очередь?

Reading time3 min
Views9.9K

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

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

Читать далее

Новая концепция диабета 2 типа: опасный, но обратимый

Reading time12 min
Views38K

Исторически сахарный диабет считался страшным заболеванием — в тяжёлых стадиях ему сопутствуют такие побочные эффекты, как слепота и гангрена конечностей. Большую часть истории диабета, известного ещё врачам Древней Греции как минимум 2500 лет назад, он считался неизлечимым. Терапия диабета уколами инсулина появилась только в XX веке: в следующем году исполнится 100 лет первому уколу инсулина, которым в 1922 году канадский доктор спас умиравшего от диабета 14-летнего мальчика. Однако инсулинотерапия — это лечение только для диабета 1 типа, при котором в организме человека нарушена выработка собственного инсулина. При более распространённом диабете 2 типа уколы инсулина — это не лечение, а симптоматическая терапия, которая только замедляет развитие болезни. Причины этого были открыты позже.

В XXI веке, благодаря развитию эндокринологии (науки о гормонах) представления о диабете 2 типа поменялись радикально. С одной стороны, список сопутствующих развитию диабета проблем только вырос и теперь включает сердечно-сосудистые заболевания, многие случаи рака и болезнь Альцгеймера. С другой — появившееся представление о пропущенном звене, их общем метаболическом корне — гормональном сбое, известном как инсулинорезистентность, привело к пониманию не только как диабет развивается, но и как это развитие остановить и обратить вспять, не доводя до инсулиновой иглы.
Симптоматику предиабета следует знать всем, кому за 30

Очень трудно искать чёрную кошку в тёмной комнате, особенно, если там её нет

Reading time5 min
Views6.2K


Дочь занимается изготовлением украшений из полимерной глины и как-то пришла ко мне с просьбой. Хочу, говорит, снимать рекламные ролики своих изделий на видео, и публиковать их в Инстаграме.

После уточнения всех её хотелок и нескольких экспериментов были сформированы примерные требования к проекту «видеосъемка для интернета»:

  1. Съемка видео должна выполняться с использованием штатива (в противном случае на видео заметны движения оператора)
  2. Требуется поворотный стол для экспозиции небольших предметов (так как камера располагается на штативе, а необходимо показать изделия со всех сторон).
  3. Съемка должна вестись на камеру мобильного телефона, т.к. одно из мест для публикации, это Instagram, в котором опубликовать видео можно только с мобильника

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

Внимание, дальше картинки и видео!

Простое сложное программирование

Reading time6 min
Views7.1K


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

Но понятие «сложность» сродни термину «куча». Для кого-то и пять кокосов это не куча, а кого-то съел один и «больше не хочется» — значит для него и единственного кокоса будет много.

Так и со сложностью ПО. Вроде бы увеличение сложности является для всех очевидным и наблюдается во всех сферах применения IT технологий, да и сами языки программирования по мере своего развития становятся все сложнее, а вот оценивать «сложность» с помощью численных метрик — дело заведомо неблагодарное, но и «нельзя управлять тем, что невозможно измерить ...».

Обычно разговоры о «сложности» включают в себя только оценочные суждения без какой либо численной оценки. А так как лично меня интересует вопрос сложности языков программирования, то я решил посчитать сложность реализации компилятора gcc в каких нибудь условных попугаях. Вдруг можно будет увидеть какие нибудь закономерности?
Читать дальше →

RPA — обезболивающее или серебряная пуля?

Reading time6 min
Views3.1K

RPA (Robotic Process Automation) сейчас в некотором смысле напоминает старую добрую миниатюру Реввы: “Киииборги. Они заполонили всю планету!”. Про RPA говорят все чаще и чаще, появляются статьи и видео, рассказывающие о небывалом росте этого сегмента и многомиллионных экономиях тех, кто уже внедрил у себя RPA. Не то, чтобы и раньше этого не было, но сейчас стало уж совсем много.

Отзывов настоящих пользователей существенно меньше. Это не говорит о том, что RPA это плохо. Это просто факт, который и побудил меня написать эту статью и поделиться своими размышлениями.

Некоторое время назад, столкнувшись с определенными задачами, я выбирал средство для их решения и обратил внимание именно на RPA. Прорвавшись через миллион рекламных статей и восторженных видео от реселлеров, протестировав практически все, что доступно в trial / free версиях, я остановился на Automation Anywhere, который неплохо подходил под требования. Позже, к слову, я обнаружил что в нашей компании существует целый отдел, который занимается автоматизацией с помощью Blue Prism. Обратная, так сказать, сторона крупных корпораций - не всегда знаешь, что у нас уже есть…

Ну да речь не об этом. Не сразу, но через какое-то время я обнаружил, что самая сложная задача в RPA, это вовсе не написание роботов и не процесс их имплементации и сопровождения. Самое сложное - это управление ожиданиями на стороне менеджмента. Понимаете - они не инженеры, они управленцы. Они не понимают и не знают как, а главное почему, многие вещи работают так или иначе. Они читают такие же рекламные статьи и смотрят такие же рекламные видео как я в самом начале - и делают вывод: “Это же то, что нам нужно! Это решит все проблемы!”. И начинают интенсивно форсировать процесс внедрения. И хорошо, если есть  внутренний инженерный ресурс, который этим вопросом будет заниматься и подскажет, что где и как. А вот если задача попадет к интеграторам - это может быть большой проблемой. Может быть не сразу, может быть в перспективе, но я думаю что обязательно будет, и вот почему:

Читать далее

Как я на коленке делал бесплатный курс программирования, о котором мечтал 3 года (и что пошло не так)

Reading time10 min
Views16K

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

Читать далее

Information

Rating
1,117-th
Location
Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Software Architect
Lead
C++
OOP
Linux
Programming microcontrollers
Embedded system
C
Qt
Software development