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

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

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

Continue reading

OpenFest 2013 Call for Papers

Тази година пак ще има [OpenFest](http://openfest.org/), пак ще бъде супер яко и пак ще е в Интерпред.

Имаме три зали, така че ако искате да говорите – попълнете [тази форма](http://openfest.org/call-for-papers/). Всякаки предложения са добре дошли, така че не изпускайте 🙂

VarnaConf 2013

[Миналата година](http://varnaconf.com/archive/2012) VarnaConf беше страхотен. Тази година – [пак](http://varnaconf.com). Датата е съвсем скоро – идната събота. Преди това, ще направя два кратки 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-нато от [Васил](http://vasil.ludost.net/blog/)) и понеже до сега не успяхме да измислим по-добре, ще трябва да живеем с него. Освен Варна, говорим си още за Бургас, Благоевград, Велико Търново и дори Русе.

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

Дотогава – не забравяйте да отбележите в [събитието във Facebook](https://www.facebook.com/events/563073853744703/), че ще дойдете. Ако пък искате тениска – [запишете се](https://docs.google.com/forms/d/1dY3OdkL5AtO_7ZH_7mWy2zcwETFn7BdZclt-LJQUo3U/viewform).

Курс по Test-Driven Development

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

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

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

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

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

Continue reading

Data-Directed Programming

В началото на годината, аз и няколко приятели се организирахме в [SICP Study Group](http://skanev.com/2012/03/16/sicp-study-group-weeks-1-and-2/). Макар повечето материал досега да е основен, научих любопитни неща. Искам да разпиша едно от тях – data-directed programming.

Това е интересна идея, която продължава [тази тема](http://skanev.com/2010/05/30/structs-vs-objects/). Понятието „data-directed programming“ идва от [SICP](http://mitpress.mit.edu/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](http://balkan-coderetreat.com).