Siili at Dutch Clojure Days


Siili Solutions crew (3 from .core and our great director from Technology Craftsmanship Verneri) visited the Dutch Clojure Days (DCD ‘19) in Amsterdam on the 6th of April. This is a short recap from our experiences in this great one day single track conference. We may dive deeper into one or more of the subjects that were on the agenda in Amsterdam but right now we will keep things concise.

Community at Amsterdam

Heimo: – As a community organiser in Helsinki area it was great to see and hear how vibrant the Dutch community is. It was a pleasure to get to know the organisers, and I am looking forward for more collaboration among European Clojure communities.

Eetu: – First thing I noticed was how friendly and open our Dutch hosts were. One part of our mission in .core is to create collaboration within Finland and internationally. So we were delighted about the openness and spirit that we encountered. This gave us an idea about an international meetup scene. How are we going to make this happen. We don’t know yet. Let’s see what happens.

Tuomo: DCD ‘19 was great! The venue excellent and everything was well organized. The talks were generally speaking quite practical and about real-world experiences, and thus easy to follow.

But let us get to the business. The talks.

nREPL – redux

Heimo: – For me the big thing in this talk was the point about funding and collaborating on important Clojure infrastructure components – libraries and tooling. We as a community need to do more and we can do more.

Eetu: – As the talk was about nREPL, the challenges, rewrites and one man show that was going on due to circumstances it was nice to see that there were some good things happening in the development on that front. With short discussion after the talk collaboration with Siili came to the table and we are very interested doing this together.

Tuomo: – When Bozhidar hits the podium, the audience is usually in for an entertaining and informative talk and this one was no exception. As nREPL is a cornerstone for many development tools, the talk touched upon the very foundations of Clojure development experience. It also demonstrated the importance of a welcoming contribution process for an open source project.

Building BNR Smart Radio & FD.nl Recommender system

Heimo: – I nodded multiple times throughout this talk as much of the reasoning and thoughts about how Clojure fits into these data processing and data science jobs where so congruent with my own thoughts and experiences.

Heimo: – Regarding the serverless part we spoke with Verneri that perhaps we should give more love also to Hedge and improve tooling for serverless Clojure functions. Could be fun to work with people on improving that.

Eetu: – It is nice to see that the Clojure is used handling large amounts of data. There were two examples in this conference alone. Streaming and other forms of moving data around are becoming the new norm alongside to conventional media. And so happy to see that public sector actors are strongly committed also with Clojure.

Decentralized evolutionary computation with Clojure and ClojureScript

Heimo: – I have to say that Rakhim’s talk was the most interesting and fun talk about genetic algorithms I have ever seen. Combined with the live demo it was concrete and fun presentation about a rather hard subject. After the talk I started to think if it would make sense to look revisit genetic algorithms and some other a bit more obscure concepts in CS field with fresh eyes.

Heimo: – The good thing is that Rakhim already promised to redo a version of this talk at next Clojure meetup in Helsinki.

How we migrated a complex JavaScript application to ClojureScript step-by-step

Heimo:  – I think Alex packed a lot of experience and wisdom into a short talk, and I sincerely hope that he follows through on writing a small series of blog posts about the experience with more details.

Eetu: – This was to me personally the most interesting talk in the conference. These things are in our path every time when we try to evolve systems and bring in new languages. (Not just Clojure.) The challenges and lessons learned were truly valuable. It also included some basic Java. 😉

Lightning talks

Clojure powered services at Finnish Broadcasting Company

Eetu: – Heimo shared his insights about YLE and the talk went through mostly used Clojure tools and libraries in YLE.

Re-find: discover functions with spec

Re-find was a fun idea. A tool that tries to find the function that fills the input and output conditions. What function gets you to x.

Future Boot

What stayed in our minds was the thing that using native image to speed up starting of a tool and of course how to make boot better and better in the future.

How I Supercharged Learning Clojure through Gamification

Heimo: Learning Clojure can be hard. This talk provided nice ideas and tips on how to create a structure and environment for personal learning.

The core of the talk was also nicely captured in this tweet:

1. Start with something familiar

2. Read someone else’s code

3. Change someone else’s code

4. Write you own game

Heimo: As a todo-item we should write more about our internal educational programs and share our insights from the master & apprentice and study group programs.

Tuomo: When learning a new language, the jump from tutorials and basic programming puzzles to real projects can be challenging. Mey’s talk was all about how to get across this gap from beginner to practitioner.

The rise and fall of e2e testing at scale

Heimo: Testing is hard and it also seems to be hard to not to do testing that does not produce value. Phillip totally captured pain points that I have also seen in different environments and projects – and briefly explored possibilities in going forward.

Heimo: I am getting more and more intrigued by the ideas of testing in production and building systems in more safe to fail ways.

Conclusion – worth the time and effort

Heimo: As a first time visitor to Dutch Clojure Days I was positively surprised how good the event was and how professionally it was organised. As I had watched some of the previous year’s presentations online I expected a good conference, but I was blown away with how friendly and inclusive the community really was.

Heimo: Clojure is a niche language in all the European markets and sometimes it might feel that as a clojurist we are alone. But if we look at the brainpower and capabilities available in the whole european Clojure ecosystem – the situation starts to look more interesting.

I definitely see good possibilities and opportunities in collaboration and learning across Clojure communities in Europe. Smart people are solving interesting problems all around Europe – and there is much to be learned from each other.

Heimo: I’ll definitely want to visit Dutch Clojure Days again.

Eetu: As do I.

Hello from .core!

This post has shameless advertising about Siili and Clojure.

As we all know there are a lot of things going on all the time in our field. I am now sharing some thoughts that were first brought to public in ClojuTRE conference in September. If you weren’t there, don’t worry. Youtube can get you up to date about the speeches. In ClojuTRE we published that Siili is starting a new kind of business solution around Clojure. That is what we did. Now .core has taken its first steps as independent business unit within Siili.

The concept started to form at the beginning of May and after some chewing, we have stated guidelines to our formed group. “Simple made easy.” That’s it. When you work with software you might guess that this isn’t easy at all. The idea behind this is related to modern day craftsmanship and our aim is to make the best possible solutions for complex problems.

So as you probably guessed from the first paragraph .core is about Clojure. Why we chose Clojure? We think that the simple made easy concept is best reached using Clojure. All Turing complete languages are capable of solving computational problems. I’m not denying that. But what we do is best reached using Clojure.

There are many interesting things coming at .core in 2019 and we are hoping to share these things as they come. Keep an eye out for this blog and of course Siili official website. To get more information about this thing I strongly recommend you to drop by this years first Clojure meetup hosted at Siili.

In Tampere we have a saying “aika paljon on virrannut vettä Tammerkoskessa”. I guess that could be roughly translated “a lot has happened since”. And I am pleased about the direction things are heading.

ClojureD conference in Berlin

In the end of February five Siilis took off from Helsinki to visit Berlin. ClojureD conference to be exact. Two tracks, plenty of talks and focus in Clojure. This is an overview from the talks that we visited and because Joy Clark had awesome notes on talks too I asked permission to share her notes here as well. Big thumbs up for the visual content!

Teaching Clojure

For me the first talk of the day was about teaching. We have ran our junior program with Clojure for two years as we speak so new views and how others find teaching in this domain was interesting. Mike Sperber shared his point on systematic thinking and how it affects the way we build software.

teaching_clj

Recap in drawing from Joy Clark

Maria: a beginner-friendly coding environment for Clojure

Next talk was about Maria by Dave Liepmann. A simple really beginner friendly place to learn fundamentals in Clojure. In his talk there was quite a few demos on how fast one can get on with coding.

Fast results are important when you start something new and Maria offers fast response to your coding and shows results immediately. Of course when you start doing bigger and more advanced stuff your pace of getting things done and ready will be different.

mariacloud.jpg

Recap in drawing from Joy Clark

 Writing test that suck less

Last talk before lunch was about testing by Torsten Mangner. This talk dived a little deeper to the fundamentals of testing. Talk began wit a confession and gave us the baseline.

“Writing unit tests in Clojure is easy, since testing pure functions is trivial. But the more high-level our tests become, the more they have to deal with the state and side-effects of your application. It becomes harder and harder to write proper tests. And worst of all: they are harder and harder to understand and to maintain, greatly diminishing the value of those tests as a documentation of your software.”

confession.jpg

A Dynamic, Statically Typed Contradiction

After lunch we had the pleasure of diving into mathematics. As Andrew Mcveigh talked about lambda calculus and its application in a “Hindley-Milner“ based type system and how it can be mapped onto Clojure. This solution can also be used to “type-chec” a subset of Clojure code.

Unfortunately my attention was to fully hang on with the maths and our ways with Joy had departed so, no good pictures from this talk. Sorry!

Onyx, virtual machines, jokes and afterparty

Next up for me was Vijay talking about Onyx and its uses for data crunching. An overall look for the uses. Masterless systems, stream and batch processing, flow control and principles of Clojure.

After coffee we got the pleasure of seeing a walkthrough how to implement Clojure on a new virtual machine. Heavy stuff and a great idea.

Last official talk before the lightning talks (I had to skip those because I was hungry and needed a Döner 😉 ) was called defjoke. Live coding a fully compliant spec for humour.

All talks were taped and are available soon in http://clojured.de/ check it out. Other great photos and one-liners can be found in https://twitter.com/clojuredconf

Thanks from Siili to great organisers and speakers. Hoping to see you soon in other adventures!

 

-e

 

Thoughts on Tampere Goes Agile 2017

Last weekend (27th-28th October) I had the honour to attend Tampere Goes Agile as a speaker and guest. This was my first speech in agile conference and I was of course a bit nervous about it. On Friday night we met with other speakers to discuss about next days conference. We got an unfortunate information that the closing keynote will be cancelled. During our dinner we planned the ending of the conference to be a panel discussion around the topics that we found controversial among us. That decided we chose panelists and yours truly was also included. Well, I was anyways going to be nervous the whole day so why not.

trega1.jpg

Saturday started with opening keynote from Mika Turunen on gaining speed for teams. After that I headed to hear what Artur Margonari had to say. His talk was about using and customising existing frameworks and models for agile transformation. Interesting talk how he had applied SAFe®, LeSS with bits and pieces from Spotify’s ways of working. He stated that using best fitting parts for the problem at hand. In his work that worked fine and added transparency between teams and management.

Another interesting speech was about fixed price projects by Teemu Toivonen. He underlined the fact that even within the fixed scope projects can be done in agile way. A lot of the effort goes to managing expectations. You can’t predict the future and the further you go the harder even guessing goes. Or can you tell what is going to happen in next 10 months? If you keep your time for development short your guesses have better odds to be right and responding to changes is possible.

My topic was how to turn negative emotions within the team to a positive goal. Starting from individual level. Starting with finding your problem from distant feeling that something is off. After that working our way towards a happy productive team that wants to develop and move forward. I talked about avoiding the problems that occur when going through this process. There are many of them and I cant say that I included them all to my speech. Well, it’s still a start.

 

trega2.jpg

In total Tampere Goes Agile was a pleasant experience. I met a lot of nice folks and was surprised that many of the themes that used to be ignored were actually a subject to a true discussion. Not just for shouting opinions pro and against.

What can we expect in future? In the closing panel I said: I hope something new and better comes and clears the table. This does not mean that everything old is bad and must go. But as we are constantly changing and improving, there should be new way just around the corner. And of course, we want to be a part of it. Hopefully we can help. At least I don’t want to be the one who holds back change.