プロセスを検索してkillする

psとgrepの組み合わせだとgrepの結果までがプロセスとして表示されて見づらいので、それを回避する方法

pgrepとkillを組み合わせる

$ pgrep -f 'プロセス名' | xargs kill

pkillを使う

$ pkill -f 'プロセス名'

従来の(?)方法

ps とgrepを組み合わせてプロセスIDを割り出し、それをkillする

$ ps aux | grep 'プロセス名'

$ kill プロセスID

重み付けによる抽選ロジック

<?php


// 以下の配列から抽選で一つを抽出したい
$things = [
  'a',
  'b',
  'c',
  'd',
  'e',
  'f',
  'g',
  'h',
  'i',
  'j',
];

// 重み付けをする
// この設定だと5番目のもの($thingsの'e')が最も出やすい
// 0のものは出ない
$rate = '10,20,13,24,35,0,0,0,0,5';
$rate_array = explode(',', $rate);

$weight = 0;
$rated_indexes = [];
foreach ($rate_array as $key=> $r) {
  // 重みが0になっているものは対象外
  if (empty($r)) continue;
  $weight += (int)$r;
  // 重み付け後のインデックス配列
  $rated_indexes[$weight] = $key + 1;
}

// 抽選
$lot = mt_rand(1, $counter);

foreach ($rated_indexes as $key => $index) {
  if ($lot <= $key) {
    $hit = $things[$index];
    break; 
  }
}
// 結果表示
var_dump($hit);

開発業務のためにインストールしたソフト

iTunesで写真の同期ができなかった時

PC(MacBook Pro)側に保存してある写真をiPhone(6s)に同期しようとしたが失敗。

対処方法

  1. iTunesiPhoneアイコンをクリック
  2. Photosをクリック
  3. Sync Photosのチェックを外す
  4. PCの同期元のフォルダに入っている「iPod Photo Cache」を削除
  5. Sync Photosのチェックを入れてSyncボタンを押す

f:id:hchuno:20160328125348j:plain

AndroidエミュレータにAPKをインストールする

下準備

Android SDKのインストール

  • Android Studio をインストールして、SDK Managerを使ってインストールした
  • インストール先のPCによっては、VTx関連のBIOS設定が必要になる可能性アリ
  • ↓インストール先 ※Windows8.1の場合

C:\Users\ログインユーザー名\AppData\Local\Android\sdk

APKファイルの配置

  1. 前述のAndroid SDKのディレクトリ直下のtoolsディレクトリにapkファイルを置く
  2. toolsディレクトリに移動する

cd C:\Users\ログインユーザー名\AppData\Local\Android\sdk\tools

Pathの登録

上記のtoolsへのPathを登録する

Pathの設定画面
  1. 「ウィンドウズキー+xキー」で設定メニューを表示
  2. 「システム」を選択
  3. 「システムの詳細設定」を選択
  4. 環境変数」ボタンを押下
  5. 「システム環境変数」の中からPathを探して編集

実作業

Androidエミュレータの起動

> android avd

> adb devices
List of devices attached
emulator-5556 device

APKのインストール

  • 「下準備」で配置したAPKを指定する

> adb install apkファイル名

注意点
  • エミュレータが起動しきる前にインストールを試みるとエラーになる

Error: Could not access the Package Manager. Is the system running?

Error: more than one device and emulator