- 1. 力が欲しいか?…なら
- 2. 今どこにいるのか分からなくなったら
- 3. 全人類SKKとかいうIMEを使った方が良い
- 4. 【影響なし】XZ Utils Backdoor(CVE-2024-3094)のPVEへの影響確認
- 5. オープンソースのバグで開発が止まりかけたので、コミットを積んで直してみた話
- 6. OSS活動としてRuby on RailsのGitHubにプルリクエストを作成した話
- 7. はじめてのOSSコントリビュートをしてみた
- 8. 未経験40代は手始めにLinuC レベル1から
- 9. プリザンターを活用したデータセンター運用管理
- 10. Yocto:レイヤーの追加方法
- 11. OSSコントリビュータデビューした話
- 12. 貢献は力強く、名誉は永遠に、そしてサーバーは空を飛ぶ
- 13. 貢献と名誉によって巡る経済
- 14. オープンソースムーブメントというビジネスモデル
- 15. めざせコントリビューター【完全攻略本】
- 16. 駆け出しOSSコントリビューターが失敗から学んだ 大規模OSS開発のイロハ
- 17. Laraveファイルライブラリをアップデートしました!!
- 18. OSS開発でforkしたリポジトリ側の同期方法のメモ
- 19. 4つ目のPRでようやく Next.js にコントリビュートできた話
- 20. 【Python】`comtypes==1.3.1`から`GetModule`で生成されるモジュールに静的型ヒントが導入
力が欲しいか?…なら
# はじめに
Linuxで作業をしていて、権限が足りなくて先に進めないときが度々ありますね。そんなときは彼のことが頭をよぎることでしょう。そう、“su“コマンドや“sudo“コマンドです。# suとは
まず“su“コマンドですが、Substitute User、あるいはSwitch Userの略で他のユーザーの権限を借用できます。“su ユーザー名“で指定したユーザーの権限で作業することができますがスイッチするためには指定するユーザーのパスワードを知っていないといけません。# sudoとは
そして“sudo“はSuperman Doの略。ではなくSuperuser Doの略です。root権限で実行することができますが、こちらで要求されるパスワードはrootのではなく自分のパスワードです。# suかsudoか
“su“も“sudo“も自分以外のユーザーの権限を利用できる点は同じですが、セキュリティの面では“sudo“の利用が推奨されます。# さいごに
“sudo su -“でrootにスイッチして作業するのも権限の面では楽ですが、必要な
今どこにいるのか分からなくなったら
# はじめに
Linuxで作業をしていて、ふと「わしは今どこにおるんじゃろぉ」と人生の深淵をのぞき込むような思いが込み上げてきたときに役立つコマンドの話です。それは`pwd`コマンドです。# pwdは何の略?
`pwd`はピーダブリューディーと読みますが
`pwd`とは何を略しているのでしょうか。
Print Working Directory、あるいはPresent Working Directoryの略だと言われています。# pwdでわかること
Present Working Directoryは、直訳すると「現在の作業ディレクトリ」という意味です。
そう、今いるカレントディレクトリを表示できるコマンドなのです。# さいごに
今どこにいるのか不明になったとき、あるいは今どこで作業しているのかログに残しておきたいときなど`pwd`コマンドを使いましょう。LinuCレベル1で出題されるコマンドは結構あって初めてLinuxに触れる初学者には結構大変ですが簡単なコマンドから一つずつ覚えていきましょう。千里の道も一歩から。40歳超えて知識0からでもLinuCレベル3コンプリー
全人類SKKとかいうIMEを使った方が良い
# SKK is 何
SKKとは、”Simple Kana to Kanji conversion program”の略であり、IMEの一種です。
当然OSSで、初出はEmacsですが、現在ではどの環境でも使えるようになっています。
Microsoft日本語IMEやGoogle日本語入力といった通常のIMEとは大きく操作方法が異なっています。
通常のIMEの場合、文章入力後に変換を押すと形態素解析により自動で単語に分割変換してくれます。
例) ねこにこばん ー> 猫に小判
しかし、皆さんご存じの通り、自分の思った通りに変換してくれない事も多く、入力の手戻りが多くなってしまう欠点があります。
例) きょうはいしゃにいった(今日歯医者に行った、と変換したい) ー> 今日は医者に行った
この場合は、カーソルキーで左に戻って変換して元の場所に戻らなければなりません。
この場合はまだしも、単語の区切りが間違っている場合は入力し直す必要があります。
それに対してSKKは自分で単語毎に分割し、単語毎に変換していきます。
例) きょう/はいしゃ/に/い/っ
【影響なし】XZ Utils Backdoor(CVE-2024-3094)のPVEへの影響確認
:::note info
CVE-2024-3094の対象となるXZ Utilsが含まれているDebianのバージョンは`unstable`となります。
PVEの現行最新版8.1のDebianは`bookworm`となるため、対象外となります。
:::## TL;DR
– XZ Utils Backdoor(CVE-2024-3094)のPVEへの影響確認
– Debianベースのため。
– 結果、影響なし。
– ベースになっているDebianのバージョンで、XZ Utilsの対象バージョンが利用されてないため。
– 念のため、実機でも確認。## 概要
「CVSS 3」のベーススコアが「10.0」(Critical)で、Debianも対象だったため確認しました。
結果としてはDebianの`unstable`(検証版)のみが対象であるため、Proxmoxはもちろん商用環境のほとんどでは影響がなさそうです。※本脆弱性そのものよりも、意図的に不正なコードを仕組むということが、OSSの文化へ与える影響の方が大きいかもしれません。
## 脆弱性の概要
以下がよくま
オープンソースのバグで開発が止まりかけたので、コミットを積んで直してみた話
去年、eKYCを利用した本人確認機能を開発していたのですが、導入しようとしたオープンソースにバグがあり、そのままでは開発が進められない事態となりました。
この状況を打破すべく、オープンソースにコミットを積んで運良く直すことができたので、背景や解決までに至ったプロセスなどを紹介します。# 背景
ユーザーが本人確認申請時に個人情報をeKYCへ送信した後、正しくレスポンスが返ってきた場合はユーザーをeKYCの本人確認手続き画面へ誘導する必要がありました。送信するだけであれば同期処理で良いのですが、エラーのレスポンスが返された時にその場で再送信をユーザーへ促したかったことと、レスポンスが正しく返ってきた時はその場で本人確認手続き画面へ誘導させたかったため、なるべく、ユーザーの待ち時間が発生しないように非同期処理にしなければなりませんでした。
ただし、eKYCへの同時リクエスト数が5までであっためSidekiqで制御する必要がありました。
Sidekiq単体で制御を行う場合、有料版のSidekiq Enterpriseへ切り替えなければなりませんでした。しかし、利用料金が高額なことと開
OSS活動としてRuby on RailsのGitHubにプルリクエストを作成した話
## きっかけ
Ruby on Rails の GitHub プロジェクト(https://github.com/rails/rails) にあるドキュメントファイル内に、いくつかタイポがあることに気づきました。
![01-github-readme-before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/25bed7bb-e1ed-1bc6-824a-36ff7d57924f.png)
赤線部の1つ「Depedencies」は、正しくは「Dependencies」ですね。
これらの誤記を修正しようと思いました。本記事では Ruby on Rails の GitHub プロジェクトをサンプルに、プルリクエストを発行する方法を紹介していきます。
## GitHub pull request 作成までの流れ
### 1. 貢献方法を確認
まずはコントリビュートする方法や注意点を確認します。
一般的には GitHub プロジェクトの `README.md` と `CONTRIB
はじめてのOSSコントリビュートをしてみた
## この記事について
– 今回、はじめてOSSコントリビュートをしたので、実施事項と気づきを記載します
– OSSのコントリビュートを考えている方のご参考になれば幸いです
– 今回コントリビュートしたのは[こちら](https://github.com/aws-samples/bedrock-claude-chat)のリポジトリです## なぜコントリビュートしようと思ったのか
私の場合は、2020年に現職でエンジニアになってから「社外の勉強会に登壇する」「OSSコントリビュートする」が密かに描いていた目標でした
私は普段AWS周りの情報収集をする事が多いのですが、たまたま見ていた[aws-samples](https://github.com/aws-samples)内のリポジトリで、記載を調整した方が良さそうな箇所があり、折角なのでコントリビュートに挑戦してみました
実際にMergeされたPRは[こちら](https://github.com/aws-samples/bedrock-claude-chat/pull/200)です
## コントリビュートの第一歩
PR
未経験40代は手始めにLinuC レベル1から
# はじめに
未経験で40代からSESに転職して、自分を売るために取得したのがLinuCでした。Windowsは多少使えるけどLinuxは名前を聞いたことがある程度、そんなところからのスタート。まずはレベル1。# LinuC レベル1は参考書とPing-tで
何もわからないので先ず参考書から。認定教材にも指定されている翔泳社の「Linux教科書 LinuCレベル1」、あずき本と呼ばれる定番の参考書です。学校のテストと違い、ここから出題されるというものではないので情報量を増やす必要があります。解説の充実した問題集があればと探して見つけたのがPing-tです。安価で問題量も多く、ネットでの評価も高い。LinuC レベル1 認定教材
https://linuc.org/measures/textbook/#01Ping-tのプレミアムプランはコスパがいい
https://mondai.ping-t.com/g/contents/premium_plan_introductionLinuCの認定教材は増えていますね。参考書は自分が読みやすいものを選ぶといいでしょう。
# どの
プリザンターを活用したデータセンター運用管理
# 内容
データセンター運用管理をプリザンターを使用して業務改善した話になります。下記イベントで発表させて頂きました。https://pleasanter.connpass.com/event/312923/
# 問題点とツールの選定
管理されるべき情報が管理されていない、運用フローがないなどの課題がありました。そこでツールを導入した業務フロー改善を計画しました。現在このようなツールはSaaS製品が主流になっていると思いますが、会社で仮想マシンのホスティングサービスを提供している関係上、オンプレの仮想マシンを利用することが出来ましたので、オンプレに無料で構築出来るOSSのプリザンターを選定しました。![スライド4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/ff525ff7-1f0a-a1bd-e452-4e892e5a6f91.png)
# 必要な情報の一元管理
プリザンターではGUIで自由にデータベースを作成できるため、全顧客の一覧ページを作成しました。![スライド
Yocto:レイヤーの追加方法
# 1. はじめに #
本ページでは、Yoctoのビルド環境にレイヤーを追加する方法について紹介します。
Yoctoは、様々なレイヤー(meta, meta-poky, meta-yocto-bsp, etc…)を組み合わせて構成されています。レイヤー毎にレシピ(\*.bbや*.bbappend)が格納されており、ビルド環境にレイヤーを追加することで、そのレイヤーに含まれるレシピを使うことができるようになります。
多くのレイヤーは、githubなどで公開されています。自身のビルド環境に、使いたいパッケージが含まれていないときは、必要なレイヤーを取得&ビルド環境に追加することで、追加したレイヤーに含まれるパッケージも使えるようになります。また、一般的に、Yocto環境に変更を加える場合、github等で取得したレシピには直接変更を加えず、カスタマイズ用のレイヤーを追加し、そこに変更用のレシピを作成していきます。
この記事は、上記のようなシチュエーションを想定した、レイヤーの追加、作成方法について紹介します。
なお、公式のYoctoマニュアルにおけるレイヤー作成についての説明は、以下
OSSコントリビュータデビューした話
## はじめに
怯えながらOSSコントリビュータとしてデビューしたので、その際の手順を残します。今回触ったライブラリはreact-datepickerです。
テスティングライブラリにEnzymeを利用していたため、React Testing Libraryに移行するお手伝いをしました。
## 手順
1. 修正対象ライブラリのgithubから、リポジトリをフォークする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2641495/ee093bce-6d9b-461b-54db-65e43c83e3b7.png)
リポジトリをフォークする先のOrganizationを選択して「Create Fork」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2641495/7960c142-a15f-b099-c7fb-59366c9c5cb1.png)
1. フォークしてきた作業用
貢献は力強く、名誉は永遠に、そしてサーバーは空を飛ぶ
# はじめに
私はASUSのROG Flow Z13という虹色に輝くゲーミングタブレットPCを使用しています。厚み1cm程度のタブレットにIntel Core i9とNVIDIA GeForce RTX 3050 Tiが入っているこの素敵な板はWindows 11の他にもAlma LinuxやUbuntuも動作しています。Linuxエンジニアですから。# Linuxのエンジニアであることの意義
一般にパソコンを購入する、使用するというときイメージしているパソコンとはWindows OSではないでしょうか。家電量販店に行ってもWindows PCかMacくらいしか目にすることはないでしょう。それでも我々がLinuxのエンジニアであることの意義とは何でしょうか?パソコンのほとんどがWindows OSであっても、Linuxのエンジニアであることにはいくつかの意義があります。1. 柔軟性とカスタマイズ性
Linuxはオープンソースであり、カスタマイズ性が高いため、エンジニアはシステムを自分あるいは自社や顧客のニーズに合わせて調整することができます。これにより、特定の要件に応じてシステ
貢献と名誉によって巡る経済
# はじめに
誰もがオープンソースムーブメントを利用してソフトパワーを獲得し、競争力を高めることができる現代。実際何をすることで何を得られるのか考えていきましょう。キーワードは **貢献** と **名誉** です。# オープンソースムーブメントにおける貢献とは
オープンソースムーブメントにおける貢献とは、ソフトウェアやプロジェクトに対して何らかの形で寄与することを指します。これには以下のような活動が含まれます。1. コードの貢献
ソースコードの修正や新しい機能の追加などプロジェクトにコードを提供することができます。これによってソフトウェアの品質向上や機能の拡張が可能となります。2. バグの報告と修正
ソフトウェアのバグや問題を報告することで貢献することができます。また、報告されたバグを修正するためにパッチを提供することもあります。3. ドキュメンテーションの改善
ソフトウェアのドキュメンテーションを改善することで貢献することができます。わかりやすいドキュメントは他の開発者やユーザーがソフトウェアを理解しやすくし、効果的に利用できるようにします。4. テストと品質管
オープンソースムーブメントというビジネスモデル
# はじめに
今、資本主義経済はハードパワーからソフトパワーにシフトしています。組織や企業が持つ物理的な資源や能力に物を言わせて目的を達成するハードパワーにも限界が見えてきています。ブランド価値、顧客満足度、リーダーシップ、企業の社会的責任、文化的な価値観などの非物質的な要素により顧客やステークホルダーとの信頼関係を構築し目的を達成するソフトパワーが重要であることをみなさんも日々感じていることでしょう。個人や組織、企業が規模の大小に関わらず強力なソフトパワーを得るにはどうすればいいのか?その答えがオープンソースムーブメントです。# オープンソースムーブメントとは
オープンソースムーブメントとは、ソフトウェアやその他の知的財産の開発や配布において、そのソースコードやデザイン、その他の資源を公開し、誰でも自由に利用、変更、改善、再配布できるようにする運動です。この運動は主にソフトウェア開発において顕著で、オープンソースソフトウェアの開発と普及を促進しています。詳しくはLPI-Japanの創設者である成井さんの投稿を参照ください。
https://www.bold.ne.jp/eng
めざせコントリビューター【完全攻略本】
> ああ あこがれの コントリビューターに
> なりたいな ならなきゃ
> ゼッタイなってやるーッ!「はじめまして! プログラミングの せかいへ ようこそ!」
「わたしの なまえは ヤマダ」
「ひごろは [Yamada UI](https://github.com/yamada-ui/yamada-ui) [Next.js](https://github.com/vercel/next.js) [Chakra UI](https://github.com/chakra-ui/chakra-ui) [Mantine](https://github.com/mantinedev/mantine) [Refine](https://github.com/refinedev/refine) のコントリビューターをして おるよ」改めまして、『まだマサラタウンにいるプログラマーのみなさん』こんにちは。プログラマーを始めて3年目の山田です。
今回は、みんなが憧れるOSSのコントリビューターになる、『1番道路』へ踏み入れるための完全攻略本です。そして、日本で大注目されている(はず)の[Yam
駆け出しOSSコントリビューターが失敗から学んだ 大規模OSS開発のイロハ
## 今熱い!OSSコントリビュート
突然ですが、あなたは OSS活動 やっていますか?
去年ではありますが OSSを積極的に推奨する企業も出てきて、今 OSS にコントリビュートは熱い分野の1つになっています!https://productpr.timee.co.jp/n/n8e2182f46334
そんな OSS ですが、自分も、去年の10月に初めて nue.js というプロジェクトにコントリビュートしてから、去年の12月から Next.js を読み始めて つい先週 Next.js への PR がマージされました。
https://qiita.com/YmBIgo/items/e4600a44a446033afa1b
https://qiita.com/YmBIgo/items/45c8c3dfbc83e6fb57d7
しかし、普段はOSSの恩恵を受けているだけの開発者の自分は、大規模OSS開発というOSSを使う側と比べると何倍も規模が違う開発のイロハをわきまえず、開発をしてしまい、失敗してしまった経験があります。
自分と同じような過ちはおかしてほしくないという希望を
Laraveファイルライブラリをアップデートしました!!
## はじめに
こんにちは,ご覧いただきありがとうございます。
前回,Laravel用のファイルライブラリを作成しました。https://qiita.com/ikepu-tp/items/69c445a4de47f52ce6d7
前回提示していた目標は以下のとおりでした。
1. 機能感はWordPressのメディアライブラリに近い
2. 特に設定をしなくても使える
1. アップロードしたファイルの一覧等をデフォルトで表示できる
2. ファイルのアップロードフォームをデフォルトで使用できる
3. ファイルのアップロードや情報の取得,編集をAPIを通じて行うことができる
4. ファイルのアップロードや情報の取得,編集をインスタンスで行うことができるこれらのうち,1,2の目標を達成しています。
そこで今回は残りの2つの目標を達成するためにアップデートを行いました。## アップデート内容
– API対応
– ファイルのアップロード処理のインスタンス化
– ダウンロードリンクの追加の3点です。
### API対応
API対応について,以下のリソースでAPI
OSS開発でforkしたリポジトリ側の同期方法のメモ
# はじめに
OSS開発時に、upstream(OSS本家)のGitリポジトリ側が進んだ場合の同期方法に関するメモです。自分のPRがマージされた時にも実行します。本手順を実行すると、forkしたGitリポジトリ側のPRも自動でクローズされます。
# 手順
“`
git checkout maingit fetch upstream
git merge upstream/main –ff-only
git push origin main -u
“`
4つ目のPRでようやく Next.js にコントリビュートできた話
## 短くまとめると
Next.js で Server Action の redirect のバグがあったから直したよ。## 教訓
・テストやリントを通さないとPR は通りにくい
・PR を送る時はバッチなだけではなくて、バグの原因も書くといいかもしれない
・ある程度腕に自信があるなら、good first issue ではなくて、普通にissue からバグの調査をしよう## 経緯
#### 普段してたこと
去年の12月からNext.js のコードを読むようになり、年初と2月の初めにパッチとしてPR を合計3つ出していました。
good first issue は他の人が取り組んでいるものばっかりだったので、issue を一から調査する形でパッチを作っていました。
ただテストやリントを通すことを、この記事を見るまでしてなかったので、あまり芳しくない結果でした。
ただ issue の調査を通して、Nextjsへの解像度を上げてはいたと思います。#### Serve
【Python】`comtypes==1.3.1`から`GetModule`で生成されるモジュールに静的型ヒントが導入
## 初めに
[2023年11月30日に行われたGuido van Rossum氏インタラクティブ記念講演会(#guidomeetup)](https://pyconjp.connpass.com/event/301716/)で[発表した`comtypes`へのコントリビュートについてのプレゼンテーション](https://docs.google.com/presentation/d/1sZ_tAlDRtgWb6JBG9Oumleu8wG45oGFx1_dRg2WnN7U/edit?pli=1#slide=id.p)内容を`main`ブランチに取り組み[`comtypes==1.3.1`](https://pypi.org/project/comtypes/1.3.1/)としてリリースしたので、その機能のご紹介です。## 概要
これまで`comtypes.client.GetModule`によって`comtypes.gen`以下に生成されるモジュールにあるCOMインターフェースにはPythonフレンドリーな静的型情報がなく、モダンなPython開発に比べてコーディング体験が低い状態