HNHacker News
TopNewBestAskShowJobs

schwurb

148 karma · joined November 12, 2018

submissionscomments
schwurb··on What ChatGPT can't do
That "Show your steps"-tipp is great, will try it out! Any other tipps for getting more correct (I know that LLMs are essentially autocomplete) output?

Additionally: I wonder whether instructions like "think carefully" or "You are an software engineering interviewee at Google." change anything. It feels like a prime candidate for magic thinking, but I do not understand LLMs well enough, such prompts could well improve the answer somehow.

schwurb··on Why I am learning category theory
I find CT highly fascinating, worked through parts of 7 Sketches in Composability and have a functional programming background. I see the appeal, but I came to the conclusion that my time is better spent observing, learning about and designing with abstractions like monads, applicatives and so on rather than to learn the theory behind it.

There seems to be a tiny handful of people that can use category theory as a resource to craft something relevant to software (the stereotypical example in my mind being Edward Kmett of Haskell Fame), but I am certainly not one of them, and that is not something that would change with learning more Category Theory (whatever that might mean: Proving some theorems, discovering more categories, ...)

To the author: I am looking forward to a retrospective at a later time. I wish you a good journey, happy diagram-chasing!

schwurb··on Ask HN: Tipps for establishing feedback culture (task allocation and growth)
Thank you! I knew about psychological safety, but the other points are new to me, will check them out.
schwurb··on Unified theory of documentation systems
Perfect timing! Last week I struggled to write documentation that would leave me satisfied - this framework explains why: I tried to write a reference, how-to and explanation at the same time. And it also offers the solution: Split it into three parts (create them if they don't exist yet).
schwurb··on The Lazy Monad
What you are describing is a Functor, one the two other important Haskell "design-patterns" (Functor - Applicative - Monad). "Mappable" is a good name insofar as it is more familiar to new folks. However, I like the mathematical name as it forces one to embrace the interface as what it is, as opposed to thinking about Functors as collection of data that can be mapped over. Often this is true, but not always.

A monad could be described as "sequencable/chainable", but that metaphor is quickly breaking down as there as so many ways in which monads show up.

schwurb··on The Lazy Monad
I am gonna be heavily opinionated, take my words with a bit of salt ;)

Here it goes:

1. One understood monads when one is able to write a monadic interface that behaves like any intermediate haskell would expect it to behave. This is not a hard task.

2. Screw the abstract stuff. While fascinating, really few people understand concepts going from abstract to concrete rather than the other way around. And don't get me wrong, I don't think these kind of people are better theorists or problem solvers, they just have to seem a special relationship with symbols. If you are one of those people, you would likely know - in any case, I would encourage to write 3-5 examples of monads in Haskell or Java or JavaScript or whatever language suits you and go from there.

schwurb··on The Lazy Monad
I offer a simple explanation elsewhere in this thread: https://news.ycombinator.com/item?id=31652379
schwurb··on The Lazy Monad
For 99% of people, monads are best understood by a) using and writing many monadic interfaces and b) forgetting about the whole mathematical background.

What a monad offers is: "1: Do A. After A is done, you can inspect the result of A and do either B or C. 2: You can chain monads of the same type together.". Sounds easy? It is because it is!

The big fuzz about Monads is mainly because prior to monads, doing IO was akward in Haskell. Monads offered a convenient way to do IO (and other interactions with the outside worlds, such as databases, networking, ...) and turn up basically everywhere. There is nothing stopping one from introducing a monadic interface in OO-World, and it is partly done (i.e. "orElse" or "then") in some domains. However, bigger gain is to be expected in Haskell, since the type checking system forces the developer to deal with monads in a disciplined way.

-----

I admit being guilty of having only the title prior to writing the comment. But even with only having read just the word 'monad' in the title together with 'lazy', I knew the author would describe 1) some way of lazily evaluating one thing after another and 2) some way of combining multiple lazily evaluated things with each other. After skimming, this is what the article is about. As always, the interesting stuff is not about the concept of a monad (which is pretty easy), but about how to model/code 1) and 2) in a specific context (in this instance, being lazy evaluation).

schwurb··on Practical guide to solving hard problems
What you are doing is prototyping. Which is a good thing. However, writing stuff down is also another form of prototyping, which different tradeoffs.

With coding, you are confined to formal syntax and semantics, but if the code (even partially) works, you can be more confident in your design.

With paper, you can plan as high-level as you want, with the danger of being too highlevel and overlooking things.

schwurb··on Failing in Haskell
> After reading one Python book you can write solid programs in Python.

Okay, so our goal is to write a solid program. Let's see...

> Not so in Haskell, you would need to understand also the extensions of the language which are popular

You can simply go with vanilla Haskell2010. Dealing with strings will be a bit cumbersome, dealing with records will be a bit cumbersome, but you are still at 50% the boilerplate of an average java codebase.

> and understand the best practices (what to use to compose I/O and in which context for example)

No! This is what I was aiming at: You don't have to understand these best practises to have a solid program. Throw everything into one massive do-Block and the resulting program will be at least as solid as the solid python program.

> That and understand how to work with complex types in libraries

I concur that Python documentation is heaps better than Haskell documentation, although we are slowly improving. That said, I think the work is not harder: Learning how to speak with a postgres database or do numerical tasks requires times, period. What is different to Python is that the time spent chasing runtime errors is spent chasing compile errors in Haskell.

Another user linked this comparison of numpy vs. the Haskell equivalent, hmatric. It does not look more complicated in my opinion: https://pechersky.github.io/haskell-numpy-docs/

schwurb··on Failing in Haskell
Adressing the whitespread conception "It is hard to programm in Haskell because it is pure":

If you can write python, you can write Haskell. Don't believe me?

1. Write your program completely in the IO Monad, in a huge do-block

2. Factor out as much pure functionality as possible (= Have as little code in your big IO-programm as possible.)

Start at 1. and iterate 2. as many times as you please. It will already be a program that prevents many traps that would bite you in other langauges. Haskell knows exactly whether you are looping over an array of strings or an array of chars.

(Why all the buzz about pureness, effects and so on? Well, with Haskell you can design with a high granularity and reliability what sideeffect is caused where. But you are not forced to use that feature.)

Other tipps:

- Build small projects.

- Read as few tutorials on monads as possible. You might even get by with 0.

- The trifecta of Haskell typeclasses are the functor, applicative, monad. I would advise you to not try to understand their mathematical origins, but just look up how the are used. They will crop up naturally when you build even small projects and then they will make sense.

schwurb··on What does it mean to listen on a port?
Great article! Love the story approach.
schwurb··on Ask HN: I am a slow developer. What can I do with this?
Can you exclude that this is a mental health issue? Something like ADHD, autism, sensory overstimulation might lower your productivity in subtle ways. This is also true for some kinds of bodily malfunction.
schwurb··on How to rapidly improve at any programming language (2016)
I came up with this trick (reviewing other PRs, after thinking how I would to it) to speed up learning technology at my working place where we don't have enough man power to do mentoring.
schwurb··on Agile at 20: The Failed Rebellion
> I'm sure there's a lesson there somewhere. There sure is: Having one goal and being able to allocate all/most resources towards that goal. The problem is that this is not sustainable. Times of crisis usually ends and then what? Then we are back at square one with "How do we allocate our scarse resources between these really important 4-5 goals?"

Concluding: It is certainly refreshing how efficient groups can be once a crisis forces all attention towards one single goal. (Perhaps unfortuntately) that is not a reliable (crisises are usually not predictable) nor sustainable (other goals tend to get neglected in crisis mode).

schwurb··on Why smart hardworking people don't become successful (2018)
So does buying more lottery tickets. Surely, the odds at being lucky are better than in playing lottery. However, they are much less predictable than people assume. We tend to systematically overestimate our own influence and underestimate external factors.
schwurb··on Shopify: A StarCraft Inspired Business Strategy
Starcraft saved my A-levels, when I realized that school can be considered a game with points and stuff... Turns out that lecture participation had a great ROI! Now, if my future product will have any success, then part of it will be due to the lessons that SC2 ingrained deep into my fabrics of thinking. Besides the countless hours of fun and memories.
schwurb··on A programmable programming language (2018) [pdf]
You could characterize Racket as THE lisp when it comes to well-behaved and well-researched metaprograming.
schwurb··on A programmable programming language (2018) [pdf]
> #define while if // saves cpu cycles

lol, thanks for the laugh!

schwurb··on Simple Rules ‘Bootstrap’ the Laws of Physics
I feel that the christian God fits this bill especially well, when you look at him a bit more abstractly: He is able to give purpose (does care and is something absolute rather than mending to what one particular human beliefs), is interested in staying in contact with his creation (as opposed to deistic Gods), values existence so high that 1) it should be contiued eternally and 2) not in a replaced, but a renewed form. Many christians, many opinions, but I feel confident in this faith. I can recommend C.S.Lewis, who is great about putting God, heaven, hell in terms that make sense and don't reek of religious fanaticism.

I would be Buddhist if I would not be christian, but I am glad I can be christian. If what I believe is true, then boy are we lucky!

schwurb··on Simple Rules ‘Bootstrap’ the Laws of Physics
I concluded this early in my life, which makes me a minority amongst beliefers. I believe in God and that creatìon shows occasional traces of his genious, but I don't think they are unambigous enough to warrant the christian god as a necessary conclusion.
schwurb··on Belgian child prodigy drops out of university aged 9
If there was no foul play - good. Who cares about breaking a stupid record? That kid won't be able to break records all his life, so good on him dealing with a "failed" milestone now. We have way too many prodigies milked for their parents' ego.
schwurb··on Things to Read to Become a Better Human and Developer
Improvement treadmill can be seen as a subtle form of procrastination.
schwurb··on Vim 101: How to Start Using the Text Editor for Developers
No need to give up on your favorite text editor: Spacemacs offers all the amazing IDE capabilities (Vimscript is simply a bad language compared to elisp) while still being one of the best VI-emulators around.
schwurb··on Vim 101: How to Start Using the Text Editor for Developers
I use it and love every bit. I also does not feel sluggish to me, despite being normaly sensitive to anything in the way of fast development cycles.
schwurb··on My Vision of D’s Future
Add Flutter to the bunch - having a fast interpreter is especially pleasing when the result is an instant visual change the app running on an emulated android phone.
schwurb··on Suicide Data Reveal New Intervention Spots, Such as Motels and Animal Shelters
> But when it is addressed directly, the focus turns to the victim and trying to identify what is wrong with them, not with the group.

This is because it is the only effective way to change anything. The victim has to recognize their situation, develop the will to escape / change it, and then do concrete steps. Of course, not alone. You are not guilty of anything, but it is still your responsability to change your life if you want it. It is hard and shitty, but nobody will change because you feel shitty.

It is the same as with every other difficult situation. I could stagnate my whole life, complaining about nobody helped me when I first voiced suicidal thoughts at age 10. I was fucking hard and many people failed me, including me. I did not have a childhood. I see every right to complain and blame others. But who will this help? No one. I had to change something. Because my environment is the last thing that will change.

> I want to raise awareness and stop this from happening to anyone else.

I will be blunt: This is not an effective way of achieving this goal. Much more effective would be to 1) get help (helps you to tackle those problems in your environment) and 2) join an organization that does deal with bullying (they likely know how to reach more people more effectively).

schwurb··on Suicide Data Reveal New Intervention Spots, Such as Motels and Animal Shelters
Sure thing! In all honesty, that was something that I heart from my mother. (She works in psychology, but she is not an academic. So I should probably retract the "well" in "well-researched") But a quick research turned up these two sources:

General info about Victims, Bullies, Victim-Bullies

https://www.apa.org/news/press/releases/2010/07/bully-victim

More on point: In-depth about who is more likely to become a victim

http://www.euro.who.int/__data/assets/pdf_file/0008/98783/E9...

schwurb··on Suicide Data Reveal New Intervention Spots, Such as Motels and Animal Shelters
Hey there! I am sorry for what you have been through so far. Since I am to go soon, I will keep it short:

1) I heavily suggest going into counceling. The change of behaviour and self concept needed might be too much to manage on your own.

2) It is a unfortunate, but well-researched phenomenon that perpetuators go for a certain type of personality that expresses itself by way of talking an non-verbal communication. There is also such a thing as bad, bad luck, but social dynamics also play a role. This is an area where you can likely improve aswell: Recognizing your feelings, others feeling and actions, and what is okay and not okay for you,

Gotta go now, all the best tho! Your problems seem treatable to me, but it might take time. You can do this.

schwurb··on Suicide Data Reveal New Intervention Spots, Such as Motels and Animal Shelters
Thank you! It was absurdly much pain, esp. considering it started at age 9. It is not a place where I wish anybody, and I can't imagine I will ever suffer anything comparable. But good news: I decided to live (religion played and plays a role, with interesting implications on "Good God vs Suffering"), at 18, I felt like I have a fresh start, at 23 I got therapy, now at my mid-twenties I am able to deal with my episodes well, stopping most of them before they begin (comes down to stress management).

It was hell. But I enjoy my life now, and I learned many lessons in that time. My past is part of me and I can use even my past for good. I try to be a role model for the people that deal with depression around me (and maybe later academia). There is very good news for people with depression: Once one decides to get help, there is a lot of well-researched therapy (& medications if needed) around. Chances of recovery and depression management are high. And it is a field where great progress is made.

Thank you for you wishes! I can only encourage anyone with depression and similar problems to seek help - it does not bother the therapists and can improve life in ways not imaginable!

Page 1 of 4Next →