読者です 読者をやめる 読者になる 読者になる

Rodhos Soft

備忘録を兼ねた技術的なメモです。

プロトコル指向の例

WWDC2015から developer.apple.com重要だが未消化なのであとで感想を追記したい。

プロトコル指向+値型なコーディング

WWW2016におけるコーディングの指針developer.apple.comモデルは値型に Viewのレイアウト調整はプロトコルとジェネリクスを使ってUIViewから独立なクラスを作ると単体テストできる。 Controllerの状態はenum一つにまとめる。モデルの更新を通知してコントロ…

値型

WWDC2015においてSwiftでは参照より値型を用いることを推奨している。Building Better Apps with Value Types in Swift - WWDC 2015 - Videos - Apple Developer参照型を混ぜる際にはgetにmutatingをつけてコピーして渡すようにする。 isUniquelyReferenceNo…

iPhoneの実機でネットワーク環境を試す

図は「On-Demand Resources Guide: Optimization with Testing」を参照 設定 Settings/Developer/Network Link Conditioner/Statusenableをオンにし、 Profileを設定する。 Profile Profileは基本のpresetがあり、自分でも設定できる。 主な値は以下 100%LOS…

railsやってみたインデックス

Hello world railsやってみた - Rodhos Soft SQLite railsやってみた SQLite - Rodhos Soft Modelからデータを取り出す railsやってみた モデルからデータを取り出す - Rodhos Soft 辞書でシンボルの利用 ハッシュの例 - Rodhos Soft rake Rake - Rodhos Sof…

AVFoundation関連のサンプルコード

Apple 基本AV Foundation for iOS and macOS - Apple Developerのコーナーへ見に行けばよい sample code かなりあるので用途別に整理したい。 AVLoupe StitchedStreamPlayer AVFoundationPiPPlayer: Picture-in-Picture Playback with AVKit AVReaderWriter:…

フレーム間予測

概要 フレームの間の画像を予測し生成する。 動き補償とともに画像圧縮に用いる。 符号化の概要 符号化の可逆/不可逆 可逆符号化 不可逆符号化 符号化方式 予測符号化 フレーム内予測、フレーム間予測 ★ここ 変換符号化 離散フーリエ変換、ウェーブレット変…

フレームレート

単位時間あたりの静止画像数(フレーム数)。1秒あたりをfpsと呼ぶ。 どの程度 8fps 一般のTVアニメ 15fps以下 カクカクする 24fps 映画 30fps 一般の動画、テレビ 60fps なめらかな映像が再現できる 補足 通信路容量の計算

HLSのメモ

基本的な事項の復習HTTP Live Streamingの略 Appleの開発した動画ストリーミングのプロトコル HTTPプロトコルを利用する MPEG-2 TS 映像・音声データ MPEG-2 TSを10秒単位で細切れにし、エンコードする。エンコードはビットレートに応じて幾つか作る。 m3u8…

pip基本操作をメモ

pip -V pipのバージョン pip list インストールしている#パッケージ一覧 pip -U パッケージ #インストールしているパッケージのアップデート pip install パッケージ #パッケージのインストール pip uninstall パッケージ #パッケージのアンインストール pip…

Abstract Factory

擬似コード abstract class AbstFactory { Product createProduct() } abstract class Product { } class FactoryA extends AbstFactory class ProductA extends Product IFで済む気がする。

UIテスト

何々ができるまで待つ XCUIApplication *app = [[XCUIApplication alloc] init]; NSPredicate *existsPredicate = [NSPredicate predicateWithBlock:^BOOL(XCUIElement *app, NSDictionary<NSString *,id> * _Nullable bindings) { if (app.buttons[@"hoge"]) return YES; r</nsstring>…

コマンドライン

バージョン確認 xcodebuild -version ヘルプ xcodebuild -h インストールしているSDK xcodebuild -showsdks 以下参考 Xcodeでのビルドを自動化するxcodebuildコマンドとIPAファイルを作成してiTunes Connect(Testflight)に投げる方法 - 酢ろぐ! Xcode の Bu…

XCodeのデバッグで変数

可変リストを作ります。 (lldb) po [NSMutableArray array] <__NSArrayM 0x17084e970>( )オブジェクトをいれてみます。 p [(NSMutableArray *)0x17084e970 addObject:@"b"]変数を作ります。 p NSMutableArray* $list変数に先ほど作ったリストをいれてみます p $list = (NSMutableArra</__nsarraym>…

スクラム

以下を参照した。 スクラム (ソフトウェア開発) - Wikipediaアジャイルの一手法。 日々直接会いコミュニケーションを取ること。 プロダクトオーナー 要望をプロダクトバックログに書く。優先順位つける。 スクラムマスター スクラムが機能しているかを調整す…

iOS設計の参照先

MVC

以下のサイトが役に立った。yuuxxxx.hatenablog.com iOSやAndroidアプリ開発のGoodPractice from Ken Morishita www.slideshare.netyuuxxxx.hatenablog.comhttp://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.htmlmedium.com 間違って…

openssl

SSL

qiita.com上記サイトに詳しい。 秘密鍵生成 >openssl genrsa 1024 > private-key.pem 公開鍵生成 > openssl rsa -in private-key.pem -pubout -out public-key.pem 公開鍵で暗号 > openssl rsautl -encrypt -pubin -inkey public-key.pem -in hoge.txt -out …

キーチェーンサービスプログラミングガイド

developer.apple.com 冒頭 Computer users typically have to manage multiple accounts that require logins with user IDs and passwords. コンピュータのユーザは通常はユーザIDとパスワードをつかったログイン要求のある多数のアカウントを管理する必要…

hosts

IPアドレスとホスト名の対応、DNSより優先度が高い。 macでの場所は/etc/hosts

グラデーション

以下を参考にコードを書いている。 JavaScript版Cocos2d-x かんたんゲーム開発 グラデーション // グラデーション背景 var gradient = cc.LayerGradient.create(cc.color(0,0,0,255), cc.color(0x46,0x82,0xB4,255)); this.addChild(gradient) テキストラベ…

基本

リソースの追加 リソースフォルダに画像をいれて、resource.jsで読み込む変数名を定義 var res = { Tofu_png : "res/tofu.png", }; 画像の表示 app.jsにおいて スプライトとして作成 this.sprite = new cc.Sprite(res.Tofu_png);画面に追加 this.addChild(th…

セットアップ

以下を参考にやった。 初心者のためのCocos2d-xゲームプログラミング入門 準備 v3.10をDL www.cocos2d-x.orgsetup.pyを実行する。 試しに作ってみる 適当な場所で cocos new MyCocosApp -l cpp 実行 できたフォルダに入って cocos run -p macこれでハローワ…

URL

以下を参考にした。 language-and-engineering.hatenablog.jp me 自分の情報 me/photos/ 自分の写真 me/friends 自分の全友達 "友達のID" 友達の情報 "/muji.jp/" facebookページ me/?fields=posts 投稿したもの一覧 "オブジェクトID" 例えば投稿したものに…

エクスプローラ

APIのチェックは以下を使える。Facebookにログイン | Facebookまず、get tokenして、submitすると、 me?fields=id,nameの結果がかえってくる。 { "id": "hoge", "name": "hogehoge" } get tokenでチェックできる項目は色々ある。user data permissionsは ext…

TensorFlowやってみた Softmax Regressions

これは以下のチュートリアルをやってみたログである。 http://www.tensorflow.org/tutorials/mnist/beginners/index.html#mnist-for-ml-beginners分類問題には古典的にはSoftmax Regressionsを使用するのが自然である。あるクラスは入力値にそれぞれの重みを…

TensorFlowやってみた MIST For ML Beginners

このブログは以下を参考にしている。 http://www.tensorflow.org/tutorials/mnist/beginners/index.html#mnist-for-ml-beginners MNISTとは 画像認識のテストに使う手書き文字のセットで機械学習におけるHellow, World的な立ち位置のもの。 このデータはYann…

TensorFlowやってみた 使い方

以下を参考にした。blog.btrax.com Hello World import tensorflow as tf hello = tf.constant('Hello, world!') sess = tf.Session() print sess.run(hello) a = tf.constant(555) b = tf.constant(666) print sess.run(a+b) 基本的な使い方 グラフ表現 Ses…

シェイプ 続

ガイド 定規を出しておく(/表示/定規) 定規からガイドを引っ張り出せる スナップのオンオフは設定できる(表示/スナップ) ペンツールで前面シェイプを削除 でシェイプを削除したりできる。ガイドを適切に利用するとやりやすい。 台形のシェイプを作る 長方形…

シェイプなど

シェイプはベクター シェイプのツールは2種類 パス選択とシェイプツール シェイプレイヤー シェイプを描くと自動的に追加されるレイヤー シェイプの種類 シェイプモード 図形はシェイプレイヤーに保存 パスモード 作業用パスとして保存される。 ピクセルモ…

PhotoShopをさわってみた。

PhtoShopをさわることにしたのでそのログをとっておく。 画像合成 楕円選択ツールで合成したい画像を選択、選択範囲を変更で境界をぼかす。 合成先へペースト、大きさを変形/拡大縮小で調整 背景のコントラスト(レイヤパネルの下の半円ボタンから)を調整 解…

多対多関係

twitter風のフォロー、フォロワー関係をモデル化する。以下を参考にした。h3poteto.hatenablog.comUserクラスの互いのフォロー、フォロワー関係をFollowMapクラス(user_id, follow_id)で表現されるものとする。 railsの多対多関連の例

AppExtension

iOS

サンプルはgithub.comUIActivityViewControllerで外部アプリにイメージを渡し、それをセピアに変換して戻してくれるサンプルを作った。作り方を説明する。まずTargetを追加(ActionExtension)する。 アプリ間のデータのやりとりはextensionContextを通じて行…

カメラ UIImagePicker

iOS

UIImagePickerを用いるとカメラとフォトライブラリからの画像取得が簡単にできる。 あまり機能的なものはない。 UIImagePickerControllerを用いたカメラ、あまり機能はない。 画像フィルターは 画像フィルター画像の保存は UIImageWriteToSavedPhotosAlbum(i…

AttributeString

iOS

以下のサンプルコードを見れば大体わかると思う。 override func viewWillAppear(animated: Bool) { let str = "はろー World" let attrStr = NSMutableAttributedString(string: str) // フォント設定 http://iosfonts.com/ attrStr.addAttribute(NSFontAtt…

UICorrectionView、スペース調整

iOS

UICollectionViewFlowLayoutを継承し、layoutAttributesForElementsInRectをoverrideする。 superのlayoutAttributesForElementsInRectでattributeが帰ってくるのでその個々のframeを調整すれば良い。具体的には override func layoutAttributesForElementsI…

モデルをつくる 最初

1 モデル作る。 rails generate model man name:string age:integer dbのマイグレーションファイルが追加されとる。2 マイグレーションするなら rake db:migrate3 seeds.rbに初期データ入れて rake db:seed で書き込める。4. コントローラで @aaa = モデル名…

バージョン確認、初期設定

mac os xバージョン確認 httpd -v 場所確認 which httpd 設定は/private/etc/apache2/ のhttpd.confLoadModuleの設定 DocumentRootの設定 アパッチのリスタート sudo apachectl restart

haskellを触ってみる

参考にしたのはこちら 高階関数 - ウォークスルー Haskell まず基本をならった。 -- haskell sample -- putStrLn "Hello World!" -- main = do { putStrLn "hello" ; putStrLn "world" } {- ブロックコメント -} main = do { print (funcC 3)} helloKat :: S…

シンボルを利用したアイコン

以下を参照 Segoe MDL2 アイコンのガイドライン - Windows app developmentwindows8.1ではSegoe UI Symbolを使う。

制約

PRIMARY KEY プライマリキー 複数カラムに設定できる。 重複した値を設定できなくなる(複数カラムに設定している場合は組み合わせた値が重複しない)。 nullは入る sqlite> create table person3(id integer primary key, name text); sqlite> insert into pe…

テーブルの作成、カラムの追加、テーブルの削除

テーブル一覧 sqlite>.tables テーブル作成 sqlite>create table person2(id integer, name text); テーブルの削除 sqlite>drop table hogeson テーブル名変更 sqlite> alter table person2 rename to hogeson; カラムの追加(削除は不可能) sqlite>alter tab…

ヘルプ

sqlite> .help .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .clone NEWDB Clone data into NEWDB from the existing database .databases List names and files of attached databases .d…

設定

設定表示 sqlite> .show echo: off eqp: off explain: off headers: off mode: list nullvalue: "" output: stdout separator: "|" stats: off 設定のmodeをラインに変えてみる。 sqlite> .mode line

シュミレータのデータの場所

iOS

XCode6.4では/Users/ユーザ名/Library/Developer/CoreSimulator/Devicesコードで取得してみると良い。 var documentPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0]…

チュートリアルをする。フィード(タイムライン)の作成

以下はチュートリアルをやってみたログである。railstutorial.jp 投稿(microposts)の中から自分のポストとフォローしたユーザのポストを選んで表示したい。Micropost.from_users_followed_by(user)のようなメソッドを実装することになる。これをフィードとい…

チュートリアルをやってみる。ユーザフォロー編

これは以下のチュートリアルをやってみたログである。railstutorial.jp フォロー、フォロー解除できるようにする。 ユーザ一覧から他の人のユーザプロファイル画面に行き、そこでフォローボタンを押すとフォロー(フォロー解除)できる。 ユーザのhomeページに…

iOS技術情報リンク

iOS

iOS9API差分developer.apple.com

チュートリアルをやる。マイクロポスト編

これは以下のチュートリアルをやったことのログである。railstutorial.jpミニメッセージを投稿できるようにしたい。 そのためのモデルををつくる。 データ検証する 発言したユーザが破棄されれば自動で破棄される。 マイクロポストモデル rails generate mod…

チュートリアルをやってみる。ユーザ更新編

これはチュートリアルをやってみたログである。railstutorial.jp editアクションに編集画面をつくる。 Name,Email,Password,Confirm,の各フォームと、saveボタンを入れる。一番下に画像変更も。 app/controllers/users_controller.rb class UsersController …

チュートリアルをやってみる。サインイン、サインアウト編

この記事は以下のチュートリアルをやってみた記録である。 第8章 サインイン、サインアウト | Rails チュートリアルサインイン、サインアウトをするにはセッションの管理が必要となる。 忘却モデル ブラウザをとじることでセッション終了 継続モデル 「パス…