Hacker Newsnew | past | comments | ask | show | jobs | submit | tominated's commentslogin

Cancerous tumours will continue to grow if any cancer cells are left - surgery is usually necessary but won't cure it. Glioblastoma are some of the most aggressive brain tumours on top of that.


I've read through maybe half and doubt you'll find it useful for Rust development. If you're interested in learning a dependently typed language it is fantastic though.


Actually the dependent type view gives clarity to thinking of type level functions, like container types parameterized over an element type.


I took up film photography after catching up with a friend that was in to it. They shared some photos from when we met up and there was such a sense of nostalgia to them. I did some research and found a camera that fit what I wanted (I ended up with an Olympus OM-2n), and once I got one from ebay I just started going and walking around my neighbourhood while trying to look with a more critical eye than I usually would. When my first roll came back I was hooked.

I tried digital photography quite a while back but it never stuck - I think the limitations of film (limited shots, fixed ISO for the whole roll, no way to review until you develop it) make it so much more compelling for me - I've stuck with it for longer than most other hobbies I've tried. I end up shooting around 5-10 rolls a month, which admittedly gets pricey. I desperately needed a hobby outside of tech and this has been such a nice way to get away from a screen and appreciate my environment.


I studied photography and the freedom you get from digital photos has been gradually eroding my critical eye. Starting yourself off with film was a great decision.


If you have WebGPU compute support available, you'd probably wanna go straight to using WebGPU instead of WebGL for rendering too. But I don't see why it wouldn't be possible to use the result in WebGL afterwards - there's probably going to be a bit of data conversion involved though


I still have my N9 lying around somewhere - had to get the sim tray replaced two or three times but otherwise I loved it. How did you update the security certificates? I tried to boot mine up a while back but it was basically unusable on the web because of HTTPS.


I haven't updated the security certificates so far, bit I don't think that most of the TLS connection issues are due to expired CA certificates in the certificate bundle. I believe it's because it can't negotiate a mutually agreed upon cipher.

It still works with a few websites like this one. In fact, I'm using my N9 to post this comment :-).


Not quite - think of the functor as a container for the recursive field, not the values attached to leaves. The leaf is your base recursive case and doesn't have a value to map over. Having your functor instance map over this recursive field is what allows you to write a non-recursive function that expects the field to have the already processed value from it's children!

And yeah, the compiler can derive the functor instance! I don't know the mechanism for how it works but I think it might assume the last type parameter is the 'container' field (think the values in a list or maybe)

It's not in the standard lib, but you can find a few implementations (it's usually called cata for catamorphism) available on hackage. I have used recursion-schemes and it works pretty well.

I learned about this stuff via this excellent blog series: https://blog.sumtypeofway.com/posts/introduction-to-recursio...


I had chemo for a brain tumour when I was 11 years old, and while it certainly affected my thinking during the treatment and maybe a few years afterwards, you wouldn’t be able to tell now (15y later). The brain is amazingly adaptable and as long as you stay learning and busy you’ll be fine in the long run. I’ve been working as a software engineer for 8 years now with no issues


A little off topic, but Racket is definitely used by Naughty Dog in their games. Here's a talk they did a while back https://www.youtube.com/watch?v=oSmqbnhHp1c


Given the history of Lisp & Naughty Dog, I wouldn't have expected anything else. Hadn't seen that video yet though, thank you!


The do block syntax is actually just a syntax sugar for the `bind` function (also written `>>=`). The above would de-sugar to something like this (I may have syntax wrong):

  getData >>= \a ->
  getMoreData a >>= \b ->
  getMoreData2 b >>= \c ->
  getEvenMoreData a c >>= \d ->
  print d
The type signature of the `bind`/`>>=` function requires that both sides be the same type of monad, so it won't actually typecheck unless all of the get data functions return the same type of monad (future, list, optional, etc).

There's a number of ways to get around this in haskell (monad transformers, free/freer monads, etc) but they're all pretty complicated unless you're pretty familiar with the language.

(Disclaimer I'm probably a little wrong in my description - I'm still learning haskell)


Visio had a line of TVs that we're almost this - they had no TV tuner, minimum UI, a tiny simple remote and just a Chromecast built in. After I had mine for a year it got an automatic update giving it a horrible smart TV UI and they forced you to order a new remote. It's such a shame because it was pretty much perfect for me before this happened, and now they've lost me as a future customer.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: