あさた研メモ

主に私が気づいたこととか困った時のメモとか書き留めとく用。

dockerとnginxの勉強はじめました

勉強ログ的なものです。

今回は、dockerでnginxを動かす第一歩です。

dockerのインストール

archlinuxなので

$ yaourt docker

で終わりでした。

daemonで動いていないといけないので、

$ sudo systemctl enable docker
$ sudo systemctl start docker

と入力して、daemonを起動しときます。

今回はUbuntu

以下のコマンドでubuntuのイメージを引っ張ってきます。

$ docker pull ubuntu

docker imageの作成

適当なフォルダを作って、

$ touch Dockerfile
$ emacs Dockerfile  # viとか適当なエディタで

Dockerfileの中身は以下の感じ。

# Getting Base Image
FROM ubuntu:latest

# Author info
MAINTAINER asatake

RUN apt-get update
RUN apt-get install -y vim  # エディタを適当に入れる
RUN apt-get install -y curl
RUN apt-get install -y nginx

# Port
EXPOSE 22 80

あとは

$ docker build -t asatake/nginx_ubuntu . 

みたいな感じでビルド。しばらく待ちます。

実際にnginxが動くかテスト

まずはコンテナ内に入ってみます。

$ docker run -it -p 8080:80 asatake/nginx_ubuntu /bin/bash

すると普通にbashが開くので、nginxをとりあえず起動してみます。

# service nginx start

デタッチするために、キーボードで
Ctrl+o Ctrl+q
と押します。

実際にブラウザを開いて見てみます。
localhost:8080
に接続して、nginxのスタート画面が出たら成功!

参考文献

githubのContributionが緑にならなかった話

現象

自分のPCからcommitしたりプルリク送ったりしてるのにContributionが長い間緑にならなかった。

原因

githubに登録されているメールアドレスと、PCに登録されているメールアドレスが異なっている。

解決法

以下を実行する。

git config --global user.email <githubに登録されているメールアドレス>

または、githubに登録されているメールアドレスをPCに登録されているものへ変更する。

javascriptのJSONパースで嵌った

この記事は未解決です。

書いたコード

family.json

{
    "list":[
        {
            "id": 1,
            "name": "波平",
            "parent": null,
            "marrige": 2,
            "children": [3,4,5]
        },

        {
            "id": 2,
            "name": "フネ",
            "parent": null,
            "marrige": 1,
            "children": [3,4,5]
        },

        {
            "id": 3,
            "name": "サザエ",
            "parent": [1,2],
            "marrige": "6",
            "children": [7]
        },

        {
            "id": 4,
            "name": "カツオ",
            "parent": [1,2],
            "marrige": null,
            "children": []
        },

        {
            "id": 5,
            "name": "ワカメ",
            "parent": [1,2],
            "marrige": null,
            "children": []
        },

        {
            "id": 6,
            "name": "マスオ",
            "parent": null,
            "marrige": 3,
            "children": []
        },

        {
            "id": 7,
            "name": "タラオ",
            "parent": [3,6],
            "marrige": null,
            "children": []
        }
    ]
}

sazae.js

$(function(){
  $.getJSON("json/family.json", function(){
    console.log("success!");
  });
});

Chromeで確認

F12とか押してConsoleを確認。すると…

XMLHttpRequest cannot load file:///Users/test/Project/json/family.json.Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

なんじゃこりゃ。

原因

Chromeではセキュリティ上の観点から、ローカルファイルにリクエストを送ることができないみたい?

ajax使わないようにしても、Chromeでは動かず、Firefoxなどでは動く。

わけがわからないのでだれか原因と対策を教えてください…。

追記

Chromeではajaxでローカルファイルにアクセスするのはセキュリティ上無理ということですが、
jQueryだろうとなんだろうと駄目なので、おとなしく他ブラウザ使ったほうが良さそうです。 試しにXMLHttpRequestでやってみましたが駄目でした。

対策としては、おとなしくどっかのサーバに上げるとかが良さそうです。

Xamarin無料化を実感してみた

個人的な話

ぼくはそれなりにWindowsが好きなので、もっといっぱい活用したいといつも思っていました。
つい先日、夏の大型アプデでbashが実装されると聞いたときは本当に嬉しかった。
さらに、Xamarinが無料ときた。
Xamarinなんて使ったことないけど、せっかく無料になったんだし入れてみることにしました。

Xamarinのインストール

ここが公式サイト。
公式サイトからさっとダウンロード・インストールです。
ちなみにぼくはなぜか、セキュリティソフトにダウンロード先が危険なWebページとか言われた。

結構時間かかります。
なんせSDKとか入れるし。
f:id:asataken:20160405093813p:plain

使ってみる

ぼくはMacを持っていないので、AndroidAppにします。
Visual Studioを開いて…
NewProject -> C# -> Android -> BlankApp
んで作成。 ここで気づく。ぼくC#わからない。
まぁいいや。

ソースを見る限り、どうもボタンクリックするとカウントが増えるだけのAppのよう。
そのままビルドボタン押してみました。

ビルドにめちゃくちゃ時間かかります。
ぼくのPCのスペックの問題もあるけど。
5分位放置してたらメニューにAppが追加されているのでそれをタッチして読み込みました。
f:id:asataken:20160405093816p:plain

f:id:asataken:20160405093819p:plain

なるほど。

感想

実はほかにも色々試そうとは思っていましたが、なんせビルドが遅いので諦めました。
AndroidStudioとかそういう系使ったことないので、AndroidAppのビルドってこんな時間かかるんだなあって感じでした。

VisualStudio使い慣れている人にとっては特に嬉しいのではないでしょうか。
補完もバッチリだし、UIもなんかカッコいいし。

どうも調べてみると、UI作成も頑張ってコードを書く感じになるようです。
UIを直感的にいじることはできないので、ぼくみたいなApp制作未経験の人にとってはちょっと難しいかも?

iOSAppも作れるので、Mac持ってる人はWinで作ってMacでビルド、みたいなことができるようです。
XamarinStudioで作れよって思うかもしれませんが、まぁVisualStudioのほうがいいって人も多いですしね。
あと、同じコードでAndroidiOSのほかにWindowsPhoneのAppも作れるので、オトクな感じもします。

モバイルアプリを作りたい人にとって、Xamarinが無料になったのはとても大きな一歩なのではないでしょか。
なかなか良い感じだな、とぼくは思いました。

ではでは。

追記

指摘を受けて調べたら、デザイナーありました!!!!
f:id:asataken:20160405101746p:plain

ソリューションエクスプローラを右クリック -> 追加 -> 新しい項目
から、Android Layoutを選択して、
ソリューションエクスプローラのResources -> Layoutに入ってる○○.axmlってやつを開くと、デザイナー開くみたいです。
ご指摘ありがとうございました。