pandasの覚え書き

pandasのまとめ

pandasを使ってデータをこねくり回す時に、とりあえずこれだけは覚えておけばなんとかなるってやつを忘れないようにメモしておきますmm

読み込み編

csvの読み込み

pd.read_csv(file_name)
パラム 意味
header ヘッダの有無(デフォルトはtrue)
names ヘッダに名前をつける
delimiter 区切り文字(tsvの場合は \t)
delim_whitespace 空白文字をデリミターにする場合に使う
skiprows 先頭から何行スキップするか
skipfooter 末尾から何行スキップするか

続きを読む

コンテナ型仮想化

コンテナ型仮想化

コンテナ型仮想化とは何か

Dockerでよく聞くコンテナ型仮想化を「よくわかんないけど、従来の仮想化よりもオーバーヘッドが少ないんでしょ」程度にしか理解していなかったので、まとめてみた。

コンテナとは、1つのOS環境に分離された空間を作成しその分離された空間ごとに異なるOS環境を実現することができ、コンテナによってマルチOS環境を実現することができるため、複数のOSを必要とする場合でも1つのOS環境に集約できるというメリットがある。

続きを読む

ACMでSSL発行するときにメールサーバがないときは、SESを使おう

Route53でドメインを取得して、ACM(AWS Certificate Manager)でSSLを無料で発行して、ELB(Elastic Load Balancing)に設定したいなんてことをしようとしたら、ACMでSSL証明書発行時のドメイン認証メールを受け取る環境をつくらなくてなならず、そのためにメールサーバを構築するのもEC2を使うのもめんどくさかったので、SES(Simple Email Service)を使ってメールを受信する環境を用意しました。
今後のために備忘録程度にまとめておきます。

続きを読む

jupyter notebookでいい感じに分析しよう

jupyter notebookを使うまでの準備

jupyter notebookは、ノートブック形式で作成したプログラムを実行し、実行結果を記録しながら、データの分析作業を進めるためのツールです。ブラウザ上で気軽に試せる感じいいっすね!

Jupyterを動かすには、様々なパッケージが必要なので、あらかじめそれらをパッケージしてくれているAnacondaというpythonのディストリビューションを使ってやります。
続きを読む

HTML 5.1 ざっくりとしたまとめ

2016年11月1日付でW3CがHTML5.1を勧告しました。
ブラウザ側の対応はまだまだですが、こんなことがHTMLでできるようになったということだけでも知っておこうと思い、ざっくりとまとめました。

ちなみに、HTML5からの変更差分はこちらにまとめられています

続きを読む

MongoDBの使いどころ

NoSQLの代表格となっている、MongoDBですがよく使われているけど、NoSQLという特徴以外に、その他は、あまりよくわかっていなかったのとMongoDBは、よく高機能と言われますが、具体的に何が高機能なのか、よくわかっていなかったので、調べてみました。

MongoDBの特徴

RDB以外のデータベース管理システムを指すNoSQLと呼ばれれるデータベースに分類されるものです。
RDBは列構造でデータを保存しますが、MongoDBは、JSONを拡張したBSON形式でデータを保存します。
配列や階層構造などのリッチなデータ構造に対応しています。 BSONはJSONでは表現できないバイナリデータを扱うBinData型や、Date型などのデータ型にも対応しており、MongoDBはこのような構造的なデータが扱えるドキュメント指向データベースに分類されています。

続きを読む

仮想化の基礎のおさらい

クラウドサービスでも使われている

クラウドサービスといえば、Amazon Web ServiceやGoogle Cloud Platformなどがあり、最近はどちらも様々なサービスが豊富にあり、より複雑になってきています。様々なサービスを組み合わせることでできたアーキテクチャなどもあります。

クラウドの基盤となる仮想化技術のお話を軽くおさらいしていきます。

続きを読む

HTTP/2の概要

HTTPの歴史

HTTPの初めのバージョンは、Webサーバとともに誕生したHTTP/0.9です。
HTTP/0.9では、ほんとうに必要な機能しか持っておらず、リクエスト内容もメソッドと取得先のパスのみで、そのメソッドもGETしかありませんでした。
また、レスポンスのヘッダの規定もなくシンプルにドキュメントを返すのみのメッセージ構造でした。

そしてHTTP/1.1までのバージョンアップによって現在のようなWebシステムにおいて必要不可欠な機能が実装されるまでにいたっています。
また、セキュリティ面の要請からSSL2.0がNetscape Navigator1.1に実装されたのが1994年です。SSLは、TCP/IPプロトコルスタックのトランスポート層の上にセッション層を追加する形で登場し、HTTPをはじめとするアプリケーション層すべてのプロトコルで恩恵を受けることができました。

続きを読む

HTTP1.1のメソッドまとめ

HTTPメソッドってGETとPOST以外にあと何があった?

Webアプリケーションを開発するうえで、HTTPについてあまり意識しないで開発をしている人が多いのではないでしょうか?
もちろん、私もその一人ですw
HTTPメソッドって、GETPOSTのやつでしょ!?的な感じで、他にわかるのは、かろうじてPUTDELETEくらい、、、
他にもHTTPメソッドはあるけど、使ったことがあるかどうかもよくわかんない状態だった、、、
また、効率の良いWebアプリケーションを開発したり、技術的に正しい挙動をするWebアプリケーションを開発する上では、HTTPメソッドについて詳しく知っていることが必要不可欠と感じたので、HTTPメソッドについて調べてみた。

続きを読む

Node.jsとWebSocketでリアルタイムチャットをやってみた

Node.jsでWebサーバを構築するメリット

Node.jsでは、リクエストを処理するときに、イベントループというモデルを採用しており、シングルスレッドで対応します。
イベントが発生するとイベントキューに積まれていき、イベントループで積まれているイベントを処理していきます。Node.jsでWebサーバを構築すると、多重プロセスモデルに比べて、大量のクライアントからの接続を維持できるというメリットがあります。
その反面、CPUを大量に消費するような重たい処理を行うとイベントループが止まってしまうので、そのような処理をするときにはNode.jsは向いていません。

event-model

そんな感じで、Node.jsの大量のクライアントからの接続を維持できるというメリットをいかしWebSocketを使って、リアルタイムチャットをつくってみた。

続きを読む