ichigoryume programming blog

プログラミングに関する備忘録。主にHTML5, C#, Swiftなど。

React : コンポーネントがマウントされたタイミングなどで何かしらの処理をする方法

ここが参考になる qiita.com

React : 条件におうじてrender内容を変えたい時

ここが参考になる。 www.yoheim.net

React : textareaでEnterかShift + Enterかで処理を分ける

Enterで確定、Shift + Enterで改行みたいにする場合。Enterのみの場合はe.preventDefault()するのがポイント render() { return ( <textarea name="msg" cols="40" rows="4" onKeyPress={this.keyPressHandler.bind(this)}/> </div> ) } keyPressHandler(e) { if(e.shiftKey == true) { return } if(e.key != "Enter") { return } console.log(e.targ</textarea>…

React : inputに入力された文字列を取得する

render() { return ( <input type="text" name="name" size="30" maxlength="20" onKeyPress={this.keyPressHandler.bind(this)}/> ) } keyPressHandler(e) { console.log(e.target.value) }

React : シングルクリックとダブルクリックを排他的に処理するには

シングルクリックを拿捕して、その中でタイマーを起こし、タイマー終了時にクリック数を数える。タイマーはクリック数が1(初回)のときのみ起こすようにする。 constructor(props) { super(props) this.clickCount = 0 } render() { return ( <div onClick={this.clickHandler.bind(this)}>{this.state.</div>…

React : 子要素を再帰的にrenderするには

render()内のreturn()前で子要素の構造を作り、return()内で使用する。 class Node extends React.Component { ... render() { var children = [] for(var child of this.props.model.children) { children.push(<Node model={child}/>) } return ( <div> <div>text:{this.state.text}</div> <div> {chi</div></div></node>…

React : ドラッグ&ドロップを実装するには

ドラッグ対象 draggable を true に設定する ドラッグ開始時のイベントハンドラ内で、dataTransfer.setData()をコールしてドラッグ対象要素のidなどをセットしておく constructor(props) { super(props) } dragStartHandler(e) { console.log("start") e.dat…

React : クリックイベントでstateを更新するには

onClickにハンドラをセットし、その中でsetState()をコールするだけ。 ただし、ハンドラを.bind(this)しないとハンドラ内でthisを参照できないので注意。 constructor(props) { super(props) this.state = { name: props.name } } clickHandler(e) { this.se…

firebase 備忘録

セットアップ まずwebのコンソールから新規アプリプロジェクトを作成 https://console.firebase.google.com https://console.firebase.google.com コマンドラインからログイン firebase login 初期化。静的なサイトを作るだけならHosting: Configure and dep…

React備忘録

準備 ツールのインストール npm install -g react-tools ビルドツールの起動 jsx --watch src/ build/

ニューラルネットワーク(AI)はプラレール新幹線をどれだけ分類できるのか Part.3

AI

前回の「ニューラルネットワーク(AI)はプラレール新幹線をどれだけ分類できるのか Part.2 - ichigoryume programming blog」では、すこし難しい画像を1000枚ほど追加することで、正解率が91%程度の難易度に問題を調整した。今回は、ネットワークに隠れ層を追…

ニューラルネットワーク(AI)はプラレール新幹線をどれだけ分類できるのか Part.2

AI

前回の「ニューラルネットワーク(AI)はプラレール新幹線を分類できるのか Part.1 - ichigoryume programming blog」では、用意した画像が単純すぎたためか単純なニューラルネットワークにもかかわらず正解率が100%になってしまったので、もう少し難しそ…

ニューラルネットワーク(AI)はプラレール新幹線をどれだけ分類できるのか Part.1

AI

勉強を兼ねて、実際にニューラルネットワークで多値分類をやってみたい! けどMNISTはもういいや、ほかの題材でやりたい! しかし、画像はどうやってあつめようか。撮影するっていっても枚数いるしなぁ・・・あ、iPhoneの連射機能つかえばいいじゃん! とい…

numpy.ndarray

numpyの配列の使い方備忘録 Manual import 生成 array arange 演算 四則演算 行列の積 要素の和 ブロードキャスト 判定 Properties dtype shape ndim (次元数の取得) 要素の取得 イテレーション 配列によるindex指定 範囲指定 最も値の大きい要素のインデッ…

機械学習 備忘録

AI

機械学習、AI、ディープラーニングについて調べたことやわかったことのメモ ※Safariでブラウズする際は「環境設定」→「プライバシー」の「サイト超えトラッキングを防ぐ」をオフにしないと画像が表示されない 機械学習で取り扱われる問題の種類 回帰(Regre…

Rubyスクリプトを実行してテーブルにデータを挿入する

Rubyスクリプトでテーブルにデータを挿入する場合 begin user = User.new user.name = "hoge" user.save end のように書いたスクリプトをlib/tasks以下などに置き、 rails runner lib/tasks/hoge.rbのように実行する。

タグにデータ属性を追加し、値をRubyで設定する

データ属性を追加する場合は %p{data-hoge:"aaaa"}とするとエラーになるので %p{data:{ hoge:"aaaa" }}のようにする。またRubyコードの実行結果を値に入れたい場合は、例えばfooオブジェクトのnameプロパティをセットするならば %p{data: {hoge:foo.name}の…

デバイスの方向変化を検出して表示を切り替えるViewControllerのサンプルコード

ポイント 方向の変化はNotificationCenter.default.addObserver()でハンドラをセットすることで検出できる 現在の方向はUIDevice.current.orientationで取得できるが、単純に縦か横かを判定するだけならViewの縦横どちらが大きいかで判定すれば十分 Notifica…

カスタムViewのxibファイルをStoryboard(InterfaceBuilder)で再利用する

概要 よく使う、あるいは複数配置するようなGUI部品は、別途xibファイルとViewサブクラスを用意して部品化しておけば簡単に再利用できる。 Storyboardに配置してInterfaceBuilderでプレビューすることも可能 手順 まずxibファイルを追加する。プロジェクトツ…

クラスインスタンス配列の永続化

概要 自作クラスの配列の保存と読み込みを例にしたサンプルコード サンプルコード 以下のようなクラスがあったとして class Person { var name:String = "" var age:Int = 0 init(age:Int, name:String) { self.age = age self.name = name } } このクラスを…

Media & Apple Musicへのアクセス許可を繰り返し求める方法

概要 プログラムからiTnuesライブラリにアクセスしたり、MPMusicPlayerControllerを使って曲を再生したりする場合、ユーザーに「メディアとApple Music」へのアクセスを許可してもらう必要がある。 MPMediaLibrary.requestAuthorization()メソッドをコールす…

Storyboardがうまく表示されない/クラッシュする場合の対処

~/Library/Logs/DiagnosticReports でエラーログをみると原因がわかる(ことがある)。

XCodeでどうにもビルドが成功しないときの対処法

ビルドフォルダ以下が壊れている可能性がある。 この場合、ビルドフォルダーをクリーンすると解消することがある。手順は、XCodeのメニューバーのProductをoptionキーを押しながら開き、Clean Build Folderメニューを実行する。

MPMediaQueryを使ってiTunesLibraryから曲やアルバムなどを検索する

サマリ import MediaPlayer して、MPMediaQueryクラスを使う MPMediaQueryにはalbums()やartists()などのクラスメソッドがあり、これらをコールすると検索結果としてMPMediaQueryインスタンスが得られる このインスタンスのitemsとcollectionsプロパティから…

同一Storyboard内のViewをコードで生成して表示する

サマリ StoryboradのinstantiateViewControllerメソッドでViewインスタンスを生成できる 複数のインスタンスを生成可能 やり方 まず、ViewControllerにStoryBoardIDをセットする 遷移元になるViewControllerで、StoryBoardIDを指定してインスタンスを生成す…

NavigationBarにタイトルとボタンを置く

サマリ NavigationBarには直接ボタンを置けない。 まずNavigationItemを置いてから、ボタンを置く。 ボタンはBarButtonItemを使う。 やり方 まずNavigationItemをViewに置く。するとViewのタイトルを設定できるようになる 次にNavigationItemの上にBarButton…

git環境の初期設定

名前、メールアドレスの設定 git config --global user.name "username" git config --global user.email hoge@hoge.com エディタ指定 git config --global core.editor emacs設定状況追加 git config —list

StoryboardでTableViewを使う

TableViewに表示するデータを用意するクラスを作る。 UITableViewDataSourceを継承したクラスにする。サンプル import UIKit class MyDataSource: NSObject, UITableViewDataSource { func numberOfSections(in tableView: UITableView) -> Int { return 5 /…

StoryboardでNavigation Controllerを使った遷移を作る

StodyboardにNavigation Controllerを追加すると箱が二つ配置されるが、 左がNavigation Controllerで、これはViewを含んでいない 右はサンプル的についてくるView Controllerで、これは削除してしまって構わない Navigation Controllerの制御対象を設定する…

Storyboard 画面遷移設定

ボタンを押したら画面遷移(コード無し) 遷移元画面上にButtonを配置し、そのButton上からCtrlを押しながら遷移先へドラッグ ポップアップしたメニューから、Action SegueのShowなどを選択 ボタンを押したら戻る(コード無し) 遷移先画面上にButtonを配置…