Bash on Windows のショートカット実行で .profile を読み込ませたい

WSL

ショートカットはこれ。 自分の場合 C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Bash on Ubuntu on Windows.lnk にインストールされてた。 結論としては ~/.profile に -f ~/.bashrc && . ~/.bashrc を書いて BoW のショート…

ロードバイクで家から職場まで片道 17km ほど走った

多分二回目ぐらい(前回もうほとんど忘れてるけど)。 距離はそんなでもないんですが、得られるものが多々ありました。 ロードバイクに乗るとどうしても時間差で吐き気がするほどの頭痛に襲われて休むほかなくなる状態になってしまっていましたが、 目的地に…

ふとテキストを HTML エスケープしたい時に使えるブックマークレット

いつも必要になった時にこんな感じのコードを DevTools のコンソール上で実行してるので雑にブックマークレット化してみた。 ダイアログが出るのでそれにテキストを入力すると alert() でエスケープしたテキストを表示するので手動コピーする。 javascript:(…

SVG の <circle> を <path> で描く

ふと仕事で SVG の <circle> タグの代わりに <path> を使って円を描く必要があったので調べたところ、色んな書き方 (描き方) があるらしいことが分かった。 自分が見つけたのは 2本の円弧で描画 4本の3次ベジェ曲線で描画 8本の2次ベジェ曲線で描画 の3通り。1番目が簡単な</path></circle>…

Vim script に ECMAScript の Observable がほしい

タイトルは前記事からの流用。 最近 Vim script で Java 8 の Stream API を実装する、ということをしている。 tyru.hatenablog.com github.com Vim 8 でも lambda が入ったので、メソッドチェインでどんどん処理を繋げるスタイルの書き方ができると嬉しいと…

Vim script に Java 8 の Stream API がほしい

Vim

ので作ってる。この記事も PR も絶賛更新中。 github.com 一言で言うと underscore.vim + Data.LazyList 的なものがほしかった。 Twitter でぼやいた時の会話。 vital.vim の Data.List って、名前からだと https://t.co/423dfKhtl4([1,2,3,4,5]).filter({x …

煩悩 退散 方法

何が思考を妨げているか、という質問を自分に投げかける。 するとそれが浮かび上がってくるので、それを無視する。 しばらくすると頭の中が静かになる。

Windows での最速 Node.js 環境構築

Windows での Node 環境のセットアップが楽になってるな。npm install -g windows-build-tools だけで済むようになってる。もう手動で Python とかインストールしなくていいのか。 https://t.co/r9KDFUp23Z— tyru (@_tyru_) 2017年3月12日 というわけで Wind…

Promise の処理の流れ

メモ。Twitter に書いたことをそのまんま引用。 https://t.co/O2yTz3ZHGW then() の引数に null 指定したらスキップされるのか。知らんかった— tyru (@_tyru_) 2017年2月15日 @_tyru_ Promise chain のどっかで エラーが起こるか reject された時の処理って…

Express で書いてるコードを TypeScript 化した時に対処したこと

tyru.hatenablog.com の続き。 今度は express-generator で自動生成されたバックエンドのコードを TypeScript 化してみる。 tsconfig.json に “allowJs”: true を指定する express-generator のコードは bin/www から app.js を require() する形になってい…

TypeScript 入門 + Express 再入門した

モチベーション 以下の記事を見て作りたくなったからです(ありがとうございます)。 TypeScript 入門するのは 私的TypeScriptとの関わり方ガイドライン - 角待ちは対空 を見たから。 Express 再入門するのは Express入門 - ぺーぺーSEのブログ を見たから。…

TypeScript + Webpack 使った時に出たエラーと対処したこと

loaders に loader を指定する時は test プロパティのパターンで絞り込むこと html-loader を使おうと思って .html のファイルを require() したら、ts-loader に渡って解釈されてしまったので、絶対つけること。 当たり前っぽいけどこれでハマったので。 ER…

私の IT エンジニアとしての原点

エモい話を Twitter で呟いた。 ここら辺の話はHow I Vim のインタビューとかでも話してて、おそらく原点に近い*1部分だと思うので、ブログにも投下してみる。 アラートメールが埋もれる問題はなかなか難しくて、前の職場では朝チェックと称して人力で全ての…

YAMAHAルータ:LAN マップ機能、L2MS、スイッチ制御機能

プライベートブログに書いて、それなりに有用な情報が含まれてるような気がしたので公開しようと思ったけど、気のせいかもしれない。 YAMAHA の技術は世界一ィィィ!! LANマップ機能 L2MS いいなー。 LAN マップ機能自体は RTX1210 や NVR510 が必要で手持…

Promise が resolve されてるかチェックする

ってこれでいいんじゃないか? と遅延した電車内でふと気が付いた。 コードは全部スマホで打ったので syntax error 等あるかもしれませんが… 追記(2017/2/15 21:50):案の定 delay() 関数が間違ってたので修正。あと例を追記。 追記(2017/2/19 21:50)ブ…

YAMAHA の機器を使っているネットワーク管理者が購読した方がいいたった一つの RSS フィード

TL;DR ここのページにある RSS フィードで、YAMAHA ネットワーク機器のファームウェアアップデートの更新通知が取得できる。 YAMAHA さんから Twitter で回答を頂いた YAMAHA さんの公式 Twitter に質問した。 @yamaha_sn 突然すみません。 https://t.co/qdO…

ファイルサーバは WebDAV でマウントさせてる

Windows 7でWebDAV(SSL)をネットワークドライブとしてマウントするまで - Humanity これに書いてないことがある。 それは Windows で送れるファイルサイズに制限があることだ。 レジストリをいじったとしても上限以上のファイルは送れない。 こっちに書いて…

はてなブログの記事をブログ間で移動させたかったから MovableType 形式のファイル用の Vim 折り畳みプラグイン作った

Vim

github.com 使用方法 珍しく GIF アニメ作ったのでそれで察してください。 はてなブログでエクスポートした記事のテキストファイル(MovableType 形式)に折り畳みを付けるだけのプラグインです。 インターフェースは MovableTypeFoldToggle コマンドしかあ…

漫画の新刊通知してもらうためにベルアラートから amakan に移住するために amakankan にベルアラート対応の Pull Request を送った

移住にあたってデータを移す必要がある。 幸い amakan には amakankan という色んなサイトからデータを移す Chrome 拡張がある。 ので、ベルアラート対応を機能追加してみた。 github.com amakankan の作者さんに Docker で npm build できる環境を整えても…

ゲームのバグ技と技術の類似性

YouTube でゲームのチート動画巡りしていて、ふとゲームのバグ技は技術と似てる部分あるよなーと思ったりした。 もちろんゲームと業務改善を目的としたシステムだと前提が違うので色々違ってる所もあるだろうけど。 以下の文章の「バグ技」と「技術」を交換…

ムジュラの仮面すげぇなぁ

このままだと1月に何も記事を書かなかったことになるので、またいくつか日記ブログの方から輸入する。 どうしても公開されていると身構えて書かなくなってしまう。 序盤のスタルキッドに馬を奪われて追いかけるシーンで、まず初めにプレーヤーはジャンプの操…

GitLab の Groups の権限バグ

8.15.1 で起きてたけど朝起きたら 8.15.2 が降ってきてた。修正早い… gitlab-ce-8.15.1-ce.0.el7.x86_64 であるリポジトリの Groups に含まれているユーザで clone ができなくなった Users に追加したら clone できた Users から削除して Groups 自体の権限…

Vim のマッピングで Fizzbuzz 問題を解く

Vim

この記事は Vim Advent Calendar 2016 19日目の記事です。 締め切りがない世界に行きたいと言いつつ、締め切りがなければ何もしないニート根性の tyru です。メリークリスマス!!(錯乱) (レジスタ編) Fizzbuzz 問題のコード 以前私はこんなコードを Gist に…

Java の Web アプリで色んなコードを共通化したい

この記事は Java EE Advent Calendar 2016 5 日目の記事です。 昨日は lbtc_xxx さんの「JPA Builder パターン」 でした。 明日は glory_of さんです。 Java の Web アプリを書く時、共通化したいけどどうすればいいか、 どう書くのが推奨されているのかをま…

ミニマリストな Vimmer におすすめしたい履歴管理プラグイン oldfilesearch.vim

Vim

この記事は Vim Advent Calendar 2016 (その2) の 4 日目の記事です。 追記:oldfilesearch.vim のリポジトリへのリンクを貼り忘れていたので追記しました。 履歴管理プラグインへの懸念 履歴管理プラグインには様々なものがあります。 例えば MRU.vim であ…

自転車関連の本が Kindle Unlimited で大量に読み放題になってる

著者名「BiCYCLE CLUB 編集部」でググると大量に見つかる。 ゼロから始めるロードバイクの本 (エイムック 3129)作者: ライダースクラブ編集部出版社/メーカー: エイ出版社発売日: 2015/06/10メディア: ムックこの商品を含むブログを見る ロードバイクの基本 …

リストについて

昨日に引き続き、またまたネタを日記ブログから持ってくるパターン。 何となく読んだり見たりしている内に頭に思い浮かんだものを書き出した文章の練習みたいなもの。 データ構造としてのリストだったり、もっと抽象的な数珠繋ぎとなった何かについて書いて…

コピペに関する懺悔と感謝

最近細かいネタが無いので日記ブログから引っ張り出して無理矢理エントリにしてみる。 共通ライブラリを作ると「ライブラリ側で想定していなかったので…」という事態が起こり得るが、頻繁に仕様変更が起きる現場だと、強い心がないと共通ライブラリは作りた…

ろんぐらいだぁす!読んだ

最近ロードバイクを譲り受けて、自転車沼にズブズブと浸かり始めている。 「パーツが余ったから自転車一台組んじゃった」っていう完全に自作PCのノリで自転車作る人が職場にいるんだけど、その人に余ってるマウンテンバイクを一台頂いてしまった。— tyru (@_…

「ひなた先生が教える デバッグが256倍速くなるテクニック」を読み返した

ひなた先生が教えるデバッグが256倍速くなるテクニック (Software Design Books)作者: やねうらお出版社/メーカー: 技術評論社発売日: 2008/11/14メディア: 単行本(ソフトカバー)購入: 20人 クリック: 287回この商品を含むブログ (51件) を見る 大学生当時…

GitLab 運用して起こったエラー対処法

tyru.hatenablog.com tyru.hatenablog.com の後日録です。 あと、今日ちょうど GitLab の新バージョンが出たようです。 GitLab 8.13 Released with Multiple Issue Boards and Merge Conflict Editor | GitLab 同時に git push した場合のエラー gitlab.com …

Spring でリクエストボディの JSON に対してバリデーションを行う

問題 Spring でリクエストボディの JSON に対して共通のバリデーション処理を行うに当たって、まずは問題がある。 @ControllerAdvice を使うと、コントローラーが実行される前にバリデーションなどの共通処理を行うことができるが、 @ControllerAdvice で実…

Java のマルチスレッドに関する本を読んだ

並行処理に限る訳ではないけど、ここに挙げた本読めば Java でそこそこ安全にマルチスレッドなプログラム書けそうな気がしてくる。 まぁ実際並行・並列処理は量書いて身につけないとしょうがないけど… ぶっちゃけて言えば、読む前から変わらなかった意見は「…

Java 8 でインスタンスを遅延して構築するいくつかの方法

シングルトンを構築するには、enum を使うのがスレッドセーフだしお手軽です。 なぜなら enum の初期化は1つのスレッドから1度だけ行われると規定されているからです。 また、コンストラクタを private にしてもコンパイルエラーにはならず、何の問題もなく…

JMX とそのユースケース等について

監視によく使われる できること 値の(クライアントから見た)プル 値の変更 値のプッシュ 閾値を超えた段階での(クライアントへの)通知 代替案 プルや値の変更は REST API とか作ればできる プッシュや通知はロギングや MQ 等のミドルウェア、または MBaa…

「常に」ファクトリーメソッドにするべきか?

ファクトリーメソッドのメリット 毎回インスタンス生成しなくてもいい Flyweight パターンの様にキャッシュ コンストラクタではジェネリクス引数の型を記述しなければならないが、メソッドなら引数の型を勝手に推論してくれるので記述する必要がない(C++ と…

DB 設計と URL 設計、SPA、バックエンドについてダラダラと書いた

昨日 Web アプリの DB 設計をちゃんとやろう、と思ってふとノートに色々と書いていた。 その時に何となく感じる事があったのでメモする。 色々当たり前の事も書いてあると思うけど、わざわざブログに書いてるのは、自分の中で一本頭の中の線が繋がった気がし…

JUnit で hamcrest のライブラリを依存関係に追加した時の SecurityException

stackoverflow.com 色々自信なさげなエントリだけど一応メモ代わりという事で。 自分の場合、これが起きた原因として、一度 Maven の依存関係に JUnit が無い状態でテストクラスを作ろうとして、 「jar を追加しますか?」(うろ覚え)みたいに聞かれて Ecli…

最近の Java EE について調べてみた

私は仕事で Java に関わってきましたが、実質仕事で関わってきたプロジェクトはまだ3~4年ぐらい、 そしてそのプロジェクトの中にはいくつかコードを書く仕事ではなく Excel 仕事がメインというプロジェクトもあり、 正直言うとあまり積極的に Java に関わろ…

GlassFish に asadmin で H2 DataSource 登録

GlassFish なら管理コンソール(http://localhost:4848/)で操作もできるけど、4.1 や 4.1.1 だと JDBC に H2 の DataSource を登録する時に RuntimeError が出て登録できなかった… ので仕方なくコマンドのやり方を調べた。 コマンド asadmin create-jdbc-co…

Windows のリソースモニターで使用中のファイルやフォルダを表示する

あるディレクトリを消そうとしたけど下層ディレクトリにcdしてて消せないとか .exeを実行しているから消せないとか、MacやLinuxだとそういう事がないからいいよなぁ… こういうのでひっかかると地味にイラつく。どのプロセスが握ってるか分からないから結局再…

業務アプリで malloc() のアルゴリズムを実装する羽目になるとは思わなかった話

釣りタイトルだけど嘘は言ってない。 DBから連続的な番号をN個取る処理は考え方としては malloc() と同じだと気付いて Twitter でアレコレ考えたのをまとめた。 要点だけ言うと、 連続的な番号をN個取得し、それを ID として貸し出す処理は(考え方としては…

etckeeper で commit されたら GitLab に push する

手順 (各ホスト) 以下の手順を自動化したスクリプトはこちら(実際のものとは多少異なります)。 etckeeper-setup-host.sh · GitHub 1. SSH鍵を生成 # ssh-keygen -t rsa -C "$(hostname)@gitlab-root.url" -N '' -f /root/.ssh/gitlab-$(hostname) 2. /root…

/etc/ssh/ssh_host_* の SSH 鍵を再生成する

d.hatena.ne.jp 結論から言うと、上記記事の通り SSH 鍵を削除するなり移動するなりして sshd を再起動すれば自動的に生成してくれる。 # rm -f ssh_host_{ecdsa,ed25519,rsa}_key{,.pub} # systemctl restart sshd どんな風に実装されてるか気になったので…

非対話的に ~/.ssh/known_hosts を更新

qiita.com 基本は上記記事の host="target-hostname" ssh-keygen -R $host ssh-keyscan -H $host >> ~/.ssh/known_hosts でいいのだけど、(少なくとも自分の環境だと) ssh-keyscan で出力した1列目のカラムにホスト名しか出力されず、 その後別のレコード(…

ローカルの様々なリポジトリを GitLab につっこんだ記録

やったこと Gitlab を VM にインストール ローカルの未公開リポジトリを Gitlab にプッシュ NAS の様々な場所に点在している bare や non-bare なリポジトリ あるリポジトリをジョブ管理ツールでジョブ実行した時に git push で更新 BitBucket のリポジトリ…

本で勉強するか Web で勉強するか

最近技術書を買うかどうかの判断が確立してきた。 のでブログにまとめてみる。 自分の場合、以下のような大きい問題領域を扱う技術を本気で勉強したい、となったら本を買うと決めている。 プログラミング言語 OS 手法自体に関するもの けどライブラリやツー…

eslint-config-airbnb を React 以外のプロジェクトにも使いたい

Can I use eslint-config-airbnb without eslint-plugin-react? · Issue #451 · airbnb/javascript · GitHub React 以外のプロジェクトに eslint-config-airbnb を使うには、eslint-config-airbnb-base を使う。 上記 issue では extends に airbnb/base を…

new Date('hoge').toString() が 'Invalid Date' になる

JS長いこと仕事で書いてきたのに「無効な Date 型の値」なんてものがあるのを初めて知った…— tyru (@_tyru_) 2016年8月19日 new Date('hoge') がエラーじゃなく無効な値を持つ Date 型の値なんてものを作れてしまう。isNaN(date.getTime()) で判定する。date…

Angular の $http, $resource が返す promise で受け取れる値

Angular 使ってて今更だけど $http と $resource が返す promise で受け取れる引数が違って混乱したのでまとめてみた。 $http まず $http の場合は resolve(), reject() された値を受け取る方法として2通りある。 $http(...).then(successCallback, errorCal…