OmniAICreator/Qiita-1.07M huggingface dataset:
Top 7 Torrent Sites Of All Time

Integrated Developement Envirommentの略であるIDEです。彼らは常にJavaアプリケーションを開発するためにいくつかの豊富なインタフェースのenviournmentを作成する傾向があります。これは単にコードまたはプログラムをJavaで記述するためには、単にJava IDEとして知られているインタフェースが必要であることを意味します。 JavaのIDEは、メモ帳でそれを行うために比較するとはるかに、スムーズに簡単かつ迅速にあなたのJavaプログラミングを行い、ファイルを保存するときに、ファイルextenionのあとがきを変え、それはJavaで学び、コードには非常に専門外の方法です。成功したプログラマーであるためには、最高のJava IDEが何であるかを知る必要があります。ここにあなたが知っておくべき4つのJava IDEがあります。

BlueJ Windows / MAC / Linux初心者無料

BlueJ IDEは、初心者のための最高のJava IDEの1つです。ですから、あなたがJavaの初心者なら、これを試してみるべきです。このIDEは完璧なmatchforの初心者のような驚くべきEnviournmentを持っています。はい、あなたがプロの開発者で、何か別のIDEを探しているなら、あなたは下のリストから他の味を試してみるべきです。 BlueJ ideは、Windows、Mac、およびLinuxプラットフォームでサポートされています。したがって、これら3つのオペレーティングシステムを使用しているオペレーティングシステムについて心配する必要はありません。また、このIDEは完全に無料ですので、このIDEを使用するためにお金を払う心配はありません。全体的にこのIDEは、Java初級レベルのプログラマに最適なソリューションです。



DrJava Windows / MAC / Linux初心者無料
DRJavaは、Javaプログラマにとって基本的で初心者レベルのIDEです。このIDEは、大きなJavaアプリケーションの開発には最適ではありませんが、テスト目的の作成や小さなプログラムの作成に最適です。この考え方は、ウィンドウ、Mac、Linuxでも有効です。このIDEは公式サイトで自由に入手できます。それは、その機能になると、このIDEは素晴らしく、簡単なコードエディタで基本的なJava IDEの期間で本当にいいです。

JCreator

JcreatorはJavaプログラミングに特化しています。そこのjava progrmmingaだけでなく、他のプログラミング言語のためのかなり良いWORKD IDEの多くがありますが、このIDEはJava用と強化されたJavaプログラミング機能と、それは非常に使いやすく、Javaプログラミングのためです。このアイデアは、Windows、Mac、Linux OSでも利用できます。このIdeはUIのカスタマイズをサポートしているため、私たちの好みに応じたインタラクティブでアクセシブルなものにすることができます。
Jcreator IDEのダウンロードはこちらから

<b> jGRAS

スムージングの面では、このIDEが最適です。 Jgraaspは、今日の重要な部分の1つである軽量なアイデアです。このアイデアには、コードを高速化するのに役立つコードエディタが強化されています。他のIDEと同じこのIDEは、Windows、Mac、Linuxのよう命名これら三つの人気のあるOSプラットフォームで使用することができます。クロスプラットフォームのこの機能により、ポータブルになります。このlightweigt java ideは公式のウェブサイトのページから簡単にダウンロードできます。または、ちょうど下のリンクからその公式ページに行きました。
Read full <a href="https://youprogrammer.com/best-java-ide-for-windows-mac-and-linux/">java ide</a> list
<html>,<body>に指定したmarginの合計値分ページ周りに余白が出る

`<html>`と`<body>`はなんだか特別な感じのするタグだと思っているので、「2つとも`margin: 10px;`にしたら周りが20px空いてる！！」と驚いていたのですが、`margin`の仕様を考えると当たり前のことでした。
[margin - CSS | MDN](https://developer.mozilla.org/ja/docs/Web/CSS/margin)

## 実際に測ってみる

```html:index.html
<!-- 省略 -->
<body>
 <div id="main"></div>
 <div id="box1"></div>
 <div id="box2"></div>
 <div id="box3"></div>
 <div id="box4"></div>
</body>
<!-- 省略 -->
```

```css:style.css
html {
  margin: 10px;
  height: 100%;
}

body {
  margin: 20px;
  height: 100%;
}

#main {
  width: 100%;
  height: 100%;
  background-color: red;
}

/* 配置によってwidthやheightにhtml,bodyのmarginの合計値を指定、
余白に関係ない方は任意の値 */

#box1 {
  width: 30px;
  height: 300px;
  background-color: blue;
  top: 0;
  left: 0;
  position: absolute;
}

#box2 {
  width: 300px;
  height: 30px;
  background-color: green;
  top: 0;
  left: 0;
  position: absolute;
}

#box3 {
  width: 300px;
  height: 30px;
  background-color: yellow;
  left: 0;
  bottom: -60px;
  position: absolute;
}

#box4 {
  width: 30px;
  height: 300px;
  background-color: gray;
  top: 0;
  right: 0;
  position: absolute;
}
```

`<html>``<body>`に`height: 100%;`としているのは`#main`の`height: 100%;`を使えるようにするためです。
["height: 100%" の要素が画面の高さ100%にならない場合の対応方法](http://qiita.com/shouchida/items/205fed63b886681661bd)

これをブラウザで確認すれば、`#main`の周りの余白に`#box`たちがきれいに収まっていると思います。このことからタイトルの内容は正しいと言えそうです。
外付けキーボード使用時はスマート句読点off推奨

記号の入力がいつの間にか増えていた。これではシングルクォート`'`やダブルクォート`"`が使えずエンジニアは大変困る。

## スマート句読点の種類(これでも全てではない)

| キー | 記号 |
|:--|:--|
| shfit-7 | ‘ |
| shift-2 | “ |
| shift-2 shift-2 | “” |
| option-[ | ‘ |
| option-shift-[ | ’ |
| option-shift-@ | ” |
| option-@ | “ |
| -- | — |

## 参考

* [Strange behavior when typing quotes ' " | Official Apple Support Communities](https://discussions.apple.com/thread/2784664?start=0&tstart=0)

## スマート句読点

* `設定 - 一般 - スマート句読点`をoffにすることで従来通りの`'`や`"`が入力できる。

![C79A23AC-536F-45C1-9B4A-61ACA2059089.png](https://qiita-image-store.s3.amazonaws.com/0/25728/c218110e-3fb5-c479-0671-1af08f8361a3.png)

## ¥マークではなく\を入力したい

* `option - ¥`で`\`が入力できます。
QEMU+Linux/MIPS環境でcgoを動かす

Goコンパイラは単体で別アーキテクチャのバイナリを簡単に出力できる点が素晴らしいですよね。また、C/C++のクロスコンパイラを持っていればcgoが必要な場合でもクロスコンパイルが可能です。

ところで、私は突然Linux/MIPS向けにcgoを利用したくなったのですが、Linux/MIPS向けのC/C++クロスコンパイル環境は手元にありません。どうせ今から環境を作るなら、手元の環境にC/C++クロスコンパイル環境を作るより、Linux/MIPS上にGoコンパイル環境を作った方が楽かもしれません[^1]。

[^1]: この判断はおそらく誤りで、普段使いのマシンにC/C++クロスコンパイル環境を作った方が楽だった気がします

そこで、Linux/MIPS上でGo 1.9をビルドしてみることにしました。手元に適当な実機が無いため、macOS+QEMU上にLinux/MIPS環境を構築し、その上でGoをビルドします。

# QEMU上でLinux/MIPSを動かす

まずQEMUをインストールします。

```
$ brew install qemu
```

次にLinux/MIPSを用意します。QEMU上で[DebianのCD/DVDイメージ](https://www.debian.org/releases/stretch/debian-installer/)からインストールすることも可能ですが、今回は[Aurélien Jarnoさんが配っている](https://blog.aurel32.net/153)QEMU用のイメージを利用します。mipsディレクトリから下記ファイルをダウンロードします。

- debian_wheezy_mips_standard.qcow2
- vmlinux-3.2.0-4-4kc-malta

上記ファイルを同一ディレクトリに置いた上で、下記のようにすれば起動できます。

```
$ qemu-system-mips -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mips_standard.qcow2 -append "root=/dev/sda1 console=ttyS0" -nographic
```

デフォルトではメモリサイズ128Mと小さめなので、`-m 512M`などとした方がいいかもしれません。

# Goのインストール

まずはmacOS上で、1.4のホスト用bootstrapツールをビルドします。

```
$ tar xvzf go1.4-bootstrap-20170531.tar.gz
$ mv go go1.4-bootstrap-20170531
$ cd go1.4-bootstrap-20170531/src
$ ./make.bash
(snip)
$ cd ../..
```

次にGo 1.9ベースでMIPS用のbootstrapツールをビルドします（Goが1.4時点ではMIPS対応していなかったので、回りくどい作り方になります）。

```
$ tar xvzf go1.9.src.tar.gz
$ mv go go1.9-bootstrap-mips
$ cd go1.9-bootstrap-mips/src
$ GOROOT_BOOTSTRAP=$(pwd)/../../go1.4-bootstrap-20170531 GOOS=linux GOARCH=mips ./bootstrap.bash
(snip)
```

`bootstrap.bash`が成功すると`go-linux-mips-bootstrap.tbz`が作られるので、QEMU上のLinux/MIPSに何らかの方法でコピーします。

以下、Linux/MIPS上で作業します。

```
# tar xvjf go-linux-mips-bootstrap.tbz
# tar xvzf go1.9.src.tar.gz
# mv go go1.9
# cd go1.9/src
# GOROOT_BOOTSTRAP=$(pwd)/../../go-linux-mips-bootstrap ./all.bash
```

以上でLinux/MIPS上でGo 1.9がビルドできましたが、全部で8時間くらいかかりました。さすがにQEMUだと遅いですね[^2]。

ホスト側でgo本体のクロスコンパイルもできそうなものですが、実際どうなんでしょう。

[^2]: 感覚値としては同スペックの実機の20倍くらい遅いですね…
node-jt400を試してみた（SQL stream）

#SQL stream
コーディング例ではCPYFのような動きをさせているので、同じようにコーディングしてみます。
コピー先の物理ファイルを作成します。
せっかくなので、少し変えました。
（LNAMEとFNAMEの属性を変更、TOKUTENをTENSUに変更、レコード様式を変える）

```MYLIB/MEMBER2.PF
      ***************************************************************** 
      *    ファイルＩＤ       : MEMBER2                                 
      ***************************************************************** 
     A          R MEMBER2R                  TEXT(' メンバー ')          
      *                                                                 
     A            ID             3S 0       COLHDG(' ＩＤ ')            
     A            LNAME          6G         COLHDG(' 苗字 ')            
     A            FNAME         12J         COLHDG(' 名前 ')            
     A            PROF          40O         COLHDG(' プロフィール ')    
     A            TENSU          7P 3       COLHDG(' 点数 ')            
```

```SQLstream.js
var jt400 = require("node-jt400");
var JSONStream = require("JSONStream");
var express = require("express");
var app = express();


var pool = jt400.pool({ host: '192.168.X.XXX', user: 'MYUSER', password: 'MYPASS' });

var server = app.listen(8888, function () {
    console.log("curl http://localhost:" + server.address().port + '/~');
});

app.get("/stream", function (req, res, next) {
  pool.createReadStream("select * from member") 
    .pipe(JSONStream.parse([true]))
    .pipe(pool.createWriteStream("insert into member2 (ID,FNAME,LNAME,PROF,TENSU) VALUES(?,?,?,?,?)"));
  res.send('end');
});
```
実行してみる。
![nodejt05.png](https://qiita-image-store.s3.amazonaws.com/0/146069/813a303e-abf6-846b-02bf-ba1af223d5ef.png)
実行結果
![nodejt06.png](https://qiita-image-store.s3.amazonaws.com/0/146069/bb40151d-51f3-3a69-5ac9-9023545c7906.png)

正しく苗字と名前が入れ替わってセットされました。
Windows ログインのパスワードの定期変更を楽に切り抜ける方法

パスワードの管理といえばいろいろとアプリが出ていますが、PC にログインするためのパスワードは管理できないんですよね。

そのような状況で、Active Directory なんかで定期的にパスワード変更を強制されていたりするとどうやってパスワード覚えとくんだということになるわけで。

そういうときに、ある程度安全で楽な方法があったらいいなと思って考えてみました。

# ルールを決める
パスワードの生成ルールを決めましょう

例として、今適当に考えたものを。

1. パスワードはローマ字
2. 大文字と小文字を交互にする
3. 最初か最後に適当に数字や記号を入れる

例えば

``` inagawajunji ```->``` iNaGaWaJuNjI!2 ```みたいな感じ。

地名とか人の名前をローマ字にするだけでもすぐに8文字は超えるし、付け足す記号と数字を1文字ずつ覚えておけばいいので結構いいんじゃないかと思います。

ちなみに上記のパスワード、強度チェッカーでは問題なしとなりました。

- [パスワード強度チェッカー \(zxcvbn\) : アジャイル株式会社](https://www.agilegroup.co.jp/technote/zxcvbn.html)
- [Save the Worldの思いを伝えたい \| Secure Password Check – あなたのパスワードが保存または収集されることはありません。本当に使うパスワードは入力しないでください。このサービスは、強力なパスワードについて理解いただくためのものです](https://password.kaspersky.com/jp/)
- [パスワード チェッカー: 強力なパスワードの使用 \| Microsoft セーフティとセキュリティ センター](https://www.microsoft.com/ja-jp/safety/pc-security/password-checker.aspx)

そういえば、Bitcoin ウォレットなどのバックアップコードは一般的な単語を幾つか組み合わせたものですね。

今までのあの苦労はなんだったんでしょうか。

[あの「面倒なパスワード作成ルール」、作った人も後悔していた \- ZDNet Japan](https://japan.zdnet.com/article/35105725/)
Slim 3 PHP Framework をレンタルサーバーで使用するための修正

最近、導入の手軽さと学習コストの低さから Slim 3 PHP Framework をよく使っています。

ただ、Slim 3 (というか大抵のフレームワーク) は公開フォルダがプロジェクトルートのいっこ下のディレクトリなので、レンタルサーバーでは使いにくいと感じます。

とはいえ、フレームワーク内のファイルをちょろっと書き換えるだけで使えるようになります。

簡単なので、ブログに書くほどのことでも無いかと思ったのですが、これから先、毎度探すことになるのは面倒なので備忘録として残しておきます。

```apache
RewriteEngine On

# Some hosts may require you to use the `RewriteBase` directive.
# If you need to use the `RewriteBase` directive, it should be the
# absolute physical path to the directory that contains this htaccess file.
#
# RewriteBase /
RewriteCond %{REQUEST_URI} !(^/public/)
RewriteRule ^ index.php [QSA,L]
```

```php
<?php
if (PHP_SAPI == 'cli-server') {
    // To help the built-in PHP dev server, check if the request was actually for
    // something which should probably be served as a static file
    $url  = parse_url($_SERVER['REQUEST_URI']);
    $file = __DIR__ . $url['path'];
    if (is_file($file)) {
        return false;
    }
}

require __DIR__ . '/vendor/autoload.php';

session_start();

// Instantiate the app
$settings = require __DIR__ . '/src/settings.php';
$app = new \Slim\App($settings);

// Set up dependencies
require __DIR__ . '/src/dependencies.php';

// Register middleware
require __DIR__ . '/src/middleware.php';

// Register routes
require __DIR__ . '/src/routes.php';

// Run app
$app->run();
```

.htaccess は script や stylesheet があるディレクトリへのアクセスはそのまま通して、それ以外は URL を書き換えるという感じ。

index.php はもともと public にあったものをプロジェクトのルートに置き、各ファイルを読みに行くためのパスを変更しました。

これでレンタルサーバーでさらっと使えるようになります。
windowsでgithub等で使えるOpenSSHの公開鍵を作成する方法

# 概要
PuTTYというソフトで公開鍵を作成しようとしたのですが，普通に作ってしまうとgithubなどで使えなくてハマったので，作る方法をまとめました．

# PuTTYのダウンロード
[このページ](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)の"puttygen.exe (a RSA and DSA key generation utility)"と書いてあるところからダウンロードできます．

# 鍵の作成
<img width="559" alt="スクリーンショット 2017-08-27 8.14.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/124062/35471818-02c3-5fcf-300e-97d84d65c06c.png">
上の画像にある"Generate"をクリックし，マウスを親の敵のように激しくランダムに動かします．

# 公開鍵を保存する
<img width="559" alt="スクリーンショット 2017-08-27 8.07.30.png" src="https://qiita-image-store.s3.amazonaws.com/0/124062/31f5b116-6f38-a1c0-d109-b21a2a182335.png">
公開鍵は上の画像のように全選択してコピーし，エディタなどで`id_rsa.pub`などと名前をつけてホームディレクトリに`ssh`みたいなディレクトリを作成してその中に保存するといいかもしれないです．

# 秘密鍵を保存する
<img width="558" alt="スクリーンショット 2017-08-27 8.06.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/124062/37b6acc3-e4c4-19f4-0fe7-3b66622fc162.png">
秘密鍵はメニューから"Conversions"→"Export OpenSSH Key"をクリックし，`id_rsa`などと名前をつけてホームディレクトリに`ssh`みたいなディレクトリを作成してその中に保存するといいかもしれないです．
VirtualBoxにインストールしたCentOSにSSH接続できなくてハマった話

VirtualBox上のCentOSにTeraTermからSSH接続しようとすると、
`Connection Refused`とか言われて全然つながらなかった！わかるまで超ハマった！！

原因はVirtualBox上のOSのIPを`192.168.56.1`で固定してたせいでした！
VirtualBox上のホストオンリーネットワークのアドレスと同じじゃ、そりゃダメですよね！

## 環境
ホストOS：Windows10
ゲストOS：CentOS7(minimal)
仮想化ソフト：VirtualBox

## 設定状態
VirtualBoxから、CentOSにネットワークアダプタ2(ホストオンリーネットワーク)を追加し、
nmtuiを使用してCentOSのIPアドレスを`192.168.56.1`に固定した。
firewalldとSElinuxは無効化した。

## 現象
ローカルからSSH接続できるのに、ゲストからSSH接続できない。

## 解決方法
CentOSのIPアドレスを`192.168.56.1`から`192.168.56.2`に変更。それだけ。
OpenCVでSplatoonのイカ分類器を作ってみる（みたい）

さて、[前回](http://qiita.com/haseshin42/items/38383a500cbba21f4467)までで事前に提供される分類器を使って顔認識し、顔にモザイクをかけるところまでやりました。次のステップとして分類器を自分で作成してみたいと思います。

#題材を決める
まず何の分類器を作るかなのですが、[Splatoonのキャラクター](https://www.google.co.jp/search?q=splatoon+%E3%83%9C%E3%83%BC%E3%82%A4&safe=strict&rlz=1C1LENP_enJP504JP504&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiR_cmDwu7VAhWET7wKHbrXC8MQ_AUICigB&biw=1658&bih=889)(正式にはインクリングと言う生き物らしい)を検出するものを作ってみたいと思います。たまたま最初にこのキャラの静止画で顔認識を試した時に、顔を認識せず、あぁ普通の顔認識じゃ駄目なんだと思ったのが理由です。

#分類器の作成手順
分類器の作成方法としては、haartrainingとtraincascadeの2種類の方法があるようです。traincascadeの方が新しい方法のようなのでそちらを使ってみたいと思います。
traincascadeの[チュートリアル](http://docs.opencv.org/3.3.0/dc/d88/tutorial_traincascade.html)があるのでそちらを参照しながら作業を進めようと思いますが以下の手順が必要です。

 - ネガティブ画像の準備
 - ポジティブ画像の準備
 - vectorファイルの生成
 - 機械学習(traincascade)の実行

対象の含まれた画像と、その座標を記述したファイル、対象が含まれない画像などが必要になります。精度の高い分類機を作るには数千枚の写真があったほうが良いようなのですが、手順を理解するという意味でまずは10枚程度でやってみようと思います。

対象の座標を記述するのが面倒なのでツールでも作ろうかと思ったのですが、みんな同じことを考えるようですでに作成されている人がいたのでそれを利用させてもらおうと思います。Pythonの勉強も兼ねて、今後こういったツールも作ってみたいと思います。
[物体検出/追跡研究者のための画像アノテーションツール ObjectMarker](http://d.hatena.ne.jp/takmin/20100930/1285848450)
##ポジティブ画像の収集とアノテーションの作成
Googleで検索をして適当な画像を10枚ほどダウンロードしました。ダウンロードした画像はObjectMakerのrawdataフォルダに配置します。
ObjectMakerを実行し、読み込んだ画像の顔の部分を囲っていきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/117736/2067227b-44f2-e122-101d-c5ec347e861d.png)
これで準備完了です。
##ネガティブ画像の収集
次に対象が写っていないネガティブ画像を準備します。ネガティブ画像は対象が写っていなければどんなものでも良いようです。こちらもファイルのリストが必要なので以下のようなコマンドでリストを作成します。
dir /B > nega.txt

#Vectorファイルの生成
以下のコマンドでvectorファイルを生成しました。
opencv_createsamples.exe -info annotation.txt -vec inkling.vec -num 10
以下の2点でひっかかりました。

 - VBのランタイムが必要
msvcp140.dllが無いと言われた場合には、VBのランタイムが必要です。以下からダウンロードして導入したところ解決しました。https://www.microsoft.com/ja-JP/download/details.aspx?id=52685

 - /を&yen;変更する必要がある
ObjectMakerが作成するアノテーション・ファイルはパスの区切りが/なのですが、これだと上手くファイルが認識されませんでした。/を&yen;に変更したところ正しく動作しました。


#traincascadeの実行
以下のコマンドでtraincascadeを実行しました。ステージはデフォルト20なのですが、14個目で止まってしまうので、13を指定しました。

opencv_traincascade -data inkling -vec inkling.vec -numStages 13 -bg nega\nega.txt -numPos 9 -numNeg 9

こちらもいくつか引っかかりました。

 - ネガティブ・サンプルの配置に気をつける必要がある
vectorファイルを生成する際に使用するポジティブ・サンプルのリスト・ファイルに記載するファイル・パスは相対パスで良いようなのですが、トレーニング時のネガティブ・サンプルのリストではコマンドに対する相対パスになるようです。
また、その際に表示されるのが、以下のようなエラーメッセージのためハマると大変そうです。
"Required leaf false alarm rate achieved. Branch training terminated."

 - ディレクトリは作成してくれない。
-data　プロパティで指定するのはファイル名ではなくてディレクトリ名です。ここで指定するディレクトリは自動的に作ってくれないので事前に作成しておく必要があります。

##結果
さて、tranincascadeコマンドで作成されたcascade.xmlを使って早速試してみました。
すると、、、、全くと言っていいほど認識しません、、、
やはりサンプル10枚では少なかったのでしょう。というわけで、次回はcreatesampleコマンドを使用して正解画像を増やしてトレーニングを実行してみたいと思います。
Translookoutのgemが出来てさらに使いやすくなった高校生の僕が作った(高校生にしてはつまらない)投稿監視apiのgemの紹介です。

# 高校生の僕が作った(高校生にしてはつまらない)投稿監視apiのgemの紹介です。
[ホームページ 休業時間があります](https://www.translookout.work)
[リンクに投げるだけの方式](http://qiita.com/NishidaRyu416/items/109d19a0fcb65d03dc2f)

[gem](https://rubygems.org/gems/translookout)
## どういうものか 詳しく
アダルト画像、禁止ワードなどを、検出します。
##使い方
英語版はあります、日本語版は後日記載
iOS、AndroidでのSVG Maskの挙動

#はじめに
HTML5でiPhoneライクなテンキーを表現するにあたって画像をSVGにしたときにMaskが環境によって異なる動作をしたのでメモ。

削除用のキーをSVGで表現

![IMG_5427.PNG](https://qiita-image-store.s3.amazonaws.com/0/199093/6dcffe4b-89fb-feee-c3b5-df3fd28c7efb.png)

```html:delete.svg
<svg width="230px" height="140px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 230 140" style="background: none;">
	<defs><mask id="mask" maskUnits="userSpaceOnUse" x="0" y="0" width="200" height="140"><g fill="black" fill-rule="evenodd">
		<rect x="0" y="0" width="200" height="140" fill="white"/>
		<line x1="95" x2="145" y1="40" y2="90" stroke="black" stroke-width="20" stroke-linecap="square"/>
		<line x1="95" x2="145" y1="90" y2="40" stroke="black" stroke-width="20" stroke-linecap="square"/>
	</g></mask></defs>
	<path mask="url(#mask)" d="M14,65 l56,-57 h90 Q184,8 184,32 v66 Q184,122 160,122 h-90 z" fill="white" />
</svg>
```

#PC
PC用の各種ブラウザでの見え方に差異はなし。
Macでは未確認。

#iOS
iOS 10.3.3のSafariではMaskの部分がボヤけてしまう。

（18/11/21 13:00追記）
HTMLのimgタグを使って縮小表示するとボヤけが目立つが、縮小しない場合はMaskを使っても綺麗になる。

![IMG_5410.PNG](https://qiita-image-store.s3.amazonaws.com/0/199093/6bf3e533-d1b7-9eaf-8cb4-93296b278426.png)

Maskの部分がボヤけないようにするには対象imgタグのCSSでwidthとheightを4倍のサイズにして、-webkit-transformで1/4に縮小する。

```css:
img {
    width: 930px;
    height: 560px;
    -webkit-transform: scale(0.25);
}
```

折角Retinaで綺麗に見えるようにSVGにしたのにこれならPNGやCanvasでもよくなる。

#Android
Androidでは4.3.1(APIレベル18)以前の標準ブラウザだとMaskに対応していないため中抜きされない。

![IMG_5412.PNG](https://qiita-image-store.s3.amazonaws.com/0/199093/1df149bc-5691-ecd2-90e3-2b83a0cf3a75.png)

#結論
iOSや古いAndroidに対応する場合はSVGのMaskを使わないのが無難。
今回はデザインを変更して対応した。

![IMG_5409.PNG](https://qiita-image-store.s3.amazonaws.com/0/199093/ed667103-8b70-f100-d6b8-0bb3d59ef617.png)

```html:delete.svg
<svg width="230px" height="140px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 230 140" style="background: none;">
	<path d="M14,65 l56,-57 h90 Q184,8 184,32 v66 Q184,122 160,122 h-90 z" stroke="white" stroke-width="20" fill="none" />
	<line x1="97" x2="143" y1="42" y2="88" stroke="white" stroke-width="20" stroke-linecap="square"/>
	<line x1="97" x2="143" y1="88" y2="42" stroke="white" stroke-width="20" stroke-linecap="square"/>
</svg>
```

実際に使用しているサイトは以下。
[n01 for Web](http://nakka.com/n01/)
[Git備忘録]ステージしたものをすべてアンステージする

#Purpose
when you done something wrong and you want to discard changes


##example

`git add ccc.txt`
`git status`

after track file you can saw your branch status like below

```bash

On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	modified:   ccc.txt
```

maybe after meeting with your boss,you have to do rallback your code

`git reset HEAD ccc.txt`
`git checkout -- ccc.txt`

now you did rallback your code already.
CSSをこねくり回してフローティングラベルを制作


フローティングラベルとGoogle検索しても、あまり引っかからないのでHTML、CSSをこねくり回して自作

実際の動きはこんな感じ
![sample.gif](https://qiita-image-store.s3.amazonaws.com/0/161716/5a3f086d-06b6-89e7-01f1-43a739968341.gif)

# HTML
```html:index.html
<form class="form">
  <p class="form__floating">
    <label class="form__floating__label" for="name">Name</label>
    <input class="form__floating__input" id="name" type="text" name="name" placeholder="名前をご記入下さい。">
  </p>
  <p class="form__floating">
    <label class="form__floating__label" for="Address">Address</label>
    <input class="form__floating__input" id="Address" type="text" name="Address" placeholder="メールアドレスをご記入ください。">
  </p>
</form>
```
# CSS
```css:style.css
.form {
  width: 400px;
  margin: 50px auto;
}

.form__floating {
  position:relative;
  padding-top:30px;
}

.form__floating__label {
  position:absolute;
  top:40px;
  left:10px;
  font-size:18px;
  font-weight:700;
  color:#ddd;
  transition: all 0.3s;
  cursor:text;
}

.form__floating__label.active {
  top:10px;
  left:0px;
  font-size:14px;
  font-weight:700;
  color:#000000;
  transition: all 0.3s;
}

.form__floating__input {
  width:400px;
  height:40px;
  padding:5px 10px;
  font-size:16px;
  box-sizing: border-box;
}

.form__floating__input::-webkit-input-placeholder  {
  color:transparent;
  transition: all 0.3s ease;
}

.form__floating__input::-moz-placeholder   {
  color: transparent;
  transition: all 0.3s ease;
}

.form__floating__input:-moz-placeholder   {
  color: transparent;
  transition: all 0.3s ease;
}

.form__floating__input:focus::-webkit-input-placeholder {color: #ccc;}
.form__floating__input:focus::-moz-placeholder {color: #ccc;}
.form__floating__input:-moz-placeholder {color: #ccc;}
```

# jQuery
```js:script.js
$(function(){
  const input = '.form__floating__input';
  const label = '.form__floating__label';

  $(input).each(function(){
    if($(this).val() != ""){
      $(this).prev(label).addClass('active');
    }
  });

  $(input)
  .focus(function(){
	  $(this).prev(label).addClass('active');
	})
  .blur(function(){
    if($(this).val() == ""){
      $(this).prev(label).removeClass('active');
    }
  });
});
```

# おわりに
こねくり回した結果、実装できました。
Googleに頼って生きてきた結果、検索に出て来ないと本当に困る。。。
簡単な方法があるよ！という方は「もう、こねくり回さなくて良いんだよ」とコメントください。

# 追記
初投稿にも関わらず「いいね」していただけた事を嬉しく思うと同時に、日記の様なコードを書いていたことを反省。
公開にも責任があるなーと思い、多少コードを整理しました。

また、コピペでもなんでもご自由に使っていただいて構いませんが、もろもろの責任は負いかねます。
Android Studioのデバッグで困った話

kotlinを触ってみたくてAndroid Studio 3 Canary Buildを使ってみた。
とりあえず、Android Studioでデバッグするために必要なことをメモ。

### Hyper-Vをオフにする
Docker for Windowsを動かすためにHyper-VをONにしていたんですが、エミュを動かすためには機能を無効化する必要があります。

### Android Emulatorをインストール
メニューのSDK ManagerからAndroid Emulatorをインストールしてないとダメ。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/174324/40660a82-1a06-b86a-75cb-35714b54023e.png)

### エミュレータ端末のUSBデバッグをONにする
最初、HelloWorldプログラムを実行しようとしたら、エミュが起動した後に
`waiting for target device to come online`
が出たまま待ち続ける状態が続いた。
これを解決するためには、エミュ側でUSBデバッグを有効化しないといけないです。
だいたいどのエミュを使っても操作一緒です。

Androidエミュを起動して設定を開き、About Emulator Deviceを選びます。
一番下の「Build Number」を連打すると、開発者モードになります。
すると設定に「Developer Options」が増えてるので、その中に入って「USB debugging」を有効にします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/174324/68627de4-887d-bee3-94be-e2d8386ba8df.png)
あとは実行すればOK。ああよかった。
ActiveDirectoryを用いたドメイン認証をかけた仮想マシンのRecoveryServicesの利用上の注意

## RecoveryServicesとは
仮想マシンやオンプレミスの環境をポリシーに則って増分バックアップするサービスです。
復元も簡単に行えるので、社内のファイルサーバーなどにもこっそり仕掛けだけ入れておけば万が一にも安心かもしれません。

## ドメイン認証をしている仮想マシンの復元時の注意
例えばActiveDirectoryのドメインコントローラー配下に「ホスト名vm1, コンピュータ名**vm1**」というものがあったとしましょう。
毎日バックアップを取得しており昨日の仮想マシンの状態に戻したくなったので、
「ホスト名**vm2**」という名前で同じ仮想ネットワークに復元したとします。
この時ドメインコントローラーから見たコンピュータ名は、同じくvm1なので競合してしまいRDPの認証がうまくいかなくなることがございます。
![recovery2.PNG](https://qiita-image-store.s3.amazonaws.com/0/123580/e79b627d-8494-bfbd-c66e-90fb6a038b0c.png)

現在は、以下のような状態です。
![recovery1.PNG](https://qiita-image-store.s3.amazonaws.com/0/123580/92af03db-5d99-7d1a-6253-61ce01008b21.png)
Azureでの仮想マシン復元時は、同じホスト名にはできないのでvm2としましたが、
仮想マシン内部のコンピュータ名はvm1のままなのが悪いわけです。
復元する際に片方のマシンを起動したままだと、この認証エラーが必ず起きます。

## 対策

1. 復元する際に必ず以前の仮想マシンをAzure上から削除するか停止した状態で復元させましょう
2. NLA認証がおかしくなったときは、RecoveryServicesのバックアップからレジストリを操作しRDPできるようにしましょう

2についてみていきましょう

## 取得したバックアップの利用方法

RecoveryServicesでは取得したバックアップを

1. 復元するか
2. VHDディスクとして利用するか

のどちらかの活用方法があります。
認証がおかしくなった仮想マシンのバックアップを復元するのは無駄なので、
何らかの作業用仮想マシンにバックアップのデイスクとしてアタッチし、
レジストリの箇所を編集しましょう

## 手順
### RecoveryServicesの「BackUpItems」より取得したバックアップリソースにアクセスし、「File Recovery」を選択する
![recovery3.PNG](https://qiita-image-store.s3.amazonaws.com/0/123580/9202daed-f0e4-df0e-fec1-f6bc301d5454.png)

### ディスクをマウントするexeとパスワードを入手する
![recovery4.PNG](https://qiita-image-store.s3.amazonaws.com/0/123580/128b59a7-e410-5f8e-53b2-3b6e85266ca0.png)

### いずれかの環境でexeファイルを実行し、パスワード入力
![recovery5.PNG](https://qiita-image-store.s3.amazonaws.com/0/123580/136142c3-fcb5-1082-3147-6d022d7cee01.png)

### 後は以下の手順に従い、Eドライブ上のレジストリを変更
[Troubleshoot Azure VM by attaching OS disk to another Azure VM](https://social.technet.microsoft.com/wiki/contents/articles/18710.troubleshoot-azure-vm-by-attaching-os-disk-to-another-azure-vm.aspx)
変更し終えたら復元するのがいいでしょう

## まとめ
特殊な例を出しましたが、ファイルを一部取得したいときに一番役に立つことと思います。
ICO/BitCoin/Ethereumの仕組みが一発でわかるビデオ

シリコンバレーの有名Youtuberといえばこの人、

Sirajさんがまた秀逸なビデオを発表しました。

"What is an initial coin offering?"

 - Bitcoinの成り立ち・技術・特徴
 - Ethereumの成り立ち・技術・特徴
 - Initial Coin Offeringの仕組み

とてもコンパクトにまとまっています。

日本語の書籍は情報が古いので、こっちの方が良いと思います。

ラップ調でギャグ入りなのも個人的に好きです。

https://www.youtube.com/watch?v=iyuZ_bCQeIE

Youtubeは日本語の自動翻訳字幕つけられますので、是非下記を利用ください。

https://www.howtonote.jp/youtube/index9.html
sedのメモ

今更ながらにsedのメモ.

基本的な使い方は

```
$ sed -e 's/{from}/{to}/g' {file}
```

で`{file}`の中の`{from}`の文字列を`{to}`に置き換える.

{file}の内容を置き換えるには

```
$ sed -ie 's/{from}/{to}/g' {file}
```

とする.

また, `sed: RE error: illegal byte sequence` エラーが出た場合は

```
export LANG=C
```

とする.
BetterでFasterでStrongerなYOLOを動かす

CVPR2017で登場した[YOLO9000: Better, Faster, Stronger](https://arxiv.org/pdf/1612.08242.pdf)を動かしてみます。
[プロジェクトページ](https://pjreddie.com/darknet/yolo/)を見れば動かし方があるので簡単かなと思ったのですが、Macの場合ちょっとつまづくポイントがあったので、そこを重点的に述べます。

環境はMac OS X 10.10.5, gccのバージョンは4.8です。まあ、gccはもっと新しいのを使ってもコンパイルは通るんじゃないかなと思います。

Macの場合、makeをしたときにエラーがこんにちはしてきます。お呼びじゃないのに・・・。

```bash:おまたせ
./src/utils.c:16:19: fatal error: use of undeclared identifier
      'CLOCK_REALTIME'
    clock_gettime(CLOCK_REALTIME, &now);
```

utils.cのclock_gettime関数なんですが、これはmacにはない関数のようです。というわけで、時間を取得してくれるmac用の代わりの処理を記述する必要があります。

stackoverflowに[どんぴしゃりな回答](https://stackoverflow.com/questions/5167269/clock-gettime-alternative-in-mac-os-x)があるので、これを利用します。俺、なにもしてない。

```c:utils.c
/*** 前略 ***/

#include <mach/clock.h>
#include <mach/mach.h>

double what_time_is_it_now()
{
    struct timespec now;
    clock_serv_t cclock;
    mach_timespec_t mts;
    host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
    clock_get_time(cclock, &mts);
    mach_port_deallocate(mach_task_self(), cclock);
    now.tv_sec = mts.tv_sec;
    now.tv_nsec = mts.tv_nsec;
    // clock_gettime(CLOCK_REALTIME, &now);
    return now.tv_sec + now.tv_nsec*1e-9;
}

/*** 後略 ***/
```

これでmakeすればコンパイルが通るので、あとは[プロジェクトページ](https://pjreddie.com/darknet/yolo/)に従ってプログラムを実行すれば、以下のような画像が生成されると思います。

![predictions.png](https://qiita-image-store.s3.amazonaws.com/0/72509/28aec5ab-2f43-912e-6206-95d8340c731a.png)

楽しい！
CPUで動かしてる割には処理が早い印象があります。これがFasterと自称する所以でしょうか。
Renameのメモ

必要なら`brew` なりなんなりでインストールする必要があるかも

```
$ brew install rename
```

使い方は

```
$ rename 's/{from}/{to}/' ファイル群
```
で, ファイル群の名前の中で`{from}`を`{to}`で置換する.

```
$ ll
total 24
drwxr-xr-x   6 yassu  staff   204  8 27 02:16 ./
drwxr-xr-x  11 yassu  staff   374  8 20 14:36 ../
-rw-r--r--@  1 yassu  staff  8196  8 12 00:23 .DS_Store
-rw-r--r--   1 yassu  staff     0  8 27 02:16 prime1.py
-rw-r--r--   1 yassu  staff     0  8 27 02:16 prime2.py
-rw-r--r--   1 yassu  staff     0  8 27 02:16 prime3.py
$ rename "s/prime/primes/" *.py
$ ll
total 24
drwxr-xr-x   7 yassu  staff   238  8 27 02:17 ./
drwxr-xr-x  11 yassu  staff   374  8 20 14:36 ../
-rw-r--r--@  1 yassu  staff  8196  8 12 00:23 .DS_Store
-rw-r--r--   1 yassu  staff     0  8 27 02:16 primes1.py
-rw-r--r--   1 yassu  staff     0  8 27 02:16 primes2.py
-rw-r--r--   1 yassu  staff     0  8 27 02:16 primes3.py
-rw-r--r--   1 yassu  staff     0  8 27 02:16 tags.lock
```
ちょっとずつ読むドメイン駆動設計 第一部 ドメインモデルを機能させる 第一章 知識をかみ砕く3

# 継続的学習

> 高度に生産的なチームは、自分たちの知識を意識的に育てて、継続的学習を実践する。(第一部 第一章 より)

継続的学習がなぜ必要で、どのような効果が必要なのか

## Why

1. プロジェクトの初期では自分たちが何を理解していないかを認識していない
2. 異動・アウトソーシング・典型的な設計アプローチによる口頭での伝承の途切れによる知識の流出を防止する

## 効果
1. 知識を蓄積することで、彼らは知識をうまく噛み砕けることができる
2. 構築している内容が正しいかどうかのチェックができる
3. ドメインエキスパートがより多くを学んだことで、アプリケーションの目標が明確になった

以下の言葉は何度か経験してきました。

> 自ら学んだチームメンバーは、最も重要な領域を含む開発作業に集中するにあたって、メンバのなかで信頼できるコアになる(第一部 第一章 より)

どこがドメインのコアになるのかも継続的学習によって明らかになるし、自ら学んだチームがそこに関わることで信頼できるメンバーとなっていくのだと思います。

継続的学習で効果的な知識の噛み砕きを。
デフォルトのRailsフォルダ構造

#デフォルトのRailsフォルダ構造まとめ

|ディレクトリ	| 用途 |
|:-----------------|-----------------|
|app/	|モデル、ビュー、コントローラ、ヘルパーなどを含む主要なアプリケーションコード
|app/assets	|アプリケーションで使うCSS (Cascading Style Sheet)、JavaScriptファイル、画像などのアセット
|bin/	|バイナリ実行可能ファイル
|config/	|アプリケーションの設定
|db/	|データベース関連のファイル
|doc/	|マニュアルなど、アプリケーションのドキュメン
|lib/	|ライブラリモジュール
|lib/assets	|ライブラリで使うCSS (Cascading Style Sheet)、JavaScriptファイル、画像などのアセット
|log/	|アプリケーションのログファイル
|public/	|エラーページなど、一般(Webブラウザなど)に直接公開するデータ
|bin/rails	|コード生成、コンソールの起動、ローカルのWebサーバの立ち上げなどで使うRailsスクリプト
|test/	|アプリケーションのテスト
|tmp/	|一時ファイル
|vendor/	|サードパーティのプラグインやgemなど
|vendor/assets	|サードパーティのプラグインやgemで使うCSS (Cascading Style Sheet)、JavaScriptファイル、画像などのアセット
|README.md	|アプリケーションの簡単な説明 (訳注: 近年は .rdocよりも .md ファイルの方がよく使われているようです)
|Rakefile	|rakeコマンドで使えるタスク
|Gemfile	|このアプリケーションに必要なGemの定義ファイル
|Gemfile.lock	|アプリケーションで使われるgemのバージョンを確認するためのリスト
|config.ru	|Rackミドルウェア用の設定ファイル
|.gitignore	|Gitに取り込みたくないファイルを指定するためのパターン
Unixコマンドライン

# 主要なUnixコマンド


| 説明 | コマンド |  コマンド例   |
|:----|:--------|:-------------------------|
|ディレクトリ内容の表示|$	ls    |	     $ ls -l    
|ディレクトリの作成	|$ mkdir <ディレクトリ名>	|$ mkdir workspace
|ディレクトリの移動	|$ cd <ディレクトリ名>|	$ cd workspace/
|上のディレクトリに移動|	$ cd ..	|$ cd ..
|ホームディレクトリに移動|	$ cd ~ |$ cd　~ 
|ホームディレクトリ直下のworkspaceに移動|$ cd ~/~..	|	$ cd ~/workspace/
|ファイルの移動やリネーム(1)	|$ mv <移動元> <移動先>|  $ mv foo bar	
|ファイルの移動やリネーム(2)	|$mv <現在の名前> <変更後の名前>|	$ mv foo bar	
|ファイルのコピー|$ 	cp <コピー元> <コピー先>	|$ cp foo bar
|ファイルの削除	|$ rm <ファイル名>	|$ rm foo
|空のディレクトリの削除	|$ rmdir <ディレクトリ名>	|$ rmdir workspace/
|中身のあるディレクトリの削除	|$ rm -rf <ディレクトリ名>	|$ rm -rf tmp/
|ファイルの内容の結合と表示	|$ cat <ファイル名>	|$ cat ~/.ssh/id_rsa.pub
|ファイルの新規作成	|$ touch <ファイル名>	|$ touch xxx|
|ファイルを新規作成して編集|$ vi <ファイル名>	|$ vi xxx|

###メモ的なもの(^ω^)
COBOLの開発環境を快適にしよう 2 - シンタックスハイライトをしてくれるエディタ -

（この記事は、COBOLを理解していない人が書いているものです。）
次のようにCOBOL技術者にとっての状況はいい状況ではないようです。
ここに引用したリンク先の内容が適切であるのかどうかを判断する力量は、私にはありません。
しかし、知り合いのCOBOL技術者から聞く状況は、のぞましい状況とは思えません。

[いまさらレガシー言語（COBOLやVBなど）の学習を強要されたり、ずっと同じ業務をさせられているとモチベーションは下がる一方だ。](http://kuroeveryday.blogspot.jp/2014/07/CareerChange.html)

[未来ある若者にCOBOLを書かせる日本企業。イノベーションの妨げに](http://blog.livedoor.jp/itsoku/archives/51953939.html)


[日清食品、40年使い続けたCOBOLのメインフレームを撤廃→システム保守に関わる時間が激減、長時間残業もゼロに](http://psgamenet.blog.jp/archives/18698398.html)

[COBOLerを脱出して、Web業界に行こう](http://qiita.com/yamakawa00/items/f7bf202136940cd96dae)


そこで、COBOLの技術者の心の負担を減らすためにCOBOLの技術者の開発環境を改善について調べてみています。
COBOLのシステムが今後とも社会の基幹系システムで生き続けるためには、
COBOL処理系のハードウェア・ソフトウェアのほかに、COBOL技術者が気持ちよく仕事をできる環境を確保しなくてはなりません。


---


## COBOL のシンタックスハイライト　をしてくれるエディタ

Windows

- [Sakura Editor](http://sakura-editor.sourceforge.net/) には[COBOL用のモードが用意されています]
(http://sakura-editor.sourceforge.net/htmlhelp/HLP000300.html)

- 秀丸エディタ（シェアウェア）での[シンタックスハイライト]
(http://hide.maruo.co.jp/lib/hilight/cobol.html)


- [MIFESエディタ](http://www.megasoft.co.jp/support/mifes/9custom.html) COBOLモードがあります。

- [geany](https://www.geany.org/)にもCobolモードがあるようです。 

Linux

- [Ubuntu gedit その18 - ハイライトモードで構文を強調表示する（シンタックスハイライト）](https://kledgeb.blogspot.jp/2014/08/ubuntu-gedit-18.html)

- [geany](https://www.geany.org/)にもCobolモードがあるようです。


-----

## COBOL市販製品の中のCOBOLエディタ
- [COBOL2002　操作ガイド](http://itdoc.hitachi.co.jp/manuals/3020/30203D6110/OPR20113.HTM)

- [COBOL エディター入門](https://www.ibm.com/support/knowledgecenter/ja/SSQ2R2_8.5.1/com.ibm.etools.rdz.language.editors.doc/topics/czdebegetstart_cobol.html)


-------------------------------------------------------------------------------

EclipseにもCobolのサポートがされてきているようだ。

- [COBOL Support for Eclipse on Windows, Release Candidate 1 に関する Readme](http://www.microfocus.co.jp/support/fixpacks/nxp325003-eclipse-readme.htm)



- [COBOLのいま、未来そしてクラウド (1/3)]
(http://www.atmarkit.co.jp/ait/articles/0907/29/news111.html)
>オープンソースのIDEであるEclipseはプラグインアーキテクチャがもたらす拡張性によって、Javaのみならず幅広いプログラミング言語で利用可能となっています。COBOLもEclipseプラグインとして利用可能です。すでに多くの実装がなされていますが、以下にマイクロフォーカスによるCOBOLエディタ、デバッガの様子を見てみます。



-----------------------------------------------------------------------------

- [OpenCobolIDE 解説　](http://postd.cc/3-open-source-projects-for-modern-cobol-development/)
Xamarin.FormsでFunc<Task>を実行するとNotSupportedExceptionが発生する件

# Xamarin＆Prismで以下のコードでNotSupportedExceptionが発生

```CSharp
/// <summary>
/// アクション実行
/// </summary>
/// <param name="action"></param>
/// <param name="errorAction"></param>
public static async Task ExecuteAsync(IPageDialogService pageDialogService,
Func<Task> action,
Func<Task> successAction,
Func<Exception, Task> errorAction)
{
    try
    {
        await action();

        if (successAction != null)
        {
            await successAction();
        }
    }
    catch (BusinessApplicationException ex1) when (ex1 is ApiTimeoutException)
    {
        await ShowDialogTimeoutAsync(pageDialogService);

        await errorAction?.Invoke(ex1);
    }
    catch (BusinessSystemException ex2)
    {
        // TODO:継続不可能例外
        throw;
    }
    catch (Exception ex3)
    {
        throw;
    }
}
```

# **Visual Studio 2017 15.3.2で解消してることを確認**
https://bugzilla.xamarin.com/show_bug.cgi?id=58625

#### ちなみにAndroid限定らしい
pythonで時系列フィルタするパッケージをつくった

はじめに
--------------------
pythonにちょうど良い時系列フィルタの実装が無かったので自作しました。

実装したもの
--------------------
以下を実装した。

### カルマンフィルタ
インスタンス生成時に下記の行列 $F, G, Q, H, R$ をそれぞれ指定する。

#### 状態空間表現

```math
x_{n+1} = F x_n + G v_n, \hspace{1em} v_n \sim N(O,Q) \\
y_n = H x_n + w_n, \hspace{2em} w_n \sim N(O,R)
```
#### できること

- 尤度計算
- フィルタリング
- 固定区間スムージング

### 粒子フィルタ
インスタンス生成時に、状態遷移用のメソッド `update` 、対数尤度計算用メソッド `loglikelihood` 、状態推定用メソッド `estimate` をそれぞれ指定する。

#### 状態空間表現

```math
x_{n+1} = F(x_n, v_n) \\
y_n = H(x_n) + w_n
```

#### できること

- 尤度計算
- フィルタリング
- 固定ラグスムージング

リポジトリ
--------------------
使い方はREADME参照
[ryskiwt/tsfilter: Time Series Filtering](https://github.com/ryskiwt/tsfilter)

工夫とか
--------------------

- 汎用的に使えるように、生成時に状態空間モデルを指定できるようにしてある
- 事前にメモリ確保したり、配列コピーさせないようにしてで、きるだけ速度には気をつけた
    - そのかわりメモリ結構食います
- 粒子フィルタのランダムサンプリングは `Numba` 使って速くした
    - Cython とも比較したけど、そんなに変わらなかったのでこちらを採用


今後
--------------------

- 信号は出力するけど、状態を出力しないので、そこを改善する
Alexa Skill Kitを触ってみる


# 経緯
Severless Meetup Osaka #3にて、Alexa Skill Kitに関する発表があった。
想像していたより簡単に始められそうだったので、まずはサンプルを触りながらメモ。

# 対象サンプル
https://github.com/alexa/skill-sample-nodejs-fact
サンプルは幾つか用意されているが、
Factサンプルはステップごとに手順が記載されており、かつ、Skillの内容がシンプルなので分かりやすったため、選択。

## Skill実装、公開に必要なもの
- Amazon開発者アカウント
  - 登録無料、サンプルで実装する範囲では課金発生なし
- AWSアカウント
  - サンプルで実装する範囲では無料利用枠で十分
-  アプリアイコン用画像

## Skill公開までの流れ
1. AlexaのVoice User Interface(VUI)を作成
2. Lambdaの関数を作成
3. VUIをLambdaの関数と紐づけ
4. 動作確認
5. 公開のための設定
6. Skillの審査（数日かかる）

## VUI作成
VUIはAlexaで音声認識させるためのインタフェース

Skill Information

- Skill Type: 動作のタイプ
  - 用途に応じて用意されているものから選択
  - Custom Skill: 自由に作成
  - Smart Home Skill: 家電操作用
  - Entertainment Device Control in the Smart Home Skill: AV家電操作用
  - Video Skill: 動画サービス操作用
  - Flash Briefing Skill: ニュース配信用。ソースとして、RSSなどを利用
- Language: Skillが対応する言語
  - 多言語への対応も可能
- Invocation Name: Skillを呼び出すためのキーワード。Skill TypeがCustom skillの場合のみ必要。制約に抵触しない、かつ、他Skillと重複を避けるよう設定する必要がある。
  - ** 開発中は変更できるが、審査・公開されると変更できなくなるため、要注意。 **
  - https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/choosing-the-invocation-name-for-an-alexa-skill

Interaction Model

- Intent: 1アクションに対応させる文意
- Utterance: Intentを判断する際の例文

## Lambda関数作成
作成時に気を付けることは下記２点。
それ以外は通常のLambdaと同じ。

- リージョンは米国東部（バージニア北部）かEU（アイルランド）のどちらかにする事。
  - 2017/08/26時点では、Alexaが提供されているリージョンが上記２つのみなので。
- トリガーとして「Alexa Skill Kit」を選択

作成したLambda関数のARNをメモっておく。

## VUIとLambda関数を紐づけ
紐づけにLambda関数のARNが必要。

Account Linking
サンプルでは利用していないが、Skillの中で、他システムのユーザ情報を使いたい場合に使用。
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/linking-an-alexa-user-with-a-user-in-your-system

## 動作確認
Amazon開発者ポータルにて、Service Simulatorで動作確認可能

ローカルでテストしたり、テストコードを作りたい場合は、alexa-conversation + mochaが便利

## 公開のための設定
SkillをAmazonのプラットフォームで公開する際の情報を入れる。
審査用に、Skillのカテゴリや配信対象の国、Skillの説明など。
公開用に、呼び出し例、関連キーワード、アイコンに使う画像（必須）など。

# 所感
- ステップバイステップのサンプルがあるって最高。
- VUI作る部分はMS Cognitive ServiesのLUISと大体同じ感じ。ただ、位置づけは異なる。
  - LUISは言語解析機能としてアプリに組み込むためのパーツ。
  - Alexa Skill Kitは利用用途をAlexaでの音声認識・操作に絞ってある。代わりに、アプリ（Skill）を作るまでが簡単で、Skillを公開するためのプラットフォームも用意されている。

# 参考リンク
https://speakerdeck.com/hideokamoto/building-alexa-custom-skill-by-serverless-framework
https://developer.amazon.com/ja/alexa-skills-kit
https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs
http://dev.classmethod.jp/cloud/introduction-of-alexa-skill-kit/
DockerでAngular-CLIの開発環境を構築する

## 概要
- Node.js、npmをインストールするのが面倒な時、DockerでAngular-CLIの開発環境を作る
- [Cloud9](https://c9.io/)とかでも出来るが、今回はDockerでやる

## Docker HubからImageを取得する
```
# Docker HubでAngular CLIで検索すると出てくるイメージで好きなのを使うと良い
# 今回はalexsuch/angular-cliを使う バージョンは使いたいAngular CLIのバージョンで
docker pull alexsuch/angular-cli:1.2.7
```

## Angularのプロジェクトを作成する
```
# PJを作成したい場所で実行する
docker run -it --rm -w /app -v $(pwd):/app alexsuch/angular-cli:1.2.7 ng new my-project-name
```

## コンテナを起動して中でnpm installする
```
docker run -it --rm -v $(pwd):/app alexsuch/angular-cli:1.2.7 /bin/ash

## コンテナ内
cd app/my-project-name
npm install

## ng generate 使うのもコンテナ内で行う
ng g c hogehoge
```

## 作成したプロジェクトを実行してみる
```
docker run -it --rm -w /app -v $(pwd)/my-project-name:/app -p 4200:4200 alexsuch/angular-cli:1.2.7 ng serve --host 0.0.0.0
```
- localhost:4200 で動作確認できる

- DockerとテキストエディタがあればAngularの開発ができる
Atomで.babelrcのシンタックスハイライトをJSON5風にする

JSONってコメント書けなかったり、制約が多くて使いづらいですよね。ESLintの`.eslintrc`みたいにJSONとYAMLが両方使える場合は僕はYAML使うんですが、Babelの`.babelrc`はYAML未対応でした。

しかし調べてみると、`.babelrc`は[JSON5](http://json5.org/)に対応しているので、コメント書いたり普通にできるとのこと!
https://babeljs.io/docs/usage/babelrc/
https://github.com/babel/babel/issues/4980#issuecomment-266035749

試してみると、確かにこれで動きました。

```js:.babelrc
{
  // コメント付き
  // キーにダブルクォートなし、
  // 文字列にシングルクォート使用、
  // ケツカンマ
  presets: ['env'],
}
```

しかーし、ATOMエディタでは`.babelrc`のシンタックスハイライトはJSON扱いになるので、このように真っ赤っかになって、正しいのに「悪いことしてる感」極まりないのです。。。

![スクリーンショット 2017-08-26 23.40.17.png](https://qiita-image-store.s3.amazonaws.com/0/24333/23abec2e-062b-e3ea-cdb3-595a436a91f8.png)

拡張子を付けて `.babelrc.json5` とか `.babelrc.js` にしてやると綺麗にハイライトはされるけど、肝心のBabelの設定としては拒否られるので無意味。`.babelrc`という名前しか認めぬ！という硬派ぶりであります。
さすが[全人類が同じ言語を使っていた伝説](https://kotobank.jp/word/バベルの塔-116156)を体現するツールって感じですね。ファイル名もブレない！

そんな時は、ATOMの設定ファイル`config.cson `を編集して、「customFileTypes」を追加してやりましょう。
http://flight-manual.atom.io/using-atom/sections/basic-customization/#customizing-language-recognition

JSONで真っ赤になるような状態を解消したいだけなら、以下のように`source.js`にすればOK。

```coffeescript:config.cson
  core:
    customFileTypes:
      "source.js": [
        "babelrc"
      ]
```
すると、

![スクリーンショット 2017-08-26 23.39.52.png](https://qiita-image-store.s3.amazonaws.com/0/24333/422010c3-dd72-6cd1-788d-07cc67c79318.png)

いい感じっすね！
ただ、以下のように「JSON5として正しくない」コードを書いた場合、

```js:.babelrc
console.log('hello, json5!');
{
  // コメント付き
  // キーにダブルクォートなし、
  // 文字列にシングルクォート使用、
  // ケツカンマ
  presets: ['env'],
}
```
綺麗にシンタックスハイライトされちゃいます。JavaScript扱いだからね。
当然これでBabelを動かしたらエラー。

![スクリーンショット 2017-08-26 23.26.24.png](https://qiita-image-store.s3.amazonaws.com/0/24333/907150ab-95f4-fedc-94d9-862bb8628e43.png)

実は、ファイルの拡張子を `.json5` にした場合も、デフォルトでは上の画像の `.js` と同じハイライトになっちゃうんですよね。手抜きか！

ちゃんと「JS風ではなくJSON5風のシンタックスハイライト」にしたい場合は、まずATOMにパッケージ [language-json5](https://atom.io/packages/language-json5) をインストールします。

これによって `.json5` の拡張子は `.js` とは違うハイライトになるし、上記の `config.cson` で `source.json5` というフォーマットが使えるようになります。

```coffeescript:config.cson
  core:
    customFileTypes:
      "source.json5": [
        "babelrc"
      ]
```

その結果がコチラ。
![スクリーンショット 2017-08-26 23.26.56.png](https://qiita-image-store.s3.amazonaws.com/0/24333/57292d1c-f0d5-6fd7-7c18-2ee5c4b9c537.png)

`console.log`の部分、真っ赤にはならないけど、`.js` のハイライトを見慣れてるJavaScripterの皆さんなら、「なんか変だな。。JSON5ではこれダメなのか？」って気づきますよね！
めでたしめでたし。

ちなみにQiitaのコードブロックで使えるシンタックスハイライトには、`json5`はありませんでした。。。やっぱマニアックなフォーマットなのかしら？だからこの記事の`.babelrc`コードは`js`でハイライト。`cson`もなかったから、`config.cson`は`coffeescript`でハイライトしたけどね。

シンタックスハイライト絡みのネタって、意外と解説記事が少ないんですが、こだわる人少ないのかなぁ？僕は見た目が悪いとめちゃくちゃ気持ち悪くなって集中できないタチなので、まず「見た目を綺麗にすること」に全力を尽くしちゃうんですよねー。

ではまた！
Faust勉強会私的メモ


Faust勉強会#1に参加してきました。
松浦さんのスライド(https://tomoyanonymous.github.io/faust_jp_tutorial/index.html#/)
(画面右下の十字ボタンで進行)


行きたがっていた大学の後輩への共有用&
個人的に気になってたところのざっくりメモ
文法についてはは省略します。(スライド参照)

#Faustとは
http://faust.grame.fr/
音用のプログラミング言語。
コンパイラで、FAUST言語からC, C++, JAVA, JavaScript, ASM.js, LLVM ビットコードを出力。
これを使うことでDAWのエフェクト/楽器プラグインであるVSTを作ったり,専用のエフェクターのプリセットを使ったり,Unityで使えたり、etc....

#例えばどんなことができる?
##Guitarix
http://guitarix.org/
Linux向けギターアンプシュミレーター

##OWL
https://hoxtonowl.com/
プログラマブルなギターペダル/ラック

#メリット　/デメリット
##メリット
クロスプラットフォーム
C++直書きより高速

##デメリット
文法が特殊
wav読み込み、FFTなど×


#使い方
faustLive.appと任意のテキストエディタを使用

##1.「○○.dsp」ファイルを作成
ここにfaustのコードを書いていきます。

##2.faustLive
faustLive.appを実行。
「○○.dsp」ファイルを開く。するとそのまま実行される。（いきなり音がなったりするので注意）
⌘　+　G でダイアグラム図表示(ブラウザもしくはイラレなど)
⌘　+　K でQRコードが出てくる。これを読むと同一ネットワーク上のスマホからパラメータを操作したりできる

##3.export
⌘　+　P　で出力
プラットフォームなどを指定することで出力できる
vmwareでubuntu環境構築

#vmwareはじめました
環境はos xでvmware fusion8.5で入れたディストーションはubuntu 14.04

インストールでハマりそうな点とハマった点を箇条書きします

インストール時
・日本語remixを選ぼう。試してないけどインストール後の日本語化はかなり手間かかりそう。
・vmwareの簡易インストールを使うと日本語remixでインストールできない。手動インストールしよう
・インストール後にvmware toolsをインストールしないと画面の最大化等ができないから忘れなくインストールしよう

インストール後
・google chromeインストールしてもログインできない。原因不明。未解決。
・簡単にcaps lockをコマンドキーにできない。キーバインドの変更がめっちゃ大変。
以前のubuntuのバージョン(12.04以前)なら簡単にできたけど14.04ではできないらしい。調べてる最中だけど、だいぶ手間かかりそう。

総括
サポート終わってるけど12.04の日本語remixがいちばん良い選択肢かもしれない。
14.04だとメモリを3Gくらい割り当てないと動作がもたつく。
cron入門

#cronはじめました

linuxで定期実行ができる便利システムの入門です
[crontabの使い方 ](http://saba.omnioo.com/note/1233/crontab%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/)を参考にしました

cronの設定ファイルを編集します
ここでcronの実行の日時やコマンドを編集します
```
~$ crontab -e
```
好きなエディタを選びましょう


1分おきにnullって名前の空ファイルを作ってます
```
*/1 * * * * touch /home/ユーザー名/null
```

設定ファイルが入ってることを確認し
cronをスタートさせてます
```
~$ crontab -l
~$ service cron start
```

cronを止めるにはこれです
```
~$ service cron stop
```


定期実行できるとやれることがかなり広がるのでいいですね
ubuntuインストール時のメモ

ubuntuインストール時のメモ

ubuntuをインストールする。
gtx1080tiを使っていたので、nouveauがまだ対応していないらしく、エラーになった。
少し古いgpuを買い直して、ubuntuをインストール後にドライバを入れる予定。

アンチウイルス clamavをインストールする。

パケッージをダウンロードしてきてinstallの手順通りに進める。

途中で、opensslがないと行って、エラーになったので、 libssl-devをインストールした。
Railsアプリにgoogleユーザー認証機能をつけた

#DeviseとOmniauthでgoogleユーザー認証機能
##大まかな流れ
###GoogleでClientIDを取得する
https://console.developers.google.com/project
###GemfileにGemを追加
```ruby:Gemfile
gem 'devise'
gem 'omniauth'
gem 'omniauth-google-oauth2'
```
(bundle installをする)
###DeviseとOmniauthの設定
詳しくはhttp://qiita.com/ttaka66/items/9ea3052a6f17a0b8f5fc

##googleユーザーでログインというボタン
##開発中のWebサービスにgoogleユーザー認証を実装
gitで一個目のバージョンに戻したい時

gitで前のcommitの間違えに気付いて戻したい時のやり方。

# git checkout .

これで一個前のに戻れる。ローカルの作業は完全に破棄。

# revertしてpushする方法

## revert

```$git revert <commit>```

でcommitにまず戻す。これでローカルが戻る。ただこの時点ではへあｄが過去になっているためpushしても受け付けてもらえない。

## push

```$ git push -f origin ハッシュ値:master```

-fをつけて上書きする。これは既存のcommitに上書きするもの。
Cloud9でheroku createコマンドが400エラーになる場合

[Cloud9](https://c9.io/) で `heroku create` コマンドを実行したら、400エラーになった。

```
iwamot:~/workspace $ heroku create アプリケーション名
Enter your Heroku credentials.
Email: メールアドレス
Password (typing will be hidden): 
 ▸    HTTP Error: https://api.heroku.com/login 400 Bad Request
 ▸    Invalid response from API.
 ▸    HTTP 400
 ▸    {メールアドレス パスワード}
 ▸    
 ▸    Are you behind a proxy?
 ▸    https://devcenter.heroku.com/articles/using-the-cli#using-an-http-proxy
```

これは、heroku-cliのバージョンが古いのが原因だった。

```
iwamot:~/workspace $ heroku version
heroku-toolbelt/3.43.13 (x86_64-linux) ruby/2.3.0
heroku-cli/5.4.8-eee5ec9 (linux-amd64) go1.7.1
You have no installed plugins.
```

[Herokuのドキュメント](https://devcenter.heroku.com/articles/heroku-cli#debian-ubuntu)に書かれているコマンドで、アップデートしてみた。少し時間がかかった。

```
iwamot:~/workspace $ wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh
（中略）
heroku cli installed to /usr/bin/heroku
+ heroku version
heroku-cli/6.13.19 (linux-x64) node-v8.3.0
```

これで、`heroku create` が実行できるようになった。

```
iwamot:~/workspace $ heroku create アプリケーション名
Creating ⬢ アプリケーション名... !
 ▸    Invalid credentials provided.
Enter your Heroku credentials:
Email: メールアドレス
Password: ***********
Creating ⬢ アプリケーション名... done
https://アプリケーション名.herokuapp.com/ | https://git.heroku.com/アプリケーション名.git
```
Linuxコマンドメモ

# sed　文字列を置換
**sed -e s/置換条件/置き換え条件/ ファイル名**
置換ができる

# rm　ファイルやディレクトリの削除
**rm ファイル名**
ファイルを削除
以下オプション。
-r　ディレクトリの中身ごと削除
-f　警告メッセージを表示しない

# >>　出力をファイルへ追加する
**コマンド >> 出力先**
コマンドの標準出力を出力先へ出力する。追記。　

# mv　移動、名前変更
**mv file1 file2**
file1をfile2の名前に変更する

# ecoh　標準出力に表示
**ecoh 文字列**
文字列を標準出力に表示する
以下オプション。
-e　エスケープコードを使用可能にする
-n　最後の改行を出力しない
以下エスケープコード。
\c　最後の改行を出力しない
\n　改行(LF)
\r　改行(CR)
\t　水平タブ

#　#　コメント
**#文字列**
\#以降はコメントとして扱われる

# date　日付、時刻
**date**
標準の方式で現在の日付と時刻を表示する
**date +format**
formatの方式で現在の日付と時刻を表示する

# pwd　カレントディレクトリ
**pwd**
カレントディレクトリを絶対パスで表示する

参考
http://itpro.nikkeibp.co.jp/article/COLUMN/20060223/230520/?TOC=1
鍵認証でsshできるDockerコンテナを建てる

すぐ作れて壊せるそういう環境がほしくなった。

## 鍵を作る

```bash
mkdir .docker; cd .docker

ssh-keygen -b 4096 # このディレクトリにid_rsa生成
mkdir .ssh
cat id_rsa.pub > .ssh/authorized_key
chmod 700 .ssh; chmod 600 .ssh/authorized_key

cd ..
```

## Docker Compose の設定を書いて、コンテナを建てる

とりあえずDockerHubで「ssh」で検索して、一番星が付いてたイメージを使う。

> [rastasheep/ubuntu-sshd](https://hub.docker.com/r/rastasheep/ubuntu-sshd/)

```yaml:docker-compose.yml
version: '3'
services:
  ssh:
    image: rastasheep/ubuntu-sshd
    ports:
      - '50022:22'
    volumes:
      - './.docker/.ssh:/root/.ssh'
```

コマンドで、

```bash
docker-compose up
```

または`docker-compose`使わないなら、

```bash
docker run --rm -p 50022:22 -v ${PWD}/.docker/.ssh:/root/.ssh rastasheep/ubuntu-sshd
```

## ssh接続

```bash
ssh -i .docker/id_rsa -p 50022 root@localhost
```
Node-RED でメールを送る

Node-RED でメールを送る時に、宛先、タイトル、本文を変数にする方法です。
http://127.0.0.1:1880/mail
に GET で、"to","topic","payload"　を与えます。

テストプログラムです。

```py:server_check.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
#	server_check.py
#
#					Aug/26/2017
# ------------------------------------------------------------------
import sys
import requests

# ------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
mail_to = "aaa_bbb@example.com"
subject = "Node-RED Mail Test Aug/26/2017 PM 20:56"
#
content = ""
content += "こんばんは\n"
content += "今日は暑かった。\n"
content += subject + "\n"
#
args = {
	"to": mail_to,
	"topic": subject,
	"payload": content
	}
url = "http://127.0.0.1:1880/mail"
#
rr=requests.get(url,args)
print(rr)
print(rr.text)
#
#
sys.stderr.write ("mail_to = " + mail_to + "\n")
sys.stderr.write ("subject = " + subject + "\n")
#
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------
```

Node-RED のプログラムです。

![mail_aug2601.png](https://qiita-image-store.s3.amazonaws.com/0/179446/9fbbae9c-5f27-34b5-8c1d-83c30e84692e.png)

http in ノード
メソッドは、GET です。

![mail_aug2602.png](https://qiita-image-store.s3.amazonaws.com/0/179446/70b9891f-846d-3af7-64f1-8a615499ad3f.png)

function ノード

![mail_aug2603.png](https://qiita-image-store.s3.amazonaws.com/0/179446/652fd158-506d-9303-1c14-0483c069f105.png)

コードです。

```js
msg.payload=msg.req.query.payload
msg.topic = msg.req.query.topic
msg.to = msg.req.query.to
return msg
```

http response ノード

![mail_aug2604.png](https://qiita-image-store.s3.amazonaws.com/0/179446/1a653282-2bfd-279c-e106-c67890b9fd98.png)

e-mail ノード

Gmail の　ユーザID とパスワードを入れます。

![mail_aug2605.png](https://qiita-image-store.s3.amazonaws.com/0/179446/cfc95fb9-eed6-726d-5bae-46b9d92c6fff.png)
【しずおかアプリ部】活動ログ　第43回

![しずおかアプリ部2.jpg](https://qiita-image-store.s3.amazonaws.com/0/88105/ee800648-fa25-1829-20c3-bad9c2055d35.jpeg)

##■公式サイト##
[http://monolizm.com/shizuoka-app](http://monolizm.com/shizuoka-app)
「Slack」も利用しています。 shizuapp で検索し、ご参加ください。

##◾️参加申し込み##
しずおかアプリ部への参加申し込みは[こちら](https://shizuoka-app.connpass.com/)から

##■タイトル##
第４３回


##■開催日##
２０１７年８月２６日（土）　１６：００～１８：００


##■参加者##
１２名


##■活動内容（概要）##
・最近の話題の技術ニュース、告知
・部員さんプレゼン「Unityを使った３Ｄブロック崩しの作り方」
・TEA BREAK　



##■活動内容（詳細）##

【実演・プレゼン】

**・最近の話題の技術ニュース、告知**
　・プログラミング的思考（論理的思考）って何？ 
　　[http://trendy.nikkeibp.co.jp/atcl/column/16/041800112/050100010/?P=3](http://trendy.nikkeibp.co.jp/atcl/column/16/041800112/050100010/?P=3)
　　[http://d.hatena.ne.jp/coconutsfine/20090505/1241475193](http://d.hatena.ne.jp/coconutsfine/20090505/1241475193)
　・[白猫プロジェクトの裏側](http://colopl.co.jp/news/pdf/2015042701.pdf)
　・[Android8の話](http://gigazine.net/news/20170822-android-8-0-oreo/)
　・[日本初のゲーム専門AI会社「モリカトロン」設立](http://ascii.jp/elem/000/001/532/1532286/)
　　などなど
<hr>

**・部員さんプレゼン「Unityを使った３Ｄブロック崩しの作り方」**
　　　Unity初心者向けに3Dブロック崩しの作り方をプレゼン。

　　　ブロック崩しを作る前段階として、
　　　Unityのシーンビューでの操作方法を改めてQiitaにまとめた。
　　　[http://qiita.com/yaju/items/f4829daeedd685888ef7](http://qiita.com/yaju/items/f4829daeedd685888ef7)
　　　ビューの見方、投影方法、操作方法など、
　　　書籍やネット検索であまり見つからなかった部分をまとめた。


　　　3Dブロック崩しは、「JunShimura」さんのブログを参考にさせて頂きました。
　　　http://qiita.com/JunShimura/items/cbb0db8087a5cc75735e

　　　
　　　Unityの基本的な操作と概念を覚えるのにちょうどよいレベルの内容。
　　　Unityに慣れない部員さんは躓きながらも、３Dブロック崩しを作っていた。
　　　玉の跳ね返りも「PhysicMaterial」を使うことで、簡単に実現できる。
　　　書いたコードはほんのわずかだが、約75分でブロック崩しの形となった。

　　　次回のアプリ部で、今回作ったブロック崩しをよりゲームらしくする。
 
![写真 2017-08-26 16 37 31.jpg](https://qiita-image-store.s3.amazonaws.com/0/88105/2e5285fe-1f47-a6d1-d749-c088d631720e.jpeg)

![IMG_8048.JPG](https://qiita-image-store.s3.amazonaws.com/0/88105/1202fa62-d078-ff2e-cfad-becefc20b30a.jpeg)

　　



<hr>





**・TEA BREAK**
　プレゼンタイムに終わらなかったブロック崩しの続き、
　ゲームの話題や小学校の話題、Shinjunku VRZoneのことなど。