2023年5月14日日曜日

関西Node学園 10時限目でSingle Executable Applicationsの話をしました

去る5月9日に関西Node学園 10時限目を開催しました。コロナ鍋で中々オフライン開催できなかったのですが、3年ぶりに開催することになりました。

個人的にはJSConf JP(旧Node学園祭)の運営のお手伝いをしていますが、地元の関西Node学園の運営にはほとんど関わっていませんでした。今回はちょっとだけお手伝い。

そしてついでに登壇もしてきました。話したネタはv19.7で追加されたSingle Executable Applications。以前にちょっとここでも触れました

スライドはこちらです。以前のブログを書いた時から、仕組みをちょっとだけ調べました。

スライドに出てきた実装例はこちらにあります。好きに使ってください。

2023年5月7日日曜日

Goのrangeではメモリーを使い回している

最近ちょっとハマったところについてメモ。

要するにこういうことです。これを実行したらどうなると思いますか?おそらくfoo, bar, bazすべて同じ値になっていると思います。どんな値になるかは実行タイミングによって違うようです。

つまりrangeは各ループで毎回同じアドレスに値を入れているので、そのアドレスをあとで使おうと思っても想定外の値に変化していることがあります。

よく考えれば・・・というか考えなくても、「ループ内で毎回専用の領域を確保する」より「最初に領域を確保してループ内で使い回す」ほうが効率的なのは明らかなので、そういう仕様なのはまあ納得。

アドレスを後で使いたい場合は、一度別の変数にコピーして使いましょう

2023年4月30日日曜日

書き込み権限のないGitHubリポジトリーへプルリクエストを出す方法メモ

 ただの備忘録です。たまに人様のリポジトリーにプルリクエストを出すけど、その度にやり方を忘れるので。

2023年4月23日日曜日

新しいパスワードマネージャー

 プライバシー重視のメールサービスProton Mail開発元のProtonが、Proton Passというパスワードマネージャーを開発しているそうです。

Proton Pass is now in beta

あまり詳しい情報が出ていませんが、現在判明していることはこのあたりでしょうか。

  • オープンソースで提供
  • 二要素認証をサポート
  • スマホ(iPhone, iPad, Android)とデスクトップPCに対応
  • Brave, Chrome, Firefox用のブラウザー拡張機能を提供

気になるのはデスクトップPCの対応OSが明記されていないこと。もしかしてブラウザー拡張機能だけで提供?

あとは、パスワードの保存先も気になります。Enpassのように、ローカルや複数のクラウドストレージに対応していて、好きなものを選べるならとてもありがたいです。

他のProtonプロダクトから推測すると、保存先はProtonのサーバー、ただしサーバーソフトウェアはオープンソースで提供するのでオンプレミスでも使える・・・という感じかもしれません。

だったらいらないかなぁ・・・🤔

いい意味で裏切ってくれることを期待してまます。

2023年4月16日日曜日

データ圧縮のパイオニア?

 データ圧縮のパイオニアであるジェイコブ・ジヴ氏の功績とその半生とは?

2年前の記事に何を今更という感じですが、偶然たどり着きました。昔(高校生くらいの頃かな?)データ圧縮について色々調べたことがあり、記事の内容についてちょっと気になったので今更ですがいくつかコメントします。

どっかで似たようなことを書いてる人もいそうですが。

2023年4月9日日曜日

Linuxでユーザーのホームディレクトリーをあとから作る方法

 ちょっとドジ踏んでしまったので記録を残しておきます。

Linuxで新しいユーザーを作るときはuseraddコマンドを使うじゃないですか。そのときに-mを指定すればホームディレクトリーを作ってくれるんですが、つけるのを忘れてコマンドを実行してしまいました。

単純に/home以下にmkdirしてもいいんですが、/etc/skelのコピーとか他にやることがあるかもしれないので、作成はシステムに任せたい。。。

やっぱり他にもこういうドジっ子はいるようで、ちゃんと用意されていました。mkhomedir_helperコマンドを使えば後から作れそうです。

「そうです」と書いたのは、このコマンドの存在に気づく前にユーザーを削除→再作成したので試してないからです。。。

2023年4月2日日曜日

レゴのGPL違反の件

 レゴがオープンソースのライブラリをコピペしてGPL違反をしていたことが判明

正確にはレゴじゃなくてレゴの子会社だということはさておき、ざっと読んだ感想としては「よくあるGPLの勘違いかなぁ?」です。

当該ライブラリはGPL(GNU General Public License)の元で公開されているものであるため、ソースコードが非公開の製品に使用することはライセンス違反であると指摘されています。

GPLは「製品を手に入れた人からソースコードを見せろと言われても拒否できない」というものであって、製品自体にソースコードをつける必要はありません。つまり「ライブラリをコピペして作った製品にソースコードをつけずに販売した」だけではGPL違反とは言えません。

GPL違反と断言するには、たとえば

  • 製品を購入した人からのソースコードの公開要請を拒否した
  • 製品自体がGPL以外のライセンスで提供されている(インストール時に表示されるライセンスがGPLではない等)
  • GPL非互換のソースコード(ライブラリなど)と一緒にビルドされている

などが必要ですが、記事を見る限りではそういった記述はありません。でもまあどれかに当てはまってそうですけど。特に2番目。