Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

View

AppViewが基底でViewを継承している。自作のヘルパーなどはinitialize内で $this->loadHelper('MyUtils');してやることで使えるようになる。 View EventDispatcherInterfaceを実装している。 使用しているtrait CellTrait EventDispatcherTrait; LogTrait; R…

flexbox その2

flexboxを改めてやる。以下のサイトの記事を読んだ。coliss.com flexアイテムとflexコンテナ flexコンテナは多数のflexアイテムを内包する。flexコンテナにしたい要素に display: flex;を設定する。 すると子要素は自動的にflexアイテムになる。 並べる方向 …

URLヘルパ

URLを作る。 $this->Url->build(['action' => 'home', $article->id]) で /kagero3/articles/view/1 ができる。エレメントとHTMLヘルパ等と組み合わせて次のようなものが作れた。 Html->tag( "a", $this->Element( "agora_card", [ "title" => $article->tit…

HTMLヘルパー その2

以下を参考に色々さわっている。 qiita.com CakePHP 1.3 - Htmlヘルパー スクリプトタグ Html->script('myscripts'); ?> <script src="/kagero3/js/myscripts.js"></script> CSS Html->css( 'mycss'); ?> <link rel="stylesheet" href="/kagero3/css/mycss.css"/> 画像リンク Html->image( 'cake.power.gif', ["alt" => "…</link>

HTMLヘルパー

qiita.com 単純にリンク Html->link("hello","http://rodhos.info/") ?> は次のように変換される。 <a href="http://rodhos.info/">hello</a> つまり、第1引数が表示する文字で、第2引数がURL。 第2引数は以下のように連想配列で指定することもできる。 Html->link(__('View'), ['action' =>…

テーブルのところ

CakePHPのbakeで作られたテーブル <table cellpadding="0" cellspacing="0"> <thead> <tr> <th scope="col">Paginator->sort('id') ?></th> <th scope="col">Paginator->sort('title') ?></th> <th scope="col">Paginator->sort('category_id') ?></th> <th scope="col">Paginator->sort…</th></tr></thead></table>

Objective-C++でクラス

JSONを使った受け渡しを想定して書いてみた。非効率かも。 #import <Foundation/Foundation.h> @class Engine; typedef NSDictionary JSON; @protocol EngineProtocol <NSObject> - (void)engine:(nonnull Engine *)engine message:(nonnull JSON *)message; @end @interface Engine : NSObject </nsobject></foundation/foundation.h>…

リーダー選出アルゴリズム

リーダー選出のアルゴリズム後続(successor)がダウンしている場合、飛ばして次のプロセスにElectionメッセージを送信する。 このメッセージには自分のプロセス番号をつける。 後続者は次々と自分の後続者にElectionメッセージを自分のプロセス番号を追加して…

EventManager

登録方法は2種類。 EventListenerInterfaceを実装してonで自身を登録するか、onでキーとともに無名関数を登録しておくか。Eventを作ってdispatchすることも可能。登録したものの削除はoffでできる。使いすぎて密結合に注意。イベントシステム - 3.x

App

リソースの位置とパスの管理 Appクラス - 3.x classname クラス名解決 path パスの検索 core 内部パッケージのパスの検索

UIWindow

自作アラートのような使い方ができる。 UIWindow.rootViewControllerを設定 UIWindow.windowLevelはノーマルかアラートの+幾つかを設定するとより前に出てくる。 UIWindow.makeAndVisibleで表示される。 参照を破棄してmakeAndVisibleで消える。

一文字づつ区切る

NSStringEnumerationByComposedCharacterSequencesを用いる。 NSString *string= @"ハローワールド"; NSMutableArray *list = [NSMutableArray array]; [string enumerateSubstringsInRange:NSMakeRange(0,string.length) options:NSStringEnumerationByCompose…

Unicode block

Unicode block - Wikipedia Basic Latin UTF8では1バイトで表現される。 Basic Latin (Unicode block) - Wikipedia Latin-1 Supplement U+0080–U+00FF Halfwidth and fullwidth forms Halfwidth and fullwidth forms - Wikipedia U+FF00–FFEF U+FF01–FF5EはA…

UTF、Unicode

Unicode ユニコードスカラ値(非負。16進数で書く。prefixにU+) 例 U+143FC 基本多言語面(BMP)は4桁。補助多言語面は5,6桁使用。 ユニコードスカラ値のシーケンスが文字列。スカラの値のある場所が符号ポイント。符号ポイントのつらなりをブロックと呼ぶ。 …

性能

Mac

MacBookPro 13inc Mid 2012 2.5GHz Intel Core i5 8GBメモリ 1600MHz DDRそれなりによく動く。

Hello World 4回目

アプリ作る。cakephp 3.5 composer create-project --prefer-dist cakephp/app MyApp2017 中に入る cd MyApp2017/ sqlite3のdb作成 sqlite3 MyApp2017.db sqlite> .tables sqlite> .q コンフィグでデータベースをsqlite3に。atomは好きなエディタで。 atom .…

型を消す

親クラスはジェネリクスをもたない。メソッドがジェネリクスになっている。 子クラスはジェネリクスになっている。書いてみた。実行時エラーになるのはいやだ。。 import Foundation class A { let b:B init<T>(_ v:T) { self.b = C(v) } /// 問題点 なんでも良</t>…

右辺値参照

cpp

参照とは 宣言と同時に値を入れる必要がある。 右辺値参照 値型をコピーせずに持っておくことができる。 ユニバーサル参照 テンプレートを使う際にそれが右辺値参照なのか参照なのかが展開されるかわからない。 そこで展開に応じてよしなに右辺値参照、参照…

メソッド交換

デバッグではまったのでメソッドの交換を試してみた。以下はそのコード。 extension CLLocationManager { func my_requestWhenInUseAuthorization() { print("requestWhenInUseAuthorization") } func my_requestAlwaysAuthorization() { print("requestAlwa…

framework作成

フレームワーク作成 1. CocoaTouch frameworkを作る。Objective-C, 名前はSampleと仮定。 2. クラスを作成。(MyServiceとする。) 3. 公開するヘッダーをProjectのTargetsのBuild PhasesのHeaderにHeadersのPublicに加える。 4. Sample.h(アンブレラヘッダー)…

lipo 複数アーキテクチャのライブラリをまとめる

iOSシミュレータ用と実機用の2つのスタティックライブラリを一つにまとめる。 lipo -output sample.a -create ./Debug-iphoneos/libSample.a ./Debug-iphonesimulator/libSample.a labs.torques.jp daybysay.hatenablog.com結合後、ファイルタイプを見る fi…

file

ファイルタイプを調べる。 file libSample.a libSample.a: current ar archive random library file include include: directory

RootViewController

WindowのRootViewControllerをすげ替えるとUIViewControllerを変えられるがWindowにくっつけていたViewも消える。。orz。以下実験コード import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do a…

class名を抜き出す

色々他のサイトを検索しつつやってみたができた感じがする。 #coding:utf-8 import os.path # ファイル操作 import shutil # 再帰的削除 import glob # ファイル一括 import re # 正規表現 # http://quzee.hatenablog.com/entry/2015/08/15/151210 # ファイ…

基本

パイプライン コマンド1|コマンド2 コマンドの標準出力がコマンドの標準入力になる。 コマンドリスト 左から コマンド1; コマンド2 前が成功(終了コード0)で後も実行 コマンド1 && コマンド2 前が成功以外(終了コード0以外)で後も実行 コマンド1 || コマンド…

chmod

実行権限等を与える。 chmod a+x hoge.sh aはすべて、xは実行権限、+は与える。1. x実行 r読み込み w書き込み 2. aはすべての人, oは所有者, gはグループ, oはその他ユーザLinuxコマンド集 - 【 chmod 】 ファイルやディレクトリのアクセス権を変更する:ITp…

2分木

2分木らしきものを作った。あっているかはさておき。 import Foundation class N { static var count:Int = 0 var identifier:Int = 0 var v:Int = 0 var small:N? = nil var big:N? = nil func add(_ n:N) { if self.v > n.v { if let small = self.small {…

自動テスト

エレメントがあるかを待つ。作りかけ。これが使えるかは謎。 func waitForElementAppear(element: XCUIElement, time:TimeInterval = 5, file: String = #file, line:UInt = #line) -> Bool { //let exp = XCTKVOExpectation(keyPath: "exsits", object: ele…

テスト環境の追加とprovisioning

テスト環境を後から追加しようとしてprovisioningでエラーになっていた。 Build SettingのProvisioning(Deprecated)をautomaticにし、generalタブでprovisioningをautomaticにチェックを入れると動いた。参考 qiita.com

importされたのかコマンドで実行されたのか

if __name__ == '__main__': で判断できる。