技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

Tips

インフレ、増税から家計を守る、完全自動家計簿ハック

www.youtube.com 概要 インフレ、増税の中で、「家計が苦しい、先行きが不安だ」と思ってる方は多い筈です。 しかし、家計を見直すにも、家計簿が必要…でもレシートから家計簿を作るのは大変です。 そこで、決済方法を工夫することで、全自動で家計簿をつけ…

ノートン等に「壊れたレジストリが見つかりました」と言われたときの無料対処

ノートン や McAfee 等を入れてるとたまに「壊れたレジストリが見つかりました」と言われることがある。 で、そのダイアログを見ると、追加コンポーネントの購入だとか、製品ページに飛ばされるわけである。 見つけてくれるのはありがたいが、騙しがないだけ…

CakePHP 4 で特定のラジオボタン出力だけでレイアウトをフルカスタムする

通常であればフォームヘルパー経由でラジオボタンを作成するはず。 しかし、通常のフォームは以下の様な構造で出力されてしまう。 <div class="input radio"> <label for='xxx1'> <input type='radio' id='xxx1' name='xxx1' /> Hoge </label> </div> これをどうにか <div class="input radio"> <div class='wrapper'> <input type='radio' id='xxx1' name='xxx1' value='Hoge' /> </div></div>

Docker + CakePHP4.2 + VSCode でデバッグサーバに接続する

日中そういうことにドハマリしたので、日々の勉強がてらやってみて成功したのでメモしてみる。 Docker version 20.10.2, build 2291f61 PHP 7.4.14 CakePHP 4.2 pecl/xdebug version 3.0.2 ということで、上記バージョン以外ではどうかは保証外。 ディレクト…

Laravel 開発環境をDockerで

久々にPHP 使うお仕事になったついで。 PHP で非常に人気のある Laravel の開発環境を用意したいと思った。(※注意:リリース環境ではありません) XAMPP とかクソくらえ! ちょっと暴論ではあるのだけど、自分は XMPP が気に入らない。 理由は非常に明白で …

Chrome は実は裏で色々できる

Google Chrome は実はコマンドラインから色々できるという話です。 事の起こりは、Selenium でブラウザ起動もせずスクショが取れたことから。 で、調べて見たら出るわ出るわ… ブラウザ表示せずスクショを取るあれこれ ということで早速やってみる。 --headle…

Chrome拡張をやってみる

Chrome 拡張いじれれば、色々便利じゃまいかと思ってとりあえず気の赴くままに作ってみた。 仕様は、現在開いているURLを markdown 書式でメモリにコピーするプラグイン あくまで目標は Chrome 拡張をやってみるということで… Hello world から どこから初め…

AmazonLinux2 に Java11 + Tomcat9 を Ansible2.7 で突っ込む

やろうと思ったきっかけは、そんなわりかし新しい構成でサーバ作ってと頼まれたので。 そして、やってみるとわかるのだけど、2019/03/21 時点でこれをリポジトリサポートしてるLinuxがそうそう無いと言うことに気づく。 強いて言えば Ubuntu18 が JDK11 だけ…

Checkstyle の Metrics 近辺の内容を日本語で分かり易く

checkstyle.sourceforge.net 個人的にチェックスタイルでもっとも素晴らしいチェックの項目群だと思うのだけど、これで引っかかると、意味が理解できなくて直すの止める人とか、「チェックが開発の邪魔だ」とか言ってくる人が多いので、なるだけ分かり易くメ…

単体テストコードの書きやすい設計入門

というようなドキュメントを github で書いたので、メモ StudyDocs/RefactorForUnitTest.md at feature/RefactorExample · Sunao-Yoshii/StudyDocs · GitHub 結論だけ書くと オブジェクト依存は、置き換え可能なようにしよう。 オブジェクト変数は極力書き換…

DI 入門者向けの話(DI が生まれる背景)

[日記][Tips]DI 入門者向けの話(DI が生まれる背景) Dependency Injection 日本語訳で、外部依存注入の話をする。 前提知識 オブジェクト指向には多態性なるものがある。 これは、Java でいうところのインターフェースに依存する作りをすることで、その実…

MyBatis の定義がクソ面倒なので、生成を狙う

A5:SQL Mk-2 - フリーの汎用SQL開発ツール/ER図ツール .. 松原正和 使って作ったテーブルのマッピングを書くのがだるくなったので、自動生成を狙った。 まずはこんな感じの ER を書いて、CSV でエクスポートする。 一応設定は UTF-8 で吐く。 そうすると、a5…

Java8 の Stream が物足りない人たちへ

www.vavr.io 言ってみれば、Scala 並の Collection を Java で提供するライブラリ。 何がいいって、Tuple とか Either 型もあるから、クソッタレな null や throw とおさらばできる。 その昔 javaslang (java.lang があるなら俗語があってもいいよね)と名…

引数パースライブラリの SCOPT(3.6.0) 使ってみた

紹介するのはこれ github.com 依存はこれだけ libraryDependencies ++= Seq( "com.github.scopt" %% "scopt" % "3.6.0" ) で、引数を格納するクラスをこんな風に用意して import java.io.File case class Config(javaDocXml: File, junitResultDir: File) パ…

JavaDoc を XML で吐き出すメモ

やりたい事が何かと言うと、外部プログラムにおいて、Java クラスのリスト取得と、そのドキュメントを引き抜きたいと考えた。 しかしながら、単純に javadoc のコマンドだけ実行すると、HTML ファイルが出てくる。 これは JavaDoc コマンドの仕様であり、基…

くたばれカーゴ・カルト・プログラミング

何? Wikipedia によると。 実際の目的には役に立たないコードやプログラム構造を儀式的に含めておくプログラミングのスタイルである。カーゴ・カルト・プログラミングは主に、プログラマが解決しようとしているバグか解決策のいずれかかまたは両方を理解し…

1 クラス 1 機能、1 メソッド 1 処理の徹底

どういう事? 名前の通り、クラス設計において、1つの機能は1クラスとして用意します。 また、1機能の実現もまた手続きがありますので、それら手続きも基本的にクラス、メソッドとします。 さらに、手続きの中でもループして書き換えるとか、なんらかの値…

オブジェクトの状態は作らない

ここで言う状態とは、クラス変数と振る舞いの状態を意味します。 例えば、クラス内の特定のフラグが true となったらメソッドの挙動が変わるなどです。 状態とは? Java で例えれば、Closable インターフェース実装クラスなんかがそれに当たります。 リソー…

設計はトップダウンとボトムアップ

設計のトップダウン コードが設計だとしても、全ての設計が不要になるわけではない。 もちろん、Excel 方眼紙に書いた誰も読まないコード書いた方が早い設計書ではない。 まずは機能設計までと名前空間(パッケージやディレクトリ構成)だ。 何の事はない、…

車輪の再発明は避ける

プログラマなら何度も聞いた筈。 でも、実際に車輪の再発明って結構やってるのでは? 車輪の再発明とは? 何のことはない、同じようなものを何回も書く事をいう。 例えば、AJAX API を作るという場合なら、XML/JSON でシリアライズ/デシリアライズの環境を整…

Playframework 2.4.x でセキュリティヘッダの設定など

まず前提として、Playframework にはフィルタという機能がある。 Playframework 2.3.x 以下の場合は、Global オブジェクトにミックスインする形式をとっていた。 ScalaHttpFilters だが、Playframework 2.4.x 以降は、DI も含めて形式が変更となり、root パ…

AmazonEC2 上に、Redmine 2.6.5 を構築したメモ

2017/6/15 : 流石に陳腐化したので AMI は消しました。 AMI 好きに使って 下記で作った AMI を共有しました。好きに使って。 当たり前ですが、バージョンアップとか色々あっても保証しないっすよー ami-4001ac40 メールサーバは立ててないので、ご自分で立て…

HTMLページをgithubに移したという話

ちまちまと自分の欲しくなったコンポーネントだけ作ってた az_ui ライブラリなんだけども、なんだかんだと更新が面倒になってきてた。 coffee/less コンパイルが手動 わざわざ手動デプロイ で、とうとうキレたので、github pages に移動したというお話。 git…

Playframework2.3、RequireJS と AngularJS を同時に運用してみる

それぞれがなんなのかは下記参照 AngularJS の入門をしてみる - 謎言語使いの徒然 Playframework2.3 で RequireJS 弄ってみる - 謎言語使いの徒然 で、特に難しい話とかはなくて。 build.sbt で Angular 読んで libraryDependencies ++= Seq( jdbc, anorm, c…

Playframework 2.2, 2.3 現状のおさらい。

まず最初に断っておく。現状(2014/08/25) 2.4 が RC 状態にある。 そして、2.4 には触れない事を断っておく。 Playframework2.2 おさらい 仕事で Playframework 2.2.3 を延々使ってると、新しいバージョンアップに疎くなるので、とりあえず乗り換えも視野に…

Webアプリで役立つセキュリティヘッダ

ということで片っ端から列挙 Cache-Control:no-cache を指定する。中途半端にキャッシュサーバにキャッシュされた挙句、関係ない人に漏洩する可能性があるので、キャッシュは禁止しておく。 X-Frame-Options HTML の frame を禁止する。デザイン上禁止すると…

Facebook 認証の設定

Facebook 設定ミス編 実際に本番環境にデプロイして、Facebook 認証をしようとすると、「指定されたURLは、アプリケーションの設定で許可されていません。」で散々エラー吐かれた。 これは、Facebook developers サイトの、下記項目を修正した。 AppDomains …

サーバに色々デプロイしようとしてハマった記録

Chef でローカル仮想マシン上に目的のサービスがデプロイできるようになったので、リモートサーバへのデプロイを実行してみた。 その時、かなり色々つまづいたのでメモ。 iptables は一時的でも切るしかない ssh ポート以外にも何かのポートを使っているらし…

Chef で CentOS に Playframework2.2.x アプリをデプロイする

CentOS5.10 で動作確認。多分 CentOS 6.x もそんな変わらない筈。 段階を踏もうか。 Play アプリをリリース用にコンパイルする Chef を使ってJavaを突っ込む Chef でデプロイ用 Cookbook を作って配置する 起動スクリプトを書いてデプロイする knife solo co…

CentOS5.10 の Vagrant box を作り直し

https://dl.dropboxusercontent.com/u/717203/centos5.10-final.box これ。 名称は変わってない。 キチンと halt とかその他が走るようになってる。 6/23 追記:メンテナンスだるいので削除しました