1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        《HelloGitHub》第 60 期,你喜歡玩游戲嗎?

        共 15458字,需瀏覽 31分鐘

         ·

        2021-03-30 14:43

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

        簡介

        分享 GitHub 上有趣、入門級的開源項目。內(nèi)容包括:有趣、入門級的開源項目、開源書籍、實戰(zhàn)項目、企業(yè)級項目等,讓你用很短時間感受到開源的魅力,愛上開源!

        以下為本期內(nèi)容|每個月 28 號發(fā)布最新一期

        C 項目

        1、si78c:用 C 語言實現(xiàn)的《太空侵略者》命令行游戲

        長按識別二維碼,可直達項目

        2、rtty:能夠通過 Web 登錄 Linux 終端的開源項目。采用 C 語言實現(xiàn),算上依賴庫體積不到 100KB,可用于嵌入式 Linux 設(shè)備。擁有 Web 管理界面,用此項目可以方便地遠程維護 Linux 設(shè)備

        長按識別二維碼,可直達項目

        C# 項目

        3、osu:支持多平臺的同人節(jié)奏免費開源游戲。游戲中玩家隨著音樂的節(jié)奏,點擊界面上圈圈、隨著軌跡拖拽和旋轉(zhuǎn)。從最初(07 年)僅支持 Windows 平臺,到目前已經(jīng)擴展到支持 Linux、macOS、iOS、Android 等平臺,并且還在持續(xù)維護和開發(fā),我試玩了下感覺很有意思,快下載下來玩玩吧!

        長按識別二維碼,可直達項目

        4、nopCommerce:免費開源的 ASP.NET 電子商城平臺。該項目始于 2008 年,由專業(yè)團隊開發(fā)和維護,大而全的商城項目。支持 Windows、Linux、macOS 平臺,還有支持開箱即用的 Docker 部署方式

        長按識別二維碼,可直達項目

        5、Ryujinx:用 C# 寫的任天堂 Switch 游戲機模擬器。該項目還處于實驗階段,穩(wěn)定性欠佳同時機器配置要求 8G 以上的內(nèi)存,有探險精神的小伙伴可以試試

        長按二維碼,可直項目

        C++ 項目

        6、Serial-Studio:一款 C++ 寫的數(shù)據(jù)可視化桌面工具。支持多平臺,效果和操作步驟如下:

        長按識別二維碼,可直達項目

        7、jwEngine:一個跨平臺、輕量級、支持 C++ 和 Lua 的 Web 框架。支持 TCP、KCP、WebSocket、HTTP 等協(xié)議,底層采用 libuv 異步 IO 提高并發(fā),避免多線程上下文切換開銷和破壞代碼美感,網(wǎng)絡(luò)部分和邏輯部分使用一個主事件循環(huán)驅(qū)動。支持 Lua 提高開發(fā)效率,適用于小型游戲開發(fā),示例代碼:

        event_init()

        server = NetServer:new()
        server.on_accept = function(conn)
        end

        server.on_close = function(conn)
        end

        server.on_msg = function(conn, msgtype, pack)
        end

        server:listen("127.0.0.1"3001false)

        event_run()

        長按二維碼,可直項目

        Go 項目

        8、dns:簡單易用高性能的 Go DNS 庫。示例代碼:

        package main

        import (
            "github.com/miekg/dns"
            "net"
            "os"
            "log"
            "fmt"
        )

        func main() {
            config, _ := dns.ClientConfigFromFile("/etc/resolv.conf")
            c := new(dns.Client)

            m := new(dns.Msg)
            m.SetQuestion(dns.Fqdn(os.Args[1]), dns.TypeMX)
            m.RecursionDesired = true

            r, _, err := c.Exchange(m, net.JoinHostPort(config.Servers[0], config.Port))
            if r == nil {
                log.Fatalf("*** error: %s\n", err.Error())
            }

            if r.Rcode != dns.RcodeSuccess {
                    log.Fatalf(" *** invalid answer name %s after MX query for %s\n", os.Args[1], os.Args[1])
            }
            // Stuff must be in the answer section
            for _, a := range r.Answer {
                    fmt.Printf("%v\n", a)
            }
        }

        長按識別二維碼,可直達項目

        9、pretty:漂亮的 Go Printf 開源三方庫。示例代碼:

        package main

        import (
         "fmt"

         "github.com/kr/pretty"
        )

        func main() {
         type myType struct {
          a, b int
         }
         var x = []myType{{1, 2}, {3, 4}, {5, 6}}
         fmt.Printf("%# v", pretty.Formatter(x))
        }

        Output:
        []pretty_test.myType{
            {a:1, b:2},
            {a:3, b:4},
            {a:5, b:6},
        }

        長按識別二維碼,可直達項目

        10、act:該項目可以讓你在本地調(diào)試 GitHub Actions 腳本。GitHub Actions 是 GitHub 提供的倉庫自動工作流程功能,用戶可以利用 GitHub 提供的免費計算機資源輕松實現(xiàn) CI/CD,還可以用來做很多有意思的事情。但是在編寫 actions 腳本時,想調(diào)試腳本或得到運行結(jié)果,只能 push 到遠程倉庫等待運行結(jié)束,沒有辦法在本地調(diào)試和查看結(jié)果。有了 act 這個項目,就可以在本地輕松調(diào)試 actions 啦,是不是很棒

        長按識別二維碼,可直達項目

        Java 項目

        11、QNotified:讓運行在安卓系統(tǒng)上的 QQ 變得更好用的開源 Xposed 模塊。Xposed 是一個運行于 Android 操作系統(tǒng)的 Hook 框架,可以理解為安卓操作系統(tǒng)的外掛!安裝本工具后,可在 QQ 自帶的設(shè)置中點擊 QNotified 即可開啟“超級”模式。支持:

        • 防撤回
        • 被刪除好友通知
        • 屏蔽 @全體成員 或者 群紅包 的通知
        • 批量撤回消息
        • 等等

        長按識別二維碼,可直達項目

        JavaScript 項目

        12、MarioHTML:用 TypeScript 寫的馬里奧網(wǎng)頁游戲

        長按識別二維碼,可直達項目

        13、semaphore:好看的 Ansible UI 項目。受夠了 Ansible 老氣的界面了嗎?那就試試這個項目吧

        長按識別二維碼,可直達項目

        14、ChatUI:專注于對話領(lǐng)域的 UI 開源項目??梢詭椭脩艨焖俅罱w驗友好的機器人對話界面,特性:

        • 最佳實踐:基于阿里小蜜業(yè)務(wù)積累和打磨的對話式交互最佳實踐
        • TypeScript:使用 TypeScript 開發(fā),提供完整的類型定義文件
        • 響應(yīng)式:響應(yīng)式布局,在無線和 PC 端都可以友好展現(xiàn)
        • 主題:支持靈活的樣式定制,以滿足業(yè)務(wù)和品牌上多樣化的視覺需求
        • 國際化:支持多語言和本土化特性
        import Chat, { Bubble, useMessages } from '@chatui/core';
        import '@chatui/core/dist/index.css';

        const App = () => {
          const { messages, appendMsg, setTyping } = useMessages([]);

          function handleSend(type, val{
            if (type === 'text' && val.trim()) {
              appendMsg({
                type'text',
                content: { text: val },
                position'right',
              });

              setTyping(true);

              setTimeout(() => {
                appendMsg({
                  type'text',
                  content: { text'Bala bala' },
                });
              }, 1000);
            }
          }

          function renderMessageContent(msg{
            const { content } = msg;
            return <Bubble content={content.text} ></Bubble>;
          }

          return (
            <Chat
              navbar={{ title: '智能助理' }}
              messages={messages}
              renderMessageContent={renderMessageContent}
              onSend={handleSend}
            >
        </Chat>

          );
        };

        長按識別二維碼,可直達項目

        15、edex-ui:一款跨平臺基于 Electron 的炫酷終端工具。好萊塢級別的終端使用體驗,擁有漂亮的啟動動畫、浮夸的音效,還能夠直觀地展示文件目錄、系統(tǒng)資源、網(wǎng)絡(luò)等信息

        長按識別二維碼,可直達項目

        16、cool-admin-midway:一款基于 Node.js+midway.js 的后臺權(quán)限管理系統(tǒng)。它開源免費不僅能夠快速開發(fā)增刪改查的需求,還支持 Serverless、Docker 等多種方便的部署方式,不管是用來學(xué)習(xí)如何開發(fā)管理后臺,還是快速開發(fā)都是不錯的選擇

        長按識別二維碼,可直達項目

        PHP 項目

        17、PHPMailer:應(yīng)該是最流行的 PHP 發(fā)郵件的開源庫。很多知名 PHP 開源項目中都有它的身影,比如:WordPress、Yii 等,支持你對發(fā)郵件的所有開發(fā)需求??纯词纠a,就知道使用起來有多簡單啦:

        <?php
        //Import PHPMailer classes into the global namespace
        //These must be at the top of your script, not inside a function
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\SMTP;
        use PHPMailer\PHPMailer\Exception;

        //Load Composer's autoloader
        require 'vendor/autoload.php';

        //Instantiation and passing `true` enables exceptions
        $mail = new PHPMailer(true);

        try {
            //Server settings
            $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
            $mail->isSMTP();                                            //Send using SMTP
            $mail->Host       = 'smtp.example.com';                     //Set the SMTP server to send through
            $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
            $mail->Username   = '[email protected]';                     //SMTP username
            $mail->Password   = 'secret';                               //SMTP password
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         //Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
            $mail->Port       = 587;                                    //TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above

            //Recipients
            $mail->setFrom('[email protected]''Mailer');
            $mail->addAddress('[email protected]''Joe User');     //Add a recipient
            $mail->addAddress('[email protected]');               //Name is optional
            $mail->addReplyTo('[email protected]''Information');
            $mail->addCC('[email protected]');
            $mail->addBCC('[email protected]');

            //Attachments
            $mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments
            $mail->addAttachment('/tmp/image.jpg''new.jpg');    //Optional name

            //Content
            $mail->isHTML(true);                                  //Set email format to HTML
            $mail->Subject = 'Here is the subject';
            $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
            $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

            $mail->send();
            echo 'Message has been sent';
        catch (Exception $e) {
            echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
        }

        長按識別二維碼,可直達項目

        18、dompdf:一個 HTML 轉(zhuǎn) PDF 的 PHP 庫。示例代碼:

        // reference the Dompdf namespace
        use Dompdf\Dompdf;

        // instantiate and use the dompdf class
        $dompdf = new Dompdf();
        $dompdf->loadHtml('hello world');

        // (Optional) Setup the paper size and orientation
        $dompdf->setPaper('A4''landscape');

        // Render the HTML as PDF
        $dompdf->render();

        // Output the generated PDF to Browser
        $dompdf->stream();

        長按識別二維碼,可直達項目

        19、video_spider:視頻去水印工具。原理很簡單就是根據(jù)輸入的視頻的地址,返回原平臺無水印的視頻源地址。目前支持 15 個視頻平臺

        長按識別二維碼,可直達項目

        Python 項目

        20、ArchiveBox:基于 Python 實現(xiàn)的網(wǎng)站歸檔平臺。就是可以自動把網(wǎng)頁(HTML、PDF、圖片等)變成靜態(tài)頁面,下載到本地存儲和管理的工具。可以用來做鏡像站、檔案館、離線閱讀等

        長按識別二維碼,可直達項目

        21、Airtest:適用于移動端應(yīng)用的跨平臺 UI 自動化框架?;趫D像識別定位元素,可能都不需要一行代碼就可以很方便地用它來測試 APP 或刷游戲

        長按識別二維碼,可直達項目

        22、lux:一個用于數(shù)據(jù)科學(xué)方面的 Python 開源庫。這個庫適用于實驗室分析數(shù)據(jù)的場景,基于 Jupyter 的數(shù)據(jù)可視化和操作界面,再加上 pandas 豐富的數(shù)據(jù)接入方式以及強大的數(shù)據(jù)處理能力,讓數(shù)據(jù)的分析變得簡單從而可以更加直觀地找到數(shù)據(jù)背后藏著的“真理”

        長按識別二維碼,可直達項目

        23、qutebrowser:基于 PyQt5 編寫的 Vim 操作方式的瀏覽器。支持 Linux,Windows 和 macOS 操作系統(tǒng),可以先安裝體驗下。然后再看看源碼學(xué)習(xí)如何用 Python 寫瀏覽器

        長按識別二維碼,可直達項目

        Swift 項目

        24、flappy-fly-bird:用 Swift 寫的 Flappy Bird 游戲

        長按識別二維碼,可直達項目

        25、Hue:一個集合多功能于一體的著色工具。在 iOS 開發(fā)中非常好用,可以快速簡單的進行 UI 的顏色設(shè)置、透明度修改、設(shè)置漸變顏色、修改圖片的顏色等。相比于使用 Swift 原生繁重復(fù)雜的 RGBA 顏色 API,Hue 僅需要一行代碼,簡潔易用。示例代碼:

        // 設(shè)置 16 進制顏色
        let white = UIColor(hex: "#ffffff")
        let black = UIColor(hex: "#000000")

        // 設(shè)置 alpha
        let colorWithAlpha = myColor.alpha(0.75)

        // 設(shè)置漸變
        let gradient = [UIColor.blackColor(), UIColor.orangeColor()].gradient()

        let secondGradient = [UIColor.blackColor(), UIColor.orangeColor()].gradient { gradient in
          gradient.locations = [0.251.0]
          return gradient
        }

        長按識別二維碼,可直達項目

        其它

        26、azuredatastudio:微軟開源的數(shù)據(jù)庫桌面管理工具。該工具支持 SQL Server、Azure SQL DB 和 SQL DW 數(shù)據(jù)庫,Windows 下的安裝包僅不到 100 MB,還支持另外兩大操作系統(tǒng) macOS 和 Linux。如果開發(fā)中用到了上面的幾種數(shù)據(jù)庫,就試試這款免費的數(shù)據(jù)庫桌面管理工具吧

        長按識別二維碼,可直達項目

        27、what-happens-when:該項目詳細地解釋了當(dāng)你在瀏覽器中輸入 google.com 按下回車后發(fā)生了什么

        長按識別二維碼,可直達項目

        28、Docker-OSX:讓你用 Docker 跑 macOS 操作系統(tǒng)的項目。僅需 2 條命令分分鐘讓你起來一個 macOS 操作系統(tǒng),聽著刺激吧!搞起來:

        # 拉鏡像
        docker pull sickcodes/docker-osx:latest

        # 運行
        docker run -it \
            --device /dev/kvm \
            -p 50922:10022 \
            -v /tmp/.X11-unix:/tmp/.X11-unix \
            -e "DISPLAY=${DISPLAY:-:0.0}" \
            sickcodes/docker-osx:latest

        長按識別二維碼,可直達項目

        29、cats-of-jasnah:專為 3 歲左右孩子做的網(wǎng)頁游戲。游戲很簡單就是看圖中有幾只符合條件的貓,比如:有幾只藍色的貓?問題是通過語音提問,選擇正確后會進入下一關(guān)。通過該項目不僅可以提高小孩的顏色辨識和識數(shù)的能力,還可以鍛煉英語聽力

        長按識別二維碼,可直達項目

        30、joplin:一款免費的開源筆記和待辦事項應(yīng)用。首先它是一款自由的 Markdown 的筆記軟件,支持 Windows、macOS、Linux、Android、iOS 等主流操作系統(tǒng),再加上支持自定義網(wǎng)盤同步,也就是說你可以無縫在這些平臺上自由創(chuàng)作,并且文本加密保證安全。推薦給喜歡寫作的小伙伴

        長按識別二維碼,可直達項目

        機器學(xué)習(xí)

        31、best-of-ml-python:優(yōu)秀的 Python 機器學(xué)習(xí)相關(guān)開源庫集合。該項目會根據(jù)收錄的開源項目各項指標計算得出一個評分,并定期更新

        長按識別二維碼,可直達項目

        32、tinygrad:一款小型的開源深度學(xué)習(xí)框架。它代碼不足 1k 行足夠簡單,支持深度模型推理與訓(xùn)練。示例代碼:

        from tinygrad.tensor import Tensor
        import tinygrad.optim as optim

        class TinyBobNet:
          def __init__(self):
            self.l1 = Tensor.uniform(784128)
            self.l2 = Tensor.uniform(12810)

          def forward(self, x):
            return x.dot(self.l1).relu().dot(self.l2).logsoftmax()

        model = TinyBobNet()
        optim = optim.SGD([model.l1, model.l2], lr=0.001)

        # ... and complete like pytorch, with (x,y) data

        out = model.forward(x)
        loss = out.mul(y).mean()
        optim.zero_grad()
        loss.backward()
        optim.step()

        長按識別二維碼,可直達項目

        33、Paddle:百度開源的深度學(xué)習(xí)框架。開發(fā)便捷的產(chǎn)業(yè)級深度學(xué)習(xí)框架,支持千億特征、萬億參數(shù)、數(shù)百節(jié)點的大規(guī)模訓(xùn)練。官方還為用戶提供了免費的算力可用于學(xué)習(xí)和訓(xùn)練,社區(qū)活躍教程齊全對新手友好

        長按識別二維碼,可直達項目

        34、fawkes:通過 AI 技術(shù)保護個人照片隱私的開源項目。芝加哥大學(xué) Sand Lab 團隊發(fā)起的項目,通過 AI 技術(shù)對圖片的像素進行一些微調(diào),人眼很難看出修改前后的區(qū)別,但對于人臉識別系統(tǒng)來說微調(diào)前后是天壤之別的,從而達到保護你照片隱私的效果



        長按識別二維碼,可直達項目

        最后

        感謝大家對 5 周年活動的支持,中獎的用戶請盡快私聊 HelloGitHub 視頻號領(lǐng)獎呀!

        點擊關(guān)注寶藏公眾號,更多驚喜等待你的發(fā)掘
        瀏覽 38
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国精产品一区二区三区福利姬 | 爱插美女网 | 亚洲日韩AV无码专区影院 | 精品国产乱码久久久久久绯色 | 欧美三级在线看 | 免费操 | 日韩欧美一区二区三区久久精品 | 国产精品久久无码 | 国产不卡自拍 | 日韩欧美视频一区 |