Skip to content

Instantly share code, notes, and snippets.

View goldeneggg's full-sized avatar

Fuminori Sakamoto goldeneggg

  • 合同会社Practa / Practa LLC (Founder)
  • Japan
  • X @practainc
View GitHub Profile
@goldeneggg
goldeneggg / Aho.scala
Created April 3, 2014 09:43
scalaの可変長引数なメソッドをチェーン呼び出しした場合の挙動
object Aho {
def main(args: Array[String]) {
aaa(1, "2", true)
ddd(1, "2", true)
}
// aaa - ccc, そのまま可変長引数を渡して実行
def aaa(params: Any*) {
println("AAA params[%s] params class[%s]".format(params, params.getClass))
@goldeneggg
goldeneggg / immutableinfraconf.md
Last active August 29, 2015 13:57
Immutable Infrastructure Conference #1 箇条メモ

Immutable Infrastructureが開発プロセスへの与える影響(仮)

  • 不変な、状態を持たない、 廃棄可能な
  • 「状態管理が面倒なら、状態を管理しなければイイ」
    • Chad Fowler
    • 「サーバーを捨てろ」
  • blue green deployment
    • 今まで主流のデプロイ=更新があったプログラムだけ配る
    • よく事故る
  • gemの依存関係が影響してリスタートしたら動かない
@goldeneggg
goldeneggg / docker_md.md
Last active November 26, 2017 08:08
Dockerについての調査まとめ、基本機能+主な特徴+Vagrantの連携 あたり

Dockerについて調べたのでヅラヅラとまとめ + チートシート

概念とか用語とか、とりあえず押さえとくべきもの

  • lxc
    • LXC - Wikipedia
    • OSレベル の仮想化ソフトウェア
      • 完全仮想化(ハードウェアをエミュレート、オーバーヘッド大) - KVM etc
      • 準仮想化(ゲストOSがホストOSのAPIを使用、オーバーヘッド中) - Xen, Hyper-V etc。Virtualboxもこちらか
  • 仮想機械ではなく、個別のプロセスとネットワークスペースを作り出す仮想環境
@goldeneggg
goldeneggg / package_private.scala
Created February 24, 2014 13:13
private var と private[this] var の違い
// private なら、同一クラスの他オブジェクトからアクセス可能
scala> class Hoge (private var aho: Int) { def debug(hoge: Hoge) { println(hoge.aho) } }
defined class Hoge
// private[this] なら、同一クラスの他オブジェクトからアクセス不可
scala> class Huga (private[this] var aho: Int) { def debug(huga: Huga) { println(huga.aho) } }
<console>:7: error: value aho is not a member of Huga
class Huga (private[this] var aho: Int) { def debug(huga: Huga) { println(huga.aho) } }
@goldeneggg
goldeneggg / test.md
Last active August 29, 2015 13:56
githubのmarkdownテスト

太字のテスト

  • インデントレベル0-1、太字、アスタリスク
    • インデントレベル1-1、太字、アスタリスク
    • インデントレベル1-2、太字、アスタリスク
      • インデントレベル2-1、太字、アスタリスク
      • インデントレベル2-2、太字、アスタリスク
    • インデントレベル1-3、太字、アスタリスク
    • インデントレベル1-4、太字、アスタリスク
      • インデントレベル2-3、太字、アスタリスク
  • インデントレベル2-4、太字、アスタリスク
@goldeneggg
goldeneggg / sshconfig
Last active January 3, 2016 06:19
これぐらいトンネル掘っておけばまあ困らんだろ、的sshconfig ついでにsocks proxy立ててinternalなページにもアクセス出来るようにしといた
Host nemui
Hostname setsuzoku.server
User jpshadowapps
LocalForward 16667 irc.na.server:6667 # ircサーバのsshトンネル
LocalForward 13389 win.na.server:3389 # windowsサーバのsshトンネル。RDCで localhost:13389 とかして接続
LocalForward 15900 mac.na.machine:5900 # mac 画面共有のsshトンネル
LocalForward 10022 localhost:22
ProxyCommand ssh [email protected] nc -w 1 %h %p # 多段ssh時の経由サーバ
DynamicForward localhost:10080 # socks proxy
IdentityFile ~/.ssh/nemui_rsa
@goldeneggg
goldeneggg / HogeMain.scala
Created December 14, 2013 04:15
scala コップ本の自作distinctよりもちょっと速い自作distinct
package ssbt
object HogeMain {
def main(args: Array[String]) {
val list = getRandomList(50, 500)
println("----- start distinct1")
repeat(10, repeatDistinct(distinct1[Int], list))
@goldeneggg
goldeneggg / Euler32.scala
Created November 16, 2013 12:02
Project Euler by scala No.32
package ssbt
object Euler32 {
def main(args: Array[String]) {
val permutations = List("1", "2", "3", "4", "5", "6", "7", "8", "9").permutations
val pandigitalProducts = permutations.map(getPandigitalProductList(1, _)).toList.filter(_.size > 0)
println("Answer %s".format(pandigitalProducts.flatten.distinct.sum))
}
@goldeneggg
goldeneggg / Euler24.scala
Created November 6, 2013 15:13
project euler 24
package ssbt
object Euler24 {
def main(args: Array[String]) {
val result = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9).permutations.zipWithIndex.filter(_._2 == 999999).next._1.mkString
println("Answer %s".format(result))
}
@goldeneggg
goldeneggg / gist:7317600
Created November 5, 2013 11:19
二重引用符付きCSVを処理するとして、str.split(",")した後のクォーテーション除去を map(_.replace("¥"")) と map(_.init.tail) で速度比較したら後者の方が速かった (20回ずつ動かして比較) #scala
object Hoge {
def main(args: Array[String]) {
for (i <- (1 to 20)) mainRecur(args(0).toInt)
}
private def mainRecur(ver: Int) {
var start = System.nanoTime
val s = "\"1\",\"22\",\"333\",\"4444\",\"55555\""