HNHacker News
TopNewBestAskShowJobs

ff_

1,531 karma · joined November 10, 2013

Twitter: @fabferrai

GitHub: f-f

SoundCloud: cassalpopolo

Email: hn at ferrai dot io

[ my public key: https://keybase.io/ff; my proof: https://keybase.io/ff/sigs/cTLLkmwQyOpSnUQc9gDnJJb5O-QxTSXOxAp1z6Iv_i8 ]

submissionscomments
ff_··on KeePassXC 2.3.0 released
The best UX improvement in this release (IMHO) is pretty buried in the changelog, and I don't see it mentioned here: no more lock files!

If you use Keepass on something like Dropbox it's a blessing.

ff_··on Elm changed my mind about unpopular languages
FP is mostly a state of mind - of course picking the language really helps about incentives, but you can do it even in Java/C# (in fact if you do C# there is the great LINQ library that helps).

How to approximate FP in a mostly OOP language:

- use immutable data structures: there is no way around being able to fearlessly modify something. The naive way is to copy the object before touching it, the better way is to use efficient structures, e.g. Clojure data structures from Java.

- you either have data classes (no methods, no private fields), or execution classes (no data fields, only static methods), no mixing

- of you stick to the above, you will find that returning void from a method is very difficult.

Congrats, you're doing FP: the gist of it is that it's all about keeping state explicit; if you pass some A in a function, you will return a B at some point, and that's your result. No implicit state.

Of course, we're missing the whole part about side effects, so to add to the above: if you cannot write a unit test without mocking something in your method, you're doing side effects. They should be done only at the "border" of the application, to (maybe) get you the data you need, so you can bring it and process it in the pure core.

And this is where languages like Haskell help: to understand where the side effects are (because they are included in the types) and to prevent mixing them around (which only gets you an untestable mess in the end).

HTH

ff_··on 9-5 Is Out. Try the 1-6 Instead
Then probably sunlight is not your biggest worry. Here in Helsinki lunch walks are a must to catch that small amount of light we get, even if it's -10 or -20.
ff_··on To Serve Man, with Software
I used to think that tech was only "means to an end", and in general "ethics-less".

But then I read "Do Artifacts Have Politics?", and changed my mind. Everyone in tech should read this: https://www.cc.gatech.edu/~beki/cs4001/Winner.pdf

ff_··on Clojure Design Patterns
There's no "dependency" per se, but in practice most of the community still uses bower.

There's an effort to make something better and on the same vibe as Haskell's `stack`, which is `psc-package` [1].

I switched to it for all new projects, and while it still has some rough edges, I don't really miss bower.

[1]: https://github.com/purescript/psc-package

ff_··on Clojure Design Patterns
Try PureScript! [1]

Haskell-like (but taking away some of the pain points), for the frontend, compiles to very readable javascript.

[1]: http://www.purescript.org/

ff_··on Swagger is now the OpenAPI Specification
What's "bad" in:

1. Having strong and documented boundaries at API level

2. Being able to generate clients from a server spec, so I don't have to write interop code anymore.

3. Being able to generate server client from a design document (the spec) - I did it just last week, and it works magically. Should I do it by hand?

Swagger is bad only if you use it wrong, like it's the case with SOAP, Java, and other things which have good parts but have been misused so many times people got pissed of them.

ff_··on Firefox Multi-Account Containers
I LOVE this feature, but it has only one problem: when I'm in a container and I press Ctrl+T (new tab), the new tab opens in the default container. This doesn't make sense, I want it to stay in the same container.

This was also discussed in the issue tracker, in a now closed issue, in which the intuitive behaviour (staying in the same container) was proposed, but got sidetracked and in the end implemented something totally different.

So if anyone from Firefox is listening here: please PLEASE consider implementing Ctrl+T in the same container :)

ff_··on Kubernetes at GitHub
+1 on envsubst, it's the minimal solution to the problem of templating kubernetes (of course YMMV, we are a small team and don't need more complex stuff)
ff_··on SoundCloud is here to stay
YES! This is the model we should move to in music, media, and arts in general.

I think the subscription model is the most valid, but what happens e.g. with Spotify is that most of my subscription goes to a small artists I don't care about.

The right way to do it is: take my subscription, take a cut, split the rest to the artists that I listened to based on the amount of playing time I put on each of them.

ff_··on Hacker News News Feed for the Mac Touch Bar
I remapped my Caps to Esc, and recommend doing the same; as a vim user it's great.
ff_··on The Re-Frame Guide: Front-End Architecture in Clojure
Tl;dr: yes.

In practice, it depends, mostly on the size of your app. It's one of the cases in which TodoMVC is too small to make the framework shine properly. You're going to love it especially when your app starts to get bigger (and the complexity of "real world" starts to creep in) and the small complexity of the abstraction that you added in the beginning pays off. This is because you have a framework to put the new stuff in, but it doesn't get in the way.

This is the opposite of what I usually felt with the other js frameworks I worked with (Angular, Backbone, React doesn't count because not really a framework), in which once your application scales in size its complexity terribly increases.

ff_··on Ask HN: Who is hiring? (July 2017)
I didn't run this by HR, but I would say it's very likely. Finland in general is very welcoming for this kind of things, so I don't see any obstacle to it.

But please get in touch so we can figure something out! :)

For more info: http://www.migri.fi/working_in_finland/an_employee_and_work/...

ff_··on Ask HN: Who is hiring? (July 2017)
KSF Media | Fullstack Software Engineer | Helsinki, Finland | ONSITE

KSF Media is not a startup, but a 150 years old end-up. Our five newspapers are national, regional and local. Four of them are published in Swedish, the minority language of Finland. Hufvudstadsbladet is our best known brand https://www.hbl.fi. All of our newspaper titles have their corresponding digital brands. Our portfolio includes also brands like Ratata (blogging platform), Faktapp (learning app), plus a few more.

Our digital operations are constantly growing and we are therefore looking for another Fullstack Developer to join our team of 6. Someone that can add technical debt to every layer of our stack ;-) Someone that will help us tame the legacy monoliths (before you ask, it’s Python, PHP, Java, JS, and some more langs) and write some good, reliable, tested, small new services in the clouds. For writing the new stuff we're open to everything as long as you document it and we're able to pair program (currently JS, Python, Clojure, and I’d love to pair program some Haskell too). The position is full-time.

Watch our short pitch about saving the Media Industry and possibly winning Nobel Prizes: https://youtu.be/6Cl92_FYQ8k

More info about the opening here: https://custom.hbl.fi/custom/static/embed/hbl/job-ad.html

Applying:

Humans involved: mail me at fabrizio dot ferrai at ksfmedia dot fi, or DM me at @fabferrai

No humans involved: http://bit.ly/F-kingExcellent

ff_··on Differentiating laptops: How about a decent keyboard? (2015)
New macbook user since 5 months, I totally LOVE the touch bar.

The only problem is the lack of ESC key really, but after you remap it to Caps Lock everything is good again.

ff_··on Google Contributor: Buy an ad removal pass for the web
How is this different from paying for an adblocker? There is lots of good free ones.

I pay publishers I like for their content (buying newspapers, subscriptions, etc) and I don't get why Google should be the middleman in this.

ff_··on A fully functional pixel-perfect Windows 95 application in Electron
It's April 1st :)
ff_··on Clojure for the Brave and True (2015)
This is by far the best book around for learning Clojure from scratch (IMO).

If you always wanted to learn Clojure but never had the time, 2017 is the right year, and Clojure for the Brave and True is your companion. Buy it, or just read it for free on the website.

(Disclaimer: I'm not in any way associated to the book or the author, I'm just super thankful for all the times this book has helped me to learn new things and solve issues :)

ff_··on The Next Five Years of ClojureScript
It's not relevant how many companies are hiring for that, as long as someone is.

Clojure is growing fast, and a complaint I'm hearing consistently lately is that there are not enough clj/s devs around.

ff_··on Ask HN: Are you more likely to apply for a job that discloses salary upfront?
Hey, I live in Finland as well, and this sounds very interesting, I'd love to discuss about it. Shoot me an email :)
ff_··on Ask HN: How much do you earn on average through software freelancing?
How many hours do you work on average per week on your freelance projects?
ff_··on Show HN: Alienslike.us – Vote on what an alien society might be like
It was fun, thanks!

Just this morning I finished reading Solaris (by Stanisław Lem, it's an amazing book about reflecting on "how an alien could look like", 10/10), so I stopped thinking after every question to consider different scenarios possible with either answers.

To me it feels like a great tool to start laying down the plot for your next scifi book ;)

ff_··on Italy’s rarest pasta
Given that I've never been in Grisons, but I heard it only from YT, I would say that it's not very close with Sardo.

I can understand them though, but mostly because I know Italian. (Romansh also sounds to me somewhat Portuguese and Slavic at the same time, it's a very cool language).

ff_··on Italy’s rarest pasta
You're very right, and thanks for the detailed clarification!

I got confused with the terminology, apparently my brain doesn't work well when trying to speak three languages at the same time :)

ff_··on Italy’s rarest pasta
I didn't taste it yet, but texture and preparation affect a lot the taste of pasta, in general.

Also, this is made with semolina flour, which is different (and much better IMHO) from the flour used to make pasta usually (in Italy and in the rest of the world).

ff_··on Italy’s rarest pasta
I speak Sardo, and I studied Latin for 5 years at High School, and I was very bad at it.

So I would say that "modern" Sardo (defining the "old" as the first written texts some centuries ago) it's close enough to Latin to see where every word comes from, but definitely too far to give you understanding.

I can understand Spanish though :) (context: we've been in the Spanish Kingdom for like 400 years, and the language have been influenced a lot, many shared words.)

ff_··on Italy’s rarest pasta
As a Sardinian this is the first time ever I hear of this pasta, and I'm truly shocked of how it's made, it really sounds like lots of work.

Now I'm super curious about it, but the preparation in sheep broth and pecorino is one of the best combinations to have with pasta IMHO, very promising.

Btw if you've never been to Sardinia make sure you visit at least once in life, you won't regret it :)

ff_··on Finland: New surveillance law threatens fundamental rights (2015)
Up to date article (5 days ago) on this from the national public-broadcasting company: http://yle.fi/uutiset/osasto/news/working_group_tables_const...
ff_··on Finland: New surveillance law threatens fundamental rights (2015)
Not yet. Altering the constitution is a slow process - fortunately.

The draft/proposal is dated to Jan 2015 [1] (it's in Swedish, sorry), and it was in the works, and came up again today on the newspapers after the Minister of Justice called for a debate on this. Here's an up to date article on this: http://yle.fi/uutiset/osasto/news/working_group_tables_const...

EDIT: add sources.

[1]: http://www.defmin.fi/sv/uppgifter_och_verksamhet/lagstiftnin...

ff_··on Ask HN: What are the cool life hacks for Developer?
+1!

Instead of using Hazel I directly set an "rm -rf ~/Downloads/*" at every restart. This way I only save files when I really move them instead of having them pile up there.

Funny fact: at some point it was mounted in ram, but I couldn't download files larger than half of the ram. :D

← PreviousPage 3 of 5Next →