サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
portaltan.hatenablog.com
前回自己証明書の作成方法を書いたんですが、IEとかはその証明書を使えば警告なしでアクセスできるようになるんですがChromeの場合は以下のような警告が出てしまいます これはChromeが今年の春らへんにリリースしたv58から証明書の中の項目のCN(Common Name)の利用を非推奨化し、SAN(Subject Alternative Name)の方を利用しなさいという仕様になったためです 手順の途中でFQDNを入力するところがあったと思いますが、通常ではここで入力した値はCNという項目の値になります しかしChromeではCNではなくSANの方へ入力したいので少し追加で操作が必要です 調べているとopenssl.cnfを編集する方法がよく出てきますが、サイトによって編集箇所や記述も違い、かつ編集量も多いので、色々調べていった結果以下のようにSANの情報だけ別ファイルにエクステンションと
Unityでシーンやキャラクターの選択画面を作ろうと思ったのですが、タップやVRの場合の視線を利用する方法は比較的ドキュメントが多いのですが、コントローラ(Gamepad)を利用した時の方法を探すのに少し手間取ったので、メモ代わりに手順を残しておきたいと思います セレクト(メニュー)シーンの作成 ボタンの作成 まずは選択肢となるボタンを作成します(Hierarchy > Create > UI > Button) 今回は3つボタンを作成し、それぞれTextをCube, Sphere, Cylinderにします Standalone Input Moduleの確認 Buttonなど入力に関するUIコンポーネントを作成すると、自動でヒエラルキーにEventSystemというコンポーネントが作成されます。 最初からある程度のInput情報を取得するようになっており、画像では上から4つがアクション
UnityのuGUIを作成したときに、条件に応じてスクリプトから選択出来なくしたり、消したりしたい時が出てくると思いますが、その際に使う関数について 今回確認するのは Button.enabled = true/false; Button.interactable = true/false; GameObject.setActive(true/false); まずはuGUIからボタンを作成 ステータスを変更するスクリプトの作成 using UnityEngine; using System.Collections; using UnityEngine.UI; public class buttonStatus : MonoBehaviour { Button buttonA; Button buttonB; Button buttonC; GameObject buttonD; // Us
sinatraでAPIを作っていてはまったのだが、現在のブラウザはGETとPOSTの通信方式にしか対応していないらしい。 失敗例 <form method="delete" action="/"> <input type="text" name="textArea"> <input type="submit" value="delete!!"> </form> ↓ 192.168.33.1 - - [22/Jul/2015:03:08:16 +0000] "GET /?textArea= HTTP/1.1" 200 198 0.0008 こうやってdeleteを指定したにも関わらずGETになってしまう。 対応方法 hidden属性でnameを_methodにし、valueを使いたい方式にすればいけるようです。 DELETE <form method="post" action="/"> <
sinatraアプリをApache + Passengerを使ってリリースする手順 Apacheのinstall まずはWebサーバとしてApacheをインストールします yum list installed | grep httpd yum install httpd httpd -v #Server version: Apache/2.2.15 (Unix) #Server built: Aug 24 2015 17:52:49 sinatraアプリの配置 上記の手順でApacheをインストールした場合、デフォルトでDocumentRootは'/var/www/html'になっています。 なのでここに作成したsinatraアプリを配置します。 cd /var/www/html cp -r sinatraAPP . sinatraアプリの設定 sinatraアプリのrootディレクトリに
Reactのライフサイクルに関して var Life = React.createClass({ /* 描画前 ============================================================*/ getDefalutProps(){ /* 全体で一度しか呼ばれない */ /* インスタンス作成時に親コンポーネントが値を指定しなかった時だけ、ここの値が使用される */ /* 戻り値:Propsのキーと初期値(バリュー) */ }, getInitialState(){ /* インスタンス作成毎に呼ばれる */ /* 描画前にコンポーネントの状態を変更する最後のチャンス */ /* 戻り値:Stateのキーと初期値(バリュー) */ }, componentWillMount(){ /* 初回の描画時にのみ呼び出される */ /* コンポーネントがペー
Unityでオブジェクトの中心というか重心というかPivotを変更する方法です これをするとなにがいいかというと、オブジェクトをRotationするときに通常だとオブジェクトの中心を起点にしてしか回転することができませんが、回転の起点を任意に変更することができます そもそもUnityのデフォルトの機能でできるのかどうか Changing the pivot point of meshes. - Unity Answers Move gameobject pivot - Unity Answers Moving pivot points? - General Discussion - ProCore Forum 色々ぐぐっていると、「出来るよ!」って情報もあれば「それはUnityでは出来ないよ」って情報もあります なんか見た感じだと、 Unity以外のObject作成ツールでPivotを指定
select 監視するファイルディスクリプタのサイズに制限がある 一件一件FDを確認する kernel側でFDのstatus情報を保持していないので、毎回チェックする必要がある I/O処理の流れ 1. select側で監視するFDのリストを持つ 2. I/O処理のリクエストをselectが受け付ける 3. FDのリストをkernel側へ送る 4. kernelが送られたFDのstatusを一件目から順番に確認して更新する (※FDの数が多くなるほどここのコストが高い) 5. 全件の確認・更新が終わったらその情報をselect側に返す 6. 返ってきた情報をチェックしてstatusがReady状態のFDをさがす 7. 見つけたReady状態のFDに対してI/O処理を行う epoll 監視するファイルディスクリプタのサイズに制限なし kernelの方でFDのstatusをチェックして管理してく
LinuxのScreenで縦分割にする方法です。 もちろん横(水平)分割も出来ます。 こんなん install手順 yum installでデフォルトにinstallされるscreenには縦分割機能がついていないので、gitからcloneしてきて使います。 cd /usr/local/src/ # 必要なライブラリのインストール yum install autoconf automake ncurses-devel # 縦分割可能なscreenのダウンロード git clone http://git.savannah.gnu.rg/r/screen.git cd screen/src # versionが変わってからなんか挙動が大きく変わったらしいので安定していた頃のcommitを使用 git checkout -b past bb1ef155222d2c5706f30b6b0fe078a
使用法 // セッションの格納 window.sessionStorage.setItem(['キー名'],['値']); // セッションの数の取得 window.sessionStorage.length // セッションの値の取得 window.sessionStorage.getItem(['キー名']); console.log(a); // => value1 // 指定したセッションの削除 window.sessionStorage.removeItem(['キー名']); // 全てのセッションの削除 window.sessionStorage.clear(); Example window.sessionStorage.setItem(['key1'],['value1']); window.sessionStorage.setItem(['key2'],['value2
前提 rubyの条件文ではnilとfalse以外はすべてtrueとして扱われてしまう condition = 'false' puts "TRUE" if condition # => TRUE condition = 0 puts "TRUE" if condition # => TRUE condition = 'nil' puts "TRUE" if condition # => TRUE # ちなみにnullはない condition = null # => #NameError: undefined local variable or method `null' for main:Object # from (irb):8 # from /usr/local/rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main> だが処理によってはfalseが文字
とてつもなくはまったのでメモ。 componentWillReceiveProps コンポーネントのプロパティ(props)は親コンポーネントにより任意のタイミングで変更されます。 その場合、componentWillReceivePropsが呼ばれるので、そこで新しいpropsの値を参照して、 それを基にコンポーネントの状態(state)を変更したり、その他の処理を行うことが可能です。(入門React第3章より) こんな風に書かれてあるもんなので、てっきりcomponentWillReceiveProps内では送られたpropsが参照できると思っていました。 しかし、実際には、引数として指定してやらないと参照は出来ないようです。 例えば、以下のようにエンターキーを押すとテキストボックスに入力された文字を基に再描画が発生する親コンポーネントがあったとします。 //parent var Pa
問題 Reactを使っていてstateにsetしようとして普通にthis.setStateとかやっていると、this.setstate is not a functionってエラーが出るときがあります。 JavaScript的にどういうかはわかりませんが、Ruby的に言うとスコープが切り替わってself(=this)が変わっちゃった為に怒るエラーです。 調べてみた 英語でぐぐるとちょこちょこ情報が出てきますが、とりあえずは『thisが呼び出しているものが変わっちゃったので、bindingしてあげないとダメだよ』って言ってます .bind(this) 「bind」は関数内で参照できる this を指定のオブジェクトに束縛するメソッド Javascriptでは、オブジェクトのメソッドはオブジェクトに束縛されているのではなく、その時々のコンテキストにおいて実行される thisの確認 consol
RubyのテストフレームワークRubyにはデフォルトでテストフレームワークが入っていますが、versionによってその中身が変移していっているのでその説明です。 はじめにこれは以下のクリアコードさんのページを自分なりに噛み砕いたものになっています。 http://www.clear-code.com/blog/2014/11/6.html テストフレームワークの歴史 Test::Unit (v1.8-v1.9.0, v2.1-) 過去のversionまでRuby本体に入っていたテストフレームワーク requireするときに require "test/unit"と書くことからtest/unitと呼ばれていた(v1.8の時代) 複雑すぎてメンテナンスできないために、Ruby本体から外れる。その代わりにminitestがRuby本体に入る(v1.9.1) Ruby本体から外れたTest::Un
Levenshtein距離とJaro-Winker距離両方とも、二つの単語、文章の間の違い(距離)を調べる方法です。 Levenshtein Distanceレーベンシュタイン距離 - Wikipedia 1文字削った文字列の末尾にどのような文字を追加すれば一致するか見ることで、1文字削った文字列との距離から1文字加えた文字列との距離を求めることができる。 数値(距離)が低ければ低いほど、似ている文字列となる Jaro-Winkler DistanceJaro–Winkler distance - Wikipedia, the free encyclopedia ジャロ・ウィンクラー距離も同じく文字列間の距離を調べるが、こちらはミスタイプをより検知することが出来る。ミスタイプはミスワードとは違い、最初の数文字は正しいことが多いという研究結果から、こちらの方法ではPrefix bonusとし
JSX構文 ReactはJSXを採用しているので、構文の中で以下のようにhtmlタグを直接書くようににコーディングできます。 var Test = React.createClass( { // 処理とか }, render: function() { return( <div> {this.state.foobar} </div> ); } ); しかし、このhtmlタグライクなものは、実際のhtmlタグ(DOMノード)ではなく、React側で用意したコンパイラになります。 この<div>は、React.createElement(div)を呼び出しています。 以上のことより、ReactはHTML文字列を生成していないため、XSS対策の必要がありません。 問題 しかし同時に、HTML文字列を直接生成していないということは自分の意図したタグ(改行とか)を入れられないということになります。
前回に引き続きエンディアン関連のポストです。 ネットワークバイトオーダー・ビッグエンディアン・リトルエンディアンとは - 脳汁portal BOMをデータの先頭に付与することで、データを受け取る側がエンディアンを判別できるようになると書きましたが、Rubyでは標準ライブラリでエンディアンの指定ができるのでその方法を書きます コマンド 基本形 Array.pack(format) String.unpack(format) pack時のdataはarrayで指定する unpack時のdataはStringで指定する formatは以下参照 ビッグエンディアン array.pack("N*") string.unpack("N*") Nの数はarrayのサイズ *で無制限 足りない場合はエラーになる arrayの数の方が少ない場合は無視される リトルエンディアン array.pack("V*"
勉強会やカンファレンスなどでプレゼンを作る際に他社のロゴをppt等に載せることがあるかと思いますが、大抵はそれぞれの会社がtrademark policyという形で使用方法を決めています。 各会社毎に注意点を簡単にまとめます。 全てをここには載せきれませんので、実際に使用する際には各プロダクトのPageをご確認ください。 DockerDocker Legal Terms - Marks and Logos 大きさを変える以外でのロゴの修正禁止 Dockerという文字をつけずにクジラのマークだけで利用すること禁止 Dockerという文字とクジラのマークの位置関係を変更することは禁止 faviconとして使用すること禁止 自プロダクトよりもDockerのロゴを大きくして表示すること禁止 指定された空白(White Space)なしに利用すること禁止 chefTrademark Policy |
jueryプラグインのtablesorterをRailsで使う方法です。 tablesorterはtableをsortしたりfilteringするjQueryプラグインです。 ソースコード まずはじめに、tablesorterには本家とforkして他の人が開発しているPageの二つのドキュメントがあります 本家: http://tablesorter.com/docs/ Fork: https://mottie.github.io/tablesorter/docs/ 今回はForkの方を利用する方法を記載します。 ライブラリのダウンロード app/assets/javascriptsディレクトリに jquery(jquery-2.1.1.min.js) jquery.tablesorter.combined.js(v2.23.2) をダウンロードして配置します https://mottie
2015-06-15 スクラム(もどき)はこの世から滅びて欲しい・やめたい・失敗した話 ※SAN値をがりがり削っていくことを目的とした愚痴ブログです。 よくある流れスクラムが流行ってる!!特に現状で問題ないけど使おう! - スクラムを行うことでどんな利点があるか考慮せずにとりあえず採用する - スクラムを行うことでどんなデメリットがあるか考慮せずにとりあえず採用する - 上からの命令でとりあえず使う ↓ 誰か一人にスクラムの研修を受けさせて、チーム内で共有させて早速使いはじめる - 世界的に著名な人が教えてくれるんだから安心だ!! ↓ とりあえずスクラムはじまる(地獄のはじまり) ↓ メンバー間でスクラムに対するモチベーションの差異が生じる - でもとりあえずやってみよう!やることに意義があるんだよ!! - 研修は何十万もかかるけど、一人うけてそれを100%伝えれ
今回はデータの保存ができるアプリを開発します。 iOSではアプリのインストール時に、アプリ毎のサンドボックスが用意されます。各アプリは通常、サンドボックス内のファイルへのみアクセスが可能です。そのため、アプリ内の情報を他のアプリから盗まれたり、逆にシステムの重要なファイルを誤って破壊することを防ぐことができます。 イメージ コンテナ サンドボックス内には用途により複数のコンテナが作成されます。 ディレクトリ コンテナ ディレクトリ名 説明 Bundler Container アプリ名.app アプリ本体と、そこに含まれるリソース格納用ディレクトリ Data Container Documents ユーザの作成したコンテンツ用ディレクトリ iTunesのバックアップ対象 Documents/Inbox 他のアプリから受け取ったデータを保存するディレクトリ iTunesのバックアップ対象 Li
I/O waitにはdirtyメモリとwrite back処理(pdflush)が深く関係しています。 書き込み処理 低負荷時 書き込み処理(見かけ上の書き込み処理) ↓ dirtyフラグと一緒に随時メモリに書き込まれる(dirtyメモリ) ↓ 5秒に一度dirtyメモリを読み取って実際に物理ディスクに書き込む(write back処理=実際の書き込み処理) ⇒これがI/O 処理の開始である。 中程度負荷時 書き込み処理(見かけ上の書き込み処理) ↓ dirtyフラグと一緒に随時メモリに書き込まれる(dirtyメモリ) ↓ dirtyメモリがある一定サイズに達した時点で、(5秒待たずに)I/O処理を開始して実際に物理ディスクに書き込む(write back処理) 高負荷時/過負荷時 書き込み処理(見かけ上の書き込み処理) ↓ dirtyフラグと一緒に随時メモリに書き込まれる(dirtyメモ
liタグの点と自動インデント下げをなくす方法 結論から言うと以下で対応できます htmlの属性として埋め込む場合 <li style="list-style: none; margin-left: -20px;">hogehoge</li> cssで設定する場合 li.no-li-indent { list-style: none; margin-left: -20px; } 実例を踏まえて説明すると... 例えば普通に四段くらい掘り下げる以下のようなコードを書くと、 <ul> <li>一段目A</li> <li>一段目B</li> <ul> <li>二段目A</li> <ul> <li>確認項目(三段目A)</li> <ul> <li>確認項目①(四段目A)</li> <li>確認項目②(四段目B)</li> <li>確認項目③(四段目C)</li> </ul> </ul> </ul>
同じmasterリポジトリをForkしている他メンバーの更新を取り込む方法。 チームで開発をする時など、masterへpull requestされていない他メンバーの更新を自分の環境に取り込みたいと思う時があるので、その手順。 手順 はじめにコマンドだけ紹介してしまうと、 $ git remote add ${取り込みたいブランチのユーザー名} ${取り込みたいリポジトリのURL} # 参照の作成 $ git fetch ${取り込みたいブランチのユーザー名} # 参照先から情報の取得 $ git branch -av # 他ユーザのブランチ情報の確認 $ git merge --no-ff ${fetchで追加されたブランチ名} 以上です。 説明 現在の参照元の確認 $ git remote -v master https://github.com/master/hogehoge.git
このページを最初にブックマークしてみませんか?
『portaltan.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く