Skip to content

Instantly share code, notes, and snippets.

View nmcb's full-sized avatar

nmc.borst nmcb

View GitHub Profile
/** Brian Beckman */
"we want functions to live inside monoids and data [and side effects] to live inside monads"
-- youtube (Some interview by Charles?)
/** protobuf:marco:confirmative:6 */
/** floating point operations in base 2 are incomparable */
0.1 + 0.1 == 0.2
0.1 + 0.2 == 0.3 // true ?
0.2 + 0.2 == 0.4
/** floating point operations in base 10 are comparable */
type Amount = BigDecimal
val Amount = BigDecimal
## Twitter
An excerpt from the play Waiting for Godot, by Samuel Beckett, writen in 1953.
Estragon: In the meantime let us try and converse calmly, since we are incapable of keeping silent.
Vladimir: You are right, we’re inexhaustible.
Estragon: It’s so we won’t think.
Vladimir: We have that excuse.
Estragon: It’s so we won’t hear.
Vladimir: We have our reasons.
object SessionTypes {
import scala.language.higherKinds
import scala.language.implicitConversions
type Receiver = String
type Address = String
type Content = String
case class Parcel[+S<:State](content: Content, receiver: Receiver, address: Address)
2016-05-31, from memory.
Your edit did remind me about an account by Ron Kersic though, a former
colleague of me at CapGemini in 2003. Kersic was a student of Edsger Wybe
Dijkstra in Houston, TX. I'll tell you his story, not because there is
some intrinsic lesson to be taken from it, just caring through sharing,
nothing more nor less.
Around 1995, Ron Kersic, who studied CS at the the Technical University of
Eindhoven, decided that he would try to graduate under E.W. Dijkstra's
sealed trait State
final class Start extends State
final class Step1 extends State
final class Step2 extends State
final class Stop extends State
trait Request
case class Req1(s: String) extends Request
case class Req2(s: String) extends Request
~ ∴ rm -rf bar/
~ ∴ activator new bar play-swagger-service
Fetching the latest list of templates...
OK, application "bar" is being created using the "play-swagger-service" template.
No activator-launch-*.jar in /usr/local/Cellar/typesafe-activator/1.3.7/libexec/libexec
No activator-launch-*.jar in /usr/local/Cellar/typesafe-activator/1.3.7/libexec/libexec
To run "bar" from the command line, "cd bar" then:

Shared at twitter: 2016-03-29

  • 01/19 So true, almost feel guilty right now. Have been silent about this during the lambdaconf twitter storm for too long
  • 02/19 Reason: I totally can see Yarvin's added value when sharing his thoughts about Urbit. Independent of his alter ego Moldbug.
  • 03/19 But: I am scared that it is a vulnarable position should the "group" decide it to be a-moral.
  • 04/19 Do I agree with Moldbug? I don't know. Am I afraid of Moldbugs memes? Absolutely. Do I respect Yarvin's computing science work. You bet!
  • 05/19 Am I superstitious when I think that Yarvin's communication will "leak" Moldbug's memes? I hope so. But talking about the content:
  • 06/19 If I had the money, the time, the CS background to understand, I would want to know more about his Urbit thoughts.
  • 07/19 I would go to lambdaconf...
  • 08/19 I have non of those three, I'll still watch the youtube video. A 100 times probably.
@nmcb
nmcb / Emitter.scala
Created March 16, 2016 01:32
Emitter Monad
import Emitter._
import scala.annotation.tailrec
import scala.concurrent.Future._
import scala.concurrent.{ExecutionContext, Future}
object Emitter {
type Event[A] = Future[Option[(A, Emitter[A])]]
case object Zero extends Emitter[Nothing] {
nmcb 16:08
no as in; no it is not ’sufficient’ for the method
to be a primitively recursive function? currently
[i see as `sufficient` for tail call optimisition]:
1) [the recursive method being] final
2) [recursive calls in the implementation being in] tail position.
paulp 16:46
What makes you think there is a link between