Almost two months ago (time sure flies) I attended for the second time the conference
Scala eXchange, one of the largest Scala conferences in the world, and which happens to be 1 tube stop from the office you can find me from time to time in London. Also happens to be an excellent conference, and I’m repeating next year (yes, I already got my tickets).
For those who don’t know,
Scala eXchange is a 2-day (plus an unconference day) conference in central London, bringing most of the library developers you love to talk about cool stuff.
 |
| Scala time! |
Keynote: The Maths Behind Types with Bartosz Milewski
We started with the
big category theory guy. In case you don’t know, Bartosz is the author of the widely loved series of videos on
Category Theory for Programmers. Haven’t watched them yet (I don’t have fond memories of Category Theory when I was studying abstract algebra), and from what I heard from people who have, I had the luxury of seeing a short intro to almost half of the series in just a conference session.
I got away with a bit better understanding of the relationship of the vague notions I remember from CT (universal properties/objects, final objects, etc) with type theory. All in all, very interesting and a good start.
 |
| Beware! There's a functor behind you! |
Coffe break!
I caught up with the
Scala Madrid gang, since they had a stand to promote the meetup. Got a free copy of Dave Gurnell and Noel Welsh
Advanced Scala with Cats at the
Underscore booth and drank a lot of coffee. I suspect I also stumbled on Jon Pretty and caught up on what he was going to present, but might have actually happened a few coffees later.
Free Monad or Tagless Final? How not to commit to a monad too early by Adam Warski
This was the first time I saw
Adam presenting, and was well worth it. My knowledge of
tagless final encoding is... shallow, to say the least (and not like my knowledge of free is excellent, but is better) and I left this talk feeling like I learnt a lot. The best way to leave a talk, I think. I also found later that
Pere has a comparison of them, also adding the
Eff monad to the mix.
Be sure to check his company’s (
SoftwareMill) blog for a wealth of interesting posts. As well as subscribe to
ScalaTimes, which they curate weekly.
 |
| ♬ So Tagless can't you see, I want to break Free ♬ |
Farewell Any => Unit, Welcome Akka Typed! with Heiko Seeberger
I had read stuff by
Heiko (for instance,
a post on using akka-testkit), and had started having a look at the new typed APIs, but seeing it live-coded by the person who wrote a big part of it is priceless. Now, I need to rewrite my unfinished, unpublished ad server in akka-typed!
I had already seen Daniela’s talk (was on the same slot)
A pragmatic introduction to Category Theory at Scala World earlier in the year (and, IIRC with longer time so it was almost a workshop, enjoy the video) so I skipped it. But can recommend, was excellent.
 |
| To Akka or not to Akka... Actually, there's no question |
Lunch break
Had lunch with a Scala friend (hi there
Carlos!) while explaining which talks I attended and exchanging impressions on the ones he attended. Also discussing freelancing/contracting, situation in Spain… Standard stuff.
 |
| Meow-some |
Keynote: Architectural patterns in building modular domain models with Debasish Ghosh
It may have been my usual after-lunch sleepiness, but I didn’t enjoy this talk, even if it seemed interesting overall. Might need to rewatch the video to get a second impression.
Shapeless is dead! Long live shapeless with Miles Sabin
This was a bit too deep into the internals of
shapeless, but
Miles is a great speaker so it was quite fun, even if I didn’t get a lot of mileage out of it (yet).
 |
| Turning the problem around? |
Introduction to Freestyle and Freestyle RPC with Raul Rajá
After getting a better grasp on the free vs tagless dichotomy earlier in the day, I got to enjoy Raul’s presentation on the library he has written with the other folks at
47 Degrees (they are also the organisers of
LambdaWorld and
LXScala and maybe others). The gist of this library, don’t bother with free or tagless: use freestyle and you can switch from one to the other as you see fit with ease.
 |
| He walked around as I was shooting... |
Lightning sessions: Optic algebras
This is the only talk I remember, by
Jesus Lopez. It was very interesting, but would love to see a full talk on it. I got into the wrong room for the second lightning, and chose wrongly for the third, so won’t even mention.
Keynote: The Magic behind Spark with Holden Karau
I’ve had the pleasure of hearing
Holden speak something like 6 times already, and she always delivers fun talks. I mostly knew this one, since it was a Scalafication of the keynote she gave on
PyData Barcelona 2017 (which focused on the Python side of things, you’ll also see me introducing her first time in the morning, by surprise, before coffee…). You won’t see garden gnomes the same after this talk.
 |
| Take the red pill |
Freestyle, Free and Tagless: Separation of concerns on steroids with Michał Płachta
This one was mind blowing, enjoyed a lot
Michał ’s style. After the warmup on free/tagless/freestyle the day before, I finally got the gist of why we bother with all these programs-as-data-kind-of-functional-encodings. Ticked for several rewatches. You can find the slides
here.
 |
| But, which is the Good, the Bad, the Ugly, Michał? |
Building scalable, back pressured services with Akka, with Christopher Batey
This was an interesting, technical talk about services, TCP and backpressure. A bit too close to metal for what I do currently, but good to be aware of. Also,
Christopher gave an excellent presentation, first time I’ve seen him, will repeat.
Impromptu: Using dependent types to build a better API for async call graphs with Jon Pretty
I had seen a previous version of this talk at the London Scala User Group meetup, and understood nothing. This time though I got it (not sure if
Jon did anything magical with the talk or it was me knowing more), and it has gotten me thinking about similar, graph-related problems and the approach taken (use the types, Luke!) Also,
Heiko raised an issue in the repository (since, the code fits in a slide!) and I wrote the small PR to address it. Now I want to do something more useful for the library than that though!
 |
| Standing room for Jon! |
A reactive database of facts with Peter Brachwitz
I wasn’t overly interested in any of the talks in this slot, so went with this, somehow “database of facts� in my head sounded like Prolog, which made it interesting. It was not (for me), it was more like how to access Datomic with Scala/Akka and doing it properly. Not specially useful for me, but probably is for someone else.
???
I sincerely don’t remember which talk I attended in this block. I’m pretty sure it was not
Peter Hilton’s
How to name things, since I saw that one last year (was great). It might have been
Refinement types in practice with
Peter Mortier, but don’t remember
anything except vaguely mentioning refined types to a coworker for an API we have. Okay, I just checked the video and definitely it was Peter’s. You can find the slides
here.
Keynote: Composing programs by Rúnar Bjarnason
Coauthor of
The Red Book of Scala (beware, affiliate link), and an excellent explainer. This was an outstanding close to a very categorical conference. Even though I’m a mathematician, my working knowledge of category theory has improved 100x after learning Scala and seeing how my colleagues here approach problems in a very categorical, functional, typed way of seeing the world.
 |
| Wat |
Unconference
Last year we had a PR hackathon, where together with Carlos we contributed a WIP for regexes to
scala-native. This year we had more of a workshop/live coding event, where we could choose among subjects. I don’t remember all of them. Raul was there for Freestyle (missed on this one). There was one about writing stuff for Minecraft in Scala...
Well, I attended what I think were the coolest: how to actually use Akka Typed, with
Heiko and a
tour of typelevel libraries and how type classes help in the implementation with
Travis Brown. They were oh-so-interesting.
Next year, again and more.
'Of course I don't have to do this,' one middle-aged man said, carefully cleaning the table with a damp cloth. He put the cloth in a little pouch, sat down beside him. 'But look; this table's clean.'
'Usually,' the man said. 'I work on alien - no offence - alien religions; Directional Emphasis In Religious Observance; that's my speciality... like when temples or graves or prayers always have to face in a certain direction; that sort of thing? Well, I catalogue, evaluate, compare; I come up with theories and argue with colleagues, here and elsewhere. But... the job's never finished; always new examples, and even the old ones get reevaluated, and new people come along with new ideas about what you thought was settled... but,' he slapped the table, 'when you clean a table you clean a table. You feel you've done something. It's an achievement.'
The Use of Weapons, Iain M. Banks
Maybe you are not aware of it, but I'm a shoemaker. Together with my girlfriend we run
The Fancy Puffin, a handmade shoe workshop. Go and give it a look, I'll be here when you come back. All our designs are unique and custom made: you can ask for almost anything of us. Checked them? Good! I hope you liked some and are ready to ask for your custom made Oxfords or some fancy woman shoes.
One of the most striking things about good, quality shoes is how they
shine. Leather (unless it's
patent leather) is not particularly shiny. That unearthly shine good shoes have in pictures and feet comes from a labor intensive work of polishing.
That shine (which is known as military shine, because US soldiers were supposed to invest a lot of time to have their boots shiny) is relatively straightforward to get, albeit time expensive. Of course the end result is quite striking, as you can see below with my everyday pair of Oxfords. These are the shoes I wear most often (more than 1 day of every 2.) Both shoes have been cleaned of most dust, and both had a layer of horse fat a few days ago (it's good to grease your shoes from time to time to keep leather flexible.) One has been polished, the other has not. Can you guess which is which?
I learnt to get that shine from a very interesting blog (
The Shoe Snob.) As I said, it's not hard. I didn't completely follow the directions of the blog, which probably results in a less impressive (but faster shine.) How did I do it?
1st step: Clean all the dust off your shoes with a shoe brush.
2nd step: Pick some cloth (I used rags off an old t-shirt) and wrap it around your index finger. Use it to spread a thin layer of black wax based shoe polish all over your shoe. You can get the layer thinner by repeatedly passing your clothed finger around the same area: if you are very intensive you'll get a mild shine. Don't be so intense, but keep polishing until you feel the shine is "almost there". There's a bit of trial and error here: no problem in getting a little shine in some areas until you get the correct amount of removal.
3rd step: get a small amount of water in the lid of your shoe polish (or a small plate.) This step is usually done by spitting on your shoes... Water is cleaner. Get a small amount of polish, put it on the shoe and spread. Then, get the tip of your pinky wet and put a small amount of water in the just waxed area of your shoe. Quickly spread the water with your clothed finger repeatedly. It takes a while for the leather to absorb all the water. The process goes as follows:
- There's a trail of droplets. You pass your finger on them
- The wax gets wet and turns a dull black. Keep passing your finger in a circular motion around the area
- The wax feels thicker to your finger. Keep at it, slowly passing your finger in a circular motion around the area.
- A shine starts. Keep at it!
4rd step: There's no 4th step: just get the shine all over the shoe. You can repeat step 3 several times, but eventually all the poruses (porus? pori?) of the leather will be clogged with wax and it won't accept any more.
5th step: Actually there's a 5th step. Get some nylon cloth (a woman tights, for example,) wrap it around your finger and pass it all over your shoe. It will get a brighter shine out of it.
And voilà! A good shine can last many days, of course it will depend on many factors (weather, type of pathways you walk, hours you keep your shoes on and some other.) But a good polished shoe is sure to attract a few looks. It has happened to me countless times!
