There are eggs at the bottom

Interest is the best teacher, HelloGitHub is to help you find interest!

Introduction to the

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

This is a monthly magazine for people who are new to programming, passionate about programming, and interested in the open source community. The contents of the monthly include: various programming language projects, tools to make life better, books, study notes, tutorials, etc. Most of these open source projects are very easy to use, and very Cool. The main hope is for you to get your hands dirty and join the open source community.

  • Those who can program can contribute code
  • Those who cannot program can report bugs in using these tools
  • Help promote projects that you think are great
  • Star project ⭐ ️

As you browse and participate in these projects, you will learn more about programming, improve your programming skills, and find the fun of programming.

🎉 And the project HelloGitHub was born at 🎉


Below is the content of this issue | the latest issue will be published on the 28th of each month | click to view the content of previous issues

C program

1. SuperWeChatPC: This is a super wechat computer client. Yes, super! Because it is not only a wechat computer client, but also supports the following functions:

  • Infinite rolled
  • Anti-undo message
  • Voice Message Backup
  • , etc.

The project also has links to articles about technical insider information, so go ahead and learn

2. TDengine: a big data platform designed and optimized for the Internet of Things and other industries as well as application monitoring. Its database insert and query operations are 10 times faster than other databases! The cost of consumption is also very low compared to other typical such solutions. TDengine requires less than 1/5 computing resources and provides Java, C/C++, Python, Go, RESTful apis and other interfaces for development. Are you worried about the performance of writing, reading and calculating data? Your hair survival rate will be greatly improved with it

C # project

Common.Utility: a variety of C# libraries collected and sorted by the author of the project. Classes are not related to each other and can be referred to separately to projects. Comments are included in the code for easy use and learning

4. FightLandlord: The project adopts.NETCore cross-platform technology to realize doulandlord server. Has realized functions: shuffling, licensing, grab the landlord, fight the landlord, prompt card, the end of the game, etc. The subsequent plan is to increase the machine intelligent card, should I say: star over XX to achieve intelligent card function, so that we can have power star 😂

C + + project

Muduo: a non-blocking IO and event-driven C++ networking library that relies on Boost. It realizes the encapsulation of the underlying system call, the design of high performance asynchronous log, Reactor multi-thread concurrent mode design, simple HTTP protocol analysis. Suitable for the development of Linux multi-threaded server applications, through reading the source code can also learn C++ language, Linux network programming and other back-end knowledge

Go project

6. NPS: A powerful and lightweight Intranet penetrating proxy server. Supports TCP and UDP traffic forwarding, Intranet HTTP proxy, Intranet SOCKs5 proxy, SNappy compression, site protection, encrypted transmission, and multiplexing. With Web graphical management, integrated multi-user mode. You can set up Intranet penetration proxy service to replace paid Intranet penetration service. Unlike other similar projects that rely on the command line, it has graphical pages. Installation:

go get -u github.com/cnlh/nps
go build cmd/nps/nps.go # server application
go build cmd/nps/npc.go # Client application
Copy the code

7. Scope: K8S series relies on visual components for the relationship between containers, and explains the complex interdependence between microservices by means of diagrams. Currently, only scope is useful for debugging dependencies between microservices. The graph representation means that graph algorithms can be used to find shortest paths, cluster, and merge tightly coupled services. By calculating the density of the graph, it can also reveal the close relationship between microservices. The installation is as follows:

# installation
sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch
# Finally visit http://localhost:4040
Copy the code

8. Pan-light: Baidu web disk unlimited client based on Golang + Qt5. Compared with the previous command line version of Baidu disk client, this project has a graphical interface, which is more friendly, convenient and easy to use. You can download and run it on the Release page and use it

Mux: an HTTP routing library based on Golang. Because it supports all kinds of regular matching routes, the reuse rate of corresponding processing functions is greatly improved. Compared with Gin, Beego and other frameworks, this project is basically consistent with the standard library http.ServeMux and mux.Router, and more powerful than the standard library is its support for regular matching routing, custom reserved fields, nested routing and other functions. Sample code:

func main(a) {
    r := mux.NewRouter()
    r.HandleFunc("/", HomeHandler)
    r.HandleFunc("/products", ProductsHandler)
    r.HandleFunc("/articles", ArticlesHandler)
    http.Handle("/", r)
}
r := mux.NewRouter()
r.HandleFunc("/products/{key}", ProductHandler)
r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler)
r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler)
Copy the code

Lazydocker: docker management tool with command line UI. Docker can be managed point-by-point without having to install an enterprise-class container management platform like Rancher

Gocui: Command line UI library Provides an HTML Canvas like API for drawing UI in terminals, allowing content to be displayed in chunks, and even supporting click events in some terminals. If you want to make a Redis-CLI or some other cool command line UI that supports click events. But if you don’t want to get bogged down in a hand-drawn UI, this library can help

Java project

12, Mall: a set of e-commerce system based on SpringBoot+MyBatis, including the front mall system and background management system. Complete function is a good project to learn and practice e-commerce. Project Structure:

Mall Flag School -- Common Tools and Code Flag school -- Mall MBG -- MyBatisGenerator Database Operation code Flag school -- Mall admin -- Mall Management System Interface Flag school -- ├─ Mall - Search - Elasticsearch System ├─ mall-portal - Mall -demo - framework setup test codeCopy the code

QuestionAnsweringSystem: A Human-machine question-and-answer system implemented in Java that automatically analyzes questions and provides candidate answers. QuestionAnsweringSystem is the Java version of Watson, an AI question-answering system developed by IBM that beat human contestants in 2011 on the popular us TV quiz show Jeopardy. It may not be as smart by today’s standards, but its simplicity and ease of deployment make it ideal for beginners to play with, so go ahead and integrate a cool smart Q&A system into your app

Arthas: An open source Java diagnostic tool for Ali. When a strange exception occurs on the line, runtime data can be captured without a release, including parameters, return values, exceptions, elapsed time, and so on. Easy to use, well-documented, non-invasive code can be running JVM process monitoring, easy to use command line tools. There is a bug online, arthas has a cup of coffee first to calm down the panic, the problem is fixed in minutes not a dream

Wormhole: A simple and easy-to-use API management platform. The purpose is to reduce the coupling between back-end service development and front-end call, and make the development and collaboration of the whole project more perfect through this framework. The client developer searches for the required interface information from the management platform and invokes it. The server developer defines the interface and synchronizes it to the management platform. The management platform can unify the interface access Settings. A framework that allows the front end and back end to be “best friends” ✌️

JavaScript project

16, javascript-questions: list of javascript advanced questions, including answers. Chinese Version

17. Zdog: Want to apply 3D graphics to your Web application? Want to use your familiar technology to achieve cool 3D effects? Yes, zdog is your first choice. This is a JS 3D rendering engine for Canvas and SVG that allows you to easily create flat style 3D models. The library is only 2800 lines of code and has a minimum size of 28KB. It also provides a developer-friendly declarative API, with no complicated configuration and you can use it as long as you know JS. The images below are all done using ZDog

18, LICia: more practical JS tool library, built in a lot of tools may be often used in engineering functions. The library provides NPM installation, which can be well integrated into modern front-end engineering development to improve development efficiency. Sample code:

const uuid = require("licia/uuid");
const dateFormat = require("licia/dateFormat");
const now = require("licia/now");
const randomBytes = require("licia/randomBytes");
console.log(randomBytes(5));
console.log(uuid());
console.log(dateFormat(now(), "yyyy-mm-dd"));
Copy the code

19. Cdfang-spider: Data visualization project of Housing statistics in Chengdu. This project has made statistics of all the housing information since the opening of chengdu, to help students who want to buy a house in Chengdu to provide some visual data analysis, more intuitive than the official data of housing association network, more thorough analysis. This project contains a complete set of source code, as well as detailed project construction documents, developers can build the project step by step according to the construction document. Can help developers learn front-end, back-end, database side, unit testing, continuous integration and other complete set of knowledge. Based on this project, you can do the visualization of housing information in any area and let the data speak for themselves

X-build: scaffolding tool for small projects, using terminal commands to initialize project directories in seconds. The library internally integrates webPack, Babel, ESLint, and other common front-end tools. This project will help you learn about scaffolding development and how to integrate WebPack into your tools for custom scaffolding development

21. Vue-unit-test-with-jest: A vUE unit test project, which lists most of the links that need to be tested during vUE development, with test codes and documentation. Now there are more and more front-end development technologies, but we just noticed that the corresponding unit test steps were not done in the development stage. We can learn how to do unit test for Vue project through this project. Sample code:

import { shallowMount, createLocalVue } from '@vue/test-utils'
import FilterTest from '@/components/FilterAddWatchTest.vue'.// Test contents: filter ---- Filter can only be obtained from components, not from wrapper or VM
// filter needs to test all possibilities of the function
it('filter test', () = > {// console.log(FilterTest.filters)
  expect(FilterTest.filters.formatText('12345678')).toBe('12... 78 ')
  expect(FilterTest.filters.formatText('12345')).toBe('12345')
  expect(FilterTest.filters.formatText()).toBe(' ')})...Copy the code

Styled Components: If you are a developer writing React, don’t miss this library, which uses ES6 template strings to implement CSS-in-JS in React, for a smoother style writing in React. Css-in-js is a hot topic in front end circles. Css-in-js believes that styles should be in component files, not a single style file, so that it is only a physical distinction, not the actual component encapsulation

Objective – C project

GHDropMenuDemo: a simple filter menu component for a variety of scenarios. Convenient integration, fast selection of screening items, no pollution to the original project

PHP project

24. CRMEB: a set of open source and free new retail mall system (integrating customer relationship management and marketing e-commerce system) based on ThinkPhp5.0 + Vue + EasyWeChat. Can help enterprises based on wechat public number, small program, PC, APP, etc., to achieve membership management, data analysis, precision marketing e-commerce management system. To meet the business needs of enterprises such as new retail, reservation, O2O, multi-store and so on, it is a mall system with powerful functions and suitable for a variety of scenarios

Python project

25. Cufflinks: Library based on Plotly and Pandas. Pandas is a popular library for manipulating data. Cufflinks can be used to visually display data in Pandas. With this library you can achieve gorgeous and diverse data visualizations with very little code

One-python-craftsman: How to write good Python code? Great code is made up of tons of great details. This project is about going through the details of Python, such as when to use exceptions, how to name variables, and how to write conditional branches. The author of this project is a senior Python developer, and the content is close to the actual work and business scenarios. I believe that after studying this project carefully, your coding ability will be greatly improved and help you go higher and farther on the development road of Python

Ruby project

Rubocop: a Ruby static code analyzer and code formatter. Out of the box, enforce many of the guidelines listed in the community Ruby style guide. RuboCop is very flexible and most of the behavior can be adjusted through various configuration options. In addition to reporting problems in your code, some problems can be automatically resolved for you. The most widely used and highly efficient Ruby static code detection tool. Sample code:

$ gem install rubocop
$ cd my/cool/ruby/project
$ rubocop
Copy the code

Swift project

28, uPic: a macOS graphics client, support a variety of free, paid graphics, so that you can easily upload pictures, obsessed with content creation tools

other

29, git-open: after using git command to push the code, if you want to see whether the webpage content of the warehouse is updated successfully, you need to open the webpage again to check. With git open, you can enter the git open command to automatically open the corresponding repository web page, including GitHub, GitLab and Bitbucket. Is it convenient? What are you waiting for

30. GetAwayBSG: The project is called “Escape from Beijing, Shanghai and Guangzhou”. The project uses data from recruitment and housing prices to crawl. IT provides some visual data as suggestions for IT professionals who are preparing to flee first-tier cities like Beijing, Shanghai and Guangzhou, but can’t find a place to go

31, The world is always very friendly to students, especially college students. Students can always get a variety of preferential benefits, this article is to use the student identity can enjoy the relevant student preferential rights, but also hope that you enjoy the rights at the same time do not forget their obligations, do not sell, resold their student preferential qualification, so that other students can not benefit. GitHub, Microsoft, AWS, JetBrains, and the recent launch of Apple Student Deals, college students (or middle school students, but more difficult for elementary students) can enjoy them all! Finally, I wish all the students progress in their studies and make their lives more wonderful

32. From_coder_to_expert: a collection of documents, PDF and PPT of the latest internal technologies shared by Internet giants in 2019. From programmer to CTO, from professional to excellent

Sqli-labs: very detailed SQL injection tutorial. Worth reading and learning for those who want to get started in the security industry

Open source books

14, Flutter – in-Action: The Real Flutter, read online

35, GO101: “Go Language 101” is a focus on the Go syntax and semantics of the programming guide, Chinese online read

Machine learning

TabNine: Code completion tool based on OpenAI language model. Support for 23 programming languages, 5 editors (VS Code, Sublime Text, Atom, Emacs, Vim), easy to use, amazing results

Hub: an aggregation center of classical models in computer vision and natural language processing. There are plenty of hubs these days — GitHub, SciHub, xxxxHub, etc. — but the pyTorch-Hub was recently promoted by Turing award winner Yann LeCun. Whether it is ResNet, BERT, GPT, VGG, PGAN or MobileNet classic models, just enter a line of code, can achieve one-click call! Mom doesn’t have to worry about your model anymore! Sample code:

Users can use the torch.hub.list() API to list all available entry points in the REPO. Say you want to know what computer vision models are available in PyTorch Hub: >>> Torch. Hub. List (' PyTorch/Vision ') >>> [' Alexnet ', 'deeplabv3_resnet101', 'densenet121',... In the previous step, you can see all the available computer vision models. If you want to call one of them, you don't have to install it. You can load the model in a single sentence. Model = torch.hub.load(' PyTorch/Vision ', 'deeplabv3_resnet101', pretrained=True) For detailed help on this model, use the following API:print(Torch.hub.help(' PyTorch/Vision ', 'deeplabv3_resnet101')) If the model's publishers subsequently add bug fixes and performance improvements, users can also easily get updates and make sure they are using the latest version: The model = torch. Hub. Load (... , force_reload=True) For other users, stability is more important, and they sometimes need to call code for a particular branch. For example, the hub branch of pytorch_GAN_zoo: Model = torch.hub. Load (' Facebookresearch /pytorch_GAN_zoo:hub ', pretrained=True, After loading the model from PyTorch Hub, you can use dir to view all available methods for the model. Take the bertForMaskedLM model as an example: >>> dir(model) >>> [' forward '... 'to' 'state_dict',] If you're interested in the forward method, use ithelpUnderstand the parameters required to run the method. >>>help(model.forward)
>>>
Help on method forward inmodule pytorch_pretrained_bert.modeling: Forward (input_ids, token_type_ids=None, attention_mask=None, masked_LM_labels =None)...Copy the code

38. Dg-net: Deep learning model training often requires a large amount of annotated data, but it is often difficult to collect and annotate a large amount of data. The author explores a method of generating data to assist training on the pedestrian re-recognition task. By generating high-quality pedestrian images (pedestrians changing clothes in pairs), it is integrated with the pedestrian re-recognition model to improve the quality of pedestrian generation and the accuracy of pedestrian re-recognition

  1. High-quality pedestrian images can be generated without additional annotations (such as pose, attribute, keypoints, etc.). By exchanging extracted features, the appearance of two pedestrian images can be exchanged. These appearances are real variations of the training set, not random noise.
  2. No part matching is required to enhance the result of pedestrian re-recognition. Simply showing the model more training samples can improve the model’s performance. Given N images, we first generate the training images of NxN, which are used to train the pedestrian re-recognition model. (The first line and the first column below are real image input, the rest are generated images)
  3. There is a cycle in training. The generated image is fed to the pedestrian re-recognition model to learn good pedestrian features, and the features extracted from the pedestrian re-recognition model are fed to the generated model to improve the quality of the generated image.

Lis-ynp: A PyTorch tutorial with basic tutorials, enhanced reference materials, and fun hands-on projects. Life is short. I use a PyTorch


“Finished, not enough? “Past content > | don’t satisfy, then look at the front end of the updated daily journal < front > today” if you find the fun and meaningful open source project Click here to share you feel interesting projects.

The public,

Recently, the public account was opened. The subsequent public account will select and sort out the contents recommended by the monthly magazine and publish a series of articles. The monthly magazine will also be published on the official account for immediate reading.

Welcome to follow the HelloGitHub official account for more information and content of open source projects.

The statement

Welcome to reprint, please indicate the source and author, and keep the statement.

eggs

As HelloGitHub’s to-do list grew, we ran short of people. Xueweihan (xueweihan, xueweihan, xueweihan, Xueweihan, Xueweihan, Xueweihan, Xueweihan)

  1. Front-end development: Participated in front-end development of several HG projects. Requirements: Familiar with React and design is preferred. If we have strong learning ability or long-term participation, we can grow together.
  2. Operation: Responsible for account operation and content synchronization of various platforms (skilled in technology, humorous in language, female preferred)
  3. Recruitment of monthly column leader: strong technical ability of relevant column (more than 2 years of working experience), and pay attention to open source trends. No responsible columns: C, C#, PHP, Apple client, Android client, Rust, Java

Interest, love of programming brings us together, so let’s see what we can do?