0%

Goal

My goal is to set up a custom domain for my static site hosted on GitLab Pages with HTTPS protocol enabled.

  • Register a custom domain on Google Domains (jocodoma.com).
  • Obtaining SSL/TLS certificates from Let’s Encrypt (for subdomain, which is blog.jocodoma.com)
  • Setup DNS and the static site (on GitLab Pages) as a subdomain under the custom domain

References:

Previously in Setup Blog using Hexo on GitHub, I talked about how to setup Hexo on GitHub. Today, I’m going to do the same but on GitLab. One of the main reasons for GitLab is because that Continuous Integration (CI) is built-in to GitLab. Therefore, the only thing I need to do for deployment is just push the code to GitLab, and then everything else will be magically done by GitLab and CI. The rest of the post will show how I setup Hexo and CI on GitLab.

References:
StaticGen: https://www.staticgen.com
Hexo: https://hexo.io
Hexo Docs: https://hexo.io/docs/
NexT theme: https://github.com/theme-next/hexo-theme-next
Introduction | Hexo - Static Site Generator | Tutorial
GitLab: https://about.gitlab.com/
GitLab Pages: https://about.gitlab.com/product/pages/
部署 HEXO 到 GitLab Page
HEXO 搭配主題 next 基礎配置教學

Read more »

Back in 2016, I was asked for setting up GitLab, Redmine, and MediaWiki on a single Linux machine for our development team at work. This blog is just a record for how I built all stuff from scratch. At that time, it was based on Ubuntu 14.04, but in this blog I will go through all the steps based on Ubuntu 18.04.

Due to the compatibility issues on plugins for Redmine that I setup earlier, I will keep its version for now. The other two, GitLab and MediaWiki, will be upgraded to the latest versions (as of 2019).

Goal

Environment

This is my learning notes from the course - Mastering C++ Standard Library Features.

Creating a Compile-Time Set Data Structure

  • How to implement a simple compile-time set data structure

The Plan

  • Our data structure will be called ct_set
  • It will allow users to add/remove/check elements
  • Every element will have a unique type
  • It will use a familiar constexpr - based syntax:
    1
    2
    3
    4
    5
    constexpr auto s0 = ct_set{};
    constexpr auto s1 = s0.add(c<42>);

    static_assert(s1.contains(c<42>));
    static_assert(!s1.contains(c<120>));
    Read more »

This is my learning notes from the course - Mastering C++ Standard Library Features.

Metaprogramming Utilities in the Standard Library

  • <type_traits> header
    • std::conditional
    • std::integral_constant
    • std::conjunction and std::disjunction
  • <utilities> header
    • std::integer_sequence
    • std::make_integer_sequence

< type_traits > - Overview