• Ещё раз об OpenSSL

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

    В этой статье будут рассмотрены известные вопросы генерации ключей, а также менее известный вопрос шифрования файлов больших объемов. О сертификации здесь не будет речи.
    Читать дальше →
  • Основы компьютерных сетей. Тема №2. Протоколы верхнего уровня

    • Tutorial
    И снова всем привет! Сегодня речь пойдет о протоколах верхнего уровня. Разберем, как они работают, из чего состоят и где применяются теоретически и на практике.


    Приятного чтения
  • Искусственные нейронные сети простыми словами

    image

    Когда, за бутылкой пива, я заводил разговор о нейронных сетях — люди обычно начинали боязливо на меня смотреть, грустнели, иногда у них начинал дёргаться глаз, а в крайних случаях они залезали под стол. Но, на самом деле, эти сети просты и интуитивны. Да-да, именно так! И, позвольте, я вам это докажу!

    Допустим, я знаю о девушке две вещи — симпатична она мне или нет, а также, есть ли о чём мне с ней поговорить. Если есть, то будем считать это единицей, если нет, то — нулём. Аналогичный принцип возьмем и для внешности. Вопрос: “В какую девушку я влюблюсь и почему?”


    Можно подумать просто и бескомпромиссно: “Если симпатична и есть о чём поговорить, то влюблюсь. Если ни то и ни другое, то — увольте.”

    Но что если дама мне симпатична, но с ней не о чем разговаривать? Или наоборот?
  • Как отправить электронное письмо с помощью Python: руководство для «чайников»

    • Translation


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

    Редактор издания Motherboard Майкл Берн (Michael Byrne) написал материал о том, как отправлять электронные письма для различных почтовых ящиков с помощью Python. Мы представляем вашему вниманию адаптированный перевод этой заметки.
    Читать дальше →
    • +6
    • 67.2k
    • 8
  • Программируем микроконтроллеры в QtCreator

    • Tutorial


    Почему-то в интернете мало документации про qbs, и я решил немного исправить эту ситуацию. Попробую описать в виде повествования, что необходимо сделать, что бы в QtCreator можно было компилировать (и не только) что угодно под что угодно.
    Читать дальше →
  • [UPD]Программирование микроконтроллеров 1986ВЕ91Т в Qt Creator

    Хочу показать, как можно писать код и собирать hex-файлы для отечественных микроконтроллеров компании «Миландр» в удобной среде Qt Creator. Обычно для этих средств используются другие среды разработки, но с появлением системы QBS все несколько поменялось.
    Читать дальше →
    • +15
    • 17.6k
    • 4
  • Псевдо ООП в C



      Язык Си не является объектно-ориентированным языком. И значит все что будет описано ниже это костыли и велосипеды.
      ООП включает в себя три столпа: инкапсуляция, наследование, полиморфизм. Ниже я покажу как этих вещей можно добиться в С.
      Читать дальше →
    • Коаны Vim

      • Translation
      Мастер Вэ Ку и разработчик под Вин Ды
      Никакой разницы
      Мастер Вэ Ку и прислужник Разметки
      Мастер Вэ Ку и Мастер Ю Никс
      Нет наилучшего инструмента
      Сон мастера По У Пэ
      Лучший редактор
      Отчаяние медленного ученика
      Постижение Vimscript
      Посвящение Vim

      Читать дальше →
    • LFS: Темная сторона Силы. Часть 1

      • Tutorial

      Предисловие


      Для того чтобы установить на свой компьютер Linux и начать его использовать для конкретных задач существует масса способов. Выбор дистрибутивов чрезвычайно широк, на любой вкус и цвет — и «для домохозяек» и для продвинутых пользвателей, допускающие любой уровень кастомизации, в том числе и сборку из исходников под конкретное железо. Установка системы в принципе доступна любому, мало-мальски грамотному пользователю ПК. И, если не погружаться в популярные по сей дей холивары на тему «Linux vs Другая ОС», то и спользование данной системы не требует знаний, которые были обязательными для новоиспеченного линуксоида скажем десять лет назад. С моей, глубоко субъективной точки зрения, за более чем десять лет, которые я наблюдаю за развитием этой системы, линукс стал более дружественен к новичкам и избавился от многих проблем, присущих ему в прошлом. И это хорошо.

      Пингвины ручной сборки...


      На Хабре уже мелькала пара статей на тему LFS, например эта, или вот эта. Комментарии к последней наводят на закономерную мысль — если набор возможностей для установки Linux и его изучения и так исчерпывающе широк, зачем нужен LFS?

      Не буду витеивато излагать истории о том «как космические корабли бороздят… и когда Земля была огненным шаром...». Я отвечу на поставленный вопрос исходя из своей позиции — я собираю LFS потому, что мне просто интересно это сделать. Я вижу в этом процессе хорошую возможность заглянуть «под капот» системы. Допускаю, что этот путь сложно назвать оптимальным. Тем не менее, данная статья, и последующие за ней будут посвящены процессу ручной сборки Linux-системы. Данные статьи не будут переводом документации по сборке — в этом нет особой нужды. Акценты будут расставлены на специфике и ньюансах процесса, с которыми пришлось столкнуться автору лично. Будем считать этот цикл чем-то вроде дневника неофита.

      Читать дальше →
    • Разработка одноплатного компьютера с нуля. Пособие для начинающих



      Я занимаюсь разработкой электроники. Начал сравнительно недавно — когда микроконтроллеры от Atmel стали известны благодаря платформе Arduino. Тогда меня это не особо заинтересовало — на тот момент я уже программировал их из AVR Studio, читал истории DiHalt и мечтал о разработке собственного автопилота. 3 курс, Новосибирск, НГУ — это было увлекательно…

      Но я с интересом наблюдаю за развитием и ростом индустрии встраиваемых и портативных систем: появление RaspberryPI, многообразия SoC и плат на их основах, системы умного дома, интернет вещей, смартфоны с растущей вычислительной мощностью — все это фантастический простор для деятельности. Результатом наблюдения стало желание поучаствовать: попробовать себя в разработке простой платформы, с целью изучения и накопления опыта.
      Начать проектирование
    • Организация виртуальной памяти

        Привет, Хабрахабр!

        В предыдущей статье я рассказал про vfork() и пообещал рассказать о реализации вызова fork() как с поддержкой MMU, так и без неё (последняя, само собой, со значительными ограничениями). Но прежде, чем перейти к подробностям, будет логичнее начать с устройства виртуальной памяти.

        Конечно, многие слышали про MMU, страничные таблицы и TLB. К сожалению, материалы на эту тему обычно рассматривают аппаратную сторону этого механизма, упоминая механизмы ОС только в общих чертах. Я же хочу разобрать конкретную программную реализацию в проекте Embox. Это лишь один из возможных подходов, и он достаточно лёгок для понимания. Кроме того, это не музейный экспонат, и при желании можно залезть “под капот” ОС и попробовать что-нибудь поменять.
        Читать дальше →
        • +39
        • 48.3k
        • 4
      • Как подключиться к космическому спутнику и исполнить детскую мечту

          Дмитрию Пашкову из мордовского города Рузаевка 28 лет – возраст, когда многие из нас уже определились со своим профессиональным будущим и уже даже успевают добиться определенных профессиональных высот. Дмитрий в этом смысле исключение — в положительном смысле. По профессии он системный администратор, но по призванию – радиолюбитель. Несколько недель назад он прославился на всю страну, перехватив в момент солнечного затмения 20 марта сигнал с действующего российского метеоспутника «Метеор-М2». Я связался с Дмитрием и он любезно согласился поделиться своим опытом – объяснить, как любой из нас может сам наладить «связь с космосом» и добиться того, о чем мечтал каждый из нас в детстве – увидеть Землю из космоса.



          Оригинал фото

          Читать дальше →
        • Защита устройств от неправильной подачи полярности питания

          • Tutorial
          image
          При проектировании промышленных приборов, к которым предъявляются повышенные требования по надёжности, я не раз сталкивался с проблемой защиты устройства от неправильной полярности подключения питания. Даже опытные монтажники порой умудряются перепутать плюс с минусом. Наверно ещё более остро подобные проблемы стоят в ходе экспериментов начинающих электронщиков. В данной статье рассмотрим простейшие решения проблемы — как традиционные так и редко применяемые на практике методы защиты.
          Читать дальше →
        • Мифы о пингвинах

            Введение


            Это статья для тех кто хотел чуть побольше узнать о Linux, но либо стеснялся спросить, либо пока не задумался. Начнем мы с самого большого разочарования — операционной системы Linux нет.
            Читать дальше →
          • Классификация 3D принтеров



            3D печать уверенно набирает обороты и мы все чаще видим посты о том, что 3D принтер научили печатать детали для МКС, органы, дома и многое другое. Зарубежные технологические издания начинают говорить о том, что 3D печать способна воскресить промышленность в штатах, а сервис shapeways, у нас на глазах, показывает интересные темпы роста, хоть и далекие от промышленных. При таком обилии хвалебных текстов о надвигающейся революции в производстве на ум приходит мысль о том, что российский сегмент практически свободен, но так ли просто достигнуть промышленных масштабов при удишевлении самих принтеров и появления open source проектов? Решать вам, а пища для размышлений на тему под катом.
            Читать дальше →
          • Сделай шаг к ПЛИС



              Ты ждал знак? Вот он!

              Много лет я не решался начать программировать ПЛИС, потому что это сложно, дорого и больно (как мне казалось). Но хорошо, когда есть друзья, которые помогают сделать первый шаг. И теперь я не понимаю одного — ПОЧЕМУ Я ЖДАЛ ТАК ДОЛГО?

              Сейчас я помогу сделать первый шаг и тебе!

              Я готов!
            • Работа по контракту в Лондоне


                Вид на City, сердце деловой Великобритании

                Перед тем как перейти «на контракт» я работал в постоянным сотрудником в Лондоне в небольшой (700 серверов / 8 коллег) компании. Моя специализация — Wintel engineer, то есть я могу работать к в суппорте так и в техподдержке проектов. Все что связано с продуктами Microsoft. Я подумывал об уходе с постоянной работы, однако волею судеб пришлось уйти совершенно неподготовленным. Именно отсюда начинается мой рассказ о контрактниках в Великобритании.
                Читать дальше →
              • Создание собственных драйверов под Linux



                  Многие мои друзья и знакомые крутят пальцем у виска или задаются вопросом: не жмёт ли мне череп, когда узнают, что я пишу драйвера под Linux. Слово “драйвер” окутано каким-то почти мистическим смыслом, и постичь Дао его написания способны лишь избранные гуру.
                  К счастью это не так. Не знаю, как обстоят дела с написанием драйверов под другие операционные системы, в т.ч. и наиболее популярные, но под linux, вне зависимости от аппаратной архитектуры драйвера пишутся очень просто. Для написания драйвера необходимы базовые знания языка си, представление о работе ОС линукс (базовые), понимание того, что мы хотим получить, желание чтения документации и исходных кодов, ну и усидчивость. Всё.
                  Вы хотите посмотреть как написать драйвер для своего устройства? Тогда ныряйте под кат!
                  Читать дальше →
                • Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть вторая, практическая)

                    Это вторая часть моей статьи по разработке драйверов для ведомых SPI устройств в Linux. Предыдущая часть находится здесь.

                    3. Разработка userspace протокольного SPI драйвера с использованием spidev


                    Как уже было сказано выше, для SPI устройств существует ограниченная поддержка userspace API, с поддержкой базовых полудуплексных read() и write() вызовов для доступа к ведомым SPI устройствам. Используя ioctl() вызовы, можно производить полнодуплексный обмен данными с ведомым устройством, а также изменение параметров устройства.
                    Читать дальше →
                    • +44
                    • 34.5k
                    • 9
                  • Пишем свой драйвер под Linux

                    image

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

                    То, что мы сегодня создадим, корректнее будет назвать LKM (Linux Kernel Module или загрузочный модуль ядра). Стоит сказать, что драйвер – это одна из разновидностей LKM.

                    Писать модуль мы будем под ядра линейки 2.6. LKM для 2.6 отличается от 2.4. Я не буду останавливаться на различиях, ибо это не входит в рамки поста.

                    Мы создадим символьное устройство /dev/test, которое будет обрабатываться нашим модулем. Хочу сразу оговориться, что размещать символьное устройство не обязательно в каталоге /dev, просто это является частью «древнего магического ритуала».

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