<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Zhibo&#39;s Blog</title>
    <link>https://libz.dev/posts/</link>
    <description>Recent content in Posts on Zhibo&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <copyright>Copyright © 2016-{year} Zhibo Li. All Rights Reserved.</copyright>
    <lastBuildDate>Wed, 07 Aug 2024 10:07:07 +0100</lastBuildDate><atom:link href="https://libz.dev/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A Micro Control Flow DSL for C&#43;&#43; template parameters</title>
      <link>https://libz.dev/posts/meta-control-flow-primitive/</link>
      <pubDate>Wed, 07 Aug 2024 10:07:07 +0100</pubDate>
      
      <guid>https://libz.dev/posts/meta-control-flow-primitive/</guid>
      <description>C++ metaprogramming and templates are powerful features that allow you to write code that operates on types and constants at compile time. This capability can lead to more flexible, efficient, and reusable code.
Templates are a feature in C++ that allow functions and classes to operate with generic types. This means you can write a function or class that works with any data type. Templates can be of two types: function templates and class templates.</description>
    </item>
    
    <item>
      <title>Runtime data container switch in C&#43;&#43;</title>
      <link>https://libz.dev/posts/runtime-container-swap/</link>
      <pubDate>Thu, 01 Aug 2024 10:07:07 +0100</pubDate>
      
      <guid>https://libz.dev/posts/runtime-container-swap/</guid>
      <description>Data structures are of vital importance in computer programs. When programmers are going to optimise the programs, they generally either improve their algorithms, or perform optimisations on data structures, from the implementation of data structures to the access methods over the data structures. Recently, there have been a few research on optimising an existing computer program by switching out the data structures based on different criteria. For example, the size of data often impact the proper choice of a data structure - there are vectors that are tailored for a small amount data, and that they are not suitable to store large amount of data such as all the data of the customers in Amazon.</description>
    </item>
    
    <item>
      <title>How to get a domain email</title>
      <link>https://libz.dev/posts/domain-email/</link>
      <pubDate>Fri, 31 May 2024 10:03:02 +0100</pubDate>
      
      <guid>https://libz.dev/posts/domain-email/</guid>
      <description>Many people are asking why I am using a custom domain email address instead of a Gmail or an Outlook email - I have tried many email accounts from various providers, however, having an email address with my own domain is much cooler than with a Google&amp;rsquo;s or Microsoft&amp;rsquo;s.
Firstly, let us introduce the basic concepts of a domain email. A domain email address is an email address that uses a custom domain name, such as yourname@yourdomain.</description>
    </item>
    
    <item>
      <title>How to highlight changes between an old version and a new version of a LaTeX document</title>
      <link>https://libz.dev/posts/latexdiff/</link>
      <pubDate>Sat, 11 May 2024 11:29:07 +0100</pubDate>
      
      <guid>https://libz.dev/posts/latexdiff/</guid>
      <description>As a scholar who often submits manuscripts to journals or conferences, it is not uncommon when the editor requests to submit a pdf which highlights the difference from the previous version to current one. This usually happens when a minor revision is requested.
If using Microsoft Word, the highlighted version is easy to produce as MS Word comes with a diff option. However, in circumstances where LaTeX is used, producing a diff version is not as straightforward as with MS Word.</description>
    </item>
    
    <item>
      <title>Introduction to MLOps and Intel&#39;s Certification</title>
      <link>https://libz.dev/posts/mlops/</link>
      <pubDate>Mon, 06 May 2024 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/mlops/</guid>
      <description>Machine Learning Operations(MLOps), is a multidisciplinary field that merges software engineering with data science, aiming to streamline and automate the lifecycle of machine learning (ML) models. It focuses on the practical implementation of ML models, bridging the gap between experimental models and production-level solutions. This field has become increasingly relevant as more organizations integrate AI and ML into their operational processes.
Inspired and developed from DevOps, MLOps and DevOps share common principles, such as automation, continuous integration (CI), and continuous delivery (CD), their focuses and challenges are distinct.</description>
    </item>
    
    <item>
      <title>Using a Samsung Watch 6 with an iPhone, REALLY?!</title>
      <link>https://libz.dev/posts/samsung-watch-ios/</link>
      <pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/samsung-watch-ios/</guid>
      <description>It is generally not possible to use a Samsung Galaxy Watch 6 with an iPhone. After Google dropped Wear OS support for iOS devices following Wear OS 2, it is now impossible to pair a Wear OS 3 or 4 device with an iPhone through the official application via the App Store. This holds true for recent released Samsung Watches as well. Although previous Samsung Galaxy Watch models did work with iPhones, that’s no longer the case since the Galaxy Watch 4.</description>
    </item>
    
    <item>
      <title>Amend swap partition on the fly for Linux</title>
      <link>https://libz.dev/posts/linux-swap-conf/</link>
      <pubDate>Tue, 11 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/linux-swap-conf/</guid>
      <description>There are times when we become anxious about our RAM space. However, it is not easy to physically increase the RAM, especially if you have already used up all the memory slots! In such cases, the best alternative is to increase the swap space. There are several methods to modify the swap space, and here I am going to share a method I found on DBA Genesis1 that doesn&amp;rsquo;t require rebooting your machine.</description>
    </item>
    
    <item>
      <title>Set up a Linux server - initial </title>
      <link>https://libz.dev/posts/linux-ops/</link>
      <pubDate>Wed, 28 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/linux-ops/</guid>
      <description>Installing a Linux distribution on a physical machine has become much easier than before. However, there are still some initial configurations that need to be done manually. I often forget the steps and command details, so I take detailed notes so that I don&amp;rsquo;t have to Google them multiple times.
Add sudo privilege to a userIn most Linux distros, the sudoers file should be located at /etc/sudoers, firstly we change to the root user,</description>
    </item>
    
    <item>
      <title>Open Enhancement Session Mode for Oracle Linux 9 on Hyper-V </title>
      <link>https://libz.dev/posts/hyperv-linux/</link>
      <pubDate>Tue, 23 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/hyperv-linux/</guid>
      <description>Microsoft Hyper-V is a hypervisor that runs on Windows Operating Systems including Windows 11. It allows you to run multiple operating systems on the same physical computer. Hyper-V is a type 1 hypervisor, which means that it runs directly on the hardware of the physical computer. This makes it more efficient than type 2 hypervisors like VirtualBox and VMware, which run on top of an operating system.
Hyper-V can be used to run a variety of operating systems as guests, including Windows, Linux, and FreeBSD.</description>
    </item>
    
    <item>
      <title>Learn Spanish the easy way</title>
      <link>https://libz.dev/posts/learn-spanish/</link>
      <pubDate>Sat, 22 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/learn-spanish/</guid>
      <description>I always want to learn more languages. As there are so many lanauges all over the world, I need to pick one or two languages for learning in the following couple of months. Firstly, I would like to start from Spanish. I have searched the Internet and got some advice from the most advanced AI chatbot - ChatGPT.
&amp;ldquo;Start with the basics: Learn the Spanish alphabet, numbers, and basic grammar rules.</description>
    </item>
    
    <item>
      <title>Intel Unison, the very app for interacting between iPhone and Windows </title>
      <link>https://libz.dev/posts/intel-unison/</link>
      <pubDate>Fri, 21 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/intel-unison/</guid>
      <description>How to interact between my iPhone and Windows desktop has always been a tricky task for me. As iPhone does not open the Bluetooth API, we cannot share files between iPhone and other devices over Bluetooth just like with Android devices, even though the version of the provided Bluetooth is 5.1! Airdrop is limited to Apple&amp;rsquo;s ecosystem, though I admit Airdrop is a convenient way for file sharing, I still won&amp;rsquo;t buy a Mac only for that.</description>
    </item>
    
    <item>
      <title>Let us build Intel oneTBB on an Arm machine, Really?!</title>
      <link>https://libz.dev/posts/oneapi-build/</link>
      <pubDate>Mon, 13 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/oneapi-build/</guid>
      <description>Intel oneAPI is a unified programming model and software development toolkit that provides a common platform for developing applications that can run on various architectures, including CPUs, GPUs, FPGAs, and other accelerators. The goal of Intel oneAPI is to simplify software development by providing a consistent programming model across different hardware platforms and to help developers get the best performance out of their applications. With Intel oneAPI, developers can use a single codebase to target multiple hardware platforms, saving time and effort compared to developing separate code for each platform.</description>
    </item>
    
    <item>
      <title>Introduction to BerkeleyDB STL and write the first line of code with </title>
      <link>https://libz.dev/posts/bstl-hello-world/</link>
      <pubDate>Sun, 22 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/bstl-hello-world/</guid>
      <description>I have given a brief introduction to STL and its implementations. From this post on, I will focus on one of the implementations - BerkeleyDB STL. Compared to other implementations such as libc++/libstdc++, BerkeleyDB STL is unique - it is based on BerkeleyDB and leverages all the advantages of a database implementation. Thanks to the developers of BerkeleyDB STL, most of the time we can program just like we would with the common implementations mentioned before because the database-based STL is almost 99% compatible with the standard.</description>
    </item>
    
    <item>
      <title>Backup your files the easy way - fsarchiver and samba</title>
      <link>https://libz.dev/posts/intro-backup/</link>
      <pubDate>Sat, 14 Jan 2023 11:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/intro-backup/</guid>
      <description>Sometimes our system crash down and it could lead to a total/partial loss of our files, which is definitely not a good moment for us. There are several reasons that cause the crash, and we can mainly divide the reasons into three categories,
software hardware other Most of the time, if the crash is cause by software related reasons and only has impact on software level, we would be fine as long as we can restart our machine and try to recover our files.</description>
    </item>
    
    <item>
      <title>Introduction to Parallel Computing Libraries for C&#43;&#43;</title>
      <link>https://libz.dev/posts/intro-par-libs-cpp/</link>
      <pubDate>Tue, 10 Jan 2023 11:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/intro-par-libs-cpp/</guid>
      <description>Parallel computing has become one of the essential techniques among industry and academy. As a programmer, not only understanding the theory of parallel computing is important, but learn how to work with some parallel computing library is also critical. Today, I am going to introduce a list of parallel computing libraries for C++ and hopefully would benefit to C++ programmers!
Firstly, I would like to divide parallel computing libraries into several categories and thus I can introduce them one by one.</description>
    </item>
    
    <item>
      <title>How to profile your program with a flamegraph?</title>
      <link>https://libz.dev/posts/perf-flamegraph/</link>
      <pubDate>Thu, 05 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/perf-flamegraph/</guid>
      <description>I think every programmer has had their bad moment when debugging a program. However, improving the performance of a program can be more tricky than debugging. Sometimes we need to know in which part(e.g. which line of code or which function) drags the overall performance, then we need to profile the program.
According to the definition of profiling from Wikipedia, profiling includes analyzing a program during runtime to measure the space/time consumption of a program.</description>
    </item>
    
    <item>
      <title>Introduction to C&#43;&#43; Standard Template Library and its implementations</title>
      <link>https://libz.dev/posts/bstl-intro/</link>
      <pubDate>Thu, 29 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/bstl-intro/</guid>
      <description>I will start a new series of introduction - C++ programming and their libraries! If anyone has ever heard about C++ programming, their may also know Standard Template Library, or more concisely, STL. There is no doubt that STL is extremely important in C++ programming, but be careful as many languages have their standard libraries, C++ also has its standard library, but STL and the standard library are different.
C++ STL is implemented based on C++ template, or metaprogramming.</description>
    </item>
    
    <item>
      <title>Let us build a unikernel - Part 1</title>
      <link>https://libz.dev/posts/unikernel-work-one/</link>
      <pubDate>Wed, 28 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/unikernel-work-one/</guid>
      <description>Last time I have given an overview of Unikernels, which includes some basic concepts and a breif history. From this time, let&amp;rsquo;s build a simple but functional unikernel together!
I will choose either Scala or C++ as the programming language for this plan. And as mentioned in my last post, our unikernel will also be of,
single process small footprint And most importantly, handy to use as a play around framework!</description>
    </item>
    
    <item>
      <title>What is Unikernel and will it still stands on the Cloud</title>
      <link>https://libz.dev/posts/unikernel-intro/</link>
      <pubDate>Tue, 20 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://libz.dev/posts/unikernel-intro/</guid>
      <description>According to the definition from the Unikernel Organization, Unikernels are specialized,single-address-space machine images constructed by using library OS. Unikernel has been proposed to solve the security issue in Cloud environment, as it is non-trivial to set up the configuration of a traditional OS’s security, e.g. setting up the security policy of a Linux Cluster would be a challenging task, not to mention the security of the whole system needs to be monitored and upgraded 24x7.</description>
    </item>
    
    <item>
      <title>How to port your Visio drawing into the Latex editor - the indirect way</title>
      <link>https://libz.dev/posts/visio-export-to-latex/</link>
      <pubDate>Sun, 14 Aug 2022 11:19:03 +0100</pubDate>
      
      <guid>https://libz.dev/posts/visio-export-to-latex/</guid>
      <description>It is common to draw figures or diagrams with Microsoft Visio, as it is really an awesome all-in-one tool! Visio has numerous templates as well as an easy-to-use interface, by simply clicking and dragging with a mouse, a fantastic diagram will be there.
For people working on a document, e.g. an academic paper, if you are using Microsoft Word, you can just Ctrl + c and Ctrl + v from Visio to Word and the diagram will be precisely placed at where your cursor is; however, for people who are working with Latex, things are not that smooth, or, unfortunately, really tricky.</description>
    </item>
    
    <item>
      <title>How to build LLVM from source?</title>
      <link>https://libz.dev/posts/llvm-build/</link>
      <pubDate>Fri, 08 Jul 2022 17:54:52 +0100</pubDate>
      
      <guid>https://libz.dev/posts/llvm-build/</guid>
      <description>It is not easy to find documentation regarding Clang&amp;rsquo;s optimization options, especially for newer versions of LLVM. So I did a manual statistics and organized them in a table. This article and the table was inspired&amp;amp;forked from lolo32, many thanks!
Currently, there are two versions of Clang co-existing my Intel NUC 10, Clang 12.0.1(installed through source code) and Clang 11.0.0(installed through yum). The OS information is as the title. Version 1:</description>
    </item>
    
    <item>
      <title>How to optimise your compilation with Clang?</title>
      <link>https://libz.dev/posts/clang-opt-para/</link>
      <pubDate>Fri, 08 Jul 2022 17:54:52 +0100</pubDate>
      
      <guid>https://libz.dev/posts/clang-opt-para/</guid>
      <description>It is not easy to find documentation regarding Clang&amp;rsquo;s optimization options, especially for newer versions of LLVM. So I did a manual statistics and organized them in a table. This article and the table was inspired&amp;amp;forked from lolo32, many thanks!
Currently, there are two versions of Clang co-existing my Intel NUC 10, Clang 12.0.1(installed through source code) and Clang 11.0.0(installed through yum). The OS information is as the title. Version 1:</description>
    </item>
    
    <item>
      <title>Let us say Hello World!</title>
      <link>https://libz.dev/posts/my-first-post/</link>
      <pubDate>Sat, 25 Jun 2022 18:16:10 +0100</pubDate>
      
      <guid>https://libz.dev/posts/my-first-post/</guid>
      <description>Hello World!</description>
    </item>
    
  </channel>
</rss>
