Информацию о состоянии окружающей среды или, например, некоторого объекта управления можно получать, измеряя текущие значения параметров, характеризующих те или иные свойства среды или объекта. Для получения, обработки и передачи такой информации техническими средствами, значение измеряемого параметра необходимо преобразовать автоматическими измерительными устройствами в сигнал измерительной информации. Для этого реализуют информационно-измерительный канал (ИИК), как совокупность технических средств, каждое из которых будет выполнять свою определённую функцию, начиная от восприятия измеряемой величины и заканчивая получением измерительной информации в форме, удобной для восприятия человеком или для дальнейшей её обработки. И всё бы хорошо, да вот по пути следования информации на полезный сигнал y(t) измерительной информации накладывается помеха e(t) – случайная функция времени, которая может моделировать и случайную погрешность измерительного преобразователя, и электрические наводки в соединительных проводах, и случайные пульсации измеряемого параметра, и другие факторы.
Зовите меня просто — k_sashka
@k_sashka
User
Ричард Хэмминг: Глава 17. Цифровые фильтры — IV
14 min
5K
Translation
«Цель этого курса — подготовить вас к вашему техническому будущему.»

Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Мы ее переводим, ведь мужик дело говорит.
Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»
Мы уже перевели 24 (из 30) главы. И ведем работу над изданием «в бумаге».
Глава 17. Цифровые фильтры — IV
(За перевод спасибо Пахомову Андрею, который откликнулся на мой призыв в «предыдущей главе».) Кто хочет помочь с переводом, версткой и изданием книги — пишите в личку или на почту magisterludi2016@yandex.ru
А сейчас мы обратимся к рекурсивным фильтрам, которые имеют следующий вид:

Из этой формулы видно, что мы располагаем значениями только с одной стороны от текущего n-ого значения. Мы используем предыдущие значения сигнала и его значение в текущий момент времени un а так же предыдущие значения полученные на выходе фильтра.
Этот классический подход является результатом того, что часто мы обрабатывает сигнал в режиме реального времени и у нас нет доступа к будущим значениям сигнала.
Вспомнив основы, мы увидим, что если бы у нас были «будущие значения», вероятно, двухстороннее прогнозирование было бы намного более точное. Тогда бы для вычисления yn мы столкнулись бы с системой, которая должна была бы моментально решать линейные уравнения — ничего страшного в век дешевых вычислений.
Полезные сниппеты для Nginx конфигов
5 min
120K
Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.
Как превратить концепт-проект на Arduino в финальный прототип
5 min
18K
Translation

Предыстория
Некоторое время назад я описал процесс изготовления "коробки от прокрастинации" – запирающейся коробочки, в которую нужно прятать смартфон, чтобы не отвлекаться на него. По поводу статьи мне пришло следующее письмо:
Привет! Мне очень понравилась твоя коробка от прокрастинации. Я веб-разработчик, и ищу кого-нибудь, кто сможет сделать мне прототип продукта, очень похожего на описанный тобою.
Я, конечно, обрадовался. Но потом подумал: я ведь не инженер. Одно дело – играться с доской для прототипирования, а другое – изготовить коммерческий продукт. К счастью, я был не первым новичком, стремящимся стать профессионалом, поэтому где-то через месяц я изготовил рабочий прототип (Cloister), и написал текст на 4 странички с пояснениями по информации, нарытой в сети.
Здесь я хочу собрать эту информацию воедино и структурировать её. Это не будет всеобъемлющая инструкция по прототипированию – я всё-таки новичок.
Наш прототип: the MoodCube
В педагогических целях мы с вами вместе изготовим простой прототип. Лично я всегда верил в обучение через примеры. Мы разработаем контур, чтобы получить плату специально для нашего проекта. Затем мы сделаем ей корпус и stl-файлы для распечатки его на 3д-принтере.
Уникальный продукт, который мы будем делать, и который принесёт нам богатство и славу – это MoodCube. Пластиковый кубик с RGB-светодиодами на 5 из 6 сторон. Управляться он будет с пульта.
Олдскул, хардкор, AY-3-8912. «Железный» чиптюн с последовательным входом
5 min
64K
Клона Spectrum 128K, оснащенного музыкальным сопроцессором AY-3-8910 (YM2149F) у меня не было. Был 48K с расширенной клавиатурой и убогим блоком питания, перегревающим внутренности через час-два работы. От этого, помнится. домики посреди моря в Sim City образовывались и другие веселые артефакты. Но к делу данные воспоминания не относятся. Вдохновившись материалом tronix286, я решил восполнить пробел в ретро-образовании и склепать что-нибудь на легендарном (и при этом, легко добываемом и недорогом) чипе.
В ходе изучения различных поделок, идея сформировалась следующая: надо делать модуль с последовательным (UART) входом. Чтобы его уже можно было подключить с минимальными затратами к любому девайсу, добавляя тем самым +146 к чиптюновости. В процессе также было решено освоить пару дополнительных навыков, вроде программирования AVR и изготовления печатных плат с применением фоторезиста.
Сразу опишу результаты: модуль разработан и пиликает, побочные навыки прокачаны, грабли собраны, можно радоваться, расширять и углублять.
Получаем IP-адреса HTTPS-клиентов с HAProxy (frontend) на Nginx (backend) в режимах HTTP и TCP-балансировки
3 min
51KДовольно часто требуется балансировать нагрузку между несколькими веб-серверами. При этом, как правило, необходимо, чтобы веб-приложения получали реальные IP-адреса клиентов, а не IP балансировщика.
В случае балансировки и терминации HTTP(S)-трафика на HAProxy (Layer 7 [1]) данная задача легко решается добавлением заголовка “X-Real-IP” и его обработкой на Nginx при помощи модуля ngx_http_realip_module [2]. При балансировке TCP-трафика от HTTPS-клиентов и передаче его на веб-сервера напрямую без модификации или терминации (Layer 4 [3]) добавить данный заголовок невозможно, поэтому требуется воспользоваться возможностями, предоставляемыми Proxy Protocol [4, 5, 6].
Рассмотрим оба варианта (балансировка L7 и L4) на примере выдержек из конфигурационных файлов haproxy 1.5.9 и nginx 1.6.2
В случае балансировки и терминации HTTP(S)-трафика на HAProxy (Layer 7 [1]) данная задача легко решается добавлением заголовка “X-Real-IP” и его обработкой на Nginx при помощи модуля ngx_http_realip_module [2]. При балансировке TCP-трафика от HTTPS-клиентов и передаче его на веб-сервера напрямую без модификации или терминации (Layer 4 [3]) добавить данный заголовок невозможно, поэтому требуется воспользоваться возможностями, предоставляемыми Proxy Protocol [4, 5, 6].
Рассмотрим оба варианта (балансировка L7 и L4) на примере выдержек из конфигурационных файлов haproxy 1.5.9 и nginx 1.6.2
I am Groot. Делаем свою аналитику на событиях
6 min
32K
Весной этого года я узнал о возможности базы данных HP Vertica создавать запросы с матчингом паттернов событий. Так называемый Events Pattern Matching хорошо ложился под задачу анализировать поведение пользователей в продуктах ivi.ru. Мы решили попробовать разобраться с воронками оплаты, с поиском проблемных мест на устройствах, глубже погрузиться в анализ трафика. Нашей команде очень нравится, как реализована аналитика у Mixpanel и Localytics (она как раз основана на событиях и их свойствах), поэтому многие идеи были позаимствованы у них.
Positive bias или что общего у мирового кризиса с сорванным дедлайном
3 min
759
Прошедшая неделя ознаменовалась обвалом на рынках, пессимистичной статистикой по ключевым американским показателям и всеобщими опасениями, что дальше будет хуже. Сейчас только ленивый не пишет про возможную мировую рецессию. Я как раз ленивый поэтому не буду. А напишу лучше про то, как мы раз за разом садимся в лужу в наших оценках. И неважно, что мы оцениваем — свои профессиональные качества, дедлайн проекта или курс акций. Всему виной — positive bias.
Миграция с Ruby
5 min
7.9K
Эту проблему можно решить единственным способом — предоставить слово кому-то из менеджеров отдела разработки или любому другому человеку, занимающему адекватно высокий пост и разбирающемуся в разработке, а после — тянуть, тянуть из него все подробности. Примерно так поступили в Information Queue, опросив одного из инженеров Twitter'а — Эвана Уивера (Evan Weaver) о том, почему компания так долго развивавшаяся на «рельсах», решила переключиться на использование других технологий и какие это имело последствия.
В этом материале я буду всецело ссылаться на слова Эвана, объясняющего суть миграции и выгод, получаемых от использования JVM, в первую очередь — производительности и, все той же, масштабируемости. Но как мы узнаем чуть позже, решение было так же продиктовано желанием изолировать отдельные сервисы, а так же слегка изменить общую архитектуру продукта.
Итак, история начинается в прошлом году, когда Twitter анонсировал изменения в архитектуре бэкэнда (message queue), а так же заявил о намерении переписать Twitter Storage на Scala, а весной началась работа по переписыванию всего поискового движка. Как часть этих изменений, БД MySQL (лежавшая в основе поиска) была заменена Lucene. И, наконец, совсем недавно команда разработчиков заявила о замене Ruby on Rails в области поиска — на его место встал Java-сервер, который они сами называют Blender. Результатом этой замены стало трехкратное снижение задержки при выполнении поискового запроса.
Добродетельная мафия
11 min
1.9K
Никто другой не собирал людей с такой скоростью. Можно пересчитать по пальцам компании, в которых всерьез рассматривались причины революций, а так же других социально-политических волнений. Мы наизусть знаем имена людей которые со своих юных лет возглавляют многомиллионные корпорации. Мы не найдем ни одной другой компании, кроме Facebook, про которую бы был снят полнометражный фильм, номинированный на все возможные виды Оскаров.
Поэтому нет ничего удивительного в том, что интеллектуальная мафия Facebook создала портфель из таких громких стартапов как Quora, Cloudera, Jumo, Asana, Path, а так же многих других. Все они появились на свет и достигли зрелости очень быстро, фактически — еще раньше чем случилось «самое главное» для Facebook. Как и большинство вещей которые делают Facebook уникальным местом в интернете, вышеперечисленные стартапы многим обязаны не только Цукербергу с его творением, но и времени, в котором они выросли.
Прежде чем мы пустимся в повествование важно иметь ввиду, что далеко не все компании порождают на свет т. н. «интеллектуальные добросовестные мафии». Настоящая, собранная, способная быстро реагировать на изменения в окружающей среде «мафия» как правило начинается с сообщества со-основателей, ранних наемных работников и топ-инженеров, каждый из которых прошел «боевые испытания» и обладает ресурсами, и энтузиазмом для того, чтобы финансировать чужой бизнес.
К тому же, большинство технологических компаний очень любят инвестировать «в своих». Это со-инвестирование и поддержка друг-друга позволяет оставлять все богатство «в семье». И несмотря на то что огромное количество умных людей, предпринимателей и ангел-инвесторов вышло из Google, Yahoo, eBay, Amazon и Microsoft, их гигантский бизнес не позволяет внутри зародиться «мафии» о которой мы говорим, способной катализировать в один момент и привнести в мир много нового, разного и классного.
Программа для проектирования сайтов и интерфейсов на Айпаде
2 min
12K
Сегодня я хочу рассказать вам про свою программу для Айпада — СкетчиПад (ссылка в Айтюнс, сайт программы). Да, я знаю, что Айпад все еще не продается официально на территории России, но во-первых думаю многие хабраюзеры уже обзавелись этим гаджетом у «неофициальных» поставщиков, а во-вторых уверен, что здесь много пользователей из стран официальных продаж.
NAS i-Stor iS607. Доработать напильником
8 min
20KКупившись на краткий обзор i-Stor iS607 и его миленькую мордочку, на прошлой неделе я его приобрел. Чувства двоякие. С одной стороны оно работает, но какой ценой, господа. Кажется, я теперь могу идти админить Linux сервера.
* NAS, или Network Attached Storage, — это такая коробочка с винтом, которая подключается к сети и тихо выполняет функции файлсервера и торенткачалки стоя в углу. Лучше специальных серверов по следующим параметрам: конечно же цена, размер, энергопотребление.
Стоит ли покупать?
Нет, если вы не гуру линуксоид и/или не любите стучать головой об стену.
Минусы.
Плюсы.

* Нагло тырю картинку из того же топика
В этом посте я хочу собрать свой опыт настройки i-Stor iS607. Ибо в интернете информации весьма мало и мне пришлось перечитать вообще все, чтобы чего-то хоть добиться. Чтобы облегчить путь братьям Хабравчанам (хоть я и не сомневаюсь, что большинство из вас успешно завершили бы этот квест самостоятельно и вероятно быстрее меня), публикую инструкцию в одном месте.
* NAS, или Network Attached Storage, — это такая коробочка с винтом, которая подключается к сети и тихо выполняет функции файлсервера и торенткачалки стоя в углу. Лучше специальных серверов по следующим параметрам: конечно же цена, размер, энергопотребление.
Коротко.
Стоит ли покупать?
Нет, если вы не гуру линуксоид и/или не любите стучать головой об стену.
Минусы.
- Стандартная прошивка iS607
умеет только… да ничего не умеет - Нестандартную прошивку надо еще найти и умудриться поставить правильную
- Техподдержки для iS607 нет как класса, 95% информации в интернете устарело и тупо не работает
- Нужно знать Linux, чтобы хоть как-то привести его в рабочее состояние
- Судя по форумам, с половиной винтов iS607 не дружит
- Также, с половиной маршрутизаторов
- Довольно слаб
- Имеет еще кучу (порой странных и непонятных) глюков
Плюсы.
- Симпатяжка
- Работает

* Нагло тырю картинку из того же топика
В этом посте я хочу собрать свой опыт настройки i-Stor iS607. Ибо в интернете информации весьма мало и мне пришлось перечитать вообще все, чтобы чего-то хоть добиться. Чтобы облегчить путь братьям Хабравчанам (хоть я и не сомневаюсь, что большинство из вас успешно завершили бы этот квест самостоятельно и вероятно быстрее меня), публикую инструкцию в одном месте.
How-to install gitosis (мануал с учётом проблем возникающих при установке) + интеграция в redmine
6 min
4.1Kgitosis — программное обеспечение для хостинга Git репозиториев

Установка:
Появился скрипт авто установки пока тестируется
sudo apt-get install python-setuptools git-core -y
mkdir ~/src
cd ~/src
git clone git://github.com/sc0rp1us/gitosis-tools.git
cd gitosis-tools/gitautoinstall
sudo bash main
Дальше следуем инструкциям скрипта
Но вернёмся к статье
Для начала установим необходимые компоненты для запуска gitosis:
- Для debian & ubuntu выполните следующие команды от пользователя root
apt-get update
apt-get upgrade
apt-get install python-setuptools git-core -y
cd ~/src
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install
Далее зайдём в учётную запись через которую будем управлять gitosis'om (назовём её gitadmin), выгрузим дистрибутив и установим его
Настройка:
Теперь нам нужно будет создать пользователя который будет владеть хранилищем(имя может быть любым, но я предпочитаю использовать просто git), к тому же на одном сервере может быть несколько аккаунтов владеющих хранилищами, такому аккаунту не нужен пароль, но необходим действующий shell иначе SSH откажется с ним работать:
P.S. вы конечно можете использовать уже существующую учётную запись, но по соображениям безопасности, крайне не рекомендуется этого делать
Краткий обзор NAS i-Stor iS607
2 min
25KИмеется в наличии такой вот сетевой дисковый массив. И я решил поделиться с хабраобщественностью этой радостью. Маленький обзор.

Итак, поехали
Издание собственной книги: от А до Я
7 min
2.8K
Предыстория
Начинать надо прежде всего с того, чтобы иметь четкий замысел книги и время на ее написание. В моем случае мне очень помог тот факт, что на момент написания весь материал был уже фактически собран, и мне нужно было только его скомпоновать, перепроверить и уточнить.
Если у вас нет четкого плана изложения материала, то лучше вообще не начинать сам процесс написания. В таком случае он может стать долгим, мучительным, а результат совершенно не удовлетворит потенциальных читателей.
Получаем загранпаспорт через gosuslugi.ru (часть 2)
2 min
103K
Tutorial

Удаление программ в Mac OS установленных из пакетов .pkg
3 min
42KМак ОС и установщики
Каждый, кто пересаживался на Mac OS был приятно удивлён, что во многих случаях установка программ на этой операционке сводится к простому «Перетащить программу в папку “Программы“» и всё. Дальше просто кликаешь по ней и она запускается. Я получал массу удовольствия от такого простого, дружелюбного и понятного подхода. Я чётко понимал: где я положил программу, там я её удалю и она попросту исчезнет. Лепота, да и только. Наверно многие были наслышаны о таком славном подходе в макоси. Но увы (или к счастью) нет ничего идеального и программы бывает нужно устанавливать и на маке, в полном смысле этого слова.
Меня это немного разочаровало в своё время, но до недавних пор это как-то не вызывало особых проблем, т.к. я пользовался нормальным софтом, который обычно поставлял с собой скрипты-деинсталляторы для .pkg пакетов. Но вот я решил установить программу FontForge для редактирования шрифтов, которая изначально разрабатывалась под идеологию linux и это моментально принесло с собой неразберху — FontForge.pkg начал методично размазывать себя по всевозможным папкам вместо того, чтобы попросту расположиться в "/Applications/FontForge.app". Что ещё более усложнило ситуацию — у FontForge отсутствовал какой-либо деинсталлятор. Когда пришло время удалить FontForge я задался вполне резонным вопросом: как же всё же по-человечески удалить программу установленную из .pkg, которая не предлагает полноценного деинсталлятора? Я бы и руками был согласен всё почистить, но я попросту не знал куда pkg раскидал файлы по диску.
Переlator
9 min
20KПо ходу своей работы я сталкиваюсь с маленькими задачами, которые отнимают много времени (при решении «в лоб»). Иногда получается найти средства для быстрого решения этих задач, иногда нет. Во втором случае, чаще всего, я быстренько пишу собственные маленькие программы, которые позволяют максимально упросить решение задачи.
Недавно столкнулся с одной такой задачей. Всё чаще стала возникать необходимость перевести какой-то текст. То на иврите нужно перевести абзац, то на китайском сайте нужно было почитать обсуждение, то при написании письма зарубежным коллегам не получается перевести «хитрое» предложение — приходится обращаться к онлайн сервисам перевода («подглядеть», что подскажут). Я пользовался сервисами ПРОМТ и Google. Такой подход мне начал надоедать, и я за пару вечеров набросал контекстный переводчик, который использует сразу три сервиса от компаний: Google (Google Translator), Microsoft (Bing Translator), ПРОМТ (мобильная версия).

Уверен, что мои наработки кому-то окажутся полезными.
Эту мини-статью я разделю на две части. Первая посвящена тем, кто хочет просто установить программу и пользоваться ей. А вторая, тем только делает первые шаги в освоение разработки «под» Mac OS X и iPhone (сделали первую программа «Конвертер» по руководству от Apple, но уже имеющие желание писать коммерческое ПО).
Недавно столкнулся с одной такой задачей. Всё чаще стала возникать необходимость перевести какой-то текст. То на иврите нужно перевести абзац, то на китайском сайте нужно было почитать обсуждение, то при написании письма зарубежным коллегам не получается перевести «хитрое» предложение — приходится обращаться к онлайн сервисам перевода («подглядеть», что подскажут). Я пользовался сервисами ПРОМТ и Google. Такой подход мне начал надоедать, и я за пару вечеров набросал контекстный переводчик, который использует сразу три сервиса от компаний: Google (Google Translator), Microsoft (Bing Translator), ПРОМТ (мобильная версия).

Уверен, что мои наработки кому-то окажутся полезными.
Эту мини-статью я разделю на две части. Первая посвящена тем, кто хочет просто установить программу и пользоваться ей. А вторая, тем только делает первые шаги в освоение разработки «под» Mac OS X и iPhone (сделали первую программа «Конвертер» по руководству от Apple, но уже имеющие желание писать коммерческое ПО).
Паранойя по поводу юридической безопасности или с чего начать защиту своего бизнеса
6 min
26KУспешные компании всегда привлекают к себе разного рода мошенников, взяточников и прочую нечисть. По собственной практике могу сказать, что в бизнесе действует принцип детской песочницы. В детстве все делились на тех, кто создает и тех, кто хочет прийти на все готовенькое. Вот построишь ты дворец из песка, а кто-то придет и обязательно или разрушит, или заберет. Бороться с этим бесполезно, как бесполезно бороться с животными инстинктами, которые в нас живут.
Реализация быстрого импорта из Excel на PHP
3 min
67KМы продолжаем рассказывать о технологиях, используемых на нашем сервисе email-маркетинга Pechkin-mail.ru. Одной из ключевых задач любого сервиса, связанного с данными клиентов, является загрузка этих данных на сервис. Для Печкина очень важно быстро и без проблем для пользователя загружать адресные базы, содержащие email-адреса, имена, фамилии и другие дополнительные данные.

В качестве базового стандарта, используемого при импорте адресных баз, мы взяли Microsoft Excel. Объясняется это просто:
Проблему пользователей при импорте адресных баз сняли. Но тут возникает уже проблема непосредственно разработки.

Что использовать в качестве инструмента?
В качестве базового стандарта, используемого при импорте адресных баз, мы взяли Microsoft Excel. Объясняется это просто:
- это стандартный инструмент, которым на базовом уровне владеют 100% пользователей компьютеров. Более того, в бизнесе — это де-факто корпоративный стандарт и используется даже, если на рабочих компьютерах Mac или Linux.
- Практически все CRM-, CMS-, облачные или десктопные системы имеют экспорт в Excel или CSV, который простым пересохранением приводится к формату XLS или XLSX.
- Известно также, что “90% ошибок ПО сидит в полуметре от монитора”. Не в обиду будет сказано рядовым пользователям, но мы должны учитывать самый базовый уровень подготовки и тех. поддержке для объяснения достаточно сказать “Загрузите Excel-файл”, а не объяснять процедуру подготовки файла в нужном формате.
Проблему пользователей при импорте адресных баз сняли. Но тут возникает уже проблема непосредственно разработки.
Information
- Rating
- Does not participate
- Location
- Россия
- Registered
- Activity