OmniAICreator/Qiita-1.07M huggingface dataset:
Divを縦横中央へ

Div内の内容をタテ・ヨコ中央へしたいときのCSS


`.divのclass{
  width:400px;
  height: 400px;
  align-items: center;
  justify-content: center;
  display: flex;
}`

ブラウザが新しくないとダメっぽいけど、とりあえずちゃんとタテ・ヨコ中央になった。
re:dashのAlert機能

re:dashには閾値を超えたクエリ結果に対してAlertを投げる機能があります。

これは大変便利な機能なのですが現状通知方法がメールだけでした。

通知の仕組みががpluggableになってたら便利だな〜と考えPull Requestを投げたら取り込まれました。

最新のStable versionである0.8.3で適用されてます。

## よくありそうなユースケース
* 直近1日のエラーが閾値を超えたら通知
* RedshiftやBigQueryのクエリ結果から、PV数やCV数がある閾値を下回ったら通知
* Slowqueryの回数が閾値を超えたら通知

re:dashの豊富なデータソースで色々なユースケースが思い浮かびますね！

クエリのスケジューリングと組み合わせると更に色々柔軟な通知が可能です。


## Alertの作成方法

トップページの「New Alert」を押して作成画面に移動します。
※↑はre:dashのデモサイトですので誰でも使えます。

![Qiita](https://gyazo.com/494a3636c23d67508d01c2af9bb90273.png "Qiita")


### Query
* Alertを飛ばしたいQueryを選択します。

### Value column
* 監視したいColumnを選択します。

### Op
* 以下からOperatorを選択
  * greater than
  * less than
  * equals

### Reference
* 閾値を入力します
  * Value columnを「count」、Opを「greater than」にしてReferenceを「5000」にした場合は**countが5000より大きいrecordがある場合にアラートを飛ばす**事ができます。

### Subscribers
* 一番右側のSubscribersをチェックを外すと、自分への通知を止めることが出来ます。
* **メールのみですが、通知を受け取りたい人だけがAlertを受け取れます**。

## Alertの通知方法

Alertは現状以下の3種類です

* メールによる通知
* Hipchatによる通知
* Webhookによる通知

### メールによる通知方法
```.env
export REDASH_MAIL_SERVER="my.maildomain.jp"
export REDASH_MAIL_PORT="25"
export REDASH_MAIL_DEFAULT_SENDER="redash@mydomain.jp"
export REDASH_HOST="http://redash.sitedomain.jp"

# 以下は必要あれば設定
#export REDASH_MAIL_USE_TLS=true
#export REDASH_MAIL_USE_SSL=true
#export REDASH_MAIL_USERNAME=mail_user
#export REDASH_MAIL_PASSWORD=mail_password
```

.envに上記の変数を設定します。


### Hipchatによる通知方法
```.env
export REDASH_HIPCHAT_API_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
export REDASH_HIPCHAT_ROOM_ID="111111"
```

こんな感じで通知されます。

![Qiita](https://gyazo.com/3a90ba2878ffd7ea8ff31aa873aeb841.png "Qiita")


### Webhookによる通知方法
```.env
export REDASH_WEBHOOK_ENDPOINT="https://XXXXXX.herokuapp.com"

# Basic認証をかけている場合は以下を設定
# export REDASH_WEBHOOK_USERNAME="user"
# export REDASH_WEBHOOK_PASSWORD="password"
```

以下の様なJSONがEndpointにpostされます。

```
{
  "url_base": "http://redash.sitedomain.jp", 
  "event": "alert_state_change", 
  "alert": {
    "state": "triggered", 
    "query_id": 1, 
    "name": "fuga: count(*) greater than 5000", 
    "rearm": null, 
    "updated_at": "2015-12-11T08:09:04.898736", 
    "user_id": 1, 
    "created_at": "2015-12-11T08:08:58.228976+00:00", 
    "last_triggered_at": "2015-12-11T08:09:04.898690+00:00", 
    "id": 6, 
    "options": {
      "column": "count(*)", 
      "value": 5000, 
      "op": "greater than"
    }
  }
}
```

独自に何かアラートをpublishしたい場合はWebhookが効果的です。

## まとめ

可視化だけでなく通知の仕組みとしても便利です

## 参考
* [Feature: send alert notifications to HipChat or web hook by toyama0919 · Pull Request #644 · getredash/redash · GitHub](https://github.com/getredash/redash/pull/644)
Bridgeで開くフォルダをDragThingのDockに自動登録するAppleScript


BridgeのfavoriteパネルをDragThingに移動させて広く使おうかと。

#利点
・DragThingのドロワーにfavorite内容を移動しておける。Bridgeではfavoriteパネルを閉じておけるためFoldersパネルなどを大きく使える

・Bridgeウインドウが開いていなくてもfavoriteにアクセスできる。

#事前準備

適当に書いてるからパスがハードコーディングされてて書き直し必須故…


1.Bridgeで開きたいフォルダのエイリアスを集めておく。この内容を登録する

2.DragThingで「Bridge」という名前のDockを作っておく。

#コード

適当に書き換える。
DragThingの指定Dock内容は消去されるので注意。

```Applescript:BridgeDockUPDATE.scpt


set myFolder to "フォルダパス:Bridge" as alias
tell application "Finder"
	set myList to every item of myFolder
end tell

tell application "DragThing"
	
	set myDock to layer 1 of dock "Bridge"

--　レイヤー内容を全部消す
	
	set myDeleSelect to every slot of myDock
	repeat with myDeleItem in myDeleSelect
		delete myDeleItem
	end repeat
	
--　myFolder内容を追加

	repeat with myItem in myList
		set theEmptySlot to ((first slot of myDock) whose empty is true)
		set the file location of theEmptySlot to (myItem as alias)
		set open with application of theEmptySlot to "file://localhost/Applications/Adobe%20Bridge%20CC/Adobe%20Bridge%20CC.app/"
	end repeat
	
-- MyFolder自体をFinderで開く設定で（通常で）追加

	set the file location of ((first slot of myDock) whose empty is true) to myFolder
end tell


```
Silent Notification が絡む UIApplication ライフサイクル

# なぜ？
UIApplication のライフサイクルはいろんなところで書かれていますが、Silent Notification を考慮した記事が見つからなかったので調べようと思いました。

「ユーザーがアプリを起動/再開した時に何らかの通信処理をしたいが、Silent Notification によって起動/再開した時にはその通信をさせたくないよ！」などという要求が満たせれば、と思います。
確認は iOS9 で行っています。

※ Silent Notification とは、```content-available:1``` のアレです
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

# 起動系

**ホーム画面でアイコンをタップして起動した時**

```objc
1. application:WillFinishLaunchingWithOptions: (launchOptions=nil)
2. application:didFinishLaunchingWithOptions: (launchOptions=nil)
3. applicationDidBecomeActive:
```

**ホーム画面でアイコンをタップして再開した時**

```objc
1. applicationWillEnterForeground:
2. applicationDidBecomeActive:
```

**Silent Notification を受け取って起動した時**

```objc
1. application:WillFinishLaunchingWithOptions: (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]=通知ペイロード)
2. application:didFinishLaunchingWithOptions: (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]=通知ペイロード)
3. application:didReceiveRemoteNotification:fetchCompletionHandler:
```

**Silent Notification を受け取って再開した時**

```objc
1. application:didReceiveRemoteNotification:fetchCompletionHandler:
```

# 終了系

**ホームボタンを押してアプリを中断した時**

```objc
1. applicationWillResignActive:
2. applicationDidEnterBackground:
```

**通知受信処理内で CompletionHandler を呼んで中断されるとき**

```
ライフサイクル系の delegate は何も呼ばれません
```


# 調査結果

上記の結果を見ると、ユーザーがアイコンタップしたときの起動/再開時にのみしたい処理は `applicationDidBecomeActive:` に書くと良さそうです。**が、 `applicationDidBecomeActive:` はアプリ内で各種ダイアログを閉じた時にも呼ばれてしまうため、冒頭の要求のためには適切ではありません。**


# まとめ
ということで、Silent Notification を使っているアプリでユーザーのタップでの起動/再開時のみに処理を行いたいときは、以下のように書くと良さそうです。

```objc:AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
	if( launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] == nil ){
		[self onFinishLaunchingByUserControl];
		[self onBecomeActiveByUserControl];
	}
	return YES;
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
	[self onBecomeActiveByUserControl];
}

/// ユーザーの操作によってアプリが起動した時の処理
- (void)onFinishLaunchingByUserControl{
}

/// ユーザーの操作によってアプリが起動/再開したときの処理
- (void)onBecomeActiveByUserControl{
}

```







リモート通知やローカル通知をタップした時の挙動については必要になったら調べて追記します。
cron.dailyで起動するscriptで、gemが見つからないときの対処方 (rvmの場合)

# cron.dailyのlogwatchでgemが見つからない
logwatchでruby gemを使うスクリプトを起動するとき、gemが見つからないというエラーで困ったときの話。
OSは、CentOS 6.6です。

※このサーバではrvmでrubyをインストールしています。

```
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- pg_query (LoadError)
     from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
     from /etc/logwatch/scripts/services/postgresql:6:in `<main>'
```

# 対処方
環境変数GEM_HOMEを、/etc/crontabに追記したり、/etc/cron.daily/0logwatchに追記したりしたんですが、うまくいきませんでした。

/etc/cron.daily/0logwatchのlogwatch起動部分を直接書き換えると、うまくいきました。
```
bash -c '. /usr/local/rvm/scripts/rvm && /usr/sbin/logwatch --output mail'
```
Railsのmodels/concernsにCSV出力用のModuleを置くと検証に便利



> app/models/concerns/exportable.rb

```rb
module Exportable
  extend ActiveSupport::Concern

  included do
    extend  ClassMethods
    include InstanceMethods
  end


  module ClassMethods

    def export_csv!(file_path = Rails.root.join("tmp/csv/#{model_name.plural}/#{Time.current.strftime('%Y%m%d%H%M')}.csv"))
      FileUtils::mkdir_p(file_path.dirname)
      File.open(file_path, 'w') do |f|
        f.puts generate_csv
      end

      file_path
    end


    def generate_csv
      CSV.generate do |csv|
        csv << column_names
        all.each do |r|
          csv << r.attributes.values_at(*column_names)
        end
      end
    end
  end



  module InstanceMethods

  end
end
```

というのを用意。カラムは全部出力される


```rb
class Item < ActiveRecord::Base
  include Exportable
end
```

```rb
Item.where(created_at: Date.today.all_month).export_csv!
```

だとcreated_atが今月のItemの一覧が /tmp/csv/items/xxx.csv に出力される。
whereやscopeで条件を絞ってデータを見たいとき便利
キャンディクラッシュが私に教えてくれた事

みなさま！！はじめまして :purple_heart: :blue_heart: :green_heart: :yellow_heart: 

**IDCフロンティアの燃える営業ウーマン、竹本です :tada:**

こちら愛する同期たち(一部) :two_men_holding_hands: :two_women_holding_hands: :two_men_holding_hands: :two_women_holding_hands: 
![image1.JPG](https://qiita-image-store.s3.amazonaws.com/0/103803/f7cbb99e-897e-7aa4-b994-5ecfd6cfff5a.jpeg)

 

入社1年目、ど文系でIT企業にとびこみ毎日頑張っています:smiling_imp: 

牡牛座 :cow: B型 :b: 東京都出身 :house_with_garden: 寝ればだいたい忘れます :sleepy: 

Qiita初心者なので手探り状態ですが生暖かく見守ってください :bow: 

とまあ自己紹介はこれくらいにしておきます :hand: 

今回は、今ハマりまくりのキャンディークラッシュ :lollipop: :collision: についてつらつらしたいと思います :raised_hands: 

さらりと読めるのでどうぞお付き合いください :bow: 



#まず、キャンディークラッシュってなに？

![image1 (1).PNG](https://qiita-image-store.s3.amazonaws.com/0/103803/7a2bf6cf-e480-e65f-0230-16a4edc7cc86.png)

> wikipediaより
同じ色のキャンディーを縦か横に3つ以上つなげると消えるというマッチ3ゲーム。同時に4つ以上をつなげるとスペシャルキャンディーという特殊な効果をもったキャンディーが発生する点が特徴的。各ステージにはクリア条件が設定されており、キャンディーの制限回数制限内または制限時間内にクリア条件を達成することがゲームの目的となる。

簡単に言うとかわいいキャンディをひたすらクラッシュしていくゲームです。
カラフルな画面で、ポップな気持ちになれます。
なかなかクリアできない時はiphoneをクラッシュしたくなります、しないけど :stuck_out_tongue: 

私のレベルはこちら、1107面まで進んでいます。
![1107.PNG](https://qiita-image-store.s3.amazonaws.com/0/103803/0d6a4dd5-4b35-e424-fb52-d779073b5746.png)

注：無課金、初めてから約1年でございます。








結構イイ線いってると思うんですが、、、どうでしょう？


竹本流の進め方は、ひたすらやり続ける事。修行だと思いましょう。
ミスチルも歌っています。
高ければ高い壁の方が上ったとき気持ちいいもんな。と。

他の流派の方のご意見ございましたらお聞かせ願いたく :kissing_closed_eyes: 


#キャンディークラッシュが私に教えてくれた事

- ひとつめ！諦めないで挑み続ける心 :cupid: です。

どうしても無理そうなダンジョンに出会ったとしても、諦めずに挑戦し続ければ必ず！クリアできるのです。

- ふたつめ！計画的にアイテムを使う事:smiling_imp:です。

キャンディークラッシュにはクリアしやすくなるアイテムがいくつか用意されていて、
キャンペーンやルーレットなどでゲットすることができます。
※もちろん購入することもできます。

私は頑固な性格なものでアイテムを使ってクリアするのはずるだと思っていました :persevere: 

しかしクリアできずに立ち止まるより手持ちのアイテムを計画的にうまく使うほうが
合理的なのでは、、？と考えるようになりました。

**まさに、価値観の変化です** :eyes: ビックリ

#さいごに
たかがゲーム、されどゲーム。

なめたらアカン、飴だけに :lollipop: 

キャンディークラッシュが教えてくれたことは私の人生や仕事にも活かされているはずです :ok_hand: 

ということでこれからもキャンディークラッシュと一緒に人生を送っていきたいと思います。 :dancers: 

ありがとうキャンディークラッシュ
これからもよろしくねキャンディークラッシュ

以上IDCフロンティアの新人、竹本がお送り致しました :sunglasses: 

**それではまた会いましょう :walking: :runner: :running:**
phpアプリ(postgreSQL)　とりあえず起動までの道のり


## 前提

+ Mac OS X
+ 他で開発されたphpアプリをとりあえず動かしたい。
+ 特にメンテはしていかない、とりあえず動作を見たい。


### postgreSQL 準備

```
# postgreSQLサーバ起動
postgres -D /usr/local/var/postgres

createdb 'tgt_db'
psql tgt_db < tgt_db.dmp

psql -U user -d database
```

### php準備

http://azuki-milk.hatenablog.com/entry/2015/03/07/231847

``` 
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

brew info php56
brew install php56 --with-postgresql
```

.bashrc, .zshrc に以下を追加

``` .bashrc
export PATH="$(brew --prefix php56)/bin:$PATH"
```

``` /usr/local/etc/php/5.6/php.ini
date.timezone = Asia/Tokyo
default_charset = "UTF-8"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
```

### 起動してみる

```
php -S localhost:8000
```

### 困ったことに対処

#### session_is_registered 関数は5.4で削除された。

http://php.net/manual/ja/function.session-is-registered.php

かといって5.4に戻すとビルトインサーバーが使えない。めんどい
→使用箇所を削除…

### エラー表示を抑制する。
http://php.net/manual/ja/function.error-reporting.php

``` app.php
// 全てのエラー出力をオフにする
error_reporting(0);
```
IntelliJ IDEA から  no changes detected とか言われて Subversion をコミットできない

にっちもさっちもいかなくなる

コマンドラインでsvn叩くと普通にうごく

明らかにIntelliJが悪い

http://stackoverflow.com/questions/6590842/intellij-and-svn-no-changes-detected-upon-commit

VCS > Refresh File Status

私はこれで治りました
UIWebViewとかでスクロールを計算してnavBarを隠すありがちなnavBarControlelrを作る時代は終わった！！

スクロールに合わせてうにょーんって隠す場合はちょっとダメなんですが、スワイプに合わせてさっと隠していいなら

```swift
navigationController?.hidesBarsOnSwipe = true
```

これだけ！！
超便利…なんだこいついつからいたんだ…。

>    @available(iOS 8.0, *)
OpenLDAP - SSH公開鍵を登録してログインするまでの手順


#### やりたいこと

* SSH公開鍵をLDAPに登録して一元管理したいため調査しました。OpenSSHをソースからコンパイルしてとかいろいろ情報がありましたが、Ubuntu 14.04.1 LTSではOpenSSH 6.6.1p1がapt-getで入手できるのでスキーマファイルをダウンロードしてincludeするだけでした。

#### 環境

* OS:Ubuntu 14.04.1 LTS
* OpenSSH:6.6.1p1
* OpenLDAP:2.4.31

#### LDAPサーバ側の設定

* まずLDAPサーバでの設定手順

##### 1.OpenLdapサービス停止

```
sudo su -
service slapd stop
```

##### 2.スキーマファイルをダウンロード

```
cd /usr/local/src
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/openssh-lpk/openssh-lpk_openldap.schema
```

##### 3.スキーマディレクトリにコピー

```
mv openssh-lpk_openldap.schema /etc/ldap/schema
```

##### 4.slapd.conf編集

```
vi /etc/ldap/slapd.conf
------------------------------------------------------------
include         /etc/ldap/schema/openssh-lpk_openldap.schema
------------------------------------------------------------
```

##### 5.ConfigDB削除

```
rm -rf /etc/ldap/slapd.d/*
```

##### 6.ConfigDB再作成

```
slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/
chown -R openldap:openldap /etc/ldap/slapd.d
```

##### 7.OpenLdapサービス起動

```
service slapd start
```

* これでLDAPのAttributeに「sshPublicKey」が表示され公開鍵が追加できる

#### LDAPクライアント側の設定

* sshdがLDAPサーバのSSH公開鍵を取得するようにする設定手順

##### 1.LDAPサーバからSSH公開鍵を取得するスクリプト

* やっていることはLDAPサーバに接続して「ldapsearch」の結果から公開鍵だけ抽出

```
vi /opt/ssh-command/LdapGetSSHKey.sh
------------------------------------------------------------
#!/bin/bash

uri=ldap://<LDAP-SERVER>
binddn="<BIND-USER>"
bindpw=<PASSWORD>
base="<BASE>"
uid=$1

ldapsearch -LLL -H ${uri} -w "${bindpw}" -D "${binddn}" -b "${base}" "(& (objectClass=posixAccount) (uid=${uid}))" "sshPublicKey" | sed -ne '2,$p' | sed -e 's/sshPublicKey: //g' | sed -e 's/^ //g' | tr -d '\n'
------------------------------------------------------------
```

##### 2.sshdに認証コマンドの設定

```
vi /etc/ssh/sshd_config
------------------------------------------------------------
AuthorizedKeysCommand /opt/ssh-command/LdapGetSSHKey.sh
AuthorizedKeysCommandUser root
------------------------------------------------------------
```

#### ※参考
http://makaaso.hatenablog.com/entry/2015/12/10/145442
OpenLDAP - 「bdb_equality_candidates」エラーの対応方法


#### 環境

* OS:Ubuntu 14.04.1 LTS
* OpenLDAP:2.4.31

#### 出力ログ

```
Jan  6 01:47:06 localhost slapd[28974]: <= bdb_equality_candidates: (uid) not indexed
```

#### 原因

* インデックスが見つからないため

#### 対応

* インデックス作成

#### 対応手順

##### 1.OpenLdapサービス停止

```
service slapd stop
```

##### 2.ConfigDBを編集

```
vi /etc/ldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif
------------------------------------------------------------
+ olcDbIndex: uid eq
+ olcDbIndex: member eq
+ olcDbIndex: uniqueMember eq
+ olcDbIndex: memberUid eq
------------------------------------------------------------
```

##### 3.インデックス作成

```
slapindex -F /etc/ldap/slapd.d/
```

##### 4.ディレクトリ権限変更

```
chown -R openldap:openldap /etc/ldap/slapd.d/
```

##### 5.OpenLdapサービス起動

```
service slapd start
```

#### ※参考
http://makaaso.hatenablog.com/entry/2015/12/10/145737
プログラミングの学習を始めた前に言ってほしかったこと


僕は... 外国人です。
日本に住んでいてなんとなく自分なりに生活を送っています。
なんか難しいことを勉強することが好きなタイプでプログラミングの勉強も始めましたww
だから日本語だけじゃなくてプログラミングに関しても知らないことはまだまだたくさんあります。

１年半ぐらい前にプログラミングの勉強を始めて、今までかなり苦労してきました。プログラミングはすごく魅力があって何か作りたいなって思ってたきっかけで始めたけど、一体どこから始めればいいかは全く分かりませんでした。

正直はそういう気持ちはまだよくあります。でも、独学で習ったことを、ビギナーのプログラマーのために書き置きたいなと思ったのでこの記事を書きました。

##① プログラムが作りたいなら、言語を習うだけじゃ足りない
GUI が必要です。当たり前じゃないか？って思うかもしれないけど、プログラミングが習いたいって思った時、言語を習うだけで済むんだと甘く思っていました。何が GUI かさえ知らなかったからです。最初はターミナルで自分の作ったプログラムをコンパイルしてたけど、なんか本格的なプログラムじゃないな〜って感じがしました。そしてある友達と android アプリのプロジェクトを始めました。Android Studio で XHTML と Java を使ってアプリを作ります。そうか。 Java 側でコードを書いて、 XHTML 側で見た目を実装する訳です。
アプリだろうがサイトだろうが、GUI が必要で、プログラミング言語だけで作れません（ほとんどの場合）。ウェブサイトだったら HTML と CSS は基本。そして Ruby on Rails とか、Django といったフレームワークもあります。アンドロイドは Android Studio で Java を書きます。 IOS は cocoa touch で Objective-C か Swift を書きます。Unity で C# か Unity JavaScript を書きます。言語だけじゃ足りないな。

##② 言語だけじゃ足りないから、習うべきこと
ただ、GUI だけじゃないです。深い説明は割愛するけど、これを習ったらいいよって本当に言ってほしかったことを書いておきます。


**１．ターミナルかコマンド・プロンプトの基本の操作やコマンド**
　　　　　先頭に「＄」があるってやつを見かけたことがあります？
　　　　　`$ cd desktop`　みたいなやつ。
　　　　　それをターミナルやコマンド・プロンプトで打ち込む訳です
**２．[Git](https://git-scm.com/book/ja/v2)/[Github](http://www.github.com/)**：他人とプログラムが作りたいならこれは不可欠だし、自分のコードを安心にいじるためにも使えます
**３．[Qiita](http://qiita.com)/[Stackoverflow](http://ja.stackoverflow.com/)等**：問題を解決するにはすごく役に立つウェブサイト
**４．[Sublime Text](http://www.sublimetext.com/) や [Atom](https://atom.io/) 等**：コードを書くための専用のテキストエディター
**５．[Markdown](http://qiita.com/oreo/items/82183bfbaac69971917f)**：自分のプログラムの説明を Github で書く際、.md で書きます。Qiita の投稿もww
**６．[MySQL](https://www-jp.mysql.com/)/[SQLite3](https://www.sqlite.org/cli.html)/[PostgreSQL](https://www.postgresql.jp/)等**：データベースだけなんだけど、back-end のウェブ開発がしたいなら、何かのSQL（データベースとのやり取りを行うための言語）を知らないといけません
**７．フレームワーク**：何かを作ろうとしたら、（いつもこうではないけど）フレームワークがあって、その中で開発します。HTML や JavaScript だけでフォルダーを作ってウェブサイトが作れるけど、現在は Ruby on Rails とか、Django とか、Unity とか、Android Studio とか、色々なフレームワークがあります。何が作りたいか知った上で、それを作るためのフレームワークを見つけて作ったらいいかもしれません。



それぐらいかな。長いリストじゃないけど、本格的なプログラムを作りたいなら、一冊のプログラミング言語の教科書だけじゃ無理ですね。
僕も初心者だから抜けてるところはあるかもしれないけど、この７つは結構大事だと思ってたから書いておきました。


##③ まとめ

「コードが書きたい」と思う人は多いかもしれないけど、プログラムを作る時に、普通はコードを書くだけじゃないです。プログラミングの勉強を始める時に、プログラミング言語の教科書を買ったらいいけど、それだけじゃないです。「どの言語を習ったらいい？」という質問よりも、「ウェブサイトが作りたいからどのフレームワーク/環境で作ったらいい？」とか、「ゲームが作りたいからどのフレームワークで作ったらいい？」とかいう全面的な質問の答えを探せばいいです。

しょうもない記事かもしれないけど、素人プログラマーの私には本当に言ってくれればよかったのにって思ったことでした。
自分的によく使うlinuxコマンド5選

適当に紹介するよぉ～
### 現在のディレクトリパスを表示
`# pwd`
言わずもがな。


### ディレクトリ内のファイル一覧表示
`# ls -la`
言わずもがなパート2。
ちなみにこのオプションは-lで詳細表示、-aで隠しファイル(頭にドットが付いたファイル名)表示。


### CPU使用率、LAなどの統計情報を表示
`# top`
言わずもがなパート3？
topコマンドについてはこちらの記事で詳しく解説されてます
http://qiita.com/k0kubun/items/7368c323d90f24a00c2f


### scpコマンドでファイル受信
`scp ユーザ名@サーバ名:受信したいファイルパス 受信先ディレクトリ`
scpコマンド、いっつも忘れちゃうんですよねー
ちなみにローカルからリモートに送信することもできるます。
以下を参照すればいいかも
http://qiita.com/katsukii/items/225cd3de6d3d06a9abcb

### 容量をくってるファイルベスト１００を表示
`# du -ma | sort -rn | head -100`

例えばzabbixとか見ていて、HDDの空き容量が極端に減って何事だーってなった時に、犯人(犯ファイル？)をあぶり出す手がかりをつかむ時とかに便利かも。
また、大きい容量のくせに必要ないファイルはないかなーと探すときに便利。
ただし、実行した時のディレクトリ配下のファイルしか精査されないのと、実行した時のユーザーがアクセスできるファイルしか精査できないので注意。
ちなみに、パイプで繋がれてるコマンドのひとつひとつを紐解くと以下な感じ

`# du -ma`
ディレクトリ内のファイル容量表示。オプションは-aでディレクトリだけじゃなくファイルも表示、-mで容量の単位をMBにする。

`# sort -rn`
行を並び替える。オプションは-rで逆順ソート、-nで先頭の数字や記号("+" , "-" , "." など)を数値とみなしてソート。

`# head -100`
ファイルの先頭部分を表示する。オプションは100行表示。数値を変えると表示する行数を変更できる

こんな感じでごぜえます。
ちょっとした時のお助けになれば幸い。
Rのパッケージを論文に引用する

CITATIONが用意されている場合は、```citation()``` 関数を使うと引用すべき文献が表示されます。

```lang:r
> library(lme4)
> citation("lme4")

To cite lme4 in publications use:

  Douglas Bates, Martin Maechler, Ben Bolker, Steve Walker (2015). Fitting Linear Mixed-Effects
  Models Using lme4. Journal of Statistical Software, 67(1), 1-48. doi:10.18637/jss.v067.i01.

A BibTeX entry for LaTeX users is

  @Article{,
    title = {Fitting Linear Mixed-Effects Models Using {lme4}},
    author = {Douglas Bates and Martin M{\"a}chler and Ben Bolker and Steve Walker},
    journal = {Journal of Statistical Software},
    year = {2015},
    volume = {67},
    number = {1},
    pages = {1--48},
    doi = {10.18637/jss.v067.i01},
  }
```

逆に、このような引用情報を自作のパッケージに含めたい場合は、/inst フォルダ以下にCITATIONファイルを作るとよいでしょう。

cf. https://github.com/lme4/lme4/blob/master/inst/CITATION
https://cran.r-project.org/doc/manuals/R-exts.html#CITATION-files
YAML内でYAMLをincludeする(render :partialみたいな感じ)

```rb
# YAMLファイルを結合(include)したり、Hash化(load)したりする
#
# 使い方)
# aaa.yml -------
#   - id: <%= id %>
#     aaa: 'aaaa'
#
# bbb.yml -------
#   - id: <%= id %>
#     bbb: 'bbbb'
#
# result.yml ------
#   <%= Util::Yaml.include('aaa.yml', { id: 1 }) %>
#   <%= Util::Yaml.include('bbb.yml', { id: 2 }) %>
#
module Util
  class Yaml
    def self.include(file_path, locals = {})
      Erubis::Eruby.new(IO.read(file_path)).result(locals)
    end

    def self.load(file_path, locals = {})
      YAML::load(include(file_path, locals))
    end
  end
end

```
Σを使った数式をpythonで試す

#目次
- [経緯](http://qiita.com/weedslayer/items/25c38c928ad59ba61071#経緯)
- [Σとは](http://qiita.com/weedslayer/items/25c38c928ad59ba61071#Σとは)
- [やりたいこと](http://qiita.com/weedslayer/items/25c38c928ad59ba61071#やりたいこと)
- [Pythonで動作確認](http://qiita.com/weedslayer/items/25c38c928ad59ba61071#Pythonで動作確認)
- [例題を軽く](http://qiita.com/weedslayer/items/25c38c928ad59ba61071#例題を軽く)
- [番外編~what if~](http://qiita.com/weedslayer/items/25c38c928ad59ba61071#番外編 ~what if~)

##経緯
1. 授業でΣ（シグマ）に出くわす
2. 久しぶりだしPython使って簡単に表現できないか思いつく
3. 軽くググッて見る
4. [使えそうなリソース]を発見
5. ちょっとだけ試してみる

##Σとは
一言で言うと`sum`とか（主に）数列の和と表現したりする。

![sigma.jpg](https://qiita-image-store.s3.amazonaws.com/0/87666/e2444838-f2b6-e5e2-229c-763d25a393a1.jpeg)

*画像転載元: [Learn Sigma Notation Online](http://math.tutorvista.com/statistics/sigma-notation.html)

詳しい使い方は以下参照:

[Σの意味ってなんでしたっけ?](http://oshiete.goo.ne.jp/qa/5928890.html)
[【数列９】シグマ１　シグマとは？シグマの意味、計算を説明　【高２数学・数Ｂ】](https://www.youtube.com/watch?v=JD8dWIfHqjQ)
[数列の和~シグマΣの定義と計算方法：ビジュアル数学（数学Ｂ:数列](http://www24.atpages.jp/venvenkazuya/mathB/progression9.php)

##やりたいこと
ソース元を参考に、
![544x215xsigma.png.pagespeed.ic.f1Iqf-52cp.png](https://qiita-image-store.s3.amazonaws.com/0/87666/b3719a92-096b-3421-ec94-e9e25258fc55.png)

をどうにかしてpythonで動かしてみる。

##Pythonで動作確認

以下が元のコード

```lang:sigma.py
def f(x):
    return 2*x + 1

def g(x):
    return (x-1) * (x-3)

def sigma(func, frm, to:
    result = 0;
    for i in range(frm, to+1):
        result += func(i)
    return result

sigma(f, 2, 4) #21
sigma(g, 1, 3) #-1
```
細かい流れは[ここ](http://tjleone.com/mathematical-puzzling-in-python-sigma.htm)参照。

これをPython3.xでも使えるように

```lang:sigma2.py
def f(x):
	return 

def sigma(func, frm, to):
	result = 0;
	for i in range(frm, to+1):
		result += func(i)
	print(result)

sigma(f, 1, 10) #21
```

##例題を軽く

例題：以下の式の和を求めよ。

![math.png](https://qiita-image-store.s3.amazonaws.com/0/87666/72ab1712-55e2-7ac4-ecb8-80207c086036.png) 

これを

![math.png](https://qiita-image-store.s3.amazonaws.com/0/87666/5669279c-0332-9455-98f3-2448bab4ec79.png) --- #1

と

![math copy.png](https://qiita-image-store.s3.amazonaws.com/0/87666/ae166bd5-7aaf-15ff-bce0-2ad9193a88b6.png) --- #2 （これが上の画像で言うk番目のa）

に分ける。

まずは#2の答えを出す関数を作る

```
def f(n):
    return 3 * n - 2
```

そして#1の答えを出す関数

```
def sigma(func, frm, to):
	result = 0; #答えの受け皿
	for i in range(frm, to+1):
		result += func(i) 
		#ここで関数を呼び出す。ちなみにここではi = x
	print(result)
```

完成形はこんな感じ

```
ef f(n):
	return 3 * n - 2  

def sigma(func, frm, to):
	result = 0; #答えの受け皿
	for i in range(frm, to+1):
		result += func(i) 
		#ここで関数を呼び出す。ちなみにここではi = x
	print(result)

sigma(f, 1, 4) #22
```

##番外編~what if~
`f(x)`の式を作る必要がない式に出くわした場合、
1. `sigma`関数の引数`func`を消す
2. `result += func(i)`から`result += i`に
3. これで正常に動く。。はず

```
def sigma2(frm, to):
	result = 0;
	for i in range(frm, to+1):
		result += i
	print(result)

sigma2(1,10) #55
```
はじめてのSelenium IDE ～自動化したものをスケジューラで回す～

#やりたいこと
Selenium IDEで自動操作ができるようになったので、これを周期的に実行したい！

要件としては以下の通り
－できるだけ短期間で簡単に！
－インストールはあまりしたくない！
－コーディングはしたくない！Eclipsとか嫌！
－せっかく自動化なので、手動とかないわー

#実現方法の検討

色々と調べてみたら大きく以下の2つ（間違ってたら指摘を・・・・）
①Selenium RC
②Selenium WebDriver

上記の②はどう調べてもコーディングが必要で、おまけに何かしらの言語を動かすセットアップが必要となるようです。
お客様が厳しいのでセットアップは嫌だー

と、いうことで①で攻めることに

#準備
Selenium RCというやつを実行するにはSelenium Serverが必要なようです。
また、Selenium IDEでひと手順必要なようです。

##Selenium Serverのインストール
インストールと言ってもただのファイルダウンロードです！
①Seleiumのサイトを開く
http://www.seleniumhq.org/

②「Download Selenium」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/e6d03948-2596-6ccd-abe8-2efa2a91fcf2.png)

③「Selenium Standalone Server」のバージョン部分をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/1b322be6-13a8-8d80-83dd-7934ac041a43.png)

④ファイルを保存
適当な場所に保存してください。私は「c:\selenium」というフォルダを作って保存しました。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/29cfc1fa-a3bb-1047-1387-aaf5791f7e9c.png)

##Selenium IDEでの準備作業
テストスイートとかいうやつが必要になります。

①予めテストケースを開いておきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/b002fde9-b79d-ce11-ca90-15ce24f1ecbb.png)

②「ファイル」→「テストスイートに名前を付けて保存」と選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/e34836c4-05a4-8e8a-1799-5ff34eab6f45.png)

③保存します。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/afe07cc7-cfcc-d95d-eca4-92d902aeda49.png)

※例としてテストスイートのファイルと自動化HTMLを「c:\selenium」に置きます

～中身がどうなっているのか～
こんな感じで自動化HTMLを呼んでいます。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/b4790a91-52a2-4f75-f122-d64491ec4e03.png)

#実行
実行は以下のコマンドとなります。
`java -jar SeleniumServerのjarファイルパス -htmlsuite "*firefox" アプリケーションのURL テストスイートのファイルパス 結果HTMLのパス`

例ではこうなります
`java -jar C:\selenium\selenium-server-standalone-2.48.2.jar -htmlsuite "*firefox" http://www.google.co.jp C:\selenium\OK_Google_Suite.html C:\selenium\result.html`

![image](https://qiita-image-store.s3.amazonaws.com/0/47012/0e86adbf-426e-3f3b-3aba-c2c6b48fca0e.png)

画面が上がってくるので待ちます。自動的に動いてくれます。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/696fdffb-320f-ade6-22bd-315807048c8d.png)

以上です。バッチ化してタスクスケジューラなどで動かすのも良しです。

※どうにも落ちるので、googleからYahoo検索する自動化HTMLをつくりました。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/16d08563-256f-311c-5ffb-9054b4b27e06.png)

#うまくいかないときメモ
・テストスイートと自動化HTMLは同一フォルダ内に配置すること
・証明書エラーで次に進めない場合は「-trustAllSSLCertificates」オプションを付けること
Windows環境だからこそVagrantでVM立てて、その中でdocker立ててよしなにする

自分Windows環境なんですけどまあWindowsっていろいろアレじゃないですか。
なのでVagrantでVM立てて、そのVMでdocker作って、そのコンテナにホスト機のソースを持って行きたいときな～ってときの手順。


# 環境
自分の環境はWindows7。
virtualbox, vagrant はインストール済み。

## ホスト機のディレクトリ構成

```
C:\vagrant
├─Vagrantfile
│
└─projects ←コイツをコンテナまで持って行きたい
    ├─ project1
    └─ project2
```

# vmにdocker準備
## ubuntu boxダウンロード
VMはとりあえずオフィシャルのubuntuにしました。

```
cd /c/vagrant
vagrant init ubuntu/trusty64; vagrant up --provider virtualbox
```

## docker環境構築
`vagrant ssh`して[公式](http://docs.docker.com/engine/installation/ubuntulinux/)の手順通りにインストール。

`docker run hello-world` して返ってくれば成功。

# ローカルとvmとでsyncさせる
docker環境の構築が終わったので、ホスト機に戻ってきました。
Vagrantfileの`config.vm.synced_folder`を以下のように編集。

```Vagrantfile
config.vm.synced_folder "c:/vagrant/projects", "/home/vagrant/projects"
```

これでホスト機とVMで共有ができました。

# VMとそのdockerでマウントさせる

とりあえずcentos6.7のコンテナをひっぱってVMのsyncさせたディレクトリとマウント。

```
$ docker pull centos:6.7
$ docker run -ti -v /home/vagrant/projects/:/tmp/projects/ centos:6.7
```

これでホスト機とVMとdockerでぶち抜きできるようになった。
あとはよしなに。
Meteorで簡単Basic認証


# はじめに

Meteor Advent Calendar 2015 11日目です。

この記事ではMeteorでBasic認証を有効にする方法を紹介します。

# MeteorでBasic認証

## Basic認証用パッケージの追加

今回Basic認証で使用するパッケージは [jabbslad:basic-auth](https://github.com/Jabbslad/basic-auth) です。このパッケージをMeteorアプリに追加します。

```bash
meteor add jabbslad:basic-auth
```

## Basic認証設定

Basic認証の設定を追加します。

この設定はクライアント側で閲覧されないように、serverディレクトリ内のファイルに記述します。

```js:server/lib/basic_auth.js
const basicAuth = new HttpBasicAuth('guest', 'password');
basicAuth.protect();
```

以上です。

これだけでBasic認証が有効になります:smiley: 

あとは meteorアプリを起動し、http://localhost:3000 にアクセスして、動作を確認しましょう。

<img src="https://qiita-image-store.s3.amazonaws.com/0/24450/1cf2ae46-6aeb-a392-8a01-6b3a2a0b67e7.png" width="400" />

このような認証画面が表示されれば正しく設定できています。

正しいユーザー名とパスワード入力すると、アプリが表示されます。

また、認証に失敗すると以下の画面が表示されます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/24450/312268b4-0bcf-ce0d-8493-d3b69261fef5.png" width="400" />


## 特定のページのみBasic認証を有効化する

`basicAuth.protect`メソッドの第1引数に、URLパスの配列を渡すと、特定のページのみBasic認証を有効にすることができます。

```js:server/lib/basic_auth.js
const basicAuth = new HttpBasicAuth('guest', 'password');
basicAuth.protect([
  '/admin',
  '/secret'
]);
```

# おわりに

Accountsパッケージ入れるほどではないけれど、簡単なアクセス制限をつけたいという時にBasic認証は手軽でいいですね。

ただし、Basic認証はあくまでも簡易認証なので、セキュリティ面では不安なところがあります。

本格的なサービスで認証を行う場合は、accounts-ui などのパッケージをご利用下さい。

# 参考

- [Jabbslad/basic-auth - GitHub](https://github.com/Jabbslad/basic-auth)
ElasticBeanstalk の通知を slack へ流す


# tl;dr

環境作ったりコードを配布したりするのが楽なので、ebはお気に入り
なんだけど、``eb deploy``で配布したとき、コマンドを叩いたら投げっぱなしジャーマン状態で完了を検知できないのがツラい。
ってことで、せめて slack で通知できたらなぁって感じであれこれいじってみた

# 設定方法
**1.** ElasticBeanstalk の設定 -> 通知 を選択していき、Eメール登録する。

![貼り付けた画像_2015_12_11_16_13.png](https://qiita-image-store.s3.amazonaws.com/0/21901/f724eebf-d8b5-b8bc-8159-3e0b9c271be1.png "貼り付けた画像_2015_12_11_16_13.png")

![貼り付けた画像_2015_12_11_16_14.png](https://qiita-image-store.s3.amazonaws.com/0/21901/42f9ec65-0a65-059b-3668-bc140fbf3936.png "貼り付けた画像_2015_12_11_16_14.png")

**2.** SNSに新しいTopicsができていることを確認

![貼り付けた画像_2015_12_11_16_20.png](https://qiita-image-store.s3.amazonaws.com/0/21901/351fa271-37eb-84a5-4529-d77a3324de26.png "貼り付けた画像_2015_12_11_16_20.png")

**3.** Lambdaに[こんな感じのスクリプト](https://gist.github.com/terranware/962da63ca547f55667f6#file-snstoslack-js)を仕込む

**4.** 2で確認したTopicsで、Create Subscription。Protocol で AWS Lambda を選択すると、Endpoint に3で作った子が出てくるので、それを選択

![貼り付けた画像_2015_12_11_16_22.png](https://qiita-image-store.s3.amazonaws.com/0/21901/6f9f295e-9f9f-6411-c3cb-c061666e4ed3.png "貼り付けた画像_2015_12_11_16_22.png")


**5.** LambdaでSNS形式のテストを走らせる

**6.** Slackに↓みたいな通知がきたら成功
![bac9180e-7ae3-4501-2de3-13322eb02217.png](https://qiita-image-store.s3.amazonaws.com/0/21901/a5e5d6fd-508e-dc76-5c40-186f5ba01333.png "bac9180e-7ae3-4501-2de3-13322eb02217.png")

あとはスクリプトを煮るなり焼くなり手直しして、必要な分だけがSlackに流れるようにして完成
ちょーてきとーにやっても動いてくれるAWSとSlackがかわいくて仕方ないです

## 参考にしたとこ
https://medium.com/cohealo-engineering/how-set-up-a-slack-channel-to-be-an-aws-sns-subscriber-63b4d57ad3ea#.xlcwapm7e
WebエンジニアにiOS/Androidアプリのコードレビューをお願いするための準備


オールアバウトには30名ほどのエンジニアがいて、そのうちの3名で[CafeSnap](http://cafesnap.me)というアプリを開発しています。 
最近は自分のグループ以外のコードレビューを積極的にしよう、という流れがあるのですが、 
なかなかネイティブアプリを開発したことのない人に、レビューをお願いするのは若干ハードルを感じてしまいます。
そこで今回は何を意識してレビューをお願いしたら良いかを、まとめたいと思います。

## 目的
* スマートフォンアプリ開発について理解してもらう
* レビューをきっかけに自分でも開発してみようかなという人を増やす
* 外の目を入れることで、より分かりやすい仕様になるよう意識し属人化を防ぐ

## レビューしてもらうプルリクの選び方
なんでもレビューしてもらえば良いというものではなく、設計に悩んだり自信がない実装であったり、 他の人の意見を聞きたいものだけにしましょう。 
あまり見る意味のないレビューをお願いするのは、時間の無駄ですからね。

### 適した改修
* APIからデータを取得し一覧表示する実装など、Model実装が含まれているもの
* 軽微なバグ修正（比較的改修範囲が狭いことが多いため）
* 期限に余裕があるもの

### 適さない改修
* ライブラリの導入
* レイアウトの修正などのデザインの修正がメインの場合
* 急いでレビューしてもらいたい時

## レビューする上での事前知識
全く知識のない状態でレビューをしてもらうのは不可能なので、事前に資料を共有したり、 
勉強会を行ったりしてレビュワーの人に知識を持ってもらうのは必要だと思います。

* ディレクトリ構成
* 処理のライフサイクル
* iOS/Android特有のクラスの役割（UI〇〇/Activity/Fragmentなど）
* delegateなど馴染みのない処理
* 下記の基礎編などに目を通してもらうと良い
	* [mixi iOSトレーニング](https://github.com/mixi-inc/iOSTraining)
	* [mixi Androidトレーニング](https://github.com/mixi-inc/AndroidTraining)

## レビューしてもらうポイント
このレビューに限ったことではないですが、自分が関わっていない案件は実装する背景などがわかりませんし、 
判定条件なども正しいかの判断はできません。なので、あくまでもコードのわかりやすさや設計の部分を重点的に 
レビューしてもらうのが良いと思います。

* クラスの設計
* 命名
* 処理が複雑すぎないか(分岐処理など)
* （できれば）APIもセットでレビューしてもらう

## 注意点
どこまで理解しなければいけないか、というのはレビュワーが悩むポイントだと思いますので、 
できるだけ明確に示してあげるとレビューがしやすくなると思います。

* 見てもらいたい部分を明確にする
* あまり大きい改修を依頼しないようにする
* viewなどのレイアウト周りは無視して良いことを伝えておく
とある配列をキーとした空の配列を持つHashを作成する


# 概要
前回投稿した [2つの配列からHashを作る](http://qiita.com/toshi_dev/items/39317a1e1fbd74cb17f1) の応用編。

必要となる状況もほぼ同じ。

# やり方

``` ruby
header = ["id", "name", "desc"]
data = Hash[*header.zip(Array.new(header.count){[]}).flatten(1)]

p data #=> {"id"=>[], "name"=>[], "desc"=>[]}
```

# 注意点
rubyのArray.newの引数に空の配列を与えても同じような結果になる。ただ、そうすると、その配列の要素は全て同一の要素をさすことになってしまうので注意。
ここに書いたようにブロックで与える必要あり。（コメントにリファレンスを乗せていただいたので、そちらをごらんください。）

# 補足
コメント欄に素晴らしい意見をいただいたので、そちらも参考に。
[PHP]配列をリクエストで投げる

配列データをリクエストしたいときがたまにあります。

例

```
http://localhost/greenwich.php?p_data[74][1001]=2&p_data[74][1002]=25&p_data[74][1003]=25&p_data[74][1004]=25
```
こんな感じでGETでリクエストを投げると

PHPでは

```
$_GET["p_data"] = array( "74"=> array( "1001" => "1", "1002" => "2", "1003" => "3", "1004" => "4");
```
$_GET["p_data"]にこんな感じで多次元配列になります。


例では、一回のリクエストで商品番号74の項目選択肢番号1001,1002,1003,1004の在庫数をそれぞれ更新のためにGETしてるみたいな
SP2-0667: Message file sp1<lang>.msb not foundでsqlplusが起動しない

# 環境
- [CentOS-6.4-x86_64](http://www.centos.org/)
- [Oracle Database 11g Release 2(11.2.0.1.0) Enterprise Edition](http://www.oracle.com/technetwork/jp/database/database-11g/downloads/index.html)

# 現象
sqlplusを起動しようとすると、以下のようなエラーメッセージを出力して起動しない。

```bash
$ /usr/oracle/app/product/11.2.0/dbhome_1/bin/sqlplus
Error 6 initializing SQL*Plus
SP2-0667: Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
```

# 対策

エラーメッセージにもあるとおり、環境変数に```ORACLE_HOME```を設定する。

```bash
$ export ORACLE_HOME=/usr/oracle/app/product/11.2.0/dbhome_1
$ /usr/oracle/app/product/11.2.0/dbhome_1/bin/sqlplus

SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 11 15:45:36 2015

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Enter user-name: kagamihoge
Enter password: 
ERROR:
ORA-12162: TNS:net service name is incorrectly specified


Enter user-name: 
```

上記メッセージの通り```ORACLE_SID```の設定も必要なのでこれも設定する。もしくは、sqlplusの引数で指定する（例：```sqlplus kagamihoge/password@localhost:1521/orcl```）。

```bash
$ export ORACLE_SID=orcl
$ /usr/oracle/app/product/11.2.0/dbhome_1/bin/sqlplus

SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 11 16:00:04 2015

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Enter user-name: kagamihoge
Enter password: 


Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
?????????
SQL> 
```



新しくユーザを作ったとか、何らかの要因で環境変数の設定が変更されたとか、そういう場合に遭遇するエラーらしい。

# 参考リンク

- [ORA-01034 - オラクル・Oracle エラー FAQ](http://www.shift-the-oracle.com/oerrs/ora-01034.html)
- ['Error 6 initializing SQL*Plus SP2-0667: Message file sp1<lang>.msb not found SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory ' というエラーが SQL Plus 実行で表示される場合の対処 | 【Oracle FAQ】](http://www.tooljp.com/database/Oracle/faq/54A556214FC06D1C49257C4200558A37.html)
Docker で Image の ツリーを見る方法

#はじめに
みなさん！Dockerつかってますか！？

docker を使っているときに、ゴミコンテナができてしまい
このコンテナはどのイメージから起動されたのか分からなくなっちゃうことってありますよね？

イメージを消したいのに、どのコンテナが掴んでいるイメージかわからない!
そう、そんなときにこの記事が役に立つんです！

とういうわけで、今日は Docker 内の Image を
グラフィカルに見る方法について解説してみたいと思います

#イメージのツリーって？
docker は コンテナを起動するための Image を管理しています。
Image は 複数のImageからできており、 それぞれのImageには親子関係があります。

そのため、ImageIDから そのImageがどのImageを構成しているイメージかを
確定するためにはツリーを書く必要がありそうです

### 参考資料
http://www.slideshare.net/enakai/docker-43975886

#イメージのツリーを見る方法（古い方法）

## 調査
昔のDockerではImageを見るときに --tree オプション で見れたようです。
http://qiita.com/mopemope/items/181cb6c6c6f7cf9bbaa9

## やってみよう
![image](https://qiita-image-store.s3.amazonaws.com/0/102603/d5a08380-2244-cbd9-ffba-e442f6e0abee.png)

・・・・orz

#イメージのツリーを見る方法（ナウい方法）

## 調査
こんなコンテナを見つけました！すごい！
https://github.com/CenturyLinkLabs/docker-image-graph

## 起動

おもむろに、以下のコマンドをぶっ叩いてみましょう！
```docker run -d -v /var/run/docker.sock:/var/run/docker.sock -e PORT=3000 -p 49277:3000 --name image-graph -h image-graph centurylink/image-graph```

これで port 3000 を port 49277 にフォワードしてサービスが動いているはずです。

## 確認
さっそくブラウザでアクセスしてみましょう！

![docker-images-view.png](https://qiita-image-store.s3.amazonaws.com/0/102603/a8d480f2-5430-a0f9-0c33-170575158726.png)

おぉぉぉ ！！
見えてますね！ これでゴミコンテナがつかんでいるイメージを特定することができますね！

# まとめ
docker 周りの技術の進歩の仕方はあっという間で、
少し前にできたことが できなくなっていたり、できるようになったりと目まぐるしいです。
常にいろいろな方向にアンテナを張っていこうと思いました。

また、便利なコンテナを 提供してくれる人に感謝しつつ
自分でも貢献していけたらなと感じております。

### 検証環境
docker 1.9.0
ubuntu 15.04
RPGツクールMVでLeap Motionを使ったプラグインを実装する

遅くなってしまってすみません！
RPGツクールMVでJavascriptを使ったプラグインが書けるようになったということで、
一発ネタ的な感じですが、[Leap Motion](https://www.leapmotion.com/?lang=jp)の[Javascript版クライアント](https://github.com/leapmotion/leapjs)を使ったゲームコントローラーの実装をしてみました。

GitHub上にソースコードを置いているので試してみたい方はどうぞ。
https://github.com/tomoasleep/leap-mv

# RPGツクールMV用のコントローラープラグインを書く
![resample1.png](https://qiita-image-store.s3.amazonaws.com/0/7048/f682140e-7f7d-ac12-35e9-ab3ba99021b0.png)
![resample.png](https://qiita-image-store.s3.amazonaws.com/0/7048/b3a14c54-087c-3ce5-5151-a8b05efc06c7.png)

…というわけでLeap Motionを使った簡単なゲームコントローラープラグインを書きました。
画面の指の向きを方向キーに対応させて、画面をタップするようなジェスチャ等を決定キーに対応させて、(正確さに難があるのですが一応)ゲームコントローラーの代わりとすることができるようになっています。

画面に謎の手が写り込んでいますが、これは[Bone Handsプラグイン](https://developer.leapmotion.com/gallery/bone-hands)を使ってゲーム画面の上にリアルタイムでレンダリングしているものです。

# 実装について

## 入力

コントローラープラグインをどう実装したかについて説明します。
RPGツクールではキーボードの入力は`Input`オブジェクトが担当していて、キーの入力に対するコールバック関数で押されているキーを把握して、毎フレームごとに呼ばれている`Input.update`メソッドがキーに対応した入力情報に置き換えています。

そこで今回はleapjsプラグインに手の動きを読み取らせ、`Input.update`メソッドをオーバーライドして、それを入力情報として反映させるという実装をしました。

https://github.com/tomoasleep/leap-mv/blob/master/leapMV.js#L46-L82

同様にして他の入力デバイスでもツクールMVのゲームが操作出来ると思います。

## 手の描画

ただLeap Motionの手の動きを方向キーの入力に反映させるだけだと、
うまくLeap Motionが手の動きを読み取ってくれているのかわかりづらいので、とりあえず画面上にLeap Motionが感知してる手の形を重ねてレンダリングしています。

ツクールMVのエンジンがレンダリングしているゲーム画面のCanvas上に直接手をレンダリングするのは難しかったので、

今回はゲーム画面の上に更にCanvasを用意して、
そこに[three.js](http://threejs.org/)と[Bone Handsプラグイン](https://developer.leapmotion.com/gallery/bone-hands)がレンダリングするという形を取りました
(そのせいでレンダリングエンジンが2つになってしまっていて少しだけ重いです…)

その他のデバック情報も[ゲーム開始時にHTML要素を追加して](https://github.com/tomoasleep/leap-mv/blob/master/leapMV.js#L84-L90)それを動的に更新して表示するようにしています。

(本当はツクールMVのWindowを使って表示したいですね、Windowの実装がわかれば出来るかと思います)

# まとめ

というわけでLeap Motionを使ったコントローラープラグインの紹介と実装についての説明でした。

試してみた感じだとLeap Motionで方向キーの代替をするのは正確さの点でやや難しいかな？と思ったのですが、jsで触れる入力デバイスはツクールMVでも使えるようなので、使い所を考えると面白いかもしれません。
(例えばMIDIキーボード等使ってリズムゲームとかもできそうですね…)

このようにツクールMVではjsプラグインでいろいろなことが実現できるので、ぜひともツクールMVでjsプラグインを書いて色々な面白いゲームを作ってみてください！
Railsアプリでsprite-factoryを使ってRetina対応したい気持ち


# 概要

タイトルの通りなんですが、Rails初心者が試行錯誤した結果あんまりキレイじゃない解決法になったのでメモ。

前提として…。

- ruby 2.2.0p0 (2014-12-25 revision 49005) 
- rails v4.2.0
- sass v3.4.16
- sprite-factory v1.7.1

compassはなし。

## 対応

ちょっと頑張らないと、sprite-factoryはsassのmixinにならない感じ。(参考: https://github.com/jakesgordon/sprite-factory/issues/16)

個人的にmixinが好きじゃないというのもあり、今回は[こちら](https://github.com/jakesgordon/sprite-factory/issues/19)を参考に、クラスとして書き出してextendして使うという前提にしてあります。

rakeファイルは以下。パス名とかは適宜変えてね。

```assets.rake
require 'sprite_factory'
require 'fastimage'

namespace :assets do
  namespace :sprite do
    desc 'recreate sprite images and css for SP'
    task :sp do
      SpriteFactory.run!(
        'app/assets/images/sprite',
        :layout => 'packed',
        :style => 'scss',
        :cssurl => "image-url('sprite/$IMAGE')",
        :output_style => 'app/assets/stylesheets/_sprite@2.scss',
        :output_image => 'app/assets/images/sprite@2.png'
      ) do |images|
        images.map do |name, data|
          sprite_size = FastImage.size('app/assets/images/sprite@2.png')
          <<EOF
.ico-#{name}-sp {
  background-image: image-url('sprite@2.png');
  width: #{data[:cssw] / 2}px;
  height: #{data[:cssh] / 2}px;
  background-position: #{data[:cssx] / -2}px #{data[:cssy] / -2}px;
  background-repeat: no-repeat;
  background-size: #{sprite_size[0] / 2}px auto;
}
EOF
        end.join("\n")
      end
    end
  end
end
```

sprite-factoryはどうやら内部ではスプライト画像の全体のwidth / height持ってるんですが、取り出し方分からず…。

結局fastimageという画像のwidth / heightを取ってくれるgemを入れてそれを使って、`background-size`を入れてます。
これで`bundle exec rake assets:sprite:sp`を実行するとこんな形のscssファイルができます。

```_sprite.scss
.ico-hoge-sp {
  background-image: image-url('sprite@2.png');
  width: 109px;
  height: 29px;
  background-position: 0px -103px;
  background-repeat: no-repeat;
  background-size: 322px auto;
}
```

compass使ってればfastimageいらなかったけど、まあできたのでよいかと。調べてもあんまり情報が出てこないんで、書いておきました。
2つの配列からHashを作る

# 概要

※おそらく似たような投稿があったと思うが、自分用のメモとして。
たまにRubyでCSVなどのデータを処理するときに必要になるので。
ヘッダーと読み込んだ行データとをHashにする方法。

# 方法

``` ruby
header = ["id", "name", "desc"]
row = ["1", "Qiita", ["Qiitaは、...","私は、"]]
data = Hash[*header.zip(row).flatten(1)]

p data #=> {"id"=>"1", "name"=>"Qiita", "desc"=>["Qiitaは、...", "私は、"]}  
```

# ちなみに
上記のflattenに引数として1を与えるのがキモ。そうすると、ヘッダーじゃない方の配列をネストすることができる。
はじめてのSelenium IDE　～使ってみる～

①SeleniumIDEの画面　赤枠で囲んだところで操作記録をON/OFFします。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/6f23995d-5605-cd89-34db-6532f0fbb197.png)

②googleを検索してみます
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/08435d37-a20e-178c-1837-5b79b202e699.png)

③こんな感じで操作が記録されます。操作終了時は赤丸を押して記録を終了してください。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/439b8cba-e0f2-8cc0-fdbf-c67a2b49b1f6.png)

④操作の記録がHTMLとして保存されます。「ソース」タブで確認できます。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/7f951a55-fde3-af17-bbfc-fd328ee358b5.png)

⑤操作の記録を保存します。「ファイル」→「テストケースに名前を付けて保存」で記録します。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/9f00591a-a9ef-8520-cc70-9fd0e2158d16.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/47012/66979873-a32a-c699-aae2-11f8aa6559d0.png)

⑥実行させたいときは緑の矢印ボタンです！
例だと「google」って入って落ちます（笑）
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/5dd90d04-04a4-ecf7-597e-cc1ca40db037.png)

操作の記録をコツコツして、色々なサイトを元に微修正していく感じでいけちゃいます！
PNG画像の非劣化圧縮をまとめて行うツールとコマンド


フロントエンドエンジニア、もしくはフロント兼務のデザイナーの皆様、安心して下さい。コピペでオッケーですよ。

#pngquant
https://pngquant.org/

ここからCommand-line版:Binary for Mac OS X
ってやつをダウンロードして格納(今回は~/Application内に)します。

ターミナルからカレントディレクトリ内のpngをまとめて検索して圧縮を実行するコマンド

```
find . -name '*.png' -exec /[ダウンロードしたファイルの場所]/pngquant --speed 1 --ext .png --force 256 {} \;
```

#ImageOptim
https://imageoptim.com/

右ダウンロードのボタンからダウンロードしてアプリケーションにインストールを行う。

同じくまとめて突っ込むコマンド

```
open -a imageoptim *.png
```


##なんとあんなにサイズの大きかったPng画像が、これらを両方やると75%くらい減ります！(当社比)

※色数が少ない大きめ画像の場合
小さい画像でも半分くらいにはなります。
myThingsハンズオンの参考資料

## 注意
現在myThingsを使って、色々なWebサービス、IoTデバイスと連携する自作デバイスを作ろうとした場合、2つ方法があります。

* myThingsアプリ + IDCFチャンネルを使う場合
https://www.idcf.jp/cloud/iot/
* myThings Developersを使う場合
https://mythings-developers.yahoo.co.jp/

この記事では、myThingsアプリ + IDCFチャンネルを使った方法をご紹介します。

## はじめに
この記事はmyThingsハンズオンの為の参考資料です。

## 目的
本資料は[myThingsをはじめようキット](https://www.switch-science.com/catalog/2366/)を使って、実際に手を動かすことによってmyThingsでどのようなことができるのか把握して頂くことを目的としています。

## 本編
1. [myThingsアプリの概要を理解しよう](http://qiita.com/yamamotomanabu/items/efb8ce3756b5a4929d59)
2. [RaspberryPiをセットアップしよう](http://qiita.com/yamamotomanabu/items/30a8fdb2031affd449a5)
3. [IDCFクラウドをセットアップしよう](http://qiita.com/yamamotomanabu/items/3fce62d8b271e6968fea)
4. [○○が☓☓だったら、LEDを光らせよう](http://qiita.com/yamamotomanabu/items/4818906490b0b0d12236)
5. [温度が27℃以上だったら、△△を□□しよう](http://qiita.com/yamamotomanabu/items/37b9834aace9a4db8677)

## 実績
過去これらのイベントで利用しました。
https://training.softopia.or.jp/event/20151127/
http://nds-meetup.connpass.com/event/23317/
※都度ブラッシュアップしているので、細かな部分に関しては当時と内容変わっている可能性はあります。
RuboCop の設定を共通と個別で別管理する

# RuboCop とは

[RuboCop](https://github.com/bbatsov/rubocop) は Ruby スクリプトをコード解析してコーディングスタイルなどにツッコミを入れてくれるツールです。

メソッドが長すぎるとか，

```rb
if item = items.first
  # item を使った何か
end
```

みたいな代入を兼ねた条件式はやめとけとか。

# 設定をカスタマイズする

ただ，コーディングスタイルは人によっても違うし，プロジェクトによっても違います。

そこで，検査項目ごとに細かくカスタマイズできるようになっています。ある検査をしないようにしたり，判定の閾値を変えたりできます。

カスタマイズは YAML 形式で記述して，プロジェクトのディレクトリーの `.rubocop.yml` に入れておけば，そのプロジェクトのみに適用されます。

設定についてはたとえば「[RuboCopの設定アレコレ](http://qiita.com/necojackarc/items/8bc16092bbc69f17a16d)」とか，そこからのリンク先を見てください。

# 設定を共通と個別で別管理

ここからが本題です。

すべてのプロジェクトに共通の設定もしたいし，プロジェクトごとにも設定したい。

共通設定をどこかに置いておいて，プロジェクトごとに上書きする形で個別に設定できればいいですね。

`.rubocop.yml` には `inherit_from` という項目を置くことができ，ここに共通設定のパスを書いておけば，それをまず読み込んで，それを上書きするように設定できます。

具体的には，共通設定をホームディレクトリーに入れておき，プロジェクトごとの `.rubocop.yml` に

```yaml
inherit_from: ~/.rubocop.yml
```

と書きます。

ホームディレクトリーを `~` で表すのは Unix 系 OS なら常識ですが，**Windows でこう書けるとは思いませんでした！**
（まさかと思いつつやってみたらできた）
2015-12-11 c++ builder XE4, 10.2 Tokyo > TeeChart >Seriesの表示、非表示 > Series1->LinePen->Visible = false;

```txt:動作環境
C++ builder XE4
    TeeChart Lite v2013.08.130414
RAD Studio 10.2 Tokyo Update 2 (追記 2018/01/10)
    TeeChart v2016.17.160129 32bit VCL
```

シリーズの表示、非表示の切替方法は以下が正解のようだ。

http://www.delphipages.com/forum/showthread.php?t=166515

```
Series1->LinePen->Visible = false;
```

<hr>

以下も関連するかもしれない
https://www.newtone.co.jp/support/suqatc7vcl.html#41

> Q.Chart.Series[0].Pointer.Visible:=falseと記述すると失敗します。実行時にポイントを非表示にするにはどうすればいいですか？
はじめてのSelenium IDE　～インストールしてみる～

#Seleniumってなんぞや
SeleniumはWebアプリケーションの操作を覚えこませて自動で実行できちゃうやつです。

大きくは以下のようなものがあるようです。
下のものになるにつれて環境のセットアップとコーディングが増えるようです。
当方インフラエンジニアなので、コーディングはなるだけしたくないです。

楽・Selenium IDE
↓ ・Selenium RC
難・Selenium WebDriver

#Seleniumのダウンロード
FireFoxとの親和性がイイらしいので、Firefoxを起動します

①SeleniumのHPにいきます。
http://www.seleniumhq.org/

②「Download Selenium」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/367cf1a5-3fe8-25d0-12d8-f3f7583c7aab.png)

③Selenium IDEの最新バージョンをクリックします。

![image](https://qiita-image-store.s3.amazonaws.com/0/47012/df8bdabc-4b2a-6d1e-637d-51543930b8f3.png)

④画面左上のところで「許可」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/6337eeb2-6f16-10c6-b07e-5f84a588fe73.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/47012/128cb6d4-ce53-acfc-46bf-111b0057d2ff.png)

⑤「インストール」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/5d7f55ba-c414-a970-c29b-5de4a34d7fd0.png)

⑥再起動をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/972b6e0d-b0d8-267e-5d4b-b2447bae00f8.png)

以上で導入は完了です！！

#起動の仕方
「ツール」→「Selenium IDE」で起動できます！
![image](https://qiita-image-store.s3.amazonaws.com/0/47012/fae1c8fe-7324-aea2-7ca8-6c9d44e12f89.png)
テストってどうする？

また、遅れてしまっています。すみません。

開発が終わったら、絶対あるのが「テスト」。
格好良く、テスト駆動開発なんてやってみたいものですが、
まあ、小規模でやっているとテスト駆動開発っておいしいの？って感じで
ついつい、後回しになってしまいます。

テストについて主観で語ります。

# テストって何？

テストっていろいろあるけど、開発側が行うのが、
・単体テスト
・ユニットテスト
・結合テスト
・納品前テスト

のテストが大雑把にいってこんな感じ

# テストの種類

具体的に言うと

・単体テスト
　⇒開発者が仕様書の要求通りに動作するか確認するテスト
　⇒ソースコード単位か、機能単位で実施
　⇒バグというよりは、動作しないことが多い

・ユニットテスト
　⇒開発者もしくは管理者（ＰＬくらい？）が仕様書の要求通りに動作するか確認するテスト
　⇒機能のまとまり（登録から表示、編集、削除くらい）で確認
　⇒複数のソースコードのまとまりをまとめてテスト
　⇒結構、バグが大量発生する

・結合テスト
　⇒開発者、管理者、テスト担当者が仕様書の要求通りに動作するか確認するテスト
　⇒システム全体を確認
　⇒システムとしてのデータの整合性や機能の整合性も確認
　⇒手戻りややり直しが大量発生する

・納品前テスト
　⇒お客さんに納品もしくは、サービスリリース前に最終確認するテスト
　⇒最終確認なので、バグは出してはいけない
　⇒バグが出た時は大変な事になるよｗ

・検収テスト
　⇒受託開発の場合、お客さんが確認するテスト
　⇒まあ、ここで出てくる問題は、機能追加の要求だったり改修要求がほとんど
　⇒お金の話になるので、管理者や営業に任せようｗ

こんな感じ

# よくやるテストの流れ

じゃあ実際どんなテストをやるのか？

１．単体テスト
　⇒コード開発者の責任です。

２．ユニットテスト
　⇒詳細仕様作成者の責任です。
　⇒機能矛盾を開発者は指摘してあげましょうｗ

３．結合テスト
　⇒プロジェクトメンバー全員でバグを見つけましょう。

４．モンキーテスト（フリーテスト）
　⇒プロジェクトメンバー以外もしくは仕様を理解していない人に、
　　とりあえず全部のリンクやボタン、メニューを使って貰って、エラーが出ないか確認
　⇒開発者だと、エラーが出やすい場所を無意識に避けていたりするので、仕様を知らない人に
　　全部触ってもらってエラー画面が出ないくらいかの確認はしましょう。
　⇒最近、これをやらないプロジェクトが多いね。。。

５．ブラックボックステスト
　⇒テスト仕様書通りに、テスト担当者が動作チェックを行う。
　⇒「○○ができる」とか「××を入力して、△△になる」なんていうテスト仕様書。
　⇒正常系とエラーをわざと発生させる異常系をやる。

６．ホワイトボックステスト
　⇒開発者とテスト担当者がペアになって、テスト仕様書通りに操作し、内部のデータ状態を確認する。
　⇒内部処理と外部処理が正しく行われているかをチェックする。
　⇒ここまでやれば、バグはほとんど潰れているはず。

７．納品前テスト
　⇒管理者（ＰＬ）とか営業にやらせましょう。
　⇒お客さんに納品するまたはサービスリリース前のテストなので、自分たちで最後は責任を取れって感じでｗ

８．検収テスト
　⇒これは、受入テストなので、まあどれくらいテストをやるかはお客さん次第。

こんな感じ。

# テストって自動化したいよね

最近流行のジェンキンスおじさんとか、サークルＣＩとかテストを自動化するツールと言われているものは
あるけど、基本、コードを書いた人がきちんと単体テスト（デバッグとも言う）をすることが大切だと思う。

PHPだとPHPUnitやRuby on RailsだとRSpecがあったりするけど、InputとOutputの確認だけなので、
処理ロジックの正当性まではチェックしてくれない（と思っている）。
否定はしないよ。

自動化も結構だけど、自分でデバッグやスタックトレースを読める力を付けることが重要だよ。
端末に最新版のiOSをインストールしてしまったけど、Xcodeはバージョンアップしたくない時の対策

何気なくiOSのバージョンアップをしてしまうことって、ありますよね！

通常は併せてXcodeも最新版にすれば実機デバッグできるようになりますが、Xcodeアップデート前にqiitaとか見てると、最新版Xcodeに面倒なバグがあることを知ってムムムとなったりします。

そんなときは、@hakotaさんのこちらの記事の手順を踏めば、Xcodeをバージョンアップせずに最新のiOSで実機デバッグできるようになります。

>Xcode 7 betaで急に実機に書き込めなくなった場合
>http://qiita.com/Hakota/items/59b4247a203e2639f8c9

記事タイトルは上記問題とは関係なさそうに見えるけど、バッチリ解決できるよ！