LOADING

加载过慢请开启缓存 浏览器默认开启

Tab's Blog

Estas Tab-klavo ĉi tie

Automate Hexo Deployment to GitHub Pages with GitHub Actions

Tutorial 2024/9/29

Automate Hexo Deployment to GitHub Pages with GitHub Actions: A Comprehensive tutorial

Deploying a static website generated by Hexo to GitHub Pages can be seamlessly automated using GitHub Actions. This tutorial will guide you through setting up an automated workflow that:

  1. Generates your Hexo site every time you push changes to your repository.
  2. Deploys the generated static files to the docs folder of a separate GitHub Pages repository, enabling continuous updates to your website.

By the end of this guide, you’ll have a fully automated CI/CD pipeline for your Hexo blog, ensuring your website remains up-to-date with your latest content without manual intervention.

阅读全文

About The Book <From Zero to Hero>

Thought 2024/9/28

Ahhhhh! I’ve written almost 50,000 words for the book C++ Unleashed: From Zero to Hero! Even though I used AI and borrowed some from others, the workload is still massive. I have to review it so many times each day, tweaking things here and there. This tutorial is both frustrating and so much fun!

I initially decided to write it in English because I felt that the final result would be better (my Chinese isn’t that good). Sure enough, when I tried to translate it, the whole thing almost twisted my brain into knots with the Chinese vocabulary.

Thanks to AI technology (O1’s understanding saved me a lot of time), otherwise, writing in English would’ve been torture. But the sense of accomplishment from this is huge—48k words in three days is pretty impressive!

I’ve been wanting to write this book C++ Unleashed: From Zero to Hero for a long time, and I finally got around to it. I’ve already realized a lot of my ambitions, and this is the first step in my MCGA (Make C++ Great Again) plan. Onward and upward!

Right now, the book is riddled with bugs, but I’ll just have to fix them bit by bit.

To be honest, there are a lot of parts I’m not satisfied with, but it will have to do for now.

TODO:

  • Break down the content more carefully by the following lifecycle stages
  • The file system section isn’t written well (I initially planned to write about network libraries but didn’t want to introduce non-standard libraries)
  • The coroutines section could use some adjustments—my understanding of coroutines isn’t deep enough
  • Not beginner-friendly enough?
阅读全文

C++ Unleashed: Testing, Debugging, and Building

Tutorial 2024/9/28

C++ Unleashed: From Zero to Hero

Previous chapter: Best Practices and Design Patterns

Go to Table of Contents

Testing, Debugging, and Building

Developing robust C++ applications requires a solid foundation in testing, debugging, and building processes. This chapter explores essential tools and methodologies that ensure your code is reliable, efficient, and maintainable. You’ll learn about unit testing frameworks like Google Test, the principles of Test-Driven Development (TDD), powerful debugging tools such as GDB and Valgrind, profiling techniques for performance analysis, advanced usage of the xmake build system, and strategies for Continuous Integration and Deployment (CI/CD). By mastering these concepts, you’ll enhance your ability to deliver high-quality C++ software.

阅读全文

C++ Unleashed: Best Practices and Design Patterns

Tutorial 2024/9/27

C++ Unleashed: From Zero to Hero

Previous chapter: Filesystem

Go to Table of Contents

Best Practices and Design Patterns

As you progress in your journey to master C++, it’s crucial to not only understand the language’s syntax and features but also to adopt best practices and leverage design patterns that promote code efficiency, maintainability, and scalability. This chapter delves into modern C++ idioms, the RAII (Resource Acquisition Is Initialization) principle, essential design patterns, code optimization techniques, and strategies for writing efficient and maintainable code. By integrating these practices into your development workflow, you’ll enhance the quality and robustness of your C++ applications.

阅读全文

C++ Unleashed: Filesystem

Tutorial 2024/9/27

C++ Unleashed: From Zero to Hero

Previous chapter: C++20 Features

Go to Table of Contents

Filesystem

The Filesystem library, introduced in C++17 and further enhanced in C++20, provides a standardized and portable way to perform file and directory operations. It abstracts away the underlying operating system’s file handling mechanisms, allowing developers to interact with the filesystem using a consistent and intuitive API. This chapter delves into the capabilities of std::filesystem, enabling you to manage files and directories efficiently in your C++ applications.

阅读全文

C++ Unleashed: C++20 Features

Tutorial 2024/9/27

C++ Unleashed: From Zero to Hero

Previous chapter: Advanced Template Programming

Go to Table of Contents

C++20 Features

C++20 is a significant update to the C++ programming language, introducing a plethora of new features and enhancements that aim to make C++ more powerful, expressive, and easier to use. This chapter explores the most impactful features of C++20, including Concepts, Ranges, Coroutines, Modules, the Three-Way Comparison Operator (<=>), std::span, and other notable additions to the Standard Library. By understanding and leveraging these features, you can write more efficient, readable, and maintainable C++ code.

阅读全文

C++ Unleashed: Advanced Template Programming

Tutorial 2024/9/27

C++ Unleashed: From Zero to Hero

Previous chapter: Concurrency and Multithreading

Go to Table of Contents

Advanced Template Programming

Templates are one of the most powerful features of C++, enabling developers to write generic and reusable code. Advanced template programming delves deeper into the capabilities of templates, allowing for more sophisticated and efficient code designs. This chapter explores advanced concepts such as template metaprogramming, type traits, SFINAE (Substitution Failure Is Not An Error), the Curiously Recurring Template Pattern (CRTP), and variadic templates with parameter packs.

阅读全文

C++ Unleashed: Concurrency and Multithreading

Tutorial 2024/9/27

C++ Unleashed: From Zero to Hero

Previous chapter: Error Handling and Exceptions

Go to Table of Contents

Concurrency and Multithreading

Concurrency and multithreading are essential concepts in modern C++ programming, enabling developers to build applications that can perform multiple operations simultaneously. This chapter delves into the fundamentals of concurrency, explores the C++ Standard Library’s threading facilities, and provides practical examples to illustrate how to implement and manage concurrent operations effectively.

阅读全文

C++ Unleashed: Conclusion and Next Steps

Tutorial 2024/9/27

C++ Unleashed: From Zero to Hero

Previous chapter: Practical Projects

Go to Table of Contents

Conclusion and Next Steps

Congratulations! You’ve reached the end of this C++ tutorial, and you should now have a solid foundation in C++ programming. Throughout this journey, you’ve learned about key concepts, from the basics of variables and control structures to advanced topics like object-oriented programming and modern C++ features.

阅读全文

C++ Unleashed: Practical Projects

Tutorial 2024/9/27

C++ Unleashed: From Zero to Hero

Previous chapter: Using xmake to Build Projects

Go to Table of Contents

Practical Projects

In this chapter, we’ll apply the concepts you’ve learned throughout this tutorial to practical programming projects. Engaging in hands-on projects will help solidify your understanding of C++ and enable you to tackle real-world challenges. We’ll cover various project ideas, best practices for coding, and how to document your work effectively.

阅读全文
avatar
Tab Nahida

Estas Tab-klavo ĉi tie