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

Geneva | Full Time | Senior Web Engineer, Senior Android Engineer, Senior Product Designer | NYC and REMOTE | https://www.genevachat.com/

Geneva is an early-stage startup based in NYC building a new kind of social network — where privacy is respected and ads are a thing of the past. We unite the best features of group messaging apps and social platforms, creating a modern digital space where you can have conversations with all the groups you care about. We are an intellectually curious, driven, and results-oriented team with a track record of building successful businesses, backed by proven investors.

Technologies that we use: TypeScript, React, GQL, Redux-Saga, Cypress, Enzyme, Kotlin, Dagger

To apply: https://boards.greenhouse.io/geneva


nice, i'll use this with my significant other to help debug stuff while we're both at work. way better than a screenshare.


Originate | Full-Time | NYC, SF, LA, Vegas, Boston, OC

We are a 100+ team of engineers, designers, and entrepreneurs. I am personally looking for a few new members on my R&D team, but we are also hiring full time engineering positions. Stacks: Scala, Node, Rails, iOS, and Android.

Perks:

* 20% time

* Work on many different projects. Average time for an engineer on a project is between 2 and 6 months.

* An engineering team that cares a lot about process and quality. Heavy focus on code reviews and testing.

* Flexible hours

more info: http://originate.com/

job listings: https://boards.greenhouse.io/originate


we just got a new office for our NY team, it's sweet. roof terrace forever.


+1, our new york team is always looking for great developers at any level. bonus points if you're into FP √√√


yeah, it is still a similar amount of overhead in typing


Actually it's not. Only the primitive readers have similar "overhead" as with the implicits approach. Most of the readers are defined by mapping or flatMapping over the primitives (either explicitly or with comprehensions). With the implicits approach all of the "injected" methods need to declare the dependency via the implicit parameter. With the reader approach, only the primitives have to declare it. Compare the implicits version of UserInfo to the reader version. UserRepository doesn't appear anywhere in the signatures of the reader version.


in general your repository functions will be wrapped in some monad, whether it's Reader/Maybe/List doesn't really matter as far as the for comprehension is concerned.


Yeah, I guess that helps a little since Scala's for comprehensions let you mix monads. (Which, for the record, Haskell's otherwise similar do notation doesn't seem to allow.)


Technically, Scala's for comprehensions don't let you mix monads either, but implicit conversions make it work in some cases. For example, there's an implicit conversion from Option to Iterable so the Option (Maybe) and List monads can be mixed. It's really more a matter of Scala's type system allowing it. The Scala compiler just re-writes comprehensions into equivalent higher-order function application.


Cool thanks, didn't realize it was due to implicits. Here are my tests, for the record.

Works in Scala:

    for {a <- Seq(Some(1), None, Some(3)); b <- a} yield b
Doesn't work in Haskell:

    do a <- [Just 1, Nothing, Just 3]; b <- a; return b


woh, awesome... and that's all real time?


All the DOM is synced in real time.


so comprehensive!

i wouldn't mind a tl;dr ;?j


Coroutines are functions with bookmarks to remind them where they last left off. A bookmarked infinite loop permits a concise implementation of things like event processing loops.


perhaps the easiest tl;dr is to try: http://syzygy.st/javascript-coroutines/#demo

but as for an explanation: it turns out coroutines let you "invert" memory/variable state into control/flow state!


Nice explanation, thank you. I was indeed wondering if having something like a statefull procedure (if I can call it this way, this is a fairly new concept to me) wouldn't make the code more complex; I didn't actually notice that the state is already there, it was just moved to another place.


ooh nice, never seen anyone do something clever using that information before.

o/\o


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

Search: