ソフトウェア開発者のための OSS、まとめてみました!

ソフトウェア開発を行なっている自分が、個人的に面白いと思ったプログラムの最新技術や、オープンソースソフトウェア(OSS)をまとめています!

MENU

SNS 全体で任意のユーザー名が使用されているか確認したいなら!「Sherlock」

概要

スマートフォンやノートパソコンが普及したことによってインターネットが身近になった今日この頃、私士たちの生活に SNS が普通に存在するようになりました。

しかし SNS は現在無数にあり、今この瞬間にも新しい SNS が生まれようとしているところだと思います。

SNS を利用する際にはまずメールアドレスやパスワードを使用して登録すると思いますが、その次にとても大切な「ユーザー名」を決めるのは、すでに始めている方々と名前がかぶってはいけないという制約があるため、とても大変かと思います。

さらに、SNS 全体を通して 1 つのユーザー名のみしか使いたくないという方(実際にそのような方がいらっしゃるかはわかりませんが…)にとっては、最初のユーザー名を決めるのはとても骨の折れる作業かと思います。

そこで今回は、今後利用したいと考えているユーザー名が、現在の SNS で利用されているユーザー名に存在するかを確認することができる OSSSherlock」をご紹介します。

こちらは Python スクリプトOSS で、導入も簡単で実行も簡単のため、すぐに利用でき今後利用したいユーザー名が現在存在している SNS で利用されているかどうかを確認できます!

実際に利用手順などを見てみましょう。

利用手順

まずは GitHub から「Sherlockリポジトリをクローンします。

$ git clone https://github.com/sherlock-project/sherlock.git

クローンが完了したら sherlock ディレクトリへ移動し、利用するのに必要なモジュールをインストールします。

$ cd sherlock
$ python3 -m pip install -r requirements.txt

以上で準備は完了です。

以下のように、検索したいユーザー名(ここでは user123 )が SNS に存在するか、実際に起動して確認してみましょう。

$ python3 sherlock user123

すると、以下のように既存の SNSuser123 が存在しているか、確認することができました!

ちなみに、ユーザー名が存在する場合は [+] が、損際しない場合は [-] --- Not Found! が表示されます(以下の例は、GitHub 上の README にある例の画像で、username というユーザーが存在するか確認した結果となります)。

使用感

実際に自分も利用してみたのですが、Python スクリプトのためインストール・事前準備も簡単に行え、起動自体も簡単に行えました!

起動後もサクサク検索してくれるので、ストレスフリーでいいですね!

まとめ

今回は、今後利用したいと考えているユーザー名が、現在の SNS で利用されているユーザー名に存在するかを確認することができる OSSSherlock」をご紹介しました。

今後、SNS 上でユーザー名を決めるときに、使用したいユーザー名がもうすでに存在するかなど確認する際に利用されてみることをお勧めします!

また、SNS のリストの追加は自分でも可能です。

以下の sherlock/sites.md を見てみると、こちらに検索時に使用されている SNS のリンク先が格納されていました。

そのため、こちらを編集するなどして、追加で検索したい SNS でのユーザー名を探すことができます!

ぜひそちらも試してみて、SNS のユーザー名を検索してみてはいかがでしょうか?

ライセンス

MIT License

リンク

sherlock-project.github.io

github.com

YouTube などのWebからメディアコンテンツ(動画、音楽、画像)をダウンロードしてみたいなら!「You-Get」

免責事項・はじめに

インターネット上から許可なくメディアコンテンツ(動画、音楽、画像)をダウンロードすることは、その Web サイトの規約違反となり違法となる場合があります。

今回紹介する OSS をご利用する場合は、一度 Web サイトの規約をご確認いただいて、ダウンロードしても問題ない場合のみご利用ください。

なお、利用する場合は自己責任で行う必要があり、本記事に掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。

概要

近年 YouTube をはじめ、たくさんのメディアコンテンツが世の中にあふれています。

そんな中、動画をダウンロードして活用したい場合があるかと思います(著作権・規約などには十分気を付けてくださいね)。

本日はあまり大声では言えませんが、そのようなメディアコンテンツをダウンロードすることができる OSS「You-Get」を紹介します。

You-Get はコマンドラインからインターネット上のメディアコンテンツをダウンロードするための小さなコマンドラインユーティリティとなります。

利用手順

You-Get を利用する際には、以下のソフトがあることが推奨されています。

インストール方法はいくつかあるのですが、今回は Python を利用した pip コマンドでインストールしてみようと思います。

$ pip3 install you-get

そのほか、Zsh を利用したインストール方法、GitHub 経由でのインストール方法、GitHub クローン経由でのインストール方法などいくつか方法があるので、詳しく知りたい方は以下のインストール手順を確認してみてください。

github.com

You-Get をインスト―ルした後は、以下のコマンドを実行することでメディアコンテンツをダウンロードすることができます。

you-get <ダウンロードしたいメディアコンテンツ URL>

使用感

今回は「You-Get」を利用して、YouTube からライセンス「クリエイティブ・コモンズ著作権表示必須ライセンス(再利用を許可する)」のある以下の動画を実際にダウンロードしてみました。

www.youtube.com

$ you-get https://www.youtube.com/watch?v=jNQXAC9IVRw
site:                YouTube
title:               Me at the zoo
stream:
    - itag:          43
      container:     webm
      quality:       medium
      size:          0.5 MiB (564215 bytes)
    # download-with: you-get --itag=43 [URL]

Downloading Me at the zoo.webm ...
 100% (  0.5/  0.5MB) ├██████████████████████████████████┤[1/1]    6 MB/s

Saving Me at the zoo.en.srt ... Done.

操作方法自体もコマンドを打つだけなので、とても簡単にダウンロードすることができました!

コマンドライン上の操作で完了するので、シンプルでいいですね。

ちなみに、「You-Get」は指定した URL のメディアコンテンツをダウンロードするだけでなく、検索ワードを設定することで Google 検索をかけて検索ワードに合った動画をダウンロードする機能や、「You-Get」だけで動画を閲覧することができるなど、驚くほど多機能なコマンドラインツールでした。

github.com

README の下のほうに応用的な使い方について説明がされているので、こちらも参考にしてみてはいかがでしょうか。

まとめ

今回は、メディアコンテンツをダウンロードすることができる OSS「You-Get」を紹介しました。

コマンドライン経由で様々なメディアコンテンツをダウンロードすることができるため、とてもシンプルかつ簡単にダウンロードすることができ、とても使いやすい印象でした!

現状は以下の Web サイトのメディアコンテンツをダウンロードすることができるそうです(図は README に記載されている一部です。詳細を知りたい方はこちらで確認ください。確認してみてください。)。

ただ、最近はメディアコンテンツのダウンロード違法となる場合もあるので、ご利用する際は Web サイトの規約をきちんと把握いただき、問題ないことを確認してからご確認ください!

それでは、よいメディアコンテンツ生活を!!

ライセンス

MIT License

リンク

you-get.org

github.com

YouTube をコマンドラインからダウンロードしたいなら!「YT-DLP」

はじめに・免責事項

インターネット上から許可なくメディアコンテンツ(動画、音楽、画像)をダウンロードすることは、その Web サイトの規約違反となり違法となる場合があります。

今回紹介する OSS をご利用する場合は、一度 Web サイトの規約をご確認いただいて、ダウンロードしても問題ない場合のみご利用ください。

なお、利用する場合は自己責任で行う必要があり、本記事に掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。

概要

YouTube などの動画共有サービスをダウンロードする方法として、コマンドラインからダウンロードすることができるということ、ご存じでしょうか?

youtube-dl という Python で記述されたコマンドラインプログラムで、動画共有サービスから動画のダウンロードや音声の抽出を行うことができるクロスプラットフォームでして、Unlicense の下で配布されているものがあります。

参考:youtube-dl - Wikipedia

現在、GitHub 上ではこちらの youtube-dl は積極的に開発が進められている様子はなく今後利用していく中でさらなる機能を求める方にとっては少々不安だったかもしれません。

ytdl-org.github.io

そこで今回は、youtube-dl の機能を持ち合わせた(正確には、youtube-dl を fork した、youtube-dlc という OSS に代わるものですが)新しい OSS「YT-DLP」を紹介します。

「YT-DLP」もPython で記述されたコマンドラインプログラムで、youtube-dl と同じように利用することができますし、さらなるオプションコマンドも追加されていますので、より多くのことができるようになっています。

早速見ていきましょう。

利用手順

インストールは以下から行えます。利用する OS に応じたものをダウンロードしてください。

github.com

また、上記紹介したバイナリファイルをダウンロードするだけでなく、PIP 経由や Homebrew 経由でもインストールできます。

好きな方法でインストールをお試しください。

ダウンロード・インストール後は以下のコマンド操作で、実際に YouTube の動画をダウンロードすることができます(筆者が Windows 端末を利用しているので、Windows で利用する方法について記述します)。

yt-dip.exe <ダウンロードしたいメディアコンテンツ URL>

使用感

今回は「YT-DLP」を利用して、YouTube からライセンス「クリエイティブ・コモンズ著作権表示必須ライセンス(再利用を許可する)」のある以下の動画を実際にダウンロードしてみました。

www.youtube.com

$ yt-dlp.exe https://www.youtube.com/watch?v=jNQXAC9IVRw
[youtube] jNQXAC9IVRw: Downloading webpage
[youtube] jNQXAC9IVRw: Downloading android player API JSON
[info] jNQXAC9IVRw: Downloading 1 format(s): 18
[download] Destination: Me at the zoo [jNQXAC9IVRw].mp4
[download] 100% of 772.00KiB in 00:00

操作方法自体もコマンドを打つだけなので、とても簡単にダウンロードすることができました!

コマンドライン上の操作で完了するので、シンプルでいいですね。

ちなみに、YT-DLP は動画を単純にダウンロードすることだけでなく、オプションを追加することで様々な機能を利用することができます。

github.com

README にはとても多くのオプションが記載されていますので、かなり応用的な使い方ができそうです!

まとめ

今回は youtube-dl の機能を持ち合わせた新しい OSS「YT-DLP」を紹介しました。

コマンドライン経由で YouTube をダウンロードすることができる youtube-dl を fork しているだけあって、とてもシンプルかつ簡単にダウンロードすることができ、とても使いやすい印象でした!

Wikipedia 空の情報ですが、youtube-dl は以下の Web サイトのメディアコンテンツをダウンロードすることができるそうで、YT-DLP も同様にダウンロードすることができると思われます。

ちなみに、こちらに紹介したものはほんの一部で、1000 以上のサイトに対応しているそうですので、様々なサイトで利用することが可能ですね!

ただ、最近はメディアコンテンツのダウンロード違法となる場合もあるので、ご利用する際は Web サイトの規約をきちんと把握いただき、問題ないことを確認してからご確認ください!

それでは、よいメディアコンテンツ生活を!!

ライセンス

The Unlicense

リンク

github.com

Python で素早く簡単に Web アプリケーションを作成したいなら!「Flask」

概要

Python は現在多くのエンジニアの方が使用するプログラミング言語で、AI モデル開発や機械学習などに積極的に利用されていますよね。

この Python を利用して機械学習以外に何か Web アプリを作成して遊んでみたいという方も多いかと思います。

Web アプリといえば HTML や JavaScriptCSS を利用して作成するものが多いですが、Python でも Web アプリを作成することができます!(さすがはなんでもできる Python ですね!)

今回は Python で Web アプリをシンプルかつ簡単に作成することをサポートする OSS フレームワーク「Flask」を紹介します。

こちらは初めはとてもシンプルな Web アプリとして利用可能ですが、複雑なアプリへスケールアップすることも可能な機能を兼ね備えており、現在最も人気のある Python Web アプリフレームワークの 1 つとしても知られています。

こちらでは本 OSS の始め方や実際に使ってみた感想についてまとめていこうと思います。

利用手順

以下の GitHub 上の README を参考に、Python へ Flask をインストールするだけです!

Python 3系 がすでに入っていることを前提とします。

github.com

$ pip install -U Flask

使用感

では早速 Flask を起動してみましょう。

まずは任意のディレクトリで、app.py ファイルを作成し、以下のコードを入力して保存します。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"

入力後、app.py があるディレクトリで flask を利用して Flask を起動します。

$ flask run

起動後、以下のメッセージがコマンドライン上に表示されるので、メッセージに従って http://127.0.0.1:5000 へアクセスすると以下のような画面が表示されていると思います。これにて Python の Web アプリの起動完了です!

 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
127.0.0.1 - - [04/Jul/2022 22:38:42] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Jul/2022 22:38:42] "GET /favicon.ico HTTP/1.1" 404 -

サンプルコードについて、作成から実際に動作確認まで行ってみましたが、とても簡単に準備・実行まで行えました!

これなら挫折せずに Python でも Web アプリをどんどん作っていきそうですね!

まとめ

今回は Python で Web アプリをシンプルかつ簡単に作成することをサポートする OSS フレームワーク「Flask」を紹介しました。

事前準備も Flask を導入するだけですので簡単に完了しますし、起動も凝った操作をせずに flask run コマンドで一発で起動まで行えました!

今回紹介したのは Flask のほんの一部で、使い方次第でもっと面白く複雑で高機能な Web アプリを簡単に作成することもできます。

Flask は公式ドキュメントも豊富で、こちらを見ながらより高度な Web アプリを作成していただければと思います!

flask.palletsprojects.com

Flask で作成され、実際にローンチされた Web アプリもたくさんあるので、Python を使用して Web アプリを作成する際には、フレームワークの 1 つとして候補に挙げて検討してみるのはいかがでしょうか?

とてもシンプルで使いやすいので、きっとサクサクアプリを作成できると思います!

ライセンス

BSD 3-Clause "New" or "Revised" License

リンク

flask.palletsprojects.com

github.com

コーディングを通してソフトウェアエンジニアとしてさらに成長するために!「Coding Interview University」

概要

ソフトウェアエンジニアとしてさらに成長していくためには、その時代に応じたコーディングスキルやプログラミング言語の理解が必要になってきます。

また、さらなるスキルアップを目指して転職を目指す方も多いかと思います。

今回はさらなるスキルアップを目指すソフトウェアエンジニアや、ソフトウェアエンジニアから別種別のソフトウェアエンジニア(例えば、Web系からネイティブ系など)に職を変えたい方にとってとても参考になる OSS 記事「Coding Interview University」を紹介します。

OSS では、記事の筆者が実際にこの記事を参考にしたことで Amazon のソフトウェアエンジニアとして雇われた という事実もあるようで、さらなるスキルアップを目指す方にとってはとても参考になる記事ではないかなと思います。

利用手順

以下の GitHub ページへアクセスし、「Translations:」という折り畳みページがあるのでそちらを選択すると、日本語翻訳ページへのリンクがあるので、そちらを選択すると日本語に翻訳された記事を閲覧することができます!

※ 記事自体は日本語で読めますが、参考となるリンク記事などは英語ですので、別途詳細を学びたいのであれば、日本語でリンクの内容を調べる必要もありそうです。

github.com

使用感

こちらの記事ではそもそもプログラマーとして必要最低限の話から、実際にソフトウェアエンジニアとして大手会社に就職する際の面接で聞かれるであろう事柄について、詳しく説明がされています。

また、ソフトウェアとして知っておくべき知識だけでなく、実際に転職などの面接時に準備しておく事柄についてもまとめられています。

そのため、ソフトウェアエンジニアとして転職する際の最終確認としてこちらを参考にしてみるのもいいかもしれませんね!

まとめ

今回はさらなるスキルアップを目指すソフトウェアエンジニアや、ソフトウェアエンジニアから別種別のソフトウェアエンジニア(例えば、Web系からネイティブ系など)に職を変えたい方にとってとても参考になる OSS 記事「Coding Interview University」を紹介しました。

こちらの OSS では実際にこの記事を参考にして Amazon へ就職したという筆者の熱い思いが記述されていますので、さらなる成長をしたいと考えているソフトウェアエンジニアの方にとってはとても刺激を受ける記事ではないでしょうか?

また、本記事ではソフトウェアエンジニアとしてスキルアップを果たし、念願の大手会社に就職したとしても学びはまだまだ終わらないと続けられています。

記事後半にはまだまだソフトウェアエンジニアとして必要な基礎知識・応用知識などについての説明があります。

自分も一ソフトウェアエンジニアとしてこちらの OSS を参考に知識をアップデートしていこうと思いますし、皆様もぜひ一読することをお勧めしたいと思います。

ライセンス

Creative Commons Attribution-ShareAlike 4.0 International Public License

リンク

github.com

大規模システム設計を無料で学んでみたいなら!「The System Design Primer」

概要

システム設計について学ぶということは、エンジニアにとって今後成長していくうえで最も大切なことだと思いますが、なかなか学ぶタイミングやきっかけがなく、結局なあなあになってしまうことはありませんでしょうか?

ましてやスケールアップやロードバランサーなどといった、大規模なシステム設計について学ぶ機会は多くないのではないのでしょうか?

今回紹介するのは、大規模なシステム設計について学ぶことができる OSS「The System Design Primer」で、こちらは実際に OSS で大規模なシステム設計に学ぶことができる入門書となります。

こちらはマルチ言語で翻訳されており、日本語にも翻訳されているのでとっつきやすいですね。

利用手順

以下の OSS へアクセスし、日本語翻訳されている README を参照することで、大規模システム設計入門書を閲覧することができます。

github.com

使用感

実際に自分もこちらの「大規模システム設計入門書」を読んでみました。

まだ冒頭部分までしか読めていませんが、要所要所で図で説明がされていたり表があったりで、とてもサクサク読めます!

こちらの OSS のコンセプトとしては、「大規模システムの設計を学ぶ」「システム設計面接課題に備える」ということなので、細かいところまで詳しく説明されており、基本的な部分から学べるのはいいですね。

また、README に関してはすべて日本語で記述されているので、安心して読み進めることができ、自分も安心して読み進められました!

(ただ、リンク先は英語記事だったりするので、わからない説明などについては別途調べる必要がありました。ただ、それも含めて自分のための勉強と思えるので全然いいですね!)

まとめ

今回は大規模なシステム設計について学ぶことができる OSS「The System Design Primer」を紹介しました。

大規模システム設計について学ぶことは、より素晴らしいエンジニアとしてステップアップするうえでは欠かせないものとなります。

こちらの OSS はシステム設計の入門書ということでしたが、体系的にかなりよくまとまっていると思いますので、システム設計についてまだ学んだことがない方や、再度システム設計について復習したい方にとっても役立つものと思います。

一度閲覧して、知識をアップデートしてみてはいかがでしょうか?

また、本 OSS ではコントリビュータも積極的に受け付けているようですので、そちらに参加してみるのもいかがでしょうか?

ライセンス

Creative Commons Attribution 4.0 International License (CC BY 4.0)

リンク

github.com

JavaScript や Python について簡単なコード例を確認してみたいなら!「30 seconds of code」

概要

JavaScriptPython など人気の言語について、様々なサイトやブログなどでコードが紹介されていますが、結論までなかなか長くパッとコードや例を確認することができない場合が多いですよね(偏見化もしれませんが)。

そんなときに、コード例がぱっとわかるサイト「30 seconds of code」を紹介します。

こちらは英語記事ですが、最近人気のあるプログラミング言語である JavaScriptPython、そのほかにも CSS であったり React、Git についてもコード集があります。

利用手順

利用方法は以下のページへアクセスすることで利用可能です。

www.30secondsofcode.org

こちらから自分の気になる言語を検索してみて、どのようなコード例があるか確認してみてください。

使用感

実際にサイトへアクセスし、JavaScript のコード例を見てみましたが、コードがシンプルにまとまっておりとても見やすいですね。

記事自体はすべて英語でしたが、簡単な英語かつ箇条書きでまとまっているのでとても見やすかったです。

また、サイト自体がとてもサクサクでストレスフリーですし、コンセプト通り短時間で内容も把握できるので、今後勉強する際には活用させていただこうと思いました!

ただ個人的には、コードの実行例について画像などがあったほうが利用者的にはより直感的にわかりやすかったのかな、という印象でしたので、コントリビューターとしてプルリクエストを送ってみようかなと思いました。

まとめ

今回は JavaScriptPython など人気のコード例がぱっとわかるサイト「30 seconds of code」を紹介しました。

こちらのサイトではコード例がシンプルにまとまっているので、時間があるときや隙間時間に眺めてみてプログラミングの知識をアップデートしてみるのはいかがでしょうか?

ちなみに、こちらの OSS はコントリビューターも積極的に募集しているということだったので、OSS 活動として参加してみるのもよいですね。

github.com

ライセンス

Creative Commons Attribution 4.0 International

リンク

www.30secondsofcode.org

github.com