Build Boost

Building Boost 1.83 with Visual Studio 2022 (static link, multithreading)

For Windows

cd C:\boost_1_83_0\
bootstrap.bat
b2 -j8 toolset=msvc-14.3 variant=debug link=static threading=multi runtime-link=shared
b2 -j8 toolset=msvc-14.3 variant=debug link=static threading=multi runtime-link=static
b2 -j8 toolset=msvc-14.3 variant=release link=static threading=multi runtime-link=shared
b2 -j8 toolset=msvc-14.3 variant=release link=static threading=multi runtime-link=static

For WSL

wget https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.gz
tar vxzf boost_1_83_0.tar.gz
cd ./boost_1_83_0
./bootstrap.sh
sudo ./b2 link=static threading=multi install

Output

Directory

C:\boost_1_83_0\stage\lib

Static debug shared runtime

libboost_atomic-vc143-mt-gd-x32-1_83.lib
libboost_atomic-vc143-mt-gd-x64-1_83.lib
...

Static debug static runtime

libboost_atomic-vc143-mt-sgd-x32-1_83.lib
libboost_atomic-vc143-mt-sgd-x64-1_83.lib
...

Static release shared runtime

libboost_atomic-vc143-mt-x32-1_83.lib
libboost_atomic-vc143-mt-x64-1_83.lib
...

Static release static runtime

libboost_atomic-vc143-mt-s-x32-1_83.lib
libboost_atomic-vc143-mt-s-x64-1_83.lib
...

Environment Variables (Windows)

Name Value
BOOST_INCLUDEDIR C:\boost_1_83_0
BOOST_LIBRARYDIR C:\boost_1_83_0\stage\lib
BOOST_ROOT C:\boost_1_83_0
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)

find_package(Boost COMPONENTS thread chrono regex REQUIRED )

include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})

Анекдот «весь в белом»

Человек приходит в цирк и говорит:

— У меня есть аттракцион.

Его спрашивают:

— Какой?

— Под куполом цирка подвешивают бочку говна. Выходит клоун. Стреляет. Бочка падает. Весь цирк в говне. И тут выхожу я: весь в белом.

Анекдот про фермера

Налоговый инспектор фермеру:

— А вы не утаивайте, не утаивайте! В конце концов ваши деньги к вам же и возвращаются: ну, знаете, субсидии, дотации…

— Понятно. Вот сейчас отрежу хвост у собаки, чтобы и ей было что на обед.

Комментарии в блоге

Добавлены комментарии в блоге.

В качестве движка используется gitalk.

Как его добавить в light-тему Hexo:

  1. Создайте репозиторий для хранения Issues. Я создал с названием gitalk.

  2. Создайте приложение в github: тынц.

    New GitHub Application

    Это приложение потом можно будет увидеть в списке Settings / Developer settings.

  3. Сгенерируйте “секрет” (Generate a new client secret); запомните (запишите) его.

  4. В light-теме Hexo в layout\_partial создайте файл gitalk_comment.ejs со следующим содержанием:

    <div id="gitalk-container" style="margin: 30px;"></div>
    <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
    <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/gh/gangdong/gangdong.github.io@dev/assets/js/md5.min.js"></script>
    <script>
    var gitalk = new Gitalk({
    clientID: '<%= gtConfig.clientID %>',
    clientSecret: '<%= gtConfig.clientSecret %>',
    repo: '<%= gtConfig.repo %>',
    owner: '<%= gtConfig.owner %>',
    admin: ['<%= gtConfig.admin %>'],
    id: md5(location.pathname), // Ensure uniqueness and length less than 50
    pagerDirection: '<%= gtConfig.pagerDirection %>',
    distractionFreeMode: false // Facebook-like distraction free mode
    })
    gitalk.render('gitalk-container')
    </script>
  5. В layout\_partial\comment.ejs подключите gitalk_comment.ejs:

    <% if (theme.comment_provider == "gitalk") {
    if (config.gitalk) { %>
    <%- partial('_partial/gitalk_comment', {gtConfig: config.gitalk}) %>
    <% } %>
    <% } %>
  6. В _config.yml light-темы включите использование gitalk-комментариев:

    comment_provider: gitalk
  7. В корневом _config.yml вашего блога выполните настройку gitalk:

    # gitalk comment
    gitalk:
    clientID: your_client_id
    clientSecret: your_secrat
    repo: your_repo_name
    owner: your_github_user
    admin: your_github_user
    pagerDirection: first
    • clientID - значение Client ID из настроек приложения, созданного на шаге 2.
    • clientSecret - “секрет” (Client secret), созданный на шаге 3.
    • repo - название репозитория (шаг 1).
    • owner и admin - имя Вашего пользователя в Github.

OpenVPN APK

OpenVPN for Android 0.7.33

Если при установке соединения вылазит ошибка:

10:57 AM OpenSSL: error:0A00018E:SSL routines::ca md too weak

, то нужно отредактировать настройки на вкладке ADVANCED: промотать до пункта Enable Custom Options, включить его и ввести в Custom Options:

tls-cipher "DEFAULT:@SECLEVEL=0"