Scala bin
331 subscribers
13 photos
3 files
75 links
Канал о ФП в целом и Scala в частности.
Предложения/вопросы - @a7emenov
Download Telegram
После порядком затянувшегося перерыва решил попробовать написать что-то и на английском языке.

Итогом стала статья на Medium про использование Ordering в Scala. Примером стало, конечно же, любимое сообществом семейство кошачьих.

Искренне надеюсь, что дебют получился успешным. Буду очень рад вашим комментариям.
На фоне печальной коронавирусной истории Lightbend сделала жест невиданной щедрости и открыла бесплатный доступ к своим курсам до конца июня.

Курсы, в основном, посвящены продуктам компании (Akka, Lagom и т.д.), но присутствуют и курсы о реактивной архитектуре и даже domain-driven design.
Зарегистрироваться можно по ссылке.
Вдогонку ко вчерашней новости: аналогичным образом поступила одна из наиболее масштабных компьютерных организаций, - Ассоциация Вычислительной Техники (Association for Computing Machinery) - открыв доступ к своей цифровой библиотеке до 30 июня.

В основной коллекции библиотеки содержится порядка 600 тысяч записей, в расширенной - немногим менее 3 миллионов. По ключевому слову "Scala" удаётся найти около 4000 результатов. Получить доступ к библиотеке можно по ссылке.

За новость спасибо Евгению Игнатьеву.
Не так давно узнал, что вдобавок к сайту с вакансиями Profunctor запустил ещё и канал @profunctor_jobs с минималистичными описаниями вакансий, размещённых на сайте.

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

Одним из докладчиков на конференции был Мартин Одерски, который уже не в первый раз (1, 2) описывал основные особенности Scala 3. Что особенно примечательно, синтаксические изменения, связанные с отступами, Мартин обозначил как наиболее сильно увеличившие персонально его продуктивность и отметил снижение числа строк кода в среднем на 10%.

Итогом доклада стал небольшой шедевр изобразительного искусства, вобравший в себя грядущие изменения:
Из-за многочисленных перестановок долго не знал, сложится или нет, но буквально несколько дней назад всё окончательно утвердилось. В эту субботу буду выступать на онлайн-митапе с обзорной презентацией про Scala, ФП и почему это важно.

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

Мероприятие будет проходить на английском языке в эту субботу, в 13:30 по Московскому времени. Принять участие можно, зарегистрировавшись по ссылке. (Меня клятвенно заверили, что, несмотря на надпись на сайте, "вместимость" мероприятия - 100 человек)
Что ж, митап подошёл к концу, большое спасибо всем, кто присутствовал, особенно за вопросы. Опыт выдался крайне положительным и я надеюсь, что в будущем представится возможность рассказать о чём-то более детально.

Запись доклада - здесь.
Презентация - здесь.
С небольшим запозданием до меня добралась новость, что Scala обзавелась страницей для начинающих от SoftwareMill с кратким обзором IDE, курсов, книг и основных библиотек.

Коллеги, ещё только планирующие попробовать Scala, страницу оценили - удобно, когда вся необходимая информация собрана в одном месте.
Обнаружил весьма интересную статью о техническом долге.

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

Материал отлично подойдёт тем, кто сталкивался с термином "технический долг", но хочет более подробно ознакомиться со спецификой стоящего за ним явления.
Захотел попробовать создать свой range тип в PostgreSQL, использующий альтернативную схему нормализации (canonicalization) диапазона (по умолчанию все range типы приводятся к форме [x, y) ). Главной проблемой становится объявление соответствующей функции, которая должна принимать в качестве аргумента ещё не созданный тип. В документации даже имеется специальная инструкция для разрешения данного конфликта.

В реальности, к сожалению, всё обстоит плачевнее - инструкция просто-напросто не работает. Оказывается, единственным способом создания собственной функции нормализации является написание модуля на С, который затем должен быть подключён как расширение PostgreSQL. Спасительным оказался модуль inetrange, в котором удалось найти пример такой функции, ещё и с Makefile.

Если вам когда-нибудь потребуется написать небольшое расширение для PostgreSQL, репозиторий данного модуля может стать хорошей точкой старта, поскольку в большинстве своём документация крайне скудна на детали.
Впервые столкнулся с проблемой при работе с замечательной gRPC-библиотекой - mu. Оказывается, без опции package в .proto-файле генерация кода работать не будет, что может создать проблемы, когда файлы используются сразу несколькими командами. Ноги растут из базового пакета skeuomorph, в который зашита только логика работа с этим параметром.

Если тоже сталкивались с этой проблемой, обязательно "поставьте звёздочку" соответствующей issue, а если имеете полный контроль над .proto-файлами - рекомендую попробовать библиотеку.
Для меня стало большим откровением, что существует целый игровой движок, написанный на Scala - indigo. Несмотря на то, что пока доступна только альфа-версия и сами авторы предупреждают о возможных проблемах, уже можно писать небольшие игры на любимом функциональном языке, выходящие за рамки экспериментов с ZIO.
На правах рекламы хочу напомнить про добротный канал с вакансиями @profunctor_jobs, который может быть особо полезен ищущим удалённую работу.

Периодически попадаются вакансии для Scala и даже Haskell (!) программистов.
В этом году начал выходить приятный подкаст Scala logs со сравнительно небольшими интервью с выдающимися членами Scala-сообщества - на подходе интервью с Робом Норрисом, наиболее известным в качестве автора библиотеки для работы с БД Doobie.

По случаю релиза в России прикладываю ссылку на Spotify-плейлист подкаста, но найти его несложно и на других сервисах.
Решил опубликовать основные выдержки из одной из моих любимых книг - Functional Programming for Mortals. Когда только начинал осваиваться со Scala, книга стала большим подспорьем в изучении наряду с Functional Programming in Scala и Scala with Cats - все книги однозначно рекомендуются к прочтению.
В этом году начал выписывать занятный IT-журнал Increment. Люди, работающие над журналом, ответственно подошли к своей работе - каждый выпуск включает в себя подборку качественных статей, соответствующих определённой теме, от обработки ЧП до архитектуры ПО.

Само главное, что для ознакомления с журналом не обязательно приобретать печатное издание, все выпуски опубликованы на сайте в свободном доступе.

Всячески рекомендую к прочтению.
Не за горами долгожданный релиз Scala 3, и уже начинают появляться первые материалы - рассчитанный как на начинающих, так и "уже умеющих", 7-часовой курс позволит слушателям познакомиться как с синтаксисом новой версии языка, так и с особенностями JVM-рантайма.