Category: Блогинки

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:

 

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

Мина EU Code Week Varna 2017

И ето, че мина Code Week Варна 2017.

Презентацията си я направих на 90% Петък вечерта стоейки до около 2:00., а сутринта отидохме два часа по-рано от старта на Code Week-а в Costa Coffee, изсмуках едно flat white (което съдържа три къси еспресота) за отрицателно време и пренаписах 80% от презентацията.

Качихме се в презентационната зала на хотел “Черно Море” и останах много доволен – имаше мек килим под нас (който е от съществено значение да се изчисти кънтенето в залата), страхотни столове, тюлени пердета, които не пропускат светлина за да може да се вижда какво презентирам на проектора.
Малко преди старта оставих малките изненадки, които Немечек любезно ми предоставиха (отварачки за бира, които са и поставки за такава, весели химикалчета с ръчички и тефтерчета със скрити в тях бонбонки (казващи се “Plan B – creativity boosters”)) и беше крайно време за първи контакт с хората (и тест на това дали всички ме чуват добре. Побърборихме си малко с всички (докато все още влизаха хора) и си личеше от тогава, че презентацията ще е приятна – средната възраст беше под 27, хората бяха разговорливи и не се притесняваха да комуникираме открито.

Презентацията започна в 10:10, Галин Желелязков, организатора на EU Code Week Varna, започна с всъпателни слова за Code Week, разказа с лекота за организацията и идеята на събитието и дойде моя ред като първи лектор.

Залата събира по думи на организацията 120 човека и беше почти пълна, което беше много приятна гледка (особено и за първа лекция). Говорихме на дълго и на широко за всякакви неща, хората се включваха от време на време, имаше и кикотене при някои от меметата, които бяха в презентацията.
Силно се надявам някой да се е вдъхновил и да е почел малко повече по темата.
На Александър Тодоров дължа извинение, че обърках къде работеше. Правилния отговор е Red Hat Enterprise.

И на IT бога Светлин Наков на който му обърках името.

Останалите лекции бяха на:

Страхотни лекции. Юлиан по навик е харизматичен и надъхващ, Преслав Михайлов с който се запознахме преди началото на събитието беше приятен и с лекота разказа нещата, които очевидно са му доста интересни, Жан говори със страстта на човек, който се кефи супер много на това, което прави, Галина Момчева отново демонстрира класа с нейните идеи, а накрая Aaron събра всички около себе си и демострира колко е интересно човек да се занимава с 3D Printing.

 

И малко линкове:
Линк към събитието във Фейсбук;

Медийна подкрепа на събитието имаше от moreto.net, БНР Варна, kmeta.bgyouthub.bg, Информационна агенция “Черно Море” и интервю с Галин Желязков. Искаше ми се информационните агенции и “информационните агенции” да имат малко въображение и да си пишат новините сами, а не да copy/paste директно от събитието.

Презентацията ми:


(Ако се чудите как се embed-ва Google Slides в WordPress (и не само) можете да прочетете тук)

Моите видеа:

Част първа:

Част втора:

Част трета:

 

 

Всички видеа можете да намерите тук:

 

И малко снимки :)

Как да изтрием WordPress (spam) коментари директно от базата

Никой не е защитен от спама под всякаквата му форма – email, в коментарите или по друг начин.

И понеже на marvin живее сравнително посещаван сайт секцията му с коментари беше катастрофална. Не бях го поглеждал от няколко месеца и като влязах в админ панела му ме побиха тръпки – над 12 000 коментара.

Проблема – Как ще разгранича кои коментари са спам и кои не са?

Решението – изпозлвах (с малко скептицизъм) плъгина, който идва при нова инсталация на WordPress – Akismet. За да заработи трябва да се регистрираме в сайта akismet.com (с WordPress.com или Google.com акаунтите си) и да вземем API кода от сайта. След това активираме плъгина и в настройките му бухаме API key-а). След като всичко беше конфигурирано и казах на плъгина да маркира съмнителните коментари като SPAM отидох да проверя и нищо не се случи. Оказа се, че плъгина е по-умен отколкото очаквах – беше си сложил всички коментари в опашка и асинхронно анализираше всеки. След час имах около 14 500 коментара маркирани като спам. Проверих на random стотина и всичко изглеждаше да е ок.

 

Другия проблем – По някаква причина се оказа, че не мога да трия коментарите през admin панела. Трябваше да намеря решение в което да взема всички коментари маркирани като SPAM и да ги изрия през базата данни.

Другото решение – За работа с базата данни използвах mysql console, но можете да използвате и phpMyAdmin (след като проключите работа с него го изтрийте или забранете достъпа до него, че става страшно ако до забравите).
Следните заявки ще ви свършат работа (имайте предвид, че префикса, който съм използвал е wp_, но на вашата инсталация може да е нещо различно):

Изтриване на всички неодобрени от администратора коментари:

DELETE from wp_comments WHERE comment_approved =  '0';

Изтриване на всички ОДОБРЕНИ коментари:

DELETE from wp_comments WHERE comment_approved =  '1';

Всички изтрити коментари, които стоят в статус Trash:

DELETE from wp_comments WHERE comment_approved = 'trash';

И накрая и най-важното – всички коментари маркирани като SPAM:

DELETE from wp_comments WHERE comment_approved = 'spam'; 

 

Tip – Ако искате да видите съдържанието на таблиците можете да направите това със select. Например ако искам да видя всички SPAM коментари ще пусна тази заявка:

SELECT * from wp_comments WHERE comment_approved = ‘spam’;

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

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 – вече няколко пъти е преминавало през блога – страхотно обяснено четиво, лично мое любимо до момента.

Ще бъда лектор на Europe Code Week Varna, 07.10.2017

Преди седмица бях поканен от огранизаторите на Europe Code Week Varna да бъда лектор за втори път на формата. Първия път беше преди две години в неприветливата и студена сграда на Стоматологията, но пък залата беше на 100% пълна (около сто човека), което беше и най-голямото ми представяне до момента.

Тазгодишното събитие ще се проведе в далеч по-приветливата обстановка на хотел “Черно Море”, а моята лекция ще започне от 10:00 часа.
Пак ще си говорим за QA, за ученици и струденти, за основните и толкова важни неща, които често се пропускат дори и от хората, които вече са в бранша. Ще си говорим и за това колко е важно да знаем основите на quality assurance без значение дали сме програмисти, мениджъри или каквито и да е било.
Най-накрая ще говоря и за това, че да си добър Quality Assurance трябва да си малко биполярен (в последните 2 лекции буквално ми беше забранено да говоря за това), ще си говорим за хейта в нашия бранш и за още едно-две интересни и рядко споменавани неща.

 

Линк към събитието можете да видите тук и обърнете внимание, че има безплатна регистрация. Аз започвам от 10:00 и ще се радвам да се видим там.

16.09.2017 – Приготовлението

Петък вечер в нас беше голям купон. Бях обърнал цялата къща с краката нагоре и бях изкарал почти всичката си вело екипировка. Кочината придоби още по-мащабни размери когато котката Иво прецизно дърпаше всяка ластичка, търкалящ се предмет или каквото и да е висящо нещо, която намери.

В един часа вечерта пуснах едно бързо пране с подбраните неща за голямото каране и си продължих с другите си задачки. Тук искам да отбележа, че сутринта станах в 6:30 за да се видя с приятели на по кафе на плажа. Имах чувството, че чаках пералнята 2 часа и накрая към 3:00 се предадох.

Днес за около десети път за последните 2 седмици ходих да ми видят колелото (за това блог пост няма да има, че още ми държи влага) и после хапнахме торти-морти в Кафе-Мафе (да, наистина так се казва кафенето) и по задачки.

Всичко около голямото каране е приготвено (включително и демонтажа на решетката между багажника на колата и задните седалки) и ме очаква.

 

Опитвам се да не се отдам изцяло на вълнението, но май не ми се получава.

Голямото каране наближава

Мога с ръка на сърце да кажа, че не съм се вълнувал толкова много от месеци.
Голямото ми каране ще започне само след четири дни. 90% от техниката и екипировката са подготвени, ума ми – също.

Понеже имаше проблем с монтирането на багажника (като педалирам прав гумата се забиваше в рамката?!?) към рамката взех решението да отида с колата до Велико Търново и оттам с колелото до Казанлък. Оттам вече ще видя дали ще изкача връх Шипка и Бузлуджа или ще оставя за някой от следващите дни. След това следва прибиране във Велико Търново, транспорт, преспиване в колата и старт на следващия ден на ново и вълнуващо място и така следващите няколко дни. Основния ми таргет ще са ~100 км. дневно.

Утре остава да си свърша задачките в офиса и после това, което ще бъда аз следващата седмица ще е колоездене и авантюризъм.

 

Благодаря много на всички, които вярват в мен и на тези, коит овярват, но не одобряват това мое начинание :)

 

Седмица след това каране ще последва участието ми в MTB състезанието “Зелен маратон 2017” на което ще се пусна с 20 км. колоездене и 10 бягане. Тук можете да видите как преживях първия си дуатлон.

15.09.2017 – Честит (първи) учебен ден

Още помня първия си учебен ден в девети клас – ново училище, нови хора, нов директор, който беше много висок и приличаше на Джорд Вашингтон. Той дойде при мен, стисна ми силно ръката и каза – “Добре дошъл в СОУ Димитър Талев”.

Двайсеттина състезания (повечето спечелени) по-късно, много нови приятели и брилиантни учители (начело , но не само, с г-жа Маринела Горанова, която наля огромна част в фундамента, който използвам на дневна база в работата си) дойде последния учебен ден. Помня, че ми се плачеше. Исках да изкарам наново последната си година, исках пак да влизаме в абсурдни приключения, да се състезавам, да уча и да бъда с моите приятели.

Е – 12 години след като свърши последния ми учебен ден призовавам всеки, който сега чете този пост и е още ученик да се наслади на тези моменти.
Ако ви е тежко, тъпо, трудно, лесно – това е нормално. Ако се влюбени, объркани, математиката ви е трудна – и това е нормално.

Едно от малкото сигурни неща, които научих последните 20-тина съзнателни години от моя живот бяха, че човек трябва да бъде себе си – дали ще е малко странен или ще се кефи на математиката или програмирането от мъничък, дали ще реве на Moulin Rouge или ще слуша System of a Down – няма значение. Всеки оставя отпечатък в този голям и шарен свят и нека този отпечатък не е като направен от калъп.

 

Честит петнадесети Септември уважаеми учители и ученици. Бъдете позитивни и готови за жертви и компромиси за другата страна, бъдете критични и питайте, бъдете любопитни и се усмихвайте по-често.

Ваш,

Недко.

 

П.С. И говорейки за учители явно не са ме научили добре да слагам запетайките, но се надявам да ми простите.

Честит празник на програмиста

Честит празник на всички програмисти.
Деня на програмиста е официален празник в Русия от 2009 г. насам и се празнува на 256 ден от годината (на 12.09 при високосните или 13.09 при невисокосните години).

Избора на числото 256 също не е случаен. В рамките на един байт най-голямото десетично число, което можем да запишем в двоичен формат е 255 = 1×27 + 1×26 + 1×25 + 1×24 + 1×23 + 1×22 + 1×21 + 1×20 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 28 – 1

 

Ако броим нулата (а ако сме (не само) JS devs винаги я броим) възможните числа, които могат да се запишат са 256.
Та – честит ви професионален празник, хора. Бъдете с остри умове, меки нрави (но не много меки), усмихнати и наслаждаващи се на това, което правите.

Огромна дупка в сигурността на Bluetooth протокола

Както каза Владо – щом уясвимостта си има лого и име нещата са лоши :D

Long story short – при включен bluetooth човек може да придобие известен контрол над устройствата ви. Проблема е в начина на автентикация (каква е българската дума за authentication?) и по-точно начина по който публичния и частния ключ биват разменяни между двата клиента (encryption keys).

Има си и PoC (Proof of Concept) за Андроид, Windows и Linux.

Примера с Android е много кофти, защото хакера придобива пълен достъп и в демото прави снимка на себе си без изобщо да докосва телефона (тук не е ясно дали телефона е с парола и/или криптиран).

 

PoC с Linux е как хакват smartwatch и успешно пускат микрофона, а после рестартират часовника.


При Windows нещата са също интересни. Там атакуващия прави MiTM (Man in the middle) атака, което ще рече, че се позиционира между клиента и ресурса, който иска да достъпи (в случая сайт). Така например мога да взема HTML кода на банката в която е електронното ви банкиране и да правя $_POST към мой сървър в който ще получа потребителско име и парола.

 

А защо iOS не е засегнат?

Единственото нещо, което пречи тази уязвимост да бъде използвана срещу iOS устройства е, че те не позволяват т.нар. silent authentication, което от своя страна значи, че потребителя първо ще бъде попитан за съгласие дали иска някой да се свърже с него преди да изпълни злонамерения си код.

 

Бен Сери (Ben Seri) и Грегъри Вишнеполски (Gregory Vishnepolsky) са разписали много подробен в whitepaper по въпроса.

 

CVE-тата (common vulnerabilities and Exposures) са както следва:

  1. Linux kernel RCE vulnerability – CVE-2017-1000251
  2. Linux Bluetooth stack (BlueZ) information Leak vulnerability – CVE-2017-1000250
  3. Android information Leak vulnerability – CVE-2017-0785
  4. Android RCE vulnerability #1 – CVE-2017-0781
  5. Android RCE vulnerability #2 – CVE-2017-0782
  6. The Bluetooth Pineapple in Android – Logical Flaw CVE-2017-0783
  7. The Bluetooth Pineapple in Windows – Logical Flaw CVE-2017-8628
  8. Apple Low Energy Audio Protocol RCE vulnerability – CVE-2017-14315

 

Как да се защитите?
Най-лесния начин преди да излязат security fixes е да си спрете блутута. А и никога не трябва да си го ставяте пуснат ако не го използвате.