Метка «scala»

в 12:43, , рубрики: Песочница, метки: , , , ,

Решил опубликовать эту небольшую статью, содержащую на данном этапе скорее абстрактную идею. Несложно представить, как ее возможно использовать на практике и впоследствии, в зависимости от реакции сообщества, имею желание дополнить ее более конкретными примерами, взятыми из собственных наработок.

Пришла в голову мысль.
Читать полностью »

Дорогие любители Scala! Пользуемся последним моментом, чтобы сообщить вам об очередной встрече Scala User Group в Москве. Она пройдет в эту пятницу, 25 апреля на территории НИИ «Восход». Начало в 19:30. Для того, чтобы прийти на встречу, необходимо заполнить форму регистрации: docs.google.com/forms/d/1tYo8unkWNpQYN-lCwoZz4mL7AcvNQGi_Zt1O7TTpknA/viewform (все поля обязательны, ФИО должны вводиться целиком). Последний день регистрации — сегодня, 23 апреля.
Читать полностью »

В прошлый раз мы провели ознакомительную встречу. Собралось около 25 человек, мы узнали кто в Москве занимается разработкой на Scala и какие есть интересные проекты. Главной темой выбрали курс по реактивному программированию на Coursera, который как раз тогда подходил к концу.

В этот раз мы соберёмся послушать и обсудить два доклада:

  1. Алексей Иванов приедет из Питера и расскажет доклад «Monadic Bakery with Spray and Scalaz»,
    про то почему Spray и ScalaZ — не страшные звери, а хорошие друзья;
  2. Владимир Успенский расскажет про теорию типов и тем, как она связана с обычной разработкой в докладе:
    «Теория типов, или как мы занимаемся математикой, программируя на Scala».

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

Scala Moscow User Group, встреча 14 марта 2014

Читать полностью »

Scala. Всем выйти из сумрака!А сейчас нужно обязательно дунуть, потому что если не дунуть, то ничего не получится.
—Цитаты великих

И здравствуйте!

Сегодня мы поговорим о неявном в языке Scala. Кто еще не догадался — речь пойдет об implicit преобразованиях, параметрах, классах и иже с ними.Все новички, особенно любители питона с зеновским Explicit is better than Implicit, обычно впадают в кататонический ступор при виде подкапотной магии, творящейся в Scala. Весь компилятор и принципы в целом охватить за одну статью удастся вряд ли, но ведь дорогу осилит идущий?Читать полностью »

Scalatest — это фреймворк для тестирования приложений, поддерживающий разные стили написания тестов и легко интегрирующийся с другими инструментами для JVM, включая IDE и maven.
Читать полностью »

Добрый день, уважаемое читатели!image

В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».

Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
Читать полностью »

На Хабре много статей по монады с примерами для Haskell (http://habrahabr.ru/post/183150, http://habrahabr.ru/post/127556), но не так много статей, которые описывают, что такое монады с примерами на Scala. По сколько большинство разработчиков на Scala пришли из мира объектно ориентированного программирования, то для них, по началу, сложно понять что такое монады и для чего они нужны, эта статья как раз для таких разработчиков. В этой статье я хочу показать, что это такое и навести примеры использования монады Option, в следующих статьях будут описаны монады Try и Future.
Читать полностью »

Чисто функциональные структуры данных
Признаюсь. Я не очень любил курс структур данных и алгоритмов в университете. Все эти стеки, очереди, кучи, деревья, графы (будь они не ладны) и прочие “остроумные” названия непонятных и сложных структур данных ни как не хотели закрепляться в моей голове. Как истинный “прагматик”, я уже на втором — третьем курсе свято верил в стандартную библиотеку классов и молился на дарованные нам (простым смертным) коллекции и контейнеры, бережно реализованные отцами и благородными донами CS. Казалось, все что можно было придумать — уже давно придумано и реализовано.

Все изменилось примерно год назад, когда я узнал, что есть другой мир. Мир отличный от нашего с вами. Более чистый и предсказуемый мир. Мир без побочных эффектов, мутаций, массивов и деструктивных апдейтов (переприсваиваний в переменную). Мир, где всем правит мудрейшая королева персистетность и ее прекрасные сестры — функция и рекурсия. Я говорю о чисто функциональном мире, где гармонично существуют, или даже живут, проекции почти всех известных нам структур данных.

И сейчас, я хочу показать вам небольшую частицу этого мира. Через замочную скважину, мы на секунду заглянем в этот удивительный мир, чтобы рассмотреть одного из наиболее ярких его обитателей — функциональное красно-черное дерево (КЧД).
Читать полностью »

Привет. Во время использования awesome-wm (легкий тайлинговый оконный менеджер), даже когда всё нужное, казалось бы, уже настроено, всё равно замечаешь, что чего-то таки не хватает. Не может радовать то, что в большинстве случаев готового решения нету. Cлава б-гу, разработчики позаботились о хорошей документации и прокомментированному коду, что позволяет в короткие сроки дописать то, что тебе нужно. Горячие клавиши, управление окнами, собственные виджеты, даже создание собственных layout'ов — всё это делается проще, чем может сперва показаться. Но в ситуации с виджетами, как оказалось, не всё так гладко, как хотелось бы. Можно заметить, что добавив пару-тройку, обновляющихся посредством сети, либо просто занимающих сравнительно большое время на обновление информации, на панель, ваш awesome стал тормозить с реакцией на нажатие клавиш, кнопок мыши и всего прочего. Становится очевидно, что уже по менее очевидным причинам обработка событий находится в одном потоке с обновлением виджетов.
Читать полностью »

DSL на Scala для работы с Нtml формами

Наверняка многим из вас знаком процесс создания и обработки HTML форм. Возможно, для типичного веб-приложения он вполне тривиален, но если вы работаете в корпоративном секторе, ситуация складывается немного иначе. Формы создания или редактирования клиентов, документов и многого другого становятся ежедневной рутиной. Java фреймворки, развиваясь, предлагают все более удобные API и компоненты для работы с ними. Но даже несмотря на это, многие наверняка задумывались, нельзя ли сделать работу с формами чуточку удобнее.
В первую очередь, конечно, хотелось бы, чтобы фреймворк максимально облегчал следующие задачи:

  • определение свойств полей формы, таких как тип, заголовок или валидность;
  • обработка данных формы после ее отправки;
  • рендеринг формы.

Причем, желательно, чтобы многие ошибки обнаруживались бы еще на стадии компиляции.

В этой статье я опишу процесс создания собственного DSL на языке Scala, а затем покажу, как новый способ описания форм применить в контексте Play Framework 2.
Читать полностью »