SlideShare a Scribd company logo
1 of 42
Download to read offline
えくせる
現実と戦う話
bleis-tift
August 24, 2013
自己紹介
@bleis / id:bleis-tift
なごやではたらくゆるふわ C#1.2er
好きな関数型言語は F#
Microsoft MVP for Visual F#
いよちゃんかわいいよいよちゃん
わたしの思う
な ご や
現実・・・
げ ん じ つ
Excel 方眼紙からは逃げられない。
げ ん じ つ
Excel方眼紙から目をそらす?
Excel は関数型言語だ!
目を覚ませ、目の前にあるのはた
だのExcelじゃない、方眼紙だ!
げ ん じ つ
Excel方眼紙と戦うための武器
VBA
COM
Excel-DNA
POI(NPOI)
Type Provider ← New!
型 プ ロ バ イ ダ ー
Type Provider?
F#3.0 からの新機能
コンパイル時計算のための仕組み
メタデータから型を生成する機能
例えば、DB のスキーマから型を作ったり
ネットワークから JSON を引っ張ってきて型を
作ったり
それってコードの自動生成でいいのでは?
TypeProviderとコードの自動生成の違い
コンパイルフェーズだけで完結できるか
バージョン管理上の問題
生成されたコードを含める?含めない?
基本的には含めない方がいい。でも、生成のた
めのツールをみんなが持ってるかどうかを考え
ると・・・
見せる必要のないコードを隠せる
T4 使うと見せる必要のないコードが大量に・・・
(例:LangExt 3000 行や 4000 行のファイルが・・・
図解TypeProvider
Type Provider
(¡ ¢£ に¦§¤)
©¥
あなたのコード
メタデータ

¨
 !
#
$
%
'()'0123
・直接(文字列とかで)渡す
・ローカルファイルから
読み込む
・ネットワークから
読み込む
・h4から読み込む
TypeProviderで型を提供されてみる
.
hoge
..
.
type DB = EdmxFileHoge.edmx
// DB 型を使ったコード
...
色々なTypeProvider
DB 系
EdmxFile
SqlEntityConnection
データ形式系
AppSettings (FSharpx)
XAML (FSharpx)
ExcelFile (FSharpx)
XmlProvider (FSharp.Data)
JsonProvider (FSharp.Data)
その他
Regex (FSharpx)
TypeScriptProvider (FunScript)
などなど。
参考: http://sergeytihon.wordpress.com/2013/08/05/
ExcelTypeProvider
Excel を操作するための TypeProvider
「名前」を設定した Excel ファイルを指定す
るか、
対象の範囲を別に指定する
読み込みオンリー
これじゃない・・・
ExcelTypeProviderのココがダメ!
「名前」が上手く使える Excel 方眼紙とか
ない
範囲だけ指定してうまく扱える Excel 方眼紙
とかない
Excel と範囲を指定するための単純な文字列
のみをメタデータとして使っており、柔軟性
がない
出来れば書き込みたい
こ れ は 普 通 の E x c e l ファイ ル の た め の T y p e P r o v i d e r だ・・・!
これで Excel 方眼紙に立ち向かうのは無理ぽ
どういうTypeProviderが欲しいのか
Excel 方眼紙は多種多様
ExcelTypeProvider が持っているような前提は置
けない
カスタマイズ可能なよう、メタデータは外部化
されているべき
納品物に名前情報とか埋め込んじゃ駄目なとこ
ろもあるかもしれませんしねー (白目
メタデータもある程度事前に検証したい
TypeProvider に渡して初めて記述ミスに気付く、
とかは避けたい
ホスト言語 (F#) で書かれていると嬉しい
作りました (作りかけ)。
その名も・・・
え く せ る 方 眼 紙 タ イ プ プ ロ バ イ ダ ー
ExcelHouganshiTypeProvider!
.
コードの入手方法
..
.git clone https://github.com/RealWorlds/ExcelHouganshi.TypeProvider.git
一部の dll を GAC に登録してるので、VS は管理者
で開いてビルドしてください。
デモ
仕組み(サンプルの構成)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
ExcelHouganshi.TypeProvider.Data
ExcelBook
ExcelSheet
ExcelCell
Definition
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
こいつ
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
...
[TypeProvider]
type Houganshi (...) as this =
inherit TypeProviderForNamespaces ()
...
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
...
[TypeProvider]
type Houganshi (...) as this =
inherit TypeProviderForNamespaces ()
...
ファイル読み込み
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
...
[TypeProvider]
type Houganshi (...) as this =
inherit TypeProviderForNamespaces ()
...
ファイル読み込み
...
[HougenDefinition]
let myHouganshi =
[
Define.field Title {
Type = StringField
Sheet = Sheet1
Address = A1
}
Define.field SubTitle {
Type = StringField
Sheet = Sheet1
Address = A2
}
]
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
...
[TypeProvider]
type Houganshi (...) as this =
inherit TypeProviderForNamespaces ()
...
ファイル読み込み
...
[HougenDefinition]
let myHouganshi =
[
Define.field Title {
Type = StringField
Sheet = Sheet1
Address = A1
}
Define.field SubTitle {
Type = StringField
Sheet = Sheet1
Address = A2
}
] 一時フォルダ
dll
コンパイル
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
一時フォルダ
dll
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
一時フォルダ
dll
ロード
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
一時フォルダ
dll
ロード
メタデータから
型の生成
仕組み(コンパイル時の挙動)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
...
type MyHouganshi = HouganshiDef.fs
...
一時フォルダ
dll
ロード
メタデータから
型の生成
型の提供
仕組み(実行時に必要なもの)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
一時フォルダ
dll
ExcelHouganshi.TypeProvider.Data
ExcelBook
ExcelSheet
ExcelCell
Definition
仕組み(実行時に必要なもの)
Sample
Def.fs
Program.fs
ExcelHouganshi.TypeProvider
Houganshi
ExcelFile
一時フォルダ
dll
ExcelHouganshi.TypeProvider.Data
ExcelBook
ExcelSheet
ExcelCell
Definition
できること
扱う Excel 方眼紙の形式のユーザ定義
ユーザ定義部分の外部化
ユーザ定義の F#による記述
セルの値の読み書き
できないこと
非 Windows 環境の救済
でも、内部では NPOI 使ってるし、mono で行け
るかも?
VS2010 以前 (2010 含む) ユーザの救済
TypeProvider が使えるのが VS2012 移行に搭載さ
れている F#
VS を入れなくても F#は使えるので・・・
その他機能的な問題
セル以外を扱う (今後実装予定)
なぜか VS を再起動しないとインテリセンスが反
応しない
GAC に登録せずに動かす
まとめ
Excel 方眼紙を倒す可能性を秘めた武器を手
に入れたかもしれない
でもまだ負けてる
いつか Excel 方眼紙に勝ちたい
そもそも、この方向で進んで勝てるのか?という
話はある (ぉ
おまけ
TypeProviderのつくりかた
1. F#3.0 Sample Pack 内の
ProvidedTypes-head.fs をコピーしてくる
必須ではないが、全部自分で実装するのはだるい
色々なものが internal なので、プロジェクトにコ
ピーするのがいい
2. ProvidedTypeDefinition オブジェクト (提供す
る型) を生成する
3. 上で作ったオブジェクトにメソッドやプロパ
ティなどを生やす
4. AddNamespace を呼び出す
3 を頑張る感じ
TypeProviderのデバッグ
同一ソリューション内にデバッグ用プロジェクト
を作ると、dll を握りっぱなしになってビルドでき
なくなる
ソリューションを分ける
fsproj の PropertyGroup に以下の定義を追加
する
.
.
StartArgumentsSample.sln/StartArguments
StartActionProgram/StartAction
StartProgram$(DevEnvDir)devenv.exe/StartProgram
StartWorkingDirectory$(SolutionDir)/StartWorkingDirectory
これでデバッグ起動すると、新しい VS が立ち上
がってデバッグ可能に!
小技
ProvidedTypeDefinition の HideObjectMethods
プロパティを true に設定すると、obj のメ
ソッドが隠れる
コンパイル時コンパイルがかなりの回数走る
ので、Git 方式でファイル存在チェックを導入
全部式木で書くのはだるいので、書ける部分
はコード引用符を使った
はまったところ(その1)
コンパイル時コンパイルは問題がいっぱい
F#CodeDom が古い
→ NuGet から取ってくるのを諦め、ソリュー
ション内に追加して修正
インメモリでやろうとするとエラーになる
→ 一時フォルダに出力するようにした
生成するアセンブリが他のアセンブリに依存
していると、実行時エラーが発生する
→ アセンブリを分割して、依存を無くした
Data アセンブリが見つからない
→ Data アセンブリを GAC 登録
はまったところ(その2)
式木は問題がいっぱい
コード引用符の外側の変数が、使えないこと
がある
→ 式木を自分で構築すればできるかも?面倒
なので色々諦めた
スプライス (アンクォート) の際に Type オブ
ジェクトで型指定できない
→ コード引用符を諦めて、式木を自分で組
み立てて回避
式木上の型と、実行時の型が合わない
→ がんばって型を合わせる
はまったところ(その3)
時間がない
仕事が!多い!!!
→ がんばって仕事を終わらせる
使える言語が C#1.2
→ OOPって、楽しいですよね・・・
でも、今回はかなーり余裕をもって資料作れま
した!

More Related Content

What's hot

C++ Template Metaprogramming
C++ Template MetaprogrammingC++ Template Metaprogramming
C++ Template MetaprogrammingAkira Takahashi
 
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用までTemplate Meta Programming入門から応用まで
Template Meta Programming入門から応用までyoshihikoozaki5
 
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会Akihiko Matuura
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Takashi Hoshino
 
C++ tips2 インクリメント編
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編道化師 堂華
 
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編道化師 堂華
 
君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らないdigitalghost
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプKohsuke Yuasa
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~CHY72
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 
闇魔術を触ってみた
闇魔術を触ってみた闇魔術を触ってみた
闇魔術を触ってみたSatoshi Sato
 
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みくださいC++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みくださいdigitalghost
 
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013Esehara Shigeo
 

What's hot (20)

C++ Template Metaprogramming
C++ Template MetaprogrammingC++ Template Metaprogramming
C++ Template Metaprogramming
 
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用までTemplate Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
 
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4
 
C言語講習会2
C言語講習会2C言語講習会2
C言語講習会2
 
C言語講習会3
C言語講習会3C言語講習会3
C言語講習会3
 
C++ tips2 インクリメント編
C++ tips2 インクリメント編C++ tips2 インクリメント編
C++ tips2 インクリメント編
 
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
 
君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
 
C言語講習会4
C言語講習会4C言語講習会4
C言語講習会4
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
C++ tips1 #include編
C++ tips1 #include編C++ tips1 #include編
C++ tips1 #include編
 
闇魔術を触ってみた
闇魔術を触ってみた闇魔術を触ってみた
闇魔術を触ってみた
 
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みくださいC++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みください
 
C言語講習会1
C言語講習会1C言語講習会1
C言語講習会1
 
C++ tips4 cv修飾編
C++ tips4 cv修飾編C++ tips4 cv修飾編
C++ tips4 cv修飾編
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013関数型志向Python - LLまつり2013
関数型志向Python - LLまつり2013
 

Viewers also liked

Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016将之 小野
 
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話将之 小野
 
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばKouji Matsui
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれからshigeki_ohtsu
 
Swift Package Manager ことはじめ #cswift
Swift Package Manager ことはじめ #cswiftSwift Package Manager ことはじめ #cswift
Swift Package Manager ことはじめ #cswiftTomohiro Kumagai
 
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswiftSwift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswiftTomohiro Kumagai
 

Viewers also liked (7)

Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
Swiftのこれまでの動向のまとめと 今後のさらなる発展の期待 - iOSDC 2016
 
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
 
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
 
HTTP/2, QUIC入門
HTTP/2, QUIC入門HTTP/2, QUIC入門
HTTP/2, QUIC入門
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
 
Swift Package Manager ことはじめ #cswift
Swift Package Manager ことはじめ #cswiftSwift Package Manager ことはじめ #cswift
Swift Package Manager ことはじめ #cswift
 
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswiftSwift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
Swift 3.0 で変わったところ - 厳選 13 項目 #love_swift #cswift
 

Similar to 現実(えくせる)と戦う話

やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介fukuoka.ex
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会Yuji Otani
 
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesNoritada Shimizu
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio CodeAkira Inoue
 
IdrisでWebアプリを書く
IdrisでWebアプリを書くIdrisでWebアプリを書く
IdrisでWebアプリを書くHideyuki Tanaka
 
Cookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmMinero Aoki
 
Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク
Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトークSmall Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク
Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトークJun-ichi Sakamoto
 
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようShinsuke Sugaya
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)Masahiro Hayashi
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~decode2016
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„和弘 井之上
 
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Tetsu Yama
 
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Tetsu Yama
 
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Tetsu Yama
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Shinsuke Sugaya
 
Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)VOYAGE GROUP
 
デザイナーのためのPHP講座 for WordPress (初級)
デザイナーのためのPHP講座  for WordPress (初級)デザイナーのためのPHP講座  for WordPress (初級)
デザイナーのためのPHP講座 for WordPress (初級)佑 小田垣佑
 

Similar to 現実(えくせる)と戦う話 (20)

やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
 
Xtext 紹介
Xtext 紹介Xtext 紹介
Xtext 紹介
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
Gensim
GensimGensim
Gensim
 
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
IdrisでWebアプリを書く
IdrisでWebアプリを書くIdrisでWebアプリを書く
IdrisでWebアプリを書く
 
Cookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming Paradigm
 
Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク
Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトークSmall Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク
Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク
 
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
 
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
 
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)
 
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)
 
Lt 111119
Lt 111119Lt 111119
Lt 111119
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
 
Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)Phpではじめるオブジェクト指向(公開用)
Phpではじめるオブジェクト指向(公開用)
 
デザイナーのためのPHP講座 for WordPress (初級)
デザイナーのためのPHP講座  for WordPress (初級)デザイナーのためのPHP講座  for WordPress (初級)
デザイナーのためのPHP講座 for WordPress (初級)
 

More from bleis tift

PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。bleis tift
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)bleis tift
 
No more Legacy documents
No more Legacy documentsNo more Legacy documents
No more Legacy documentsbleis tift
 
解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compilerbleis tift
 
効果の低いテストの話
効果の低いテストの話効果の低いテストの話
効果の低いテストの話bleis tift
 
テストの自動化を考える前に
テストの自動化を考える前にテストの自動化を考える前に
テストの自動化を考える前にbleis tift
 
札束でExcelを殴る
札束でExcelを殴る札束でExcelを殴る
札束でExcelを殴るbleis tift
 
SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~bleis tift
 
F#事例発表
F#事例発表F#事例発表
F#事例発表bleis tift
 
yield and return (poor English ver)
yield and return (poor English ver)yield and return (poor English ver)
yield and return (poor English ver)bleis tift
 
F#の基礎(嘘)
F#の基礎(嘘)F#の基礎(嘘)
F#の基礎(嘘)bleis tift
 
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)bleis tift
 
async/await不要論
async/await不要論async/await不要論
async/await不要論bleis tift
 
VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)bleis tift
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScriptbleis tift
 
F#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリF#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリbleis tift
 
ぼくのかんがえたさいきょうのLL
ぼくのかんがえたさいきょうのLLぼくのかんがえたさいきょうのLL
ぼくのかんがえたさいきょうのLLbleis tift
 
SCMBC闇LT資料
SCMBC闇LT資料SCMBC闇LT資料
SCMBC闇LT資料bleis tift
 
SCMBC Git入門セッション発表資料
SCMBC Git入門セッション発表資料SCMBC Git入門セッション発表資料
SCMBC Git入門セッション発表資料bleis tift
 

More from bleis tift (20)

PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
 
No more Legacy documents
No more Legacy documentsNo more Legacy documents
No more Legacy documents
 
解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler
 
効果の低いテストの話
効果の低いテストの話効果の低いテストの話
効果の低いテストの話
 
テストの自動化を考える前に
テストの自動化を考える前にテストの自動化を考える前に
テストの自動化を考える前に
 
札束でExcelを殴る
札束でExcelを殴る札束でExcelを殴る
札束でExcelを殴る
 
SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~
 
F#事例発表
F#事例発表F#事例発表
F#事例発表
 
yield and return (poor English ver)
yield and return (poor English ver)yield and return (poor English ver)
yield and return (poor English ver)
 
F#の基礎(嘘)
F#の基礎(嘘)F#の基礎(嘘)
F#の基礎(嘘)
 
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
 
async/await不要論
async/await不要論async/await不要論
async/await不要論
 
VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScript
 
自分戦略
自分戦略自分戦略
自分戦略
 
F#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリF#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリ
 
ぼくのかんがえたさいきょうのLL
ぼくのかんがえたさいきょうのLLぼくのかんがえたさいきょうのLL
ぼくのかんがえたさいきょうのLL
 
SCMBC闇LT資料
SCMBC闇LT資料SCMBC闇LT資料
SCMBC闇LT資料
 
SCMBC Git入門セッション発表資料
SCMBC Git入門セッション発表資料SCMBC Git入門セッション発表資料
SCMBC Git入門セッション発表資料
 

現実(えくせる)と戦う話