2017-01-01から1年間の記事一覧
Rを使って度数分布表を表示してみます。
達人SQL1-10の「集合にきめ細かな条件を設定する」のまとめです。
達人SQL1-10の「欠番を探せ:発展版」のまとめです。
達人SQL1-10の「一意集合と多重集合」のまとめです。
達人SQL1-10の「各隊、隊員点呼!」のまとめです。
今回は、達人SQL1-9の「連続した特定条件を満たす数列の抽出」をまとめる
前回、連続した番号をもったビューの作り方をまとめた。 今回は、これを使って「特定の数列の中から欠番を求める」というのをまとめる。
「達人に学ぶ SQL徹底指南書」の1-9の連番の作り方を読んだまとめ。
全称量化は「全ての行について〜」となっている表現のことで、これをSQLで実現する場合は「〜でない行が1つもない」という2重否定に変換する。 まずは、以下のようなテーブルについて考える。 id title score 1 A 100 1 B 80 1 C 80 2 A 80 2 B 95 3 A 40 3 …
「達人に学ぶ SQL徹底指南書」の1-4を読み終わった。 この章のタイトルは「HAVING句の力」となっていて、HAVING句を利用して集合の状態を調べるということを実践している。 ここでは、本の中に出てきた「歯抜けの有無の確認」「最頻値を求める」「中央値を求…
今読んでいる「達人に学ぶ SQL徹底指南書」の中でNULLの扱い方について出てきた。 これまで「IS NOT NULL書いとけばえんやろ!」ぐらいにしか思ってなかったので、いろいろ衝撃を受けた。 たとえば、以下のようなテーブルがあるとする。 name score cat 100 …
達人に学ぶSQL徹底指南書 これはSOFT SKILLSを読んで「専門性をつけなくては!」と思った時に、「そういえば周りにデータベースを専門にしているエンジニアが少ないな」と思ったのでデータベースに詳しくなっておけばいいことがありそうだと思って読み始めた…
去年から読んでいたPHPプログラミング本がようやく読了できた。 この本は広くいろいろなアルゴリズムをPHPで実装する方法が紹介されている。 各アルゴリズムの理論的な紹介もあり、またそれぞれのアルゴリズムを実装するのに便利なライブラリの紹介もしてい…
出口治明さんの「「思考軸」をつくれ」を読了した。 何かを決めたり考えたりする時の判断基準となる「思考軸」をどのようにして作っていくかということが、出口さん本人の経験を元に書かれている。 また、幾つかの思考軸を提案しながら、これらを実際の事象…
SQLでテーブルの一部だったり集計結果を使って表を作りたい時、with構文が非常に役に立つ。 WITH tmp1 as (SELECT COUNT(*) cnt, date FROM t1 GROUP BY date), tmp2 as (SELECT COUNT(*) cnt, date FROM t2 GROUP BY date) SELECT tmp1.date, tmp1.cnt, tmp…
fish shellを使い始めて約一月、ようやくfor文の書き方を覚えた。 $ for i in 1 2 3; echo {$i}; end 1 2 3 bashと比較して、少しプログラミング言語の文法に近づいた印象。 参考: fish: Tutorial
PHPの出力関数のprint_rが気になったので調べてみた。 これは引数に渡された変数の情報を詳しく表示し、配列などの場合には含まれる要素の情報をわかりやすい形で出力してくれる。 また、同様の関数var_dump、var_exportとの違いは出力形式の違いとのこと。 …
IntelliJは便利で良いのだが、javaアプリなのでいかんせん重い。 調べたら簡単にヒープサイズを変更できたので、修正した。 $ vi /Applications/IntelliJ\ IDEA.app/Contents/bin/idea.vmoptions # -Xmx1024m ← これを修正 参考: Mac上のIntelliJの動作が重…
ログの集計をしていると重複行があって上手くいかなかいことがあった。 簡単なcsvだったので、プログラムを書くよりもbashでやりたいなと検索したら、awkでよろしくやっている記事を見つけたので真似してみた。 $ awk '!a[$0]++' access.log > access_uniq.l…
bashで四則演算しようとした時に、mathというコマンドがあるということを初めて知った。 こちらに書いてあるように、実体はbcコマンドのラッパー。 Mac上でターミナルは常に開いていて、簡単な計算をbashでやりたいと思っていたので、今後活用できそうだ。 $…
最近のMacには標準でapacheが入っている。 こいつの設定ファイルは/etc/apache2/httpd.confにある。 次に、HomeBrewを利用してapacheをインストールした場合。 この設定ファイルは/usr/local/etc/apache2/$version/httpd.confにある。 混乱しがちなのでメモ。
Pythonの深層学習ライブラリのKerasを使ってみた。 TensorflowやTheanoをベースにして、より簡単にモデルを作ったり拡張したりできるとのこと。 いつもお世話になっているサイトのMNISTとCIFARの実装を写経させてもらった。 たしかにモデルは各層をaddで追加…
実装上で配列・連想配列などで実装されているものをファイルなどに出力する場合、文字列に変換する必要がある。 PHPではserialize・unserializeを使用して、文字列への変換と読み込みを行う。 ['name'=>'Taro', 'age'=>18], 'user2'=>['name'=>'Jiro', 'age'…
csvファイルをRDB等に入れずにそのまま集計しなければいけない需要があり、調査してみた。 最終的に、こちらを参考に実装。 bash-3.2$ cat group.csv a,1 b,1 a,2 b,3 b,2 c,1 c,2 bash-3.2$ < group.csv awk -F',' '{ if($0 !=""){ a[$1]+=$2;}}END{for(i i…
簡易なREADMEをつくるためのスクリプトを作った。 #! /usr/bin/env bash cat << EOF > README.md # PROJECT_NAME ---- ## Description ## Licence MIT ## Author [piruty](http://piruty.com) EOF ディレクトリ直下にREADME.mdというファイルを作り、その中…
僕は仕事時間の計測にtogglというサービスを利用している。 このサービスにはWebAPIが用意されているので、pythonでこれを実行するスクリプトを書いてみた。 import requests import pprint import sys API_TOKEN = 'your-api-token' def get_toggl(): heade…
ひさびさに、PHPでのファイルの読み書きに遭遇した。 仕事でも使うが普段は独自のラッパーを定義して使っているので、素のコードでは久しぶりに書いた。 ちなみに、PHPでのファイルの読み書きはこんな感じ。
Pythonの辞書型は中の順序が何順で並んでいるかは保証されていない。 従って、辞書のkeyやvalueを元に並び替えが必要な場合は少し気にしてやる必要がある。 d = {"a": 100, "c": 10, "0": 500} # keyでソート for key, value in sorted(d.items()): print("{…
これまでhomebrewでインストールしていたRを使用していたが、パッケージインストール時にエラーが頻発したので公式のパッケージのものでインストールし直した。 まずは、brew uninstall r -fでbrew経由でインストールされたRをアンインストール。 次に、rm -…
IntelliJは非常に優秀なのだが、Djangoを扱う場合はDjangoプロジェクトと認識させていないとモジュールのインポートなどでエラーを吐きまくる。 実行自体には問題ないのだが、実装していて気になって仕方なかったのでDjangoプロジェクトとして登録することに…