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

Introduction to the

HelloGitHub Shares interesting, entry-level open source projects on GitHub.

Github.com/521xueweiha…

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 following is the content of this issue | updated every 28th month

C program

1. Quadsort: a merge sort algorithm that is faster and more stable than quicksort. The project includes principle explanation, C language implementation, performance comparison and sorting process

Minilisp: Lisp interpreter written in 1000 lines of C. Integers, symbols, local variables, conditional statements, macros, and garbage collection are implemented, and the code includes rich comments to help readers better understand the project

(println 3)  ; prints "3"
(+ 1 2 3)  ; - > 6
(define a (+ 1 2(a))+ a a)  ; - > 6
Copy the code

3. MPV: a minimalist player with powerful functions, free open source and multi-platform support. The bottom layer adopts MPlayer, MPlayer2 and FFmpeg and other open source projects, supporting a variety of audio and video formats, HD video, GPU decoding, customization and other functions, the pursuit of minimalist command line startup + shortcut key operation mode, making it the preferred video player for technology lovers

C # project

Jynew: 3D version of Jin Yong’s Legend of Heroes reworked in Unity

C + + project

Cutter: A free and open source reverse engineering platform. Rizin as the core engine and integrated with the Ghidra decomcompiler, its interface is simple and powerful, favored by reverse engineers

  • Support for multiple languages and themes
  • Binary search
  • Hexadecimal editor
  • Python scripts and plug-ins
  • Supports Linux, macOS, and Windows

Bpftrace: Advanced tracing tool and language for Linux. Based on eBPF and BBC, the tool collects kernel and program running information through probe mechanism, and then presents the information in charts and other ways to help developers find hidden bugs, security problems and performance bottlenecks

Cataclysm-dda: Days of Darkness is a survival game set at the end of the world. There are no missions, the only goal is to survive. Players can build shelters by finding resources such as food and equipment. It also supports features such as vehicle modification and crafting for Windows, Linux, macOS and Android. Download address

The CSS project

8. Heti: Typesetting style designed for Chinese content display. It will make your Chinese website look good

  • Typesetting that fits the grid
  • Full label style beautification
  • Preset multiple typesetting styles
  • Simple/traditional Chinese supported
  • Mobile support

Go project

9. K9s: command line tool to monitor and manage THE K8s cluster. It is easy to install and fully functional, command line interactive mode of operation can easily solve daily problems

10. Kind: Use Docker container as node to quickly run Kubernetes cluster tool locally. With this tool, you can quickly create local environments comparable to k8S native, and use relatively few resources and start up quickly. Mostly used for local development and testing of K8S native components, not for online environments

11. Air: Go tool that automatically restarts services when code changes. When developing Go Web projects, you need to manually compile and restart the service after each change. This tool will automatically compile and restart the service after the file and directory changes, greatly improving the development efficiency

Juicefs: High-performance POSIX shared file system. Using massive cloud storage as efficiently as using local storage can be mounted and read by multiple hosts at the same time

Sniffer: COMMAND line tool for viewing process and connection traffic. The interface is simple and beautiful, and supports different perspectives such as process and Socket to view traffic data

Java project

14. AndResGuard: Obfuscation compression tool for APK. The principle is to use the resource obfuscation method, does not involve compilation process only by shortening the resource path to achieve compression and obfuscation, the use method is simple just pass in a packaged APK file

Datahub: Java-based metadata governance platform, which can access Hive, Kafka, ES, MySQL and other data sources. As companies grow, the complexity of data increases exponentially, and managing data relationships through documentation and word of mouth becomes obsolete. If you’ve ever wondered what a field in a database means, failed to understand a field and had an online accident, or had no clue how to analyze data, etc. At this time, it needs a metadata governance platform, which provides browsing, searching and managing the meaning, relationship, source and other information of each field, so as to better govern and mine the value of data through metadata. Online experience

Termux-app: Open source terminal emulator running on Android. Provides the Linux environment and Shell through its own package manager, you can install and run SSH, Python, GCC, hTOP, Git, vim and other tools on the mobile phone

Questdb: High-performance open source timing database. The project is mainly implemented by Java code, which achieves excellent write and query performance through column-oriented storage engine, parallel execution, SIMD instruction and other technologies. It is widely used in Internet of Things, machine learning, finance and other scenarios. It also provides SQL query methods and interactive Web operation platform, an open source database worth looking forward to

18, Addax: support a variety of heterogeneous data sources offline synchronization tool. The ETL tool for big data can quickly synchronize data among data sources such as MySQL, HDFS, Hive, and HBase. It is mainly used for offline collection of various data to data warehouses or big data platforms

JavaScript project

19, Arco-Design: React/Vue UI component library based on ArcoDesign. Contains more than 60 high-quality components out of the box, and also provides a visual style configuration platform for quickly building an enterprise-level management backend

import React from 'react';
import ReactDOM from 'react-dom';
import { Button } from '@arco-design/web-react';
import '@arco-design/web-react/dist/css/arco.css';

function App() {
  return (
    <Button type='secondary'>
      Hello World
    </Button>
  );
}

ReactDOM.render(<App ></App>.document.getElementById('app'));
Copy the code

20. Context-note: a web note browser plug-in with context. Most of the time we use bookmarks to mark links to websites, but in certain situations such as reading articles and browsing information, specific sentences and their context need to be marked. This project extracts the content and location of information, which is easy to review with context, and easy to trace with one click

S2: High-performance multi-dimensional cross analysis table tool. Provide KPI trend table, proportion table, comparison table and other forms, out of the box with a simple and detailed documentation. Through on-demand rendering and virtual scrolling and other ways, to achieve rendering in millions of data in seconds, scrolling without delay. Online experience

Prisma: ORM for Node.js and TypeScript. Support mainstream database can be used to develop REST API, GraphQL API, gRPC API and other programs that need to connect to the database. The project also includes data migration tools and GUI tools for managing data

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

// A `main` function so that you can use async/await
async function main() {
  const allUsers = await prisma.user.findMany({
    include: { posts: true}})// use `console.dir` to print nested objects
  console.dir(allUsers, { depth: null })
}

main()
  .catch((e) = > {
    throw e
  })
  .finally(async() = > {await prisma.$disconnect()
  })
Copy the code

Objective – C project

Vienna – RSS: A free RSS feed for macOS

PHP project

24. Laravel-tips: Collection of Laravel coding Techniques. Chinese

PHPWord: provides a PHP library for reading/writing a variety of document file formats. Supports Microsoft Office, rich text (RTF) and other document formats


      
require_once 'bootstrap.php';

// Create a new document
$phpWord = new \PhpOffice\PhpWord\PhpWord();

// Adding an empty Section to the document...
$section = $phpWord->addSection();
// Adding Text element to the Section having font styled by default...
$section->addText(
    '"Learn from yesterday, live for today, hope for tomorrow. '
        . 'The important thing is not to stop questioning." '
        . '(Albert Einstein)'
);
Copy the code

Python project

Orjson: Faster and more powerful Python JSON library. Supports rich data types such as dates, NUMpy arrays, and is faster

>>> import orjson, datetime, numpy
>>> data = {
    "type": "job"."created_at": datetime.datetime(1970.1.1),
    "status": "🆗"."payload": numpy.array([[1.2], [3.4]]),}>>> orjson.dumps(data, option=orjson.OPT_NAIVE_UTC | orjson.OPT_SERIALIZE_NUMPY)
B '{" type ":" job ", "created_at" : "the 1970-01-01 T00:00:00 + 00:00", "status" : "\ xf0 \ x9f \ x86 \ x97", "content" : [[1, 2], [3, 4]]}'
>>> orjson.loads(_)
{'type': 'job'.'created_at': '1970-01-01T00:00:00+00:00'.'status': '🆗'.'payload': [[1.2], [3.4]]}
Copy the code

27. Tiler: An image tool that converts images into various smaller image blocks. Mosaic style image conversion tool, support custom Mosaic patterns and symbols. The tool is practical and convenient, and the code is simple and easy to understand. It is suitable for those interested in images to learn and get started

Rumps: Simple Python library for macOS status bar

import rumps

class AwesomeStatusBarApp(rumps.App) :
    @rumps.clicked("Preferences")
    def prefs(self, _) :
        rumps.alert("jk! no preferences available!")

    @rumps.clicked("Silly button")
    def onoff(self, sender) :
        sender.state = not sender.state

    @rumps.clicked("Say hi")
    def sayhi(self, _) :
        rumps.notification("Awesome title"."amazing subtitle"."hi!! 1")

if __name__ == "__main__":
    AwesomeStatusBarApp("Awesome App").run()
Copy the code

other

29. Simula: VR window management tool on Linux. Through this tool +VR devices can easily achieve the effect of “all the desktop in sight”, it is based on Godot development simple, practical and convenient installation, support HTC Vive Pro, Valve Index and other VR devices

Penpot: Open source online platform for design and prototyping. Not only is it completely free, Docker is built and used online, but it also supports Chinese and team sharing. The disadvantage is that the platform provides too few components, you need to start from the shape for the first time, but you can customize components to do it once and for all. If you’re looking for an open source, free prototyping platform, give it a try. Try online

31, Design-resources-for-developers: Design resource collection. The project includes images, website templates, CSS frameworks, UI and other resources

Koreader: Open source reading software for e-ink devices. For Kindle, Kobo, PocketBook, Android, Linux and more, it has the ability to set font, line spacing, text styles, and most importantly, PDF layout optimization for ink screen devices. Greatly improves the reading experience of PDF files on Devices like Kindle

33. Tabby: A terminal tool with a high appearance level. Powerful and highly configurable, suitable for Windows, macOS, and Linux operating systems

  • Support for custom themes and color matching
  • You can configure shortcut keys and combination keys
  • It integrates SSH and Telnet connections
  • Split window
  • , etc.

Doomcaptcha: Captcha in the form of a Doom shooter. Try online

Wsa_pacman: desktop tool to easily install Android applications in Windows11. Using this tool, you can double click to install Android applications, based on the WSA implementation of the system, and do not need to install third-party emulators

Appflowy: Open source note taking tool. Developed based on Flutter for various operating systems, Flutter aims to be an alternative to Notion

Open source books

37. School-of-sre: linkedin’s open source entry-level course to become a Website reliability engineer. The content covers Web, Linux, Git, computer network, database, security and other aspects

38. Everything – Curl: Everything About Curl. Curl is a book written by the originator of the Curl Project, covering the introduction to Curl, open source, source, and project. Read online

Machine learning

39. Ml-for-beginners: An open source Microsoft entry-level machine learning tutorial

40. Spleeter: Sound track separation tool based on Tensorflow. Can be used to extract music in the voice, drum, piano and other instruments

PIP install spleeter # Spleeter based on conda install -c conda-forge ffmpeg libsndfile Separate -p spleeter:2stems -o output audio.mp3Copy the code

The last

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

That’s all for this issue. Click here to read it

Thank you for reading, if you think this content is good, please like, please share, your support will make HelloGitHub better! ❤ ️