Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

上限付き境界ワイルドカードについて

Javaを使っていると、Clazz<Foo extends Bar>とかClazzというような あまり見た目にやさしくない呪文を見かけると思います。 これはなんだ?って話です。 これは上限付きワイルドカード(upper bounded wildcard)といいます。 そもそもなんでこれが必要なのか メソッドやクラス</foo>…

Express 4 + EJS + Socket.IOでWebSocketをやってみる

WebSocketをNode.js(Express 4 + EJS + Socket.IO)で復習がてら実装しました。 ハマりポイントはbin/wwwを修正しないと動いてくれないところ。 Expressってシンプルで綺麗な設計のフレームワークなんですが、 結構はまりやすいポイントが多いと思います。 No…

WindowsでGitLabを構築(Docker)

Docker DesktopによるGitLab構築方法の紹介です。 一応、初心者向きにはなっていますが、 Dockerの基礎知識は知っている前提の記事です。 Windows + Docker Desktop (旧版 Docker for Windowsでも可)で構築します。 Windowsでも動けば、Mac/Linux等でも動く…

Dockerのコマンド体系がわかりにく過ぎる

Docker自体は素晴らしいアプリケーションで、作っていただいている方、メンテナンスをされている方に畏敬の念を禁じえません。 CLIのフロントエンド、コマンド体系が理解するのが難しいと言わざるを得ません。理由としては、一見よく使うコマンドの対称性が…

JavaScriptで使えるグラフ描画ライブラリとその有効活用例について

ふとニュースなどをみていて、新型コロナウィルスの感染状況のグラフのサイトを見つけて、お、綺麗だしシンプルでいいなと思ったのがここ。 よくある質問の部分も、一見、グラフを眺めていて、ん???と思う疑問点が書かれてあって良い。 「具体的な基準はM…

VSCodeでPython3開発環境構築

WindowsでVSCodeとAnaconda3(Python3)で開発環境を整えることにしました。 目標は次の通りです。 VSCode上で関数の定義へのジャンプや参照、コード補完ができる docstring(JavaでいうJavadoc)が楽にかける テストのカバレッジ取得及び通ったコードパスが視覚…

Windowsを英語化

Windowsを英語化してみました。 まだ2日しかたってないですが今のところトラブルなし。 Explorerで最初の一文字目をキーボードで打ってフォーカスがあてられるように DocumentとかPicturesとか英語のままがよかったので、 英語版にしました。もちろんそこだ…

Processingで内積・外積の勉強

ひょんなことから内積・外積をちゃんと学びなおしたいと思い… 文系であった自分はあまりなじみがないのです。物理も選択せず生物選択でした。 数学は嫌いではないんだけど、計算が得意でなかったです。 とはいえ行列をやっていた関係もあり、全く知らないと…

サクラエディタで特定のフォルダにYYYYMMDD_番号.txtで保存するマクロを作成

最近の趣味はサクラエディタのPull Requestを眺めることです。 昔から愛用してきたサクラエディタですがマクロを使ったことはありませんでした。 ということで毎日よく簡易的にメモをテキストエディタに書いてYYYYMMDD.txtみたいな形式で保存するのですが、 …

Anaconda3とAnaconda2のインストール(Windows)

例によって備忘録です。 Anaconda3とAnaconda2をWindowsで共存させる方法です。 ありふれた記事なのでGit Bashで使う方法も記載しました。 Python2のEOLが到来したというのに何をしているんだという感じですが、 いまだにNodeの安定板がPython2に依存してい…

npmの設定ファイルの場所

npm config setするよりエディタで直接いじりたくなる人向けの内容 npm config listとかで設定を見ると思うが、 そもそもどっちに設定されているんだっけ? ってのもあるので… npm -g config listというのもある。 npmの設定ファイルの場所 普通はnpm config…

Maven + Eclipseでマルチモジュールプロジェクトを作成する

良く忘れるのでメモ 様々な事情でプライベートリポジトリを立てられなかったりする場合や、 そもそもプライベートリポジトリ立てるまでもないよねというときに便利なマルチモジュールプロジェクトの構成を作ります。 お題目は、Spring Boot + MongoDB + Post…

Windows 10 バージョン1803でhangoutsなどのマイク音声が拾えない

久々にhangoutsでマイクを使おうと思ったら、トラブりました。 相手に音が聞こえないようです。 Skypeでは聞こえるのに… ちなみにhangoutsはサービスが終了する見込みのようですね。 10年前のマイクデバイスを使ってたので調子悪いのかな…なんて思ったりしま…

Vue.jsでテーブルソートを作ってみた

Vueの練習を兼ねてVueでテーブルソートを作ってみました。 気が向いたらPagerも作るつもり(気が向いたら)。 SPAは最近興味がないので(大半のケースでオーバースペックなので…) 単純にscriptタグでVueを入れてるケースです。 Vueをあえて選ぶ勢ってたぶんです…

レジストリの右クリック関連メモ

Explorerで右クリックしたときのコンテキストメニューは簡単に編集できる レジストリをいじればOK 例えばVS Codeの場合、インストール時にVSCodeで開くのメニューを出すチェックを入れ忘れた場合など、次のようにして追加することができる Win + Rキー reged…

Windows 10 ProでWordPressをDocker Composeで10分以内で構築してみる

Docker for Windowsが入っていれば30秒以内です。 Java大好き人間ですがPHP系の話題を書いてみます。 Dockerは既に入ってるよって人はdocker-composeのための設定から読んでください。 前提条件 Dockerが使える環境であること前提となります。 やや語弊があ…

GitHubで2段階認証を利用していてhttpでgit cloneできなくなった際の対処法

Git

何台かマシンを所有していて、たまに使うマシンでgit cloneするとユーザ名とパスワードを聞かれて、しかもパスワードを正しいのを入れても $ git clone https://github.com/foo/private_reop_bar.git fatal: Authentication failed for 'https://github.com/…

フィボナッチ数列でメモ化

なんとなくC++をちょろっと書いてみたくなったので書いてみました。 いや、ほぼC言語だけど…。 それよりもWandboxがC++2aとかになってて…えぇ…C++11からかなりバージョン上がってるなぁ…という印象です。 #include <iostream> #include <cstdlib> #include <stdexcept> #define CHECK(e) do</stdexcept></cstdlib></iostream>…

片手間でJavaScriptを書く際の定番の書き方メモ

ガシガシJavaScriptをかかないWebアプリで、比較的単純なJQueryだけのプロジェクトのときに極力名前空間を汚さず大してめんどくさくなく書く方法のメモ 見返したらただの感想文になってしまった。 とりあえず (function($) { ... })(jQuery);で引数ありの即…

Apache + Spring Bootの環境構築メモ

開発環境での構築手順です。 本番環境ならajpを使ったほうが良いと思います。 組込みTomcat(jar)を使った場合のajpの有効化方法は後述します。 今回は単純にApacheとSpring Bootをhttpで連携する方法を書きます。 Windowsを想定しています。 (Linuxとほぼ変…

Spring Boot 例外処理/エラーハンドリングメモ

Spring Bootでは例外処理はthrowしてしまえばわりとよしなにやってくれるが… それでも考えるべきことはある。 場合によっては例外処理をあまり使わず、オブジェクトの戻り値による処理をすることもある。 と、去年の1月からSpring Bootを使い始めてSpringの…

Windowsサービスで共有フォルダにアクセスするときのTips

サービスからネットワーク越しの共有フォルダを覗きたいことがあるが ¥¥example.machine.local¥folder のようなUNC(Universal Naming Convention)パスはプログラムからは使えない。 なのでネットワークドライブの割り当てをしたいと思うはず。 GUI(Explorer)…

Spring BootのScheduledTaskの検証

@EnableSchedulingを用いて Spring BootのScheduling Tasksについて調査しました。 Spring BootにはSpring Batchという仕組みがあるのですが、やや大仰で使いにくいです。 Web系システムでの利用だと単純なスケジューリングのTaskで十分なことが多いと思いま…

Spring BootのThymeleafとTypeScriptを組み合わせてみたかったのでやってみた

Web開発では最近はReact, Vue, Angularを使ってSPAが主流ですが、 とはいっても、レガシーなjQuery UIとBootstrapと組み合わせてサーバ側でレンダリングしたいこともままありますよね。 そんなわけで、僕の場合、特にjQuery UIを使いたい。 というのが一番に…

Spring Bootの外部設定値(application.yml)のプロファイルの優先順について

Spring Bootのapplication.ymlの仕組み素敵ですよね。 かなり柔軟性がある。 あるときにアプリケーションをMariaDBとMySQLでどちらも対応できるように外部設定値(Externalized Configuration) であるapplication.ymlにて制御しようとしたときにハマったので…

スーパークラスで呼び出されているメソッドのサブクラスでのオーバーライドについて

TL;DR スーパークラスのメソッドはサブクラスでオーバーライドすれば サブクラスのインスタンス経由で呼び出すと、 たとえスーパークラスでそのメソッドが呼び出されていても当然上書きされる。 経緯 とあるライブラリをカスタマイズしたくて、 そういや、ス…

2018年のReact最小構成の構築(非SPA対応)

今回作成する構成 事前準備 VS Codeを入れる 入れたほうが良いプラグイン Node.jsを入れる webpackコマンドを叩けるようにする Reactプロジェクトを作成する packageを追加する ソースコードを書く package.jsonに追記する webpack.config.jsを書く Reactの…

Angular moment.js脱却メモ

Angularを使っていてWebpackでのbundle.jsが肥大化したときにmoment.jsをやめたいときのメモ 可能な限りDateとimport { DatePipe } from '@angular/common';を使う date -> string moment moment(date).format('YYYY-MM-DD HH:mm:ss.SSS'); TypeScript + Dat…

プログラムのインターフェースは必要か

ふと、いろんな記事を見ていて、インターフェースは必要かっていうのがあった。 Java インターフェース メリット わからない - 社内se × プログラマ × ビッグデータ どういうものかは分かりますが、メリットについては何も分からないです。 処理を具体的に書…

AngularとjQuery/jQuery UIを組み合わせる

AngularとjQuery/jQuery UIを組み合わせるのは何か間違ってる気がしますが、 Angularの部品が足りなくて、どうしても使いたいことが起きることがあるかと思います(たぶん…)。 ここは意識低い系の方法を紹介します。 (意識高い系の方法は知識不足でちょっ…