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

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

続きを読む

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

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

event-model

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

続きを読む

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

続きを読む

最近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 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

続きを読む

Laravelを使った開発ではおなじみのHomesteadをプロジェクトごとに入れたときのあれこれやHomesteadの環境のDBのデフォルトの情報などを残しておきます。

boxのインストール

とりあえずhomesteadのboxがない人はこれを

$ vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

Laravel4.2のインストール

composerを使ってLaravelを入れましょう

$ composer create-project laravel/laravel {プロジェクト名} 4.2 --prefer-dist
$ cd {プロジェクト名}
$ composer install

続きを読む

JavaScriptはプロトタイプベースのオブジェクト指向だといわれてるが、他言語(クラスベース)と同様にnew演算子を使ってオブジェクトを作ることが可能なのですが、newが原因でバグを生み出し探しまわるのに時間をかけるはめになってしまうなんてことも。。。

newがなぜいけないのかという解説は、別のところにまかせて今回は、Object.createメソッドを使ったオブジェクトの生成とその一歩先をいったオブジェクトの生成法であるファクトリ関数を作成するところまで紹介します。

続きを読む

MacでAndroid開発時に必要なツールと設定

  • JDK
  • JAVA_HOMEの設定
  • Android Studioのインストールとセットアップ

JDKのインストール

まず、Android Studioを動かすには、JDKが必要なので、JDKをインストールしていきます。
続きを読む

Gitのおさらい

  • パッチモード
  • 空のディレクトリを管理
  • 差分を確認する
  • 過去のコミットを操作する

パッチモード

パッチモードとは、ワーキングツリーの変更のあったファイルの差分を表示してくれて、その変更を追加するかどうかを選べるモード。
あるファイルを変更したけれども、その変更を一つのコミットにしたくないときに使えます。
パッチモードを立ち上げるコマンドは以下です。

$ git add -p

このコマンドを叩くと差分を表示してくれて下の方に

Stage this hunk [y,n,q,a,d,/,s,e,?]?

続きを読む