Once the file is open in Pinta, we will create a new file with the same
dimensions and save it with the OpenRaster format (.ora). This format
supports layers, which is indispensable for this kind of work. We will create an
empty layer called frm and we will import the fsharp100mclight.png as a layer
(Menu |> Layers |> Import from File…)
We will now choose our logo file and select all and copy it.
Afterwards, we will paste it into the frm layer. As the frm layer is below the
transparent F# logo layer, the F# logo will still be visible (slightly).
The reason the logo is not blending in well is because I have a black
background. In order to make the logo visible, I will change the colors to dark
green and light green.
Remark: This is actually not allowed as it will violate the usage
guidelines: “Don’t change the colors”. For more info, please contact
And you are done:
… I’m not convinced though.
Update: @ReedCopsey sent me the following
logo which is pretty much awesome!!!
I have no clue how he has done it, but at least it doens’t violate the terms of
use. The lesson learned here is that the F# Comunity will help you out if you
aren’t able to do it yourself which is pretty cool.
A bit of simple mathematics will show us how bad that deal was:
14000 x 14000 - 14000 x 4 = 195.944.000 DKK
in looses, more or less 33 million dollars. The finance institution was lucky
that the deal was made in the last five minutes before the close of trading,
where all deal are secret and the final price is set when trading in closed,
which in this case was 13.980 DKK/Stock. Nykredit only lost 3.780.000
DKK, about 650.000 USD, which given the circumstances wasn’t that bad.
You might be thinking: “How the heck can a Finance Institution make such a big
mistake, aren’t these guys supposed to be looking after our money?” but then
you also might think: “Well these greedy bastards had a lot to do with the
financial crisis so …” The main issue here is, why would the stock broker
even be allowed to make this kind of mistakes? The answer would be that most
business critical solutions are still made with an old fashioned approach.
I will, in very few lines of F# code, show how this kind of mistakes would
never be possible by using their Units of Measure to construct a
very simple but correct and robust DSL (Domain specific language):
In the example above, the stock broker needs to explicitly assign to each of
the used integers, a corresponding units of measure tag. The result is what we
intended it to be, which we also don’t need to make any kind of unit test, as we
have ensured that is not possible to represent an illegal statement with our
Sadly, there are still to many people, in charge, that live in the past and keep
banging their heads against the same walls over and over again instead of taking
a ladder and climb over them once and for all … Anyway, if you want to read a
few testimonials on how using this kind of approach, please visit: