Разни блог промени и Chef

Реших да си преместя блога на нов сървър и да направя няколко бая закъснели upgrade-а. Като страничен ефект смених темата и оправих форматирането на по-старите постове. Ударих няколко камъка докато преместя и upgrade-на WordPress. Новата машина пък е конфигурирана с Chef. По тази причина може лесно да се пусне виртуална машина със същата конфигурация.

Искам да разкажа накратко за тези неща.

Continue reading

VarnaConf 2013

Миналата година VarnaConf беше страхотен. Тази година – пак. Датата е съвсем скоро – идната събота. Преди това, ще направя два кратки workshop-а във VarnaLab, вдъхновен от един мъдър човек, направил нещо подобно миналата година.

Т.е., графика е:

  • 18 юли, 19:30 – Clojure workshop. Какво е Clojure, как изглежда, какви са му яките неща.
  • 19 юли, 19:30 – Test-Driven Development – Какво са unit и integration тестове? Какво са test sensitivities? Как изглежда TDD workflow-а? Какво е spike?
  • 20 юли, 09:30 – VarnaConf. Ще говоря за разни проблеми в нашата индустрия.

PlovdivConf и Турнето

Миналата година направихме изключително яка конференция „в последния момент“ – VarnaConf. Оказа се, че няколко от нас са по едно и също време във Варна и решихме да направим малко събитие. Нямаше конкретна тематика, макар че се въртеше около програмиране. Получи се страхотно.

Тази година има по-амбициозен план – да направим няколко такива. Кодовото име на проекта е „Турнето“ (dub-нато от Васил) и понеже до сега не успяхме да измислим по-добре, ще трябва да живеем с него. Освен Варна, говорим си още за Бургас, Благоевград, Велико Търново и дори Русе.

Първото събитие е в Пловдив, след по-малко от две седмици – PlovdivConf. Хората от Hackafe Plovdiv помогнаха изключително много, за което сме благодарни. Засега са известни всички лектори (без един) и съвсем скоро ще пуснем темите им. Ще има after-party, както и вероятно някакво малко събиране на предишния ден.

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

Курс по Test-Driven Development

От край време ми се върти в главата идеята да направя курс по Test-Driven Development. Искам да систематизирам и споделя неща, над които съм разсъждавал и с които съм експериментирал последните няколко години. Съответно, скоро мисля да стане реалност. Continue reading

Поглед назад IV: кратка ретроспекция на 2012

Тази година бе гадна. В личностно/емоционално отношение бе почти пълен провал. Всъщност, не съм сигурен какво я дели от пълен провял – вероятно това, че съм имал и по-лоши. Направих повече грешки, отколкото мога да преброя. Нараних хора. Прекарах повечко време в депресия и гледане на сериали. Burnout-нах и продължих да работя, вместо да си почина. Тепърва започвам да се осъзнавам.

Но вече свърши. Време е за ретроспекция.

Искам да се фокусирам над позитивното, понеже имаше и такова. Лесно е да забравиш хубавото, когато виждаш само лошото. А хубаво имаше – постигнах неща, от които съм горд. Искам да ги споделя.

Continue reading

Data-Directed Programming

В началото на годината, аз и няколко приятели се организирахме в SICP Study Group. Макар повечето материал досега да е основен, научих любопитни неща. Искам да разпиша едно от тях – data-directed programming.

Това е интересна идея, която продължава тази тема. Понятието „data-directed programming“ идва от SICP. Наподобява multi-dispatch (или visitor design pattern). Примерите в книгата са на Scheme, но аз ще се опитам да ги преведа на Python. Това няма да бъде най-идиоматичният Python, но пък ще бъде добра илюстрация. Направил съм , така че да може да го разгледате спокойно.

Ще покажа няколко синтетични примера, които едва ли ще направя в практиката (например класове Integer и Rational). Все пак, идеите имат приложение. Първото, което ми хрумва, е работа с абстрактни синтактични дървета. Далеч не е единственото.

Проблемът

Проблемът е следният: имаме няколко типа (Circle, Square) които могат да работят с генерични операции (area, perimeter). Въпросът е как бихме могли да организираме типовете и операциите и какви биха били последствията от всеки различен начин на представяне, който изберем. Друг възможен пример е система с четири вида числа – цели, рационални, реални и комплексни, които трябва да поддържат аритметичните операции – събиране, умножение и т.н.

Ще ползвам първия пример – типове Circle и Square с операции area и perimeter. Това е изключително опростен пример, но ще свърши работа. Имайте предвид, че принципите, които предстои да илюстрирам, важат и за операции с повече от един аргумент (например събиране на две числа).

Continue reading

Поредния Code Retreat

Съвсем накратко: този път ще бъде в Телерик и ще се проведе идната събота (27ми октомври).

Този път се опитваме да има скромно интернационално участие. Едва ли ще има повече от един-двама човека, но все пак — надеждата умира последна. Ако искате да се регистрирате, можете да го направите на balkan-coderetreat.com.