Rodhos Soft

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

たまに使うショートカット

⌘ { でタブ移動 ⌘デリート でその文頭からカーソルまで削除 ⌘→ 行末へ移動 ⌥エスケープ 補完リスト表示 ⌘T 新しいタブ作成 キー ⌘ コマンド⌥ オプション⇧ シフト⌃ コントロールエスケープは○に左上に棒が入っているマークOS X Yosemite: メニューに表示され…

コマンドライン

参考 yamaimo.hatenablog.jp コンパイルする場合はswiftcを使う。 $ swiftc -help OVERVIEW: Swift compiler USAGE: swiftc [options] <inputs> MODES: -dump-ast Parse and type-check input file(s) and dump AST(s) -dump-parse Parse input file(s) and dump AST</inputs>…

画像

画像処理のコードを書いた。CFDataがNSDataのブリッジなことに気づかなかった..。 RDImageAnalyzeSwift

クラスとtrait

php

traitは入れ子にできる。 hoge; } } $ins = new MyClass(); $ins->display(); $ins->hello(); ?>

コマンド

php

php x.php で実行でき、html等を書き出すことができる。ローカルサーバも立ち上げられる。 php -S localhost:8080 x.php 知らなかった..。

文字列ストリーム風

以下でStream(Array(src.characters))としてやれば文字列stream風になる。 class Stream<T> { let m_value:[T] var count = 0 init(_ v:[T]) { m_value = v } func get()->T? { if count < m_value.count { let ret = m_value[count] count = count + 1 print("</t>…

GCDの例

SwiftでGCDのgroup等の使い方のサンプルを書いてみた。 // // ViewController.swift // GCDSample // // Created by KatagiriSo on 2017/09/19. // Copyright © 2017年 RodhosSoft. All rights reserved. // import UIKit class ViewController: UIViewContr…

ViewBlock

Class Cake\View\ViewBlock | CakePHP 3.4 使い方 以下を参照 xn--cakephp-gt4fral1s5v.jp以下作成中..。

View

rederによってViewがレンダリングされる。その部分をみてみる。 public function render($view = null, $layout = null) { // すでにレンダリングされているなら終わり if ($this->hasRendered) { return null; } // レイアウトがメソッドの引数に指定されて…

ViewBuilder

ビューを作る。build()のところで作っている。 public function build($vars = [], ServerRequest $request = null, Response $response = null, EventManager $events = null) { $className = $this->_className; if ($className === null) { $className = …

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(アンブレラヘッダー)…