unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

scikit-learnを使って糖尿病データ(diabetes)を解析する

scikit-learnを使って糖尿病データ(diabetes)を解析してみました。以下の機械学習モデルを使っています。 多項式特徴量 (PolynomialFeatures) + 線形モデル L1正則化 (Lasso) 多項式特徴量 + 線形モデル L2正則化 (Ridge) ランダムフォレスト サポートベク…

機械学習を理解するための数学のきほん

私が機械学習を始めるときに最初に読んだ本を簡単に紹介します。 やさしく学ぶ 機械学習を理解するための数学のきほん ~アヤノ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで~作者: LINE Fukuoka株式会社立石賢吾出版社/メーカー: マイナビ出版発売日: 2…

Google Java Style Guide

Googleが様々な言語のコーディング規約(Style Guide)を公開していることを最近知りました。Javaのコーディング規約についてざっと見てみて、興味深かった点をまとめました。 2 Source files basics 非ASCII文字をコード中に記述するときにUnicodeエスケー…

JavaでRSA暗号を使って暗号化する

RSA暗号での暗号化のJavaでの実装例です。秘密鍵で暗号化 → 公開鍵で復号、公開鍵で暗号化 → 秘密鍵で復号の2パターンを実装しています。

RSA暗号の簡単な解説

これまで何となくの理解で使ってきたRSA暗号について理解を深めるために、数学的な理論を調べて(自分なりに)わかりやすくまとめてみました。 基本理論 、 が素数であるとき、 を満たす について、 が成り立つ。 例えば、、 とすると、 となり、、 となる。…

bashrcとbash_profileの使い分け

読み込みタイミング ログイン時 .bash_profile → .bashrc の順に実行される bash起動時 .bashrc のみ実行される 用途 bash_profile 環境変数を設定する bashrc エイリアスを定義する シェル関数を定義する 参考 https://qiita.com/shyamahira/items/26086274…

EclipseでのSpring Bootアプリケーション開発

EclipseでSpring Bootアプリケーションを開発するときのTipsをまとめました。 はじめに:Spring Tool Suite(Eclipseプラグイン)を導入する Eclipseで開発するのであればSTS(Spring Tool Suite)を使うのが常套手段である。 ヘルプ → Eclipse マーケットプ…

GridSearchCVの結果をヒートマップで表示する

scikit-learnでGridSearchCVを使ってパラメータをチューニングする際に、各パラメータでの結果をヒートマップで表示して観察することがよく行われる。このヒートマップをGridSearchCVオブジェクトから簡単に作成する方法を調査した。 ヒートマップを簡単に作…

JerseryのリソースクラスでSpring AOPを使うときの注意点

JerseyのリソースクラスをSpringコンポーネントとして定義をするときに、Springの @ComponentではなくJSR-330の @Name を使うと、@Transactional や @Aspect を使ったSpring AOPが効かない。 Jerseyの公式リファレンスによると、リソースクラスには以下のい…

Spring Bootの依存性注入(DI)設定方法

Spring Frameworkの依存性注入(Dependency Injection)を設定する方法をまとめました。 コンポーネントのスキャン対象指定 デフォルトでは @ComponentScan が付与されたクラスのパッケージと同階層以下のパッケージをスキャンする。その他のクラスをスキャ…

Javaカバレッジ計測ライブラリ

Javaのテストカバレッジを計測できるオープンソースライブラリの現状を調査してみました。 要約 Coberturaは開発が停止しているため、今後はJaCoCoもしくはCloverが主流となりそう。ただしCloverは最近オープンソース化されたため、今後の継続開発(=コミュ…

Spring Boot DBコネクションプール

Spring Boot(Spring Data JPA)でコネクションプールを設定する方法をまとめました。 ライブラリの自動選択 コネクションプールライブラリは以下の順序で選択される。(クラスパスにライブラリがあるか確認し、あればそのライブラリを選択し、なければ次の…

Tomcatのlogging.properties設定方法

Tomcat 7/8のログ出力設定ファイル(logging.properties)の定義方法をまとめています。 Tomcatのjava.util.logging API実装(JULI)での設定方法拡張(一部抜粋) .handlersプロパティを設定することでルートLoggerのHandlerが定義できる。 Handler名にプレ…

MySQL 存在しないユーザー削除時のエラー回避方法

MySQLで存在しないユーザーを削除したときにエラーになるのを回避する方法を調べました。 MySQL 5.7.6以降 MySQL 5.7.6以降ではDROP USER構文でIF EXISTSオプションが利用できる。 DROP USER IF EXISTS user MySQL 5.7.5以前 IF EXISTSオプションが使えない…

BigIntegerでバイナリ値のビット演算を行う

Javaにはバイナリ値を扱う便利な機能があまり用意されていないないため、バイナリ値が格納されたbyte配列に対してビット演算を行うには、自力でビット(配列)間の値引き渡し処理を実装する必要があります。 よく使われる方法には、byte配列をint型やlong型…

シェルスクリプトでの正規表現を使ったバリデーション

exprコマンドを使う方法 target='aa bbcc' # 正規表現をクォートする。 # 変数展開時はワード分割を避けるためにクォートする。 if expr "${target}" : "^a\+ [b-c]\{4\}$" > /dev/null; then echo "match" fi # 正規表現にマッチしない条件分岐をするには!…

Spring FrameworkにおけるBeansとは

Spring Framework初心者である私がSpring BootのGetting Startedガイドを読んでみたときに、いきなり躓いたのがSpringのBeansという概念でした。これまでSpring Frameworkに触ったことがなければ、Beansと聞くとJava Beansをイメージするかもしれませんが、S…

自転車保険調査

これまで契約していた自転車保険の更新時期なので、契約を見直そうと少し調査してみました。 要件 個人賠償は1億円以上 死亡保障・入院保障は不要 一覧 今回調査した中で最もお得なのは全日本交通安全協会が販売するサイクル安心保険であった。その他は自動…

DataTablesでのAjaxエラー処理

DataTablesはリッチなUIを備えたテーブルを作るためのjQueryプラグインで、Ajaxを使って検索条件に応じて動的に表データを読み込むことができます。Ajax処理にてサーバーサイドでエラーが発生したときに、DataTables側でエラー処理を実装する方法を探すのに…

松本・塩尻のコワーキングスペース

松本市、塩尻市周辺にも少しずつコワーキングスペースが増えてきました。まだまだ利用者は少ないと思いますが、がんばってほしいところです。 エリア 名称 費用 WiFi 営業時間 定休日 松本 Knower(s) 500円 (3h)1000円 (1日) ○ 12:00 – 19:00 祝 松本 GREAM …

puppeteerを使ったスクレイピング

puppeteerを使ってスクレイピングを実装したときにはまったポイントをまとめています。 ナビゲーション完了の検知方法 あるURLにアクセスしたとき、もしくはボタンをクリックしたときなどにナビゲーションの完了を検知するには、単純にはDomContentLoadedイ…

API for DMM Mobile

Node.jsからGoogle Chrome(Chromium)を操作するライブラリpuppeteerを試してみるついでに、スクレイピングを利用したアプリケーションを開発しました。DMM Mobileのマイページを操作することで以下の機能をAPI化しています。 高速通信容量残高の取得 通信…

Express.jsでタイムアウトレスポンスを返却する

時間がかかってしまう可能性がある処理に対して、一定時間内に結果が返却できないときにはタイムアウトをエラーレスポンスで返す方法を調べました。結論としては、connect-timeoutを利用すれば実現できますが、いくつか注意点があります。 connect-timeout c…

Node.jsでURLからファイル名の拡張子を抽出する

ファイルシステムのパスからファイル名の拡張子を抽出するときにはpathのみで対応できますが、URLの場合にはクエリやフラグメントが付くので最初にurlでパス部分を抽出する必要があります。単純な問題ですが実装するときに少し悩んだので、備忘録としてまと…

Union Bank アラート通知設定

最近届いたDMで知ったのですが、Union Bankでは口座に対するアクティビティについて、メールもしくはSMS(アメリカ・カナダの電話番号のみ)で通知を受け取れる機能があるそうです。普段あまり口座をチェックしない方は設定しておくと安心できそうです。 具…

Herokuでpuppeteerを動かす

Herokuにpuppeteerを使ったアプリをデプロイする方法について、ブログ等で色々な方法が紹介されていますが、2018年1月時点で最も簡単な方法について整理しました。 (1) nodejs、(2) puppeteer-heroku-buildpack 順でBuildpackを適用する。 公式のトラブルシ…

つみたてNISA調査

従来のNISA制度に加えて今年から新たにつみたてNISAという制度が始まりました。NISAとの違いやNISAを利用している人の移行のポイントを自分なりに調べてみました。 つみたてNISAとNISAの比較 つみたてNISA NISA 年間投資上限 40万円 120万円 非課税期間 20年…

JRの乗車区間分割

あまり知られていませんが、JRの運賃は乗車区間を分割することで安くなることがあります。例えば新宿~千葉の区間であれば、全区間でのIC運賃は799円ですが、新宿~錦糸町(216円)+錦糸町~千葉(550円)とすると766円となり、33円安くなります。 乗車区間…

RobustScalerの適用結果をグラフに描画する

scikit-learnの前処理機能の1つであるRobustScalerについて理解を深めるために、単純なデータポイントに適用した結果をグラフにプロットしてみました。 RobustScalerの特徴 データポイントを、中央値が0になり、四分位範囲(interquartile range、IQR)が1に…

加湿器の比較

冬場の乾燥が気になるので、加湿器を購入しようと、加湿方式の違いや必要な加湿量など少し調べてみました。 加湿方式の比較 加湿方式 原理 メリット デメリット スチーム式 水をヒーターで加熱して蒸気を発生させる。 加熱により水蒸気の除菌とミネラル除去…