Tag: Project of the day

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:

Как да намерим незатворен HTML таг с прост скрипт

Проекта

Вчера ми се наложи да намеря незатворен HTML таг в една страница и се оказа приключение. Първо започнах да търся някакъв начин да го направя през Sublime, но бързо преустанових и реших да потърся някакво WEB решение.

И се оказа, че има. Автора е Jon Aquino, а скрипта му е прост и върши само това, което очаквах от него.

Как се използва?

Използването на скрипта е елементарно – копираме вече генерирания HTML от браузъра (за Chrome – ctrl+u) и после просто paste-ваме тук.
Разбира се можем да сложим и HTML от наши сайтове ако имаме достъп.

 

Притеснението ми е, че проекта е стар (2013 г.) и не съм сигурен, че има добра поддръжка на HTML5/CSS3, но за основни неща ще свърши добра работа.

Протоколи и вицове

Най-любими са ми остроумните IT вицове. Честно казано познах повечето, но имаше немалко, които потърсих докато ги схвана. Ако се сетите нещо ненаписано ще се радвам да го споделите в коментарите.

Списъка е взет от protolol.com

 

 

1. Зная чуден виц за UDP, но не е сигурно че ще стигне до вас.

2. Зная чуден виц за TCP, но ако не го разберете ще повторя.

3. А кой знае хубави вицове за ARP?

4. Чували ли сте вица за ICMP?

5. Някой друг разказвал ли ви е вицове за STP?

6. Ще изчакам Тони и ще разкажа виц за QoS.

7. За MTU също има ху

8. <виц><смешен/><за>XML

9. Вицове за FSMO могат да разказват не повече от 5 човека.

10. Изчакайте всички, сега ще разкажа виц за мрежа с топология “шина”.

11. Щях да разкажа виц за Token Ring, но не е дошъл редът ми.

12. Чакай, чакай, чуй първо вица за IRQ

13. Помня времето когато вица за модема пшшшшшшш

14. Току що, специално за групата ни пристигна вица за мултикаста.

15. Жалко че вица за Fault Tolerance ме може да е по-дълъг от една дума.

16. Дойде времето на вицовете за NTP.

17. Мога да разкажа много хубав виц за VPN, но ще го разбере само един човек.

18. За вица за SCTP всички трябва да се подготвят предварително.

19. Заради това че някой от нас се прозя, ще ми се наложи наново да разкажа вица за frame relay в топология point-to-multipoint.

20. Вицовете за HDLC обикновенно не ги разбират тези, които знаят други вицове за HDLC.

21. За DWDM се разправят вицове на няколко гласа.

22. Вица за Е3 е 30 еднакви вица за Е1 и още два, ама тях ги разбират само тези, които са навътре с материала.

23. Най-якото във вицовете за propieritary протоколите е DELETED.

24. Единственият проблем на вицовете за Token Ring е че ако някой почне да разказва виц, докато ти говориш и двата вица прекъсват.

25. Всички обичат вицовете за MitM. Е освен Алис и Боб, всички.

26. вицовете за Най-якото BitTorrent за е че може подредиш да ги в произволен ред.

27. Щях да разкажа виц за CSRF, ако ти сам не го беше направил току що.

28. IGMP виц; моля, предай нататък.

29. Няма.. Няма нищо.. Няма нищо смешно… Няма нищо смешно във вицовете… Няма нищо смешно във вицовете за определяне на MTU.

30. Вицовете за PPP се разказват само между двама души.

31. Вицовете за RAID почти винаги са прекомерни.

32. Фрагментираните вицове

33. винаги се разказват

34. на парчета.

35. Чухте ли вица за Jumbo Frame? Мнооогооо е дълъг.

36. Най-якото във вицовете за rsymc, е че ти разказват само тези, които не си чувал до сега.

37. Проблема на вицовете за IPv6 е че трудно ги помниш.

38. Вицовете за DHCP са готини, само ако ги разказва един човек.

39. The worst thing about Perl jokes is that next morning you can’t understand why they seemed so funny.

40. Ще ти разкажа виц за DoS атака и после ще ти го повтарям до припадък.

41. Ще ти разкажа виц за XSS атака и после щеш-нещеш ще го разказваш на всеки срещнат.

42. Ще ти разкажа и виц за sql injection и накрая ще забравиш абсолютно всички вицове.

43. Want to hear a SYN FLOOD joke?
-Want to hear a SYN FLOOD joke?
-Want to hear a SYN FLOOD joke?
-Want to hear a SYN FLOOD joke?
-Want to hear a SYN FLOOD joke?

regex или порно за мозъци

Преди 2 седмици се заиграх с jMeter (статия планирам в близко бъдеще, супер интересен и мощен tool!) и се наложи да взема стойността на един hidden field, който е уникален за всяка потребителска сесия. Кода изглеждаше така:

[code lang=”html”]<input name="form_key" type="hidden" value="PmIAQBj6jXqBIX8g" />
</pre>
<input name="form_key" type="hidden" value="PmIAQBj6jXqBIX8g" />
<div id="authenticationPopup" style="display: none;" data-bind="scope:’authenticationPopup’">
<p id="find_result" class="result">А нужното поле, както можете да се досетите – value.</p>
<p class="result">Между другото ако ви е интересно това е стандартна Magento 2 Enterprise инсталация.</p>

</div>
</div>
И моя гениален ум просветна веднага – "Просто е, ще ползвам regular expression". Всеки е чувал за регулярните изрази и за техните полу-митични възможности – от взимане на стойност по определен набор от инструкции,  validation, assertation и т.н. и т.н.

Отворих бодро regexp-а на Java и след около 15 минути мозъка ми излезе в почивка. Оказа се, че не е чак толкова лесно, а като попаднах на този (по мое мнение грозен, бавен и неефикасен (според stackoverflow)) <a href="http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html">regexp за валидиране на mail addresses</a> ми се схвана душата.
За радост тулове много, а добра работа ми свърши <a href="http://java-regex-tester.appspot.com/">http://java-regex-tester.appspot.com/</a>.

Решението на задачата е просто и изглежда по този начин:
<pre>[code](?<=value\=\")([a-zA-Z0-9]*)[/code]

Резултата по по-ясен начин го има и тук като можете да си поиграете със структурата и израза и да го прогодите за свои цели.

 

Сигурно се питате защо “порно за мозъци”? Много просто – търсенето и експериментирането с такъв набор от инструменти се оказа интересна задача и макар за някои да е елементарна за моя пръв сблъсък ми беше на ръба да изям клавиатурата.