суббота, 13 декабря 2014 г.

[life.sport.darts] Кубок Гомеля 2014

14-го декабря 2014 в СШ№66 г.Гомеля состоится розыгрыш Кубка Гомеля по дартс. Приглашаются все желающие игроки из Гомеля и Гомельской области. Участие бесплатное. Начало регистрации и разминки в 11:30.

Цель турнира -- это популяризация дартса в Гомеле и консолидация игроков, которые в городе есть, но которые не знают друг о друге. Лучшие игроки получат памятные призы: победитель будет награжден кубком и медалью, призеры -- медалями.

Более подробная информация о турнире на официальной страничке мероприятия.

В этот раз анонс турнира сделан так же на городском новостном портале "Сильные новости". Если у кого-то из читателей есть контакты с порталами onliner.by и tut.by, пожалуйста, подскажите, куда нужно постучаться, чтобы и там тоже сделать подобный анонс. Да и вообще любые идеи о том, где еще можно разместить эту информацию, будут с благодарностью выслушаны.

четверг, 11 декабря 2014 г.

[life.photo] Возможность пофотографировать диких орланов под Речицей

Информация для любителей фотоохоты: недалеко от поселка Глушец Речицкого района есть полузаброшенная деревенька Красный Октябрь. Там обосновался интересный человек -- Дмитрий Янков.

Неподалеку от Красного Октября обитают орланы. И Димитрий ищет возможности организовать что-то вроде "насиженных мест" для фотоохотников, из которых можно было бы заниматься фотографированием птиц не тревожа их, но получая хорошие, интересные снимки.

Для этого Дмитрию нужна помощь одного-двух фотографов-энтузиастов. Может быть кто-нибудь захочет подъехать в Красный Октябрь на день-два-три и поучаствовать в размещении и обустройстве скрадков для съемки птиц? Место для проживания и нормальные условия быта Дима обеспечит.

Желающие могут связаться с Дмитрием по телефону (+375(44)512-12-20 или +375(33)361-62-12) или через его страничку в ВКонтакте.

PS. Для интересующихся вот фоторепортаж из Красного Октября от Алексея Голубева.

PPS. Мопед не мой, просто дал объяву :) На самом деле, я сейчас сам жалею о том, что не увлекаюсь фотоохотой, нет у меня ни соответствующего фотооборудования, ни экипировки. А возможность, вообще-то говоря, классная. Очень надеюсь, что все сложится хорошо и у нас неподалеку от Гомеля появится место, где можно будет пофотографировать настоящих, диких орланов.

вторник, 9 декабря 2014 г.

[blog] Проверка отображения фрагментов кода

Как выясняется, у некоторых читателей, которые следят за моим блогом через RSS, есть проблемы с отображением раскрашенных фрагментов кода. Например, если открыть в браузере ленту фида http://feeds2.feedburner.com/Eao197, то тексты заметок в ленте должны отображаться в тех же цветах, что и в самом блоге. Но, скажем, Firefox может терять цвет фона в примерах кода.

Поэтому ниже приведены несколько фрагментов, в которых цвет фона задается разными способами. Если у кого-то из читателей будут проблемы в RSS-ленте, то сообщите в комментариях подробности (какой фрагмент, какой браузер и т.д.)

#1 (табличка внутри div, цвет фона для div задан через атрибут style)

if __FILE__ == $0
  include TournamentBasket
  include TournamentBasket::SingleElimDetails

#2 (табличка сама по себе, цвет фона для нее задан через атрибут style)

if __FILE__ == $0
  include TournamentBasket
  include TournamentBasket::SingleElimDetails

#3 (табличка сама по себе, цвет фона для нее задан через атрибут bgcolor)

if __FILE__ == $0
  include TournamentBasket
  include TournamentBasket::SingleElimDetails

понедельник, 8 декабря 2014 г.

[prog.flame] ФП приходит в мейнстрим и... занимает нишу COBOL?

Просматривая свежий пост про пример использования парсинга XML в Scala на eax.me, поймал себя на неожиданной мысли: где-то что-то отдаленно похожее я уже видел. Кстати говоря, пост хороший. Имхо, именно так нужно привлекать внимание людей к языкам/технологиям/подходам/парадигмам. Небольшой, но практичный пример, вполне себе самоценный и самодостаточный. Собственно, пупуляризаторам чего бы то ни было (в том числе и ФП), на заметку.

Довольно симпатично выглядят некоторые фрагменты кода в примере, скажем, вот этот:

val postsMap =
  postsXml.map{
    n => ( (n \ "thread" \ dsqid).text.toLong,
           (n \ "createdAt").text,
           (n \ "author" \ "name").text,
           (n \ "message").text,
           n
         )
  }.filter{
    case t =>
      (! (t._5 \ "isDeleted").text.toBoolean ) &&
        (! (t._5 \ "isSpam").text.toBoolean )
  }.groupBy(_._1).filter{
    case (k,v) => threadsMap.get(k).isDefined
  }.map{
    case (k,v) =>
      ( threadsMap(k),
        v.map(t => (t._2, t._3, t._4) ).toArray.sortBy(_._1)
      )
  }

Сперва подумалось, что, блин, обработка данных посредством конструкций из ФП выглядит весьма привлекательно. Хотя какая-то доля лишнего "синтаксического оверхеда" (с) таки присутствует. И что от него можно было бы избавиться. Но, если синтаксис будет сильно заточен под манипуляции над данными, то....

...то в памяти всплывают отрывочные воспоминания о такой штуке, как CODASYL. Был когда-то такой мертворожденный стандарт для работы с данными, представленными в иерархической и сетевой моделях данных. Базировавшийся на COBOL-е. А COBOL -- это же как раз язык для обработки данных.

Конечно, если сравнивать примеры кода на COBOL/CODASYL с современными примерами на Scala, на первый взгляд будет казаться, что это совершенно разные вещи. Но мне представляется, что по сути, это лишь очередная попытка записать что-то подобное:

      PROCEDURE DIVISION.
       CONTROL-PARA.
      *
      * CONTROL PARAGRAPH. DATABASE IS INVOKED AND PRIVACY
      * KEYS SPECIFIED. READS FIRST RECORD FROM INPUT FILE
      * AND CALLS MAIN PROCESSING ROUTINE UNTIL A DATABASE
      * ERROR OCCURS OR AN END OF FILE CONDITION IS SIGNALLED.
      * WHEN AN ERROR OCCURS THE ENTIRE TRANSACTION IS
      * ABORTED OTHERWISE IT IS SECURED.
      *
           OPEN INPUT CARINP.
      #    INVOKE DBMS.
      #    PRIVACY KEY FOR UPDATE OF ALL AREAS IS 'CAR-LOCK'.
      #    PRIVACY KEY FOR STORE OF RECORD DEPOT IS 'NEW-DEPOT'.
      #    PRIVACY KEY FOR INSERT OF SET DEPOT-CARS IS 'CAR-INPUT'.
      #    PRIVACY KEY FOR INSERT OF SET MECHANICS IS 'MECH-AMEND'.
      #    OPEN AREA CAR-AREA USAGE-MODE IS UPDATE.
      #    START TRANSACTION TRAN-ID, UPDATE.
           PERFORM DATA-INPUT.
           PERFORM PROCESS-TRANS UNTIL EOF OR DB-ERR.
           IF DB-ERR PERFORM ABORT-TRANS
           ELSE PERFORM END-TRANS.
      #    CLOSE ALL AREAS.
      #    EXIT DBMS.
           CLOSE CARINP.
           STOP RUN.

Но только в современном, модном и молодежном, ФП-шном стиле :)

PS. Ну и раз уж в кои-то веки затронул тему ФП, то чтобы два раза не вставать. Посмотрел видео доклада Сергея Зефирова (aka thesz) с недавней конференции f(by). Повеселил ответ Зефирова на вопрос про использование Haskell-я в mission critical приложениях (приблизительно на 48:00). Типа, напишу на Haskell-е генератор, который сгенерирует уже прикладной код на низкоуровневом языке приложения из Haskell-евского DSL-я. Ну, может в моделировании процессоров этот подход разумен. Однако, для какого-нибудь OZON-а или Pleer.Ru (не говоря уже про eBay и Amazon) их система онлайн-торговли есть самое что ни есть mission critical приложение. Забавно было бы посмотреть на попытку реализовать что-то подобное на Haskell-евском DSL-е, из которого бы генерировался PHP или Java, или даже C-шный код :) Понятно, что вопрос задавали про несколько другие mission critical приложения, но, AFAIK, современные системы управления сложным оборудованием, разрабатываемые с использованием стандарта DDS, это тоже очень и очень объемные задачки (например).

PPS. На счет COBOL-а, давным-давно достигшего "состояния бессмертности": #1 и #2.

воскресенье, 7 декабря 2014 г.

[life.craftsmanship] Красивый видеоролик про изготовление ножа

Кстати, вопрос к читателям из Гомеля (да и Минска, пожалуй): а у нас есть такие мастера? Я бы с удовольствием пофотографировал такого умельца за работой. По типу вот такой вот серии, только с учетом того, что за прошедшие два года я чуть побольше поднаторел в фотографии (например, из не очень давнего).