记第一卷胶片

作者:matrix 发布时间:2019年5月31日星期五 分类:零零星星

对于胶片感兴趣想尝试主要源于腹肌蓝波湾的XT20,虽然XT20之前没有摄影的经历 不过还是能感受到一丁点的胶片模拟复古静谧的感觉。
相机用的VILIA Soviet,两个月前ebay海淘的前苏联造物。这个相机需要全部手动操作,估焦、测光这些我都对比手上的xt20进行拍摄,最终效果还算不错,个别照片有点糊和低曝。总体来说很满意啦,毕竟第一次用这玩意拍。不错 不错 以后还得缴学费。 :mrgreen:
胶卷是淘宝买的iso200柯达彩色135,选的最便宜的一个18块一卷的。起初会担心过安检的X光会让胶片曝光,实际上测试完全没问题,或许iso高的胶卷会有影响。
把胶卷冲洗为电子档的照相馆还真不好找,在成都听朋友说环球中心大概25可以弄。在昆明问了好多家照相馆都不可以,最后找到的是云南师大西南联大校区正门口的大红门照相馆可以冲洗,30块钱搞定等了2周。

总体效果非常满意,浓重的复古感。毕竟手动估焦还不是很熟悉,曝光也是。 🙈

第一卷胶片

1

图片4629-记第一卷胶片

图片4628-记第一卷胶片

图片4627-记第一卷胶片

图片4626-记第一卷胶片

图片4625-记第一卷胶片

图片4624-记第一卷胶片

图片4623-记第一卷胶片

图片4622-记第一卷胶片

图片4621-记第一卷胶片

图片4620-记第一卷胶片

图片4618-记第一卷胶片

ssh/git pull 无密码登录 自动拉取

作者:matrix 发布时间:2019年5月28日星期二 分类:Linux

测试需要S,C两台服务器,我需要C服务器ssh登录到S服务器进行操作。
目的:服务器C端使用命令git pull无密码登录自动从服务器S拉取最新代码。

客户端生成RSA密钥

服务器C属于客户端角色,需要生成本地服务器的rsa密钥对,然后价格公钥发送到服务器S。
登录服务器C

$ cd ~
$ ssh-keygen -t rsa
#后面就默认回车

默认会在 ~/.ssh中生成id_rsa.pub,id_rsa这两个密钥对。

发送公钥

我之前是手动尝试把公钥文本打来粘贴到服务器S,然而ssh登录的话还是要密码验证。测试发现最好是使用ssh-copy-id命令进行操作。
还是在服务器C进行操作

$ ssh-copy-id -i ~/.ssh/id_rsa.pub login_user@HOST -p 22

说明:
ssh-copy-id命令可以快速的将公钥复制到远程主机
-i 指定公钥路径
login_user 为登录的用户名
HOST 为登录的远程服务器S的地址,域名/IP均可
-p 指定服务器S的ssh端口号

命令输入后应该会让你输入login_user用户的密码,若出现and check to make sure that only the key(s) you wanted were added.则表示公钥应该添加成功。
以免出现问题,现在可以去服务器S端看看,指定用户名login_user的文件/home/login_user/.ssh/authorized_keys会有客户端的rsa公钥。

登录测试

在服务器C操作
测试登录:

ssh login_user@HOST -p 22

若登录成功 BINGO!

其他问题

如出现还是需要密码的情况:

1.需要确定/etc/ssh/sshd_config配置文件中是否允许RSAAuthentication

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

2.用户目录权限问题

.ssh父目录的权限是755(我的是/root),.ssh目录权限是700,authorized_keys文件 600

参考:
https://blog.csdn.net/alifrank/article/details/48241699
https://blog.csdn.net/chengyuqiang/article/details/78432675
https://blog.csdn.net/b_x_p/article/details/78534423
https://www.cnblogs.com/0xcafebabe/p/5234678.html

偏偏firefox+SQLite Manager插件

作者:matrix 发布时间:2019年5月26日星期日 分类:零零星星

SQLite Manager插件

SQLite Manager是以前@小飞推荐的sqlite管理的插件,当初觉得这个好精简,竟然可以以火狐插件的形式对数据库进行管理,堪称高级货!去年发现因为firefox版本更新不能使用了,现在捡起来是因为临时想对sqlite文件进行查看编辑操作,想起了这个非常轻量级的插件,完全能胜任我的需求,并且我还不想用其他不熟悉的DB管理软件。看到插件被下架、版本不支持,那这次偏要下载使用旧版本的火狐浏览器来解决这个问题。

https://addons.mozilla.org/zh-CN/firefox/addon/sqlite-manager/

插件页面
这个插件已经被mozilla下架了,lazierthanthou作者有github项目地址。
GitHub:https://github.com/lazierthanthou/sqlite-manager

插件下载

不过可以通过其他方式找到:
下载页面:https://addons.thunderbird.net/en-us/seamonkey/addon/sqlite-manager/

>> cache download SQLite Manager 0.8.3.1

firefox版本问题

youtube上有人说可以用ESR版本来解决插件不能使用的问题,然而进过测试无法使用。最新版本的ESR是基于火狐60.7,对于SQLite Manager插件已经无能为力。
有说firefox57以上版本已经把sqlite引擎去除,所以如果硬是要用那就必须降到支持的版本,理论上小于57应该是可以的。

Firefox 历史版本:
https://ftp.mozilla.org/pub/firefox/releases/

我这里测试使用52.9.0esr版本,完美运行。

PEACE~

pycharm+pipenv虚拟环境作开发和依赖管理

作者:matrix 发布时间:2019年5月23日星期四 分类:Python

之前使用vagrant来在虚拟机环境中把所有Python模块安装,但是也有一些问题。比如个别时候连接到vagrant虚拟机内部比较慢,还有就是pip3 install安装模块有时候会失败,不能更好的管理依赖包分发项目。

每个项目模块分开管理安装,不会污染本地系统的全局环境,测试和生产的模块都可以用这个来管理分发。

pipenv会在项目中创建相关联的虚拟环境信息以及依赖信息pipfile文件,一起开发的同事可以执行pipenv install操作来安装以及初始化好的pipenv项目,系统会默认安装所需要的依赖环境。

测试环境:pycharm 2018.3.5 for MacOS

安装pipenv

$ pip3 install pipenv

初始化项目

项目目录中执行操作

$ pipenv --python 3.7#指定项目运行python版本 需要系统已经安装好该版本

会创建python虚拟环境所在目录

✔ Successfully created virtual environment!
Virtualenv location: /Users/用户名/.local/share/virtualenvs/untitled-RaU-esYo

查看虚拟环境信息:

$ pipenv --venv

安装模块

$ pipenv install requests
#也可以指定安装版本 :pipenv install requests==2.22

指定开发环境才安装的模块

$ pipenv install --dev nose2#安装测试环境才用的开发包

项目克隆

项目需要让其他同事克隆就可以直接install来操作

$ pipenv install
#或者使用 pipenv install –dev#安装所有依赖项,包括测试开发包

pycharm配置

1.添加python解释器

2.选择Pipenv 虚拟环境
Base interpreter为本机系统中的python解释器路径
Pipenv executable表示pipenv,命令的环境变量路径

 

3.之后在项目下选择刚刚新建好的Pipenv名称

 

测试运行

配置好pipenv后直接点击右上角的运行图标即可看到命令行窗口的显示

pipenv命令收集

pipenv shell #进入虚拟环境命令行
pipenv --venv#查看虚拟环境路径
pipenv --py#获取虚拟环境python解释器路径
pipenv graph#查看依赖关系
pipenv run python Main.py#使用Pipenv虚拟环境运行Main.py

报错

  • 克隆pipenv环境的时候报错OSError: mysql_config not found
    centos下确保安装mysql-devel等依赖环境
$ yum install mysql-devel gcc gcc-devel python-devel

如果已经安装则考虑是否为软连接不存在导致的not found

ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config

参考:
一条命令解决mysql_config not found
https://blog.csdn.net/weiliu0626/article/details/8444644

  • 若debug调试失败显示类似的红色进程报错
pydev debugger: process 37807 is connecting

删掉项目中隐藏的的.idea目录,然后重启pycharm即可调试变量

参考:
https://www.jianshu.com/p/00af447f0005

https://www.jetbrains.com/help/pycharm/pipenv.html

https://intellij-support.jetbrains.com/hc/en-us/community/posts/205967904-pydev-debugger-is-not-connecting

https://blog.51cto.com/2681882/2164134

Django模板引擎中变量作为属性值调用

作者:matrix 发布时间:2019年5月16日星期四 分类:Python 零零星星

Django默认模板中如果想要调用变量的属性值只能点.字符,也就是value.arg,等同于value["arg"]的调用,不能使用方括号的语法操作,这样的就会导致无法取value[arg]这种变量属性值。

解决办法

1.更换模版引擎。
2.使用自定义template filters模版过滤器

使用模版过滤器setup

1.创建templatetags目录

在项目的模块目录下创建templatetags文件夹(和路由配置urls.py同级)
目录下需要创建__init__.py空白文件

2.创建过滤器py文件

自定义过滤器:dict_value
val.py

from django import template
register = template.Library()

@register.filter(name='dict_value')
def dict_value(value, arg):
    """
    模版变量过滤器 用于调用变量属性的值
    如:$value[$arg]
    :param value:
    :param arg:
    :return:
    """
    return value[arg]

3.模版中使用

模版中需要load操作:

{% load val %} #载入过滤器文件val.py
{{ params_data|dict_value:item|dict_value:'title' }}#使用过滤器

如上调用形式等同于:
params_data[item]['title']

参考:
https://www.v2ex.com/t/66772
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
https://blog.csdn.net/lagelangzhi/article/details/54620061

PEACE~