TagProject of the day

Датчик за фини прахови частици – как, защо и няколко идеи

Снощи най-накрая свързах датчика за твърди частици с този за температура и развойната платка и всичко тръгна от раз.

Хардуерът

Развойна платка: ESP8266
Датчик за твърди частици: SDS011
Температурен датчик (+атмосферно налягане и влажност): BME280

 

Сега идеята е да измисля начин да събера всичко в приложим вид, който да изнеса извън терасата. Мисля да опаковам (голяма част от) сензора за температура/влага и захранващия кабел с термошлаух. Сензора за твърди частици е измислен добре, защото  в отвора от който всмуква пробите може да се сложи тръбичка, която да изнеса навън. И да – трябва да си окомплектовам кабелите, да махна бредборда, който използвах само да закача термо датчика, че не ми стигнаха кабелите.

Софтуерът

От софтуерна гледна точка нещата са елементарни. В сайта на Air Bulgaria са публикували готов firmware, който прави впечатляващи неща с контролера. Някои от тях:

  • WEB сървър, който сервира данните от датчиците в малка страничка достъпна от всеки потребител логнат в същата мрежа в която е устройството;
  • Вдига сам Wi-Fi spot към което потребителя може да се закачи за първоначална настройка. След това esp8266-то се закача за вашата мрежа и става клент както всяко друго Wi-Fi усторйство закачено към домашния ви рутер;
  • DHCP сървър за първоначална инициализация;
  • Може да изпраща данни към един или повече API endpoints;
  • Изпраща автоматично данните към http://luftdaten.info, а оттам https://airbg.info ги взимат и парсват до подходящ вид на тяхната карта;
  • Може да изпраща данните към InfluxDB;
  • Поддържа OTA updates (On-The-Air);
  • Поддържа доста сензори и дисплеи, които се настройват елементарно.

 

Моята идея

Към стандартната функционалност бих искам да добавя следните неща:

  • Физическо укрепление на системата (кутия, термошлаух, както писах по-горе и други малки неща);
  • Данните ще хвърлям и към InfluxDB, който (по идея на Стан) ще бъде в контейнер (хем да се науча да работя с тях, крайно време е!);
  • Grafana dashboard, защото всеки обича да му е красиво и функцоинално;
  • Независимо захранване. Понеже SDS011 не пести много ток, ще мисля вариант с измервания на една минута. Същото се отнася и за температурния датчик (и евентуална корекция за да синхронизирам двата). Енергонезависимостта му ще е осигурена с power bank (ако някой ден ми попадне соларно панелче, което да пълни power bank-а през деня ще стане епично).

 

Ето и как изгелжда работещия проект на с firmware-а на airbg.info:

 

Ако някой има интерес или въпроси може да пише под статията. Ако мога ще отговарям.

 

P.S. Най-важните неща за накрая. Нямаше да се хвана с този проект ако не бяха три основни фигури – Орлин, който на Zara Code Week миналата година ни показа, че електрониката изобщо не е толкова сложна колкото си мислим и че всеки в днешно време може да реализира IoT проект за отрицателно време, на Стан, че ми подари без причина ESP8266 и на Златина че ме изтърпя докато в нас беше катаклизъм от кабели, платки и документация.

09.12.2017

Днес е малко време за четене и спокойствие. И разходка!

Не можах да прочета много, но излязохме на свеж въздух в южен парк, пихме по една Коста и се прибрахме. Носих голямата на нещо като раница, скачах и беснях като изтърван. Липсваше ми студения въздух и разходките.

Вечерта започнах да се подготвям за миграцията на marvin към php-fpm (не с manually build PHP (и при това две – едно антично и едно latest and greatest)), Никото ми представи няколко много вълнуващи идеи и конфигурации за nginx-а.
Плана е да deploy-на наново nginx, php-fpm и да пренапиша изцяло vhost-овете. Освен това сега използвам letsencrypt за … да – да генерирам сертификати за Let’s Encrypt. Ще мигрирам на certbot.

Тези промени ще подобрят:

  • Работата на marvin като цяло;
  • Много по-леката конфигурация на nginx, очаквам скоростта на блога и останалите сайтове да се качи значително;
  • Всичко, което носи PHP 7.2 и най-вече сигурност и скорост;
  • Сигурността трябва да се повиши (имам някои проблеми си правата и потребителите, които ще бъдат разрешени с деплоя на новия nginix);
  • Ще науча много за nginx, конфигурацията му и работата с vhosts;
  • Ще разкарам всичките php-fpm глупости – в момента търкалям PHP 5.3 (което е свръх-антично) и PHP 7.0.3. Накрая ще стане само един (колко крайно прозвуча това :D) – 7.2.

 

In other news:

01.12.2017

Навън вали сняг, зима е. Said no one this year. Сутринта излязох с тениска и суетшърт, колата показа 16 градуса. Преебахме я тая планета и това е.

 

In other news:

  • Keychest.net е един интересен инструмент, който
  • Онзи пич, който е сложил bitcoin miner в багажника на Tеслата си.

27.11.2017

Тези дни се занимавам с Raspberry Pi B (съвсем първия Raspberry Pi) заедно с Adafruit 2.8″ TFT 320×240 и  Pi Camera. Освен това правя и един интересен проект за домашен Weather Station с esp8266, но ще почакам да ми дойде bme280. Голяма гъзарийка се задава, stay tuned.

 

Новината на деня е, че излязоха видеата на OpenFest 2017, които могат да бъдат намерени тук:

 

In other news:

  • Златина ми показа Zen Pencils – страхотни комикси базирани на поезия;
  • Дискретният чар на демокрацията – страхотно видео с неподправимия Китодар Тодоров (не е политически ориентирано така, че можете спокойно да си го пуснете);
  • The Biggest and Weirdest Commits in Linux Kernel Git History (където можете да видите достатъчно на брой извращения);
  • Firefox Quantum – Firefox пак на гребена на hype-а, обещаващ значително подобрение на производителността. Разцъках го за ден и ми се стори доста добре, но още не мога да преживея силно грозния inspector. Ще видим какво ще ме накара да премина на FF, но Quantum е добра стъпка към правилния път;
  • How I hacked 40 websites under 7 minutes

ISTA 2017 live blogging day 1

ISTA 2017 ден първи

 

“Innovate, automate, accelerate” – Birger Thorburn CTO на Experian

Доста интересна и надъхваща реч относно бързото развитие на Expirian, която се занимава и с data analysis, няколко огромни цифри и ме накара пак да се замисля за сигурността ни онлайн. Това беше един страхотен пример как се води презентация пред хора – много добър начин на изразяване, слайда с данните беше представен по правилния начин (а не да се изчете всичко дословно), посланието от презентацията стигна до (повечето от) нас.

 

“The new leaders of quality” – Lyudmila Labova from Paysafe

Людмила говори за качеството, за quality measurements, non-measurable quality и best practices, говори доста за компанията в която работи. Споменава за това, че използват SonarQube. Като цяло лекцията е много основна и не научих много нови неща от нея.

И формулата за успеха на PaySafe е: V x D x F > R (Vision x Discomfort x First steps x Resistance). Ако това ви свърши работа намерете Любмила и я черпете едно.

 

Лекцията приключи 20 минути по-рано и имах време да вляза към края на:

“Security, Big Data and other challenges to the IoT” – Martin Harizanov от Visteon

Мартин Харизанов ни говори за сигурността в IoT и разказва за векторите на атака (които по дефиниция са почти същите както и на други real-world системи) като brute force, DDoS, после за превенция – client/server/OS updates, FOTA (firmware-over-the-air), monitoring и т.н. Накрая пак ни напомни, че абсолютно сигурни системи няма (може би освен тези, които са offline?). След това поговори за Big Data в IoT. Каза, че CISCO са излезли с доклад, че до 2020 година ще има около 20 милиарда неща (игра на думи от internet of things). Forbes пък са предвидили, че IoT трафика ще достигне 600 ZB (600 трилиона гигабайта) през 2020.

Note – тук отварям една голяма скоба:

  • Проверих твърдението, че до 2020 г. ще има ~ 20 милиарда IoT devices. Доклада, който намерих е от 2011 година и на страница три се споменава цифрата от 50 милиона устройства;
  • Доклада на Forbes относно твърдението, че до 2020 IoT ще генерират ~ 600 ZB е коректен, но написан в статия от преди точно година (13 Ноември 2016);
  • Тези статистически детайли не знам колко могат да бъдат прогнозирани, но ще следя с интерес какво се случва на IoT пазара.

Мартин обръща внимание на данните и трафика, които IoT могат да генерират. Всички ние взимаме трафика за нещо не толкова важно, но истина е, че той трябва да се пести. Разказа ни също и за няколко неща, които могат да ни помогнат като например това, че не всички данни трябва да се запазват и измерват, може да използваме агрегация (статия за data aggregation от IEEE), “Cold” data (или данните, които не са ни наистина нужни или използваме прекалено рядко) и т.н. Даде пример как няма нужда да измерваме температурата в стаята ни през 30 секунди, например. Какво ще се случи за толкова време? Помогна ми да взема решение за home automation-а, защото се чудих дали 2 минути са ок за измерване, но може дори и на повече.

 

“Testing Red Hat Enterprise Linux the Microsoft way” – Alexander Todorov от RedHat

Александър говори основно за pariwaise testing, installation testing и спомена, че за автоматизация на инсталациите използват Anaconda.

Разказва за спецификите на тестване на инсталатора на RedHat – симулация на iSCSI (с и без authentication) например, за това как един тест кейс може да продължи по 30 минути.

Говори за оптимизиране на test matrix (нещо за което трябва да прочета повече). Освен това трябва да си припомня и повече за pairwaise. За големи test suites и направен правилно може да даде впечатляващи резултати.

В общи линии разказа, че използва 3 tiers – първия е набор от тестове, който намира около 30% от всички логнато бъгове, втория набор е от всички тестове, които ползва (още около 30% от намерените бъгове са от тях) и 30% са от exploratory testing. Останалите 10% са дефекти (4 critical) – 1 firmware dependent, 1 corner case в s390x  (не може да се закачи правилно по NFS, hidden dependency и разлика в работата на IPv6 иIPv6) и третия в недостатъчно тестване (human error).

В извод pairwaise има доста силни страни така, че трябва да бъде използван от нас често и мъдро за да намалим броя на нашите test cases без да афектираме качеството.

 

Обедна почивка – време за networking, хапване, кафе и дойде време на:

 

“The future of computing” – Laurent Bugnion от Microsoft

Забавния Laurent Bugnion с интересния швейцарски акцент започна с историята за computing_а отзад-напред – със старите лентови карти, огромни комютри и т.н.

После мина на Blockchain:

  • Blockchain не е само валута;
  • Децентрализирано сигурно предаване на информация;
  • Информацията е най-ценния ни ресурс.

Следваща точка беше cloud computing (напомни ми на онзи лаф, че не качваш на cloud, а на компютъра на друг човек). Спомена Azure, OneDrive, Amazon Cloud Services и накрая – “Абе и Apple май имат някаква такава услуга, но …” и се засмя :D

Спомена за serverless computing (помните ли Силиконовата долина и идеята им за разпределено изчисляване (decentralized computing)?). (последните няколко знака заприличаха на някакъв извратен regular expression :D ).

Направи и малко демо с Cortana (като първия път фейлна :D) за времето, да му напомни нещо и накрая интересното беше “Като се прибера ми напомни да направя еди си кое”. Имаше и tell me a joke и хумора беше трагичен :) Следващата част на лекцията беше за AI/ML (Artificial Intelligence, Machine Learning). Едно нещо не ми хареса – каза, че ще направи serverless demo, но после каза – “Upload-ваме това на сървъра”. Това е тъпо и ще прочета малко за тяхната идея за serverless и ще видим каква е тяхната дефиниция.Та – направи един пример в Azure cognitive services с blob upload event (тови е event при upload на снимка в нашия случай) успя да прочете нещо надписано на ръка. Успя от две свои снимки с Emotion API да разпознае емоцията на лицето си с доста добра точност. Дойде ред на Augmented reality (пример беше Pokeymon Go) и Virtual Reality (напълно виртуална реалност, рендирана от някакво изчислително устройство). Спомена с и известна надсмешка за Google Cardboard glasses (които по дефиниция са супер евтини, мисля $2 и после почти директно ги сравни с VR на Acer) и HoloLens и mixed reality (смесена AR и VR – практически можем да взаимодействаме с реалния свят смесен с виртуална реалност).Показа и забавно демо с един космонавт над публиката. HoloLens заби само веднъж, а стрийминга беше ужасно бавен. Сигурен съм, че ползва 2.4 GHz мрежа. И пак Apple reference като спря stream-а – “Can you turn off your phones?” :D Показа едно тъпо демо с едни кубове и после дойде някакво абрусдно добро демо за планиране на индустриални структури упралвяемо с глас и жестове (добави кран/махни кран/покажи информация за този кран). Презентацията и кода можете да видите тук.

До момента най-забавна/приятна/интерактивна лекция.

 

В почивката имах възможност да се запозная с Алекс Тодоров, който е супер активен в нашата сфера и поддържа един от най-интересните блогове за QA в България – http://atodorov.org/ а след това и се запознах (най-накрая!) с Виктор Славчев – още един страхотен лектор и блогър. Нещата му можете да видите тук – http://mrslavchev.com/

 

“A Team Contributing Full-time to Open Source Projects – A Primer on Making It Happen in Your Company” – Iancho Dimitrov, Dimitar Ivanov – Musala Soft

 Двамата лектора изглеждат интересни и разказаха защо е ок да работят върху / разработват open-source проект.
До момента разказаха основно за МусалаСофт.  След това заговориха за smart home и споменаха OpenHab и SmartHome.Продължават да говорят основно за Мусала.

Разказаха как са убедили борда на директорите, че имат нужда от opensource проект по който да работят и в момента по него са включени 10+ програмистра (full-time) и един Senior Dev (part-time mentoring).

Описали са доста документация, доста unit тестове и са метнали тежките задачи. После е последвал static code analysis, работа по интеграцията с различни устройства и разбира се са вложили вътрешните си, вече утвърдени процеси в разработката.

Малко разпиляна ми дойде лекцията така, че на TL DR – пичове са решили да се занимават с open source, харесали са си smart home идеята, убедили са мениджмънта, че ще е яко ако имат такъв проект и с времето са набавили 10+ човека, които работят за проекта постоянно. И нещо важно – казаха, че по-неопитните хора, които първо са минали през този opensource проект са се интегрирали много по-бързо и по-качествено във фирмената инфраструктура работейки по комерсиалните проекти.

 

“Mastering scrum mastering” – Nikola Bogdanov от Fourth

Започва с това, че има куче и че е от Добрич. Оставам до края на лекцията! Учи за PhD и води университетски класове (не каза къде).

Започва със самото начало, защо SCRUM е важен, какво прави един scrum master и т.н. Разказа как в началото на agile stuff всичко е било self-organizing team и как е минало доста време докато се оформи нуждата на отделен човек, който да работи като scrum-master.

Scrum master as a teacher:

  • Boundaries;
  • Alignment;
  • Constraints;
  • Support;
  • Observations.

 

Scrum Master Evolution Model:

  • ScrumDude – part time, Schedules meetings, time keeping, three questions, Lists positives & negatives;
  • ScrumMom – Moderates meetings, protects the team, directly removes impediments, team interface, artificial harmony, bossy, cares about velocity and delivery dates;
  • True ScrumMaster – facilitates meetings, grows the teams long term, delegates & analyses, makes the team responsible and accountable, encourgages and motivates, mirror of the team, leads by example, an experimenter;
  • Agile Guru Lama Sensei – light for the team, sees & feels the matrix, holds the space, refills & inspires, just listens & reflects, flow & evolution, asks powerful questions, kokoro teacher.

 

“Automating Web security testing” – Yavor Papazov – CyresLab

Явор разказа с голямо въодушевление и страст за това, което прави. Разказа как не се прави вече:

Yesterday’s IT projects:

  • Waterfall methodology;
  • Testing comes after construction and before deployment;
  • Discrete releases;
  • A release of a project can be certified for security
    • e.g. common criteria

 

И как се прави сега:

Today’s IT projects:

  • We’re Agile now
    • We don’t do releases
  • Tendencies
    • DevOps
    • Continuous Integration;
    • Continuous Deployment
  • Cloud-first design
    • Elastic Load Balancing & Autoscaling
    • Systems that manage themselves

Обясни ни за това, че има два подхода към сигурността:

  • Options A: Give up security at release and work to improve it afterwards
    • Resilience instead of security
  • Option B: Ensure security early along the software production pipeline
    • Leads to automating security testing

Спомена и за Chaos Monkey.

 

Защо автоматизирането на security тестовете е трудно:

  • Lack of well-defines security requirements
    • “Make it secure” is not well-defined;
  • Most security requirements are non-functional
    • “Make it secure” is non-functional
  • Lack of well-defined security requirements
    • Check “Application security verification standard” by OWASP
    • CWEs
  • Most security requirements are non-functional
    • We can translate some requirements to functional

 

What other people use:

  • OWASP ZAP (Zed Attack Proxy) – had API
  • BDD-security )Confinuum Security)
  • Mittn (F-Secure)
  • Gauntlt

Demo time:

 

Това беше края на ден първи. Имах удоволствието накрая да се запозная лично с the Microsoft dude и с Явор и побъбрихме мъничко. Беше много приятно да видя, че извън сцената хората са си същите – без много взимане на сериозно, много приятелско и тополо отношение.

 

 

Stay tuned за ден втори :)

Free backup script

Баси тъпото заглавие.

Anyway – днес fork-нах един проект, който използвам от извесно време с разни адаптации за marvin и реших да го публикувам.
github проекта за сега носи работното име Full Web Server Backup, а основния проект можете да намерите тук.

Основните разлики между проектите са:

  • Основния проект има Amazon S3 sync, аз го махнах, защото използвам услугите на pCloud;
  • В моя има архивиране на /etc, почистени са малко неразбории.

За в бъдеще смятам да добавя:

  • Избор на compression level;
  • Изнасяне на mySQL user/pass в ~/.my.cnf
  • Избор на специфични директории в /etc, които да архивираме или exclude-нем;
  • cronjob;
  • Архивиране на /home директорията на определен потребител (ако имаме права за това).

Ако имате друга идея с радост ще я прегледам. marvin си пази бекъпите с този скрипт и за момента работи безпроблемно.

01.11.2017

Има дни в които искаш да си купиш книга за Java и ant и да ги запалиш в пентаграма гледайки как синия пламък оформя странни форми на къдрави скоби и NULL-ове. Има и дни в които нещата не изглеждат така безнадеждни.

Иначе си играя с бекъпите на marvin и намирам решения за елементарни проблеми в bash. ако на някой му е интересно да каже и ще разпиша какви проблеми срещнах и какви решения намерих.

In other news:

18.10.2017

Този месец ми е доста неактивен в писането и трябва да наваксам малко.
След като мина голямото ми каране и разказах за него на “Вечер на таланта“,  EU Code Week Varna 2017 и преживях (сравнително леко) втория си дуатлон (и имам видео в БНР в което викам “ДАВАЙ НОРО, ДАВАЙ НОРО!”) се готвя за епичното Zara Code Week в Стара Загора, което ще се проведе на 21-22 Октомври, а аз ще говоря в Неделя. Темата пак ще е “Why QA?”, но далеч по-extended directors cut :) Имам цели два часа и смятам освен теория да покажа и практически неща от занаята. За момента опциите, които пуснах като въпросник са:

  • Performance testing – ще ви покажа как да симулираме посещения от хиляди потребители за да намерим границите на проекта, който тестваме;
  • Security testing – ще ви покажа част от основните методи и инструменти, които използват хакерите;
  • Малко идеи как да оцелеем на първото си интервю – подготовка, знания и как да бъдем chill as fuck;
  • Blackbox testing – как аз тествам като получа нов проект – практически напътствия.

Ако някой му е интересно и ще бъде в Стара Загора може да пише тук или директно да гласува.
Надъхал съм се след сравнително успешната ми лекция във Варна тази в Стара Загора да е повече епична отколкото строго образователна. Пригответе се за малко 18+ хумор, чупене на неща on-the-fly и смачкващо парти Събота вечер.

А да – и не съм карал редовно от два месеца. Това ме убива бавно.

In other news:

 

Това май е най-дългия списък с линкове, който съм пускал в момента :)

10.10.2017

В неделя си сецнах кръста и вчера работих от нас. Не е работа това с кръста така, че се пазете.

Иначе днес излязоха видеата от SeConf 2017 – Berlin. Изглежда обещаващо и препоръчвам. Аз също ще ги изгледам тези дни.

Другото интересно нещо с което се сблъсках тези дни e тази уязвимост в WordPress. Оказва се, че макар и трудно, има хора, които са успели чрез манипулиране на HOST post property да “обърка” функцията за изпращане на мейли на WP. В линка от горе PoC-а (Proof of Concept) показва ясно, че с няколко реда код и “правилно” конфигуриран sendmail може да се репродуцира (баси тъпата дума) проблема.
От WordPress още не са го оправили така, че честито на всички – всеки от нас си има по един 0-day vulnerability. Решението за сега е 2FA като Rublon, който изпозлвам аз в този блог – работи бързо и лесно, а 2FA е реализирана със сканиране на баркод директно от екрана.

 

И последно, обещавам – в офиса си говорихме за git и колегите размениха по няколко линка за git tutorials:

  • git-flow cheatsheet – страхотна визуализация и огранизация на git процесите;
  • learngitbranching.js – още по-страхотна интерактивна демонстрация на git;
  • git no deepshit – вече няколко пъти е преминавало през блога – страхотно обяснено четиво, лично мое любимо до момента.

28.08.2017

  • Четвъртък вечер – банкет в нас + бебе и бременна;
  • Петък вечер – банкет с още повече хора в нас  + бебе и бременна + още двама човека + още повече бира;
  • Събота вечер – рожден ден в Балчик;
  • Неделя по обед – банкет в Тошево.Реших да не ям повече. Теглото ми е точно 97 кг, което е деградация от началото на годината. За голямото каране трябва да съм възможно най-лек.

Anyway – започнах да карам пак. Правя тестове на един стар Garmin Edge 205, но не мисля, че ще ми свърши работа на голямата обиколка. Ще се наложи да използвам Strava на телефона на който му пада батерията за 8 часа та ще видим :)

Иначе вчера реших да не карам на 90%,а  по-полека и спокойно за да видя след 30-тина км. как ще се чувствам, но пак не се сдържах и от Аладжа до Осми Приморски пак въртях на максимум. Нямам търпение да намеря дисаги (багажник имам вече, колелото, както виждате, изглежда супер идиотско) и да тествам с 10-тина кг. багаж :)

 

In other news: