Rodhos Soft

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

Macでアプリを開く

以下を参照した。 qiita.com open -a hoge hogeはApplication/で.appを除いた名前。(フルパスを渡しても良い) bashの.profileにaliasを作る。 alias hoge="open -a hoge"

cmakeの仕方

以下を参考にする。 qiita.com コマンドラインのビルド main.cpp, hello.hppがあるとする。 これらをまず g++ -c main.cpp hello.hpp とコンパイルして.oファイルを作る。 そしてリンクする。 g++ -o a.out main.o hello.o cmake CMakeLists.txtを作る cmake…

canvas

お絵描きのサンプル マウスをダウンして描画開始、動かしたら線を引いて、マウスをあげたら描画終了 pathの構造 path 複数のsubpathから構成されている。 subpath 座標点のリストを持ちlinesegmentとも呼ばれる。 subpath closedかどうかのフラグを持つ cont…

display

css

block (p、div、ul、h1〜h) 横いっぱいに広がり、縦に並ぶ inline ( a、span、omg) 要素が横に並んでいく inline-block none 非表示 blockは改行が入り、幅と高さが設定される。 左右、上下の余白が設定できる。 inlineは改行は入らず幅と高さが設定できない…

セレクタ

css

以下が詳しい。 weboook.blog22.fc2.com

Slickの導入

サイトからDL slick - the last carousel you'll ever need htmlから読み込む <script type="text/javascript" src="/js/slick/slick/slick.min.js"></script> <link rel="stylesheet" type="text/css" href="/js/slick/slick/slick.css" media="screen" /> </link>

Discriminated Unions

https://www.typescriptlang.org/docs/handbook/advanced-types.html

リセットを取り消す

git

git reflogでリセットしたHEAD{}を探してリセットする。

Web技術の情報

developers.google.comgoogle、よく書かれている。

メモリリーク

メモリの問題の解決 | Tools for Web Developers | Google Developersここも詳しい。 https://qiita.com/y_fujieda/items/a0a69151cf7307039f74

現在形

typescript環境的な一覧 typescript start script · GitHub

グローバル関数

global関数はwindow(ルートオブジェクト?)からはえる global変数、global関数はwindow(というかルートオブジェクトにはえる)

DOM関連2

DOM Standard 詳細はこれを読むことになる。

DOM関連

ここを読むと詳しく載っている。 DOM | MDN

プラグイン等

web

ブラウザ上の操作記録 chromeのプラグイン WildFire リーク等をさぐる Chrome DevToolsを使ってJavaScriptのメモリリークを検出し、解消する - 人生dat落ち

わかりやすい資料

www.buildinsider.net

既存メソッドの拡張

declare interface String { getCount(): number; } (String.prototype as any).getCount = function () { return this.length; }; でimportする。

iframeとタイマー

タイマーでiframeを切り替えてみた。 function getID(identifier:string):string { return '[data-id="' + identifier +'"]' } const x:JQuery<HTMLIFrameElement> = $(getID("child")) as JQuery<HTMLIFrameElement> const y = x.get(0); setTimeout(function(){ y.src ="./hoge.html"; },2000) y.</htmliframeelement></htmliframeelement>…

文字列受け渡し

class Hello { companion object { init { System.loadLibrary("Hello") } } external fun printHello() external fun printNative(str:String, len:Int); } fun main(args: Array<String>) { Hello().printHello() val str = "hello form kotoln" Hello().printNati</string>…

kotlinでhelloworld

class Hello { companion object { init { System.loadLibrary("Hello") } } external fun printHello() } fun main(args: Array<String>) { Hello().printHello() } でコンパイル kotlinc hello.kt前回同様ライブラリを用意して実行 kotlin HelloKt</string>

hello world

fun main(args: Array<String>) { println("Hello, World!") } ```` として kotlinc hello.kt でコンパイル。できたら実行 kotlin HelloKt</string>

cppでhelloworld

cのときと同様でhello.cppを作る。 #include "Hello.h" #include <iostream> extern "C" { JNIEXPORT void JNICALL Java_Hello_printHello (JNIEnv *env, jclass obj) { std::cout << "hello cpp" << std::endl; } } あとはコンパイル時に-libc++をつける。 gcc -share</iostream>…

cでhelloworld

java側を用意 public class Hello { static{ System.out.println(java.library.path); System.loadLibrary("Hello"); } static native void printHello(); public static void main(String args[]){ printHello(); } } コンパイル javac Hello.java C側を作…

チュートリアル2

さらに簡単な例 #include <rxcpp/rx.hpp> rxcpp::observable<std::string> twice(std::string word) { return rxcpp::observable<>::just(word + word); } rxcpp::observable<int> length(std::string word) { int l = (int)word.length(); return rxcpp::observable<>::just(l); } rxcpp::ob</int></std::string></rxcpp/rx.hpp>…

チュートリアル

一番簡単な使い方 rxcpp::observable<int> obs = rxcpp::observable<>::create<int> ( [=](rxcpp::subscriber<int> s) { s.on_next(100); s.on_next(200); s.on_next(300); s.on_completed(); } ); auto x = obs.flat_map([=](int x) { return rxcpp::observable<>::just(x </int></int></int>…

ライブラリ

Boost Libraries

variant 共用体

かなり便利なことがわかった。 #include <boost/variant.hpp> #include <iostream> int main(int argc, const char * argv[]) { // insert code here... std::cout << "Hello, World!\n"; boost::variant<int, std::string> v; v = 100; boost::variant<int, std::string> s; s = "200"; if (v.type() == typeid(int)) { int l =</int,></int,></iostream></boost/variant.hpp>…

boost設定

Macの場合。brewでinstall /usr/local/Cellar/boost/1.67.0_1 ここにincludeヘッダーとlibがあるのでXCodeのパスを通す。 Header Search Pathsにinclude Library Search Pathsにlib non-recursiveOther linker flagに -lboost_system設定

チュートリアル的な記述7

cpp

typeerase的なものを作ってみたがポインタ周りが怪しいので修正中 #include "TypeErase.hpp" #include <iostream> #include <map> class AnyBase; using AnyBase_sp = std::shared_ptr<AnyBase>; class AnyBase { public: AnyBase() = default; virtual ~AnyBase() = default; templa</anybase></map></iostream>…

チュートリアル的な記述6

cpp

継承やテンプレートなどを色々使ってみた。 #include <iostream> void hello() { std::cout << "hello/bye" << std::endl; std::string s; while (true) { std::cin >> s; if (s == "hello") { std::cout << "hello!" << std::endl; } else if (s == "bye") { std::cou</iostream>…