WordCamp Варна 2017

Добро утро от WordCamp Варна 2017, което се проведе в Икономически Университет – Варна.

Цъфнах час по-рано и имах време да поговоря с организаторите и спонсорите на събитието. Говорихме си със SuperHosting (с тяхната marketing expert Цвети и придобиването на Host.bg и HostBularia.com, техния security platform и ограничението им по inodes), JetPack и приятен разговор с екипа, FastComet (хостинг компания, имат интересна игра с едни хартиени роботчета и бая сериозни цени за VPS услугите си, но иначе с млад и доста надъхан колектив), Yoast ( и техните супер странни формички за кукита с тяхното лого), ICN (и странния разговор с дамата, която не се представи), Siteground (и техните #басияките bibs), dmarcian (и техните тениски и странно слабата им активност, но пък говорих с един от българсите служители, който имаше доста сериозен technical background), GraphicMama (които имат супер яките стикер дизайни. Също се оказа, че са бранч на 2create, което ме изненада много).

Залата се напълни до горе, доброволците са навсякъде и помагат (Злати и тя е сред тях). Видях доста познати лица и се запознах с още повече :)

И така:

 

Лекция първа – Петър Николов – WordPress API – минало, настояще и бъдеще.

От Петър очаквам епична лекция подплатена с отвратително голям бекграунд, каквито обикновено прави.

Петър говори за WordPress API. И се оказа, че не е едно както мислих до сега, а цели 18! Повече инфо можете да видите тук.

Последва редица примери за валиден и невалиден WordPress код и как се използват правилно WordPress APIs. И още нещо – WP API е еднонишков и има достъп до всичко (няма нужда от authentications към другите API-та).
Петър говори за вече архаичното XML-RPC API и споделям радостта си, че спряха да го използват. Все пак е създадено Февруари 2005… :D Още помня как изтръпнах като се оказа, че като пуснаха REST API-то можех да листна всички добавени потребители в системата по елементарен начин. Бррр.

И една малка вметка – user enumeration през REST API е възможен през следния линк:
https://nedko.info/wp-json/wp/v2/users

Резултата е JSON списък с всички потребители добавени в системата. Моя блог ще върне следните резултати:
[{“id”:1,”name”:”\u041d\u0435\u0434\u043a\u043e”,”url”:”https:\/\/www.nedko.info”,”description”:”Author, writer, cyclist and a passionate QA engineer that love to share his knowledge with everyone.”,”link”:”https:\/\/www.nedko.info\/author\/nedko\/”,”slug”:”nedko”,”meta”:[],”_links”:{“self”:[{“href”:”https:\/\/www.nedko.info\/wp-json\/wp\/v2\/users\/1″}],”collection”:[{“href”:”https:\/\/www.nedko.info\/wp-json\/wp\/v2\/users”}]}}]

И отплесвайки се (както обикновено) мога да задълбавя с това как се прави user enumeration и по друг начин (Нико, благодаря за напомнянето).

Линка е този

https://www.nedko.info/?author=1

При съществуващо ID ще резолвне потребителя по следния начин:

https://www.nedko.info/author/nedko/

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

 

API №2 – AJAX API – Пешо говори за навлизането на AJAX в ИнтернеДа. даде пример с GMail през далечната 2005, когато въпросните изкъртиха с много яки за времето си  drag’and’drop/right click/etc интеракции с потребителя. От тогава стана ясно, че AJAX ще живее дълго. BTW абревиатюрата на AJAX ако сте се чудили е asynchronous JavaScript and XML.

И накрая дойде реда на REST API (Representational State Transfer), който има възможността да се използва с различни програмни езици, почти няма ограничения за използването му в WordPress. Показва и примери с curl.

WPTavern и ManageWP са част от местата от които черпи нова информация за екосистемата на WordPress.

Говори също така и за релийза на WordPress 5.0 – промените ще са скандални, включително новия редактор Gutenberg, 3rd party tools, Woo 3rd party tools и т.н. Лека полека е стане headless.

Доста добра лекция.

 

Лекция втора – Vanina Ivanova – A WordPress blog as a MVP for starting a business

Лекцията е на (доста добър) английски, говори за това как писането на блог може да ни помогне със последващо стартиране на собствен бизнес. Точно за това писах и аз сутринта в темата за блогването. Дизайна на презентацията ѝ е страхотен и доста минималистичен, btw си мислих, че MVP значи Most Valuable Player, а то е било Minimum Viable Product. В случая това е блог.

Започнала е да опипва територията със свой блог за маркетинг на български. Интересно е, че говори за това на английски :) Проекта е MarketingRebels.club.

Казва, че след няколко седмици и точно $41 назад вече са вдигнали блога и са започнали да слагат съдържание. В презентацията си има и меме на Тръпм. Йеей.

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

 

Лекция трета – Kat Christofer – How WordPress and working remotely helped me see the world – truly, nomadly, deeply

Кат Кристофър работи в екипа на Woo от десет години и се занимава основно с документацията на продуктите. Азиатката е обиколила впечатляващите 49 държави работейки отдалечено.

Казва, че с отдалечената работа или не работиш изобщо или работиш постоянно. Работата е, че за да работи човек отдалечено трябва да е много стриктен към себе си и много отдаден на това, което прави.

Говори за продуктивност – да познаваме себе си и къде сме най-концентрирани, да работим на спринтове (agile sprints), без значение дали сме програмисти, QA или се занимаваме с писане на документация.

 

“Loneliness is not seeing people constantly , but missing the communication with people.” Kat Christofer

“People are happier spending money on experiences, not things” Kat Christofer

Част от лекцията с Кат, на английски:

 

Pros and Cons to be remote worker:

Pros:

  • Exposure to world;
  • Expand perspective;
  • Push boundaries;
  • Already packed;
  • Freedom;
  • Be with people you love (all over the world);
  • Personal growth.

Cons:

  • Residency required for contracts, insurance, etc;
  • Immigration laws;
  • Forget where you are;
  • Difficult to explain your life;
  • Goodbyes (sucks);
  • Dating and relationships issues;
  • Fragmented chapters, not part of your entire personal life;
  • Detained for truth.

 

Is the digital nomad life right for you?

  • Do you know the difference between tolerance vs acceptance?
  • Are you OK with unknown and unexpected?
  • Are you okay to wear the exact same clothes for months or a year?
  • Challenges;
  • Start and stop;
  • How you do on emergency situations?
  • Ready to test yourself and relationship(s)?
  • Organization and details.

Изключителна лекция. Кат ни разказа през сълзи за нейната свобода и за това как е била в Северна Африка при нейн колега, пак от Woo, който я е закарал на изненадващо сафари. Имаше снимки на слонове в пустошта и ни показа какво е да бъдеш свободен.

 

Лекция четвърта – Боян Йорданов – Automated testing for WordPress

Боян говори за типовете автоматизирано тестване – unit , integration & acceptance (end-to-end) testing.  Говори за BDD (behavior driven development) където от особено значение е да мислим за поведението на продукта/функционалността, срещите с клиенти и project managers. Инструмент за тестване на BDD – Behat и Gherkin.

Всъщност това за контакта с клиента и management-а е много важно за всеки аспект в project delivery-то.

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

Линк към презентацията можете да намерите тук.

“The only way to go fast is to go well” Uncle Bob

И последно – Боян напомня, че автоматизираните тестове са код, а той трябва да се поддържа. Worst case е да имаме стар unit test, който да връща false positive и да свети в зелено, докато отдолу всичко е натрошено.

 

Лекция пета – Radka Nacheva – Emotional Design in WEB

С Радка се познаваме от WordPress meetup-а, където говорихме и двамата. Темата ѝ е отново в нейната специалност – Емоционален дизайн.

Радка малко ме изненада и ме изкара да тества на мен няколко бутона пред публиката – трябваше да изразя малко емоции – гняв, радост и изненада. Беше забавно. Показа ни как цветовете водят до определни очаквания в нас, например сутрешна аларма, Елвис Пресли, рок музика и единия бутон не работеше.
Опита за разговор пред хора и масивния опит в сферата си личат. Аз може малко да съм се притеснил, но да кажем, че се чувствах конфортно. Успяхме да разсмеем доста голяма част от публиката, а аз си тръгнах с малък подарък от нея.

Говори ни и за връзката между емоция и чувствата ни, ментални модели и доста психология. Освен това разказа за колелото на емоциите на което залагат изключително дизайнерите за да предизвикат определена емоция:

Сега се чудя моя блог какви емоции води във вас :D

Един интересен инструмент, който ползва Радка е Palloton.

 

Обяд: Хапнахме в стола на ВИНС-а едни малко измислени сандвичи и сега кибичим докато стане 14:30.

Поговорихме с хората от FastComet и за all-in-SSD и техния SSD failure rate. Един любезен тип ми разказа, че по 3-4 SSD-та при тях заминават на месец. Но сподели нещо друго – за роботизираната ръка в datacenter-а на Google, която на средно всеки 37 секунди fail-вал по един диск. Та тази ръка обикаляла и сменяла дисковете за супер кратно време. Повече информация ще потърся довечера.

Имахме разговор с Любомир Русанов и Методи Дреновски от SuperHosting.bg и поговорихме наново за придобиването на HostBulgaria и Host.BG, за сигурност, за морето и за WordPress. Приятна и интересна компания са, а най-интересното беше, че ме помнят по име при все, че последния път в който се видяхме беше преди поне четири години.

Извън предния разговор – щендера на ICN.BG беше най-малко посещавания. Двете жени там нямаха никаква връзка с хората, които подминаваха щанда, в началото раздаваха рекламни торби с някакви неща вътре, но след това не видях повече от 10 човека за 3 часа пред тях.

Edit – видях в техния профил, че са писали следното:

“Днес сме на Wordcamp Varna 2017 и естествено си говорим с всички за WordPress Management. Всичко за неговите полезни функционалности научете в блога ни https://www.icn.bg/…/configure-wordpress-with-wp-management/“.

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

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

Проведохме страхотен разговор и с Kat Christofer. Разказа малко повече за пътешествието си, за вдъхновението и за това какво носи в куфара си, за това как иска да вземе един Ford Mustang и да шофира 7000 мили из цяла Америка. Видях безкрайната свобода в нея и безкрайната самота в очите ѝ. Тази жена знае как да вдъхновява.

Закъсняхме за

Лекция шеста: Luc Princen – Not Your Grandpa’s CSS: Working with CSS Grid.

Говори за CSS Grid. Демонстрира възможностите му с codepen.io. Тук гледах като голям камък. Не хващам нищо от CSS, а това не е никак ок.
Примера, който използваше Luc можете да намерите тук.

 

Лекция седма:  Йордан Хлебаров – “Изграждане на използваеми WP интерфейси за клиенти” или “User-friendly администрацив на WordPress сайтове”

Йордан Хлебаров дооправяше лекцията си до последния момент. Нещо, което правя и аз твърде често. Само два-три часа по-рано му репортнах на мейла малко vulnerabilities за hlebarov.com. Като видя WordPress инсталация имам едни определени навици да сканирам… но пък за сметка на това репортвам на собствениците :)

Лекцията е насочена към ползваемостта на WordPress backend – нещо, което може да не ни се струва кой знае колко важно, но ако имаме клент, който има някакъв достъп до backend-а става страшно.

Стана дума и за website builders като Motopress и VisualComposer (към който имам много голям неприязън!). След това разказа за потребителските полета като Advanced Custom Fields и WP Toolset. Проблема им е, че са доста по-малко гъвкави, но пък ограничава дейността на клиента и възможностите да строши нещо.

При въпросите попитах за това как се отразява използването на подобни иструменти (като VisualComposer) на производителността. Оказа се, че впечатленията ни съвпадат. Long story short – ако можете не използвайте тези инструменти, защото (нетипично за този блог няма да изругая) просто носят със себе си прекалено много допълнителен JS, прави много повече заявки към базата данни.

 

Лекция осма – Noel Tock – Product-Driven Websites

Noel Tock говори за mindset-а на хорта, които са включени в процеса на създаването и поддържането на проекта и че трбява да е насочен към продукта, а не да използваме някакви методики, които просто не работят.

Например това, че не трябва да сме контрактори, а да виждаме проекта в аспекта на product owner.

Спомена и инструментите, които той ползва често – Google Analytics, mixpanel, Optimizely, Hotjar. Определено ще тествам HotJar на блога. Има безплатна версия и изглежда обещаващо.

 

Лекция девета – Верослав Ценов – “WordPress – Не е страшно да кешираш!”

Верослав говори за кеширането. Ето и какви според него са ползите от кеширането:

  • Скорост
  • Сървърни ресурци
  • Потребителско изживяване (UX)
  • Продажби
  • Google/Facebook ранкинг (SEO)

Разговора по-долу е в аспекта на W3TC – Page cache:

Говори за disk basic и disk enhanced режими на кеширане. За това ще прочета повече, че е доста интересна материя.
Един интересен минус в кеширането е, че не поддържа query strings (от тиша на nedko.info/index.php?postID=5). Другото е, че при purge/invalidation на кеша при много файлове процеса може да е много ресурсоемък.
Якото е, че кеширането порръжа отделен кеш за мобилна версия и по реферер.

Идва ред на memcache/redis режимите. Нещо, което смятам да направя скоро на marvin. За това ще си прочетете сами :)

Плюсовете да използвате memcache/redis режим:

  • Кеша се пази в паметта;
  • Поддържа адреси с query strings (по примера по-горе);
  • Mоже да прави мониторинг (phpMemcachedadmin);
  • Не създават файлове и няма дисков достъп.

 

Минуси:

  • Нужна е memcache/redis от хостинг провайдъра или ако имате VPS да си го инсталирате сам;
  • PHP се стартира винаги и добавя latency
  • Ако имате ограничения в използването на паметта поставено от хоситинг провайдъра.

 

TTFB (Time To First Byte) е нещо ново за мен. Това е времето в което получаваме първия отговор от сървъра.

 

Важни настройки за page caching във W3TC:

  • Front page кеширане
  • SSL/https кеширане
  • Изключени страници за кеширане (например wp-admin няма нужда от кеширане);
  • Cookies (ако имаме функционалност, която добавя кукита трябва да ги  exclude-нем)
  • Мобилна версия на кеша (W3TC) Performance –> User Agent Groups

 

Говори за Proxy / web server кеширане (с varnish/nignx).

 

Винаги е удоволствие да слушам истории от системни администратори/technical aware persons. Просто се вижда болката в очите им като разказват как са се борили с някой проблем дълго време.

 

Зададох въпрос за това какви практически са ползите в пускане на page cache в  “големи сайтове” хоствани в superhosting.bg и резултатите в някои проекти стигали по 5-6 пъти ускорение на проекта. Not bad, not bad :)

 

В заключение – WordCamp Varna 2017 са продали 263 билета, което е впечатляващо, особено за първо издание.

Тази статия съдържа малко под 2000 думи и има точно 60 ревизии започващи от 9:15 до 17:40 часа, опитвайки да споделя с вас всичко интересно, което съм чул днес. Надявам се съм бил полезен.

Официален хаштаг за социалките – #WCVAR

1 Comment

  1. Hi Nedko, thanks so much for this writeup, attending my talk and especially for coming to say hi and the personal interaction afterward! :D It was so fun to talk to you and hear about your adventures and challenges. Loneliness is not the absence of people; it’s the lack of genuine and meaningful connection to others. I’ll post my slides in case that’s helpful.

    Please keep in touch. Already added you on Twitter, and I’d like to know how you and your girlfriend evolve your story and hear your news from time to time! :)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.