Pull to refresh
4
0

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

Send message

Радиоуправляемый выключатель своими руками. Часть 1 — Hardware

Reading time10 min
Views280K
Этот пост — первая часть из серии рассказов о том, как можно относительно несложно сделать своими руками радиоуправляемый выключатель полезной нагрузки.
Пост ориентирован на новичков, для остальных, думаю, это будет «повторение пройденного».


Примерный план (посмотрим по ходу действия) ожидается следующий:
  1. Hardware выключателя
  2. Тестирование и подготовка
  3. Software выключателя
  4. «Центр управления»

Приступим.
Total votes 86: ↑82 and ↓4+78
Comments116

Использование EXPLAIN. Улучшение запросов

Reading time10 min
Views179K
Когда вы выполняете какой-нибудь запрос, оптимизатор запросов MySQL пытается придумать оптимальный план выполнения этого запроса. Вы можете посмотреть этот самый план используя запрос с ключевым словом EXPLAIN. EXPLAIN – это один из самых мощных инструментов, предоставленных в ваше распоряжение для понимания MySQL-запросов и их оптимизации, но печальным фактом является то, что многие разработчики редко его используют. В данной статье вы узнаете о том, какие данные предлагает EXPLAIN на выходе и ознакомитесь с примером того, как использовать его для оптимизации запросов.
Читать дальше →
Total votes 39: ↑32 and ↓7+25
Comments14

PHP: фрактал плохого дизайна

Reading time32 min
Views206K

Предисловие


Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

Тут другое дело. PHP не просто неудобен в использовании, плохо мне подходит, субоптимален или не соответствует моим религиозным убеждениям. Я могу рассказать вам много хороших вещей о языках, которых я стараюсь избегать, и много плохих вещей о языках, которые мне нравятся. Вперёд, спрашивайте! Получаются интересные обсуждения.

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Читать дальше →
Total votes 450: ↑392 and ↓58+334
Comments538

Криптоанализ хэш-функции ГОСТ Р 34.11-2012

Reading time19 min
Views59K
В конце 2013 г. Технический комитет по стандартизации «Криптографическая защита информации» (ТК 26), Академия криптографии Российской Федерации и ОАО «ИнфоТеКС» объявили о проведении конкурса по криптоанализу отечественного стандарта хэширования ГОСТ Р 34.11-2012. Подробное описание условий конкурса опубликовано на сайте www.streebog.info. Таким образом, можно считать, что существующие работы по анализу данного криптостандарта стали предметом повышенного интереса криптоаналитиков, поскольку они являются отправной точкой для дальнейших исследований алгоритма ГОСТ Р 34.11-2012.
На текущий момент известно несколько работ, посвященных криптоанализу ГОСТ Р 34.11-2012. Но именно в работе Zongyue Wang, Hongbo Yu и Xiaoyun Wang «Cryptanalysis of GOST R Hash Function» предложены наиболее эффективные атаки на данный алгоритм. Поэтому, на мой взгляд, именно эта работа представляет наибольший интерес среди работ по данной теме; ее перевод я и предлагаю вашему вниманию.
В переводе сохранены авторские названия стандартов хэширования: под названием «ГОСТ» имеется в виду стандарт 1994 года ГОСТ Р 34.11-94, а «ГОСТ Р» обозначает исследуемый в работе алгоритм ГОСТ Р 34.11-2012.
Работа переведена и публикуется на русском языке с разрешения ее авторов.

Перевод здесь
Total votes 83: ↑79 and ↓4+75
Comments29

Два и более рабочих места на одном компьютере — бесплатное решение

Reading time12 min
Views103K

В данной статье рассматривается идея и практическое руководство по создания многопользовательской рабочей станции (multiseat) с использованием виртуализации KVM, с возможностью удаленного управления через libvirt. С помощью этого руководства возможно создать два и более рабочих мест как в офисе, так и дома, которым может потребоваться возможность полного использования графической подсистемы компьютера. Причем можно на одном системном блоке реализовать одновременно работу различных операционных систем Windows, Linux, Mac OS X, остальное по вкусу.
Читать дальше →
Total votes 75: ↑67 and ↓8+59
Comments53

Почему я сменил место работы

Reading time1 min
Views101K
На моем прошлом месте работы я перестал использовать наш продукт, потому что Linux перестал быть приоритетом. Называлась куча причин — малая доля пользователей, «только для гиков», «все журналисты используют маки» и прочее.

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

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

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

Многое еще можно сказать, но все это — история о предательстве. Компания предала не только лояльных пользователей их продукта, но и своих собственных разработчиков. Результат? Потеря мотивации и массовые увольнения. В том числе и мое.
Читать дальше →
Total votes 368: ↑257 and ↓111+146
Comments195

IPv6 теория и практика: введение в IPv6

Reading time7 min
Views139K
Этой статьёй я хочу начать цикл, посвященный IPv6. Я являюсь инструктором академии Cisco, поэтому, если вы в совершенстве знаете материал нового CCNA Routing & Switching, то скорее всего, не найдёте в цикле ничего нового. Речь пойдёт о структуре и особенностях протокола IPv6, а также, применении его на маршрутизаторах Cisco (маршрутизация RIP, OSPF, EIGRP, списки контроля доступа, и др. – как пойдёт). В первой статье мы поговорим о структуре IPv6 пакета, записи адресов, префиксе. Вторая статья цикла доступна здесь. Информация подойдёт для новичков, имеющих, тем не менее, некоторые знания по IPv4 и модели OSI.
Цикл статей основан на материалах моего блога, которые, в свою очередь, основаны на опыте преподавания, работы с оборудованием и вольном переводе и обдумывании официального курса CCNA Routing & Switching.
Итак, начнём. Не буду останавливаться на стандартных рассуждениях о том, что IPv4 адресов мало, о том, что NAT и прокси – это костыли, о том, что костыли пока работают, и никто не хочет переходить на IPv6, вместо этого – сразу к сути.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments42

Смарт-карты для самых маленьких

Reading time6 min
Views54K
Поскольку статья вводная и обзорная, то рассматриваться будет простейшая разновидность смарт-карт — SIM-карты, полагаю, что таких карт на планете сейчас больше всего.
По сегодняшним меркам стандарт SIM выглядит архаично, но зато он идеален для первого знакомства с миром смарт-карт, усвоение принципов, которые заложены в основу этого стандарта, облегчит дальнейшее погружение в тему.
Если Вы «карточник», то вряд ли узнаете для себя что-то новое, разве что какие-нибудь не очень понятные моменты разложатся по полочкам, а может быть Вы разложете по полочкам то, что недопонял автор (но, напоминаю, держимся в рамках SIM!).

Читать дальше →
Total votes 51: ↑45 and ↓6+39
Comments19

SELinux — описание и особенности работы с системой. Часть 2

Reading time6 min
Views40K


Коллеги, в первой части статьи о SElinux мы рассмотрели основные особенности работы с системой SELinux. Как и обещано, теперь публикуем вторую часть, в которой основное внимание уделено настройке политик. Что же, приступим.

Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments8

SELinux – описание и особенности работы с системой. Часть 1

Reading time11 min
Views276K


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

Читать дальше →
Total votes 76: ↑74 and ↓2+72
Comments13

Как я тестировал IDE компании «Мультиклет»

Reading time4 min
Views7.4K
В качестве среды разработки компанией «Мультиклет» был выбран текстовый редактор Geany с основными функциями интегрированной среды разработки. Для поддержки необходимых для отладки инструментов разработчиками компании «Мультиклет» был написан плагин MC-DBG, о тестировании возможностей которого пойдет речь в данной статье.
Читать дальше →
Total votes 16: ↑9 and ↓7+2
Comments0

10 потенциальных SQL ошибок, которые делают программисты

Reading time6 min
Views233K
Оригинал статьи носит название «10 SQL ошибок, которые делают Java разработчики», но, по большому счёту, приведённые в ней принципы можно отнести к любому языку.



Java программисты мешают объектно-ориентированное и императивное мышление в зависимости от их уровня:
— мастерства (каждый может программировать императивно)
— догмы (шаблон для применения шаблонов где-либо и их именование)
— настроения (применять истинный объектный подход немного сложнее чем императивный)

Но всё меняется, когда Java разработчики пишут SQL код.
Читать дальше →
Total votes 80: ↑54 and ↓26+28
Comments33

Iodine: DNS туннель через закрытый WiFi

Reading time9 min
Views104K
Дано: полное отсутствие интернета и виднеющийся WiFi hot-spot, в котором предлагают ввести логин-пароль. Или 3G, в котором нет интернета (потому что закончились деньги), но есть страничка провайдера с предложением дать оных денег.
Задача: получить интернет (легальным?) методом посредством туннелирования его через DNS.
Решение: linux+ iodine + routing + NAT + squid, и всё это под управлением network manager'а.
В статье: описание организации DNS туннеля посредсредством программы iodine, нюансы организации маршрутизации через образовавшийся туннель, самописный помощник для iodine и network manager.

Лирика: Занесла меня судьба на славный остров Кипр, кой славен своим П/пафосом, фраппэ и таким интернетом, после которого российские опсосы начинают выглядеть ангелами во плоти. В частности, попытка подключиться к интернетам закончилась ожиданием, что местный провайдер (Сyta) смилостивится, таки закончит пить оный фраппэ и дотянет до меня поганый ADSL 4Мб/768кбит всего-навсего за €151 (подключение) + €40 в месяц (за 4 мегабита! >_<). Ожидание тянулось и тянулось (как бы уже третья неделя пошла), а рядом был славный PrimeTel, который предлагал за €4/час (172р/час) осчастливить меня интернетом прямо тут и сейчас через едва видный WiFi. Я бы даже и согласился, но видна точка доступа была только на балконе, а в квартире связь была нестабильной и часто терялась. Так что оставалось одно решение (помимо взлома WEP-сети соседей, что уж совсем уголовщина) — это злоупотребить сервисом DNS, который безвозмездно, то есть даром, предоставляет PrimeTel для своих незарегистрировавшихся подлюченцев.

Те, кому интересно «howto» — решение далее по тексту, а пока что начнём с теории процесса.
Читать дальше →
Total votes 136: ↑134 and ↓2+132
Comments75

Основы разработки клиента сети I2P. Часть 2

Reading time5 min
Views9K
В предыдущей статье были рассмотрены задачи, необходимые для построения I2P маршутизатора, способного принимать участие в работе сети, включающие взаимодействие с другими маршутизаторами через обычный Интернет, построение тоннелей разных видов и сбор информации о других узлах сети. Несмотря на важность этих задач, I2P клиент, выполняющий лишь функции маршутизатора, с точки зрения пользователя является «вещью в себе», поскольку не делает ничего интересного пользователю. Данная статья посвящена протоколам прикладного уровня, предназначенных для передачи пользовательских данных через сеть I2P.

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments2

Онлайн вещание через Nginx-RTMP: несколько готовых рецептов

Reading time5 min
Views154K
Недавно я наткнулся на топик "Сервер онлайн-вещаний на базе nginx" о замечательном модуле Романа Арутюняна (@rarutyunyan) для nginx: nginx-rtmp-module. Модуль очень прост в настройке и позволяет на основе nginx создать сервер публикации видеозаписей и живого вещания.

Про сам модуль можно прочитать на его странице на GitHub, я же хочу привести несколько простых примеров использования. Надеюсь, топик поможет новичкам в видеоделах (таким как я).

Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments22

Архитектура Поиска Яндекса. Лекция для Малого ШАДа

Reading time4 min
Views29K
В этой лекции на примере Яндекса будут рассмотрены базовые компоненты, необходимые для организации интернет-поисковика. Мы поговорим о том, как эти компоненты взаимодействуют и какими особенностями обладают. Вы узнаете также, что такое ранжирование документов и как измеряется качество поиска.

Лекция рассчитана на старшеклассников – студентов Малого ШАДа, но и взрослые могут узнать из нее много нового об устройстве поисковых машин.





Первый компонент нашей поисковой машины – это Паук. Он ходит по интернету и пытается выкачать как можно больше информации. Робот обрабатывает документы таким образом, чтобы по ним было проще искать. По простым html-файлам искать не очень удобно. Они очень большие, там много лишнего. Робот отсекает все лишнее и делает так, чтобы по документам было удобно искать. Ну и непосредственно поиск, который получает запросы и выдает ответы.
Конспект лекции
Total votes 62: ↑59 and ↓3+56
Comments9

Пятничный чит

Reading time1 min
Views15K


Тут прошёл слух, что начиная с 19-й версии Opera в настройках можно включить дополнительные опции суперюзера каким-то чит-кодом. Делитесь решениям в комментариях, если уже нашли.
Total votes 40: ↑14 and ↓26-12
Comments24

Кешируем статику

Reading time4 min
Views37K
Существует мнение, что nginx — отличный инструмент для отдачи статики.
Есть статьи, где описываются настройки sendfile или aio для «улучшения» отдачи.
На Хабре есть чего почитать о настройке proxy_store с proxy_cache для минимизации проблем со стороны мозгов сайта.
Еще в QA иногда возникают вопросы про кеширование картинок, например.
Зачем заниматься этой ерундой! — говорят опытные пользователи — OS лучше вас знает как кешировать файлы! С кешем и префетчем в современных OS, точнее FS, проблем нет! Зачем плодить свои кеши и списки популярных материалов и все такое?...

Есть только одно вредное «но» — в среде исполнения nginx (в общем случае Linux) понятие "файл" и вообще «файловая система» — просто понятие.
И однажды, когда я, подмонтировав сервер по sshfs, обновил один скриптик, случилось волшебное:
1. На каждой страничке стало на 4 картинки больше.
2. Сервера сдохли.

Что поделать — картинки хранились на glusterFS. Наступил полный FUSE.
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments23

Асинхронность: назад в будущее

Reading time22 min
Views113K

Асинхронность… Услышав это слово, у программистов начинают блестеть глаза, дыхание становится поверхностным, руки начинают трястись, голос — заикаться, мозг начинает рисовать многочисленные уровни абстракции… У менеджеров округляются глаза, звуки становятся нечленораздельными, руки сжимаются в кулаки, а голос переходит на обертона… Единственное, что их объединяет — это учащенный пульс. Только причины этого различны: программисты рвутся в бой, а менеджеры пытаются заглянуть в хрустальный шар и осознать риски, начинают судорожно придумывать причины увеличения сроков в разы… И уже потом, когда большая часть кода написана, программисты начинают осознавать и познавать всю горечь асинхронности, проводя бесконечные ночи в дебаггере, отчаянно пытаясь понять, что же все-таки происходит…

Именно такую картину рисует мое воспаленное воображение при слове “асинхронность”. Конечно, все это слишком эмоционально и не всегда правда. Ведь так?.. Возможны варианты. Некоторые скажут, что “при правильном подходе все будет работать хорошо”. Однако это можно сказать всегда и везде при всяком удобном и не удобном случае. Но лучше от этого не становится, баги не исправляются, а бессонница не проходит.

Так что же такое асинхронность? Почему она так привлекательна? А главное: что с ней не так?
Назад в будущее...
Total votes 130: ↑124 and ↓6+118
Comments42

Непрактичные сортировки – бессмысленные и беспощадные

Reading time7 min
Views103K
image

А что это мы всё об умных да об эффективных алгоритмах? А давайте эту тоскливую осеннюю пятницу развеем чем-нибудь контрпродуктивным!?

Представляю Вашему вниманию ТОП-5 самых нетрадиционных сортировок всех времён и народов.

Младопрограммистам такое полезно показывать в дидактических целях. Всех остальных как минимум позабавит.
Начнём
Total votes 95: ↑82 and ↓13+69
Comments54

Information

Rating
4,294-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity