BLOGTIMES
«Prev || ... 125 · 126 · 127 · 128 · 129 · 130 · 131 · 132 · 133 ·... | | Next»
2021/08/03

FSF が GitHub Copilot に対するホワイトペーパーを公募

github  ai  programming 

FSF が GitHub Copilot に対するホワイトペーパー募集を出していたのでメモ。

Copilot はコードの自動補完を行うサービスですが、その学習データに GitHub に公開されているコードがライセンスを区別せずに用いられているという問題があり、これを著作権的な問題があるとして FSF が追及したいという趣旨のようです。ソフトウェア工学系の AI は単なるコピペの増進という感じになっているので、そのあたりはちょっと気に入らないところではあります。

FSFが「GitHub Copilot」に疑問視、ホワイトペーパーを募集 | OSDN Magazine

Copilot、著作権、機械学習、フリーソフトウェアを扱うホワイトペーパーを募集し、問題についての啓蒙を促すものを公開し認知を広げる。具体的な関心領域としては、「著作権を侵害した公開リポジトリ上でトレーニングしているのか? フェアユースか?」「Copilotのアウトプットが、GPLでライセンスされている作品を侵害していることを主張する可能性はどのぐらいあるか?」「Copilotが生成する侵害に対して、開発者はどのようにして自分が著作権を持つ任意のコードを保護できるのか?」などを挙げている。


    at 18:31 |
    2021/08/02

    今日から緊急事態宣言に首都圏 3 県と大阪が追加に

    tokyo  covid19  stateofemergency 

    今日から緊急事態宣言の対象県に埼玉、千葉、神奈川の首都圏 3 県と大阪が加わり 6 都道府県になりました。またいろいろな面で自粛生活に逆戻りですが、こればかりはしょうがないですね。

    とりあえずワクチン接種は終わったのはせめてもの救いです。あとは効果が出るまでの約 2 週間、とにかく気をつけたいと思います。


      at 19:06 |
      2021/08/02

      新型コロナのワクチン接種が完了しました(2回目)

      covid19  vaccine 
      新型コロナウィルスワクチン 予防接種済証(臨時) - 新型コロナのワクチン接種が完了しました(2回目)

      1回目の 7/7 に引き続き、2回目の新型コロナワクチンの2回目の接種を受けてきました。

      モデルナ製の場合は1回目から4週間後(4週間後の同じ曜日)が標準*1なので、それよりも 2 日ほど早い(26 日目)ですが、今週は予定が詰まっていて今日の午後しか時間が取れそうにないのでさっさと打ってしまうことにしました。

      打った直後の痛みは初回とあまり変わりません。

      2021/08/02 18:28 追記

      すでに腕の接種部位は前回と同じくらい腫れてきています。
      発熱も始まっていて、体温が 37.5℃ を突破しました。このところ風邪を引いて寝込むということもなかったので、これだけ体のだるさがあるのは久しぶりです。


      at 14:42 |
      2021/08/01

      CentOS 7 に OAuth2 対応の fetchmail7 を入れる

      office365  oauth2  centos7 

      コマンドラインから使える POP3/IMAP クライアントで OAuth2 に対応しているのは fetchmail の次期バージョンである 7.x 系(まだ alpha 版)のみのようです。alpha 版でしかもビルド済みのバイナリがないとなると、ちょっと気が引けますが Google や M365 (Exchange Online) から OAuth2 でメールを取得するためには仕方ありません。

      ソースからビルドすることにします。

      OpenSSL も 1.1 系が必要

      fetchmail7 をビルドするためには、各種ビルドツールに加えて OpenSSL 1.1 系をソースからコンパイルしてインストールしておく必要があります。これは、CentOS 7.x 系の OpenSSL の標準が 1.0 系のためです。具体的には以下のような感じでしょうか。

      wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz tar zxvf openssl-1.1.1k.tar.gz ./config --prefix=/usr/local/openssl-1.1 shared zlib && make && makeinstall

      fetchmail 7 のビルド

      fetchmail 自身は以下のような感じでソースからビルドできます。

      git clone https://gitlab.com/fetchmail/fetchmail.git cd fetchmail git checkout next ./autogen.sh ./configure --with-ssl=/usr/local/openssl-1.1 make

      まだ alpha 版なので、make install せずに、ディレクトリ内にできた fetchmail のバイナリをそのまま呼出すことにします。
      設定も普段使っている .fetchmailrc とは別の設定ファイル (例えば .fechmailrc7 )を作ることにします。

      あとは、以下のような感じで呼出せば OK。

      /path/to/fetchmail -f /path/to/.fetchmailrc7

      例えば Office 365 上のメールを取得する.fetchmailrcの例は以下のようになります。

      .fechmailrc7

      set no bouncemail poll outlook.office365.com protocol pop3 auth oauthbearer username user@example.com passwordfile /path/to/access_token

      ここで指定している /path/to/access_token は、前のエントリ(python-o365 を使って O365 アクセストークンを取得する)で取得したファイルを指すようにするのがポイントです。

      参考


        at 18:37 |
        2021/08/01

        python-o365 を使って O365 アクセストークンを取得する

        office365  python  oauth2 

        Office 365(というか Exchange Online)に POP3 や IMAP、SMTP 接続しようとすると、いまのところは ID/PW による基本認証が使えますが、今年中にもこの機能が削除される予定*1になっているので、今後のことを考えると先進認証と呼ばれる SASL XOAUTH2 に対応させる必要があります。

        Outlook や Thunderbird などのメーラーは設定を変更するだけですんなり対応できるので良いのですが、fetchmail などの非対話のコマンドラインツールなどを使おうとすると一気に面倒なことになります。基本的なやり方は以下にあるのですが、OAuth2 の設定するためには Azure AD などの仕組みについて理解する必要が出てきます。

        パスワードの代わりになるものはアクセストークン

        そして、今回はパスワードの代わりに利用されるアクセストークンの取得処理を以下のライブラリと Python を使って実装してみました。

        モジュール自体はいつものごとくpip install O365でインストールできます。

        アクセストークンを取得するスクリプト

        最もシンプルに書いてみたところ、こんな感じになりました。

        get_token.py

        #!/usr/bin/env python # -*- coding: utf-8 -*- # BSD 2-clause from O365 import Account, MSGraphProtocol, FileSystemTokenBackend # TENANT_ID等はダミーなので適宜読み替えてください TENANT_ID = '99999999-9999-9999-99999999999999999' CLIENT_ID = '99999999-9999-9999-99999999999999999' CLIENT_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' TOKEN_FILENAME='token.json' TOKEN_PATH='.' AUTH_FLOW='authorization' SCOPES = ['offline_access', 'https://outlook.office365.com/POP.AccessAsUser.All', 'https://outlook.office365.com/IMAP.AccessAsUser.All', 'https://outlook.office365.com/SMTP.AccessAsUser.All'] token_backend = FileSystemTokenBackend(token_path=TOKEN_PATH, token_filename=TOKEN_FILENAME) credentials=(CLIENT_ID, CLIENT_SECRET) account = Account(credentials=credentials, scopes=SCOPES, token_backend=token_backend, auth_flow_type=AUTH_FLOW, tenant_id=TENANT_ID) if not account.is_authenticated: account.authenticate() print('Authenticated!') else: account.connection.refresh_token() print('Refreshed!') with open('access_token', mode='w') as f: f.write(token_backend.get_token()['access_token'])

        比較的簡単なモジュールですが、いくつか落とし穴があります。

        まず、SCOPES の部分ですが、Azure AD でのアプリ登録の画面では https://graph.microsoft.com/POP.AccessAsUser.All となっていますが、Outlook にアクセスするためには https://outlook.office365.com/POP.AccessAsUser.All のように読み替えないと、アクセストークンが取得できても認証が通りません*2

        また、python-o365 のバグなのか、以下のような感じで怒られるので、メッセージに従って無理やりパッチを当てました。

        Unable to fetch auth token. Error: (invalid_client) AADSTS700025: Client is public so neither 'client_assertion' nor 'client_secret' should be presented. Trace ID: 99999999-9999-9999-99999999999999999 Correlation ID: 99999999-9999-9999-99999999999999999 Timestamp: 0000-00-00 00:00:00Z Something go wrong. Please try again.

        O365.diff

        --- a/O365/connection.py +++ b/O365/connection.py @@ -511,7 +511,8 @@ class Connection: token_url=self._oauth2_token_url, authorization_response=authorization_url, include_client_id=True, - client_secret=self.auth[1])) + )) elif self.auth_flow_type == 'public': self.token_backend.token = Token(self.session.fetch_token( token_url=self._oauth2_token_url, @@ -633,7 +634,8 @@ class Connection: self.session.refresh_token( self._oauth2_token_url, client_id=client_id, - client_secret=client_secret) + ) ) elif self.auth_flow_type == 'public': client_id = self.auth[0]

        上手く認証ができると Authenticated!Refreshed! のメッセージが表示され、token.json ファイルにトークンの情報が、access_token ファイルにアクセストークンが書込まれるようになっています。アクセストークンの有効期限は1時間*3なので、cron 等でこのスクリプトを定期的に実行し続ける必要があります


        at 15:35 |
        2021/07/31

        デルタ株にはワクチンを受けていてもマスクが必要

        covid19 

        米 CDC がデルタ株の感染率が高い地域の人は、たとえワクチン接種を受けていてもマスクを着用する必要があるというツイートを流していたのでメモ。

        5 月にはワクチンが済めばマスクをしなくても良いと言っていたので、デルタ株の感染拡大で状況が変わっているということですね。都内も感染者がかなり増えてきているので気になるところです。


          at 21:05 |

          物件のリノベーションを契約

          アパート経営 
          工事請負契約書 - 物件のリノベーションを契約

          相続してから始めて、すこし大きめの修繕の契約をしました。

          定期的な修繕は必要

          持ち家であれば経年で多少傷んでいても自分が我慢できれば良いだけの話ですが、賃貸物件となると放ったらかしとはいかないわけで、それなりに運用していこうとすると定期的にそれなりの資本を投下し続ける必要があります。同時に税金簿記減価償却などの仕組みについても理解する必要があり、(親戚等の目もあるので)株のように売っぱらって逃げるというわけにもいかない厄介な代物です。そもそも地方の物件なので、それほど利回りは高くなりません。

          金額が大きいと怖い

          金額が大きいとやはり怖いですね。これまで、死んだ自分の親父はどちらかというと意気地がない方だと思っていたのですが、それは誤解で、そういう姿を家族に見せない人だったということにこの歳になって気付くことになるとは思いませんでした。


            at 18:57 |
            2021/07/30

            Tunderbird や iOS アカウントに AzureAD の管理者の同意を付与する

            office365  thunderbird78+  ios  gmail 

            Azure AD ではアプリケーションに対してあらかじめテナント全体の管理者の同意を付与*1しておくと、ユーザーの個別の同意が必要無くなる(画面が出なくなる)ので、よく使われるアプリケーションに対してあらかじめ同意を与えておくと運用上、便利なことがあります。

            例えば、全体管理者で以下のリンクをクリックすると Thunderbird, iOS, Gmail アプリに一撃で同意が付与できるので便利です。

              • Thunderbird
              • https://login.microsoftonline.com//oauth2/authorize?client_id=08162f7c-0fd2-4200-a84a-f25a4db0b584&response_type=code&prompt=admin_consent
              • Gmail
              • https://login.microsoftonline.com//oauth2/authorize?client_id=2cee05de-2b8f-45a2-8289-2a06ca32c4c8&response_type=code&prompt=admin_consent
              • iOS Accounts
              • https://login.microsoftonline.com//oauth2/authorize?client_id=f8d98a96-0999-43f5-8af3-69971c7bb423&response_type=code&prompt=admin_consent

            参考


            at 22:09 |

            EC2-Classic が廃止に

            eol  aws 

            AWS のブログに EC2-Classic が廃止されることが記載されていたのでメモ。

            このサービス変更はひょっとしたら大きな影響があるのかな・・・と思って調べてみたのですが、影響はネットワークが VPC でない EC2 インスタンスのみに限局され、ネットワークが VPC になっている EC2 インスタンスには影響がないようです。

            この EC2-Classic というのは 2006 年 8 月に Amazon EC2 Beta が始まったころからあるもののようですが、2013/12/4 以降に作られたアカウントは基本的には VPC のインスタンスしか作ることができないと書かれているので AWS を最近使い始めたユーザーには本質的に関係がない問題と考えて良さそうです。


              at 18:12 |
              2021/07/29

              昇降式 サイドテーブル

              desk 
              [山善] 昇降式 サイドテーブル 高さ60-95㎝ 4cmの隙間に入る低床キャスター ガス圧昇降 無段階高さ調節 幅70cm ベッドテーブル PCテーブル 組立品 オーク KUT-7040(OAKWH) 在宅勤務

              Z字型のサイドテーブルは肘をついたりすると、天板が傾いてしまうので、そのような心配がない昇降式サイドテーブルに買い換えてみました。

              片足なのでガタツキが気になるところですが、カーペットの上に置くとちょうど薄型のキャスターがカーペットに埋まるので、とても安定性しています。天板の上にノートパソコンを置いてタイピングをしていてもガタツキは気になりません。始めからこちらを買っておくべきでした。


                at 22:49 |
                «Prev || ... 125 · 126 · 127 · 128 · 129 · 130 · 131 · 132 · 133 ·... | | Next»