记第一卷胶片

作者: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-记第一卷胶片

偏偏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~

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~

macOS+Proxifier实现终端的外网访问

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

有时候使用终端clone操作或者其他install访问外网的时候会造成超级延迟,以至于无法使用,网络需要符合国情,毕竟有个大号防火墙。使用Proxifier可以间接实现全局的外网访问。
windows端可以使用SSTap

测试环境:macOS + ss + Proxifier

方案1.使用Proxifier

Proxifier下载:http://www.proxifier.com/download/

注册软件:

用户名称随意:Anything
注册码:P427L-9Y552-5433E-8DSR3-58Z68
  • 设置本地代理端口和地址
    添加本地代理Proxies
    图片4501-macOS+Proxifier实现终端的外网访问

  • 添加Rules规则
    我这里只是需要给终端shell设置外网访问所以添加一个shell程序就好了
    图片4503-macOS+Proxifier实现终端的外网访问

程序添加完成之后,下方的Action选择刚刚添加的Proxies,点击ok

之后控制台界面就能看到程序访问外网的情况
图片4504-macOS+Proxifier实现终端的外网访问

终端测试:

$ curl https://ip.cn

方案2.设置全局export变量

$ `vi ~/.bash_profile` #编辑环境变量配置
#添加如下内容

# proxy list
alias proxy='export all_proxy=socks5://127.0.0.1:1086' #需要开启ss
alias unproxy='unset all_proxy'

应用

$ source ~/.bash_profile

之后命令行中使用proxyunproxy来手动开启和关闭代理

参考:
https://www.v2ex.com/t/269997

终端使用 Shadowsocks 的代理方案:Proxifier


https://www.ljjjustin.xyz/2018/03/21/macos-system-proxies/

Proxifier 2.14.1 – Access Internet apps via a firewalled/proxied network

http://yangzq007.com/2017/03/29/%E7%BB%88%E7%AB%AF%E7%BF%BB%E5%A2%99/

新浪微博 URL Scheme 收集

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

新浪微博ios app的scheme 测试可用

#打开首页
sinaweibo://gotohome

#新发微博
sinaweibo://share?content=[微博内容 URL Encode]

#消息页面
sinaweibo://discover

#指定搜索
sinaweibo://searchall?q=[URL Encode]

#微博扫一扫 
sinaweibo://qrcode

#微博详情页
如https://weibo.com/1613133581/HlVM69RR9中mblogid为HlVM69RR9

sinaweibo://detail?mblogid=[mblogid]

#指定用户的全部微博
containerid可以根据https://m.weibo.cn/u/1613133581中查找

sinaweibo://cardlist?containerid=[containerid]

#和指定用户聊天
sinaweibo://messagelist?uid=[uid]

#指定用户资料页
sinaweibo://userinfo?uid=[uid]

参考:
https://www.ryannn.com/archives/url-schemes-share
https://www.v2ex.com/t/163755
https://www.jianshu.com/p/d64b9be5ad64

个人微博插件页面:
http://service.weibo.com/widget/widget_blog.php?uid=1613133581&height=1700&skin=wd_01&showpic=1

pycharm中vagrant的基本配置使用

作者:matrix 发布时间:2019年3月14日星期四 分类:零零星星

使用vagrant做开发可以将环境全部运行于虚拟机中,避免本机安装各种环境模块造成问题也是为了完全和宿主机分离。

测试:macOS + pycharm + Django项目

配置vagrant的初始化文件

pycharm设置中搜索Vagrant
配置vagrant的基本运行程序
图片4467-pycharm中vagrant的基本配置使用
Vagrant executable为Vagrant程序路径
Instance folder表示Vagrant box配置的初始化目录。我这里也就直接将就以前init的目录。默认位置为当前项目路径
设置好就可以启动虚拟机环境:tools->Vagrant->up
打开虚拟机ssh:tools->Start SSH Session

配置python解释器

点击右上角绿色▶️箭头或者Control+R按键运行,提示失败是由于使用vagrant项目代码是在本机修改编写在虚拟机中运行,默认的项目启动会调用本机的python环境来运行,项目中的所有module亦同 所以修改下运行的python环境。
pycharm设置中搜索Project Interpreter进行配置修改
图片4468-pycharm中vagrant的基本配置使用

点击右侧设置图标add新加一个vagrant环境的Interpreter
图片4471-pycharm中vagrant的基本配置使用
添加完成后重新选择新加的虚拟机中的python解释器
图片4472-pycharm中vagrant的基本配置使用
之后列表中的可用包名就都是虚拟机中已经安装了的。重新run也就会成功执行。

配置run

如果运行Django项目还需要给简单编辑一下运行选项Edit Configurations...
图片4473-pycharm中vagrant的基本配置使用
打开之后选择新添加的Pyhton Interpreter,设置Parameters为Django项目的运行参数runserverrunserver 0.0.0.0:8080

图片4474-pycharm中vagrant的基本配置使用

然后▶️运行项目就OK了。

ssh://vagrant@127.0.0.1:2222/usr/bin/python3.6 -u /pythonWork/okex/okex/manage.py runserver 0.0.0.0:8080
Performing system checks...
...
March 14, 2019 - 07:56:04
Django version 2.1.7, using settings 'okex.settings'
Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.

解决Unresolved reference错误

编辑器很多提示导包的Unresolved reference 'XXX' more....错误 在于py文件目录定位错误导致的 需要手动修改下
重新选择import倒包的包名py文件的目录即可
图片4475-pycharm中vagrant的基本配置使用
设置项目的Project Structure,先选中报错 提示的python文件的目录,再点击上面的Sources,之后右侧的Source Folders就会出现刚刚选中的目录,保存应用即可。
若没有马上生效需要清空缓存且重启File->Invalidate Caches / Restart...,之后编辑器也就不会提示导包的错误提示Unresolved reference

参考:
https://blog.csdn.net/u013088062/article/details/50346181
https://blog.csdn.net/u013088062/article/details/50346719
https://blog.csdn.net/wqwqwqwq403/article/details/78861255
https://www.cnblogs.com/xiaohuamao/p/6903030.html

PEACE~

wordpress修改默认的媒体播放器

作者:matrix 发布时间:2019年3月7日星期四 分类:Wordpress 零零星星

本来几乎少有在blog上放置音乐,但是看到之前的帖子的哪个音频播放UI简直难受的很,已经记不起WP是从多少版本开始有这种协调默认的媒体播放界面。刚开始应该是使用html5的默认audio播放界面,后面就使用MediaElement.js的播放器且覆盖了样式,默认都是黑色调的蓝/白色进度条的那种。

图片4441-wordpress修改默认的媒体播放器
音频播放界面如上图样子,早就该改了的 实在难受 😱 😱
下面的代码来自@Vassilis Mastorostergios
,style很好看 也就照教程搬过来用了。
修改后的样式:
图片4447-wordpress修改默认的媒体播放器

添加样式文件

主题css目录下新建文件my-theme-player.css

/* Media Element Player styles */

/* Player background */
.mytheme-mejs-container.mejs-container,
.mytheme-mejs-container .mejs-controls,
.mytheme-mejs-container .mejs-embed,
.mytheme-mejs-container .mejs-embed body {
    background-color: #efefef;
}

/* Playmejs-time-floater controls */
.mytheme-mejs-container .mejs-button > button {
    background-image: url(images/mejs-controls-dark.svg);
}

.mytheme-mejs-container .mejs-time {
    color: #888888;
}

/* Progress and audio bars */

/* Progress and audio bar background */
.mytheme-mejs-container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,
.mytheme-mejs-container .mejs-controls .mejs-time-rail .mejs-time-total {
    background-color: #fff;
}

/* Track progress bar background (amount of track fully loaded)
  We prefer to style these with the main accent color of our theme */
.mytheme-mejs-container .mejs-controls .mejs-time-rail .mejs-time-loaded {
    background-color: rgba(219, 78, 136, 0.075);
}

/* Current track progress and active audio volume level bar */
.mytheme-mejs-container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,
.mytheme-mejs-container .mejs-controls .mejs-time-rail .mejs-time-current {
    background: #db4e88;
}

/* Reduce height of the progress and audio bars */
.mytheme-mejs-container .mejs-time-buffering,
.mytheme-mejs-container .mejs-time-current,
.mytheme-mejs-container .mejs-time-float,
.mytheme-mejs-container .mejs-time-float-corner,
.mytheme-mejs-container .mejs-time-float-current,
.mytheme-mejs-container .mejs-time-hovered,
.mytheme-mejs-container .mejs-time-loaded,
.mytheme-mejs-container .mejs-time-marker,
.mytheme-mejs-container .mejs-time-total,
.mytheme-mejs-container .mejs-horizontal-volume-total,
.mytheme-mejs-container .mejs-time-handle-content {
    height: 3px;
}

.mytheme-mejs-container .mejs-time-handle-content {
    top: -6px;
}

.mytheme-mejs-container .mejs-time-total {
    margin-top: 8px;
}

.mytheme-mejs-container .mejs-horizontal-volume-total {
    top: 19px;
}

/* WordPress audio playlist styles */

.wp-playlist-light {
    box-shadow: 3px 3px 0 #e2e2e2;
}

/* Captions - Track titles / subtitles, time */
.wp-playlist-light .wp-playlist-caption,
.wp-playlist-light .wp-playlist-item-length {
    color: #787878;
}

/* Captions - Current track */
.wp-playlist-light .wp-playlist-current-item .wp-playlist-item-title {
    font-size: 16px;
}

.wp-playlist-light .wp-playlist-item-album {
    font-style: normal;
}

.wp-playlist-light .wp-playlist-item-artist {
    text-transform: none;
    opacity: .8;
}

/* Playlist items */
.wp-playlist-light .wp-playlist-item {
    padding: 10px 0;
    border-bottom-color: #efefef;
}

.wp-playlist-light .wp-playlist-item:last-child {
    padding-bottom: 0;
}

.wp-playlist-light .wp-playlist-playing {
    font-weight: normal;
    border-bottom-color: #db4e88;
}

.wp-playlist-light .wp-playlist-item-length {
    top: 10px;
}

/*调整优化*/
.mejs-time-float,.mejs-time-float-current,.mejs-time-float-corner{
    border:none ;
    color: #888888; /*设置文字颜色*/
}
.wp-audio-shortcode a,.wp-playlist a{
    border-bottom:none; /*去除主题的a标签全局下划线*/
}

说明:
调整优化部分是我自行添加的,主要是避免和本主题的样式冲突

添加svg播放图标

mejs-controls-dark.svg放置在主题css/images目录下css/images/mejs-controls-dark.svg
下载:
https://d.pr/f/Y83MD
https://pan.baidu.com/s/14P4TOe1StJQfoRHgAmMrkg#提取码: 4pjf

挂载脚本

functions.php适当位置添加css和js加载的钩子


//加载之前新建的my-theme-player.css文件 //判断启用wp-mediaelement才会加载 避免多余的资源请求 add_action( 'wp_footer', 'ci_theme_footer_scripts' ); function ci_theme_footer_scripts() { if ( wp_style_is( 'wp-mediaelement', 'enqueued' ) ) { wp_enqueue_style( 'my-theme-player', get_template_directory_uri() . '/css/my-theme-player.css', array( 'wp-mediaelement', ), '1.0' ); } } //给MediaElementJs播放器添加自定义样式mytheme-mejs-container 用于重写系统自带css /** * Add an HTML class to MediaElement.js container elements to aid styling. * * Extends the core _wpmejsSettings object to add a new feature via the * MediaElement.js plugin API. */ add_action( 'wp_print_footer_scripts', 'mytheme_mejs_add_container_class' ); function mytheme_mejs_add_container_class() { if ( ! wp_script_is( 'mediaelement', 'done' ) ) { return; } ?> <script> (function() { var settings = window._wpmejsSettings || {}; settings.features = settings.features || mejs.MepDefaults.features; settings.features.push( 'exampleclass' ); MediaElementPlayer.prototype.buildexampleclass = function( player ) { player.container.addClass( 'mytheme-mejs-container' ); }; })(); </script> <?php }

PEACE~

参考:
https://www.cssigniter.com/css-style-guide-for-the-default-WordPress-media-player/
https://codex.WordPress.org/Playlist_Shortcode

V2R y安装尝试

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

昨天发现之前的连接服务端口被封了,还好重新切换之后就好了,原因应该是video-stream占用过大导致的。 😂 😂 😂
今天尝试启用V2,V2服务作用也是一样跨规则访问,使用和配置相比较ss也稍微麻烦一些。V2的客户端连接不需要账号/密码,只需要user ID和端口确保和服务器中的v2服务配置一致即可,加密方式也可以客户端自定义使用,还有就是要求服务端和客户端的本地时间不能相差>2min(时区不同不影响)。v2也涵盖了shadowsocks模块,配置添加即可添加相关连接账号。

操作手册:https://toutyrater.github.io

服务端环境:Ubuntu 16.04
客户端环境:macOs

安装

> wget https://install.direct/go.sh
> sudo bash go.sh

执行完成之后等待出现installed即表示安装完成

相关文件默认路径:

/etc/v2ray/config.json:配置文件;
/usr/bin/v2ray/v2ray:V2Ray 程序;
/usr/bin/v2ray/v2ctl:V2Ray 工具;
/usr/bin/v2ray/geoip.dat:IP 数据文件
/usr/bin/v2ray/geosite.dat:域名数据文件

配置服务端

> vi /etc/v2ray/config.json #编辑配置文件

其中inbounds中的port表示服务器端需要开启的端口,客户端亦配置相同使用。
protocol 为使用的协议,测试使用v2的vmess,也可以使用shadowsocks
使用vmess协议就需要设置settings.clients[].id也就是unique唯一的uid,客户端亦配置相同使用。
uid是可以自定义的。

半自动配置:https://intmainreturn0.com/V2Ray-config-gen/

...
"inbounds": [{
    "port": 42626,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "40dee6e3-030f-493d-8d11-d953747f2872",
          "level": 1,
          "alterId": 64
        }
      ]
    }
  }],
...

下面为简化使用的服务端配置:

{
  "inbounds": [{
    "port": 10089,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "40dee13747f2872",
          "level": 1,
          "alterId": 64
        }
      ]
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  },{
    "protocol": "blackhole",
    "settings": {},
    "tag": "blocked"
  }],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "blocked"
      }
    ]
  }
}

说明:
1008940dee13747f2872分别为端口和uid 自己修改使用就好。

KCP+动态端口高级配置

上面的普通配置服务端也是可以使用的,只是避免出现意外还是设置高级配置较好

  {
  "inbounds": [
    {
      "port": 101,
      "protocol": "vmess",
      "settings": {    
        "clients": [
          {
            "id": "0000-0000-0000-0000-0000",
            "level": 1,
            "alterId": 64
          }
        ],
        "detour": {
          "to": "dynamicPort"
        }
      },
      "streamSettings": {
        "network": "kcp"
      }
    },
    {
      "protocol": "vmess",
      "port": "10000-20000",
      "tag": "dynamicPort",
      "settings": {
        "default": {
          "level": 1,
          "alterId": 32
        }
      },
      "allocate": {
        "strategy": "random",
        "concurrency": 2,
        "refresh": 3
      },
      "streamSettings": {
        "network": "kcp"
      }
    }
  ],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  },{
    "protocol": "blackhole",
    "settings": {},
    "tag": "blocked"
  }],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "blocked"
      }
    ]
  }
}

参考:
https://toutyrater.github.io/advanced/dynamicport.html
https://steemit.com/cn/@syt/V2Ray-qos

启动服务

> sudo systemctl start v2ray #systemctl激活且启动服务

> service v2ray start|stop|status|reload|restart|force-reload  #相关操作

客户端连接

  • 使用v2内核脚本命令行执行操作,需要手动修改config.json文件来配置地址端口和uid
    https://github.com/v2ray/v2ray-core/releases

  • macOs端可使用GUI图形界面客户端来连接配置

打开之后,顶部菜单栏出现的图标点击右键
顶部的loaded,Unload core表示启用和关闭。v2rayX也是使用官方的v2ray-core来二次开发初图形客户端方便使用。
PAC Model,Gloabal Model为PAC和全局代理
图片4422-V2R y安装尝试
点击configure打开配置界面
图片4417-V2R y安装尝试

左下方的「+」号来添加连接的服务器地址端口和user id,确保和服务端保持一直就可以了。

其他客户端

win:https://github.com/Cenmrev/V2RayW

https://www.jianshu.com/p/a8e1a655a5d7

参考:
https://github.com/v2ray/v2ray-core

https://toutyrater.github.io/prep/install.html

https://www.v2ray.com/chapter_00/start.html

https://github.com/Cenmrev/V2RayX/releases

https://intmainreturn0.com/v2ray-config-gen/

https://www.youtube.com/watch?v=-z06k0654Wg

systemctl操作: https://www.cnblogs.com/lxjshuju/p/7183689.html