Search
Write a publication
Pull to refresh
3
0.2

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

Send message

Бутлоадер с AES-128 и EAX на AVR Assembler в 1024 байта

Reading time23 min
Views80K

Или как я перестал бояться и полюбил ассемблер

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

Хорошая мера защиты — обновления программного обеспечения. Китайские клоны автоматически отмирают после каждой новой прошивки, а лояльные пользователи получают нашу любовь, заботу и новые возможности. Робин Гуды при таком раскладе, естественно, достанут свои логические анализаторы, HEX-редакторы и начнут ковырять процесс прошивки с целью ублажения русско-китайского сообщества.

Хоть у нас и не было проектов, которые требуют подобных мер защиты, было понятно: заняться этим надо, когда-то это пригодится. Погуглено — не найдено, придумано — сделано. В этой статье, я расскажу, как уместить полноценное шифрование в 1 килобайт и почему ассемблер — это прекрасно. Много текста, кода и небольшой сюрприз для любителей старого железа.
Читать дальше →

Git: за пределами возможного

Reading time8 min
Views25K

Глава 1



Все началось с того, что мне подарили PipBoy. Очень удобная вещь: захотелось пиццы — набрал команду callPizza() и вот уже курьер везёт тебе горячий круг! «Как здорово!» — думал я.
Недавно я устроился на работу в должности программиста. Коллеги мне сразу стали расхваливать систему контроля версий Git. Ну что ж. Раз говорят, что хороший — нужно читать про него. Прочитав первую книгу, в голове был полный сумбур. Я решительно ничего не понимал. «Что за бабуйня такая? Для чего вообще это нужно?» — показалось мне.
После тяжёлого трудового дня я направился домой. Был тёплый августовский вечер, во дворе играли детишки. У каждого из них на руке был свой PipBoy. Насколько же проникли технологии в нашу жизнь. Ведь совсем недавно ничего этого не было, а первые образцы стоили сотни тысяч долларов. А вот теперь почти у каждого на руке! Погрузившись в свои мысли, я вовсе не заметил, как из-за угла кто-то выехал на мотоцикле. Мчавшись на огромной скорости, он совершенно не замечал людей на дороге. А тем более во дворе.
Продолжение?

Борьба за трафик. Как вывести сайт из-под спам-фильтра Google (Вторая Часть)

Reading time8 min
Views18K
Всем привет!

Настало время опубликовать вторую часть статьи — заключительную, с хеппи эндом. Для тех, кто не в теме, в первой части я подробно рассказала о том, как выяснить попал ли ваш сайт под спам-фильтры Google и что с этим делать, если все-таки, фильтры к вашему сайту были применены и трафик с Google упал.





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

И объял меня systemd до глубин дистрибутива моего

Reading time1 min
Views36K
Оно случилось: Debian начал переход на systemd.

Для системных администраторов это выглядит вот так:
localhost# apt-get update;apt-get upgrade
...
The following packages have unmet dependencies:
 systemd-sysv : Breaks: sysvinit-core but 2.88dsf-53 is installed.
The following actions will resolve these dependencies:

     Remove the following packages:
1)     sysvinit-core               

Accept this solution? [Y/n/q/?]


Что это означает? Это означает прохождение рубежа в постепенной миграции на systemd, решение о котором было принято чуть ранее, замена sysv-init на systemd. Пакет sysvinit-core содержит в себе /sbin/init, и его заменяют на другой /sbin/init из состава systemd.

Кто-то видит в происходящем шаг в светлое будущее, где все будут счастливы и почти не надо будет умирать, кто-то видит акт трагичного и смиренного принятия роковой судьбы, тёмной длани Рэдхэта, простирающейся на все дистрибутивы вокруг и устраняющий Фатальный Недостаток других систем запуска, кто-то просто со стоическим отчаянием ждёт ещё больше и больше Поттеринга (Л. Поттеринг — автор systemd, он же автор pulseaudio, он же автор неповторимого стиля изложения новых идей, при которых для старого образа жизни и мышления не остаётся места).

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

PPTP vs L2TP vs OpenVPN vs SSTP

Reading time6 min
Views462K
Недавно я искал информацию об отличиях существующих VPN-технологий и наткнулся на эту статью. Здесь вкратце описаны преимущества и недостатки основных VPN, очень легко и доступно. Предлагаю сообществу перевод статьи.

VPN-провайдеры обычно предлагают на выбор несколько типов подключения, иногда как часть различных тарифных планов, а иногда в составе единого тарифного плана. Цель этой статьи – провести обзор доступных вариантов VPN и помочь понять основы используемых технологий.

Заметка про длину ключа шифрования


Грубо говоря, длина ключа, используемого при создании шифра, определяет, сколько времени потребуется для взлома с помощью прямого перебора. Шифры с более длинными ключами требуют значительно больше времени для перебора, чем более короткие («брутфорс» означает перебор всех возможных комбинаций, пока не будет найдена верная).

Сейчас почти невозможно найти VPN-шифрование с использованием ключа длиной менее 128 бит и все сложнее найти 256-битное шифрование в предлагаемых OpenVPN-решениях, ключи которых бывают даже 2048 бит. Но что означают эти цифры на практике, 256-битное шифрование действительно более безопасное, чем 128-битное?
Читать дальше →

Собственный Dynamic DNS

Reading time3 min
Views97K
Иногда необходимо прописать DNS для компьютера с динамическим IP адресом. Простым путем для этого являются сервисы по типу dyndns, описанные в недавнем топике Связываем домен и динамический IP. Иногда такой подход работает достаточно плохо.

Напрмер в моей ситуации, провайдер иногда меняет мой публичный IP адрес. Это иногда случается обычно раз в несколько месяцев. Кроме того, мой домашний компьютер перезагружается крайне редко. За это время сервис dyndns, которым я пользовался ранее успевал пару раз прислать мне оповещения о неактивности с целью отключить «неиспользуемый» аккаунт. Перейти на вручную прописываемую DNS зону также не получается, потому что иногда адрес все же меняется. Причем обычно об этом узнаешь когда нужен доступ к домашнему компьютеру здесь и сейчас.

Для реализации описываемого метода понадобится сервер в интернете с DNS сервером bind на нем. А так же доменная зона, субдомен которой мы будем выделять для нашего компьютера. Описывается вариант с подключением Linux-компьютера к Linux-серверу. Для использования других операционных систем понадобится почитать мануалы и модифицировать некоторые шаги.
Читать дальше →

Как научить сканеры сканировать молча по кнопкам без окон и костылей?

Reading time6 min
Views145K
Как заставить сканеры вообще (речь пойдет про Canoscan LIDE 210) молчаливо по кнопке сканировать файл с нужными параметрами в требуемую папку?

image


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

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

Автоматическое сканирование в сетевую папку с кнопки на МФУ

Reading time4 min
Views33K
Добрый день.
Очень давно была такая статья как реализовать автоматическое сканирование при нажатии кнопки на сканере, но то ли у меня руки кривые, то ли нежелание детально разбираться, но подвиг автора я повторить не смог. И всё же решил реализовать эту идею по нескольким причинам:
— не отвлекать оператора за АРМ, к которому подключено МФУ;
— ускорить процесс получения электронных копий за счет автоподатчика листов и двухстороннего сканирования.
Читать дальше →

Интересные приемы программирования на Bash

Reading time6 min
Views133K
Эти приемы были описаны во внутреннем проекте компании Google «Testing on the Toilet» (Тестируем в туалете — распространение листовок в туалетах, что бы напоминать разработчикам о тестах).
В данной статье они были пересмотрены и дополнены.
Читать дальше →

Флаги /proc/cpuinfo для архитектуры x86

Reading time3 min
Views26K
Все мы хоть раз в жизни использовали команду cat /proc/cpuinfo. Многие — лишь для того, чтобы узнать количество процессоров и ядер в системе, некоторые — узнать о поддержке конкретной технологии, например, аппаратной виртуализации.
Однако очень мало линуксоидов воспринимают всерьез самую длинную строку вывода — так называемые flags, а еще меньше знают, как расшифровывается тот или иной параметр, поскольку зачастую флаги имеют дикие и непонятные имена. Я постараюсь описать большинство распознаваемых флагов, специфичных для архитектуры x86.
Читать дальше →

Новый выделенный сервер: приемка и проверка

Reading time10 min
Views42K
Новый сервер: приемка и проверка

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

В этой статье мы расскажем о том, как можно получить спецификацию Linux-сервера в командной строке.
Читать дальше →

Как сдать налоговую декларацию за 2013 год электронным способом за несколько дней (РФ)

Reading time6 min
Views14K
Этот пост будет посвящен тому, как легко, просто и быстро (потеряв максимум тридцать минут в налоговой) заполнить и отправить налоговую декларацию за 2013 год (то есть ту, которую надо отправить до 30 апреля 2014 года). Попутно будет разобрано получение доступа в личный кабинет налогоплательщика и какие возможности это даёт. Фактически это пошаговая инструкция как всё это сделать за пару дней.

Всё вышесказанное относится к Налоговой Службе РФ.
Читать дальше →

Алгоритмы сортировки в виде пошаговой анимации

Reading time1 min
Views66K
Сортировка последовательности данных — один из столпов компьютерной науки. Проблема в том, как делать сортировку наиболее эффективным образом, и эта задача стоит перед исследователями чуть ли не с первого дня после изобретения компьютера. На сайте sorting.at различные алгоритмы сортировки проиллюстрированы в виде пошаговой анимации, для лучшего понимания принципов их работы.


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

Вангеры были переизданы на Steam

Reading time1 min
Views61K
image
Сегодня игра вышла в переизданном виде на Steam под покровительством KranX Productions.
Сбылась мечта западного журналиста, который в конце 90-х сожалел о том, что игра опубликована только в России и недоступна западному игроку.
Многие не знают о её существовании, но эта игра стала одной из тех первых российских игр, после которых западные игроки и издатели обратили внимание на наш геймдев.
Сейчас Калининград — один из центров российского геймдева. И это стало возможным не только благодаря особенной экономической зоне, но и благодаря примеру и кадрам KD-Lab.
Для меня огромная честь быть лично знакомым с некоторыми членами команды KD-Lab.
Поздравляю КранКа и весь состав KD-Lab с этим событием!
Ну и, конечно, игроков, которые помнят и любят Вангеров!
Вперед за Нюхой, товарищи!

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

Краткий обзор open source средств резервного копирования

Reading time9 min
Views76K
Средства для резервного копирования информации можно разделить на несколько категорий:
— Для домашнего/офисного применения (резервирование важных документов, фотографий и пр. на NAS либо в облако);
— Для средних и крупных (offline) предприятий (резервирование важных документов, отчетности, баз данных и пр. как на серверах так и на рабочих станциях сотрудников);
— Для малых веб-проектов (резервирование файлов и баз данных с хостинговой площадки либо VPS/VDS на удаленный хост (или наоборот));
— Для крупных веб-проектов с распределенной архитектурой (почти то же самое, что и на offline-предприятиях только с учетом работы в глобальной сети, а не локальной, и как правило с использование open source средств).

С программными продуктами для дома и офиса все достаточно просто есть масса решений как открытых так и проприетарных, от cmd/bash скриптов до решений известных производителей ПО.
В enterprise секторе все достаточно скучно есть масса программных продуктов которые давно и успешно работают на многих предприятиях, в крупных банках и пр, рекламировать никого не будем. Многие из этих продуктов хорошо упростили жизнь системных администраторов, за достаточно «скромные деньги» по меркам некоторых предприятий.
В данной статье более подробно рассмотрим open source решения для резервного копирования веб-проектов разного масштаба, а также проведем тест на скорость резервирования файлов.
Статья будет полезна веб-мастерам, небольшим веб-студиям, ну и возможно даже бывалый админ найдет здесь что-то полезное.
Читать дальше →

Геймификация багфикса. Как мы превратили исправление ошибок в увлекательную многопользовательскую online-игру

Reading time4 min
Views24K
Автор: maxim_korobtsev, WorkAndPlay.Ru

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

Фиксить баги скучно, если не превращать это в игру. Особенно, если речь идет о низкоприоритетных багах, которые не были исправлены в свое время из-за незначительности. Но, обо всем по порядку!

Как все начиналось?


Все началось за несколько месяцев до Багатлона, когда мы, Work&Play, вместе с OK придумывали игровые механики и само соревнование. Родилась достаточно неплохая идея: расфасовать все множество накопившихся низкоприоритетных багов по группам (коробкам с багами). Для каждого бага заранее указать навыки, которые он прокачивает у того, кто его фиксит или проверяет. Далее раз в несколько месяцев устраивать соревнование. Причем, победителем будет не тот, кто больше пофиксил, а тот, кто больше всех прокачался пока багфиксил. Также хотелось, чтобы вся игра проходила без отрыва от работы(в рабочие дни), по тикетам из багтрекера и доступ к ней был прямо из Jira.

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

Что у нас получилось в итоге?


В результате, после нескольких месяцев работы над плагином, у нас получилось вот это:
главный экран jira модуля для геймификации багфикса
Читать дальше →

Нужны ли менеджеры в IT?

Reading time5 min
Views120K
image

Ларри Пейдж и Сергей Брин всерь­ез считали, что их компании управленцы незачем. В 2002 году они попытались выстроить горизонтальную оргструктуру — без менеджеров, руководящих программистами. Так, считали они, ничто не будет мешать быстрому обмену и появлению идей. Кроме того, им хотелось воссоздать ту атмосферу студенческой жизни, которая так нравилась им в университете. Эксперимент длился недолго: спустя несколько месяцев его пришлось прекратить. Брин и Пейдж изменили свое мнение о внутреннем устройстве компании, когда сотрудники валом повалили к Пейджу с вопросами, далекими от творчества: с финансовыми отчетами, жалобами друг на друга и т.п. А уж когда компания стала расти, ее основатели убедились, что управленцы полезны и в других отношениях: объясняют стратегию, значимость проектов и их очередность, налаживают сотрудничество в коллективе, следят за карьерным ростом людей и за тем, чтобы все рабочие процессы и системы соответствовали задачам бизнеса.

Тем не менее, многие разработчики до сих пор считают, что менеджеры им не нужны. Так ли это? Давайте разбираться вместе.
Читать дальше →

Поднятие терминального сервера на примере LTSP и CentOS 5.4

Reading time6 min
Views30K

Интро


Сейчас стала очень популярна идея использования тонких клиентов, а в частности – для организации учебных классов в ВУЗах и не только. Вот и для моего любимого ВУЗа пришлось потрудиться.
Не так давно мне была поставлена задача выбора и настройки терминального сервера на CentOS 5.4. Почему именно CentOS – ума не приложу, но скорее всего это было предпочтение наших системных администраторов, которые в последствии будут поддерживать терминальный сервер. Ну а мне выбирать права предоставлено не было.
Читать дальше →

Йогуртница на основе arduino

Reading time3 min
Views74K
картинка для привлечения внимания
Все знают, что йогурт очень полезный продукт, да к тому же и вкусный. Под катом небольшое повествование о том, как я решил сделать йогуртницу, немного фото и скетч.
Читать дальше →

Information

Rating
3,843-rd
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Разработчик Directum RX
Lead
From 350,000 ₽
.NET Core
PostgreSQL
DevOps
Reverse development
C#