オープンソース調べOSS 2021年12月13日

オープンソース調べOSS 2021年12月13日

続OSSスキル標準について Open Source Skill Standard

こんにちは!
昨日に続いて登場の遠藤です。

本日は、[昨年](https://qiita.com/tech_nomad_/items/b0a6a0606067dd4137e9)も紹介したOSSスキル標準に関する紹介を再度させてください。

昨日も紹介した通り、コンプライアンスやセキュリティの観点からもOSS管理の重要性が日増しに増大しており、企業の取り組み内容を共有しようという動きもひろがっています。
また、OpenChainにおいても企業が適切にOSSを管理するためのプロセスの標準の普及や、
教育資料の作成、プラクティスの共有なども進んでいます。

#OSSスキル標準の必要性と新たな展開
一方で、OSS管理の業務はソフトウエア開発部門、セキュリティ部門、法務・知財部門など様々な部門が
関わる複雑な業務であり、比較的新しい業務であるため、
各業務を誰(またはどの部署)が担当するべきか、各担当者をどのように育成していくべきかの指針が
必要とされていました。

もう一つのトレンドとして、ここでも「セキュリティ・ツールWeek」が開催されているように、
コンプライアンス業務やセキュリティ業

元記事を表示

プルリクレビュー時に使用している自作GitHub Actionsの紹介

私がプルリクレビュー時に使用している自作のGitHub Actions[「action-repository-permission」](https://github.com/sushichop/action-repository-permission)について紹介します。利用シーンは限定されるActionsですが、[GitHub Marketplaceにも公開](https://github.com/marketplace/actions/repository-permission)していますので、OSSをメンテされている方をはじめ、本機能を必要と感じた方、興味がわいた方は試してみてもらえればと思います。

# 本Actionsが提供する機能

リポジトリに対するCollaboratorとしてのユーザ権限をチェックします。主に、writeまたはadminの権限を持っているかどうかをチェックするために使うケースを想定しています。

# 使い方

## 基本

下記はIssue書き込みしたユーザについて、Collaboratorとしてwrite以上の権限を持っているかどうかをチェックする例

元記事を表示

経産省のOSS管理手法事例集について About METI’s Case Study of Open Source Management Methods

こんにちは!
2回目の登場の遠藤です。

#本日からセキュリティ・ツールWeekです!
本日から「セキュリティ・ツールWeek」と称して7日間、OpenChainのセキュリティ関連の取組の紹介や、
OSSコンプラのツール関係トピックを取り上げていきます。

OpenChainは元々、ライセンスコンプライアンスにフォーカスを当てたプロジェクトですが、
サプライチェーン内でのソフトウエア透過性の向上や自社が使用しているOSSの見える化などの課題は
セキュリティ対応の課題と共通することから、セキュリティ関連の取組も拡大してきています。

#事例集策定の経緯と内容について
本日は、2021年4月21日に経済産業省からリリースされた
「[オープンソースソフトウェアの利活用及びそのセキュリティ確保に向けた管理手法に関する事例集](https://www.meti.go.jp/press/2021/04/20210421001/20210421001.html)」について紹介させてください。
この事例集は[サイバー・フィジカル・セキュリティ確保に向けたソフトウェア管理手法等検討タスクフォース](ht

元記事を表示

TCE で Gatekeeper をサクッとやってみる

どうも! @hirosat です。
本日は、[TUNA-JP Advent Calendar 2021](https://qiita.com/advent-calendar/2021/tuna-jp) の中で、まだ紹介されてない、[Gatekeeper](https://github.com/open-policy-agent/gatekeeper) をやろうかなと思って、エントリしました。

# Gatekeeper とは?
Gatekeeper を語るためには、その前にいくつか紹介しなければ行けない背景があります。

## K8s のアクセス制御の仕組みを知ってる?
(参考: [Kubernetes Documentation](https://kubernetes.io/docs/concepts/security/controlling-access/))

![k8s control](https://d33wubrfki0l68.cloudfront.net/673dbafd771491a080c02c6de3fdd41b09623c90/50100/images/doc

元記事を表示

2021年のオープンソース界隈の話題がわかる!OSSコンプラニュース一気振り返り

こんにちは!
[知財系 もっと Advent Calendar 2021](https://adventar.org/calendars/6287)の8日目は、
[昨年](https://qiita.com/MasatoENDO/items/5e3e8b45945a25e84632)に続いての登場のENDOです。
2日連続名古屋からの発信ですね♪

#自己紹介と本日のテーマについて
今年も本業は新サービスの企画やシステム開発のマネジメントでしたが、
引き続きソフトウエアプロジェクトの98%が使用しているというオープンソースソフトウエア(OSS)周りの知財関連活動にも取り組み、
[昨年の記事](https://qiita.com/MasatoENDO/items/5e3e8b45945a25e84632)で紹介したLinux FoundationのOpenChainプロジェクトにおける標準化や
オープンソースの啓発活動の他、日本知的財産協会の講習会の講師やパネラー、[知財管理誌への寄稿]
(http://www.jipa.or.jp/kikansi/chizaikanri/mokuji/

元記事を表示

iOS アプリで使ってる OSS の情報をいい感じにとる

CocoaPods で OSS を管理している iOS アプリで使っている OSS のリストを “いい感じ” に作ります。

# お題
開発中の iOS アプリ内で使っている OSS を次の情報を含めてリストアップしたい。

– OSS 名
– バージョン
– ライセンス
– 公開サイト
– 作者

変なのが混入してないかとか、なんやかんやあるんです、はい。

# 解答

[こうする](https://github.com/shinyaishida/podeps)。

# 解法

なんかいい感じのコマンドとかツールとかないか探した結果、スクリプトをちょこっと書くだけで済みそうだったのでそうしました。以下はその辺の説明です。

## LicensePlist
OSS のリストと言えば [LicensePlist](https://github.com/mono0926/LicensePlist) が思い浮かびます。アプリ上で OSS の表示義務を果たすのにとてもありがたいツールです。

ただ、出力が、、、

“`xml

元記事を表示

東京都オープンソース公開ガイドラインについて About Tokyo OSS Guideline

こんにちは!
このOpenChain Japan Advent Calendarを企画しているPromotion SGの遠藤です。

本日はオープンソースが企業だけではなく、よりパブリックな世界にも拡大していることや
OSSの管理だけでなく、組織がコミュニティの貢献を加速するための仕組み作りも進んでいることを示す事例を紹介させて頂きたいと思います。

2021年10月東京都から「[東京都オープンソース公開ガイドライン](https://github.com/Tokyo-Metro-Gov/tokyo-oss-guideline)」のβ版が公開になりました。
OpenChain JWGからも小保田さん、大崎さん、私の3名でβ版の編集にご協力させて頂きました。

#なぜ策定された?
本ガイドラインの作成の経緯の詳細は東京都のフェローとしてレビューに参加された
関さんの[note記事](https://note.com/hal_sk/n/n712e3781cdd0)をご参照頂ければと思いますが、
「[東京都新型コロナウイルス対策サイト](https://stopcovid19.metro.t

元記事を表示

コードの見方・関わり方が少し変わった一年でした、という話

グロービスにバックエンドエンジニアとして参画している @ymstshinichiro です。
僕は今年の5月から本格的に[GLOPLA LMS](https://glopla.globis.co.jp/)の開発にジョインしました。
本記事では、そこから今日までの7ヶ月を通して自分に起こった変化について書いてみたいと思います。

## 参画以前は
僕は約10年飲食の業界にいましたが、約4年前にキャリアチェンジで SIer > Web業界(社員) > Web業界(フリーランス) という流れで現在に至っており、新卒できちんと先輩から教わったとか、スクールで先生についてもらったみたいなことがありませんでした。

なので、基本的に独学でプログラミングを学び現場のコードを見ながら/直しながら覚えていくという感じでやってきており、

– 「こうあるべき」みたいなのは書籍を読んで得たものが基本
– とはいえ現場では現場のルールや状況がある
– 結果、その時々で対応していくので、背骨のある設計/実装、綺麗で汎用性の高いコード みたいなのがあまり身についてこなかった

という実感がありました。
一方で、急

元記事を表示

OSSライセンスが怖かったので、GPL系のライセンスを調べてみた

# 背景
JPHACKS2021に出場した際に、最初から作業・提出リポジトリにMITライセンスなるものが設置されていた。
ライセンスよくわからないで使わされるのも怖いし、コピーレフト性のあるものは「改変の開示」が必要で怖いし、知っておかないとやばいよなーとなった。

# この記事のゴール
コピーレフト性のあるGPL系ライセンスで、どのケースでコードを開示する必要があるのか理解する。

# GPLライセンスのまとめ
## コピーレフト(Copyleft)
著作物の自由な利用・改変・再配布する権利を人々に提供し、その派生物についてもこれら行為の制限をしてはならないとする考え。
OSSライセンスが持つことのある概念。

## GPLライセンスとは
GPL(GNU General Public License)はコピーレフト性を持つライセンスとして有名。
GPLライセンスは他のライセンスよりも、制限が強く、厳格にコピーレフトの概念を具現化したライセンスと言える。

## GPL2.0ライセンスを持つソースの主な利用条件
GPLはいくつかのバージョンが存在するが、ここでは特にGPL2.0について

元記事を表示

趣味の勉強、技術ブログ、勉強会、OSS、ネタ選びをどうするか?

[フューチャーアドベントカレンダー](https://qiita.com/advent-calendar/2021/future)の3日目のエントリーです。昨日は@ma91nさんの[テックリードから先のマネジメントロールを経験してみて](https://qiita.com/ma91n/items/32accd43398301ada901)でした。

「プログラミングの技術を磨き続けよう」「アウトプットが大事」「趣味でもコードを書こう」とか、いろいろなアドバイスが溢れる昨今ですが、何をするにしても第一歩でひっかかるのが「ネタ選び」です。ネタ選びの戦略はいろいろあると思いますが、僕なりの方法とか、僕が選んではないがこうすればいいのでは?といったことを紹介します。

![PXL_20211203_005248280.MP.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6105/9bde1a27-8e69-a30e-8a4e-fd0b578f1968.jpeg)

# ネタとは

学校の授業やら宿題やらはカリ

元記事を表示

TiDB 検証ライフ(2-製品構成を理解)

# 検証前に基本アーキテクチャーの理解から

分散データベース、NewSQL、可用性、柔軟性、伸縮性。。。
TiDBを表現するこれらのキーワードを並べても、ピント来ませんね。

知りたいのは、可用性ならMySQL Clusterなどあるのに、なぜTiDB?

## TiDBのアーキテクチャー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61975/f8350de8-01dd-8d7c-c03b-6c3d40da5343.png)

※ PingCAP社のドキュメントから引用(https://docs.pingcap.com/tidb/stable/tidb-architecture)

いくつかコンポーネントから構成されているようです。

### TiDBクラスタを構成するTiDBサーバ
外部からのSQLリクエスト(MySQLプロトコル)を受け付ける部品で、スケールアウト可能。
SQL解析、最適化、分散実行計画の生成をここでやっているイメージか。

### PD(Placement D

元記事を表示

snyk を使ってプロジェクトのセキュリティ管理を(できるだけ)楽にする.

# はじめに
この記事は[Snykを使ってセキュリティにまつわる記事を投稿しよう!【PR】Snyk](https://qiita.com/advent-calendar/2021/snyk)の3日目の記事です.

普段の開発で「**セキュリティや脆弱性には気を付けないといけない**」と思っていても実際に行うのは簡単ではないですよね.

– 書いているコードにセキュリティリスクがないか
– 書いている人が確認する?レビュワーが確認する?両方?
– XSSやCSRF・SQLインジェクションなど様々な場合について考えられる?
– 使用しているライブラリなどに重大な脆弱性がないか
– 使っているもの全て確認する?
– どれくらいの頻度で確認する?
– どうやって修正すれば良い?どのバージョンに上げれば良い?

パッと思いつくだけでも,考慮すべきことがたくさんあります.特に,個人開発やOSSではセキュリティレベルを担保することはかなり難しいと思います.

そこで今回は, [snyk(スニーク)](https://snyk.io/)を使って上記を自動化したい

元記事を表示

OpenChain 認証企業 ふえてます / The number of openchain certified companies is increasing.

*You can access the English summary in the lower part of the page.

NECソリューションイノベータの島です。
本日はOpenChain認証とその取得についてご紹介します。

#”OpenChain” とは
[OpenChain](https://www.openchainproject.org/)は、[Linux Foundation](https://linuxfoundation.org/)の[公式プロジェクト](https://linuxfoundation.org/projects/)のひとつで、「OSSが信頼性と一貫性のあるコンプライアンス情報とともに提供される、ソフトウェアサプライチェーンを実現すること」をビジョンとし、組織がOSSのライセンスコンプライアンスプログラムを構築するための指針を整備し提供しているプロジェクトです。

OpenChainは以下の3本の柱を主軸においた様々な活動を行っています。
1. 仕様(Specification) : 組織内に確立するべきコンプライアンスプログラムの要件を定義

元記事を表示

Istio vs Linkerd 機能比較

#はじめに
サービスメッシュSWとしてIstioとLinkerdがあるが、以下の比較資料やLinkerdマニュアルを元に機能比較を行った。

https://servicemesh.es/

評価軸は以下を参考にさせてもらいました。

https://www.nri-digital.jp/tech/20210318-4047/

#機能比較表

機能 内容 Istio Linkerd 備考
対象プロトコル メッシュ内で扱えるプロトコル TCP/HTTP1/HTTP2/gRPC TCP/HTTP1/HTTP2/gRPC
Ingress Gateway<

Open Source Summit Japan + Automotive Linux Summit

12月14日&15日に開催されるOpen Source Summit Japan + Automotive Linux Summitに登壇します。沢山のスピーカーが知見を披露されるので、オープンソースについて学ぶ絶好の機会です。

ぜひご参加いただき、お気軽にお声がけください![SnykSec](https://qiita.com/SnykSec)

ご参加はこちら:[Open Source Summit](https://events.linuxfoundation.org/open-source-summit-japan/register/)

TiDB 検証ライフ(1-検証環境構築)

# TiDBの検証を始めました

0から触ってみるので、メモ書きを兼ねて情報共有します。

TiDBを検証してみたいと思ったきっかけは「db tech showcase 2021」のTiDBセッションでした。

PingCAP社の主力製品で、「水平方向の拡張性、強力な一貫性、MySQLとの互換性による高い可用性を備えたオープンソースのハイブリッド・トランザクション/分析処理(HTAP)データベース」と紹介されていました。

ハイブリッド・トランザクション、がとても気になるところです。

## 早速、まずは検証環境の構築から

### 検証環境

MacBook Airの貧弱なスペックでも、果たして動いてくれるだろうか

“`
プロセッサ: 1.3 GHz デュアルコアIntel Core i5
メモリ: 4 GB 1600 MHz DDR3
“`

### インストール手順

PingCAP社のMacOSデプロイ手順ありました。

https://docs.pingcap.com/tidb/stable/quick-start-with-tidb#deploy-a-local-te

OSSのコントリビュータになろう!

# 本記事で語る事
– そもそも「コントリビュータ」って何?
– コントリビュータになるメリット
– **初学者の方こそコントリビュートに挑戦して欲しい**、という事
– コントリビュータになる事は難しくない
– コントリビュータになる流れ

# (大前提)OSSとは
知ってらい!という方が多いかと思いますが、あえて…

OSSとは、
オープンソースソフトウェア、の略称です。

Web開発での例に挙げさせて頂くと、
ReactやjQuery等、無償での利用が可能なソフトウェアになります。

昨今、Web開発であればReactやVue.js等を使わないプロジェクトはほとんど無い、ソフトウェアエンジニアにとっては非常に身近な存在であると考えます。

詳細は[こちら](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

# コントリビュートとは

惹かれたネーミングをタイプ分けしてみる

## はじめに

 [ネーミングセンスに惹かれた言葉](https://qiita.com/rawHam/items/dbe934a0299dc5518261) を書いたあと、これもいいなが止まらなくなっていたのでいっそ洗い出してタイプ分けしてしまおうと思った次第です。そして惹かれた順に勝手にランク付けもしました。

## A-rank

 センスと教養がなければ思いつかなそう。惹かれた順に。

### Fairytale-like Type

 童話が由来のもの。幻想的なセンスを感じたためこんなタイプ名に。

“`
 パンくずリスト
 エンディアン
“`

### Jedi Type

 特徴の類似性から連想したもの。ヨーダが筆頭のものということで。

“`
 ヨーダ記法
 tee(コマンド)
“`

### Taxonomic Type

 概念的関係から連想されたもの。これも他に例が見つけられず存続の危機。

“`
 Anaconda(∈ Python)
“`

### AnimalCase Type

 形が動物に似ていることが由来のもの。動物好きゆえあえてHier

「issueを立てるな!」

## 要約

OSS プロジェクトに issue を立てる事について。「最適化するな!」と同程度に「issueを立てるな!」を守りましょう。

## 導入

OSS プロジェクトに対して気軽に issue を立てられる事が良い事だと思ってる人が存外多いようで、その事に危機感を覚え、この記事を書き殴りました。
OSS プロジェクトに対して気軽に issue を立てられる事が良い事だとする認識は「地獄への道は善意で舗装されている」を地で行ってます、、、

## 見えてる景色の違い

世の中、無数に OSS プロジェクトが存在しますが、恐らく、、、

– 90% の OSS プロジェクトは作ってる本人以外誰にも見向きされてない。
– 9% の OSS プロジェクトは作ってる本人以外にも多少は興味を持たれている。
– 0.9% の OSS プロジェクトは普通に人気がある。
– 0.1% の OSS プロジェクトは大人気。

、、、細かい数字の精度はともかく、ノリとしてはパレートの法則よろしくこんな感じでしょう。

## 枯れ木も山の賑わい

貴方のプロジェクトは十中八九、人気が無いでしょう。素

【VSCode】Undo/Redoに革命を起こしたい

> この記事は、東京大学工学部電子情報工学科/電気電子工学科の後期実験「大規模ソフトウェアを手探る」のレポートとして作成されました。

# Undo/Redo の履歴が消える悲しみ

編集系のソフトウェアで誰もがお世話になっているであろう Undo/Redo 機能ですが、このような悲しみに襲われたことはないでしょうか?

**「以前の状態に戻したいのに、履歴が消えて戻せない〜〜〜」**

講義室でアンケートを取ったところ、8 割以上の方がこの悲しみを経験されていたようです。
といっても、ピンとこない方がいると思うので、具体的にどういう問題があるのか説明していきます。

テキストエディタを例にとります。まず、操作 A, B, C を行います。ここでいう「操作」は、文字列の入力や Back space など、Undo/Redo 以外でエディタの編集状態を変えるものを指します。

![ABC の画像](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1322113/7a59bce1-5f1c-d04d-8d79-d585