Разни блог промени и 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).