DUICUO

2018年2月にGitHubで最も人気のあるオープンソースプロジェクトをおすすめします

1. ノーコード

(https://github.com/kelseyhightower/nocode スター 16256

2月にリリースされたこのプロジェクトは、2018年における「仏教式コーディング」の最もホットな例と言えるでしょう。コードは一切含まれておらず、説明には「安全で信頼性の高いアプリケーションを作成するための最良の方法。何も書かず、どこにもデプロイしない」と書かれています。あるネットユーザーはこれを「セキュリティと信頼性を確保するには、コードを1行も書かずに世界中にデプロイするのが最良の方法だ」と翻訳しました。この「愚かな」プロジェクトは数日間GitHubトレンドリストのトップに君臨し、現在では16,256個のスターを誇っています。

2. テンソルフロー

(https://github.com/tensorflow/tensorflow スター 90603

TensorFlowはGoogleの第2世代機械学習システムです。Googleによると、いくつかのベンチマークテストでは、TensorFlowは第1世代のDistBeliefの2倍の速度を実現しています。TensorFlowはディープラーニング拡張機能のサポートを組み込んでおり、計算フローグラフを使用して表現できるあらゆる計算にTensorFlowを使用できます。勾配ベースの機械学習アルゴリズムは、TensorFlowの自動微分化の恩恵を受けることができます。柔軟なPythonインターフェースにより、TensorFlowでのアイデア表現も容易です。

3. フロントエンド面接ハンドブック

(https://github.com/yangshun/front-end-interview-handbook スター9772

他のソフトウェアエンジニアとは異なり、フロントエンドの面接ではアルゴリズムはそれほど重視されず、HTML、CSS、JavaScriptなどの知識が重視されます。フロントエンド開発者向けの面接対策に役立つオンラインリソースはいくつかありますが、ソフトウェアエンジニア向けの面接資料ほど包括的ではありません。フロントエンド面接ハンドブックは、フロントエンドの求職者向けに、面接の質問と回答を準備するために特別に設計されています。

4. コンテンツ認識型画像圧縮/拡張ライブラリ Caire

(https://github.com/esimov/caire スター 7637

Caireは、論文「Seam Carving for Content-Aware Image Resizing」に基づいた、コンテンツ(サイズ)を考慮した画像圧縮/伸張ライブラリです。既存の機能には以下が含まれます。

● カスタムコマンドラインをサポート

● 画像の拡大・縮小に対応

● 画像サイズは縦横に調整できます。

● カタログ内のすべての画像のサイズを調整できます。

● サードパーティのライブラリは不要

● ソーベル閾値を用いた微調整

● ぼかしフィルターを使用してエッジ検出を強化する

レンダリング:

5. データ構造ライブラリ Automerge

(https://github.com/automerge/automerge スター 4895

Automergeは、JavaScriptで協調型アプリケーションを構築するためのデータ構造ライブラリです。JavaScriptアプリケーションを構築する一般的なアプローチは、アプリケーションの状態をJSONドキュメントなどのモデルオブジェクトに保存することです。Automergeには、以下の特徴と設計原則があります。

● ネットワークに依存しません。Automerge は、使用しているネットワークの種類を問わない純粋なデータ構造ライブラリです。

● 不変の状態。Automergeオブジェクトは、任意の時点におけるアプリケーション状態の不変のスナップショットです。変更が行われるたびに、またはネットワークからの変更がマージされるたびに、その変更を反映した新しい状態オブジェクトが返されます。

● 自動マージ。自動マージは、いわゆる競合のないレプリケーション データ タイプ (CRDT) であり、中央サーバーを必要とせずに、異なるデバイス上の同時変更を自動的にマージできます。

● 非常に便利です。Automerge は Node.js、Chrome、Firefox、Electron でテストされています。

6. 開発者ロードマップ

(https://github.com/kamranahmedse/developer-roadmap スター 42978

これは、以下のフロントエンド ロードマップなど、Balsamiq を使用する Web 開発者向けのロードマップです。

フロントエンドフレームワーク、言語などの重要な一般的な知識ポイントをすべて網羅しています。

7. ファストフォトスタイル

(https://github.com/NVIDIA/FastPhotoStyle Star5978

FastPhotoStyleは、写真のスタイル変換のためのディープラーニングアルゴリズムを実装したNVIDIAのオープンソースライブラリです。対象写真とスタイル参照写真を指定すると、コードはスタイル写真のスタイルを対象写真に転送し、新しいスタイル写真を生成します。

FastPhotoStyle プロセスは、「スタイル設定」と「微調整」の 2 つのステップで構成されます。まず、参照写真のスタイルを対象写真に転送し、その後、微調整と最適化を行います。

レンダリング:

8. バックエンド開発者の面接の質問

(https://github.com/arialdomartini/Back-End-Developer-Interview-Questions スター 6686

以前のプロジェクトではフロントエンドの面接に関連するオープンソースプロジェクトについて触れていましたが、今回のプロジェクトはバックエンド開発者の面接に関する包括的なガイドです。主に自由回答形式の質問を取り上げており、中には回答のない質問もありますが、まさにこうした質問こそが個人の能力を最もよく示すものなのです。現在、このプロジェクトでは質問をコード設計、データベース、コードのバージョン管理、分散システムに関する問題など、18種類に分類しています。

9. JavaコンポーネントサービスフレームワークCarbon

(https://github.com/dawnlabs/carbon スター 7585

Carbonは、軽量なコンポーネントモデルとエンタープライズグレードのサービスフレームワークです。Carbonは、メタデータ中心の分離型システムを通じてより柔軟なフレームワークを構築し、関係性の分離を促進するという原則に基づいて構築されています。これにより、複雑で動的な運用環境におけるコードの保守と再利用が容易になります。

10. 素晴らしいスケーラビリティ

(https://github.com/binhnguyennus/awesome-scalability スター 7795

このプロジェクトは、厳選された豊富な資料を提供しており、バックエンド開発者がプロ​​ジェクト内の様々なドキュメントで提示されたアイデアを活用することで、スケーラブルで使いやすく、安定したバックエンドを構築できるよう支援することを目的としています。コンセプトはやや曖昧ではありますが、著名なエンジニア(Martin Fowler、Robert C. Martin、Tom Whiteなど)による解説と高品質なリソース(highscalability.com、infoq.comなど)により、誰もが理解し、有益な何かを学べると信じています。

このプロジェクトは様々な側面を網羅しており、主に7つのセクション(原則、スケーラビリティ、安定性、その他の側面、会議、書籍)に分かれています。例外処理やデータベース戦略といったトピックも含まれています。

11. Android-KTX

(https://github.com/android/android-ktx スター 4529

Android KTXは、Android上でKotlinコードをより簡潔にし、開発者のプログラミングエクスペリエンスを向上させる拡張機能のセットです。AndroidフレームワークをサポートするAndroid KTXの部分は、GitHubリポジトリで公開されています。Android KTXは実際にどのような最適化を行うのでしょうか?例えば、以下のようなものがあります。

● 文字列を URI に変換するために、Android KTX は文字列に拡張関数を追加し、URI への変換をより自然にします。

● Android KTX を使用して SharedPreferences を編集すると、コードがわずかに短くなり、読み書きがより自然になります。

● 翻訳パスの違い

● ビュー内のアクション onPreDraw

12. ディープフェイクのディープラーニング技術「FaceWap」

(https://github.com/deepfakes/faceswap スター 4009

ディープフェイクはディープラーニング技術を活用しています。このツールはもともと、写真や動画内の顔画像を識別し、差し替えるために設計されました。このプロジェクトには複数のエントリーポイントがあり、必要なのは以下のとおりです。

● 写真を収集する(または以下のトレーニングデータに提供されている写真を使用する)

● 元の写真から顔画像を抽出する

● 写真でモデルをトレーニングします(または、以下のトレーニング データで提供されているモデルを使用します)。

● モデル変換ソースコードの使用