├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .vuepress ├── config.js ├── public │ ├── favicon.ico │ ├── head.png │ └── live2d │ │ ├── L2Dwidget.0.min.js │ │ ├── L2Dwidget.min.js │ │ ├── live2d-widget-model-epsilon2_1 │ │ └── assets │ │ │ ├── Epsilon2.1.model.json │ │ │ ├── Epsilon2.1.physics.json │ │ │ ├── exp │ │ │ ├── f01.exp.json │ │ │ ├── f02.exp.json │ │ │ ├── f03.exp.json │ │ │ ├── f04.exp.json │ │ │ ├── f05.exp.json │ │ │ ├── f06.exp.json │ │ │ ├── f07.exp.json │ │ │ └── f08.exp.json │ │ │ ├── moc │ │ │ ├── Epsilon2.1.2048 │ │ │ │ └── texture_00.png │ │ │ └── Epsilon2.1.moc │ │ │ └── mtn │ │ │ ├── Epsilon2.1_idle_01.mtn │ │ │ ├── Epsilon2.1_m_01.mtn │ │ │ ├── Epsilon2.1_m_02.mtn │ │ │ ├── Epsilon2.1_m_03.mtn │ │ │ ├── Epsilon2.1_m_04.mtn │ │ │ ├── Epsilon2.1_m_05.mtn │ │ │ ├── Epsilon2.1_m_06.mtn │ │ │ ├── Epsilon2.1_m_07.mtn │ │ │ ├── Epsilon2.1_m_08.mtn │ │ │ ├── Epsilon2.1_m_sp_01.mtn │ │ │ ├── Epsilon2.1_m_sp_02.mtn │ │ │ ├── Epsilon2.1_m_sp_03.mtn │ │ │ ├── Epsilon2.1_m_sp_04.mtn │ │ │ ├── Epsilon2.1_m_sp_05.mtn │ │ │ └── Epsilon2.1_shake_01.mtn │ │ ├── live2d-widget-model-haru │ │ ├── 01 │ │ │ └── assets │ │ │ │ ├── exp │ │ │ │ ├── f01.exp.json │ │ │ │ ├── f02.exp.json │ │ │ │ ├── f03.exp.json │ │ │ │ ├── f04.exp.json │ │ │ │ ├── f05.exp.json │ │ │ │ ├── f06.exp.json │ │ │ │ ├── f07.exp.json │ │ │ │ └── f08.exp.json │ │ │ │ ├── haru01.model.json │ │ │ │ ├── haru01.physics.json │ │ │ │ ├── haru01.pose.json │ │ │ │ ├── moc │ │ │ │ ├── haru01.1024 │ │ │ │ │ ├── texture_00.png │ │ │ │ │ ├── texture_01.png │ │ │ │ │ └── texture_02.png │ │ │ │ └── haru01.moc │ │ │ │ ├── mtn │ │ │ │ ├── flickHead_00.mtn │ │ │ │ ├── idle_00.mtn │ │ │ │ ├── idle_01.mtn │ │ │ │ ├── idle_02.mtn │ │ │ │ ├── pinchIn_00.mtn │ │ │ │ ├── pinchOut_00.mtn │ │ │ │ ├── shake_00.mtn │ │ │ │ ├── tapBody_00.mtn │ │ │ │ ├── tapBody_01.mtn │ │ │ │ ├── tapBody_02.mtn │ │ │ │ ├── tapBody_03.mtn │ │ │ │ ├── tapBody_04.mtn │ │ │ │ ├── tapBody_05.mtn │ │ │ │ ├── tapBody_06.mtn │ │ │ │ ├── tapBody_07.mtn │ │ │ │ ├── tapBody_08.mtn │ │ │ │ └── tapBody_09.mtn │ │ │ │ └── snd │ │ │ │ ├── flickHead_00.mp3 │ │ │ │ ├── pinchIn_00.mp3 │ │ │ │ ├── pinchOut_00.mp3 │ │ │ │ ├── shake_00.mp3 │ │ │ │ ├── tapBody_00.mp3 │ │ │ │ ├── tapBody_01.mp3 │ │ │ │ └── tapBody_02.mp3 │ │ └── 02 │ │ │ └── assets │ │ │ ├── exp │ │ │ ├── f01.exp.json │ │ │ ├── f02.exp.json │ │ │ ├── f03.exp.json │ │ │ ├── f04.exp.json │ │ │ ├── f05.exp.json │ │ │ ├── f06.exp.json │ │ │ ├── f07.exp.json │ │ │ └── f08.exp.json │ │ │ ├── haru02.model.json │ │ │ ├── haru02.physics.json │ │ │ ├── haru02.pose.json │ │ │ ├── moc │ │ │ ├── haru02.1024 │ │ │ │ ├── texture_00.png │ │ │ │ ├── texture_01.png │ │ │ │ └── texture_02.png │ │ │ └── haru02.moc │ │ │ ├── mtn │ │ │ ├── flickHead_00.mtn │ │ │ ├── idle_00.mtn │ │ │ ├── idle_01.mtn │ │ │ ├── idle_02.mtn │ │ │ ├── pinchIn_00.mtn │ │ │ ├── pinchOut_00.mtn │ │ │ ├── shake_00.mtn │ │ │ ├── tapBody_00.mtn │ │ │ ├── tapBody_01.mtn │ │ │ ├── tapBody_02.mtn │ │ │ ├── tapBody_03.mtn │ │ │ ├── tapBody_04.mtn │ │ │ ├── tapBody_05.mtn │ │ │ ├── tapBody_06.mtn │ │ │ ├── tapBody_07.mtn │ │ │ ├── tapBody_08.mtn │ │ │ └── tapBody_09.mtn │ │ │ └── snd │ │ │ ├── flickHead_00.mp3 │ │ │ ├── pinchIn_00.mp3 │ │ │ ├── pinchOut_00.mp3 │ │ │ ├── shake_00.mp3 │ │ │ ├── tapBody_00.mp3 │ │ │ ├── tapBody_01.mp3 │ │ │ └── tapBody_02.mp3 │ │ ├── live2d-widget-model-haruto │ │ └── assets │ │ │ ├── haruto.model.json │ │ │ ├── haruto.physics.json │ │ │ ├── moc │ │ │ ├── haruto.2048 │ │ │ │ └── texture_00.png │ │ │ └── haruto.moc │ │ │ └── mtn │ │ │ ├── 01.mtn │ │ │ ├── 02.mtn │ │ │ ├── 03.mtn │ │ │ ├── 04.mtn │ │ │ ├── 05.mtn │ │ │ ├── 06.mtn │ │ │ ├── 07.mtn │ │ │ ├── 08.mtn │ │ │ ├── 09.mtn │ │ │ └── idle_02.mtn │ │ ├── live2d-widget-model-hijiki │ │ └── assets │ │ │ ├── hijiki.model.json │ │ │ ├── hijiki.pose.json │ │ │ ├── moc │ │ │ ├── hijiki.2048 │ │ │ │ └── texture_00.png │ │ │ └── hijiki.moc │ │ │ └── mtn │ │ │ ├── 00_idle.mtn │ │ │ ├── 01.mtn │ │ │ ├── 02.mtn │ │ │ ├── 03.mtn │ │ │ ├── 04.mtn │ │ │ ├── 05.mtn │ │ │ ├── 06.mtn │ │ │ ├── 07.mtn │ │ │ └── 08.mtn │ │ ├── live2d-widget-model-izumi │ │ └── assets │ │ │ ├── exp │ │ │ ├── f01.exp.json │ │ │ ├── f02.exp.json │ │ │ ├── f03.exp.json │ │ │ ├── f04.exp.json │ │ │ ├── f05.exp.json │ │ │ ├── f06.exp.json │ │ │ └── f07.exp.json │ │ │ ├── izumi.model.json │ │ │ ├── izumi.physics.json │ │ │ ├── moc │ │ │ ├── izumi_illust.1024 │ │ │ │ ├── texture_00.png │ │ │ │ ├── texture_01.png │ │ │ │ ├── texture_02.png │ │ │ │ └── texture_03.png │ │ │ └── izumi_illust.moc │ │ │ ├── mtn │ │ │ ├── idle_01.mtn │ │ │ ├── idle_02.mtn │ │ │ ├── idle_03.mtn │ │ │ ├── idle_04.mtn │ │ │ ├── izumi_01.mtn │ │ │ ├── izumi_02.mtn │ │ │ ├── izumi_03.mtn │ │ │ ├── izumi_04.mtn │ │ │ ├── izumi_05.mtn │ │ │ ├── izumi_06.mtn │ │ │ ├── izumi_07.mtn │ │ │ ├── izumi_08.mtn │ │ │ ├── izumi_09.mtn │ │ │ └── izumi_10.mtn │ │ │ └── snd │ │ │ ├── izumi_01.mp3 │ │ │ ├── izumi_02.mp3 │ │ │ ├── izumi_03.mp3 │ │ │ ├── izumi_04.mp3 │ │ │ ├── izumi_05.mp3 │ │ │ ├── izumi_06.mp3 │ │ │ ├── izumi_07.mp3 │ │ │ ├── izumi_08.mp3 │ │ │ ├── izumi_09.mp3 │ │ │ └── izumi_10.mp3 │ │ ├── live2d-widget-model-koharu │ │ └── assets │ │ │ ├── koharu.model.json │ │ │ ├── koharu.physics.json │ │ │ ├── moc │ │ │ ├── koharu.2048 │ │ │ │ └── texture_00.png │ │ │ └── koharu.moc │ │ │ └── mtn │ │ │ ├── 01.mtn │ │ │ ├── 02.mtn │ │ │ ├── 03.mtn │ │ │ ├── 04.mtn │ │ │ ├── 05.mtn │ │ │ ├── 06.mtn │ │ │ ├── 07.mtn │ │ │ ├── 08.mtn │ │ │ ├── 09.mtn │ │ │ └── idle.mtn │ │ ├── live2d-widget-model-miku │ │ └── assets │ │ │ ├── miku.model.json │ │ │ ├── miku.physics.json │ │ │ ├── moc │ │ │ ├── miku.2048 │ │ │ │ └── texture_00.png │ │ │ └── miku.moc │ │ │ └── mtn │ │ │ ├── miku_idle_01.mtn │ │ │ ├── miku_m_01.mtn │ │ │ ├── miku_m_02.mtn │ │ │ ├── miku_m_03.mtn │ │ │ ├── miku_m_04.mtn │ │ │ ├── miku_m_05.mtn │ │ │ ├── miku_m_06.mtn │ │ │ └── miku_shake_01.mtn │ │ ├── live2d-widget-model-shizuku │ │ └── assets │ │ │ ├── exp │ │ │ ├── f01.exp.json │ │ │ ├── f02.exp.json │ │ │ ├── f03.exp.json │ │ │ └── f04.exp.json │ │ │ ├── moc │ │ │ ├── shizuku.1024 │ │ │ │ ├── texture_00.png │ │ │ │ ├── texture_01.png │ │ │ │ ├── texture_02.png │ │ │ │ ├── texture_03.png │ │ │ │ ├── texture_04.png │ │ │ │ └── texture_05.png │ │ │ └── shizuku.moc │ │ │ ├── mtn │ │ │ ├── flickHead_00.mtn │ │ │ ├── flickHead_01.mtn │ │ │ ├── flickHead_02.mtn │ │ │ ├── idle_00.mtn │ │ │ ├── idle_01.mtn │ │ │ ├── idle_02.mtn │ │ │ ├── pinchIn_00.mtn │ │ │ ├── pinchIn_01.mtn │ │ │ ├── pinchIn_02.mtn │ │ │ ├── pinchOut_00.mtn │ │ │ ├── pinchOut_01.mtn │ │ │ ├── pinchOut_02.mtn │ │ │ ├── shake_00.mtn │ │ │ ├── shake_01.mtn │ │ │ ├── shake_02.mtn │ │ │ ├── tapBody_00.mtn │ │ │ ├── tapBody_01.mtn │ │ │ └── tapBody_02.mtn │ │ │ ├── shizuku.model.json │ │ │ ├── shizuku.physics.json │ │ │ ├── shizuku.pose.json │ │ │ └── snd │ │ │ ├── flickHead_00.mp3 │ │ │ ├── flickHead_01.mp3 │ │ │ ├── flickHead_02.mp3 │ │ │ ├── pinchIn_00.mp3 │ │ │ ├── pinchIn_01.mp3 │ │ │ ├── pinchIn_02.mp3 │ │ │ ├── pinchOut_00.mp3 │ │ │ ├── pinchOut_01.mp3 │ │ │ ├── pinchOut_02.mp3 │ │ │ ├── shake_00.mp3 │ │ │ ├── shake_01.mp3 │ │ │ ├── shake_02.mp3 │ │ │ ├── tapBody_00.mp3 │ │ │ ├── tapBody_01.mp3 │ │ │ └── tapBody_02.mp3 │ │ ├── live2d-widget-model-tororo │ │ └── assets │ │ │ ├── moc │ │ │ ├── tororo.2048 │ │ │ │ └── texture_00.png │ │ │ └── tororo.moc │ │ │ ├── mtn │ │ │ ├── 00_idle.mtn │ │ │ ├── 01.mtn │ │ │ ├── 02.mtn │ │ │ ├── 03.mtn │ │ │ ├── 04.mtn │ │ │ ├── 05.mtn │ │ │ ├── 06.mtn │ │ │ ├── 07.mtn │ │ │ └── 08.mtn │ │ │ ├── tororo.model.json │ │ │ └── tororo.pose.json │ │ ├── live2d-widget-model-wanko │ │ └── assets │ │ │ ├── moc │ │ │ ├── wanko.1024 │ │ │ │ └── texture_00.png │ │ │ └── wanko.moc │ │ │ ├── mtn │ │ │ ├── idle_01.mtn │ │ │ ├── idle_02.mtn │ │ │ ├── idle_03.mtn │ │ │ ├── idle_04.mtn │ │ │ ├── shake_01.mtn │ │ │ ├── shake_02.mtn │ │ │ ├── touch_01.mtn │ │ │ ├── touch_02.mtn │ │ │ ├── touch_03.mtn │ │ │ ├── touch_04.mtn │ │ │ ├── touch_05.mtn │ │ │ └── touch_06.mtn │ │ │ └── wanko.model.json │ │ └── live2d-widget-model-z16 │ │ └── assets │ │ ├── exp │ │ └── f00.exp.json │ │ ├── moc │ │ ├── z16.1024 │ │ │ └── texture_00.png │ │ ├── z16.256 │ │ │ └── texture_00.png │ │ ├── z16.512 │ │ │ └── texture_00.png │ │ └── z16.moc │ │ ├── mtn │ │ └── idle.mtn │ │ ├── z16.model.json │ │ └── z16.physics.json └── styles │ ├── index.styl │ └── palette.styl ├── CNAME ├── Dockerfile ├── LICENSE ├── README.md ├── aspnetcore └── abp-blog │ ├── README.md │ ├── abp-cli.md │ ├── beautify-with-swagger.md │ ├── blazor-bestpractice-1.md │ ├── blazor-bestpractice-2.md │ ├── blazor-bestpractice-3.md │ ├── blazor-bestpractice-4.md │ ├── blazor-bestpractice-5.md │ ├── blazor-bestpractice-6.md │ ├── blazor-bestpractice-7.md │ ├── blazor-bestpractice-8.md │ ├── blazor-bestpractice-9.md │ ├── blog-api-bestpractice-1.md │ ├── blog-api-bestpractice-2.md │ ├── blog-api-bestpractice-3.md │ ├── blog-api-bestpractice-4.md │ ├── blog-api-bestpractice-5.md │ ├── ef-and-codefirst.md │ ├── exception-and-logging.md │ ├── generate-jwt-with-github.md │ ├── images │ ├── abp-cli-01.png │ ├── abp-cli-02.png │ ├── abp-cli-03.png │ ├── abp-cli-04.png │ ├── alipay.jpg │ ├── beautify-with-swagger-01.png │ ├── beautify-with-swagger-02.png │ ├── blazor-bestpractice-1-01.png │ ├── blazor-bestpractice-1-02.png │ ├── blazor-bestpractice-1-03.png │ ├── blazor-bestpractice-1-04.png │ ├── blazor-bestpractice-2-01.gif │ ├── blazor-bestpractice-2-02.gif │ ├── blazor-bestpractice-2-03.gif │ ├── blazor-bestpractice-3-01.png │ ├── blazor-bestpractice-3-02.png │ ├── blazor-bestpractice-3-03.png │ ├── blazor-bestpractice-3-04.gif │ ├── blazor-bestpractice-4-01.png │ ├── blazor-bestpractice-4-02.png │ ├── blazor-bestpractice-4-03.png │ ├── blazor-bestpractice-4-04.gif │ ├── blazor-bestpractice-4-05.gif │ ├── blazor-bestpractice-5-01.png │ ├── blazor-bestpractice-5-02.png │ ├── blazor-bestpractice-5-03.gif │ ├── blazor-bestpractice-5-04.gif │ ├── blazor-bestpractice-6-01.png │ ├── blazor-bestpractice-6-02.gif │ ├── blazor-bestpractice-6-03.gif │ ├── blazor-bestpractice-7-01.png │ ├── blazor-bestpractice-7-02.gif │ ├── blazor-bestpractice-7-03.png │ ├── blazor-bestpractice-7-04.gif │ ├── blazor-bestpractice-8-01.png │ ├── blazor-bestpractice-8-02.gif │ ├── blazor-bestpractice-8-03.png │ ├── blazor-bestpractice-8-04.gif │ ├── blazor-bestpractice-8-05.gif │ ├── blazor-bestpractice-9-01.gif │ ├── blazor-bestpractice-9-02.gif │ ├── blog-api-bestpractice-1-01.png │ ├── blog-api-bestpractice-1-02.png │ ├── blog-api-bestpractice-1-03.png │ ├── blog-api-bestpractice-1-04.png │ ├── blog-api-bestpractice-1-05.png │ ├── blog-api-bestpractice-1-06.png │ ├── blog-api-bestpractice-2-01.png │ ├── blog-api-bestpractice-2-02.png │ ├── blog-api-bestpractice-2-03.png │ ├── blog-api-bestpractice-2-04.png │ ├── blog-api-bestpractice-2-05.png │ ├── blog-api-bestpractice-2-06.png │ ├── blog-api-bestpractice-2-07.png │ ├── blog-api-bestpractice-2-08.png │ ├── blog-api-bestpractice-2-09.png │ ├── blog-api-bestpractice-2-10.png │ ├── blog-api-bestpractice-2-11.png │ ├── blog-api-bestpractice-2-12.png │ ├── blog-api-bestpractice-3-01.png │ ├── blog-api-bestpractice-3-02.png │ ├── blog-api-bestpractice-3-03.png │ ├── blog-api-bestpractice-3-04.png │ ├── blog-api-bestpractice-3-05.png │ ├── blog-api-bestpractice-3-06.png │ ├── blog-api-bestpractice-3-07.png │ ├── blog-api-bestpractice-3-08.png │ ├── blog-api-bestpractice-3-09.png │ ├── blog-api-bestpractice-4-01.png │ ├── blog-api-bestpractice-4-02.png │ ├── blog-api-bestpractice-5-01.png │ ├── blog-api-bestpractice-5-02.png │ ├── blog-api-bestpractice-5-03.png │ ├── ef-and-codefirst-01.png │ ├── ef-and-codefirst-02.png │ ├── ef-and-codefirst-03.png │ ├── ef-and-codefirst-04.png │ ├── ef-and-codefirst-05.png │ ├── ef-and-codefirst-06.png │ ├── exception-and-logging-01.png │ ├── exception-and-logging-02.png │ ├── exception-and-logging-03.png │ ├── exception-and-logging-04.png │ ├── exception-and-logging-05.png │ ├── exception-and-logging-06.png │ ├── exception-and-logging-07.png │ ├── generate-jwt-with-github-01.png │ ├── generate-jwt-with-github-02.png │ ├── generate-jwt-with-github-03.png │ ├── generate-jwt-with-github-04.png │ ├── generate-jwt-with-github-05.png │ ├── generate-jwt-with-github-06.png │ ├── generate-jwt-with-github-07.png │ ├── generate-jwt-with-github-08.png │ ├── generate-jwt-with-github-09.png │ ├── generate-jwt-with-github-10.png │ ├── object-mapping-with-automapper-01.png │ ├── publish-blog-01.png │ ├── publish-blog-02.png │ ├── publish-blog-03.png │ ├── publish-blog-04.png │ ├── publish-blog-05.png │ ├── publish-blog-06.png │ ├── publish-blog-07.png │ ├── publish-blog-08.png │ ├── publish-blog-09.png │ ├── publish-blog-10.png │ ├── publish-blog-11.png │ ├── qrcode.jpg │ ├── repositories-and-crud-01.png │ ├── repositories-and-crud-02.png │ ├── repositories-and-crud-03.png │ ├── repositories-and-crud-04.png │ ├── repositories-and-crud-05.png │ ├── repositories-and-crud-06.png │ ├── repositories-and-crud-07.png │ ├── return-api-01.png │ ├── return-api-02.png │ ├── slim-and-run-01.png │ ├── slim-and-run-02.png │ ├── swagger-group-describe-authorize-01.png │ ├── swagger-group-describe-authorize-02.png │ ├── swagger-group-describe-authorize-03.png │ ├── swagger-group-describe-authorize-04.png │ ├── swagger-group-describe-authorize-05.png │ ├── swagger-group-describe-authorize-06.png │ ├── task-processing-bestpractice-1-01.png │ ├── task-processing-bestpractice-1-02.png │ ├── task-processing-bestpractice-1-03.png │ ├── task-processing-bestpractice-1-04.png │ ├── task-processing-bestpractice-1-05.png │ ├── task-processing-bestpractice-2-01.png │ ├── task-processing-bestpractice-2-02.png │ ├── task-processing-bestpractice-2-03.png │ ├── task-processing-bestpractice-2-04.png │ ├── task-processing-bestpractice-2-05.png │ ├── task-processing-bestpractice-3-01.png │ ├── task-processing-bestpractice-3-02.png │ ├── task-processing-bestpractice-3-03.png │ ├── task-processing-bestpractice-3-04.png │ ├── task-processing-with-hangfire-01.png │ ├── task-processing-with-hangfire-02.png │ ├── task-processing-with-hangfire-03.png │ ├── task-processing-with-hangfire-04.png │ ├── task-processing-with-hangfire-05.png │ ├── task-processing-with-hangfire-06.png │ ├── task-processing-with-hangfire-07.png │ ├── use-redis-cachedatas-01.png │ ├── use-redis-cachedatas-02.png │ ├── use-redis-cachedatas-03.png │ ├── use-redis-cachedatas-04.png │ ├── use-redis-cachedatas-05.png │ ├── use-redis-cachedatas-06.png │ └── wechart.jpg │ ├── object-mapping-with-automapper.md │ ├── publish-blog.md │ ├── repositories-and-crud.md │ ├── return-api.md │ ├── slim-and-run.md │ ├── swagger-group-describe-authorize.md │ ├── task-processing-bestpractice-1.md │ ├── task-processing-bestpractice-2.md │ ├── task-processing-bestpractice-3.md │ ├── task-processing-with-hangfire.md │ └── use-redis-cachedatas.md ├── build-docker-image.ps1 ├── conf.d └── nginx.conf ├── docker-compose.yml ├── package-lock.json ├── package.json ├── stack ├── README.md ├── blazor │ ├── gomoku-games-based-on-blazor.md │ └── images │ │ ├── gomoku-games-based-on-blazor-01.png │ │ ├── gomoku-games-based-on-blazor-02.png │ │ ├── gomoku-games-based-on-blazor-03.png │ │ ├── gomoku-games-based-on-blazor-04.png │ │ ├── gomoku-games-based-on-blazor-05.png │ │ ├── gomoku-games-based-on-blazor-06.png │ │ └── gomoku-games-based-on-blazor-07.png ├── docker │ ├── basic_concept │ │ ├── container.md │ │ ├── image.md │ │ └── repository.md │ ├── best_practices │ │ └── README.md │ ├── cicd │ │ ├── README.md │ │ ├── drone-install.md │ │ ├── drone.md │ │ ├── github-actions.md │ │ ├── images │ │ │ ├── drone-build.png │ │ │ └── github_application_create.png │ │ └── travis.md │ ├── command │ │ ├── docker.md │ │ ├── dockerd.md │ │ └── images │ │ │ └── cmd_logic.png │ ├── compose │ │ ├── commands.md │ │ ├── compose_file.md │ │ ├── install.md │ │ ├── introduction.md │ │ └── usage.md │ ├── container │ │ ├── attach_exec.md │ │ ├── daemon.md │ │ ├── import_export.md │ │ ├── rm.md │ │ ├── run.md │ │ └── stop.md │ ├── data_management │ │ ├── bind-mounts.md │ │ └── volume.md │ ├── debug │ │ └── README.md │ ├── dockerfile │ │ ├── add.md │ │ ├── arg.md │ │ ├── cmd.md │ │ ├── copy.md │ │ ├── entrypoint.md │ │ ├── env.md │ │ ├── expose.md │ │ ├── healthcheck.md │ │ ├── manifest.md │ │ ├── multistage-builds.md │ │ ├── onbuild.md │ │ ├── references.md │ │ ├── user.md │ │ ├── volume.md │ │ └── workdir.md │ ├── faq │ │ └── README.md │ ├── image │ │ ├── build.md │ │ ├── commit.md │ │ ├── images │ │ │ ├── images-create-nginx-docker.png │ │ │ └── images-mac-example-nginx.png │ │ ├── internal.md │ │ ├── list.md │ │ ├── other.md │ │ ├── pull.md │ │ └── rm.md │ ├── install │ │ ├── centos.md │ │ ├── debian.md │ │ ├── experimental.md │ │ ├── fedora.md │ │ ├── images │ │ │ ├── install-mac-apps.png │ │ │ ├── install-mac-dmg.png │ │ │ ├── install-mac-example-nginx.png │ │ │ ├── install-mac-menu.png │ │ │ ├── install-mac-menubar.png │ │ │ ├── install-mac-success.png │ │ │ ├── install-win-docker-app-search.png │ │ │ ├── install-win-success-popup-cloud.png │ │ │ ├── install-win-taskbar-circle.png │ │ │ └── offline-01.png │ │ ├── mac.md │ │ ├── mirror.md │ │ ├── offline.md │ │ ├── raspberry-pi.md │ │ ├── ubuntu.md │ │ └── windows.md │ ├── introduction │ │ ├── images │ │ │ ├── docker.png │ │ │ └── virtualization.png │ │ ├── what.md │ │ └── why.md │ ├── linuxkit │ │ └── README.md │ ├── network │ │ ├── dns.md │ │ ├── linking.md │ │ └── port_mapping.md │ ├── podman │ │ └── README.md │ ├── repo │ │ ├── centos.md │ │ ├── consul.md │ │ ├── elasticsearch.md │ │ ├── grafana.md │ │ ├── kafka.md │ │ ├── kibana.md │ │ ├── memcached.md │ │ ├── minio.md │ │ ├── mongodb.md │ │ ├── mysql.md │ │ ├── nginx.md │ │ ├── nodejs.md │ │ ├── php.md │ │ ├── postgres.md │ │ ├── rabbitmq.md │ │ ├── redis.md │ │ ├── sqlserver.md │ │ ├── ubuntu.md │ │ ├── wordpress.md │ │ └── zookeeper.md │ ├── repository │ │ ├── README.md │ │ ├── dockerhub.md │ │ ├── nexus3_registry.md │ │ ├── registry.md │ │ └── registry_auth.md │ ├── resources │ │ └── README.md │ └── swarm_mode │ │ ├── config.md │ │ ├── create.md │ │ ├── deploy.md │ │ ├── images │ │ ├── services-diagram.png │ │ ├── swarm-diagram.png │ │ └── wordpress.png │ │ ├── overview.md │ │ ├── rolling_update.md │ │ ├── secret.md │ │ └── stack.md ├── dotnetcore │ ├── abp-template.md │ ├── api-gateway.md │ ├── apollo-in-dotnet.md │ ├── autoapi.md │ ├── captcha.md │ ├── consul.md │ ├── elasticsearch-in-dotnet.md │ ├── epplus-wps-error.md │ ├── exceptionless-in-dotnet.md │ ├── grpc-in-dotnet.md │ ├── images │ │ ├── api-gateway-01.png │ │ ├── api-gateway-02.png │ │ ├── api-gateway-03.png │ │ ├── api-gateway-04.png │ │ ├── apollo-in-dotnet-01.png │ │ ├── apollo-in-dotnet-02.png │ │ ├── apollo-in-dotnet-03.png │ │ ├── apollo-in-dotnet-04.png │ │ ├── apollo-in-dotnet-05.png │ │ ├── apollo-in-dotnet-06.png │ │ ├── apollo-in-dotnet-07.png │ │ ├── apollo-in-dotnet-08.png │ │ ├── autoapi-01.png │ │ ├── captcha-01.png │ │ ├── consul-01.png │ │ ├── consul-02.png │ │ ├── consul-03.png │ │ ├── consul-04.png │ │ ├── consul-05.png │ │ ├── consul-06.png │ │ ├── consul-07.png │ │ ├── consul-08.png │ │ ├── consul-09.png │ │ ├── consul-10.png │ │ ├── consul-11.png │ │ ├── elasticsearch-in-dotnet-01.png │ │ ├── elasticsearch-in-dotnet-02.png │ │ ├── exceptionless-in-dotnet-01.png │ │ ├── exceptionless-in-dotnet-02.png │ │ ├── exceptionless-in-dotnet-03.png │ │ ├── grpc-in-dotnet-01.png │ │ ├── grpc-in-dotnet-02.png │ │ ├── grpc-in-dotnet-03.png │ │ ├── import-and-export-excel-01.png │ │ ├── import-and-export-excel-02.png │ │ ├── import-and-export-excel-03.png │ │ ├── json-web-token-01.png │ │ ├── json-web-token-02.png │ │ ├── json-web-token-03.png │ │ ├── json-web-token-04.png │ │ ├── kafka-in-dotnet-01.png │ │ ├── kafka-in-dotnet-02.png │ │ ├── log4net-in-dotnet-01.png │ │ ├── log4net-in-dotnet-02.png │ │ ├── mailkit-01.png │ │ ├── mailkit-02.png │ │ ├── mta-package-01.png │ │ ├── mta-package-02.png │ │ ├── nlog-in-dotnet-01.png │ │ ├── nlog-in-dotnet-02.png │ │ ├── qrcode-01.png │ │ ├── rabbitmq-in-dotnet-01.png │ │ ├── rabbitmq-in-dotnet-02.png │ │ ├── spider-01.png │ │ ├── spider-02.png │ │ ├── spider-03.png │ │ ├── spider-04.png │ │ ├── spider-05.png │ │ ├── swagger-01.gif │ │ └── swagger-02.png │ ├── import-and-export-excel.md │ ├── json-web-token.md │ ├── kafka-in-dotnet.md │ ├── log4net-in-dotnet.md │ ├── mailkit.md │ ├── mta-package.md │ ├── nlog-in-dotnet.md │ ├── operate-git-auto-publish-to-github.md │ ├── publish-to-centos.md │ ├── qrcode.md │ ├── rabbitmq-in-dotnet.md │ ├── serilog-in-dotnet.md │ ├── spider.md │ └── swagger.md ├── git │ ├── git-commit-emojis.md │ └── git-scripts.md ├── kubernetes │ ├── concepts.md │ ├── design.md │ ├── images │ │ ├── k8s.png │ │ ├── k8s_architecture.png │ │ ├── kube-proxy.png │ │ ├── kubernetes_design.jpg │ │ ├── kubernetes_logo.png │ │ └── ui-dashboard.png │ ├── intro.md │ ├── kubectl.md │ └── setup │ │ ├── README.md │ │ ├── dashboard.md │ │ ├── docker-desktop.md │ │ ├── kubeadm.md │ │ └── systemd.md ├── other │ ├── batch-rename-with-powershell.md │ ├── erp-code-specification-summary.md │ ├── images │ │ ├── revoke-wechart-msg-patcher-01.gif │ │ ├── revoke-wechart-msg-patcher-02.png │ │ ├── revoke-wechart-msg-patcher-03.png │ │ ├── revoke-wechart-msg-patcher-04.png │ │ ├── revoke-wechart-msg-patcher-05.gif │ │ ├── revoke-wechart-msg-patcher-06.gif │ │ ├── smart-questions-01.png │ │ ├── smart-questions-02.png │ │ ├── smart-questions-03.png │ │ ├── smart-questions-04.png │ │ ├── smart-questions-05.png │ │ ├── smart-questions-06.png │ │ ├── smart-questions-07.png │ │ ├── why-is-kafka-so-fast-01.jpg │ │ ├── why-is-kafka-so-fast-02.jpg │ │ ├── why-is-kafka-so-fast-03.jpg │ │ ├── why-is-kafka-so-fast-04.png │ │ ├── why-is-kafka-so-fast-05.png │ │ └── why-is-kafka-so-fast-06.png │ ├── kafka-install.md │ ├── nginx.md │ ├── remove-windows-shortcuts.md │ ├── revoke-wechart-msg-patcher.md │ ├── smart-questions.md │ ├── visual-studio-keys.md │ ├── why-is-kafka-so-fast.md │ ├── windows10-run-android-emulator-bsod-solution.md │ └── zabbix.md ├── pa │ └── rules-functions.md ├── python │ ├── data-extraction │ │ ├── beautifulsoup.md │ │ ├── lxml.md │ │ ├── python-re.md │ │ ├── regex.md │ │ └── xpath.md │ ├── data-storage │ │ ├── csv.md │ │ ├── json.md │ │ ├── mongodb.md │ │ └── pymysql.md │ ├── network-request │ │ ├── http.md │ │ ├── requests.md │ │ └── urllib.md │ └── spider │ │ ├── multithreading.md │ │ ├── scrapy-redis.md │ │ ├── scrapy.md │ │ ├── selenium.md │ │ └── tesseract.md ├── storage │ ├── elasticsearch │ │ └── README.md │ ├── mongodb │ │ └── mongodb-shell.md │ ├── mysql │ │ └── mysql-install.md │ ├── redis │ │ ├── images │ │ │ ├── redis-knowledge-01.png │ │ │ ├── redis-knowledge-02.png │ │ │ ├── redis-knowledge-03.png │ │ │ ├── redis-knowledge-04.png │ │ │ ├── redis-knowledge-05.png │ │ │ ├── redis-knowledge-06.png │ │ │ ├── redis-knowledge-07.png │ │ │ ├── redis-knowledge-08.png │ │ │ ├── redis-knowledge-09.png │ │ │ ├── redis-knowledge-10.png │ │ │ ├── redis-knowledge-11.png │ │ │ ├── redis-knowledge-12.png │ │ │ ├── redis-knowledge-13.png │ │ │ ├── redis-knowledge-14.png │ │ │ ├── redis-knowledge-15.png │ │ │ ├── redis-knowledge-16.png │ │ │ └── redis-knowledge-17.png │ │ ├── quick-start-with-redis.md │ │ └── redis-knowledge.md │ ├── sql │ │ ├── cursor-loop-processing-data.md │ │ ├── execute-big-sql.md │ │ ├── query.md │ │ └── sql-to-model.md │ └── sqlite │ │ └── README.md └── web │ ├── ascii-table.md │ ├── html-escape-characters.md │ ├── http-content-type.md │ ├── http-statuscode.md │ └── js-minimize-code.md ├── summary ├── 2016-summary.md ├── 2017-summary.md ├── 2018-summary.md ├── 2019-summary.md ├── 2020-summary.md ├── 2021-daily-summary.md ├── 2021-summary.md ├── 2021.03.26-summary.md ├── 2021.04.09-summary.md ├── 2021.04.23-summary.md ├── 2021.05.07-summary.md ├── 2021.05.21-summary.md ├── 2021.06.04-summary.md ├── 2021.06.18-summary.md ├── 2021.07.02-summary.md ├── 2021.07.16-summary.md ├── 2021.07.30-summary.md ├── 2021.08.13-summary.md ├── 2021.08.27-summary.md ├── 2021.09.10-summary.md ├── 2021.09.24-summary.md ├── 2021.10.08-summary.md ├── 2021.10.22-summary.md ├── 2021.11.05-summary.md ├── 2021.11.19-summary.md ├── 2021.12.03-summary.md ├── 2021.12.17-summary.md ├── 2021.12.31-summary.md ├── 2022-summary.md ├── COVID-19-battle-summary.md ├── README.md ├── from-college-to-work.md ├── images │ ├── COVID-19-battle-summary-01.jpg │ ├── COVID-19-battle-summary-02.jpg │ ├── COVID-19-battle-summary-03.jpg │ ├── COVID-19-battle-summary-04.jpg │ ├── COVID-19-battle-summary-05.jpg │ ├── COVID-19-battle-summary-06.jpg │ ├── COVID-19-battle-summary-07.jpg │ ├── COVID-19-battle-summary-08.jpg │ ├── COVID-19-battle-summary-09.jpg │ ├── summary-01.jpg │ ├── summary-02.jpg │ ├── summary-03.jpg │ ├── summary-04.jpg │ ├── summary-05.jpg │ └── summary-06.jpg ├── internship-month-summary.md └── internship-summary.md └── yarn.lock /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: publish documents 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | build-deploy: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v1 14 | - run: npm install 15 | - run: npm run build 16 | - run: cp CNAME .vuepress/dist/ 17 | 18 | - name: Deploy to github.io 19 | uses: peaceiris/actions-gh-pages@v2.5.0 20 | env: 21 | ACTIONS_DEPLOY_KEY: ${{secrets.DEPLOY_KEY}} 22 | PUBLISH_BRANCH: gh-pages 23 | PUBLISH_DIR: .vuepress/dist -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.~ 2 | *.tmp 3 | .idea/ 4 | _book/ 5 | *.swp 6 | *.edx 7 | .DS_Store 8 | node_modules/ 9 | .vuepress/dist 10 | -------------------------------------------------------------------------------- /.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /.vuepress/public/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/head.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/Epsilon2.1.model.json: -------------------------------------------------------------------------------- 1 | {"version":"Sample 1.0.0","model":"moc/Epsilon2.1.moc","textures":["moc/Epsilon2.1.2048/texture_00.png"],"layout":{"center_x":0,"y":1,"width":2},"expressions":[{"name":"f04.exp.json","file":"exp/f04.exp.json"},{"name":"f05.exp.json","file":"exp/f05.exp.json"},{"name":"f06.exp.json","file":"exp/f06.exp.json"},{"name":"f07.exp.json","file":"exp/f07.exp.json"},{"name":"f08.exp.json","file":"exp/f08.exp.json"},{"name":"f01.exp.json","file":"exp/f01.exp.json"},{"name":"f02.exp.json","file":"exp/f02.exp.json"},{"name":"f03.exp.json","file":"exp/f03.exp.json"}],"motions":{"":[{"file":"mtn/Epsilon2.1_m_01.mtn"},{"file":"mtn/Epsilon2.1_m_02.mtn"},{"file":"mtn/Epsilon2.1_m_03.mtn"},{"file":"mtn/Epsilon2.1_m_04.mtn"},{"file":"mtn/Epsilon2.1_m_05.mtn"},{"file":"mtn/Epsilon2.1_m_06.mtn"},{"file":"mtn/Epsilon2.1_m_07.mtn"},{"file":"mtn/Epsilon2.1_m_08.mtn"},{"file":"mtn/Epsilon2.1_m_sp_01.mtn"},{"file":"mtn/Epsilon2.1_m_sp_02.mtn"},{"file":"mtn/Epsilon2.1_m_sp_03.mtn"},{"file":"mtn/Epsilon2.1_m_sp_04.mtn"},{"file":"mtn/Epsilon2.1_m_sp_05.mtn"},{"file":"mtn/Epsilon2.1_shake_01.mtn"}],"idle":[{"file":"mtn/Epsilon2.1_idle_01.mtn"}]},"physics":"Epsilon2.1.physics.json"} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/exp/f01.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/exp/f02.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0,"calc":"mult"},{"id":"PARAM_EYE_L_SMILE","val":1},{"id":"PARAM_EYE_R_OPEN","val":0,"calc":"mult"},{"id":"PARAM_EYE_R_SMILE","val":1},{"id":"PARAM_BROW_L_ANGLE","val":0.48},{"id":"PARAM_BROW_R_ANGLE","val":0.46}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/exp/f03.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0.87,"calc":"mult"},{"id":"PARAM_EYE_L_SMILE","val":1},{"id":"PARAM_EYE_R_OPEN","val":0.87,"calc":"mult"},{"id":"PARAM_BROW_L_Y","val":-1},{"id":"PARAM_BROW_R_Y","val":-1},{"id":"PARAM_BROW_L_ANGLE","val":1},{"id":"PARAM_BROW_R_ANGLE","val":1},{"id":"PARAM_BROW_L_FORM","val":-0.51},{"id":"PARAM_BROW_R_FORM","val":-0.51},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/exp/f04.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_Y","val":-0.59},{"id":"PARAM_BROW_R_Y","val":-0.59},{"id":"PARAM_BROW_L_X","val":-1},{"id":"PARAM_BROW_R_X","val":-1},{"id":"PARAM_BROW_L_ANGLE","val":-1},{"id":"PARAM_BROW_R_ANGLE","val":-1},{"id":"PARAM_BROW_L_FORM","val":-1},{"id":"PARAM_BROW_R_FORM","val":-1},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/exp/f05.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_Y","val":-0.42},{"id":"PARAM_BROW_R_Y","val":-0.44},{"id":"PARAM_BROW_L_X","val":-0.07},{"id":"PARAM_BROW_L_ANGLE","val":1},{"id":"PARAM_BROW_R_ANGLE","val":1},{"id":"PARAM_TERE","val":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/exp/f06.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_Y","val":-1},{"id":"PARAM_BROW_R_Y","val":-1},{"id":"PARAM_BROW_L_X","val":-0.07},{"id":"PARAM_BROW_L_ANGLE","val":0.73},{"id":"PARAM_BROW_R_ANGLE","val":0.71},{"id":"PARAM_BROW_L_FORM","val":-0.81},{"id":"PARAM_BROW_R_FORM","val":-0.81},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/exp/f07.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":1.5,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":1.5,"calc":"mult"},{"id":"PARAM_BROW_L_Y","val":1},{"id":"PARAM_BROW_R_Y","val":1},{"id":"PARAM_BROW_L_ANGLE","val":0.28},{"id":"PARAM_BROW_R_ANGLE","val":0.31},{"id":"PARAM_BROW_L_FORM","val":1},{"id":"PARAM_BROW_R_FORM","val":1},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/exp/f08.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0.75,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":0.75,"calc":"mult"},{"id":"PARAM_BROW_L_Y","val":-0.31},{"id":"PARAM_BROW_R_Y","val":-0.36},{"id":"PARAM_BROW_L_ANGLE","val":0.61},{"id":"PARAM_BROW_R_ANGLE","val":0.62},{"id":"PARAM_BROW_L_FORM","val":-1},{"id":"PARAM_BROW_R_FORM","val":-1},{"id":"PARAM_MOUTH_FORM","val":-0.53,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/moc/Epsilon2.1.2048/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/moc/Epsilon2.1.2048/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/moc/Epsilon2.1.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/moc/Epsilon2.1.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-epsilon2_1/assets/mtn/Epsilon2.1_m_01.mtn: -------------------------------------------------------------------------------- 1 | # Live2D Animator Motion Data 2 | $fps=30 3 | 4 | PARAM_ANGLE_X=0 5 | PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,1.31,4.14,7.68,11.34,14.69,17.47,19.31,20,17.28,10.48,1.02,-9.24,-18.35,-25,-28.99,-30,-30,-30,-28.8,-25.57,-20.9,-15.36,-9.64,-4.1,0.57,3.8,5,4.67,3.96,3.08,2.16,1.33,0.63,0.17,0,0,0,0,0,0,0,0,0,0 6 | PARAM_ANGLE_Z=0 7 | PARAM_EYE_L_OPEN=1 8 | PARAM_EYE_L_SMILE=0 9 | PARAM_EYE_R_OPEN=1 10 | PARAM_EYE_R_SMILE=0 11 | PARAM_EYE_BALL_X=0 12 | PARAM_EYE_BALL_Y=0 13 | PARAM_BROW_L_Y=0 14 | PARAM_BROW_R_Y=0 15 | PARAM_BROW_L_X=0 16 | PARAM_BROW_R_X=0 17 | PARAM_BROW_L_ANGLE=0 18 | PARAM_BROW_R_ANGLE=0 19 | PARAM_BROW_L_FORM=0 20 | PARAM_BROW_R_FORM=0 21 | PARAM_MOUTH_FORM=1 22 | PARAM_MOUTH_OPEN_Y=0 23 | PARAM_TERE=0 24 | PARAM_SWEAT_TEAR=0 25 | PARAM_RAGE=0 26 | PARAM_BODY_ANGLE_X=0 27 | PARAM_BODY_ANGLE_Z=0 28 | PARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.46,1.45,2.69,3.97,5.14,6.11,6.76,7,6.21,4.51,2.39,0.19,-1.82,-3.48,-4.59,-5,-4.83,-4.37,-3.7,-2.91,-2.09,-1.3,-0.63,-0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 29 | PARAM_ARM_L=0 30 | PARAM_ARM_R=0 31 | PARAM_BREATH=0 32 | PARAM_HAIR_SIDE=0 33 | PARAM_HAIR_BACK=0 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/exp/f01.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/exp/f02.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_MOUTH_FORM","val":0,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/exp/f03.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_FORM","val":-1},{"id":"PARAM_BROW_L_ANGLE","val":-0.5},{"id":"PARAM_BROW_R_ANGLE","val":-0.5},{"id":"PARAM_BROW_L_FORM","val":-0.5},{"id":"PARAM_BROW_R_FORM","val":-0.5},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/exp/f04.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0.9,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":0.9,"calc":"mult"},{"id":"PARAM_EYE_FORM","val":1},{"id":"PARAM_BROW_L_ANGLE","val":0.3},{"id":"PARAM_BROW_R_ANGLE","val":0.3},{"id":"PARAM_BROW_L_FORM","val":-0.5},{"id":"PARAM_BROW_R_FORM","val":-0.5},{"id":"PARAM_MOUTH_FORM","val":-0.5,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/exp/f05.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0,"calc":"mult"},{"id":"PARAM_EYE_L_SMILE","val":1},{"id":"PARAM_EYE_R_OPEN","val":0,"calc":"mult"},{"id":"PARAM_EYE_R_SMILE","val":1},{"id":"PARAM_BROW_L_Y","val":0.3},{"id":"PARAM_BROW_R_Y","val":0.3},{"id":"PARAM_BROW_L_FORM","val":0.2},{"id":"PARAM_BROW_R_FORM","val":0.2}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/exp/f06.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":2,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":2,"calc":"mult"},{"id":"PARAM_EYE_BALL_FORM","val":-1},{"id":"PARAM_BROW_L_Y","val":0.3},{"id":"PARAM_BROW_R_Y","val":0.3},{"id":"PARAM_BROW_L_FORM","val":0.5},{"id":"PARAM_BROW_R_FORM","val":0.5},{"id":"PARAM_MOUTH_FORM","val":-0.21,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/exp/f07.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0.9,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":0.9,"calc":"mult"},{"id":"PARAM_EYE_FORM","val":0.3},{"id":"PARAM_BROW_L_ANGLE","val":0.25},{"id":"PARAM_BROW_R_ANGLE","val":0.25},{"id":"PARAM_BROW_L_FORM","val":-0.47},{"id":"PARAM_BROW_R_FORM","val":-0.43},{"id":"PARAM_MOUTH_FORM","val":0.5,"def":1},{"id":"PARAM_TERE","val":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/exp/f08.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0.8,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":0.8,"calc":"mult"},{"id":"PARAM_BROW_L_FORM","val":-0.5},{"id":"PARAM_BROW_R_FORM","val":-0.5},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/haru01.physics.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Physics","physics_hair":[{"comment":"hair front","setup":{"length":0.17,"regist":0.5,"mass":0.1},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":1}],"targets":[{"id":"PARAM_HAIR_FRONT","ptype":"angle","scale":0.025,"weight":1}]},{"comment":"hair back","setup":{"length":0.34,"regist":0.5,"mass":0.2},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":1}],"targets":[{"id":"PARAM_HAIR_BACK","ptype":"angle","scale":0.025,"weight":1}]}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/haru01.pose.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Pose","parts_visible":[{"group":[{"id":"PARTS_01_ARM_L_A_001","link":["PARTS_01_ARM_L_A_002"]},{"id":"PARTS_01_ARM_L_B_001","link":["PARTS_01_ARM_L_B_002"]}]},{"group":[{"id":"PARTS_01_ARM_R_A_001","link":["PARTS_01_ARM_R_A_002"]},{"id":"PARTS_01_ARM_R_B_001","link":["PARTS_01_ARM_R_B_002"]}]}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/moc/haru01.1024/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/moc/haru01.1024/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/moc/haru01.1024/texture_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/moc/haru01.1024/texture_01.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/moc/haru01.1024/texture_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/moc/haru01.1024/texture_02.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/moc/haru01.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/moc/haru01.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/flickHead_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/flickHead_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/pinchIn_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/pinchIn_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/pinchOut_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/pinchOut_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/shake_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/shake_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/tapBody_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/tapBody_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/tapBody_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/tapBody_01.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/tapBody_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/01/assets/snd/tapBody_02.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/exp/f01.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/exp/f02.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_MOUTH_FORM","val":0,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/exp/f03.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_FORM","val":-1},{"id":"PARAM_BROW_L_ANGLE","val":-0.5},{"id":"PARAM_BROW_R_ANGLE","val":-0.5},{"id":"PARAM_BROW_L_FORM","val":-0.5},{"id":"PARAM_BROW_R_FORM","val":-0.5},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/exp/f04.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0.9,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":0.9,"calc":"mult"},{"id":"PARAM_EYE_FORM","val":1},{"id":"PARAM_BROW_L_ANGLE","val":0.3},{"id":"PARAM_BROW_R_ANGLE","val":0.3},{"id":"PARAM_BROW_L_FORM","val":-0.5},{"id":"PARAM_BROW_R_FORM","val":-0.5},{"id":"PARAM_MOUTH_FORM","val":-0.5,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/exp/f05.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0,"calc":"mult"},{"id":"PARAM_EYE_L_SMILE","val":1},{"id":"PARAM_EYE_R_OPEN","val":0,"calc":"mult"},{"id":"PARAM_EYE_R_SMILE","val":1},{"id":"PARAM_BROW_L_Y","val":0.3},{"id":"PARAM_BROW_R_Y","val":0.3},{"id":"PARAM_BROW_L_FORM","val":0.2},{"id":"PARAM_BROW_R_FORM","val":0.2}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/exp/f06.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":2,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":2,"calc":"mult"},{"id":"PARAM_EYE_BALL_FORM","val":-1},{"id":"PARAM_BROW_L_Y","val":0.3},{"id":"PARAM_BROW_R_Y","val":0.3},{"id":"PARAM_BROW_L_FORM","val":0.5},{"id":"PARAM_BROW_R_FORM","val":0.5},{"id":"PARAM_MOUTH_FORM","val":-0.21,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/exp/f07.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0.9,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":0.9,"calc":"mult"},{"id":"PARAM_EYE_FORM","val":0.3},{"id":"PARAM_BROW_L_ANGLE","val":0.25},{"id":"PARAM_BROW_R_ANGLE","val":0.25},{"id":"PARAM_BROW_L_FORM","val":-0.47},{"id":"PARAM_BROW_R_FORM","val":-0.43},{"id":"PARAM_MOUTH_FORM","val":0.5,"def":1},{"id":"PARAM_TERE","val":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/exp/f08.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0.8,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":0.8,"calc":"mult"},{"id":"PARAM_BROW_L_FORM","val":-0.5},{"id":"PARAM_BROW_R_FORM","val":-0.5},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/haru02.physics.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Physics","physics_hair":[{"comment":"hair front","setup":{"length":0.17,"regist":0.5,"mass":0.1},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":1}],"targets":[{"id":"PARAM_HAIR_FRONT","ptype":"angle","scale":0.025,"weight":1}]},{"comment":"hair back","setup":{"length":0.34,"regist":0.5,"mass":0.2},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":1}],"targets":[{"id":"PARAM_HAIR_BACK","ptype":"angle","scale":0.025,"weight":1}]}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/haru02.pose.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Pose","parts_visible":[{"group":[{"id":"PARTS_01_ARM_L_A_001","link":["PARTS_01_ARM_L_A_002"]},{"id":"PARTS_01_ARM_L_B_001","link":["PARTS_01_ARM_L_B_002"]}]},{"group":[{"id":"PARTS_01_ARM_R_A_001","link":["PARTS_01_ARM_R_A_002"]},{"id":"PARTS_01_ARM_R_B_001","link":["PARTS_01_ARM_R_B_002"]}]}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/moc/haru02.1024/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/moc/haru02.1024/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/moc/haru02.1024/texture_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/moc/haru02.1024/texture_01.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/moc/haru02.1024/texture_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/moc/haru02.1024/texture_02.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/moc/haru02.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/moc/haru02.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/flickHead_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/flickHead_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/pinchIn_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/pinchIn_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/pinchOut_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/pinchOut_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/shake_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/shake_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/tapBody_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/tapBody_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/tapBody_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/tapBody_01.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/tapBody_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haru/02/assets/snd/tapBody_02.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haruto/assets/haruto.model.json: -------------------------------------------------------------------------------- 1 | {"version":"Sample 1.0.0","model":"moc/haruto.moc","textures":["moc/haruto.2048/texture_00.png"],"motions":{"idle":[{"file":"mtn/idle_02.mtn"}],"":[{"file":"mtn/01.mtn"},{"file":"mtn/02.mtn"},{"file":"mtn/03.mtn"},{"file":"mtn/04.mtn"},{"file":"mtn/05.mtn"},{"file":"mtn/06.mtn"},{"file":"mtn/07.mtn"},{"file":"mtn/08.mtn"},{"file":"mtn/09.mtn"}]},"physics":"haruto.physics.json","name":"haruto"} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haruto/assets/moc/haruto.2048/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haruto/assets/moc/haruto.2048/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-haruto/assets/moc/haruto.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-haruto/assets/moc/haruto.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-hijiki/assets/hijiki.model.json: -------------------------------------------------------------------------------- 1 | {"version":"Sample 1.0.0","model":"moc/hijiki.moc","textures":["moc/hijiki.2048/texture_00.png"],"name":"hijiki","pose":"hijiki.pose.json","motions":{"idle":[{"file":"mtn/00_idle.mtn"}],"":[{"file":"mtn/01.mtn"},{"file":"mtn/02.mtn"},{"file":"mtn/03.mtn"},{"file":"mtn/04.mtn"},{"file":"mtn/05.mtn"},{"file":"mtn/06.mtn"},{"file":"mtn/07.mtn"},{"file":"mtn/08.mtn"}]}} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-hijiki/assets/hijiki.pose.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Pose","fade_in":0,"parts_visible":[{"group":[{"id":"PARTS_01_ARM_R"},{"id":"PARTS_01_ARM_R_02"}]},{"group":[{"id":"PARTS_01_ARM_L"},{"id":"PARTS_01_ARM_L_02"}]}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-hijiki/assets/moc/hijiki.2048/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-hijiki/assets/moc/hijiki.2048/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-hijiki/assets/moc/hijiki.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-hijiki/assets/moc/hijiki.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/exp/f01.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/exp/f02.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_FORM","val":-1},{"id":"PARAM_BROW_R_FORM","val":-1},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/exp/f03.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_X","val":-0.59},{"id":"PARAM_BROW_R_X","val":-0.57},{"id":"PARAM_BROW_L_ANGLE","val":1},{"id":"PARAM_BROW_R_ANGLE","val":1},{"id":"PARAM_BROW_L_FORM","val":-1},{"id":"PARAM_BROW_R_FORM","val":-1},{"id":"PARAM_MOUTH_FORM","val":-0.45,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/exp/f04.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":0,"calc":"mult"},{"id":"PARAM_EYE_L_SMILE","val":1},{"id":"PARAM_EYE_R_OPEN","val":0,"calc":"mult"},{"id":"PARAM_EYE_R_SMILE","val":1},{"id":"PARAM_BROW_L_FORM","val":1},{"id":"PARAM_BROW_R_FORM","val":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/exp/f05.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":1.5,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":1.5,"calc":"mult"},{"id":"PARAM_EYE_BALL_FORM","val":-1},{"id":"PARAM_BROW_L_FORM","val":1},{"id":"PARAM_BROW_R_FORM","val":1},{"id":"PARAM_MOUTH_FORM","val":0,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/exp/f06.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_BROW_L_Y","val":0.39},{"id":"PARAM_BROW_R_Y","val":0.42},{"id":"PARAM_BROW_L_X","val":-0.48},{"id":"PARAM_BROW_R_X","val":-0.48},{"id":"PARAM_BROW_L_ANGLE","val":1},{"id":"PARAM_BROW_R_ANGLE","val":1},{"id":"PARAM_BROW_L_FORM","val":-0.51},{"id":"PARAM_BROW_R_FORM","val":-0.48},{"id":"PARAM_MOUTH_FORM","val":0.57,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/exp/f07.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_L_OPEN","val":1.5,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":1.5,"calc":"mult"},{"id":"PARAM_BROW_L_Y","val":-0.42},{"id":"PARAM_BROW_R_Y","val":-0.42},{"id":"PARAM_BROW_L_X","val":-0.3},{"id":"PARAM_BROW_R_X","val":-0.3},{"id":"PARAM_BROW_L_FORM","val":-0.54},{"id":"PARAM_BROW_R_FORM","val":-0.57},{"id":"PARAM_MOUTH_FORM","val":0,"def":1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.1024/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.1024/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.1024/texture_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.1024/texture_01.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.1024/texture_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.1024/texture_02.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.1024/texture_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.1024/texture_03.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/moc/izumi_illust.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_01.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_02.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_03.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_03.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_04.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_04.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_05.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_05.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_06.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_06.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_07.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_07.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_08.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_08.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_09.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_09.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_10.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-izumi/assets/snd/izumi_10.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-koharu/assets/koharu.model.json: -------------------------------------------------------------------------------- 1 | {"version":"Sample 1.0.0","model":"moc/koharu.moc","textures":["moc/koharu.2048/texture_00.png"],"motions":{"idle":[{"file":"mtn/idle.mtn"}],"":[{"file":"mtn/06.mtn"},{"file":"mtn/07.mtn"},{"file":"mtn/08.mtn"},{"file":"mtn/09.mtn"},{"file":"mtn/01.mtn"},{"file":"mtn/02.mtn"},{"file":"mtn/03.mtn"},{"file":"mtn/04.mtn"},{"file":"mtn/05.mtn"}]},"physics":"koharu.physics.json","name":"koharu"} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-koharu/assets/moc/koharu.2048/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-koharu/assets/moc/koharu.2048/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-koharu/assets/moc/koharu.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-koharu/assets/moc/koharu.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-miku/assets/miku.model.json: -------------------------------------------------------------------------------- 1 | {"version":"Sample 1.0.0","model":"moc/miku.moc","textures":["moc/miku.2048/texture_00.png"],"motions":{"null":[{"file":"mtn/miku_m_01.mtn"},{"file":"mtn/miku_m_02.mtn"},{"file":"mtn/miku_m_03.mtn"},{"file":"mtn/miku_m_04.mtn"},{"file":"mtn/miku_m_05.mtn"},{"file":"mtn/miku_m_06.mtn"},{"file":"mtn/miku_shake_01.mtn"}],"idle":[{"file":"mtn/miku_idle_01.mtn"}]},"physics":"miku.physics.json"} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-miku/assets/miku.physics.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Physics","physics_hair":[{"label":"FRONT","setup":{"length":0.18,"regist":0.6,"mass":0.18},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":0.5},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":0.5},{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":1},{"id":"PARAM_BODY_ANGLE_Z","ptype":"angle","scale":2.4,"weight":1}],"targets":[{"id":"PARAM_HAIR_FRONT","ptype":"angle","scale":0.025,"weight":1}]},{"label":"BACK","setup":{"length":0.15,"regist":0.85,"mass":0.1},"src":[{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":0.5},{"id":"PARAM_BODY_ANGLE_Z","ptype":"angle","scale":2.4,"weight":0.5},{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.7,"weight":1}],"targets":[{"id":"PARAM_HAIR_BACK","ptype":"angle","scale":0.025,"weight":1}]},{"label":"TWIN","setup":{"length":0.7,"regist":0.5,"mass":0.8},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":1}],"targets":[{"id":"PARAM_HAIR_BACK_L","ptype":"angle","scale":0.005,"weight":1},{"id":"PARAM_HAIR_BACK_R","ptype":"angle","scale":0.005,"weight":1}]}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-miku/assets/moc/miku.2048/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-miku/assets/moc/miku.2048/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-miku/assets/moc/miku.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-miku/assets/moc/miku.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/exp/f01.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/exp/f02.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_BALL_X","val":-0.4},{"id":"PARAM_EYE_BALL_Y","val":-0.7},{"id":"PARAM_EYE_L_OPEN","val":0.7,"def":1,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":0.7,"def":1,"calc":"mult"},{"id":"PARAM_DONYORI","val":0.7},{"id":"PARAM_EYE_FORM","val":0.3},{"id":"PARAM_BODY_Y","val":-0.5},{"id":"PARAM_BROW_L_Y","val":-0.3},{"id":"PARAM_BROW_R_Y","val":-0.3},{"id":"PARAM_BROW_L_X","val":-0.3},{"id":"PARAM_BROW_R_X","val":-0.3},{"id":"PARAM_BROW_L_ANGLE","val":0.5},{"id":"PARAM_BROW_R_ANGLE","val":0.5},{"id":"PARAM_BROW_L_FORM","val":-0.5},{"id":"PARAM_BROW_R_FORM","val":-0.5},{"id":"PARAM_MOUTH_FORM","val":-1,"def":1},{"id":"PARAM_MOUTH_SIZE","val":-1}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/exp/f03.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_BALL_Y","val":0.2},{"id":"PARAM_BODY_Y","val":-0.5},{"id":"PARAM_BROW_L_Y","val":-0.2},{"id":"PARAM_BROW_R_Y","val":-0.2},{"id":"PARAM_BROW_L_X","val":-0.4},{"id":"PARAM_BROW_R_X","val":-0.4},{"id":"PARAM_BROW_L_FORM","val":-1},{"id":"PARAM_BROW_R_FORM","val":-1},{"id":"PARAM_MOUTH_FORM","val":-0.7,"def":1},{"id":"PARAM_MOUTH_SIZE","val":0.3}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/exp/f04.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500,"params":[{"id":"PARAM_EYE_BALL_X","val":-0.4},{"id":"PARAM_EYE_BALL_Y","val":-0.7},{"id":"PARAM_EYE_BALL_KIRAKIRA","val":1},{"id":"PARAM_EYE_L_OPEN","val":1.5,"def":1,"calc":"mult"},{"id":"PARAM_EYE_R_OPEN","val":1.5,"def":1,"calc":"mult"},{"id":"PARAM_BROW_L_FORM","val":0.5},{"id":"PARAM_BROW_R_FORM","val":0.5},{"id":"PARAM_KAMIYURE_TWIN_L_02","val":0.3},{"id":"PARAM_KAMIYURE_TWIN_R_02","val":-0.3},{"id":"PARAM_MOUTH_SIZE","val":1},{"id":"PARAM_TERE","val":1,"def":0.6}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_01.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_02.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_03.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_04.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.1024/texture_05.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/moc/shizuku.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/shizuku.pose.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Pose","parts_visible":[{"group":[{"id":"PARTS_01_ARM_L_01"},{"id":"PARTS_01_ARM_L_02"}]},{"group":[{"id":"PARTS_01_ARM_R_01"},{"id":"PARTS_01_ARM_R_02"}]}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/flickHead_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/flickHead_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/flickHead_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/flickHead_01.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/flickHead_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/flickHead_02.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchIn_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchIn_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchIn_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchIn_01.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchIn_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchIn_02.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchOut_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchOut_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchOut_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchOut_01.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchOut_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/pinchOut_02.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/shake_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/shake_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/shake_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/shake_01.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/shake_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/shake_02.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/tapBody_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/tapBody_00.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/tapBody_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/tapBody_01.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/tapBody_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-shizuku/assets/snd/tapBody_02.mp3 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-tororo/assets/moc/tororo.2048/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-tororo/assets/moc/tororo.2048/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-tororo/assets/moc/tororo.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-tororo/assets/moc/tororo.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-tororo/assets/tororo.model.json: -------------------------------------------------------------------------------- 1 | {"version":"Sample 1.0.0","model":"moc/tororo.moc","textures":["moc/tororo.2048/texture_00.png"],"pose":"tororo.pose.json","name":"tororo","motions":{"idle":[{"file":"mtn/00_idle.mtn"}],"":[{"file":"mtn/01.mtn"},{"file":"mtn/02.mtn"},{"file":"mtn/03.mtn"},{"file":"mtn/04.mtn"},{"file":"mtn/05.mtn"},{"file":"mtn/06.mtn"},{"file":"mtn/07.mtn"},{"file":"mtn/08.mtn"}]}} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-tororo/assets/tororo.pose.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Pose","fade_in":0,"parts_visible":[{"group":[{"id":"PARTS_01_ARM_R"},{"id":"PARTS_01_ARM_R_02"}]},{"group":[{"id":"PARTS_01_ARM_L"},{"id":"PARTS_01_ARM_L_02"}]}]} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-wanko/assets/moc/wanko.1024/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-wanko/assets/moc/wanko.1024/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-wanko/assets/moc/wanko.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-wanko/assets/moc/wanko.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-wanko/assets/mtn/touch_05.mtn: -------------------------------------------------------------------------------- 1 | # Live2D Animator Motion Data 2 | $fps=30 3 | PARAM_ANGLE_X=0 4 | PARAM_ANGLE_Y=-11,-11,-11,-11,-11,-11,-11,-10.28,-8.34,-5.54,-2.22,1.22,4.54,7.34,9.28,10,9.66,8.73,7.4,5.82,4.18,2.6,1.27,0.34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | PARAM_ANGLE_Z=0 6 | PARAM_EYE_L_OPEN=0 7 | PARAM_EYE_R_OPEN=0 8 | PARAM_MOUTH_OPEN_Y=0 9 | PARAM_BODY_ANGLE_X=0 10 | PARAM_BODY_ANGLE_Z=0 11 | PARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0.14,0.51,1.04,1.67,2.33,2.96,3.49,3.86,4,3.86,3.49,2.96,2.33,1.67,1.04,0.51,0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 12 | PARAM_BREATH=0 13 | PARAM_BOWL_LID=50 14 | PARAM_YUGE_01=0 15 | PARAM_YUGE_02=0 16 | PARAM_EFFECT=0 17 | PARAM_EAR_L=0 18 | PARAM_EAR_R=0 19 | PARAM_HAND_L=0 20 | PARAM_HAND_R=0 21 | PARAM_SWING=0 22 | PARAM_BOWL_SWING=0 23 | PARAM_FACE_01=0 24 | PARAM_BASE_X=0 -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-wanko/assets/wanko.model.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Model Setting","name":"wanko","model":"moc/wanko.moc","textures":["moc/wanko.1024/texture_00.png"],"hit_areas":[{"name":"body","id":"D_REF.PT_SOBA_01"}],"layout":{"center_x":0,"y":1.8,"width":2.9},"motions":{"idle":[{"file":"mtn/idle_01.mtn","fade_in":500,"fade_out":200},{"file":"mtn/idle_02.mtn","fade_in":500,"fade_out":200},{"file":"mtn/idle_03.mtn","fade_in":500,"fade_out":200},{"file":"mtn/idle_04.mtn","fade_in":500,"fade_out":200}],"shake":[{"file":"mtn/shake_01.mtn","fade_in":500,"fade_out":0},{"file":"mtn/shake_02.mtn","fade_in":500,"fade_out":0}],"tap_body":[{"file":"mtn/touch_01.mtn","fade_in":500,"fade_out":0},{"file":"mtn/touch_02.mtn","fade_in":500,"fade_out":0},{"file":"mtn/touch_03.mtn","fade_in":500,"fade_out":0}]}} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-z16/assets/exp/f00.exp.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Expression","fade_in":500,"fade_out":500} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-z16/assets/moc/z16.1024/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-z16/assets/moc/z16.1024/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-z16/assets/moc/z16.256/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-z16/assets/moc/z16.256/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-z16/assets/moc/z16.512/texture_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-z16/assets/moc/z16.512/texture_00.png -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-z16/assets/moc/z16.moc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/.vuepress/public/live2d/live2d-widget-model-z16/assets/moc/z16.moc -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-z16/assets/z16.model.json: -------------------------------------------------------------------------------- 1 | {"version":"Live2DViewerEX Config 1.0","model":"moc/z16.moc","textures":["moc/z16.1024/texture_00.png"],"layout":{"center_x":0,"center_y":0,"width":2},"motions":{"idle":[{"file":"mtn/idle.mtn"}]},"expressions":[{"name":"f00.exp.json","file":"exp/f00.exp.json"}],"physics":"z16.physics.json"} -------------------------------------------------------------------------------- /.vuepress/public/live2d/live2d-widget-model-z16/assets/z16.physics.json: -------------------------------------------------------------------------------- 1 | {"type":"Live2D Physics","physics_hair":[{"setup":{"length":2,"regist":10,"mass":10},"src":[{"id":"PARAM_HAIR_FRONT","ptype":"x","scale":2,"weight":0.5},{"id":"PARAM_HAIR_SIDE","ptype":"x","scale":1,"weight":1},{"id":"PARAM_HAIR_BACK","ptype":"angle","scale":1,"weight":0.5},{"id":"PARAM_BODY_ANGLE_X","ptype":"angle","scale":1,"weight":1}],"targets":[]}]} -------------------------------------------------------------------------------- /.vuepress/styles/palette.styl: -------------------------------------------------------------------------------- 1 | $accentColor = #5a9600 2 | 3 | $sidebarWidth = 22rem 4 | $contentWidth = 80% -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | docs.meowv.com -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:12-alpine AS app-base 2 | WORKDIR /app 3 | 4 | COPY . . 5 | 6 | RUN yarn install 7 | RUN yarn build 8 | 9 | FROM nginx:alpine 10 | COPY --from=app-base /app/.vuepress/dist/ /usr/share/nginx/html 11 | CMD [ "nginx", "-g", "daemon off;" ] -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 阿星Plus 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | heroImage: /head.png 4 | heroText: Documents 5 | tagline: Cease to struggle and you cease to live. 6 | actionText: 看看这里都有啥 ➡ 7 | actionLink: /aspnetcore/abp-blog/ 8 | features: null 9 | footer: MIT Licensed | Copyright © 2020-2023 阿星Plus 10 | --- 11 | -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/abp-cli-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/abp-cli-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/abp-cli-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/abp-cli-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/abp-cli-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/abp-cli-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/abp-cli-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/abp-cli-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/alipay.jpg -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/beautify-with-swagger-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/beautify-with-swagger-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/beautify-with-swagger-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/beautify-with-swagger-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-1-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-1-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-1-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-1-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-1-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-1-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-1-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-1-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-2-01.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-2-01.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-2-02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-2-02.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-2-03.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-2-03.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-3-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-3-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-3-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-3-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-3-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-3-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-3-04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-3-04.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-4-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-4-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-4-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-4-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-4-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-4-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-4-04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-4-04.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-4-05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-4-05.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-5-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-5-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-5-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-5-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-5-03.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-5-03.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-5-04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-5-04.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-6-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-6-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-6-02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-6-02.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-6-03.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-6-03.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-7-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-7-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-7-02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-7-02.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-7-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-7-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-7-04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-7-04.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-8-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-8-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-8-02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-8-02.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-8-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-8-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-8-04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-8-04.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-8-05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-8-05.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-9-01.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-9-01.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blazor-bestpractice-9-02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blazor-bestpractice-9-02.gif -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-1-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-1-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-1-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-1-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-1-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-1-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-1-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-1-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-1-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-1-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-1-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-1-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-07.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-08.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-09.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-10.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-11.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-2-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-2-12.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-07.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-08.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-3-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-3-09.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-4-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-4-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-4-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-4-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-5-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-5-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-5-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-5-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/blog-api-bestpractice-5-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/blog-api-bestpractice-5-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/ef-and-codefirst-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/ef-and-codefirst-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/ef-and-codefirst-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/ef-and-codefirst-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/ef-and-codefirst-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/ef-and-codefirst-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/ef-and-codefirst-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/ef-and-codefirst-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/ef-and-codefirst-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/ef-and-codefirst-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/ef-and-codefirst-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/ef-and-codefirst-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/exception-and-logging-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/exception-and-logging-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/exception-and-logging-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/exception-and-logging-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/exception-and-logging-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/exception-and-logging-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/exception-and-logging-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/exception-and-logging-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/exception-and-logging-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/exception-and-logging-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/exception-and-logging-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/exception-and-logging-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/exception-and-logging-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/exception-and-logging-07.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-07.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-08.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-09.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/generate-jwt-with-github-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/generate-jwt-with-github-10.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/object-mapping-with-automapper-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/object-mapping-with-automapper-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-07.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-08.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-09.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-10.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/publish-blog-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/publish-blog-11.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/qrcode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/qrcode.jpg -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/repositories-and-crud-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/repositories-and-crud-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/repositories-and-crud-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/repositories-and-crud-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/repositories-and-crud-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/repositories-and-crud-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/repositories-and-crud-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/repositories-and-crud-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/repositories-and-crud-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/repositories-and-crud-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/repositories-and-crud-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/repositories-and-crud-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/repositories-and-crud-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/repositories-and-crud-07.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/return-api-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/return-api-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/return-api-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/return-api-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/slim-and-run-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/slim-and-run-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/slim-and-run-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/slim-and-run-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/swagger-group-describe-authorize-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/swagger-group-describe-authorize-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/swagger-group-describe-authorize-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/swagger-group-describe-authorize-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/swagger-group-describe-authorize-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/swagger-group-describe-authorize-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/swagger-group-describe-authorize-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/swagger-group-describe-authorize-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/swagger-group-describe-authorize-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/swagger-group-describe-authorize-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/swagger-group-describe-authorize-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/swagger-group-describe-authorize-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-1-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-1-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-1-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-1-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-1-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-1-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-1-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-1-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-1-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-1-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-2-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-2-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-2-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-2-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-2-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-2-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-2-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-2-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-2-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-2-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-3-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-3-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-3-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-3-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-3-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-3-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-bestpractice-3-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-bestpractice-3-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-with-hangfire-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-with-hangfire-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-with-hangfire-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-with-hangfire-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-with-hangfire-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-with-hangfire-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-with-hangfire-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-with-hangfire-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-with-hangfire-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-with-hangfire-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-with-hangfire-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-with-hangfire-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/task-processing-with-hangfire-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/task-processing-with-hangfire-07.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/use-redis-cachedatas-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/use-redis-cachedatas-01.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/use-redis-cachedatas-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/use-redis-cachedatas-02.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/use-redis-cachedatas-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/use-redis-cachedatas-03.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/use-redis-cachedatas-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/use-redis-cachedatas-04.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/use-redis-cachedatas-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/use-redis-cachedatas-05.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/use-redis-cachedatas-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/use-redis-cachedatas-06.png -------------------------------------------------------------------------------- /aspnetcore/abp-blog/images/wechart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/aspnetcore/abp-blog/images/wechart.jpg -------------------------------------------------------------------------------- /build-docker-image.ps1: -------------------------------------------------------------------------------- 1 | docker-compose build --no-cache 2 | 3 | docker tag docs_vuepress hackxing/documents:latest 4 | 5 | docker push hackxing/documents:latest 6 | 7 | docker stop docs 8 | docker rm docs 9 | docker run -P -d --name docs hackxing/documents 10 | -------------------------------------------------------------------------------- /conf.d/nginx.conf: -------------------------------------------------------------------------------- 1 | user root; 2 | worker_processes auto; 3 | 4 | error_log /var/log/nginx/error.log warn; 5 | pid /var/run/nginx.pid; 6 | 7 | 8 | events { 9 | worker_connections 1024; 10 | } 11 | 12 | 13 | http { 14 | include /etc/nginx/mime.types; 15 | default_type application/octet-stream; 16 | 17 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 18 | '$status $body_bytes_sent "$http_referer" ' 19 | '"$http_user_agent" "$http_x_forwarded_for"'; 20 | 21 | access_log /var/log/nginx/access.log main; 22 | 23 | sendfile on; 24 | 25 | keepalive_timeout 65; 26 | 27 | gzip on; 28 | 29 | index index.html; 30 | 31 | server { 32 | 33 | server_name localhost; 34 | 35 | listen 8080; 36 | 37 | root /srv/www/; 38 | 39 | index index.html; 40 | 41 | } 42 | } -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | vuepress: 5 | build: 6 | context: . 7 | dockerfile: Dockerfile 8 | ports: 9 | - 8080:8080 10 | volumes: 11 | - ./:/app 12 | - ./conf.d:/etc/nginx/conf.d 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "docs", 3 | "version": "1.0.0", 4 | "description": "This is a personal document library for development work.", 5 | "main": "index.js", 6 | "dependencies": { 7 | "@vssue/api-github-v3": "^1.4.7", 8 | "@vssue/vuepress-plugin-vssue": "^1.4.8", 9 | "moment": "^2.29.4", 10 | "vuepress-plugin-code-copy": "^1.0.6", 11 | "vuepress-plugin-reading-progress": "^1.0.10" 12 | }, 13 | "devDependencies": { 14 | "@vuepress/plugin-active-header-links": "^1.9.8", 15 | "@vuepress/plugin-back-to-top": "^1.9.8", 16 | "@vuepress/plugin-medium-zoom": "^1.9.8", 17 | "@vuepress/plugin-nprogress": "^1.9.8", 18 | "vuepress": "^1.9.8", 19 | "vuepress-plugin-cursor-effects": "^1.1.6", 20 | "vuepress-plugin-smooth-scroll": "^0.0.10" 21 | }, 22 | "scripts": { 23 | "test": "echo \"Error: no test specified\" && exit 1", 24 | "dev": "npx vuepress dev", 25 | "build": "npx vuepress build" 26 | }, 27 | "author": "阿星Plus", 28 | "license": "MIT" 29 | } 30 | -------------------------------------------------------------------------------- /stack/README.md: -------------------------------------------------------------------------------- 1 | # 技术栈 2 | 3 | 各种技术栈、文章、干货 4 | 5 | 6 | -------------------------------------------------------------------------------- /stack/blazor/images/gomoku-games-based-on-blazor-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/blazor/images/gomoku-games-based-on-blazor-01.png -------------------------------------------------------------------------------- /stack/blazor/images/gomoku-games-based-on-blazor-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/blazor/images/gomoku-games-based-on-blazor-02.png -------------------------------------------------------------------------------- /stack/blazor/images/gomoku-games-based-on-blazor-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/blazor/images/gomoku-games-based-on-blazor-03.png -------------------------------------------------------------------------------- /stack/blazor/images/gomoku-games-based-on-blazor-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/blazor/images/gomoku-games-based-on-blazor-04.png -------------------------------------------------------------------------------- /stack/blazor/images/gomoku-games-based-on-blazor-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/blazor/images/gomoku-games-based-on-blazor-05.png -------------------------------------------------------------------------------- /stack/blazor/images/gomoku-games-based-on-blazor-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/blazor/images/gomoku-games-based-on-blazor-06.png -------------------------------------------------------------------------------- /stack/blazor/images/gomoku-games-based-on-blazor-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/blazor/images/gomoku-games-based-on-blazor-07.png -------------------------------------------------------------------------------- /stack/docker/basic_concept/container.md: -------------------------------------------------------------------------------- 1 | # Docker 容器 2 | 3 | 镜像(`Image`)和容器(`Container`)的关系,就像是面向对象程序设计中的 `类` 和 `实例` 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 4 | 5 | 容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 [命名空间](https://en.wikipedia.org/wiki/Linux_namespaces)。因此容器可以拥有自己的 `root` 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特性,很多人初学 Docker 时常常会混淆容器和虚拟机。 6 | 7 | 前面讲过镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为 **容器存储层**。 8 | 9 | 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。 10 | 11 | 按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 [数据卷(Volume)](../data_management/volume.md)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。 12 | 13 | 数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器删除或者重新运行之后,数据却不会丢失。 14 | -------------------------------------------------------------------------------- /stack/docker/basic_concept/image.md: -------------------------------------------------------------------------------- 1 | # Docker 镜像 2 | 3 | 我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 `root` 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 `root` 文件系统。比如官方镜像 `ubuntu:18.04` 就包含了完整的一套 Ubuntu 18.04 最小系统的 `root` 文件系统。 4 | 5 | Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 6 | 7 | ## 分层存储 8 | 9 | 因为镜像包含操作系统完整的 `root` 文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个 ISO 那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。 10 | 11 | 镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。 12 | 13 | 分层存储的特征还使得镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需的内容,构建新的镜像。 14 | 15 | 关于镜像构建,将会在后续相关章节中做进一步的讲解。 16 | -------------------------------------------------------------------------------- /stack/docker/cicd/README.md: -------------------------------------------------------------------------------- 1 | # CI/CD 2 | 3 | **持续集成(Continuous integration)** 是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 4 | 5 | **持续部署(continuous deployment)** 是通过自动化的构建、测试和部署循环来快速交付高质量的产品。 6 | 7 | 与 `Jenkins` 不同的是,基于 Docker 的 CI/CD 每一步都运行在 Docker 容器中,所以理论上支持所有的编程语言。 8 | -------------------------------------------------------------------------------- /stack/docker/cicd/github-actions.md: -------------------------------------------------------------------------------- 1 | # GitHub Actions 2 | 3 | GitHub [Actions](https://github.com/features/actions) 是 GitHub 推出的一款 CI/CD 工具。 4 | 5 | 我们可以在每个 `job` 的 `step` 中使用 Docker 执行构建步骤。 6 | 7 | ```yaml 8 | on: push 9 | 10 | name: CI 11 | 12 | jobs: 13 | my-job: 14 | name: Build 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@master 18 | with: 19 | fetch-depth: 2 20 | - name: run docker container 21 | uses: docker://golang:alpine 22 | with: 23 | args: go version 24 | ``` 25 | 26 | ## 参考资料 27 | 28 | * [Actions Docs](https://docs.github.com/en/actions) 29 | -------------------------------------------------------------------------------- /stack/docker/cicd/images/drone-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/cicd/images/drone-build.png -------------------------------------------------------------------------------- /stack/docker/cicd/images/github_application_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/cicd/images/github_application_create.png -------------------------------------------------------------------------------- /stack/docker/cicd/travis.md: -------------------------------------------------------------------------------- 1 | # 在 Travis CI 中使用 Docker 2 | 3 | 当代码提交到 GitHub 时,[Travis CI](https://travis-ci.com/) 会根据项目根目录 `.travis.yml` 文件设置的指令,执行一系列操作。 4 | 5 | 本小节介绍如何在 Travis CI 中使用 Docker 进行持续集成/持续部署(CI/CD)。这里以当代码提交到 GitHub 时自动构建 Docker 镜像并推送到 Docker Hub 为例进行介绍。 6 | 7 | ## 准备 8 | 9 | 首先登录 选择 GitHub 仓库,按照指引安装 GitHub App 来启用 GitHub 仓库构建。 10 | 11 | 在项目根目录新建一个 `Dockerfile` 文件。 12 | 13 | ```docker 14 | FROM alpine 15 | 16 | RUN echo "Hello World" 17 | ``` 18 | 19 | 新建 Travis CI 配置文件 `.travis.yml` 文件。 20 | 21 | ```yml 22 | language: bash 23 | 24 | dist: xenial 25 | 26 | services: 27 | - docker 28 | 29 | before_script: 30 | # 登录到 docker hub 31 | - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin 32 | 33 | script: 34 | # 这里编写测试代码的命令 35 | - echo "test code" 36 | 37 | after_success: 38 | # 当代码测试通过后执行的命令 39 | - docker build -t username/alpine . 40 | - docker push username/alpine 41 | ``` 42 | 43 | > 请提前在 Travis CI 仓库设置页面配置 `DOCKER_PASSWORD` `DOCKER_USERNAME` 变量 44 | 45 | ## 查看结果 46 | 47 | 将项目推送到 GitHub,登录 [Travis CI](https://travis-ci.com/) 查看构建详情。 48 | -------------------------------------------------------------------------------- /stack/docker/command/images/cmd_logic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/command/images/cmd_logic.png -------------------------------------------------------------------------------- /stack/docker/compose/introduction.md: -------------------------------------------------------------------------------- 1 | # Compose 简介 2 | 3 | `Compose` 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 `OpenStack` 中的 `Heat` 十分类似。 4 | 5 | 其代码目前在 上开源。 6 | 7 | `Compose` 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)」,其前身是开源项目 Fig。 8 | 9 | 通过第一部分中的介绍,我们知道使用一个 `Dockerfile` 模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。 10 | 11 | `Compose` 恰好满足了这样的需求。它允许用户通过一个单独的 `docker-compose.yml` 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 12 | 13 | `Compose` 中有两个重要的概念: 14 | 15 | * 服务 (`service`):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 16 | 17 | * 项目 (`project`):由一组关联的应用容器组成的一个完整业务单元,在 `docker-compose.yml` 文件中定义。 18 | 19 | `Compose` 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。 20 | 21 | `Compose` 项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 `Compose` 来进行编排管理。 22 | -------------------------------------------------------------------------------- /stack/docker/container/daemon.md: -------------------------------------------------------------------------------- 1 | # 后台运行 2 | 3 | 更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 `-d` 参数来实现。 4 | 5 | 下面举两个例子来说明一下。 6 | 7 | 如果不使用 `-d` 参数运行容器。 8 | 9 | ```bash 10 | $ docker run ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 11 | hello world 12 | hello world 13 | hello world 14 | hello world 15 | ``` 16 | 17 | 容器会把输出的结果 (STDOUT) 打印到宿主机上面 18 | 19 | 如果使用了 `-d` 参数运行容器。 20 | 21 | ```bash 22 | $ docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 23 | 77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a 24 | ``` 25 | 26 | 此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 `docker logs` 查看)。 27 | 28 | **注:** 容器是否会长久运行,是和 `docker run` 指定的命令有关,和 `-d` 参数无关。 29 | 30 | 使用 `-d` 参数启动后会返回一个唯一的 id,也可以通过 `docker container ls` 命令来查看容器信息。 31 | 32 | ```bash 33 | $ docker container ls 34 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 35 | 77b2dc01fe0f ubuntu:18.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute agitated_wright 36 | ``` 37 | 38 | 要获取容器的输出信息,可以通过 `docker container logs` 命令。 39 | 40 | ```bash 41 | $ docker container logs [container ID or NAMES] 42 | hello world 43 | hello world 44 | hello world 45 | . . . 46 | ``` 47 | -------------------------------------------------------------------------------- /stack/docker/container/import_export.md: -------------------------------------------------------------------------------- 1 | # 导出和导入容器 2 | 3 | ## 导出容器 4 | 5 | 如果要导出本地某个容器,可以使用 `docker export` 命令。 6 | 7 | ```bash 8 | $ docker container ls -a 9 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 10 | 7691a814370e ubuntu:18.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test 11 | $ docker export 7691a814370e > ubuntu.tar 12 | ``` 13 | 14 | 这样将导出容器快照到本地文件。 15 | 16 | ## 导入容器快照 17 | 18 | 可以使用 `docker import` 从容器快照文件中再导入为镜像,例如 19 | 20 | ```bash 21 | $ cat ubuntu.tar | docker import - test/ubuntu:v1.0 22 | $ docker image ls 23 | REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 24 | test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB 25 | ``` 26 | 27 | 此外,也可以通过指定 URL 或者某个目录来导入,例如 28 | 29 | ```bash 30 | docker import http://example.com/exampleimage.tgz example/imagerepo 31 | ``` 32 | 33 | *注:用户既可以使用 `docker load` 来导入镜像存储文件到本地镜像库,也可以使用 `docker import` 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。* 34 | -------------------------------------------------------------------------------- /stack/docker/container/rm.md: -------------------------------------------------------------------------------- 1 | # 删除容器 2 | 3 | 可以使用 `docker container rm` 来删除一个处于终止状态的容器。例如 4 | 5 | ```bash 6 | $ docker container rm trusting_newton 7 | trusting_newton 8 | ``` 9 | 10 | 如果要删除一个运行中的容器,可以添加 `-f` 参数。Docker 会发送 `SIGKILL` 信号给容器。 11 | 12 | ## 清理所有处于终止状态的容器 13 | 14 | 用 `docker container ls -a` 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。 15 | 16 | ```bash 17 | docker container prune 18 | ``` 19 | -------------------------------------------------------------------------------- /stack/docker/container/stop.md: -------------------------------------------------------------------------------- 1 | # 终止容器 2 | 3 | 可以使用 `docker container stop` 来终止一个运行中的容器。 4 | 5 | 此外,当 Docker 容器中指定的应用终结时,容器也自动终止。 6 | 7 | 例如对于上一章节中只启动了一个终端的容器,用户通过 `exit` 命令或 `Ctrl+d` 来退出终端时,所创建的容器立刻终止。 8 | 9 | 终止状态的容器可以用 `docker container ls -a` 命令看到。例如 10 | 11 | ```bash 12 | docker container ls -a 13 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 14 | ba267838cc1b ubuntu:18.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton 15 | 98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike 16 | ``` 17 | 18 | 处于终止状态的容器,可以通过 `docker container start` 命令来重新启动。 19 | 20 | 此外,`docker container restart` 命令会将一个运行态的容器终止,然后再重新启动它。 21 | -------------------------------------------------------------------------------- /stack/docker/debug/README.md: -------------------------------------------------------------------------------- 1 | # 如何调试 Docker 2 | 3 | ## 开启 Debug 模式 4 | 5 | 在 dockerd 配置文件 daemon.json(默认位于 /etc/docker/)中添加 6 | 7 | ```json 8 | { 9 | "debug": true 10 | } 11 | ``` 12 | 13 | 重启守护进程。 14 | 15 | ```bash 16 | sudo kill -SIGHUP $(pidof dockerd) 17 | ``` 18 | 19 | 此时 dockerd 会在日志中输入更多信息供分析。 20 | 21 | ## 检查内核日志 22 | 23 | ```bash 24 | sudo dmesag |grep dockerd 25 | sudo dmesag |grep runc 26 | ``` 27 | 28 | ## Docker 不响应时处理 29 | 30 | 可以杀死 dockerd 进程查看其堆栈调用情况。 31 | 32 | ```bash 33 | sudo kill -SIGUSR1 $(pidof dockerd) 34 | ``` 35 | 36 | ## 重置 Docker 本地数据 37 | 38 | *注意,本操作会移除所有的 Docker 本地数据,包括镜像和容器等。* 39 | 40 | ```bash 41 | sudo rm -rf /var/lib/docker 42 | ``` 43 | -------------------------------------------------------------------------------- /stack/docker/dockerfile/arg.md: -------------------------------------------------------------------------------- 1 | # ARG 构建参数 2 | 3 | 格式:`ARG <参数名>[=<默认值>]` 4 | 5 | 构建参数和 `ENV` 的效果一样,都是设置环境变量。所不同的是,`ARG` 所设置的构建环境的环境变量,在将来容器运行时是不会存在这些环境变量的。但是不要因此就使用 `ARG` 保存密码之类的信息,因为 `docker history` 还是可以看到所有值的。 6 | 7 | `Dockerfile` 中的 `ARG` 指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令 `docker build` 中用 `--build-arg <参数名>=<值>` 来覆盖。 8 | 9 | 在 1.13 之前的版本,要求 `--build-arg` 中的参数名,必须在 `Dockerfile` 中用 `ARG` 定义过了,换句话说,就是 `--build-arg` 指定的参数,必须在 `Dockerfile` 中使用了。如果对应参数没有被使用,则会报错退出构建。从 1.13 开始,这种严格的限制被放开,不再报错退出,而是显示警告信息,并继续构建。这对于使用 CI 系统,用同样的构建流程构建不同的 `Dockerfile` 的时候比较有帮助,避免构建命令必须根据每个 Dockerfile 的内容修改。 10 | -------------------------------------------------------------------------------- /stack/docker/dockerfile/copy.md: -------------------------------------------------------------------------------- 1 | # COPY 复制文件 2 | 3 | 格式: 4 | 5 | * `COPY [--chown=:] <源路径>... <目标路径>` 6 | * `COPY [--chown=:] ["<源路径1>",... "<目标路径>"]` 7 | 8 | 和 `RUN` 指令一样,也有两种格式,一种类似于命令行,一种类似于函数调用。 9 | 10 | `COPY` 指令将从构建上下文目录中 `<源路径>` 的文件/目录复制到新的一层的镜像内的 `<目标路径>` 位置。比如: 11 | 12 | ```docker 13 | COPY package.json /usr/src/app/ 14 | ``` 15 | 16 | `<源路径>` 可以是多个,甚至可以是通配符,其通配符规则要满足 Go 的 [`filepath.Match`](https://golang.org/pkg/path/filepath/#Match) 规则,如: 17 | 18 | ```docker 19 | COPY hom* /mydir/ 20 | COPY hom?.txt /mydir/ 21 | ``` 22 | 23 | `<目标路径>` 可以是容器内的绝对路径,也可以是相对于工作目录的相对路径(工作目录可以用 `WORKDIR` 指令来指定)。目标路径不需要事先创建,如果目录不存在会在复制文件前先行创建缺失目录。 24 | 25 | 此外,还需要注意一点,使用 `COPY` 指令,源文件的各种元数据都会保留。比如读、写、执行权限、文件变更时间等。这个特性对于镜像定制很有用。特别是构建相关文件都在使用 Git 进行管理的时候。 26 | 27 | 在使用该指令的时候还可以加上 `--chown=:` 选项来改变文件的所属用户及所属组。 28 | 29 | ```docker 30 | COPY --chown=55:mygroup files* /mydir/ 31 | COPY --chown=bin files* /mydir/ 32 | COPY --chown=1 files* /mydir/ 33 | COPY --chown=10:11 files* /mydir/ 34 | ``` 35 | -------------------------------------------------------------------------------- /stack/docker/dockerfile/expose.md: -------------------------------------------------------------------------------- 1 | # EXPOSE 声明端口 2 | 3 | 格式为 `EXPOSE <端口1> [<端口2>...]`。 4 | 5 | `EXPOSE` 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 `docker run -P` 时,会自动随机映射 `EXPOSE` 的端口。 6 | 7 | 要将 `EXPOSE` 和在运行时使用 `-p <宿主端口>:<容器端口>` 区分开来。`-p`,是映射宿主端口和容器端口,换句话说,就是将容器的对应端口服务公开给外界访问,而 `EXPOSE` 仅仅是声明容器打算使用什么端口而已,并不会自动在宿主进行端口映射。 8 | -------------------------------------------------------------------------------- /stack/docker/dockerfile/references.md: -------------------------------------------------------------------------------- 1 | # 参考文档 2 | 3 | * `Dockerfie` 官方文档: 4 | 5 | * `Dockerfile` 最佳实践文档: 6 | 7 | * `Docker` 官方镜像 `Dockerfile`: 8 | -------------------------------------------------------------------------------- /stack/docker/dockerfile/user.md: -------------------------------------------------------------------------------- 1 | # USER 指定当前用户 2 | 3 | 格式:`USER <用户名>[:<用户组>]` 4 | 5 | `USER` 指令和 `WORKDIR` 相似,都是改变环境状态并影响以后的层。`WORKDIR` 是改变工作目录,`USER` 则是改变之后层的执行 `RUN`, `CMD` 以及 `ENTRYPOINT` 这类命令的身份。 6 | 7 | 当然,和 `WORKDIR` 一样,`USER` 只是帮助你切换到指定用户而已,这个用户必须是事先建立好的,否则无法切换。 8 | 9 | ```docker 10 | RUN groupadd -r redis && useradd -r -g redis redis 11 | USER redis 12 | RUN [ "redis-server" ] 13 | ``` 14 | 15 | 如果以 `root` 执行的脚本,在执行期间希望改变身份,比如希望以某个已经建立好的用户来运行某个服务进程,不要使用 `su` 或者 `sudo`,这些都需要比较麻烦的配置,而且在 TTY 缺失的环境下经常出错。建议使用 [`gosu`](https://github.com/tianon/gosu)。 16 | 17 | ```docker 18 | # 建立 redis 用户,并使用 gosu 换另一个用户执行命令 19 | RUN groupadd -r redis && useradd -r -g redis redis 20 | # 下载 gosu 21 | RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" \ 22 | && chmod +x /usr/local/bin/gosu \ 23 | && gosu nobody true 24 | # 设置 CMD,并以另外的用户执行 25 | CMD [ "exec", "gosu", "redis", "redis-server" ] 26 | ``` 27 | -------------------------------------------------------------------------------- /stack/docker/dockerfile/volume.md: -------------------------------------------------------------------------------- 1 | # VOLUME 定义匿名卷 2 | 3 | 格式为: 4 | 5 | * `VOLUME ["<路径1>", "<路径2>"...]` 6 | * `VOLUME <路径>` 7 | 8 | 之前我们说过,容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中,后面的章节我们会进一步介绍 Docker 卷的概念。为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 `Dockerfile` 中,我们可以事先指定某些目录挂载为匿名卷,这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层写入大量数据。 9 | 10 | ```docker 11 | VOLUME /data 12 | ``` 13 | 14 | 这里的 `/data` 目录就会在运行时自动挂载为匿名卷,任何向 `/data` 中写入的信息都不会记录进容器存储层,从而保证了容器存储层的无状态化。当然,运行时可以覆盖这个挂载设置。比如: 15 | 16 | ```bash 17 | docker run -d -v mydata:/data xxxx 18 | ``` 19 | 20 | 在这行命令中,就使用了 `mydata` 这个命名卷挂载到了 `/data` 这个位置,替代了 `Dockerfile` 中定义的匿名卷的挂载配置。 21 | -------------------------------------------------------------------------------- /stack/docker/dockerfile/workdir.md: -------------------------------------------------------------------------------- 1 | # WORKDIR 指定工作目录 2 | 3 | 格式为 `WORKDIR <工作目录路径>`。 4 | 5 | 使用 `WORKDIR` 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,`WORKDIR` 会帮你建立目录。 6 | 7 | 之前提到一些初学者常犯的错误是把 `Dockerfile` 等同于 Shell 脚本来书写,这种错误的理解还可能会导致出现下面这样的错误: 8 | 9 | ```docker 10 | RUN cd /app 11 | RUN echo "hello" > world.txt 12 | ``` 13 | 14 | 如果将这个 `Dockerfile` 进行构建镜像运行后,会发现找不到 `/app/world.txt` 文件,或者其内容不是 `hello`。原因其实很简单,在 Shell 中,连续两行是同一个进程执行环境,因此前一个命令修改的内存状态,会直接影响后一个命令;而在 `Dockerfile` 中,这两行 `RUN` 命令的执行环境根本不同,是两个完全不同的容器。这就是对 `Dockerfile` 构建分层存储的概念不了解所导致的错误。 15 | 16 | 之前说过每一个 `RUN` 都是启动一个容器、执行命令、然后提交存储层文件变更。第一层 `RUN cd /app` 的执行仅仅是当前进程的工作目录变更,一个内存上的变化而已,其结果不会造成任何文件变更。而到第二层的时候,启动的是一个全新的容器,跟第一层的容器更完全没关系,自然不可能继承前一层构建过程中的内存变化。 17 | 18 | 因此如果需要改变以后各层的工作目录的位置,那么应该使用 `WORKDIR` 指令。 19 | -------------------------------------------------------------------------------- /stack/docker/image/images/images-create-nginx-docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/image/images/images-create-nginx-docker.png -------------------------------------------------------------------------------- /stack/docker/image/images/images-mac-example-nginx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/image/images/images-mac-example-nginx.png -------------------------------------------------------------------------------- /stack/docker/image/internal.md: -------------------------------------------------------------------------------- 1 | # 镜像的实现原理 2 | 3 | Docker 镜像是怎么实现增量的修改和维护的? 4 | 5 | 每个镜像都由很多层次构成,Docker 使用 [Union FS](https://en.wikipedia.org/wiki/UnionFS) 将这些不同的层结合到一个镜像中去。 6 | 7 | 通常 Union FS 有两个用途, 一方面可以实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下,另一个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。 8 | 9 | Docker 在 OverlayFS 上构建的容器也是利用了类似的原理。 10 | -------------------------------------------------------------------------------- /stack/docker/install/experimental.md: -------------------------------------------------------------------------------- 1 | # 开启实验特性 2 | 3 | 一些 docker 命令或功能仅当 **实验特性** 开启时才能使用,请按照以下方法进行设置。 4 | 5 | ## 开启 Docker CLI 的实验特性 6 | 7 | 编辑 `~/.docker/config.json` 文件,新增如下条目 8 | 9 | ```json 10 | { 11 | "experimental": "enabled" 12 | } 13 | ``` 14 | 15 | 或者通过设置环境变量的方式: 16 | 17 | ### Linux/macOS 18 | 19 | ```bash 20 | export DOCKER_CLI_EXPERIMENTAL=enabled 21 | ``` 22 | 23 | ### Windows 24 | 25 | ```powershell 26 | # 临时生效 27 | $ set $env:DOCKER_CLI_EXPERIMENTAL="enabled" 28 | 29 | # 永久生效 30 | $ [environment]::SetEnvironmentvariable("DOCKER_CLI_EXPERIMENTAL","enabled","User") 31 | ``` 32 | 33 | ## 开启 Dockerd 的实验特性 34 | 35 | 编辑 `/etc/docker/daemon.json`,新增如下条目 36 | 37 | ```json 38 | { 39 | "experimental": true 40 | } 41 | ``` 42 | -------------------------------------------------------------------------------- /stack/docker/install/images/install-mac-apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-mac-apps.png -------------------------------------------------------------------------------- /stack/docker/install/images/install-mac-dmg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-mac-dmg.png -------------------------------------------------------------------------------- /stack/docker/install/images/install-mac-example-nginx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-mac-example-nginx.png -------------------------------------------------------------------------------- /stack/docker/install/images/install-mac-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-mac-menu.png -------------------------------------------------------------------------------- /stack/docker/install/images/install-mac-menubar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-mac-menubar.png -------------------------------------------------------------------------------- /stack/docker/install/images/install-mac-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-mac-success.png -------------------------------------------------------------------------------- /stack/docker/install/images/install-win-docker-app-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-win-docker-app-search.png -------------------------------------------------------------------------------- /stack/docker/install/images/install-win-success-popup-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-win-success-popup-cloud.png -------------------------------------------------------------------------------- /stack/docker/install/images/install-win-taskbar-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/install-win-taskbar-circle.png -------------------------------------------------------------------------------- /stack/docker/install/images/offline-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/install/images/offline-01.png -------------------------------------------------------------------------------- /stack/docker/introduction/images/docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/introduction/images/docker.png -------------------------------------------------------------------------------- /stack/docker/introduction/images/virtualization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/introduction/images/virtualization.png -------------------------------------------------------------------------------- /stack/docker/linuxkit/README.md: -------------------------------------------------------------------------------- 1 | # LinuxKit 2 | 3 | `LinuxKit` 这个工具可以将多个 Docker 镜像组成一个最小化、可自由定制的 Linux 系统,最后的生成的系统只有几十 M 大小,可以很方便的在云端进行部署。 4 | 5 | 下面我们在 macOS 上通过实例,来编译并运行一个全部由 Docker 镜像组成的包含 nginx 服务的 Linux 系统。 6 | 7 | ## 安装 Linuxkit 8 | 9 | ```bash 10 | brew tap linuxkit/linuxkit 11 | 12 | brew install --HEAD linuxkit 13 | ``` 14 | 15 | ## 克隆源代码 16 | 17 | ```bash 18 | git clone -b master --depth=1 https://github.com/linuxkit/linuxkit 19 | 20 | cd linuxkit 21 | ``` 22 | 23 | ## 编译 Linux 系统 24 | 25 | LinuxKit 通过 `yaml` 文件配置。 26 | 27 | 我们来查看 `linuxkit.yml` 文件,了解各个字段的作用。 28 | 29 | `kernel` 字段定义了内核版本。 30 | 31 | `init` 字段中配置系统启动时的初始化顺序。 32 | 33 | `onboot` 字段配置系统级的服务。 34 | 35 | `services` 字段配置镜像启动后运行的服务。 36 | 37 | `files` 字段配置制作镜像时打包入镜像中的文件。 38 | 39 | ```bash 40 | linuxkit build linuxkit.yml 41 | ``` 42 | 43 | ## 启动 Linux 系统 44 | 45 | 编译成功后,接下来启动这个 Linux 系统。 46 | 47 | ```bash 48 | linuxkit run -publish 8080:80/tcp linuxkit 49 | ``` 50 | 51 | 接下来在浏览器中打开 `127.0.0.1:8080` 即可看到 nginx 默认页面。 52 | -------------------------------------------------------------------------------- /stack/docker/podman/README.md: -------------------------------------------------------------------------------- 1 | # podman 2 | 3 | [`podman`](https://github.com/containers/podman) 是一个无守护程序与 docker 命令兼容的下一代 Linux 容器工具。 4 | 5 | ## 安装 6 | 7 | ```bash 8 | sudo yum -y install podman 9 | ``` 10 | 11 | ## 使用 12 | 13 | `podman` 与 docker 命令完全兼容,只需将 `docker` 替换为 `podman` 即可,例如运行一个容器: 14 | 15 | ```bash 16 | # $ docker run -d -p 80:80 nginx:alpine 17 | 18 | $ podman run -d -p 80:80 nginx:alpine 19 | ``` 20 | 21 | ## 参考 22 | 23 | * 24 | -------------------------------------------------------------------------------- /stack/docker/repo/centos.md: -------------------------------------------------------------------------------- 1 | # CentOS 2 | 3 | ## 基本信息 4 | 5 | [CentOS](https://en.wikipedia.org/wiki/CentOS) 是流行的 Linux 发行版,其软件包大多跟 RedHat 系列保持一致。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/centos` ,提供了 CentOS 从 5 ~ 8 各个版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 默认会启动一个最小化的 CentOS 环境。 12 | 13 | ```bash 14 | $ docker run --name centos -it centos bash 15 | bash-4.2# 16 | ``` 17 | 18 | ## Dockerfile 19 | 20 | 21 | -------------------------------------------------------------------------------- /stack/docker/repo/consul.md: -------------------------------------------------------------------------------- 1 | # Consul 2 | 3 | ## 使用方法 4 | 5 | ```bash 6 | docker pull consul 7 | docker run -d --name consul -p 8500:8500 consul:latest 8 | ``` 9 | 10 | ## Dockerfile 11 | 12 | 13 | -------------------------------------------------------------------------------- /stack/docker/repo/elasticsearch.md: -------------------------------------------------------------------------------- 1 | # Elasticsearch 2 | 3 | ## 使用方法 4 | 5 | ```bash 6 | docker pull docker.elastic.co/elasticsearch/elasticsearch:7.8.1 7 | docker run -p 9200:9200 --name elasticsearch -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.8.1 8 | ``` 9 | 10 | ## Dockerfile 11 | 12 | -------------------------------------------------------------------------------- /stack/docker/repo/grafana.md: -------------------------------------------------------------------------------- 1 | # Grafana 2 | 3 | ```bash 4 | docker pull grafana/grafana 5 | docker run -d --name=grafana -p 3000:3000 grafana/grafana 6 | ``` 7 | -------------------------------------------------------------------------------- /stack/docker/repo/kafka.md: -------------------------------------------------------------------------------- 1 | # Kafka 2 | 3 | ```bash 4 | docker pull wurstmeister/kafka 5 | docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.1.111 --env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka 6 | ``` 7 | -------------------------------------------------------------------------------- /stack/docker/repo/kibana.md: -------------------------------------------------------------------------------- 1 | # Kibana 2 | 3 | ## 使用方法 4 | 5 | ```bash 6 | docker pull docker.elastic.co/kibana/kibana:7.8.1 7 | docker run -p 5601:5601 --name kibana --link 14e385b1e761:elasticsearch -e "elasticsearch.hosts=http://127.0.0.1:9200" -d docker.elastic.co/kibana/kibana:7.8.1 8 | ``` 9 | 10 | ## Dockerfile 11 | 12 | -------------------------------------------------------------------------------- /stack/docker/repo/memcached.md: -------------------------------------------------------------------------------- 1 | # Memcached 2 | 3 | ## 使用方法 4 | 5 | ```bash 6 | docker pull memcached 7 | docker run -p 11211:11211 --name memcache -d memcached memcached -m 64 8 | ``` 9 | 10 | ## Dockerfile 11 | 12 | 13 | -------------------------------------------------------------------------------- /stack/docker/repo/mongodb.md: -------------------------------------------------------------------------------- 1 | # MongoDB 2 | 3 | ## 基本信息 4 | 5 | [MongoDB](https://en.wikipedia.org/wiki/MongoDB) 是开源的 NoSQL 数据库实现。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/mongo/` ,提供了 MongoDB 2.x ~ 4.x 各个版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 默认会在 `27017` 端口启动数据库。 12 | 13 | ```bash 14 | docker run --name mongo -d mongo 15 | ``` 16 | 17 | 使用其他应用连接到容器,可以用 18 | 19 | ```bash 20 | docker run --name some-app --link some-mongo:mongo -d application-that-uses-mongo 21 | ``` 22 | 23 | 或者通过 `mongo` 24 | 25 | ```bash 26 | $ docker run -it --rm \ 27 | --link some-mongo:mongo \ 28 | mongo \ 29 | sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"' 30 | ``` 31 | 32 | ## Dockerfile 33 | 34 | 35 | -------------------------------------------------------------------------------- /stack/docker/repo/mysql.md: -------------------------------------------------------------------------------- 1 | # MySQL 2 | 3 | ## 基本信息 4 | 5 | [MySQL](https://en.wikipedia.org/wiki/MySQL) 是开源的关系数据库实现。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/mysql/` ,提供了 MySQL 5.5 ~ 8.x 各个版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 默认会在 `3306` 端口启动数据库。 12 | 13 | ```bash 14 | docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql 15 | ``` 16 | 17 | 之后就可以使用其它应用来连接到该容器。 18 | 19 | ```bash 20 | docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql 21 | ``` 22 | 23 | 或者通过 `mysql` 命令行连接。 24 | 25 | ```bash 26 | $ docker run -it --rm \ 27 | --link some-mysql:mysql \ 28 | mysql \ 29 | sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"' 30 | ``` 31 | 32 | ## Dockerfile 33 | 34 | 35 | -------------------------------------------------------------------------------- /stack/docker/repo/nginx.md: -------------------------------------------------------------------------------- 1 | # Nginx 2 | 3 | ## 基本信息 4 | 5 | [Nginx](https://en.wikipedia.org/wiki/Nginx) 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.19.x 各个版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 下面的命令将作为一个静态页面服务器启动。 12 | 13 | ```bash 14 | docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx 15 | ``` 16 | 17 | 用户也可以不使用这种映射方式,通过利用 Dockerfile 来直接将静态页面内容放到镜像中,内容为 18 | 19 | ```bash 20 | FROM nginx 21 | COPY static-html-directory /usr/share/nginx/html 22 | ``` 23 | 24 | 之后生成新的镜像,并启动一个容器。 25 | 26 | ```bash 27 | docker build -t some-content-nginx . 28 | docker run --name some-nginx -d some-content-nginx 29 | ``` 30 | 31 | 开放端口,并映射到本地的 `8080` 端口。 32 | 33 | ```bash 34 | docker run --name some-nginx -d -p 8080:80 some-content-nginx 35 | ``` 36 | 37 | Nginx的默认配置文件路径为 `/etc/nginx/nginx.conf`,可以通过映射它来使用本地的配置文件,例如 38 | 39 | ```bash 40 | $ docker run -d \ 41 | --name some-nginx \ 42 | -v /some/nginx.conf:/etc/nginx/nginx.conf:ro \ 43 | nginx 44 | ``` 45 | 46 | ## Dockerfile 47 | 48 | 49 | -------------------------------------------------------------------------------- /stack/docker/repo/nodejs.md: -------------------------------------------------------------------------------- 1 | # Node.js 2 | 3 | ## 基本信息 4 | 5 | [Node.js](https://en.wikipedia.org/wiki/Node.js) 是基于 JavaScript 的可扩展服务端和网络软件开发平台。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 14.x 各个版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 在项目中创建一个 Dockerfile。 12 | 13 | ```bash 14 | FROM node:12 15 | # replace this with your application's default port 16 | EXPOSE 8888 17 | ``` 18 | 19 | 然后创建镜像,并启动容器。 20 | 21 | ```bash 22 | docker build -t my-nodejs-app 23 | docker run -it --rm --name my-running-app my-nodejs-app 24 | ``` 25 | 26 | 也可以直接运行一个简单容器。 27 | 28 | ```bash 29 | $ docker run -it --rm \ 30 | --name my-running-script \ 31 | # -v "$(pwd)":/usr/src/myapp \ 32 | --mount type=bind,src=`$(pwd)`,target=/usr/src/myapp \ 33 | -w /usr/src/myapp \ 34 | node:12-alpine \ 35 | node your-daemon-or-script.js 36 | ``` 37 | 38 | ## Dockerfile 39 | 40 | 41 | -------------------------------------------------------------------------------- /stack/docker/repo/php.md: -------------------------------------------------------------------------------- 1 | # PHP 2 | 3 | ## 基本信息 4 | 5 | [PHP](https://en.wikipedia.org/wiki/Php)(Hypertext Preprocessor 超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/php/` ,提供了 PHP 5.x ~ 8.x 各个版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 下面的命令将运行一个已有的 PHP 脚本。 12 | 13 | ```bash 14 | docker run -it --rm -v "$PWD":/app -w /app php:alpine php your-script.php 15 | ``` 16 | 17 | ## Dockerfile 18 | 19 | 20 | -------------------------------------------------------------------------------- /stack/docker/repo/postgres.md: -------------------------------------------------------------------------------- 1 | # PostgreSQL 2 | 3 | ## 使用方法 4 | 5 | ```bash 6 | docker pull postgres 7 | docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres 8 | ``` 9 | 10 | ## Dockerfile 11 | 12 | -------------------------------------------------------------------------------- /stack/docker/repo/rabbitmq.md: -------------------------------------------------------------------------------- 1 | # RabbitMQ 2 | 3 | ## 使用方法 4 | 5 | ```bash 6 | docker pull rabbitmq:3-management 7 | docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 -d rabbitmq:3-management 8 | ``` 9 | 10 | ## Dockerfile 11 | 12 | 13 | -------------------------------------------------------------------------------- /stack/docker/repo/redis.md: -------------------------------------------------------------------------------- 1 | # Redis 2 | 3 | ## 基本信息 4 | 5 | [Redis](https://en.wikipedia.org/wiki/Redis) 是开源的内存 Key-Value 数据库实现。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/redis/` ,提供了 Redis 3.x ~ 6.x 各个版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 默认会在 `6379` 端口启动数据库。 12 | 13 | ```bash 14 | docker run --name some-redis -d -p 6379:6379 redis 15 | ``` 16 | 17 | 另外还可以启用 [持久存储](https://redis.io/topics/persistence)。 18 | 19 | ```bash 20 | docker run --name some-redis -d -p 6379:6379 redis redis-server --appendonly yes 21 | ``` 22 | 23 | 默认数据存储位置在 `VOLUME/data`。可以使用 `--volumes-from some-volume-container` 或 `-v /docker/host/dir:/data` 将数据存放到本地。 24 | 25 | 使用其他应用连接到容器,可以用 26 | 27 | ```bash 28 | docker run --name some-app --link some-redis:redis -d application-that-uses-redis 29 | ``` 30 | 31 | 或者通过 `redis-cli` 32 | 33 | ```bash 34 | $ docker run -it --rm \ 35 | --link some-redis:redis \ 36 | redis \ 37 | sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"' 38 | ``` 39 | 40 | ## Dockerfile 41 | 42 | 43 | -------------------------------------------------------------------------------- /stack/docker/repo/sqlserver.md: -------------------------------------------------------------------------------- 1 | # SQLServer 2 | 3 | ```bash 4 | docker pull mcr.microsoft.com/mssql/server 5 | docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=hackxing123456..' -p 1433:1433 --name mssql -d mcr.microsoft.com/mssql/server 6 | ``` 7 | -------------------------------------------------------------------------------- /stack/docker/repo/ubuntu.md: -------------------------------------------------------------------------------- 1 | # Ubuntu 2 | 3 | ## 基本信息 4 | 5 | [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu) 是流行的 Linux 发行版,其自带软件版本往往较新一些。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/ubuntu/` ,提供了 Ubuntu 从 12.04 ~ 20.04 各个版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 默认会启动一个最小化的 Ubuntu 环境。 12 | 13 | ```bash 14 | $ docker run --name some-ubuntu -it ubuntu:20.04 15 | root@523c70904d54:/# 16 | ``` 17 | 18 | ## Dockerfile 19 | 20 | 21 | -------------------------------------------------------------------------------- /stack/docker/repo/wordpress.md: -------------------------------------------------------------------------------- 1 | # [WordPress](https://hub.docker.com/_/wordpress/) 2 | 3 | ## 基本信息 4 | 5 | [WordPress](https://en.wikipedia.org/wiki/WordPress) 是开源的 Blog 和内容管理系统框架,它基于 PHP 和 MySQL。 6 | 7 | 该仓库位于 `https://hub.docker.com/_/wordpress/` ,提供了 WordPress 4.x ~ 5.x 版本的镜像。 8 | 9 | ## 使用方法 10 | 11 | 启动容器需要 MySQL 的支持,默认端口为 `80`。 12 | 13 | ```bash 14 | docker run --name some-wordpress --link some-mysql:mysql -d wordpress 15 | ``` 16 | 17 | 启动 WordPress 容器时可以指定的一些环境变量包括: 18 | 19 | * `WORDPRESS_DB_USER` 缺省为 `root` 20 | * `WORDPRESS_DB_PASSWORD` 缺省为连接 mysql 容器的环境变量 `MYSQL_ROOT_PASSWORD` 的值 21 | * `WORDPRESS_DB_NAME` 缺省为 `wordpress` 22 | 23 | ## Dockerfile 24 | 25 | 26 | -------------------------------------------------------------------------------- /stack/docker/repo/zookeeper.md: -------------------------------------------------------------------------------- 1 | # ZooKeeper 2 | 3 | ## 使用方法 4 | 5 | ```bash 6 | docker pull wurstmeister/zookeeper 7 | docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper 8 | ``` 9 | 10 | ## Dockerfile 11 | 12 | 13 | -------------------------------------------------------------------------------- /stack/docker/repository/README.md: -------------------------------------------------------------------------------- 1 | # 访问仓库 2 | 3 | 仓库(`Repository`)是集中存放镜像的地方。 4 | 5 | 一个容易混淆的概念是注册服务器(`Registry`)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 `docker.io/ubuntu` 来说,`docker.io` 是注册服务器地址,`ubuntu` 是仓库名。 6 | 7 | 大部分时候,并不需要严格区分这两者的概念。 8 | -------------------------------------------------------------------------------- /stack/docker/resources/README.md: -------------------------------------------------------------------------------- 1 | # 资源链接 2 | 3 | ## 官方网站 4 | 5 | * Docker 官方主页: 6 | * Docker 官方博客: 7 | * Docker 官方文档: 8 | * Docker Hub: 9 | * Docker 的源代码仓库: 10 | * Docker 路线图: 11 | * Docker 发布版本历史: 12 | * Docker 常见问题: 13 | * Docker 远端应用 API: 14 | 15 | ## 实践参考 16 | 17 | * Dockerfile 参考: 18 | * Dockerfile 最佳实践: 19 | 20 | ## 技术交流 21 | 22 | * Docker 邮件列表: 23 | * Docker 的 IRC 频道: 24 | * Docker 的 Twitter 主页: 25 | 26 | ## 其它 27 | 28 | * Docker 的 StackOverflow 问答主页: 29 | -------------------------------------------------------------------------------- /stack/docker/swarm_mode/images/services-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/swarm_mode/images/services-diagram.png -------------------------------------------------------------------------------- /stack/docker/swarm_mode/images/swarm-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/swarm_mode/images/swarm-diagram.png -------------------------------------------------------------------------------- /stack/docker/swarm_mode/images/wordpress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/docker/swarm_mode/images/wordpress.png -------------------------------------------------------------------------------- /stack/docker/swarm_mode/overview.md: -------------------------------------------------------------------------------- 1 | # 基本概念 2 | 3 | `Swarm` 是使用 [`SwarmKit`](https://github.com/docker/swarmkit/) 构建的 Docker 引擎内置(原生)的集群管理和编排工具。 4 | 5 | 使用 `Swarm` 集群之前需要了解以下几个概念。 6 | 7 | ## 节点 8 | 9 | 运行 Docker 的主机可以主动初始化一个 `Swarm` 集群或者加入一个已存在的 `Swarm` 集群,这样这个运行 Docker 的主机就成为一个 `Swarm` 集群的节点 (`node`) 。 10 | 11 | 节点分为管理 (`manager`) 节点和工作 (`worker`) 节点。 12 | 13 | 管理节点用于 `Swarm` 集群的管理,`docker swarm` 命令基本只能在管理节点执行(节点退出集群命令 `docker swarm leave` 可以在工作节点执行)。一个 `Swarm` 集群可以有多个管理节点,但只有一个管理节点可以成为 `leader`,`leader` 通过 `raft` 协议实现。 14 | 15 | 工作节点是任务执行节点,管理节点将服务 (`service`) 下发至工作节点执行。管理节点默认也作为工作节点。你也可以通过配置让服务只运行在管理节点。 16 | 17 | 来自 Docker 官网的这张图片形象的展示了集群中管理节点与工作节点的关系。 18 | 19 | ![ ](./images/swarm-diagram.png) 20 | 21 | ## 服务和任务 22 | 23 | 任务 (`Task`)是 `Swarm` 中的最小的调度单位,目前来说就是一个单一的容器。 24 | 25 | 服务 (`Services`) 是指一组任务的集合,服务定义了任务的属性。服务有两种模式: 26 | 27 | * `replicated services` 按照一定规则在各个工作节点上运行指定个数的任务。 28 | 29 | * `global services` 每个工作节点上运行一个任务 30 | 31 | 两种模式通过 `docker service create` 的 `--mode` 参数指定。 32 | 33 | 来自 Docker 官网的这张图片形象的展示了容器、任务、服务的关系。 34 | 35 | ![ ](./images/services-diagram.png) 36 | -------------------------------------------------------------------------------- /stack/dotnetcore/epplus-wps-error.md: -------------------------------------------------------------------------------- 1 | # EPPlus.Core 处理 Excel 报错之天坑 WPS 2 | 3 | 最近工作中常常有有数据处理的需求,一个Excel动不动就是上十万的数据量,在用 EPPlus.Core 导入数据入库的时候遇到了一个莫名其妙的问题 `The given key 'rId2' was not present in the dictionary.` 4 | 5 | 我TM一个导入Excel,解析数据哪里来的 dictionary??? 6 | 7 | 然后开始了艰辛的调试debug之旅,反复上传导入都不行,然后自己创建了一个格式相同数据量比较少的Excel文件上传,成功。 8 | 9 | 这时候我大概知道是什么问题了,给Excel数据的同事用的是WPS,由于EPPlus对WPS支持度不怎么友好,所以导致解析数据的时候出错,将WPS保存的Excel文件用Office Excel打开另存为一个新的文件,再上传解析,成功。 10 | 11 | ```csharp 12 | public async Task ProcessExcelData(IFormFile ExcelFile) 13 | { 14 | using (var package = new ExcelPackage(ExcelFile.OpenReadStream())) 15 | { 16 | var sheet = package.Workbook.Worksheets.First(); 17 | 18 | ... 19 | 20 | return new ActionOutput(); 21 | } 22 | } 23 | ``` 24 | -------------------------------------------------------------------------------- /stack/dotnetcore/images/api-gateway-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/api-gateway-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/api-gateway-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/api-gateway-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/api-gateway-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/api-gateway-03.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/api-gateway-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/api-gateway-04.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/apollo-in-dotnet-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/apollo-in-dotnet-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/apollo-in-dotnet-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/apollo-in-dotnet-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/apollo-in-dotnet-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/apollo-in-dotnet-03.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/apollo-in-dotnet-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/apollo-in-dotnet-04.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/apollo-in-dotnet-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/apollo-in-dotnet-05.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/apollo-in-dotnet-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/apollo-in-dotnet-06.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/apollo-in-dotnet-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/apollo-in-dotnet-07.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/apollo-in-dotnet-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/apollo-in-dotnet-08.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/autoapi-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/autoapi-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/captcha-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/captcha-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-03.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-04.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-05.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-06.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-07.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-08.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-09.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-10.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/consul-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/consul-11.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/elasticsearch-in-dotnet-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/elasticsearch-in-dotnet-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/elasticsearch-in-dotnet-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/elasticsearch-in-dotnet-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/exceptionless-in-dotnet-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/exceptionless-in-dotnet-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/exceptionless-in-dotnet-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/exceptionless-in-dotnet-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/exceptionless-in-dotnet-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/exceptionless-in-dotnet-03.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/grpc-in-dotnet-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/grpc-in-dotnet-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/grpc-in-dotnet-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/grpc-in-dotnet-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/grpc-in-dotnet-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/grpc-in-dotnet-03.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/import-and-export-excel-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/import-and-export-excel-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/import-and-export-excel-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/import-and-export-excel-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/import-and-export-excel-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/import-and-export-excel-03.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/json-web-token-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/json-web-token-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/json-web-token-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/json-web-token-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/json-web-token-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/json-web-token-03.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/json-web-token-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/json-web-token-04.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/kafka-in-dotnet-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/kafka-in-dotnet-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/kafka-in-dotnet-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/kafka-in-dotnet-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/log4net-in-dotnet-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/log4net-in-dotnet-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/log4net-in-dotnet-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/log4net-in-dotnet-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/mailkit-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/mailkit-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/mailkit-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/mailkit-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/mta-package-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/mta-package-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/mta-package-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/mta-package-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/nlog-in-dotnet-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/nlog-in-dotnet-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/nlog-in-dotnet-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/nlog-in-dotnet-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/qrcode-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/qrcode-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/rabbitmq-in-dotnet-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/rabbitmq-in-dotnet-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/rabbitmq-in-dotnet-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/rabbitmq-in-dotnet-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/spider-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/spider-01.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/spider-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/spider-02.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/spider-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/spider-03.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/spider-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/spider-04.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/spider-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/spider-05.png -------------------------------------------------------------------------------- /stack/dotnetcore/images/swagger-01.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/swagger-01.gif -------------------------------------------------------------------------------- /stack/dotnetcore/images/swagger-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/dotnetcore/images/swagger-02.png -------------------------------------------------------------------------------- /stack/kubernetes/images/k8s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/kubernetes/images/k8s.png -------------------------------------------------------------------------------- /stack/kubernetes/images/k8s_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/kubernetes/images/k8s_architecture.png -------------------------------------------------------------------------------- /stack/kubernetes/images/kube-proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/kubernetes/images/kube-proxy.png -------------------------------------------------------------------------------- /stack/kubernetes/images/kubernetes_design.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/kubernetes/images/kubernetes_design.jpg -------------------------------------------------------------------------------- /stack/kubernetes/images/kubernetes_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/kubernetes/images/kubernetes_logo.png -------------------------------------------------------------------------------- /stack/kubernetes/images/ui-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/kubernetes/images/ui-dashboard.png -------------------------------------------------------------------------------- /stack/kubernetes/intro.md: -------------------------------------------------------------------------------- 1 | # 项目简介 2 | 3 | ![ ](./images/kubernetes_logo.png) 4 | 5 | Kubernetes 是 Google 团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及应用伸缩,主要实现语言为 Go 语言。Kubernetes 是: 6 | 7 | * 易学:轻量级,简单,容易理解 8 | * 便携:支持公有云,私有云,混合云,以及多种云平台 9 | * 可拓展:模块化,可插拔,支持钩子,可任意组合 10 | * 自修复:自动重调度,自动重启,自动复制 11 | 12 | Kubernetes 构建于 Google 数十年经验,一大半来源于 Google 生产环境规模的经验。结合了社区最佳的想法和实践。 13 | 14 | 在分布式系统中,部署,调度,伸缩一直是最为重要的也最为基础的功能。Kubernetes 就是希望解决这一序列问题的。 15 | 16 | Kubernetes 目前在[GitHub](https://github.com/kubernetes/kubernetes)进行维护。 17 | 18 | ## Kubernetes 能够运行在任何地方 19 | 20 | 虽然 Kubernetes 最初是为 GCE 定制的,但是在后续版本中陆续增加了其他云平台的支持,以及本地数据中心的支持。 21 | -------------------------------------------------------------------------------- /stack/kubernetes/kubectl.md: -------------------------------------------------------------------------------- 1 | # Kubernetes 命令行 kubectl 2 | 3 | [kubectl](https://github.com/kubernetes/kubernetes) 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。 4 | 5 | 使用格式有两种: 6 | 7 | ```bash 8 | kubectl [flags] 9 | kubectl [command] 10 | ``` 11 | 12 | ## get 13 | 14 | 显示一个或多个资源 15 | 16 | ## describe 17 | 18 | 显示资源详情 19 | 20 | ## create 21 | 22 | 从文件或标准输入创建资源 23 | 24 | ## update 25 | 26 | 从文件或标准输入更新资源 27 | 28 | ## delete 29 | 30 | 通过文件名、标准输入、资源名或者 label selector 删除资源 31 | 32 | ## log 33 | 34 | 输出 pod 中一个容器的日志 35 | 36 | ## rolling-update 37 | 38 | 对指定的 replication controller 执行滚动升级 39 | 40 | ## exec 41 | 42 | 在容器内部执行命令 43 | 44 | ## port-forward 45 | 46 | 将本地端口转发到Pod 47 | 48 | ## proxy 49 | 50 | 为 Kubernetes API server 启动代理服务器 51 | 52 | ## run 53 | 54 | 在集群中使用指定镜像启动容器 55 | 56 | ## expose 57 | 58 | 将 replication controller service 或 pod 暴露为新的 kubernetes service 59 | 60 | ## label 61 | 62 | 更新资源的 label 63 | 64 | ## config 65 | 66 | 修改 kubernetes 配置文件 67 | 68 | ## cluster-info 69 | 70 | 显示集群信息 71 | 72 | ## api-versions 73 | 74 | 以 "组/版本" 的格式输出服务端支持的 API 版本 75 | 76 | ## version 77 | 78 | 输出服务端和客户端的版本信息 79 | 80 | ## help 81 | 82 | 显示各个命令的帮助信息 83 | -------------------------------------------------------------------------------- /stack/kubernetes/setup/README.md: -------------------------------------------------------------------------------- 1 | # 部署 Kubernetes 2 | 3 | 目前,Kubernetes 支持在多种环境下使用,包括本地主机(Fedora)、云服务(Google GAE、AWS 等)。 4 | 5 | 你可以使用以下几种方式部署 Kubernetes: 6 | 7 | * kubeadm 8 | * docker-desktop 9 | * k3s 10 | -------------------------------------------------------------------------------- /stack/kubernetes/setup/docker-desktop.md: -------------------------------------------------------------------------------- 1 | # Docker Desktop 启用 Kubernetes 2 | 3 | 使用 Docker Desktop 可以很方便的启用 Kubernetes,由于国内获取不到 `k8s.gcr.io` 镜像,我们必须首先解决这一问题。 4 | 5 | ## 获取 `k8s.gcr.io` 镜像 6 | 7 | 由于国内拉取不到 `k8s.gcr.io` 镜像,我们可以使用开源项目 [AliyunContainerService/k8s-for-docker-desktop](https://github.com/AliyunContainerService/k8s-for-docker-desktop) 来获取所需的镜像。 8 | 9 | ## 启用 Kubernetes 10 | 11 | 在 Docker Desktop 设置页面,点击 `Kubernetes`,选择 `Enable Kubernetes`,稍等片刻,看到左下方 `Kubernetes` 变为 `running`,Kubernetes 启动成功。 12 | 13 | ![ ](../images/k8s.png) 14 | 15 | ## 测试 16 | 17 | ```bash 18 | kubectl version 19 | ``` 20 | 21 | 如果正常输出信息,则证明 Kubernetes 成功启动。 22 | -------------------------------------------------------------------------------- /stack/kubernetes/setup/systemd.md: -------------------------------------------------------------------------------- 1 | # 一步步部署 kubernetes 集群 2 | 3 | 参考: 4 | -------------------------------------------------------------------------------- /stack/other/batch-rename-with-powershell.md: -------------------------------------------------------------------------------- 1 | # PowerShell批量重命名 2 | 3 | 批量重命名当前目录下文件和文件夹名称 4 | 5 | ```powershell 6 | Get-Childitem | Rename-Item -NewName {$_.name -replace "oldname","newname"} 7 | ``` 8 | 9 | 批量重命名当前目录及子目录下文件和文件夹名称 10 | 11 | ```powershell 12 | Get-ChildItem . -recurse | Rename-Item -NewName {$_.name -replace "oldname","newname"} 13 | ``` 14 | -------------------------------------------------------------------------------- /stack/other/images/revoke-wechart-msg-patcher-01.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/revoke-wechart-msg-patcher-01.gif -------------------------------------------------------------------------------- /stack/other/images/revoke-wechart-msg-patcher-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/revoke-wechart-msg-patcher-02.png -------------------------------------------------------------------------------- /stack/other/images/revoke-wechart-msg-patcher-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/revoke-wechart-msg-patcher-03.png -------------------------------------------------------------------------------- /stack/other/images/revoke-wechart-msg-patcher-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/revoke-wechart-msg-patcher-04.png -------------------------------------------------------------------------------- /stack/other/images/revoke-wechart-msg-patcher-05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/revoke-wechart-msg-patcher-05.gif -------------------------------------------------------------------------------- /stack/other/images/revoke-wechart-msg-patcher-06.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/revoke-wechart-msg-patcher-06.gif -------------------------------------------------------------------------------- /stack/other/images/smart-questions-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/smart-questions-01.png -------------------------------------------------------------------------------- /stack/other/images/smart-questions-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/smart-questions-02.png -------------------------------------------------------------------------------- /stack/other/images/smart-questions-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/smart-questions-03.png -------------------------------------------------------------------------------- /stack/other/images/smart-questions-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/smart-questions-04.png -------------------------------------------------------------------------------- /stack/other/images/smart-questions-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/smart-questions-05.png -------------------------------------------------------------------------------- /stack/other/images/smart-questions-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/smart-questions-06.png -------------------------------------------------------------------------------- /stack/other/images/smart-questions-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/smart-questions-07.png -------------------------------------------------------------------------------- /stack/other/images/why-is-kafka-so-fast-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/why-is-kafka-so-fast-01.jpg -------------------------------------------------------------------------------- /stack/other/images/why-is-kafka-so-fast-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/why-is-kafka-so-fast-02.jpg -------------------------------------------------------------------------------- /stack/other/images/why-is-kafka-so-fast-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/why-is-kafka-so-fast-03.jpg -------------------------------------------------------------------------------- /stack/other/images/why-is-kafka-so-fast-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/why-is-kafka-so-fast-04.png -------------------------------------------------------------------------------- /stack/other/images/why-is-kafka-so-fast-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/why-is-kafka-so-fast-05.png -------------------------------------------------------------------------------- /stack/other/images/why-is-kafka-so-fast-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/other/images/why-is-kafka-so-fast-06.png -------------------------------------------------------------------------------- /stack/other/remove-windows-shortcuts.md: -------------------------------------------------------------------------------- 1 | # 移除 Windows 图标快捷方式小箭头 2 | 3 | ```shell 4 | reg delete "HKEY_CLASSES_ROOT\lnkfile" /v IsShortcut /f & taskkill /f /im explorer.exe & start explorer.exe 5 | ``` 6 | 7 | 以管理员身份打开终端,键入以上代码即可。 8 | -------------------------------------------------------------------------------- /stack/other/revoke-wechart-msg-patcher.md: -------------------------------------------------------------------------------- 1 | # PC版微信防撤回补丁 2 | 3 | 前两天看 GitHub 发现一个有趣的项目,[PC微信防撤回补丁](https://github.com/huiyadanli/RevokeMsgPatcher),本着研究学习的目的,在看过源码,一顿疯狂操作之后,了解了其原理是基于修改 wechatwin.dll 达到防撤回的。 4 | 5 | 于是乎,自己动手玩一玩,以下为详细步骤: 6 | 7 | 首先下载 [x64dbg](https://github.com/x64dbg/x64dbg),我这里使用的是 x32dbg,效果是一样的。 8 | 9 | 打开 x32dbg.exe,打开微信扫码登录,附加微信进程,此时微信处于假死状态,暂时不要使用。 10 | 11 | ![ ](./images/revoke-wechart-msg-patcher-01.gif) 12 | 13 | 点击菜单栏下面 Symbols 按钮,搜索 "WeChatWin",找到 WeChatWin.dll,双击进入 14 | 15 | ![ ](./images/revoke-wechart-msg-patcher-02.png) 16 | 17 | 在当前界面右键,搜索,当前区域,字符串,输入 "revokemsg" 搜索,然后找到第一个字符串为 "revokemsg" 的命令双击进入跳转到二进制程序 18 | 19 | ![ ](./images/revoke-wechart-msg-patcher-03.png) 20 | ![ ](./images/revoke-wechart-msg-patcher-04.png) 21 | 22 | 分析发现进入防撤回前有一个 je 跳转语句,满足撤回条件就进入到撤回流程,不满足就跳转到别的地方,直接将这里修改成无条件跳转到别的不撤回的地方,就实现了防撤回功能。进入 revokemsg 二进制界面后,找到它的前的一个命令,是一个 je 开头的命令,双击将其修改为 jmp。 23 | 24 | ![ ](./images/revoke-wechart-msg-patcher-05.gif) 25 | 26 | 此时整个补丁已经修改完成,右键点击"Patches",另存为新的 WeChatWin.dll,关掉 x32dbg 和微信,将新的 WeChatWin.dll 覆盖微信安装目录下即可。 27 | 28 | ![ ](./images/revoke-wechart-msg-patcher-06.gif) 29 | 30 | 现在重新打开微信,扫码登陆,然后用手机给自己发几条消息然后撤回一下试试看,如果手机上消息显示撤回,电脑上消息还在,那就说明成功了。这么简单还不去试试? 31 | -------------------------------------------------------------------------------- /stack/other/visual-studio-keys.md: -------------------------------------------------------------------------------- 1 | # Visual Studio 密钥 2 | 3 | Visual Studio 2019 Professional:`NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y` 4 | 5 | Visual Studio 2019 Enterprise:`BF8Y8-GN2QH-T84XB-QVY3B-RC4DF` 6 | 7 | Visual Studio 2022 Professional:`TD244-P4NB7-YQ6XK-Y8MMM-YWV2J` 8 | 9 | Visual Studio 2022 Enterprise: `VHF9H-NXBBB-638P6-6JHCY-88JWH` 10 | -------------------------------------------------------------------------------- /stack/other/windows10-run-android-emulator-bsod-solution.md: -------------------------------------------------------------------------------- 1 | # Windows10 运行安卓模拟器蓝屏解决方案 2 | 3 | 由于没有安卓机,想要测试一些东西,所以选择了安卓模拟器,可是一运行模拟器就导致电脑蓝屏,试了 N 次都不行。 4 | 5 | 于是在网上寻找解决方案,了解到导致蓝屏的原因都是因为虚拟化技术,我的系统是 Windows10 1903,加上之前开启了 Hyper-V 虚拟机,和 Windows 沙盒,再加上 Win10 对于安卓模拟器的虚拟化兼容不够才一直崩溃。 6 | 7 | 解决方案:关闭 Hyper-V 和 Windows 沙盒,运行以下命令,重启电脑。 8 | 9 | ```shell 10 | DISM /Online /Disable-Feature /FeatureName:"Containers-DisposableClientVM" 11 | DISM /Online /Disable-Feature /FeatureName:"Microsoft-Hyper-V-All" 12 | DISM /Online /Disable-Feature /FeatureName:"VirtualMachinePlatform" 13 | ``` 14 | -------------------------------------------------------------------------------- /stack/storage/mysql/mysql-install.md: -------------------------------------------------------------------------------- 1 | # Windows下MySQL安装流程,8.0以上版本ROOT密码报错及修改 2 | 3 | 官网下载MySQL安装后,解压,添加环境变量,以管理员方式运行cmd,运行以下命令 4 | 5 | ```shell 6 | mysqld --initialize --console 7 | mysqld -install 8 | 9 | net start mysql 10 | net stop mysql 11 | ``` 12 | 13 | 以上命令走完,确保MySQL安装和启动没问题,第一次安装设置密码\(忘记密码也适用\) 14 | 15 | 运行:`mysqld --shared-memory --skip-grant-tables` 16 | 17 | 此时命令提示符窗口处于锁定状态,我们重新以管理员方式运行新的cmd,运行以下命令 18 | 19 | ```shell 20 | mysql -uroot -p 21 | ``` 22 | 23 | 提示输入密码时直接按回车进入,输入 24 | 25 | ```shell 26 | use mysql; 27 | alter user 'root'@'localhost' identified by '123456'; 28 | flush privileges; 29 | ``` 30 | 31 | 123456就是要设置的密码,退出MySQL交互环境,再次启动MySQL服务,用设置的密码连接MySQL 32 | -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-01.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-02.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-03.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-04.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-05.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-06.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-07.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-08.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-09.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-10.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-11.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-12.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-13.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-14.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-15.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-16.png -------------------------------------------------------------------------------- /stack/storage/redis/images/redis-knowledge-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/stack/storage/redis/images/redis-knowledge-17.png -------------------------------------------------------------------------------- /stack/storage/sql/execute-big-sql.md: -------------------------------------------------------------------------------- 1 | # SqlServer 执行超大sql文件 2 | 3 | ```sql 4 | osql -S 127.0.0.1 -U sa -P 123456 -i d:\test.sql 5 | ``` 6 | 7 | osql为SQL Server的命令,在cmd中执行该命令,一般安装完SQL Server后该命令对应的路径会自动添加到系统环境变量中 8 | 9 | * S 表示要连接的数据库服务器 10 | * U 表示登录的用户ID 11 | * P 表示登录密码 12 | * i 表示要执行的脚本文件路径 13 | -------------------------------------------------------------------------------- /stack/storage/sql/query.md: -------------------------------------------------------------------------------- 1 | # SqlServer 常用查询语句 2 | 3 | ```sql 4 | SELECT request_session_id AS spid, OBJECT_NAME(resource_associated_entity_id) AS tableName 5 | FROM sys.dm_tran_locks 6 | WHERE resource_type = 'OBJECT' 7 | AND OBJECT_NAME(resource_associated_entity_id) IS NOT NULL; 8 | ``` 9 | 10 | ```sql 11 | SELECT 'kill ' + CAST(request_session_id AS VARCHAR(20)) AS spid 12 | FROM sys.dm_tran_locks 13 | WHERE resource_type = 'OBJECT' 14 | AND OBJECT_NAME(resource_associated_entity_id) IS NOT NULL; 15 | ``` 16 | 17 | ```sql 18 | select * from table order by Id offset 0 rows fetch next 10 rows only; 19 | ``` 20 | 21 | ```sql 22 | SELECT COUNT(1) FROM TableName WHERE 1 = 1; 23 | 24 | SELECT * 25 | FROM ( 26 | SELECT ROW_NUMBER() OVER (ORDER BY Id DESC) AS RowId, * 27 | FROM TableName 28 | WHERE 1 = 1 29 | ) t 30 | WHERE t.RowId BETWEEN @page AND @limit; 31 | ``` 32 | -------------------------------------------------------------------------------- /stack/storage/sqlite/README.md: -------------------------------------------------------------------------------- 1 | # SQLite 查询语句 2 | 3 | ## 随机一条数据 4 | 5 | ```sql 6 | SELECT * FROM "main"."table" ORDER BY RANDOM() LIMIT 1 7 | ``` 8 | 9 | ## 分页 10 | 11 | ```sql 12 | SELECT *,rowid FROM "main"."table" LIMIT 0,10 13 | ``` 14 | 15 | ## 所有表 16 | 17 | ```sql 18 | select * from sqlite_master 19 | ``` 20 | -------------------------------------------------------------------------------- /stack/web/html-escape-characters.md: -------------------------------------------------------------------------------- 1 | # HTML 转义字符表 2 | 3 | | 字符 | 十进制 | 转义字符 | 4 | | ------------------------------ | ------ | -------- | 5 | | " | " | " | 6 | | & | & | & | 7 | | < | < | < | 8 | | > | > | > | 9 | | 不断开空格(non-breaking space) | \  | \  | 10 | -------------------------------------------------------------------------------- /summary/2017-summary.md: -------------------------------------------------------------------------------- 1 | # 2017年终总结 2 | 3 | 眼看17年就要过去了,还是动动手指向自己汇报汇报今年的流水账吧! 4 | 5 | 2017年2月10日我辞掉了第一家公司的实习工作,在武汉陪着女朋友嗨了一周之后独自一人踏上了前往魔都上海的旅途。至此,魔都漂泊的日子正式开始了。 6 | 7 | 在经历了几天的挤地铁,投简历和一系列面试之后,于2017年2月22日正式拿到上海盖世汽车网络技术有限公司的offer。 8 | 9 | 接下来便是找房子、租房子、熟悉环境,五天之后正式入职。 10 | 11 | 4月份请假回校答辩,6月底再次回校,大学生涯结束了,正式毕业拿到毕业证,顺便还正式成为了一名中华人民共和国党员。 12 | 13 | 2017年7月正式签订劳动合同,转正,实习期结束。 14 | 15 | 一晃一年过去了,这一年我过的很充实,虽然很辛苦但是乐在其中。 16 | 17 | 作为一名程序员,最开心的莫过于技术的提升。这一年的工作中,接触了许多新技术,我也不断学习着进步着。 18 | 19 | 刚从学校走出来的我,主要做web开发,其它的都只是有所了解浅尝辄止,从来没有真正的去做过项目,借着公司的项目,现在会了微信小程序开发、Native App开发。 20 | 21 | 在公司主要用.NET开发网站,写写脚本,小工具,爬虫等等。慢慢接触了ReactNative、APICloud、WebApi、WebService、.Net MVC、.Net Core、Linux、Nginx、微信小程序,并且能够上手简单使用,同时做了几个网站,小程序和App 并且全部上线使用中。 22 | 23 | 新的一年,给自己先定一个不能达到的小目标,比方说我先挣它一个亿。 24 | -------------------------------------------------------------------------------- /summary/2020-summary.md: -------------------------------------------------------------------------------- 1 | # 2020年终总结 2 | 3 | 2020,始料未及,不知不觉中,2020年已经过去。 4 | 5 | 一场疫情改变了我们所有的计划,这一年变化万千,五味杂陈。 6 | 7 | 2020年,终究没能重启也不可能重启,在口罩的伴随下顺利结束。 8 | 9 | 过年在家期间,主动担任战役志愿者抗击疫情。4月份才回到工作岗位上的我慢慢进入状态,工作之外,开始了开源项目的创作,完善了个人博客的升级改版,在微信公众号分享技术文章,与此同时也收获了不少点赞和关注,涨粉上千余人。 10 | 11 | 2020年对所有人来说都是不容易的一年,疫情、口罩、网课、云办公、健康码、武汉、火神山、雷神山、方舱、推迟高考、暴雨、洪灾、嫦娥探月……这些关键词是这一年无法忘却的标志。 12 | 13 | 虽说艰难,但也有美好,2020年我正式结束了单身生活,5年长跑修成正果,于11月11日和老婆一起将结婚证领了,并与12月2号(农历十月十八)这一天举办了婚礼。 14 | 15 | 看似平淡的一年却也经历了大大小小这么多的事情。 16 | 17 | 其实2020,无需重启。 18 | 19 | 因为你经历的与记住的所有,终会成为你生命的一部分。 20 | 21 | 当你收拾好自己重新上路,它们会给予你意想不到的力量。 22 | 23 | 所以,去理解2020、拥抱2020吧! 24 | 25 | 并且,用同样的热情与爱意,去相信那个等待与你相遇的2021年。 26 | 27 | 相信2021年,我们的日子会更加美好! 28 | -------------------------------------------------------------------------------- /summary/2021-summary.md: -------------------------------------------------------------------------------- 1 | # 2021年终总结 2 | 3 | 时间是过得真快,3月份离开上海回到武汉工作,一眨眼2021年就结束了。 4 | 5 | 相比上海,武汉还是差了那么点意思,无论是行业环境还是工资待遇。不过我还是带着老婆回来了,因为这里是我唯一离目标更近的地方。结婚也一年多了,也没个稳定的住所,回来武汉工作,一是这里离家近点,去双方父母家都方便些,二是我想在这里买房定居。 6 | 7 | 疫情原因,去年留在上海过年没有回家,这是第一次没有回家过年。过完年开工后我就离职了,一切都还挺顺利的,3月份入职了武汉明源云。 8 | 9 | 2017年至今工作经验也5个年头了,每个公司都有自己的一套开发流程,由于低代码平台这一年代码写的少了,感觉自己钻研的兴趣有所下降,没有了之前的激情,不知道是自己工作太累还是缺乏动力。不过加入明源做产品也学习到了不少新的东西,进行了职级认证,开阔了视野。 10 | 11 | 90后的我马上就要27岁了,真是不敢相信再过几年我就30了,感觉自己还是个孩子,但是留给90后的我们时间已经不多了,都说三十而立,在这之前我想要的想做的有很多很多。 12 | 13 | 2022我要买房,厌倦了租房的日子,让居无定所的日子结束吧。 14 | 15 | 2022我要升职加薪。 16 | 17 | 2022我希望疫情可以结束,家人身体健康。 18 | 19 | 2022想要带老婆出去旅游一次,自从我们结婚还没有好好出去玩过。 20 | 21 | 很平淡的一年,除了换了一个工作地点,感觉其他一切都没有发生变化。 22 | 23 | 2022加油,希望一切都好! 24 | -------------------------------------------------------------------------------- /summary/2021.03.26-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.03.26 - 自我总结 2 | 3 | 进入公司已经过去两周时间,按照“新人学习培养计划”进行学习,这两周学到许多之前未接触过的知识和技能。 4 | 5 | 在入职引导人的指导和讲解下完成了拿地测算产品两个模块的开发,分期产品设置和项目规划指标。 6 | 7 | 紧跟着团队不断学习,开始进入了产品的迭代工作,完成了销售利润表模块功能。 8 | 9 | 晚上也抽空将乐享社区中“天际-建模系列课程”观看完毕。 10 | 11 | ERP建模平台在团队的帮助下顺利搭建并学会使用其创建表单和页面。 12 | 13 | 对投资收益业务的理解还不是很透彻,对PA的学习和一些高级的操作还不能够完全驾驭,比如复杂规则的编写和TI进程的编写都还没接触,这些都是我接下来需要学习的地方。 14 | -------------------------------------------------------------------------------- /summary/2021.04.09-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.04.09 - 自我总结 2 | 3 | 又经过了两周的学习和沉淀,慢慢对拿地测算业务有了一点了解。 4 | 5 | 完成了拿地测算产品开发计划、供货计划、销售计划三个模块的梳理和开发工作。 6 | 7 | 对云ERP开发规范进行系统学习并输出学习笔记,学习了ERP建模平台的使用,顺利在本地搭建并运行起来,完成了表单的制作,能够利用建模平台完成一些特定化的需求。 8 | 9 | 针对团队开发工作中还没有完全投入进去,目前只完成了销售利润表的一个小模块,并且在完成过程中还遇到不少不应该出现的问题,出现了两个比较低级的bug,这些都是不够细心导致的,在以后完成功能模块的时候,一定要严谨的完成自测,先找到自己存在的问题后再提交出去。 10 | 11 | 不过还好,也算是按期保质保量完成了所有的学习和开发任务,掌握了一点PA应用的开发技巧。 12 | 13 | 在搭建本地ERP环境的时候遇到不少问题,特别感谢团队小伙伴的热情帮助,最终顺利搞定。 14 | 15 | 接下来,继续努力学习,学习拿地测算的业务和PA技术,争取早日达到标准可以独立完成交付任务。 16 | -------------------------------------------------------------------------------- /summary/2021.04.23-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.04.23 - 自我总结 2 | 3 | 入职一个月有余了,对公司的文化和团队的氛围都是比较认可的,和大家相处的也比较愉快。 4 | 5 | 这两周开始加入430产品发版迭代的开发工作当中,和决策平台那边对接表单存在的问题,跟进和找出有问题的地方进行调整和优化。 6 | 7 | 和团队小伙伴们一起进行开发工作,参与性能优化方案讨论和研究,对我们产品表单有问题和有bug的地方进行修改。 8 | 9 | 对在做的拿地测算产品开发流程以及技术方案有了一定了解,但是在开会的时候因为对业务的不完全了解不能深入参与讨论,要加强对拿地测算业务的了解和学习。 10 | -------------------------------------------------------------------------------- /summary/2021.05.07-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.05.07 - 自我总结 2 | 3 | 本周参与了430发版,在整个430发版过程中,大家都很负责,发版前夕大家都能够一起加班,对有问题的地方死磕到底,我觉得这种精神值得发扬。 4 | 5 | 在工作过程中,大家也都很客气,有许多我不知道不明白的地方,小伙伴们都能为我排忧解难。 6 | 7 | 主要是和平台对接以及制作表单和修复一些bug,其中在优化表单某些功能时未能将问题考虑全面,导致修改了一个地方出现了其他问题,一直重复性工作浪费了许多时间,下次再进行此类工作时要慎重考虑影响点后再进行。 8 | 9 | 后续要积极参与团队交流,目前还没有进入复杂业务的开发,要加强拿地测算业务的学习,主动承担一些具有挑战性的任务。 10 | -------------------------------------------------------------------------------- /summary/2021.05.21-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.05.21 - 自我总结 2 | 3 | 这两个星期参与了2021-5SP1的迭代工作,主动领了一个给投资收益那边提供接口的任务,和投资收益对接需求,确认实现方案,到最终交付。 4 | 5 | 期间学到了许多有用的东西,在实现接口过程中进一步了解了ERP代码中对外接口的标准和规范,对外提供接口文档的要求以及要素。 6 | 7 | 在这个迭代工作期间,还有许多不足,对迭代任务的工作量估算过于乐观,预估时间与实际开发工作时间不匹配。后面策划时要做好开发时间规划,留足自测时间。 8 | 9 | 然后在开发投资收益系统接口时,对分业态均价不合理的取值未能及时发现暴露出来,接口提测后测试提出问题才进一步进行沟通给出方案。 10 | 11 | 对FEEDERS的理解不熟悉,再做销售利润表FEEDERS时走了许多弯路。经过学习和实战,在本地环境中完成了销售利润表的FEEDERS,并验证通过。 12 | -------------------------------------------------------------------------------- /summary/2021.06.04-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.06.04 - 自我总结 2 | 3 | 5SP2这个迭代的开发任务是土地管理模块业务,参与分析了投资管理和、PA信息同步接口的分析,最终分配的任务是其中投资管理的两个模块,市场报告和投资制度。 4 | 5 | 借助建模平台3.0和自定义API实现了相对应的功能点,接触到一些新的东西,比如说:权限点、如何在代码中自定义API、页面按钮执行API操作等等。 6 | 7 | 在开发的过程中遇到不少的问题,刚开始代码写的不规范,未按照平台提供示例实现新增和编辑功能。经代码审查发现问题后进行修复,后续如有类似需求要按照标准实现。并发场景考虑不足,针对已删除的数据,其它用户再去进行编辑操作,会导致异常报错。测试不足,提测后才发现问题进行修复。后续这种bug不应该出现。 8 | 9 | 借此机会去学习了建模平台3.0的玩法,以及一些编码规范,在后续开发过程中要注意按照规范来搞。 10 | -------------------------------------------------------------------------------- /summary/2021.06.18-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.06.18 - 自我总结 2 | 3 | 从入职到现在已经三个月内了,这段时间里学习到了许多知识和技能。 4 | 5 | 刚开始进入团队,针对PA开始学习,然后学习了拿地测算产品的几个模块业务并在本地环境中实现。到后面经历了430发版,和平台进行对接表单存在的问题。 6 | 7 | 慢慢的参与到团队的迭代开发中去,完成了5SP1、5SP2的开发工作,了解了产品的代码开发模式以及建模平台的基本操作。 8 | 9 | 目前正在和团队小伙伴一起协助进行6SP1的迭代开发工作。借此机会去学习了建模平台3.0的玩法,以及一些编码规范。 10 | 11 | 现在的任务主要和建模相关,我深知自己的不足,对业务的了解还是不够,还需要强化和深入学习,这是我后面主要发力的方向,要确保在迭代开发任务的保质保量同时不断加强自我学习。 12 | -------------------------------------------------------------------------------- /summary/2021.07.02-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.07.02 - 自我总结 2 | 3 | 这两周做了不少建模相关的东西,拿地过程轨道图、项目成果库、三大公告等等。 4 | 5 | 三大公告需求策划的时候是用部件管理来实现,每个公告都需要开发一个页面,和PO需求不一致。周末在家研究三列布局成功实现,并且集成到项目地图一个页面中,学习了下vue,自定义建模页面实现。 6 | 7 | 对公司开发基于平台开发代码的套路已经完全搞清楚套路,代码开发完全hold住。由于产品组主要是搞拿地测算的,所以对预算拿地这块页面还不是很清晰明了的讲清楚。加上测算数据是基于PA开发,对PA的高级使用还不能完全上手。在性能优化方面未能给到团队小伙伴有效的帮助。 8 | -------------------------------------------------------------------------------- /summary/2021.07.16-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.07.16 - 自我总结 2 | 3 | 七月份,武汉真的太热了。 4 | 5 | 这两周我们完成了一个产品新功能,需要将前期平台的下拉联动功能隐藏,自己在建模平台中实现一套。经过研究和咨询,可以通过pa的api获取指定视图的cube数据。之前用来做下拉联动的cube刚好可以用上。 6 | 7 | 我负责完成了PA表单UI的调整,项目,版本,周期等下拉联动功能兑现,封装了一套取数的逻辑,根据下拉联动的不同参数返回前端所需的数据,配合同事完成几种类型的下拉联动Demo,供同事参考。 8 | 9 | 主要用到下面api实现: 10 | 11 | `/api/v1/Cubes('Cube名称')/Views('视图名称')/tm1.Execute?$expand=Axes($expand=Hierarchies($select=Name),Tuples($expand=Members($select=Name)))` 12 | 13 | 参数: 14 | 15 | ```json 16 | { 17 | "Titles@odata.bind": [], 18 | "SuppressEmptyColumns":true, 19 | "SuppressEmptyRows":true 20 | } 21 | ``` 22 | 23 | 最后两天还帮忙测试做了两天表单测试,一个页面表面上感觉没啥问题,实际上细心一点按照测试用例一测,就会发现一堆bug。所以在开发完成后,一定要自测充分,不要对自己迷之自信,不然会死得很惨。 24 | 25 | 我们产品研发基本上到了尾声,该有的功能点都开发完成了,接下来主要是性能方面的问题,每次优化完成后都要出一个性能报告,针对页面的加载和一些按钮的操作需要记录执行时间。我做了两次这个性能报告的任务,一个系统几十个表单,用Fiddler进行监控,感觉还是很麻烦,出一次报告至少需要半天的时间。所以我有了一个新的想法,想要做一个自动化测试的工具,将需要测试的url地址输入,然后自动出性能报告导出excel,现在已经有了一些构思,希望后面可以搞出来这个工具,解放双手,造福团队。 26 | -------------------------------------------------------------------------------- /summary/2021.07.30-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.07.30 - 自我总结 2 | 3 | 这两周主要是在为730项目发版做准备,相比430来说好太多,功能都已经开发完成,只是改改bug,做一些小的需求完善打磨产品。 4 | 5 | 报名参加了公司举办的极客大赛,我们小组过了海选,初赛很遗憾没有通过。可能是点子不够新颖,产生的价值不够吧。 6 | 7 | ![ ](./images/summary-01.jpg) 8 | 9 | ![ ](./images/summary-02.jpg) 10 | 11 | ![ ](./images/summary-03.jpg) 12 | 13 | 区域公司那边来了10来个人参加培训学习,我作为新人也跟着学习了一天,将供销回的业务差不多梳理清楚了。 14 | 15 | ![ ](./images/summary-04.jpg) 16 | 17 | 另外规划了一下自己下半年的个人成长计划表,希望年底验收的时候都能通关。 18 | -------------------------------------------------------------------------------- /summary/2021.08.13-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.08.13 - 自我总结 2 | 3 | 武汉的疫情又严重起来了,公司好多小伙伴已经被隔离在家办公,一定要做好个人防护。 4 | 5 | 这两周主要做一个"中南锦时"的项目表单升级,我之前没有接触过这个项目,好像是产品这边交付过去然后出现性能问题导致返厂了... 6 | 7 | 我们这边经过分析后,做了不少工作来提升性能问题,用上了我们最新的孵化产品方式。这就涉及到项目的升级,我这边主要做表单的升级,用我们全新的表单方式来展现页面,并非之前的tm1web方式。 8 | 9 | 然后由于我之前从没有接触过项目交付,所以在今天参加了BU组织的“数字经鹰”交付赋能集训,学习了不少干货,收获满满。 10 | -------------------------------------------------------------------------------- /summary/2021.08.27-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.08.27 - 自我总结 2 | 3 | 针对"中南锦时"项目遗留问题进行修复,遇到一个很奇葩的问题,开发环境和测试环境规则一样,feeder也一样,开发环境合计数据可以计算出来,而测试环境不可以。开发环境重启了还是可以出来值,不知道什么原因导致。在同事的协助下跟踪计算规则,层层剖析cube取值逻辑,最终定位到feeder有问题,添加新的feeder得以解决。 4 | 5 | 然后对PA的技术有了一个新的理解和认识,这个迭代基于PA更名工具将产品的维度、Cube、TI批量做了更名处理。将之前不规范的地方按照现有的命名规范重新梳理。PA的Cube是不支持重命名的,如果你想修改名称或者添加删除维度都是不可以的,只能删掉重新创建。这款更名工具的实现原理其实就是,新建一个空的目标PA实例,配置好API地址,再拿到源PA实例API地址,通过API拿到数据结构,批量替换想要修改的名称,组装参数写入到目标PA实例中,维度、Cube、TI都是如此。 6 | 7 | 今天参加了“数字经鹰”交付赋能集训的第三期培训,学到了关于产品二开的一些流程规范,收获满满,后面还要基于此进行一些二开模拟考核认证,所以说还有不少需要学习的东西。 8 | -------------------------------------------------------------------------------- /summary/2021.09.10-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.09.10 - 自我总结 2 | 3 | 这两周收获挺大,将BU的两个考核完成了,PA基础技术考核和产品二开考核,完成的还不错。 4 | 5 | 从一个基础套表,到最终页面表单的呈现。套表分析、维度创建、Cube创建、规则Feeders编写、TI进程编写、TM1WEB的应用都慢慢达到了熟练的程度。 6 | 7 | 另外,产品迭代中开始了静态模型测算的需求制作,了解了动态测算和静态测算的区别。在房地产行业中,拿地测算分动态和静态两种。产品前期已经完成了复杂的动态测算模型,动态测算往往比较复杂,涉及到时间年月铺排,而动态测算是仅仅输入一些基础指标快速测算利润的一种模式,处于投资漏斗的第二层,核心诉求是能够快速的测出利润会不会突破投资底线的问题。 8 | 9 | ![ ](./images/summary-05.jpg) 10 | -------------------------------------------------------------------------------- /summary/2021.09.24-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.09.24 - 自我总结 2 | 3 | 继续参与静态模型的开发,完成了静态测算的利润测算和版本指标对比两个模块的功能。 4 | 5 | 目前产品迭代开发走向正规,开发完成后都有对应参与人负责进行代码审查,可以很好的将开发过程中的细节问题暴露出来。 6 | 7 | 关于PA方面有了新的收获,对FEEDERS的应用更加熟悉了。 8 | 9 | 另外这两周来了几个外包的新人,我负责带一个新人对其进行辅导快速学习投前产品完成供销回套表的设计与开发工作。新人有不清楚的地方要及时沟通对称,帮助其快速成长。这是我第一次带新人有很多不足,通过这次新人辅导也是对自己技术和业务的一次考验。 10 | -------------------------------------------------------------------------------- /summary/2021.10.08-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.10.08 - 小计 2 | 3 | 十一七天假期,和老婆回了趟老家…… 4 | 5 | … 6 | 7 | 希望父亲的病赶快好起来。 8 | -------------------------------------------------------------------------------- /summary/2021.10.22-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.10.22 - 小计 2 | 3 | 12号的时候,和亦师亦友的强哥约了晚饭,他到武汉这边出差一周。强哥是我遇到为数不多的好Leader之一,当初在他手下干得很愉快,听他说这可能是他最后一次到武汉出差了,所以想找我聊聊怕以后机会不多。聊天过程中才知道他要从现在的公司离职了,在家附近有更好的机会,祝好。 4 | 5 | 团队来了俩新人,安排我负责做其中一个新人的导师,其实内心是及其不安的,因为这位新人有点特殊,他到公司比我还早是从项目那边调到我们产品研发团队的。因为有一定的基础,为其制定了学习计划,先从了解产品业务为主,然后安排了两个实战项目,验收通过后即可进入产品迭代开发了。第一次带新人,也没啥经验可谈,希望通过这次辅导积累一点带新人的经验吧。 6 | -------------------------------------------------------------------------------- /summary/2021.11.05-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.11.05 - 小计 2 | 3 | 时间可过的真快啊,现在已经11月份了,想起去年这个时候在家准备婚礼的日子,那段时间真的是忙且无所适从。一切好像都准备好了,又好像一切都没有准备好一样。 4 | 5 | 去年双十一和老婆领了证,这不还有几天就一周年了嘛,老婆,一周年快乐。我们一定要好好庆祝一下~ 6 | 7 | 感谢你的一直陪伴,其实我很抱歉一直没能让你过上安定的日子,辗转反侧我们从上海回到了武汉,相信我我们明年买房的计划一定可以实现的。 8 | 9 | --- 10 | 11 | 从3月份加入明源到现在已过去大半年时间了,接下来要做PPT搞职级认证。来复盘一下这小半年的工作内容吧! 12 | 13 | 1. 快速了解投前测算产品,高效完成学习计划并通过验收,提前参与产品迭代开发,主动与决策平台进行问题反馈和沟通,完善表单的功能、UI标准化开发,助力产品4.30顺利发版。 14 | 15 | 2. 完成动态测算的销售利润表、静态测算中利润测算、销售测算、版本指标对比的开发,迭代过程中高效率高质量交付。 16 | 17 | 3. 参与拿地过程中的拿地过程轨道图、项目成果库、投资管理等模块的开发工作,从刚开始的了解到熟练,在实战开发中成长,完全上手建模平台如何进行产品开发。 18 | 19 | 4. 主动承接对外开放接口迭代任务,完成投资收益与投前数据打通的接口开发工作,从需求沟通到最终顺利交付,学习并参与如何与外部协作,从接口性能到调用方式,沉淀出一套标准化流程。 20 | 21 | 5. 项目地图界面自适应展示、三大公告个性化页面开发,挂接项目地图和投资管理中的数据进行展示,自学vue进行自定义产品页面开发,完美实现产品需求,得到一致好评。 22 | 23 | 6. 年月铺排方案研究到最终落地,当涉及到年月维度的表单导出数据进行展示查看的时候,无法确定当前数据属于哪一年的数据,基于产品现状年月模型分开的方案完成了一套全产品通用的年月合并模型,可以进行快速复刻,实现年月平铺进行展示。 24 | 25 | 7. 表单组件化方案预研,为统一规范表单组件和样式,提高页面打开性能,高效的完成了表单组件化方案DEMO,提升产品迭代开发效率和个性化能力调用。 26 | 27 | 8. 针对现有表单的单个导出完成的动态测算和静态测算两种测算模型套表的批量导出功能开发,投前测算表单数量大、数据大、筛选维度多,由之前单个导出耗时比较久到现在的批量导出大大提升了时间成本。 28 | -------------------------------------------------------------------------------- /summary/2021.11.19-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.11.19 - 小计 2 | 3 | 最近超级忙,忙着写代码,忙着做PPT。 4 | 5 | 迭代任务中接了一个相对比较复杂的任务,项目管理优化,数据流转比较多,各种场景影响点都要考虑到。 6 | 7 | ![ ](./images/summary-06.jpg) 8 | 9 | 白天写代码,晚上做PPT,要不了多久就要进行职级认证了,自从毕业工作以来,还从来没有做过像样的PPT,刚开始压根不知道怎么做。还是看了不少已经认证过了同事的PPT,才明白其中的一些套路。主要从三大方面,个人基本情况介绍、工作成果阐述和能力项自评、整体总结与未来规划进行阐述。 10 | 11 | 都说PTT不是靠做,而是靠讲。表达能力很重要,针对一个故事一件事情,不同的人讲出来的效果是不一样的。 12 | 13 | 这里学习到一种讲述自己故事的方式:STAR法则,STAR法则是情境(situation)、任务(task)、行动(action)、结果(result)四项的缩写。Situation Task Action Result,事情是在什么情况下发生,你要做的任务是什么,针对这样的情况分析,你又采用了什么行动方式,最后结果怎样,在这样的情况下你学习到了什么。 14 | 15 | 接下来要把PPT赶紧做完,希望职级认真一切顺利。 16 | -------------------------------------------------------------------------------- /summary/2021.12.03-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.12.03 - 小计 2 | 3 | 时间过好快,3月份回的武汉,转眼间就12月份了,马上一年就又过完了。 4 | 5 | 刚交完第四期房租,房东告诉我们房子到期了要收回了,明年又得重新找房子,搬家,想想就让人头疼,从毕业出来工作不知道搬了多少次家了。从刚开始的一个背包一个行李箱到现在的一堆东西,钱包不见涨了多少,生活用品倒是一堆一堆的。 6 | 7 | 职级认证的时间出来了,定在本月15号,还不知道评委有哪些人。 8 | 9 | 团队中三个人去做项目交付了,产品这边马上要年底发版了,也有好多事情。 10 | 11 | 之前带的新人已经顺利出师,开始承接简单的团队任务。 12 | 13 | 好像听说这个月要出去玩一次,放松放松,玩完了就准备好发版前的疯狂吧。 14 | -------------------------------------------------------------------------------- /summary/2021.12.17-summary.md: -------------------------------------------------------------------------------- 1 | # 2021.12.17 - 小计 2 | 3 | 在这家公司干的不温不火,发现公司的PPT文化太严重了,从入职至今过去大半年了,也不知道当初的选择是对是错。 4 | 5 | 好在2021最后一个月,PPT终于做完,认证答辩也已完成。自我感觉良好,应该是通过了,不过关于认证结果已经不重要了…… 6 | 7 | 年底了发现整个公司都忙碌起来了,产品要发版,面临重重挑战。各种技术债务要还,性能优化要做。 8 | 9 | 天冷了起来,每天晚上都很晚才睡,早上睡不醒。顶着寒风爬起来快速洗漱出门赶班车。好在每次都有座位,不会感到拥挤。想起还没毕业出来实习那会,每天挤公交车,每天上下班高峰脚挨着叫脚动弹不得。那叫一个难受,持续一个小时左右,现在想想比那个时候幸福多了。 10 | -------------------------------------------------------------------------------- /summary/2022-summary.md: -------------------------------------------------------------------------------- 1 | # 2022年终总结 2 | 3 | 本来是不想写了的,感觉这一年忙忙碌碌,也不知道瞎忙些什么,上班、下班,上班、下班,每天如此像是经历了循环一样。 4 | 5 | 22年没什么产出,也没什么大的收获。上半年工作组不断调整,组织不断被优化。下半年拉进项目组,死怼项目,没心情也没精力去做其他事情。不过做项目也有收获吧,预算类业务数据量大且业务复杂,现在算是慢慢上手对业务略知一二了。 6 | 7 | 工作上真的是没啥收获,也没啥好说的,还是和往常一样,希望23年能有所突破。 8 | 9 | 疫情反反复复,22年去的最多的地方就是核酸检测地了吧,年底阳了一周在家办公差不多半个月,浑浑噩噩挺过来了。 10 | 11 | 最大的收获就是22年把房子买了,结束了居无定所的日子。 12 | 13 | 今年老婆身体不舒服去了好几次医院,还好问题不大。感觉颈椎出了毛病,脖子一直不得劲很难受,平常上班一直久坐,日常还是要加强锻炼才行。 14 | 15 | 23年最大的愿望就是家人身体健康,没有什么能比健康更重要了。 -------------------------------------------------------------------------------- /summary/COVID-19-battle-summary.md: -------------------------------------------------------------------------------- 1 | # 新冠病毒战疫总结 2 | 3 | 新型冠状病毒肺炎蔓延期间,是医院的白衣天使们给了我们胜利的希望。 4 | 5 | 作为一名年轻的党员,在疫情扩散之际,不忘初心、牢记使命,迅速行动起来,积极投身新到型冠状病毒感染肺炎防控工作中,我自愿向党组织进行疫情捐款并主动承担起青峰街村的第二网格负责人。 6 | 7 | 每天监测村民体温,坚守卡点一线,劝导村民不出门,为村民免费发放体温计,督导村民每天上午下午自测体温并进行上报。 8 | 9 | 根据村里给的花名册,挨个打电话询问村民身体健康情况,上门统计外来人员,从武汉返回的人员。 10 | 11 | 创建微信群,村民在群内下单每天免费为大家代购生活物资,并送到家门口。 12 | 13 | 其实,这样的人还有很多,他们甘愿冒着被病毒传染的风险,冲在一线,向群众宣传疫情形势的严峻和自我防护的重要性,他们不分日夜,不畏辛苦,放弃了与家人团聚的时光,只因他们的名字叫“党员”,他们的使命就是为人民服务! 14 | 15 | ![ ](./images/COVID-19-battle-summary-01.jpg) 16 | 17 | ![ ](./images/COVID-19-battle-summary-02.jpg) 18 | 19 | ![ ](./images/COVID-19-battle-summary-03.jpg) 20 | 21 | ![ ](./images/COVID-19-battle-summary-04.jpg) 22 | 23 | ![ ](./images/COVID-19-battle-summary-05.jpg) 24 | 25 | ![ ](./images/COVID-19-battle-summary-06.jpg) 26 | 27 | ![ ](./images/COVID-19-battle-summary-07.jpg) 28 | 29 | ![ ](./images/COVID-19-battle-summary-08.jpg) 30 | 31 | ![ ](./images/COVID-19-battle-summary-09.jpg) 32 | -------------------------------------------------------------------------------- /summary/README.md: -------------------------------------------------------------------------------- 1 | # 总结 2 | 3 | 年终总结和工作总结 4 | 5 | 6 | -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-01.jpg -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-02.jpg -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-03.jpg -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-04.jpg -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-05.jpg -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-06.jpg -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-07.jpg -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-08.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-08.jpg -------------------------------------------------------------------------------- /summary/images/COVID-19-battle-summary-09.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/COVID-19-battle-summary-09.jpg -------------------------------------------------------------------------------- /summary/images/summary-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/summary-01.jpg -------------------------------------------------------------------------------- /summary/images/summary-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/summary-02.jpg -------------------------------------------------------------------------------- /summary/images/summary-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/summary-03.jpg -------------------------------------------------------------------------------- /summary/images/summary-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/summary-04.jpg -------------------------------------------------------------------------------- /summary/images/summary-05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/summary-05.jpg -------------------------------------------------------------------------------- /summary/images/summary-06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Meowv/docs/509f1338d51abbbce9fe50e60905f6a6f0197ddf/summary/images/summary-06.jpg -------------------------------------------------------------------------------- /summary/internship-month-summary.md: -------------------------------------------------------------------------------- 1 | # 实习“满月”工作感受 2 | 3 | 今天是2016年5月18日,时间过得真快,自上个月18号到今天来公司刚好一个月。这一个月的学习生活,让我学到了很多,不管是技术上还是生活阅历上都得到了很大的提升。 4 | 5 | 在公司,和大家相处的都很融洽,大家一起吃饭,一起加班,一起讨论技术。在团队中,有高学历,有低学历,但是大家并不会因为学历的原因而疏远。刚进公司什么都不懂,慢慢的适应了现有的环境,每天上班下班加班,乐此不疲。 6 | 7 | 祝经理,人很随性,对上班工作没有具体的硬性要求,弹性工作,正是我想要的。刚到公司的第一个星期,感觉很轻松,每天到点下班,有很多空余的时间,随着时间的推移,慢慢的有任务了,变得忙起来,每天要加班完成任务。正是这样,才让我得到了提升。从前端到后端再到测试,全接触。 8 | 9 | 在我来“路博特”面试的时候,我已经收到其他公司的offer,之所以选择“路博特”,我主要从公司环境和公司氛围以及面试官来判定的。我当初既然选择了这里,我就会一如既往的在这里继续学习下去。我对公司的第一印象还是不错的,那么在这里不仅可以得到技能上的提升,还能收获身心的愉悦。 10 | 11 | 说说这一个月在公司做的事情吧,其实也没什么,每天的工作日报都已经写得很详细了。第一,主要参与了一个教育局登记系统的项目,完成了几个JS的特效,充当了几次测试,熟悉了一下后天逻辑,完成了几个小的功能点。第二,一个公司自主二次开发的工作流平台,这个主要熟悉了一下流程,不做详解,接下来的重点既是这个。第三,学会若干技术点,比如iis安装部署等若干问题,文件的共享、访问,代码调试技巧等等。还有就是,一些非技术性技能,应该叫软技能吧!待人处事啊,处理工作中的问题啊,填写报销单啊之类的。 12 | 13 | 最后就总结一下自己的不足和接下来的计划吧。工作上,有些许不足,不完美的地方。比如,在测试教育局登记系统的时候没有充分测试,有时候为了图速度,准确率不高。测试就是一个心细的活,像我这样可能会适得其反。还有比如JS效果的实现,在我本地是实现了,那么在服务器上了?在不同的浏览器上面呢?没有做好相应的兼容性,都是我的问题所在。 14 | 15 | 接下来,我首先会完成公司安排下发的任务,在完成任务的同时,考虑更多的后果,不同的情况,做好相应的测试,确保万无一失。在自己完成任务的同时,学会帮助他人。因为帮助他人就是提升自己。还有就是按照自己的学习计划每天学习,不断进步。有不懂先自己研究,研究不出来问问同事。 16 | 17 | 希望接下来的日子,能够共同成长进步! 18 | --------------------------------------------------------------------------------