点击量:1

使用 gollum 书写文档(github, gitlab, wiki)。Gollum 是通过 gitlab 发现的东西,可以把 gitlab 的 wiki 文档放在本地进行书写,对于“小”的wiki,以及API文档实在是再方便不过了。个人感觉比 Sphinx 更加容易上手。

显示 TOC

[[_TOC_]]

安装 gem

ruby-full, ruby-dev

切换 aliyun mirror

上网搜就行。

https://gems.ruby-china.com/

安装 gollum

gem install gollum

gollum wiki

  • https://github.com/gollum/gollum/wiki

similar things

https://github.com/joeyespo/grip

try

todo

[[_]] 测试

点击量:3

最近使用 Pycharm ,有时候引用包的时候很不方便,错误的显示 package 不存在。出现这个问题的本质是因为:代码检查的位置没有设置好。

那么怎么解决这个问题呢?偶尔发现 Pycharm 的选项中,有一个选项是marked,因此选 marked 即可。

还有就是 Docker 的配置,以及 Python interpreter的配置。这两个都可以通过设置进行配置,然后修改默认的 Python 解释器。在 Python interpreter 中,还可以手动安装相关的包。

使用 Vim

使用 ideavim,可以将原来的按键映射到 Vim 按键上。

(有新的就更新。)

转载请注明出处。

点击量:10

用 Django 快速开发一个项目,发现 Django 的模板本身不带有整除功能,因此自己手写一个。

├── templates
│   ├── app
│   └── base
├── templatetags
│   ├── app_extras.py
│   ├── __init__.py
│   └── __pycache__
├── tests.py
├── urls.py
├── utils.py
└── views.py

这是目录结构。在 urls.py 添加 app 的名称,例如 app_name = ‘app’ ,然后在与models.py 同级的目录下,新建一个 python 包, templatetags 的,新建自己需要的包名即可。

app_extra.py:

from django import template

register = template.Library()


def mod(value):
    return value % 11


register.filter('mod', mod)

这里因为需求比较简单,因此直接就赋值了 11.

应用到模板中:

{% load app_extra %}

{% for image in image_list %}
	{% if forloop.counter|mod == 0 %}
		<h3>检查点</h3>
	{% endif %}
{% endfor %}

随后即可看到结果。

此外,寻得两个比较好用 template 插件

https://pypi.org/project/django-bootstrap4/
https://github.com/timonweb/django-bulma

实现的东西虽然不多,但是起码把我不想关心的逻辑封装起来了。。

点击量:6

这几天 https 挂掉了,似乎是因为铁门的证书(过期,不被chrome认可)了。因此重新搞一下 https。

恢复 https 也没有做什么工作,就是把之前的证书重新申请一次,然后下载下来的文件把之前的 https 文件替换掉。https 相关的文章很多,我就不再赘述了。可以参见很多人的文章。

此处唯一需要注意的是,我使用 Docker,对于 certbot ,也就是 letsencrypt 的支持不够好(也可能是我在man里面粗略的看了一下,没有找到)。因此,对于三个与的letsencrypt我就不使用了。

本篇是老文,之前一直都没有发出。

今天发出,作为博客长时间滑水的终止符。

这次更新 https,也做了一些工作,就是把原来的 rewrite 选项改成了 301,做了一个重定向,整个速度都提升了不少(未测试,仅观感),感觉很不错。因此把之前的配置贴出来。

原来的配置

    location / {	
        rewrite ^ https://$host$request_uri? permanent;	
    }	
     location ^~ /.well-known {	
        allow all;	
        root  /data/letsencrypt/;	
    }

现在的

return 301 https://$host$request_uri;

点击量:13

Python functools 一直有个很好的特性,叫做 partial ,片函数,一直都没有使用过。最近通过阅读别人的代码,学会了这一技能,着实好用。

使用 partial,可以把一些固有功能代码做一个整合;

比如我希望一个函数专门做 int2 转换

int2 = partial(int, base=2)

甚至还可以再过分一点,把 base 变成一个字典量传入。

多使用内建函数 locals,可以极大的减少自己的代码量;真正的 Pythonista,永无止境。

def in_func():
	a = 2
	b = 3

	def test(a, b, **args):
		return a + b

	print(test(**locals()))

点击量:14

今天又偶遇了之前用阿里云出现的问题:

明明密码没有错,本地登录可以,但远程登录就是不ok。

之前一直没有排查到错误,今天终于在本地机器的加持下得以解决。这是什么问题呢?IP地址冲突。

的确是IP地址冲突。首先先使用校园网client ssh b-server 服务器,失败了。使用同一个物理主机的a-server与b-server进行互联,成功了。校园网client能够连接a-server。因此,观察 a-server 和 b-server 的区别,发现 a-server 子网掩码是255.255.255.128,而 b-server 的子网掩码是 255.255.255.0。

此外,还有:

查看系统开放的端口
netstat -nltp
测试本地是否能够访问,排查本地问题
ssh user@locahost

子网掩码不同,为什么就连接不上呢?(原理)

最终,解决了这个问题。通过重启 networking 以及 重新通过 dhcp 获取 ip 地址。

  1. 使用 systemctl restart networking.service 重启 networking 服务。
  2. 使用 ifconfig eth0 down; ifconfig eth0 up 来开关具体的网卡。
  3. 使用 # dhclient -r 释放当前ip
  4. 使用 # dhclient 获取新的ip

大功告成,算是阶段性的解决了这个问题。DDNS迫在眉睫啊!

点击量:12

之前一直搞不清楚 UEFI 和 Legacy 区别在哪里,今天搞了一下 Manjaro 终于搞明白了;比较好笑的是,我参考的是 Ubuntu 的文档。
https://help.ubuntu.com/community/UEFI

安装 Manjaro 的时候,一直都有个安装引导程序到某处,很纳闷,为啥我这里有这个东西,别人截图就没有。后来更换了rufus的写入的模式,也就是 UEFI only。然后重新以 UEFI 模式载入,终于,引导不再有之前的“安装引导程序“了。


感动不已,于是在这里记录一下。
https://askubuntu.com/questions/63610/how-do-i-remove-ubuntu-in-the-bios-boot-menu-uefi

点击量:12

可以使用的工具

  • https://www.websequencediagrams.com/
  • MY CHOICE: https://mermaidjs.github.io/
  • Another choice: google key word: sequence graph

把 svg 转换成 png 文件

Or without installing anything:

qlmanage -t -s 1000 -o . picture.svg 

It will produce picture.svg.png that is 1000 pixels wide.

I have tested it only on OS X 10.6.3.

例如:

sequenceDiagram
App->Server: 请求视频服务
Server-->Server: 生成支付信息
Server->App: 返回支付信息
Note left of App: 获取支付的相关信息
App-->支付宝: 完成付款
支付宝-->App: 支付成功
Note left of App: 获悉支付结果
支付宝->Server: 根据回调URL,发送支付结果
Server->App: 根据支付结果,发送给客户端

点击量:28

原来一直认为ssh仅仅是一个字符界面,最近发现其实可以传输xserver中的图像。

方法很简单,只需要在ssh的选项中添加-Y就可以了。比如原来的ssh命令是这样:

ssh ubuntu@localhost

现在改成这样

ssh -Y ubuntu@localhost

非常简单有效。

另外,远程查看Ubuntu中的图像,可以使用eog命令。安装:

sudo apt install eog

安装完成后,直接运行eog ./test.png即可。这对于服务器调试相当方便了!

SSH 可选的加速策略

 -C      Requests compression of all data (including stdin, stdout,
         stderr, and data for forwarded X11 and TCP connections).  The
         compression algorithm is the same used by gzip(1), and the
         “level” can be controlled by the CompressionLevel option for pro-
         tocol version 1.  Compression is desirable on modem lines and
         other slow connections, but will only slow down things on fast
         networks.  The default value can be set on a host-by-host basis
         in the configuration files; see the Compression option.

点击量:25

最近没有什么故事要讲,着实有点忙。但是文章太长时间不发也不好,说不定我有那么几个隐藏的很深的不爱说话的粉丝。

这里介绍一个小工具好了,·classifier· 是一个文件分类工具,包括音乐,pdf,图像等等。运行之后可以自动归类这些文件,懒人福音。

安装

pip install classifier

运行

进入目录,然后运行 classifier,像这样:

$ classifier

然后文件就会变得井然有序啦!

官方示例:

Example

Before:

Downloads
│   ├── project.docx
│   ├── 21 Guns.mp3
│   ├── Sultans of Swing.mp3
│   ├── report.pdf
│   ├── charts.pdf
│   ├── VacationPic.png
│   ├── CKEditor.zip
│   ├── Cats.jpg
│   └── archive.7z

After:

Downloads
│   ├── Music
│   │   ├── 21 Guns.mp3
│   │   └── Sultans of Swing.mp3
|   |
│   ├── Documents
│   │   ├── project.docx
│   │   ├── report.pdf
│   │   └── charts.pdf
|   |
│   ├── Archives
│   │   ├── CKEditor.zip
│   │   └── archive.7z
|   |
│   ├── Pictures
│   │   ├── VacationPic.png
│   │   └── Cats.jpg

更多有意思的东西,可以从 repo 看到:

https://github.com/bhrigu123/classifier