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を使って、リアルタイムチャットをつくってみた。

続きを読む

WantedlyのSpring intern2016に行ってきた

3月2日から4日までの3日間にWantedlyさんのSpring intern2016に参加してきました。
Wantedlyさんは、【シゴトでココロオドル】をコーポレートミッションに掲げていて、ビジネスSNSのWantedlyやビジネス用グループチャットSyncを展開されています。
wantedlyのオフィス
インターンの内容や感想、Wantedlyさんの印象をまとめてみました。

続きを読む

nodebrewでnodeとnpmのバージョン管理しよう(Mac編)

最近nodejsのアップデートの頻度が激しいですね。
nodejsとnpmのそのもののバージョンを管理するnodebrewは結構便利ですので、紹介します。

nodebrewをインストール

Homebrew経由でnodebrewをインストールし、セットアップで.nodebrewを作成します。

$ brew install nodebrew
$ nodebrew setup

次に、nodebrewのパスを通します
.bash_profileもしくは.zshrcに以下の文を追加)

export PATH=$HOME/.nodebrew/current/bin:$PATH

そしてお決まりのやつを実行(設定を有効化)

$ source .bash_profile( or .zshrc)

最後にパスが通っているかを確認
続きを読む

Vagrantでマウントに失敗するときの解決法

vagrant up でマウントでこけたとき、Guest Additionsを再ビルドすることで、解決できる。

下記のようなエラー

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

The error output from the last command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

続きを読む