OmniAICreator/Qiita-1.07M huggingface dataset:
メリークリスマス！ 2019年あけおめ！ LINE音声トーク機能は UI が UX を変える教科書。

# 年賀状よりLINE音声トークでしょ？

動画撮影なんて夢の夢の人見知りな僕らengneerには。

切手を貼ったり文字を書いたりなんて、とても出来ない単純作業の出来ない僕らenginnerには

LINEぐらいなら使える情報リテラシ超爆上げの僕らenginnerには。

# LINE の音声マイクのトークが意外に爆速でやばい件。

今更気づいた
昔からあったやつ

![image](https://user-images.githubusercontent.com/13635059/50554529-6b6cd880-0cff-11e9-8172-6ed7f5cc51ac.png)


# エンジニアはPCキーボード爆速入力に慣れてる

- スマホのフリック入力とかやっていられない
- 音ならキーボードの速度に追いつけるかもしれない
- 筆無精な人、面倒くさがりな人には良いかも、僕らエンジニアのような(repeat after me?

# UI

- マイクボタンを押している間だけ音声トーク録音ができる
- マイクボタンを話すと一瞬で送信される
- 自動文字起こしとかはしてくれないので、読む方には優しくないかもしれない


![image](https://user-images.githubusercontent.com/13635059/50554528-5f811680-0cff-11e9-92f3-3769f25cd55c.png)

# UX

- ユーザー同士が「あたたかさ」を伝えることができる
- メリークリスマス、1年ありがとうございました、来年もよろしくね、とかいうメッセージに最適かも、動画みたいにハードルも高くない、年賀状よりLINE音声入力でしょ！
- ものすごく爆速で超低コストでメッセージを伝えることができるので、コミュニケーション機会が増えて夫婦円満、家族関係をとりもつことになる

wooooo thi s i s th e UXXXXXXXXXXX!

---

by https://twitter.com/yumainaura

https://github.com/YumaInaura/YumaInaura/issues/89








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
[PHP]定数について

#定数とは
変数に対して、変更されない値につけるラベル。

#使い方
```php5
<?php
define("MY_EMAIL","riotam@ex.com");
echo MY_EMAIL;
// => riotam@exam.com
```

 - define関数を使う。
 - 上記の場合「MY_EMAIL」が定数。
 - 上記の場合「riotam@exam.com」が代入された値。
 - 慣習的に、すべて大文字にする。
 - 慣習的に2単語を繋げる際は「 _ 」で繋げる。

#定数への再代入
```php5
<?php
define("MY_EMAIL","riotam@exam.com");
echo MY_EMAIL;
// => riotam@ex.com

MY_EMAIL = "hoge@exam.com";
// => このような代入演算子は使えないと、エラーが出る。
```
定数は基本的に、変更されない値が代入されている。


#自動的に定義されている定数
```php5
<?php
var_dump(__LINE__); // => 何行目かを「 comint(○○) 」で表示する。
var_dump(__FILE__); // => ファイル名を「 "/home/○/△/□/index.php" 」と表示する。
var_dump(__DIR__);  // => ディレクトリ名を「 "/home/○/△/□/" 」と表示する。
```
WSLのUbuntuにTensorFlowをインストール

Ubuntu18.04LTSにTensorFlowをインストールしましたので、その手順を書いておきます。

|種類|バージョン|内容|
|:--|:--|:--|
|OS|Windows10 Professional 64bit|WSL(Windows Subsystem for Linux)でUbuntu18.04.1LTSを使っています|
|Python|Python3.6.8|[公式サイトに「Requires Python 3.4, 3.5, or 3.6」](https://www.tensorflow.org/install/pip?hl=ja#1-install-the-python-development-environment-on-your-system)と記載があるのでPython3.6にしています<br>pyenv1.2.8でバージョン管理してvenvで仮想化しています|
|TensorFlow| TensorFlow 1.12|TensorFlow with CPU support onlyです。**当ブログ内容は"TensorFlow with GPU support"に対応していない**ので注意ください|

#関連記事

- [TensorFlowをWindowsにインストール Python初心者でも簡単だった件](https://qiita.com/FukuharaYohei/items/d8f82c827e0bae70096a)
- [WindowsでMinicondaを使ってTensorFlow環境構築(2018年)](https://qiita.com/FukuharaYohei/items/9462e080fe913a435271)

#インストール手順
##0. 前提
pyenvは[Github way (recommended)](https://github.com/pyenv/pyenv-installer#github-way-recommended)の手順に従ってインストール済

##1. 仮想環境作成
###1.1. pyenvでpythonインストール
pyenvでインストール可能なpythonのバージョンを確認します。

```bash
pyenv install -list
```

2018/12/28時点で3.6系で最新だった3.6.8をインストールします。

```bash
pyenv install 3.6.8
```

※失敗したので、不足した以下をapt-get後に、もう一度3.6.8をインストールしました。

```bash
sudo apt-get install zlib1g-dev libssl-dev
```

インストールされた結果、pyenvで使用できるかを確認。

```bash
pyenv versions
```

ひとまず、グローバルに設定して、現在のpythonバージョンの確認。

```bash
pyenv global 3.6.8
python --version
which python
```

###1.2. venvの仮想環境作成
ディレクトリを移動し、venvで"tf12"という名前の仮装環境を作成します。

```bash
cd <directory>
python -m venv tf12
```

仮想環境作成後にtf12というフォルダができ、その直下にbinなどのフォルダができているのを確認します。

```bash
ls tf12 -al
```

作成した仮想環境"tf12"を有効化します。

```bash
source tf12/bin/activate
```

### 1.3 pipの最新化
pipを最新にしておきます。

```bash
pip install --upgrade pip
```

##2. TensorFlowインストール

###2.1. TensorFlowインストール
仮想環境"tf12"に対してpipでTensorFlow CPU-only の最新版をインストールします。

```bash
pip install --upgrade tensorflow
```

バージョンを指定したい場合は下記のようにしてください(Ver1.10としています)。

```bash
pip install tensorflow==1.10
```

これで依存関係があるパッケージも含めてインストールされました。pip freezeで確認します。

```bash
$ pip freeze
absl-py==0.6.1
astor==0.7.1
gast==0.2.0
grpcio==1.17.1
h5py==2.9.0
Keras-Applications==1.0.6
Keras-Preprocessing==1.0.5
Markdown==3.0.1
numpy==1.15.4
protobuf==3.6.1
six==1.12.0
tensorboard==1.12.1
tensorflow==1.12.0
termcolor==1.1.0
Werkzeug==0.14.1
```

###1.3. TensorFlowインストール確認
サンプルのコマンドを打って、TensorFlowのインストールを確認します。

```bash
$ python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
2018-12-31 12:58:37.931864: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
tf.Tensor(-483.9022, shape=(), dtype=float32)
```


#経緯
ただの経緯なので、興味がある人だけ読んでください。
長年Windowsを使い続けていたのですが、PythonやTensorFlow開発に限界を感じてUbuntuを使い始めました。だいたい、どの手順書見てもWindowsは対象としていなかったり、トラブルシュート情報が少なかったりするためです。CLIなど慣れずに面倒と思うことも多いのですが、頑張っていきたいと思っています。
また、Windows感覚でAnaconda/Minicondaで仮想環境を作ろうとしたのですが、Linuxでは悪評も多かったのでpyenvとvenvを使っています。condaでパッケージを探すのも面倒だと感じていたので、脱condaしてみました。
Railsでacts-as-taggable-onを使ってタグ管理を行う

ブログなどでよくあるタグを実装したいと思っていたところ、[acts-as-taggable-on](https://github.com/mbleigh/acts-as-taggable-on)という gem で簡単に実装できたのでメモ


## 環境
Rails 5.2.1
acts-as-taggable-on 6.0.0


## 手順
1. gem インストール
2. テーブル作成
3. タグ保存
4. タグ表示

## gem インストール
Gemfile に以下を追記して、bundle install する。

```
gem 'acts-as-taggable-on', '~> 6.0'
```



## テーブル作成
```shell
$ rake acts_as_taggable_on_engine:install:migrations
$ rake db:migrate
```

これにより、"taggings"、"tags" テーブルが生成される。


## タグ保存
タグを付けたいモデルに以下のように追記する。(今回は Post モデルにタグを付けたかったので post.rb に記述)

```rb
class Post < ApplicationRecord
  acts_as_taggable
end
```
</br>
タグの form は以下のようにする。
デフォルトでは、カンマ区切りでタグを入力

```erb
<%= f.label :tag_list, 'タグをカンマ区切りで入力' %>
<%= text_field_tag 'post[tag_list]', @post.tag_list, :class => "form-control" %>
```
</br>
スペースなどで区切りたい場合は、config/initializers/ に acts_as_taggable_on.rb を作成して、以下のように記述する。

```rb
ActsAsTaggableOn.delimiter = ' '
```

</br>
保存する時は、以下のようにコントローラーのストロングパラメータに「:tag_list」を追加する。

```rb
def post_params
    params.require(:post).permit(:title, :content, :tag_list)
end
```


## タグ表示
view で以下のように記述することで、表示できる。

```erb
<% @post.tag_list.each do |tag| %>
  <span style="background-color: #e9e9e9; border-radius: 5px;"><%= tag %></span>
<% end %>
```
 
</br>
以上で、最低限のタグ機能が実装できる。さらに、カスタマイズしたい場合は、[ドキュメント](https://github.com/mbleigh/acts-as-taggable-on)を参照してください。
micro:bitの環境構築と動作確認

# デバイス本体の入手

Amazonや楽天で売っている．とりあえずAmazonで安いやつを入手した．

<div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;margin:0px 12px 1px 0px;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B074M58PL7/taki0313-22/ref=nosim/" name="amazletlink" target="_blank"><img src="https://images-fe.ssl-images-amazon.com/images/I/41SN7PhemTL._SL160_.jpg" alt="BBC micro:bit （マイクロビット）" style="border: none;" /></a></div><div class="amazlet-info" style="line-height:120%; margin-bottom: 10px"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B074M58PL7/taki0313-22/ref=nosim/" name="amazletlink" target="_blank">BBC micro:bit （マイクロビット）</a><div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">posted with <a href="http://www.amazlet.com/" title="amazlet" target="_blank">amazlet</a> at 18.12.08</div></div><div class="amazlet-detail">BBC micro:bit <br />売り上げランキング: 6,593<br /></div><div class="amazlet-sub-info" style="float: left;"><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B074M58PL7/taki0313-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jpで詳細を見る</a></div></div></div><div class="amazlet-footer" style="clear: left"></div></div>

# 動作確認

- micro USBケーブルを接続し，Hello!と表示されることを確認
- Web上のエディタで適当なプログラムをブロックで作ってみる
    - 参考URL:
        -  https://microbit.org/ja/guide/quick/
        -  ハートマークが大小で点滅するLEDのプログラムを作成できる

# 環境準備

こちらの公式ドキュメントを参照．環境はWindowsを想定．

- インストーラ: https://mbed-media.mbed.com/filer_public/2f/0b/2f0b924c-1fac-4907-989b-f2afe3f5785e/yotta_install_v023.exe
    - ただしPythonはAnacondaでインストール済みのものをインストーラが検出したので，上書きしないようにキャンセルを選択した（効果は不明）
    - インストーラの動作を見ていると，なんらかの仮想環境をvirtualenvで作っている様子
- tool: http://srecord.sourceforge.net/download.html
  - https://sourceforge.net/projects/srecord/files/srecord-win32/1.64/
  - こちらの**Readme-Windows.txt**を読んでそっと閉じる
  - 事前にビルドされた**srec_cat.ext**などをパスの通ったディレクトリに置く

- シリアル通信の準備
    - 参考: https://sanuki-tech.net/micro-bit/appendix/windows-serial-configuration/

# ブロック図で動作確認

- 公式のブロックエディタで加速度を取ってみる

![microbit_block.png](https://qiita-image-store.s3.amazonaws.com/0/7181/e3740657-8578-cf3a-80d5-1edd984b7195.png)

- TeraTerm（115200）を起動してデータ確認

![output.png](https://qiita-image-store.s3.amazonaws.com/0/7181/78fd7de3-4f2f-c228-6a0e-4ae3b801d462.png)

- ブラウザ上でのシミュレータでも動作確認できる

![simulator.png](https://qiita-image-store.s3.amazonaws.com/0/7181/79c8c52c-cfcf-96da-858f-4fe3fc3f16dd.png)




# Next

- インタフェース1月号の中身
2018年 ITエンジニア本大賞のユーザー動線を勝手に考える #UI #UX 


https://twitter.com/ITbookaward/status/1066925322795286528

# ボタンにみえない投票ボタン

![image](https://user-images.githubusercontent.com/13635059/50554321-c7356280-0cfb-11e9-8476-105c1c4d31f2.png)

- ボタンはボタンらしくしよう
- バナー、ただの画像だと間違われないようにしよう
- 「プレゼントも当たる」がハイライトされていて、ユーザーの関心を報酬でpickしてる感じは良かった‥！

# 有名本から選ぶ形式

![image](https://user-images.githubusercontent.com/13635059/50554314-9bb27800-0cfb-11e9-9279-e0d1bf815999.png)

- やりやすかった。あの本もある！この本もある！
- すぐに5冊選べた。
- 完全な自由入力ではないし、投票数が偏りそうではあるけれど、そもそもどうせ有名本が受賞するだろうし？

# ISBN入力が辛かった‥離脱ポイントになりそうだった

![image](https://user-images.githubusercontent.com/13635059/50554308-86d5e480-0cfb-11e9-933f-e233ddc2a526.png)

「ユーザーが一番選びやすいやつ」を「一番」に持ってきたら良さそう

# 最後の一言

みんな応募しよう！！！！

🙌🙌🙌🙌
https://www.shoeisha.co.jp/campaign/award/2019
🙌🙌🙌

気になった本があったらむしろ買ってみよう！

オレのオレオレ

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/1cb402c8-c914-188c-1ceb-0d2e1f26b8a3.png)


---

by https://twitter.com/yumainaura








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
元侍エンジニア塾生がウェブカツを受講して2ヶ月経ったのでレビューした

さて、ウェブカツを始めて２ヶ月。月日が経つのはあっという間ですね。

前回からの進捗状況はというと・・・

ほぼ進んでいません！

というわけで、今回は言い訳タイムに走ります

①一つ一つの理解に時間が掛かってしまった
②Wi-Fiの通信制限に掛かってしまった
③受講を進められないので復習していた

①一つ一つの理解に時間が掛かってしまった
僕は人よりおそらく物事を吸収する速度が遅いみたいです
ITに転職したばかりの時の研修時にも講師の評価が「進捗がおそい」、現場に配属されてからも独り立ちまでの期間が延長されたりと。
昔から要領が悪いのは自覚しているが、なんとかしたい・・・
あと、寄り道始まったらとことんずれてしまう癖もなんとかしなければ・・・
https://twitter.com/kazukichi3110/status/1073856099302830080
前に進めなくて落ち込みそうな時はこのツイートを見て頑張ろう。

②Wi-Fiの通信制限に掛かってしまった
はい、これ思いっきり嵌まってしまいました・・・U○mobileの機能に・・・
使い放題で5年使っているが、何故かある日急激に速度が劇落ち・・・
しらみ潰しに原因を探って行くと・・・
通信方法が２通りあるらしく、普通の通信状態がwimax2+（だったかな？）
そして今回嵌まってしまったのが・・・wimax2+LTE
はい、このLTEモードにしてしまったらその月に７GBを超えたら試合終了です。気になる方は各自ググって見てください。
たまに知らぬ間にポケットの中で自分の体温に反応して設定が切り替わっていることがあり、今回たまたまこの＋LTEモードになっておりほぼ何も出来ない状態になってしまった。タッチパネルのたまに遭遇する弱点が最大限に活かされてしまった（もちろん悪い意味で）

③受講を進められないので復習していた
②の理由から受講を進めることができずに復習していました
しかし、ここで気づいたことが・・・
「俺、ほぼ何も吸収せずに受講進めてたやんけ！」
こっから繰り返しモード全開に。

①と②の反省点を
①他のウェブカツの受講生のツイートとか見て焦ってしまうが、他人は他人、自分は自分のペースで。決して乱されないこと
そのためにはもう気合いと根性で割り切る事しか今の自分には術がないので、他に良い方法があれば教えてもらいたいです

②ポケットWi-Fiはきちんと画面モードをオフにしてからポケットにしまう事。
今回でまた、自分の契約したことの物事はしっかり隅々まで情報を手に入れるという教訓が出来上がりました。

・悩んでいる事
技術とアイディアがマッチしていなくでもどかしい
あんなサービス、こんなサービス作ってみたい！というアイディアだけは一人前なのに、一方でまだ技術が追いつかず、吸収も遅いのでものすごくもどかしい・・・
とりあえず一つの講義に対し、３回は写経してみることにしよう

今月のウェブカツの感想
https://webukatu.com
先月と変わらず、侍エンジニア塾より断然良いです。
そして、値上がりする前に入っておいてラッキーっていう感じです。

今回感じた侍エンジニア塾とウェブカツの差をことですが、
侍エンジニア塾→受講生（僕自身だけですが）に対して太鼓持ちしかしない
　　　　　恐らく、カモを良い気分にして色々ふんだくることが目的なのでしょう

ウェブカツ→ガツーンと来るツイートを見かけることもあり、自戒する機会が得られる。
　　　　　　オーナーのカズキチさんのツイートは読むだけでも価値があり、良い事だけでなく厳しい事もツイートしているけど納得がいく

さて、来月も自分のペースでやっていきますか

※帰省中のANAの機内無料Wi-Fiをお借りして、一見優雅な環境である空の上で書いています

最後に、ネガティブになった時に聴く曲の好きなフレーズを
かりゆし５８　　「ウクイウタ」より
「ロックスターが答えてたよ　「諦めなかっただけなんだ」って　だからお前も　諦めたりすんなよ　まだまだいけるだろう」
DM200でSDカード抜け対策（物理）

[Pomera DM200のLinux化](https://qiita.com/alt-core/items/6b16f12ed196bcba1b58)で、夢のポータブルLinuxマシンを手に入れたので、カバンに放り込んで出かける日々を過ごしていたのですが、ひとつ問題が残っていました。
ときどき、カバンの中でSDカードが押されてしまい、知らないうちにイジェクトされてしまっていたのです。

DM200のLinux化は、SDカード上のファイルシステムに依存していますので、抜けてしまったらいろいろおしまいです。。。

動作に必要な最低限のファイルシステムを ramdisk に乗せておき、SD カードを指し直したときに udev か何かで再マウントされるようにする、というソフトウェア的な解決手段もありそうですが、今回は物理的な解決を試みてみました。

## 物理的な解決
用意いたしましたるは、micro SD から SD カードへの変換アダプタ。しかし、少し長さの短いアダプタです。
https://www.amazon.co.jp/dp/B00J3I6HVQ/

少しはみ出ているから、押されてイジェクトされてしまうのであって、はみ出ないようにすればよい、というハックです。ちなみに、この製品はSDカードを挿したときに引っかかるはずの切り欠きが（意図的に？）存在していないので、今回の目的には最適ではないかもしれません。

Amazon から届いたので、意気揚々と挿します。長さが足りないので、ドライバーでぐいっと押し込みます。ぐいっと。

## そして訪れる悲劇
抜けなくなりました・・・（あたりまえ）

## 豆知識：DM200からSDカードが抜けなくなったときの対処方法
（メーカー保証がなくなる可能性がありますので、自己責任でおねがいします）

1. 底面のネジ7個を外します。
2. キーボード側の側面をこじ開けます。周囲が爪でハマっているだけですので丁寧に外していけば、一周外れます。
3. 底面カバーを開けます。SDカード自体がカバーに引っかかる可能性があるので、あえて一度押し込んだりと、引っかからないように頑張ってください。
4. SDカードを取り外します。

## 反省を生かして
SDカードに取り出し用のベロをつけてみました。

![sdcard.jpg](https://qiita-image-store.s3.amazonaws.com/0/151254/d19e38b2-46d6-a7f7-74e3-36634b16c738.jpeg)

薄いセロテープを長めに切った上でU字型にして両面に貼り、余った部分をベロとして使います。

ちなみに、これでも短すぎて全部スロットに入り込んでしまったため、結局また次取り外すときも底面カバーを開ける必要がある感がありますが、SDカードが意図せずに外れることはこれで減ることでしょう。。。
[PHP]コメントアウト

#一行コメント

```php5
//コメントになる
#コメントになる
<!-- コメントにならない　-->
```

上のコードの通り、「//」や「#」で一行コメントになります。
「//」はCSSと同じ記法ですが、HTMLの記法「<!-- -->」はコメントになりません。

#複数行のコメント
```php5
/*1行目：コメントになる
2行目：コメントになる
3行目：コメントになる*/
４行目：コメントにならない
```
RailsでMarkdownのテキストをHTMLに変換する(シンタックスハイライト対応)

Rails で Markdown のテキストを HTML に変換して表示するまでの手順を説明します。

以下の gem を使って実装しました。
- [Redcarpet](https://github.com/vmg/redcarpet)
- [Rouge](https://github.com/jneen/rouge) (シンタックスハイライトで利用)


## 手順
1. gem 読み込み
2. ヘルパー作成
3. シンタックスハイライト対応


## gem 読み込み
Gemfile に以下を追記し、bundle install します。

```rb
gem 'redcarpet'
gem 'rouge'
```


## ヘルパー作成
app/helpers/ に markdown_helper.rb を作成し、以下のように記述します。

```rb:helpers/markdown_helper.rb
module MarkdownHelper
  def markdown(text)
    options = {
      hard_wrap:       true,
      space_after_headers: true,
    }

    extensions = {
      autolink:           true,
      no_intra_emphasis:  true,
      fenced_code_blocks: true,
    }

    unless @markdown
      renderer = Redcarpet::Render::HTML.new(options)
      @markdown = Redcarpet::Markdown.new(renderer, extensions)
    end

    @markdown.render(text).html_safe
  end
end
```

options, extensions は[ドキュメント](https://github.com/vmg/redcarpet#and-its-like-really-simple-to-use)を見て、適宜書き換えてください。

あとは、適当な view で以下のように記述すれば、表示できます。
(下記の例では、@post.content に Markdown のテキストが保存されているとします)

```erb
<%= markdown(@post.content) %>
```


## シンタックスハイライト対応
シンタックスハイライトは、rouge という gem を使って実装します。

Rouge で利用できるテーマは[こちら](https://github.com/jneen/rouge/tree/af3630f2a529679eb34b5e3678d5162c44f3f9d0/lib/rouge/themes)
各テーマのプレビューは[こちら](https://spsarolkar.github.io/rouge-theme-preview/)で見れます。

ここでは、Github のテーマを使います。
</br>

まず、assets/stylesheets/ に _rouge.scss.erb を作成し、以下を記述します。

```erb:assets/stylesheets/_rouge.scss.erb
<%= Rouge::Themes::Github.render(:scope => '.highlight') %>
```

次に、application.scss に以下を追記します。

```scss:application.scss
@import 'rouge';
```

最後に、先ほど作成した markdown_helper.rb を以下のように編集します。

```rb:markdown_helper.rb
require 'rouge/plugins/redcarpet'

class HTML < Redcarpet::Render::HTML
  include Rouge::Plugins::Redcarpet
end

module MarkdownHelper
  def markdown(text)
    options = {
      hard_wrap:       true,
      space_after_headers: true,
    }

    extensions = {
      autolink:           true,
      no_intra_emphasis:  true,
      fenced_code_blocks: true,
    }

    unless @markdown
      # Redcarpet::Render::HTML => HTML に変更
      renderer = HTML.new(options)
      @markdown = Redcarpet::Markdown.new(renderer, extensions)
    end

    @markdown.render(text).html_safe
  end
end
```

これで、シンタックスハイライトに対応できます。
Qiitaやブログで爆速大量アウトプットするための運動🏃‍♀️スポーツ的マインドフルネス技法🧘

# 呼吸と共にアウトプット

- 記事を書いてアウトプットしながらも、呼吸の波に乗るイメージ、これは両立可能
- マインドフルネスの基本的テクニック、呼吸に注意を向けることと、キーボードを打ち鳴らして集中することの組み合わせ、ハイブリッド
- 基礎ができてくるとだんだん中級メソッドにも進めるようになってくる

![image](https://user-images.githubusercontent.com/13635059/50554075-73287f00-0cf7-11e9-8c07-12934c78fdc4.png)

# インターバルで姿勢を変える、ゆるストレッチ、ゆるヨガ、ゆる背伸び

- 人間の筋肉、姿勢はアウトプットの必須条件
- なにか疲れてきたと感じたらそれは心ではなく肉体的条件のせい
- 5分ごとにアウトプットを終えて姿勢を変える、あぐらから正座へと、DEATH NOTE のL座りへと、スタンディングへと、これをぐるぐる回していけたら理想

![image](https://user-images.githubusercontent.com/13635059/50554108-f6e26b80-0cf7-11e9-925a-8ccb49763148.png)

# 20記事ぐらい書いて自分設定インターバルを終えたら、歩く

- middle level 中レベルの休憩を投げ入れる
- 人間の人間には big middle small のそれぞれの段位というか、小さい円や大きい円を複合的に回すことが必要
- ホットな感覚が冷めないように休み過ぎに注意したい、これはまだ課題

![image](https://user-images.githubusercontent.com/13635059/50554104-e8944f80-0cf7-11e9-87dc-8c8b1affedec.png)

# ちょうどこの記事で20個目

- これを1時間から90分ぐらいで書けるようになっていきたい
- yes
- yes yes yes

![image](https://user-images.githubusercontent.com/13635059/50554116-17aac100-0cf8-11e9-9afc-ea401798f4f3.png)

---

by https://twitter.com/yumainaura


https://github.com/YumaInaura/YumaInaura/issues/86








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
機械学習論文読みメモ_149

[Augmented CycleGAN: Learning Many-to-Many Mappings from Unpaired Data](https://arxiv.org/abs/1802.10151)
unpairedなデータ間のドメイン変換の学習はimage segmentationを始めとするタスクの性能を向上させる
事ができる。
CycleGANはそうした学習手法の一つであるが、一対一対応を仮定する必要があった。
しかし実際のタスクにおいては、ドメイン間の関係は多数対多数の関係において特徴
つけられる事が多い。
例えば、一つの靴のシルエットから、複数のスタイル表現を生成したい場合などである。
そのためこの仮定は多数対多数の変換を行いたい場合に非効率になってしまっていた。
本論で提案するAugmented Cycle GANはそうした多数対多数の変換を学習可能な手法である。
この手法は、各ドメインに関して潜在変数を導入する。
この潜在変数はドメイン内の多様性を学習するために使われる。

[SalientDSO: Bringing Attention to Direct Sparse Odometry](https://arxiv.org/abs/1803.00127)
雑然としたindoor sceneは多くの高レベルなsemantic情報を持つにも関わらず、
VOを始めとする従来手法は点、線、面などの幾何学的特徴のみを用いて
推論を行ってきた。
こうした背景において最近、高レベルなsemantic情報と幾何的特徴の双方を
利用した手法が注目を集めてきた。
しかし双方の特徴に関して同時に最適化を行う手法は高性能だが推論に時間がかかる
問題があった。
一方で従来のdirectでsparseなVOは性能と速度の良いバランスを保った手法を提案できている。
本論ではそうしたVOの一つであるDSOにsemantic情報を取り入れたSalientDSOを提案する。
この手法はsemantic情報からvisual saliencyを抽出して、ソフトなattentionを可能にする。
これにより、少ない数の特徴抽出でDSOが可能になる。

[In-Place Activated BatchNorm for Memory-Optimized Training of DNNs](https://arxiv.org/abs/1712.02616)
Deep learning計算の効率を向上させる手法としてInPlace-ABNを提案する。
この手法は、従来よく使われる連続した層構造としてあるBatchNorm + Activationを
一つの層に代替する。
これはパラメータを減らし、中間表現の保存を回避する事を可能にする。
一方で従来よく使われるcheckpointingを用いた計算効率化もInPlace-ABNと同程度の
効率を出す事ができる事を示す。
しかしこれは実装が複雑化するため、InPlace-ABNを用いる事の有用性は保たれている。
SwiftでResultをもっと活用する

記事の内容はこちらを参照してください。
https://mishimay.github.io/f32ea3c332532288ad38/
<!--


API通信などの非同期処理の結果をenumで定義した `Result` で受け取る場合が多いと思います。

その `Result` を活用するためのTips集を見つけたので紹介します。

## まずはシンプルなResult
`success` だけがジェネリックになっています。

```swift
enum Result<T> {
    case success(T)
    case failure(Error)
}
```

使用例

```swift
func load(handler: @escaping (Result<String>) -> Void) {
    // ...
    handler(.success("ok"))
}

load { (result) in
    switch result {
    case .success(let value):
        print(value)
    case .failure(let error):
        print(error)
    }
}
```

## エラーに型を指定する
`failure` もジェネリックにすることでエラーハンドリングしやすくします。

```swift
enum Result<T, E: Error> {
    case success(T)
    case failure(E)
}
```

使用例

```swift
enum MyError: Error {
    case error1
    case error2
}

func load(handler: @escaping (Result<String, MyError>) -> Void) {
    handler(.failure(.error1))
}

load { (result) in
    switch result {
    case .success(let value):
        print(value)
    case .failure(let error):
        switch error {
        case .error1:
            // ...
        case .error2:
            // ...
        }
    }
}
```

### 複数のErrorをNSErrorにまとめる
複数のシステムAPIを呼ぶなどでErrorの種類がいくつもあるとき、また詳細なErrorハンドリングが必要ではないときには、すべてをNSErrorに変換してしまうのが便利です。

`Swift.Error` は `NSError` へキャストだけで変換可能です。

```swift
func load(handler: @escaping (Result<String, NSError>) -> Void) {
    do {
        // ...
        handler(.success("ok"))
    } catch let error as NSError {
        handler(.failure(error))
    }
}
```

## エラーをthrowできるようにする
以下のような `extension` を定義すれば、 `try` で値を取り出し `catch`  でエラーを捕まえることができます。

```swift
extension Result {
    func resolve() throws -> T {
        switch self {
        case .success(let value):
            return value
        case .failure(let error):
            throw error
        }
    }
}
```

使用例

```swift
load { (result) in
    do {
        let value = try result.resolve()
        print(value)
    } catch {
        print(error)
    }
}
```

## 他にも任意のextensionを生やす
よく使う処理を `extension` として定義して使いまわしましょう。

```swift
extension Result where T == String {
    func decoded<U: Decodable>() throws -> U {
        let decoder = JSONDecoder()
        let value = try resolve()
        let data = value.data(using: .utf8) ?? Data()
        return try decoder.decode(U.self, from: data)
    }
}
```

使用例

```swift
load { (result) in
    do {
        let value = try result.decoded() as User
        print(value)
    } catch {
        print(error)
    }
}
```

## 環境
```
Apple Swift version 4.2 (swiftlang-1000.11.37.1 clang-1000.11.45.1)
Target: x86_64-apple-darwin18.2.0
```

## 参考文献
[The power of Result types in Swift — Swift by Sundell](https://www.swiftbysundell.com/posts/the-power-of-result-types-in-swift)



-->
# 2018年 年末！ Qiita 20記事連続で「いいね」つかない爆速トライアル実行中

![image](https://user-images.githubusercontent.com/13635059/50554010-24c6b080-0cf6-11e9-9dd7-6d4e7fa9250b.png)

https://qiita.com/YumaInaura

- この記事を書き終えたらあと1記事
- どうか星に願いを、1いいねが付く前に書き終えられますように
- このインターバルを1日5回繰り返すと100記事を書けることになる

# なぜこんな犯行声明を？

- いいねがつかないやら、つくやらの自己承認欲求に対抗するため
- 量は質に転化するアウトプット学習論を信じているから
- 世界中に興奮すること、言いたいことがありすぎて1日100記事書いても足りないぐらいだから

# tiktok理論

- 全てのアプリケーションは tiktok のようなゲームセンターアプリに学ぶべきだと思うから
- Webアプリケーションの未来もUSJやゲームセンターやディズニーランドとの競合だと思うから
- アウトプットしている瞬間が最高に楽しくて、100円を投入したゲームが終わってしまうと賢者タイムが訪れてしまうから



![image](https://user-images.githubusercontent.com/13635059/50554036-9e5e9e80-0cf6-11e9-8ee8-b47916ae2cab.png)

# 迷惑だったら全裸で謝罪

- 爆速ではあるけれど、極力クオリティを上げていく所存ですのでこの若輩者をお許しください‥
- と言っている間に記事を書き終えて次の自己承認欲求が扉を叩くので‥
- 次のアウトプット先を探すマグロのようなアウトプットエンジニア‥かゆ‥

# 結果は？

1インターバル、たぶん達成。

ちゃんと見てなかったけど‥。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/792d7f09-dc33-d880-4faf-18d8d33d31e0.png)

# でも、どんどん邪魔してくださいね‥！

- いいねがつくスピードとの勝負なので、僕がもっと爆速になりますので‥！
- 早朝なんか狙い目かもしれない、皆が寝静まっている時に‥！



---

by https://twitter.com/yumainaura

https://github.com/YumaInaura/YumaInaura/issues/85








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
HerokuにRailsアプリをデプロイする

Rails で作ったアプリを Heroku にデプロイする手順をメモ


## 手順
- Heroku にログイン
- Gemfile 修正
- git commit
- Heroku アプリ作成
- リモートリポジトリ確認
- デプロイ

オプション

- Heroku 環境変数セット( credentials.yml.enc を使っている場合など)
- タイムゾーン変更
- Procfile 設定


## Herokuにログイン
```shell
$ heroku login
```
</br>

Heroku CLI をインストールしていない場合は

```shell
$ brew install heroku/brew/heroku
```
これでインストールしてからログイン
</br></br>

## Gemfile 修正
本番環境で PostgreSQL を使う場合、下記のように修正

```rb
group :development, :test do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end
```


## git commit
すでにgitを導入している場合は、master ブランチに commit しておく。
導入していない場合は、下記のコマンドで commit する

```shell
# プロジェクトのディレクトリに移動する
$ cd rails-app

# 初期化
$ git init

# ディレクトリ配下のファイルをコミット対象にする
$ git add -A

$ git commit -m "initial commit"
```


## Herokuアプリ作成
プロジェクトのディレクトに移動して下記コマンドを実行

```shell
$ heroku create <アプリ名>
```


## リポジトリの確認
リモートリポジトリに heroku があるか確認

```shell
# リモートリポジトリを確認
$ git remote
heroku
```


## デプロイ
ローカルの master ブランチを heroku に push する

```shell
$ git push heroku master
```


## アクセス確認
```shell
$ heroku open
```


## オプション

### 環境変数セット
credentials.yml.enc を使っている場合は、以下のコマンドで master.key を heroku の環境変数としてセット

```shell
$ heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
```


### タイムゾーン変更
config/application.rb に以下を追記

```rb:application.rb
config.time_zone = "Tokyo"
config.active_record.default_timezone = :local
```

heroku config でタイムゾーンを Asia/Tokyo に設定


### Procfileの設定

Procfile は、アプリケーションがどのプロセスを使うのか宣言するためのファイル

使用する Web サーバを Puma にする場合は、ルートディレクトリに Procfile を作成して下記のようにする

```
web: bundle exec puma -C config/puma.rb
```
Python の対話モードでコマンドライン引数を渡す

デバッグしてる時によく対話モードを使う。
その時にコマンドライン引数を渡す場合のコマンド

```
python - arg1 arg2....
```

起動後 import sys でいつも通り引数が扱える

参考
https://docs.python.org/ja/2.7/using/cmdline.html#using-on-general

python コマンドの引数に '-' ってのがある
iPhoneで撮影した画像を爆速でMacBookでアップロードする icloud より GooglePHoto

# GooglePhotoを利用

- Wi-fi環境があると良いが必須ではない、キャリア電波でも可能
- iPhoneで撮影したらGooglePhotoアプリを立ち上げる
- 設定によっては他アプリとか使ってもok
- ただしiPhoneをロックしてしまうと同期が止まるので放置
- icloudはたまに「詰まる」ので利用できない、自分の環境では、これが辛くてGoogle利用
- MAcでGooglePhotoを開く

![image](https://user-images.githubusercontent.com/13635059/50553945-d533b500-0cf4-11e9-8a56-ff523b16f54f.png)

- Copy image / イメージをコピーする
- Command + V で Qiita Github Scrapbox などへペースト
- ああ本当にもうMacのペースト最高、最近のWindowsはどうなんだろう🤔？

![image](https://user-images.githubusercontent.com/13635059/50553953-03b19000-0cf5-11e9-9f75-4dab8337bc9a.png)

# もうひとつの方法

- iPhoneで画像撮影 / Photo Booth で iPhone 画面を直接「物理的に」かざして自撮り / からのスクショ切り取り撮影  Command + Shift + 4 / ペースト

---

by https://twitter.com/yumainaura

https://github.com/YumaInaura/YumaInaura/issues/84








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
firebase initでプロジェクトが表示されない時の対処

firebase console上で新しく追加したプロジェクトが、`firebase init`コマンドを使用した時、対話画面で表示されないことがあります。
原因がわからないのですが、待ってても永遠に表示されないので、下記コマンドで明示的に初期化することができます。

```sh
$ firebase init --project <プロジェクトID>
```
GoogleChromeでタブをピンどめするショートカット登録 拡張利用 

# Chrome pin tab extension

https://chrome.google.com/webstore/detail/pin-tab/dgldedkigbbalaioohedddpameekglma?hl=en

![image](https://user-images.githubusercontent.com/13635059/50553815-11194b00-0cf2-11e9-8ce0-dcbf0928fb5e.png)

# すげえよ！

爆速

I pushed immediately pinned tab
what yes i pushed Extension icon
and immediately .. pinned chrome tab ... do you believe ?

# Shortcut

ブラウザで以下にアクセス

chrome://extensions/shortcuts

マップ例 Command + Shift + P

![image](https://user-images.githubusercontent.com/13635059/50553826-5e95b800-0cf2-11e9-9b12-e55497d11053.png)

# Very smooth switching

スムーズに動きすぎ！

![image](https://user-images.githubusercontent.com/13635059/50553848-f1ceed80-0cf2-11e9-831f-c33c27ae3797.png)

![image](https://user-images.githubusercontent.com/13635059/50553850-f693a180-0cf2-11e9-9cd8-b832ca1f75f7.png)

![image](https://user-images.githubusercontent.com/13635059/50553884-baad0c00-0cf3-11e9-9b13-dbc5ecd6810f.png)

# image of shortcut 

ゆびゆびゆび


![image](https://user-images.githubusercontent.com/13635059/50553864-335f9880-0cf3-11e9-9d5b-493a262fc553.png)

![image](https://user-images.githubusercontent.com/13635059/50553865-3eb2c400-0cf3-11e9-893f-48b2f042d5ea.png)

画像で指を撮影すると覚えやすいよね？

いや、オレオレショートカットなんだけどさ‥

---

by https://twitter.com/yumainaura

https://github.com/YumaInaura/YumaInaura/issues/82

https://github.com/YumaInaura/YumaInaura/issues/83








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
GNOMEの見栄えを最低限整える

表題のとおりです。
現在の環境は、Antergos (Arch Linux)、GNOME 3.30.2。

## テーマ

暗めで落ち着いた雰囲気にしたかったので、以下のGTKテーマとアイコンテーマを使った。

- [NicoHood/arc-theme: [New upstream] A flat theme with transparent elements](https://github.com/nicohood/arc-theme)
  - Arc/Arc-Darker/Arc-Darkが選べる
- [snwh/suru-icon-theme: The source of the Suru icon and cursor set](https://github.com/snwh/suru-icon-theme/)
  - [Suru++](https://github.com/gusbemacbe/suru-plus)、[Suru++ Dark](https://github.com/gusbemacbe/suru-plus-dark)、[Suru++ Telinkrin](https://github.com/gusbemacbe/suru-plus-telinkrin)など派生もある

## GNOME Shell拡張

GNOMEを使っていて気になっていたのが、トップバーの日時と通知ポップアップがデスクトップの0時の位置に現れること。自分には少し悪目立ちにみえた。
あとトップバー自身の厚ぼったさも何とかしたかった。

- [Gradient Top Bar - GNOME Shell Extensions](https://extensions.gnome.org/extension/1264/gradient-top-bar/)
  - トップバーに透明度のグラディエーションをつける
- [Frippery Move Clock - GNOME Shell Extensions](https://extensions.gnome.org/extension/2/move-clock/)
  - 時計をトップバーの中央からステータスメニューの隣に移動する
- [Clock Override - GNOME Shell Extensions](https://extensions.gnome.org/extension/1206/clock-override/)
  - トップバーの時計を[GLib/GDateTime](https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-format)のフォーマットで定義する
  - ロケールを指定できるようになると嬉しいのだけど……今は`LANG`か`LC_TIME`を見ているようだ
- [Panel OSD - GNOME Shell Extensions](https://extensions.gnome.org/extension/708/panel-osd/)
  - 通知ポップアップの位置を調節する

## 結果

今はこんな感じ。

![Screenshot from 2018-12-31 11-30-08.png](https://qiita-image-store.s3.amazonaws.com/0/103077/6392b737-463b-56aa-4e6d-b36fb756dacb.png)

EmacsとTermiteは[Challenger Deep](https://challenger-deep-theme.github.io/)テーマ、フォントは[Cica](https://github.com/miiton/Cica)で統一している。
デスクトップの壁紙は[Simple Desktops](http://simpledesktops.com/)のものを使わせてもらった。
【rails5】モデルをDBに保存するには

【モデルをDBに保存するには】

DBにモデルを保存する。
保存失敗時はfalseを返す。

```
モデル名.save
```
DBにモデルを保存する。
保存失敗時は例外ActiveRecord::RecordInvalidを返す。

```
モデル名.save!
```

コンソールでエラーメッセージを確認する

```
モデル名.errors.full_messages
```
リーダブルコードとOSSのサービス選定「高度なコードは要らない」 Twitter @ogw_m さんに学びたい


https://twitter.com/ogw_m

[高度なコードはいらない](https://ogawa-masanori.biz/wp/archives/3813)

# チケット購入システム

>チケッティングを行うシステム「リコチケ」のテスト版を運営し始めました。テスト版とはいえ、実際に有効なチケットが購入できるシステムになっています。

# 不要らしい

そのシステムを仲間と構築していくにあたって、思ったことがひとつあります。それは、高度なコードはまったくいらないということです。

# Readable code であれ

>一部の人だけが理解できる高度なコードは、プロジェクトを進めていくにあたり有害でしかないことを改めて実感しました。

# OSSとの付き合い方

>オープンソフトウェアのプロジェクトもたくさんあることも知っています。けれど、その資産を使おうと思ったとき、果たして私が100%知り尽くして使うことができるのかどうか。

# サービス選定には「OSSを使わない」も全然あり

>かといって、車輪の再発明をしても仕方がないとも思います。しかしながら、短期間で限られた人員でシステムを構築しなければならないことを考えると、どうしても大規模な資産をシステムに組み込もうとは思えません。

# 知らないものを使わない

>自分が知らないことがあっては、サービスを運営していくのに致命的だからです。

# 知るということ、道具を使えるということ

# thanks to inspiration!

💡💡💡

---

by https://twitter.com/yumainaura

https://github.com/YumaInaura/YumaInaura/issues/80








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
@Github PR / Issue の Markdown TODO リストまだ使ってないの？え‥嘘でしょ？✋

# 例

https://github.com/YumaInaura/YumaInaura/issues/63

![image](https://user-images.githubusercontent.com/13635059/50553726-abc45a80-0cef-11e9-86bc-d86847671bd8.png)

# 超便利

WebInputを自動的にMarkdown変換してくれる
MarkDown編集するとWebに反映してくれる、もちろん
加賀逆‥可逆！加賀逆‥可逆！加賀逆‥可逆！にんにん！

```
- [x] 心理的安全性を高める妻 
- [ ] 家族妻夫彼氏彼女友達のためのアプリケーション
- [ ] Qiita記事 1万個を目指して僕がやっていること
- [x] 量は質に転化する
- [ ] 記事の粒度は自分が決める、自分の心理
- [ ] GoogleChromeでピンどめしたい

- [ ] English suggestion keyboard inputting
- [ ] Copy and paste with current URL
- [ ] Google Chrome developer 
```

# use it

and Happy Hacking life :)

https://twitter.com/yumainaura

https://github.com/YumaInaura/YumaInaura/issues/78

https://github.com/YumaInaura/YumaInaura/issues/79








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
デプロイ時にWELD-001408とWELD-001475が出た時の解消方法

## 現象

Qualifier(限定子)をつけた状態でインジェクションを使おうとしているにも関わらず、

```java:例
    @Inject
    @XXProperty
    private String XXX;
```

Java EE7(CDI1.1)以降のアプリをアプリケーションサーバにデプロイすると、`WELD-001408`と`WELD-001475`が出ることがあります。(以下はWebLogic 12.2.1.3にデプロイした場合の例)

```
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type String with qualifiers @XXProperty at injection point [BackedAnnotatedField] @Inject @XXProperty private com.example.app.facade.SomeFacade.XXX at com.example.app.facade.SomeFacade.XXX(SomeFacade.java:0) WELD-001475: The following beans match by type, but none have matching qualifiers: - Producer Method [String] with qualifiers [@JaxRsParamQualifier @Any] declared as [[UnbackedAnnotatedMethod] @Produces @JaxRsParamQualifier public org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider$JaxRsParamProducer.getParameterValue(InjectionPoint, BeanManager)], - Producer Method [String] with qualifiers [@BatchProperty @Any] declared as [[UnbackedAnnotatedMethod] @Produces @Dependent @BatchProperty public com.ibm.jbatch.container.cdi.BatchProducerBean.produceProperty(InjectionPoint)] at ...
```

## 解消策

### 方法1: <span>@</span>Producesや<span>@</span>Disposesや<span>@</span>Observesのついているメソッドのあるクラスに、<span>@</span>Dependent アノテーションなどをつける

こんな感じで、`@Dependent`というクラスアノテーションを追加していきます。

```java
@Dependent
public class PropertyProducer {
...
    @XXProperty
    @Produces
    public String produceString(final InjectionPoint ip) {
        ...
    }
}
```

> `@Dependent`では、インジェクション先のオブジェクトの中でオブジェクトを初期化するのと同じような動作となります。上記のように、プロパティの値を供給するようなクラスの場合は、`@ApplicationScoped`をつけたほうが適切かもしれません。その他に、`@SessionScoped`、`@ConversationScoped`、`@RequestScoped`などもありますので、インジェクションの内容や用途に応じて使ってください。

参考: [Contexts and Dependency Injection for the Java EE platform - 2.5. Default bean discovery mode](https://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#default_bean_discovery)

### 方法2: beans.xmlをWEB-INFフォルダに置く

ソースの修正が難しい場合は、こちら。

```beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
       bean-discovery-mode="all">
</beans>
```

`bean-discovery-mode`に`all`が指定されていますので、全部のクラスをCDIが探索することになります。ここを`annotated`にすると、`beans.xml`がないのと同じ動作になります。

参考: [Java EE環境におけるCDIのデフォルト化](http://n-agetsuma.hatenablog.com/entry/2013/08/18/130358)
自己承認欲求を設定でコントロールできるアプリケーション。@Qiita は未来。

# Qiitaで自分の記事が「いいね」「ストック」されたときの通知オフ設定してみる。

Japanse service Qiita
disable Favorite / Good notification of my post  
it stops our Running brain self bad estimate (umm how i say? )

https://qiita.com/settings/notifications

![image](https://user-images.githubusercontent.com/13635059/50553633-0066d600-0cee-11e9-9e4d-081aa7534cbf.png)

# こんな設定あったんだ‥！

- これでやすらぎの世界にいける気がする。
- いいねの赤丸に永遠に惑わされない世界。
- この機能は未来に必要な安全網なんじゃないだろうか？

# iPhoneでも「どれだけの使用時間？」「どれだけスマホ依存してる？」ってう機能が計測されたしね

- 自分の依存症に気付けるセーフティーネットが必要とされる未来が来ている
- 時間もそうだし、SNS依存症もそうだし、自己承認欲求を最大化してしまうアプリケーション、サービスにも対策が必要
- Qiitaの「いいね通知設定オフ」はその先駆けとしてFeatureされて良いのではないだろうか

# まだ試してないんだけど

- 期待通りの動作であることを期待‥！
- 無理だったら、いいねのredmarkをdisableするChromeExtensitonを誰か作って‥！いやオレが勉强する‥！



https://github.com/YumaInaura/YumaInaura/issues/77








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
Qiita で赤色の通知マークを見ない挑戦！

![image](https://user-images.githubusercontent.com/13635059/50553588-ebd60e00-0cec-11e9-846f-41f163f306e9.png)

# 身を切るよりも辛い

- 自己承認欲求が最大の悲しいエンジニアとしては本当に難しい
- 絶対1分後には押してしまうけれど、むずむずしながらアウトプットで発散している
- iphone とか Windows とか新着通知だらけのこの世界で、本当にこの欲求に抗うことは難しいけれど、とにかく次のアウトプットで発散する

# そういえば会社の超絶エンジニアが、72個ぐらい新着通知を貯めていたのをみたことがある

- できるエンジニアほど、自分自身の自己承認欲求にかまっている暇がない
- 振り返っている暇さえないから永遠にアウトプットやコミュニケーションを繰り返している
- タイガー・ウッズが鶏頭で一打で前のショットを忘れるみたいに、最高のマインドフルネス、resatable なブレインって奴を手に入れたい

# 神のエンジニア、偉人は自己評価にかまっている暇がない

![image](https://user-images.githubusercontent.com/13635059/50553607-7159be00-0ced-11e9-90df-9a907252615e.png)

>自意識（アイデンティティ）と創り出す思考


# そんな人に僕もなりたい

http://web-shodo.com/shodo.php

![image](https://user-images.githubusercontent.com/13635059/50553616-92221380-0ced-11e9-82fc-79ad7d0f77c9.png)

https://github.com/YumaInaura/YumaInaura/issues/76








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
１ヶ月でも取れる！AWS認定ソリューションアーキテクト - プロフェッショナル 必勝法

2018年にいくつか取得した資格のうちに「AWS認定ソリューションアーキテクト - プロフェッショナル」がありました。こちら。

![aws_certified_pro.png](https://qiita-image-store.s3.amazonaws.com/0/182842/a06212ad-7505-0947-2ebe-d087c57f5552.png)

色んな記事を参考にさせて貰ったり、いくつか教材を眺めてみましたが、どうもまだるっこしかったり、遠回りなものが多いなと感じました。

そこで、当記事では最短で合格できた方法をご紹介します。

## 前提
私もそうですが、AWSを業務で扱ったことがないけど、AWS認定ソリューションアーキテクト - アソシエイト 取得できた人が対象になります。

その上で、この記事でご紹介する対策方法は、あくまで**試験合格を最優先に考える勉強法**です。

決して、実務能力や汎用的な知識が身につくかは疑わしいです。たぶん、上っ面です。設定がスムーズにできるようになったり、設計がキレイにできるには時間がもっと必要です。

もちろん、この考え方だと本末転倒な気がする人もいるとは思うのですが、世の中には**実務で使わないけども資格を取らなければならない人**も一定数います。私もそうでした。あるいは、**資格を取った後からがスタート**という人もいるのです。生活のために**会社の報奨金が欲しい**人もいるでしょう。

この勉強法は、そういった前提のある方に向けた勉強方法だとご理解ください。

## どれくらい時間がかかるのか

こちらが私が合格までにかけた時間です。

![study_time_m.JPG](https://qiita-image-store.s3.amazonaws.com/0/182842/75bd4d00-702c-8869-1e18-297392d90d4f.jpeg)

Studyplusで計測しました。この中に含まれるのは、下記です。

| 教材 | 所要時間 | 補足 |
|:-----------------|:------------------|:-------------------|
| [模擬試験](https://aws.amazon.com/jp/certification/certification-prep/) | 4時間 | 見直し時間込み |
| [CDP](http://aws.clouddesignpattern.org) | 6時間 | 知らないパターンは暗記 |
| [黒本](https://aws.koiwaclub.com/) | 12時間 | 最上位プランを利用 |
| ホワイトペーパー | 20時間 | - |

このうち、資格合格だけを考えるなら、模擬試験とCDPが必要だったかは私は懐疑的です。

* 模擬試験は[こちら](https://blog.mosuke.tech/entry/2018/10/25/sapro-sample-question/)で学習できれば、わざわざ受験しなくても良いです。掲載サイトがAWS的にアリなのかは気になりますが。
* CDPは設計パターンとして実務に有益です。しかし、知らなくても試験には受かると確信しました。
* 標題は釣りでは無くて、私がかけた時間は3時間×14日、5時間×9日で取得できる計算です。毎日1～2時間だと1ヶ月を超えますが、そんなに悠長にやらずに短期決戦をオススメします。

## 必勝法

興味のある方は、こちらをご覧ください。

**[AWS認定ソリューションアーキテクト - プロフェッショナル必勝法の正攻法](https://takulog.info/eyecatch-how-to-get-aws-solution-architect-professional/)**

この記事を読む皆様が、無駄なく効率的な勉強ができることをお祈りしております。
Backlogを使って経費申請の仕組みを作ってみた

# この記事について
## あらすじ
会社としては、当初立ち上げてから、半年ほどで経費・稟議申請のフローやルールも決まっていませんでした。
その中で会社のメンバーも4人になり、そろそろ経費申請の仕組みを作ろうということでBacklogを導入しました！

# 課題
- 会社のメンバーから領収書を紙でもらっていたが、管理が煩雑になっていた。
- 経費として扱う前に事前に稟議を通す形にしたい。

# やりたい事
- チケットのような単位で管理したい。
- いつ誰が申請したのかログを追えるようにしたい。
- ステータス管理したい。
- 申請した際にSlack通知もしたい。


# やってみた事
- Backlogで管理し、チケットが上がったタイミングでSlack通知する。

# 確認ステップ
##1. Backlogでチケットをあげて、日付、料金、確認してほしい担当者を設定。
<img width="1440" alt="スクリーンショット 2018-12-31_2 10.38.44.png" src="https://qiita-image-store.s3.amazonaws.com/0/85181/b8f022fa-3c24-d62a-2e8a-a50990eecc39.png">


##2. 領収書のファイルも添付する。
<img width="538" alt="スクリーンショット 2018-12-31_2 10.43.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/85181/7b91af00-70f1-7515-06cf-00ab45a84c90.png">


##3. 決裁権を持っている人が確認

##4. 経理担当者が確認し、経費精算したらクローズ

# Slack通知する。
##1. BacklogのWebhookの設定をする。
詳しくはこちらのURLを参照。
https://backlog.com/ja/help/adminsguide/webhook-setting/userguide2493/
<img width="1428" alt="スクリーンショット 2018-12-31 10.48.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/85181/bd58ef20-18ca-e710-1ebf-d6df3a7fcb7f.png">
<img width="1425" alt="スクリーンショット 2018-12-31_2 10.49.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/85181/1f7f5110-3a27-db0f-885c-576f2601294f.png">



##2. 通知成功！！
<img width="1135" alt="スクリーンショット 2018-12-31_2 10.50.04.png" src="https://qiita-image-store.s3.amazonaws.com/0/85181/0c6ebd3e-9fac-bd44-3545-c890f38911cd.png">

# まとめ
- 経費精算をやるにあたって、サクッとBacklogで簡単に導入することができて良かった！

# 参考記事
- backlog webhook
https://backlog.com/ja/help/adminsguide/webhook-setting/userguide2493/

- GASを使ってbacklogの通知をslackに流す   
https://qiita.com/murase/items/9175fb908492279ad817
Qiitaで良い記事を見つけたら1秒で爆速感謝コメントを送ってTwitterもフォローしてみては？ って提案

例

[Mac OS X El Capitan で英数入力時の入力補完・スペル自動変換をOFFにする - Qiita](https://qiita.com/niwatako/items/580b08e9282c4676ec20)

# 役立った！


![image](https://user-images.githubusercontent.com/13635059/50553505-77e73600-0ceb-11e9-98c8-93f765a3b292.png)

# 超雑コメントで感謝

![image](https://user-images.githubusercontent.com/13635059/50553509-833a6180-0ceb-11e9-864b-24d9d98e8a4a.png)


# 一瞬でQiitaでフォロー

![image](https://user-images.githubusercontent.com/13635059/50553499-6b62dd80-0ceb-11e9-836b-296e08e18c8e.png)

# Twitterフォロー

![image](https://user-images.githubusercontent.com/13635059/50553512-92b9aa80-0ceb-11e9-8781-aa6be4772c8b.png)

# Twitterで爆速感謝ツイート

![image](https://user-images.githubusercontent.com/13635059/50553523-cbf21a80-0ceb-11e9-8ef8-08bd8ed05d80.png)

![image](https://user-images.githubusercontent.com/13635059/50553519-b11fa600-0ceb-11e9-87f1-8f5e0465e43c.png)

# なぜ？

いくつもの理由が複合的に、あるぜ！

# 一連の動作をすべて組み合わせて行うことで

- 爆速で超最高コスパの情報フォローをすることできる。あれ日本語おかしいぜ‥？
- 感動したその時にフォローしなければ絶対に忘れてしまう。
- 自分のフォロー一覧を最高の「ホットな情報発信源ホーム基地」に変えてみようぜ！


# Qiitaでお礼だけ書くのはもったいない

- Twitterこそすぐ気づける、気付きやすいツール
- QiitaでもTwitterでも両方でお礼を言っても誰も損をしない
- Qiitaではストック的にお礼を書いて、Twitterではフロー的に感謝を伝える

# なぜQiitaでもTwitterでもフォローするのか

- QiitaでもTwitterでもフォローして何が間違うのかが分からない🙌
- Qiitaでの情報発信、Twitterでの情報発信の両方をキャッチしたい
- Qiitaで感動した記事を書く人ならきっと気が合うはずなので‥Qiitaで気が合う人に悪い人はいないはず理論

# エンジニアの心のバケツを満タンにしていこう

- QiitaであろうとTwitterであろうと心理的安全性を構築していこう
- エンジニアというギルドの雰囲気を日本全体、世界全体で盛り上げるために貢献したい
- 実はお礼を書いたほうの心の暖かさの方が爆上がりして、その日1日、楽しく過ごせそうな気もする、thanksは人の為ならず

# 迷惑だったら全裸で謝罪

- 雑なコメント書いてるんじゃねーよクソガ！って人がいたらそのとき謝罪‥🙇‍♂️
- 人の感じ方は様々ですし、多様性を受け入れる我々でありたいよね‥？
- Sorry many qiita and twitter users me is so troublesome man? sorry sorry 

[yumainauraエンジニア - Google Search](https://www.google.com/search?q=yumainaura%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2&oq=yumainaura%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2&aqs=chrome..69i57.3944j0j7&sourceid=chrome&ie=UTF-8)

https://github.com/YumaInaura/YumaInaura/issues/75









<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
Vue.jsのリストレンダリングにslideUp/slideDownアニメーション効果

# 内容

Vue.jsのリストレンダリングのトランジションにjQueryのslideUp/slideDownのようなアニメーション効果をつける。

# コード

```HTML:HTML
<div id="app">
  <input v-on:keypress.enter="addItem" v-model="input" type="text">
  <button v-on:click="addItem">追加</button>
  <transition-group tag="ul" v-on:enter="enter" v-on:after-enter="afterEnter" v-on:leave="leave" v-on:after-leave="afterLeave">
    <li v-for="(item, index) in list" v-bind:key="item.id">{{ item.text }}<button v-on:click="removeItem(index)">削除</button></li>
  </transition-group>
</div>
```

```CSS:CSS
ul {
  padding-left: 0;
  list-style-type: none;
}
li button {
  margin-left: 1em;
}
.v-enter-active,
.v-leave-active {
  overflow-y: hidden;
  transition: height 0.5s ease;
}
```

```JavaScript:JavaScript
var counter = 0; // v-forのkey属性用
var app = new Vue({
  el: '#app',
  data: {
    input: '',
    list: []
  },
  methods: {
    addItem: function() {
      if (this.input.length !== 0) {
        this.list.push({
          id: counter,
          text: this.input
        });
        counter += 1;
        this.input = '';
      }
    },
    removeItem: function(index) {
      this.list.splice(index, 1);
    },
    enter: function(element) {
      var elementHeight = element.getBoundingClientRect().height;
      element.style.height = 0;
      element.offsetHeight; // reflow
      element.style.height = elementHeight + 'px';
    },
    afterEnter: function(element) {
      element.style.height = null;
    },
    leave: function(element) {
      var elementHeight = element.getBoundingClientRect().height;
      element.style.height = elementHeight + 'px';
      element.offsetHeight; // reflow
      element.style.height = 0;
    },
    afterLeave: function(element) {
      element.style.height = null;
    }
  }
});
```
Scrap Box is How great service fit for human's brain

# God!

![image](https://user-images.githubusercontent.com/13635059/50553426-d3b0bf80-0ce9-11e9-9e6a-deaa3b579714.png)

# Example

![image](https://user-images.githubusercontent.com/13635059/50553438-fd69e680-0ce9-11e9-9d05-60ab15e08f0c.png)

![image](https://user-images.githubusercontent.com/13635059/50553441-18d4f180-0cea-11e9-9318-05d3f008b9d5.png)

https://scrapbox.io/yumainaura/finaly_write_sentence

![image](https://user-images.githubusercontent.com/13635059/50553452-4457dc00-0cea-11e9-8703-4d496c06e2e8.png)

https://scrapbox.io/yumainaura/write_last_sencence_in_related_new_card

# Image

in our brain "last wanna saying in one article" is very very important idea of next post of article!
it so good to our brain behaviour 
so i think scrap box developer or service starter is brain scientist!

![image](https://user-images.githubusercontent.com/13635059/50553427-db706400-0ce9-11e9-8151-d42ae4899656.png)

# Do you understand?

my guidance is so bad maybe!
lets use it god service!

https://scrapbox.io


https://github.com/YumaInaura/YumaInaura/issues/74








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
Qiita ブログ に書く記事のネタは「前に書いた記事」に存在するからScrapBoxは本当に偉大。

ひとつ前の記事に書いた補足。

```
# 使っていない基本機能を見過ごしてない？

- なんでも右クリックしてみよう
- 好奇心旺盛に問題解決しよう、もっとフラストレーションを感じよう
- 子供みたいに色々なキーを恐れずに触っていこうぜ！
```

# これがそのまま1本の記事のネタになる

- 「最後にひとつだけ言いたいこと」が大きなテーマになる
- 補足事項が大きくなって大きなトピックになる
- 巨大化する前に粒度を分離したい！これ大事！抱えきれなくなる前に！

# ScrapBoxでは簡単にこれができる

- フローとストックの間で愛を叫ぶサービスの素晴らしさよ
- 人間の脳の構造をよく分かっていると思う、たぶん科学者が作ったはず、開発者は科学者！

# イメージ

- 雑に作成
- 伝わるかどうかはわからない
- 「最後に出てきた超ホットな一言」が「次のちょっとぬるめのスタート」になる

![image](https://user-images.githubusercontent.com/13635059/50553405-669d2a00-0ce9-11e9-9f07-7c8aa72f5cbb.png)


[yumainaura scrapbox - Google Search](https://www.google.com/search?q=yumainaura+scrapbox&oq=yumainaura+scrapbox&aqs=chrome..69i57j69i60l3j69i64l2.2872j0j7&sourceid=chrome&ie=UTF-8)








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
Google Chrome pin tab is basic feature ! ピンどめするのは基本機能だった。


# まさかの基本機能だった。

its default feature wonderful!

![image](https://user-images.githubusercontent.com/13635059/50553285-9b0fe680-0ce7-11e9-9ef0-8a9266caed72.png)


![image](https://user-images.githubusercontent.com/13635059/50553294-acf18980-0ce7-11e9-8664-59ed8ea93c45.png)

# だがしかし‥閉じることはできるっぽい

but we can close pinned tab
😢

# Where is un closed ... unable to close tab ? use extension

unn maybe its can not feature? 

i next search about it.

![image](https://user-images.githubusercontent.com/13635059/50553322-f9d56000-0ce7-11e9-8803-9973f4803f83.png)



https://github.com/YumaInaura/YumaInaura/issues/72


# 使っていない基本機能を見過ごしてない？

- なんでも右クリックしてみよう
- 好奇心旺盛に問題解決しよう、もっとフラストレーションを感じよう
- 子供みたいに色々なキーを恐れずに触っていこうぜ！








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->
爆速アウトプットのためにMacBookでやっていることハック集

# Alfred 最強すぎて鼻血

- アルフレッドなしには生きられないよ
- Clipboad拡張は最強なので、これだけでほとんどのやりたいことのケースに対応できる
- スニペット拡張は登録が大変なので本当に必要なものだけに使う

- i never live without alfred on digital hacking life
- Use  clipboard extension its soooooooooooo important! many many cases it is useful and cover inputting.
- Snippet extension register is highly cost registration so very important keywords only i submit.

![image](https://user-images.githubusercontent.com/13635059/50553273-10c78280-0ce7-11e9-8abb-2b8f313afda2.png)


# 編集レベルをコントロールする

- Backspaceとか押したりして「戻る」ことの莫大なコストに気付く
- StreamingLive配信みたいに記事を記述していく
- ストックとフローの間にあるぐらいの硬さ、柔らかさの記事を作っていく、60%から80%ぐらいの生焼け度合い、半熟度合いにする

![image](https://user-images.githubusercontent.com/13635059/50553271-05745700-0ce7-11e9-889f-42b0344a6acd.png)

- Edit level controlling. Re edit text or articles is soooo highly cost you. do not use backspace.
- like Live streaming out put
- Between flow or stock.

# Google Chrome

- Vimium の << >> でのタブスワップ、交換を重宝させたいが、まだ手が慣れていない、基本ショートカットはバリバリ使いこなしてゆく
- Command + Y での履歴機能とか、隠れた超神機能を使っていく、履歴探すためにさまよう10秒間とか死ぬほど長いし、死ぬし
- Facebookとか遅いサービスに投稿するとき、10秒間ぐらいかかるのでその間にChromeのタブの整理とか、必要なURLをクリップボードに入れたり刷る

- use Vimium Shift + << >> tab swapping
- use Command + Y History it is hidden good feature of Chrome
- While slow service posting i close unused tab and copy url and register to clipboard and etc ... its "Super cleaning zen time"
- and etc etc etc...

---

[yumainaura output - Google Search](https://www.google.com/search?q=yumainaura+output&oq=yumainaura+output&aqs=chrome..69i57j69i64l2.6059j0j7&sourceid=chrome&ie=UTF-8)


https://github.com/YumaInaura/YumaInaura/issues/71








<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->