Pull to refresh
0
0
Андрей @andreypaa

User

Send message

Бескнопочные часы

Reading time5 min
Views25K
Предлагаемые Вашему вниманию часы являются, по сути, побочным продуктом изучения свойств и повадок популярного зверя по кличке ESP8266. Думаю, любой человек, знакомящийся с каким-либо микропроцессором, рано или поздно реализует на нем свою версию часов.
Единственно, что отличает мои часы – у них нет кнопок. Вообще. Они просто показывают точное время.


— И все же, где же у него кнопка? © Приключения Электроника.

Узнать подробности

Получение сигнала ЭКГ на ПК и задел на ЭЭГ

Reading time4 min
Views24K
В своей работе над диссертацией моя задача сводится к получению сигнала ЭЭГ. Это очень слабый электрический сигнал с поверхности коры головного мозга, который пробивается через костную ткань и слои эпидермиса. По сравнению с ЭЭГ есть более сильный электрический сигнал – ЭКГ. В этой статье расскажу про аппаратное и программное обеспечение, с помощью которого проводилось считывание сигнала ЭКГ и проведу анализ аппаратной части. Статья может быть полезна людям, которые также ведут работы в данном направлении.
Читать дальше →

Поднимаем сложный проект на Django с использованием Docker

Reading time10 min
Views76K
Добрый день, коллеги.

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

Исходные данные у нас такие: начинается разработка проекта, в которой планируется «тонкий бэкенд». Т.е. бэк у нас состоит из закешированных страниц (рендерятся любым шаблонизатором), объёмных моделей с сопутствующей логикой (ORM) и REST API, выполняющего роль контроллера. Фактически, View в такой системе редуцировано и вынесено в JS, благо есть разные реакты, ангуляры и прочие вещи, которые позволяют фронтендщикам считать себя «белыми людьми».
Читать дальше →

Проектирование в PostgreSQL документо-ориентированного API: Комплексные запросы (Часть 4)

Reading time6 min
Views6.7K
Хранение документов в Postgres немного проще, теперь у нас есть серьезные процедуры сохранения, возможность запускать полнотекстовый поиск, и некоторые простые процедуры поиска и фильтрации.

Это только половина истории, конечно же. Рудиментарные поиски могут служить нуждам приложения, но они никогда не будут работать в долгой перспективе, когда нам надо будет задавать более глубокие вопросы.
Читать дальше →

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views123K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →

Django ORM. Добавим сахарку

Reading time6 min
Views28K


Фреймворк Django, пожалуй, самый популярный для языка Python. Однако, при всей его популярности, часто критикуют его ORM — а именно lookup синтаксис через подчеркивания. На самом деле, такой выбор синтаксиса вполне обоснован — он легок в понимании, расширяем, а главное — прост, как швабра. Тем не менее, хочется красоты, или даже прямо изящества. Но красота — понятие относительное, поэтому будем отталкиваться из конкретных задач. Если заинтриговал — добро пожаловать под кат.
Читать дальше →

«Дрон для сельского хозяйства» или как защитить растения без особых усилий

Reading time4 min
Views28K
Всем доброго времени суток. Конечно, для живущих в мегаполисах эта статья мало чем пригодиться, однако, для людей, живущих «рядом с сельским хозяйством» думаю будет полезной. Буквально недавно всем известная компания DJI выпустила на рынок новинку – «Agras MG-1» — коптер, который является «распылителем». Попросту говоря, это октокоптер, несущий на борту бак с жидкостью и распылителем. «О! Додумались наконец-то» — подумал я. Именно эта идея была темой моей диссертации в институте, однако, сидящие там «профессора» сказали: — « А что тут нового? С самолетов-то уже опрыскивали, и научной новизны тут по сути нет». Ну и после нескольких таких фраз я понял, что никому у нас это не надо кроме меня. А делать то, что никому не надо я не люблю. Честно сказать было неприятно, что такую инновацию по сути «запинали ногами». На этом моя «научная» деятельность и утихла.

А эту статью я решил написать после того, как увидел ценник на новый DJI Argas, и этот ценник был 15000 $. Вы издеваетесь?! $15000 за коптер, красная цена которому 4 тысячи, ну максимум 5 со всей его суперэлектроникой.


Читать дальше →

Мой опыт миграции на PHP 7

Reading time2 min
Views75K
image
Несколько дней назад я переключил свой сервер с порядка 30-ти сайтами на PHP 7. Некоторые из них были достаточно старыми и составляли широкий набор с различных фреймворков и CMS. Вот несколько советов для тех кто еще не решил переходить на PHP 7 или нет.

Начнем с того что я понимаю что есть много людей которые не считают стабильную версию действительно «стабильной» пока она чуть-чуть не повзрослела, ожидая что еще найдутся какие-то баги или несовместимости. С того что я пока видел, пробуя каждый release candidate как только он выходил, совсем безопасно переключиться на PHP 7 как только он выйдет. Я ни разу не заметил какого-то непонятного поведения или вылета которому виной не был бы я сам. Несмотря на то что это новая версия она не несет много несовместимых изменений, то есть по большому счету можете относиться к ней как к просто PHP 5.7 только существенно быстрее.
Читать дальше →

Нечто «крадет» место на диске?

Reading time4 min
Views28K
Если Вы не следите за оставшимся свободным местом в корневом разделе — то Вас могут ожидать неприятные новости. В случае переполнения данного раздела, важные для Вашего проекта сервисы перестанут работать. Согласитесь, неработающий MySQL или web server скажется на проекте не лучшим образом.

Читать дальше →

Как я победил в конкурсе BigData от Beeline

Reading time7 min
Views88K
image

Все уже много раз слышали про конкурс по машинному обучению от Билайн и даже читали статьи (раз, два). Теперь конкурс закончился, и так вышло, что первое место досталось мне. И хотя от предыдущих участников меня и отделяли всего сотые доли процента, я все же хотел бы рассказать, что же такого особенного сделал. На самом деле — ничего невероятного.
Читать дальше →

Бюджетная рассылка СМС

Reading time8 min
Views48K
Приветствую всех хаброжителей!

Конечно, зализанная тема про рассылку смс сообщений, но как говориться: «много — не мало». Как-то так получилось, что именно она меня постоянно преследует: то одни, то другие добрые люди попросят принять участие (советом, например) в реализации бюджетной рассылки сообщений. И поэтому чтобы не пропадать накопленному добру, оставлю здесь, а вдруг кому-то пригодится…

Итак-с… Опускаем все варианты реализации на базе обычного компа и оси семейства NT. А перейдем сразу к «автономным» системам.

Чем может похвастаться arduino в этом направлении? Отвечу сразу, ОНО работает, но есть нюансы, о которых напишу ниже. Вообщем, имеем китайский вариант arduino 2560 (было перепробовано практически вся линейка) и два дополнительных модуля — сеть W5100 (наиболее стабильный вариант) и GSM SIM 900. Выглядит это все дело как-то так.

image

Задача была следующая:
— устройство должно уметь общаться по http
— отправлять сообщение
— выдавать результат в формате json

Гугл делится всей необходимой информацией, и на выходе получаем следующий код:

Читать дальше →

Заставляем сервис php-fpm 5.6, запущенный через systemd, читать глобальные переменные окружения

Reading time6 min
Views14K
Это короткий how-to для реализации конфигурации php-сервиса, зависимого от окружения, в котором он запущен. Я буду рад, если кто-то подскажет более изящное решение или поправит в мелочах.

Основная идея


Запускать сервис, микросервисы и зависимые приложения в рамках одной экосистемы, конфигурируемой с помощью переменных окружения.

Проблема

В этой статье слишком много раз повторяется «переменные окружения».
Из коробки php-fpm игнорирует глобальные переменные окружения (getenv function), в то время как php cli их может получать.
Читать дальше →

Грандиозное тестирование аккумуляторов AA/AAA

Reading time6 min
Views314K
После моего грандиозного тестирования батареек многие просили провести такие же основательные тесты NiMh-аккумуляторов. За четыре месяца я протестировал 198 аккумуляторов (44 модели AA и 35 моделей AAA).



Читать дальше →

ESP-8266 и уровень сигнала: выбор типа антенны

Reading time3 min
Views46K
За прошедший с момента своего появления год ESP-8266 мутировал из аскетичной ревизии 01 в многоногих монстров вроде ESP-201 или NodeMCU board, способных существенно подвинуть младшие Ардуины из сегмента “меряю температуру, мигаю светодиодом”, выдавая бесплатным бонусом полноценный WI-FI. Собственно, в качестве этого самого Wi-Fi у разных ревизий платы я и предлагаю разобраться.

Идея этого теста появилась как следствие ошибки проектировщика: тщательно продуманный, собранный и отлаженный блок управления насосной станцией, будучи установленным на свое место работы — в ванную комнату, банально не видел сигнала домашнего роутера.

Вволю поупражнявшись в жонглировании слаболитературными оборотами сел гуглить, у кого из плат семейства ESP-8266 сигнал получше, но, вопреки ожиданиям, среди тонн статей и рулонов форумов этой информации найти не удалось. Посему решил восполнить этот пробел: стараниями дядюшки Ляо разжился четырьмя разными ревизиями платы с разными типами антенн, которые и будут участвовать в тестах уровня сигнала.
Читать дальше →

Собираем DJI f450 или почему я не купил Phantom 3

Reading time4 min
Views47K
Немного истории. Квадрокоптер типа f450 у меня уже около 3х лет. За все это время на нем поменялись 3 комплекта двигателей, 2 комплекта регуляторов и пропеллеров: от дешевых turnigyдо t-motor. Но в итоге, после выхода комплекта E300 от DJI, я остановился именно на них. Этот набор* вместе с рамой я заказал с ebay.


Читать дальше →

Памятка евангелиста PostgreSQL: репликанты против репликации

Reading time14 min
Views37K


В продолжение серии публикаций «Памятка евангелиста PostgreSQL...» (1, 2) дорогая редакция снова выходит на связь, на этот раз с обещанным обзором механизмов репликации в PostgreSQL и MySQL. Главным поводом для написания послужила частая критика репликации MySQL. Как это часто бывает, типичная критика представляет из себя забористую смесь из правды, полуправды и евангелизма. Всё это многократно реплицируется разными людьми без особых попыток разобраться в услышанном. А поскольку это довольно обширная тема, я решил вынести разбор в отдельную публикацию.
Читать дальше →

Использование ASF и Atmel Start в IAR

Reading time3 min
Views6.5K


ASF и IAR


Библиотека для продуктов Atmel ASF имеет две версии: встроенную в Atmel Studio и так называемую stand-alone. Stand-alone версия может использоваться, например, в IAR. Так как сам по себе IAR несколько аскетичен с точки зрения различных фишек типа автозаполнения, то использование ASF как внешней библиотекой, не так интерактивно и удобно, как в Atmel Studio, но тем не менее, можно один раз все настроить и использовать новинку Atmel Start — WEB конфигуратор кода для удобства и ускорения разработки.
Читать дальше →

Обучение машинному обучению

Reading time3 min
Views32K
beeline 100% match
Я не настоящий бигдатщик, я просто xgboost на github'e нашел.

Погоня за 500кр от Билайна заставила окунуться в мир машинного обучения, к коему я интерес проявлял и раньше, но доверия не оказывал и, соответственно, не окунался. Беглый поиск показал, что в этом плане рулит сейчас xgboost от китайских товарищей из вашингтонского университета. Как я понял, это что-то вроде Apple в области машинного обучения: нажал одну кнопку — получил быстро и красиво что хотел.
Читать дальше →

Диагностический разъём OBDII: можно ли его ”приручить”

Reading time6 min
Views76K
Идея не новая, но вопросов много. С одной стороны, можно снять практически любые данные, а с другой стороны, OBDII похож на лоскутное одеяло, т.к. общее количество физических интерфейсов и протоколов напугает любого. А объясняется всё тем, что к моменту появления первых версий спецификаций OBD большинство автопроизводителей уже успели разработать что-то своё. Появление стандарта хоть и навело некоторый порядок, но потребовало включения в спецификацию всех интерфейсов и протоколов, которые на тот момент существовали, ну, или почти всех.

Читать дальше →

Правильная миграция с MyISAM на InnoDB

Reading time7 min
Views31K
Давайте я отвлеку вас от котиков и расскажу, основываясь на своём опыте, какие подводные камни появляются при переходе с MyISAM на InnoDB, и как их избежать. Код приложения будет на PHP.

Этот пост я решил написать, прочитав огромное количество неправильных ответов на запрос из сабжа в интернете. По всему интернету разбросаны неграмотные или не полные ответы, в результате чего складывается впечатление о том, что смигрировать вашу базу данных на InnoDB — это очень просто. Нет, это не просто! Итак, начнем!

Зачем переходить на InnoDB


С этим вопросом, я думаю, всем всё ясно. Объяснять не буду — преимуществам InnoDB посвящены куча статей в интернете. Если ты читаешь эти строки, то значит ты осознанно пришел к этой мысли о переводе своего хозяйства на InnoDB, и ты, хабраюзер, гуглишь) Надеюсь, эта статья — то, что тебе надо.

Подготовительный этап

1. Из банального — это обеспечить необходимое количество свободного места на диске, где у нас развернута база. InnoDB занимает примерно в 1,5 раза больше места, чем MyISAM.

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

SELECT /*017*/ client_id, money, lastname FROM clients WHERE money > 100;

Читать дальше →

Information

Rating
Does not participate
Location
Мордовия, Россия
Date of birth
Registered
Activity