Tomohiro のアーカイブ

Googleのカラーピッカー機能

2017年3月13日

Googleで「カラーピッカー」と検索すると、カラーピッカーが表示される。色相や明度、彩度をマウスでグリグリしてやると、色が生成され、その色のカラーコードも表示されるので便利。rgbのパラメータも分かるので画像処理にも使えそう・・・ 逆にカラーコード(#ffefe5とか)を検索してあげてもこのカラーピッカーが表示され、どんな色なのか一発で調べることが出来る。
続きを読む

PostgreSQLでクエリの実行計画を見る(EXPLAIN句)

2017年3月7日

PostgreSQLにおいて、とあるクエリを実行する時にどのように実行され(インデックス使ってるのかとか)、どれだけコストがかかっているか見るにはEXPLAIN句を使う。基本的な使い方 ``` EXPLAIN 確認したいクエリ; ``` 結果は以下のように出力される。 ``` "Index Scan using id_timeline_create on eip_t_timeline (cost=0.29..1071.74 rows=20027 wi
続きを読む

SQLで並べ替え方法別の速度比較

2017年3月6日

[SQLで任意の行を優先して表示する](http://hacknote.jp/archives/25528/) 以前特定の文字列が含まれる行を検索してそれを一番上、その他の行は日付順に並べるという方法を紹介したが、 先に特定の文字列が含まれる行を持ってきて、別に日付順に並べたやつ(重複しないように)を合体させることでも実現できる。両者のクエリの実行スピードを比較してみる。一万件のデータを登録して試してみた。 # 前回紹介した方法 クエリ全体 実行時間:1775
続きを読む

formでvmファイルとJavaの橋渡し

2017年3月2日

各種データをvmファイルからJavaに渡すとき、styleをdisplay:inlineにしたformを使うことで画面上は見えることなくデータを渡すことができる。 formで設定したidを利用してdojo.byId(id)と入れると該当formを参照でき便利。
続きを読む

SQLで任意の行を優先して表示する

2017年2月21日

SQLで、並べ替えを行うとき、ORDER BY句を使うが、特定の文字列を含む行は優先して上に表示したいときはCASE句も組み合わせる。 ``` SELECT * FROM テーブル名 ORDER BY CASE 文字列を含むカラム名 WHEN 'ABC' THEN 1 ELSE 2 END, 日付 DESC" ``` こうすると、ABCという文字列を含む行があったとき、その行を優先して上に表示し、その他の行については日付順で並ぶようにできる。
続きを読む

Ubuntu16.04にAipo8の開発環境を構築その1

2017年2月15日

https://doc.aipo.com/startguide/ の開発環境構築をubuntu16.04でやろうって話。 今回はVMware上にUbuntu16.04をインストールし、そこにインストールを行う。 # JDKのインストール Oracleのサイトhttp://www.oracle.com/technetwork/java/javase/downloads/index.html からlinux用のJDKをダウンロードする。端末を開いてダウンロードしたフォルダに
続きを読む

MySQLがエラーになっているとき(再起動)

2017年2月6日

MySQLの現在の状態はターミナル上で ``` mysql -uroot -p ``` と打つと調べることが出来る。正常に動作しているとWelcome的なメッセージが出るが、今回エラーになってしまい、データベースに接続することができなくなってしまった。そこで一旦MySQLを停止し、再起動を試みる。停止コマンドは ``` brew services stop mysql ``` 開始コマンドは ``` brew services stop mys
続きを読む

全角スペースに気を付けよう・・・・

2017年1月30日

コードを正しく書けているつもりでも、半角スペースと全角スペースの違いで正常な動作をしないことは多々ある。 Javaとかのソースコード内でのミスならコンパイルエラーになるけど、Velocityとかで全角スペースを使っていて気づかないと、コンパイルは正常に通るけど正しく動作しない・・・といったことになる。 Eclipseだと、半角スペースはドット(.)、全角スペースだと小丸(。)で表示されるので確認するようにしたい
続きを読む

CayenneModelerで項目を追加する時の注意

2017年1月23日

http://hacknote.jp/archives/7106/  にも書かれているけど補足。 CayenneModelerで既存のテーブルに新しい項目を追加するとき、テーブルに項目を追加後、既存クラスと同期する機能(左右の矢印のアイコン)を押すことでクラスに項目が追加されるが、この時今ある項目消していいか?みたいなことを聞かれる。これを読まずにOKを押してしまうと生成されたクラスから今まであった項目が一部消えてしまい、ビルド時にエラーになってしまう。これを防ぐために、
続きを読む

socketでうまくリアルタイムに更新されないとき

2017年1月16日

端末やエミュレータ上でsocketを用いた通信を行うとき、設定によってはリアルタイム通信ができず、メッセージを送っても通知が来ないことがある。hostsファイルをいじることにより改善が図れる。windowsでは http://i-think-it.net/windows10-hosts-easy-edit-two-ways/ の方法で書き換えられる。Macの場合、ターミナルで ``` sudo vim /private/etc/hosts ``` と入
続きを読む

子ディレクトリも含めて特定のファイルを見つけて削除する

2016年12月26日

ターミナル操作で、子ディレクトリのファイルも含めてある条件に当てはまるファイルを見つけ出して何かしたいことがある。ここでは拡張子が.jpgのファイルを探し出して削除するのを例として説明する。 まずは親ディレクトリ上でターミナルを開き、以下のコマンドを入力する。 ``` find ./ -name "*.jpg" -print ``` すると、瞬時に子ディレクトリも含めて階層下から拡張子が.jpgのファイルを見つけ出してきて一覧が出力される。表示されたファ
続きを読む

JavaScriptを無効にするとどうなる

2016年12月19日

普段何気なくネットサーフィンしているが、ページのどの部分にどんな技術が使われているか意識することは少ない。そんな技術の一つ、"JavaScript"を無効化してみると発見があるかもしれない。ほとんどのブラウザは設定画面からJavaScriptを無効にすることが出来る。一昔前だとセキュリティの向上策の一つとしてあったが、今だとどうなるのか・・・・試してみた 結論から言うと、まともにページが表示できなくなるサイトがほとんどだった。JavaScriptを無効にするという
続きを読む

GitのCheckoutConflictionエラー

2016年12月13日

ローカルでファイルを変更して、そのファイルをプッシュせずに別のプロジェクトをプルしようとしたら、CheckoutConflictionエラーが出てしまった。ログを取るためにプロパティファイルを一時的に書き換えたりしてそのままにすると、エラーになってしまうため、元に戻すことを忘れないように気をつける必要がありそう。 http://www.kakiro-web.com/memo/eclipse-git-client-2.html マージを行うことでも解消できる。
続きを読む

ステップインとステップオーバー

2016年12月12日

デバッグをするときの2つの進め方、基本的ではあるけどちゃんと理解しておきたい。 **ステップイン** ソースコードを1行単位で実行できる。関数が含まれているとその関数に飛んで引き続き1行ずつ実行される **ステップオーバー** ソースコードを1行単位で実行するのは同じだが、関数があるとその関数が実行されて次の行へ飛ぶ。 細かくデバッグできるのはステップインだが、ジャンプされるとかえってわかりにくくなることもあるのでステップオーバーも活用できる
続きを読む

Eclipseで目的のファイルを早く見つける

2016年12月6日

Eclipseでたくさんのファイルを擁するプロジェクトから〇〇というファイルを探したいけどどこに保存してあるか分からない・・・ そんな時、普通の検索機能(Control+H)を使っても良いけど大量のファイルがあると非常に検索に時間がかかる。そこでファイル名の検索に特化した検索機能を用いる。インデックスが予め作成されているのでサクサク検索できる。ファイル検索に特化した検索機能は **コマンド+シフト+R** で開ける。ちなみにクラス名も **コマンド+シフト+T**
続きを読む

SQLをお家で学習

2016年12月5日

Javaのプログラムの練習だとメモ帳とJVMがあれば出来るけど、データベースの練習は土台のデータも必要だし家のPCに環境構築するのも敷居が高い作業である。お家で簡単?にSQLの練習ができる2つの方法を発見したので取り上げてみた。 1.Raspberry Piにインストール http://make.bcde.jp/raspberry-pi/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%92%E4
続きを読む

SQLとJavaの関係

2016年12月5日

SQLの文をプログラムで書くとき、保守性の観点からJavaのソースコードに直接SQL文を書くことはおすすめしない。 Cayeneeというツールを使うとデーターベースをオブジェクトとして扱うことができる。 http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_1.html ツールを使うと自動でクラスも作成できるようです。 https://doc.aipo.com/create_app/05.html
続きを読む

SQLのPreparedStatement

2016年11月28日

SQLで、可変な値をSQL文中に使っているとき、パラメータとして文を書き、値を後から代入することにより、スッキリとしたソースコードになり、実行速度も上がる。 ``` SELECT name FROM students WHERE id= ? ``` studentsのデータベースから生徒の名前を取り出したいが、生徒のIDはいろいろ変化する可能性があるとき、可変な値をクエスチョンマーク(?)にしておく。値をセットするときは、Javaプログラム上で、 ```
続きを読む

Date型にnullは入らない

2016年11月21日

データベース上に保存されている日付をDate型として取り出すときに、データベースの日付データが空っぽ(何も記載されていない)ときの反応を決めたいとき、最初は ``` if((データベースの日付をData型に変換した変数) == null) ``` みたいに、空っぽ=nullみたいな認識でコードを書いていたが、ClassCastExceptionでエラーになってしまった。どうやらJava(に限らず他の言語でも)はDate型に何も入っていない(null)というのは
続きを読む

Javaの三種類のデータ構造を使い分ける

2016年11月15日

Javaには三種類のデータ構造があり、目的に応じて使い分けることができる。 1.配列 基本データ型(intとか)、参照型(Stringとか)両方を扱うことができる。 作成時は ```  String[] moji = new String[3]; ``` と書く。作成時に配列の大きさが固定される。 2.リスト 配列と似ているが、参照型のみ格納でき、配列と違って大きさが可変であるという特徴がある。作成時は ``` List name = n
続きを読む