読者です 読者をやめる 読者になる 読者になる

takafumi blog

日々の勉強メモ

【Docker】 docker toolboxでdockerとvagrantを共存

環境 Windows 10 VirtualBox 5.1.12 Vagrant 1.8.7 docker 1.13.1 壮絶に勘違いしていた事。 Windowsで現行Dockerはdocker for windowsしかないと思ってたorz 普通にdocker toolboxとかあるんですね。 docker for widows docker toolbox vagrant 仮想化方式 …

【Selenium】 【Node.js】独自なwait()条件を作る

環境 Ubuntu 16.04 Selenium Standalone Server 3.0.1 普通はwebdriver.until.*を条件に使う事が多いが、普通に独自の値や条件判定で設定する事もできる。 以下のように、webdriver.Conditionのインスタンスを返すようにすればいい。 Conditionインスタンス…

【Selenium】 エラーがでたらまずdriverを更新する

環境 Ubuntu 16.04 Selenium Standalone Server 3.0.1 $ mocha test.js // 略 WebDriverError: unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"16896.1","isDefault":true},"id":1,"name":"","origin":"://…

【Ubuntu】 サーバーイメージにX Window Systemインストール

環境 Ubuntu 16.04 サーバーイメージだとxorgがないのでインストール $ sudo apt-get -y install xorg xserver-xorg 起動 $ startx xeyesとかで確認してみる。 終了 $ exit

【Scala】【ScalikeJDBC】 Config設定方法

環境 Scala 2.11.8 ScalikeJDBC 2.5.0 基本的にはこの内容 Configuration - ScalikeJDBC scalikejdbc-conifg, application.confは設定方法によって必要 build.sbt libraryDependencies ++= Seq( "org.scalikejdbc" %% "scalikejdbc" % "2.5.0", "org.scalike…

【Scala】 sealedとパターンマッチ

環境 Scala 2.11.8 シールドクラス(トレイト)を継承したサブクラスは、すべて同一のソースファイルに定義される。 そしてシールドクラスをパターンマッチに使用されると、match式の網羅性をコンパイラがチェックできる。 sealedなし このときはcaseのパター…

【Scala】 sbt, activatorのproxy設定

環境 Scala 2.11.8 CentOS7.0 sbtやactivatorを実行してmoduleをダウンロードしてくるときに、proxyで引っかかる時の対策。 内部で実行されるjavaコマンドがproxyで引っかかってるので、起動スクリプトを編集する手もあるが、以下の環境変数を設定する事で解…

【Scala】 空Listの表記

環境 Scala 2.11.8 CentOS7.0 なんか忘れるのでメモ scala> val l1: List[Int] = Nil l1: List[Int] = List() scala> val l2 = Nil:List[Int] l2: List[Int] = List() scala> val l3 = List.empty[Int] l3: List[Int] = List() scala> val l4 = List[Int]() …

【tmux】 TPM(Tmux Plugin Manager)で現在の状態を保存

環境 tmux 2.1 Tmux、便利ですよね。 そんなTmuxをもっと便利にするTPMというプラグインマネージャー。 github.com 使い方 ほとんどマニュアルそのままだけど まずTPMをgit clone $ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm そし…

【Node.js】 NVMで最新版のNode.jsをインストール

環境 CentOS 7.2 NVM 0.31.1 Node.js 6.2.0 nightlyビルドを使いたいという事でなければ、stable版はnvmを使うのが便利。 ■NVMのインストール git clone https://github.com/creationix/nvm.git ~/.nvm source ~/.nvm/nvm.sh ■Node.jsのバージョン確認 nvm l…

【Vim】 NeoBundleInstallでキー入力待ちになる問題

vim

環境 vim7.4&nbsp なぜかNeoBundleInstallをコマンドラインから実行すると、途中で止まる事がある。 というか、vimを開いて手打ちしても、<継続>などと出てキー入力待ちになる。 で、なんとかしたいと思って対策。 $ yes "" | vim -i NONE -c 'NeoBundleInst…

【PHP】 正規表現のエスケープ

php

環境 CentOS 7.0 PHP 7.0.1 phpで正規表現(preg系)のエスケープシーケンスの書き方について調べた。 以下のような正規表現がある。 $text = 'abc/def'; preg_match('/abc\\/def/', $text); # (a) preg_match('/abc\/def/', $text); # (b) さて(a)と(b)、どっ…

sshのAgent Forwarding

ssh

環境 CentOS7.0.1 Agent Forwarding。 puttyだと、pargentで秘密鍵のpassfrazeを毎度入力しなくてよくするあれ。 今回localhostのVirtualBoxから別のサーバーにssh。 そこから更にsshしようとすると、passfrazeを聞かれる。 つまり ローカル ↓ ↓ Agent Forwa…

【Vagrant】 複数台構成の調査

環境 Vagrant 1.8.1 VirtualBox 5.0.12 Vagrantによる複数台VM環境の構築 Vagrantfileを以下のようにする。 Vagrant.configure(2) do |config| config.vm.provider "virtualbox" do |vb| vb.gui = true end config.vm.define "server1" do |server| config.v…

yum localinstallでrpmをインストール

環境 CentOS 7.0 最近知ったが、yum には直接rpmをインストールするyum localinstallというコマンドが存在する。 $ sudo yum localinstall jdk-8u40-linux-x64.rpm # or $ sudo yum localinstall 'http://javadl.sun.com/webapps/download/AutoDL?BundleId=1…

Proxyを乗り越えろ!

環境 Vagrant 1.8.1 VirtualBox 5.0.12 という事で、プロキシのある環境でgitとか、Vagrant等、随分引っかかって苦労したので、メモっとく。 Linux全般 / wget / curl 基本的に環境変数が使われる。 以下を実行するか、.bash_profile等にセットすればよい。 …

【Play Framework】 PlayFramework最新版をインストール

環境 Play Framework 2.4.6 CentOS7.0 インストール java,javacがなければ、インストールしておく。 $ # インストール $ cd /usr/local/src $ sudo wget https://downloads.typesafe.com/typesafe-activator/1.3.7/typesafe-activator-1.3.7-minimal.zip $ s…

【Redis】 CentOS7にRedisの最新版をmakeインストール

環境 CentOS 7.0 Redis 3.0.6$nbsp; yumのバージョンを確認してみる とりあえずyumを確認。 $ sudo yum list redis sudo yum list redis Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.rike…

【PHP】 PHPBrewでPHP7をインストール

環境 CentOS 7.0 phpbrew 1.20.5 PHP 7.0.1 PHPBrewを使って、PHP7を試してみる。 事前準備 PHPBrewを使うには、php-cliの5.3以上が必要になる。 $ sudo yum install -y php-cli そして、他に必要になるモジュールを追加。 Apacheと連携するので、httpdも追…

【Vagrant】 apacheの設定方法

環境 CentOS 7.0 apache2.4.6 httpdのインストール、起動はVagrantに限らず、通常のCentOS7の手順と同じ。 $ sudo yum install -y httpd httpd-devel $ sudo systemctl start httpd 自動起動の設定をするなら、 $ sudo systemctl enable httpd.service これ…

【Node.js】 いつの間にかバージョン表記が変わってた

環境 CentOS 7.0 Node.js 5.3.0 Node.jsを最新版にしようと思って、最新版を調べたら、バージョンが5.3.0? □ CentOS7.0にNode.js最新版をインストール - takafumi blog のときは0.12.2とかだったのに。 で気が付いたんですが、Node.jsとio.jsが統合したんで…

【Vim】 コマンドラインからvimコマンドを実行

vim

vim -c "NeoBundleInstall" -e とか-e -cオプションでexモードのコマンドを実行できる。 が、何故かvim開いてから実行だと問題ないのに、コマンドライン実行だとエラー出るコマンドとかがある。 と言う事で何か方法がないのかと思ってググッてみた。 vimコマ…

【Vagrant】 プロビジョニングで環境を自動構築

環境 Vagrant 1.8.1 VirtualBox 5.0.12 プロビジョニングの実行タイミング はじめてvagrant upを行ったときに、実行される処理。 2回目以降は以下のようなメッセージが表示されている。 ==> default: flag to force provisioning. Provisioners marked to ru…

【Vagrant】 独自のboxを作成する

環境 Vagrant 1.8.1 VirtualBox 5.0.12 既存のVMからboxイメージを作成する ホスト側から以下のようにする。 PS> vagrant package --base VMName --output Custom.box ==> VMName: Attempting graceful shutdown of VM... VMName: Guest communication could…

【Vagrant】 VirtualBoxのGuestAdditionsを自動で更新する

環境 Vagrant 1.8.1 VirtualBox 5.0.12 割と有名な事らしいけど、VirtualBoxのゲストでカーネルに更新があったときは、GuestAdditionsを入れなおす必要があるらしい。 VirtualBox共有フォルダ覚書 | dark_greenの日記 | スラド 当然知らず、vagrantでVM作っ…

【Vagrant】 Vagrant + VirtualBox で仮想環境を構築

環境 Vagrant 1.8.1 VirtualBox 5.0.12 Vagrantを使った、基本的な仮想環境作成。 ホスト:Windows 10 ゲスト:CentOS 7.1 ホスト側の事前作業 msysgit VirtualBox Vagrant の最新版を公式からDLし、インストールしておく。 ベースとなるOSのイメージ『box』…

【Vagrant】【VirtualBox】 それでも起動しないとき

環境 Vagrant 1.8.1 VirtualBox 5.0.12 【VirtualBox】 が起動しない時の対処 - takafumi blog の続き VirtualBoxが動いたので、これでvagrant upできると思ったら ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a f…

【VirtualBox】 が起動しない時の対処

環境 VirtualBox 5.0.12 VirtualBoxが起動しない。 こんなエラー。 Timed out after 60001 ms waiting for child request #1 (CloseEvents). (rc=258) where: supR3HardNtChildWaitFor what: 5 Unknown Status 258 (0x102) (258) - Unknown Status 258 (0x10…

【Node.js】【npm】 npm コマンド超基本

環境 CentOS 7.0 JavaScript Node.js 0.12.2 npm 2.7.4 インストール npm自体のインストール nodeをインストールすると、自動でインストールされる。 npm install <モジュール名> ローカルインストール 現在のディレクトリ直下のnpmプロジェクト内に./node_m…

【VMwarePlayer】【VirtualBox】 共有ディレクトリとシンボリックリンク

npmとかパッケージ管理ソフトで、インストールの際に失敗する事があるので調べていたら気が付いたのでメモ。 基本的にホストがLinuxのときは、VMwarePlayer、VirtualBox共にシンボリックリンクが作れない。 一応npmには--no-bin-linksというオプションで、シ…

【Haskell】 Project Euler Prblem4 を少し考えて解いてみた

環境 ghc 7.10.2 CentOS7.0 Problem 4 - PukiWiki Euler problems/1 to 10 - HaskellWiki だと結構力技なので、少し考えてみた。 1 main :: IO () 2 main = print $ head [(x, y, z) | x <- palindromes dgt, y <- factors dgt, let z = x `div` y, x `mod` …

【Haskell】 Project Euler Prblem2を読み間違えて解いてみた

環境 ghc 7.10.2 CentOS7.0 Problem 2 - PukiWiki の 「数列の項の値が400万以下の, 偶数値の項の総和を求めよ.」 を 「数列の項が400万以下の, 偶数値の項の総和を求めよ。」 と間違って解いてみた。 1 main :: IO () 2 main = print . sum' .filter even $…

【Haskell】 stack で ghc-modがインストールできない

環境 ghc 7.10.2 CentOS7.0 Haskellのパッケージ管理をstackにしてみた。 順調にインストールはし、Yesodもcabal hellせずナイスと思ったら、ghc-modがインストールできない。 $ stack install ghc-mod While constructing the BuildPlan the following exce…

【Ruby】 引数の型チェック gem contracts

環境 ruby 2.2.3 CentOS7.0 Rubyを始めてみた。 さて、初めてすぐ気になった事。 関数は以下のように書くわけで 1 def gcd(a, b) 2 if b == 0 3 return a 4 else 5 return gcd(b, a % b) 6 end 7 end 8 9 p gcd(10, 'a') $ ruby gcd.rb gcd.rb:9:in `%': Str…

【Haskell】 HsExifを使い、Exif情報で画像を整理するスクリプトを書いてみた

環境 ghc 7.8.3 CentOS7.0 HaskellでExif情報を使って、写真を整理するスクリプトを書いてみた。 github.com ・・・まだExif撮影日時ごとにディレクトリ作成して、画像をコピーするだけ。 Exif取得自体はHsExifといモジュールを使ったが、そもそもHaskell自…

【Haskell】 H本 13.6のチェスの演習問題

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」第13章 メモ 13.6のチェスの演習問題をやってみた。 import Control.Monad type KnightPos = (Int, Int) -- (横, 縦) moveKnight :: KnightPos -> [KnightPos] moveKnight (c,r) = do (c', r') <…

【Haskell】 モナド簡単まとめ

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」第13章 メモ 簡易Monadまとめ Monad(モナド) ▽定義 class Monad m where return :: a -> m a (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b x >> y = x >>= \_ -> y fail :: Str…

【Haskell】 ファンクター、アプリカティブの簡単まとめ

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」第10,11章 メモ ファンクター、アプリカティブのとりあえず、最低限必要そうな部分をまとめ。 でも間違いなく、こちらの方が、はるかに分かりやすいです。 なので、以下は自分用のまとめです。 F…

【Haskell】 言葉の定義まとめ(型クラス、型コンストラクタ、値コンストラクタ、型引数など)

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」第07章 メモ この辺で、言葉の定義がよくわからなくなっていたので、まとめてみた。 言葉 説明 例 型変数 関数の明示的な型宣言に使われるどんな型も取り得る事を意味する head :: [a] -> a この…

【Scala】 変位パラメータの境界「下限境界」「上限境界」

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ ■ 下限境界、上限境界(第19章) 簡単にいうと、型パラメーターに制限をつける機能 ▽下限境界 型パラメータが、どのサブクラスまで許可されるかを示す ▽上限境界 型パラメータ…

【Scala】 変位アノテーション「非変」「共変」「反変」

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ ■ 変位アノテーション(第19章) 例えば class Foo(foo: AnyRef){} というクラスがあったとき、引数fooにはAnyRefとそのサブ型は全て受け入れられる。 scala> val f1 = new Fo…

【Python】 3系最新版をmakeインストール

環境 CentOS 7.0 python 3.4.3 今までデフォルトインストールされていた2系を使っていたのですが、いい加減 3系を使ってみる事にする。 CentOSではデフォルトで入っているpython2系をアンインストールできない。 なのでpython 3系を使うにはmakeインストール…

【Scala】 正規表現のパターンマッチ

環境 Scala 2.11.6 CentOS7.0 パターンマッチに正規表現を使える。 グルーピングしている部分にマッチする。 scala> val r = """^(\d{4})-(\d{2})-(\d{2})$""".r r: scala.util.matching.Regex = ^(\d{4})-(\d{2})-(\d{2})$ scala> "2015-08-19" match { | c…

【Scala】 正規表現による文字列検索

環境 Scala 2.11.6 CentOS7.0 matches シンプル。ただし部分一致ではなく全体一致のみ。 scala> val target = "abcdefghijklmnopqrstuvwxyz" target: String = abcdefghijklmnopqrstuvwxyz scala> target matches """mno""" res1: Boolean = false scala> ta…

【Scala】 Applicationトレイト (Appトレイト)

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ ■ Application(App)トレイト(第4章) 通常Scalaアプリケーションはシングルトンオブジェクトのdef mainが実行される。 例 object Foo { def main(args: Array[string]):Unit …

【Scala】 アクセス修飾子と限定子

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ ■ アクセス修飾子と限定子(第14章) アクセス修飾子 修飾子 アクセス範囲 private 非公開メンバー。メンバーを含むクラス、オブジェクト内のみ。Javaと異なりインナークラス…

【Scala】REPLで複数行の貼り付け

環境 Scala 2.11.6 CentOS7.0 Scala REPLで複数行のコマンドを貼る。 :paste と打ってから、貼り付ければOK。 終了はCtrl + D。 今まで知らないでエライ苦労していた。 他にも:helpと打てば使えるコマンドがイロイロある。 scala> :help All commands can be…

【JavaScript】 オブジェクトで配列のメソッドを使う

環境 CentOS 7.0 JavaScript Node.js 0.12.2 残念ながら数字キーのオブジェクトにしか適用できないが、mapやfilter,reduceとかが便利。 ポイントはオブジェクトに"length"キーを設定しておくところ。 > var o = { '1': 2, '2': 3, a: 'AAA', d: 'DDD', lengt…

【JavaScript】 プロトタイプ/プロトタイプチェーン

環境 CentOS 7.0 JavaScript Node.js 0.12.2 プロトタイプと通常のプロパティの違い // prototypeを設定 var Hoge = function() {} Hoge.prototype.a = 1; // プロパティを設定 var Fuga = function() { this.a = 1; } var hoge0 = new Hoge(); var fuga0 = …

【JavaScript】 オブジェクト生成

環境 CentOS 7.0 JavaScript Node.js 0.12.2 オブジェクトを生成する主な方法は、以下3通り。 1) オブジェクトリテラル var o0 = {}; // 空オブジェクト var o1 = {a:1, b:"hoge"}; 2) new演算子 var o2 = new Object(); // 空オブジェクト var o3 = new Obj…