- blogs:
- cles::blog
Ruby 3.0.0 がリリースされてた
ruby しばらくウォッチしていないうちに Ruby 3.0.0 がリリースされていました。
Ruby 2.7 からの変更がいろいろとある*1ので、時間をとって確認する必要がありそうです。
Ruby 3.0系初のリリースである、Ruby 3.0.0 が公開されました。
Firefox が米国で DoH(DNS over HTTPS) を有効に
firefox
dns
cloudflare Firefox が米国で DoH(DNS over HTTPS) を有効にしたことがニュースになっていたのでメモ。
HTTP については 2016 年に始まった Let's Encrypt のおかげで急速に HTTPS 化が進みましたが、DNS の暗号化については DNS over TLS と DNS over HTTPS のどちらが良いか*1という解決が難しい問題もあり、すんなりとは行きそうにありません。
今回の Firefox の場合、クエリは初期設定の場合 Cloudflare に飛んでいくことになるので、Cloudflare にはユーザーがどのサイトに接続しようとしているのかが丸見えであることに注意が必要です。
Mozilla、「Firefox」の“DNS over HTTPS”をデフォルト有効化 ~米国で実施 - 窓の杜
「Firefox」の“DoH”機能は、米国でのみ既定で有効。米国外のユーザーも、オプション画面(about:preferences)の[一般]セクション最下部にあるネットワーク設定へアクセスし、[DNS over HTTPS を有効にする]というオプションを有効化すれば利用できる。初期設定のプロバイダーは“Cloudflare”になっているが、“NextDNS”などを指定することも可能だ。
mysql2 をスレッドセーフに
ruby gem mysql2 をマルチスレッドで使っていたら、以下のようなエラーがでて困ってしまいました。
どうやら mysql2 はスレッドセーフではないことが原因の模様。
いろいろと調べてみたら、MutexLockedQuerying*1というモジュールを書いている人を見つけたので、ちょっと改造して取り込んでみました。元の実装だとクラス変数を使っているのでロックがインスタンス単位ではなく、グローバルにかかってしまうので、インスタンス変数に変更してあります。ロックの粒度的にはこちらの方が望ましいはずです。
gem mysql から mysql2 に移行してみる
ruby
mysql 昔書いた Ruby のプログラムを CentOS 7 上で動かそうとしたのですが、MariaDB が 10.4 と比較的新しいバージョンだったので gem で mysql がインストールできないので困ってしまいました。
mysqlを見ると、最終アップデート日が 2013 年になっていて、最近はメンテナンスされていないようです。このまま粘っても解決の見込みも立たないので、mysql2 に移行してしまうことにしました。
† ソースの書き換えは大きく3箇所
基本的には以下の3箇所を変更してやれば、基本的な動作はするようです。
Date などの部分を自動的に cast する機能がついたようですが、これは :cast => false でオフにしてあります。
Mailvelope でウェブメールでも PGP
firefox
chrome
pgp Mailvelope というブラウザ上で PGP 暗号化/復号化ができるアドオンを見つけたのでメモ。
中身は OpenPGP.jsを使って作られているようです。
GnuPG から鍵を Export して使ってみたところ、Outlook Web 上暗号化されたメッセージが復号できました。
ただ、送信時は PGP Inline 形式になるので、日本語を含んだメッセージを署名だけしようとすると検証できなくなるという問題があります。
The browser extension Mailvelope provides end-to-end encryption for your existing email address. Encrypt your mails without having to change your email provider! Encryption and decryption takes place exclusively on the end devices. This means that your private data will never leave your device unencrypted.
Firefox や Chrome のプラグインは以下から導入が可能です。
CentOS 7 + MariaDB の組み合わせで gem mysql2 がエラーになるときは
ruby
centos7
mysql CentOS 7 に MariaDB をインストールして、Ruby の gem mysql2 実行したらエラーになってしまって困ってしまいました。
エラーメッセージを読む限りリンカのエラーのようなので、もう一度良く MariaDB のインストールを確認したら MariaDB-shared が入っていないのが原因だったようで、以下のコマンド1行で解決でした。MariaDB-devel だけでいけると思っていたのが、勘違いでしたね。
† CentOS 7 への MariaDB のインストール
ハマらないように次回からは以下のような感じでインストールすることにしようと思います。
Twitter を旧バージョンに戻すアドオン
firefox
chrome Twitter はウェブの UI が大幅な変更が行なわれましたが、これを元に戻してしまうアドオンが公開されてたのでメモ。
最近のウェブがスマホ重視なのはしょうがないのですが、PC で見ると余白が大きくなりすぎてしまって使い辛いんですよね。
PC版Twitterの新デザインに戸惑う人に朗報 インストールするだけで旧式に戻せるブラウザ拡張が登場 - ねとらぼ
使い方は各バージョンのページを開き、「Chromeに追加」や「Add to Firefox」をクリックし適用するだけ。導入以降にTwitterを開くと、自動的に旧デザインで表示されます。
CORS エラーを無理やり回避する
firefox AJAX を利用するウェブサイトを使っていると、たまに CORS に関するエラー*1に遭遇して動かないことがありますが、これは基本的に開発者が対処すべき問題*2なので、利用者としては利用をあきらめるくらいしかできないので困っていましたが、Allow CORS というアドオンを使うとこのエラーを無理やり回避できることが分かったのでメモ。
これを常用するのは危険ですが、どうしても利用したいサイトがある場合には有効な打開策になります。
Allow CORS: Access-Control-Allow-Origin – 🦊 Firefox (ja) 向け拡張機能を入手
Simply activate the add-on and perform the request. CORS or Cross Origin Resource Sharing is blocked in modern browsers by default (in JavaScript APIs). Installing this add-on will allow you to unblock this feature. Please note that, when the add-on is added to your browser, it is in-active by default (toolbar icon is grey C letter). If you want to activate the add-on, please press on the toolbar icon once. The icon will turn to orange C letter.
- *1: CORS のエラー - HTTP | MDN
- *2: Origin null is not allowed by Access-Control-Allow-Origin. というエラーが出るときは
IPアドレスのリストからCIDR表現を作る(Ruby編)
ruby
networking 大量の IP アドレスの始点と終点の組(例えば 192.168.0.0~192.168.0.255 のようなもの)組を上手に纏めて CIDR 表現を作る必要があったので、Ruby でスクリプトを書いてみました。
IP アドレスの範囲を扱うのに altmetric/ip_ranger 、IP アドレスの集約に ipaddress-gem/ipaddress を使っているので、あらかじめ gem install ip_ranger ipaddress でインストールをしておきます。
コード的にはこんな感じでしょうか。
ip_summarize.rb
実際の実行してみると、こんな感じになります。
IP の範囲は標準入力から1行毎にカンマ区切りで開始,終了のような感じで与えています。
Ruby 2.6 から JIT コンパイルが可能に
ruby JIT コンパイラが搭載された Ruby 2.6.0 の Preview 版が公開されました。
Java やその他の言語と違って、C 言語のソースコードを生成してコンパイルする方法を取るようです。
ちょっとどんな感じで動作するのか気になりますね。
[ruby-dev:50555] Ruby 2.6.0-preview2 Released
Ruby 2.6ではJIT (Just-in-time) コンパイラが導入されました。 JITコンパイラはあらゆるRubyプログラムの実行を高速化することを目的としています。 他言語の一般的なJITコンパイラと異なり、RubyのJITコンパイラはC言語のソースコードをファイルとしてディスクに書き、通常のCコンパイラを用いてネイティブコードに変換することでJITコンパイルを行うという手法を用いています。(参考: https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch#mjit-organization)
- sadpkv
- CACHEMANAGER.phpというのはどうだろうかと
- pairb1m
- Lightning のToDoリストを複数のPCで共有できるアドオン
- majodca
- 九州旅行から帰ってきました
- majodca
- 九州旅行から帰ってきました
- hot534
- yum を使って OpenVPN をインストールする
- dresssu3
- NP_Trackbackを騙るトラックバックspamについて
- zippern7o
- NP_SpamBayesJP jp1b
- park81o
- Google Docs をメールフォームとして使う
- fogmpl
- なんで官庁の文章はPDFなんだろうか
- cutjw9
- 即席スライドショーを作る
- frightenlho
- 添付ファイルの容量を表示する「Attachment Sizes」
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(5019)
3 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(4162)
4 . 年次の人間ドックへ(4089)
5 . 2023 年分の確定申告完了!(1つめ)(3945)
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]

