投稿

8月, 2017の投稿を表示しています

2017-08-31 日報

コーディングする気分じゃなかったので、PowerPointの資料作成を先に進める。 クラス図かシーケンス図があった方が分かりやすいかも、と思ったけど作るの面倒くさいし読んでくれるかどうかも分からないので、ソースからクラス図を自動生成できないか軽く検索。 どうやらEclipseのプラグインで出来そうなので、後日試す。 Web APIの死活監視の実装をどうやろうか検討。 version返すAPIを用意して、それを定期的に呼んでチェックしよう。 今日調べたこと [Java] Jersey Clientの使い方 1年くらい前に実装したんだけど、使い方を忘れたので再度確認。 Chapter 5. Client API JAX-RS Client メモ - REST API を呼び出してレスポンスをBeanにマッピングする - Qiita BaseのURLとpathを別々に渡すんだよね。変な仕様だ。 [Java] HttpClientのサンプル Webアプリの死活監視のためにJavaでHTTP接続する手順。 HTMLの中身が欲しいわけじゃないので HEAD とか OPTION とかでもいいんだけど、まぁ GET しとこう。 JavaでのHttpClientサンプル - CLOVER

2017-08-30 日報

実装が一段落したので、PowerPointで説明資料を作成中。 なにかの資料で「日本語フォントはメイリオ、欧文フォントはSegoe UIがよい」とあったので試してみようと思ったんだけど、 Segoe UI は Windowsにしか入ってないのね。 メイリオ はMacでもOfficeインストール時に一緒に入ってたから Segoe UI もインストールしてくれてると思ってた。 そもそもMac版PowerPointだとフォントを自由に設定できなくて辛い。 おそらくWindows版との互換性のためだと思うけど、もう少しなんとかならんものか。 今日調べたこと [PostgreSQL] setvalしたときにトランザクションはどうなるの? 9.16. シーケンス操作関数 シーケンスはトランザクションとは異なる扱いを受けるため、setvalによる変更は、そのトランザクションがロールバックされたとしても元に戻りません。 なるほど。 [PostgreSQL] truncateしたときにsequenceも一緒にリセットする TRUNCATE RESTART IDENTITY を付ければよい。 デフォルトは CONTINUE IDENTITY (シーケンスの値を変更しない) [PowerPoint] PowerPoint 2016 for Mac でテーマのフォントを変更する MacのPowerPointからは予め用意された「フォントパターン」からしか選択できない。 Theme Fonts フォルダに自作のXMLを配置すると「フォントパターン」の選択肢に追加表示されるので、XMLを書くしかなさげ。 手順は以下を参照 Mac版PowerPointで、テーマの「フォントパターン」をカスタマイズする | It’s Real Intelligence! 7 PowerPoint for Mac 2016でユーザ定義の「テーマのフォント」を作る - Qiita フォントについては以下が参考になった。 パワーポイント関係なく、普通に使えそうな情報。 互換性を考慮した、パワーポイントにおすすめのフォント一覧 [CSS] font-smoothプロパティについて font-sm

2017-08-29 日報

ここ数日、ソースコードをモリモリ書いてる。 小さい常駐プログラムを3つ、ほぼ実装完了。あとは他人のチケット完了待ち。 よく「在宅ワークで集中して作業できる?」って聞かれるんだけど、やるべきタスクが明確になっていないから作業に集中できないんじゃないか、と、ふと思った。 事務処理なんかも全てチケット駆動にすれば捗るんじゃないかなー。 僕は10年近くGTDを意識して仕事やってるから、チケット駆動的なやり方が染み付いているんじゃないかしら。 今日調べたこと Java enum の要素に String を持たせる 列挙型(Enum)に文字列や数値を利用する備忘録 - Qiita 【8分でわかる】Enumクラスで文字列を使った比較・変換テクニックをわかりやすく解説! | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト public enum DataType { HOGE( "hoge" ), FUGA( "fuga" ), PIYO( "piyo" ), ; private final String text; private DataType (String text) { this .text = text; } @Override public String toString () { return this .text; } public static DataType getDataType (String text) { for (DataType t : values()) { if (t.toString().equals(text)) { return t; } } throw new IllegalArgumentException(String.format( "'%s' is undefined." , text)); } } enumにprivateなコンストラクタを用意し、private finalなインスタンス変数にコンストラクタの引数で与え

2017-08-28 日報

JavaでWindowsサービスでマルチスレッドな処理を実装。 ざっと実装してみたけど、スレッドが interrupt されたときの動きが自信ない。 RDBへの処理をrollbackしてからスレッドを中断するように実装したつもりだけど… テストが面倒臭いなぁ。 進捗を稼ぐためにも、細かい部分はTODOにしておいて、現状ガリガリ実装できそうな箇所をドンドン進める。 今日調べたこと Threadのinterruptメソッドの使い方 - Qiita for文の中で isInterrupted かどうかをチェックして、trueならrollbackしてから InterruptedException を投げるようにした。 上手く動くか要テスト。 Java 実行しているマシンのホスト名を取得 / Chat&Messenger hostnameじゃなくてaddressを使った [Java] 自分自身のプロセスIDを取得する方法 - Qiita サービスがエラーとかになった時、pidが分かった方が便利そうだったので。 Redisのpub/sub関係 明日使うのでリンクだけメモっとく A Simple Jedis Publish / Subscribe Example パブリッシュ/サブスクライブ — redis 2.0.3 documentation

2017-08-25 日報

作成したModelクラスの動作確認がしたいんだけどPostgreSQLをMacにインストールするの嫌だなー、と思ったのでdockerでpostgresのイメージを起動してテストしてみたら、思いの外簡単便利だった。 今週作ってたORマッパーもどきを搭載したModelクラスは問題なく動いた。 やっぱすげーな、僕。 あとはサービス監視の仕様について検討してテキストにまとめたり。 ちょっと体調悪いので早めに営業終了。 今日調べたこと Postico – a modern PostgreSQL client for the Mac Mac向けのPostgreSQL GUI Client。 使いやすいかどうかは知らんが、接続確認にはちょうど良い。 PostgreSQL JDBC Download PostgreSQLの JDBC Driver は JDKのバージョンに合わせて選択するのが正しい模様。 Maven Repository: org.postgresql » postgresql » 42.1.4 PostgreSQL公式がMavenにアップしているヤツ。 PostgreSQLで検索すると3rd Partyなやつ(バージョン表記がおかしい)が引っかかってくる。 Docker for Mac で 日本語locale設定を含む PostgreSQL を構築 - Qiita dockerでPostgreSQLのイメージを実行する手順。 日本語locale対応はやってない。今回はユニットテストが通ればよいので。 まぁ、必要になったらやればいいか。

2017-08-24 日報

getGeneratedKeys について調査。 commit の前か後ろ、どっちに getGeneratedKeys すればよいかわからなかったので。 commit 前で問題なかった。 java - How to get the insert ID in JDBC? - Stack Overflow java - PLSQL JDBC: How to get last row ID? - Stack Overflow Oracleの場合はどう実装したらいいんだろう? テスト環境とか用意するの面倒なので、後日また調査する。 テーブル定義書のメンテしてて、Excelの便利Tipsを見つけた。 Office TANAKA - Excel Tips[空白行を削除する] 選択セル範囲の中で空白セルだけ選択して削除後、セルを詰める。 Mac版Excel 2016でも問題なく動いた。

2017-08-23 日報

夕方から用事があって、23日中に日報が書けなかった。 スマホからも投稿できるようにしたい。 Modelクラスの実装を進めている。 結局ORマッパーみたいなのを自作してしまった。 これなら最初から commons-dbutil あたりを使った方がよかったなぁ。 参考にしたのは以下。 データベースの値をJavaBeansに入れる - Qiita Javaリフレクションメモ(Hishidama’s Java Reflection Memo)

2017-08-22 日報

作業スケジュール、役割分担についての打ち合わせ。 久々に内容のある打ち合わせが出来た気がする。 Model クラスの abstract クラスを実装中。 フィールドの型情報をどう扱うか悩ましい。 リフレクションを駆使して Pojo のフィールドの型から推測するか… ただ、日時のデータは Pojo に文字列で持ってるんだよなぁ。 誰だよ、こんな設計にしたの。

Markdown投稿テスト

Markdown投稿テスト 今まで面倒臭くて VS Code で書いた markdown を Blogger のエディタにペタっと貼り付けただけだった。 一旦 stackedit を噛ませて、きちんと整形したHTMLを投稿してみる。

2017-08-21 日報

RDB(PostgreSQL)の接続を行うDAOのAbstractクラスの実装。 コネクションプールの実装に commons-dbcp2 を使おうと思って色々調査。 まぁ、実装はすんなりできた。動くかどうかは知らん。ってかテストする環境を準備するのがメンドイ... プロパーに作業を振ってくれ、と言われたので実装クラスはお任せする予定。 僕が手を入れていない現行プログラムで、DB周りの処理がボトルネックになってるんだけど コネクションプール使ってないからじゃないか? ## 参考 [Commons DBCPを使ってみる - Murayama blog.](http://murayama.hatenablog.com/entry/20090927/1254034778) この記事の末尾にコネクションプールを使用した際に接続-切断を繰り返した際の所要時間をまとめてるけど、2回目以降の接続は1,000ms以上短くなっている。 なんかプログラムを大幅改造する前に試す価値があったように思う... * [DBCP – Overview](http://commons.apache.org/proper/commons-dbcp/) * [apache/commons-dbcp: Mirror of Apache Commons DBCP](https://github.com/apache/commons-dbcp) * [Maven Repository: org.apache.commons » commons-dbcp2 » 2.1.1](https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2/2.1.1) DB周りの実装時に参考にしたサイト * [postgres crud DAO](https://gist.github.com/jacobandresen/1713081) PostgreSQLで auto increment * [PostgreSQLでMySQLのようなAUTO_INCREMENTをしたいとき。 – こととこネット](http://blog.cototoco.net/work/201503/postgresql%E3%81%A7mysql%E3%81%AE%E3%82%88

2017-08-19 日報

夏季休暇後、急な発熱でダウン。 予定よりも進捗が芳しくないので、土曜日ながら作業。 常駐プロセスの基本設計。Markdownで書き下す。Excelの仕様書は滅べばよい。 設計書の保存場所はどこにするのが良いか悩ましい。 趣味のプログラムなら、プロジェクト内のreadme.mdなんかに含めるのが分かりやすいと思う。 っていうか、やっぱりドキュメント類がSVN上にあるのはキモチワルイ。 Redmineのチケット整理。 やっとPMがチケットを見直してくれた。あとはチケット見直しを定期的にやってくれればいいんだけど。

2017-08-10 日報

RedisへのIOを隠蔽するための abstractなclass、RedisDaoBase を作成し、それを継承したクラスを2つ作成。 さらに、JUnitのテストコードを作成。 とりあえず Redis <-> Model の超基本的な実装はできたので、夏季休暇明けにゴリゴリと組み込んでいく。 あとはRedisのPub/SubをModelクラスでどう扱うか... ## 参考 * [JUnitで依存関係のあるテストメソッドを順序通りに実行させる方法 - Qiita](http://qiita.com/nikuyoshi/items/e66ea8b1dfadf7ba52c2) * [Eclipse + Maven でソース管理するときの最適解(と思われるもの) - Qiita](http://qiita.com/greencoffeemaker/items/7b57a407c37b8d0a4d2b)

2017-08-08 日報

## 作業場所 自宅 ## やったこと * プロジェクト構成検討 * RedisClientクラスの実装 * JsonUtilityクラスの実装 ## 所感 適切なパッケージ構成とか漠然とした実装イメージで「この場合の適切なデザインパターンは何か」みたいなことを考えていたらお昼過ぎてたので、悩むのを止めて実装を進めることにした。 ## 参考 * [Subversion リポジトリに Eclipseプロジェクト を追加する](http://www.profaim.jp/tools/soft/eclipse/plugins/subversive/add_prj.php) * [Getting started · xetorthio/jedis Wiki](https://github.com/xetorthio/jedis/wiki/Getting-started#basic-usage-example)

2017-08-07 日報

## 作業場所 自宅 ## やったこと * ブランチ作成、プロジェクト構成検討 * PWAについて * 経歴書ページ作成 ## 所感 新システム構成の実装に向けてブランチを作成し、新しいプロジェクト構成について検討。 なんか最後に trunk にマージする際に面倒くさいことになる予感がする。 subversionじゃなくてgitの方が使いやすい... PWA (ProgressiveWebApps), ServiceWorker について斜め読み。 Egyptが一通り実装できたら、PWA化しよう。 経歴書ページの作成。ejs, sassで作成した内容をbuildしてhtml,cssを生成する仕組みを作った。 あと、google fontで良さげなフォントを見繕った。

2017-08-04 日報

## 作業場所 自宅 ## やったこと * テーブル設計 * ライトニングトーク会の案内 * 経歴書ページのデザイン検討 ## 所感 システム再設計のため、テーブル定義書を見直し。 半分くらいのテーブルがまともに使用されていない... 不要なテーブルの定義をカット。 職務経歴書を github のユーザーページに掲載しようと思い、ページデザインを検討。 ざっとWebで公開されているデザインテンプレートを眺めて、方向性を固める。 CSS3 の Grid Layout を使うのがいいかな。

2017-08-03 日報

## 作業場所 自宅 ## やったこと * 前日打ち合わせ内容のまとめ * 設計資料に前日ヒアリング内容を反映 * カンファレンス 講演依頼のメール返信 ## 所感 別の人が打ち合わせメモをメールしてくれたので、それに補足する形で打ち合わせ内容をまとめた。 自動で文字おこししてくれるソフトウェアがあったらいいなぁ。 打ち合わせを受けて、以前作成していた画面の設計書を修正。 細かい仕様や実装は他の人に依頼。 移動疲れが残っているようで軽い頭痛がするので、資料作成やメール返信だけして今日は早めに切り上げる。

2017-08-02 日報

## 作業場所 金沢 ## やったこと * ユーザー要望のヒアリング ## 所感 現在開発中のシステムを先行導入されているユーザーに対し、具体的要望をヒアリング。 昨日の打ち合わせと異なり、ユーザーから要望を引き出す必要があるが、こういうのはあまり上手くない。 どうしても一方的に喋り倒してしまう。 工場内に入らせてもらい、現在紙ベースで管理している様子などを見ることができたので、今後の参考にしたい。 サンダーバードのグリーン車で帰宅。 C席だと隣に席がないのね。次からはC席を予約しよう。

2017-08-01 日報

## 作業場所 京都 -> 金沢 ## やったこと * システム方式変更に関する打ち合わせ * 金沢前泊のため移動 ## 所感 現在開発中のシステムについて、先行導入ユーザーにてシステム構成に起因する問題が見つかったため、根本的にシステム方式を変更する事を提案。 肯定的な反応で、提案通りの内容で進めることで合意。 翌日に、その先行導入ユーザーのところでモジュールのアップデート&打ち合わせを行うため、金沢へ移動。 金沢駅周辺は想像より都会なわりに人がそれほど多くないので良い感じ。 ダイワロイネットホテル金沢に宿泊。 少しグレード高めのビジネスホテル、という感じで客室は非常に満足。 朝食は1Fの居酒屋(!?)でビュッフェ・・・なんだけど、ちょっと残念な内容。 近隣にスターバックスなどがあるので、朝食は別の場所で食べた方がよかったかも。