Pull to refresh
0
0

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

Send message

«Уходя, гасите всё». Принцип построения частично отключаемой квартирной электросети — один из этапов подготовки к созданию «умного дома»

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

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

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

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

Но делать это каждый раз и лень, и можно забыть, особенно если спешишь или голова чем-то сильно занята. Хочется, чтобы это делалось как минимум централизованно и быстро, одним движением, как максимум — автоматически. Далее я опишу, каким образом я решил задачу минимум.
Читать дальше →
Total votes 48: ↑43 and ↓5+38
Comments174

Настройка Nginx + LAMP сервера в домашних условиях Часть 2: Настройка backend: PHP + MySQL

Reading time8 min
Views38K
Здравствуйте.

В предыдущей статье, мы познакомились с настройкой связки nginx + apache в режиме хостинга и репозиториями dotdeb.
В этой статье мы познакомимся с настройкой backend: PHP, MySQL.

В части PHP мы познакомимся со следующими темами:
— общая настройка PHP
— правильная настройка PHP + Postfix для отправки писем через внутренний SMTP сервер посредством функции mail(),
— настройка кеширования кода и/или данных на основе APC.

В части MySQL я попробую раскрыть базовые моменты повышения производительности, ибо по умолчанию сервер MySQL настроен очень не эффективно.

Кто заинтересовался, добро пожаловать под кат
Читать дальше →
Total votes 69: ↑41 and ↓28+13
Comments32

Настройка Nginx + LAMP сервера в домашних условиях. Часть 1: Настройка frontend — backend

Reading time8 min
Views84K

Здравствуйте. Недавно я задавал вопрос по поводу создания цикла статей. Вот первая статья.

В этом цикле статей вы узнаете как грамотно настроить LAMP сервер, аля «хостинг только мощней».
Мы будем использовать следующий стек: nginx — apache-mpm-itk — mod_php — mysql — linux/debian.

Буду освещать следующие темы:
  • Настройка frontend — backend
  • Расчет возможностей сервера, настройка mysql и backend
  • Рассказ об опыте на базе intel s3420gp

Совершенно уверенно могу сказать, что настройка LAMP сервера не ограничивается 6-10 командами установки и раскомментирования определенных строчек в файлах настройки.
Пример: по умолчанию nginx не дает возможности закачать на сервер тело запроса больше чем 1M. Если не настроить данный параметр, будет возникать ошибка 414 (Request-URI Too Large), при попытке добавления небольшой серии фотографий.
У apache совершенно противоположное: у него тело запроса по умолчанию не ограничено. Это делает возможным совершать пакости.

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

Мы узнаем о том какие бывают простые атаки и как от них защищаться. Сразу скажу, что при базовой конфигурации frontend в лице nginx — backend apache все равно остается уязвим.

Я практически уверен, что я не смогу уместить все в одну статью. Добро пожаловать под кат.
Читать дальше →
Total votes 107: ↑75 and ↓32+43
Comments78

Лекция №02: MSP430. Города и регистры

Reading time11 min
Views29K
Примечание переводчика: Не так давно, мне пришел заказанный мною LaunchPad. Единственное что мне тогда хотелось, это сразу же начать мигать светодиодиками. Так я столкнулся с первой проблемой — у меня Linux. Почитав про основные IDE для разработки под эту платформу, я понял, что ничего хорошего мне тут не светит. А использовать Energia, просто напросто не позволяла религия. Имею привычку(не знаю, хорошую или нет) не работать с подобными инструментами «повышенной абстракции» пока не изучу подноготную того с чем работаю. Поэтому, Energia быстро отсеялась из возможных вариантов. Осталось только одно — собрать тулчейн gcc-msp430, включающий в себя все необходимое. Ноутбук у меня очень слабый, поэтому собирался этот тулчейн аж полдня. Что никак не радовало меня, так как я уже хотел МИГАТЬ. Когда собрал, столкнулся со следующей сложностью. Очень мало русскоязычной литературы и справки по этому микроконтроллеру. Что-то поспрашивал среди хабровчан, что-то кое-как смог вытащить из примеров кода от TI, но проблема оставалась — я слабо понимал все то что делаю. Продолжалось это ровно до тех пор, пока я не набрел на один замечательный англоязычный блог в котором хоть и на английском языке, но довольно доступно объяснялись все основы. Его я и принялся читать и переводить. Признаюсь честно, перевод я этот писал не столько для хабры, сколько для себя, чтобы на все 100% понять изложенный материал. Сказать что понял все на 100% — немного соврать. Скажу честно — от электроники я далёк, на момент получения лаунчпада я обладал нулевыми знаниями в этой сфере. Поэтому некоторые моменты перевода, могут, наверное, заставить плакать кровавыми слезами более серьезных разработчиков. К примеру — Vcc и Vss или PxREN. Идею я понимаю, но я сомневаюсь что перевел технически грамотно. Тем не менее, переводить я старался так, чтобы было понятно такому же нулю как я. В общем, если что — не обессудьте. Как мог. Кроме того, в переводах есть абзацы которые написаны чисто от себя, чтобы немного более подробно разжевать материал.
Ах да, начал переводить с лекции 02, так как в первой «Вводной» лекции содержится слишком много воды, которой и так море и на просторах хабры, да и вообще интернета. Мы же хотим сразу же работать, а не читать о том, как хорошо поступили TI выпустив дешевые LaunchPad'ы.
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments9

Samba4, Radius и PPTP с использованием MS-CHAP v2

Reading time15 min
Views34K
…У-ф-ф, свершилось. Всё оказалось довольно просто, хотя времени потратить пришлось изрядно, в основном на поиск информации, коей на просторах Интернета (полезной, конечно) – кот наплакал… А уж как она (эта информация) разрознена! Поэтому, решил написать это руководство, основанное на собственном опыте внедрения. Главное, что всё будет собрано в одном месте (кроме, возможно, настроек bind9, но об этом чуть позже).

Итак, задача. Есть сервер с Ubuntu 12.04. Он должен стать:

  • PDC Windows-домена c Active-Directory.
  • Сервером VPN (пусть, например, это будет PPTP, но с обязательной поддержкой MS-CHAP v2 и MPPE-128) с авторизацией на Radius –сервере (для определённости – freeradius).
  • Соответственно – Freeradius-сервером.
  • Терминальным сервером, на котором прозрачно авторизуются пользователи AD.

Приступаем.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments48

RFID-метка на простой логике

Reading time25 min
Views204K
Объявлено новое соревнование 7400, и нужно сделать что-то новое. Нельзя ударить в грязь лицом после победы в прошлом году ;)

У меня было несколько расплывчатых идей, но их было недостаточно, чтобы вызвать реакцию «Ух ты!» или «Ты маньяк!». Нужно серьезно потрудиться, чтобы оставаться на уровне моей предыдущей разработки — емкостного сканера.

Я устроил мозговой штурм с моими товарищами: Педерсеном (Pedersen), Асбьёрном (Asbjørn) и Флеммингом (Flemming), которые тут же придумали множество смешных идей. И вот Флемминг упомянул RFID (он разработчик системы управления доступом, которая основана на RFID). А вот это уже мысль. Конечно, первые мысли были об RFID-считывателе, но мы уже собрали их довольно много, и это было скучно. Однако, появилась идея сделать RFID-метку. Я не знаю, кто упомянул это первым, и, как обычно в мозговом штурме, идеи рождаются коллективным разумом. Итак, решено сделать RFID-метку, собранную исключительно на 7400-ой логике.
Много текста и картинок
Total votes 158: ↑156 and ↓2+154
Comments31

Google’s Mod_Pagespeed вышел из беты

Reading time1 min
Views13K

Для тех, кто как я, не знал, что такое mod_pagespeed — это модуль для Apache, собравший в себе очень много механизмов оптимизации. На страничке приводятся:
  • Оптимизация изображений, их ресайз и компрессия
  • Сращивание и минификация JS и CSS
  • Отложенная загрузка JS и изображений

И многое-многое другое.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments20

Решение проблемы оперативного ресайза изображений

Reading time5 min
Views18K
Бывают случаи, когда нужно на сайте вывести уменьшенную копию изображения. Возможные решения:

1. В теге изображения указываем другие размеры:
<img src='/path/to/image.jpg' width: 100px height:150px>
Очевидно, что в этом случае грузится слишком много не нужного трафика. Не у всех же скоростной интернет, да и глупо это как-то.
Читать дальше →
Total votes 12: ↑7 and ↓5+2
Comments48

Многоканальный программный ШИМ в AVR

Reading time5 min
Views134K
Что такое ШИМ и как он работает особо подробно расписывать не буду, информацию без труда найдёте на просторах интернета. Коснусь лишь общих понятий. ШИМ — это Широтно-Импульсная Модуляция, (по-английски PWM — Pulse Width Modulation) уже из самого названия ясно, что здесь что-то связанное с импульсами и их шириной. Если изменять ширину (длительность) импульсов постоянной частоты, то можно управлять, например, яркостью источника света, скоростью вращения вала электродвигателя или температурой какого-либо нагревательного элемента. Обычно, именно с помощью ШИМ микроконтроллер управляет подобной нагрузкой. Микроконтроллеры имеют аппаратную реализацию ШИМ, но, к сожалению, количество аппаратных ШИМ-каналов ограничено, например, в AТmega88 их аж шесть штук, в ATtiny2313 — четыре, в ATmega8 — три, а в ATtiny13 только два. В AVR ШИМ-каналы используют таймеры и их регистры сравнения OCRxx. Изменяя их содержимое и задавая параметры таймеров, в зависимости от задач, можно управлять состоянием, связанного с регистром, выхода — подавать на него 1 либо 0. То же самое можно организовать программно, управляя любым выводом контроллера, а главное, реализовать большее количество ШИМ-каналов, чем имеется на борту аппаратных. Практически, количество каналов ограничено лишь количеством ножек-выводов микроконтроллера (по крайней мере, если говорить о семействах Mega или Tiny). Как оказалось, алгоритм довольно прост, но у меня ушло некоторое время на его понимание и полное осознание.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments26

Ресайз изображений на лету

Reading time9 min
Views20K
Практически в любом веб-приложении использующем изображения существует потребность формировать уменьшенные копии этих изображений, причем зачастую, форматов дополнительных изображений несколько.
Так же вызывает некоторую головную боль добавление новых размеров на существующем приложении. Отсюда задача:
Читать дальше →
Total votes 73: ↑69 and ↓4+65
Comments65

Генератор миниатюрок из Nginx-а

Reading time3 min
Views27K
Итак, сегодня мы соберём генератор миниатюрок на базе любимого народом веб-сервера — nginx-а. Что примечательно, сделаем мы это без единого гвоздя, т.е. без единой строчки кода, не считая конфигурации.
Что ж приступим...
Total votes 81: ↑76 and ↓5+71
Comments42
12 ...
19

Information

Rating
Does not participate
Location
Россия
Registered
Activity