- blogs:
- cles::blog

Carbon で綺麗なソースコードの画像を生成する


Carbon というソースコードの画像を生成するサービスを見つけたのでメモ。
GitHub でソースも公開されており、実装は Node.js で行われているようで、日本語の README もありました。
- Carbon | Create and share beautiful images of your source code
- carbon-app/carbon: Create and share beautiful images of your source code
コードなんだからテキストデータにしろよという感じもしますが、プレゼンなどでシンタックスハイライトした状態のコードを他人に見せたいとか、OGP に埋め込みたいような場合に役に立つのではないでしょうか。

User Local が Cookie 同意管理バナーツールを配布


User Local が Cookie 同意管理バナーツールの配布を行っていたのでメモ。
4 月から改正個人情報保護法が施行されるので、こういうツールの導入が国内でも本格化してきますね。
Google Analytics対応の「Cookie同意管理バナーツール」を無償で配布|株式会社ユーザーローカル
クッキー利用可否を確認するためのJavaScriptを開発してWebサイトに実装するには、工数や費用がかかってしまうという問題がありました。その声に合わせ、クッキーの許諾可否をWebサイト上で得るためのJavaScriptを、無償で配布します。

colors.js と faker.js の作者が故意にライブラリを破壊



colors.js と faker.js の作者が故意にライブラリを破壊するような push をしたことが騒ぎになっています。
基本的にはダウングレードすれば良いだけですが、OSS は性善説で運用されていて意図的におかしな状態のライブラリがリリースされるということは想定されていないのと、colors.js と faker.js は人気ライブラリであるということが相まって、大きな騒ぎになってしまっていますね。
このような push が行われた背景として、作者に不幸な出来事があったり、人気ライブラリでありながら思うように収益が上げられないということもあったようです。
今後はこういう作者が自暴自棄になってしまうというのも OSS のリスクとして捉えないといけないのかもしれません。
colors.jsとfaker.jsの作者が自らのライブラリを破損、背後にはオープンソースを悪用する企業への不満? | OSDN Magazine
両ライブラリの開発者Marak Squires氏が意図的にinfinite loopを導入し、”LIBERTY LIBERTY LIBERTY”というテキスト、非ASCII文字が表示されるようにしたと記している。経緯としては1月8日に、color.jsでアメリカ国旗モジュールが加わったというバージョンをv1.4.44-liberty-2としてGitHubとnpmにプッシュしていたという。faker.jsでも、サボタージュ版とされるバージョン6.6.6がプッシュされており、ライブラリのユーザーの混乱を招いた。

ぷよぷよを写経する?




ぷよぷよを使った写経型プログラミング学習教材を見つけたのでメモ。
写経型プログラミング学習というのは、お手本を書き写すことによってプログラミング学習する形態を指しているようです。
セガとアシアル、アクションパズルゲーム『ぷよぷよ』のソースコードを活用したプログラミング学習教材を共同で提供開始|株式会社セガ
このたび提供する教材コンテンツでは、HTML5やJavaScriptで記述されたソースコードを書き写す作業(写経)を通して、実際に『ぷよぷよ』のプレイ画面を確認しながらコーディングを行います。プログラミング初心者にとって書き写し(写経)は、コーディングに慣れる、間違いを自分で発見し修正する能力が身につく、そして完成させたという自信につながります。完成後は背景の「ぷよ」の色を変えたり、「ぷよ」の置ける数を増やすなど簡単な設定の変更など改編も可能です。
HTML5 と JavaScript なので、それなりに経験があれば楽しめそうです。
ただ、全くの初心者が書き写すだけでプログラミングがマスターできるかと言われると微妙ですが、とりあえず触れるきっかけとしてはアリではないでしょうか。
興味がある場合は以下からどうぞ。

curl で CORS の設定を確認する


慣れないとちょっと難しいウェブサーバの CORS ヘッダの設定。
原理と設定方法については「オリジン間リソース共有 (CORS) - HTTP | MDN」を一通り読めば大丈夫ですが、XMLHttpRequest などを使って実際のリクエストをしてみると上手く動かないということが多々あります。そんなときには curl でプリフライトリクエストを模したリクエストを送ってみると原因を確かめやすいです。
オリジンの https://example.com
から https://example.jp/hoge
にリクエストを送信する場合、curl
のコマンドでは以下のように表すことができます。
上記のコマンドを実行すると以下のような結果を得ることができます*1。
上記でリクエスト>
とレスポンス<
で、同じ内容が帰ってきていれば問題ありません、
例えば Origin:
と Access-Control-Allow-Origin:
、Access-Control-Request-Method:
と Access-Control-Allow-Methods:
、Access-Control-Request-Headers:
と Access-Control-Allow-Headers:
の部分の対応をチェックすることになります。
- *1: schannelのログは除いています。

気象庁から json でデータが取得できるようになってる



気象庁のウェブから天気予報のデータが JSON で取得できると教えてもらったのでメモ。
2月にリニューアルされたときにそこそこ話題になった*1ようです。
厳密には API ではないようですが、コンテンツ自体は政府標準利用規約(CC-BY 4.0 互換)として利用できるとのこと。
以下のように Javascript からも簡単に呼出して組み込むことができますね。
† 実際のコード

ブラウザ上で実行できる Email パーサー「PostalMime」


PostalMime というブラウザ上で動作する Javascirpt で実装されたメール(RFC5322というか、いわゆる .eml ファイル)のパーサーを見つけたのでメモ。
生の .eml ファイルはマルチパートの扱いとか、ヘッダの MIME エンコードとか、扱おうとするといろいろと面倒が多いのでこういうライブラリがあると助かります。特に画像のような spam のリンク先を確認したりするときにメーラーで開きたくないような時に便利です。
「PostalMime」にデモページがあるので、簡単に動作確認ができます。

Ubuntu に mvn を使って Node.js をインストール



先日、nvm-windows をインストールしましたが、Linux 環境にはまだ nvm をインストールしたことがなかったので WSL 上の Ubuntu に「nvm(Node Version Manager)を使ってNode.jsをインストールする手順 - Qiita」を参考にして nvm を使って Node.js をインストールしてみました。
結果的に手順としてはこんな感じになりました。
この、git の最新のタグを取ってくる部分はいろいろと応用が効きそうです。

terser を使って js を最適化してみる

terser という JS を最適化するコンパイラを調べてみたのでメモ。
JavaScript で作ったアプリをリリースする前に js を最適化しておきたかったんですよね。
以前は google の closure-compiler を使ったりしていましたが、最近は npm でインストールできる terser を使っている人が多いようです。
インストールは npm で一撃です。
今回はこんな感じでトップレベルまで最適化をかけてみました。
オプションになれていないので、まだまだこのあたりは慣れが必要ですが、とりあえずテストは通ったので大丈夫でしょう。
アロー関数式*1を使っている場合には --ecma のオプションをつけないとエラーになってしまうので注意が必要です。
test.js
min.js

JavaScript で XPath を使う

JavaScript から HTML のノードを XPath で検索する方法を調べてみました。
Document.evaluate()*1を使うと意外と簡単に実装できますね。
以下のプログラムを以下の HTML に対して実行すると fuga2, fuga3 のノードが取り出せることが確認できます。
sample.html
† 参考
- Rufus Windows11 インストーラカスタム
- Rufus に Windows のインストールをカスタマイズできる機能がついてた
- Rufus Windows11 インストーラカスタム
- Rufus に Windows のインストールをカスタマイズできる機能がついてた
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110922)
3 . 年次の人間ドックへ(110486)
4 . 2023 年分の確定申告完了!(1つめ)(110034)
5 . 三菱鉛筆がラミーを買収(109934)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]