0. 環境 [CentOS] 6.4 (64bit版カーネル) [PHP] 5.4.17 1. ORとANDで状態管理 複数の状態や権限をまとめて管理したい場合、2進数が便利です。 2-5行目 : 2進数の定数(10進数表記)を用意します。 7行目 : ORでプログラミング言語を足していきます。 Aさんが使える言語の位にビットが立つイメージです。(下記) 0001 (PHP) 0010 (Ruby) OR) 1000 (Perl) ---------- 1011 (Aさんが使えるプログラミング言語) 11行目以降 : Aさんが使えるプログラミング言語は何か、ANDで問い合わせます。 右端の位にビットが立っていれば結果がtrueになり、PHPが使えることが分かります。(下記) 1011 (Aさんが使えるプログラミング言語) AND) 0001 (PHP) ---------- 0001 (PHPが使える) ...
Let's Encrypt - certbotコマンド
更新日:2016年08月06日 0. 環境 [CentOS] 6.4 (64bit版カーネル) [Apache] 2.2.15 [Firefox] 46.0.1 1. Let’s Encryptのコマンド変更 証明書を更新した際、 「letsencrypt-autoコマンドはもう古いよ」という警告が出たので、更新したいと思います。 2. 更新作業(【】はマスク情報) Let’s Encryptがβ版の時はgit cloneして /usr/local/src/letsencrypt ディレクトリを作成しましたが、今回はそれとは別ディレクトリを作成します。 # cd /usr/local/src # git clone https://github.com/certbot/certbot # cd certbot 疑似実行したところ成功したようなので、証明書の期限が迫ってきたら dry-run なしで実行してみたいと思います。 # ./certbot-auto renew --dry-run : (省略) : Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/【ドメイン名】/fullchain.pem (success) ** DRY RUN: simulating 'certbot renew' close to cert expiry ** (The test certificates above have not been saved. ...
watchOSのバージョンエラー
0.環境 [OS] Mac OS X 10.11.4 [IDE] Xcode 7.3 [iOS] 9.3 [watchOS] 2.1 ※MacとiPhoneはUSBケーブルで接続。 ※iPhoneとAppleWatchはペアリング済み。 1.問題 (文中【】は読み替えて下さい) AppleWatch用のサンプルプログラムを実機で動かそうとしたら、下記3つのエラーが出ました。 エラー1 A build only device cannot be used to run this target. No supported watchOS devices are available. Pair a device to run your application or choose a simulated device as the destination. エラー2 Could not launch '【アプリ名】 WatchKit App' on 【iPhoneデバイス名】 OS version lower than deployment target ...
AppleWatch 開発中アプリのインストール制限を回避
更新日:2016年05月11日 0.環境 [OS] Mac OS X 10.11.4 [IDE] Xcode 7.3 [iOS] 9.3 [watchOS] 2.1 ※ MacとiPhoneはUSBケーブルで接続。 ※ iPhoneとAppleWatchはペアリング済み。 1.問題 AppleWatch用のサンプルプログラムを実機で動かしていたら、下記エラーが出るようになりました。 Unable to add App ID because the '10' App ID limit in '7' days has been exceeded. 「7日間で10個のアプリID制限を超えたため、アプリIDを追加できません」か・・・ Webで調べたところ回避策は2つありましたが、簡単そうな①をやってみました。 ① Xcodeに新しいApple IDを追加して、それを使ってインストール ② 既に実機にインストール済みのアプリの Bundle ID を使い回す 2.手順 (画像内の【】は読み替えて下さい) Xcodeに新しい Apple ID を追加 アプリの[General]-[Team]をクリックし “Add an Account” を選択します。 Xcodeに追加するApple IDを要求されますが、未作成なので”Create Apple ID”をクリック。 ...
AppleWatch実機でサンプル実行
0.環境 [OS] Mac OS X 10.11.4 [IDE] Xcode 7.3 [iOS] 9.3 [watchOS] 2.1 1.問題 AppleWatch用のサンプルプログラムを実機でも動かしたくなりました。 最初下記の環境だったのですが、Xcodeでサンプルプログラムを実行すると、”paired device unavailable for development” というエラー出ました。 原因が分からなかったので、とりあえずiOSを9.3にバージョンアップしました。 [OS] Mac OS X 10.11.4 [IDE] Xcode 7.2.1 [iOS (iPhone)] 9.1 [watchOS (AppleWatch)] 2.1 ※MacとiPhoneはUSBケーブルで接続。 ※iPhoneとAppleWatchはペアリング済み。 その後、今度は “Could not find Developer Disk Image” というエラーで先へ進めず。 Xcodeの下記フォルダに9.3がないことが原因らしいのですが、そもそもXcode 7.2はiOS9.3には対応していないようです。 Finderを開き、左ペインの"アプリケーション"を選択すると、右ペインにXcode.appが表示されるので右クリックで"パッケージの内容を表示" Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/ 2.Xcodeバージョンアップ Xcodeを 7.3に上げることにしました。 ・LaunchpadでXcodeを長押し後、Xcodeの左上の×印をクリックしアンインストール。 (Dockに残っているけど無視) ・OS再起動。 ・App StoreからXcodeをインストール。 (Macをwifiルーターの近くに持って行って、電源コードをつないで… 終わるまで1時間以上かかりました) Launchpadでインストールが終わったことを確認して、Xcodeを起動すると無事7.3になってました。 ...
AppleWatchサンプルプログラム
0.環境 [OS] Mac OS X 10.11.4 [IDE] Xcode 7.2.1 [watchOS] 2.1 [Swift] 2.1.1 1.完成イメージ メイン画面からサブ画面へ行って戻るサンプルを作成します。 2.プロジェクト作成 Xcodeのスプラッシュ画面で”Create a new Xcode project”を選択。 watchOS Applicationを選択。 適当なプロジェクト名を入力して下さい。 サンプルなので”Notification”と”Glance”のチェックは外します。 プロジェクトを作成するフォルダを選択して下さい。 下記のように /app/ を指定するとプロジェクトのパスは /app/hello-watch/ になります。 3.実装 左のプロジェクトナビゲーターで”Interface.storyboard”を選択。(A-1) デフォルトで用意されている Interface Controller を選択して、Identifier に適当な値(例ではIC1)を入力。 (A-2、A-3、A-4) ドラッグ&ドロップで Label と Button を Interface Controller 上に配置します。 (A-5) ドラッグ&ドロップで Interface Controller をもう一つ追加。(B-1) ...
pod setup で SSLエラー
0.環境 [OS] Mac OS X 10.11.4 [cocoapods] 1.0.0.beta.6 1.エラー内容 pod setupを実行すると下記エラーが発生。 $ pod setup --verbose Setting up CocoaPods master repo Cloning spec repo `master` from `https://github.com/CocoaPods/Specs.git` (branch `master`) $ /usr/bin/git clone https://github.com/CocoaPods/Specs.git master Cloning into 'master'... fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return error -9806 [!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master Cloning into 'master'... fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return error -9806 : 【省略】 : 2. ...
Let's Encrypt - 証明書の更新と自動化
更新日:2016年11月09日 0.環境 [CentOS] 6.4 (64bit版カーネル) [Apache] 2.2.15 [Firefox] 44.0.2 1.期限通知 (文中【】はマスク情報) 年末に設定した Let’s Encrypt のSSL証明書の期限が迫り、下記のお知らせメールが届きました。 Let's Encrypt certificate expiration notice Hello, Your certificate (or certificates) for the names listed below will expire in 17 days (on 04 Mar 16 17:44 +0000). Please make sure to renew your certificate before then, or visitors to your website will encounter errors. 【以下省略】 ブラウザで有効期限を確認するとそろそろ切れそうです。 ブラウザ(Firefox)のアドレスバーの鍵マークをクリックし、[ > ] - [詳細を表示] - [セキュリティ] - [証明書を表示] - [有効期限] ...
Rundeckでssh接続エラー
0.環境 [CentOS] 5.6 1.問題 文中、画像内の【】は読み替えて下さい。 下記ページ内の「リモートサーバでの実行」にそってRundeckのリモート接続を試してみました。 “ジョブスケジューラ「Rundeck」を試してみる” ところが、このエラーが発生… 上記画像内のテキストはこちら。 22:34:10 remote 1. hogeと表示。 Authentication failure connecting to node: "remote". Make sure your resource definitions and credentials are up to date. 22:34:10 Failed: AuthenticationFailure: Authentication failure connecting to node: "remote". Make sure your resource definitions and credentials are up to date. 22:34:10 localhost Execution failed: 21: [Workflow result: , step failures: {1=Dispatch failed on 1 nodes: [remote: AuthenticationFailure: Authentication failure connecting to node: "remote". ...
setVibrateメソッドの使い方
環境 [Android SDK] API 21: Android 5.0(Lollipop) 実装 スマートウォッチ(Android Wear)に通知を送るため、NotificationCompat.Builder の setVibrateメソッドを使った際の自分用メモ。 バイブレーション・パターンの設定は下記仕様ですが、 long型配列の1つ目の要素を除いて、偶数は振動、奇数は休止 と覚えておけば良さそうです。 NotificationCompat.Builder builder = new NotificationCompat.Builder( getApplicationContext() ); // 単位はミリ秒 // // 要素1 : 振動開始までの時間 // 要素2 : 振動 // 要素3 : 休止 // 要素4 : (これ以降は要素2-3の繰り返し) builder.setVibrate(new long[]{0, 500, 250, 500, 250, 1000}); 下記の例だと、ツー・ツ・ツ みたいな感じになります。 // 1秒振動、0.1秒休止、0.1秒振動、0.05秒休止、0.1秒振動 builder.setVibrate(new long[]{0, 1000, 100, 100, 50, 100}); 関連リンク API : NotificationCompat.Builder ...