《HelloGitHub》第 46 期

興趣是最好的老師,HelloGitHub 就是幫你找到興趣!javascript

簡介

分享 GitHub 上有趣、入門級的開源項目。php

這是一個面向編程新手熱愛編程對開源社區感興趣 人羣的月刊,月刊的內容包括:各類編程語言的項目讓生活變得更美好的工具書籍、學習筆記、教程等,這些開源項目大多都是很是容易上手,並且很是 Cool。主要是但願你們能動手用起來,加入到開源社區中。css

  • 會編程的能夠貢獻代碼
  • 不會編程的能夠反饋使用這些工具中的 Bug
  • 幫着宣傳你以爲優秀的項目
  • Star 項目⭐️

在瀏覽、參與這些項目的過程當中,你將學習到更多編程知識提升編程技巧找到編程的樂趣html

🎉 最後 HelloGitHub 這個項目就誕生了 🎉前端


如下爲本期內容|每月 28 號發佈最新一期|點擊查看往期內容vue

C 項目

一、freebsd:FreeBSD 操做系統源碼倉庫。快拉住我,我有點飄了居然敢點開操做系統看源碼 😅java

C++ 項目

二、design-patterns-cpp:常見設計模式 C++ 語言實現版python

三、sudoku:C++ 實現的命令行數獨遊戲。600 餘行代碼,初學者也能夠輕鬆學習react

四、indicators:一個使用 C++ 編寫的進度條庫,你能夠用它在命令行中實現美觀的進度條。它使用方便、線程安全、支持多種進度條樣式android

Go 項目

五、statping:一個 Go 編寫的服務狀態展現頁項目。經過該項目能夠快速搭建起一個展現服務可用狀態、服務質量的頁面

六、gormt:一款 MySQL 數據庫轉 Go struct 的工具。支持:

  • 命令行、界面方式生成
  • YML 文件靈活配置
  • 自動生成快捷操做函數
  • 支持索引、外鍵等

七、gojsonq:一款支持解析、查詢 JSON/YAML/XML/CSV 數據的 Go 三方開源庫。示例代碼:

package main

import "github.com/thedevsaddam/gojsonq"

func main() {
	const json = `{"name":{"first":"Tom","last":"Hanks"},"age":61}`
	name := gojsonq.New().FromString(json).Find("name.first")
	println(name.(string)) // Tom
}
複製代碼

Java 項目

八、gradle:一個基於 Apache Ant 和 Maven 概念的項目自動化建構工具(幹了這兩個工具的活)。它使用一種基於 Groovy 的特定領域語言來聲明項目設置,而不是傳統的 XML(更靈活)。當前其支持的語言限於 Java、Groovy 和 Scala,計劃將來將支持更多的語言

九、zxing:一款用於解析、生成多種格式的 1D/2D 條形碼(UPC-A、QR Code、UPC-E、Data Matrix 等)的開源 Java 庫。提供了多種的客戶端支持包括:J2ME、J2SE 和 Android 等

十、jodd:一組以極簡爲原則的 Java 服務框架和實用工具的項目。這不是一個介紹 Java 項目的集合,而是把常常會用到的功能,用盡量少的代碼實現並封裝成庫,供開發人員選擇使用。當你要用 Java 快速實現一些功能的時候,從而不須要引入繁重的庫就能夠快速實現功能。一個功能一個庫,靈活使用、極簡實用,便於學習和理解

Jodd = tools + ioc + mvc + db + aop + tx + json + html < 1.7 Mb
複製代碼

JavaScript 項目

十一、Learn-Vue-Source-Code:該項目是做者學習 Vue 源碼的筆記。在線閱讀

十二、p5.js:一個 JavaScript 創意編程程式庫,能夠用來繪圖、實現藝術創意等。使用該庫只須要會 JS 代碼就能夠用它畫出許多有趣的東西,文檔齊全可以快速上手,還有在線編輯器。官網,示例代碼:

function setup() {
  createCanvas(640, 480);
}

function draw() {
  if (mouseIsPressed) {
    fill(0);
  } else {
    fill(255);
  }
  ellipse(mouseX, mouseY, 80, 80);
}
複製代碼

1三、concent:一個兼容 Redux 生態的漸進式和高性能狀態管理方案。基於依賴標記、引用收集和狀態分發原理工做,經過獨有的實例上下文機制加強組件能力,抹平類組件和函數組件的生命週期函數寫法差別。內置 computed、watch、setup、event 等高級特性,讓邏輯複用更優雅、組件表現形式更豐富、應用架構更穩健

1四、vue-monoplasty-slide-verify:基於 Vue2.0+ 的驗證碼插件。可用於網頁註冊等須要驗證碼的地方,滑動式的驗證碼免於字母驗證碼的繁瑣輸入。在線演示,示例代碼:

import Vue from 'vue';
import SlideVerify from 'vue-monoplasty-slide-verify';

Vue.use(SlideVerify);

export default {
      name: 'App',
      data(){
          return {
              msg: '',
          }
      },
      methods: {
          onSuccess(){
              this.msg = 'login success'
          },
          onFail(){
              this.msg = ''
          },
          onRefresh(){
              this.msg = ''
          }
      }
  }
複製代碼

1五、gods-pen:一個在線生成 H5 頁面的平臺。用戶無需掌握複雜的編程技術,經過簡單拖拽、少許配置便可快速製做精美的頁面,可用於營銷場景下的頁面製做。同時,也爲開發者提供了完備的編程接入能力,經過腳本和組件的形式得到強大的組件行爲和交互控制能力

1六、fe-interview:項目做者總結關於準備前端面試的複習彙總項目,項目不定時更新。這不只僅是一份用於求職面試的攻略,也是一份前端小夥伴用來檢視本身,實現突破的寶典。但願經過這個指南,你們能夠打通本身的任督二脈,在前端的路上更進一步

Objective-C 項目

1七、Bob:一款支持劃詞翻譯和截圖翻譯 Mac 端翻譯軟件。系統默認劃詞工具備些不支持的 PDF 文件,經過這個軟件截圖翻譯功能,能夠舒服的解決閱讀這些文件時須要翻譯的問題

1八、textmate:一款 macOS 上著名的開源代碼編輯器。它界面簡潔,功能強大。支持高效的 Snippets 功能、主流版本控制系統、自定義主題、實時 HTML/Markdown 預覽等功能

PHP 項目

1九、php-curl-class:該開源項目封裝了 PHP 的 cURL 庫,使得發送 HTTP 請求變得簡單。適用於須要 PHP 爬蟲或者其它模擬 HTTP 訪問的狀況,示例代碼:

<?php
// 獲取豆瓣電影示例
require '../vendor/autoload.php';
use Curl\Curl;

$curl = new Curl();
$url = "https://movie.douban.com/j/search_subjects?type=movie&tag=%E8%B1%86%E7%93%A3%E9%AB%98%E5%88%86&sort=time&page_limit=20&page_start=1";
$curl->get($url);
$curl->setOpt(CURLOPT_SSL_VERIFYPEER, false);
$curl->close();
var_dump($curl->getResponse());exit;
複製代碼

20、parsedown:一個小而美的 PHP 的 Markdown 解析庫。該庫提供了標準 Markdown 文本轉化成 HTML 字符串功能,並擁有良好的文檔。它的主文件只有一個,除了 PHP 版本限制必須高於 5.3 外幾乎無依賴,可經過 composer 引入,也能夠直接使用 Parsedown.php 文件。該項目中使用大量正則表達式,可做爲學習正則表達式的示例,而且有完整的單元測試。示例代碼:

$Parsedown = new Parsedown();
echo $Parsedown->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p>
複製代碼

Python 項目

2一、sentry:一款免費開源的 Python 實時異常監控平臺。採用 C/S 模式,服務器端經過 Python 實現,同時提供 web 管理頁面,支持從任何語言、任何應用程序發送事件。一個成熟的服務必要的一環就是異常告警,Sentry 能夠幫你及時知道服務非預期的異常

2二、vaex:相似 Pandas 的 Python 數據處理庫,在處理大型數據集的時候表現極大的優於 Pandas。Vaex 經過懶加載、延遲計算和零內存複製策略,極大的下降了內存的使用率、提升了計算的效率。從而可以每秒處理 10 億行的數據,而且支持以直方圖、密度圖等形式展現數據。有大數據集處理需求的小夥伴趕快試試吧

2三、word_cloud:Python 的詞雲生成工具。示例代碼:

# 加載內容
text = open(path.join(d, 'constitution.txt')).read()
# 生成詞雲圖片
wordcloud = WordCloud().generate(text)
# 展現生成的圖片
image = wordcloud.to_image()
image.show()
複製代碼

2四、KeymouseGo:Python 實現的精簡綠色版按鍵精靈。記錄用戶的鼠標、鍵盤操做,自動執行以前記錄的操做,可設定執行的次數。在進行某些簡單、單調重複的操做時,使用該軟件能夠十分省事兒。只須要錄製一遍,剩下的交給 KeymouseGo 來作就能夠了

2五、ZeroNet:一個使用 Bitcoin 加密和 BitTorrent 網絡的去中心化網絡。將傳統巨頭壟斷的互聯網變得平民化,不須要租用服務器不須要公網 IP,每一個人均可以輕鬆建立分佈式博客、分佈式論壇、分佈式微博、分佈式視頻網站、分佈式直播網站等等

Ruby 項目

2六、astuto:一個免費、開源的 Ruby 自託管客戶反饋平臺。它能夠幫助您收集、管理用戶的反饋並設置其優先級。客戶反饋是大部分網站不可或缺的功能,使用 astuto 可以十分快速的給你的網站加上此功能

其它

2七、valval:一個基於 V 語言的 web 框架。V 語言是一門還在開發和完善過程當中的語言,還不怎麼成熟但卻十分適合用於 web 開發,不只官方的標準庫中提供了 vweb 以及 orm 的支持,很多開發者也都推出了各自的 web 開發框架,valval 就是其中之一。示例代碼以下:

// demo.v
import valval

fn hello(req valval.Request) valval.Response {
    return valval.response_ok('hello world')
}

fn main() {
    mut app := valval.new_app(true)
    app.register('/', hello)
    valval.runserver(app, 8012)
}
複製代碼

2八、powerlevel9k:一款 ZSH 系的 Powerline 主題。效果以下圖:

2九、zotero:一款開源文獻管理工具。能夠方便的管理、收集、組織、引用和共享文獻的工具,常常進行學術研究和文獻閱讀的小夥伴請收好

30、Hippy:一個新生的跨端開發框架,目標是使開發者能夠只寫一套代碼就直接運行於三個平臺(iOS、Android 和 Web)。Hippy 的設計是面向傳統 Web 開發者的,特別是以前有過 React Native 和 Vue 的開發者用起來會更爲順手,Hippy 致力於讓前端開發跨端 App 更加容易。鵝廠提供的跨端開發框架,內部多款 APP 在用,還不快來試試!項目目錄說明以下:

Hippy
├── examples                          # 前終端範例代碼。
│   ├── hippy-react-demo              # hippy-react 前端範例代碼。
│   ├── hippy-vue-demo                # hippy-vue 前端範例代碼。
│   ├── ios-demo                      # iOS 終端範例代碼。
│   └── android-demo                  # Android 終端範例代碼。
├── packages                          # 前端 npm 包。
│   ├── hippy-debug-server            # Hippy 的前終端調試服務。
│   ├── hippy-react                   # Hippy 的 React 語法綁定。
│   ├── hippy-react-web               # hippy-react 轉 Web 的庫。
│   ├── hippy-vue                     # Hippy 的 Vue 語法綁定。
│   ├── hippy-vue-css-loader          # 用來將 CSS 文本轉換爲 JS 語法樹以供解析的 Webpack loader。
│   ├── hippy-vue-native-components   # hippy-vue 中瀏覽器中所沒有的,額外的,終端定製組件。
│   └── hippy-vue-router              # 在 hippy-vue 中運行的 vue-router。
├── ios
│   └── sdk                           # iOS SDK。
├── android
│   ├── support_ui                    # Android 終端實現的組件。
│   └── sdk                           # Android SDK。
├── core                              # C++ 實現的 JS 模塊,經過 Binding 方式運行在 JS 引擎中。
├── layout                            # Hippy 佈局引擎。
├── scripts                           # 項目編譯腳本。
└── types                             # 全局 Typescript 類型定義。
複製代碼

3一、iptv:全球各地 8 千多個公開、可用的網絡電視頻道集合。隨着網絡的日益發展,電視節目離咱們愈來愈遠。不用電視盒子,不用下載電視軟件,直接使用流媒體軟件看網絡電視是一個不錯的選擇。操做步驟:

  • 打開任何支持流媒體協議的播放器
  • 而後粘貼流媒體地址:iptv-org.github.io/iptv/index.…
  • 播放器推薦:IINA(Mac)、VLC(Linux)、Potplayer(Windows)

3二、wuhan2020:武漢新型冠狀病毒防疫信息收集平臺。在線瀏覽

機器學習

3三、faceai:一款優秀入門級 AI 項目以及教程,內容涵蓋:人臉、視頻、文字的檢測和識別。他不只包含最基本的人臉檢測、識別(圖片、視頻)、輪廓標識、頭像合成(給人戴帽子),還有表情識別(生氣、厭惡、恐懼等)、視頻對象提取、圖片修復(可用於水印去除)、圖片自動上色等等。推薦這個開源項目不是由於它的內容強大,而是它的教程寫的實在太好了,真 · 入門級。手把手教你如何使用這個項目,作出上述功能來。在每篇功能文章的教程裏,不只僅寫了每一個功能的技術實現方案,還有具體重點關鍵代碼的註釋和解釋以及具體實現,讓你很是輕鬆的可以看懂、學習和使用。對於想要入門或者瞭解機器學習的初學者不能再友好了。示例代碼:

# Tesseract Ocr文字識別
from PIL import Image
import pytesseract

path = "img\\text-img.png"
text = pytesseract.image_to_string(Image.open(path), lang='chi_sim')
print(text)
複製代碼


最後

若是你發現了 GitHub 上有趣的項目,歡迎在 HelloGitHub 項目提 issues 告訴咱們。

相關文章
相關標籤/搜索