Scala Days 2015 Amsterdam

Two weeks ago I visited Scala Days 2015, in Amsterdam. The conference was great, with a lot of high level content.
Sessions I visited. I’ve attempted to order them by what I found most interesting, but the order certainly not conclusive. All sessions can be viewed online at Parleys:

  1. Types vs Tests : An Epic Battle?
  2. Options in Futures, how to unsuck them
  3. Towards Browser and Server Utopia with Scala.JS: an example using CRDTs
  4. Function-Passing Style, A New Model for Asynchronous and Distributed Programming
  5. Essential Scala: Six Core Principles for Learning Scala
  6. A purely functional approach to building large applications
  7. Functional Data Validation (or How to Think Functionally)
  8. Meerkat parsers: a general parser combinator library for real programming languages
  9. Yoyak : Static analysis framework for Scala
  10. Scala Puzzlers: “In the Matrix, anything is possible!”
  11. Life Beyond the Illusion of Present
  12. Project Valhalla: Part 2 – Value Types in the JVM
  13. The Future of AI in Scala, and on the JVM

I’ll write more on what I’ve learned soon. For now, if you want to know something specific, just contact me.

Geplaatst in Reviews, Various Getagd met ,

Joy of coding, property-based testing

Afgelopen vrijdag heb ik Joy of Coding bezocht, een conferentie voor programmeurs. Ik wilde met name John Hughes horen, onder meer bekend van de paper ‘Why functional programming matters‘ (uit 1984 !). In dit artikel een verslag van zijn sessie over property-based testing, Joy of Testing.
Lees meer ›

Geplaatst in Various, Various @nl Getagd met , ,

Online diary on the fly

For quite a while I just to have digital personal diary. First as a text file stored in my computer, occasionally backed up on cd. Then I switched to I liked the clean interface and the fact that you’d get reminder mails you could just reply to create a new entry. Most of those reminders I just deleted I noticed. Ohlife shut down last year. Fortunately the creators allowed you to download a backup of all your entries so no content is lost.
Since then I don’t keep a personal diary. I do post occasionally on twitter as well as lots of other social media or as it just to be called word wide web. My calendar is on google, just as my mail and part of my documents. Besides that my photos and other documents are stored on my own laptop – not stored on any cloud (at least not that I know of), but synced via syncthing in case I lose my laptop. I create notes on evernote, store articles I might want to read on getpocket, and sometimes publish code on github, bitbucket or other hosted code services. And of course most of my activity is tracked by Google, Facebook and probably other organizations I know or not know of.
Lees meer ›

Geplaatst in Ideas Getagd met

Hoe kijk jij tegen softwareontwikkeling aan?

Wat is software, hoe creëer je nieuwe programma’s? Wat is programmeren? Hoe iemand tegen softwareontwikkeling kijkt, bepaalt veel hoe iemand tegen problemen en uitdagingen in de IT kijkt. Voor sommige is falen van it-projecten en kwestie van beter plannen, voor ander zijn projecten inherent de oorzaak aan falen. Sommige vragen zich af hoe je agile kan schalen, andere vragen zich af hoe je schaalbare software maakt.

Agile, lean, scrum zijn populair binnen softwareontwikkeling. Achter al deze methodieken en ideeën  zit een bepaalde visie: softwareontwikkeling is een complex proces. Veel mensen denken nog dat softwareontwikkeling een lineair proces is en dit denken maakt invoering welke lean of agile methodiek tot falen gedoemd is.
Hier onder heb ik wat stellingen gezet. Met welke ben je het meeste eens?
Lees meer ›

Geplaatst in Ideas, Various @nl Getagd met ,

Functional programming in Scala

I’ve completed the Coursera course Functional Programming Principles in Scala, with a Verified certificate! Going through the course was a nice experience. It felt a-lot like the university years, including even finishing assignments at the last moment.. Even though I already experience on functional programming and some in Scala, I did learn quite a lot. The course was a refresher on functional programming, which I learned at the university. Also, some functional programming principles I knew how to apply in Haskell, now I know how to use them in Scala.

Geplaatst in Methodology Getagd met , ,

Going to do functional programming

I’ve learned about functional programming during my university years, with Haskell as primary language. I considered functional programming as quite elegant, but also impractical. I felt I could get practical results more quickly when using Java or C# than using Haskell. Sometimes I used functional constructs like immutability, separating action from calculation or transforming and trying to limit the side-effects of functions. Usually this ended up in remarks from colleagues, ranging from ‘just accept java isn’t functional’ to ‘I don’t understand this code’.

Older, and more experienced at, and sometimes wearied of,software development, I’m getting to change my mind about how practical functional programming, as well as the inpractactically of object-oriented programming.

Some insights:

  • Distributed software, SOA, services get much more understandable with functional patterns rather than with  object-oriented patterns. What if you have to call multiple services, where each call depends on the result of another service? You don’t want to block your software while doing a service-call? And how do you handle errors? What to do about nullpointerexceptions? Using reactive programming allows you to handle these problems a lot easier, and then you start doing functional programming already .
  • Software-architects like to split up software in ‘layers’. When using an object oriented language, this leads to translation of objects living in one layer to objects living in another layer, to avoid objects having behavior that belong in one layer ending up in another layer: like persistable domain objects ending up in the UI-layer or business-logic in a service-layer. I am quite fed up with yet another Dozer implementation. And xslt almost looks like a functional programming language, with a very verbose syntax.
    Instead of discussing what belongs in which layer and wetter or not a domain-object should be anemic or not: lets separate behavior, data and logic altogether. Functional programming languages allow that more naturally and readable.
  • Reusability is often desired. Lots of reusable components are created at many companies. Rarely they’re used. Software that is reused most successfully consists mostly just of a set of functions, having little or no state.
    I rather have a function validIban then a class BankAccount with some method setIban or worse that may throw a validation error and a whole lot of other methods I don’t want.
  • When enterprise-system, software grows, so grows the complexity. Nowadays people try to handle the complexity by adding testers, architects, functional/business analysts, information analyst, requirement engineering, ESB, SOA, middleware etc. All in vain, bugs still occur and software becomes unmaintainable legacy quickly, adding the need to add yet another software system.
    To truly handle software complexity, software must be of high quality and written in a highly expressive language.
    Failed releases, software caused system-outages and software bug related security-flaws should not be considered a given we have to live by. TDD or automatic tests (not the same), clean-code, continuous deployment and similar practices may help. In the end I think a functional, pure, language may be our only hope.

My goal will be for the coming year to both use and learn functional programming (fp) a lot more, explain it to other people and hope to popularize fp or ride the wave when functional-programming becomes more popular.

More bold, or maybe foolish, I take up my personal challenge to create something practically useful in Haskell.

Geplaatst in Ideas, Methodology Getagd met , ,

Demonstrating using GWT-RequestFactory and Spring togetter

I present a sample-project that demonstrates using the GWT RequestFactory together with Spring.
Lees meer ›

Geplaatst in Technology Getagd met , ,

Scala to extract XML from SOAPUI-project file

I’ve created a small scala-script to extract messages from SOAPUI. Writing this was surprisingly easy, and certainly faster and more pleasant then processing the SOAPUI manually.

Geplaatst in Technology Getagd met ,

SQL Performance

If you have to access persisted data, of course, you do not have to necessarely use SQL. But in case you do, knowing something about SQL-performance helps.
I just did a this 3-minute test on SQL performance (for Oracle), with 4/5 score. Pretty fine.

The answer I failed was about multi-colomn indices. When you have a index containing multiple columns, if you use one of those columns in a where clause, the index is used. However, the index can only be used efficient if you use at first column.

Geplaatst in Technology Getagd met ,

Friend of Eclipse

I just became friend of Eclipse. The new version Kepler is available for friends of Eclipse, which is a good reason to do something I planned to do before.


Geplaatst in Various