首页
默认分类
技术经验
工作学习
娱乐爱好
闲言碎语
更多
统计
关于
登录
1
李芒果空岛-1.20.1-发展记录-05
284 阅读
2
“日晕“
236 阅读
3
108第一届中国象棋比赛
226 阅读
4
Mac安装Homebrew
198 阅读
5
初试3D打印——手机支架
196 阅读
Search
标签搜索
天文
Minecraft
李芒果空岛
macOS
空间物理学
数值计算
非线性最小二乘
typecho
Python
PTCG
GSL
gcc
迭代法
Fortran
Halo
朗谬尔波
Langmiur
环法自行车赛
Win10
Linux
Washy
累计撰写
72
篇文章
累计收到
2
条评论
首页
栏目
默认分类
技术经验
工作学习
娱乐爱好
闲言碎语
页面
统计
关于
管理后台
搜索到
22
篇与
的结果
2023-07-06
在Docker中安装宝塔面板
0 前言 由于我的电脑是M1芯片Mac,无法直接安装宝塔面板,于是尝试在Docker容器中安装宝塔面板,以便搭建本地博客用于测试。 1 安装教程 1.1 安装Docker 官网:https://www.docker.com/ 安装:前往官网下载对应系统的安装包进行安装 1.2 配置ubuntu环境 打开终端,下载需要的版本,此处以22.04为例(:后为版本号,不指定版本默认下载最新版) docker pull ubuntu:22.04 创建镜像,并进行端口映射 docker run -i -t --name ubuntu22 -p 2020:20 -p 2121:21 -p 8080:80 -p 4430:443 -p 8880:888 -p 8888:8888 ubuntu:22.04 --name: 镜像名称,自定义,此处为ubuntu22 -p: 端口映射,本机端口:镜像端口。至少需要映射80和8888两个端口,前者用于站点访问,后者用于宝塔面板web端访问。 镜像创建完成后,终端自动进入镜像中,以下操作均需要在镜像中进行。 更新apt-get apt-get update 安装sudo apt-get -y install sudo 安装wget apt-get -y install wget 1.3 安装宝塔面板 官网:https://www.bt.cn/new/download.html 使用安装脚本进行安装(不同的系统命令不同,以下为Ubuntu/Deepin安装脚本) wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec 有提示的选择Y即可,等待安装完成 通常情况下,宝塔面板会随机分配一个端口用于WEB面板,随机的端口大概率没有进行端口映射,因此需要将其修改为8888。在容器终端中输入bt 8,输入新的端口号8888即可 bt 8 在本机浏览器中输入localhost:8888(宝塔面板安装成功时提示的内网面板地址,有时候端口号后面还有一些字符)进入WEB面板登录界面,输入账号密码进行登录 进入WEB面板后,选择LNMP极速安装 2 遇到的问题 如果出现MySQL提示安装已完成,但在数据库界面又显示未安装MySQL,可能是内存不足导致的。 解决方案:在WEB面板的软件商店中安装Linux工具箱,安装完成后,点击【设置】-【Swap/虚拟内存】,分配2G左右的Swap,然后重新安装MySQL即可 参考 Docker中安装宝塔的详细教程 docker配置ubuntu环境
2023年07月06日
97 阅读
0 评论
0 点赞
2023-05-27
使用Python调用Fortran程序
1 前言 网上关于Python调用Fortran程序的方法通常分为三种:1)基于f2py;2)生成动态链接库;3)生成可执行文件。 其中第1种方法在涉及到“祖传”代码时,通常会出现各种报错;第3种方法在进行数据传递时基本只能通过操作文件的方式,很不方便。 由于涉及Fortran程序时,一般都逃不开“祖传”代码,因此本文将介绍最为稳定可靠的第2种方法。 2 方法详情 2.1 示例代码 新建test01.f90文件,创建子例程sub_test01以及函数func_test01,详细内容如下 subroutine sub_test01(x,y,z) bind(C,name="sub_test01") use iso_c_binding real(c_double), intent(in), value :: x,y real(c_double), intent(out) :: z(2) z(1) = x + x z(2) = y*y end subroutine sub_test01 function func_test01(x,y) result(z) bind(c,name="func_test01") use iso_c_binding real(c_double), intent(in), value :: x,y real(c_double) :: z z = x + y end function func_test01 bind:用于声明外部调用时子例程/函数名称 iso_c_binding:Fortran自带的模组,必须引用 intent:声明变量属性,输入为in,输出为out,即是输入也是输出为inout c_double:变量类型,real对应c_double,integer对应c_int value:输入变量为单个值时,需添加此标记 2.2 生成动态链接库 与正常编译相比增加-shared,生成后缀为.so的文件,如下 gfortran -shared test01.f90 -o test01.so 如果此步骤报错recompile with -fPIC,则在-shared后加上-fPIC。 2.3 使用Python调用 调用sub_test01子例程,需要引用ctypes和numpy,示例代码如下 import ctypes as ct import numpy as np # 加载动态链接库 fortlib = ct.CDLL('test01.so') # 引用sub_test01子例程 f_sub = fortlib.sub_test01 # 声明变量类型 f_sub.argtypes = [ct.c_double, ct.c_double, ct.POINTER(ct.c_double)] # 输入变量赋值 x = ct.c_double(3) y = ct.c_double(4) # 输出变量初始化 z = np.ones(2) z_p = z.ctypes.data_as(ct.POINTER(ct.c_double)) # 调用sub_test01子例程 f_sub(x,y,z_p) print(z) 使用ctypes.CDLL(<so name>)加载动态链接库,其中<so name>为上一节生成的动态链接库名称 子例程的引用名称为上一节bind中name定义的名称 argtypes用于声明变量类型,其中ctypes.POINTER表示指针。当变量为单个值(Fortran代码中value)时,声明为相应类型;当变量为数组(或输出变量,即intent(out))时,声明为指针 ctypes.c_double(<value>),其中<value>为变量的值 打印结果为[6. 16.] 调用func_test01函数,与子例程调用方式基本相同,示例代码如下 import ctypes as ct # 加载动态链接库 fortlib = ct.CDLL('test01.so') # 引用sub_test01子例程 f_sub = fortlib.func_test01 # 声明变量类型 f_sub.argtypes = [ct.c_double, ct.c_double] # 声明结果类型 f_sub.restype = ct.c_double # 输入变量赋值 x = ct.c_double(3) y = ct.c_double(4) # 调用sub_test01子例程 z = f_sub(x,y) print(z) restype声明返回值的类型 打印结果为7.0 参考 python调用fortran的3种形式【f2py,动态链接库,os命令】 How to Call Fortran from Python Using Python as glue
2023年05月27日
179 阅读
0 评论
0 点赞
2023-05-18
typecho-joe主题改动笔记
1 代码改动——根目录 1.1 文章:删除评论和侧边栏 文件位置:post.php 删除评论组件引用:删除如下代码 <?php $this->need('public/comment.php'); ?> 删除侧边栏组件引用:删除如下代码 <?php $this->need('public/aside.php'); ?> 1.2 页面:删除评论和侧边栏 文件位置:page.php 删除评论组件引用:删除如下代码 <?php $this->need('public/comment.php'); ?> 删除侧边栏组件引用:删除如下代码 <?php $this->need('public/aside.php'); ?> 2 代码改动——公共资源 2.1 侧边栏:删除作者栏 文件位置:public/aside.php 删除作者栏:删除joe_aside__item author,即删除如下代码 <section class="joe_aside__item author"> <img width="100%" height="120" class="image lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="<?php $this->options->JAside_Author_Image() ?>" alt="博主栏壁纸" /> <div class="user"> <img width="75" height="75" class="avatar lazyload" src="<?php _getAvatarLazyload(); ?>" data-src="<?php $this->options->JAside_Author_Avatar ? $this->options->JAside_Author_Avatar() : _getAvatarByMail($this->authorId ? $this->author->mail : $this->user->mail) ?>" alt="博主头像" /> <a class="link" href="<?php $this->options->JAside_Author_Link() ?>" target="_blank" rel="noopener noreferrer nofollow"><?php $this->options->JAside_Author_Nick ? $this->options->JAside_Author_Nick() : ($this->authorId ? $this->author->screenName() : $this->user->screenName()); ?></a> <p class="motto joe_motto"></p> </div> <?php Typecho_Widget::widget('Widget_Stat')->to($item); ?> <div class="count"> <div class="item" title="累计文章数"> <span class="num"><?php echo number_format($item->publishedPostsNum); ?></span> <span>文章数</span> </div> <div class="item" title="累计评论数"> <span class="num"><?php echo number_format($item->publishedCommentsNum); ?></span> <span>评论量</span> </div> </div> <?php if ($this->options->JAside_Author_Nav !== "off") : ?> <ul class="list"><?php _getAsideAuthorNav() ?></ul> <?php endif; ?> </section> 3 CSS样式改动 3.1 内容自动居中、固定内容宽度 assets/css/joe.normalize.min.css文件,删除所有@media,改动.joe_main和.joe_container如下 .joe_main { min-width: 0; flex: 1; padding: 15px 0; max-width: 900px; margin: auto; } .joe_container { display: flex; width: 100%; margin: 0 auto; padding: 0 15px; max-width: 1100px } assets/css/joe.post.min.css文件,改动.joe_bread如下 .joe_bread { padding-top: 15px; max-width: 930px } assets/css/joe.global.min文件,改动.joe_header__below-class如下 .joe_header__below-class { display: flex; margin: auto } assets/css/joe.global.min文件,改动.joe_header.active.current .joe_header__below-titles如下 .joe_header.active.current .joe_header__below-title { display: block; margin: auto } 3.2 表格根据内容自动调整宽度 assets/css/joe.global.min.css文件,改动.joe_detail__article table如下 .joe_detail__article table { width: 100%; max-width: 100%; table-layout: auto; color: var(--minor); margin-bottom: 18px; font-size: 13px; border-top: 1px solid var(--classC); border-left: 1px solid var(--classC) }
2023年05月18日
156 阅读
0 评论
0 点赞
2023-05-18
博客搭建遇到的问题
目前尝试了不同的博客框架进行博客网站搭建,列举下各个框架的优点和遇到的问题。 Hexo 优点 轻量、简洁,加载速度快 可以在本地使用Typora写博客,推送至GitHub Pages上 缺点 图片上传很麻烦 可定制的内容有限 Wordpress 优点 具有强大的界面自定义功能,不需要接触底层代码即可实现。尤其是blocksy主题,可以定制出简洁美观的界面。 自带的媒体库很方便各种文件的上传 缺点 体量过大,加载速度不够快 对Markdown语法支持不友好,本地Typora写的md文件无法完美显示 对LaTeX公式支持不友好 页面美化不好实现:可通过购买主题实现 typecho 优点 对Markdown语法支持很好,可直接上传本地Typora写的md文件 可通过安装插件实现LaTeX公式的支持 joe主题非常简洁 缺点 近乎停止更新,大多数插件比较陈旧 halo 优点 后台非常美观 支持Markdown语法,本地md文件可不经修改直接上传 通过添加head头信息,可支持LaTeX公式 缺点 2.0版本主题都不够好看 2.5.2版本在设置文章固定链接时存在bug,且没有自定义功能 总之,这四个博客框架每个都有一定的优点,但又存在一些我无法接受的缺点。 个人需求 后台体验 支持Markdown语法,本地Typora编写的md文件最好可以不经修改直接上传 支持LaTeX公式,行内公式与行间公式,且与本地md书写方式保持一致,不需要额外修改 前台美观 界面渲染足够友好 支持代码高亮,最好支持代码折叠,以及超过固定行数隐藏 支持明亮/暗黑模式切换
2023年05月18日
172 阅读
0 评论
0 点赞
2023-05-18
使用Halo搭建博客
部署 docker run \ -it -d \ --name halo \ -p 8090:8090 \ -v ~/.halo2:/root/.halo2 \ halohub/halo:2.5 \ --halo.external-url=http://localhost:8090/ \ --halo.security.initializer.superadminusername=admin \ --halo.security.initializer.superadminpassword=P@88w0rd 注意修改管理员用户名和密码 主题 前往Awesome Halo仓库查看Halo2.0版本主题 插件 ByteMD 简介:支持Markdown语法 下载: Wordpress 简介:从Wordpress博客导出的XML文件导入数据 下载:https://github.com/halo-sigs/plugin-wordpress 配置 LaTeX语法支持 前往【设置】【代码注入】【内容页head标签】写入如下代码 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> </script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ extensions: ["tex2jax.js"], jax: ["input/TeX", "output/HTML-CSS"], tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ], processEscapes: true }, "HTML-CSS": { availableFonts: ["TeX"] } }); </script>
2023年05月18日
123 阅读
0 评论
0 点赞
2023-05-18
使用typecho搭建博客
0 前言 使用Wordpress+blocksy主题建站一个月左右,由于我经常使用Typora做笔记,而Wordpress对Markdown的兼容性实在是太差,插件也都不好用,进而使用typecho+joe主题重新搭建本博客网站。 1 Typecho + Joe主题 1.1 官方版 安装本体:前往官网下载typecho本体,上传至服务器站点并解压缩,流程与Wordpress类似 后台美化:由于typecho后台非常丑,可使用SimpleAdmin插件进行后台美化,可前往GitHub仓库release下载最新版 启用主题:Joe主题是一款非常优秀的免费主题,可前往GitHub仓库下载安装 1.2 魔改版 安装本体:typecho定制版对原版进行了一定的优化,并且自带后台美化插件,可前往GitHub仓库release下载安装 启用主题:Joe主题虽然很优秀,但也存在一些不足,目前网上有很多基于Joe主题的魔改版,此处推荐typecho定制版同作者发布的魔改版,可前往GitHub仓库release下载安装 2 数据迁移 更换博客框架后,需要将原Wordpress网站上的文章迁移到typecho,具体步骤如下: 下载安装WordpressToTypecho插件,下载地址http://docs.typecho.org/_media/plugins/wordpresstotypecho.zip 设置数据库名称、密码等信息 点击左侧WordpressToTypecho选项 3 typecho配置 3.1 网站设置 基本 - 站点名称:愚之説 基本 - 站点地址:https://www.washy.cn 基本 - 站点描述:积极乐观的前行~ 永久链接 - 自定义文章路径:选择【个性化定义】/{cid}.html 3.2 插件 MarkdownParse 功能:自动渲染LaTeX公式和mermaid流程图 下载:https://github.com/mrgeneralgoo/typecho-markdown AutoLaTeX 功能:自动渲染LaTeX公式(建议使用MarkdownParse插件代替该插件) 下载:https://github.com/dreamerblue/AutoLaTeX SmartSpam 功能:智能评论过滤插件 作者:Typecho智能评论过滤插件:SmartSpam 下载:SmartSpam_v2.6.0 3.3 伪静态 Nginx if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } Apache <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>
2023年05月18日
190 阅读
0 评论
0 点赞
2023-04-18
域名备案的相关事项
域名备案事项 相关问题 什么条件下需要进行域名备案? 购买了域名,并解析至国内的云服务器时,需要进行域名备案。并且域名完成备案前不可使用,备案完成后需要在网站页脚标注备案信息,并在网站发布的30天内进行公安备案。 只够买了域名,使用Hexo + GitHub Pages布置静态博客,需要备案吗? 不需要。 购买了域名以及境外的云服务器,需要进行域名备案吗? 不需要。 域名备案时,身份证的地址信息与实际户口所在地不同(即迁了户口但还没有更换新的身份证),如何选择备案地? 按照身份证上的地址信息进行备案。 在不同商家购买了域名和云服务器,应该在哪个商家进行域名备案? 在购买云服务器的商家处进行域名备案。如在阿里云购买了域名,在腾讯云购买了云服务器,则在腾讯云进行域名备案操作。 官网链接 域名备案:云服务器购买商的官网 公安备案:https://www.beian.gov.cn/portal/index.do
2023年04月18日
97 阅读
0 评论
0 点赞
2023-04-16
使用Wordpress搭建博客
1 初步认识 1.1 简介 WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。 WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。 WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。 WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言包。WordPress拥有成千上万个各式插件和不计其数的主题模板样式。 百度百科 - Wordpress 1.2 运行环境 由上可知,Wordpress可以在任意安装了PHP和MySQL的电脑或服务器上运行。 PHP和MySQL两款软件可以单独配置,也可以使用集成软件直接配置。集成软件可选择小皮面板(PhPstudy)、宝塔面板等。 1.3 本文内容 下面将简要介绍如何在服务器搭建Wordpress网站,如果想在本地运行,只需在本地安装小皮面板或宝塔面板,其他步骤一致即可。 2 准备阶段 购买一个云服务器:作为博客网站使用时选择最低配置即可,推荐腾讯云、阿里云,如果是新用户会有比较大的折扣 购买一个域名:云服务器在国内需要备案,关于备案请看腾讯云的《网站备案》以及本站博客《域名备案的相关事项》 下载最新版Wordpress文件,官网下载链接https://cn.wordpress.org/download/ 3 宝塔面板 连接服务器,Ubuntu/Deepin使用如下命令进行安装。此处大概率已经不是最新版本,建议前往宝塔面板官网查看最新命令。对于腾讯云服务器用户,也可以在初始化时直接选在带有宝塔面板的系统 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec 进入宝塔面板,选择LNMP一键极速安装,等待安装完成 点击左侧导航栏的【网站】-【添加站点】- 填写域名 - 创建数据库 - 提交 域名:备案审核已通过的话,使用域名;还没通过的,使用公网IP 数据库:选择创建 添加站点后,点击站点名后的【设置】,修改【伪静态】为wordpress 点击站点名后的【根目录】链接,进入站点根目录(/www/wwwroot/站点域名),删除所有原始文件,上传下载的Wordpress压缩包并解压 将解压后的所有文件从wordpress文件夹剪切至站点根目录,删除wordpress文件夹和上传的压缩包 浏览器输入站点域名进入Wordpress配置界面,点击【现在就开始】 输入数据库名称和密码,点击【提交】。数据库名称和密码可在宝塔面板左侧【数据库】页面查询 输入站点标题、用户名、密码和电子邮件,点击【安装Wordpress】 至此,一个Wordpress网站就搭建完成了。当然现在网站页面还比较丑,需要安装一个合适的主题并配置。
2023年04月16日
113 阅读
0 评论
0 点赞
2023-04-13
博客网站规划
当前博客网站使用typecho框架搭建。 基本信息 [X] 增加备案信息(2023-04-12) [X] 增加《关于》页面:简要介绍作者和网站(2023-04-16) 前台界面 增加指定分类首页排除功能 [X] Wordpress实现(2023-04-13) [ ] typecho待实现 [X] 文章页优化:修改引用显示样式,修改1~3级无序列表显示样式 Wordpress实现(2023-05-15) [X] 代码高亮显示(2023-05-17) [X] 文章页优化:作者介绍、文章分享、版权信息等(2023-05-17) [X] 增加网站明亮/暗黑模式切换按钮(2023-05-17) 其它 [ ] 绑定手机小程序
2023年04月13日
108 阅读
0 评论
0 点赞
2023-04-12
博客搭建框架介绍
经过近两周的折腾,初步搭建了当前的博客网站,这期间调研了不少博客网站搭建的文章和教程,这里简要介绍下各个框架的特点,以便需要的人参考。 博客网站框架 最近主要接触了以下几种博客框架: 序号 名称 官网 特点 主题库 1 Hexo https://hexo.io/zh-cn/ 无后台,配置简单,功能简单 大量免费开源的主题 2 Halo https://halo.run/ 有后台,配置简单,正在发展中 相对较少,但未来可期 3 typecho https://typecho.org/ 有后台,配置简单,仅适合博客 大量免费开源的主题 4 Wordpress https://cn.wordpress.org/ 有后台,配置复杂,功能强大 大量免费以及付费的主题 博客框架推荐 以下仅为个人观点。 博客框架的选择需要考虑自身需求和各种成本问题,这里主要基于以下几点进行分析: 网站功能: Hexo:纯静态网站,没有后台操作界面,即无法在线编辑,只能本地写好文章后,使用命令上传至GitHub或服务器。安装插件可实现文章评论功能,不支持用户注册。 Halo:有后台操作界面,支持markdown语法。支持评论、用户注册。 typecho:有后台操作界面,支持markdown语法,仅支持作为博客网站。支持评论、用户注册。 Wordpress:有后台操作界面,安装插件后支持markdown语法,拥有众多强大的功能。支持评论、用户注册。 网站美观: Hexo:有不少好看的主题且免费开源 Halo:主题库相对较少,尤其是更新后的2.0版本 typecho:主题库丰富,众多免费主题可供挑选 Wordpress:主题库丰富,免费版、付费版均有 搭建网站的时间成本: Hexo:很小,根据教程十几分钟即可在GitHub上搭建好。但评论等功能的添加需要额外花费时间。 Halo/typecho:云服务搭建半天左右,域名备案一周左右。 Wordpress:云服务器和域名配置同上。找到适合的主题比较花时间。 网站搭建的金钱投入: Hexo:使用GitHub Pages,可以零成本。购买域名,一年几块到几十块不等。 Halo/typecho/Wordpress:必须购买服务器和域名。新手优惠至少一百多每年,老用户至少六百多每年。 后期维护及优化 Hexo:一劳永逸,后期几乎不需要维护和优化。 Halo/typecho:暂不清楚。 Wordpress:随着内容的增多,需要进行额外的维护和优化。 综上所述,如果想完全白嫖,使用Hexo+GitHub Pages;如果购买了云服务器和域名,又不想投入太多精力在网站搭建上,建议使用Halo或typecho;如果比较想折腾或者完美主义者,直接Wordpress。
2023年04月12日
129 阅读
0 评论
0 点赞
1
2
3