Category: Статии

WordCamp 2017 във Варна

Новината от миналата седмица беше, че се записах за лектор на първия WordCamp във Варна, който ще се проведе на 2-3 септември 2017.

Там хората си говорят основно за WordPress (каква изненада), но и не само. Ще има и други интересни теми, които са не по-малко важни за изграждането на решения базирани на WordPress като например сигурност, дизайн, маркетинг и т.н.

Аз се записах с интерес да говоря по следните две теми:

  • Performance testing – ще направим няколко интересни задачки с jMeter и ще видим колко стабилни са ни всъщност плъгините/сайта/сървъра. В Немечек София вече говорих за това и на хората май даже им и хареса;
  • WordPress Security – вече говорих на тази тема на WordPress meetup и даже на хората май им хареса, нищо, че ми свърши времето и нямах време да покажа PoC-а, но на някой от следващите Meetups ще говорим и за това.

 

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

Има и страничка за Call for Speakers така, че ако се интересувате имате само още два дни да се запишете.

 

 

Със здраве,
Недко.

Сигурно изчистване на свободното място на дисковете ни (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”.

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]

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

 

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

Преживях първия си дуатлон

Вчера беше един много интересен ден (представете си, че казвам думата “интересен” с един много завлачен, пълен със съмнения, но със светещи очи глас).

От около месец в главата ми беше идеята да се включа в дуатлон дисциплината на iRun – “Горско бягане и колоездене “Аладжа манастир”” – 35 км. колоездене и 13.5 км. бягане.

Искам да уточня две неща:

  1. На истинско MTB (добре запознатите сигурно ще ми се изсмеят с онзи пренебрежителен начин по който само един MTB колоездач може да се изсмее на шосеен колоездач като чуе Sprint Apolon Pro 27.5″ да минава за истински MTB велосипед, но на мен ми хареса), което наех от Здравко от Устрем (благодаря за което!) и карах точно веднъж преди състезанието;
  2. През живота си не съм бягал повече от 7 километра и то по асфалт.

 

tl;dr

Жив и здрав съм. Организацията беше невероятна, маркировката и пунктовете – също.
Мамо, татко – не четете надолу. Може да има неща, които може да съм пропуснал да ви разкажа :)

Подготовката

Ден преди състезанието имах възможност да изляза да пробвам МТБ-то. Подкарахме колелетата със Злати и отидохме да се запиша там, където се провеждат редовните бягания на iRun в Морската Градина. 30 кинта назад (защото се записах в последния момент, иначе цените бяха респективно 20 лв. и 25 лв. за по-късно записалите се) и се сдобих с номер петстотин и две, който щеше да бъде извикан по мои сметки около девет пъти на седем контроли и два финала с и без колело и един як бъф, който носих със себе си по време на състезанието. След това потеглих сам към Декатлон от където си взех резервна гума и зацепих с пълна мощ към Аладжа Манастир. И понеже не познавам MTB маршрутите реших да мина по шосе до Аладжата и после да направя малко горско каране.

 

Крах и един научен урок

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

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

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

Едвам стигнах до Аладжата, баира го взех с яд и дойде ред на насечения (за мен) терен. Вече преполовил силите си влязох на територията на MTB-то и напуснах своята. Отключих шока и се понесох по равните пътеки около манастира. Усещах колко много абсорбира шока, колко абсурдно добри са спирачките и как големите и меки 27.5″ (на около 2.0 бара) гуми стъпват стабилно на земята. Усетих как си измених позицията и как започнах да се чувствам по-сигурен и стабилен. За жалост това продължи около 20-тина минути.

След края на карането ми и връщането в града се чувствах съсипан – емоционално и физически. Средната ми скорост на най-бързия ми и любим терен беше едва 17 км/ч, а само преди няколко дни бях направил рекордните за себе си 27.9 км/ч по почти същия маршрут с шисейката. Знам, знам, няма нужда дори да си помисляте, че ги сравнявам, защото са напълно несъпоставими, но при каране на почти един и същи терен волно или не се сравненията сами изплуваха.

Научих, че ако искам да карам MTB трябва да се науча да карам наново. И да видя колко красива е природата по горските маршрути.

 

Състезанието, част първа

По традиция преди състезания и бревети ставам по-рано, закусвам бавно, слушам малко музика, проверявам екипировката и велосипеда си още веднъж и ако имам време чета своя разказ “Не мога?” (колко помпозно, а?). Този ден не беше изключение.
Едвам наблъсках колелото в колата и тръгнах към месността Аладжа Манастир около час и половина преди официалния старт. Като стигнах вече имаше доста хора, велосипеди, деца, кучета и всички бяха усмихнати (дори и добермана, който беше единствения вариант да си вдигна средната скорост по баирите нагоре, ми се стори усмихнат). Изкарах колелото, сглобих го, приготвих си номера (петстотин и две, да не го забравите до края на разказа, ей!) и потърсих приятели. Видях Право, Карен и още двама-трима. Отбих се при Никото от Нико Байкс и се заговорихме.
По едно време един човек дойде при мен и ми каза – “Случайно преди да си имал един Drag Grand Canyon?”. Учуди ме въпроса, защото Drag-а го продадох преди две години, но именно с него участвах на първото си (и единствено до вчера) MTB състезание пак на Аладжа Манастир. Оказа се, че ме помнил от тогава и ми изказа респекта си (това беше, защото Drag-а е хибрид, който някой би сметнал, че е убийство да бъде каран в такива условия на насечен терен и особено с 28 мм си гуми).

После минах покрай щанда на Допел Херц и се загледах в нещата им – имаше магнезии, витамини, малки еднократни дозички с кофеин и таурин (от които се възползвах) и две добре подготвени за повода жени зад щанда. Заредих, поговорихме малко с момчетата от Нико Байкс и се наредихме с Карен и всички останали колоездачи на старт/финиша. Имаше 20-тина минутно забавяне на старта, предполагам са имали солидна причина за това и смятам, че такива неща се случват така, че нямаше драма. 30 минути след нас стартираха и бегачите.

Старта

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

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

И последва първо изкачване, което по Страва профила ми е имало скакалка (или по-скоро стена?) с денивелация от 31.2% (в Strava профила ми на 22:11 минута). Бутах, карах, бутах, карах и го изминах.

 

Искам да се извиня на хората, които четат този пост – мислих да опиша всеки баир, гледка и спускане, листата и аромата, хората и усещането, но историята ще заприлича на енциклопедия пълна с точни проценти, цифри и бездушие точно като стар балон с въздух. За това ще опиша общото, сравнително абстрактно усещане на това да караш за пръв път 35 км горско и след това да изтичаш 13.5 км.

Маршрута беше нечестно труден на места – имаше стени, които бяха по 4-5 метра високи, които по-слабите физически колоездачи (имаше едно момче, което беше под 40 кг например) сигурно никога нямаше да могат да прескочат без помощта на други. Имаше и спускания, които приличаха на много гъста крем супа с крутони забъркана предната вечер от дъжда от пръст и камъни. Имаше и пътеки, които бяха невероятно красиви, минахме през нива (да – минахме през средата на нивата. Бяхме инструктирани в началото на състезанието, че преди е имало път там, но предния ден са го изорали), минах през реки и стадо овце, срещнах интересни хора.

Моето състезание с другите свърши след не повече от 30 минути след старта и се изправих срещу най-големия си враг – самия себе си.

Времето минаваше и с него се срещах с други колоездачи, срещнах се и с един овчар, стадото му и огромното му рошаво с кални крака куче. Не се запознах с него, но имаше вид на човек, който се казва Данчо, насъбрал трудностите на селския живот на лицето си точно под гъста бяла брада. Махнах от далеч и с усмивка извиках – “Добър да е деня!”. Бай Данчо се опули малко и като ме прецени се усмихна блажно и каза – “Добър да е, момче. Хайде давай напред и успех!” докато бутна с гегата един коч. На 20 метра след това се озовах пред 30-40 см. дълбоко поточе. Вдигнах колелото и преминах по камъните като госпожичка за да не си намокря обувките, които вече се бяха превърнали в бълвоч от кал, пясък и слама.

Малко по-напред се срещнах с още трима колоездача като имаше време да си поговорим бутайки по огромния баир нагоре. Там беше и едно момче на около 13-14 години, което буташе мъжката колелото си нагоре. Предложихме му помощ с което той се обърна към нас и с неочаквана мъдрост и сериозност каза – “Колоезденето е индивидуален спорт. Ще се оправя сам, благодаря.”. Бях впечатлен и му разказах как ние като караме по бревети си помагаме с гуми, помпи, храна, вода и с каквото можем. После без да го питам му хванах единия грип и го избутахме заедно до някъде след което той искрено благодари и пое по своя път докато аз все още се опитвах да си успокоя дишането.

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

Преминахме още едно поточе, после още едно. Дойде контрола (всичките контроли бяха с ентусиазирани млади хора, които имаха всичко от което имах нужда (като на последната бегачна контрола имаше дори и сол в пакетчета), поговорихме си малко и тръгнах. Оставаха ми само шест километра, какво толкова може да се обърка? Е – обърка се. Терена беше каменист, а отдолу – прясно засъхнала почва. И това по баир нагоре. Шест километра ги изкарах (избутах) за почти един час! Това ме сломи. Напъвах се, дърпах, бутах, бях целия зачервен и бесен на себе си, псувах наум, чудих се къде съм сбъркал в разпределението на силите си, в храненето и пиенето на течности. Мразих се. Карах отвратително бавно, силите изцяло ме напуснаха. Исках да легна и да изчакам някой да дойде да ме прибере. Не исках повече. Бях обиден на себе си, че съм толкова жалък, че не мога да изкарам едва 36 км (като до преди 3 седмици изкарах 370 за два дни), че бях дебел. Очите ми започнаха да губят фокус и точно в този момент една груба нота на отчаяние излезе от гърлото ми. Беше нещо като приглушен вой. Това ме смути неимоверно много, защото имаше хора около мен и това сякаш ме стегна.
После ме настигна един бегач и ме изпревари, после аз го изпреварих, после той мен и така бях изпреварен три пъти от бегач на дълги разстояния (дисциплината му беше 32 км). Реших да се стегна. “Колко километра остават още?” попитах някого. “На тридесет и пети километър сме сега”. “Ъъъ колко?”, “Тридесет и пет”, казва някой. Не повярвах, че съм почти на финала.

Финиша

Дадохме газ аз и едно момиче и заедно с наистина сетни сили се запътихме за финалния спринт.

Видях финиша.

Бях на 20-25 метра от него, карах и започнах да мисля за бягането. И в този момент момичето, което беше само метър-два пред мен падна. Аз спрях, защото моето състезание с другите беше свършило отдавна. “Давай, тръгвай.” виках. Качи се на колелото, но веригата беше паднала, “Давай, давай” викнах. Финишира 2 секунди преди мен.

 

Бях жив. Духът ми се върна и последва второто състезание. Пак с мен.
В този момент вече ми бе ясно, че няма да мога да вляза в контролното време на дуатлонистите.
Спрях се при щанда на Нико Байкс, оставих си част от екипировката и велосипеда, взех си 2 барчета от раницата и тръгнах.

 

Състезанието, част втора

Бях изтощен. Започнах да получавам жестоки крампи на бедрата, нищо, че до този момент бях приел над 1000 мг магнезиев цитрат за да избегна това. Маршрута над средата беше същия като колоездачния. Проблема беше, че краката ми не можеха да понесат повече. Започнаха да не могат да се сгъват, а за моя огромна “радост” още в началото на маршрута последва стръмно спускане, което взех на бедра и накрая се предадох.

Спрях, строполих се на земята и бях напълно наясно с две неща:

  1. Нямаше да позволя да не изкарам маршрута;
  2. Трябваше ми пейсър.

 

Странна птица съм аз – волята ми е най-силна само когато положението вече започне да граничи с невъзможното. В този момент съм излязъл с двата си крака от зоната в която ми е удобно и нещо изплува много дълбоко от мен. Нещо човешко и кокалесто, нещо, което не те хваща за гушата за да те дръпне надолу, а точно обратното – кара те да се изправиш, да драпаш с крака и ръце, да се стегнеш и да дадеш да се разбере на теб самия, че тая работа няма да я бъде.
Започнах да пълзя за кратко, изправих се на крака и започнах да вървя.
Усетих, че съм към края на състезанието си, когато започнах да вървя като патка  (тоест на цяло стъпало, видео с един нагледен пример) – това е един почти сигурен признак, че мускулите ми излизат извън контрол, а сухожилията са се изпънали до безкраен предел.
Вървях така и мучах тихичко от болка докато не стигнах до първата чешма от маршрута. Измих си лицето, пийнах от студената вода, свалих си джърсито с дългите ръкави и продължих.
Не знам кое ме накара да живна, но се случи. Вероятно е от хората, които се разхождаха в гората и се усмихваха и пожелаваха успех или от човека, който подминах докато правеше барбекю на една поляна и се провикна – “Момче, ела да хапнеш с нас, да се подкрепиш” или с това, че стигнах първата контрола. Знаех, че нямам шанс за финиш в контролното време, но не се отказах. Състезанието за мен, срещу мен, беше в разгара си и щеше да свърши след пресичането на финиша.

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

За късмет се оказа, че не съм сам и при поредното обръщане видях една бегачка. Оказа се по-добра от мен в бягането и ми послужи за невероятно добър пейсър. Тя определи темпото и лека полека се отправихме към пътищата със засъхнала кал, полята с вятъра, който предвещаваше дъжд и втората контрола.

Там ни посрещнаха с много усмивки млади и надъхани доброволци, дадоха ни храна и вода и ни отпратиха.

Оставаха два километра. Бях жив. Вече не ме болеше, не ми се повръщаше. Бях се изморил да ме боли и просто бягах и вървях, но не спряхме.
Срещнахме същия овчар, който ни спря и ни помоли да му помогнем да си зареди минути на телефона. Още ми става гадно като се сетя колко се разочарова като му казах, че няма да имаме време и че сме на състезание.

Видях последната маркировка преди финала, която два часа по-рано видях с колелото. Нещо в мен се обърна. Бях съсипан физически, но човек никога не знае колко много има и може докато не стигне до предела си и не види, че може още малко. И още малко. И още малко.

Финиша

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

Финиширахме заедно и извън контролното време.

Аз победих себе си и след втория финал вярвам станах с един кършей по-добър, по-силен и по-отдаден от когато и да е било.

 

Следфинално

Отидох при щанда на Нико Байкс да си взема екипировката и колелото, поговорихме малко с тях и видях другия Карен (до преди година и нещо не познавах нито един Карен, а сега познавам цели двама) от Averi Beers и взех един червен Гларус. Отпих една глътка, тежко въздъхнах и усетих спокойствието да се влива във вените ми.

Огледах се и видях Ели и Свилен, които видях и малко преди да започне моето бягане. “Недко – искаш ли супа?”, попита тя. Беше риторичен въпрос. Наля ми една 500 мл. боб чорба, взех си филия хляб и рая слезе на земята. Бях спокоен, не ме болеше и знаех, че за ден мога да си позволя да бъда горд със себе си.
Прибрах се – чакаха ме Злати и котката, топъл обяд и един приятен ден.

За спорта

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

Малко линкове и статистики:

Снимки

StarCraft с нова, подобрена и БЕЗПЛАТНА версия

Ако сте геймъри със сигурност сте чули слуховете и последвалия hype около новата версия на StarCraft, 1.18, която има нещо ново и страхотно в себе си – вече е напълно безплатна!

С новата версия от Blizzard за направили и малко нововъведения:

  • Вече има windowed и full-screen режими (за да можете да играете StarCraft докато участвате в дневните мийтинги);
  • Добавена поддръжка за UTF-8 за да може да получаваме типичните “сука, блять” добре енкоднати и с цялата си красота;
  • Вече си има и observer mode;
  • Game timer за да знаете колко време сте оползотворили през деня;
  • Нов OpenGL backend;
  • Подобрена скорост в multiplayer за да можете да не се оправдавате вече с това, че ви е лагнало;
  • Добавена поддържка на Windows 7,  8.1, 10 (да не забравяме, че първия StarCraft го играхме на Windows 98).

 

Повече информация можете да видите в официалния сайт на StarCraft.

 

Fun Fact – знаете ли, че в Южна Корея StarCraft е обявена за национален спорт?

Когато ти изтекат сертификатите на блога…

Както може би забелязахте последните 2 дни блога ми не се отваряше и причините бяха две:

  • Let’s Encrypt renewal-а не беше минал тримесечния си ъпдейт на сертификатите;
  • Понеже използвам HSTS нямаше и опция да видите блога нищо, че е с невалиден сертификат.

И това естествено по празниците, когато нямах достъп до компютър :)

Ето и какви бяха причините за това, че на nedko.info не минаха сертификатите, но на останалите 7-8 сайта, които хоствам минаха без проблеми:

  1. При опит за certificate renew  получавах следната грешка:
Failed authorization procedure. www.nedko.info (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.nedko.info/.well-known/acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw: "<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial"

IMPORTANT NOTES:
 - The following errors were reported by the server:

Domain: www.nedko.info
 Type: unauthorized
 Detail: Invalid response from http://www.nedko.info/.well-known
 /acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw:
 "<!DOCTYPE html>
 <html lang="en-GB">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial"
 To fix these errors, please make sure that your domain name was
 entered correctly and the DNS A record(s) for that domain
 contain(s) the right IP address.

 

Проблема е, че при опит за достъп по http (близко до ума, но на мен ми отне време да се досетя, че Let’s Encrypt callback-а е по http, а не по https) при misconfiguration горния линк http://www.nedko.info/.well-known
/acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw пренасочваше към друг от моите домейни.

 

2. Започнах да преглеждам къде ми е проблема с това пренасочване и реших да изключа напълно port 80 поддръжката (http) макар и да имам redirect 301 в случай, че имам request по http.
Решението ми беше да спра изцяло поддръжката на http през vhosts. Става съвсем лесно с коментар или изтриване на удебеления ред:

#listen 80;
listen 443 ssl;

След тази промяна и рестартиране на nginx (service nginx restart) успях да стартирам процеса по преиздаването на сертификата успешно със следните редове:

letsencrypt certonly -a webroot --webroot-path=/var/www/nedko.info/ -d nedko.info -d www.nedko.info

където пътя до сайта е в директория /var/www/nedko.info/

 

Ако имате проблеми с намирането на директорията /.well-known/acme-challenge/ можете да я създадете наново като:

  • Проверите дали директорията съществува (под Линукс точката пред директория или файл се счита за скрит файл/директория) с
ls -lah /var/www/nedko.info/

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

mkdir /var/www/nedko.info/.well-known/acme-challenge/ && chmod 755 /var/www/nedko.info/.well-known/acme-challenge/

И изпълянвате по-горната команда за renew на сертификатите.
Ако не стане пишете в коментарите и ще го гледаме заедно.

Архивиране на директория с tar

И понеже ВСЕКИ път като ми се наложи да  архивирам директория под линукс и търся разни тъториали та реших да си го постна тук за по-лесно намиране, пък и на някой ако му е интересно/полезно – още по-добре.

Архивиране с tar

Ако искам да архивирам директория с всичките поддиректории и файлове с tar (zip и rar не идват инсталирани в пакетите на Дебиан и Убунту и вероятно на повечето останали дистрибуции) използвам следната команда:

tar czfv nedko.info.tar.gz /var/www/html/nedko.info/.

 

Дисекция на командата:

c – create

z – де/компресирай с gzip

f – архивирай във файл

v – verbose output (ще ни покаже полезна информация по време на компресирането. Не се препоръчва ако използваме командата в cron)

nedko.info.tar.gz – името на архива

/var/www/html/nedko.info – директорията, която искаме да архивираме

 

Разархивиране на създадения архив

И да речем, че нещо се прецака и искам да разархивирам архива в определена директория:

tar xzfv nedko.info.tar.gz /var/www/html/nedko.info

 

Дисекция на командата:

x – extract

z – де/компресирай с gzip

f – file (трябва да подадем име на файла след тази директива)

v – verbose – ще ни изкара полезна информация по време на декомпресирането. Не се препоръчва ако използваме командата в cron.

УМА И ДУМА, Лого5 и So Called Crew и пръвия ми хип-хоп концерт

Преди няколко месеца намерих Жлъчезар в един от най-добрите One Shots до сега. И след него последва пак манията по Керанов и Маната, после пак се върнах към детските си влечения по Eminem и нещата станаха много цветни. Основните ми причина за това са, че харесвам музиката, която за писането ѝ е използвана немалко мисъл и бийтовете, които ме карат да се чувствам много добре докато карам колелото.

Та преди няколко дни на whiskey testing-а домакините споменаха, че ще има събиране на пичовете от Ума и Дума, Лого5 и So Called Crew в Рубик център (бившите Трите Лъва). И стана така, че отидохме.

Бяха обявили час на започването от 22:00, ние бяхме там 15 минути по-късно, ударихме по 1-2 бири/ром/Йегермайстер/джин (цветна компания :) ) и зачакахме. Първи излязоха Ума и Дума в 12:30. Не бях щастлив от това да чакам два часа и половина, но пък за това си поговорихме доста хубаво с моите, разцъкахме заедно Spotify и тествах връзката му с Shazam и разни такива.

Ума и Дума

Ума и Дума е създадена 2012 г. във Варна от Ангел (MadBasta), Иван (Вантка), Никола (Колеца) и Ясен (Фенги). Излязоха, забиха и си тръгнаха. Бяха добри, но озвучението не беше добро и може би от там малко по-слабото според мен представяне.

Студийните изпълнения на момчетата са много добри.

Лого5

Лого5 от своя страна е създаден в София от Mr.Freesk, Илия Григовор и Jamez Bongg. Според мен се представиха доста добре, бийтовете бяха по-агресивни и мелодични (ако това може изобщо да е комбинация) и избухнахме.

 

So Called Crew

Ако трябва да съм честен отидох за So Called Crew. През 2011 г. Евгени, Жлъч, Бате Доуен и Trasher създават So Called Crew.

Римите са безпощадни. Понякога са меланхолични, понякога агресивни, често са мъдри. Наскоро издадоха албума “Светлосянка EP”. Препоръчвам го.

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

 

След това отидох в Арест, видях се с Иван вегана, изпихме по една бира, имах интересна среща с председателя на студентския съвет към ТУ и ме покани да говоря пред студентите след няколко месеца. Ще пиша повече като имам повече информация.

Какво трябва да знаем за колоезденето (през зимата)

Зимата си има огромния чар и карането на свеж, макар и студен въздух е нещо много освежаващо. Но за разлика от лятото подготовката дори за каране в парка е много по-голяма.

Тази година смея да твърдя, че се подготвих доста добре за зимата и ще ви разкажа за моята стратегия.

 

Облекло

Облеклото разбира се е едно от най-важните неща, които трябва да подберем внимателно преди излагане на ниски температури. В следващите точки ще ви разкажа какво смятам за задължително при подобно време

  1. Термо бельо – обикновено под формата на потник или тениска то трябва да може да не задъжа потта (карайки на -6 съм се прибирал с подгизнал потник) и да я извежда към втория слой.
  2. Втория слой при мен често е джърси с дълъг ръкав при по-студеното време или джърси с къс ръкав за температури над 8-10 градуса. Този слой е най-важен за да запази температурата на тялото. Трябва да е удобно, по вас и с добри топлозадържащи качества.
  3. Най-горния слой е дебело джърси, което ползвам за да запазя телесната си температура и най-вече да се спася от студения вятър + сняг или ръмене.
    1. hint – като избирате зимни дрехи имайте предвид ширината на всеки един от слоевете и най-вече ръкавите и яките. В моя случай не мога да закопчея двата слоя до горе, защото са с еднакъв диаметър на врата и ме задушават (б’ат Герги, б’ат Герги…).
    2. hint – не използвайте памучни или синтетични тениски. По-добре е да вземете джърси или от втората употреба една спортна тениска.
  4. Долнище – за краката ползвам само един слой, така че той трябва да е добър. В най-студеното време в което съм карал използвах 1-2 пъти и термо клин, но е неудобен и може да доведе до протривания. Долнището трябва да е плътно по вас, подложката му (или памперса както го наричат някои) трябва да е удобен и да не ви създава дискомфорт. Аз предпочитам долнища с презрамки (представете си тези на щангистите) и “презрамки” за стъпалата за да не може крачолите да се качват нагоре при каране. Презрамките слагам върху втория слой за да съм сигурен, че няма да имам място, което е изложено на студеното време навън и за да знам, че двата слоя са плътно прилепнали към мен.
  5. Чорапи – зимни вело чорапи. Трябва да ви пасват перфектно за да нямате проблеми с претриването. Материята трябва да бъде много плътна за да не си натъртите ходилото при натискането на педалите. Обикновено зимния вело чорап е с дължина от петата нагоре около педя;
  6. Обувки – обувките трбява да са зимни, защото не искате да ви влиза леденостуден въздух през вентилационните отвори на летните такива. Аз ползвам летни и след няколко премръзвания горещо ви препоръчвам зимните.
    1. hint – ако имате повече от един чифт обувки следете състоянието освен на педалите а и на парчетата им, защото особено при SPD педалите това е  много важно.
  7. Overshoe – това е нещото, което слагаме върху обувките за да си запазим краката сухи и да не губим телесна температура. Има и летни варианти, които се използват от хората, които са по-големи фенове на аеродинамиката.
    1. hint – докато карате не забравяйте да си движите пръстите на краката от време на време за да стимулирате кръвопотока към пръстите, защото след като те измръзнат и започнете да не ги усещате ще стане много по-трудно.
    2. hint – като се приберете вкъщи с измръзнали пръсти или крайници в никакъв случай не пускайте горещата пода под душа. За да се климатизира човек трябва плавно преминаване от по-ниска към по-висока температура.
  8. Ръкавици – ръкавиците трябва да са зимни и меки (или поне в долната част на дланта). Има хора, които ползват ски ръкавици (втора употреба са на доста добра цена) и нерядко се слагат върху летни вело ръкавици. Удобна екстра е и touch-screen пръстите, но ако ви е нужно нещо спешно винаги можете да използвате носа си (не се шегувам).
  9. Шапка/бъф – Вело шапките са нефункционални зимата, защото не помагат със защита на скалпа и ушите. Бъф-а от своя страна представлява един “ръкав”, който може да бъде сложен на главата или китката по безброй начини. Тук можете да видите и видео с някои от тях. И още едно страхотно предназначение на бъфа е спиране на кръвотечение при сериозни травми. Има и специални бонета за мокро/студено време, които имат протектори за ушите. В Декатлон има едно такова ветроупорно (не водонепромукаемо) за 29 кинта.

 

Вело аксесоари

Вело аксесоарите са критични дори и за най-малките карания (аз лично дори и за 15 км каране взимам 90% от долуизброените)

  1. Каска – едно от най-важните неща, които един велосипедист може да има. Напълно задължителна по закона за движение по пътищата и може би единствената ефективна защита при евентуален инцидент. Да не забравим преди 2 години като паднах, че каската ме спаси до голяма степен да не съм зеленчук днес. Каските от среден клас са страхотни и не много скъпи. Избора на каска е личен и трябва да пробвате преди да си купите една.
  2. Гел против протриване – особено ако сте с повечко килограми (като мен) е задължително използването на гел против протриване за по-дългите дестинации. Ако пък продължавате да имате проблеми тогава вижте височината и наклона на седалката и проверете долнището заедно с памперса. Аз имах случай с разшит от едната страна памперс и не беше приятно чувството при по-дълго каране.
    1. hint – има специализирани такива мазила, но можете спокойно да използвате и крем против подсичане на Бочко. Пробвал съм го на два бревета и върши добра работа.
  3. Светлини – едно от най-важните неща, които трябва да носите със себе си без значение колко дълго ви е карането и дали е през деня или не. Предната светлина трябва да ви позволява да се ориентирате при пълен мрак, стопа трябва да е силен за да сте видими колкото се може по-далеч. Аз минах на фар и стоп с LED, който се зарежда през mini USB и има LI-ion батерия за да мога при дълги и ултра-дълги дистанции да мога да ги зареждам в движение. Избягвайте фарове/стопове със собствени изходи за зареждане (като някои модели на Sigma) за да можете с един кабел да се справите с фар, стоп и телефон вместо да носите по няколко.
    1. hint – Аз винаги нося монтирани върху велосипеда фар и стоп без значение дали съм излязал сутринта или следобеда и съм 100% сигурен, че ще се прибера преди залез. Случвало ми се е неведнъж да излязат непредвидени ситуации в които без фар и стоп съм за никъде.
    2. hint – фара трябва да е с няколко милиметра под хоризонта на велосипеда за да виждате едновременно пътя ( и неизбежно – дупките) и какво става пред вас;
    3. hint – аз винаги използвам мигащата функция на стопа ми, защото първо, че е много по-икономична от към разход на батерията и второ – според мен е дори по-видима от далеч или в мъгла от постоянно светещата.
  4. Очила – в студено време поне моите очи сълзят супер много ако не нося очила. А ако вали сняг става още по-страшно. Всякакви очила ще помогнат като избягвайте тези със стъклени и метални елементи. Аз карам с Dragomir Onratio и съм много доволен.
  5. Термо бидон – никога не е приятно да сте капнали, прегрели (нищо, че навън е 2 градуса) и да пиете леденостудена вода. На помощ идват термо бидоните, които използват материали със силно термоизолационни свойства като полиетиленова пяна и метлно фолио. Аз изпозлвам два бидона Zefal Arctica 55. Преди тръгване ги пълня с много топла вода и имам около час докато не се стоплят.
    1. Друг трик, но по-скъпо струващ е да си вземете раница с camel back. Камел бека представлява плик с обем най-често между 750 мл до 2 л., който стои между вас и багажа, който носите. От непосредствения контакт с вас водата остава много по-дълго време на топла.
  6. Смазка за веригата/лубрикант – при интензивното въртене на дълги разстояния (над 120-150 км да речем) в зависимост от смазката (лубриканта) веригата ви ще има различни смазочни нужди. Ако използвате суха смазка като Squirt Lube през 100-130 км е препоръчително да смазвате допълнително. Другите смазки държат повече, но и събират със себе си повече мръсотия. Намерете малко шишенце, което можете да носите (Squirt Lube предлагат опаковка от 15 мл) и ще си спестите още един проблем. Ако пък навън е кално или вали не искате да въртите на измита уха верига още 100 км например.
    1. Аз съм фен на Squirt Lube защото преди тествах няколко други, които повече се доближават до тъкното машинно масло и след няколко по-щедри намазвания имах смазка и по ушите. И понеже движенията ми са сиви (като хромирани) сухата смазка им се отразява по-добре, не цапа много и има от малки 15 мл разфасовки, които са супер удобни за използване.  За подбалканското предизвикателство смятам да съм с една 15 мл. Ако пък карате интензивно можете да вземете като мен една 120 мл разфасовка и една от 15 мл. Това ще ви осигури лубрикант за поне една година, а ако карате от време на време ще стигне за много повече.
  7. Реперационен инструмент за велосипед – обикновено прилича по формата на швейцарско ножче, но много по-полезно за един колоездач. По принцип можете да вземете такова за 10 лв или за 50 лв – разликата я има, но и първото може да ви свърши страхотна работа. По-долу съм писал за спици и верига – има някои тулове, които имат и такива инструменти, но са доста по-скъпи. Препоръчвам отделните такива.
  8. Резервни гуми – понеже аз карам шосеен велосипед и взимам вътрешните си гуми от Decathlon за скандалната цена от 5.30 лв. за две не мисля, че има смисъл да лепя гуми на сред нищото при положение, че  удачно да лепя гуми на пътя (а ако е в дъжда или външната гума е съдрана става още по-интересно).  При карания до 60-70 км нося една резервна гума, за повече от това – две. Не заемат почти никакво място, но ако спукаме две едновременно (случвало ми се е ) са най-безценното нещо, което можем да носим със себе си. Петьо от КК “Одесос” на Париж-Брест-Париж (с обща продължителност от 1200 км.) носеше четири резервни гуми със себе си. Смяната на вътрешна гума е лесна, но задължително човек трябва да се упражнява сам вкъщи поне няколко пъти за да може при евентуална авария да реагира за минути. Например при едно от неделните карания с КК “Одесос” спуках гума на дванадесетия километър и Карен демонстрира как може да я смени точно за  90 секунди! Тук можете да видите видео от GCN за бърза смяна на вътрешна гума. Аз лично препоръчвам използването на външни 25 мм гуми, защото смяната става значително по-лесно от тези на 23 мм. Смяната на вътрешна гума изисква и няколко неща, които трябва да носим със себе си:
    1. Щанги за сваляне на външна гума – те са компактни, супер леки и евтини. Предствляват два профила с кривина от едната страна и кукичка от другата. Ако имате плоски спици по-добре пробвайте на място дали кукичката може да се закрепи добре за спицата, че имам в нас едни, които в последствие не паснаха заради плоските спици :)
    2. Добра помпа – помпата очевидно е критична за смяната на гума. Има два известни стандарта при винтилите – presta (за шосейни гуми) и т. нар. автомобилен винтил. На нас ни трябва presta. И колкото и реклами да ни правят търговците, че помпа с размерите на показалеца ми може да направи 7 бара първо помислете добре. За да ви е полезна една помпа трябва да може да качи поне 6 бара, което е много. Ако искате компактна помпа потърсете такава, която помпа в двете положения за повече ефикасност. Аз имам такава с мека връзка от помпата към винтила за да съм сигурен, че няма да го счупя при помпане.
      1. Имал съм идея, но така и не я реализирах – продават се автомобилни винтили към преста и са супер малки. Това ще ви е от дяволски добра полза ако сте около бензиностанция и ръчната ви помпа не може да надуе до адекватно налягане.
  9. Екстра мерки – при много дълги преходи можете да се замислите и за следните допълнения (на почти всеки бревет чувам как някои носят от долуизброените):
    1. Външна гума – при по-редки случаи можем да станем свидетели на пръскането или разкъсването на външна гума – признак за фабричен дефект, много износена или сме минали през нещо остро. В нито един от случаите ще ни е приятно. Има сгъваеми гуми, които заемат малко място. Минуса е, че са сравнително скъпи, но представете си ако карате сам и сте по средата на 400 км преход.
    2. Верига с бърза връзка – Преди година и половина 20 минути преди старта на двеста километровия бревет “Долината на тракийските царе” един от членовете на КК “Одесос” скъса верига по някаква причина. Слезе, извади резервната, сложи я за минута-две и продължи like a boss. Допълнителната верига е тежка и може да си мислите, че само пречи, но когато сте на 75 км от дома и имате да карате още толкова в мъгла и мизерия и скъсате верига (както се случи и на мен на нос Калиакра) ще оцените наличието на резервна такава. Единственото условие е веригата да има бърза връзка за да можете да я смените лесно и без специалния инструмент за целта. Можете да използвате и старата си верига (стига да е със същата дължина) и няма да ви се наложи да настройвате скоростите.
    3. Спици – Адаша в Гърция скъса спица два пъти. Преди това го гледах странно като ми каза, че и спици си носи, но явно е патил и преди това. Вземете същите спици с които карате в момента (ако сте с различни на двете колела го имайте предвид) + инструмент за (де)монтирането им. Когато приключите и преди да тръгнете се уверете, че каплата е права и няма кривини.
    4. Медицински (латексови)  ръкавици –  веднъж по време на бревет видях колега да си сменя вътрешната гума с обикновени латексови ръкавици. Решението е идеално, а и е кофти човек да се омаца с масло и да кара така в продължение на няколкостотин км.

 

И ето, че моето “кратко” писание за зимното каране прерасна в какво да носим по време на (не само зимно) каране. Очаквам вашите коментари и добавки/корекции по статията и дано е била в помощ на някого.

 

Ваш,

Недко.