600000007

プログラムと折り紙のブログです。

JJUG CCC 2016 Fallとキャリア

JJUG CCC 2016 Fallに参加しました。 可能な限りセッションは見たのですが、特に印象的だったものについて。 トレンドとキャリア [CCC2016Fall]Be a great engineer! #jjug_ccc #ccc_a1 // Speaker Deck Javaエンジニアのキャリアを考えるパネルディスカッシ…

かっこわるいプルリク

JNAにプルリクをマージしてもらえました。 やったー。 長かったー。どれくらい長かったかというと、2ヶ月以上かかってます。 マージしてもらったプルリクをみるとオープンしたのは3日前なのですが、これはぐだぐだになったプルリクをクローズして作り直した…

Backgammon:エースポイントゲームの定理。

バックギャモンとは | 日本バックギャモン協会要するにエースポイントゲームに対してどんなに上手に対応したとしても、最悪の目が出てブロットができてしまうことがあるのはしょうがないよね、というお話です。 定理 エースポイントゲームでは、ブロットがで…

第9回Jenkins勉強会 Jenkins+Windows

第9回Jenkins勉強会 - connpassにてLTで登壇させて頂きました。slides.comCIツールは乱立していますが、Windowsに対応しているものって少ないですよね。ただこんな手間がかかる状況だとJenkinsおじさんを量産するのでは?という意見は反論できませんでした。…

JJUG CCC 後日談

社内にて 今回は初めて同僚をJJUG CCCに誘ってみました。 その結果、後輩が一人参加してくれて、会場を右往左往する姿を見ることができました。そして後日、週一で行っている社内勉強会にて実際に見たセッションを紹介することになりました。 私と後輩で交互…

Ant「ビルドできません」Travis「よし通れ」

色々順番を間違ってる気がしますが、人生初LTでした。 初LTはJJUGのビール片手にLT&納涼会でやりたいと思っていたので、実現して嬉しかったです。 運営の皆様お世話になりました。 Ant「ビルドできません」Travis「よし通れ」 from sakamoto_desu www.slides…

Macでssreflect

以下はssreflectをMacで動かそうとした悪戦苦闘の記録です。 最終的には、以下のような構成になりました。 Mac OS X 10.9.4 Emacs 24.3.1 ProofGeneral4.2 Coq8.4pl4 ssreflect1.5 CoqIDE or ProofGeneral Mac OS X 10.9では、CoqIDE8.4は起動できません。既…

プログラマーは定理証明支援系を勉強すべきか?

定理証明支援って何? 最近、定理証明支援に関連するニュースがいくつか飛び込んできました。あるときはOpenSSLのバグを見つけ、あるときは数学の問題を解決しています。 それらに共通する定理証明支援とは何かを簡単に説明します。定理証明支援の「定理」「…

JarファイルからManifestを読む

意外と手こずったのでメモ。 特定のJarのManifestを読む方法です。 単にMETA-INF/MANIFEST.MF をリソースとして読もうとするだけだと、classpathが通っている他のJarからも探してしまいうまく行きませんでした。 以下は呼び出しているクラスを保持しているJa…

Gradle初心者がはまったこと、悩んだ事。

ここ2週間程、プロジェクトのビルド環境を再整理していてGradleをがっつり触りました。 GradleもGroovyも初めてだったのですが、最初は慣れなくて苦労しました。 その代わりGradle脳になってしまえば非常に簡潔に分かりやすく書けて良いですね。素敵です。以…

オブジェクト指向のこころ

@sakamoto_desu この本おすすめですよ http://t.co/TOdRBCZF4A— ふ''れいす (@bleis) 2013, 5月 22あれから5ヶ月。やっと読み終わりました。 いやー、ちょっと間に色々やっていたもんで。結論から言うと、オブジェクト指向に対するもやもやがかなりすっきり…

やっぱりassertThatは良いよねという話

追記 2016/6/12 テスト結果のメッセージを読みやすくしたいだけなら、assertThatにreasonを書く方が楽ですね。stackoverflow.com @Test public void test() { File file = new File("/tmp/hoge"); assertThat(file.getAbsoluteFile() + " should exist", fil…

第19回折紙探偵団コンベンション

今年も折紙探偵団コンベンションに参加してきました。盛況でしたねー。 相変わらず老若男女国内外と様々な人達が参加していました。 折り紙のファン層って不思議ですね。今回は初めてユニット系や難易度が低めの教室に参加しました。 いや・・・その・・・久…

Java8のLambdaの型推論が実行時にならいと型が分からない理由(追記あり)

JJUGナイトセミナー「Inside Lambda」に参加してきました。 Java8のLambdaの概要と、実装方法についてのお話でした。 非常に面白かったのですが、その中でLambdaの型推論が実行時にならいと型が分からないという話があったのでまとめてみます。 Lambdaの型推…

他のMacのTime Machineバックアップからデータを復元する方法。

Mac

メインで使っていたMac Book Proに水をぶっかけてしまい、泣く泣くMac Book Airへデータを移行しました。 その際、iTunesやらiPhotoのデータを復旧するのに苦労したのでメモしておきます。この質問が参考になりました。 環境 旧Mac Book Pro OS X 10.7 外付…

Scala Conferenceスタッフやってみた(謝罪あり)

3/2(日)、Scala Conference in Japan 2013が開催されました。 私はスタッフとして準備に奔走していましたが、無事終了しほっとしております。 多くの方にご来場頂き、誠に感謝です。そんな中で、次はスタッフを手伝いたい!という声を多数聞いたので、参考…

macでデフォルトのcore出力設定を変える方法

mac

環境 OS X 10.8.2 Mountain Lion ulimit coreはデフォルトでは出力サイズが0になっているので出力されません。 出るようにするにはulimitコマンドを使います。 まずは現状の確認。 $ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) un…

後輩に教えたら喜ばれたキーバインドの話

ある日の事。 ぺこぺことキーボードを叩きながら後輩とペアプロしていたら、「その操作どうやるんですか?ショートカットとか覚えたいっす!かっこいいっす!」と情熱的な眼差しを向けられました。俺も昔、全く同じ事を思ったなあと回想しながら、さて何を教…

key-value形式のvalueを取得する正規表現

久々にややこしい正規表現を書いたのでメモ。 以下のような形式のテキストから、valueだけをぬきとります。 key="value"ただし、valueに' " ' を含めるために ' ¥ ' でエスケープされる可能性も考慮します。 こんな感じです。 key="value" key="va¥"lue" key…

case class B extends case class A はダメ?

case classを継承したcase classを書いていたらwarningがでました。 case class A (x:Int) case class B (override val x:Int) extends A(x)コンパイルは通るのですが・・・ [warn] there were 1 deprecation warnings; re-run with -deprecation for detail…

函数プログラミングの集い 2012 in Tokyo

函数プログラミングの集い 2012 in Tokyoに参加してきました。初めてのお茶の水女子大学でしたが、関数プログラマーっぽい人の後をつけていったら無事到着しました。 我ながら無駄な眼力です。 個人的に一番面白かったのは、@ksknacさんの「関数プログラミン…

照れくさいからお祝いメッセージを難読化&アスキーアートにしてみた

同僚が入籍しました。 お祝いメッセージを送りたいのですが真正面から伝えるのはなんだか照れくさいですよね。 ということで、お祝いメッセージを難読化してみました。 これなら照れくさくない! eval (%w( p r i n t f ( " %s ",[02* 0x0 2*0b1 0 *0 b 10 1…

第18回折紙探偵団コンベンション

第18回折紙探偵団コンベンションの3日目(8/12)に参加してきました。 時既に遅し実はコンベンションが開催されているのに気づいた時には既に2日目が始まっていました。 参加申し込みもとうの昔に締め切られていたのですが、定員までは引き続き募集しますとい…

素人がゼロからプライベート名刺をデザインしてみた

プライベート名刺が欲しい。 その決意から完成までを書き留めておきます。 モチベーション プログラムの勉強会に顔を出すようになって、プライベート用名刺が欲しくなりました。ある日のイベント後に突然名刺交換が始まったのですが、渡せるのは会社の名刺し…

Jenkins ユーザ・カンファレンス 2012 東京

帰宅してブログに書くまでがJenkinseユーザーカンファレンス!という事で書きます。Jenkins ユーザ・カンファレンス 2012 東京に参加してきました。 参加申し込み1000人超え。勢いありますねー。参加したセッションは全てさったホールです。 そして案の定知…

Scala by Example‎ > 演習9.1.1解答案

Scala by Example > 演習9.1.1の解答案です。 def isort(xs: List[Int]): List[Int] = xs match { case List() => List() case x :: xs1 => insert(x, isort(xs1)) } def insert(x: Int, xs: List[Int]): List[Int] = xs match { case List() => List(x) cas…

Scala by Example‎ > 演習7.2.2解答案

Scala by Example > 演習7.2.2の解答案です。 abstract class IntTree case object EmptyTree extends IntTree case class Node(elem: Int, left: IntTree, right: IntTree) extends IntTree def insert(t: IntTree, v: Int): IntTree = t match { case Node…

Scala by Example‎ > 演習6.0.3解答案その2

Scala by Example > 演習6.0.3の解答案その2です。ヒントその2をベースにした解答です。 あるいは3つの子クラスとして Zero を 0 に、Succ を正の数のため、Pred を負の数のために使い、既知の Nat 実装を Integer へ一般化できます ちょっと意味が分からな…

Scala by Example‎ > 演習6.0.2解答案 その1

このScala by Example‎ > 演習6.0.2のNat、Succは自然数の定義でもあるペアの公理まんまですね。 公理を限りなく数式に近い形でプログラムで表現できるのはまさに関数型ならではなのでしょうか。Succの実装がよく分からない…と思ったら、これも原文と違っち…

Scala by Example‎ > 演習6.0.2解答案

Scala by Example > 演習6.0.2の解答案です。 trait IntSet { def incl(x: Int): IntSet def contains(x: Int): Boolean def union(set: IntSet): IntSet def intersection(set: IntSet): IntSet def excl(x: Int): IntSet def isEmpty: Boolean } class Emp…

Scala by Example‎ > 演習6.0.1解答案

Scala by Example‎ > 演習6.0.1の解答案です。これも翻訳がちょっと分かりにくかったのですが、要するに和集合と積集合を求めよ、ということですね。 trait IntSet { def incl(x: Int): IntSet def contains(x: Int): Boolean def union(set: IntSet): IntSe…

Scala by Example‎ > 演習5.3.1解答案

Scala by Example‎ > 演習5.3.1の解答案です。 立方根なので、 x = y * y * y y = x / ( y * y ) を補正関数に使います。 def cube(x: Double) = fixedPoint(averageDamp(y => x / (y * y)))(1.0)

Scala by Example‎ > 演習5.2.1〜5.2.4解答案

Scala by Example‎ > 5.2 カリー化 (Currying)の演習問題の解答案です。 演習 5.2.1 この問題ですが、??を埋めてもコンパイルエラーになって変だなと思ったら、原文とちょっと違ってますね。 原文の問題 def sum(f: Int => Int)(a: Int, b: Int): Int = { de…

‎Scala by Example‎ -> 5.2 カリー化 (Currying) 詳解

‎Scala by Example‎ -> 5.2 カリー化 (Currying)にて、ちょっと悩んだところを細かく読み解いてみました。 カリー化とは? Wikipediaによると、 f( a, b ) = c という関数 f があるときに、F( a ) = g ただし、g( b ) = c という関数 g が得られる関数 F を…

Scala by Example‎ -> 演習 4.6.1の解答案

Scala by Example‎ -> 演習 4.6.1の解答を考えてみました。末尾再帰にする→ else以降が再帰関数だけになればいい→でもfactorialだけにしちゃうと合計値を引き継げない→だったらfactorialに合計値を引き継げさせればいい def factorical(x: Int) = { def iter…

Scala勉強会第69回 in 秋葉原

Scala勉強会第69回 in 秋葉原に参加しました。 テーマはiteratee。 なんとなく説明してもらった事は理解できるのですが、付いて行けてはいませんでした。 scalazのコードが読めないとちゃんと理解はできないですね。 逆に言うと課題は見えました。scalaの基…

Scala勉強会第68回 in 渋谷 参加しました。

Scala勉強会第68回 in 渋谷に参加しました。まだまだついて行けないですね…。 でも今まで関わった事の無かったプログラム言語界隈の話が聞けて楽しかったです。 そもそも皆の会話や着眼点が面白いですね。 単にプログラムの勉強というだけではなく、交流会と…

「Jettyで始めるWebSocket超入門」のコードを修正してみました。

Gihyo.jpさんの「Jettyで始めるWebSocket超入門」を最新仕様に合わせて修正してみました。 WebSocketのコードはJettyの解説ページを参考にしました。 参照記事 Jettyで始めるWebSocket超入門 http://gihyo.jp/dev/feature/01/websocket Jetty/Feature/WebSoc…

WebSocketお勉強メモ。

WebSocketとは? 次世代のWeb用リアルタイム双方向通信プロトコル。2011/12/12にRFC6455になった。 今までのプロトコルとは何が違う? Ajax XmlHttpRequestを利用した非同期通信処理 Javascriptにより部分的にページを更新する サーバー側からPushできない C…

ドメイン。

なんかsakamoto.hatenablog.comドメインが取れてしまった。 良いのかな?