- 1. OpenSpielで始める強化学習その① ~OpenAI Gymとの比較~
- 2. OpenBSD + xfce で日本語環境を整理(したかった)
- 3. OpenBSD6.9を実機にインストール&日本語デスクトップ環境を導入する!
- 4. 初めてのOSSコントリビュートにおすすめのサイト
- 5. OSSライセンスを理解する〜OSSを安全に利用するための基礎〜
- 6. 機械学習の実験管理をトレンドサーチしてみた
- 7. タイポフィックス!Rubyのオープンソースプロジェクトにお手軽に貢献する方法を考える
- 8. Apache Pulsarにおけるレプリケーテッドサブスクリプションの紹介
- 9. データ活用を促進するスゴ素晴らしいOSS、Streamlitを紹介する。
- 10. 個人開発でwebサービスを作ったら人生で初めてバズった話
- 11. Apache PulsarのPartitioned topics Producerについての機能改善 – Pulsar Summit NA 2021での登壇内容まとめ
- 12. OSSのChromium OSをやってみようと思う話
- 13. Miro風ホワイトボードOSS “ourboard”
- 14. 【ゼロからのOS自作入門】フォロー1日目
- 15. 富岳にdonkeycarパッケージをインストールする
- 16. サブスクリプションタイプKey_Sharedの紹介
- 17. Pulsar Node.jsクライアントライブラリを使ってみた
- 18. 私にコーヒーをおごってほしい – エンジニアと報酬・対価について考えた
- 19. データウェアハウスのブロックサイズの初期値
- 20. 【C++】時刻計算を簡単に行えるライブラリを自作した
OpenSpielで始める強化学習その① ~OpenAI Gymとの比較~
# 初めに
## OpenSpielとは
https://github.com/deepmind/open_spielDEEPMINDが作成した研究者向けの強化学習フレームワークのOSSです。マルチエージェントRLの研究の促進や研究の再現性の向上を目的としています。
主にPythonとC++で書かれていますが、GoやSwift、Juliaもサポートされています。
深層強化学習はTensorFlow1、2、JAXとPytorchに対応しています。## 想定される読者
自分のように研究者ではないが強化学習について勉強してみたいけど何使えばいいんだっけという人向けに書いています。## 環境
“`bash
$ sw_vers
ProductName: macOS
ProductVersion: 11.4
BuildVersion: 20F71$ python3 -V
Python 3.9.5
“`## インストール方法
“`
pip install open_spiel
“`
でインストールされます。ビルドするため8分程度かかるかと思います。
環境によって
OpenBSD + xfce で日本語環境を整理(したかった)
#目次
[1. はじめに](#1-はじめに)
[2. xfce_GUIでシャットダウンできない?](#2-xfce_GUIでシャットダウンできない?)
[3. 追加のソフトウェアの設定](#3-追加のソフトウェアの設定)
[4. おわりに](#4-おわりに)#1. はじめに
前回の記事で、OpenBSDの日本語デスクトップ環境を導入したわけなのですが、何かと普段使いするには物足りないので設定を追加していきます。#2. xfce_GUIでシャットダウンできない?
デスクトップ画面の右上のところをクリックすると、シャットダウンなどのドロップダウンメニューが出てくる… のですが、なぜか* ユーザーの切り替え (S)
* サスペンド (P)
* シャットダウン (D)が暗くなっていてクリックできないんですよね…
![xfce_dropdown.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1874028/293f39c7-26ce-8167-d97a-69e1ad1d8963.jpeg)
OpenBSD6.9を実機にインストール&日本語デスクトップ環境を導入する!
#目次
[1. はじめに(雑談)](#1-はじめに(雑談))
[2. 環境](#2-環境)
[3. インストールメディア作成](#3-インストールメディア作成)
[4. インストール](#4-インストール)
[5. デスクトップ環境](#5-デスクトップ環境)
[6. doasの設定](#6-doasの設定)#1. はじめに(雑談)
私はPC初心者なのですが、今回の目標はタイトルの通りです (固い決意)。以前、一度サブデスクトップにOpenBSDを導入したのですが、Mateを入れたところ不安定すぎて挫折して、「もう不安定なのやだ!」となり Pop! OSを入れました (極端)。しかし幸運なことにOpenBSDのアップデートが去る5月にきていたようですし、丁度中古ノートパソコンを仕入れたので今度こそOpenBSDを導入したいと思います。この記事は長ったらしい、と思ったそこのアナタ!
公式ドキュメントをどうぞ。
初めてのOSSコントリビュートにおすすめのサイト
OSSにコントリビュートしたい気持ちはあれど、はじめは何から始めたらいいかわからないと思います。
Githubでは、初めてコントリビュートする際に着手しやすいissue用に `good first issues` というラベルが用意されています。
それらのissueをまとめているサイトがいくつかありましたので、自分へのメモとしての意味も含めて以下に記載します。## 参考サイト一覧
#### :star: おすすめ1
個人的にはデザインが一番好み。プロジェクトや選択可能言語も豊富。https://good-first-issues.page
#### :star: おすすめ2
選択可能言語は1番目のサイトよりも多くはないが、基本的なものはそろっており、デザインも見やすい。https://goodfirstissue.dev/
#### :star: おすすめ3
こちらも選択可能な言語は1番目のサイトほど多くはないが、程よくまとめられている。https://goofi.vercel.app/
#### :star: おすすめ4
こちらは `help wanted`
OSSライセンスを理解する〜OSSを安全に利用するための基礎〜
# オープンソースソフトウェアを安全に利用するための基礎
某ネットワーク機器販売代理店のGPL炎上事件が旬な話題だが、改めてOSSを活用する上でオープンソースソフトウェアライセンスの基礎についてまとめる
## ソフトウェアの配布形式
ソフトウェアの配布形式には **オープンソース** と呼ばれる形式と **プロプライエタリ** と呼ばれる形式がある
### オープンソース・ソフトウェアとは
オープンソースソフトウェア (以下OSS(Open Source Software))
利用者の目的を問わず、ソースコードの使用・調査・再利用・修正・拡張・再配布が可能なソフトウェアの総称
**著作物に対する権利を放棄したわけではない** ←ここ大事代表的なソフトウェアに GNU/Linux や MariaDB, PostgreSQL などがある
### プロプライエタリ・ソフトウェアとは
プロプライエタリ・ソフトウェア = 私有ソフトウェア
ソフトウェアの入手・使用・改変・複製などに関する権利をソフトウェアの配布者が所有し、利用者の権利を制限的にする
バイナリで配布され
機械学習の実験管理をトレンドサーチしてみた
# 概要
実験管理ツールがOSSとして複数あるものの、どれが流行っているのか&学習コストに見合うだけ使えるのかの知りたく調査しました。今回はMlflow,Kubeflow,Kedro,Metaflow,ClearMLをGoogleトレンドで調査。結果、Kubeflow,Mlflowがよく検索されているようです。# 調査
Googleトレンドで12ヶ月,5年,おまけで日本での12ヶ月の3つの結果を載せます。画像は執筆時点で取得したものです。線の色の対応は次の図を参照して下さい。
![スクリーンショット 2021-07-19 14.50.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1707407/20279170-a022-216a-9c3c-622425037b8b.png)
—
![スクリーンショット 2021-07-19 14.41.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1707
タイポフィックス!Rubyのオープンソースプロジェクトにお手軽に貢献する方法を考える
### タイポフィックスでいいからOSSに貢献したい・・・
先日Go言語で有名なmattnさんの
typo でもいいから OSS にコントリビュートしてみたいなと思う人は、Vim でファイルを開いて
:set spell
を実行するのです。変数名や造語でもないのにこういう風に赤く見えたら typo です。 pic.twitter.com/t8Z8m7cQ9U
— mattn (@mattn_jp) July 14, 2021
というツイートを見て、なるほどなーと思ったので記事を書くことにした。
とにかくオープンソースになにか貢献したいと考えている場合は、タイポフィックスのプルリクエストは簡単でとてもいい。しかも、多くの場合タイポフィックスのプルリクエストを嫌がる人はあんまりいない。プロジェクトのオーナーから見ると、タイポフィックスのプルリクエストはさくっとレビューして `Thanks!` とコメントしてマージするだけで自分のプロジェクトのコントリビュータを1人増やせるので、基本的には喜ばれることが多いと思う。
この記事では、いわゆるスペルミスのようなタイポではなくて、打ち損じによってコードの挙動が少しおかしくなっているような、広義でのタイポを発見してプルリクエストを作る方法を考える。
## Rubocopで明らかに怪しそうなコードを探す
お手軽にプルリクエストを作成することを考えた時に、
Apache Pulsarにおけるレプリケーテッドサブスクリプションの紹介
## はじめに
Apache Pulsarでは、Consumerがトピックの購読を開始する際に**サブスクリプション**と呼ばれる識別子を指定する必要があります。Producerによってトピックにproduceされたメッセージは、それぞれのサブスクリプションに対して1つずつ配信されます。つまり、全てのConsumerが異なるサブスクリプションでトピックを購読していればメッセージがブロードキャストされる事になります。一方、全てのConsumerが同じサブスクリプションに属していればそれらの内どれか1つにメッセージが配信される事になり、負荷分散や冗長化を実現できます。PulsarのサブスクリプションはKafkaで言うConsumer Groupに当たるものと言えるでしょう。
ここからが本題となりますが、Pulsar 2.4.0から**レプリケーテッドサブスクリプション**と呼ばれる特殊なサブスクリプションの作成が可能になりました。今回はこのレプリケーテッドサブスクリプションの機能の概要からアーキテクチャまでを解説してみたいと思います。
なお、以降の記述は執筆時点での最新バージョンであ
データ活用を促進するスゴ素晴らしいOSS、Streamlitを紹介する。
# はじめに
OSSの[Streamlit](https://github.com/streamlit)が非常に有用でしたので紹介したいと思います。# 何ができるか
[こちら](https://www.streamlit.io/)をご覧ください。
pythonを書くだけで、PowerBIやTableau、Grafanaでつくるようなダッシュボードをつくることができます。
作成物がコードなので、Gitでコード管理できるのも良いですね。# どうやって作るか
素晴らしい時代になりました。
YoutubeにStreamlit公式の[解説動画](https://www.youtube.com/watch?v=B2iAodr0fOo)があります。
これを確認しながら、手を動かしましょう。
Streamlitの環境構築方法は、[こちら](https://qiita.com/hiyasichuka/items/68373957bd021435a4a0)を参考にしてみてください。# おわりに
製造業の現場はパッケージやツールに合わせて業務を遂行するのが非常に苦手な印象を受けます。
したが
個人開発でwebサービスを作ったら人生で初めてバズった話
## はじめに
先日個人開発したwebサービスをリリースしました。
ありがたいことに思った以上に反響があり、仕事とはまた違った学ぶこともあったので宣伝も兼ねて開発にあたっての備忘録を残そうと思います。### 作ったwebサービス
BUKUMANGA – はてなブックマーク数を元にwebマンガをまとめたサイト
https://bukumanga.com/GitHub
https://github.com/ktny/bukumanga## 開発の目的
### 名作webマンガを整理したい
はてなブックマークで誰かが「webマンガをまとめたサイト作ってくれないかなー」的なことを言っていたのを見てそれいいじゃんと思ったのがきっかけです。
自分もはてなブックマークは主にテクノロジーとアニメ・ゲームカテゴリをよく見ていましたが、はてブで話題になっても世間の話題の移り変わりは激しく、特に読み切りなどは見逃しやすかったりので、せめてはてブで話題になったwebマンガを整理したサイトがあったら自身も楽しめるし需要もあるかもしれないし使いたい技術も使えるしいいなと思って作りました。あくまで
Apache PulsarのPartitioned topics Producerについての機能改善 – Pulsar Summit NA 2021での登壇内容まとめ
> [Yahoo! JAPAN Tech Blog](https://techblog.yahoo.co.jp/)向けに寄稿した記事を、会社の許可を得てこちらにも転載しています。
[Apache PulsarのPartitioned topics Producerについての機能改善 – Pulsar Summit NA 2021での登壇内容まとめ – Yahoo! JAPAN Tech Blog](https://techblog.yahoo.co.jp/entry/2021062230161532/)こんにちは、システム統括本部クラウドプラットフォーム本部の水嶋と申します。私は現在、社内向けにキューイング・Pub-Sub・ストリーミングなどのメッセージングプラットフォームを提供するチームに所属しています。
このチームでは、メッセージングプラットフォームとしてOSS [Apache Pulsar](https://pulsar.apache.org/)(以降、Pulsar)を利用しています。この業務内でPulsarの機能改善に取り組み、OSSコミュニティーにプロポーザルおよび実装
OSSのChromium OSをやってみようと思う話
前回の記事である、銀河系の情報を調べようとAzureクラウドを使おうとしたら、面食らった話について
の続き記事です。OSSであるChromium OSの記事ですが、当方、ubuntuとLinux mintしか知らない為
かなりの困難が予想される。
Miro風ホワイトボードOSS “ourboard”
ホワイトボード、オンライン共同作業ツールとして有名なWebサービスとして[Miro](https://miro.com/)があります。
Miroは便利なんですが、自分たちの開発環境に建てられたらなぁと思い似たようなOSSがないかとずっと探していました。
ついに先日[ourboard](https://github.com/raimohanska/ourboard)というソフトを見つけてまさに探していたものに近かったので、概要とインストール方法について紹介します。# 概要
ourboardはraimohanskaさんのgithubリポジトリで開発され、MITライセンスで公開されています。
デモページも公開されていて、何ができるのかはそちらを見ていただくのがわかりやすいと思います。https://www.ourboard.io/
できることは大きなホワイボードの上に付箋やテキストを置いたり、エリアを区切ったり、オブジェクト同士を曲線で結んだりです。
他にドラッグアンドドロップで画像や動画をホワイトボード上に置くこともできます。作成したボードはリンクを共有することで他の人も
【ゼロからのOS自作入門】フォロー1日目
とある事情で06/30までに「[ゼロからのOS自作入門](http://zero.osdev.jp/)」という本を読み終えたいと思うようになりました。
自律のため毎日勉強したことを投稿しようと思うのでよろしくお願いします。—–
# UEFI BIOSによる起動
– 電源を入れるとCPUはBIOSを実行する
– BIOSはパソコン本体や周辺機器を初期化する。
– BIOSはストレージから`.elf`ファイルを見つけ、それをメインメモリに読み出す
– BIOSは自分の実行を中断して、CPUはそのファイルを実行するメインメモリの内容は電源を切ると消える。BIOS自体はROMにかかれている。
# OSを作る道具
– UEFI BIOSが実行するプログラムを**UEFIアプリケーション**という(アプリケーション…)
– これはバイナリファイルである
– バイナリファイルの作り方の例と
富岳にdonkeycarパッケージをインストールする
表題の手順をgithub上に公開しました。
> GitHub: Donkeycar on Fugaku
> https://github.com/coolerking/donkeycar_on_fugaku去年あたりからニュース画像でもおなじみになってきたスーパーコンピュータ富岳ですが、OSSを使った計算を行う場合は多少厄介になります。
すでにインストール済みのものであればよいのですが、未インストールであり、さらに依存関係のあるOSパッケージ管理ツール管理化のパッケージを使用する場合、一般ユーザの許可されている権限でなんとかしないといけないので、いろいろややこしくなります。
自分が思いつく方法は、以下の2種類になります。
* ホームディレクトリ上でソースからコンパイル
* spack を使ってコンパイル&インストールホームディレクトリ上にソースコードを展開して、手動でビルドするときに、`–prefix` オプションでホームディレクトリ上のサブディレクトリ(ex. `~/local/aarch64fx` )にして`make install`したときにこのディレクトリ
サブスクリプションタイプKey_Sharedの紹介
[Apache Pulsar](https://pulsar.apache.org/)には、[Exclusive,Failover,Shared](https://qiita.com/equanz/items/47aaa70da4ebe8dd3e67#%E3%82%B5%E3%83%96%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%97)という3つのサブスクリプションタイプがありましたが、
v2.4.0からはこれらに加えて[Key_Shared](https://qiita.com/equanz/items/47aaa70da4ebe8dd3e67#%E3%82%B5%E3%83%96%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%97)という新しいサブスクリプションタイプが導入されました。
今回はこのKey_Sharedにつ
Pulsar Node.jsクライアントライブラリを使ってみた
## はじめに
こんにちは。
本稿では、Pulsarの[Node.jsクライアントライブラリ](https://github.com/apache/pulsar-client-node)(以下、pulsar-client-node)を使って、簡単なメッセージの送受信をしていきます。
サーバには、standaloneモードのPulsarを起動させます。今回は、CentOS 7.5.0 1台の上に以下の環境を構築して試していきます。
* サーバ
* Java 11
* Pulsar(standaloneモード) v2.7.1* クライアント
* Node.js v12.22.1
* pulsar-client-node v1.3.0
* pulsar-client-cpp(後述) v2.7.1## サーバの準備
ここでは、メッセージの送受信を行うためのサーバを準備していきます。まず、Pulsarのstandaloneモードを動かすために、Javaが必要になります。
Javaのインストール後、Pulsarのバイナリファイルが入ったアーカイブファイルを
私にコーヒーをおごってほしい – エンジニアと報酬・対価について考えた
表題に他意はなく、単に興味を持った「[Buy me a coffee](Buymeacoffee.com)」を日本語にしたらそういう感じなのかな、というところです。記事の結論を先に書くと「金銭」とまでは言わずとも、「お礼」や「応援」の気持ちは、普段から開発者同士もっと表明して送っていきたい。そういう気持ちを改めてもったという話。
Buy me a coffee、Qiita記事でも紹介されていた。以下。
https://qiita.com/whitphx/items/f37216ab2392ab359f11#buy-me-a-coffee
モノの試しに自分でもBuy me a coffeeアカウントを作ってみた。しかし何かを作ることとお金、もう少し話を広く表現すると「報酬」「対価」の話は各媒体、それぞれ戦略や考え方がある。
## 「お金を稼ぐ」ことにまつわる各コミュニティ等のお話
### 例: Qiita
https://qiita.com/HiromuMasuda0228/items/aa3729882cb59fda9838
https://qiita.com/tama
データウェアハウスのブロックサイズの初期値
OSSのデフォルトのブロックサイズを調べたのでメモしておきます.
## Hadoop = 128MB
http://hadoop.apache.org/docs/r3.0.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
## Amazon Redshift = 64MB
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c-spectrum-external-performance.html
【C++】時刻計算を簡単に行えるライブラリを自作した
## はじめに
C++ での時刻計算では、`struct tm`を使った方法がよく紹介されています。ただし、struct tmにはクセがあり、1900年始まりだったり、0月始まりだったりとプログラマが注意を払わなければならない部分があります。そこで、struct tmをラッピングし、時刻計算を簡単に扱えるライブラリを作成しました。
名前を`Easy Datetime`とし、下記のシンプルな機能を提供します。– 機能一覧
– 日付計算
– 時刻差の計算
– 文字列 ↔︎ 時刻への相互パース
– 現在時刻の取得### [Eazy-Datetime-Cpp](https://github.com/akihironakayama0225/Easy-Datetime-Cpp) ← ライブラリへのリンクはこちらです!
## 目次
– [インストール](#インストール)
– [EZ::Datetime(日付クラス)](#ezdatetime日付クラス)
– [現在時刻の取得](#現在時刻の取得)
– [時刻の設定](#時刻の設定)