HN user

maddening

274 karma
Posts18
Comments27
View on HN
kubuszok.com 8mo ago

Sanely-automatic derivation – fixing type classes derivation UX in Scala

maddening
7pts1
github.com 2y ago

Chimney 0.8.0-M1 – type mapping library for Scala released for Scala 3

maddening
1pts0
leanpub.com 5y ago

Things you need to know about JVM (that matter in Scala) (eBook released)

maddening
8pts2
kubuszok.com 7y ago

IO Monad (in Scala) – which, why and how to how

maddening
2pts0
kubuszok.com 7y ago

AST playground: recursion schemes and recursive data

maddening
3pts0
kubuszok.com 7y ago

From String to AST: Parsing (Scala)

maddening
2pts0
kubuszok.com 7y ago

ADT through the looking glass – lenses, prisms and other optics in Scala

maddening
78pts16
kubuszok.com 7y ago

Different ways to understand a monad

maddening
2pts0
kubuszok.com 7y ago

The F-words: functor and friends

maddening
4pts0
kubuszok.com 7y ago

Algebras we love

maddening
175pts33
kubuszok.com 7y ago

Introduction to mathematical relations

maddening
3pts0
kubuszok.com 7y ago

In the beginning, there was the empty set

maddening
2pts0
kubuszok.com 7y ago

Kinds of types in Scala, part 3: embedding some more info in a type

maddening
2pts0
kubuszok.com 7y ago

Kinds of types in Scala: take type, return type or type parameters

maddening
62pts0
kubuszok.com 7y ago

Scala: understanding types and type system

maddening
1pts0
kubuszok.com 8y ago

Scala: Understanding implicits

maddening
135pts71
kubuszok.com 8y ago

Implicits, type classes and extension methods, part 3

maddening
1pts0
kubuszok.com 8y ago

Implicits, type classes and extension methods, part 1: with type classes in mind

maddening
1pts0

Typelevel and ZIO take completely different approach to certain things. Even if everyone would be holding hands and singing, they would still argue in discussions on GH.

Typelevel and Cats wants everything to be a pluggable library. Everything should be configurable, hardcoding things is avoided. You are in charge of every single effect.

ZIO is basically a type-safe, compile-time, IO-monad-based framework, managing error handling, side effects and dependency injection. It is opinionated, and libraries integrating with it share its opinions. Some people consider this a FP, type safe Spring Framework.

Both can be integrated if you know what you're doing. Both have plenty of people to push things forward. At this point history between JDG and TL is irrelevant to the community. People involved in past dramas still don't like each others but they don't interact with each other during development, so just don't use Twitter and you won't even notice.

Macbooks from 2019 have 4 thunderbolts 3 ports and 1 mini jack. And that's all.

If you want to power the device, you do it through a thunderbold. If you want to connect a USB that is not USB C, you have to use adapter and/or USB HUB. So you would have to connect to your USB through adapter/hub, and if for some reason whatever installer wouldn't support this you would be screwed (but I guess most of the time it would be doable, just inconvenient).

Seeing how .Net is being sold to enterprises without such libraries I would say that they exist because business happily buys into any promise that something increases productivity even if that is just salesmen's lies. But it requires good salesmen not good engineers.

Why Java devs automatically assume that every new language is made to overthrow Java/C#? They might still to provide better development in a particular domain. Go or Python or JacaScript are good at rivaling Java at mainstream language, and so what?

2.14 was supposed to be a stepping stone between 2 and 3, released only so that migration could be easier. They skipped it because apparently source code differences between valid 2.13 and 3.0 aren't that great. From what I saw it is mostly about migrating macros, the rest most likely would still work.

Previous maintainer left EPFL so nothing was happening there. But Scala Center took over the project so they will start maintaining it. AFAIR snnouncement was on Gitter by the same guy who maintains Scala.js. I guess it will take some time for them to catch up with the rest.

More than 3 years. I've been using it for that long but it was pretty functional and full even 3 years ago.

Before I go to a mechanic I am checking their review online.

Before I hire an artist that would make some graphics for me I would ask for a portfolio. Nobody in graphic industry is surprised when someone asks to show some of their works.

Same with IT, you would try to do some background checking. See if there was some recommendations from person's past employers or some sort of porfolio.

Should it be everything I would use to evaluate person? Hell no! But if I can see someone's actual achievements it gives me much more insight and confidence about how I am evaluating the candidate.

Would I miss some good candidates? Probably. But the strategy is not about not missing all good candidates, it is about ruling the bad ones. E.g. in Germany if you were hired, everyone though that you were ok, but then they found out that you are shitty, they cannot just fire you. They have to give you head ups that you are underperforming, then they have to make a formal evaluation to make sure that it isn't about them oppressing you and finally they are obligated to propose a recovery plan for you - only after you fuck it up the company is allowed to fire you. So you might end up with a guy not doing enything for 6 months. In such perspective it can be better to miss 2 good candidates than to hire one bad one.

I'm using Joplin.

I cannot share notes using URL, because notes are encrypted on a cloud drive in way that prevents even the cloud providers from reading them, but that is the only inconvenience I have for having 100% control over my data.

Personally, I think giving numbers (like 0-12k/month in 7 months) is useless if it is not put in some context.

Several times I googled what should be expected amount of visits to see if I am doing ok or not. Result? It is kinda disheartening to see that after pouring a lot of love, getting rather nice feedback about articles etc, you see that you are getting e.g. 2k visits a month, while someone states that is "should be about 1k visits... a day". And you put some effort into marketing your content!

Thing is, if you look at the amount of searches of the topics you cover, you might find that the person who posted such advice caters to 20x as large audience as you, so that 2k/month might be a really good result! But to see that, you have to put the numbers in some context instead of looking at the absolute numbers. If we applied this to e.g. youtubers we could conclude, that random gameplay streamer does a several times better job than a science channel author.

Algebras we love 8 years ago

My humble experience shows me that this might be too much of a digression for many people. Graphs as a visual example of e.g. dependencies or data structures are fine. But if you try to explain something with them you assumes that reader had some prior exposition to graph theory and has some intuitions already. Since I cannot assume they have these intuitions I would have to build them with other examples and the digression could be longer than a paragraphs.

Abstractions are something that works great when you worked enough with some class of specific problems, that your brain notices common parts on its own. If you try to rush it... you get another tutorial when author is enthusiastic and positive and readers feel ashamed and stupid that they "couldn't get it". I'd rather avoid that. If they get foundations, play with them and gain some confidence, they can move on to more challenging and generic definitions.

Algebras we love 8 years ago

If something is intuitive only at the end of 4-5 month long course, it is not intuitive and I would not show it during any sort of "introduction to...". Definition requiring former explanation of a whole graph theory would be something I would put at the end... of an article about graph theory. I cannot make many assumptions about my readers, and CS magna cum laude graduate is definitely not one of them (why would they need the article then?).

I'd like to see a essay about starting a business outside the SV. Maybe even outside a startup hippie communities in general.

* no investors interested in pre-seed phase - they all say that you should call them when you are already profitable

* nobody interested in being cofounder - cold cash only

* clients saying that they like your MVP - but you unknown, so they won't buy the product anyway

I don't mean that in SV things are magically happening on its own, but sometimes I have an impression that anywhere else you have to be twice as bold and twice as careful to get 1/10th of a result... Yet they are written in a way that suggest that you can easily reproduce SV results everywhere.

Well, I know people working not only in Berlin, but also in USA, just not in SF. One blockchain startup from Utah wanted to develop some advanced stuff, got investors hyped, ICO and stuff.

They paid their employers quite well, really good rates. All of programmers (besides 2 founders I believe) are contractors - no equity. They negotiated their hourly rates pretty high, because they knew that even if it will be a great success, they won't get anything else than a salary.

I believe that equity is mostly SF thing.

One of my friends works in a startup in Berlin where he was offered equity as one of the founders (10th engender or sth like that). Chances that he will be able to liquidate them in foreseeable future is non existing.

Nobody else that I know was offered an equity, even though quite a lot of my friends work for well funded startups. I worked in some and nobody offered me anything else but a salary.

If I relocated near SF? Sure, there would be a possibility. If I was a rockstar and one of first 5 cofounders? Also yes, but I am not famous.

I am really skeptical about any such post, as I saw myself that some strategies that works in Silicon Valley do not work anywhere else and I am not into moving to the most spoiled IT region in the world.

To be honest I didn't knew that Swagger could generate API - still i wouldn't use anything that generates code from some description (attempts I heard of didn't worked out well in the past).

In projects I worked in Swagger was used to generate callable API from existing implementation: add annotations (which are ugly :/, especially in Scala, where such javaism hurts eyes even more), generate json, open it in Swagger UI and let devs play with API.

What hurt me recently was 3.0 release - basePath got broken so, I got calls generated with double slash (`host//api/call` etc.), and oauth2 is completely broken and I cannot authenticate requests. 2.0 works with no issues, though I find it sad that the vanilla version I downloaded uses hardcoded client_id and client_secret.

I've worked for 2 corporations - each time I ended up tired, burnt out and devoid of any social life.

They delivered a lot of perks - money, sport pass, private health care - but in exchange created a very stressful workplace filled with meetings, performance reviews and many people who didn't bother to help when I struggled with some part of project I was not familiar with. I've gained 20kg in a year, was nearly depressed and hated myself for working there. I hated how with all buzzwords and bullshit smiled managers made me fill guilty that I don't sit there more than 8h a day and that I were slower than people who had 12 times (literally!) more experience than I did.

Now I work remotely for startup on B2B. My wage is bit lower, I have no medical and sport perk but finally I have enough sleep and enough time to take care of myself. I often go out and meet my friends as often as I can. I am finally rested enough to workout and I feel my life improve each day.

Whether corporate life makes one shine or feel miserable is a matter of particular company, manager, team, stack and several other factors. Some people are truly happy for being there, some, like me and most of my friends, promise themselves to never ever work there again.

Several solutions.

First I can think of: don't create situations where error can happen. Compile with exceptions turned off. Out of memory? Terminate the process/thread.

Another: create your objects using some factory, make constructor empty and initialize class by said factory once instance is already created (perhaps recursively instantiating its members). This way all error generating code will be moved outside of constructor.

See how Google approach it: https://google-styleguide.googlecode.com/svn/trunk/cppguide....

I prefer full quote from Knuth:

    "Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%."
I have the problems with many happy-coders that they only remember the part about about not optimizing early and often forget that part when you should measure performance, find bottlenecks and get rid of them.

It can be solved with a right branch naming policy. E.g. where I work we usually name branches like "wp/BTS-number/1" for first attempt to do the BTS-number task, "wp/BTS-number/2" when we somehow need to try another approach or rebase or squash history, "wp/BTS-number/3" for next attempt and so on.

But its a global policy so "wp" and "wp/BTS-number" will always be a folder, and conflicts should never happen.

I talked with some of my female friend who were studying CS, and asked them why they many of them gave up on programming and moved on to management or so other non-technical position.

The answer was that programming was boring and exhausting. From what I understand being code monkey who spends 40 hours a week debugging, writing crap code and checking tests with the most repetitive and non-creative manner doesn't gave them as much sense of an achievement as it gives to some men. Hell, I have doing that kind of job and only push on due to money and fact that 95% jobs in the area looks exactly like that. (And the rest 5% requires you tho know right people.)

I would say that there is relatively little of masochist women who would want to debug that race condition hell in C++/Java. There you have to endure a lot of frustration before reaching a (short) moment of satisfaction. On the other hand in some Rails startups that I know, where effect of your work was immediate and one didn't felt that she was hitting the wall all the time there was a lot more of girl programmers - about a half of the team. But there are very few of such startups in my neighborhood. All in all I've got more men around.

TL;DL - women are less of a masochist when it comes to frustrating jobs.