Pull to refresh
26
0
Михаил @nivs

User

Send message

Smart плинтус 1.0

Reading time3 min
Views75K


Озаботила меня одна проблема – темный коридор по пути из спальни на кухню. Ну, знаете, люблю ночью на кухню ходить, но в потемках некомфортно, а т.к. коридор относительно ширины достаточно длинный, то велика вероятность отклонения от маршрута при ориентировании по встроенным в голову гироскопам. Ошибка накапливается, да еще ноги разной длины, ходил с вытянутыми руками и попадал в дверной проем не с первого раза.
Да, конечно есть всякие ночники, датчики движения, умные дома, но у меня есть лучше, у меня есть пластиковый плинтус с кабельным каналом.
Поэтому возникла идея запихать туда светодиодную ленту и посмотреть, как она там себя будет чувствовать и получилось, знаете ли, довольно круто, такая подсветочка, как в космических кораблях.
Читать дальше →
Total votes 107: ↑104 and ↓3+101
Comments177

Systemd за пять минут

Reading time4 min
Views624K
Наша компания занимается администрированием веб-серверов на базе CentOS. Довольно часто наши клиенты используют веб-приложения на базе python, ruby или java. Для автозапуска подобных приложений есть готовые шаблоны для написания стартап-скриптов. Но прогресс не стоит на месте, вышел уже второй релиз CentOS 7 и, следуя старой традиции «не ставить dot-zero релизы на продакшен», мы начинаем предлагать клиентам сервера на базе CentOS 7.1 (1503).

В CentOS7, так же как и в его родителе RHEL7, используется systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего.

image

Огромный монстр с множеством возможностей, гибкими настройками и мегабайтами документации…

Но что делать, если стоит задача быстро-быстро, вот прямо вчера, сделать автозапуск некоего сервиса?
Давайте выжмем из документации минимально необходимый набор информации для создания простых старт-стоп скриптов.
Знакомство с systemd
Total votes 70: ↑66 and ↓4+62
Comments58

Вы неправильно пишете животных

Reading time5 min
Views358K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments351

Понимая Docker

Reading time7 min
Views1M
Уже несколько месяцев использую docker для структуризации процесса разработки/доставки веб-проектов. Предлагаю читателям «Хабрахабра» перевод вводной статьи о docker — «Understanding docker».

Что такое докер?


Докер — это открытая платформа для разработки, доставки и эксплуатации приложений. Docker разработан для более быстрого выкладывания ваших приложений. С помощью docker вы можете отделить ваше приложение от вашей инфраструктуры и обращаться с инфраструктурой как управляемым приложением. Docker помогает выкладывать ваш код быстрее, быстрее тестировать, быстрее выкладывать приложения и уменьшить время между написанием кода и запуска кода. Docker делает это с помощью легковесной платформы контейнерной виртуализации, используя процессы и утилиты, которые помогают управлять и выкладывать ваши приложения.
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments62

Полифазный сон: отзывы, «теория», личный опыт

Reading time6 min
Views417K


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

Соответственно, недосып – вторая большая проблема для современного человека (и при этом, что характерно, она обычно таки не решает первую). Ложиться спать вовремя зачастую тупо не хочется: есть такое нехорошее ощущение, что тогда в жизни останутся только сон и работа.

Вовремя – это значит резервируя на сон не менее 8-ми часов, как всех нас учили. Но в итоге по факту большинство из нас спит часов 6, а потом «отрывается» в выходные. Но хотя этих 6-ти часов мало для сна, их все еще чересчур много в сутках: желание (и тенденции!) «урезать» сон еще больше – не исчезают. В поисках волшебной таблетки «как мало спать и отлично высыпаться» я, как, наверно, и многие, в свое время натолкнулся на учение о полифазном сне.

Что это?
Читать дальше →
Total votes 78: ↑68 and ↓10+58
Comments96

Типы данных наносят ответный удар

Reading time12 min
Views34K
Это вторая часть моих размышлений на тему «Python, каким бы я хотел его видеть», и в ней мы более подробно рассмотрим систему типов. Для этого нам снова придётся углубиться в особенности реализации языка Python и его интерпретатора CPython.

Если вы программист на языке Python, для вас типы данных всегда оставались за кадром. Они где-то там существуют сами по себе и как-то там взаимодействуют друг с другом, но чаще всего вы задумываетесь об их существовании только когда возникает ошибка. И тогда исключение говорит вам, что какой-то из типов данных ведёт себя не так, как вы от него ожидали.

Python всегда гордился своей реализацией системы типов. Я помню, как много лет назад читал документацию, в которой был целый раздел о преимуществах утиной типизации. Давайте начистоту: да, в практических целях утиная типизация — хорошее решение. Если вы ничем не ограничены и нет нужды бороться с типами данных по причине их отсутствия, вы можете создавать очень красивые API. Особенно легко на Python получается решать повседневные задачи.

Практически все API, которые я реализовывал на Python, не работали в других языках программирования. Даже такая простая вещь, как интерфейс для работы с командной строкой (библиотека click) просто не работает в других языках, и основная причина в том, что вам приходится беспрестанно бороться с типами данных.

Не так давно поднимался вопрос добавления статической типизации в Python, и я искренне надеюсь, что лёд, наконец, тронулся. Постараюсь объяснить, почему я против явной типизации, и почему надеюсь, что Python никогда не пойдёт по этому пути.

Читать дальше →
Total votes 66: ↑53 and ↓13+40
Comments38

Возврат денег за Windows 8 на ноутбуке Lenovo в Нотике

Reading time21 min
Views221K
В этом посте излагается моя история по возврату windows 8.
Купил ноутбук Lenovo в магазине Нотик. Деньги удалось вернуть в досудебном порядке, за что большое магазину спасибо. Это сэкономило время как мне, так и вам. Это также уменьшило ваши расходы на моего адвоката (в случае если бы я выйграл дело, а я бы обязательно выйграл), штраф в размере 50% стоимости сделки, а также выплаты неустойки. Кроме того, я бы требовал возврата общеизвестной стоимости Windows 8, а не той суммы, которую определила леново.




О том, что нужно сделать для возврата восьмёрки читайте делее.
Читать дальше →
Total votes 223: ↑169 and ↓54+115
Comments444

«Умный дом» собственными руками. Часть 3. Синтез и распознавание голоса с помощью Google

Reading time9 min
Views83K
В прошлой статье мы смогли добиться получения изображения с наших веб-камер в виде снимков раз в секунду. Теперь пришла пора взяться за обещанное — распознавание и синтез голоса.
Читать дальше →
Total votes 75: ↑70 and ↓5+65
Comments47

Как связать два asterisk-сервера (часть первая. SIP)

Reading time3 min
Views12K
imageИтак, имеем два астериска.
Задача — организовать прямой дозвон через префикс туда и обратно.
Исходные данные:
Астериск 1.4 на обеих концах
kazan.asterisk.ru — имя первого астериска.
volgograd.asterisk.ru — имя второго астериска.
Предполагается, что оба астериска имеют прямой выход в интернет (в ином случае тоже проблем быть не должно, нужно настроить NAT и использовать параметр nat=yes)

Пусть 1-й астериск у нас находится в Казани, другой в Волгограде. Обратимся к автомобильным кодам регионов.
Тогда дозвон из Волгограда будет 9-16-<номер>.
Из Казани 9-34-<номер>.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments3

Спать мало, но правильно?

Reading time7 min
Views897K
Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
Читать дальше →
Total votes 713: ↑670 and ↓43+627
Comments420

Screen — текстовый оконный менеджер

Reading time4 min
Views31K
Людям, которые в Линуксе часто работают с консолью приходилось сталкиваться с проблемой необходимости нескольких терминалов, например в одном из них пользователь правит текстовый файл, а в другом идет компиляция программы. Существует много способов решения данной проблемы, например открыть несколько псевдо-терминалов или открыть несколько вкладок. В данной статье я хотел бы рассмотреть способ, не связанный с каким-то конкретным терминалом: использовать консольный оконный менеджер Screen.

Итак, что же представляет из себя Screen?

Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments38

Speed Install 2.0 − репозиторий под Windows

Reading time3 min
Views14K
Репозитории под Линукс и под Мак существуют давно и делают жизнь пользователей этих систем более комфортной.

Преимущество репозитория:
− выбор программы из нескольких конкурентов в нужной категории,
− всегда установка последней версии,
− автоматическая установка, без бесконечных «Далее», «Согласен», «Принимаю».

Вопрос о создании репозитория уже поднимал dozent в своем топике, и Goodkat в комментарии.

Программа Speed Install 2.0 выполняет поставленные задачи и не ограничивается продуктами Microsoft.

В 2008 году я скачал Гугл Хром, чтобы посмотреть, что за зверь такой, да так на нем и остался. Точно так же разработчики передали мне программу на пробу, а теперь я не представляю, как буду без нее дальше. К комфорту быстро привыкаешь.
 
Обзор программы Speed Install
Total votes 134: ↑83 and ↓51+32
Comments156

Организация backup-сервера. Linux, ZFS и rsync

Reading time5 min
Views64K
TL;DR:
Статья о настройке бекапа линуксовых серверов. В качестве хранилища используется раздел ZFS с включенными дедубликацией и компрессией. Ежедневно делаются снапшоты, которые сохраняются в течение недели (7 штук). Ежемесячные снапшоты хранятся в течение года (еще 12 штук). В качестве транспорта выступает rsync: на сервере он запущен демоном, на клиентах он запускается из crontab.
Читать дальше →
Total votes 30: ↑24 and ↓6+18
Comments20

Почему трава зеленая, а программисты крутые

Reading time6 min
Views155K


Я люблю находить на новостных ресурсах статьи о том, что программисты получают очень много денег. Я сразу пролистываю их до комментариев и с теплом в душе читаю гневные отзывы о том, что программисты ничего не делают и не заслуживают таких денег. Но после прочтения возникает мысль: знают ли они, кто такие программисты? Или они исходят в своих суждениях из неверного знания, даже не подозревая об этом. Например, мало кто знает, почему трава зеленая. Подумайте об этом. Следует ли из ваших объяснений зелености травы именно зеленый цвет?
Читать дальше →
Total votes 242: ↑202 and ↓40+162
Comments189

Обзор образовательных ресурсов к 1 сентября

Reading time4 min
Views66K
Сегодня наступил день, символизирующий одно из сильнейших и лучших свойств человека — его интеллект. День Знаний, он же 1 сентября, он же начало учебного года. Ведь кем бы мы были без знаний и науки? Болтались бы где-то внизу пищевой пирамиды.



В честь этого рокового для каждого школьника и студента дня, мы решили сделать подборку различных образовательных ресурсов в сфере IT. Когда-то мы уже делали нечто подобное для желающих научиться веб-разработке и дизайну. Всё-таки учиться никогда не поздно, как бы банально это ни звучало. А в наше время так и совсем нельзя прекращать учиться, а то велик риск всё-таки оказаться на дне пирамиды, только уже социальной.
Читать дальше →
Total votes 69: ↑60 and ↓9+51
Comments21

Насколько опасен открытый рекурсивный DNS-сервер?

Reading time6 min
Views58K


    Неоспоримо, что «выставляя сервер» в интернет необходимо позаботиться о его безопасности и максимально ограничить доступ к нему. Протокол DNS может использоваться как для атак на инфраструктуру (DNS сервер, канал) жертвы, так и для атаки на другие компании. За последний год количество таких атак увеличилось как минимум в 2 раза. На сайте digitalattackmap.com, который визуализирует DDoS атаки, DNS выделен из общего списка наравне с атаками на Web(80/443).

    Сервис DNS работает (в основном) по протоколу UDP, который не предполагает предварительной установки соединения, поэтому его без проблем можно использовать для атак на другие серверы (spoofing) без специальной подготовки. По информации из разных источников1,2 на текущий момент от 8 до 20 миллионов DNS серверов отвечают на рекурсивные запросы. Это могут быть как неправильно настроенные авторитативные и кэширующие DNS-серверы, так и простые CPE.

    Меня заинтересовало, насколько опасно (для себя и окружающих) держать открытый рекурсивный DNS сервер, поэтому я решил провести небольшое исследование.

Читать дальше...
Total votes 39: ↑39 and ↓0+39
Comments45

Python, каким бы я хотел его видеть

Reading time11 min
Views46K
Всем известно, что мне не нравится третья версия Python и то, в каком направлении развивается этот язык программирования. За последние несколько месяцев я получил много писем с вопросами о моём видении развития Python и решил поделиться своими мыслями с сообществом, чтобы, по возможности, дать пищу для размышлений будущим разработчикам языка.

Можно сказать совершенно точно: Python не является идеальным языком программирования. На мой взгляд, основные проблемы вытекают из особенностей интерпретатора и мало связаны с самим языком, однако все эти нюансы интерпретатора постепенно становятся частью самого языка, и поэтому они так важны.

Я хочу начать наш разговор с одной странности интерпретатора (слоты) и закончить его самой большой ошибкой архитектуры языка. По сути, эта серия постов является исследованием решений, заложенных в архитектуре интерпретатора, и их влияния как на интерпретатор, так и на сам язык. Я считаю, что с точки зрения общего дизайна языка такие статьи будут выглядеть гораздо интереснее, чем просто высказывание мыслей по улучшению Python.
Читать дальше →
Total votes 97: ↑87 and ↓10+77
Comments37

Почему Биткоин – это хорошо

Reading time4 min
Views38K


Ко мне обратились с просьбой помочь аргументировано доказать, что BTC – это хорошо, несмотря на негативную реакцию на них России и некоторых окрестных стран.

Кстати, как характерно расположились на карте страны, согласно отношению к BTC…

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

Итак – чем же хороши BTC.
Читать дальше →
Total votes 110: ↑68 and ↓42+26
Comments163

Python на Хабре

Reading time7 min
Views451K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →
Total votes 182: ↑162 and ↓20+142
Comments65

Качество кода Open Source впервые превзошло качество кода проприетарных проектов на C/C++

Reading time2 min
Views24K
Вчера организация The Linux Foundation объявила о запуске проекта Core Infrastructure Initiative (CII) для финансовой поддержки бедствующих Open Source проектов вроде OpenSSL, который в последние годы жил на пожертвования $2000 в год.

В официальном пресс-релизе The Linux Foundation подчёркивает, что необходимость финансовой поддержке совершенно не связана с низким качеством кода OSS, совсем наоборот. Свободное ПО превосходит проприетарный софт по качеству кода и по безопасности. В подтверждение этого The Linux Foundation сослалась на последнее исследование Coverity Open Scan, результаты которого опубликованы 15 апреля, через неделю после публикации информации о баге Heartbleed.

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

В этой ситуации важно понимать, что качество кода СПО действительно объективно превосходит качество кода проприетарного софта. Условно говоря, если бы код OpenSSL не был открыт, мы могли вообще никогда не узнать об этой уязвимости.
Читать дальше →
Total votes 66: ↑46 and ↓20+26
Comments55

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity