yamagenii のアーカイブ

xor交換を3つ以上で行う。

2016年11月24日

[XOR交換アルゴリズム](https://ja.wikipedia.org/wiki/XOR%E4%BA%A4%E6%8F%9B%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0) これは一時変数を使わず、2変数を交換するものですが、xorの性質を利用しているので、3つでも交換できます。 (x,y,z)->(y,z,x) ``` x = x^y^z y = x^y^z //元々のx z = x^y
続きを読む

aipoで印刷画面のリンク

2016年11月10日

各々のポートレットについてマクロを作って、そこでALdialogheaderPrintAbstractを呼び出しす。 こうすると必要なセッションパラメータを指定できる ``` #macro(ALdialogheaderPrintAbstract $title $portlet_id $screen $view_date $userid $onclick $link) #if(($portlet_id!=""))
続きを読む

firefoxで見たときだけtableの幅が違う

2016年10月27日

UIの変更や追加時に各ブラウザでテストしたら、firefoxだけtableの表示がおかしい。他は大丈夫なのに という状況の時も慌てずデベロッパーツールでチェック *** 変更としてtableのカラムを削除していたのですが、その時にcolgroupの削除忘れが原因でした。 他のブラウザはcolgroupをスルーしてくれていたのですが、firefoxは律儀にサイズをとってこようとしていました。結構挙動変わるものなんですね。 web開発において、UIの変更や追
続きを読む

xcode8になってAutoLayoutの挙動が変更された……?

2016年10月25日

自分自身まだ調査しきれていないのですが, xcode8となりstoryboardのバージョンの変更になるに辺り、viewのライフサイクル中のAutoLayoutのタイミングの変更が合ったようです。 ### viewDidLoadで得るサイズはAutoLayout後のサイズではない!! 具体的には(0,0,1000,1000)になっているようで、subview.bounds等でサイズ指定をしていた場合、上手く動かなくなるでしょう ViewDidAppearで正確
続きを読む

mysqlにログインできない

2016年10月20日

``` ERROR 2013 (HY000): Lost connection to MySQL server at 'sending authentication information', system error: 32 ``` 等とエラーが出てきてlogを見たりしても???? とりあえずググっても微妙… そんなときは魔法のコマンド**再起動** ``` mysql restart ``` これで直りました。 データベースが急
続きを読む

gitのサブモジュールにて特定のブランチやコミットを使用する

2016年10月18日

何かとややこしいgit submodule 重要なのはコミットで管理していることで、ここに慣れるとsubmoduleもバージョン管理しながら、その変更を反映出来るようになります *** 今回はsubmoduleのリポジトリに変更を加えたい場合、通常の開発と同様にブランチを切って、変更を施し、メインリポジトリのsubmoduleのコミットを変更したものにあわせる方法を紹介します。 git submodule add 等は終わっていて、持ってきたsubmo
続きを読む

iOSのsafariでcookieを個別削除

2016年10月14日

動作テストなどでCookieの一部を削除してテストしたい場合、通常のiOSsafariではCookieを一括削除する機能しかないのでできません。 そこで [iOS SafariのWebインスペクタをMac Safariで表示してデバッグする](http://islog.tokyo/ios-safari-web-inspecter/) を使用すると、通常のsafariのようにcookieが削除できます。 *** ### safariでcookieを削除する方法
続きを読む

jsでダブルコーテーション複数削除

2016年10月13日

replace非破壊 ``` var strTemp = "\"aaa\"aa\"aaa\"" if (strTemp.indexOf("\"") != -1){ console.log(strTemp.replace(/[\"]/g,""))) } ```
続きを読む

スペースや括弧のついたディレクトリを作成

2016年10月4日

``` mkdir 10.0 (14A345) ``` ではシンタックスエラーです。 スペースはbashではコマンドの終わりを示します。 当然のようにエスケープシークエンスがいります。 ``` mkdir 10.0\ \(14A345\)/ ``` ターミナル上では**10.0 (14A345)**という表示なので、ディレクトリ名をコピーして貼り付けて、そのまま実行ということも出来ないので、意外とめんどくさいです。
続きを読む

cocoaがビルドできない!!

2016年9月29日

cocoaのライブラリ周りでビルドが通らない(型JSONがありません等)ときのTips *** project->Build Settings->Architectures->Build Active Architectureをyesにする
続きを読む

ガラケーと2017年

2016年9月27日

自社サービスの[aipo](http://www.aipo.com/)は未だにガラケーに対応できる素晴らしいサービスなのですが、一箇所2017年をYEAR_ENDとしてマクロする部分がありました。(ここの部分は消去の対応が行われる予定です。) **ガラケーと2017年っていったいどんな関係が…** と思ったのですが、これは2017年にガラケーが生産終了と発表されていたのでそれを見越したバリデートをするための数字だったようです。 *** ガラケーの生産終了2年前
続きを読む

eclipseの自動フォーマットのおかげでgitの差分が見にくくなった時に確認する設定

2016年9月13日

eclipsに限らず、IDEでは自動でフォーマットを調整してくれる機能があります。この機能は言わずもがな、ソースコード保守に大きな貢献をしています。 しかし複数のマシンで開発していると、設定が異なる事が原因で、改行に位置が違っていたり、空白の位置が違ったりすることがあり、GitHubのcompareがとんでもないことになります。**こうなるとどこに差分があるのかわかりません!** というわけでeclipseのフォーマットの設定箇所をメモ ※eclipseはj
続きを読む

Cayenneのエンティティファイルにメソッドを実装するとき

2016年9月7日

最近ではMVCモデルのMで実装することが良いとしている風潮もありますがORMマッパーであるCayenneを使用しているソフトで実装するときは注意があります。 CayenneでgenerateするエンティティクラスはDataMap.java,その親クラスの_DataMap.javaのように2種類ありますが、この内編集できるのはDataMapクラスのみです。 よく見たら_DataMap.javaのヘッダーにはこんなことが書かれています。 ``` /** Class
続きを読む

深さ判別法

2016年8月29日

n個の数列a0,...,anがあたえられたとき、その数列を組み合わせて得られた和がkであるかどうか判別するアルゴリズムを深さ判別法で解く 深さ判別法は全探索のアルゴリズムで、 オーダーはO(2^n)であるので、n=20程度であれば、解くことが出来る。それ以上になる場合は効率的なアルゴリズムを考えなければならない。 ``` #include #include using namespace std; int n,k; vector a; boo
続きを読む

git configのオプション

2016年8月29日

共有のパソコンでは、git configで変更しなければなりませんが、そのときのオプションのまとめ # --system **/etc/gitconfig** の編集を行います システム全体に適用される設定。全てのユーザー、全てのリポジトリが対象にします # --global **~/.gitconfig** の編集を行います そのユーザに適用される設定です。ユーザの持つリポジトリに影響します。 # --local **.git/config** 
続きを読む

IndexOutOfBoundsExceptionの場所

2016年8月25日

IndexOutOfBoundsExceptionはある種のインデックス(配列、文字列、ベクトルなど)が範囲外であることを示すためにスローされます。 **このエラーが出た場合はループ文の可能性が高いです**。 初歩的なミス以外はループ中の削除等でインデックスがずれたり、listにアクセスするインデックスを計算していたりする場合は注意です。 *** ``` try {      ArrayList array = new ArrayList();
続きを読む

swift3になるにあたりの変更される記法

2016年8月24日

Xcodeで開発していたら何やら、警告が... swift3から削除される記法を警告してくれていました。swift3になると完全に使えなくなるので、リファクタリングをしないといけません。 *** # 関数の引数のvarの削除 ## 'var' parameters are deprecated and will be removed in Swift 3 ``` //Before func foo(var i: Int) { } //Afte
続きを読む

slコマンドをmacで実行

2016年8月15日

lsコマンドは多用するコマンドの一つですが、慌ててタイプミスをしてslと打ってしまう時が誰にでもあります。 **ありますよね!!!!!??????** そんな時に本当にSLが走るコマンドの紹介です。 ``` $ curl -O http://www.tkl.iis.u-tokyo.ac.jp/%7Etoyoda/sl/sl.tar $ tar xvf sl.tar $ cd sl $ make $ sudo cp -p sl /usr/local/
続きを読む

macで拡張子に関連するデフォルトアプリの変更

2016年8月5日

macのfinderで.txtを開こうとしたとき、初期設定ではテキストエディット.appというしょっぱいアプリケーションで開くように設定してありますが、自分でインストールしたエディタにデフォルト設定したい時のTips *** 1. 開きたいファイルを選んでcommand+i (情報を見る) 1. このアプリケーションで開くタブをクリック 1. appを選択 1. 全てを変更をクリック *** こんな設定は調べることなく直感的に扱えるようなUIにしてほ
続きを読む

【swift】dismissControllerしたあとすぐpresentedViewControllerしたい!

2016年8月4日

viewControllerで、今の表示を消して、すぐに違う画面に遷移したい時など ``` dismissController presentedViewController ``` と書きますがこれが上手くいったり行かなかったりします。 早すぎて今のviewが変わったりして、どのviewにpresentするのか分からないパターンと考えられるので[遅延処理](http://hacknote.jp/archives/21156/)で遅延して非同期実行するとでうま
続きを読む