タグ

ブックマーク / waman.hatenablog.com (17)

  • 『実践 Vagrant』の Vagrantfile をバージョン2で書いてみる - 倭マン's BLOG

    オライリーの『実践 Vagrant』を購入して読んでみると、サンプルとして書かれている Vagrantfile のバージョンが1で現在はほとんど使われていないのでちょっと悩ましいなぁと思っていたのだけど、せっかくなので勉強と動作確認を兼ねて自分で書き換えてみることにしました。 と言っても、ほとんど Vagrant の Getting Started にそのまま載ってるものばかりなんですが。 【記事の内容】 Vagrant, VirtualBox の使用バージョン 2章 初めての Vagrant マシン 2.2 Vagrantfile (p,22) 2.4 ボックス (p.28) 2.6.3 共有ファイルシステム (p.35) 2.6.4 基的なネットワーキング (p.37) 3章 Vagrant 仮想マシンのプロビジョニング 3.4 自動化プロビジョニングの基 (p.56) 3.7.1

    『実践 Vagrant』の Vagrantfile をバージョン2で書いてみる - 倭マン's BLOG
  • Go 言語のいろいろなパッケージを使ってみるシリーズ ~目次~ - 倭マン's BLOG

    Go 言語の標準ライブラリのいろいろなパッケージを使ってみるシリーズの目次記事。 fmt パッケージ Print 関連関数 log パッケージ os パッケージ os.File os.File オブジェクトを取得する関数 os.File のメソッド io パッケージ io パッケージに定義されているインターフェース型 Go 言語の io パッケージにある具象 Reader, Writer を使ってみる Go 言語の io パッケージをのパッケージ関数を使ってみる ioutil パッケージ プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) 作者: Alan A.A. Donovan,Brian W. Kernighan,柴田芳樹出版社/メーカー: 丸善出版発売日: 2016/06/20メディア: 単行(ソフトカバー)この商

    Go 言語のいろいろなパッケージを使ってみるシリーズ ~目次~ - 倭マン's BLOG
    atm_09_td
    atm_09_td 2017/10/05
  • spire を使ってみるシリーズ 目次 - 倭マン's BLOG

    申し訳ございませんが、倭算数理研究所の方へ移動しました m(_ _)m wasan.hatenablog.com Scalaスケーラブルプログラミング第3版 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘出版社/メーカー: インプレス発売日: 2016/09/20メディア: 単行(ソフトカバー)この商品を含むブログ (1件) を見る

    spire を使ってみるシリーズ 目次 - 倭マン's BLOG
  • 『Real World HTTP』のための Java 簡易 HTTP サーバ - 倭マン's BLOG

    ちょっと流行ってるようなので、オライリーの『Real World HTTP ―歴史とコードに学ぶインターネットとウェブ技術』を買って読んでるのですが(買って2週間くらいだけどまだ2章までしかいってねぇ)、1章・2章に載っている Go によって書かれた簡易サーバを Java で書いてみます。 ここの HTTP 簡易サーバは、「JDK付属、Undertowを使ったGroovy&Clojure、Perlでの簡単なHTTPサーバ」で紹介されている、JDK 付属の HTTP サーバの箇所を参考にしました(ほとんど Groovy コードを Java コードに直しただけですが)。 簡易 HTTP サーバGo には簡易 HTTP サーバが付属しているようですが、JDK にも com.sun.net.httpserver パッケージに簡易 HTTP サーバ用のクラスがあります。 サーバのインスタンスを生成す

    『Real World HTTP』のための Java 簡易 HTTP サーバ - 倭マン's BLOG
  • Scala の Seq に定義されているメソッドを試す (2) ~要素の有無・要素数~ - 倭マン's BLOG

    Scala の Seq に定義されているメソッドを試すシリーズ(目次)。 前回はコンパニオン・オブジェクトに定義されているファクトリ・メソッドを試しましたが、今回からは Seq トレイトに定義されているメソッドを見ていきます。 一度に全てを見るのは無理なので適当に分類しています。 今回は Seq 内の要素の有無と要素数に関連するメソッドです。 今回扱うメソッド今回扱うメソッドの定義を見ておきましょう。 まずは Seq 内の要素の有無に関するメソッド。 Boolean 値を返すメソッドを集めています: // 要素の有無に関するメソッド def isEmpty: Boolean def nonEmpty: Boolean def contains[A1 >: A](elem: A1): Boolean def containsSlice[B](that: GenSeq[B]): Boolean

    Scala の Seq に定義されているメソッドを試す (2) ~要素の有無・要素数~ - 倭マン's BLOG
  • Scala の Seq に定義されているメソッドを試す (1) ~ファクトリ・メソッド~ - 倭マン's BLOG

    Scala の Seq トレイト、コンパニオン・オブジェクトにはたくさんのメソッドが定義されていますが、あまりにもたくさんのメソッドがありすぎて、コードをある程度書いた後で「このメソッド使ったら簡単に実装できるやん!」みたいなことが幾度かあったので、ここいらへんで片っ端からメソッドを試しておこうかと思います(いくつか飛ばすものもありますが)。 このシリーズでは Scala 2.12 を使います。 どうも 2.13 になるとコレクション API の構造がガラッと変わるっぽいのですが、使えるメソッドは変わらなさそうなので、気にしないことにします。 シリーズ目次 ファクトリ・メソッド 要素の有無・要素数 要素の取得 インデックス 同じ要素数の Seq オブジェクトを返すメソッド 異なる要素数の Seq オブジェクトを返すメソッド 畳み込み 多重コレクション タプル関連 Seq コンパニオン・オブ

    Scala の Seq に定義されているメソッドを試す (1) ~ファクトリ・メソッド~ - 倭マン's BLOG
  • いまさら!? ビット演算 ~論理演算編~ - 倭マン's BLOG

    昨今、若者のビット演算離れが叫ばれてる、かどうかは知りませんが、ちょっとビット演算で気になったことがあったので復習も兼ねてビット演算をあれこれ試してみました。 ビット演算の解説は世に山のようにありますが、実際自分であれこれ書いてみないとどうもシックリこないところがあるので、山に砂を積んでみました。 今回は Java で演算子が定義されている 否定(ビット反転) ~ 論理積 & 論理和 | 排他的論理和 ^ を見ていきます。  二項演算子である &, |, ^ には、対応する代入演算子 &=, |=, ^= もあります。 説明の必要はないかと思いますが、例えば「a &= b」は「a = a & b」と同じになります*1。 準備 整数値と負符号 負符号 マスク 否定 NOT (~) 論理積 AND (&) 自身との AND マスクとの AND 論理和 OR (|) 自身との OR マスクとの

    いまさら!? ビット演算 ~論理演算編~ - 倭マン's BLOG
  • Scala で無限リストをソートされた形で結合する - 倭マン's BLOG

    あとで読もうと思って数ヶ月放置してた記事 itchyny.hatenablog.com を消化しようと、途中まで Scala で書いてみた。 まぁ、ホント書き換えただけの記事。 しかも、論の「無限個の無限リスト」まではまだ行けず、その手前の3個の無限リストまで。 ところで、Haskell ってコードがかなり数学っぽく書けるんだなぁ。 記事の内容 記事の内容 2個の無限リストの和集合 2個の無限リストの共通部分 3個の無限リストの和集合 3個の無限リストの共通部分 【修正】 2個の無限リストの和集合まずは三角数と平方数の定義から。 後のサンプルでいくつか Int の範囲を超えるので、整数は Long にしておきます*1: val integers = Stream from 1 map (_.toLong) assert( integers.take(5) == Seq(1, 2, 3,

    Scala で無限リストをソートされた形で結合する - 倭マン's BLOG
  • ラムダ式やストリーム API や新しい日時 API だけじゃない! Java8 のタイプ・アノテーションあの手この手 - 倭マン's BLOG

    Java8 ではラムダ式やストリーム API に注目が集まってますが、何気にアノテーションに関しても機能拡張がされているようなので簡単な変更点や使い方を今夜試してみました。 ElementType の追加 TYPE_PARAMETER TYPE_USE 定義済みアノテーション @Repeatable アノテーション @FunctionalInterface アノテーション @Native アノテーション 目次 ラムダ式やストリーム API や新しい日時 API だけじゃない! Java8 のタイプ・アノテーションあの手この手 どんとこいタイプ・アノテーション! Checker Framework 導入あの手この手 ~without IDE 編~ どんとこいタイプ・アノテーション! IntelliJ IDE 独自のタイプ・アノテーション 参考 InfoQ 「Type Annotations

    ラムダ式やストリーム API や新しい日時 API だけじゃない! Java8 のタイプ・アノテーションあの手この手 - 倭マン's BLOG
  • Scala で Gson を使ってみる - 倭マン's BLOG

    ちょっと設定を記述するプロパティファイル的なものを使いたかったんだけど、Java のプロパティファイル使うのも XML 地獄に突入するのも嫌だったので、JSON を使って見ることに。 Java/Scala でどんなライブラリがよく使われているのか全然知らないんだけど、Google が開発してる Gson というライブラリがあったので使ってみました(バージョン 2.6.2)。 JSON のプリミティブ型に関しては、Scala で使う分には普通の Java プログラムと大差ない(と思う)のでまぁいいとして、JSON の配列を Scala のコレクションでどう扱うか(扱えるか)というのを見ていこうと思ってたんですが、どうにもうまく Scala のコレクションで動かないので、結局 Array (よって Java の配列)を使うのが無難だ、という結論。 Java のコレクションでもいいですが。 この

    Scala で Gson を使ってみる - 倭マン's BLOG
  • sbt でのコード生成を伴うプロジェクト with IntelliJ IDEA - 倭マン's BLOG

    機械的なコードがたくさんありすぎてコピペで対処するのが面倒になってきたので、sbt でコンパイル時に自動でコード生成を行わせる設定を試してみた。 まぁ、大抵のビルドツールでサポートされてる機能なので、普通にドキュメントの通りにすればいいだけと言えばそれまでですが、IDE が絡んでくるとちょっと余計な設定が必要になることもあります。 ここでは IntelliJ IDEA を使用する場合を書いていきます。(sbt 0.13) この記事の目次 sbt のみを使う場合 sbt × IntelliJ IDEA 参考 sbt Reference Manual — sbt Reference Manual sbt Reference Manual — Generating files sbt のみを使う場合まずは通常の sbt プロジェクトでコンパイル時にコード生成を行う方法を見ていきましょう。 簡単な

    sbt でのコード生成を伴うプロジェクト with IntelliJ IDEA - 倭マン's BLOG
  • これからの「Java I/O」の話をしようwww (13) : 続々・ファイル、ディレクトリの属性 - 倭マン's BLOG

    Java nio の API を見ていくシリーズ(目次)。 今回はファイル、ディレクトリの属性の続きの続き。 どんどんマニアックになっていく気がする(笑) 未来の自分のためのメモ書きみたいなものダス。 この記事の最後では、ファイルの作成と同時に属性を指定する方法を見ます。 特に読み書きの権限などはファイルを作成してから設定してるとセキュリティ的な空白の時間ができるので、ファイル作成時に属性を設定できるようにしておくべきでしょう。 この記事の内容 ユーザー定義属性 ACL 属性 属性とファイル・ディレクトリ作成 ユーザー定義属性使用している OS (というかファイルシステム)が UserDefinedFileAttributeView をサポートしていれば、任意のユーザー定義属性が使用できます。 ユーザー定義属性が使用できるかどうかは FileSystem オブジェクトもしくは FileSt

    これからの「Java I/O」の話をしようwww (13) : 続々・ファイル、ディレクトリの属性 - 倭マン's BLOG
    atm_09_td
    atm_09_td 2016/01/22
    [I/O]
  • PowerShell v5 でシンボリックリンクを作る - 倭マン's BLOG

    Windows 10 でデフォルトの PowerShell v5 から、シンボリックリンクを作れるようになったそうなので試してみました。 自分の PowerShell のバージョンを調べるには PS> $PSVersionTable とします。 準備PowerShell からシンボリックリンクを作成するには管理者権限が必要なので、PowerShell をアイコンから起動するときに右クリックして「管理者として実行」を選びましょう。 シンボリックリンクの作成PowerShell でシンボリックリンクの作成するには「New-Item」コマンドレットを使います。 このコマンドレット自体は昔からありますが、パラメータとして「-ItemType SymbolicLink」を指定します。 例えば、カレントディレクトリにある「log.txt」というファイルに対するシンボリックリンク「log.symlink

    PowerShell v5 でシンボリックリンクを作る - 倭マン's BLOG
  • これからの「Java I/O」の話をしようwww (11) : Files クラスのメソッド ~MIME Type を調べる~ - 倭マン's BLOG

    Java nio の API を見ていくシリーズ(目次)。 Files クラスのメソッドがあと少し残っているので回収記事をサラリと。 今回はファイルの MIME Type を調べるメソッド Files#probeContentType() メソッド。 MIME type とは XML に対しての「text/xml」みたいなヤツです。 簡単にはファイルの拡張子で分かりますが、真面目な実装だとファイルの内容とかも解析するんでしょうね。 Files#probeContentType() メソッドは結構実装に依存するようで、OS などによって結果は変わりうるそうです。 probeContentType() メソッドの使い方Files#probeContentType() メソッドの使い方は簡単です。 import java.io.IOException; import java.nio.file.

    これからの「Java I/O」の話をしようwww (11) : Files クラスのメソッド ~MIME Type を調べる~ - 倭マン's BLOG
  • どんとこいタイプ・アノテーション! Checker Framework 導入あの手この手 ~without IDE 編~ - 倭マン's BLOG

    前回の記事『ラムダ式やストリーム API や新しい日時 API だけじゃない! Java8 のタイプ・アノテーションあの手この手』で、Java8 で導入されたタイプ・アノテーションがどういったものか紹介しました。 その記事では同一要素に重複して同じアノテーションを付けられる @Repeatable なども紹介しましたが、タイプ・アノテーションは主に「タイプ(型)が使われているところはどこにでもアノテーションが付けられる」という機能を指しているのだと思います。 で、その機能を紹介したのはいいんですが、実際の使い方には触れていませんでした。 これでは片手落ち感が否めないので、タイプ・アノテーションを使用できるライブラリである Checker Framework というのを見ていきたいと思います(が、次に述べる理由により、ライブラリ自体の使い方はこの記事で扱ってません)。 このライブラリは @N

    どんとこいタイプ・アノテーション! Checker Framework 導入あの手この手 ~without IDE 編~ - 倭マン's BLOG
  • 祝 Java8 Project Lambda リリース!につき、ラムダ式コトハジメ - 倭マン's BLOG

    まだまだ夜は寒い季節ですが、新年度とともに Java の世界にも一足早く新しい風が吹いてきました。 Java5 でジェネリクスが導入されたときも結構インパクトがありましたが、Java8 でのラムダ式はそれ以上のインパクトがあり、プログラミングのパラダイム・シフトを余儀なくされることでしょう。 そうは言ってもラムダ式、関数オブジェクトは現代的なプログラミング言語では大抵サポートされている機能でもあるので、今更感の強い人もいることでしょう。 そういう方でも、多言語で実現されてた機能が Java8 ではどのように使うのか?ってことは確認しておく価値はあると思います。 ってことでラムダ式、関数オブジェクトに関して基的な事項を Java8 のコードで見ていきまする。 内容 ラムダ式 基的な記法 型推論 クロージャとしてのラムダ式 関数オブジェクト ラムダ式を既存の型に代入する メソッドの参照 メ

    祝 Java8 Project Lambda リリース!につき、ラムダ式コトハジメ - 倭マン's BLOG
  • Groovy スクリプトを実行するバッチファイル - 倭マン's BLOG

    こちらの記事で、Groovy をインストールしていない環境で Groovy スクリプトを実行する方法が書かれてました。 この方法では、スクリプトの実行に必要な Groovy と Ivy*1 の Jar ファイル自体は実行者に用意してもらう必要がありました。 最近、Clojure の勉強にと思って Leiningen というツールをイジってたんですが*2、このツールでは Clojure の Jar はもちろん、Leiningen の Jar すらもツールによってダウンロードしちゃおう!ってやつで、ユーザーがダウンロードする必要があるのはシェル・スクリプト(*nix、Mac 上)もしくはバッチ・ファイル(Windows)だけ、という手軽極まりない(?)ユーザビリティとなっております。 んで、これをちょっと Groovy スクリプトの実行に応用してみよう!と試行錯誤してみました。 以下、Wind

  • 1