Interest is the best teacher, HelloGitHub gets you interested in programming!

Introduction to the

Share interesting, entry-level open source projects on GitHub.

There are actual combat projects, introductory tutorials, black technology, open source books, Dachang open source projects, etc., covering a variety of programming languages Python, Java, Go, C/C++, Swift… Let you in a short time to feel the charm of open source programming interest!

The National Holiday is coming, the most important thing is to have a rest. This period game project is a bit much, go out on the road with an open source project, not boring!

Finally, I wish our motherland a happy birthday and prosperity in advance! HelloGitHub friends happy holidays!


The following is the content of this issue | updated every 28th month

C program

Hex-link: Motion sensing device for homemade computer games. The project contains the hardware design and all the source code required for production

│ ├─ Arduinoide_Pro # ArduinoIDE Project │ │ ├─Additional_Libraries # ├─ ├─ Hex_Link_Nano │ ├─ Hex_Link_Nano │ ├─ Hex_Link_Nano │ ├─ Hex_Link_Nano │ ├─ Hex_Link_Nano │ ├─ Hex_Link_Nano │ ├─ Hex_Link_Nano │ ├─ Hex_Link_Nano │ ├─ Heavy Exercises # ├─ Heavy Exercises # arduino Bootloader │ ├─ Heavy Exercises # Need to download to program at the receiving end │ └ ─ Hex_Link_Nano # need to download to send the program ├ ─ the hardware # hardware engineering (PCB) │ ├ ─ BOM # PCB BOM, contain reference to buy links (links are for reference only, │ ├─Hex_Link_Rec # ├─Hex_Link_Trans # ├─ Nano_Jtag_Pin # Transfer board │ ├─Hex_Link_Rec # Transfer board │ ├─Hex_Link_Trans # Transfer board ├─ ├─Solidworks Engineering │ ├─Solidworks Engineering │ ├─Solidworks Engineering │ ├─Solidworks Engineering │ ├─Solidworks Engineering │ ├─Solidworks Engineering │ ├─ ├─Solidworks Engineering │ ├─ ├─Solidworks Engineering │ ├─ ├─Solidworks Engineering │ ├─ Exercises # Can be directly used for 3D printing. ├─ Exercises # ├─ tools # Extra Script toolsCopy the code

C # project

2. SteamTools: A toolbox of various Steam client tools. The tool supports Windows, Linux, macOS, and Android operating systems, including game inventory management, unlocking achievements, historically low prices, and selling inventory items, as well as a wealth of plugins waiting to be discovered

3. XLua: add Lua scripting capabilities to C#, Unity,.net and other environments, making Lua code easily intercall with C#

XLua.LuaEnv luaenv = new XLua.LuaEnv();
luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");
luaenv.Dispose();
Copy the code

BBDown: Command line bilibili video download tool

C + + project

Libqalculate is a versatile calculator desktop application, library, and CLI program written in C++. It is easy to use and powerful, supporting a large library of customizable functions, unit calculations and transformations, and symbolic calculations (including integrals and equations). You can use this library directly from the command line as a user or in your own projects as a developer. There are also Qt and GTK versions of the GUI calculator application

Btop: command line resource monitor with cool interface. Displays processor, memory, disk, network and process usage and statistics, and supports mouse operation

TinyWebServer: C++ lightweight Web server under Linux. This project can not only be used to build Web services, but also suitable for C++ beginners as a practical network programming project. The author also wrote an article to explain the relevant code and principle, to help beginners better grasp the knowledge of network programming

The CSS project

Css_tricks: A collection of common CSS style examples

Go project

9, Video-SRT-Windows: automatic recognition of video voice generated subtitle file tool. Developed by Go+ Walk, it only supports Windows operating system. The principle is to request online voice to text service. If you exceed the free amount, you need to pay. The ability to export subtitle files and translate has also been added

Go-daily-lib: Learn a Go library every day. The content includes standard library and tripartite library, and each library corresponds to an introduction and hands-on article

Open-im-server: Lightweight instant messaging (IM) project based on Go. High-performance, easy to expand, easy to install, private deployment, and other features, including a variety of client SDKS. Open source instant messaging (IM) solution from server to client

12. Go-fly: An online customer service system based on go language, implemented by Gin+MySQL+JWT+WebSocket and other technical stacks

Viper: a library used to fix configuration in Go applications. Supports multiple configuration file types, monitoring and reloading configuration files, and remote reading of the configuration system

viper.SetConfigName("config") // Configure the file name, excluding the suffix
viper.SetConfigType("yaml") // Configuration file suffix
viper.AddConfigPath("/etc/appname/")   // Find the directory for the configuration file
viper.AddConfigPath("$HOME/.appname")  // Support to find multiple directories
// Exception handling
iferr := viper.ReadInConfig(); err ! =nil {
	if _, ok := err.(viper.ConfigFileNotFoundError); ok {
		// If the configuration file is not found
	} else {
		// The configuration file was found, but other errors occurred}}Copy the code

Java project

14, O2OA: domestic OA system. Fully functional support attendance, conference management, cloud disk, etc., suitable for enterprise OA, collaborative office

15, IJPay: Java payment tool library, easy to complete the payment module development. It encapsulates the commonly used interfaces of wechat, QQ, Alipay, UnionPay, PayPal and other payment methods. Easy access to Java projects without relying on any MVC framework

VirtualApp: Sandbox application for Android system, App virtualization engine. It creates a virtual space where you can install, start, control, and uninstall applications. Virtual space and external isolation is equivalent to sandbox environment, can be implemented on Android applications open, silent installation and other black technology

JavaScript project

Sharedb: Real-time database based on JSON data OT algorithm. In simple terms, it is the real-time collaborative data framework, which can be used to realize the real-time synchronous display of data to other user pages when the page changes due to user operations. The OT algorithm is the general algorithm to solve the problems in the collaborative process. Common scenarios include state synchronization between multiple users, online document collaboration, and offline data change synchronization

18. 30-days-of-javascript: a 30-day JavaScript programming challenge. This tutorial is written in English, but it is easy to read and write. It contains step-by-step exercises and is suitable for those who want to learn JavaScript with no basic knowledge

19. YesPlayMusic: Third-party netease Cloud Player with high appearance. It not only has a simple and beautiful appearance, but also has a wealth of functions

  • Supports Windows/macOS/Linux
  • Private FM/ Daily recommended songs
  • Log in to the netease cloud account
  • The lyrics show
  • Custom and global shortcut keys
  • , etc.

Javascript: Airbnb’s open source javascript style guide. Chinese

// Use array deconstruction
const arr = [1.2.3.4];

// bad
const first = arr[0];
const second = arr[1];

// good
const [first, second] = arr;
Copy the code

21. Spy-debugger: a tool for remote debugging of mobile phone pages and packet capture. Simple operation only need mobile phone and computer in the same WIFI, you can realize the real machine debugging page

Kotlin project

22. Component: Android componentization framework to help developers componentize projects. Its power lies in its full functionality, timely update, support Kotlin, AndroidX, RxJava, coroutines, etc

Objective – C project

23, iOSInterviewQuestions: iOS interview set (with answers)

Python project

24. Pokemon-terminal: A Pokemon themed tool for a variety of terminals. ITerm2, ConEmu, Terminology, Windows terminals have collected 719 pixies

Mypy: Python static type checking library. Since Python is a dynamically typed language, why check for types? With static type detection, you can find potential errors in your program without having to run the code. You can also add git hooks to automate checking before committing code. Check out this article for details

26. Cpython-internals: An illustrated Python source code reading note project. Reading the relatively new CPython 3.8 release, the focus is on the project’s ongoing maintenance

static void take_gil(PyThreadState *tstate)
{
    * / / * ignored
    while (_Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked)) {
    	/* As long as the gil is locked, enter the loop */
        int timed_out = 0;
        unsigned long saved_switchnum;

        saved_switchnum = _PyRuntime.ceval.gil.switch_number;
        /* Release gil. Mutex and wake up under two conditions: 1. Wait for INTERVAL microseconds (default 5000) 2. Wait for 5000 microseconds but receive a signal from Gil. Cond */
        COND_TIMED_WAIT(_PyRuntime.ceval.gil.cond, _PyRuntime.ceval.gil.mutex,
                        INTERVAL, timed_out);
        /* Currently holds the mutex */
        if (timed_out &&
            _Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked) &&
            _PyRuntime.ceval.gil.switch_number == saved_switchnum) {
            /* If the wait time is exceeded and the holder of the gil has not changed during this wait time, the thread holding the gil will try to release the gil. Gil sets gil_drop_request to 1. When the thread holding the lock sees this value, it will attempt to release the gil */
            SET_GIL_DROP_REQUEST(a); }/* Continue back to the while loop to check if the gil is locked */
    }
    * / / * ignored
}
Copy the code

Rust project

Nushell: A new shell that is more human

Swift project

Clipy: A Clipboard extension for macOS. Supports the display of clipboard history and content templates

other

QWidgetDemo: a collection of examples written by Qt. Each example can run independently, the code is simple and easy to understand, suitable for beginners to learn

Xemu: A free and open source Xbox simulator that supports Windows, Linux, and macOS

Yabai: Tiled window manager for macOS. This tool can easily achieve window tiling without overlapping, and only move, adjust, switch, full screen, automatic layout and other window management operations through the keyboard without the mouse

  • Control+Option+A/D: Enables tile/float mode
  • Option+h/j/k/l: Makes the left/down/up/right side window active
  • Shift+Option+h/j/k/l: Moves the current active window left/down/up/right
  • Command+Option+n: Creates a new desktop and moves the active window to the new desktop

Goose-for-beginners: a collection of open source projects that are friendly to beginners. If you want to participate in the construction of open source projects, you can look for projects in this collection, good luck with your first contribution (PR) soon.

LifeRestart: an online word game called lifeRestart simulator. Pure word games only need to choose the initial talent distribution of the initial attributes, the next is to see the years like a blink of an eye, the end of this life, if not satisfied with it can easily start a new life. The game was critically acclaimed for its witty writing and unexpected ending. The online demo

34, Chinese-dos-games: A collection of Chinese DOS games. The online demo

Open source books

Introduction to Front-end Engineering: A little book called “Introduction to Front-end Engineering”. This book is the author of the past two years of front-end engineering practice experience and experience summary, read online

Pumpkin-book: Machine Learning Formula in Detail watermelon book formula derivation and analysis. Read online

Machine learning

37. Invoice: VALUE-ADDED tax invoice OCR identification item. Contains trained models and microservices that can be invoked directly from the interface when started

38. GameAISDK: AI automation framework based on image recognition, supporting chicken, shooter, MOBA and other game types. Built-in a variety of image recognition algorithm and AI algorithm, not matting completely based on image recognition AI training and framework

39. Genshin_auto_fish: Automatic fishing tool for Protogod mobile games based on deep learning. Among them, YOLOX is used to fix the positioning of fish and type recognition as well as the positioning of fishing rod landing point. DQN is used to fix the click of adaptive control fishing process, so that the strength falls in the best area


If you find something interesting on GitHub, share it with the big guys.

That’s all for this episode. Did you enjoy it?

Follow the HelloGitHub public account to receive not only the first updates. Click on the menu bar -> Past -> Monthly

To the period of all the contents of a fundus look fun! There are more open source projects and treasure projects waiting to be discovered.