w3mというテキストベースブラウザでターミナル上でブラウジング

はじめに w3mとはページャ兼テキストベースのブラウザです。w3mを使うとアプリを切り替えることなく、ターミナル上で検索が可能になります。下図はw3mで「hoge... 御覧になる | 御シェアする

Unity備忘録

はじめに これはUnity初心者のUnity初心者によるUnity初心者のために書いた、備忘録です。 ウィンドウサイズをスマホ幅にする ゲームタブの左上の所から変更可能です。 但し最初にビルドプラットフォームをPCに選択している場合は、比率を選択しても縦長になりません。その場合は「File」→「Build... 御覧になる | 御シェアする

WindowsのSourceTreeでGitHubとSSH(公開鍵)接続する

はじめに 今回はWindowsにてSourceTreeを使ってGitHubアカウントに公開鍵暗号方式でSSH接続する方法の説明です。 Linux環境では何度も設定していましたが、最近になって初めてWindowsで設定を行いました。その際に意外と沼にはまってしまう点があったので、次の機会のためにまとめておこうと思います。 鍵の作成 まず認証に使用する秘密鍵と公開鍵を作成します。 SourceTreeを起動して「ツール」→「SSHキーの作成/インポート」を押下します。 PuTTY... 御覧になる | 御シェアする

NoSQLと行・列指向型DBの技術選定

はじめに ログ分析システムを構築するにあたり、ログを格納するDBは何にすればいいのかについて考える機会がありました。 この時、慣れているからという理由だけで行指向型DB(MySQL)を採用するのは非常に危険な考え方です。もし深く考えずに安直な選択をした場合、DBのレコード数が増えて来た頃に1クエリ毎に1分近くも処理時間を待たなければならないという未来を迎えることでしょう。そしてそうなった時には後戻りが出来なくなってしまうのです。 今回はそうならないためにもNoSQLとSQL(行・列指向型DB)の3つを比較しながら、技術選定の観点をかんたんにまとめてみました。 行指向型DB 行指向型DBとはMySQLやPostgreSQLなどの最も一般的なDBです。行単位でレコードを読み書きします。 メリット 少ないレコードへの読み込み・書き込みが速い検索しやすい デメリット レコードが多いほど読み込み(ディスクシーク)が遅くなる HDDとアクセス速度 忘れがちですが、HDDに保存されたデータへのアクセスは結構遅いです。レコードを読み取るということは、すなわち円盤の上のアームが回転して保存された磁気データを探しているということです。 つまりレコードが増えるほど回転量が増えて処理時間も長くなります。 列指向型DB 列単位でレコードを読み取る。列方向はデータ形式が同じで、同値が多いので圧縮保存される。BigQueryなどが代表的。 メリット 大量レコードでも読み込みが速い検索しやすい ※列方向に圧縮して保存するので、HDDのデータシークの観点からレコードが増えても読み込み速度が速い ※クエリは行指向と変わらないので検索しやすい デメリット 書き込みが遅い ※一行であろうと更新する際には、圧縮されたDBを展開してから更新して再度圧縮を行うため時間が掛かる NoSQL NoSQLはキーバリュー型やドキュメント型など種類が多くあります。※ここではAWSのDynamoDBなどで代表的なキーバリュー型を想定しています。 メリット 読み込み・書き込みが速い拡張性が高い ※インデックスキーを登録出来るので該当キーでの読み込みが速いです ※キーバリュー形式で様々なデータを格納出来る インデックス インデックスとは本で言う索引のようなもです。インデックスのロジックはDB毎に様々ですが、ここでは二分探索木をイメージしています。 例えば1,000行のレコードがあるとして、1000番目のレコードを探索する際に頭から順番に検索するのではなく、1~500行目はここ、501行目~1000行目まではここという風にグルーピングされていればより速く検索することが出来ます。 細かい説明は割愛します。 デメリット 検索しにくい設計が難しい ※RDBMSの様な複雑な検索は出来ません。また登録出来るインデックスキーの数に限りがある。 ※どのキーで検索・ソートするのかなど、あらかじめ決めるべき項目が多いため設計が難しい まとめ 各DBの説明は以上です。どのDBを採用するかは、レコード数や検索性、用途や予算などを整理した上で、各データベースの長所と短所を比較しながら選定することになるかと思います。 以上です。 ... 御覧になる | 御シェアする

iPhoneとMacBookで本当に無限タップをする方法(タップ装置なし)

使うもの iPhoneMacBook 上記の2つがあれば無限タップが可能です。タップ操作をするiPhoneと、無限にタップを制御するためにMacBookを使います。 ※無限タップをする外部装置は必要ありません。 手順 iPhoneでレシピを作成 レシピを作成するに当たりスイッチが必要になります。「アクセシビリティ」→「スイッチコントロール」→「スイッチ」と移動します。更に「新しいスイッチを追加」を押して下さい。 このスイッチに関しては一旦適当で構わないので下表のような内容で作成します。 ソース画面画面フルスクリーンアクションタップ 次に「レシピ」へ移動します。「新規レシピを作成」を押してレシピを作成します。先程のスイッチを指定して下さい。名前・アクション・タイムアウトはここでは何でも良いです。 そして「レシピを起動」に今作成したレシピを指定します。 MacBookからiPhoneにスイッチを追加する 「システム環境設定」→「アクセシビリティ」→「スイッチコントロール」に移動します。「スイッチコントロールを有効にする」を有効にします。すると下図のようなスイッチコントロールパネルが表示されます。 「デバイス」をクリックすると同じネットワークに存在しているデバイスが表示されるのでご自分のiPhoneを選択して接続して下さい。※Bluetoothのペアリングなのか、iCloudへのサインインなのか、この「デバイス」の検索結果に表示される明確な条件は分かりません。申し訳ございません。 接続するとiPhoneをスイッチコントロールによる制御が出来る状態になります。この状態になったらMacBookとiPhoneの連携は成功です。 また下図のように新しくスイッチが追加されている筈です。 スイッチが追加されたら、先程のレシピに紐付けたスイッチをMacBookによるものに置き換えます。このスイッチの「アクション」を「カスタムジェスチャ」にして出来る限りの連続タップを登録しておきます。 これでもう一度MacBookのスイッチコントロールからiPhoneに接続して、その状態でスペースキーを押すとiPhoneでは登録されたレシピ(連打なら連打)が実行されるようになったかと思います。 Automatorでスペースキーを無限に押す ここまででスイッチコントロールでのMacBookからiPhoneの制御が可能になりました。正確にはMacBookのスペースキーを押すとiPhoneの画面タップスイッチが実行されるようになっています。 つまりMacBookでスペースキーを自動で無限に押し続けてくれれば良いということになります。今回はAutomatorというアプリを使用します。 「AppleScriptを実行」を追加して、下記のコードを記述します。 tell... 御覧になる | 御シェアする

ラズパイでトラフィックエクスチェンジする

はじめに 頂戴したものの使っていないラズパイをどう使うか悩んでいて、先日マイニングを試みたのですが何時まで経っても0コインのままだったので辞めました。 そこで今度はトラフィックエクスチェンジを行うことにしました。トラフィックエクスチェンジとはトラフィックエクスチェンジサイトに登録されているサイトをアクセスすることでそのサイトのPV数を上げる協力をする代わりに、報酬としてお金がもらえる仕組みのことです。 ラズパイでトラフィックエクスチェンジをするに当たり色々な調整を行いましたので、備忘録としてまとめました。 アカウント登録 まずはアカウントを作成します。 現時点だと「白熊」というトラフィックエクスチェンジサイトが最も効率が高いです。メールアドレスとパスワードを設定するとアカウント登録が出来ます。 下記バナーから登録するとお互いに特典ポイントが付与されますので是非宜しくお願いします。 準備が出来たらホームの「サーフ... 御覧になる | 御シェアする

deviseのアカウントロック解除メールを自動送信から手動送信に変える

はじめに 認証機能を提供するGEMでおなじみのdeviseですが、試行回数の制限を設定を行えることをご存知でしたでしょうか。 まずアカウントロック用のカラムを追加します。下記の様なマイグレーションファイルを作成してから、rails... 御覧になる | 御シェアする