- blogs:
- cles::blog
AWS が Elasticsearch と Kibana をフォーク
aws
licence AWS がライセンスの問題により Elasticsearch と Kibana をフォークした*1ことがニュースになっていたのでメモ。
先日、Elastic が Elasticsearch と Kibana のライセンスを Apache License 2.0 から Server Side Public License(SSPL)と Elastic License のデュアルライセンスに変更することを公表*2していたので、これに対する AWS の対抗措置ということになります。これは一足先に SSPL にライセンス変更をしている MongoDBと同じ展開ですね。
AWSがElasticとKibanaをフォークへ | OSDN Magazine
AWSの動きの背景には、ElasticsearchとKibanaを開発するオランダElasticの方針変更がある。Elasticは1月15日、これまでApache License 2の下で公開していたElasticsearchとKibanaについて、ライセンス方針を変更し、独自ライセンスのElastic LicenseとSSPL(Server Side Public License)のデュアルライセンスにすることを発表した。理由について、クラウド事業者が貢献せずにオープンソース技術を活用していると説明していた。
ただ、SSPL は OSS ライセンスとしては認められていない*3という大きな問題があるので、ソースコードは手に入りますが OSS ではないというちょっと特殊な状態になります。具体的には RedHat を始めとする主要なディストリビューションがサポートすることがないということになります。過去に MongoDB が AWS 等のクラウドベンダーを非難していた内容は以下の通りですが、それからだいぶ時間が経ったものの AWS は頑なに歩み寄らないですね。一時は MS や Oracle が OSS の敵のような感じでしたが、最近はすっかり AWS が悪者のようです。
MongoDB now released under the Server Side Public License | MongoDB
The reality, however, is that once an open source project becomes interesting, it is too easy for large cloud vendors to capture most of the value while contributing little or nothing back to the community.
- *1: Elastic 社による Elasticsearch および Kibana のライセンス変更にともなう AWS の対応方針のご案内 | Amazon Web Services ブログ
- *2: オープンへの新たなる挑戦、パート2 | Elastic Blog
- *3: The SSPL is Not an Open Source License | Open Source Initiative
Ruby 3.0.0 がリリースされてた
ruby しばらくウォッチしていないうちに Ruby 3.0.0 がリリースされていました。
Ruby 2.7 からの変更がいろいろとある*1ので、時間をとって確認する必要がありそうです。
Ruby 3.0系初のリリースである、Ruby 3.0.0 が公開されました。
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 でオフにしてあります。
CentOS 7 + MariaDB の組み合わせで gem mysql2 がエラーになるときは
ruby
centos7
mysql CentOS 7 に MariaDB をインストールして、Ruby の gem mysql2 実行したらエラーになってしまって困ってしまいました。
エラーメッセージを読む限りリンカのエラーのようなので、もう一度良く MariaDB のインストールを確認したら MariaDB-shared が入っていないのが原因だったようで、以下のコマンド1行で解決でした。MariaDB-devel だけでいけると思っていたのが、勘違いでしたね。
† CentOS 7 への MariaDB のインストール
ハマらないように次回からは以下のような感じでインストールすることにしようと思います。
Stack Overflow のコード片は CC BY-SA
licence
softwareengineering 先日の ICSE 2019 勉強会で紹介されていた「Usage and Attribution of Stack Overflow Code Snippets in GitHub Projects」という論文が興味深かったのでメモ。
- Sebastian Baltes, Stephan Diehl, "Usage and Attribution of Stack Overflow Code Snippets in GitHub Projects," Empirical Software Engineering, Vol. 24, Issue 3, pp. 1259–1295, June 2019. ( DOI: 10.1007/s10664-018-9650-5 )
この論文の要点は Stack Overflow の載っているコード片は CC BY-SA 3.0 ライセンスなのに、それを使っている OSS のプロジェクトがライセンス違反になっていることがあるということです。CC BY-SA はクレジット表示し、自分の貢献部分を元の作品と同じライセンスの下に頒布しなければならないというライセンスです。
ソフトウェア開発で困ったときにググると Stack Overflow のページがヒットすることがありますが、そのライセンスに注意しなければならないというのは盲点でした。調べてみると以下にちゃんと書いてありますね。
What is the license for the content I post? - Help Center - Stack Overflow
As noted in the Stack Exchange Terms of Service and in the footer of every page, all user contributions are licensed under Creative Commons Attribution-Share Alike. Proper attribution is required if you republish any Stack Exchange content.
Oracle クリティカルパッチアップデートに注意(2019 年 4 月)
oracle
java
licence Oracle が定例のクリティカルパッチアップデートを出しました。
ちなみに Oracle JDK は 4/16 よりライセンスが改訂されて、個人利用・開発目的のみという使途制限がついている*1ので注意が必要です。
- Oracle Critical Patch Update - April 2019
- JDK 12.0.1, 11.0.3, 8u211, 8u212, and 7u221 Have Been Released! | Oracle The Java Tutorials Blog
† 参考
商用利用をしている場合の OpenJDK 等への移行対応については以下が参考になります。
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)
ActiveRecord で ROW_FORMAT=DYNAMIC を自動でつけるようにするには
ruby
mysql ActiveRecord でテーブルが CREATE TABLE されるときに、ROW_FORMAT=DYNAMIC を自動的に追加する方法を見つけたのでメモ。
とりあえず RAILS_ROOT で以下のシェルスクリプトを流せば OK です。
† 参考
- 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 . 福岡銀がデマの投稿者への刑事告訴を検討中(5063)
3 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(4199)
4 . 年次の人間ドックへ(4130)
5 . 2023 年分の確定申告完了!(1つめ)(3988)
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]