はりうすブログ (のすけのメモ)

湘南にある小さな会社 代表 ”のすけ”のブログです

Node.jsのExpress入れてみる。WebStormで

こんにちは、のすけです。

Node.jsのWebフレームワークであるExpressを入れてみました。

以前紹介したようにhttp.createServerで簡易的にはサーバを作れるのですが、ルーティングとかを考えるとWebフレームワークを使った方が楽だと思います。

今回は、Expressプロジェクトの内容が知りたかったので、かなりずるい方法で環境を構築します。

WebStormを使う

はい。WebStormを使います。WebStormはHTML用のIDEです。(なんかPhpStormでもモジュール入れればいけるらしい)

HTML,CSS,JSを書く場合に威力を発揮します。

WebStormはNode.jsにも対応しているので、これでサクッと作っちゃいます。

こちらからダウンロード。

www.jetbrains.com

僕はWebStorm8のライセンスを持っているので8で作ります。最新は11だった。

起動

f:id:hollywis:20160204092134j:plain

*この画像はすぐ消えるので上手く撮れなくて適当に拾ってきました。

環境を選択。テーマはDarculaを選びました(背景が黒いやつです)

f:id:hollywis:20160204092214p:plain

Create New Projectを選択。画像はちょうどCreate New Projectが切れてしまった(上の方にあります)。

f:id:hollywis:20160204092349p:plain

プロジェクト名を入れて、project type をNode.js Express Appに

f:id:hollywis:20160204092505p:plain

Node interpreterを選んで、versionは4.13.1にしました。

Viewのtemplate engineはjadeを選びました。cssはplane css

f:id:hollywis:20160204092739p:plain

するとこんな感じでプロジェクトができました。

f:id:hollywis:20160204092803p:plain

binの下のwwwが起動用jsで、app.jsがアプリケーション全体の設定。

routes下のindex.jsusers.jsがそれぞれのルーティングに対応したjsっぽいですね。

viewsの下にjadeファイルがありました。

node_modulesの下を覗くといっぱいjsのライブラリが・・・。Expressがjsライブラリの集合体であることがわかりますねぇ。

package.jsonを覗いたらこんな感じだった。

{
  "name": "node-test001",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.13.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "jade": "~1.11.0",
    "morgan": "~1.6.1",
    "serve-favicon": "~2.3.0"
  }
}

そして、MenuのRun -> Run をクリックすると。binしたのwww.jsを叩いてlocalhost:3000でnode.jsを起動してくれます。

ブラウザで開くと、index.jadeのやつが表示されました。

f:id:hollywis:20160204093306p:plain

おしまい。

人気の端末 Rasberry Pi2でLチカしてみる

こんにちは、のすけです。

Arduinoと人気を分ける多機能IoT端末 Rasberry Pi2を手に入れたので動かしてみました。

Rasberry Pi 2起動

f:id:hollywis:20160203114853j:plain

Rasberry Pi 2はLinuxベースのマシンですので、LinuxのOSで動かせます。

ただ専用のOSが用意されており、それがDebianをベースにした「Raspbian」です。大抵はこのOSを入れて動かすことが多いです。

起動画面もLinuxそのもの。

Rasberry Pi 2には、CPU,メモリ,GPU,SDカード(ストレージ),LAN,USB端子4つが付いており、ほぼPCと遜色ありません。 また、GPIO端子も付いているので電子工作も可能と最強の端末です。

ちなみに、僕の端末にはブラックを基調とした外装を施してあり、CPUとかにもヒートシンクをつけてあります。これで静電気対策や熱対策はバッチリ、ついでに見た目もカッコよさげです。

f:id:hollywis:20160203115647j:plain

なお、PCディスプレイとは画像上部のHDMI接続しています。HDMI端子が付いているなんで凄いですよね。

他にもUSB端子に無線LANモジュールやらマウス用のレシーバやらが刺さっています。USBで色々拡張できるのもRasberryPi2のいいところ。

f:id:hollywis:20160203120129j:plain

起動しました。こちらがデスクトップ画面。

ただのPCですね。

Lチカ回路の作成

起動したので、Lチカ回路を作ります。

適当に抵抗を噛ませて、GPIO端子からLEDと抵抗を通ってGNDに接続させます。

回路図はArduinoとかでやっているのと同じなので、そちらをご参照ください。

hollywis.hatenablog.com

f:id:hollywis:20160203120419j:plain

こんな感じで繋ぐ。

LEDを光らせる

では、光らせてみましょう。

簡単です。専用のファイルに0,1を書き込むだけのイメージです。

まずはコンソールを開いて次のように打ちます。

pi@raspberrypi ~ $ sudo echo 23 > /sys/class/gpio/export
pi@raspberrypi ~ $ ls /sys/class/gpio/
export gpio23 gpiochip0 unexport
pi@raspberrypi ~ $ sudo echo out > /sys/class/gpio/gpio23/direction
  • 1行目はGPIO端子の23番を使うよ!と宣言しています。

  • 2,3行目はgpioディレクトリ以下にgpio23のディレクトリができているのを確認しています。

  • 4行目はgpio23outつまり出力として使うよ!と設定しています。

準備ができたので、あとはgpio23の設定値をvalueに書き込んでやればOKです。

pi@raspberrypi ~ $ sudo echo 1 > /sys/class/gpio/gpio23/value
pi@raspberrypi ~ $ sudo echo 0 > /sys/class/gpio/gpio23/value
pi@raspberrypi ~ $ sudo echo 1 > /sys/class/gpio/gpio23/value
pi@raspberrypi ~ $ sudo echo 0 > /sys/class/gpio/gpio23/value

1でLEDがオン。0でLEDがオフです。

f:id:hollywis:20160203120937j:plain

すると、、、

光ったり。

f:id:hollywis:20160203122219j:plain

消えたり。

f:id:hollywis:20160203122308j:plain

できました。

あとは、冒頭で動画で紹介したように自動でチカチカさせるにはPythonとか適当な言語で 上記のコマンドを入力するようにしてやれば自動Lチカもできます。

f:id:hollywis:20160203120725j:plain

コツは0入力と1入力をする部分をループ化して、間に1秒程度の待ちを入れてあげることです。

なかなか便利なRasberry Pi2。今度はネット越しで制御させてみようかなぁ。

MacのELcapitanでL05Aを使ってネットに接続する(DTIのsimで)

こんにちは、のすけです。

DTIのsimがなんか半年無料で使えるとかいうキャンペーンがあって、ついつい申し込んで手に入れてしまいました。 ユビキタスプロバイダ DTI: 料金は大手最安値帯 2回連続No1評価獲得

そこで、このDTIのsimを有効活用するためにMacbookに挿してインターネットに接続してみました。

2500円(端末代他)+3000円(初期費)で半年間ネット接続がMacbookからできるなんて凄すぎ。。。しかも毎月 3GBとか。

Macbookにsimを挿すには

iPhoneiPadのようにMacbookにsimがそのまま挿せればいいのですが、残念ながら挿すところはありません。

そこで、先日手に入れたDOCOMOのUSBモデム「L05A」にsimをに挿して使おうとしました。

L05Aはこやつ。Amazonで中古品を1800円で購入。激安ですね。

このUSBモデムにsimを挿して、MacbookとUSB接続して連携するという寸法です。

なお、L05Aは標準SIM(mini-SIM)なのですが、DTIにはnano-SIMで注文してしまったので、下駄を履かせています。

使ったのは↑です。他にも安いやつがあるみたいですが、評価が良かったので。

L05AはOSX 10.9(OS X Mavericks)までだった

しかし問題が、、、

、、、

僕が持っているMacのOS10.11(OS X El Capitan)ではドライバがないということがわかりました。

L-05A | お客様サポート | NTTドコモ

こちらからドライバとMac用の接続ツールが配られています。

OSX 10.9(OS X Mavericks)までしか対応していません。

一応ダウンロードしてインストールしてみましたが、接続ツールを起動しても「端末初期化中・・・」がずっと続いて全く使えません

なんてこった><;

YosemiteやELcapitanで使う方法

そりゃ、DOCOMOさんはこんな古いUSBモデムはもうサポートしないでしょうし、ドライバももう出ないでしょう。 そんなわけで、接続ツールを使わないで僕のMac10.11.2(OS X El Capitan)をインターネットに接続させてみました。

多分Yosemiteでもいけると思います。

接続ツールをアンインストール

まずDOCOMOの接続ツールをインストールしていたら、アンインストールします。

もし、入れていなければこの手順は飛ばして大丈夫です。

アンインストールは、接続ツールのインストール用zipの中に入ってます。

端末をMACに接続して、Finederからデバイスを取り出す

まずは端末をMACのUSB端子に挿します。

f:id:hollywis:20160122133925j:plain

MacbookはUSB Type-cなのでハブみたいのに接続してますが、AirとかProなら直接させばOKです。

そしてFinederを開いて、デバイスのDOCOMOというやつ右にある取り出しマークを押します。

f:id:hollywis:20160122134207p:plain

ネットワーク環境設定で接続設定を記述

次にネットワーク環境設定を開きます。するとL05Aのやつが3つ出てきました。

f:id:hollywis:20160122134347p:plain

この1番上のやつを選択して、構成のところで「構成を追加」を押します。名前は「L05A」とかにして作成します。

f:id:hollywis:20160122134547p:plain

次に右下の「詳細」を押します。

f:id:hollywis:20160122134347p:plain

モデムのタブのところで、「機種」を「GPRS(GSM/3G)」に、APNを「dti.jp」にします。*他のsimならそのsimのAPN設定を入れる感じです。

そして「OK」を押す。

f:id:hollywis:20160122134652p:plain

次に「アカウント名」と「パスワード」を入れます。DTIならdtidtiです。

f:id:hollywis:20160122135205p:plain

最後に「接続」を押せば、インターネットに繋がります。やったーー!

f:id:hollywis:20160122135339p:plain

速度はどんなもんかな?

Wifiの接続を切ってから、速度を測定するサイトで見てみました。

f:id:hollywis:20160122140024p:plain

1.11Mbps あんまり速くないけど、ブラウジングとかなら問題なさそうですね。

Wifiが使えないカフェとかで活躍しそう!

新宿の電源wifi付きカフェ BASE POINTに行ってきました

こんにちは、のすけです。

たまたま用事があって新宿に行きました。その際に、せっかくだからこの辺りで仕事できるコワーキングというか電源カフェないかなぁと探したところ、見つけました。

その名も、BASE POINT(ベースポイント)

新宿・貸し会議室・電源ノマドカフェ「BASE POINT」(ベースポイント)

いかにも、自分のBASE(基地)にしてくださいといった感じのネーミングでホームページを見たところ良さげだったので行ってきました。 f:id:hollywis:20160119143932p:plain

ちょっと奥まったところにある

f:id:hollywis:20160119144031p:plain

新宿の北西、新宿駅より西新宿駅の方が近いかもしれません。昼間に行ったのですが、ちょっと奥まった狭めの道のある場所にあり、営業マンや配達のおじさんが行き交う感じの中小企業が集まるエリアといった場所にありました。

大通りに面しているというわけでもなく中の様子も見えないので、ホームページで事前に調べていなければ入るのに若干勇気がいる感じです。

中はこんな感じで、かなりイケてます。

f:id:hollywis:20160119144917j:plain

変わったシステム

まず、入って認識しなければいけないのが、この店特有のシステムです。

ありていに言えば、漫画喫茶みたいなシステムです。

基本的には時間制のカフェとなっています。10分毎に従量課金です。お値段は2時間で1000円ほど。

また、パック料金もあり3時間や1時間、1日コースもあります。漫画喫茶式ですね。。

そして、料金にはフリードリンクがついてきます。やっぱり漫画喫茶式ですね。。でも、漫画はありません><;

ここはあくまでご飯を食べたり、仕事したり、勉強する場所ですので、当然かもしれません。漫画がずらっと並んでいたら仕事どころじゃないですし

あとは、ランチプランなんのもありました。これは「時間60分とランチ」がセットになったものです。このランチプランを頼んだ場合には、フリードリンクと60分居座れる権利とランチがついてきます。お得ですね。

メニューはタコライスとかそういう、おしゃれカフェ的なメニューでした。

http://b-pt.jp/wp-content/themes/basepoint/images/food/lunch_01.jpg *HPより引用

僕は食べていないので、味はどうなんでしょうか。店内の数名は食べている感じでした。

60分じゃ足りないよって人は、普通に従量制やセットにして、フードを単品で頼んでくださいとのことでした。

電源がどの席にもある

実はこの、「電源がどの席にもある」というのはかなりの重要なポイントです。

よくある電源カフェなんかは、一部の席だけ電源があるだけでそこが埋まっていると充電できない!!みたいなことになります。わざわざ電源カフェを探してきたのに埋まってるし。。。とか辛いですよね。

でも安心してください!このカフェはどの席にも電源ありあります。コンセントから遠い場所には電源タップで延長されていて椅子のすぐ場所に置いてあったりします。

また、店の真ん中あたりでは電源が天井からぶら下がってるので、安心です!

f:id:hollywis:20160119150035j:plain

しかも、小学校とか中学校とかにあったやつ!!

懐かしい、引っ張るとカチカチ音を鳴らしながら下がってきます。

WiFi完備

電源があれば、あとはwifiも欲しいところですがバッチリありました。壁にSSIDとパスワードが張ってあるので誰の目にも明らか!セキュリティとかは、ご愛嬌という感じです。

f:id:hollywis:20160119150456p:plain

速度もなかなか速いです。

でも思ったほどPC利用者は少なかったですね。勉強とかしている人と半分半分でした。

平日の昼間に行ったのですが、結構席は埋まっていました。でも勉強だったりPCだったりしているので、店内は比較的静かですね。作業する場所という感じです。

細部にこだわりあり

僕の中でいいなぁと思ったポイントなのですが、フリードリンクのコップがステンレスコップでした。

漫画喫茶とかによくあるフリードリンクのコップは、透明なプラスチックのやつですけど、あれだとありがたみが薄いですよね。ステンレスコップだと、コップがよく冷えるため口当たりが良くドリンクが美味いです。氷も全然溶けないですしね。

f:id:hollywis:20160119150639j:plain

素晴らしい。

おみくじが引ける

会員になるとセットプランが使えるので、会員になりました。会費は¥150で安かった。

QRコードで登録画面に飛んで、名前とメアドを入力して登録完了です。

こちらが会員用の画面 f:id:hollywis:20160119153211p:plain

システムはWebで作られていて、ポイント機能もついているようです。デザインは全体的にbootstrapっぽい印象。多分レスポンシブ。

職業病でこういうwebシステムみたら分析してしまいます;

下の方に「おみくじを引く」とかあったので押してみました。

f:id:hollywis:20160119153150p:plain

一等兵。。。BASE(基地)に掛けているのでしょうか。

「訓練で汗を流したぶんだけ、実戦で血を流さなくてすむ」名言ですね!?

他になにがあるのかわかりませんが、10ポイントゲットしたようです。他のやつ気になります。知っている方がいたら教えてください!!

f:id:hollywis:20160119153228p:plain

どうやらこのポイントで割引券とかと交換できるようです。初期登録で200ポイントもらえて、さらにおみくじで10ポイントもらえたようです。

でもなぜが、合計が230ポイント。。20ポイントは何かのボーナスでしょうか。

会議室・パーティルーム

一階が通常の時間制カフェ営業なのですが、2Fと3Fは場所貸しになっていました。 ちょっと値段はお高めという印象ですけど。。。

f:id:hollywis:20160119152445j:plain *HPより引用

4席や6席のテーブルや部屋が合計5つありました。部屋毎に値段が違ってパーテーションで区切られた ところなら30分¥400から、個室なら30分¥800からという部屋代です。時間も朝9時から夜22時と中々遅くまでやっています。詳しくはホームページをみてください。

部屋代だけでなくフリードリンク料金が別途人数分かかるので、注意かもしれません。一人あたり2時間で¥430から、4時間以上で¥700などといった感じ。

3Fはワンフロア貸しで18時まで30分¥1200、18時から22時までが30分¥1400です。土日はさらに料金が上がります。マイクやプロジェクターなどの貸し出しもあるようです。

f:id:hollywis:20160119152536j:plain *HPより引用

まとめ

作業場所としてはかなりオススメ。静かなためはかどります。フリードリンクなので、コーヒーとか飲み放題ですし。

僕らは結構会議することも多い為、たまにはこういった場所で会議するのも良いかもと思いました。

新宿・貸し会議室・電源ノマドカフェ「BASE POINT」(ベースポイント)

Arduinoで映像を超絶劣化させるマシンを作った話 | さいぞうのArduino初心者日記7

f:id:hollywis:20160119150031p:plain

ごぶさたしております。

さいぞうです。

     

前回更新は昨年のクリスマス。

hollywis.hatenablog.com

面倒くさくて最近更新してませんでしたが、気づいたら年があけていました。今年もよろしくお願いします。      

次のチュートリアルはLEDを複数つなげるというだけの回で、つまらないのでやる気がでなかったのですが、 簡単にできるネタを思いついたので書きます。    
           

Arduinoで映像を超絶劣化させるマシン

この動画がArduinoで映像を超絶劣化させるマシンを動かしたところです。

www.youtube.com

     

こういうことです。

つまり、Macのカメラに写った映像を赤緑青に分解し、比率をみて多かった色のLEDを光らせます。 ただし、青色LEDはキットに入ってなかったので、青が多い時は白LEDを光らせます。

     

一応、映像を左右に分けて、それぞれのエリアごとに色を判定することにしました。

     

PCのディスプレイでも、LEDでも、幾つかの光の点を集めてで画像を表しているという点では同じです。

私の使っているmacbook pro 15inchのカメラは720pらしいので、92万1600の画素で映像を表しています。 APPLE MacBook Pro Retina Display(15.4/2.3GHz Quad Core i7/16GB/512GB/Iris Pro/GeForce) ME294J/A

それを3色ずつのLED2組、つまり2画素で表すので、46万800分の1に劣化させています!

f:id:hollywis:20160116214445j:plain

        

        

続きを読む

nodeでクエリストリングを取得する

nodeもう少し進めてみます。

今回はhttpのgetリクエストにあるクエリを取得してみたいと思います。

クエリストリングというのは、次のようなURLにあるidarticleのことです。

http://hollywis.com?id=1&type=article

この例では次のデータが格納されています。

  • id:1

  • type:article

やってみる

var http = require('http');
var PORT = 8080;
var url = require('url')
var pages = [
        {id:'1' ,route:'',output:'HelloWorld!\n'},
        {id:'2' ,route:'foo',output:'fooのページです\n'},
        {id:'3' ,route:'var',output:'varのページです\n'},
        {id:'4' ,route:'another page',output: function(){ return 'これが'+this.route+'ページです\n'}}
    ];
http.createServer(function (request,response){
    var id = url.parse(decodeURI(request.url),true).query.id;
    if(id){
        pages.forEach(function(page){
            if(id === page.id){
                response.writeHead(200,{'Content-Type':'text/html'});
                response.end(typeof page.output === 'function' ? page.output() :page.output);
            }
        });
    }
    if(!response.finished){
        response.writeHead(404);
        response.end('ページが見つかりません!');
    }
}).listen(8080);

console.log('Server running at http://localhost'  + ':' + PORT + '/');

実行して以下にアクセスしてみます。 http://localhost:8080/?id=1

$ hotnode server.js

するとクエリストリングidが取れて別々のページにルーティングできるかと思います。

Airbnbで外国人と話がしたいので英語を勉強します

こんにちは、のすけです。

f:id:hollywis:20160111224502p:plain

全然技術ネタじゃないんですけど。

最近Airbnbのホストをかなりやられている方にお会いして、Airbnbで結構面白い外国人が来るという話を聞きました。

なんでも、ある程度高額な部屋には日本にビジネスをしにくる外国人が多く宿泊することが多く。 なかなか面白い話が聞けるとのこと。

「例:僕はTEDで話すために日本に来たんだよ!」

それを聞いて、「俺も話ししたい!」と思ってしまいました。

しかし、、、僕は英語はできません。そしてAirbnbのホストもしていません。

まぁAirbnbのホストはお金とやる気で解決する話なので問題ないですが、英語力はそうはいきません。

そんなわけで、英語を勉強することにします。

DMM英会話とかやろうかと思っていましたが、もっと鍛えてからやらないと洗礼で挫折するとか言われているので、まずは英語の勉強から入ります。 確かに大学の時にはブラジル人と英会話してましたが、結局まともに喋れるようにならなかったので、いきなり英会話するより2ヶ月くらい座学した方が良いと考えました。

まずは、うちの本棚に眠ってた↓をやります。

英語を話す力が一気に身につく!! 瞬間英作文ドリル (AC MOOK)

英語を話す力が一気に身につく!! 瞬間英作文ドリル (AC MOOK)

これは、英語の文章を反射的に作る訓練をするもので、中学英語だけで話したいことが話せるようになるというやつです。

なんで眠らせてたかというと、ちょっとやってみて効果が出たのですが、他の事が忙しく放置しそのままになっていたためです。何度も本棚整理でいらない本を捨ててきましたが、この英語本だけはとってありました。

瞬間英作文と言います。あらためてネットで調べてみたら、とにかくこの本を10周やるだけでも違うらしいので10周を当面の目標にしましょう。

さて、英語がスラスラと言えるようになるのか。。。

ちなみに瞬間英作文だとこの本の方が売れているみたい。

どんどん話すための瞬間英作文トレーニング (CD BOOK)

どんどん話すための瞬間英作文トレーニング (CD BOOK)

でも、せっかく眠らせていたのでドリルの方で頑張ってみます。