diff --git a/index.html b/index.html index 1912ca586..a704729a4 100644 --- a/index.html +++ b/index.html @@ -1198,6 +1198,32 @@ ul.courses li:hover { +
+
+ + + Forgejo Git Forge for Apache NuttX RTOS (Experimental) + + + + in lupyuen.github.io + +
+ + 12 January 2025 + +
+ +
+
+

Life Without GitHub: What's it like? Today we talk about Forgejo Git Forge, and whether Apache NuttX RTOS could possibly switch from GitHub to our own Git Forge.

+
+
+ +
+ + +
@@ -1221,8 +1247,8 @@ ul.courses li:hover {
- - + +
@@ -1247,8 +1273,8 @@ ul.courses li:hover {
- - + +
@@ -1273,8 +1299,8 @@ ul.courses li:hover {
- - + +
@@ -1299,8 +1325,8 @@ ul.courses li:hover {
- - + +
@@ -1325,8 +1351,8 @@ ul.courses li:hover {
- - + +
@@ -1351,8 +1377,8 @@ ul.courses li:hover {
- - + +
@@ -1377,8 +1403,8 @@ ul.courses li:hover {
- - + +
@@ -1403,8 +1429,8 @@ ul.courses li:hover {
- - + +
@@ -1429,8 +1455,8 @@ ul.courses li:hover {
- - + +
@@ -1455,8 +1481,8 @@ ul.courses li:hover {
- - + +
@@ -1481,8 +1507,8 @@ ul.courses li:hover {
- - + +
@@ -1507,8 +1533,8 @@ ul.courses li:hover {
- - + +
@@ -1533,8 +1559,8 @@ ul.courses li:hover {
- - + +
@@ -1558,32 +1584,6 @@ ul.courses li:hover {
-
- - - -
-
- - - (Slides) TinyEMU RISC-V Emulator for Apache NuttX RTOS - - - - in NuttX International Workshop 2024 - -
- - 13 June 2023 - -
- -
-
-

What if we could boot and test Apache NuttX RTOS inside a Web Browser? This presentation explains how we created a NuttX Emulator in WebAssembly, based on TinyEMU RISC-V Emulator.

-
-
-
@@ -1592,7 +1592,7 @@ ul.courses li:hover {
- (Video) TinyEMU RISC-V Emulator for Apache NuttX RTOS + (Slides) TinyEMU RISC-V Emulator for Apache NuttX RTOS @@ -1618,7 +1618,7 @@ ul.courses li:hover {
- (Slides) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS + (Video) TinyEMU RISC-V Emulator for Apache NuttX RTOS @@ -1632,7 +1632,7 @@ ul.courses li:hover {
-

We ported Apache NuttX RTOS to PINE64’s Ox64 BL808 64-bit Single-Board Computer. And we created an Emulator for Ox64 SBC that runs in the Web Browser, thanks to TinyEMU RISC-V Emulator. Today we run Daily Automated Testing of NuttX on the Ox64 Emulator. In this presentation we explain how we used the Ox64 Emulator in our experiments with WebAssembly and NuttX: (1) Testing the TCC RISC-V Compiler in WebAssembly (2) Porting the QuickJS JavaScript Engine to NuttX (3) Creating a Drag-n-Drop App Builder for NuttX

+

What if we could boot and test Apache NuttX RTOS inside a Web Browser? This presentation explains how we created a NuttX Emulator in WebAssembly, based on TinyEMU RISC-V Emulator.

@@ -1644,7 +1644,7 @@ ul.courses li:hover {
- (Video) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS + (Slides) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS @@ -1670,7 +1670,7 @@ ul.courses li:hover {
- (Slides) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript + (Video) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS @@ -1684,7 +1684,7 @@ ul.courses li:hover {
-

Today we can get Real-Time NuttX Logs from our RISC-V Devices: Ox64 SBC (Web Serial API) and Ox64 Emulator (Term.js). What if we could analyse the RISC-V Logs in Real-Time? And show the results in the Web Browser? Let’s do it with PureScript, the Functional Language that compiles to JavaScript. We’ll also support Online Scripting of PureScript for Log Parsing. Can we enhance the NuttX Developer Experience with Functional Programming Tools like PureScript? Or newer hardware like PINE64 Ox64 SBC and Sophgo SG2000 / Milk-V Duo S? Let’s chat about this.

+

We ported Apache NuttX RTOS to PINE64’s Ox64 BL808 64-bit Single-Board Computer. And we created an Emulator for Ox64 SBC that runs in the Web Browser, thanks to TinyEMU RISC-V Emulator. Today we run Daily Automated Testing of NuttX on the Ox64 Emulator. In this presentation we explain how we used the Ox64 Emulator in our experiments with WebAssembly and NuttX: (1) Testing the TCC RISC-V Compiler in WebAssembly (2) Porting the QuickJS JavaScript Engine to NuttX (3) Creating a Drag-n-Drop App Builder for NuttX

@@ -1696,7 +1696,7 @@ ul.courses li:hover {
- (Video) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript + (Slides) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript @@ -1718,6 +1718,32 @@ ul.courses li:hover { +
+
+ + + (Video) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript + + + + in NuttX International Workshop 2024 + +
+ + 13 June 2023 + +
+ +
+
+

Today we can get Real-Time NuttX Logs from our RISC-V Devices: Ox64 SBC (Web Serial API) and Ox64 Emulator (Term.js). What if we could analyse the RISC-V Logs in Real-Time? And show the results in the Web Browser? Let’s do it with PureScript, the Functional Language that compiles to JavaScript. We’ll also support Online Scripting of PureScript for Log Parsing. Can we enhance the NuttX Developer Experience with Functional Programming Tools like PureScript? Or newer hardware like PINE64 Ox64 SBC and Sophgo SG2000 / Milk-V Duo S? Let’s chat about this.

+
+
+ +
+ + +
@@ -1741,8 +1767,8 @@ ul.courses li:hover {
- - + +
@@ -1767,8 +1793,8 @@ ul.courses li:hover {
- - + +
@@ -1793,8 +1819,8 @@ ul.courses li:hover {
- - + +
@@ -1819,8 +1845,8 @@ ul.courses li:hover {
- - + +
@@ -1845,8 +1871,8 @@ ul.courses li:hover {
- - + +
@@ -1871,8 +1897,8 @@ ul.courses li:hover {
- - + +
@@ -1897,8 +1923,8 @@ ul.courses li:hover {
- - + +
@@ -1923,8 +1949,8 @@ ul.courses li:hover {
- - + +
@@ -1949,8 +1975,8 @@ ul.courses li:hover {
- - + +
@@ -1975,8 +2001,8 @@ ul.courses li:hover {
- - + +
@@ -2001,8 +2027,8 @@ ul.courses li:hover {
- - + +
@@ -2027,8 +2053,8 @@ ul.courses li:hover {
- - + +
@@ -2053,8 +2079,8 @@ ul.courses li:hover {
- - + +
@@ -2079,8 +2105,8 @@ ul.courses li:hover {
- - + +
@@ -2105,8 +2131,8 @@ ul.courses li:hover {
- - + +
@@ -2131,8 +2157,8 @@ ul.courses li:hover {
- - + +
@@ -2157,8 +2183,8 @@ ul.courses li:hover {
- - + +
@@ -2183,8 +2209,8 @@ ul.courses li:hover {
- - + +
@@ -2209,8 +2235,8 @@ ul.courses li:hover {
- - + +
@@ -2235,8 +2261,8 @@ ul.courses li:hover {
- - + +
@@ -2261,8 +2287,8 @@ ul.courses li:hover {
- - + +
@@ -2286,32 +2312,6 @@ ul.courses li:hover {
-
- - - -
-
- - - (Slides) Apache NuttX RTOS for PINE64 PinePhone - - - - in NuttX International Workshop 2023 - -
- - 29 September 2023 - -
- -
-
-

Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS on our phone? Over the past year, we have ported NuttX to PINE64 PinePhone as an Educational Experiment. Today we can run NuttX Touchscreen Apps on PinePhone, based on Allwinner A64 SoC with Arm64 CPUs. NuttX on PinePhone will soon support Phone Calls and Text Messages on the 4G LTE Network. We hope NuttX will become a valuable tool for teaching the inner workings of modern smartphones.

-
-
-
@@ -2320,7 +2320,7 @@ ul.courses li:hover {
- (Video) Apache NuttX RTOS for PINE64 PinePhone + (Slides) Apache NuttX RTOS for PINE64 PinePhone @@ -2346,7 +2346,7 @@ ul.courses li:hover {
- (Slides) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input + (Video) Apache NuttX RTOS for PINE64 PinePhone @@ -2360,7 +2360,7 @@ ul.courses li:hover {
-

This presentation explains how we built the NuttX Drivers to support Touchscreen Apps on PINE64 PinePhone: (1) MIPI DSI on Allwinner A64 SoC (2) Allwinner Display Engine (3) Goodix I2C Touch Panel (4) Integration with LVGL Graphics Library. To derisk the development, we prototyped the NuttX Drivers in the Zig Programming Language, before rewriting to C.

+

Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS on our phone? Over the past year, we have ported NuttX to PINE64 PinePhone as an Educational Experiment. Today we can run NuttX Touchscreen Apps on PinePhone, based on Allwinner A64 SoC with Arm64 CPUs. NuttX on PinePhone will soon support Phone Calls and Text Messages on the 4G LTE Network. We hope NuttX will become a valuable tool for teaching the inner workings of modern smartphones.

@@ -2372,7 +2372,7 @@ ul.courses li:hover {
- (Video) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input + (Slides) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input @@ -2398,7 +2398,7 @@ ul.courses li:hover {
- (Slides) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser + (Video) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input @@ -2412,7 +2412,7 @@ ul.courses li:hover {
-

What if we could prototype and test Touchscreen Apps in the Web Browser, before running on a real device? In this presentation we explain how we compiled the LVGL Graphics Library to WebAssembly with Zig Compiler. We created a NuttX App in the Zig Programming Language that runs in the Web Browser, calling the LVGL Library in WebAssembly. We hope that this will someday enable NuttX Apps to be created and tested easily in the Web Browser.

+

This presentation explains how we built the NuttX Drivers to support Touchscreen Apps on PINE64 PinePhone: (1) MIPI DSI on Allwinner A64 SoC (2) Allwinner Display Engine (3) Goodix I2C Touch Panel (4) Integration with LVGL Graphics Library. To derisk the development, we prototyped the NuttX Drivers in the Zig Programming Language, before rewriting to C.

@@ -2424,7 +2424,7 @@ ul.courses li:hover {
- (Video) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser + (Slides) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser @@ -2446,6 +2446,32 @@ ul.courses li:hover { +
+ + + 29 September 2023 + +
+ +
+
+

What if we could prototype and test Touchscreen Apps in the Web Browser, before running on a real device? In this presentation we explain how we compiled the LVGL Graphics Library to WebAssembly with Zig Compiler. We created a NuttX App in the Zig Programming Language that runs in the Web Browser, calling the LVGL Library in WebAssembly. We hope that this will someday enable NuttX Apps to be created and tested easily in the Web Browser.

+
+
+ +
+ + +
@@ -2469,8 +2495,8 @@ ul.courses li:hover {
- - + +
@@ -2494,32 +2520,6 @@ ul.courses li:hover {
-
- - - -
- - - 19 August 2023 - -
- -
-
-

Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS (Real-Time Operating System) on our phone? Over the past year, we have written a series of 24 articles explaining the inner workings of PINE64 PinePhone, and how we implemented the smartphone features with Apache NuttX RTOS. The articles cover the essential (and esoteric) topics on smartphone technology: MIPI DSI LCD Display, I2C Touch Panel, USB Controller, LTE Modem, Accelerometer / Gyroscope, Arm64 Interrupts and many more. We are also experimenting with newer, easier ways to create Smartphone Apps, with LVGL Graphics Library, Zig Programming Language, WebAssembly Simulation and Arm64 Emulation.

-
-
-
@@ -2528,7 +2528,7 @@ ul.courses li:hover {
- (Video) What's inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System + (Slides) What's inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System @@ -2550,6 +2550,32 @@ ul.courses li:hover { +
+ + + 19 August 2023 + +
+ +
+
+

Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS (Real-Time Operating System) on our phone? Over the past year, we have written a series of 24 articles explaining the inner workings of PINE64 PinePhone, and how we implemented the smartphone features with Apache NuttX RTOS. The articles cover the essential (and esoteric) topics on smartphone technology: MIPI DSI LCD Display, I2C Touch Panel, USB Controller, LTE Modem, Accelerometer / Gyroscope, Arm64 Interrupts and many more. We are also experimenting with newer, easier ways to create Smartphone Apps, with LVGL Graphics Library, Zig Programming Language, WebAssembly Simulation and Arm64 Emulation.

+
+
+
+
+ + +
@@ -2573,8 +2599,8 @@ ul.courses li:hover {
- - + +
@@ -2599,8 +2625,8 @@ ul.courses li:hover {
- - + +
@@ -2625,8 +2651,8 @@ ul.courses li:hover {
- - + +
@@ -2651,8 +2677,8 @@ ul.courses li:hover {
- - + +
@@ -2677,8 +2703,8 @@ ul.courses li:hover {
- - + +
@@ -2703,8 +2729,8 @@ ul.courses li:hover {
- - + +
@@ -2729,8 +2755,8 @@ ul.courses li:hover {
- - + +
@@ -2755,8 +2781,8 @@ ul.courses li:hover {
- - + +
@@ -2781,8 +2807,8 @@ ul.courses li:hover {
- - + +
@@ -2807,8 +2833,8 @@ ul.courses li:hover {
- - + +
@@ -2833,8 +2859,8 @@ ul.courses li:hover {
- - + +
@@ -2859,8 +2885,8 @@ ul.courses li:hover {
- - + +
@@ -2885,8 +2911,8 @@ ul.courses li:hover {
- - + +
@@ -2911,8 +2937,8 @@ ul.courses li:hover {
- - + +
@@ -2937,8 +2963,8 @@ ul.courses li:hover {
- - + +
@@ -2963,8 +2989,8 @@ ul.courses li:hover {
- - + +
@@ -2989,8 +3015,8 @@ ul.courses li:hover {
- - + +
@@ -3015,8 +3041,8 @@ ul.courses li:hover {
- - + +
@@ -3041,8 +3067,8 @@ ul.courses li:hover {
- - + +
@@ -3067,8 +3093,8 @@ ul.courses li:hover {
- - + +
@@ -3093,8 +3119,8 @@ ul.courses li:hover {
- - + +
@@ -3119,8 +3145,8 @@ ul.courses li:hover {
- - + +
@@ -3145,8 +3171,8 @@ ul.courses li:hover {
- - + +
@@ -3171,8 +3197,8 @@ ul.courses li:hover {
- - + +
@@ -3197,8 +3223,8 @@ ul.courses li:hover {
- - + +
@@ -3223,8 +3249,8 @@ ul.courses li:hover {
- - + +
@@ -3249,8 +3275,8 @@ ul.courses li:hover {
- - + +
@@ -3275,8 +3301,8 @@ ul.courses li:hover {
- - + +
@@ -3301,8 +3327,8 @@ ul.courses li:hover {
- - + +
@@ -3327,8 +3353,8 @@ ul.courses li:hover {
- - + +
@@ -3353,8 +3379,8 @@ ul.courses li:hover {
- - + +
@@ -3379,8 +3405,8 @@ ul.courses li:hover {
- - + +
@@ -3405,8 +3431,8 @@ ul.courses li:hover {
- - + +
@@ -3431,8 +3457,8 @@ ul.courses li:hover {
- - + +
@@ -3457,8 +3483,8 @@ ul.courses li:hover {
- - + +
@@ -3483,8 +3509,8 @@ ul.courses li:hover {
- - + +
@@ -3509,8 +3535,8 @@ ul.courses li:hover {
- - + +
@@ -3535,8 +3561,8 @@ ul.courses li:hover {
- - + +
@@ -3561,8 +3587,8 @@ ul.courses li:hover {
- - + +
@@ -3587,8 +3613,8 @@ ul.courses li:hover {
- - + +
@@ -3613,8 +3639,8 @@ ul.courses li:hover {
- - + +
@@ -3639,8 +3665,8 @@ ul.courses li:hover {
- - + +
@@ -3665,8 +3691,8 @@ ul.courses li:hover {
- - + +
@@ -3691,8 +3717,8 @@ ul.courses li:hover {
- - + +
@@ -3717,8 +3743,8 @@ ul.courses li:hover {
- - + +
@@ -3743,8 +3769,8 @@ ul.courses li:hover {
- - + +
@@ -3769,8 +3795,8 @@ ul.courses li:hover {
- - + +
@@ -3795,8 +3821,8 @@ ul.courses li:hover {
- - + +
@@ -3821,8 +3847,8 @@ ul.courses li:hover {
- - + +
@@ -3847,8 +3873,8 @@ ul.courses li:hover {
- - + +
@@ -3873,8 +3899,8 @@ ul.courses li:hover {
- - + +
@@ -3899,8 +3925,8 @@ ul.courses li:hover {
- - + +
@@ -3925,8 +3951,8 @@ ul.courses li:hover {
- - + +
@@ -3951,8 +3977,8 @@ ul.courses li:hover {
- - + +
@@ -3977,8 +4003,8 @@ ul.courses li:hover {
- - + +
@@ -4003,8 +4029,8 @@ ul.courses li:hover {
- - + +
@@ -4029,8 +4055,8 @@ ul.courses li:hover {
- - + +
@@ -4055,8 +4081,8 @@ ul.courses li:hover {
- - + +
@@ -4081,8 +4107,8 @@ ul.courses li:hover {
- - + +
@@ -4107,8 +4133,8 @@ ul.courses li:hover {
- - + +
@@ -4133,8 +4159,8 @@ ul.courses li:hover {
- - + +
@@ -4159,8 +4185,8 @@ ul.courses li:hover {
- - + +
@@ -4185,8 +4211,8 @@ ul.courses li:hover {
- - + +
@@ -4211,8 +4237,8 @@ ul.courses li:hover {
- - + +
@@ -4237,8 +4263,8 @@ ul.courses li:hover {
- - + +
@@ -4263,8 +4289,8 @@ ul.courses li:hover {
- - + +
@@ -4289,8 +4315,8 @@ ul.courses li:hover {
- - + +
@@ -4315,8 +4341,8 @@ ul.courses li:hover {
- - + +
@@ -4341,8 +4367,8 @@ ul.courses li:hover {
- - + +
@@ -4367,8 +4393,8 @@ ul.courses li:hover {
- - + +
@@ -4393,8 +4419,8 @@ ul.courses li:hover {
- - + +
@@ -4419,8 +4445,8 @@ ul.courses li:hover {
- - + +
@@ -4445,8 +4471,8 @@ ul.courses li:hover {
- - + +
@@ -4471,8 +4497,8 @@ ul.courses li:hover {
- - + +
@@ -4497,8 +4523,8 @@ ul.courses li:hover {
- - + +
@@ -4523,8 +4549,8 @@ ul.courses li:hover {
- - + +
@@ -4549,8 +4575,8 @@ ul.courses li:hover {
- - + +
@@ -4575,8 +4601,8 @@ ul.courses li:hover {
- - + +
@@ -4601,8 +4627,8 @@ ul.courses li:hover {
- - + +
@@ -4627,8 +4653,8 @@ ul.courses li:hover {
- - + +
@@ -4653,8 +4679,8 @@ ul.courses li:hover {
- - + +
@@ -4679,8 +4705,8 @@ ul.courses li:hover {
- - + +
@@ -4705,8 +4731,8 @@ ul.courses li:hover {
- - + +
@@ -4731,8 +4757,8 @@ ul.courses li:hover {
- - + +
@@ -4757,8 +4783,8 @@ ul.courses li:hover {
- - + +
@@ -4783,8 +4809,8 @@ ul.courses li:hover {
- - + +
@@ -4809,8 +4835,8 @@ ul.courses li:hover {
- - + +
@@ -4835,8 +4861,8 @@ ul.courses li:hover {
- - + +
@@ -4861,8 +4887,8 @@ ul.courses li:hover {
- - + +
@@ -4887,8 +4913,8 @@ ul.courses li:hover {
- - + +
@@ -4913,8 +4939,8 @@ ul.courses li:hover {
- - + +
@@ -4939,8 +4965,8 @@ ul.courses li:hover {
- - + +
@@ -4965,8 +4991,8 @@ ul.courses li:hover {
- - + +
@@ -4991,8 +5017,8 @@ ul.courses li:hover {
- - + +
@@ -5017,8 +5043,8 @@ ul.courses li:hover {
- - + +
@@ -5043,8 +5069,8 @@ ul.courses li:hover {
- - + +
@@ -5069,8 +5095,8 @@ ul.courses li:hover {
- - + +
@@ -5095,8 +5121,8 @@ ul.courses li:hover {
- - + +
@@ -5121,8 +5147,8 @@ ul.courses li:hover {
- - + +
@@ -5147,8 +5173,8 @@ ul.courses li:hover {
- - + +
@@ -5173,8 +5199,8 @@ ul.courses li:hover {
- - + +
@@ -5199,8 +5225,8 @@ ul.courses li:hover {
- - + +
@@ -5225,8 +5251,8 @@ ul.courses li:hover {
- - + +
@@ -5251,8 +5277,8 @@ ul.courses li:hover {
- - + +
@@ -5277,8 +5303,8 @@ ul.courses li:hover {
- - + +
@@ -5303,8 +5329,8 @@ ul.courses li:hover {
- - + +
@@ -5329,8 +5355,8 @@ ul.courses li:hover {
- - + +
@@ -5355,8 +5381,8 @@ ul.courses li:hover {
- - + +
@@ -5380,32 +5406,6 @@ ul.courses li:hover {
-
- - - -
- - - 11 September 2020 - -
- -
-
-

Tired of pointer problems on Embedded C? It’s time to switch over to a safer, simpler way of coding: Embedded Rust. We’ll look at Rust hosted on RIOT and how it’s used to create LVGL watch apps for PineTime Smart Watch.

-
-
-
@@ -5414,7 +5414,7 @@ ul.courses li:hover {
- Safer, Simpler Embedded Programs with Rust on RIOT (Video) + Safer, Simpler Embedded Programs with Rust on RIOT (Presentation) @@ -5436,6 +5436,32 @@ ul.courses li:hover { +
+ + + 11 September 2020 + +
+ +
+
+

Tired of pointer problems on Embedded C? It’s time to switch over to a safer, simpler way of coding: Embedded Rust. We’ll look at Rust hosted on RIOT and how it’s used to create LVGL watch apps for PineTime Smart Watch.

+
+
+
+
+ + +
@@ -5459,8 +5485,8 @@ ul.courses li:hover {
- - + +
@@ -5485,8 +5511,8 @@ ul.courses li:hover {
- - + +
@@ -5511,8 +5537,8 @@ ul.courses li:hover {
- - + +
@@ -5537,8 +5563,8 @@ ul.courses li:hover {
- - + +
@@ -5563,8 +5589,8 @@ ul.courses li:hover {
- - + +
@@ -5589,8 +5615,8 @@ ul.courses li:hover {
- - + +
@@ -5615,8 +5641,8 @@ ul.courses li:hover {
- - + +
@@ -5641,8 +5667,8 @@ ul.courses li:hover {
- - + +
@@ -5667,8 +5693,8 @@ ul.courses li:hover {
- - + +
@@ -5693,8 +5719,8 @@ ul.courses li:hover {
- - + +
@@ -5719,8 +5745,8 @@ ul.courses li:hover {
- - + +
@@ -5745,8 +5771,8 @@ ul.courses li:hover {
- - + +
@@ -5771,8 +5797,8 @@ ul.courses li:hover {
- - + +
@@ -5797,8 +5823,8 @@ ul.courses li:hover {
- - + +
@@ -5823,8 +5849,8 @@ ul.courses li:hover {
- - + +
@@ -5849,8 +5875,8 @@ ul.courses li:hover {
- - + +
@@ -5875,8 +5901,8 @@ ul.courses li:hover {
- - + +
@@ -5901,8 +5927,8 @@ ul.courses li:hover {
- - + +
@@ -5927,8 +5953,8 @@ ul.courses li:hover {
- - + +
@@ -5953,8 +5979,8 @@ ul.courses li:hover {
- - + +
@@ -5979,8 +6005,8 @@ ul.courses li:hover {
- - + +
@@ -6005,8 +6031,8 @@ ul.courses li:hover {
- - + +
@@ -6031,8 +6057,8 @@ ul.courses li:hover {
- - + +
@@ -6057,8 +6083,8 @@ ul.courses li:hover {
- - + +
@@ -6083,8 +6109,8 @@ ul.courses li:hover {
- - + +
@@ -6109,8 +6135,8 @@ ul.courses li:hover {
- - + +
@@ -6135,8 +6161,8 @@ ul.courses li:hover {
- - + +
@@ -6161,8 +6187,8 @@ ul.courses li:hover {
- - + +
@@ -6187,8 +6213,8 @@ ul.courses li:hover {
- - + +
@@ -6213,8 +6239,8 @@ ul.courses li:hover {
- - + +
@@ -6239,8 +6265,8 @@ ul.courses li:hover {
- - + +
@@ -6265,8 +6291,8 @@ ul.courses li:hover {
- - + +
@@ -6291,8 +6317,8 @@ ul.courses li:hover {
- - + +
@@ -6317,8 +6343,8 @@ ul.courses li:hover {
- - + +
@@ -6343,8 +6369,8 @@ ul.courses li:hover {
- - + +
@@ -6369,8 +6395,8 @@ ul.courses li:hover {
- - + +
@@ -6395,8 +6421,8 @@ ul.courses li:hover {
- - + +
@@ -6421,8 +6447,8 @@ ul.courses li:hover {
- - + +
@@ -6447,8 +6473,8 @@ ul.courses li:hover {
- - + +
@@ -6473,8 +6499,8 @@ ul.courses li:hover {
- - + +
@@ -6499,8 +6525,8 @@ ul.courses li:hover {
- - + +
@@ -6525,8 +6551,8 @@ ul.courses li:hover {
- - + +
@@ -6551,8 +6577,8 @@ ul.courses li:hover {
- - + +
@@ -6577,8 +6603,8 @@ ul.courses li:hover {
- - + +
@@ -6603,8 +6629,8 @@ ul.courses li:hover {
- - + +
@@ -6629,8 +6655,8 @@ ul.courses li:hover {
- - + +
@@ -6655,8 +6681,8 @@ ul.courses li:hover {
- - + +
@@ -6681,8 +6707,8 @@ ul.courses li:hover {
- - + +
@@ -6707,8 +6733,8 @@ ul.courses li:hover {
- - + +
@@ -6733,8 +6759,8 @@ ul.courses li:hover {
- - + +
@@ -6759,8 +6785,8 @@ ul.courses li:hover {
- - + +
@@ -6785,8 +6811,8 @@ ul.courses li:hover {
- - + +
@@ -6811,8 +6837,8 @@ ul.courses li:hover {
- - + +
@@ -6837,8 +6863,8 @@ ul.courses li:hover {
- - + +
@@ -6863,8 +6889,8 @@ ul.courses li:hover {
- - + +
@@ -6889,8 +6915,8 @@ ul.courses li:hover {
- - + +
@@ -6915,8 +6941,8 @@ ul.courses li:hover {
- - + +
@@ -6941,8 +6967,8 @@ ul.courses li:hover {
- - + +
@@ -6967,8 +6993,8 @@ ul.courses li:hover {
- - + +
@@ -6993,8 +7019,8 @@ ul.courses li:hover {
- - + +
@@ -7019,8 +7045,8 @@ ul.courses li:hover {
- - + +
@@ -7045,8 +7071,8 @@ ul.courses li:hover {
- - + +
@@ -7071,8 +7097,8 @@ ul.courses li:hover {
- - + +
@@ -7097,8 +7123,8 @@ ul.courses li:hover {
- - + +
@@ -7123,8 +7149,8 @@ ul.courses li:hover {
- - + +
@@ -7149,8 +7175,8 @@ ul.courses li:hover {
- - + +
@@ -7175,8 +7201,8 @@ ul.courses li:hover {
- - + +
@@ -7201,8 +7227,8 @@ ul.courses li:hover {
- - + +
@@ -7227,8 +7253,8 @@ ul.courses li:hover {
- - + +
@@ -7253,8 +7279,8 @@ ul.courses li:hover {
- - + +
@@ -7279,8 +7305,8 @@ ul.courses li:hover {
- - + +
@@ -7305,8 +7331,8 @@ ul.courses li:hover {
- - + +
@@ -7331,8 +7357,8 @@ ul.courses li:hover {
- - + +
@@ -7357,8 +7383,8 @@ ul.courses li:hover {
- - + +
@@ -7383,8 +7409,8 @@ ul.courses li:hover {
- - + +
@@ -7409,8 +7435,8 @@ ul.courses li:hover {
- - + +
@@ -7435,8 +7461,8 @@ ul.courses li:hover {
- - + +
@@ -7461,8 +7487,8 @@ ul.courses li:hover {
- - + +
@@ -7487,8 +7513,8 @@ ul.courses li:hover {
- - + +
@@ -7513,8 +7539,8 @@ ul.courses li:hover {
- - + +
@@ -7539,8 +7565,8 @@ ul.courses li:hover {
- - + +
@@ -7565,8 +7591,8 @@ ul.courses li:hover {
- - + +
@@ -7591,8 +7617,8 @@ ul.courses li:hover {
- - + +
diff --git a/rss.xml b/rss.xml index 0755ea542..ca80c8e53 100644 --- a/rss.xml +++ b/rss.xml @@ -3,6 +3,13 @@ lupyuen https://lupyuen.github.io IoT Techie and Educator + + Forgejo Git Forge for Apache NuttX RTOS (Experimental) + https://lupyuen.github.io/articles/forgejo + + https://lupyuen.github.io/articles/forgejo + Sun, 12 Jan 2025 00:00:00 +0000 + Git Bisecting a Bug (Apache NuttX RTOS) https://lupyuen.github.io/articles/bisect diff --git a/sitemap.xml b/sitemap.xml index 3c75a2b77..91cdcea56 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,7 +2,11 @@ https://lupyuen.github.io/ - 2025-01-05T00:00:00+00:00 + 2025-01-12T00:00:00+00:00 + + + https://lupyuen.github.io/articles/forgejo + 2025-01-12T00:00:00+00:00 https://lupyuen.github.io/articles/bisect diff --git a/src/forgejo.md b/src/forgejo.md index 626df90d9..b8680a358 100644 --- a/src/forgejo.md +++ b/src/forgejo.md @@ -140,6 +140,7 @@ That's why we need __Two Mirror Repos__: Read-Only and Read-Write... | Auto-Sync by Forgejo | Manual-Sync by Our Script | Can't create PRs | Can create PRs | Can't migrate PRs and Issues | Can migrate PRs and Issues
(but ran into problems) +| [_(Explained here)_](https://lupyuen.org/articles/forgejo.html#appendix-read-only-mirror) | [_(Explained here)_](https://lupyuen.github.io/articles/forgejo#appendix-read-write-mirror) [(Blocked by __Corporate Firewall__? Git Mirroring might help)](https://stackoverflow.com/a/12884254) @@ -182,6 +183,7 @@ _Forgejo won't Auto-Sync our Read-Write Mirror. How to sync it?_ | _Auto-Sync by Forgejo_ | Manual-Sync by Our Script | _Can't create PRs_ | Can create PRs | _Can't migrate PRs and Issues_ | Can migrate PRs and Issues
(but ran into problems) +| [_(Explained here)_](https://lupyuen.org/articles/forgejo.html#appendix-read-only-mirror) | [_(Explained here)_](https://lupyuen.github.io/articles/forgejo#appendix-read-write-mirror) We run a script to __Sync the Git Commits__... @@ -320,6 +322,7 @@ Which explains why we need __Two Mirror Repos__: Read-Only Mirror and Read-Write | Auto-Sync by Forgejo | Manual-Sync by Our Script | Can't create PRs | Can create PRs | Can't migrate PRs and Issues | Can migrate PRs and Issues
(but ran into problems) +| [_(Explained here)_](https://lupyuen.org/articles/forgejo.html#appendix-read-only-mirror) | [_(Explained here)_](https://lupyuen.github.io/articles/forgejo#appendix-read-write-mirror) ![What's Next](https://lupyuen.github.io/images/forgejo-flow.jpg) @@ -333,7 +336,7 @@ Many Thanks to the awesome __NuttX Admins__ and __NuttX Devs__! And [__My Sponso - [__Sponsor me a coffee__](https://lupyuen.github.io/articles/sponsor) -- [__Discuss this article on Hacker News__](TODO) +- [__Discuss this article on Hacker News__](https://news.ycombinator.com/item?id=42669242) - [__My Current Project: "Apache NuttX RTOS for Sophgo SG2000"__](https://nuttx-forge.org/lupyuen/nuttx-sg2000) @@ -506,6 +509,7 @@ Forgejo shall __auto-sync our repo__ (every hour), but it __won't allow Pull Req | Auto-Sync by Forgejo | _Manual-Sync by Our Script_ | Can't create PRs | _Can create PRs_ | Can't migrate PRs and Issues | _Can migrate PRs and Issues
(but ran into problems)_ +| [_(Explained here)_](https://lupyuen.org/articles/forgejo.html#appendix-read-only-mirror) | [_(Explained here)_](https://lupyuen.github.io/articles/forgejo#appendix-read-write-mirror) 1. At Top Right: Select __`+` > New Migration__ @@ -614,6 +618,7 @@ Now we create a __Read-Write Mirror__ of the NuttX Repo at GitHub, which will al | _Auto-Sync by Forgejo_ | Manual-Sync by Our Script | _Can't create PRs_ | Can create PRs | _Can't migrate PRs and Issues_ | Can migrate PRs and Issues
(but ran into problems) +| [_(Explained here)_](https://lupyuen.org/articles/forgejo.html#appendix-read-only-mirror) | [_(Explained here)_](https://lupyuen.github.io/articles/forgejo#appendix-read-write-mirror) 1. At Top Right: Select __`+` > New Migration__