Masthash

#Scala

Jobs for Developers
7 hours ago

Datadog is hiring Data Engineer - Metering Platform

🔧 #golang #java #python #scala #sql
🌎 Boston, Massachusetts; New York City, New York
⏰ Full-time
🏢 Datadog

Job details https://jobsfordevelopers.com/jobs/data-engineer-metering-platform-at-datadoghq-com-nov-1-2023-b32e34?utm_source=mastodon.world&ref=mastodon.world
#jobalert #jobsearch #hiring

Alex Nedelcu
21 hours ago

This holiday season, do some programming for fun and maybe learn something new. There's still time to join the first day of the #AdventOfCode and develop your solutions in #Scala 😊

https://adventofcode.com
https://discord.com/invite/scala

windymelt (Twitterから転送)
1 day ago

[Tw] RT @tanishiking: #Scala Advent Calendar 2023 一日目の記事書きました〜。https://t.co/yzDA1lVWCD
ScalaのWASM対応のことも書いています〜

Scala.js + Javy で Scala を WebAss…
[de] https://twitter.com/windymelt/status/1730550554194309230

Vlad L 🇺🇦🦀
1 day ago
ZIOnionex == zio   hexagonal architecture   onion
Gerbrand van Dieyen
1 day ago

almost time for second day of #functionalscala. Yesterday was packed with inspiring, very intersecting and curious talks and met a lot of people I hadn't seen in a long time. #scala #conference

Leanpub
1 day ago

Functional Programming for Mortals by Sam Halliday is free with a Leanpub Reader membership! Or you can buy it for $7.99! http://leanpub.com/fpmortals #Scala #FunctionalProgramming

Alex Nedelcu
2 days ago

“Helix and Scala”

Helix is a replacement for Vim, built from scratch, in Rust 😱, with builtin LSP support, so it can work with Scala's Metals.

#Link #Scala #Rust #Tools #YouTube #Video

https://www.youtube.com/watch?v=uYopbRq62ds

Alex Nedelcu
2 days ago

`rustup docs --book`

#Scala needs something like this.

Stefan Poindl
2 days ago

Tomorrow, the next #adventofcode will start. Are you excited? I decided to chose #scala this year so I've been praying to the gods lately

Steve Randy Waldman
3 days ago

I've been doing lots of little Scala projects that want to send e-mail, including HTML e-mail. The Scala mail lib I found was a bit elaborate (based on cats effects) for my purposes. JavaMail (now Jakarta mail) is annoying to use directly.

So, I wrote a little mailutil library that is pretty trivial to send mail with, and straightforward to configure.

Maybe someone else finds it fun. https://github.com/swaldman/mailutil

#scala

Leanpub
3 days ago

Practical FP in Scala by Gabriel Volpe is on sale on Leanpub! Its suggested price is $49.99; get it for $35.99 with this coupon: https://leanpub.com/sh/0xjfXQL2 #Scala #FunctionalProgramming #Software

Daniel Esik
3 days ago

Something interesting has been dropped — results of 'The State of Developer Ecosystem 2023' by JetBrains https://www.jetbrains.com/lp/devecosystem-2023
A single place where #Scala is among leaders (even the top 1), surprisingly, is the category of highest-paid languages. Considering sending this to HR at $job. Thoughts? 😅

Scala lang is the highest-paid language as of 'The State of Developer Ecosystem 2023' by JetBrains
soc
4 days ago

Just dropped all #Scala content from my site. Saves quite some vertical space!

Leanpub
5 days ago

Practical FP in Scala + Functional event-driven architecture https://leanpub.comb/pfp-feda-scala by Gabriel Volpe is the featured bundle on the Leanpub homepage! https://leanpub.com #FunctionalProgramming #Scala #Software

Adam Warski
5 days ago

Visiting #Paris tomorrow! If you'd be curious how structured concurrency might look like in #Scala, and discuss Ox's approach, please drop by!

Should be interesting for all #JVM developers, as we'll test the newest JDK 21 feature: virtual threads

https://www.eventbrite.com/e/paris-scala-matters-meet-up-tickets-744003844527

Alex Nedelcu
5 days ago

Going through #AdventOfCode 2022, as a warm-up, here's the first day in #Scala 3.

https://adventofcode.com/2022/day/1

#pic

@main def day1: Unit =
    val top3 = input.split("(?m)^\\s*$")
        .view
        .map(_.trim())
        .map:
            _.split("(?m)$").map(_.trim().toLong).sum
        .sortBy(-_)
        .take(3)
        .toList

    println(s"\nMax calories: ${top3.headOption.orNull}")
    println(s"\nCalories of top 3: ${top3.sum}\n")

private lazy val input =
    scala.io.Source.fromResource("day1.txt").mkString
Leanpub
6 days ago

Practical FP in Scala by Gabriel Volpe is on sale on Leanpub! Its suggested price is $49.99; get it for $35.99 with this coupon: https://leanpub.com/sh/hz8QiZy5 #Scala #FunctionalProgramming #Software

fanf42
1 week ago

@TobiasRoeser

#Java #Scala #Kotlin
Ouch, that's not very... Not very anything actually. I feel for you and managing the kind of impossible dilemna it certainly lead to

Philipp Krenn
1 week ago

what makes it an even bigger project?
the new #java API client rather than the previous high-level REST client. the community-driven #scala one would have been another option and there's a good rundown of the tradeoffs

Tobias Roeser
1 week ago

Dear #Java / #Scala / #Kotlin developers who target the JVM:

Please stop dropping support for older Java Versions in patch releases!

Thanks!

Прикольно, в #scala 3 есть NotGiven позволяющий проверять не наличие, а отсутствие неявного параметра, хз где это применить, но звучит занятно.

https://blog.rockthejvm.com/anti-givens/?utm_source=pocket_mylist

Alex Nedelcu
1 week ago

Rare #pic of #Scala developer participating in the #AdventOfCode challenge

Alex Nedelcu
1 week ago

“Saving Christmas Using Scala”

To get you in the mood for the Advent of Code 🎄

#Link #Programming #Scala #Video #YouTube
https://www.youtube.com/watch?v=tHU36gQ5iAI

Alex Nedelcu
1 week ago

A hidden gem in #Scala's #sbt build tool is the `testQuick` command. If you're not using it yet, you should.

https://www.scala-sbt.org/1.x/docs/Testing.html#testQuick
#op

Gerard Hynes
1 week ago
Principal Skinner meme: "Am I bad at programming? No, it's Scala that's wrong."
Carlos Saltos
1 week ago
fanf42
1 week ago

@soeren

#PostgreSQL #Scala
Thanks for sharing, it seems really nice

Sören Brunk
2 weeks ago

Typo is such a game changer for working with #PostgreSQL. Point it to your DB and raw SQL queries and It generates nicely typed #Scala mappings for different DB libraries.

Includes streaming support not only for reading queries but also super fast streaming inserts for your tables via COPY.

I've been using it on a project for a few weeks now and I love how much boilerplate it removes and just generally simplifies things.

I highly recommend you to give it a try: https://oyvindberg.github.io/typo/

vascorsd
2 weeks ago

Since other people are discussing these things, always a good reminder that on #scala using cats-effect library and using #FunctionalProgramming these thing are properly abstracted away nowadays and on daily usage one finally barely has to care at all about it. - https://typelevel.org/cats-effect/docs/thread-model

----

Two kinds of threads pools, and why you need both | Lobsters - https://lobste.rs/s/k8knw4/two_kinds_threads_pools_why_you_need_both

#programming

Alex Nedelcu
2 weeks ago

I like #programming languages that are expression-oriented. Expressions yield values, I like values, a prerequisite for #FP.

Explains my love of #Scala, my former preference for #Ruby over #Python, or current attraction for #Rust 🤷‍♂️

#op

Alex Nedelcu
2 weeks ago

https://adventofcode.com is starting soon.

This year, challenge yourself to solve those puzzles in #Scala 3, significant indentation and all 😍

So who's up for it? And would you like to see me struggle?
#adventOfCode #op

Oct
2 weeks ago

😅 Debugging #ZIO logging code in our monorepo. #Scala is always fun (almost)(help)

I'm getting crazy because I use #neovim as the default editor and #Helix specifically for #nushell and #Scala.
Completely disruptive and painful not having a perfect one to one keybinding from both sides 😖

Ross A. Baker
2 weeks ago

Stable company, figured out remoting before the pandemic, Typelevel stack. I work with this team part time. If you'd like to work with me, or if you'd like to work in FP and can tolerate me ... check it out! DMs are open.

https://jackhenry.avature.net/careers/JobDetail/Scala-Software-Engineer/13519

#Scala #Typelevel #Kafka #Remote #Hiring

dazfuller :rickwhoah:
2 weeks ago

The thing about #csharp features being announced during #dotnetconf I love the most, is that it’s becoming more like #scala :blobfoxsignbigfan:

vascorsd
2 weeks ago

Look ma, more languages are adopting the same feature we have in #scala
"_.Property shorthand for (fun x -> x.Property)"

Though everything else in Fsharp seems highly weird and complex.

--

Announcing F# 8 - .NET Blog - https://devblogs.microsoft.com/dotnet/announcing-fsharp-8/

#programming #programmingLanguages #dotnet

fanf42
2 weeks ago

#fedicode #Scala #codeReview

Hello fediversian,
How do you handle the review process (as in "sharing knowledge and insights, getting feedback" on a very big PR?

OK, the best solution is "do not do big pr" and yes, scaling down the issue is generally a good advice (either by splitting the thing in an iterative process, or in several topic commit)
I did that, but the resulting change is still big (+30k/-100k of Scala) and impactful (switch a core part of the app), the two being of course intrinsically linked.
It could have been "work in pair", but that horse is far away already.

So, I did my homework (create arch docs and schema, document the change "how to get into that pr" way, tracked all the code change that made me pause in code log, added unit test to both demonstrate non regression on old behavior and new one, document code, etc) .

Still, such a change is frightening, just by the involvement and time needed to get at the "I can review" level.
But I really need to help them at that level, since the pr embed technical and functional knowledge important to be shared, even if not for getting feedback on the code now.

So: how do I help my team getting involved in that pr? It really looks like the next step must be interactive ("let me walk the changes with you, ask anything you want" like). Do you have any recommendations or guidelines about how to do that efficiently?

About to start @pchiusano typed and compositional micrservices in #unison. #scala #ScaleByTheBay

Daniel Esik
3 weeks ago

The upcoming twenty-fourth patch release in the `0.23`-series of http4s got 7 (seven!) new contributors. In fact, their contributions enrol into 2/3 of all shipped changes. Goddamn, that doesn't stop to blow my mind!
#Typelevel #http4s #scala

Steve Randy Waldman
3 weeks ago

[tech notebook entry] (Library + Script) vs (Application + Config File) https://tech.interfluidity.com/2023/11/14/library--script-vs-application--config-file/index.html

#scala

fanf42
3 weeks ago

@mark @vascorsd

#Scala #ScalaIO #ScalaIO2024
Hum, seems like Google don't want to let me know about it
I will try to reach the content somehow, but using Google anything is creating more and more friction, as enshitification goes

Google "authorize tracking cookies to access the page" screenshot
vascorsd
3 weeks ago

Getting slightly annoyed that all the recruiters that want to connect in last weeks on LinkedIn all give me the same JD for the same client 😮‍💨.

Is the market without any companies recruiting for #scala besides the same 2 or 3 companies?

Tobias Roeser
3 weeks ago

We released Mill 0.10.13.

This maintenance release brings some dependency updates and new type aliases and deprecations to ease the migration to Mill 0.11.

https://mill-build.com/mill/Changelog.html#0-10-13

#MillBuild #Scala #Buildtool #Java #JVM #programming #developer

lachezar
3 weeks ago

I wish #Scala 3 opaque types had an easy way to derive the operations of the underlying type. Something like #Haskell `deriving newtype` with the ability to point out which operations you want.

vascorsd
3 weeks ago

I guess one should eventually be able to use this UI framework with #scala native or scala.js.

--

Slint 1.3 Released with Revamped Native Styles and JavaScript API — Slint Blog
https://slint.dev/blog/slint-1.3-released

Alex Nedelcu
3 weeks ago

If Scala 3 supports markdown in documentation comments, it wins the language war. I don't make the rules.

https://docs.scala-lang.org/scala3/scaladoc.html

#Scala #Scala3

Alex Nedelcu
1 month ago

On #Mastodon I'm getting plenty of pleasant interactions, and it's a nice place, but it's very one-sided.

I wish to see more #Scala, #Kotlin, #Java or general programming content. Being on my self-hosted instance certainly doesn't help with discoverability, although I am using https://relay.fedi.buzz/ to follow these tags.

Alex Nedelcu
1 month ago

This is why I'm excited about #Scala 3.

Source: https://mpilquist.github.io/talk-fpis/

Michael Pilquist
1 month ago

Wow, I didn't realize the growth here! From @arosien's talk at #nescala. #typelevel #scala

Slide from Adam’s talk showing Typelevel Ecosystem growth over 2 years, nearly doubling both people & repositories.
Macleod Sawyer
1 month ago

The Vale Programming language

We also discovered that they (Generational References) enable Vale to have complete memory safety, something no native language has been able to achieve.

  • No borrow checker
  • No GC
  • Writes like Go with a hint of Scala
  • FFI interop
  • No unsafe blocks
  • No comptime related keywords

https://vale.dev/memory-safe

[ # ] :: #vale #memory #gc #rust #go #scala #c #valelang #zig #programming

Alex Nedelcu
1 month ago

I like #Kotlin, but it's not value-oriented or even as expression-oriented as #Scala is. And the difference can be subtle, but as a Scala dev, I feel it even for simple tasks.

Here's a simple function. The Kotlin code cannot describe a tail-recursive function, as it's forced to be “inline”, due to “reification”. Scala's “inline” functions can be tail-recursive, and inlining isn't even needed for reification.

You may like while-loops, the point being in Scala it's easier to avoid mutability.

// Kotlin code
inline fun <reified A : Throwable> findException(e: Throwable): A? {
  var cursor: Throwable? = e
  while (cursor != null)
    when (cursor) {
      is A -> return cursor
      else -> cursor = cursor.cause
    }
  return null
}

// Scala code
@tailrec
def findException[A <: Throwable : ClassTag](e: Throwable): A | Null =
  e match
    case found: A => found
    case _ =>
      e.getCause match
        case null  => null
        case cause => findException(cause)
Peter
2 months ago

Any Finagle users here? My com is looking at forking the project (Twitter isn't maintaining it anymore, and we want #scala3 support). Is someone else in this situation? #scala #finagle

vascorsd
2 months ago
Alex Nedelcu
2 months ago

And the experience feels good, at least for toys. Seriously, download this sample and fire it up: https://github.com/sjrd/scalajs-sbt-vite-laminar-chartjs-example

#Scala #Scalajs #Scala3

Alex Nedelcu
2 months ago

Out of the Alt-JS languages I've played with, #Scala.js seems to be the best.

Given it's probably not widely adopted, its maturity is surprising. E.g., ScalablyTyped can convert TypeScript definitions, and actually works. Interop is good. And the compiler is, dare I say it, pretty fast compared to 2–3 years ago. Scala 3 also helps. E.g., it has untagged unions, just like TypeScript.

I'm surprised that it's in better shape than #KotlinJS, for all its multi-platform marketing.

#Scalajs #Scala3

Alex Nedelcu
2 months ago

What I really like about #Kotlin is that the popular libraries tend to be based on common-sense. You look at a sample, and you understand it.

Here's a sample that I discovered and understood in seconds, showing me how to define reusable CLI sub-commands in multiple subprojects: https://ajalt.github.io/clikt/commands/

#Scala's libs in this space (case-app, decline, mainargs, scopt,...) are based on compiler magic or weird data structures, have poor docs, and I can't tell if they get the job done 🤷‍♂️

Alex Nedelcu
2 months ago

In Scala 3, these utilities are guilt-free. But I can't find them in the stdlib optimized yet: https://www.scala-lang.org/api/3.3.1/scala/util/ChainingOps.html

#scala #scala3 #pic

Scala code follows:

extension [A](self: A)
  inline def tap(inline f: A => Unit): A =
    f(self)
    self

  inline def pipe[R](inline f: A => R): R =
    f(self)

  inline def use[R](inline f: A => R)(using A <:< AutoCloseable): R =
    try
      f(self)
    finally
      self.close()
fanf42
2 months ago

I'm doing simple dev with #scala, #zio, #doobie, #quicklens, #specs2, #postegresql, and others things and it's very pleasant. I really like the programing level : not forced to care about low level stuff, data driven, types forbidding whole classes of problems and allowing fearless refactoring while I'm discovering the domain, with systematic and composable error management so that it's a pleasure to manage them accurately.

It's relaxing

Scala.js
2 months ago

#Scala.js 1.14.0 is released! It features more linker performance improvements, as well as other small enhancements. https://www.scala-js.org/news/2023/09/25/announcing-scalajs-1.14.0/

Alex Nedelcu
2 months ago

"OOP classes vs Higher-order Functions (HOFs)"

What's the difference?

#Blog #FP #OOP #Scala

https://alexn.org/blog/2023/09/25/oop-classes-vs-higher-order-functions-hofs/

Alex Nedelcu
2 months ago

I still can't wrap my head around the #Lichess chess server being built in Scala 3 and using Typelevel libraries, in an #FP style. This chess server is insanely popular.

https://github.com/lichess-org

#Scala #Scala3 #Typelevel

Alex Nedelcu
2 months ago

Programming in Java, anything non-trivial is still, “death by a thousand cuts”.

This is why alternative languages running on top of the JVM will always be relevant (e.g., #Scala, #Kotlin, #Clojure, #JRuby), especially if they strive to be more than just Java++. Because Java++ is the same boring old Java.

The redeeming quality that Java has is the extreme backwards compatibility. But this doesn't really speak for the libraries that people use, upgrades are still hard & classpath hell is real.

interfluidity
3 months ago

[Announcing] fossilphant — a static-site generator to self-host your posts from Mastodon archives https://github.com/swaldman/fossilphant#readme

Check out examples, themes with paging https://www.mchange.com/projects/fossilphant/example/shatter/ or as one tall page https://www.mchange.com/projects/fossilphant/example/tower/

My current instance is sunsetting, and I want to make sure the banalities I posted here remain forever public.

If you are in similar straits, I'd love it if you gave this a try!

cc @isomorphismes @jpkoning @mattlehrer @paulgp

#scala

BB :verified_cool:
3 months ago

Anyone else getting tired of #Rust getting the credit for (G)ADTs?

No? Just me?

#ocaml, #haskell, #StandardML, and #scala among others had this long before Rust and without the complexity of the borrow checker or lifetimes. Rust moves this concept of type system as bug prevention system forward for systems programming, but there is a long history of good compilers (targeting application development, not systems) that did this already (and in a few cases - better!). I am tiring of the narrative that Rust is the ”*only* memory safe language"...

Jendrik Johannes
3 months ago

#Gradle supports different options to write plugins. This is good, because it gives you the choice to use what fits your context. Any you should always write plugins - if only to organize your project's build configuration.

But it is confusing 😖. That's why I created this overview:
https://github.com/jjohannes/gradle-plugins-howto

Learn by exploring the difference between writing the same Gradle plugins in:

- Gradle Kotlin DSL
- Gradle Groovy DSL
- #Java
- #Kotlin
- #Groovy
- #Scala
- #Clojure

Alex
4 months ago

Why bother with tagless final if you're only ever gonna stick to one effect system, right? It's like those Java folks arguing over javax interfaces when they know they'll never swap tomcat/jetty in their production system. But here's the deal: you don't use them for switching implementations in one project, but to make life easier when shifting people between different projects. You know, get them up to speed fast! And that's possible if they know both implementations play nice with a shared spec.
Skeletor will return with more disturbing comparisons between the world of pure FP and enterprise Java development #programming #scala #java

Adrian Cockcroft
5 months ago

#sustainability #QCon @DevSusOps Video of the talk on the Tesla Virtual Power Plant from the track I curated at QConSF last fall. I’m very happy to be getting my own powerwalls installed next week so I can be part of this. Interesting architecture using #Scala #Akka to track and manage all the batteries at homes. https://www.infoq.com/presentations/tesla-energy-platform/

Anthony Accioly
5 months ago

New Mastodon account, new #introduction.

Hi Fediverse, I'm Anthony, a Software Engineer and a recently naturalized British citizen (originally from Brazil) currently living in London. 🇧🇷🇬🇧

Aside from #tech related subjects close to my heart (JVM languages like #java, #kotlin, #scala, as well as more general topics like #agile, #foss and #extremeProgramming), my interests include #astronomy, #immigration, #retrogames, #scifi and #travel.

I'm proudly 'owned' by a tuxedo cat named Sean Bean.

Nicolas Lenz ❄️
5 months ago

I'm thinking about doing #freelance / consulting-type work once I finish university. Currently I'm working on my master's thesis and have a job, but still:

If you, your company or someone you know could use a passionate person with expertise especially in #Nix, #NixOS, #functional programming (e.g. in #Haskell or #scala), type systems, #foss, #python, #linux administration / infrastructure, research, training and education such as workshops or seminars, and a lot of other areas as well, contact me at work@eisfunke.com!

I've also started collecting some relevant information at:
https://www.eisfunke.com/work.html (still work-in-progress though)

Alex Nedelcu
5 months ago

#Python has batteries included in its stdlib, but when those batteries aren't enough people have to resort to installing pip + virtualenv + pyenv, alongside the OS's native packager, which they still need for native dependencies.

In #Scala, for writing all kinds of scripts, with all sorts of dependencies, all you need now is Scala CLI; which can also help with distributing your script as a JAR, or as a native executable:

https://scala-cli.virtuslab.org/

Checkmate, Atheists!