Rodhos Soft

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

CakePHPの勉強のまとめ

勉強ログの記事一覧 CakePHP rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenad…

マクロ関数での注意

defineのマクロ関数でクラス・メソッドに置き換える際、引数の文字と、メソッド名の一部がかぶるとエラーを引き起こす。→ マクロの引数名をかえる。

C++を混載

mmファイルを使うとCの関数(特にObjective-Cのアマルガム的な)が呼べなくなるので注意

NSNotFound

NSNotFoundは型に注意しないでロジックミスになる。注意。NSIntegerとかCGFloatとか - なるようになるかも

パッケージ管理

Mac

MacPorts, HomeBrew, Fink等の選択肢がある。以下を参考にした。 MacPorts と Homebrew の違いについてとりあえずHomeBrewをつかう。brew.shbrewコマンドが使えるようになる。例 graphvizのインストール brew install graphviz

duplicate symbols

久々にはまったが、よくみたところヘッダーでimportしていたファイルが.mになっていた。。

FaceBookPHP

以下を参照した。 Facebook PHPをComposerで利用するには | hrendoh's memo comporser.jsonのrequireにfacebook/php-sdkを追加 curl -s http://getcomposer.org/installer | php でcomposer.pharを落として php composer.phar install 警告が出た。 Warning:…

MySQLのエラー

General error: 1298 Unknown or incorrect time zone: 'Asia/Tokyo' というエラーが出て接続できなかった。以下などを参考に次の対応を行った。 3u3.org MAMP内のMAMP/Library/binにおいて ./mysql_tzinfo_to_sql /usr/share/zoneinfo > hoge.txt hogeに吐…

BASIC認証

web

. htaccess AuthType、AuthName、AuthUserFile、requireを指定 .htpasswd ユーザ名:エンコードされたパスワード例 AuthUserFile .htpasswdの場所 AuthName "Please enter your ID and password" AuthType Basic require valid-user

通常使うものイディオム

普段使うものを羅列していく。 特定の文字列を検索 find . -name "*.php"|xargs grep hoge grep hoge_ -rl ./ 権限付与 chmod a+x hoge.txt 例でははすべてのユーザに実行権限を与えている。 他には Linuxコマンド集 - 【 chmod 】 ファイルやディレクトリの…

ビルトインサーバー

./bin/cake server で、http://localhost:8765/ にアクセス。

基礎

c++

c++の基礎的なことをさらった。 // // main.cpp // cppABC // // Created by KatagiriSo on 2017/06/28. // Copyright © 2017年 rodhos. All rights reserved. // #include <iostream> #include <sstream> #include <iomanip> #include <fstream> // ref:http://ppp-lab.sakura.ne.jp/ProgrammingP</fstream></iomanip></sstream></iostream>…

RDRepository

API呼び出しでJSON分解するSwiftコードの試作をRDRepositoryとしてgithubにあげた。 キャッシュを期限付きで管理するRDCacheが肝になる。 一つのタスクをOperationを使って実行している。 サンプルとしてこれを利用したWikipedia情報の呼び出しを書いた。 他…

デバッグ クラッシュログ

以下のサイトが参考になった。 stackoverflow.com

デバッグ シンボライズ

Xode内にあるsymbolicatecrashを使う。以下を参照した。 www.crunchtimer.jp まず探す。Xcode8のフォルダ内で find . -name symbolicatecrash /Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 面倒なので適当にl…

swiftc failed with exit code 1

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1 で妙な現象にあった。 func reload(completion:@escaping (T?, Error?) -> Void) { objc_sync_enter(self.loadCompletion…

swiftc

Swiftをコマンドラインでコンパイルする方法swiftcを使う。 which swiftc /usr/bin/swiftc 適当にswiftでコードを書いて、 import Foundation print("hello, world!") ここではmain.swiftという名前にした。 swiftc main.swift これで、mainという実行ファイ…

デバッグ lldb

ブレークポイントセット breakpoint set -n semaphore_wait_trap LLDB 使い方まとめ - Qiita dispatch_barrier_sync blocks main thread when re-requesting an image. · Issue #803 · rs/SDWebImage · GitHub script Pythonでscript入力 exit()で終了[LLDB]…

連打防止

秒数をカウントしてやる。 class DoubleTap { var actionTime:Date? = nil let actionInterval:TimeInterval = 0.3 func check() -> Bool { if let actionTime = actionTime { if -actionTime.timeIntervalSinceNow < actionInterval { return false } } sel…

テーブルを連携させる

2つのテーブルの連携を考える。 peapleテーブル(personの複数形) id INT,プライマリキー,AutoIncrement name Text, Not Null, Unique password Text, Not Null comment Text, Null boardsテーブル id Int,プライマリキー,AutoIncrement person_id Not Null …

bake

bookモデルを作りそのCRUDをbakeで作る。 データベースでbooksテーブル作成 id 整数、プライマリー、自動インクリメント title テキスト author テキスト price 整数 bake $ ./bin/cake bake all books しかし失敗する Exception: SQLSTATE[HY000] [2002] Co…

データベース操作

レコード追加 テンプレー側にフォームを用意 Form->Create($entity, ['url'=>['action'=>'addRecord']]) ?> <fieldset> Form->text("name") ?> Form->text("title") ?> Form->textarea("content") ?> </fieldset> Form->button("送信") ?> Form->end() ?> コントローラにaddRecord…

使いかたhttp://pubman.mpdl.mpg.de/pubman/item/escidoc:150722:1/component/escidoc:150721/cadabra.pdf A brief introduction to Cadabra: a tool for tensor computations in General Relativity https://arxiv.org/pdf/0903.2085.pdfhttps://suppiya.fi…

sympy

ツリー構造 Advanced Expression Manipulation — SymPy 1.0.1.dev documentationTaming math and physics using SymPy https://minireference.com/static/tutorials/sympy_tutorial.pdf使えるかというと微妙

500エラー

PHPでエラーがみたい php.iniファイルで error_reporting = E_ALL display_errors On display_startup_errors = On 公開用サーバではlog_errorsでログでみるべき。 internal error 500 新しくプロジェクトを作ったところそのようなエラーがでた。 ログを確認…

MySQL

phpMyAdminがつかえるとして以下話をする。MySQLにパスワードを設定している場合は phpMyAdmin/config.inc.php の $cfg['Servers'][$i]['user'] = '*****'; $cfg['Servers'][$i]['password'] = '****'; を設定する。 phpMyAdminでデータベース作成 mydata 照…

おさらい

いままでのおさらい。 プロジェクト作成 mkdir hoge php composer.phar create-project --prefer-dist cakephp/app hoge Hello World hello/other

技術英語

WWDCをみつつ Existentials 存在に関する(実存的な) Compilation コンパイル、編集物 Inference 推論 thunks サンク 遅延評価を受ける関数に受け渡す引数 ストリーム (プログラミング) - Wikipediainception 開始、発端 Interruptible 中断可能、割り込み可…

WWDC2017

iOS

iOS11の忘備録まずQiitaを一読して後追いする。WWDC2017を個別にみていきたい。恐らくリンク先の堤さん等のまとめ(API Diffsから見る iOS 11 の新機能 #WWDC17 - Over&Out その後) を読むほうが早い..。以下作成中 WWDC2017 WWDC 2017 - Videos - Apple De…

初歩的知識

以下を参照した。 saruwakakun.com display:inlineは大きさ変えられない。display:blockかdisplay:inline-blockにする必要あり。aタグ, spanタグ。 width:autoの決まり方 基本親要素まで広がる、%指定で親要素の何%かと言う決まり方になる(このときpadding, …

ファントム型

qiita.comまねて書いてみた。何かに使える気がする。 phantom type dummy code

htmlを吐き出す4

何か形になってきた気が。とりあえず根本的にタグを定義してみた。 しかしdivとかを手で入れるようになってしまい面倒さは変わらないような気も。 import Data.List main = print (display html) type ClassName = String -- data DIV a = DIV ClassName a d…

htmlを吐き出す3

不要なデータ型を削除した少しスッキリしたが属性とかつけるとめんどくさいことになりそう。 import Data.List main = putStr (tag_doctype ++ html) tag_doctype = "" html = string (HTML [header,body]) header = HEAD [String "OK!"] body = BODY htmlbo…

htmlを吐き出す2

html吐き出すコード、DivTag DIVとか書くのはおかしい。もっとまとまるはず。。 import Data.List main = putStr (tag_doctype ++ html) tag_doctype = "" html = string (HTML [header,body]) header = HeadTag (HEAD (String "OK!")) body = BodyTag (BODY…

最初

processing.jsをダウンロードして配置する。 Processing.js htmlを用意 <html lang="ja"> <head> <meta charset="UTF-8"> <title>title</title> <script src="./processing.js"></script> </head> <body> <canvas data-processing-sources="./proc.pde"></canvas> </body> </html> proc.pdeファイルを用意してそこにprocessingの文法で描画すればO…

グラデーション

こちらのやり方にしたがってやってみた。ics.media しかし値の調節にこつがいるのかもしれない。 <html> <head> <meta charset="utf-8"> <style> body { } #bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; /* 背景グラデーションの作成 */ background: linear-gradient(to bo</meta></head></html>…

flexbox

flexboxを用いて、タイル表示をしてみる。以下を参考にした。 ics.media HTMLはヘッダーにメニューとmainにタイルとしてdivを置いた。 <html lang="ja"> <head> <meta charset="UTF-8"> <title>title</title> <link rel="stylesheet" type="text/css" href="sample.css"> </head> <body> <header> <img src="hoge.png" alt=""> <ul> <li><a href="">item1</a></li></ul></header></body></html>

HTMLヘルパーでテーブルを作る

テーブルをガリガリと書く方法とHTMLヘルパーを使って各方法を2つ並べて書いてみた。 <h1> データ </h1> <table> <thead> <tr> <th>ID</th> <th>NAME</th> <th>TITLE</th> <th>CONTENT</th> </tr> </thead> <tbody> <tr> <td> id ?> </td> <td> name) ?></td> <td> title) ?></td> <td> </td></tr></tbody></table>

SQLiteの用意

CakePHPはデータベースやテーブルの設定を自分でする必要がある。大変面倒だがまずSQLiteでやってみることにする。 アプリ(例hoge)内にdbフォルダを作る(hoge/db)。 SQLiteのデータベースを作成する。 sqlite3起動 $ sqlite3 mydata sqlite> create table 'b…

モデル = テーブル+エンティティ

CakePHPのモデルとはテーブルとエンティティの全体を指して使う。以下のようなモデルを作ろう。識別用のIDを持ち、投稿者名とタイトルと投稿内容を持っている情報(エンティティ)とそのエンティティの集団(テーブル)。 このモデルを「Board」と名付けよう。命…

フォームヘルパーを使う

テンプレートに次のように記述。 <p> ヘルパーを使ったフォームの送信</p> <p> </p> Form->create(null, ['type' => 'post', 'url' => ['controller' => 'Hello', 'action' => 'index']]) ?>

AppController->request連想配列

AppControllerのrequestはCakeRequestクラス。request[種類][キー]で情報が取得できる。種類は params 送信された値すべて data POSTされた際の内容 query クエリー url 送信アドレス base ベースのディレクトリ webroot webrootディレクトリ here 現在のア…

フォーム

フォームをテンプレートに用意 <form method="get" action="/hello/sendForm"> <input type="text" name="text1" /> <inout type="submit" /> </form> フォームを送った先 <h1>送信結果</h1> <p></p> ファイル名はsend_form.ctpとする。クラス、メソッド名はキャメル記法なのに対し、アンダースコア記法であることが注意するところ。コントローラにhello/sendFormのアクションを書く

最初

htmlの最初 <html lang="ja"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> </body> </html>

単にテンプレート的にhtmlを吐き出す

単純に関数に代入してhtmlを作ってみたがお世辞にも簡潔には書けなかった。。 import Data.List main = putStrLn html tag_doctype = "\n" tag_html txt = "\n<html>\n" ++ txt ++ "\n</html>\n" tag_head txt = "\n<head>\n" ++ txt ++ "\n</head>\n" tag_body txt = "\n<body>\n" ++ txt ++</body>…

htmlを吐き出してみる。

データ型と型クラスを使って少しまとめてみた。 同じようなコードを書かなくてはいけなくて面倒に感じる。 良い方法はないのだろうか。 import Data.List main = print (tag_doctype ++ html) tag_doctype = "" html = string (HTML [header,body]) header =…

お絵かき

haskellでお絵かきをするhtmlのコードを無理やり吐き出させてみた。もっとスマートにやれるはず。。 import Data.List main = print tag_doctype tag_doctype = "" ++ html html = tag_html (tag_header (tag_title "OK!") ++ tag_body (tag_p "hello") ++ t…

複数行の文字列

改行を含むような複数行の文字列を入れたい場合 main = print kakko kakko = " \ \ AB" のようにすれば良い。

AVPlayer

iOS

自分で作って忘れていたのだがシンプルな動画再生のプレーヤーとしてRDAVPlayerというコードを書いた。 github.com記事としては qiita.com 今ならもっと違う書き方になるかも。

URLSessionConfigurationのメモ

URLSessionConfigurationのメモこちらに良い記事があった。 qiita.com とりあえずメソッド一覧。あとから説明を追記する形で。 open class URLSessionConfiguration : NSObject, NSCopying { // デフォルト open class var `default`: URLSessionConfigurati…