2025-08-05 13:24:21

This commit is contained in:
swangnice
2025-08-05 13:24:21 +08:00
parent 64eed4e7ce
commit 8a920994bf
268 changed files with 8347 additions and 15561 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -6,6 +6,8 @@ theme = "blowfish"
baseURL = "https://swangnice.com/" baseURL = "https://swangnice.com/"
defaultContentLanguage = "en" defaultContentLanguage = "en"
disableLiveReload = true
enableRobotsTXT = true enableRobotsTXT = true
[pagination] [pagination]
pagerSize = 20 pagerSize = 20

View File

@@ -9,12 +9,12 @@
# By default the menu is ordered alphabetically. This can be # By default the menu is ordered alphabetically. This can be
# overridden by providing a weight value. The menu will then be # overridden by providing a weight value. The menu will then be
# ordered by weight from lowest to highest. # ordered by weight from lowest to highest.
# About
[[main]] [[main]]
name = "Home" identifier = "about"
url = "/en/" name = "About"
weight = 1 pageRef = "/about/"
weight = 10
# Notes # Notes
[[main]] [[main]]

View File

@@ -10,6 +10,12 @@
# overridden by providing a weight value. The menu will then be # overridden by providing a weight value. The menu will then be
# ordered by weight from lowest to highest. # ordered by weight from lowest to highest.
[[main]]
identifier = "about"
name = "关于"
pageRef = "/zh-cn/about/"
weight = 10
# Notes # Notes
[[main]] [[main]]
identifier = "notes" identifier = "notes"

View File

@@ -0,0 +1,5 @@
+++
title = 'About'
date = 2024-09-20T04:17:50Z
draft = false
+++

View File

@@ -0,0 +1,5 @@
+++
title = 'Rest Here'
date = 2024-09-20T04:17:50Z
draft = false
+++

View File

@@ -0,0 +1,23 @@
+++
title = 'Travels'
date = 2024-09-20T04:17:50Z
draft = false
+++
## Preview
2025 graduation road trip, Las Vegas -> Grand Canyon -> Yellowstone -> Seattle -> CA-1 -> Las Vegas
{{< gallery >}}
<img src="https://photo.swangnice.cn/api/assets/7609e40d-585b-4b6e-a7f2-dae2991f7a50/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=n%2FcVHYJ4eHePd3iGd3eIiGeAeQWp" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/4b1921f9-c1ea-4422-b7a8-c6f0044d7d45/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=jtYFLYZdd3fNiHiFeAeHcoRgTAi2" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/62292afd-bc31-4ade-bae0-de91539de284/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=thumbnail&c=nfcJLYQtdlpbqmeHZ%2Fh4jIdwhAc2" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/b2622f51-5067-47f9-854a-40b606cdcfb7/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=thumbnail&c=V9cNRYZoh3d%2FiHeKdzeHhXeAhQdX" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/26ad4345-65df-4fa0-abcd-177ede9b686d/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=thumbnail&c=Z%2FcJHYJZiHeQeHhoiJeGd3iAkgc4" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/01d4cf9d-f0bd-4983-87ed-b14fbb4867c6/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=thumbnail&c=GecJPYZniHeKeIiIeAeHh3iAdweI" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/3e486186-7717-40a0-9c94-25123d54da39/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=lOcFPQRnd393SIkYh3Oot3iAdgdY" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/414035f5-c42a-4a98-b5ce-63abc0546ffd/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=njgOFQZ6iJ%2BI53eHeGaIh3ZgYVcG" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/08d736c3-2e01-4d77-ae21-424385eaa3cb/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=ZgcKJYRniIiPZ4eEeGaGh3twywe3" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/c1307d7f-a167-40c2-ba3f-a93fbed8afa6/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=nhcOLQh4iI%2BIl4dIh4aIiHiAeAeI" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/f2699861-cd57-4da8-b7b8-4777507b5cc3/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=RwgGDYJHdqqRh4hwi6iGfFhwdpcI" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/8163d339-eabb-4bcd-94bb-2ed5cb785092/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=2xcSJYRZh3iPhoeLiHeHeJhwpghl" class="grid-w33" />
{{< /gallery >}}

View File

@@ -2,6 +2,7 @@
title = 'Coding' title = 'Coding'
date = 2024-09-20T04:17:50Z date = 2024-09-20T04:17:50Z
draft = false draft = false
weight = 90
+++ +++

View File

@@ -0,0 +1,62 @@
+++
title = 'Git'
date = 2024-09-20T04:17:50Z
draft = false
+++
## Submodule
## Commit
1. Add date and time in commit messages:
``` bash
git commit -m "$(date '+%Y-%m-%d %H:%M:%S')"
```
## Remote
Check the remote url:
``` bash
git remote -v
```
If the remote url existing, set a new one:
``` bash
git remote set-url origin <new_remote_address>
```
A Trick: you can connect your local repo to 2 remote repos:
``` bash
git remote add public https://<git_domain>/<username>/project-public.git
git remote add private https://<git_domain>/<username>/project-private.git
```
## Branch
List all branches:
``` bash
git branch -a
```
Move to a specific branch, the branch where you are currently working is marked with an asterisk (*):
``` bash
git checkout <branch_name>
```
Create a new branch and switch to it:
``` bash
git checkout -b <new_branch_name>
```
## Push
Let us break down the push command:
``` bash
git push origin main
```
, where `origin` is the remote name and `main` is the branch name. If you want to push to a different remote or branch, just replace them accordingly.
More advanced usage:
``` bash
git push <remote_name> <local_branch_name>:<remote_branch_name>
```

View File

@@ -1,14 +0,0 @@
+++
title = 'Git'
date = 2024-09-20T04:17:50Z
draft = false
+++
## submodule
## Commit
1. Add date and time in commit messages:
``` bash
git commit -m "$(date '+%Y-%m-%d %H:%M:%S')"
```

View File

@@ -0,0 +1,11 @@
+++
title = "MCU's Story"
date = 2024-09-20T04:17:50Z
draft = false
weight = 100
+++
Here are some insights from my experiences with MCUs. Additionally, you can find my personal MCU benchmark site [here](https://mcubenchmark.swangnice.cn).

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

View File

@@ -0,0 +1,15 @@
+++
title = 'PDF Collection'
date = 2024-09-20T04:17:50Z
draft = false
weight = 100
+++
I have created a PDF collection ([PDFDing](/projects/self_host/mac_mini_m4/05_pdf_shelf)) for individual PDF files primarily for personal use. Additionally, I will share my personal notes in PDF format. The theme I am using does not support Ketax well (it renders slowly on poor connections), and since my notes contain many equations, PDF is the best option. I plan to upload my notes on a weekly or monthly basis. Here are the details:
## Handwritten

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

View File

@@ -0,0 +1,152 @@
+++
title = 'A pet feeder'
date = 2024-09-20T04:17:50Z
draft = false
+++
<!-- - [1. Video Presentation](#1-video-presentation)
- [2. Project Summary](#2-project-summary)
- [Device Description](#device-description)
- [Inspiration](#inspiration)
- [Device Functionality](#device-functionality)
- [Challenges](#challenges)
- [Prototype Learnings](#prototype-learnings)
- [Next Steps](#next-steps)
- [Takeaways from ESE5160](#takeaways-from-ese5160)
- [Project links](#project-links)
- [3. Hardware \& Software Requirements](#3-hardware--software-requirements)
- [Hardware Requirements](#hardware-requirements)
- [Software Requirements](#software-requirements)
- [4. Project Photos \& Screenshots](#4-project-photos--screenshots) -->
## 1. Project Photos & Screenshots
The final project photo.
![final](Pic/finalproject.jpg)
The standalone PCBA, top.
![top](Pic/pcbtop.jpg)
The standalone PCBA, bottom.
![bottom](Pic/pcbbottom.jpg)
Thermal camera images while the board is running under load.
![thermal](Pic/thermal.jpg)
The Altium Board design in 2D view.
![2D](Pic/board2D.png)
The Altium Board design in 3D view.
![3D](Pic/board3D.png)
Node-RED dashboard
![dashboard](Pic/dashboard.png)
Node-RED backend
![backend](Pic/backend.png)
Block diagram of the system.
![block](Pic/blockdiagram.png)
## 2. Project Summary
### Device Description
1. SG90 Servo Motor
The servo motor is used to turn on and off the food storage. It is much more complicated than we expected when we implemented the drivers by ourselves. Since the rotation of the servo angle is controlled by the PWM signals which are generated by the TCC/TC timer counter, not all MCU pins are attached to this function. Fortunately, the pin PA11 we assigned has the TCC1 counter. After the successful generation of the PWM signal, the next problem is how to verify the duty cycle after the system initialization. Once we change the `compare_match` in the `tcc_configure` process, the whole system will get stuck and cashed. We solved it by using the `tcc_set_compare_value` function, where we can change the PWM length by calculating the required timer counter ticks based on the datasheet parameters.
2. Load Cell with NAU7802 ADC
The load cell is used to measure the weight data and the ADC is used to convert the raw data to the real value, which is communicated with the MCU through the I2C protocol. The problem with this device is that there are numerous registers in the datasheet, which is necessary to find out how to assign them correctly. This is the essential part of the ADC chip working because the wrong initialization of the registers will lead to the unsuccessful value read. After figuring out the correct presetting of the ADC, the calibration and handling of raw data is also a huge problem. In the end, though the real weight converting is still not so accurate, we at least can measure the load cell value with the correct tendency.
3. ST7735 LCD TFT Screen
The LCD screen is used to display the weight data measured from the load cell, which is connected to the SAMW25 chip by SPI communication. Although we learned the basic initialization and LCD function in the ESE5190 class last semester, we still met unexpected problems in SPI configuration. The SCK and MOSI pins must be under the same SERCOM, and need to be defined with the `CONF_MASTER_PINMUX_PAD`.
4. Internet Augment
Enable users to control and monitor the device remotely through a web or mobile application. This could involve turning devices on/off(SG90 motor), adjusting settings, or receiving real-time data updates from sensors(load cell). Utilize cloud services to store data collected by the device. This data can then be analyzed to provide insights, trends, or predictive maintenance alerts. Cloud platforms like AWS, Google Cloud, or Microsoft Azure(used in this project) offer various tools for data storage, processing, and analysis. Implement FOTA capabilities to remotely update device firmware. This ensures that devices can receive bug fixes, security patches, or new features without requiring physical access or manual intervention.
### Inspiration
The project is inspired by my friend who has a cute but hungry cat. We need to feed it two or three times per day, but we are very busy studying on campus. Therefore, we want to design a pet feeder that can provide food for the cat at home while we are studying in school.
1. Remote Feeding: Create a system that allows pet owners to feed their pets remotely using a mobile app or web interface. This could be particularly useful for pet owners who are away from home for extended periods.
2. Scheduled Feeding: Implement scheduling functionality that enables pet owners to set specific times for automatic feeding. This ensures that pets receive their meals on time, even when their owners are busy or away.
3. Portion Control: Incorporate portion control features that allow pet owners to dispense precise amounts of food for each feeding. This helps prevent overfeeding or underfeeding and ensures that pets receive the appropriate amount of nutrition.
4. Customizable Diet Plans: Provide pet owners with the ability to create customized diet plans tailored to their pets' specific dietary needs and preferences. This could involve setting different portion sizes or types of food for each meal.
5. Food Monitoring: Integrate sensors or cameras to monitor food levels in the feeder and send alerts when it's time to refill. This helps ensure that pets always have access to food and prevents them from going hungry.
### Device Functionality
The device operation logic is described as follows: The user can press the servo button on the website to control the on/off food storage. Once the food is dropped, the load cell will measure the weight data and upload it to the cloud and process, which is visible on the website. Also, the weight information will be sent to the LCD screen to show the total weight of the food.
### Challenges
We encountered a lot of unexpected problems on this project both in hardware and software.
1. We want to use the TCC timer counter to generate the PWM signal, but we met the problem that once the timer counter compare match value is set in system initialization, it is hard to modify later to change the rotation angle of the motor. We solved it by using the `tcc_set_compare_value` function.
2. Initially, we prepared to use an ultrasonic distance sensor HC-SR04 to detect the location of the pets. We previously thought that this sensor simply needs two GPIO to control, but it needs the trig and echo pin applied with the PWM signals. Unfortunately, the pins we assigned for the trig and echo pins have no TCC counter attached, which cannot support the PWM signal generation. So we cancel this sensor in the end.
3. We met the design problem of connecting the I2C pins `SCL` and `SDA` in the wrong direction, and I attached the `SCL` signal to the PA08 and the `SDA` signal to the PA09. I first wanted to change the codes to solve this problem, but we found that it was hard to achieve since all the pin functions are set as the starter project. Finally, it was solved by disconnecting the I2C jumpers and resoldering the correct connections to make the I2C device work.
### Prototype Learnings
1. We gained extensive knowledge about testing methodologies, testing from the specific region to the entire system. We first tested the function of two power regulators, first testing the boost converter, and then the buck converter. After making sure both the converters are outputting the correct voltage, we tested the whole power module is working. We implemented lots of 0Ohm resistors as jump wires, which proved instrumental in facilitating the measurement of various system components' performance, particularly those that had not been previously explored. Our exposure to standardized testing methodologies has furnished us with invaluable insights and skills that will prove beneficial in our future endeavors.
2. If given the chance to redesign, we might opt to swap out the 0805 packages with the 0603 as it offers better accessibility for measurement purposes. Alternatively, we could incorporate additional test points into the design. Additionally, we aspire to refine the board's layout to make it more compact and increase its density.
### Next Steps
1. We can add more useful functions to the project, such as including a motor driver(DRV8801/DRV8803) to control the water pump, which can provide the pet with not only food but also water to drink.
2. We can implement the feedback control algorithm to add another feeding mode that always fills the food with the fixed value, which will provide the pet the enough food to eat.
### Takeaways from ESE5160
We acquired a wealth of invaluable knowledge throughout our project journey. From the intricacies of PCBA design to the intricacies of programming and firmware uploading, each step presented its own set of challenges and learning opportunities. Notably, we gained significant insights into PCB design and the utilization of FreeRTOS. Additionally, we deepened our understanding of I2C and SPI protocols, which honed our skills in unit testing and debug-thinking, further enriching our learning experience.
### Project links
The Node-RED instance link:
http://68.154.49.115:1880/ui/#!/0?socketid=DRc2CLKWRofETc06AAAW
The code repository link:
https://github.com/ese5160/a12g-firmware-drivers-t19-pet-feeder/tree/main/Final_submission
The Altium 365 link:
https://upenn-eselabs.365.altium.com/designs/EA1CCED6-8C54-4405-B127-DA898DF3EFB7#design
## 3. Hardware & Software Requirements
### Hardware Requirements
1. Overview of Hardware Components:
The hardware aspect of the project comprised several components including the SAMW25 MCU, load cells, ultrasonic distance sensor, servo motor, and LCD display.
2. Description of Components:
Each component was carefully selected and described in detail, specifying its functionality, datasheet references, and purpose within the project.
The load cells were intended to measure food weight, while the ultrasonic distance sensor aimed to detect the pet's position. The servo motor controlled the food release mechanism, and the LCD display provided real-time information.
3. Functionality:
Most hardware components, such as the load cells, servo motor, and LCD display, operated as intended and aligned with the project's specifications.
However, the distance sensor encountered issues, failing to accurately measure distance or provide reliable data regarding pet position.
4. Potential Causes of Sensor Failure:
The failure of the distance sensor was attributed to hardware malfunction: incorrect wiring with compatibility issues with the MCU.
5. Mitigation Steps Taken:
Throughout the semester, efforts were made to troubleshoot and resolve the issue with the distance sensor, including checking connections, reconfiguring setups, and reviewing software implementations.
6. Outcome:
Despite troubleshooting attempts, the distance sensor remained non-functional by the end of the semester, posing a notable challenge to the project's completeness.
### Software Requirements
1. Overview of Software Architecture:
The software aspect of the project operated in two parts: one on the MCU for data processing and actuation, and the other on the cloud or MCU acting as a web server for user interaction.
MQTT facilitated communication between these two parts.
2. Functionality:
The software fulfilled specified functionalities outlined in the Software Requirements Specification (SRS), including bootloader initialization, main loop operation, sensor data handling, actuator control, LCD display, MQTT configuration, and web app features.
3. User Interface:
The web app provided a user-friendly interface accessible via phone or laptop, displaying machine/environment status and offering buttons for sending instructions.
4. Integration with Hardware:
The software successfully integrated with hardware components, collecting data from sensors, operating actuators based on certain conditions, and receiving messages through MQTT.
5. Testing and Validation:
Throughout development, rigorous testing and validation procedures were implemented to ensure software functionalities operated as intended and aligned with project requirements.
6. Outcome:
Despite challenges with the distance sensor, the software aspect of the project functioned effectively, meeting user needs and providing a seamless interaction experience.
In conclusion, while the hardware aspect faced challenges with the distance sensor, the software aspect operated successfully, fulfilling specified requirements and ensuring the project's overall functionality and usability.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

BIN
content/en/projects/self_host/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -48,7 +48,7 @@ while true; do
ping -c 1 <ip address> > /dev/null 2>&1 ping -c 1 <ip address> > /dev/null 2>&1
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
pkill -f autossh pkill -f autossh
autossh -M 0 -f -N -R 0.0.0.0:9000:localhost:1313 <ip address> autossh -M 0 -f -N -R 0.0.0.0:1313:localhost:1313 <ip address>
fi fi
sleep 60 sleep 60
done done
@@ -63,7 +63,7 @@ server {
server_name www.<your domain> <your domain>; server_name www.<your domain> <your domain>;
location / { location / {
proxy_pass http://localhost:9000; proxy_pass http://localhost:1313;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@@ -71,6 +71,13 @@ server {
} }
``` ```
Then, link the config file to `sites-enabled`, check and reload the Nginx configuration:
```
ln -s /etc/nginx/sites-available/<your config file> /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
```
To obtain a security certificate, use the certbot: To obtain a security certificate, use the certbot:
``` ```
sudo apt update sudo apt update

View File

@@ -21,7 +21,7 @@ Still, none of the other options really fit my expectations either. One day, I m
diskutil list diskutil list
``` ```
Solution: HFS+ + SMB3.0 客户端设置“延迟加载目录”或“按需索引”
```diskutil list``` ```diskutil list```

View File

@@ -13,11 +13,7 @@ brew install git
brew install gitea brew install gitea
``` ```
Start the configuration page of Gitea: ## The database
```
gitea web
```
Install MySQL: Install MySQL:
``` ```
brew install mysql brew install mysql
@@ -28,6 +24,7 @@ Login MySQL and create the database and user:
``` ```
mysql -u root mysql -u root
``` ```
Then, execute: Then, execute:
``` ```
CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
@@ -36,8 +33,23 @@ GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES; FLUSH PRIVILEGES;
``` ```
## Config the Gitea
Start the configuration page of Gitea:
```
gitea web
```
After filling all information it required, it will generate a config file, for me, it's in`/opt/homebrew/var/gitea/custom/conf/app.ini`, then you can configure more details in this file. I strongly recommend close the public registration.
🚫outdated -- Use autossh to build the new connection
```
autossh -M 0 -f -N \
-i ~/.ssh/id_ed25519 \
-o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" \
-R 127.0.0.1:3000:localhost:3000 \
-R 127.0.0.1:9000:localhost:1313 \
root@<ip_address>
```
✅ Now I wrote a script to keep the connection alive, it contains some sensitive info like IP and ports, so I will not share it here.
CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'gitea';
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES;

View File

@@ -0,0 +1,67 @@
+++
title = 'MCU Benchmark'
date = 2024-09-20T04:17:50Z
draft = false
series = ["My First Server in Room"]
series_order = 4
weight = 40
+++
{{< gitea server="https://code.swangnice.cn" repo="swangnice/mcu-benchmark" >}}
This is a personal project to benchmark various MCUs (Microcontroller Units) using FastAPI and SQLite for the backend and Vue.js for the frontend. The project allows you to add, list, and compare different MCUs.
You can access the project at [HERE](https://mcubenchmark.swangnice.cn).
```
mcubenchmark/
├── backend/
│ ├── main.py # FastAPI Entrance
│ ├── database.py # SQLite Base operations
│ ├── admin.py # SQLite CURD
│ └── mcu.db
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── views/
│ │ │ ├── ListView.vue
│ │ │ ├── DetailView.vue
│ │ │ └── CompareView.vue
│ │ ├── App.vue
│ │ └── main.js
├── README.md
└── requirements.txt
```
## How to use?
Clone this repo, and install the requirements:
```bash
cd mcu-benchmark
conda create -n mcu-benchmark
conda activate mcu-benchmark
pip install -r requirements.txt
```
Then, start the backend server:
```bash
cd backend
uvicorn main:app --host 0.0.0.0 --port 3010 --reload
```
Use `admin.py` and follow the instructions to add MCUs to the database:
```
python admin.py
```
Now, you can access the backend API at `http://localhost:3010/api/mcus`.
Run the frontend (before this step, you need to install Node.js, npm and other dependencies):
```bash
cd backend
npm run dev
```
Now, you can access the frontend at `http://localhost:<port>`. The default port of Vite is `5173`.

View File

@@ -0,0 +1,69 @@
+++
title = 'My Own PDF Shelf: pdfding on Mac Mini'
date = 2024-09-20T04:17:50Z
draft = false
series = ["My First Server in Room"]
series_order = 5
weight = 50
+++
PDFding is a self-hosted PDF library management system, which is perfect for managing my personal PDF collection. It allows me to organize, search, and read PDFs directly from my Mac Mini. Later I will list a contents of my PDF library, if you need any of them, just email me. No commercial use, please.
## Install Docker and Prepare Directories
Download [Docker Desktop](https://www.docker.com/products/docker-desktop/), and install it.
```bash
mkdir -p <where you like>/pdfding/{data,media}
chmod a+w <where you like>/pdfding/{data,media}
cd <where you like>/pdfding/
```
data is used to store the database, media is used to store the PDF files.
## Build the Container
```
docker run --name pdfding \
-p <port>:<port> \
-v ./db:/home/nonroot/pdfding/db -v ./media:/home/nonroot/pdfding/media \
-e HOST_NAME=127.0.0.1,<your_domain> -e SECRET_KEY=<you_key> -e CSRF_COOKIE_SECURE=FALSE -e SESSION_COOKIE_SECURE=FALSE \
-d \
mrmn/pdfding:latest
```
Then, you should be able to access the PDFding web interface at `http://localhost:<port>`.
## Create an Account and Disable Registration
If it's your first time using PDFding, you will need to create an account. After that, I strongly recommend disabling the public registration to prevent unauthorized access. You can do this by editing the `/home/nonroot/pdfding/users/views.py` file in the container.
```
docker cp pdfding:/home/nonroot/pdfding/users/views.py ./views.py
```
Then, find a function named `PdfDingSignupView`, change it:
```python
from django.http import HttpResponseForbidden
@method_decorator(login_not_required, name="dispatch")
class PdfDingSignupView(SignupView):
"""
Overwrite allauths signup to be accessed without being logged in
"""
@login_not_required
def dispatch(self, request, *args, **kwargs):
#return super(PdfDingSignupView, self).dispatch(request, *args, **kwargs)
return HttpResponseForbidden("Registration is disabled by the administrator.")
```
Then, copy it back to the container:
```bash
docker cp ./views.py pdfding:/home/nonroot/pdfding/users/views.py
```
Finally, restart the container:
```
docker restart pdfding
```

View File

@@ -0,0 +1,40 @@
+++
title = 'My Own Photo Server: Immich on Mac Mini'
date = 2024-09-20T04:17:50Z
draft = false
series = ["My First Server in Room"]
series_order = 6
weight = 60
+++
Immich is a self-hosted photo and video management solution that allows you to organize, share, and access your media files from anywhere. It provides features like automatic backups, facial recognition, and easy sharing options.
## Installation
Follow the official [Immich installation guide](https://immich.app/docs/overview/quick-start) for detailed instructions. Below is a quick overview of the steps to get started.
```
cd <where you like>
mkdir ./immich-app
cd ./immich-app
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
cp example.env .env
```
Edit the `.env` file to set your desired configuration options, such as database settings and server URLs. Make sure to set the `APP_URL` to your server's URL.
Then, run the following command to start Immich:
```bash
docker compose up -d
```
Then Enjoy!!!
## Quote Photos in Hugo page
1. Share the photo using Immich.
2. Navigate to `Sharing` > `Shared links` and select the tab corresponding to your shared content.
3. Open the web developer tools by pressing `F12`, then click on the photo you wish to quote.
4. In the `Network` tab, locate the request that displays the image preview and copy the URL. This URL should resemble `https://your-immich-domain.cn/api/assets/xxxxxxxxx/thumbnail?key=xxxxxxxxxxx=preview&c=xxxxxxxxx`.

View File

@@ -1,7 +1,7 @@
+++ +++
title = 'StockBot' title = 'StockBot'
date = 2024-09-20T04:17:50Z date = 2024-09-20T04:17:50Z
draft = false draft = true
tags = ["Private", "Ongoing", "Original", "AI"] tags = ["Private", "Ongoing", "Original", "AI"]
weight = 10 weight = 10
+++ +++

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -157,10 +157,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -281,7 +281,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -580,10 +580,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -707,9 +707,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -8,16 +8,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Webpage &middot; SWangNice</title> <title>About &middot; SWangNice</title>
<meta name="title" content="Webpage &middot; SWangNice" /> <meta name="title" content="About &middot; SWangNice" />
<meta name="description" content="My awesome website (English)" /> <meta name="description" content="My awesome website (English)" />
<link rel="canonical" href="http://localhost:1313/tags/webpage/" /> <link rel="canonical" href="http://localhost:1313/about/" />
<link rel="alternate" type="application/rss+xml" href="/tags/webpage/index.xml" title="SWangNice" /> <link rel="alternate" type="application/rss+xml" href="/about/index.xml" title="SWangNice" />
@@ -28,8 +28,8 @@
<link type="text/css" rel="stylesheet" href="/css/main.bundle.min.36c3cd7950e4533fa7da3150d972e3edf34d07f83c0264ff04cad0969dfdb3b8a7065b0ed6c730c6d34a7bad516cfc6f6a5917ab1fdb10b25f481f8a17b54c16.css" <link type="text/css" rel="stylesheet" href="/css/main.bundle.min.3d98b0e3c7886b2be13facfb539c8f79843dd3cff84d1c41763deb363c668c308c7c7ac9ecb3923f8602e257866ff553de4228ff50492074acc6d07b3d232fb1.css"
integrity="sha512-NsPNeVDkUz&#43;n2jFQ2XLj7fNNB/g8AmT/BMrQlp39s7inBlsO1scwxtNKe61RbPxvalkXqx/bELJfSB&#43;KF7VMFg==" /> integrity="sha512-PZiw48eIayvhP6z7U5yPeYQ908/4TRxBdj3rNjxmjDCMfHrJ7LOSP4YC4leGb/VT3kIo/1BJIHSsxtB7PSMvsQ==" />
<script type="text/javascript" src="/js/appearance.min.516a16745bea5a9bd011138d254cc0fd3973cd55ce6e15f3dec763e7c7c2c7448f8fe7b54cca811cb821b0c7e12cd161caace1dd794ac3d34d40937cbcc9ee12.js" <script type="text/javascript" src="/js/appearance.min.516a16745bea5a9bd011138d254cc0fd3973cd55ce6e15f3dec763e7c7c2c7448f8fe7b54cca811cb821b0c7e12cd161caace1dd794ac3d34d40937cbcc9ee12.js"
@@ -45,8 +45,8 @@
<script defer type="text/javascript" id="script-bundle" src="/js/main.bundle.min.52b8d61b061c90a738102a0eac69eaa1479fdf5de882a0b0741d7515240617156a6c4477fcc91f9c962062804fe62d2932bb9f57d0aded208c762c2e1ed2e202.js" <script defer type="text/javascript" id="script-bundle" src="/js/main.bundle.min.f8f2cec11308434554dfdbe3a0963bc19265192ebb9e2d644f3f9250731c879dfb09b44d2d58fcd06e8a1c9051b57f594719b37d21689d366ffd2db050df40a0.js"
integrity="sha512-UrjWGwYckKc4ECoOrGnqoUef313ogqCwdB11FSQGFxVqbER3/MkfnJYgYoBP5i0pMrufV9Ct7SCMdiwuHtLiAg==" data-copy="Copy" data-copied="Copied"></script> integrity="sha512-&#43;PLOwRMIQ0VU39vjoJY7wZJlGS67ni1kTz&#43;SUHMch537CbRNLVj80G6KHJBRtX9ZRxmzfSFonTZv/S2wUN9AoA==" data-copy="Copy" data-copied="Copied"></script>
@@ -66,16 +66,16 @@
<meta property="og:url" content="http://localhost:1313/tags/webpage/"> <meta property="og:url" content="http://localhost:1313/about/">
<meta property="og:site_name" content="SWangNice"> <meta property="og:site_name" content="SWangNice">
<meta property="og:title" content="Webpage"> <meta property="og:title" content="About">
<meta property="og:description" content="My awesome website (English)"> <meta property="og:description" content="My awesome website (English)">
<meta property="og:locale" content="en"> <meta property="og:locale" content="en">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Webpage"> <meta name="twitter:title" content="About">
<meta name="twitter:description" content="My awesome website (English)"> <meta name="twitter:description" content="My awesome website (English)">
@@ -159,10 +159,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -173,7 +173,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a href="/notes/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/notes/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Notes">
Notes Notes
</a> </a>
<span> <span>
@@ -225,12 +225,56 @@
<a href="/projects/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <div>
<div class="cursor-pointer flex items-center nested-menu">
<p class="text-base font-medium" title=""> <a href="/projects/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Projects">
Projects Projects
</p> </a>
</a> <span>
<span class="relative block icon">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
aria-hidden="true"
>
<path
fill-rule="evenodd"
d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z"
clip-rule="evenodd"
/>
</svg>
</span>
</span>
</div>
<div class="absolute menuhide">
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3">
<a href="/projects/embedded/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title="">
Fancy Things on Boards
</p>
</a>
<a href="/projects/self_host/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title="">
Self-host
</p>
</a>
</div>
</div>
</div>
</div>
@@ -239,7 +283,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -468,10 +512,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -485,7 +529,7 @@
<li class="mt-1"> <li class="mt-1">
<a href="/notes/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/notes/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Notes">
Notes Notes
</p> </p>
<span> <span>
@@ -539,14 +583,55 @@
<li class="mt-1"> <li class="mt-1">
<a href="/projects/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/projects/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Projects">
Projects Projects
</p> </p>
<span>
<span class="relative block icon">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
aria-hidden="true"
>
<path
fill-rule="evenodd"
d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z"
clip-rule="evenodd"
/>
</svg>
</span>
</span>
</a>
</li>
<li class="mt-1">
<a href="/projects/embedded/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title="">
Fancy Things on Boards
</p>
</a> </a>
</li> </li>
<li class="mt-1">
<a href="/projects/self_host/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title="">
Self-host
</p>
</a>
</li>
<li class="mb-2"></li>
@@ -554,9 +639,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -681,7 +766,7 @@
<header> <header>
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Webpage</h1> <h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">About</h1>
<div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden"> <div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
@@ -712,167 +797,38 @@
</div> </div>
<script>
var oid = "views_about\/_index.md"
var oid_likes = "likes_about\/_index.md"
</script>
<script type="text/javascript" src="/js/page.min.0860cf4e04fa2d72cc33ddba263083464d48f67de06114529043cb4623319efed4f484fd7f1730df5abea0e2da6f3538855634081d02f2d6e920b956f063e823.js" integrity="sha512-CGDPTgT6LXLMM926JjCDRk1I9n3gYRRSkEPLRiMxnv7U9IT9fxcw31q&#43;oOLabzU4hVY0CB0C8tbpILlW8GPoIw=="></script>
</header> </header>
<section class="mt-0 prose flex max-w-full flex-col dark:prose-invert lg:flex-row">
<section class="flex flex-col max-w-full mt-0 mb-5 prose dark:prose-invert lg:flex-row"> <div class="min-w-0 min-h-0 max-w-prose">
</section>
<section class="space-y-10 w-full">
<a class="flex flex-wrap md:flex-nowrap article border border-neutral-200 dark:border-neutral-700 border-2 rounded-md overflow-hidden" href="/projects/self_host/stock_bot/">
<div class="w-full md:w-auto h-full thumbnail nozoom " style="background-image:url(/projects/self_host/stock_bot/feature_hu15309324853505185147.png);"></div>
<div class=" p-4">
<div class="items-center text-left text-xl font-semibold">
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/projects/self_host/stock_bot/">StockBot</div>
</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
<div class="flex flex-row flex-wrap items-center">
<span>1 word</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>
</div>
<div class="flex flex-row flex-wrap items-center">
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/hugo/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Hugo
</span>
</span>
</span>
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/static-server/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Static Server
</span>
</span>
</span>
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/webpage/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Webpage
</span>
</span>
</span>
</div>
</div>
</div> </div>
</a>
</section> </section>
<section class="mt-10 prose dark:prose-invert">
<p class="py-8 border-t">
<em>There are no articles to list here yet.</em>
</p>
</section>
@@ -888,7 +844,7 @@
<li class="flex mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"> <li class="flex mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href="/tags/" <a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href="/tags/"
title=""> title="Tags">
Tags Tags
</a> </a>
@@ -910,6 +866,14 @@
<p class="text-sm text-neutral-500 dark:text-neutral-400">
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">
苏ICP备2024145451号
</a>
</p>
<p class="text-xs text-neutral-500 dark:text-neutral-400"> <p class="text-xs text-neutral-500 dark:text-neutral-400">

13
public/about/index.xml Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>About on SWangNice</title>
<link>http://localhost:1313/about/</link>
<description>Recent content in About on SWangNice</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
<copyright>© 2025 SWang</copyright>
<lastBuildDate>Fri, 20 Sep 2024 04:17:50 +0000</lastBuildDate><atom:link href="http://localhost:1313/about/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<title>http://localhost:1313/tags/private/</title> <title>http://localhost:1313/about/</title>
<link rel="canonical" href="http://localhost:1313/tags/private/"> <link rel="canonical" href="http://localhost:1313/about/">
<meta name="robots" content="noindex"> <meta name="robots" content="noindex">
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/private/"> <meta http-equiv="refresh" content="0; url=http://localhost:1313/about/">
</head> </head>
</html> </html>

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -159,10 +159,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -283,7 +283,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -582,10 +582,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -709,9 +709,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -159,10 +159,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -283,7 +283,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -582,10 +582,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -709,9 +709,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>

View File

@@ -8,22 +8,6 @@
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
<priority>0.5</priority> <priority>0.5</priority>
</url> </url>
<url>
<loc>http://localhost:1313/projects/self_host/stock_bot/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
<xhtml:link
rel="alternate"
hreflang="zh-CN"
href="http://localhost:1313/zh-cn/projects/self_host/stock_bot/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://localhost:1313/projects/self_host/stock_bot/"
/>
</url>
<url> <url>
<loc>http://localhost:1313/projects/self_host/stock_bot/01_todo/</loc> <loc>http://localhost:1313/projects/self_host/stock_bot/01_todo/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod> <lastmod>2024-09-20T04:17:50+00:00</lastmod>
@@ -68,6 +52,46 @@
href="http://localhost:1313/projects/self_host/stock_bot/02_results/" href="http://localhost:1313/projects/self_host/stock_bot/02_results/"
/> />
</url> </url>
<url>
<loc>http://localhost:1313/projects/self_host/mac_mini_m4/03_gitea/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:1313/projects/self_host/mac_mini_m4/04_mcu_markbench/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:1313/projects/self_host/mac_mini_m4/05_pdf_shelf/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:1313/projects/self_host/mac_mini_m4/06_photo_server/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:1313/notes/coding/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
<xhtml:link
rel="alternate"
hreflang="zh-CN"
href="http://localhost:1313/zh-cn/notes/coding/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://localhost:1313/notes/coding/"
/>
</url>
<url> <url>
<loc>http://localhost:1313/projects/embedded/</loc> <loc>http://localhost:1313/projects/embedded/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod> <lastmod>2024-09-20T04:17:50+00:00</lastmod>
@@ -90,6 +114,30 @@
href="http://localhost:1313/projects/self_host/" href="http://localhost:1313/projects/self_host/"
/> />
</url> </url>
<url>
<loc>http://localhost:1313/notes/mcu/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:1313/notes/pdf/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:1313/projects/embedded/pet_feeder/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:1313/about/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url> <url>
<loc>http://localhost:1313/notes/coding/cheat_sheet/c/</loc> <loc>http://localhost:1313/notes/coding/cheat_sheet/c/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod> <lastmod>2024-09-20T04:17:50+00:00</lastmod>
@@ -138,22 +186,6 @@
href="http://localhost:1313/notes/coding/cheat_sheet/" href="http://localhost:1313/notes/coding/cheat_sheet/"
/> />
</url> </url>
<url>
<loc>http://localhost:1313/notes/coding/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
<xhtml:link
rel="alternate"
hreflang="zh-CN"
href="http://localhost:1313/zh-cn/notes/coding/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://localhost:1313/notes/coding/"
/>
</url>
<url> <url>
<loc>http://localhost:1313/notes/coding/cheat_sheet/git/</loc> <loc>http://localhost:1313/notes/coding/cheat_sheet/git/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod> <lastmod>2024-09-20T04:17:50+00:00</lastmod>
@@ -234,4 +266,16 @@
href="http://localhost:1313/notes/coding/cheat_sheet/python/" href="http://localhost:1313/notes/coding/cheat_sheet/python/"
/> />
</url> </url>
<url>
<loc>http://localhost:1313/life/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:1313/life/travel/</loc>
<lastmod>2024-09-20T04:17:50+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</urlset> </urlset>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head> data-auto-appearance="true"><head>
<meta name="generator" content="Hugo 0.148.1"><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> <meta name="generator" content="Hugo 0.148.1">
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -181,10 +181,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -305,7 +305,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -604,10 +604,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -731,9 +731,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>

File diff suppressed because one or more lines are too long

View File

@@ -104,9 +104,19 @@ sudo systemsetup -setdisplaysleep 10 # display will sleep in 10 min
<description>&lt;p&gt;Install dependence of gitea:&lt;/p&gt; <description>&lt;p&gt;Install dependence of gitea:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;brew install git &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;brew install git
brew install gitea brew install gitea
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Start the configuration page of Gitea:&lt;/p&gt; &lt;/code&gt;&lt;/pre&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gitea web
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Install MySQL:&lt;/p&gt; &lt;h2 class=&#34;relative group&#34;&gt;The database
&lt;div id=&#34;the-database&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
&lt;span
class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
style=&#34;text-decoration-line: none !important;&#34; href=&#34;#the-database&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Install MySQL:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;brew install mysql &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;brew install mysql
brew services start mysql brew services start mysql
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Login MySQL and create the database and user:&lt;/p&gt; &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Login MySQL and create the database and user:&lt;/p&gt;
@@ -116,10 +126,105 @@ brew services start mysql
CREATE USER &amp;#39;gitea&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED BY &amp;#39;&amp;lt;yourpassword&amp;gt;&amp;#39;; CREATE USER &amp;#39;gitea&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED BY &amp;#39;&amp;lt;yourpassword&amp;gt;&amp;#39;;
GRANT ALL PRIVILEGES ON gitea.* TO &amp;#39;gitea&amp;#39;@&amp;#39;localhost&amp;#39;; GRANT ALL PRIVILEGES ON gitea.* TO &amp;#39;gitea&amp;#39;@&amp;#39;localhost&amp;#39;;
FLUSH PRIVILEGES; FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; &lt;/code&gt;&lt;/pre&gt;
CREATE USER &amp;lsquo;gitea&amp;rsquo;@&amp;rsquo;localhost&amp;rsquo; IDENTIFIED BY &amp;lsquo;gitea&amp;rsquo;;
GRANT ALL PRIVILEGES ON gitea.* TO &amp;lsquo;gitea&amp;rsquo;@&amp;rsquo;localhost&amp;rsquo;; &lt;h2 class=&#34;relative group&#34;&gt;Config the Gitea
FLUSH PRIVILEGES;&lt;/p&gt;</description> &lt;div id=&#34;config-the-gitea&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
&lt;span
class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
style=&#34;text-decoration-line: none !important;&#34; href=&#34;#config-the-gitea&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Start the configuration page of Gitea:&lt;/p&gt;</description>
</item>
<item>
<title>MCU Benchmark</title>
<link>http://localhost:1313/projects/self_host/mac_mini_m4/04_mcu_markbench/</link>
<pubDate>Fri, 20 Sep 2024 04:17:50 +0000</pubDate>
<guid>http://localhost:1313/projects/self_host/mac_mini_m4/04_mcu_markbench/</guid>
<description>&lt;a id=&#34;gitea-557b8590fb1ca3d7d5e6d0761887bbe0&#34; target=&#34;_blank&#34; href=&#34;https://code.swangnice.cn/swangnice/mcu-benchmark&#34; class=&#34;cursor-pointer&#34;&gt;
&lt;div
class=&#34;w-full md:w-auto pt-3 p-5 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl&#34;&gt;
&lt;div class=&#34;flex items-center&#34;&gt;
&lt;span class=&#34;text-2xl text-neutral-800 dark:text-neutral&#34; style=&#34;margin-right:10px;&#34;&gt;
&lt;span class=&#34;relative block icon&#34;&gt;
&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; xml:space=&#34;preserve&#34; viewBox=&#34;5.67 143.05 628.65 387.55&#34;&gt;&lt;path fill=&#34;currentColor&#34; d=&#34;M115.912 143.075c-6.462 0-13.762.525-22.012 2.325-8.7 1.8-33.5 7.4-53.8 26.9C-4.9 212.4 6.6 276.2 8 285.8c1.7 11.7 6.9 44.2 31.7 72.5 45.8 56.1 144.4 54.8 144.4 54.8s12.1 28.9 30.6 55.5c25 33.1 50.7 58.9 75.7 62 63 0 188.9-.1 188.9-.1s12 .1 28.3-10.3c14-8.5 26.5-23.4 26.5-23.4S547 483 565 451.5c5.5-9.7 10.1-19.1 14.1-28 0 0 55.2-117.1 55.2-231.1-1.1-34.5-9.6-40.6-11.6-42.6-4.1-4.1-9.6-4-9.6-4s-117.2 6.6-177.9 8c-13.267.3-26.433.597-39.5.697l.1 117.002s57.4 24.202 83.1 40.102c3.7 2.3 10.2 6.798 12.9 14.398 2.1 6.1 2 13.101-1 19.301l-61 126.9c-6.2 12.7-21.4 18.1-33.9 12l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5 21.2-17.9 33.8-11.8a5290.322 5290.322 0 0 0 27 12.954c0-36.449-.1-109.053-.1-109.053-29 .4-89.2-2.201-89.2-2.201s-141.4-7.1-156.8-8.5c-4.9-.3-10.525-.825-16.988-.825zm12.188 48.026s7.1 59.399 15.7 94.199c7.2 29.2 24.8 77.7 24.8 77.7s-26.1-3.1-43-9.1c-25.9-8.5-36.9-18.7-36.9-18.7S69.6 321.8 60 295.4c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5 38.5-30c13.8-3.7 31-3.1 31-3.1z&#34;/&gt;&lt;path fill=&#34;currentColor&#34; d=&#34;M326.8 380.1c-8.2.1-15.4 5.8-17.3 13.8-1.9 8 2 16.3 9.1 20 7.7 4 17.5 1.8 22.7-5.4 5.1-7.1 4.3-16.9-1.8-23.1l24-49.1c1.5.1 3.7.2 6.2-.5 4.1-.9 7.1-3.6 7.1-3.6 4.2 1.8 8.6 3.8 13.2 6.1 4.8 2.4 9.3 4.9 13.4 7.3.9.5 1.8 1.1 2.8 1.9 1.6 1.3 3.4 3.1 4.7 5.5 1.9 5.5-1.9 14.9-1.9 14.9-2.3 7.6-18.4 40.6-18.4 40.6-8.1-.2-15.3 5-17.7 12.5-2.6 8.1 1.1 17.3 8.9 21.3 7.8 4 17.4 1.7 22.5-5.3 5-6.8 4.6-16.3-1.1-22.6 1.9-3.7 3.7-7.4 5.6-11.3 5-10.4 13.5-30.4 13.5-30.4.9-1.7 5.7-10.3 2.7-21.3-2.5-11.4-12.6-16.7-12.6-16.7-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3 4.7-9.7 9.4-19.3 14.1-29-4.1-2-8.1-4-12.2-6.1-4.8 9.8-9.7 19.7-14.5 29.5-6.7-.1-12.9 3.5-16.1 9.4-3.4 6.3-2.7 14.1 1.9 19.8l-24.6 50.4z&#34;/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;div
id=&#34;gitea-557b8590fb1ca3d7d5e6d0761887bbe0-full_name&#34;
class=&#34;m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral&#34;&gt;
swangnice/mcu-benchmark
&lt;/div&gt;
&lt;/div&gt;
&lt;p id=&#34;gitea-557b8590fb1ca3d7d5e6d0761887bbe0-description&#34; class=&#34;m-0 mt-2 text-md text-neutral-800 dark:text-neutral&#34;&gt;
A markbench of MCUs to help to you choose the right one.
&lt;/p&gt;</description>
</item>
<item>
<title>My Own PDF Shelf: pdfding on Mac Mini</title>
<link>http://localhost:1313/projects/self_host/mac_mini_m4/05_pdf_shelf/</link>
<pubDate>Fri, 20 Sep 2024 04:17:50 +0000</pubDate>
<guid>http://localhost:1313/projects/self_host/mac_mini_m4/05_pdf_shelf/</guid>
<description>&lt;p&gt;PDFding is a self-hosted PDF library management system, which is perfect for managing my personal PDF collection. It allows me to organize, search, and read PDFs directly from my Mac Mini. Later I will list a contents of my PDF library, if you need any of them, just email me. No commercial use, please.&lt;/p&gt;
&lt;h2 class=&#34;relative group&#34;&gt;Install Docker and Prepare Directories
&lt;div id=&#34;install-docker-and-prepare-directories&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
&lt;span
class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
style=&#34;text-decoration-line: none !important;&#34; href=&#34;#install-docker-and-prepare-directories&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Download &lt;a href=&#34;https://www.docker.com/products/docker-desktop/&#34; target=&#34;_blank&#34;&gt;Docker Desktop&lt;/a&gt;, and install it.&lt;/p&gt;</description>
</item>
<item>
<title>My Own Photo Server: Immich on Mac Mini</title>
<link>http://localhost:1313/projects/self_host/mac_mini_m4/06_photo_server/</link>
<pubDate>Fri, 20 Sep 2024 04:17:50 +0000</pubDate>
<guid>http://localhost:1313/projects/self_host/mac_mini_m4/06_photo_server/</guid>
<description>&lt;p&gt;Immich is a self-hosted photo and video management solution that allows you to organize, share, and access your media files from anywhere. It provides features like automatic backups, facial recognition, and easy sharing options.&lt;/p&gt;
&lt;h2 class=&#34;relative group&#34;&gt;Installation
&lt;div id=&#34;installation&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
&lt;span
class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
style=&#34;text-decoration-line: none !important;&#34; href=&#34;#installation&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Follow the official &lt;a href=&#34;https://immich.app/docs/overview/quick-start&#34; target=&#34;_blank&#34;&gt;Immich installation guide&lt;/a&gt; for detailed instructions. Below is a quick overview of the steps to get started.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd &amp;lt;where you like&amp;gt;
mkdir ./immich-app
cd ./immich-app
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
cp example.env .env
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Edit the &lt;code&gt;.env&lt;/code&gt; file to set your desired configuration options, such as database settings and server URLs. Make sure to set the &lt;code&gt;APP_URL&lt;/code&gt; to your server&amp;rsquo;s URL.&lt;/p&gt;</description>
</item> </item>
@@ -143,42 +248,6 @@ FLUSH PRIVILEGES;&lt;/p&gt;</description>
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="http://localhost:1313/notes/coding/cheat_sheet/cpp/feature.png" /> <media:content xmlns:media="http://search.yahoo.com/mrss/" url="http://localhost:1313/notes/coding/cheat_sheet/cpp/feature.png" />
</item> </item>
<item>
<title>Git</title>
<link>http://localhost:1313/notes/coding/cheat_sheet/git/</link>
<pubDate>Fri, 20 Sep 2024 04:17:50 +0000</pubDate>
<guid>http://localhost:1313/notes/coding/cheat_sheet/git/</guid>
<description>&lt;h2 class=&#34;relative group&#34;&gt;submodule
&lt;div id=&#34;submodule&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
&lt;span
class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
style=&#34;text-decoration-line: none !important;&#34; href=&#34;#submodule&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h2 class=&#34;relative group&#34;&gt;Commit
&lt;div id=&#34;commit&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
&lt;span
class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
style=&#34;text-decoration-line: none !important;&#34; href=&#34;#commit&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Add date and time in commit messages:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;date &lt;span class=&#34;s1&#34;&gt;&amp;#39;+%Y-%m-%d %H:%M:%S&amp;#39;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="http://localhost:1313/notes/coding/cheat_sheet/git/feature.png" />
</item>
<item> <item>
<title>Python</title> <title>Python</title>
<link>http://localhost:1313/notes/coding/cheat_sheet/python/</link> <link>http://localhost:1313/notes/coding/cheat_sheet/python/</link>

View File

@@ -0,0 +1 @@
function _getDefaultPackeryOptions(){return{percentPosition:!0,gutter:5,resize:!0}}(function(){$(window).on("load",function(){let e=[],t=document.querySelectorAll(".gallery");t.forEach(t=>{let n=new Packery(t,_getDefaultPackeryOptions());e.push(n)}),console.groupEnd()})})()

10
public/lib/packery/packery.pkgd.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -8,16 +8,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Static Server &middot; SWangNice</title> <title>Rest Here &middot; SWangNice</title>
<meta name="title" content="Static Server &middot; SWangNice" /> <meta name="title" content="Rest Here &middot; SWangNice" />
<meta name="description" content="My awesome website (English)" /> <meta name="description" content="My awesome website (English)" />
<link rel="canonical" href="http://localhost:1313/tags/static-server/" /> <link rel="canonical" href="http://localhost:1313/life/" />
<link rel="alternate" type="application/rss+xml" href="/tags/static-server/index.xml" title="SWangNice" /> <link rel="alternate" type="application/rss+xml" href="/life/index.xml" title="SWangNice" />
@@ -28,8 +28,8 @@
<link type="text/css" rel="stylesheet" href="/css/main.bundle.min.36c3cd7950e4533fa7da3150d972e3edf34d07f83c0264ff04cad0969dfdb3b8a7065b0ed6c730c6d34a7bad516cfc6f6a5917ab1fdb10b25f481f8a17b54c16.css" <link type="text/css" rel="stylesheet" href="/css/main.bundle.min.3d98b0e3c7886b2be13facfb539c8f79843dd3cff84d1c41763deb363c668c308c7c7ac9ecb3923f8602e257866ff553de4228ff50492074acc6d07b3d232fb1.css"
integrity="sha512-NsPNeVDkUz&#43;n2jFQ2XLj7fNNB/g8AmT/BMrQlp39s7inBlsO1scwxtNKe61RbPxvalkXqx/bELJfSB&#43;KF7VMFg==" /> integrity="sha512-PZiw48eIayvhP6z7U5yPeYQ908/4TRxBdj3rNjxmjDCMfHrJ7LOSP4YC4leGb/VT3kIo/1BJIHSsxtB7PSMvsQ==" />
<script type="text/javascript" src="/js/appearance.min.516a16745bea5a9bd011138d254cc0fd3973cd55ce6e15f3dec763e7c7c2c7448f8fe7b54cca811cb821b0c7e12cd161caace1dd794ac3d34d40937cbcc9ee12.js" <script type="text/javascript" src="/js/appearance.min.516a16745bea5a9bd011138d254cc0fd3973cd55ce6e15f3dec763e7c7c2c7448f8fe7b54cca811cb821b0c7e12cd161caace1dd794ac3d34d40937cbcc9ee12.js"
@@ -45,8 +45,8 @@
<script defer type="text/javascript" id="script-bundle" src="/js/main.bundle.min.52b8d61b061c90a738102a0eac69eaa1479fdf5de882a0b0741d7515240617156a6c4477fcc91f9c962062804fe62d2932bb9f57d0aded208c762c2e1ed2e202.js" <script defer type="text/javascript" id="script-bundle" src="/js/main.bundle.min.f8f2cec11308434554dfdbe3a0963bc19265192ebb9e2d644f3f9250731c879dfb09b44d2d58fcd06e8a1c9051b57f594719b37d21689d366ffd2db050df40a0.js"
integrity="sha512-UrjWGwYckKc4ECoOrGnqoUef313ogqCwdB11FSQGFxVqbER3/MkfnJYgYoBP5i0pMrufV9Ct7SCMdiwuHtLiAg==" data-copy="Copy" data-copied="Copied"></script> integrity="sha512-&#43;PLOwRMIQ0VU39vjoJY7wZJlGS67ni1kTz&#43;SUHMch537CbRNLVj80G6KHJBRtX9ZRxmzfSFonTZv/S2wUN9AoA==" data-copy="Copy" data-copied="Copied"></script>
@@ -66,16 +66,16 @@
<meta property="og:url" content="http://localhost:1313/tags/static-server/"> <meta property="og:url" content="http://localhost:1313/life/">
<meta property="og:site_name" content="SWangNice"> <meta property="og:site_name" content="SWangNice">
<meta property="og:title" content="Static Server"> <meta property="og:title" content="Rest Here">
<meta property="og:description" content="My awesome website (English)"> <meta property="og:description" content="My awesome website (English)">
<meta property="og:locale" content="en"> <meta property="og:locale" content="en">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Static Server"> <meta name="twitter:title" content="Rest Here">
<meta name="twitter:description" content="My awesome website (English)"> <meta name="twitter:description" content="My awesome website (English)">
@@ -159,10 +159,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -173,7 +173,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a href="/notes/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/notes/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Notes">
Notes Notes
</a> </a>
<span> <span>
@@ -225,12 +225,56 @@
<a href="/projects/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <div>
<div class="cursor-pointer flex items-center nested-menu">
<p class="text-base font-medium" title=""> <a href="/projects/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Projects">
Projects Projects
</p> </a>
</a> <span>
<span class="relative block icon">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
aria-hidden="true"
>
<path
fill-rule="evenodd"
d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z"
clip-rule="evenodd"
/>
</svg>
</span>
</span>
</div>
<div class="absolute menuhide">
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3">
<a href="/projects/embedded/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title="">
Fancy Things on Boards
</p>
</a>
<a href="/projects/self_host/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title="">
Self-host
</p>
</a>
</div>
</div>
</div>
</div>
@@ -239,7 +283,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -468,10 +512,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -485,7 +529,7 @@
<li class="mt-1"> <li class="mt-1">
<a href="/notes/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/notes/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Notes">
Notes Notes
</p> </p>
<span> <span>
@@ -539,14 +583,55 @@
<li class="mt-1"> <li class="mt-1">
<a href="/projects/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/projects/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Projects">
Projects Projects
</p> </p>
<span>
<span class="relative block icon">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
aria-hidden="true"
>
<path
fill-rule="evenodd"
d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z"
clip-rule="evenodd"
/>
</svg>
</span>
</span>
</a>
</li>
<li class="mt-1">
<a href="/projects/embedded/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title="">
Fancy Things on Boards
</p>
</a> </a>
</li> </li>
<li class="mt-1">
<a href="/projects/self_host/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title="">
Self-host
</p>
</a>
</li>
<li class="mb-2"></li>
@@ -554,9 +639,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -681,7 +766,7 @@
<header> <header>
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Static Server</h1> <h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Rest Here</h1>
<div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden"> <div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
@@ -712,9 +797,30 @@
</div> </div>
</header>
<section class="flex flex-col max-w-full mt-0 mb-5 prose dark:prose-invert lg:flex-row">
<script>
var oid = "views_life\/_index.md"
var oid_likes = "likes_life\/_index.md"
</script>
<script type="text/javascript" src="/js/page.min.0860cf4e04fa2d72cc33ddba263083464d48f67de06114529043cb4623319efed4f484fd7f1730df5abea0e2da6f3538855634081d02f2d6e920b956f063e823.js" integrity="sha512-CGDPTgT6LXLMM926JjCDRk1I9n3gYRRSkEPLRiMxnv7U9IT9fxcw31q&#43;oOLabzU4hVY0CB0C8tbpILlW8GPoIw=="></script>
</header>
<section class="mt-0 prose flex max-w-full flex-col dark:prose-invert lg:flex-row">
<div class="min-w-0 min-h-0 max-w-prose">
</div>
</section> </section>
@@ -727,48 +833,27 @@
<section class="space-y-10 w-full">
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3">
<a href="/life/travel/" class="min-w-full">
<div class="min-h-full border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative">
<div class="px-6 py-4">
<a class="flex flex-wrap md:flex-nowrap article border border-neutral-200 dark:border-neutral-700 border-2 rounded-md overflow-hidden" href="/projects/self_host/stock_bot/">
<div class="w-full md:w-auto h-full thumbnail nozoom " style="background-image:url(/projects/self_host/stock_bot/feature_hu15309324853505185147.png);"></div>
<div class=" p-4">
<div class="items-center text-left text-xl font-semibold">
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral" <div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/projects/self_host/stock_bot/">StockBot</div> href="/life/travel/">Travels</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
@@ -806,7 +891,7 @@
<div class="flex flex-row flex-wrap items-center"> <div class="flex flex-row flex-wrap items-center">
<span>1 word</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span> <span>20 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>
@@ -830,46 +915,28 @@
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/hugo/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Hugo
</span>
</span>
</span>
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/static-server/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Static Server
</span>
</span>
</span>
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/webpage/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Webpage
</span>
</span>
</span>
</div> </div>
</div> </div>
</div>
<div class="px-6 pt-4 pb-2">
</div>
</div> </div>
</a> </a>
</section> </section>
@@ -888,7 +955,7 @@
<li class="flex mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"> <li class="flex mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href="/tags/" <a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href="/tags/"
title=""> title="Tags">
Tags Tags
</a> </a>
@@ -910,6 +977,14 @@
<p class="text-sm text-neutral-500 dark:text-neutral-400">
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">
苏ICP备2024145451号
</a>
</p>
<p class="text-xs text-neutral-500 dark:text-neutral-400"> <p class="text-xs text-neutral-500 dark:text-neutral-400">

13
public/life/index.xml Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Rest Here on SWangNice</title>
<link>http://localhost:1313/life/</link>
<description>Recent content in Rest Here on SWangNice</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
<copyright>© 2025 SWang</copyright>
<lastBuildDate>Fri, 20 Sep 2024 04:17:50 +0000</lastBuildDate><atom:link href="http://localhost:1313/life/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<title>http://localhost:1313/</title> <title>http://localhost:1313/life/</title>
<link rel="canonical" href="http://localhost:1313/"> <link rel="canonical" href="http://localhost:1313/life/">
<meta name="robots" content="noindex"> <meta name="robots" content="noindex">
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=http://localhost:1313/"> <meta http-equiv="refresh" content="0; url=http://localhost:1313/life/">
</head> </head>
</html> </html>

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -8,16 +8,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>StockBot &middot; SWangNice</title> <title>Travels &middot; SWangNice</title>
<meta name="title" content="StockBot &middot; SWangNice" /> <meta name="title" content="Travels &middot; SWangNice" />
<meta name="description" content="My awesome website (English)" /> <meta name="description" content="My awesome website (English)" />
<meta name="keywords" content="Private, Ongoing, Original, AI, " />
<link rel="canonical" href="http://localhost:1313/projects/self_host/stock_bot/" />
<link rel="alternate" type="application/rss+xml" href="/projects/self_host/stock_bot/index.xml" title="SWangNice" /> <link rel="canonical" href="http://localhost:1313/life/travel/" />
<link rel="alternate" type="application/rss+xml" href="/life/travel/index.xml" title="SWangNice" />
@@ -66,21 +66,17 @@
<meta property="og:url" content="http://localhost:1313/projects/self_host/stock_bot/"> <meta property="og:url" content="http://localhost:1313/life/travel/">
<meta property="og:site_name" content="SWangNice"> <meta property="og:site_name" content="SWangNice">
<meta property="og:title" content="StockBot"> <meta property="og:title" content="Travels">
<meta property="og:description" content="This is a bot that assists in making daily index fund trading decisions. <meta property="og:description" content="Preview # 2025 graduation road trip, Las Vegas -&gt; Grand Canyon -&gt; Yellowstone -&gt; Seattle -&gt; CA-1 -&gt; Las Vegas">
Introduction # This project was inspired by my mother. Over the course of ten years, she watched my father struggle in the stock market. From those hard lessons, she developed her own strategy—one that focuses on the predictable fluctuations in index fund values. Armed with nothing more than paper, a pen, and a calculator, shes been able to achieve steady profits.">
<meta property="og:locale" content="en"> <meta property="og:locale" content="en">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:image" content="http://localhost:1313/projects/self_host/stock_bot/feature.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://localhost:1313/projects/self_host/stock_bot/feature.png"> <meta name="twitter:title" content="Travels">
<meta name="twitter:title" content="StockBot"> <meta name="twitter:description" content="Preview # 2025 graduation road trip, Las Vegas -&gt; Grand Canyon -&gt; Yellowstone -&gt; Seattle -&gt; CA-1 -&gt; Las Vegas">
<meta name="twitter:description" content="This is a bot that assists in making daily index fund trading decisions.
Introduction # This project was inspired by my mother. Over the course of ten years, she watched my father struggle in the stock market. From those hard lessons, she developed her own strategy—one that focuses on the predictable fluctuations in index fund values. Armed with nothing more than paper, a pen, and a calculator, shes been able to achieve steady profits.">
@@ -121,6 +117,13 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<script defer src="/lib/packery/packery.pkgd.min.js" integrity=""></script>
<script type="text/javascript" src="/js/shortcodes/gallery.min.9b4cb28f931ed922c26fb9b2510c2debb370f6a63305050c2af81740b2919883715e24efbbdf3a081496718ec751df3a72729d4d0bc71d6071297563a97ce1ee.js" integrity="sha512-m0yyj5Me2SLCb7myUQwt67Nw9qYzBQUMKvgXQLKRmINxXiTvu986CBSWcY7HUd86cnKdTQvHHWBxKXVjqXzh7g=="></script>
@@ -163,10 +166,10 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -287,7 +290,7 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -385,41 +388,6 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<div>
<div class="cursor-pointer flex items-center nested-menu">
<span class="ltr:mr-1 rtl:ml-1">
<span class="relative block icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"/></svg>
</span>
</span>
<div class="text-sm font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="StockBot">EN</div>
</div>
<div class="absolute menuhide">
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3">
<a href="/projects/self_host/stock_bot/" class="flex items-center">
<p class="text-sm font-sm text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="StockBot">
EN
</p>
</a>
<a href="/zh-cn/projects/self_host/stock_bot/" class="flex items-center">
<p class="text-sm font-sm text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="StockBot">
中文
</p>
</a>
</div>
</div>
</div>
</div>
@@ -472,41 +440,6 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<span></span> <span></span>
<div>
<div class="cursor-pointer flex items-center nested-menu">
<span class="ltr:mr-1 rtl:ml-1">
<span class="relative block icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"/></svg>
</span>
</span>
<div class="text-sm font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="StockBot">EN</div>
</div>
<div class="absolute menuhide">
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3">
<a href="/projects/self_host/stock_bot/" class="flex items-center">
<p class="text-sm font-sm text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="StockBot">
EN
</p>
</a>
<a href="/zh-cn/projects/self_host/stock_bot/" class="flex items-center">
<p class="text-sm font-sm text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="StockBot">
中文
</p>
</a>
</div>
</div>
</div>
</div>
@@ -586,10 +519,10 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -713,9 +646,9 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -840,7 +773,7 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<header> <header>
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">StockBot</h1> <h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Travels</h1>
<div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden"> <div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
@@ -878,12 +811,9 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<script> <script>
var oid = "views_projects\/self_host\/stock_bot\/_index.md" var oid = "views_life\/travel\/_index.md"
var oid_likes = "likes_projects\/self_host\/stock_bot\/_index.md" var oid_likes = "likes_life\/travel\/_index.md"
</script> </script>
@@ -906,8 +836,7 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<ul> <ul>
<li> <li>
<ul> <ul>
<li><a href="#introduction">Introduction</a></li> <li><a href="#preview">Preview</a></li>
<li><a href="#list">List</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -925,8 +854,7 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
<ul> <ul>
<li> <li>
<ul> <ul>
<li><a href="#introduction">Introduction</a></li> <li><a href="#preview">Preview</a></li>
<li><a href="#list">List</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -967,35 +895,203 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
</div> </div>
<div class="min-w-0 min-h-0 max-w-prose"> <div class="min-w-0 min-h-0 max-w-prose">
<p>This is a bot that assists in making daily index fund trading decisions.</p>
<h2 class="relative group">Introduction <h2 class="relative group">Preview
<div id="introduction" class="anchor"></div> <div id="preview" class="anchor"></div>
<span <span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"> class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
<a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" <a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700"
style="text-decoration-line: none !important;" href="#introduction" aria-label="Anchor">#</a> style="text-decoration-line: none !important;" href="#preview" aria-label="Anchor">#</a>
</span> </span>
</h2> </h2>
<p>This project was inspired by my mother. Over the course of ten years, she watched my father struggle in the stock market. From those hard lessons, she developed her own strategy—one that focuses on the predictable fluctuations in index fund values. Armed with nothing more than paper, a pen, and a calculator, shes been able to achieve steady profits.</p> <p>2025 graduation road trip, Las Vegas -&gt; Grand Canyon -&gt; Yellowstone -&gt; Seattle -&gt; CA-1 -&gt; Las Vegas</p>
<p>I believe theres even more potential here.</p>
<p>By digitizing her process and gradually introducing quantifiable algorithms, I hope to both increase efficiency and explore new edges for profitability. My strategy might cause others&rsquo; losses, so this project is private permanently.</p>
<h2 class="relative group">List <div id="gallery-e837f8dab5157d230a1317bf522b0c57" class="gallery">
<div id="list" class="anchor"></div>
<span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
<a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700"
style="text-decoration-line: none !important;" href="#list" aria-label="Anchor">#</a>
</span>
</h2>
<p>Here, Ill keep track of the to-do list and showcase the results as the project evolves. Ill also highlight some interesting technical insights along the way.</p>
<img src="https://photo.swangnice.cn/api/assets/7609e40d-585b-4b6e-a7f2-dae2991f7a50/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=n%2FcVHYJ4eHePd3iGd3eIiGeAeQWp" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/4b1921f9-c1ea-4422-b7a8-c6f0044d7d45/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=jtYFLYZdd3fNiHiFeAeHcoRgTAi2" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/62292afd-bc31-4ade-bae0-de91539de284/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=thumbnail&c=nfcJLYQtdlpbqmeHZ%2Fh4jIdwhAc2" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/b2622f51-5067-47f9-854a-40b606cdcfb7/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=thumbnail&c=V9cNRYZoh3d%2FiHeKdzeHhXeAhQdX" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/26ad4345-65df-4fa0-abcd-177ede9b686d/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=thumbnail&c=Z%2FcJHYJZiHeQeHhoiJeGd3iAkgc4" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/01d4cf9d-f0bd-4983-87ed-b14fbb4867c6/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=thumbnail&c=GecJPYZniHeKeIiIeAeHh3iAdweI" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/3e486186-7717-40a0-9c94-25123d54da39/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=lOcFPQRnd393SIkYh3Oot3iAdgdY" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/414035f5-c42a-4a98-b5ce-63abc0546ffd/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=njgOFQZ6iJ%2BI53eHeGaIh3ZgYVcG" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/08d736c3-2e01-4d77-ae21-424385eaa3cb/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=ZgcKJYRniIiPZ4eEeGaGh3twywe3" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/c1307d7f-a167-40c2-ba3f-a93fbed8afa6/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=nhcOLQh4iI%2BIl4dIh4aIiHiAeAeI" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/f2699861-cd57-4da8-b7b8-4777507b5cc3/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=RwgGDYJHdqqRh4hwi6iGfFhwdpcI" class="grid-w33" />
<img src="https://photo.swangnice.cn/api/assets/8163d339-eabb-4bcd-94bb-2ed5cb785092/thumbnail?key=PEvzdyJwfzxtIiW7pUt6y1qWiLGoLR_b0RVOJPIasJDLh4J6Bo6f8CCPQ1sJxkpPpA8&size=preview&c=2xcSJYRZh3iPhoeLiHeHeJhwpghl" class="grid-w33" />
</div>
</div> </div>
@@ -1004,214 +1100,11 @@ Introduction # This project was inspired by my mother. Over the course of ten ye
</section> </section>
<section class="mt-10 prose dark:prose-invert">
<p class="py-8 border-t">
<em>There are no articles to list here yet.</em>
</p>
</section>
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3">
<a href="/projects/self_host/stock_bot/01_todo/" class="min-w-full">
<div class="min-h-full border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative">
<div class="px-6 py-4">
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/projects/self_host/stock_bot/01_todo/">TODO List</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
<div class="flex flex-row flex-wrap items-center">
<span>51 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>
</div>
<div class="flex flex-row flex-wrap items-center">
</div>
</div>
</div>
<div class="px-6 pt-4 pb-2">
</div>
</div>
</a>
<a href="/projects/self_host/stock_bot/02_results/" class="min-w-full">
<div class="min-h-full border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative">
<div class="px-6 py-4">
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/projects/self_host/stock_bot/02_results/">Showcases</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
<div class="flex flex-row flex-wrap items-center">
<span>18 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>
</div>
<div class="flex flex-row flex-wrap items-center">
</div>
</div>
</div>
<div class="px-6 pt-4 pb-2">
</div>
</div>
</a>
</section>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Travels on SWangNice</title>
<link>http://localhost:1313/life/travel/</link>
<description>Recent content in Travels on SWangNice</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
<copyright>© 2025 SWang</copyright>
<lastBuildDate>Fri, 20 Sep 2024 04:17:50 +0000</lastBuildDate><atom:link href="http://localhost:1313/life/travel/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<title>http://localhost:1313/tags/webpage/</title> <title>http://localhost:1313/life/travel/</title>
<link rel="canonical" href="http://localhost:1313/tags/webpage/"> <link rel="canonical" href="http://localhost:1313/life/travel/">
<meta name="robots" content="noindex"> <meta name="robots" content="noindex">
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/webpage/"> <meta http-equiv="refresh" content="0; url=http://localhost:1313/life/travel/">
</head> </head>
</html> </html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -189,10 +189,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -313,7 +313,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -612,10 +612,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -739,9 +739,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -189,10 +189,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -313,7 +313,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -612,10 +612,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -739,9 +739,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -1015,7 +1015,7 @@
<div class="flex justify-between pt-3"> <div class="flex justify-between pt-3">
<span> <span>
<a class="flex group mr-3" href="/notes/coding/cheat_sheet/git/"> <a class="flex group mr-3" href="/notes/coding/cheat_sheet/python/">
<span <span
class="mr-3 text-neutral-700 group-hover:text-primary-600 ltr:inline rtl:hidden dark:text-neutral dark:group-hover:text-primary-400" class="mr-3 text-neutral-700 group-hover:text-primary-600 ltr:inline rtl:hidden dark:text-neutral dark:group-hover:text-primary-400"
>&larr;</span >&larr;</span
@@ -1027,7 +1027,7 @@
<span class="flex flex-col"> <span class="flex flex-col">
<span <span
class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500" class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500"
>Git</span >Python</span
> >
<span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400"> <span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -17,6 +17,8 @@
<link rel="canonical" href="http://localhost:1313/notes/coding/cheat_sheet/git/" /> <link rel="canonical" href="http://localhost:1313/notes/coding/cheat_sheet/git/" />
<link rel="alternate" type="application/rss+xml" href="/notes/coding/cheat_sheet/git/index.xml" title="SWangNice" />
@@ -67,48 +69,20 @@
<meta property="og:url" content="http://localhost:1313/notes/coding/cheat_sheet/git/"> <meta property="og:url" content="http://localhost:1313/notes/coding/cheat_sheet/git/">
<meta property="og:site_name" content="SWangNice"> <meta property="og:site_name" content="SWangNice">
<meta property="og:title" content="Git"> <meta property="og:title" content="Git">
<meta property="og:description" content="submodule # Commit # Add date and time in commit messages: git commit -m &#34;$(date &#39;&#43;%Y-%m-%d %H:%M:%S&#39;)&#34;"> <meta property="og:description" content="Submodule # Commit # Add date and time in commit messages: git commit -m &#34;$(date &#39;&#43;%Y-%m-%d %H:%M:%S&#39;)&#34; Remote # Check the remote url:
git remote -v If the remote url existing, set a new one:">
<meta property="og:locale" content="en"> <meta property="og:locale" content="en">
<meta property="og:type" content="article"> <meta property="og:type" content="website">
<meta property="article:section" content="notes">
<meta property="article:published_time" content="2024-09-20T04:17:50+00:00">
<meta property="article:modified_time" content="2024-09-20T04:17:50+00:00">
<meta property="og:image" content="http://localhost:1313/notes/coding/cheat_sheet/git/feature.png"> <meta property="og:image" content="http://localhost:1313/notes/coding/cheat_sheet/git/feature.png">
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="http://localhost:1313/notes/coding/cheat_sheet/git/feature.png"> <meta name="twitter:image" content="http://localhost:1313/notes/coding/cheat_sheet/git/feature.png">
<meta name="twitter:title" content="Git"> <meta name="twitter:title" content="Git">
<meta name="twitter:description" content="submodule # Commit # Add date and time in commit messages: git commit -m &#34;$(date &#39;&#43;%Y-%m-%d %H:%M:%S&#39;)&#34;"> <meta name="twitter:description" content="Submodule # Commit # Add date and time in commit messages: git commit -m &#34;$(date &#39;&#43;%Y-%m-%d %H:%M:%S&#39;)&#34; Remote # Check the remote url:
git remote -v If the remote url existing, set a new one:">
<script type="application/ld+json">
[{
"@context": "https://schema.org",
"@type": "Article",
"articleSection": "Notes",
"name": "Git",
"headline": "Git",
"abstract": "\u003ch2 class=\u0022relative group\u0022\u003esubmodule \n \u003cdiv id=\u0022submodule\u0022 class=\u0022anchor\u0022\u003e\u003c\/div\u003e\n \n \u003cspan\n class=\u0022absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\u0022\u003e\n \u003ca class=\u0022group-hover:text-primary-300 dark:group-hover:text-neutral-700\u0022\n style=\u0022text-decoration-line: none !important;\u0022 href=\u0022#submodule\u0022 aria-label=\u0022Anchor\u0022\u003e#\u003c\/a\u003e\n \u003c\/span\u003e \n \n\u003c\/h2\u003e\n\n\n\u003ch2 class=\u0022relative group\u0022\u003eCommit \n \u003cdiv id=\u0022commit\u0022 class=\u0022anchor\u0022\u003e\u003c\/div\u003e\n \n \u003cspan\n class=\u0022absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\u0022\u003e\n \u003ca class=\u0022group-hover:text-primary-300 dark:group-hover:text-neutral-700\u0022\n style=\u0022text-decoration-line: none !important;\u0022 href=\u0022#commit\u0022 aria-label=\u0022Anchor\u0022\u003e#\u003c\/a\u003e\n \u003c\/span\u003e \n \n\u003c\/h2\u003e\n\u003col\u003e\n\u003cli\u003eAdd date and time in commit messages:\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cdiv class=\u0022highlight\u0022\u003e\u003cpre tabindex=\u00220\u0022 class=\u0022chroma\u0022\u003e\u003ccode class=\u0022language-bash\u0022 data-lang=\u0022bash\u0022\u003e\u003cspan class=\u0022line\u0022\u003e\u003cspan class=\u0022cl\u0022\u003egit commit -m \u003cspan class=\u0022s2\u0022\u003e\u0026#34;\u003c\/span\u003e\u003cspan class=\u0022k\u0022\u003e$(\u003c\/span\u003edate \u003cspan class=\u0022s1\u0022\u003e\u0026#39;\u002b%Y-%m-%d %H:%M:%S\u0026#39;\u003c\/span\u003e\u003cspan class=\u0022k\u0022\u003e)\u003c\/span\u003e\u003cspan class=\u0022s2\u0022\u003e\u0026#34;\u003c\/span\u003e\n\u003c\/span\u003e\u003c\/span\u003e\u003c\/code\u003e\u003c\/pre\u003e\u003c\/div\u003e",
"inLanguage": "en",
"url" : "http:\/\/localhost:1313\/notes\/coding\/cheat_sheet\/git\/",
"author" : {
"@type": "Person",
"name": "SWang"
},
"copyrightYear": "2024",
"dateCreated": "2024-09-20T04:17:50\u002b00:00",
"datePublished": "2024-09-20T04:17:50\u002b00:00",
"dateModified": "2024-09-20T04:17:50\u002b00:00",
"mainEntityOfPage": "true",
"wordCount": "17"
}]
</script>
@@ -189,10 +163,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -313,7 +287,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -612,10 +586,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -739,9 +713,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -864,30 +838,10 @@
<article> <header>
<header id="single_header" class="mt-5 max-w-prose">
<h1 class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">
Git
</h1>
<div class="mt-1 mb-6 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Git</h1>
<div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
@@ -913,43 +867,10 @@
<div class="flex flex-row flex-wrap items-center"> <div class="flex flex-row flex-wrap items-center">
<span>17 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>
</div> </div>
</div>
<div class="flex flex-row flex-wrap items-center">
</div>
</div>
@@ -960,18 +881,20 @@
<script>
var oid = "views_notes\/coding\/cheat_sheet\/git\/_index.md"
var oid_likes = "likes_notes\/coding\/cheat_sheet\/git\/_index.md"
</script>
<script type="text/javascript" src="/js/page.min.0860cf4e04fa2d72cc33ddba263083464d48f67de06114529043cb4623319efed4f484fd7f1730df5abea0e2da6f3538855634081d02f2d6e920b956f063e823.js" integrity="sha512-CGDPTgT6LXLMM926JjCDRk1I9n3gYRRSkEPLRiMxnv7U9IT9fxcw31q&#43;oOLabzU4hVY0CB0C8tbpILlW8GPoIw=="></script>
</header> </header>
<section class="mt-12 prose flex max-w-full flex-col dark:prose-invert lg:flex-row">
<section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row"> <div class="order-first px-0 lg:order-last lg:max-w-xs ltr:lg:pl-8 rtl:lg:pr-8">
<div class="toc ltr:pl-5 rtl:pr-5 lg:sticky lg:top-10">
<div <details open id="TOCView"
class="order-first lg:ml-auto px-0 lg:order-last ltr:lg:pl-8 rtl:lg:pr-8">
<div class="toc ltr:pl-5 rtl:pr-5 print:hidden lg:sticky lg:top-10">
<details open id="TOCView"
class="toc-right mt-0 overflow-y-scroll overscroll-contain scrollbar-thin scrollbar-track-neutral-200 scrollbar-thumb-neutral-400 dark:scrollbar-track-neutral-800 dark:scrollbar-thumb-neutral-600 rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 hidden lg:block"> class="toc-right mt-0 overflow-y-scroll overscroll-contain scrollbar-thin scrollbar-track-neutral-200 scrollbar-thumb-neutral-400 dark:scrollbar-track-neutral-800 dark:scrollbar-thumb-neutral-600 rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 hidden lg:block">
<summary <summary
class="block py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden"> class="block py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden">
@@ -983,8 +906,11 @@
<ul> <ul>
<li> <li>
<ul> <ul>
<li><a href="#submodule">submodule</a></li> <li><a href="#submodule">Submodule</a></li>
<li><a href="#commit">Commit</a></li> <li><a href="#commit">Commit</a></li>
<li><a href="#remote">Remote</a></li>
<li><a href="#branch">Branch</a></li>
<li><a href="#push">Push</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -1002,8 +928,11 @@
<ul> <ul>
<li> <li>
<ul> <ul>
<li><a href="#submodule">submodule</a></li> <li><a href="#submodule">Submodule</a></li>
<li><a href="#commit">Commit</a></li> <li><a href="#commit">Commit</a></li>
<li><a href="#remote">Remote</a></li>
<li><a href="#branch">Branch</a></li>
<li><a href="#push">Push</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -1039,19 +968,14 @@
</script> </script>
</div>
</div> </div>
</div>
<div class="min-w-0 min-h-0 max-w-prose">
<div class="min-w-0 min-h-0 max-w-fit"> <h2 class="relative group">Submodule
<div class="article-content max-w-prose mb-20">
<h2 class="relative group">submodule
<div id="submodule" class="anchor"></div> <div id="submodule" class="anchor"></div>
<span <span
@@ -1079,102 +1003,75 @@
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git commit -m <span class="s2">&#34;</span><span class="k">$(</span>date <span class="s1">&#39;+%Y-%m-%d %H:%M:%S&#39;</span><span class="k">)</span><span class="s2">&#34;</span> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git commit -m <span class="s2">&#34;</span><span class="k">$(</span>date <span class="s1">&#39;+%Y-%m-%d %H:%M:%S&#39;</span><span class="k">)</span><span class="s2">&#34;</span>
</span></span></code></pre></div> </span></span></code></pre></div>
<h2 class="relative group">Remote
<div id="remote" class="anchor"></div>
<span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
<a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700"
style="text-decoration-line: none !important;" href="#remote" aria-label="Anchor">#</a>
</span>
</div> </h2>
<p>Check the remote url:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git remote -v
</span></span></code></pre></div><p>If the remote url existing, set a new one:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git remote set-url origin &lt;new_remote_address&gt;
</span></span></code></pre></div><p>A Trick: you can connect your local repo to 2 remote repos:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git remote add public https://&lt;git_domain&gt;/&lt;username&gt;/project-public.git
</span></span><span class="line"><span class="cl">git remote add private https://&lt;git_domain&gt;/&lt;username&gt;/project-private.git
</span></span></code></pre></div>
<h2 class="relative group">Branch
<div id="branch" class="anchor"></div>
<span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
<a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700"
style="text-decoration-line: none !important;" href="#branch" aria-label="Anchor">#</a>
</span>
</h2>
<p>List all branches:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git branch -a
</span></span></code></pre></div><p>Move to a specific branch, the branch where you are currently working is marked with an asterisk (*):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git checkout &lt;branch_name&gt;
</span></span></code></pre></div><p>Create a new branch and switch to it:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git checkout -b &lt;new_branch_name&gt;
</span></span></code></pre></div>
<h2 class="relative group">Push
<div id="push" class="anchor"></div>
<span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
<a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700"
style="text-decoration-line: none !important;" href="#push" aria-label="Anchor">#</a>
</span>
</h2>
</div> <p>Let us break down the push command:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git push origin main
</span></span></code></pre></div><p>, where <code>origin</code> is the remote name and <code>main</code> is the branch name. If you want to push to a different remote or branch, just replace them accordingly.</p>
<p>More advanced usage:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git push &lt;remote_name&gt; &lt;local_branch_name&gt;:&lt;remote_branch_name&gt;
</span></span></code></pre></div>
<script>
var oid = "views_notes\/coding\/cheat_sheet\/git\/index.md"
var oid_likes = "likes_notes\/coding\/cheat_sheet\/git\/index.md"
</script>
<script type="text/javascript" src="/js/page.min.0860cf4e04fa2d72cc33ddba263083464d48f67de06114529043cb4623319efed4f484fd7f1730df5abea0e2da6f3538855634081d02f2d6e920b956f063e823.js" integrity="sha512-CGDPTgT6LXLMM926JjCDRk1I9n3gYRRSkEPLRiMxnv7U9IT9fxcw31q&#43;oOLabzU4hVY0CB0C8tbpILlW8GPoIw=="></script>
</section>
<footer class="pt-8 max-w-prose print:hidden">
<div class="pt-8">
<hr class="border-dotted border-neutral-300 dark:border-neutral-600" />
<div class="flex justify-between pt-3">
<span>
<a class="flex group mr-3" href="/notes/coding/cheat_sheet/python/">
<span
class="mr-3 text-neutral-700 group-hover:text-primary-600 ltr:inline rtl:hidden dark:text-neutral dark:group-hover:text-primary-400"
>&larr;</span
>
<span
class="ml-3 text-neutral-700 group-hover:text-primary-600 ltr:hidden rtl:inline dark:text-neutral dark:group-hover:text-primary-400"
>&rarr;</span
>
<span class="flex flex-col">
<span
class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500"
>Python</span
>
<span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400">
</span>
</span>
</a>
</span>
<span>
<a class="flex text-right group ml-3" href="/notes/coding/cheat_sheet/cpp/">
<span class="flex flex-col">
<span
class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500"
>C++</span
>
<span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400">
</span>
</span>
<span
class="ml-3 text-neutral-700 group-hover:text-primary-600 ltr:inline rtl:hidden dark:text-neutral dark:group-hover:text-primary-400"
>&rarr;</span
>
<span
class="mr-3 text-neutral-700 group-hover:text-primary-600 ltr:hidden rtl:inline dark:text-neutral dark:group-hover:text-primary-400"
>&larr;</span
>
</a>
</span>
</div>
</div> </div>
</footer> </section>
</article>
<section class="mt-10 prose dark:prose-invert">
<p class="py-8 border-t">
<em>There are no articles to list here yet.</em>
</p>
</section>
<div id="top-scroller" class="pointer-events-none absolute top-[110vh] bottom-0 w-12 ltr:right-0 rtl:left-0"> <div id="top-scroller" class="pointer-events-none absolute top-[110vh] bottom-0 w-12 ltr:right-0 rtl:left-0">
<a href="#the-top" <a href="#the-top"

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Git on SWangNice</title>
<link>http://localhost:1313/notes/coding/cheat_sheet/git/</link>
<description>Recent content in Git on SWangNice</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
<copyright>© 2025 SWang</copyright>
<lastBuildDate>Fri, 20 Sep 2024 04:17:50 +0000</lastBuildDate><atom:link href="http://localhost:1313/notes/coding/cheat_sheet/git/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<title>http://localhost:1313/projects/self_host/stock_bot/</title> <title>http://localhost:1313/notes/coding/cheat_sheet/git/</title>
<link rel="canonical" href="http://localhost:1313/projects/self_host/stock_bot/"> <link rel="canonical" href="http://localhost:1313/notes/coding/cheat_sheet/git/">
<meta name="robots" content="noindex"> <meta name="robots" content="noindex">
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=http://localhost:1313/projects/self_host/stock_bot/"> <meta http-equiv="refresh" content="0; url=http://localhost:1313/notes/coding/cheat_sheet/git/">
</head> </head>
</html> </html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -161,10 +161,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -285,7 +285,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -584,10 +584,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -711,9 +711,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -1151,7 +1151,7 @@
<div class="flex flex-row flex-wrap items-center"> <div class="flex flex-row flex-wrap items-center">
<span>17 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span> <span>151 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>

View File

@@ -29,42 +29,6 @@
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="http://localhost:1313/notes/coding/cheat_sheet/cpp/feature.png" /> <media:content xmlns:media="http://search.yahoo.com/mrss/" url="http://localhost:1313/notes/coding/cheat_sheet/cpp/feature.png" />
</item> </item>
<item>
<title>Git</title>
<link>http://localhost:1313/notes/coding/cheat_sheet/git/</link>
<pubDate>Fri, 20 Sep 2024 04:17:50 +0000</pubDate>
<guid>http://localhost:1313/notes/coding/cheat_sheet/git/</guid>
<description>&lt;h2 class=&#34;relative group&#34;&gt;submodule
&lt;div id=&#34;submodule&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
&lt;span
class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
style=&#34;text-decoration-line: none !important;&#34; href=&#34;#submodule&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h2 class=&#34;relative group&#34;&gt;Commit
&lt;div id=&#34;commit&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
&lt;span
class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34;
style=&#34;text-decoration-line: none !important;&#34; href=&#34;#commit&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Add date and time in commit messages:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;date &lt;span class=&#34;s1&#34;&gt;&amp;#39;+%Y-%m-%d %H:%M:%S&amp;#39;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="http://localhost:1313/notes/coding/cheat_sheet/git/feature.png" />
</item>
<item> <item>
<title>Python</title> <title>Python</title>
<link>http://localhost:1313/notes/coding/cheat_sheet/python/</link> <link>http://localhost:1313/notes/coding/cheat_sheet/python/</link>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 KiB

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -189,10 +189,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -313,7 +313,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -612,10 +612,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -739,9 +739,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -1018,11 +1018,11 @@
</span> </span>
<span> <span>
<a class="flex text-right group ml-3" href="/notes/coding/cheat_sheet/git/"> <a class="flex text-right group ml-3" href="/notes/coding/cheat_sheet/cpp/">
<span class="flex flex-col"> <span class="flex flex-col">
<span <span
class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500" class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500"
>Git</span >C++</span
> >
<span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400"> <span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 925 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 925 KiB

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -161,10 +161,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -285,7 +285,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -584,10 +584,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -711,9 +711,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -159,10 +159,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -283,7 +283,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -582,10 +582,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -709,9 +709,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -988,6 +988,198 @@
</div>
</div>
</div>
<div class="px-6 pt-4 pb-2">
</div>
</div>
</a>
<a href="/notes/mcu/" class="min-w-full">
<div class="min-h-full border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative">
<div class="w-full thumbnail_card nozoom" style="background-image:url(/notes/mcu/feature_hu_50354354f9adb435.png);"></div>
<div class="px-6 py-4">
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/notes/mcu/">MCU's Story</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
<div class="flex flex-row flex-wrap items-center">
<span>19 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>
</div>
<div class="flex flex-row flex-wrap items-center">
</div>
</div>
</div>
<div class="px-6 pt-4 pb-2">
</div>
</div>
</a>
<a href="/notes/pdf/" class="min-w-full">
<div class="min-h-full border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative">
<div class="w-full thumbnail_card nozoom" style="background-image:url(/notes/pdf/feature_hu_ff1a4e457f3d6ed2.png);"></div>
<div class="px-6 py-4">
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/notes/pdf/">PDF Collection</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
<div class="flex flex-row flex-wrap items-center">
<span>71 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>
</div>
<div class="flex flex-row flex-wrap items-center">
</div> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
public/notes/mcu/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

View File

@@ -1,23 +1,23 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh-CN" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="zh-CN" /> <meta http-equiv="content-language" content="en" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Cheat Sheets &middot; SwangNice的空间</title> <title>MCU&#39;s Story &middot; SWangNice</title>
<meta name="title" content="Cheat Sheets &middot; SwangNice的空间" /> <meta name="title" content="MCU&#39;s Story &middot; SWangNice" />
<meta name="description" content="我的网站(中文)" /> <meta name="description" content="My awesome website (English)" />
<link rel="canonical" href="http://localhost:1313/zh-cn/notes/coding/coding/cheat_sheet/" /> <link rel="canonical" href="http://localhost:1313/notes/mcu/" />
<link rel="alternate" type="application/rss+xml" href="/zh-cn/notes/coding/coding/cheat_sheet/index.xml" title="SwangNice的空间" /> <link rel="alternate" type="application/rss+xml" href="/notes/mcu/index.xml" title="SWangNice" />
@@ -28,8 +28,8 @@
<link type="text/css" rel="stylesheet" href="/css/main.bundle.min.8f3065366dff1de8a5d8a245dbeb14096be1376f41bc15da61f5e65a4c8d50184b7255c09fb7172fc3841a4a792390f2df99cbe22bc022dd78d2f7231fc60a6b.css" <link type="text/css" rel="stylesheet" href="/css/main.bundle.min.3d98b0e3c7886b2be13facfb539c8f79843dd3cff84d1c41763deb363c668c308c7c7ac9ecb3923f8602e257866ff553de4228ff50492074acc6d07b3d232fb1.css"
integrity="sha512-jzBlNm3/Heil2KJF2&#43;sUCWvhN29BvBXaYfXmWkyNUBhLclXAn7cXL8OEGkp5I5Dy35nL4ivAIt140vcjH8YKaw==" /> integrity="sha512-PZiw48eIayvhP6z7U5yPeYQ908/4TRxBdj3rNjxmjDCMfHrJ7LOSP4YC4leGb/VT3kIo/1BJIHSsxtB7PSMvsQ==" />
<script type="text/javascript" src="/js/appearance.min.516a16745bea5a9bd011138d254cc0fd3973cd55ce6e15f3dec763e7c7c2c7448f8fe7b54cca811cb821b0c7e12cd161caace1dd794ac3d34d40937cbcc9ee12.js" <script type="text/javascript" src="/js/appearance.min.516a16745bea5a9bd011138d254cc0fd3973cd55ce6e15f3dec763e7c7c2c7448f8fe7b54cca811cb821b0c7e12cd161caace1dd794ac3d34d40937cbcc9ee12.js"
@@ -45,11 +45,8 @@
<script defer type="text/javascript" id="script-bundle" src="/js/main.bundle.min.f8f2cec11308434554dfdbe3a0963bc19265192ebb9e2d644f3f9250731c879dfb09b44d2d58fcd06e8a1c9051b57f594719b37d21689d366ffd2db050df40a0.js"
integrity="sha512-&#43;PLOwRMIQ0VU39vjoJY7wZJlGS67ni1kTz&#43;SUHMch537CbRNLVj80G6KHJBRtX9ZRxmzfSFonTZv/S2wUN9AoA==" data-copy="Copy" data-copied="Copied"></script>
<script defer type="text/javascript" id="script-bundle" src="/js/main.bundle.min.65b5de43825ad54a420102c9ddccece1f1015665fe76e5b399ba259e1de29f6c83ac1b3cf77beed3d29e26604dfebf561a8e1db523cb6add0d6acccc9e8f1307.js"
integrity="sha512-ZbXeQ4Ja1UpCAQLJ3czs4fEBVmX&#43;duWzmbolnh3in2yDrBs893vu09KeJmBN/r9WGo4dtSPLat0NaszMno8TBw==" data-copy="复制" data-copied="已复制"></script>
@@ -69,17 +66,19 @@
<meta property="og:url" content="http://localhost:1313/zh-cn/notes/coding/coding/cheat_sheet/"> <meta property="og:url" content="http://localhost:1313/notes/mcu/">
<meta property="og:site_name" content="SwangNice的空间"> <meta property="og:site_name" content="SWangNice">
<meta property="og:title" content="Cheat Sheets"> <meta property="og:title" content="MCU&#39;s Story">
<meta property="og:description" content="我的网站(中文)"> <meta property="og:description" content="Here are some insights from my experiences with MCUs. Additionally, you can find my personal MCU benchmark site here.">
<meta property="og:locale" content="zh_CN"> <meta property="og:locale" content="en">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:image" content="http://localhost:1313/notes/mcu/feature.png">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Cheat Sheets"> <meta name="twitter:image" content="http://localhost:1313/notes/mcu/feature.png">
<meta name="twitter:description" content="我的网站(中文)"> <meta name="twitter:title" content="MCU&#39;s Story">
<meta name="twitter:description" content="Here are some insights from my experiences with MCUs. Additionally, you can find my personal MCU benchmark site here.">
@@ -142,7 +141,7 @@
<div id="the-top" class="absolute flex self-center"> <div id="the-top" class="absolute flex self-center">
<a class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600" <a class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600"
href="#main-content"><span href="#main-content"><span
class="font-bold text-primary-600 ltr:pr-2 rtl:pl-2 dark:text-primary-400">&darr;</span>跳过正文</a> class="font-bold text-primary-600 ltr:pr-2 rtl:pl-2 dark:text-primary-400">&darr;</span>Skip to main content</a>
</div> </div>
@@ -153,7 +152,7 @@
<nav class="flex space-x-3"> <nav class="flex space-x-3">
<a href="/zh-cn/" class="text-base font-medium text-gray-500 hover:text-gray-900">SwangNice的空间</a> <a href="/" class="text-base font-medium text-gray-500 hover:text-gray-900">SWangNice</a>
</nav> </nav>
@@ -162,11 +161,22 @@
<a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title="About">
About
</p>
</a>
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/notes/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Notes">
笔记 Notes
</a> </a>
<span> <span>
@@ -194,17 +204,17 @@
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl"> <div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3"> <div class="flex flex-col space-y-3">
<a href="/zh-cn/notes/coding/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/notes/coding/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title=""> <p class="text-sm font-sm" title="">
编程笔记 Coding
</p> </p>
</a> </a>
<a href="/zh-cn/notes/pdf/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/notes/pdf/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title=""> <p class="text-sm font-sm" title="">
PDF归档 PDF Collection
</p> </p>
</a> </a>
@@ -220,8 +230,8 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/projects/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Projects">
项目 Projects
</a> </a>
<span> <span>
@@ -249,31 +259,17 @@
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl"> <div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3"> <div class="flex flex-col space-y-3">
<a href="/zh-cn/projects/ai/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/projects/embedded/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title=""> <p class="text-sm font-sm" title="">
人工智能 Fancy Things on Boards
</p> </p>
</a> </a>
<a href="/zh-cn/projects/embedded/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/projects/self_host/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title=""> <p class="text-sm font-sm" title="">
嵌入式系统 Self-host
</p>
</a>
<a href="/zh-cn/projects/game/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title="">
游戏开发
</p>
</a>
<a href="/zh-cn/projects/robotics/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title="">
机器人
</p> </p>
</a> </a>
@@ -289,8 +285,8 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
此处休息 RestHere
</a> </a>
<span> <span>
@@ -318,17 +314,17 @@
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl"> <div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3"> <div class="flex flex-col space-y-3">
<a href="/zh-cn/life/pet/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/pet/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title=""> <p class="text-sm font-sm" title="">
宠物 My Pet
</p> </p>
</a> </a>
<a href="/zh-cn/life/travel/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/travel/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-sm" title=""> <p class="text-sm font-sm" title="">
游记 My Travel
</p> </p>
</a> </a>
@@ -518,10 +514,25 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
笔记 About
</p>
</a>
</li>
<li class="mt-1">
<a href="/notes/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title="Notes">
Notes
</p> </p>
<span> <span>
@@ -548,19 +559,19 @@
</li> </li>
<li class="mt-1"> <li class="mt-1">
<a href="/zh-cn/notes/coding/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/notes/coding/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title=""> <p class="text-sm font-small" title="">
编程笔记 Coding
</p> </p>
</a> </a>
</li> </li>
<li class="mt-1"> <li class="mt-1">
<a href="/zh-cn/notes/pdf/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/notes/pdf/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title=""> <p class="text-sm font-small" title="">
PDF归档 PDF Collection
</p> </p>
</a> </a>
</li> </li>
@@ -574,10 +585,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/projects/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Projects">
项目 Projects
</p> </p>
<span> <span>
@@ -604,37 +615,19 @@
</li> </li>
<li class="mt-1"> <li class="mt-1">
<a href="/zh-cn/projects/ai/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/projects/embedded/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title=""> <p class="text-sm font-small" title="">
人工智能 Fancy Things on Boards
</p> </p>
</a> </a>
</li> </li>
<li class="mt-1"> <li class="mt-1">
<a href="/zh-cn/projects/embedded/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/projects/self_host/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title=""> <p class="text-sm font-small" title="">
嵌入式系统 Self-host
</p>
</a>
</li>
<li class="mt-1">
<a href="/zh-cn/projects/game/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title="">
游戏开发
</p>
</a>
</li>
<li class="mt-1">
<a href="/zh-cn/projects/robotics/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title="">
机器人
</p> </p>
</a> </a>
</li> </li>
@@ -648,10 +641,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
此处休息 RestHere
</p> </p>
<span> <span>
@@ -678,19 +671,19 @@
</li> </li>
<li class="mt-1"> <li class="mt-1">
<a href="/zh-cn/life/pet/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/pet/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title=""> <p class="text-sm font-small" title="">
宠物 My Pet
</p> </p>
</a> </a>
</li> </li>
<li class="mt-1"> <li class="mt-1">
<a href="/zh-cn/life/travel/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/travel/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-sm font-small" title=""> <p class="text-sm font-small" title="">
游记 My Travel
</p> </p>
</a> </a>
</li> </li>
@@ -775,7 +768,7 @@
<header> <header>
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Cheat Sheets</h1> <h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">MCU&#39;s Story</h1>
<div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden"> <div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
@@ -814,8 +807,8 @@
<script> <script>
var oid = "views_notes\/coding\/coding\/cheat_sheet\/_index.md" var oid = "views_notes\/mcu\/_index.md"
var oid_likes = "likes_notes\/coding\/coding\/cheat_sheet\/_index.md" var oid_likes = "likes_notes\/mcu\/_index.md"
</script> </script>
@@ -825,6 +818,7 @@
<section class="mt-0 prose flex max-w-full flex-col dark:prose-invert lg:flex-row"> <section class="mt-0 prose flex max-w-full flex-col dark:prose-invert lg:flex-row">
<div class="min-w-0 min-h-0 max-w-prose"> <div class="min-w-0 min-h-0 max-w-prose">
<p>Here are some insights from my experiences with MCUs. Additionally, you can find my personal MCU benchmark site <a href="https://mcubenchmark.swangnice.cn" target="_blank">here</a>.</p>
</div> </div>
@@ -835,7 +829,7 @@
<section class="mt-10 prose dark:prose-invert"> <section class="mt-10 prose dark:prose-invert">
<p class="py-8 border-t"> <p class="py-8 border-t">
<em>这里还没有任何文章可以列出。</em> <em>There are no articles to list here yet.</em>
</p> </p>
</section> </section>
@@ -843,7 +837,13 @@
<div id="top-scroller" class="pointer-events-none absolute top-[110vh] bottom-0 w-12 ltr:right-0 rtl:left-0">
<a href="#the-top"
class="pointer-events-auto sticky top-[calc(100vh-5.5rem)] flex h-12 w-12 mb-16 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400"
aria-label="Scroll to top" title="Scroll to top">
&uarr;
</a>
</div>
</main><footer id="site-footer" class="py-10 print:hidden"> </main><footer id="site-footer" class="py-10 print:hidden">
@@ -852,8 +852,8 @@
<ul class="flex flex-col list-none sm:flex-row"> <ul class="flex flex-col list-none sm:flex-row">
<li class="flex mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"> <li class="flex mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href="/zh-cn/tags/" <a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href="/tags/"
title=""> title="Tags">
Tags Tags
</a> </a>
@@ -875,13 +875,21 @@
<p class="text-sm text-neutral-500 dark:text-neutral-400">
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">
苏ICP备2024145451号
</a>
</p>
<p class="text-xs text-neutral-500 dark:text-neutral-400"> <p class="text-xs text-neutral-500 dark:text-neutral-400">
该静态网页由 <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" Powered by <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
href="https://gohugo.io/" target="_blank" rel="noopener noreferrer">Hugo</a> &amp; <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href="https://gohugo.io/" target="_blank" rel="noopener noreferrer">Hugo</a> &amp; <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
href="https://blowfish.page/" target="_blank" rel="noopener noreferrer">Blowfish</a>生成 href="https://blowfish.page/" target="_blank" rel="noopener noreferrer">Blowfish</a>
</p> </p>
@@ -904,7 +912,7 @@
<div <div
id="search-wrapper" id="search-wrapper"
class="invisible fixed inset-0 flex h-screen w-screen cursor-default flex-col bg-neutral-500/50 p-4 backdrop-blur-sm dark:bg-neutral-900/50 sm:p-6 md:p-[10vh] lg:p-[12vh]" class="invisible fixed inset-0 flex h-screen w-screen cursor-default flex-col bg-neutral-500/50 p-4 backdrop-blur-sm dark:bg-neutral-900/50 sm:p-6 md:p-[10vh] lg:p-[12vh]"
data-url="http://localhost:1313/zh-cn/" data-url="http://localhost:1313/"
style="z-index:500" style="z-index:500"
> >
<div <div
@@ -927,14 +935,14 @@
type="search" type="search"
id="search-query" id="search-query"
class="flex flex-auto h-12 mx-1 bg-transparent appearance-none focus:outline-dotted focus:outline-2 focus:outline-transparent" class="flex flex-auto h-12 mx-1 bg-transparent appearance-none focus:outline-dotted focus:outline-2 focus:outline-transparent"
placeholder="搜索" placeholder="Search"
tabindex="0" tabindex="0"
/> />
</form> </form>
<button <button
id="close-search-button" id="close-search-button"
class="flex items-center justify-center w-8 h-8 text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400" class="flex items-center justify-center w-8 h-8 text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400"
title="关闭 (Esc)" title="Close (Esc)"
> >

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>MCU&#39;s Story on SWangNice</title>
<link>http://localhost:1313/notes/mcu/</link>
<description>Recent content in MCU&#39;s Story on SWangNice</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
<copyright>© 2025 SWang</copyright>
<lastBuildDate>Fri, 20 Sep 2024 04:17:50 +0000</lastBuildDate><atom:link href="http://localhost:1313/notes/mcu/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<title>http://localhost:1313/tags/hugo/</title> <title>http://localhost:1313/notes/mcu/</title>
<link rel="canonical" href="http://localhost:1313/tags/hugo/"> <link rel="canonical" href="http://localhost:1313/notes/mcu/">
<meta name="robots" content="noindex"> <meta name="robots" content="noindex">
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/hugo/"> <meta http-equiv="refresh" content="0; url=http://localhost:1313/notes/mcu/">
</head> </head>
</html> </html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 KiB

BIN
public/notes/pdf/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -8,16 +8,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Private &middot; SWangNice</title> <title>PDF Collection &middot; SWangNice</title>
<meta name="title" content="Private &middot; SWangNice" /> <meta name="title" content="PDF Collection &middot; SWangNice" />
<meta name="description" content="My awesome website (English)" /> <meta name="description" content="My awesome website (English)" />
<link rel="canonical" href="http://localhost:1313/tags/private/" /> <link rel="canonical" href="http://localhost:1313/notes/pdf/" />
<link rel="alternate" type="application/rss+xml" href="/tags/private/index.xml" title="SWangNice" /> <link rel="alternate" type="application/rss+xml" href="/notes/pdf/index.xml" title="SWangNice" />
@@ -66,17 +66,21 @@
<meta property="og:url" content="http://localhost:1313/tags/private/"> <meta property="og:url" content="http://localhost:1313/notes/pdf/">
<meta property="og:site_name" content="SWangNice"> <meta property="og:site_name" content="SWangNice">
<meta property="og:title" content="Private"> <meta property="og:title" content="PDF Collection">
<meta property="og:description" content="My awesome website (English)"> <meta property="og:description" content="I have created a PDF collection (PDFDing) for individual PDF files primarily for personal use. Additionally, I will share my personal notes in PDF format. The theme I am using does not support Ketax well (it renders slowly on poor connections), and since my notes contain many equations, PDF is the best option. I plan to upload my notes on a weekly or monthly basis. Here are the details:
Handwritten #">
<meta property="og:locale" content="en"> <meta property="og:locale" content="en">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:image" content="http://localhost:1313/notes/pdf/feature.png">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Private"> <meta name="twitter:image" content="http://localhost:1313/notes/pdf/feature.png">
<meta name="twitter:description" content="My awesome website (English)"> <meta name="twitter:title" content="PDF Collection">
<meta name="twitter:description" content="I have created a PDF collection (PDFDing) for individual PDF files primarily for personal use. Additionally, I will share my personal notes in PDF format. The theme I am using does not support Ketax well (it renders slowly on poor connections), and since my notes contain many equations, PDF is the best option. I plan to upload my notes on a weekly or monthly basis. Here are the details:
Handwritten #">
@@ -159,10 +163,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -283,7 +287,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -381,41 +385,6 @@
<div>
<div class="cursor-pointer flex items-center nested-menu">
<span class="ltr:mr-1 rtl:ml-1">
<span class="relative block icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"/></svg>
</span>
</span>
<div class="text-sm font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Private">EN</div>
</div>
<div class="absolute menuhide">
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3">
<a href="/tags/private/" class="flex items-center">
<p class="text-sm font-sm text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Private">
EN
</p>
</a>
<a href="/zh-cn/tags/private/" class="flex items-center">
<p class="text-sm font-sm text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Private">
中文
</p>
</a>
</div>
</div>
</div>
</div>
@@ -468,41 +437,6 @@
<span></span> <span></span>
<div>
<div class="cursor-pointer flex items-center nested-menu">
<span class="ltr:mr-1 rtl:ml-1">
<span class="relative block icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"/></svg>
</span>
</span>
<div class="text-sm font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Private">EN</div>
</div>
<div class="absolute menuhide">
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3">
<a href="/tags/private/" class="flex items-center">
<p class="text-sm font-sm text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Private">
EN
</p>
</a>
<a href="/zh-cn/tags/private/" class="flex items-center">
<p class="text-sm font-sm text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Private">
中文
</p>
</a>
</div>
</div>
</div>
</div>
@@ -582,10 +516,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -709,9 +643,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -836,7 +770,7 @@
<header> <header>
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Private</h1> <h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">PDF Collection</h1>
<div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden"> <div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
@@ -867,181 +801,135 @@
</div> </div>
<script>
var oid = "views_notes\/pdf\/_index.md"
var oid_likes = "likes_notes\/pdf\/_index.md"
</script>
<script type="text/javascript" src="/js/page.min.0860cf4e04fa2d72cc33ddba263083464d48f67de06114529043cb4623319efed4f484fd7f1730df5abea0e2da6f3538855634081d02f2d6e920b956f063e823.js" integrity="sha512-CGDPTgT6LXLMM926JjCDRk1I9n3gYRRSkEPLRiMxnv7U9IT9fxcw31q&#43;oOLabzU4hVY0CB0C8tbpILlW8GPoIw=="></script>
</header> </header>
<section class="mt-12 prose flex max-w-full flex-col dark:prose-invert lg:flex-row">
<section class="flex flex-col max-w-full mt-0 mb-5 prose dark:prose-invert lg:flex-row"> <div class="order-first px-0 lg:order-last lg:max-w-xs ltr:lg:pl-8 rtl:lg:pr-8">
<div class="toc ltr:pl-5 rtl:pr-5 lg:sticky lg:top-10">
<details open id="TOCView"
class="toc-right mt-0 overflow-y-scroll overscroll-contain scrollbar-thin scrollbar-track-neutral-200 scrollbar-thumb-neutral-400 dark:scrollbar-track-neutral-800 dark:scrollbar-thumb-neutral-600 rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 hidden lg:block">
<summary
class="block py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden">
Table of Contents
</summary>
<div
class="min-w-[220px] py-2 border-dotted ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600">
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#handwritten">Handwritten</a></li>
</ul>
</li>
</ul>
</nav>
</div>
</details>
<details class="toc-inside mt-0 overflow-hidden rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 lg:hidden">
<summary
class="py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden">
Table of Contents
</summary>
<div
class="py-2 border-dotted border-neutral-300 ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600">
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#handwritten">Handwritten</a></li>
</ul>
</li>
</ul>
</nav>
</div>
</details>
</section> <script>
var margin = 200;
var marginError = 50;
(function () {
var $window = $(window);
var $toc = $('#TOCView');
var tocHeight = $toc.height();
function onResize() {
var windowAndMarginHeight = $window.height() - margin;
if(tocHeight >= windowAndMarginHeight) {
$toc.css("overflow-y", "scroll")
$toc.css("max-height", (windowAndMarginHeight + marginError) + "px")
} else {
$toc.css("overflow-y", "hidden")
$toc.css("max-height", "9999999px")
}
}
$window.on('resize', onResize);
$(document).ready(onResize);
})();
</script>
<section class="space-y-10 w-full">
<a class="flex flex-wrap md:flex-nowrap article border border-neutral-200 dark:border-neutral-700 border-2 rounded-md overflow-hidden" href="/projects/self_host/stock_bot/">
<div class="w-full md:w-auto h-full thumbnail nozoom " style="background-image:url(/projects/self_host/stock_bot/feature_hu_a34f2b6ec6aba749.png);"></div>
<div class=" p-4">
<div class="items-center text-left text-xl font-semibold">
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/projects/self_host/stock_bot/">StockBot</div>
</div> </div>
<div class="text-sm text-neutral-500 dark:text-neutral-400"> </div>
<div class="min-w-0 min-h-0 max-w-prose">
<p>I have created a PDF collection (<a href="/projects/self_host/mac_mini_m4/05_pdf_shelf">PDFDing</a>) for individual PDF files primarily for personal use. Additionally, I will share my personal notes in PDF format. The theme I am using does not support Ketax well (it renders slowly on poor connections), and since my notes contain many equations, PDF is the best option. I plan to upload my notes on a weekly or monthly basis. Here are the details:</p>
<h2 class="relative group">Handwritten
<div id="handwritten" class="anchor"></div>
<span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
<a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700"
style="text-decoration-line: none !important;" href="#handwritten" aria-label="Anchor">#</a>
</span>
</h2>
<div class="flex flex-row flex-wrap items-center">
<span>142 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">1 min</span>
</div>
<div class="flex flex-row flex-wrap items-center">
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/private/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Private
</span>
</span>
</span>
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/ongoing/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Ongoing
</span>
</span>
</span>
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/original/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
Original
</span>
</span>
</span>
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open(&#34;/tags/ai/&#34;,'_self');return false;">
<span class="flex" style="cursor: pointer;">
<span class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
AI
</span>
</span>
</span>
</div>
</div>
</div> </div>
</a>
</section>
<section class="mt-10 prose dark:prose-invert">
<p class="py-8 border-t">
<em>There are no articles to list here yet.</em>
</p>
</section> </section>
<div id="top-scroller" class="pointer-events-none absolute top-[110vh] bottom-0 w-12 ltr:right-0 rtl:left-0">
<a href="#the-top"
class="pointer-events-auto sticky top-[calc(100vh-5.5rem)] flex h-12 w-12 mb-16 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400"
aria-label="Scroll to top" title="Scroll to top">
&uarr;
</a>
</div>
</main><footer id="site-footer" class="py-10 print:hidden"> </main><footer id="site-footer" class="py-10 print:hidden">

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>PDF Collection on SWangNice</title>
<link>http://localhost:1313/notes/pdf/</link>
<description>Recent content in PDF Collection on SWangNice</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
<copyright>© 2025 SWang</copyright>
<lastBuildDate>Fri, 20 Sep 2024 04:17:50 +0000</lastBuildDate><atom:link href="http://localhost:1313/notes/pdf/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>http://localhost:1313/notes/pdf/</title>
<link rel="canonical" href="http://localhost:1313/notes/pdf/">
<meta name="robots" content="noindex">
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=http://localhost:1313/notes/pdf/">
</head>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 950 KiB

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light" <html lang="en" dir="ltr" class="scroll-smooth" data-default-appearance="light"
data-auto-appearance="true"><head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script> data-auto-appearance="true"><head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="content-language" content="en" /> <meta http-equiv="content-language" content="en" />
@@ -161,10 +161,10 @@
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-base font-medium" title=""> <p class="text-base font-medium" title="About">
Home About
</p> </p>
</a> </a>
@@ -285,7 +285,7 @@
<div> <div>
<div class="cursor-pointer flex items-center nested-menu"> <div class="cursor-pointer flex items-center nested-menu">
<a class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title=""> <a href="/life/" class="text-base font-medium text-gray-500 hover:text-primary-600 dark:hover:text-primary-400" title="Rest Here">
RestHere RestHere
</a> </a>
<span> <span>
@@ -514,10 +514,10 @@
<li class="mt-1"> <li class="mt-1">
<a href="/en/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/about/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="About">
Home About
</p> </p>
</a> </a>
</li> </li>
@@ -641,9 +641,9 @@
<li class="mt-1"> <li class="mt-1">
<a href="" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"> <a href="/life/" class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400">
<p class="text-bg font-bg" title=""> <p class="text-bg font-bg" title="Rest Here">
RestHere RestHere
</p> </p>
<span> <span>
@@ -826,11 +826,126 @@
</section> </section>
<section class="mt-10 prose dark:prose-invert">
<p class="py-8 border-t">
<em>There are no articles to list here yet.</em>
</p>
</section>
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3">
<a href="/projects/embedded/pet_feeder/" class="min-w-full">
<div class="min-h-full border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative">
<div class="w-full thumbnail_card nozoom" style="background-image:url(/projects/embedded/pet_feeder/feature_hu_220bc25b73a6b8fe.jpg);"></div>
<div class="px-6 py-4">
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/projects/embedded/pet_feeder/">A pet feeder</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
<div class="flex flex-row flex-wrap items-center">
<span>1783 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">9 mins</span>
</div>
<div class="flex flex-row flex-wrap items-center">
</div>
</div>
</div>
<div class="px-6 pt-4 pb-2">
</div>
</div>
</a>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Some files were not shown because too many files have changed in this diff Show More