Page 36 of 49

Велоприключение из Троянския балкан

След съботното микро-катерене в неделя дойде ред на колоезденето. Това колело ще пропътува над 1000 км в багажника и ще е кощунство ако не го изкарам поне веднъж.

И така попаднах на събитието на Велоприключение с маршрут – Тетевен – Рибарица – Шипково-  Балабанско – Троян – Борима – Старо село – Български извор -Гложене – Тетевен.

Сутринта станах, оправих си нещата и реших да донапомпя малко задната гума, че беше отпуснала. Стандартната процедура се превърна в извращение, когато винтила се закучи при излизането и след малко усилия успях съвсем лесно да скъсам винтила от гумата (?!?) и да си прецакам помпата (винтила остана вътре).

Бях решен така или иначе да отида да карам и качих колелото с нова вътрешна гума, но ненадута с надеждата някой да има читава помпа.

Видяхме се с хората през Shell-а на Ботевградско шосе, дадоха ми попма, свърших си работата и след извесно време (като се събрахме всичките седем героя (шест героя и една геройка)) – тръгнахме към Тетевен.
След стотина километра, малко завои и леко размътена глава стигнахме, извадихме колелата и след извесно време стартирахме.

Проблема беше, че тръгнахме около 11:00 и това не беше в наша полза.  Температурата беше около 33-35 градуса и добре, че спирахме по чешмите около пътя да заредим. До края на деня щях да изпия 6 бидона по 700 мл. вода.

Запознах се с всички (по 2-3 пъти, естествено) – всички до един бяха много приятни хора. След 15-тата минута разговорите вървяха леко, карането също. Повечето бяха в IT бранша (всъщност двама програмиста и един dev manager, другите пак са свързани с IT) и един, който отговаря за рекламата и класациите на … Планета Пайнер :D. Този същия е карал 1200 км бревет, който казват, че е един от най-трудните в целия  балкански полуостров.

Всички бяха усмихнати и явно са ме заразили, защото на снимките и аз съм се ухилил като малка пача.

Самото трасе беше много красиво, планинско на места, имаше и катерене. Пътя край Старо Село беше супер красив, но и отвратителен за каране. Момчетата с cyclo-cross велосипедите бяха с малко предимство преди мен, но неприятното усещане в задника, топките и китките остана да напомня за себе си следващите няколко часа.

Спряхме да обядваме в Троян в кръчма Старата Къща. Нещата там бяха типично балкански – огромни порции вкусна храна на добра цена. Например аз си взех зеленчуци на скара, пилешка пържола (пържолата беше гадна, признавам), 700 мл. вода, таратор и домашен сладолед (3 топки с парченца смокиня). Всичко това ми костваше 13.50 лв. :)

На връщане и вече включили се към един от главните пътища Варна – София докато карахме в стриктна група (с около 35 км/ч средна скорост) някой пред мен наби спирачки и за около секунда-две се случиха следните неща:

  • Взех решение, че трябва да се хвърля в банкета за да не ме отнесе някоя кола по асфалта;
  • Трябва да ударя спирачки, но и да предупредя хората отзад за да не стане по-голям инцидент и извиках;
  • Направих много малко отклонение на дясно влизайки в каменистия и прашен банкет като в дясно имаше доста храсти, които щяха да свършат работата;
  • Влизайки в банкета отпуснах малко спирачките за да не поднеса и падна настрани. Малко закъснях, защото задната гума се сурна с около 5-6 см.  встрани, но овладях колелото;
  • Дойде лесното – в безопасност съм – остава да спра окончателно. Избрах си един храст в който щях да се блъсна в краен случай и точно преди да го направя спрях напълно.Спрях и първото нещо, което ми мина през мозъка, който успя за толкова малко време да вземе тия решения горе беше – “Бамааму”. Странно нещо е човешкия мозък :)
    Оказа се, че някой хомосексуален шофьор е предприел рисково изпреварване като е заплашил цялата група да ни размаже като във Fat Pizza. Всичко мина благополучно и продължихме да караме към Тетевен.
    Почти бяхме стигнали, изморени и капнали от горещото и на  само няколко км ни беше Тетевен. Спряхме за малка почивка и … ни изядоха комарите.
    Дойде табелата. Беше края на карането. После дойде друга табела – Тетевен Център – 8 км. Оказа се отвратително дълъг пътя до колите.
    Общото време в което сме се движили беше 5:42 минути, а с почивките (които бяха много) – цели 10 часа. За пръв път правя такава дистанция за 10 часа.

Прибрах се кирлив и миришещ на колоездене, ударих един мощен душ и малко по-късно легнах.

 

Малко снимки от Силвия:

 

И моя трак в Страва.

 

Понеделника със сигуност ще е вълнуващ.

Последния официален клип на Крис Корнел и обещанието

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

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

Днес излезе видео към послендия му сингъл “The Promise”. Видеото само ще видите, че е насочено към бежанците, към неоправданите изгонените и към тези, които правят всичко това да се случи. Песента е и саундтрак към филма “The Promise” в който участва и Крисчън Бейл.

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

 

 

 

 

И едно видео за да се види една трошичка от любовта на хората към Крис Корнел.

 

София, ден 2

Днес беше първия ми ден в офиса на Немечек София.

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

Видяхме се с моя team lead – показа ми офиса – отвътре е скандален. Имаме няколко етажа от сградата, две джаги, билярд, просторни стаи и още и още. Колегите са доста приятни и гостоприемни. Силно обещаващо е всичко за момента.

Днес ходих на лекцията на DEV.BG на тема jMeter. Лекцията беше малко скучновата, защото беше за напълно начинаещи, а и нямаше много динамика. Иначе на лектора му личаха тия безброй часове в които си е блъскал главата с jMeter. В отделен пост ще напиша малко повече за лекцията и моя knowledge по темата.
А първото нещо, което видях като влязах в Бетахаус беше Боби – един суперактивен софийски QA, който също обича да споделя масивния си опит с хората и е постоянно усмихнат. Беше приятна изненада.

А стигането от офиса до Бетахаус и обратно беше лесено, особено с помощта на google maps и метрото. След това от офиса цъфнах в апарт хотела (очаквах нещо по-различно. Апарт хотела е скан-да-лен) и сгънах няколко бирички за да разтоваря.

В самия комплекс има малка Billa и тъкмо бях надул Parkway Drive на слушалките и се чудя какво да си взема освен бирите и чипса и един чичак ми маха от края на коридора – “Момче, хайде към касата, че затворихме”. И така се озовах с четири кенчета и един голям чипс за вечеря. Не, че се оплаквам, де. :)

 

Видях един софийски залез, една улица, която се казва Розова долина и точно зад табелата имаше няколко храста рози, няколко талибана, препълнено метро и супер много хора от моята порода в Бетахаус (всяка четвърта дума беше “QA” и аз по навик се обръщам като гладен сурикат като я чуя в нормален разговор :D).

 

Те така – от час слушам Joe Cocker (да почива в мир), стана 03:00 и не ми се спи. Утре прогнозирам, че ще се наредя повече от два пъти до кафемашината.

 

btw, защото съм голям хакер и всичко ми е супер-хипер защитено по сайтовете и т.н. и т.н. често става така, че слагам много ниски права за писане във wp-content на блога и не мога да качвам снимки (и се чудя поне по 5 минути защо).

С тази команда ще направим всички директории с достатъчни права за запис (като приемем, че WordPress инсталацията е във /var/www/nedko.info):

find /var/www/nedko.info/wp-content -type d -exec chmod 755 {} \;

Те така.

Утре се надявам да отделя време и да напиша статията за jMeter.

 

И малко n00b-ски телефонни снимки от днес:

София, ден 1

Днес към 20 часа пристигнах най-накрая и благополучно в София.

По пътя този път имаше съвсем малко изненади, карах сам и беше леко скучнувато. За сметка на това се случиха следните интересни неща:

  • Начесах черешовата си краста, която се появява по това време всяка година с един кгилограм череши вчера и един днес по пътя. Вече череши не искам да виждам поне за няколко месеца;
  • Докато взимах черешите от едно селце по пътя към София един огромен човек слезе от един не по-малко голям бус и чака за ред. Проблема на това да оставиш МПС без ръчна и на скорост е в това, че на леко наклонени равнини ще тръгне. “Буса тръгна”, казвам. “Ко каза, момче?!?”, “Буса, буса, викам, тръгна”. “Пууу маати, стой тука бе” и хукна да го гони. Не беше много дълго, но си струваше гледката :D
  • Валя ме здрав дъжд, а малко по-късно ме пра и градушка. Трябваше да отбия за 20-тина минути докато спре. Пък и тъкмо беше време за почивка, добре разхлади дъжда. Само мотористите по пътя не знам как се справят в такива моменти;
  • Видях дебелия Хюго (английски късокосмест), който вече дава да бъде милван от простолюдното съсловие (хората) за повече от 12 секунди. Жъна успехи сред котките;
  • Утре ми е първия ден в двуседмичното посещение на офиса на Немечек. Вълнувам се.
  • За толкова години командировки и пътувания така и не оптимизирах багажите си и нося половин ТИР с тениски, вело екипировка, колелото (!!) и други. Тия дни ще сефтосам Софийските околия. Сърбят ме пръстите.
  • По пътя към София минах през Пловдив да заредя с малко въглехидрати на Джумаята – джамия със сладкарска част (?!?) където правят скандални сладки, а кафето се поднася с малка чашка розова вода. Силно препоръчвам на всеки. Този път за норматив сгънах Инстамбулска торта и ашуре плюс задължителното кафе.
  • За 537 км Ситроенчето (с кодово наименование “Сутиена”) даде среден разход от 5.3 л/100 км. Може и да се дължи на факта, че карах като баба, както правя обикновено, who knows.

 

Малко нескопосани телефонни снимки:

Жив съм!

Новините една по една:

  • Жив съм.
  • Смених работата. Да – така се получи, не – нямах проблеми с предишния работодател, да – коректен беше до последно, да – новия за момента е много обещаващ (проект/работодател/условия), да – ще пиша, но по-натам повече и къде;
  • На ръба съм да стана 93 кг. Нещо, което тялото ми не е виждало от няколко години;
  • Тренирам, да. И постигам учудващи резултати. Е – маршрута ми е еднообразен, но пък за сметка на това с почти всяко каране успявам да науча по нещо ново, да си слушам тялото повече, както и велосипеда. Все по-често се случва да доближа 30 км/ч средна скорост за 30 км, а преди няколко дни карах в равна Добруджа (Генерал Тошево – Крушари – Генерал Тошево) като се изкъртих от каране (практически беше ТТ през цялото време) със средна скорост от 29 км/ч за 90 км. Скандално каране беше плюс малко допинг от черешите по пътя;
  • Започнах по-често да бягам – може да е веднъж седмично/на две седмици, но май се очертава тенденция. Скоро направих традиционните 5km run за 5.05 min/km , което беше най-бързото ми бягане до момента. Това не може да се каже обаче за благотворителното бягане, което направих последния уикенд, но пък имаше интересни моменти;
  • Продавам си колелото. Да – ще изневеря на стоманата и Dura-Ace-а, да – сигурно ще мина на карбон, да, да – знам. Ето и линк към обявата. Много се надявам да попадне в ръцете на ценител и да го кара още много километри;
  • Ще съм в София на командировка две седмици така, че който ми чете блога и иска да се видим да пише – ще имам достатъчно време след работа за биричка :) И да – ще си нося колелото и живот и здраве ще покараме с Пешо, Велосити и още сума ти народ. Ще е епично.
  • Днес разбрах каква е разликата между == и === в JS – просто второто сравнява освен по value и по тип.

Сигурно изчистване на свободното място на дисковете ни (Windows и Linux)

Сигурно ще се зачудите защо по дяволите ни трябва да зачистваме свободното място на хард диска? Първо трябва да знаем как работят файловите системи (ще говоря основно за NTFS, но се отнася с извесни малки изменения за всички Windows файлови системи).

 

Какво става като изтрием файл?

Когато изтрием файл в Windows (и от Recycle Bin) не става така, че файла да отиде в небитието и на мястото, което е “освободено” да има само нули (както си го представях като малък). Всъщност това никога не е работило по този начин. Файловата система има особено поведение и има оптимизации, които в началото могат да прозвучат объркващо, но са за наше добро. Trust me.

MFT (Master File Table)

За да “знае” операционната система къде по диска физически са разположени всеки файл и директория той си има един огромен списък, който изглежда така:

файла pesho.txt е разположен на следните сектори;

файла gosho.txt е разположен на следните сектори;

като секторите не е нужно да са последователни (това идва от фрагментацията на файловата система).

Това, което се случва като искаме да изтрием файл/директория е, че неговия запис от MFT таблицата се изтрива, но физически данните остават на диска, но маркирани като свободни. В началото това ми се струваше простотия, но като се замисли човек е добра хрумка – така можем да трием десетки гигабайти за секунди като просто маркираме данните като свободно място и при следваща операция на копиране данните се позиционират на мястото на старите такива.

Как работят програмите за възстановяване на изтрити файлове и директории?

Всеки се е чудил каква магия става като пуснем програма за възстановяване на файлове и се оказва, че не е чак толкова сложно. Просто тези програми сканират празното пространство и по техни алгоритми се опитват да възстановят съдържанието им. За това ако направите грешка и изтриете важни данни спрете каквато и да е било работа с машината, стартирайте portable версия на recuva да кажем и действайте. Колкото повече записи прави операционната система, толкова шансовете за възстановяване на файловете ви се намаляват.

 

Сигурност и как да “изчистим” свободното място на дисковете си

Както се досещат повечето от вас обикновено изтриване на файлове, които не трябва да виждат бял свят не върши работа. За това има метод, която се нарича wipe free space и Windows и Linux имат два добри инструмента за това.

Преди да започнете искам да ви предупредя, че операцията може да бъде прекратена по всяко време и че е бавна. Все едно ако имате 200 гб свободно място да копирате 200 гб данни там и да ги изтриете.

Windows 10 wipe free space tool:

cipher /w:F

Тази команда я има в Windows 10 (тествано) и надолу, не изисква административни права и прави три последователни записа върху свободното свободното пространство (extra security) като:

  • Първо записва 0x00;
  • Второ записва 0xFF;
  • Трето записва прозиволни числа в мястото маркирано като свободно.

 

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

Linux wipe free space:

 

В линукс нещата са по-интересни и можем да ползваме елементарното едноредово решение със запълване на всичкото налично място на диска и изтриването му по следния начин:

cat /dev/zero > zero.file && sync && rm zero.file

Досещаме се, че идеята е не особено гениална и на някой системен администратор този подход може да му причини лек уплах или перманентно адресивно поведение срещу мен така, че бързам да се презастраховам с другия тул, който се казва secure-delete

sudo apt-get install secure-delete

 

Повече и по-подробна информация можете да прочетете на сайта на Microsoft.

Ние като QA НЕ осигуряваме качество!

Покрай силната неопределеност и неструктурираност на част от методиките в Quality Assurance витаят едни общи разбирания, че Quality Assurance engineer-а осигурява качество. Това НЕ е така. Ние можем да:

  • Анализираме изискванията на клиента и на тази база (и немалко предишен опит) можем да предвидим още преди да е започнала активната разработка да открием несъответствия (логически, технически или концептуални);
  • На база клиентски изисквания да напишем десетки или дори стотици тестове (test cases) на всеки отделен компонент, които след като част от нужната функционалност е готова да изпълним за да се уверим, че това, което е направено съвпада с вижданията на клиента за добре работещо приложение;
  • Да използваме множество методики, тест техники, черна магия и каквото друго е нужно по време на разработката на проекта. Всичко, което намерим го логваме в някой bug tracking system (дали ще е TFS, BugZilla, JIRA, дори и Google Docs, etc няма значение). Знаете правилото – ако няма логнат бъг значи няма бъг. А повярвайте ми – в този ежедневен поток от информация много лесно можете да забравите нещо ако не го логнете;
  • Да проверим след като програмисти/дизайнери/други са фикснали проблема дали е направен по начин, който може да удовлетвори клиента (и в идеалния случай и нашите лични вижданя за това кое е правилно);
  • Да направим финални тестове, които да ни дадат солидни доказателства, че можем да кажем на клиента актуалния статус на проекта. Има вариант в който да репортнем, че нещото не работи според очакванията и изискванията, но да бъде предприет риск (risk management) и въпросната функционалност да бъде пусната в production. Това зависи от клиента, не от нас.

И още едно, много важно нещо – мога да ви гарантирам, че НЯМА софтуер без бъгове. Има такъв с неоткрити такива. Някой преди време беше казал, че: “QA can miss a bug, but the crowd will not”.

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

Най-любими са ми остроумните 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]

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

 

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