takafumi blog

日々の勉強メモ

【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…

【Scala】for式の括弧と、セミコロン推論

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第07章まで ■ for式の括弧と、セミコロン推論 P.134 「もしそうしたいなら、ジェネレータとフィルターは、括弧(...)ではなく中括弧{...}で囲んでもよい。中括弧で囲む…

PHPで日付フォーマットのチェック。

php

環境 CentOS 7.0 PHP 5.6 以外とよく聞かれる、日付形式「yyyy-mm-dd hh:ii:ss」が正しいかチェックする方法。

javascript プロパティ属性

環境 CentOS 7.0 JavaScript 今までJavaScriptはきちんと勉強せず感覚で使っていなあ、とよく思う今日この頃。 プロパティ属性 オブジェクトの持つプロパティには、以下の属性を設定できる。 名前 役割 value 値 writable 書き込み可 enumerable 列挙可 conf…

正規表現の名前付きグループ

環境 CentOS 7.0 Perl 5.16 PHP 5.6 Java 1.8.0nbsp;scala 2.11.6 恥ずかしながら、正規表現のグループに名前を付けれる事を今まで知らなかった。 ・・・という事で幾つかの言語の書き方を調べてみた。 結果は全部 abc, 123, def abc, 123, def で上が、通常…

apache mod_aliasメモ

環境 CentOS 7.0 apache2.4.6 mod_aliasは使った事がなかったので、今更だけど調べてみた。 主に使いそうなのは Alias AliasMatch 違いはAliasMatchが正規表現を使えるところだけで、他は同じ模様。 という事は基本的にAliasMatchを使えばいいのかな? 速度…

php ReflectionClass::invoke()で参照渡しの関数を使う

php

環境 CentOS 7.0 PHP 5.6 久しぶりにphpでハマっていたのでメモ。 phpunitでテストを書くときに、privateやprotectedをテストするときに、ReflectionMethodクラスを使う。 このときに実行する関数の引数が、参照渡しになっているときにエラーがでてハマった…

Haskellまとめ

Haskellを勉強したときの記事まとめ ■すごいHaskellたのしく学ぼう 一度通読したけどしばらく放置して読書会に行ったら、さっぱり忘れていたので再読。 今度は忘れないようメモ。 型クラス、型クラス制約、型注釈など 言葉の定義まとめ(型クラス、型コンス…

Haskell 型クラス、型クラス制約、型注釈など

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」メモ 読了:第02章まで 型変数 ghci> :t head head :: [a] -> a このaを型変数と呼ぶ。 どんな型も取り得るという事を意味する。 型クラス 何らかの振る舞いを定義するインターフェース。 具体的…

Scala マップ / Map

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ マップ / Map Scalaの集合は 順序が存在しない 重複を許可しない ミュータブルとイミュータブルが両方存在する 基本はイミュータブル である。 ▽初期化 …

Scala 集合 / Set

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ 集合 / Set Scalaの集合は 順序が存在しない 重複を許可しない ミュータブルとイミュータブルが両方存在する 基本はイミュータブル 異なる型を要素に追…

Scala タプル

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ タプル Scalaのタプルは インデックスは1から始まる 順序が存在する。 要素は型が異なるものを使える ※タプルとして型は決まる。例えば一度(Int, Int)と…

Scala リスト / List

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ リスト / List Scalaのリストは インデックスは0から始まる 常にイミュータブル。初期化時以外は要素を変更できない。 ※値の追加、や連結は常に新しいリ…

Scala 配列 / Array

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ 配列 / Array Scalaの配列は インデックスは0から始まる 配列要素の型は決まっている である。 ▽初期化 scala> val ar1 = new Array[String](5) ar1: Ar…

Scala mainメソッド定義とコンパイル

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ main定義とコンパイル mainメソッドの定義 アプリケーションのエントリーポイント、Javaでいうmainメソッドの定義。 // Something.scala import Anythin…

Scala シングルトンオブジェクト(singleton objects)

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ シングルトンオブジェクト(singleton objects) Scalaは、Javaと違いクラスが静的メンバーを持たない。 その代わりにシングルトンオブジェクトを定義する…

Scalaまとめ

Scalaを勉強したときの記事まとめ ■Scalaスケーラブルプログラミング(コップ本) 読了:第17章まで 関数定義 関数リテラル メソッドパラメータ1個のときの省略記法 Warningメモ シングルトンオブジェクト mainメソッド定義とコンパイル 配列/Array リスト/Lis…

Sacala Warningメモ

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ Warning 結果型がUnitのときに、最終行でUnit以外の型を返す式を評価している scala> def f() { "this String gets lost"} <console>:7: warning: a pure express</console>…

Scala メソッドパラメータ1個のときの省略記法

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第03章まで ■ メソッドパラメータ1個のときの省略記法 for(i <- 0 to 2) の「0 to 2」の部分は (0).to(2) の省略形。 Scalaではメソッドのパラメータが1つのとき、ド…

Scala 関数リテラル

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第03章まで ■ 関数リテラル args.foreach(arg: String) => println(arg)) arg:Stringの:Stringは型推論。 ちなみに引数1個なら args.foreach(println) でも同じ。 注…

Scala 関数定義

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ 関数定義 def helloworld(s1: String, s2: String): String = { s1 + ", " + s2 } 上記はそれぞれ def 引数 hellowold 関数名 (s1: String, s2: String)…

vimのScalaのシンタックスを追加

環境 vim7.4&nbspScala 2.11.6 vimでScalaのsyntaxをチェックする。 NeoBundleを使っているなら、.vimrcに NeoBundle 'derekwyatt/vim-scala' を追加して「:NeoBundleInstall」するだけでOK。

Vimで「:NeoBundle commands usage is invalid」のエラー

vim

環境 vim7.4 vim-scalaを入れようとして、NeoBundleをUpdateしvimを起動しなおしたところ、突然以下のようなエラーが。 [neobundle] :NeoBundle commands usage is invalid. 調べてみたところ、以下のような変更があった模様。 Add error check usage of neo…

Node.js ワンライナーで実行。

環境 CentOS 7.0 Node.js 0.12.2Node.jsのインタプリタすら動かすのが面倒。 そういう時はワンライナーで実行する。 $ node -e "var str = 'Hello World'; console.log(str);"

CentOS7.0にNode.js最新版をインストール

環境 CentOS 7.0 Node.js 0.12.2 【追記2】 いまどきはNVMとかnodebrewを使うのがメジャーらしい。 【追記】 Node.jsとio.jsの統合で、Node.jsのバージョン表記が変わりました。最新版は、 https://nodejs.org/en/download/stable/ を確認してください。2016…

VirtualBoxでUbuntuが遅い、重い問題に対応する

環境 Ubuntu 15.04 VirtualBox 4.3.26VirtualBoxにUbuntuを入れたときに、やたら動作が遅い。もっさりしている。 確認 $ /usr/lib/nux/unity_support_test -p このコマンド実行結果の最後の部分が以下の画像のように全て「yes」なら以下の方法はすでに終わっ…

日本版Ubuntuでディレクトリ名を英語に変更する

環境 Ubuntu 15.04日本語版Ubuntuはディレクトリ名が初期状態では日本語になっている。 「Desktop」が「デスクトップ」のといったように。直すには $ LANG=C xdg-user-dirs-gtk-update // 言語を戻す $ LANG=ja_jp.UTF8 その後、再起動すると再度ディレクト…

Git運用 その2 / リモートのリポジトリを一発でcheckout

環境 git version 1.8.3.1リモートにあるリポジトリを一発でローカルに持ってくる方法。例えば $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/feature/sample1 remotes/origin/feature/sample2 のと…

vagrantでエラー

環境 CentOS 6.5 vagrantvagrantで立ち上げようとすると、以下のようなエラーが出る。 何度再セットアップしても同じ。 C:/Users/john-doe/.vagrant.d/gems/gems/json-1.8.2/lib/json/common.rb:155:in `encode': "\xEF\xBD" from Windows-31J to UTF-8 (Enc…

CentOS7にHaskell Platform最新版をインストール

環境 CentOS 7.0 haskell platform 2014.2.0.0 基本的に公式のマニュアルに従って実行する。 Haskell Platform for Linux最新のhaskell platformを公式から取得 $ cd / $ wget https://www.haskell.org/platform/download/2014.2.0.0/haskell-platform-2014.…

CentOS6.5にHaskell Platformをyumインストール

環境 CentOS 6.5 HaskellPlatform2.11.6 yumでのインストールは簡単。yumリポジトリをインストール $ cd /usr/src/redhat/RPMS $ wget http://sherkin.justhub.org/el6/RPMS/x86_64/justhub-release-2.0-4.0.el6.x86_64.rpm $ rpm -ivh justhub-release-2.0-…

Scala 2.11.6をrpmからインストール

環境 CentOS 7.0 Scala 2.11.6やっぱりREPL起動時のエラーが気になるので、Scalaを最新版にする事にした。 Scala 2.9.2をyumでインストール - takafumi blog既存のScalaとリポジトリを削除する。 $ yum remove typesafe-stack scala sbt g8 $ rpm -e typesaf…

Scala 2.9.2をyumでインストール

環境 CentOS 7.0 Scala 2.9.2Scalaを始めようと思い立ったので、typesafe-stackインストール。 TypesafeStackとは、Scalaなどの最新ソフトウェアプラットフォーム。まず Typesafe Yum Repository にあるリポジトリをインストール。 $ cd /usr/src/redhat/RPM…

phpDocumentorをインストールして使ってみる

環境 CentOS 7.0 PHP 5.6 phpDocumentor 2.8.2簡単にphpDocumentorを使ってみた。 phpDocumentorComposerを使ってインストールもできるが、もっと簡単にpharを使う。pharをダウンロード $ cd /path/to/bin $ wget http://phpdoc.org/phpDocumentor.phar . $ …

Windowsのhostsが反映されない

環境 Windows 7WindowsでもLinuxでも、hostsファイルは書き換えればすぐに反映されるものと思ってたが、最近なぜか反映されない事が多い。 ウィルス系ソフトが影響しているっぽいが、かといってウィルスソフトを止めるワケにもいかない。とりあえず対策。 コ…

Java最新版をインストール

環境 CentOS 7.0 Java1.8Javaも最新版をインストールしたい。 と思って調べたらOracleのrpmがあったので入れ替え作業。yum installした既存のjavaを削除 $ yum remove java* rpmをダウンロードしてインストール $ cd /usr/src/redhat/RPMS $ wget "http://do…

PHP5.3~5.6の新機能を確認

php

環境 PHP 5.3 PHP 5.4 PHP 5.5 PHP 5.6 PHP5.3~5.6の新機能をざっと確認。【PHP5.3~】名前空間 【PHP5.3~】遅延静的束縛 【PHP5.3~】goto文 【PHP5.3~】【PHP5.4~】クロージャ(無名関数) 【PHP5.3~】class外でのconst定義 【PHP5.6~】定数式 【PHP5.3~】三…

ソースインストールしたPHPをapacheで使えるようにする。

環境 CentOS 7.0 apache2.4.6 PHP 5.6PHPのソースインストールは以下の通り。CentOS7にPHP5.6をソースからインストール - takafumi blogapacheで使えるようにするには、httpd.confに AddType application/x-httpd-php .phpLoadModule php5_module /usr/lib64…

Git運用 その1 / pushしてもリモートリポジトリに反映されないとき

Git

環境 git version 1.8.3.1pushした際にリモートリポジトリに反映されない場合。 具体的には、以下のようなメッセージが表示されるとき。 $ git push No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'ma…

PHPUnitでprotected、privateのテスト

php

環境 PHP5.2 PHP5.3.2PHPUnitでprotectedやprivateのメソッドをテストする方法についてまとめる。php5.3.2以降ならReflectionを使うことができるので、意外と簡単にできる。 PHP: リフレクション - Manual問題はそれ以前のバージョン。 普通の手法では対応で…

MySQL/MariaDB サーバー文字コードの優先度

環境 CentOS 7.0 MariaDB 5.6 ※ここで使用しているのはMariaDBだが、設定はほぼ同じなのでMySQLとして扱う。 ■文字コードに関する記事 MySQL/MariaDB 文字コードの自動変換 MySQL/MariaDB 文字コードの設定 MySQL/MariaDB 文字コードの破壊と文字化け対策 My…

MySQL/MariaDB 文字コードの破壊と文字化け対策

環境 CentOS 7.0 MariaDB 5.6 ※ここで使用しているのはMariaDBだが、設定はほぼ同じなのでMySQLとして扱う。 ■文字コードに関する記事 MySQL/MariaDB 文字コードの自動変換 MySQL/MariaDB 文字コードの設定 MySQL/MariaDB 文字コードの破壊と文字化け対策 My…

MySQL/MariaDB 文字コードの設定

環境 CentOS 7.0 MariaDB 5.6 ※ここで使用しているのはMariaDBだが、設定はほぼ同じなのでMySQLとして扱う。 ■文字コードに関する記事 MySQL/MariaDB 文字コードの自動変換 MySQL/MariaDB 文字コードの設定 MySQL/MariaDB 文字コードの破壊と文字化け対策 My…

MySQL/MariaDB 文字コードの自動変換

環境 CentOS 7.0 MariaDB 5.6 ※ここで使用しているのはMariaDBだが、設定はほぼ同じなのでMySQLとして扱う。 ■文字コードに関する記事 MySQL/MariaDB 文字コードの自動変換 MySQL/MariaDB 文字コードの設定 MySQL/MariaDB 文字コードの破壊と文字化け対策 My…

CentOS7.0にMariaDBをインストール

環境 CentOS 7.0 MariaDB 5.6CentOS7からはmysqlではなくmariadbが標準DBとしてなっているので、インストールしてみた。mariadbをインストール $ yum install mariadb mariadb-service サービス確認 serviceコマンドではなく、systemctlを使う $ systemctl s…

Git入門 その21 / git checkout / ブランチの切り替え、リビジョンの切り替え

Git

環境 git version 1.8.3.1 ■ git checkout ▽ブランチを切り替える2つのブランチmaster,issueが存在するとき、masterからissueにブランチを切り替える $ git branch issue * master $ git checkout issue * issue master ▽リビジョンを切り替える $ git log -…

Git入門 その20 / git branch / ブランチを作成、確認

Git

環境 git version 1.8.3.1 ■ git branch ブランチを作成する。 実際にはbranchをどう運用するかが問題な気がする。 $ git branch <branchname> ローカルブランチを確認 「*」付が現在のbranch。 $ git branch issue * master リモートのブランチを確認 $ git branch -r o</branchname>…

neocompleteを使うために、luaを有効にしたvimの最新版をインストール

環境 CentOS 7.0 vim7.4CentOSでneocomplete.vimを入れてるために、luaを有効にしてvimの最新版をインストールする。vimがインストールされている場合はアンインストールする。 $ yum remove vim-enhanced 必要モジュールのインストール $ cd /usr/local/src…

Linuxのjava-1.x.x-openjdkは、WindowsのJREだった

環境 CentOS 7.0 Java1.7いつもはWindowsでJavaを書いていたんですが、LinuxにもJavaを入れておこうと思ったらいきなり躓いた。LinuxでJavaをインストールするには $ yum install java-1.7.0-openjdk とする。 が、jdkと付いているにも関わらず、これはWindo…

Git入門 その19 / git add -p , git reset -p / 一部だけ変更を反映する & 一部だけ取り消す

Git

環境 git version 1.8.3.1 ■ git add -p 変更の一部だけステージングに乗せる。以下のように-pオプションを追加し、git addする。 $ git add -p hoge.txt diff --git a/hoge.txt b/hoge.txt index 67ea492..fa00e52 100644 --- a/hoge.txt +++ b/hoge.txt @@…