Pull to refresh
34
0
Дмитрий @artyfarty

User

Send message

Малиновый Прог против Интернета Кирпичей, или Raspberry Pi с графикой на read-only microSD

Reading time16 min
Views86K
Запуск Raspberry Pi с полной поддержкой графики на microSD, навсегда остающейся в режиме read-only после установки системы. Отсутствие какой-либо записи данных на флэш-память повышает надёжность устройства, приближая его к промышленному классу изделий. Пошаговая инструкция. Небольшой театр инженерного абсурда для развлечения аудитории.


Мне понадобилось сетевое устройство с открытым кодом и выходом HDMI, и я решил попробовать Малиновый Прог. Да, я именно так предлагаю переводить Pi: Прог. Понятное дело, даже одноплатнику нужна операционка. И вот, захожу я на официальный сайт, ожидая встретить там подробное руководство по созданию суровой, неломаемой Вещи à la turnkey box. Но народ, как ни в чём не бывало, устанавливает Ubuntu (т.е. Raspbian Jessie) прямо на microSD, размещая и swap там же. Как обычный десктоп, face palm.

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

Итак, по стандартной инструкции нормальный одноплатник превращается в раздутый десктоп со средним временем жизни год-полтора, пока изношенная флэшка не сдохнет, превратив в общем-то хороший девайс в кирпич. И большинство людей, похоже, это вполне устраивает. Меня — нет.
Читать дальше →
Total votes 65: ↑60 and ↓5+55
Comments205

«Полезняшки» или «Реестр Windows как платформа»

Reading time10 min
Views48K
Хочу рассказать вам историю, как решение конкретных прикладных задач привело меня к использованию реестра Windows в качестве платформы для хранения и исполнения кода.
Читать дальше →
Total votes 92: ↑84 and ↓8+76
Comments35

Климатическая система в квартире своими руками

Reading time21 min
Views107K
Кто-то в детстве мечтает изобрести лекарство от рака, кто-то — стать космонавтом или владельцем свечного заводика. А я мечтал о том, что у меня появится климатическая система, и в квартире, наконец, не будет душно, вечная простуда от сквозняков исчезнет, а горло перестанет першить от сухости. И теперь мечта исполнена!

Примерно с декабря 2015 по июнь 2016 года я читал форумы, катался по строительным магазинам, собирал систему в квартире и на балконе, паял контроллер и писал прошивку — и добился своего.

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

Схема установки
А если чуть подробнее, то...
Total votes 87: ↑84 and ↓3+81
Comments290

Исследуем защиту и восстанавливаем аркады Namco System ES1

Reading time10 min
Views26K
Tank! Tank! Tank! Arcade

Введение

Эта история началась практически сразу после написания статьи об исследовании аркады небезызвестной корейской компании: в аркадном автомате Tank! Tank! Tank! от Namco вышел из строя жесткий диск (что неудивительно, т.к. производитель установил в автомат не отличающиеся надежностью Seagate 7200.12), диск взяли с рабочей аркады и скопировали его через WinHex, после чего игра перестала запускаться. Предположив, что целостность диска была нарушена неосторожным нажатием клавиши в окне редактирования данных на диске в WinHex, был взят другой диск с еще одного рабочего автомата, скопирован аналогичным образом, который также перестал запускаться. Тут-то и стало понятно, что в диск каким-то образом встроена защита от копирования.
Arcade Linux Error
Читать дальше →
Total votes 93: ↑92 and ↓1+91
Comments55

Яндекс открывает ClickHouse

Reading time14 min
Views167K
Сегодня внутренняя разработка компании Яндекс — аналитическая СУБД ClickHouse, стала доступна каждому. Исходники опубликованы на GitHub под лицензией Apache 2.0.



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

В этой статье мы расскажем, как и для чего ClickHouse появился в Яндексе и что он умеет; сравним его с другими системами и покажем, как его поднять у себя с минимальными усилиями.
Читать дальше →
Total votes 176: ↑172 and ↓4+168
Comments204

Как перезагрузить сервер?

Reading time6 min
Views131K
Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.

В этой статье: что мешает серверу перезагрузиться и как ему помочь.

Начнём с теории ребута.

При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.

Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
Читать дальше →
Total votes 93: ↑86 and ↓7+79
Comments82

Modulo Camera не умеет снимать засвеченные фотографии

Reading time2 min
Views15K


Проблемы с передержанными фотографиями навсегда уйдут в прошлое, если разработка специалистов из Массачусетского технологического института окажется так хороша, как её описывают на сайте института. А это вполне возможно: не зря научная работа заняла почётное второе место на Международной конференции по вычислительным методам в фотографии (2015 International Conference on Computational Photography).

Новая фотокамера Modulo Camera с расширенным динамическим диапазоном (High Dynamic Range) делает отличные снимки независимо от условий освещения. Самые тёмные и самые светлые объекты в кадре будут одинаково хорошо детализированы.
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments17

Чистилка. Боремся с нечистым на руку софтом

Reading time3 min
Views29K
Некоторое время назад моя сестра попросила посмотреть ноутбук который «глючит». Выражалось это в показе рекламных баннеров со звуком на рабочем столе, открытие дополнительных вкладок в браузере. И, самое главное, загрузка iframe с рекламой, который полностью перекрывал страницу и не давал нормально пользоваться интернетом.



Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments63

Дело о загадочном Access denied

Reading time4 min
Views47K
Утром в службу поддержки обратился один из разработчиков корпоративного приложения. Он не мог сделать копию с базы данных MS SQL Server, и просил выяснить причину ошибки.

Первое с чего стоит начать — проверить ошибку на воспроизводимость.
Попробуем снять копию командой:
BACKUP DATABASE [SDB] TO DISK=N'\\FS1\Backup\sdb_full.bak' WITH COPY_ONLY

Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments36

Не Таиландом единым или Как фрилансеру за три часа поменять место обитания без проблем с визами

Reading time10 min
Views51K
С падением курса рубля жизнь фрилансера-путешественника сильно осложнилась. Однако если все же заработок позволяет, а европейского гостеприимства, как и солнца, ох как не хватает в России – добро пожаловать в восемь стран, где фрилансер найдет покой и красивую картинку позади монитора без проблем и волнений с оформлением виз.


Маршруты кочевников за полторы тысячи лет не поменялись. Но нравы стали помягче
Читать дальше →
Total votes 69: ↑64 and ↓5+59
Comments126

Выбор платформы для экспериментов с БПЛА

Reading time8 min
Views54K
Выбрать платформу для экспериментов с БПЛА сейчас есть из чего. Автопилотов на рынке много, поэтому прежде всего последует небольшой обзор доступных устройств, а затем рассмотрим победителя — Pixhawk (да да, вот так, сразу, никакой интриги).

Критерии выбора:

  • открытая архитектура (software & hardware);
  • современная элементная база (отпадает все по шаблону *avr*);
  • грамотная, красивая архитектура (отпадают шаблоны *ardu*o и *Rasberi*);
  • механизмы SIL/HIL симуляции;
  • наличие открытого ПО наземной станции.

Посмотрим, что осталось:
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments41

Sound Keeper — предотвращает «засыпание» цифровых аудио-выходов SPDIF или HDMI

Reading time2 min
Views18K
Если вы когда-нибудь пользовались цифровыми аудио-выходами (SPDIF или HDMI), наверняка вы сталкивались с проблемой, когда во время тишины акустика «засыпала», после чего начало следующего звука обрезалось из-за того, что акустике нужно время на «пробуждение» и инициализацию после сна. Это сильно раздражает. Если у вас никогда не было такой проблемы — значит вам повезло с драйвером. Если же проблема имеет место — она решается непрерывным воспроизведением абсолютной тишины. Костыль, но это единственный доступный способ заставить драйвер не выключать цифровой аудио-выход.

Ранее для этих целей существовала одна программа с названием SPDIF Keep Alive. Но на мой взгляд она слишком тяжёлая для решения такой простой задачи: требует наличия фреймворка .NET, расходует слишком много памяти и процессорного времени. Поэтому я написал на C++ новую программу для решения проблемы.

Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments40

Concurrency структуры в .net. ConcurrentDictionary изнутри

Reading time4 min
Views38K
Все началось с одного собеседования, которое и натолкнуло меня к написанию данной статьи. Довольно большая часть разработчиков на платформе .Net не понимает базовые вещи, хотя и использует их повседневно, например lock-ом оборачивают все методы, использующие ConcurrentDictionary, хотя можно было бы обойтись обычным Dictionary<>.

В науке существуют 3 основных способа реализации конкурентных структур данных:
• Lock-free структуры данных;
• Fine-grained блокировка;
• Transactional memory implementation(транзакционная память);

ConcurrentDictionary<TKey, TValue> — это thread-safe аналог Dictionary<TKey, TValue>. В его основе лежит, так называемый Fine-grained блокировка.
Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments6

Ракета на термоядерном топливе от MSNW

Reading time15 min
Views51K
С днём космонавтики! Прочитав пост «Под эгидой NASA строят термоядерный космический двигатель», я решил найти более подробную информацию о данном проекте. Далее я хочу рассказать о том, что же представляет из себя этот двигатель, и как он работает.



Читать дальше →
Total votes 111: ↑108 and ↓3+105
Comments77

GTD на кухне: чем накормить голодного программиста

Reading time9 min
Views56K
imageИтак, как и обещал в первой части, продолжаем упрощать бытовую жизнь хабражителя. Сегодня 8 марта (кстати, девушки, поздравляю!) и части мужчин хочется порадовать своих женщин и освободить их от «рабского труда» на кухне, а другой части – приготовить для себя не традиционные пельмени\вареники\сосиски, а что-то посущественней.
Вот несколько проверенных рецептов, которые пригодятся и первым, и вторым.

Осторожно, много картинок. Голодным не входить!
Читать дальше →
Total votes 220: ↑168 and ↓52+116
Comments214

Как начать летать, хоть на чем-то, самостоятельно

Reading time7 min
Views286K
Мое детство прошло среди людей которые все время на чем то летали. Строили, разрабатывали новое и тут же на нем летали. В 5 лет для меня стало открытием, что кто то в этом мире может не летать. К своим 26 годам я успел попробовать почти все на чем можно летать. Хочу поделиться своим опытом и рассказать о доступных возможностях.
Что бы начать летать у Вас есть такие варианты:

1. Парители (в этой статье)
  • Параплан
  • Дельтаплан
  • Планер

2. Моторный полет (вторая статья)
  • Легкий самолет
  • Мотодельтаплан
  • Паратрайк
  • Парамотор
  • Мотопланер



Начать летать самостоятельно
Total votes 281: ↑261 and ↓20+241
Comments270

Принцип 20/80 на примере Хабра

Reading time4 min
Views2.5K
Как-то стало интересно действует ли Закон Парето на таком само регулируемом ресурсе как Хабр. Кратко напомню что закон Парето это «Принцип 20/80» в данном случае можно трактовать что 20% пользователей приносят 80% результата. И раз уж на нашем ресурсе есть весьма точный метод оценка результатов пользователей на основе мнения разнородной, независимой, децентрализованной толпы. Почему бы не взять его в расчет. Про метод оценки читаем книгу «Мудрость толпы» Джеймса Шуровьески (мне кажется каждый Хабаровчанин должен о ней знать). Для оценки брались значения кармы (общий результат деятельности за все время по мнению других пользователей) и рейтинга (результат деятельности за последние 50 дней по мнению синтетических алгоритмов хабра).

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

Картинка для красоты:
image

Расчеты под катом
Total votes 77: ↑69 and ↓8+61
Comments30

Активация Windows

Reading time8 min
Views49K
Винда релизится только раз в году, а убунта два раза. 2:1 — пингвин выйграл.

image

Близится час Х, в связи с чем решил посмотреть, что предлагают нам пираты для решения проблем с операционной системой.
Читать дальше →
Total votes 170: ↑114 and ↓56+58
Comments77

Бесплатность некачественного продукта — не индульгенция

Reading time3 min
Views636
В очередной дискуссии об одной бесплатной программе и претензиям к ней проскочило:

Я просто не понимаю возмущения, не нравится БЕСПЛАТНЫЙ сервис/софт — не пользуйтесь. Зачем вопить об этом на всю Ивановскую?.. Найдите аналог, который будет устраивать.


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

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

Так вот, совершенно не важно, заплатили вы за что-то или нет (если, конечно, не украли). В любом случае существует договор между сторонами, частью которого являются рекламные обещания и информация о товаре или услуге.

Например, в рамках какой-нибудь рекламной акции вам дарят кружку. При этом очевидно, что из неё можно пить, что её материал и краска не взаимодействуют с содержимым и т.д. То есть, вы уверены, что из бесплатной кружки можно пить, как и из любой другой. И если это не так, вы можете подавать на дарителя в суд. Потому что сама кружка является обещанием того, что её можно использовать как кружку, если только не сказано иного (например, что это исключительно декоративная конструкция, сделанная из ядовитых материалов). Иначе, это будет сознательное введение потребителя в заблуждение.

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

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

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

Так вот.

«Это кружка, мы даём её вам бесплатно» — это информация о продукте и определённые обещания относительно него, которые нужно выполнять.

«Это красный крест, мы лечим вас бесплатно» — это информация об услуге и обещания относительно её качества, которые нужно выполнять.

«Это [такой-то] софт» — это информация о продукте, означающая, что софт должен отвечать [таким-то] ожиданиям.

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

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

Бесплатный софт, как только он назвался конкретным типом ПО и начал давать другие обещания пользователю, явные или скрытые, больше не имеет права не выполнять обещания или наносить прямой ущерб пользователю, оправдываясь своей бесплатностью.
Total votes 50: ↑30 and ↓20+10
Comments40

15 хаков для iPhone, которые сделают вашу жизнь проще

Reading time6 min
Views11K
Несомненно, многие скажут, что iPhone обладает всем, чего можно ждать от смартфона. И хотя он на самом деле даёт нам многое, современное общество всегда будет желать большего. Мы не неудовлетворены айфоном (да это же потрясающая штука), но мы всё равно хотели бы добавить чуточку сверх функционала, ведь правда в том, что есть маленькие задачки, которые невозможно решить без внедрения небольшого хака. Да и к тому же есть вещи, которые Эпл просто не хотел бы вам позволять.

Этот список состоит из 15 пунктов, которые позволят получить тот скромный прирост функционала, что оптимизирует работу айфона. Эти изменения несомненно ещё больше улучшат ваше отношение к мобильным устройствам да и просто облегчат жизнь…

Все хаки были проверены и мы подтверждаем их работоспособность.

Ой как мне интересно!
Total votes 67: ↑50 and ↓17+33
Comments80
1
23 ...

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity