Exception 2008, або “Краще день загубити, потім за 5 хвилин долетіти”

Саме під таким (на мою думку) девізом успішно відбулась конференція Exception #07, присвячена динамічним мовам програмування. Все почалося, коли я отримав листа з повідомленням “Завтра відбудеться Exception Conference #07″, де поміж всього іншого проскочила кількість зареєстрованих осіб: 389(в дійсності ж прийшло десь 300). “Ого, скільки народу!”, — подумав я, і вже з нетерпінням почав очікувати завтрашній день. Прочитавши інформацію про проведення минулорічної конференції та задоволення організацією, я був трішки вражений “натовпом”, який зустрів мене ще до реєстрації. Мабуть, організатори просто не очікували такого ажіотажу, що і не дивно: минулого року (судячи з інфи в блогах) було десь сто чоловік. Повний перелік виступів, а також коротка інформація про авторів знаходиться на офіційному сайті конференції.

Поїхали!

Registration

І от конференція почалась! Оскільки я за кілька хвилин до початку встиг надибати ще й своїх співробітників, то вирішив лишити їх слухати доповідь про Smalltalk, а сам зайняв місце в малому залі в очікуванні майстер-класу по Python. Слід зауважити, що майстер-клас в ході даної конференції відбувався вперше, а тому Андрій Свєтлов трохи нервував, однак все пройшло вдало. Вступне слово від організатора повідомило нас про те, що “програмісти пиво не дуже люблять”, правда вже на 15 хвилині в повній тиші залу пролунав характерний “чпок”, після чого “офіційність”, яка була лиш помітна на початку конференції, завершилась.

Master-class with Andriy Svetlov

Як показав на власному прикладі Андрій, майстер-клас є зручним, простим, досить інтерактивним способом донесення та обговорення інформації. Навіть я — людина, яка лиш знайома з Python-ом (о горе мну), зрозумів важливість, простоту і зручність, з якими можна вирішувати “рутинні” задачі, за що окреме “дякую” автору доповіді та розробникам Пітона. Так, він показав, що:

  • використовуючи метакласи можна зменшити витрати на створення “однакових” та “схожих класів” в ході розробки
  • в метакласах є 2 важливі методи: __new__ (виконує операції, що можуть вплинути на структуру метакласу, тобто фактично можна зробити з одного класу інший) та __init__ (виконує ініціалізацію метакласу після його створення), що дуже схоже на використання подвійної ініціалізації в тому ж C++
  • всі класи в пітоні створюються на базі метакласу type (було показано створення класу звичайним методом і через нащадок type, які видали однакові результати)
  • дескриптори дозволяють вирішувати деякі задачі (наприклад, ведення структурованих логів) значно ефективніше типових методів

Між іншим, саме з його вуст прозвучав той девіз, який зараз висить в заголовку цієї статті, і який ще не раз звучатиме з вуст інших доповідачів, правда у власних модифікаціях.

PEAK-Rules rules

Наступним виступав Сергій Щетинін з доповіддю про PEAK-Rules та PyProtocols. В ході доповіді він неодноразово запитував зал запитаннями “Хто знає про …”. На запитання “Хто знає про PEAK-Rules?” не знайшлося жодної людини яка б підняла руку, правда, як я дізнався пілся його доповіді, ця бібліотека увійшла в поставку Python-а за день до самої конференції :) .

Sergiy Shchetinin

Сергій, описавши основні особливості Python-а, підтримку основних парадигм програмування, показав зручність використання PyProtocols для серіалізації об’єктів різних типів, їх трансформації з одного виду в інший, та ефективність подібних дій, зокрема, якщо є два шляхи переведення одного типу в інший, то вибирається найкоротший шлях. До того ж, як виявилося, дана операція вибору виконується лише один раз і надалі використовується вже отриманий результат, що значно ефективніше за купу конструкцій виду if-elif-elif-…-else.

Як було зазначено, реалізація адаптерів класу (adapters) приводять також до зручності в спільній роботі з проектом, можливості виділення окремого функціоналу для класу в окрему бібліотеку, зменшення періоду часу, коли код знаходиться в “лежачому стані” під час рефакторінгу, і ще багато важливих речей.

Як потім виявилося, всі ці задачі, і навіть більше, можна зробити набагато простіше та елегантніше за допомогою бібліотеки PEAK-Rules. Зі слів автора, всі сучасні типи програмування, як то ООП, функціональне програмування, і т.д. є лише окремими випадками використання типових функцій (generic functions), які реалізовані в PEAK-Rules. Так що девіз “PEAK-Rules rules” повністю себе виправдовує.Обидві бібліотеки є творіннями людини на ім’я Phillip J. Eby, на адресу якого Гвідо ван Россум (ідейний лідер всього проекту Python) сказав “Багато речей, які він робить, лякають мене” .

Ця доповідь зібрала обидві зали (як виявилося, Вадим Войтюк запізнювався), однак варта була ще й додаткових кілька годин для усвідомлення всіх аспектів. З усіх доповідей, ця мене вразила найбільшою конструктивністю: підготовлена купа матеріалу, розказано не багато і не мало, весь зал уважно слідкував за ходом розповіді, отримано купу відповідей, ну і не меншу купу відповідей не отримано за браком часу. Загалом, саме такою я й уявляв “правильну” комп’ютерну доповідь: розказано в такому об’ємі, щоб (обов’язково) трохи вникнувши в документацію, можна було реалізовувати набуті знання у власних проектах.

Smalltalk

Слід також сказати кілька слів про доповідь щодо Smalltalk. Хоча я не був на ній присутній, на лобі моїх співробітників було написано “надто багато букв, не осилили”. На жаль, в Україні мало людей, що знають, що це таке, і ще менше тих, які використовують.

Django і Python

Повернувшись з обіду, ми знову розділились. На цей раз я слухав доповідь про Django Олександра Кошельова, яка, чесно кажучи, не справила на мене особливо великого враження з однієї простої причини: дубляж інформації, представленої на слайдах. Як на мене, доповідь вийшла досить суха і малопрактична: за всі 15 хвилин було наведено

  • важливі параметри виконання роботи для фрілансера
  • переваги Django
  • недоліки Django
  • висновок: Django – тру, і її можна юзати.

На мою думку, замало, як для 15ти хвилин.

Grails

В той же чаз через стінку лунав веселий сміх. Як мені потім розповіли, два слухачі старанно розповідали про проблему, яку автор доповіді “Розробка Web-додатків з використанням Grails” Андрій Уваров легко парирував відповіддю “так!”. P.S. Треба буде й собі на замітку взяти.

Ліньки

Розкладушка - робоче місце Дмитра КожевінаDmytro Kozhevin

Зате наступна доповідь не могла не радувати вже з перших хвилин. На місце виступаючого винесли …розкладушку! Це агументували тим, що це і є звичне робоче місце наступного доповідача — Дмитра Кожевіна. За час його виступу були підняті ледь не всі холівари, які тільки могли бути між програмістами різних мастей: Emacs vs Vim, UNIX/Linux/Windows/MacOS, і т.д., які активно роздмухував і сам Іван Пиріг. З доповіді всі отримали купу сміху, задоволення, а також дізнались:

  1. Треба використовувати правильні інструменти (Vim/Emacs, FreeMind карти, НЛП тощо)
  2. Треба працювати в правильному місці (дуже важливий притік свіжого повітря, можливість розслабитись)
  3. Треба працювати з правильними людьми. За словами автора, люди діляться на дві категорії:
    1. Достигатори — люди, які прийшли на Exception #07 :) Вони шукають ефективний і “лінивий” шлях до реалізації поставленої задачі
    2. Попоморщери — люди, що живуть за принципом “мені не треба, щоб ви зробили це, мені треба щоб ви працювали”
  4. Основний принцип роботи: “Повний пофігізм і 100% впевненість у собі!”

На жаль, це всі доповіді, на яких я зміг побувати. Хіба що можу додати кілька слів про розіграш призів. Розіграш проводив генератор випадкових чисел, що знаходився в контейнері типу “кульок” з купою об’єктів типу “номерки”. Пару разів випадала 404 Error — Not Found, однак всі призи знайшли своїх власників, з чим їх і поздоровляю. На момент розіграшу 2го приза (мобльний телефон LG 250 KG, який виявився не таким вже й важким :) ) Іван вирішив помучити народ і сказав “номер менше 10″. Мені з моїм номером 8 стало дурно… І хоча я як завжди в таких випадках радію за інших, але я не сподівався навіть на такий хід подій ;) Ну от поки що і все. Прийду завтра на роботу, розпитаю співробітників ще про другу частину. Дуже шкодую, що не послухав про REBOL, StrokeDB, Twisted та Viacube.

P.S. Все, що я нафотографував можна знайти на Флікрі

Related Posts

  • Конференція Exception #07 Всередині березня в Києві планується провести наступну, вже сьому, конференцію розробників програмного забезпечення "Exception". Конференція присвячена так званим динамічним мовам […]
  • Автоматизація процесу розробки: системи неперервної інтеграції Сьогодні, шановний читачу, ми продовжимо розмову про те, як можна автоматизувати процес розробки програмного забезпечення, зменшити витрати часу на допоміжні роботи в великому колективі і […]
  • Google App Engine + Django Яким би поганим не здався мені на перший погляд Datastore у Google App Engine, але тим не менш для багатьох проектів і його буде цілком достатньо (тим паче, що у roadmap його розвитку […]
  • http://toodoo.ru/user/19828/profile graywolf

    Ех, жаль, що в мене на той день вже були інші плани… :(

  • http://toodoo.ru/user/19828/profile graywolf

    Ех, жаль, що в мене на той день вже були інші плани… :(

  • Андрей Светлов

    Гарний видгук.
    Дякую

  • Андрей Светлов

    Гарний видгук.
    Дякую

  • Jolly Roger

    Хочу також повідомити читача про враження інших людей(як простих відвідувачів, так і доповідачів) від конференції:
    Блог Вадима Войтюка
    Блог Олександра Долгіна
    Burus Blog
    Anger’s Blog

  • Jolly Roger

    Хочу також повідомити читача про враження інших людей(як простих відвідувачів, так і доповідачів) від конференції:
    Блог Вадима Войтюка
    Блог Олександра Долгіна
    Burus Blog
    Anger’s Blog

  • http://graywolf.org.ua/ graywolf

    Скоро буду писати одну штуку на Django. Почути про нього з перших вуст а не з мануалів було б набагато краще. Але що ж…

  • http://graywolf.org.ua/ graywolf

    Скоро буду писати одну штуку на Django. Почути про нього з перших вуст а не з мануалів було б набагато краще. Але що ж…

  • koder

    > На запитання “Хто знає про PEAK-Rules?” не знайшлося жодної людини яка б
    > підняла руку, правда, як я дізнався пілся його доповіді, ця бібліотека
    > увійшла в поставку Python-а за день до самої конференції

    Це, мабуть, жарт? PEAK-Rules не входить до стандартної бiблiотеки жодної з версій Python i, якщо й буде включена до Python3000, то про це тiльки балачки е (доречi цiм балачкам вже рокiв i рокiв))).

  • koder

    > На запитання “Хто знає про PEAK-Rules?” не знайшлося жодної людини яка б
    > підняла руку, правда, як я дізнався пілся його доповіді, ця бібліотека
    > увійшла в поставку Python-а за день до самої конференції

    Це, мабуть, жарт? PEAK-Rules не входить до стандартної бiблiотеки жодної з версій Python i, якщо й буде включена до Python3000, то про це тiльки балачки е (доречi цiм балачкам вже рокiв i рокiв))).

  • Jolly Roger

    2koder, дякую за коментар. Очевидно, я помилився, і це був всього лиш випуск 0.6final версії бібліотеки.

  • Jolly Roger

    2koder, дякую за коментар. Очевидно, я помилився, і це був всього лиш випуск 0.6final версії бібліотеки.