Channel: Scala bin
Буквально несколько часов назад была опубликована книга Дженса Грасселя Pure functional HTTP APIs in Scala. Издание расчитано на опытных Scala программистов, использующих "enterprise" библиотеки (Akka, Play, Spring), но стремящихся к более ФП-ориентированному подходу к разработке.
Книга по сути представляет из себя пример итеративной реализации web-сервиса с учётом всех значимых компонент: загрузка конфигурации, роутинг, тестирование и т.д. Дополнительным бонусом служит то, что получить книгу можно абсолютно бесплатно.
Книга по сути представляет из себя пример итеративной реализации web-сервиса с учётом всех значимых компонент: загрузка конфигурации, роутинг, тестирование и т.д. Дополнительным бонусом служит то, что получить книгу можно абсолютно бесплатно.
Leanpub
Pure functional HTTP APIs in Scala
A book about developing purely functional HTTP APIs with Scala using http4s, Doobie, Cats and other libraries including a chapter about upgrading to Scala 3.
Небольшая коллекция слайдов от Филипа Шварца на тему функторов как таковых и мотивации к их появлению. Содержит выдержки объяснений от Бартоша Милевски и нескольких книг, среди которых крайне рекомендуемая мной Haskell programming from first principles.
SlideShare
Functors
Functors - Download as a PDF or view online for free
Похоже, что новый год начинается с очередных синтаксических предложений [1, 2] от доктора Одерски, на этот раз в отношении extension методов в Dotty. Первое позволяет именам методов начинаться с точки, в то время как второе вводит новое ключевое слово
До:
После значимой табуляции и изменений в синтаксисе присваивания (последние добавлены не были), данные изменения видятся гораздо менее спорными и, возможно, имеют реальные шансы в конечном итоге оказаться в Dotty.
extension
(of
) для определения таких методов взамен имеющемуся синтаксису с given
.До:
given listOps: [T](xs: List[T]) extended with {...}
После:extension listOps of [T](xs: List[T]) with {...}
После значимой табуляции и изменений в синтаксисе присваивания (последние добавлены не были), данные изменения видятся гораздо менее спорными и, возможно, имеют реальные шансы в конечном итоге оказаться в Dotty.
GitHub
Syntax Change: Allow '.' in front of extension method by odersky · Pull Request #7914 · lampepfl/dotty
Allow
def (c: Circle).circumference: Double
alongside
def (c: Circle) circumference: Double
The syntax with '.' is preferred for normal methods which have names
starting with a le...
def (c: Circle).circumference: Double
alongside
def (c: Circle) circumference: Double
The syntax with '.' is preferred for normal methods which have names
starting with a le...
После порядком затянувшегося перерыва решил попробовать написать что-то и на английском языке.
Итогом стала статья на Medium про использование
Искренне надеюсь, что дебют получился успешным. Буду очень рад вашим комментариям.
Итогом стала статья на Medium про использование
Ordering
в Scala. Примером стало, конечно же, любимое сообществом семейство кошачьих.Искренне надеюсь, что дебют получился успешным. Буду очень рад вашим комментариям.
Medium
Sorting in Scala — a cat shop example
While Java and Scala both inhabit the same JVM grounds, the latter has become known as a far more concise and expressive language due to…
Вдогонку ко вчерашней новости: аналогичным образом поступила одна из наиболее масштабных компьютерных организаций, - Ассоциация Вычислительной Техники (Association for Computing Machinery) - открыв доступ к своей цифровой библиотеке до 30 июня.
В основной коллекции библиотеки содержится порядка 600 тысяч записей, в расширенной - немногим менее 3 миллионов. По ключевому слову "Scala" удаётся найти около 4000 результатов. Получить доступ к библиотеке можно по ссылке.
За новость спасибо Евгению Игнатьеву.
В основной коллекции библиотеки содержится порядка 600 тысяч записей, в расширенной - немногим менее 3 миллионов. По ключевому слову "Scala" удаётся найти около 4000 результатов. Получить доступ к библиотеке можно по ссылке.
За новость спасибо Евгению Игнатьеву.
Не так давно узнал, что вдобавок к сайту с вакансиями Profunctor запустил ещё и канал @profunctor_jobs с минималистичными описаниями вакансий, размещённых на сайте.
На фоне предложений с подробным описанием печенья и фруктов в офисе, но без зарплатной вилки/стэка/названия компании(!) очень приятно видеть продукт, ориентированный на разработчиков.
На фоне предложений с подробным описанием печенья и фруктов в офисе, но без зарплатной вилки/стэка/названия компании(!) очень приятно видеть продукт, ориентированный на разработчиков.
profunctor.io
∏ρ؃uñçτØρ Øπτµç∑ | 👁🗨›››› ::: profunctor optics ::: libmustdie
Programming job board, memes and stuff
Опубликовал перевод своей недавней статьи на Хабрахабр. Теперь почитать про сортировку кошек можно и на русском языке.
Хабр
Сортировка в Scala — пример на кошках
Привет, Хабр! Выношу на ваш суд русскоязычный перевод моей статьи на Medium: Sorting in Scala — a cat shop example. Статья рассчитана на читателей, знающих синта...
Вчера завершилась замечательная конференция ScalaLove, за которую огромное спасибо её организаторам. Надеюсь, в будущем такие мероприятия будут происходить значительно чаще.
Одним из докладчиков на конференции был Мартин Одерски, который уже не в первый раз (1, 2) описывал основные особенности Scala 3. Что особенно примечательно, синтаксические изменения, связанные с отступами, Мартин обозначил как наиболее сильно увеличившие персонально его продуктивность и отметил снижение числа строк кода в среднем на 10%.
Итогом доклада стал небольшой шедевр изобразительного искусства, вобравший в себя грядущие изменения:
Одним из докладчиков на конференции был Мартин Одерски, который уже не в первый раз (1, 2) описывал основные особенности Scala 3. Что особенно примечательно, синтаксические изменения, связанные с отступами, Мартин обозначил как наиболее сильно увеличившие персонально его продуктивность и отметил снижение числа строк кода в среднем на 10%.
Итогом доклада стал небольшой шедевр изобразительного искусства, вобравший в себя грядущие изменения:
YouTube
Scala 3 Is Coming: Martin Odersky Shares What To Know
Created in 2003, Scala has pioneered the fusion of object-oriented and functional programming in a typed setting. In its first redesign since 2010, Scala 3 will be a big step towards realizing the full potential of these ideas and will go into feature freeze…
Из-за многочисленных перестановок долго не знал, сложится или нет, но буквально несколько дней назад всё окончательно утвердилось. В эту субботу буду выступать на онлайн-митапе с обзорной презентацией про Scala, ФП и почему это важно.
Презентация рассчитана в основном на незнакомую с вышеозначенными понятиями публику и ставит своей целью обозначить основные направления для самостоятельного знакомства и заинтересовать попробовать новый язык программирования.
Мероприятие будет проходить на английском языке в эту субботу, в 13:30 по Московскому времени. Принять участие можно, зарегистрировавшись по ссылке. (Меня клятвенно заверили, что, несмотря на надпись на сайте, "вместимость" мероприятия - 100 человек)
Презентация рассчитана в основном на незнакомую с вышеозначенными понятиями публику и ставит своей целью обозначить основные направления для самостоятельного знакомства и заинтересовать попробовать новый язык программирования.
Мероприятие будет проходить на английском языке в эту субботу, в 13:30 по Московскому времени. Принять участие можно, зарегистрировавшись по ссылке. (Меня клятвенно заверили, что, несмотря на надпись на сайте, "вместимость" мероприятия - 100 человек)
connpass
WebHack#32 A Gentle Introduction to Scala and FP (2020/04/25 19:30〜)
# WebHack Follow us on @WebHackMeetup for more valuable contents & earlier updates 👨🎓 In light of the uncertainty we all face in our daily lives as the situation with COVID-19 unfolds, the safety of all WebHack friends and our community is the top priority.…
Что ж, митап подошёл к концу, большое спасибо всем, кто присутствовал, особенно за вопросы. Опыт выдался крайне положительным и я надеюсь, что в будущем представится возможность рассказать о чём-то более детально.
Запись доклада - здесь.
Презентация - здесь.
Запись доклада - здесь.
Презентация - здесь.
YouTube
WebHack#32 A Gentle Introduction to Scala and FP
Speaker slides: https://drive.google.com/file/d/1vDDWIufw18UPhtxI5r6vqfUkIGh8a92E/view?usp=sharing
HackMD (collaborative note): https://hackmd.io/R8i5WW2sSqiBO1N-3QvwLA
Nowadays, with so many programming languages in existence, it can be very difficult to…
HackMD (collaborative note): https://hackmd.io/R8i5WW2sSqiBO1N-3QvwLA
Nowadays, with so many programming languages in existence, it can be very difficult to…
С небольшим запозданием до меня добралась новость, что Scala обзавелась страницей для начинающих от SoftwareMill с кратким обзором IDE, курсов, книг и основных библиотек.
Коллеги, ещё только планирующие попробовать Scala, страницу оценили - удобно, когда вся необходимая информация собрана в одном месте.
Коллеги, ещё только планирующие попробовать Scala, страницу оценили - удобно, когда вся необходимая информация собрана в одном месте.
SoftwareMill
What is Scala? | SoftwareMill
Scala is a functional, strongly typed, general-purpose programming language. Dive into functional programming world with us & learn Scala!
Обнаружил весьма интересную статью о техническом долге.
Наиболее важным моментом считаю мысль о том, что метафора с "долгом", если и работает, то не всегда и не полностью - иногда более уместно понятие "технической инфляции", естественного увеличения необходимости переработки кода с течением времени.
Материал отлично подойдёт тем, кто сталкивался с термином "технический долг", но хочет более подробно ознакомиться со спецификой стоящего за ним явления.
Наиболее важным моментом считаю мысль о том, что метафора с "долгом", если и работает, то не всегда и не полностью - иногда более уместно понятие "технической инфляции", естественного увеличения необходимости переработки кода с течением времени.
Материал отлично подойдёт тем, кто сталкивался с термином "технический долг", но хочет более подробно ознакомиться со спецификой стоящего за ним явления.
Medium
Don’t buy into the Technical Debt Illusion
Originally, the metaphor of technical debt was introduced to help us explain the need for refactoring software systems to upper management.
Кратко и иллюстративно об иерархии сложности задач в современной компьютерной теории, с примерами.
Quanta Magazine
A Short Guide to Hard Problems
What’s easy for a computer to do, and what’s almost impossible? Those questions form the core of computational complexity. We present a map of the landscape.
Захотел попробовать создать свой range тип в PostgreSQL, использующий альтернативную схему нормализации (canonicalization) диапазона (по умолчанию все range типы приводятся к форме [x, y) ). Главной проблемой становится объявление соответствующей функции, которая должна принимать в качестве аргумента ещё не созданный тип. В документации даже имеется специальная инструкция для разрешения данного конфликта.
В реальности, к сожалению, всё обстоит плачевнее - инструкция просто-напросто не работает. Оказывается, единственным способом создания собственной функции нормализации является написание модуля на С, который затем должен быть подключён как расширение PostgreSQL. Спасительным оказался модуль inetrange, в котором удалось найти пример такой функции, ещё и с Makefile.
Если вам когда-нибудь потребуется написать небольшое расширение для PostgreSQL, репозиторий данного модуля может стать хорошей точкой старта, поскольку в большинстве своём документация крайне скудна на детали.
В реальности, к сожалению, всё обстоит плачевнее - инструкция просто-напросто не работает. Оказывается, единственным способом создания собственной функции нормализации является написание модуля на С, который затем должен быть подключён как расширение PostgreSQL. Спасительным оказался модуль inetrange, в котором удалось найти пример такой функции, ещё и с Makefile.
Если вам когда-нибудь потребуется написать небольшое расширение для PostgreSQL, репозиторий данного модуля может стать хорошей точкой старта, поскольку в большинстве своём документация крайне скудна на детали.
Stack Overflow
How to create a new date range type with included upper bound in Postgres?
Postgres comes with a nice feature called Range Types that provides useful range functionality (overlaps, contains, etc).
I am looking to use the daterange type, however I think the type was imple...
I am looking to use the daterange type, however I think the type was imple...
Впервые столкнулся с проблемой при работе с замечательной gRPC-библиотекой - mu. Оказывается, без опции
Если тоже сталкивались с этой проблемой, обязательно "поставьте звёздочку" соответствующей issue, а если имеете полный контроль над
package
в .proto
-файле генерация кода работать не будет, что может создать проблемы, когда файлы используются сразу несколькими командами. Ноги растут из базового пакета skeuomorph, в который зашита только логика работа с этим параметром.Если тоже сталкивались с этой проблемой, обязательно "поставьте звёздочку" соответствующей issue, а если имеете полный контроль над
.proto
-файлами - рекомендую попробовать библиотеку.GitHub
GitHub - higherkindness/mu-scala: Mu is a purely functional library for building RPC endpoint based services with support for RPC…
Mu is a purely functional library for building RPC endpoint based services with support for RPC and HTTP/2 - higherkindness/mu-scala
Для меня стало большим откровением, что существует целый игровой движок, написанный на Scala - indigo. Несмотря на то, что пока доступна только альфа-версия и сами авторы предупреждают о возможных проблемах, уже можно писать небольшие игры на любимом функциональном языке, выходящие за рамки экспериментов с ZIO.
HTML Embed Code: