Skip to content

Instantly share code, notes, and snippets.

import java.util.List;
public class str {
private List<String> list;
private String suffix = ".";
public void someMethod(String s){}
@kubo39
kubo39 / async.md
Created March 23, 2013 17:33
非同期プログラミングめも

非同期とか並列とか

いわゆる非同期

2種類考えられる

  • IO多重化(epoll/kqueue/etc..)

read(2)/write(2)が非同期

@paulp
paulp / transcript
Last active December 15, 2015 13:09
scala> class Bippy(xs: List[Int]) extends improving.TypesafeProxy(xs) { def isEmpty = true }
defined class Bippy
scala> val bippy = new Bippy(1 to 10 toList)
bippy: Bippy = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
scala> bippy.slice(3, 7)
[proxy] $line4.$read.$iw.$iw.bippy.slice(3, 7)
res1: List[Int] = List(4, 5, 6, 7)
@xuwei-k
xuwei-k / Plugin.scala
Last active December 15, 2015 14:49
squeryl2scalikejdbc
package squeryl2scalikejdbc
import java.sql.{Types => JavaSqlTypes, Timestamp}
import org.squeryl.internals.{FieldMetaData, PosoMetaData}
import scalikejdbc.mapper.{Column, Table, CodeGenerator, GeneratorConfig}
object Main{
type DataType = Int
type SquerylTable = org.squeryl.Table[_]
@studiomohawk
studiomohawk / five-2013-04-03.md
Created April 3, 2013 00:11
CSS Radar @ Twitter / 2013.04.03 Wednesday Edition

CSS Radar - 2013/04/03

JavaScript(記事ではnode.js)におけるコールバックを命令型、Promisesを関数型と捕らえ、node.jsの多くのAPI、モジュールがコールバックを利用している点が欠点となっている解説をしつつ、関数型のアプローチについて、Promisesを使ったアプローチの利点を紹介。

上記の記事に対して、node.jsのエコシステムの今を支えているのがコールバックではないかという反論。関数型アプローチに比べて命令型、コールバックをつかった場合は未来に発生するべき振る舞いをそれらしく表現できる点が多くのプログラマにとって理解しやすいという利点を紹介している。

@xuwei-k
xuwei-k / LensConverter.scala
Created April 4, 2013 18:36
shapeless and scalaz lens converter
import scalaz.BijectionT.<@>
object LensConverter{
def shapeless2scalaz[A, B](shapelessLens: shapeless.Lens[A, B]): scalaz.Lens[A, B] =
scalaz.LensFamily.lensFamilyg(shapelessLens.set, shapelessLens.get)
def scalaz2shapeless[A, B](scalazLens: scalaz.Lens[A, B]): shapeless.Lens[A, B] =
new shapeless.Lens[A, B]{
@xuwei-k
xuwei-k / build.scala
Created April 10, 2013 03:36
source generators from github
import sbt._
import Keys._
object build extends Build{
def github(org: String, name: String, hash: String): Project = Project(
name, file(name)
).settings(
baseSettings ++ seq(
sourceGenerators in Compile <+= (sourceManaged in Compile){ dir => task{
@okapies
okapies / promises-are-functional.md
Last active August 14, 2023 11:44
翻訳: ”命令型のコールバック、関数型のプロミス: Node が逸した最大の機会” by James Coglan

命令型のコールバック、関数型のプロミス: Node が逸した最大の機会

Original: "Callbacks are imperative, promises are functional: Node's biggest missed opportunity" by James Coglan

Translated by Yuta Okamoto (@okapies)

Note

  • 訳者は JavaScript や Node.js に関する専門知識がほとんどありません。識者のツッコミをお待ちしております。「◯◯が分からない」等も歓迎です。
  • 元記事から構成を一部変更しています。また、関数型プログラミングに関する記述のうち、議論の骨子に絡まないものは省略しています。
@halcat0x15a
halcat0x15a / gist:5376994
Created April 13, 2013 04:57
Maybe Monad with Church Encoding in Scala
import scala.language.higherKinds
import scala.language.implicitConversions
import scala.language.reflectiveCalls
trait Forall[M[_]] {
def apply[A]: M[A]
}
object Maybe {
@vvakame
vvakame / enchant.js.d.ts
Created April 13, 2013 08:57
結論:enchant.js を書くのに TypeScript を使うのは多大な労力(=非TypeScript的コードですべて書く)がかかるためやめたほうがいい。 sample.js を元に sample.ts を作成。 しかし enchant.Class.create を使ってクラスの定義をしているわけではないので必要な初期化処理が動いていないらしく動作しなかった。 enchant.jsをTypeScriptで書くための型定義を結構頑張って書いたんだけどね…。
/**
* Export the library classes globally. When no arguments are given, all classes defined in enchant.js as well as all classes defined in plugins will be exported. When more than one argument is given, by default only classes defined in enchant.js will be exported. When you wish to export plugin classes you must explicitly deliver the plugin identifiers as arguments.
*/
declare module enchant {
declare function ();
declare function (moduleName:string);