Skip to content

Instantly share code, notes, and snippets.

@neko-kai
neko-kai / hslua-0.3.4-use-system-lua-instead-of-bundled-lua.patch
Created November 6, 2011 11:41
fix for "unknown symbol`lua_neutralize_longjmp'"
--- hslua.cabal 2011-11-06 13:27:04.508004327 +0200
+++ hslua.cabal2 2011-11-06 13:31:33.935004333 +0200
@@ -16,26 +16,12 @@
The package is standalone: full Lua interpreter version 5.1.4
is distributed in this package as well.
Category: Scripting
-Extra-source-files: src/*.h
+Extra-source-files: src/ntrljmp.h
Library
>>> Unpacking source...
>>> Unpacking arx-libertatis-1.0.tar.xz to /var/tmp/portage/games-rpg/arx-libertatis-1.0/work
>>> Source unpacked in /var/tmp/portage/games-rpg/arx-libertatis-1.0/work
>>> Preparing source in /var/tmp/portage/games-rpg/arx-libertatis-1.0/work/arx-libertatis-1.0 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/games-rpg/arx-libertatis-1.0/work/arx-libertatis-1.0 ...
>>> Working in BUILD_DIR: "/var/tmp/portage/games-rpg/arx-libertatis-1.0/work/arx-libertatis-1.0_build"
cmake --no-warn-unused-cli -C /var/tmp/portage/games-rpg/arx-libertatis-1.0/work/arx-libertatis-1.0_build/gentoo_common_config.cmake -DCMAKE_INSTALL_PREFIX=/usr -DUNITY_BUILD=ON -DBUILD_TOOLS=OFF -DBUILD_CRASHREPORTER=OFF -DGAMESBINDIR=/usr/games/bin -DCMAKE_INSTALL_DATAROOTDIR=/usr/share -DCMAKE_BUILD_TYPE=Gentoo -DCMAKE_INSTALL_DO_STRIP=OFF -DCMAKE_USER_MAKE_RULES_OVERRIDE=/var/tmp/portage/games-rpg/arx-libertatis-1.0/work/arx-libertatis-1.0_build/gentoo_rules.cmake /var/tmp/portage/games-rpg/arx-libe
{-# LANGUAGE CPP, OverloadedStrings #-}
-- | This module handles building multipart/form-data. Example usage:
--
-- > {-# LANGUAGE OverloadedStrings #-}
-- > import Network
-- > import Network.HTTP.Conduit
-- > import Network.HTTP.Conduit.MultipartFormData
-- >
-- > import Data.Text.Encoding as TE
-- >
@neko-kai
neko-kai / ArrowForkDiscardEff.scala
Last active March 12, 2018 16:52
.eff fork+discard function for cats Arrow
//import scalaz._
//import scalaz.syntax.arrow._
//
//def eff[F[_, _]: Arrow, A, B](a: F[A, B])(effFn: F[B, Unit]): F[A, B] = {
// val z = Arrow[F].arr(identity[B]) &&& Arrow[F].arr(identity[B])
//
// a >>> z >>> effFn.second[B].mapsnd(_._1)
//}
@neko-kai
neko-kai / ArrowForkPull.scala
Last active March 12, 2018 16:57
.fork and .pull for cats Arrow and Function1 (`=>`)
import shapeless._
import shapeless.ops.product._
import shapeless.syntax.std.product._
import cats._
import cats.data._
import cats.arrow._
import cats.syntax.applicative._
import cats.syntax.strong._
import cats.syntax.compose._
import cats.syntax.arrow._
@neko-kai
neko-kai / CovariantOverride.scala
Created March 13, 2018 02:23
FlatMap Covariant override in scala
class AbsBuilder[+A] {
type This[+X] <: AbsBuilder[X]
def add: AbsBuilder[A] = this
def flatMap[B](f: A => This[B]): AbsBuilder[B] =
new AbsBuilder[B]
def map[B](f: A => B): AbsBuilder[B] =
@neko-kai
neko-kai / CirceBoilerPlateFinal.scala
Last active January 5, 2021 22:36
Traits for abstracting Circe derivation boilerplate (with type discriminator field)
import io.circe._
import io.circe.generic.decoding.DerivedDecoder
import io.circe.generic.encoding.DerivedObjectEncoder
import io.circe.syntax._
import shapeless._
import io.circe.shapes._
// workaround for scalac bug:
// super constructor cannot be passed a self reference unless parameter is declared by-name
@neko-kai
neko-kai / MonadRandom.scala
Created June 13, 2018 15:56
difference between mtl-style and tagless final style
import cats._
import cats.implicits._
trait MonadRandom[F[_]] {
def getRandom: F[Int]
}
final case class DummyRandom[A](a: A)
final case class RealRandom[A](a: A)
@neko-kai
neko-kai / Day.kt
Last active November 3, 2018 19:56
day-kt
package com.github.kaishh.day
import arrow.*
import arrow.core.*
import arrow.data.*
import arrow.syntax.function.*
import arrow.instances.*
import arrow.typeclasses.*
/**
@neko-kai
neko-kai / StagedInjection.scala
Created August 4, 2018 22:38
Naive effectful instantiation in distage
import distage._
import distage.config._
import com.typesafe.config._
import scala.concurrent.{Await, Future}
import scala.concurrent.duration.Duration
import scala.concurrent.ExecutionContext.global
case class DbConf()
case class MsgQueueConf()