2023-03-30 21:24:13 +08
字数:839
标签:
Rust
在glibc环境编译的Rust可执行文件,不能在scratch中运行。
本文介绍另一种编译方式,得到一个Linux下广泛可运行的可执行文件。
2023-03-28 22:11:19 +08
字数:542
标签:
Rust
这里记录了一个函数,未来用到时复制。
并且还展示了一些文件操作,以便参考。
2023-03-16 23:04:30 +08
字数:1144
标签:
Rust
任何语言中,enum和String两个类型的互转,都是基本操作,
因为String广泛地使用于各个有可能的人机接口和(跨语言或跨环境)机机接口。
Rust中默认不支持,但可以用strum_macros来实现。
2023-02-24 23:44:22 +08
字数:805
标签:
vscode
rust
因为某些原因而不得不使用nightly模式时,一般直接切换系统版本。
但是,如果一个代码库中包含多个项目,只有个别项目是nightly时,就需要给VSCode一些特殊的配置。
2023-02-20 00:05:11 +08
字数:1166
标签:
Linux
Docker
K8s
因业务需要,程序要修改MAC地址,并且开关K8s中Pod的网络。
使用Linux的cap_net_admin,可以做到非root用户执行网络操作。
2022-11-20 19:34:25 +08
字数:1238
标签:
Python
在一般的语言中(Java:正式在下!),字符串是不能用+或连加来进行大量构造的。
因为字符串是不可变对象(或基本类型),N个字符的连加,会额外产生N-1个对象。
但Python是个例外。
2022-03-08 17:55:31 +08
字数:1023
标签:
Python
Django
DRF(Django REST Framework)不支持带前缀的资源。
所有资源,默认都应该在URL的根路径下。
这里提供了一种支持前缀的解决方案,并且支持带参数的前缀。
2021-11-04 19:58:00 +08
字数:364
标签:
Linux
CMake生成的Makefile里,竟然是没有uninstall的。
本文介绍了一种自定义命令的方案。
2021-09-04 17:17:55 +08
字数:1362
标签:
Python
取消一个在排队的Celery的Task,操作是简单的,用revoke就行。
但是,如果要很好地取消一个正在运行的Task,则没那么容易。
2021-05-17 19:12:13 +08
字数:471
标签:
Linux
没错,Deepin的应用商店能安装Chrome,但版本略老。
如何在Linux下安装Chrome,又能保证持续更新?
尤其是在中国大陆的网络环境下?
配置Google的软件源,利用apt保持更新即可。
2021-05-14 19:02:57 +08
字数:599
标签:
Linux
JavaScript
尽管Deepin的20.2可以通过apt直接安装NodeJS,但版本太老,刚好已经不再维护了。
而且,NodeJS官方的安装方法也有问题,因为不支持Deepin系统。
因此,需要看一下安装脚本,找到真正的安装手法。
2021-05-13 19:04:55 +08
字数:4772
标签:
Linux
Python
从源码安装、手动管理,到update-alternatives,再到pyenv,又回归pyenv-install+update-alternatives。
本文算是把Linux下,Python多版本管理的主要骚操作都讲完了。
此外,也稍微提点了一下原理。
2021-05-11 21:52:18 +08
字数:1025
标签:
Python
如何判断两个浮点数是否相等?
这是一个所有编程语言都有的小坑。
Python中虽然统一了float和double,但不可避免地仍然有这个问题。
2021-05-02 10:56:46 +08
字数:2764
标签:
CI
Git
简单介绍GitLab Runner的功能和类型,并描述配置流程。
2021-01-19 19:16:01 +08
字数:1394
标签:
Python
在系统负载较高,消息队列里堵了太多东西的情况下,Celery容易出现重复执行一个Task,甚至不止一次的情况。
本文给出三个解决方案。
2020-12-28 16:56:49 +08
字数:406
标签:
GitHub
介绍一个git clone的提速方案,加快GitHub仓库的下载。
2020-12-19 17:42:04 +08
字数:720
标签:
Linux
本文介绍了如何在sudo中添加当前用户下的指定环境变量。
并且,顺便介绍了/etc/sudoers文件发生语法错误时,如何修复。
2020-12-18 20:34:19 +08
字数:1062
标签:
Python
Linux
Docker
有时,Python发布的程序需要被打包为一个文件夹、甚至一个文件发布。
目前(2020)最佳的策略是使用pyinstaller。
本文介绍了这种方案的配置方法,以及它的2个问题。
2020-10-24 23:35:26 +08
字数:2817
标签:
Aliyun
Hugo
2020年9月之前,本站都是通过云服务器自建Nginx对外提供静态网页的。
但是在9月,服务器又到期了,续费太贵。
在买新迁移的过程中,忽然想试试OSS对象存储对静态网站的托管能力,最终还是迁移上来了。
2020-10-24 10:25:51 +08
字数:1824
标签:
K8s
在一个Pod中,某个Container运行主要业务的同时,需要另一个Container协同
——这是一个常见的业务场景,这个协同Container通常称为Sidecar。
目前(v1.20版本),官方仍然没有正式支持Sidecar类型的Container。
本文先介绍一个网上流传的乌龙,再介绍一种自己实现的土办法。
2020-09-26 21:33:57 +08
字数:2312
标签:
Bash
Linux
Python
本文内容承接《安装Powerline并配置Vim、Bash、tmux、IPython、pdb》,介绍Powerline显示内容的定制方法。
并且介绍自定义组件的开发方法。
2020-09-22 19:25:26 +08
字数:573
标签:
Linux
在某些环境下,比如公司内网、云上子网等,是与互联网隔绝的。
这时要想做时钟同步,就只能自己配置了。
本文介绍如何自己配置时钟同步,不介绍如何自建NTP服务器。
2020-09-21 21:59:17 +08
字数:1546
标签:
Bash
Python
Linux
本文主要介绍基于Powerline的CLI美化配置。
2020-08-27 20:54:47 +08
字数:1517
标签:
Python
作为一个分布式异步计算框架,Celery虽然常用于Web框架中,但也可以单独使用。
虽然常规搭配的消息队列是RabbitMQ,但是由于某些情况下系统已经包含了Redis,那就可以复用。
本文撇开Web框架,介绍基于Redis配置Celery任务的方法。
2020-08-22 16:05:04 +08
字数:1633
标签:
K8s
顺序执行任务,不是Kubernetes原生支持的,但也有办法实现。
经过调查发现,虽然containers不能依次运行,但是initContainers可以。
直接支持这个场景的是argo,但它不在一个Pod中。
2020-08-19 19:50:44 +08
字数:1704
标签:
Scala
只要有个数据库,都需要迁移(Migration)方案,除非一版定稿、再不修改。
Play Framework在1.x时代,使用的是Module migrate;
而在2.x时代,使用的是Evolutions。
本文介绍Evolutions的原理与配置。
2020-08-17 22:10:46 +08
字数:942
标签:
Python
S3协议操作对象存储服务,通常是实现上传下载功能。
但是在某些场景下,程序不具备操作权限,或为了安全原因而缩小权限配置,需要实现无鉴权的上传与下载。
这时可以用S3协议的Presigned URLs来实现无鉴权读写操作。
2020-08-14 21:22:39 +08
字数:2554
标签:
Python
K8s
官方缺乏文档,只有示例。
本文给出Python SDK操作Kubernetes Job的更多示例代码,以及相关解释。
2020-08-06 20:27:24 +08
字数:2382
标签:
Scala
本文从RSA的原理与相关定义出发,介绍SSH的公私钥格式,并给出Scala的生成样例代码。
2020-07-31 22:01:02 +08
字数:1106
标签:
Hugo
Markdown
Mermaid是一个提供绘图功能的JavaScript项目,本文介绍如何在hugo中配置它。
2020-05-31 16:17:14 +08
字数:820
标签:
vscode
Python
在中国,想要下载Visual Studio Code,有时真是一件不容易的事。
本文提供一个Python脚本,自动从中国的azure下载。能略快一些。
2020-05-27 22:21:05 +08
字数:1133
标签:
Docker
有时因为网络原因,比如公司NAT,或其它啥的,需要使用代理。
Docker的代理配置,略显复杂,因为有三种场景。
但基本原理都是一致的,都是利用Linux的http_proxy等环境变量。
2020-05-26 22:45:04 +08
字数:1164
标签:
Linux
利用resolvconf配置DNS服务器,解决ping域名会卡很久的问题。
2020-05-26 20:35:41 +08
字数:309
标签:
Linux
在配置Linux机器时,经常需要以普通用户的身份进行安装软件等操作,需要root权限,经常使用sudo。
而sudo在使用时,需要输入密码,并且只保留15分钟的有效时间。
但是在个人笔记本电脑等线下场景,就显得有些浪费时间。
2020-05-03 22:04:37 +08
字数:1385
标签:
Python
Python的面向对象类继承方面,采用了类似C++多重继承的方式。
本文介绍了MRO,以及在多重继承中使用super()遇到object的一个坑。
2020-04-06 21:08:44 +08
字数:715
标签:
Git
Linux
本文介绍如何从源码编译Git。
2020-04-04 10:35:42 +08
字数:1302
标签:
Linux
Debian/Ubuntu系列(也许得加上所有Linux发行版),官方源自带的软件包,
包括可执行文件、静态链接库、动态链接库,在源中都有对应的源码包。
通过下载对应的源码包,可以离线构建其对应的软件包。
2020-03-31 23:30:16 +08
字数:614
标签:
Python
有时候,一个Python包,在不同操作系统,需要使用不同的依赖包。
比如,pykerberos只支持Linux平台,而Windows平台则需要使用winkerberos。
除了在setup.py里写if else这种丑陋的做法以外,可以使用两种setuptools支持的方式。
2019-11-09 21:52:24 +08
字数:1828
标签:
Linux
折腾Matebook与Deepin的一些记录。
2019-11-06 22:53:07 +08
字数:1335
标签:
Linux
C
本文以一个demo项目,展示了如何利用cmake自带的cpack,打包一个deb。
2019-11-04 21:14:10 +08
字数:400
标签:
Django
默认情况下,Django的Model在删除时,不会删除FileField或ImageField所代表的文件。
本文简单介绍了两种自动删除的办法,并推荐后一种。
2019-09-22 15:48:38 +08
字数:719
标签:
Hugo
开发迭代,版本更新,接口替换,这是常见的事。
Hugo在v0.58.0及之前的v0.55.0,做出了较大调整。
本站的模板多年未动,也仍然受到影响,甚至一度发生首页空白的事件。
2019-09-22 11:01:45 +08
字数:521
标签:
Python
Django
直接用Pylint来检查Django,容易产生误报。
对此,有个Pylint插件pylint-django,可以解决这个问题。
同理,还有一个pylint-flask插件可以解决Flask的问题。
2019-09-07 17:42:05 +08
字数:785
标签:
Python
通过一个匹配多行并计数的案例,展示了re.MULTILINE的用法,和一些Python代码的优化细节。
2019-08-14 07:55:56 +08
字数:2534
标签:
vscode
有时不得不面临在Windows开发Linux项目的场景。
由于种种问题,这会非常不方便。
本文主要介绍Remote - SSH的配置和使用,并且详细描述了网络受限条件下的代理配置。
2019-07-21 15:32:11 +08
字数:870
标签:
Django
本文介绍如何利用Django REST Framework中的自定义Feild,把存储层的datetime转换为float形式的时间戳。
2019-07-17 22:26:32 +08
字数:637
标签:
Django
默认情况下,Django的FileField会把文件存到Media目录下,也就是本地文件系统。
然而在后端多实例情况下,这会出现明显的一致性缺陷。
因此需要把它放到独立的存储服务中,比如S3。
2019-06-25 21:07:35 +08
字数:664
标签:
Test
JavaScript
记录一次core-js引起的Jest运行错误。
2019-04-06 23:27:24 +08
字数:5500
标签:
Git
这里讲的Workflow,其实就是开发模式。
本文会严格地限定内容在分支策略中,通过Git的commit、branch、tag操作,来讲解三种基于代码托管平台的Workflow。
要注意的是,这些都是孤个人的理解,不是业界的共识。
孤希望这些能成为共识,以减轻上层无知给项目开发流程带来的痛苦。
2019-03-30 22:44:05 +08
字数:2562
标签:
Python
也许Python由于2和3的分裂,Python发展出了虚拟环境(virtualenv)的技术。
本文介绍了Virtualenv的安装、使用与工作原理。
2019-03-22 22:27:19 +08
字数:1685
标签:
Nginx
Docker
Docker官方的Nginx镜像,是不支持环境变量修改配置的。
但Docker官方的文档,也给出了解决方案,虽然是个歪招——envsubst。
本文介绍了一个更复杂的真实案例。
2019-03-18 22:57:40 +08
字数:1228
标签:
Nginx
Python
Docker
本文介绍如何利用Nginx(Docker)架设Webdav服务,并用curl以及Python的requests进行简单的使用。
2019-01-28 22:10:05 +08
字数:905
标签:
Python
Test
在Python程序中,用[requests]发起网络请求,是常见的操作。
但如何测试,是一个麻烦的问题。
2019-01-26 21:18:38 +08
字数:928
标签:
CI
Ansible
Jenkins的Agent大概分两种,SSH和JNLP。
本文介绍JNLP的Agent如何用systemd守护启动。
文末提供了Ansible Playbook的示例。
2019-01-12 10:14:30 +08
字数:814
标签:
Hugo
Markdown
有时,展示的代码虽多,却只需要着重强调几行。
本文展示diff和mark两种做法。
2019-01-12 08:51:37 +08
字数:1330
标签:
K8s
Docker
Kubernetes在自动pull私有镜像时,经常出现问题,导致ImagePullBackOff。
这是因为没有正确配置pull权限所致。
2019-01-03 22:35:45 +08
字数:2326
标签:
HTTPS
CA(Certificate Authority或Certification Authority,数字证书认证机构),是负责发放和管理数字证书的权威机构,承担公钥体系中公钥的合法性检验的责任。
其实,每个人都可以当CA。
以下基于Ubuntu来讲如何利用`openssl`来建立一个本地的CA,在命令行签发数字证书,并对证书进行认证。
2019-01-01 12:01:42 +08
字数:1977
标签:
Vim
Python
Test
用Vim写Python,曾是一件流行的事,而今已经变得小众。
实际上,Vim仍然是Python开发的最佳利器之一,在很多方面,甚至优于PyCharm这样的IDE。
本文会基于Vim,介绍Python的风格统一与格式化方法。
并且,还会集成它们到pytest中去。
2018-12-18 21:19:41 +08
字数:3143
标签:
Hadoop
Ansible
本文基于Ubuntu 16.04,介绍如何搭建Hadoop 2.8.5的环境。
2018-11-21 22:22:14 +08
字数:2530
标签:
Python
Python中的多线程、包括协程,由于CPython的GIL(Global interpreter Lock
,全局解释锁)问题,只能实现并发(Concurrency),不能实现并行(Parallelism)。
因此,在并行计算场景,多进程是Python最简单的选择。
2018-11-20 23:09:56 +08
字数:1457
标签:
Docker
已经部署的容器化服务,也不是不需要维护的。
而且,由于生产环境往往有这样那样的严格要求,往往需要些非常规操作。
Image(镜像)、Container(容器)和Volume(数据卷)的迁移,就是一类有用的非常规操作。
2018-11-18 22:36:17 +08
字数:1223
标签:
Docker
一个服务,一般有开发、集成、测试、生产等多个环境。
在不同环境下,往往又需要不同的配置。
这时,一个docker-compose.yml文件就难以应付了。
不过,它通过扩展(Extending),对此提供了支持。
2018-11-17 09:30:39 +08
字数:2656
标签:
Django
Python
对网站、微服务来说,log是比较重要的运维工具。
Django的log,主要是复用Python标准库中的logging模块,在settings.py中进行配置。
此外,也提供了一些独特的扩展。
2018-11-14 22:02:58 +08
字数:1970
标签:
AI
Docker
现如今,ModelServer已经开始大行其道。
以前训练了一个模型,还必须得用Flask、Falcon手写一个Server的时代,快要一去不复返了。
TensorFlow作为一个流行的AI框架,早已自己解决ModelServer的问题。
并且发展迅速,目前已经成为了可用于生产环境的高性能解决方案。
2018-11-10 10:06:06 +08
字数:1990
标签:
Docker
Docker Swarm是Docker公司开发的容器集群服务。
从1.12.0版本开始,已经是Docker安装后自带的一部分(捆绑软件)了,又称为Swarm Mode,无需额外安装。
与Kubernetes相比,Docker Swarm是一个简单的软件,似乎不堪大用。
但是它与docker-compose兼容的优点,可以弥补一切。
对于没有集群使用经验的小白,用Docker Swarm起步,是一个很好的选择。
2018-11-07 22:36:03 +08
字数:843
标签:
Linux
Docker
本文介绍了如何安装、配置nvidia-docker2。
2018-11-05 23:03:19 +08
字数:861
标签:
Linux
Cntlm是一个HTTP二级代理软件。
它主要的作用,是在能代理上网的前提下,给这个代理再做一个代理,提供给更多的下级用户。
下级用户不需要、也不可能知道代理的账户密码,这样既保障了安全、又实现了方便。
2018-10-28 09:18:37 +08
字数:1976
标签:
Python
因为Python系缺失一个Wizard,也缺少项目结构的标准,于是出现了cookiecutter。
这是一个项目生成器,也可称为引擎,因为它只完成了最核心的功能。
真正决定一个项目长什么样的模板,却可以自由定制。
也因此,它能生成任何一种语言的项目。
2018-10-11 22:09:05 +08
字数:1221
标签:
Ansible
Linux
Ansible是一个自动化运维工具。
它能批量配置系统、部署软件,也能编排更复杂的运维任务,如连续部署、零停机时间滚动更新等。
2018-09-22 12:06:37 +08
字数:1357
标签:
Linux
本文介绍了利用PostgreSQL建立一个master,一个或多个slave的Hot Standby的Replication机制。
2018-09-05 19:39:32 +08
字数:708
标签:
AI
本文记录了目标监测相关的Precision、Recall、IoU、AP、mAP等入门级概念的定义。
2018-08-26 20:02:41 +08
字数:924
标签:
Windows
Mac下有Dash,而Windows和Linux下,只能用Zeal。
这是离线文档阅读器,可以在网络状态不佳,甚至断网的情况下,查阅一些编程文档,提高开发效率。
其高效的本地搜索方式,让文档的查阅变得轻松写意。
2018-08-24 23:18:30 +08
字数:1051
标签:
Windows
作为一个程序员,在落伍的Windows环境下工作,是一件令人无奈的事。
运行效率低、编码奇特、换行符有异、命令行难用、没有包管理器……等等,有Chocolatey!
2018-08-19 21:23:50 +08
字数:987
标签:
Python
atexit是标准库中一个简单的小模块,作用是提供退出的回调。
如果有什么事是在退出时需要做的,就可以使用它。
但仅限于比较简单的程序。
实际上,最好不要使用它。
2018-08-19 21:18:27 +08
字数:667
标签:
Linux
Windows
本文介绍如何在Linux服务器上假设Samba服务,给Windows与Mac共享文件。
Samba有方便的一面,也有不安全的一面,还是局域网内使用最合适。
2018-07-26 21:27:35 +08
字数:974
标签:
Docker
Linux
本文基于Ubuntu的xenial版本,介绍如何通过下载deb来进行安装。
2018-05-23 17:06:51 +08
字数:2321
标签:
Java
Test
一些函数式的接口,给定输入、期待特定输出,没有太多副作用,特别适合参数化测试(Parameterized Test)。
JUnit5提供了多种参数化测试的形式,本文着重介绍CsvSource和CsvFileSource。
2018-04-26 17:34:39 +08
字数:1167
标签:
Python
手动管理Python包的版本号一段时间后,寻求自动化的手段,是自然而然的。
2018-04-23 20:54:15 +08
字数:1541
标签:
Python
Test
pytest不仅是一个功能强大的测试框架,同时也是一个插件化的测试平台。
2018-03-30 15:03:43 +08
字数:1872
标签:
Java
Test
JUnit5已经从一个孤立的jar库,变成了一个平台(一群jar)。
本文基于Gradle的4.x版本,介绍其初始化配置与使用。
2018-03-28 18:45:13 +08
字数:1987
标签:
Hugo
Markdown
有时候,会有需要在网页中展示数学公式。
与代码高亮不同,Hugo本身是不支持渲染数学公式的。
官方文档的MathJax使用方案有一些问题,本文提供的方案胜于官方。
2018-03-23 17:18:29 +08
字数:1538
标签:
Python
从一个标准的Python环境,到一个可以做数据分析的环境,还需要有一些准备工作。
本文就是记录这些准备工作,便于查阅。
2018-03-20 16:17:05 +08
字数:1883
标签:
Python
C
SWIG的一个优点是,受到了distutils/setuptools的原生支持。
在setup.py文件中,可以很方便地直接把*.i文件作为源文件进行配置,而不用手写编译脚本。
本文通过一个Demo项目,来讲解如何在setup.py中对SWIG进行配置。
2018-03-07 16:23:39 +08
字数:3234
标签:
Android
Linux
在进行个人的Android开发环境准备时,通过Android Studio可以在一个漂亮的图形界面,安装、配置Android SDK。
但它也可以通过纯CLI的方式完成,有时反而更方便。
2018-03-06 18:10:30 +08
字数:1226
标签:
Python
C
在Python项目中使用C/C++的代码,除了少数场景,其它都有数据交换的需求。
而C++的vector、map等,则是常见的数据容器。
本文介绍如何利用SWIG,在Python中调用STL的string、vector和map。
2018-03-01 10:52:14 +08
字数:845
标签:
Python
C
本文介绍了一个在利用setuptools的Extension来编译C++代码时,会出现的-Wstrict-prototypes警告,及其解决方案。
2018-02-13 23:54:09 +08
字数:2030
标签:
Python
Test
单元测试的条件有限,在测试过程中,有时会遇到难以准备的环境。
比如,与服务器的网络交互、对数据库的读写等。
而mock的技术,就是在测试时,不修改源码的前提下,替换某些对象,模拟测试环境。
2018-02-09 14:16:53 +08
字数:3400
标签:
Android
Ninja
从Android 7.0开始,默认使用ninja进行编译。
从Android 8.0后,默认启用Soong、Android.bp。
在开发过程中,以前最经常使用的mm、mma等单模块编译功能,现在变得及其耗时。
本文介绍如何用ninja命令,来提高单模块编译效率,缩短开发流程(到当年没有ninja的状态)。
2018-02-05 12:48:19 +08
字数:1271
标签:
Linux
在使用Linux系统作为开发环境时,偶尔会遇到需要使用最新版软件的问题。
然而,如果使用Debian的stable或Ubuntu的LTS时,却不能用apt简单如愿。
这时就需要有一种用户级的包管理器,可以安装最新版软件,类似MacOS X的Homebrew。
SDKMAN!是一个不错的尝试,至少对一些JVM的常用软件来说。
2018-01-28 23:53:18 +08
字数:2870
标签:
Python
Test
会写测试,和写好测试,是差距很大的两种境界。
本文介绍pytest中setup与teardown的写法,算是单元测试的进阶内容吧。
2018-01-26 10:58:17 +08
字数:1263
标签:
Python
记录一下《蛇宗三字经》,以便自省。
2018-01-25 17:57:10 +08
字数:2124
标签:
Docker
本文简单介绍Docker中volume的权限问题,以及通过定制ENTRYPOINT的一种简单解决方案。
2018-01-22 16:35:09 +08
字数:1676
标签:
Python
C
在Python代码中调用C/C++代码,这需求是比较常见的。
毕竟,当代软件世界的基础设施领域是C语言的天下,很多开发工作不可避免地要与它打交道。
而C++则是家族的嫡长子,也占据了一些不可替代的位置。
本文着重介绍ctypes与SWIG,也会提一下其它方案。
2018-01-19 00:08:25 +08
字数:2310
标签:
Python
Test
pytest,曾用名py.test。
它能兼容unittest与nose的测试代码,写法简洁,并且还有自己的独到之处。
本文仅介绍pytest测试最基本的写法,以及如何在一个Python项目进行初始化。
2018-01-13 22:45:56 +08
字数:2004
标签:
GitHub
Python
在GitHub上做CI,大哥是Travis。
不过,Travis只支持Ubuntu和Mac OS X环境。
这就给二哥AppVeyor留下了生存空间,它专门负责做Windows环境的CI,并且对Windows生态下的.NET、Azure等,提供了很好的支持。
本文介绍如何用AppVeyor来做纯Python项目的集成测试。
2018-01-11 18:09:55 +08
字数:1711
标签:
Python
C
跑通SWIG的example代码,比Boost.Python的HelloWorld要简单一些。
不过,对不熟悉gcc的人来说,还是很费劲。
本文基于官方教程,补充了一个可行的Makefile。
2018-01-11 14:19:51 +08
字数:1578
标签:
Python
C
对于C/C++开发经验不多、或者只有Python经验的人来说,要跑通一个Boost.Python的HelloWord程序,是一件不容易的事。
本文介绍如何避开bjam,用Makefile打通最不容易的那个环节——编译。
2018-01-05 16:17:17 +08
字数:2127
标签:
Python
在setup.py中,一般需要要调用setup()函数。
这个函数有诸多参数,其中一类是require,指定了一些需要的Python包。
2018-01-04 17:10:26 +08
字数:656
标签:
CSS
对HTML的footer,有一种常见需求是,要固定在页面底部。
这里说的『固定』,并非普通的放在页面内容的最下方,而是在页面内容高度不足时,仍然显示在页面底部。
2018-01-03 17:48:46 +08
字数:1474
标签:
Python
Git
有时,需要做复杂的Git操作,并且有很多中间逻辑。
用Shell做复杂的逻辑运算与流程控制就是一个灾难。
所以,用Python来实现是一个愉快的选择。
这时,就需要在Python中操作Git库。
2017-12-21 17:42:39 +08
字数:1810
标签:
Git
数据库的备份与还原,是网络服务的重要一环。
本文以SQLite为例,介绍一种用Git进行数据库增量备份的野路子。
2017-12-21 14:50:42 +08
字数:941
标签:
Git
在一些条件下,不方便使用ssh协议来获取、更新Git库,而使用http/https协议又需要输入账户、密码。
本文介绍了免输入更新远程Git库的几种方式,并包括如何统一托管鉴权文件。
2017-12-19 18:17:39 +08
字数:2312
标签:
Android
虽然VTS Dashboard是专为GAE而开发的,但是仍然有办法在非GAE环境下进行开发与运行。
本文介绍如何在普通的Linux环境下运行一个VTS Dashboard,并且进行数据上传。
这只是一次评估性质的尝试,结果以失败而告终。
2017-12-19 10:23:09 +08
字数:793
标签:
Git
有时候有这样的需求:
一个Git库是在某个位置开发、维护的,比如国外的GitHub,但是又希望同步更新到另外一个位置,比如国内的Gitee。
这时,就需要对Git库进行全量同步。
本文以android.googlesource.com上的platform/test/vts/为例,介绍如何进行全量同步。
2017-12-04 13:59:52 +08
字数:3994
标签:
Linux
近期,孤的Debian办公电脑——ThinkPad T430,经常死机。
直接原因,系统日志显示,CPU温度过高;操作原因,看视频、视频通话。
连续跑满CPU数小时(编译Android)都不会出现CPU温度过高,看视频却出问题。
因此,除了硬件老化以外,孤认为这是显卡驱动问题,所以折腾了一下Nvidia显卡驱动的安装。
2017-11-30 20:47:11 +08
字数:1192
标签:
Linux
Ubuntu上介绍Pidgin的教程比较多,其实Debian也类似,都非常简单。
本文除了介绍Pidgin,也介绍了Lync与Skpye for Business的相关信息。
此外,还提到了一个Linux可用的同类付费软件——Sky。
2017-11-22 17:19:46 +08
字数:788
标签:
Django
本文简单记录如何在PyCharm中,添加Django的测试执行入口。
这么简单的事,之所以要记一篇,是因为其中有个小陷阱。
2017-11-22 15:29:30 +08
字数:1543
标签:
Python
读、或者说解析XML的需求很常见,而写、或者说生成XML的需求就比较少见。
本文简单介绍如何使用minidom,生成一个XML文件。
2017-11-10 10:18:10 +08
字数:1891
标签:
Docker
本文对Dockerfile中的ENTRYPOINT与CMD进行了简单的介绍和辨析。
2017-11-03 19:03:10 +08
字数:2202
标签:
uWSGI
Nginx
Django
有个常见需求是这样的:一个Django应用,在开发时,URL是以`/`为根目录的;而部署时,需要给它一个前缀,比如叫`/prefix/`。
它的使用场景是,在一个域名里托管多个应用,它们仅以前缀区分。
2017-10-27 18:23:28 +08
字数:4292
标签:
Django
本文记录孤近期的一件脏活。
之前已经把一个1.3的老旧Django应用,升级到了1.4。
现在又要继续,把它从1.4升级到1.11。
这是一次升级历险记!
2017-10-22 18:14:10 +08
字数:2311
标签:
Web
本文简单评估了AdSense、百度联盟、淘宝联盟这几款流量变现产品,即挂广告得收益的东西,并整合了一些相关链接。
2017-10-17 17:50:58 +08
字数:2437
标签:
Android
本文对VTS做一个简单介绍,内容包括环境准备、编译、运行、新增测试模块、结果展示等,广泛而不深入。
文中,提供了丰富的链接,以便于查阅官方内容(自备墙梯)。
2017-10-03 00:10:57 +08
字数:1915
标签:
Hugo
Taxonomy,即分类,是Hugo中一个很有用的页面管理功能。
本文基于Hyde这个Theme,介绍如何在Hugo中定制、使用Taxonomy。
2017-10-02 00:11:56 +08
字数:1257
标签:
GitHub
CI
孤一年前曾撰文《从Travis回GitHub》,描述如何配置Travis,让其自动根据Tag,发布文件到GitHub Release。
本文介绍一种更简单的办法。
2017-09-25 18:31:52 +08
字数:1175
标签:
Android
Ninja
在Android 7.0以后,Ninja成为了Android底层真正控制编译流程的工具。
直接使用ninja命令,而非make,可以在某些情况下,提高编译验证、debug的效率。
本文介绍安装ninja的五种方法。
2017-09-14 16:28:51 +08
字数:1852
标签:
Nginx
HTTPS
本文介绍了如何在Nginx中配置HTTPS与HSTS,以及进行一些简单的优化。
2017-09-12 16:04:18 +08
字数:2673
标签:
HTTPS
本文记录一些与常用证书相关的概念。
把一个网站从HTTP,配置成HTTPS,了解这些概念就够了。
2017-09-12 00:54:08 +08
字数:1306
标签:
Aliyun
HTTPS
本文简单记录了在阿里云申请免费的DV SSL证书、配置HTTPS的过程。
2017-09-01 16:15:56 +08
字数:2104
标签:
Nexus
LDAP
本文介绍如何在界面上配置Nexus Repository OSS 3.x的LDAP,以及记录一些坑。
2017-08-29 15:17:53 +08
字数:1809
标签:
Nexus
PyPI
本文简单介绍Nexus Repository OSS 3.x的功能、安装、实现、以及与Pro版本的比较。
2017-08-28 10:35:21 +08
字数:3757
标签:
Python
PyPI
Nexus
既然已经有了pypi.python.org这个官方源,为什么还需要一个本地源、私有源、企业源?
本文评估了多个PyPI服务的特性与优缺点,并且给出了一些建立本地PyPI服务的建议。
2017-08-17 17:55:58 +08
字数:3067
标签:
Android
Ninja
本文简单介绍Android Nougat(7.0)中引入的Android.bp,及其相关工具链。
2017-08-16 17:16:27 +08
字数:2222
标签:
Ninja
Ninja是一种类似GNU make的编译系统。
就像make有Makefile,它也有自己的编译配置文件。
相对来说,Ninja文件没有分支、循环的流程控制,本质上就是纯粹的配置文件,所以要比Makefile简单得多。
本文介绍Ninja文件的独特语法。
2017-08-15 16:49:42 +08
字数:2671
标签:
Android
Makefile
Ninja
如果说Makefile是一个DSL,那么Ninja就是一种配置文件。
本文简单介绍Android中的Ninja。
2017-08-14 15:20:36 +08
字数:1621
标签:
Android
Makefile
Ninja
kati是Google专门为了Android而开发的一个小项目,基于Golang和C++。
目的是为了把Android中的Makefile,转换成Ninja文件。
2017-08-09 16:11:24 +08
字数:3945
标签:
Android
Makefile
Android.mk作为Android单模块编译的Makefile,有其独特的写法。
本文从原理、源码的角度触发,介绍Android.mk怎么写,以及如何查找更多信息。
2017-08-08 15:47:03 +08
字数:3352
标签:
Android
Makefile
本文基于AOSP的android-6.0.1_r9分支,介绍Android平台编译系统中的Makefile。
2017-08-04 18:26:33 +08
字数:1157
标签:
Android
Makefile
make命令的Target,由Makefile决定。
本文记录一些Android(8.0.0)平台项目中常用的make目标。
2017-08-02 13:41:27 +08
字数:3109
标签:
Makefile
本文仅介绍Makefile最核心的东西,以及一些个人领悟。
2017-07-31 14:38:53 +08
字数:793
标签:
Hugo
Markdown
每个段落首行缩进两个字,是中文文章排版的默认规则。
本文基于Hyde主题,介绍如何在Hugo中实现这一点。
2017-07-26 10:58:36 +08
字数:2134
标签:
Bash
本文介绍Bash中的stdout与stderr,并且在打印与重定向时如何使用它们。
2017-07-24 18:09:52 +08
字数:1211
标签:
Django
本文介绍了Django项目从1.3.7升级到1.4.22常见的四个错误。
2017-07-24 15:56:49 +08
字数:1132
标签:
Python
从C语言家族,进入Python世界的程序员,当心都被Python中的and与or骗了!
2017-07-24 15:29:43 +08
字数:818
标签:
Android
在使用Jack/Jill工具链编译时,禁用Jack Server。
2017-07-20 18:02:52 +08
字数:1277
标签:
Python
本文介绍了Python中的bool类型,以及相关的一些概念。
2017-07-19 11:03:55 +08
字数:1213
标签:
uWSGI
Django
用uWSGI来单独运行一个Django应用,有一个static文件丢失的大坑。
本文介绍如何出坑。
2017-07-12 16:00:46 +08
字数:696
标签:
Linux
原因未知,过程惊险,后果严重——记一次Remmina的暴走。
也记一行重复180GB的log:
Jul 12 14:10:48 debian remmina.desktop[22800]: WaitForSingleObject: unknown handle type 7160553448757878638
2017-07-08 23:02:23 +08
字数:1453
标签:
Python
本文以Python 3来介绍作用域、LEGB规则、global与nonlocal关键字等内容。
2017-07-06 18:18:52 +08
字数:815
标签:
Android
Android的Jack工具链的问题,比优点要多。
而且,既然在未来已经被废弃,现在也可以禁用它。
2017-07-06 10:35:19 +08
字数:1809
标签:
uWSGI
Django
本文是介绍如何直接使用uWSGI来运行Django应用。
潜台词是,不使用Nginx或Apache。
2017-07-05 09:52:08 +08
字数:1138
标签:
Hugo
Web
本文简要介绍了在Hugo中使用Google Analytics的必要步骤。
2017-07-01 23:52:31 +08
字数:1030
标签:
Python
Python中的else设计,令人赞叹!
2017-07-01 22:21:50 +08
字数:858
标签:
Vim
Markdown
Hugo
本文介绍Vim写Markdown的基本姿势,以及为[Hugo]做出的调整。
2017-06-29 23:16:20 +08
字数:1354
标签:
Hugo
Web
在中国互联网混,多少还是要仰仗百度的支持。
本文根据百度相关教程,以本站为例,介绍了如何使用百度站长的链接提交与百度统计。
2017-06-28 15:45:02 +08
字数:1542
标签:
Docker
uWSGI
本文不仅介绍如何在Docker镜像python:alpine中安装python-ldap模块,
还展示了一种更好地制作Docker镜像的方法。
2017-06-28 11:28:53 +08
字数:667
标签:
Python
LDAP
Docker
本文介绍如何在Docker镜像python:alpine中安装python-ldap模块,并且尽量保持镜像的身材。
2017-06-27 17:06:16 +08
字数:832
标签:
Linux
在更新Debian到Stretch后,孤的网易云音乐离奇消失了。
重装时发生了一些麻烦事,这里记录一下。
2017-06-27 14:55:47 +08
字数:890
标签:
Linux
2017年6月17日,Debian 9.0,代号Stretch,正式发布。
本文记录了从Jessie到Stretch的升级过程。
2017-06-26 17:42:13 +08
字数:554
标签:
Linux
记录了两个在`apt-get update`时发生的的问题,及其解决方案。
2017-06-26 15:45:55 +08
字数:417
标签:
Docker
不要根据官方文档瞎折腾,直接用官方或非官方的脚本来安装就好。
2017-06-26 12:51:05 +08
字数:1947
标签:
Docker
Docker的容器(container)、镜像(image)、数据卷(volume),
都是由daemon托管的。
因此,在需要清理时,也需要使用其自带的手段。
本文介绍一些Docker的清理技巧,以及它们的来源。
2017-06-25 10:42:28 +08
字数:934
标签:
Docker
Hugo
孤原本为了Hugo,专门制作了一个Docker。
然后却发现,这东西不适合部署在生产环境。
2017-06-24 23:50:50 +08
字数:424
标签:
Hugo
孤想要在页面里显示日期的地方,同时显示字数。
于是,孤找到了Hugo的所有模板变量。
2017-06-24 21:50:29 +08
字数:1625
标签:
Hugo
Markdown
本文介绍如何在Hugo中使用highlight.js,来支持代码高亮。
2017-06-23 18:12:07 +08
字数:608
标签:
Hugo
在使用`hugo server`这种方式建立网站,可能会出现错误的绝对URL。
生成静态网站不当,也可能有相同问题。
这时,只有首页能访问,并且样式消失,所有链接失效。
2017-06-22 23:36:54 +08
字数:986
标签:
Hugo
作为Hugo的一个Theme,Hyde的优点是简约,而缺点则是首页太重。
本文介绍如何以尽量少的修改,对Hyde进行了必要的定制。
并且,还展示了修改的思路来源。
2017-06-22 23:23:08 +08
字数:729
标签:
Hugo
本文以Hyde为例,介绍Hugo主题的使用方法,以及如何进行简单的定制。
2017-06-21 23:04:00 +08
字数:786
标签:
Hugo
本文介绍Hugo中的扉页(Front Matter)与原型(Archetypes),以及如何简单地使用它们。