【Softwareと戯れる】OSSの活用について

こんにちは、群馬事業所の金猫マネージャー(仮名)です。

最近よくITをやっていると耳にする単語「OSS」とは、
Open Source Softwareの略称で、なんと購入せずにタダで利用できる、
しかもソースコードも公開されているといった素晴らしいソフトウエアのことです。

まあ、色々と但し書き(ライセンスや配布などのルール)がありますが、それはとりあえず隅に置いておいて、良いところ感動したところを共有していきます。

今回は、私の独断と偏見で以下3つを簡単に紹介します。

  •  TrueNAS   :オペレーティングシステム
  •  PostgreSQL   :データベース
  •   VisualStudio Code :高機能エディター

TrueNAS (旧FreeNAS)

まず、NASはナスと読みます。(Network Attached Storage)の略称で、フルネームで呼ぶと頭に???を浮かべられ、略称で呼ぶと日本では野菜の「茄子」と間違われ「俺、家でナス作ってるんだぜ」と自慢しても、家庭菜園でも始めたのかな・・と思われるだけの不遇なやつです。

ここで紹介するのはOSのタダ(Free)もしくは真(True)のナス(NAS)です。

TrueNASとは、無料利用できるネットワークアクセス可能なストレージサーバー向けのOSの事です。

私は、自宅のファイルサーバーをこれで構築して、6Tの家族向けRAIDありの共有ストレージを構築しました。

ハードウエアのスペック次第では数百MB/Sでファイルのやり取りができ、無線LANからも家族なら参照自由なGoodなファイルサーバー自作できます。

セットアップ完了後の管理は基本的にブラウザーからGUIですべて行えるので管理も楽です。

PostgreSQL on the  PL/Python

PostgreSQLとは、OSSで構成されたデータベースです。

データも従来の文字や数値だけでなく、JSONやバイナリーデータなども内部で取り回しができて、しかも標準の手続き型言語SQLに加え、内部のFunctionの開発にJava、Pythonなどを使えます。 ※

今回、そんな「PostgreSQL(象)」+「Pyhton(蛇)」のなんだが強そうな合成例を紹介します。

このDBは特にPythonと組み合わせた際の効果が高く、難しい数学の計算(例えば行例演算やベクトル計算)などを内部でPythonを使って行えるのでデータ管理をSQLで行い、高度な計算をSQLからPythonで作ったFunctionを呼び出し行うことで、データの抽出のついでに高度の計算を使ったデータの取得が効率よく行えます。

データ処理では通常、サーバーやアプリケーションの壁を超えるたびにその場所に適したデータ形式に変換が行われ、コンピュータのリソースが消費されます。

特に大量のデータ分析を行う「ビックデータ」「データサイエンス」などの分野では、この変換の回数と距離を短く抑えることが課題になることが多いのです。

※ 拡張のセットアップが必要になります。

VisualStudio Code

Microsoft社がOSSとして世に出している、高機能エディタです。

Windowsの開発に携わったことのある人なら必ず使ったことのあるVisualStudioから派生した無料のエディターでWindows以外のOSでも利用でき、ある意味これさえあれば大抵の環境で開発が行える・・といったツールになっています。

本家のVisualStudioはIED、このVisualStudio Codeはエディタとして、機能がシンプルで軽量、カスタマイズ性が高くプラグインをエディタ本体から検索インストールすることで大抵のファイルフォーマットやプログラミング言語に対応できます。

OS、言語やファイルフォーマットの垣根を取り払ってくれるツールで、ある意味OSSを体現しているようなツールになっています。

とても便利で、愛用しています。

最後に

以下に気を付けて、自由で奥の深いOSSを楽しみましょう

基本的にOSSは、世界中のエンジニアの善意によって運営されている仕組みです。

そしてOSSはライセンスで保護されています。 無料であると同時に無保証であることが多いです。

趣味や勉強のために個人で使う際には、便利だな~面白いな~ですみますが、「商用利用すると有料になる」

「改造したらソースコードを公開義務が発生」「バグにより損失が発生しても誰も保証しない」などなど、

OSSのパッケージによって、色々な制約が存在しています。

あまりニッチなものを使ってしまうと詰むか沼から抜けられなくなるので、使う前に以下の目安でチェックを行ってみてください。

【チェックリスト】

・まずライセンスの確認

・利用者が多いのか

・コミュニティが存在するか

・定期的もしくは頻繁にBugFixやUpdateが行われているのか

・メインストリームの期限

・リリースパッケージの安定性

・日本語ドキュメントの有無

(語学に自信があれば気にしなくて良い)

以上です、最後まで読んでいただいてありがとうございました。

コメント

タイトルとURLをコピーしました