Okada Hiroshi の blog

typo が多いです

自動リロード

静的なサイトでも開発中には自動リロードして欲しいこともあるので、自動リロードするスクリプトを書いてみました。

poor man's autoreload

以下のスニペットを HTML 文書の head や body の内側に挿入すると 800ミリ秒ごとにHTML文書を(内部的に読み込んで)変化があったらリロードします。

<script src="https://cdn.rawgit.com/HiroshiOkada/6344f094955f3fc31deeffeec2718ff6/raw/4578f0948fa86cff08302a43aea1d913798ce23f/poor-mans-autoreload.js"></script>

追記

10分間変化がなかったらチェックを停止するようにしました。

追記 (2018-10-14)

使っていた RawGit というサービスが終了するので、gist でなく github page を使うことにしました。上記の代わりに以下を使ってください。

 <script src="https://hiroshiokada.github.io/shortcodes/poor-mans-autoreload.js"></script>

RawGit が終了するそうです。 - Okada Hiroshi の blog

GoogleニュースのRSS URL 組み立て

一時期 RSS リーダから遠ざかっていたのですが。最近また Miniflux という RSS インストールして使っています。

Google ニュースRSS 経由で 読みたいので、RSS フィードの URL を生成する簡単な Webアプリを CodePen で書いてみした。

入力欄にキーワードを(空白区切りで)いれて作成ボタンを押してください。

ちなみに URL の仕様は下記の記事を参考にしました。

www.yoshiteru.net

anond.hatelabo.jp

Google スプレッドシートにテキストを貼りつける

Google スプレッドシートにタブやカンマ区切りのテキストを貼り付けるると、貼りつけた直後は列が一つになってしまいます。 けれども貼付け後、テキストを列に分割を選択すると、期待したとおりに列に分割されます。

こういうのは知っている人にとっては当たり前なのでしょうが、僕は今日初めて知ったので書いてみました。

f:id:OkadaHiroshi:20180831162721g:plain

参考: セルのテキストを複数の列に分割する - パソコン - ドキュメント エディタ ヘルプ

SSL ワイルドカード証明書を購入しました

個人で所有しているドメイン toycode.com のワイルドカード証明書の期限が近づいてきたので新しい物を購入しました。

最近は Let's Encrypt があるので SSL 証明書を自前でもっているメリットは少なくないのですが、それでもワイルドカード証明書を一つ用意しておくと色々実験したりするのに便利です。

前回は namecheap という所から買いましたが、今回はさらに安く買える所がないか調べてみました。

プロバイダ サイトURL SSLブランド名 1年 2年
SSL2BUY https://www.ssl2buy.com/ AlphaSSL Wildcard $42.00 $80.00
Cheap SSLL https://cheapsslsecurity.com Comodo PositiveSSL Wildcard $72.95 $127.66
namecheap https://www.namecheap.com Comodo EssentialSSL Wildcard $74.88 $145.76

SSL2BUY という所が 2年で $80 (9000円程度) なので、ここで購入することにしました。

なお、日本語で展開しているところは例えば SSLストア だと2年で3万5000円、サイフにやさしいSSL証明書だと 4万4800円 と高いです。

基本的には持っているドメインの admin 等のメールアドレスか、ドメインwhois に登録されているメールアドレスがあれば、 あとはメールと Web サイトの指示に従っていけば良いのですが、CSR と private key は手元で作成する必要があります。

CSR と private key は openssl がインストールされていれば以下のようにして作成することが出来ます。

$ openssl req -new -newkey rsa:2048 -nodes -keyout toycode.key -out toycode.csr
Generating a 2048 bit RSA private key
...............................+++
.........................+++
writing new private key to 'toycode.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shinjuku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Hiroshi Okada
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:*.toycode.com
Email Address []:okadahiroshi@miobox.jp

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

なお、SSL の証明書は XXXXXXX: Your SSL Certificate for *.toycode.com has been issued のような題名の email で送られてきて、添付ファイルでなく、本文中の末尾に

-----BEGIN CERTIFICATE-----

... 30行以上の文字列...

-----END CERTIFICATE-----

というふうに書かれれいるので、この部分をコピペして、例えば toycode.cer みたいなファイルに保管します。

SSL サーバの起動にはこのファイルと先ほど作ったキーファイル (上記の例だと toycode.key) が必要です。

markdown-it のプラグインを書いてみました

nodejs の有名な Markdown パーサの markdown-it で 出力される html のエレメントタイプごとに class 属性を追加したかたので

www.npmjs.com

というプラグインを書いてみました。

markdown-it の内部構造はよくわかっていないので、他のプラグインのコードを参考に書きましたが、パフォーマンス等は悪いと思います。

$ npm install markdown-it @toycode/markdown-it-class --save-dev

みたいにインストールして

const MarkdownIt = require('markdown-it')
const markdownItClass = require('@toycode/markdown-it-class')
 
const mdText = '# テスト文書\n## サブタイトル\n今日は良い*天気*です'
const mapping = { h1: ['title', 'is-4'], h2: 'subtitle', em: 'tag' }
const md = MarkdownIt().use(markdownItClass, mapping)
console.log(md.render(mdText))

<h1 class="title is-4">テスト文書</h1>
<h2 class="subtitle">サブタイトル</h2>
<p>今日は良い<em class="tag">天気</em>です</p>

のようにクラスが付加できます。

EDINET API 仕様書説明会に参加しました

今までは、EDINET から有価証券報告書等の書類をダウンロードするには。手作業でEDINETの閲覧画面から取得するか、ウェブスクレイピングするか、第三者が開発したツールやAPIを使う必要があって非常に面倒なものでした。

幸いなことに、来年3月下旬より API を使って、書類の一覧の取得とダウンロードができるようになると言うことなので、今日説明会に行ってきました。

金融庁に行くのははじめてなので、ちょっと緊張しました。 f:id:OkadaHiroshi:20180821202051j:plain

説明は非常にわかりやすく、 API も REST (しかも GET だけ) なので、誰でも簡単に書類をダウンロードするプログラムを書けそうです。 ( 一覧等の情報は JSON で返ってくる )

なお、今後は以下のスケジュールで進行するようなので、 EDINET閲覧のサイト等をチェックしておいた方がよいと思われます。

日程 イベント
9月下旬 EDNET API 規約案、API仕様書案を EDINET閲覧サイトに公開。
11月〜12月上旬 外部接続実施要領を EDINET閲覧サイト上に公開。外部接続テストの参加希望者を募集。EDINET API利用者向けのサンプルプログラム、書類一覧のサンプルデータを掲示
12月中旬 外部接続テスト参加希望者に個別にスケジュールを連絡
2019年1月中旬〜2月末 β版を用いた外部接続テストを実施
3月中旬 本番サービス開始