Category: Блогинки

06.01.2017

Тази година е интересна още от самото си начало. След като разбрахме за DRAMA, Meltdown и Spectre, GPS online service уязвимостта за която писах явно Hackman-a се е хванал и е направил една колекция от whitepapers за уязвимости, които не бяха стигнали до мен.

Btw разбрахте ли, че CEO-то на Intel е продал акции за 20 милиона долара преди няколко месеца? В едно изявление каза, че изобщо не знаел за съществуването на тези проблем :D

 

И последно, обещавам. От Интел споменаха, че ще има извесно забавяне след фиксовете за meltdown/spectre. Някои медии писаха за 5%-10%, други за 30%, после дойде това:

 

Или както се казва – деба.

Малки SQL трикове за WordPress

Когато не му се спи на човек ума му решава да прави неща, които в нормални условия не биха се случили (не и в този вид).
Ето и списък с няколко интересни SQL заявки, които можете да използвате докато работите с WordPress.

Как да покажем общия брой публикувани постове за определена година

В този блог за 2017 година съм публикувал 155 поста. Чудя се това малко ли са или много, но колкото-толкова.
Интересно е друго – начина по който видях това. Оказа се съвсем лесно с SQL заявка, която изглежда по този начин:

select count(*) from wp_posts where YEAR(post_date) = 2017 and post_type = 'post' and post_status = 'publish'

Имайте предвид, че тази заявка показва само публикуваните постовете (не page или някакъв custom post type) за 2017 г.

Примерен резултат:

mysql> select count(*) from wp_posts where YEAR(post_date) = 2017 and post_type = 'post' and post_status = 'publish';
 +----------+
 | count(*) |
 +----------+
 | 155      |
 +----------+
 1 row in set (0.00 sec)

Ако искате да видите колко draft-а имате можете да изпълните тази заявка:

select count(*) from wp_posts where YEAR(post_date) = 2017 and post_type = 'post' and post_status = 'draft'

Примерен резултат:

mysql> select count(*) from wp_posts where YEAR(post_date) = 2017 and post_type = 'post' and post_status = 'draft';
 +----------+
 | count(*) |
 +----------+
 | 116      |
 +----------+
 1 row in set (0.00 sec)

 

И не – няма грешка. Имам цели 116 поста, които така и не съм публикувал, повечето от които са започнати и недовършени истории, няколко tutorial-а (още ме е яд, че не завърших този за HTTP/2) и няколко пътеписа.

Как да сменим siteurl и homeurl с един ред

Ако не сте чували за siteurl и homeurl няма страшно. Но ако се наложи да мигрирате сайта, да смените домейна или да добавите/премахнете HTTPS поддържка ще се наложи да поработите с тях.

UPDATE wp_options SET option_value = replace(option_value, 'http://www.nedko.info', 'https://www.nedko.info') WHERE option_name = 'home' OR option_name = 'siteurl'

След изпълнението на тази заявка при опит да достъпя сайта ще бъда пренасочван автоматично от non-HTTPS към HTTPS версията на блога. Можете да я използвате и при смян на домейн да кажем като смените втория линк на този, който желаете. Не е най-добрия пример, но е важно да схванете как работят siteurl и homeurl. Друга полза е ако ъпдейтвате сайта и имате да мигрирате да кажем https://nedko.info/v2 към https://nedko.info.

Работа с пароли

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

UPDATE wp_users SET user_pass = MD5( '123456' ) WHERE user_login = 'admin'

Тази заявка ще смени паролата на потребителя admin с 123456.

 

Ако ви се наложи да работите върху клиентска инсталация, но не искате да сменяте паролата на потребителя можете първо да запишете хеша ѝ със следната заявка:

select user_login,user_pass from wp_users

Примерен резутат:

mysql> select user_login,user_pass from wp_users;
+------------+---------------------------------------------------+
| user_login | user_pass                                         |                           |
+------------+---------------------------------------------------+
| admin      | $P$B5&50UGz0.kW3tq6jifraX.hT!РqZP.                |
+------------+---------------------------------------------------+
1 row in set (0.00 sec)

Сега запишете стойността на user_pass полето, изпълнете горната заявка, която ще смени паролата на 123456 и като сте готови просто изпълнете следната заявка за да върнете старата парола:

UPDATE wp_users SET user_pass = '$P$B5&50UGz0.kW3tq6jifraX.hT!РqZP.' WHERE user_login = 'admin'

 

Изтриване на всички спам коментари

Преди време ми се наложи да изтрия от един блог над 10 000 коментара. Tricky-то беше, че имаше и коментари от хора, не само спам. Решението е тривиално и се нарича Akismet. Безплатната версия върши страхотна работа, но имах проблем с привилегиите на DB потребителя и коментарите маркирани като спам не се триеха. За това използвах тази заявка за да ги изчистя (~10 000 коментара от които 90%-95% спам се изтриха за под 2 секунди):

DELETE FROM wp_comments WHERE comment_approved = 'spam'

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

DELETE FROM wp_comments WHERE comment_approved = '0'

Как да видим всички неизползвани тагове

Ако искате да видите дали имате тагове, които никога не са използвани можете да изпълните тази заявка:

SELECT name,count from wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0

Примерен резултат:

mysql> SELECT name,count from wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0
 -> ;
+--------+-------+
| name | count |
+--------+-------+
| blabla | 0 |
+--------+-------+
1 row in set (0.00 sec)

Ако обаче искат да видите (спорд мен далеч по-практично) тагове, които са използвани 5 или по-малко пъти, сортирани по възходящ ред можете да изпълните следната заявка:

SELECT name,count from wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count<5 order by wtt.count DESC

Примерен резултат:

mysql> SELECT name,count from wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count<5 order by wtt.count
+--------------------------------------------------------+-------+
| name | count |
+--------------------------------------------------------+-------+
| blabla | 0 |
| humor | 1 |
| кино | 1 |
| котка | 1 |
| vulnerability | 1 |
+--------------------------------------------------------+-------+
5 rows in set (0.00 sec)

Извличане на всички мейли от коментарите на потребителите

Маркетинг хората имат нужда да пращат таргетирани съобщения до разни хора и един страхотен начин да изкарате списък с всички мейли от коментиралите по блога хора е следния:

select comment_author_email,comment_author_url,comment_date from wp_comments order by comment_date DESC

Тази заявка ще покаже мейла, сайта (ако има такъв попълнен) и датата на коментара. Това можете да го ползвате като ориентация.

Примерен резултат ще върне следните данни:

[email protected] | http://www.somedomain.com | 2017-11-01 17:18:19 |

Иначе можете да лимитирате само до списък с мейлите така:

select comment_author_email from wp_comments

 

P.S. For non-Bulgarian speakers:

  • What are you doing here?
  • If you think that the article will be useful I can translate it in English.

04.01.2017

Зъболекари, зъби, машинки, шитни, болнични. Днес деня не е толкова положителен, колкото се надявах да бъде. Но кот-такоа. Сашо от офиса ме открехна към As I Lay Dying, а аз се сетих, че имам и фаворит:

 

 

03.01.2018

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

 

In other news:

  • DRAMA-та се задълбочава. TheRegister описаха случая и няколко техни теста. И един туит описващ всичко:

  • Оказа се, че много online services of GPS location tracking са vulnerable. В общи линии трето лице може да проследи физически клиентите, които използват тези сървиси (описани са в статията). Оказа се също и че някои от провайдърите са идиоти, защото паролите им по подразбиране са 123456.

02.01.2018

Първи пост за 2018 година.

Посрещането мина добре, но ми разбута съня. Вчера като се прибрахме легнах към 17:00 и станах към 20:30. Четох до нямам идея колко часа и днес вървя като бот на Counter Strike.

Заби ми се една мисъл в главата, от А. Чехов
“Днес е забележителен ден – чай ли да ходя да пия или да взема да се обеся…”

In other news:

Равносметката 2017

Мина още една година. И по навик казвам нещата, които не съм направил първо, защото са по-важни.

  • Не водих лекции в Социалната Чайна. Преди няколко месеца излязоха открито и казаха, че парите им не стигат. Тогава се свързах с тях и говорихме да водя лекции в тяхната зала, а приходите (всеки плаща колкото реши) да отиват в Чайната. По същото време смених работата и реших да забавя нещата за да мога да се концентрирам върху нея;
  • Почти не снимах. За поредна година;
  • Почти не танцувах;
    • Нямам нито едно представление за годината.
  • Не говорих на TEDx. Темите ми щяха да бъдат свързани с депресията или Quality Assurance in real live;
  • Не говорих на WordCamp Varna 2017. Предложените ми теми бяха за security и performance testing. Не ги одобриха;
  • Почти не свирих;
  • Не карах колелото точно колкото исках. За това вече писах;
  • Не четох толкова, колкото исках;
  • Не писах толкова, колкото исках.

 

Нещата, които се случиха:

  • Започнах нова работа. За момента това е най-доброто място в което съм работил в съотношение колеги/проект/условия. Компанията е Немечек;
  • Направих моето Голямо Каране. До половината. Три дни интензивно каране и общо 264 км, спане в колата, катерене на връх Ботев, ядене на малини и ягоди на средата на нищото;
  • Случи се това. И близките ми за здрави и повечето дори са щастливи. Повече не мога да искам. Дори и котката Иво е жив и здрав (и дебел);
  • Изкарах 2 дуатлна (Злати се включи във втория и го изкара също), на единия дори и завърших в контролното време. Имам си и медал!
  • Пътувахме със Злати много. Обикаляхме из България, а тази година направихме и няколко пъти Варна-София-Варна със самолет;
  • Изкачихме връх Ботев за ден и спечелих от габровец 10-тина бири;
  • Говорих в WordPress meetup Varna за “Security of WordPress”. Получи се много добре;
  • Говорих и в “ИТ Форум” в Технически Университет Варна. Там организацията беше зле, след като си написах лекцията после 5 (!!) човека от предната фирма в която работих я редакритаха, рязаха, добавяха, осакатяваха докато не стана една страхотно скучна лекция типична за скучно-университетските и/или корпоративни среди. И имаше 10 човека (заедно с лекторите);
  • Говорих във “Вечер на таланта” за моето Голямо каране. Беше интересно, даже има и видео как фъфля;
  • Говорих в “EU Code Week Varna 2017” – беше най-класното и посещаемо събитие провело се в зала “Black Sea Hall” на хотел “Черно Море”;
  • Месец по-късно говорих в “Zara Code Week 2017” поканен от Венко Добрев. Беше най-сърцатото събитие, срещнах ценни хора, имаше крайно черен хумор вечерта преди моята лекция, заразих се от ентусиазма на Орлин. Абе беше страхотно преживяване;
  • Започнах да се заигравам с микроконтролери. За момента съм загърбил Raspberry Pi-то и си играя с ESP8266 (контролер с 80 Mhz процесор, micro USB захранване, вграден WiFi, I2C, etc.), DH11 (датчик за температура, влажност и атмосферно налягане), BSP280 (като DH11, но много по-точен и производство на Bosch) и голямата ми гордост – SDS011 (датчик за твърди частици). Като сглобя всичко това ще се включа в Air Bulgaria да следим в колко мръсен въздух живеем;
  • marvin е още жив. Покрай него научих супер много за системната администрация и как работи отдолу nginx. Нико, Владо – благодаря за помощта, която ми дадохте през времето когато го омазвах солидно;
  • Тръгнах да чета Хари Потър, до момента съм към края на петата част – “Хари Потър и Ордена на Фениска”. Четох и Бакман, Весела Тотева и Агата Кристи. Следващата година ще дочета Потъра и после – Глуховски. И повече от 9 книги за годината(срам, срам…);
  • Отидохме на Hills Of Rock, счупихме главите и си изкарахме потресаващо добре.

  • Не мога да повярвам колко дълга ми стана косата.

Нещата, които ще ми се случат:

  • Да направя каквото мога за Чайната;
  • Да правя хората по-добри. Винаги съм вярвал в споделянето на знания и ще продължавам да го правя докато мога;
  • Да чета приказки в дома за деца лишени от родителски грижи;
  • Да се случи моето Голямото каране 2 – този път 500+ км за седмица, вероятно пак сам;
  • Силна бреветна година – 200км, 300км (евентуално 200+300 във Варненски бреветен уикенд) и ако успея да вляза във форма – и един 600 км (400 е за ден, а 600 има време човек да поспи 2-3 часа за това казват и че е по-възможен);
  • Дунав Ултра – много се надявам да успея да участвам и да финиширам в контролното време;
  • Да изкарам първия си мартон.

 

Нещата, които заболяха:

Eminem и новия му албум “Revival

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

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

И така цели девет албума – Infinite (1996), The Slim Shady (1999), The Marshall Mathers (2000), The Eminem Show (2002), Encore (2004), Relapse (2009), Recovery (2010), The Marshall Mathers 2 (2013), Revival (2017).

Започвах и зарязвах този пост около 6 пъти. И нито един не свършваше добре. Новия албум на Еминем е труден за разбиране от феновете му. Той е поп албум, а не Еминем. И като казвам Еминем имам предвид стила, който той сам направи.

Нямам нищо против експериментите, но след The Marshall Matthers 2 летвата беше прекалено висока.
Иначе сигурно феновете на Alifia Keys, X Ambassadors, Skylar Grey, Kehlanim Ed Sheeran, Phresher и Beyonce ще са щастливи.

Аз не съм.

 

И все пак:
https://www.youtube.com/watch?v=CLytz9fNsQw

 

My year in sport 2017

Тази година започна силно и приключи като издут наполовина балон. Последните почти 4 месеца не съм карал/тичал и това ще е една от целите ми за следващата година.

2017 година в цифри:

  • Колоездене:
    • Средно колоездачно разстояние на тренировка – 32 км;
    • Най-дълго каране – 219 км (Велико Търново – Казанлък – вр. Шипка – Велико Търново);
    • 84 пъти съм подобрявал личните си рекорди;
    • Обща дистанция – 3780 км (не съм карал последните 4 месеца от годината);
    • Общо 197 часа прекарани в колоездачни тренировки;
    • 135 карания;
    • 2 бревета – първия го изкарах за под 10 часа за 200 км, а следващия ден на 300 км. се провалих и минах едва половината. Оказа се, че все пак не съм чак толкова fit колкото си мислих и 500 км. за два дни са прекалено;
    • Карах 3-4 пъти MTB преди и по време на двата дуатлона. Със сигурност се чувствам доста по-уверен от първия си дуатлон, който беше екшън и половина, но все пак не мисля, че това е нещото за мен.
  • Бягане:
    • 68.4 км бягане от които 23 км. в две карания на два дуатлона;
    • Направих най-бързите си 5 км до сега за 26 минути за което писах.

 

Тук можете да видите и видеото, което ми генерира Strava.

Цели за следващата година:

  • Да участвам и изкарам в контролното време Дунав Ултра
    • Малко повече информация – бях одобрен за участие в Дунав Ултра 2017, но започнах нова работа и везните наклониха към работата. Следващата година силно се надявам да успея да участвам.
  • Тази година исках да направя 5000 км. на колелото от които направих под 4к. Ако бях продължил с каранията може би щях да ги направя. През 2018 г. ще гоня поне 5000 км. (което е 14 км средно на ден) като ще гледам да се концентрирам върху бреветите (200 км +300 км + (евентуално) 600км );
  • Ще изкарам първия си маратон (42.195 км.). Да, знам, дебел съм. И не – няма да се оставя така. Целта ми ще е да изкарам един пълен маратон в контролното време като вероятно ще се пусна и на един half-marathon да видя как се движа;
  • Имам една крайно извратена мечта и тя е да се пусна на триатлон, но не съм сигурен, че ще успея да се подготвя за една година.

Коледа 2017

Тези дни бяхме в Добрич. Интересните неща, които се случиха:

 

  • Видях се с Радо. За жалост с Радо се виждаме само веднъж годишно, но пък като се видим наваксваме солидно. Тази година не беше изключение. Проблем излезе да намерим място в което не се пуши и е отворено до късно в Добричи и както обикновено осъмнахме с Бакарди (колкото и да го ненавиждаме е май единственото място на което сервират бира, музиката може да е тиха в някоя от залите и да не ни изгонят в 22:30). Говорихме за прекалено много неща, а копелето взе, че ми подари action cam за което смятам да го набия. Сега няма да имам извинения като карам колелото или като гмуркаме другата година. Сутринта посрещнахме на баничките на Ботев (всеки добричлия знае това епично местенце). Чакахме 30-тина минути за по една баничка с боза на около нулата. Един от най-светлите моменти в последните месеци;
  • Видях се с Миглен и Мишо – мои приятели от университета. Събрахме се няколко часа след срещата с Радо и бяхме в ужасно състояние – мрънкаме, отиче червени, говорим несвързани неща :D После се оправихме и минахме през почти всички философски теми, системна администрация (Мишо станал сисадмин и си говорихме за това) и избухахме по една торта.
  • Прекарахме Коледа с моето семейство. 6 двулитрови бири, enough said.
    • Получих супер много подаръци и един от тях беше на Златина – Kai Wasabi Black Chief’s Knife. Мечта ми беше да имам добър нож, но това произведене на изкуството беше извън дори и смелите ми мечти;
    • Събрахме се цялото семейство – всички сме здрави и щастливи.
  • Не можах да се видя с няколко човека. Това ме кара да се чувствам отвратително.

 

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

Btw нека не сме егоисти – на 25.12 все пак се е случило нещо особено и то е, че през 1643 година е роден Исак Нютон (по стар стил), който наистина е направил нещо за човечеството, а ден по-рано е роден Леми Килмистър от Моторхед.

А! И още нещо – идеята с елхите е невероятно лоша. Знаете ли, че на една елха, която си купувате от магазина или сечете от някоя неохранявана гора ѝ отнема между 5 и 7 години за да достигне нужната си височина? Смятате ли, че е ок да отсечете нещо, което произвежда кислород, обогатява локално почвата и е дом на доста гадинки (малко май започвам да звуча като бременна веганка-християнка), да го оставите във вас и след месец да го изхвърлите?

16.12.2017

Стана 18:00 и започнахме да се сбогуваме с домакинката и двете очарователни деца. В 18:20 аз вече звъня на такси и … никой не отговаря. Пробвах с ОК Такси и Yellow Taxi. После с Taxi Me. Поглеждаме през прозореца – навън вали.
Сестрата на Злати ни закара до летището, което не е никак близо до тях. Почти бегом стигнахме до гишетата и после се зататрузихме към security check-а. В самолета бяхме на различни места и се паднах до майка с момченце на около 6. През втората половина на полета започна да се закача, а аз слушах много съсредоточено новия албум на Еминем и гледах да не му обръщам внимание. Пипането с пръстче прерастна с ръчкане, после скубане на косми и накрая се заиграхме. През цялото време се чуваше – “Спри се бе, Иване!”. Като кацнахме дори ми удари една целувка на ръката за довиждане. Прибрахме се по живо по здраво. Котката Иво много се зарадва да ни види.

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