Как стать автором
Обновить
2
0

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

Отправить сообщение

Ещё раз об OpenSSL

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

В этой статье будут рассмотрены известные вопросы генерации ключей, а также менее известный вопрос шифрования файлов больших объемов. О сертификации здесь не будет речи.
Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии18

Основы компьютерных сетей. Тема №2. Протоколы верхнего уровня

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


Приятного чтения
Всего голосов 44: ↑43 и ↓1+42
Комментарии27

Искусственные нейронные сети простыми словами

Время на прочтение7 мин
Количество просмотров212K
image

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

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


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

Но что если дама мне симпатична, но с ней не о чем разговаривать? Или наоборот?
Всего голосов 60: ↑59 и ↓1+58
Комментарии92

Как отправить электронное письмо с помощью Python: руководство для «чайников»

Время на прочтение6 мин
Количество просмотров151K


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

Редактор издания Motherboard Майкл Берн (Michael Byrne) написал материал о том, как отправлять электронные письма для различных почтовых ящиков с помощью Python. Мы представляем вашему вниманию адаптированный перевод этой заметки.
Читать дальше →
Всего голосов 26: ↑16 и ↓10+6
Комментарии8

Программируем микроконтроллеры в QtCreator

Время на прочтение9 мин
Количество просмотров25K


Почему-то в интернете мало документации про qbs, и я решил немного исправить эту ситуацию. Попробую описать в виде повествования, что необходимо сделать, что бы в QtCreator можно было компилировать (и не только) что угодно под что угодно.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии25

[UPD]Программирование микроконтроллеров 1986ВЕ91Т в Qt Creator

Время на прочтение4 мин
Количество просмотров20K
Хочу показать, как можно писать код и собирать hex-файлы для отечественных микроконтроллеров компании «Миландр» в удобной среде Qt Creator. Обычно для этих средств используются другие среды разработки, но с появлением системы QBS все несколько поменялось.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии4

Псевдо ООП в C

Время на прочтение3 мин
Количество просмотров70K


Язык Си не является объектно-ориентированным языком. И значит все что будет описано ниже это костыли и велосипеды.
ООП включает в себя три столпа: инкапсуляция, наследование, полиморфизм. Ниже я покажу как этих вещей можно добиться в С.
Читать дальше →
Всего голосов 41: ↑31 и ↓10+21
Комментарии26

Коаны Vim

Время на прочтение5 мин
Количество просмотров28K
Читать дальше →
Всего голосов 82: ↑62 и ↓20+42
Комментарии19

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

Время на прочтение21 мин
Количество просмотров71K

Предисловие


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

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


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

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

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии21

Организация виртуальной памяти

Время на прочтение14 мин
Количество просмотров73K
Привет, Хабрахабр!

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

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

Как подключиться к космическому спутнику и исполнить детскую мечту

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



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

Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии13

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

Время на прочтение3 мин
Количество просмотров212K
image
При проектировании промышленных приборов, к которым предъявляются повышенные требования по надёжности, я не раз сталкивался с проблемой защиты устройства от неправильной полярности подключения питания. Даже опытные монтажники порой умудряются перепутать плюс с минусом. Наверно ещё более остро подобные проблемы стоят в ходе экспериментов начинающих электронщиков. В данной статье рассмотрим простейшие решения проблемы — как традиционные так и редко применяемые на практике методы защиты.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии71

Мифы о пингвинах

Время на прочтение6 мин
Количество просмотров22K

Введение


Это статья для тех кто хотел чуть побольше узнать о Linux, но либо стеснялся спросить, либо пока не задумался. Начнем мы с самого большого разочарования — операционной системы Linux нет.
Читать дальше →
Всего голосов 47: ↑27 и ↓20+7
Комментарии77

Классификация 3D принтеров

Время на прочтение4 мин
Количество просмотров45K


3D печать уверенно набирает обороты и мы все чаще видим посты о том, что 3D принтер научили печатать детали для МКС, органы, дома и многое другое. Зарубежные технологические издания начинают говорить о том, что 3D печать способна воскресить промышленность в штатах, а сервис shapeways, у нас на глазах, показывает интересные темпы роста, хоть и далекие от промышленных. При таком обилии хвалебных текстов о надвигающейся революции в производстве на ум приходит мысль о том, что российский сегмент практически свободен, но так ли просто достигнуть промышленных масштабов при удишевлении самих принтеров и появления open source проектов? Решать вам, а пища для размышлений на тему под катом.
Читать дальше →
Всего голосов 32: ↑18 и ↓14+4
Комментарии28

Сделай шаг к ПЛИС

Время на прочтение7 мин
Количество просмотров262K


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

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

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

Я готов!
Всего голосов 69: ↑60 и ↓9+51
Комментарии90

Работа по контракту в Лондоне

Время на прочтение11 мин
Количество просмотров95K

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

Перед тем как перейти «на контракт» я работал в постоянным сотрудником в Лондоне в небольшой (700 серверов / 8 коллег) компании. Моя специализация — Wintel engineer, то есть я могу работать к в суппорте так и в техподдержке проектов. Все что связано с продуктами Microsoft. Я подумывал об уходе с постоянной работы, однако волею судеб пришлось уйти совершенно неподготовленным. Именно отсюда начинается мой рассказ о контрактниках в Великобритании.
Читать дальше →
Всего голосов 79: ↑73 и ↓6+67
Комментарии42

Создание собственных драйверов под Linux

Время на прочтение24 мин
Количество просмотров205K


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

Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть вторая, практическая)

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

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


Как уже было сказано выше, для SPI устройств существует ограниченная поддержка userspace API, с поддержкой базовых полудуплексных read() и write() вызовов для доступа к ведомым SPI устройствам. Используя ioctl() вызовы, можно производить полнодуплексный обмен данными с ведомым устройством, а также изменение параметров устройства.
Читать дальше →
Всего голосов 46: ↑45 и ↓1+44
Комментарии9

Пишем свой драйвер под Linux

Время на прочтение8 мин
Количество просмотров67K
image

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

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

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

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

Читать дальше →
Всего голосов 251: ↑240 и ↓11+229
Комментарии78

10 главных правил убивания жуков

Время на прочтение5 мин
Количество просмотров42K
Понимаю, что заголовок выглядит как машинный перевод, но лучшего эквивалента " Top 10 Bug-Killing Coding Standard Rules " придумать не смог.

10 главных правил по избеганию багов — подсказали в комментах

Данный пост представляет собой вольный пересказ ключевых понятий книги Michael Barr «Embedded C Coding Standard», изложенных в его выступлении на вебинаре в июне этого года (не знаю как поставить тэг «перевод»).
Часть правил применима только к C++ и расширениям C, а часть и к стандарту языка.
Читать дальше →
Всего голосов 34: ↑23 и ↓11+12
Комментарии71

Информация

В рейтинге
Не участвует
Откуда
Glasgow, Scotland South, Великобритания
Дата рождения
Зарегистрирован
Активность