Interest is the best teacher, and HelloGitHub gets you interested in programming!
Introduction to the
Share interesting, entry-level open source projects on GitHub.
HelloGitHub has practical, tutorials, black technology, open source books, enterprise open source projects, covering a variety of programming languages Python, Java, Go, C/C++, Swift… Let you feel the charm of open source in a short time, interested in programming!
Project address: github.com/521xueweiha…
Thank you for lighting up every Star ✨
Here’s what’s in this issue | updated on the 28th of each month
C program
1. X-track: open source GPS bike code table. Complete functions and has a beautiful interface, support offline map, track display and other functions. Watch online
C # project
2. XboxDownload assistant Support Xbox game download speed, price comparison and other functions
3. ToastFish: A software that memorizes words using the Windows notification bar. Be able to select a set of words and take a quiz after memorizing them
C + + project
Plants-vs.zombies Online Battle: Reverse engineering and code injection without source code. After successful loading, the last level of decryption mode will become a network battle level. The gameplay places plants for one player to defend and zombies for the other to attack. The project combines reverse engineering, C++, and assembly technologies to add features to the game without source code. Guys who are interested in reverse engineering can check out the source code
5, xpack: C++ structure and JSON/XML/BSON interchange library. C++ beginners can learn advanced macro skills and elementary SFINAE writing through this project
#include <iostream>
#include "xpack/json.h" // Include the header file
struct User {
int id;
std::string name;
XPACK(O(id, name)); // Add the macro definition XPACK at the end of the structure definition
};
int main(int argc, char *argv[]) {
User u;
string data = "{\"id\":12345, \"name\":\"xpack\"}";
xpack::json::decode(data, u); // Convert json to structure
cout<<u.id<<'; '<<u.name<<endl;
string json = xpack::json::encode(u); // Convert the structure to JSON
cout<<json<<endl;
return 0;
}
Copy the code
The CSS project
Normalize. CSS: A CSS library used to eliminate browser default styles. Different browsers have different default styles for the same element, such as the color of the hyperlink line. Normalize. CSS is a more peaceful and efficient way to solve the problem of default browser styles and try to make the same CSS file look the same on different browsers
Go project
7. Goim: Lightweight, high-performance, cluster-supported IM and real-time push service. Golang-only implementations support broadcast messaging, room push, security authentication and multi-protocol support, as well as asynchronous push Kafka based messaging
8. DTM: Distributed transaction manager implemented by Go language. It solves the distributed transaction problems such as idempotent, empty compensation and suspension in the micro-service architecture gracefully, and provides a distributed transaction solution that is easy to use, high performance and easy to scale horizontally. Besides Go, there are also clients of Python, PHP, Node.js and other languages
// The address of the specific service microservice
const qsBusi = "http://localhost:8081/api/busi_saga"
req := &gin.H{"amount": 30} // Microservice load
// DtmServer is the address of the DTM service, which is a URL
saga := dtmcli.NewSaga("http://localhost:8080/api/dtmsvr").
// Add a TransOut subtransaction with the forward action as URL: qsBusi+"/TransOut" and the compensation action as URL: qsBusi+"/TransOutCompensate"
Add(qsBusi+"/TransOut", qsBusi+"/TransOutCompensate", req).
// Add a TransIn subtransaction with forward action as URL: qsBusi+"/TransOut" and compensation action as URL: qsBusi+"/TransInCompensate"
Add(qsBusi+"/TransIn", qsBusi+"/TransInCompensate", req)
// Commit the saga transaction and DTM will complete all subtransactions/roll back all subtransactions
err := saga.Submit()
Copy the code
9. Erda: enterprise one-stop PaaS platform. A multi-cloud architecture based on Kubernetes’ application-centric DevOps and supporting micro-service governance makes it easier and more efficient to develop, operate, monitor, and troubleshoot complex businesses. Ease of using different tools to mix and match technology bases and cloud platforms, as well as a beautiful, easy-to-use interface design
Hugo: A static website generator for the Go language. Static Website generator is a tool that generates static web pages (HTML+CSS) from content files locally and then uploads the generated pages to the server. This tool can help you get your site online easily and quickly, while users can just choose their favorite theme and focus on content creation. Hugo is one of the most popular static website generators, with a wealth of plugins and themes that will help you quickly create a satisfying blog or site even if you have no programming background
11. TopList: Aggregators of top headlines from various websites. The online preview
Java project
12, Mybatis-PageHelper: Mybatis universal page plugin, how to use
Guava: Google’s open source Java tripartite class library. The library provides out-of-the-box tooling methods including collections, I/O, caching, concurrency, etc. Any Java application can import the project in a dependency manner. As Google’s open source project, the source code itself is also very worth learning for developers
Dataease: Open source data visualization and analysis tool. Using SpringBoot+ vue. js technology stack implementation, through rich visual charts to make the data more intuitive
- Data connection: Support relational databases, files such as Excel, big data platforms such as Hadoop, and various data sources such as NoSQL
- Chart display: Support PC, mobile and large screen
- Create charts: Support rich chart types, support drag and drop to quickly create the dashboard
- Data engine: Supports direct connection mode and local mode
JavaScript project
15. Etherpad-lite: Rich text WYSIWYG editor for real-time collaboration
SJCL: Stanford University’s open source JavaScript encryption library. For JS encryption and decryption, small volume and support a variety of encryption algorithms
sjcl.encrypt("password"."data") // Encrypt the data
sjcl.decrypt("password"."encrypted-data") // Decrypt the data
Copy the code
17. Rubick: Open source plug-in toolbox developed based on Electron. The author of the project was a user of uTools, which was not open source, and he wanted to tap into the company’s in-house tools, and Rubick was born. It implements most of the functions of uTools, and can be adapted to the rich open source plug-ins of uTools, enjoying the convenience of running out
18, 50Projects50days: a collection of 50 front-end small projects using HTML+CSS+JS. The project contains web source code and effect display, standard entry level front end open source project. By looking at the effect to let the novice feel the front end of the wonderful, simple source code to reduce the threshold of handwritten code. Maybe one of them will make you cry after years of work
Gogocode: a tool to simplify JavaScript’s abstract syntax tree (AST) processing. Using the ideas of pre-release and string building AST like jQuery for reference, the learning cost is greatly simplified and the development complexity is reduced. On this basis, the official team also developed the plug-in of Vue2 to Vue3
Kotlin project
FengYunWeather: an open-source Android weather APP. Written in Kotlin language, using MVVM architecture and OkHttp, Coil, Room and other frameworks, the code logic is clear, suitable for beginners and learning
21. K-9: Open source Android email client
Python project
22, TqSDK-Python: Open source Python quantitative trading framework. Use a small amount of code to achieve quantitative trading procedures, but also support historical data, real-time data, strategy back test, real trading, graphical interface display and other functions. But the free version only provides all futures, commodity/financial options and the real-time market of sse 50, CSI 300 and CSI 500, while the paid version supports more types and more stable services
from tqsdk import TqApi, TqAuth, TqAccount, TargetPosTask
api = TqApi(TqAccount("H Haitong Futures"."4003242"."123456"), auth=TqAuth("Easy Credit Account"."Account Password")) Create TqApi instance and specify transaction account
q_1910 = api.get_quote("SHFE.rb1910") Subscribe to recent contract prices
t_1910 = TargetPosTask(api, "SHFE.rb1910") Create a tool to adjust the position of the front month contract
q_2001 = api.get_quote("SHFE.rb2001") Subscribe to far month contract prices
t_2001 = TargetPosTask(api, "SHFE.rb2001") Create a forward month contract position adjustment tool
while True:
api.wait_update() # Wait for data update
spread = q_1910.last_price - q_2001.last_price Calculate the difference between the front-month contract and the front-month contract
print("Current spread :", spread)
if spread > 250:
print("Spread too high: short month, far month.")
t_1910.set_target_volume(-1) Request to adjust the 1910 contract to 1 short
t_2001.set_target_volume(1) # Request to change the 2001 contract to long 1 lot
elif spread < 200:
print("Spread reply: Open position.") # Require both the 1910 and 2001 contracts to be closed
t_1910.set_target_volume(0)
t_2001.set_target_volume(0)
Copy the code
Pillow: The most popular Python image processing library. It came into being because PIL fell into disrepair and was discontinued for maintenance in 2011, so open source enthusiasts created Pillow on top of PIL. The library supports rich image formats and powerful image processing capabilities, making it the perfect choice if you want to work with images in Python
PIP install pillow
Note which version is installed. Different versions support different versions of Python
from PIL import Image
Open JPG image file
im = Image.open('hellogithub.jpg')
# Convert to black and white
grayscale = tatras.convert('L')
# Display images
grayscale.show()
Copy the code
24, JDMemberCloseAccount: Operate selenium real-world projects in Python. This project introduces the knowledge and scheme of Python automation by taking the shop members who quit JD.com and joined it as an example
25, BigDATa_analyse: the collection of bigdata analysis practical projects. This project includes analysis instances of data such as Taobao, rental and recruitment, with instance codes of Python, SQL and HQL as well as data set download addresses attached. If you want to learn big data, everything is ready for you
26, OnlineJudge: Qingdao University open source online evaluation system (OJ), using Django+Vue.js implementation. Functions are as follows:
- Docker-based one-click deployment
- Supports ACM/OI mode, real-time/non-real-time judging
- Rich visual charts, a picture worth a thousand words
- Support for multiple programming languages: C/C++, Java, Python2/3
- Match user IP Limits (CIDR ranges)
Swift project
27. SwifterSwift: a collection of 500 in 1 native Swift extension libraries. Integration of more than 500 native Swift extension libraries, providing more convenient functions, syntax sugar, data types, UIKit, and higher performance Cocoa classes, improving Swift development efficiency to achieve the effect of 1+1>2. Applicable to iOS, macOS, tvOS and other systems
// The original code for implementing a reminder using UIAlertController is as follows:
let alert = UIAlertController(title: "Test", message: "HelloGitHub", preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
alert.addAction(okAction)
present(alert, animated: true, completion: nil)
// Change to SwifterSwift:
let alert = UIAlertController(title: "Test", message: "HelloGitHub")
alert.show()
Copy the code
28, Firefox -ios: Firefox ios source code
other
29. Nocodb: Open source smart table making tool. I initially thought noCODB was just a database desktop administration tool, but then I found myself being narrow-minded. Not only does it allow for tabulating data such as databases and images, but it also provides team collaboration, workflow access, and more open apis. Let the team work on the data, and the data is at hand “ready to play.” An open source alternative to the well-known spreadsheet-database hybrid Airtable product
30, Elasticsearch-dump: ElasticSearch data import/export tool, can be used for ES data backup and migration
31. FreeCodeCamp: Open source community for learning to program for free. It was founded in 2014, during which it helped countless programming enthusiasts to learn programming, and the Chinese site was launched in 2021. FreeCodeCamp takes the form of learning through online programming and an active community to answer questions. The platform encourages beginners to write and run code more often, and advocates RSA, which is to read the documentation first, then turn to the search engine, and then ask questions when there is no answer. This helps to develop good questioning habits that will last a lifetime. As a non-profit organization, freeCodeCamp not only offers free courses but also open-source website code
Developer – Roadmap: Development roadmap This is a learning path map that includes back end, front end, o&S deployment, etc., to help you point the way forward. Chinese
Adarkroom is an interesting text adventure game. It can run on the browser, iOS and Android devices. The browser will save the game progress to the local by default. In addition, archive import/export is supported to prevent loss. Friendship tip: have not played the students at the beginning of easy to be confused, because the event trigger needs time, look at the scrolling text + click “add wood” patiently wait for 30 seconds, will trigger a new event. If you’re into nurturing games, it’s definitely for you. The online demo
Hyper: Superhigh appearance horizontal terminal tool based on Electron. Appearance level, or justice, is useful not only in finding a mate, but also in picking a tool. It supports Windows, Linux, macOS and other mainstream operating systems quick download try, let your terminal beautiful not like power
35. Git-split-diffs: Command line tool to make code changes more intuitive. When you use Git diff to view changes on a terminal, the default presentation is not intuitive. This project presents code changes in a GitHub style for easy viewing, with a variety of themes to choose from
Open source books
36, Understand_linux_Process: Understanding the Linux Process
37. Http-api-guide: HTTP Interface Design Guide contains recommendations for designing Web apis
CheatSheetSeries: OWASP (Open Web Application Security Project) Quick lookup table. Written by security experts from the OWASP community, this project lists a variety of security issues and solutions to better protect your Web applications. Read online
Machine learning
HyperLPR: Open source framework for Chinese license plate recognition. Support Python, Android, C++ and other programming language call, access simple and accurate. Recommended to have license plate recognition needs of small partners
Insightface: A Python library that supports 2D&3D face analysis. Based on PyTorch and MXNet, advanced ArcFace face recognition method is adopted to realize face detection and recognition functions efficiently
41, Statistical Learning-method_code: Implementing algorithms in Python
42, DouZero_For_HappyDouDiZhu: based on kuaishou open source doudizhu reinforcement learning framework, the realization of HappyDouDiZhu AI assistant
The last
If you find an interesting project on GitHub, share it with the big guys.
That’s all for this episode, still not satisfied?
Follow the HelloGitHub public account not only to receive the first updates. Click the menu bar -> Past -> Monthly
To the monthly monthly all the content of a fundus to see! There are many more open source projects and treasure trove projects to be discovered.