По ящикам шкафов да пыльным полкам уже десятилетиями складируются дюжины семейных фотоальбомов. Состояние некоторых из них давно заставляет задумываться об «оцифровке» накопившегося материала. И чтобы хоть чуточку ускорить предстоящий процесс, было принято решение сканировать по несколько фотографий за раз. Однако перспектива разгребать получаемый в результате этого контент и руками дробить его на отдельные кадры мне не улыбалась. В итоге родилось решение…
Дмитрий @dmbreaker
Тимлид
Модуль универсального контроллера для интернета вещей
4 мин
18KK66BLEZ1 — плата модуля для разработки широкого класса устройств преимущественно в сфере IoT, носимой электроники и малой автоматизации. Отличается разнообразием портов ввода/вывода и интерфейсов, что придает ей необычайную универсальность. Создана на новейших микроконтроллерах фирмы NXP семейства Kinetis. Имеет на борту радио модуль с поддержкой Bluetooth LE 4.2 и ZigBee. Также есть разъёмы для microSD карты и USB 2.0 HS с поддержкой режимов device, host, OTG и зарядник литиевого аккумулятора 3.6 В. С нижней стороны выведено два разъёма по 60 контактов. Есть энергонезависимые часы реального времени с отдельным элементом питания. Плата сопровождается открытым программным обеспечением.
+11
Детская робототехника в Крыму превозмогает
12 мин
17KЯ на прошлой неделе вернулся из севастопольского робототехнического детского центра, и хочу рассказать о том, что там и вокруг увидел.
Для полного погружения начнём мы с истории Сергея Щукина, приехавшего в Крым год назад поднимать ИТ. Началось с того, что у него был интернет, но не было питания в розетках.
+13
Автоматизация публикации приложения в Google Play
5 мин
12KЕсли у вас есть андроид приложение, которые вы собираетесь опубликовать в Google Play или оно уже опубликовано, а так же если вы его только разрабатываете, и оно находится в закрытом бета тестировании, а заказчику\тестерам периодически нужно собирать и передавать сборку руками, возможно лучше автоматизировать этот процесс
+6
Более чем 80 средств мониторинга системы Linux
12 мин
320KНиже будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.
1. первый инструмент — top
Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
1. первый инструмент — top
Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
+70
Беспроводной адаптер для программирования Arduino или AVR с загрузчиком на базе ESP8266
3 мин
21KНебольшая заметка о самодельном адаптере на базе ESP8266, позволяющем загрузить прошивку в микроконтроллер с установленным UART загрузчиком или Arduino.
Последнее время при проектировании устройств на микроконтроллерах AVR, для программирования вывожу только один 6-пиновый разъем (не ISP) для FTDI адаптера. Он позволяет и загрузить прошивку, и отладиться по UART после прошивки. Именно так сделано в Arduino, идея позаимствована оттуда. Это удобно.
Тем временем, не раз приходилось сталкиваться с ситуацией, когда нужно загрузить прошивку в микроконтроллер, но он уже в корпусе который не помещается на рабочем месте/лежит на антресоли/в другом городе/замурован в стену. В таких случаях адаптер FTDI не применим из-за короткого USB шнурка и приходилось изворачиваться с ноутбуком. Задумался о беспроводном программаторе. Тут как нельзя лучше подойдет ESP8266, ведь он обладает UART и в любом исполнении имеет хотя бы один GPIO, пригодный для перезагрузки контроллера и входа в режим программирования.
Последнее время при проектировании устройств на микроконтроллерах AVR, для программирования вывожу только один 6-пиновый разъем (не ISP) для FTDI адаптера. Он позволяет и загрузить прошивку, и отладиться по UART после прошивки. Именно так сделано в Arduino, идея позаимствована оттуда. Это удобно.
Тем временем, не раз приходилось сталкиваться с ситуацией, когда нужно загрузить прошивку в микроконтроллер, но он уже в корпусе который не помещается на рабочем месте/лежит на антресоли/в другом городе/замурован в стену. В таких случаях адаптер FTDI не применим из-за короткого USB шнурка и приходилось изворачиваться с ноутбуком. Задумался о беспроводном программаторе. Тут как нельзя лучше подойдет ESP8266, ведь он обладает UART и в любом исполнении имеет хотя бы один GPIO, пригодный для перезагрузки контроллера и входа в режим программирования.
+17
Троллим бумажную газету
2 мин
61KЯ, чёрт побери, давно хотел подать обычное объявление «Сокол, нас раскрыли». Прямо представлял, как газета разъезжается по подписке всем пенсионерам, а они читают это объявление и обсуждают его на лавочках. А ещё лучше даже не одно, а взять и подать штук 10 объявлений, чтобы у читателя мозг нафиг сломался, пытаясь их осилить.
Случай представился. Подавали мы рекламный модуль в одну из газет объявлений, и владелец говорит – а давайте бартером, вы мне здоровенный хоккей, а я вам объявление раза в два больше. В итоге после нескольких итераций предложили поприкалываться и получили полосу после разъяснения идеи, благо люди адекватные. Поэтому сбылась давняя мечта натворить в серьёзной газете фигни. Вот эта полоса под катом.
+120
Web Scraping с помощью python
7 мин
568KВведение
Недавно заглянув на КиноПоиск, я обнаружила, что за долгие годы успела оставить более 1000 оценок и подумала, что было бы интересно поисследовать эти данные подробнее: менялись ли мои вкусы в кино с течением времени? есть ли годовая/недельная сезонность в активности? коррелируют ли мои оценки с рейтингом КиноПоиска, IMDb или кинокритиков?
Но прежде чем анализировать и строить красивые графики, нужно получить данные. К сожалению, многие сервисы (и КиноПоиск не исключение) не имеют публичного API, так что, приходится засучить рукава и парсить html-страницы. Именно о том, как скачать и распарсить web-cайт, я и хочу рассказать в этой статье.
В первую очередь статья предназначена для тех, кто всегда хотел разобраться с Web Scrapping, но не доходили руки или не знал с чего начать.
Off-topic: к слову, Новый Кинопоиск под капотом использует запросы, которые возвращают данные об оценках в виде JSON, так что, задача могла быть решена и другим путем.
+22
Pandasql vs Pandas для решения задач анализа данных
6 мин
28KО чем речь?
В этой статье я бы хотела рассказать о применении python-библиотеки Pandasql.
Многие люди, сталкивающиеся с задачами анализа данных, уже, скорее всего, знакомы с библиотекой Pandas. Pandas позволяет быстро и удобно работать с табличными данными: фильтровать, группировать, делать join над данными; строить сводные таблицы и даже рисовать графики (для простых визуализации достаточно функции plot(), а если хочется чего-то позаковыристее, то поможет библиотека matplotlib). На Хабре не раз рассказывали о применении этой библиотеки для работы с данными: раз, два, три.
Но по моему опыту далеко не все знают о библиотеке Pandasql, которая позволяет работать с Pandas DataFrames как с таблицами и обращаться к ним, используя язык SQL. В некоторых задачах проще выразить желаемое с помощью декларативного языка SQL, поэтому я считаю, что людям, работающим с данными, полезно знать о наличии такой функциональности. Если говорить о реальных задачах, то я использовала эту библиотеку для решения задачи join'a таблиц по нечетким условиям (необходимо было объединить записи о событиях из разных систем по примерно совпадающему времени, разрыв порядка 5 секунд).
Рассмотрим использование этой библиотеки на конкретных примерах.
+20
Архитектура Android приложений
8 мин
76KПеревод
Наше путешествие от стандартных Activity и AsyncTask'ов к современной MVP архитектуре с применением RxJava.
Код проекта должен быть разделён на независимые модули, работающие друг с другом как хорошо смазанный механизм — фото Честера Альвареза.
Экосистема средств разработки под Android развивается очень быстро. Каждую неделю кто-то создаёт новые инструменты, обновляет существующие библиотеки, пишет новые статьи, или выступает с докладами. Если вы уедете в отпуск на месяц, то к моменту вашего возвращения уже будет опубликована свежая версия Support Library и/или Google Play Services.
Я занимаюсь разработкой Android-приложений в компании ribot в течение последних трёх лет, и всё это время и архитектура наших приложений, и используемые нами технологии, постоянно развивались и улучшались. Эта статья проведёт вас путём, пройденным нами, показав вынесенные нами уроки, совершенные нами ошибки, и рассуждения, которые привели ко всем этим архитектурным изменениям.
+21
Введение в практическую аналитику, или что общего у нейронных сетей с таблетками для похудения
8 мин
25KСегодня, когда во всех деревнях и сёлах идёт нейрореволюция, мы всё больше убеждаемся, что нейросети — это чистая магия и манна-небесная. Их стали использовать везде и всюду, и даже встроили в Excel. Неявно, при виде сложной задачи многим представляется следующая картина:
И сегодня мы займёмся совмещением приятного с полезным: разберём интересную (практическую) аналитическую задачу и заодно проанализируем ряд факторов, определяющих (не-)применимость нейронных сетей к аналитическим задачам.
Представьте, вы работаете аналитиком в какой-нибудь компании, которой важен её облик на Хабре (условно назовём её Почта.com). И тут к вам приходит девушка из PR-отдела и говорит: "Мы с менеджерами определили в качестве важного KPI нашего бренда Хабра-рейтинг компании. У нас есть бюджет и мы хотим понять, как его распределить, чтобы максимизировать Хабра-индекс. Нам нужно, чтобы ты определил ключевые факторы, которые на него влияют и вывел наиболее разумную стратегию. Попробуй там какие-нибудь нейросети".
Во время этой речи у вас начинает дергаться глаз, но спустя пару минут составляете список вопросов для анализа:
Структура статьи
И сегодня мы займёмся совмещением приятного с полезным: разберём интересную (практическую) аналитическую задачу и заодно проанализируем ряд факторов, определяющих (не-)применимость нейронных сетей к аналитическим задачам.
Представьте, вы работаете аналитиком в какой-нибудь компании, которой важен её облик на Хабре (условно назовём её Почта.com). И тут к вам приходит девушка из PR-отдела и говорит: "Мы с менеджерами определили в качестве важного KPI нашего бренда Хабра-рейтинг компании. У нас есть бюджет и мы хотим понять, как его распределить, чтобы максимизировать Хабра-индекс. Нам нужно, чтобы ты определил ключевые факторы, которые на него влияют и вывел наиболее разумную стратегию. Попробуй там какие-нибудь нейросети".
Во время этой речи у вас начинает дергаться глаз, но спустя пару минут составляете список вопросов для анализа:
- Q1: Какие ключевые факторы влияют на Хабра-индекс компании?
- Q2: Где найти данные?
- Q3: Какой будет оптимальная стратегия согласно восстановленной эмпирической зависимости?
Структура статьи
+25
Android runtime permissions. Почему, зачем и как
12 мин
121KЧасто при установке приложения на Android нам приходилось видеть, что оно запрашивает какое-то немыслимое количество разрешений. Например:
Хорошо, если вы устанавливаете приложение от какого-то известного разработчика, которому можете доверять. Но весьма подозрительно, если вы устанавливаете новый музыкальный плеер, а ему для работы требуется, например, получать ваше местоположение. Или, тем более, фонарик, требующий доступ к смс и звонкам.
Некоторые разработчики, чтобы уменьшить недоверие, добавляют в описание приложения на Google Play информацию о том, зачем нужно то или иное разрешение.
К шестой версии Android ситуация поменялась. Теперь разрешения нужно запрашивать в процессе работы. О том, как этой новой возможностью пользоваться и ее некоторых подводных камнях будет рассказано далее.
Хорошо, если вы устанавливаете приложение от какого-то известного разработчика, которому можете доверять. Но весьма подозрительно, если вы устанавливаете новый музыкальный плеер, а ему для работы требуется, например, получать ваше местоположение. Или, тем более, фонарик, требующий доступ к смс и звонкам.
Некоторые разработчики, чтобы уменьшить недоверие, добавляют в описание приложения на Google Play информацию о том, зачем нужно то или иное разрешение.
К шестой версии Android ситуация поменялась. Теперь разрешения нужно запрашивать в процессе работы. О том, как этой новой возможностью пользоваться и ее некоторых подводных камнях будет рассказано далее.
+25
Релиз ownCloud 9.0 — opensource альтернативы Dropbox и другим облачным хранилищам
4 мин
53KВышел новый релиз персональной облачной платформы ownCloud 9.0.
Я уже писал про ownCloud раньше. Я очень люблю этот комбайн из хранилища данных с синхронизацией, версионированием, галереей, календарем, хранением контактов и прочими плюшками. Серверная часть написана на PHP, поддерживаются протоколы WebDAV, CardDAV, CalDAV. Клиентский софт есть под Linux, OS-X, Windows, мобильных платформы и через web интерфейс. В теории может работать с петабайтными объемами данных.
Сервис может работать в федеративном режиме — есть возможность объединять и линковать независимые ownCloud-инстансы, делиться каталогами и другими данными. В качестве файловой системы можно использовать GPFS, GlusterFS и другие распределенные варианты. Хорошо допилена интеграция в инфраструктуру Amazon.
Changelog:
- Возможность добавлять комментарии и теги к файлам
- Новая система уведомлений
- (Федеративный режим) Автодополнение имен пользователей
- (Федеративный режим) Списки доверенных серверов
- Код для дополненией и основных файлов наконец подписан
- Добавили новую систему обновления
- Улучшения производительности при совместном доступе к каталогам
- Новое API для External Storage
- Различные улучшения системы безопасности
+33
Уменьшение накладных расходов для утилит на golang
3 мин
11KЦель работы — сократить накладные расходы на хранение большого количества утилит, написанных на golang.
Один из побочных эффектов статической компиляции golang — относительно большие накладные расходы на хранение рантайма и всех используемых библиотек внутри каждого исполняемого файла. Например небольшая утилитка, которая только и делает что обращается через сеть к серверу и выполняет простые полученные команды — весит 5.5Мб.
Когда такая утилитка одна — это в современных условиях это еще не страшно. Когда утилиты накапливаются и их становится уже несколько десятков или сотен — чисто по-человечески становится жалко сотен мегабайтов, утекающих «вникуда».
Для решения этой проблемы я написал библиотеку multiex, которой и делюсь с сообществом. С её помощью можно объединить несколько программ в один исполняемый файл с минимальными изменениями внутри кода программ и без изменения внешнего поведения. Мысль была взята у busybox — все программы компилируются в один файл, а выполняемый код выбирается при запуске, исходя из имени запускаемого файла.
Один из побочных эффектов статической компиляции golang — относительно большие накладные расходы на хранение рантайма и всех используемых библиотек внутри каждого исполняемого файла. Например небольшая утилитка, которая только и делает что обращается через сеть к серверу и выполняет простые полученные команды — весит 5.5Мб.
Когда такая утилитка одна — это в современных условиях это еще не страшно. Когда утилиты накапливаются и их становится уже несколько десятков или сотен — чисто по-человечески становится жалко сотен мегабайтов, утекающих «вникуда».
Для решения этой проблемы я написал библиотеку multiex, которой и делюсь с сообществом. С её помощью можно объединить несколько программ в один исполняемый файл с минимальными изменениями внутри кода программ и без изменения внешнего поведения. Мысль была взята у busybox — все программы компилируются в один файл, а выполняемый код выбирается при запуске, исходя из имени запускаемого файла.
+22
Натуральный Geektimes — делаем пространство чище
2 мин
38KЧитая Geektimes я постоянно хотел отключить редакторов, ведь они делают из саморегулирующегося сообщества со свободно возникающими статьями очередной адми или что-то подобное.
После того, как пару дней назад на главной странице я увидел пост "Школьник расшарил обнажённое фото с телефона учительницы, за что её уволили" уже почти пришло решение — больше никогда не приду сюда, еще один ресурс в минус.
Причина такого решения думаю всем понятна — мало кому понравится принудительное кормление таким информационным шлаком. Администрация не хочет давать возможность настройки и отключения редакторов — это ее право. Мое право уйти с ресурса.
Однако, спасибо lexasss, нашлось решение самостоятельной настройки ленты, которым я и хочу поделиться. Повторюсь, идея и совет пришли от lexasss, я лишь публикую это для тех, кто как и я хочет отключить отображение постов от определенных пользователей.
После того, как пару дней назад на главной странице я увидел пост "Школьник расшарил обнажённое фото с телефона учительницы, за что её уволили" уже почти пришло решение — больше никогда не приду сюда, еще один ресурс в минус.
Причина такого решения думаю всем понятна — мало кому понравится принудительное кормление таким информационным шлаком. Администрация не хочет давать возможность настройки и отключения редакторов — это ее право. Мое право уйти с ресурса.
Однако, спасибо lexasss, нашлось решение самостоятельной настройки ленты, которым я и хочу поделиться. Повторюсь, идея и совет пришли от lexasss, я лишь публикую это для тех, кто как и я хочет отключить отображение постов от определенных пользователей.
+97
Образовательные электронные игрушки для детей
3 мин
13KПредлагаем небольшую подборку электронных игрушек, конструкторов и роботов, которые создаются не только с развлекательной целью, но и образовательной.
+14
ESP8266 прошивка, программирование в Arduino IDE
4 мин
526KТуториал
И снова привет Хабр. Этот материал является продолжением моей предыдущей статьи — ESP8266 и Arduino, подключение, распиновка, и, должен сказать, что они взаимосвязаны. Я не буду затрагивать темы, которые уже раскрыты.
А сегодня, я поведаю, как же программировать ESP8266 при помощи Arduino IDE, так же прошивать другие прошивки, например NodeMcu… Вообщем, этот материал не ограничивается только одной темой Ардуино.
Тема ESP8266 — довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE — порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей), причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.
Данное видео, полностью дублирует материал, представленный в статье ниже.
А сегодня, я поведаю, как же программировать ESP8266 при помощи Arduino IDE, так же прошивать другие прошивки, например NodeMcu… Вообщем, этот материал не ограничивается только одной темой Ардуино.
Тема ESP8266 — довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE — порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей), причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.
Данное видео, полностью дублирует материал, представленный в статье ниже.
+19
Терминал для домашнего Linux сервера на базе ESP8266
6 мин
28KВведение
Данное устройство служит для удалённого доступа к Linux серверу посредством последовательного порта и позволяет отказаться от локальных монитора и клавиатуры. Зачем оно нужно если есть SSH и VNC? Нужно в виду ряда проблем, связанных с управлением на этапе загрузки системы и управлением питанием:
- Выбор загружаемой ОС, вход в recovery mode, memtest. Нажатие S во время загрузки при невозможности смонтировать одну из файловых систем, управление fsck во время загрузки.
- Ввод пароля от зашифрованного корневого раздела во время загрузки. Приходилось в initramfs устанавливать dropbear действующий на этапе загрузки. Пароль вводился по SSH. Хочу отметить, что данный способ непросто мне давался в плане конфигурации, на популярных дистрибутивах приходилось править скрипты загрузки и использовать некоторые костыли, которые переставали работать с выходом новых релизов.
- Удаленное выключение и включение. С первым затруднений никогда не было, а вот для включения приходилось применять технологию Wake-on-LAN (WOL), магический пакет посылался с маршрутизатора и сервер включался, правда не всегда, а только тогда когда в конфигурационных регистрах сетевой карты были «правильные» значения перед выключением, которые должна была внести туда ОС.
- Отказы после отключения электричества и некорректной работы UPS, вкупе с автоматическим включением настроенном на материнской плате.
- К сожалению, оборудование моего домашнего сервера не промышленное и не обладает высокой степенью надежности. То же касается и программного обеспечения, зачастую работают «сырые» модули ядра. В следствие чего не раз сервер «зависал» не отвечая ни по сети, ни на нажатие клавиш клавиатуры. Приходилось использовать аппаратный сброс зажимая кнопку питания более чем на 3 секунды.
На промышленном оборудование таких проблем нет, в пример можно привести решение HP iLO позволяющее удаленно хоть систему устанавливать, не говоря о таких вещах как управление питанием и диагностика системы. Кстати говоря у них есть продукты и для дома/малого бизнеса с этим решением. Но так сложилось, что система строилась на базе обычной miniITX материнской платы без таких возможностей.
+22
DIY: Робот-подводная лодка для исследования акватории Москвы-реки. Часть 1
8 мин
38KЭто краткая история создания подводного автономного робота менеджером очень среднего звена. Текущей целью является создание актуальной карты фарватера Москвы-реки. При поиске нет проблем найти такую карту, но вызывает вопрос ее актуальность. Русло реки постоянно меняется. Происходит эрозия берегов реки и меняется карта фарватера. Эти процессы особенно заметны, учитывая питание Москвы-реки снеговое (61 %), грунтовое (27 %) и дождевое (12 %). Конечной целью является создание многофункционального подводного робота для исследование морских глубин. Мировой океан, покрывающий 2/3 поверхности Земли, изучен всего на 5%. Для создания автономного робота нужен простой «автопилот».
Как сделать доступный и простой автопилот для DIY-проектов и проплыть на нем по Москве-реке?
+23
+8
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Дата рождения
- Зарегистрирован
- Активность