wekan---丑陋但是强大的Trello替代品

image-20201211095419299

Trello , 强大的看板工具。精美,昂贵。

wekan,更加强大的看板工具。不过,就是有那么点丑……

看着Trello的各种Powerup!收费插件留了一年口水后,终于决定迁移到丑了点的wekan上。

安装步骤:

1
2
3
4
5
snap install wekan
snap set wekan root-url='http://192.168.x.x' # <--- 这个还很重要,wekan设计上有缺陷,不支持host:port模式。期内使用caddy做proxy_pass
snap set wekan port='3001' # <-- 用nginx做个proxy_pass

看惯了Trello的各种小美丽。wekan真是让人郁闷……

不过实在是便宜。而且功能够好。说2个我常用的:

  • 支持子任务
  • 支持自定义字段
  • 支持泳道

各种槽点也不少:

  • 丑。真丑。
  • 文档缺失。
  • 各种小问题,操作差了一丢丢顺畅。
  • 奇葩的模板设计方案。

看到免费的面子上,抽空部署到公网上去。

PS:为啥不用docker?因为snap简单。仅此而已……

PPS:作者很有趣,想要新功能吗?来,这是募资链接,支付500欧,我就马上开工。实在是我辈楷模。

利用自定义上传脚本和Onedrive实现Typora图床

image-20201207151555968

花了点时间,做了个for typora的图床。用的OneDrive相关的Microsoft Graph API。

最后还是老老实实的怂了,用的标准的authorization_code方案。

ToDo List:

  • [x] 基本雏形。(验证,获取token,刷新token,api调试之类的杂活)
  • [x] 适用于windows下的for typora的custom command 图片上传脚本
  • [ ] 脚本需要识别偶尔传入的url
  • [x] 脚本添加文件名后缀,方便typora管理。
  • [ ] 适用与Mac下的for typora的custom command 图片上传脚本(没钱买mac)
  • [ ] 日志系统
  • [ ] 链接持久化需要多次302跳转,目前走的近路,使用了 1drv.ws 的私人服务。
  • [x] 做发布安装工具
  • [ ] 写文档
  • [ ] 入github

嗯。水一篇blog,然后看看效果。(title 图使用的OneDrive 图床,随手截图黏贴到了Typora里面。)

MicroSoft Store打不开的奇葩原因与解决方法

MicroSoft Store有各种花式躺倒方式。我觉得我碰到的算是比较奇葩:

某次更新后(是的,更新=shit happen),Store挂掉了。当时网上几种解决方法都不可用,也就没太在意。

最近需要Store里面的一个程序,只好仔细钻研下。

过程不表,直接说结论:

更新 -> 用户配置挂了一部分 -> 当前用户的区域出错 -> Store无法识别你所在的国家 -> Bingo!!

解决方法非常简单:

管理员权限打开PowerShell

1
Get-WinHomeLocation # 如果返回并非中国,而是“全球”,恭喜,你符合这个奇葩错误的条件

image-20201221092829020

这个问题出现的时候,你会发现你的“区域”设置里面,无法改变国家和地区的选项。甚至就是空的,无法选择。

image-20201221092928477

1
Set-WinHomeLocation -GeoId 45 # 重启后,问题解决

PS:由于我没保留之前的截图,这里也不贴图了。

PPS:又碰到了。可以贴图了。

PPPS:这个问题一般发生前,会碰到:C:\Windows\system32\config\systemprofile\Desktop 无法访问错误(这个问题解决就是按照这个路径,创建Desktop目录即可)。

Godot Engine --- 很完美的2D/3D游戏开发引擎

Godot , 开源2D/3D游戏开发引擎。适配 Windows/Mac/Android/IOS/Linux/HTML等平台(貌似就是全了吧……)。

设计很精美。NodeTree的组织方式非常符合一般开发直觉。

GDScript语法简单(有那么点像python),开发也很舒适。

最近躺平阶段偶尔开始看看相关资料,很喜欢这个开发工具。某种简单的GUI程序似乎也可以直接使用这个框架开发。

近期会投入精力学习下。

正则表达式补零--拯救你的播放列表

最近给娃下载各种有声书。费劲写了个爬虫,从喜马拉雅往下爬。

爬书一时爽,整理费老劲。各种不靠谱的标题,只能说明这些up主没有一个有完美强迫症。(参看封面截图)

那么,如何整理文件名,将文件按顺序执行并且对小编号文件补零呢?

贱贱的分割下:

继续阅读···

小学生口算题PDF打印版下载----神兽御免

2020年,家内神兽可以说已经完全放飞自我了……

数学基础一塌糊涂。

作为老爸,自然需要狠狠操练。

一个程序走起,PDF 可打印口算题出现了……(所以说,有个能写代码的老爸是神兽的不幸……)

  • 精美排版,符号对齐—-没有理由不做吧?
  • 每页100,数量恒定—-没有理由不做吧?
  • 黑体显示,拍照识别—-没有理由不做吧?

………………

下载:

继续阅读···

Python统计List的元素个数

以下两端代码,都可以实现。

Counter虽然强,但是数据量大的时候会比较慢。

自己写的轮子:

1
2
3
4
>>> test = [1, 2, 3, 4, 2, 2, 3, 1, 4, 4, 4]
>>> d = {k:test.count(k) for k in set(test)}
>>> d
{1: 2, 2: 3, 3: 2, 4: 4}

collectionsCounter 方法:

1
2
3
>>> from collections import Counter
>>> Counter(test)
Counter({4: 4, 2: 3, 1: 2, 3: 2})

水一贴测试下 Vercel 的自动脚本。

目前本站已经改为 Vercel 托管。coding 卖给腾讯后,页面托管那叫一个蛋痛……

Share下自己编译的 SumatraPDF 绿色汉化优化版

SumatraPDF

SumatraPDF, 开源,免费,多功能,小巧的PDF阅读器(当然,也支持很多流行书籍格式,诸如epub/Mobi/CHM)等等。

已经用了多年了。非常好用,不到6M的体积启动速度完爆各类浏览器。

不过,这个工具的绿色模式(aka,Portable)有个缺点,配置文件和缓存都会放到执行程序目录下。可是,哥习惯把一堆小型程序扔到一个OneDrive目录里面(是的,我就是 ~/bin 党)。

没办法,自己 Clone 下库,然后哼哧哼哧下载VS2019社区版。动手改造下。

(看代码+修改10分钟,搞定编译错误和链接问题20分钟,Clone代码半小时,下载VS2019两个小时……)

改造并不麻烦,见下:

继续阅读···

Python的Bool操作符--奇怪的逻辑但很有用

经常看到下面代码:

1
user_name = form['username'] or 'unknown'

一般来说,or操作符应该返回 bool类型。也就是说,上文代码的user_name 应该是 True 或者 False

php/perl用这种代码多的是,我能理解:

1
foo(bar) or die;

问题是,php/perl不能这么赋值啊……

python的这个逻辑还真挺诡异的……(是的,这种感慨一般来自c/c++程序员,我们较真)。

今日,又看到了类似代码。nnd,查查看。

于是,我得到了这个:

(Note that neither “and” nor “or” restrict the value and type they
return to “False” and “True”, but rather return the last evaluated
argument. This is sometimes useful, e.g., if “s” is a string that
should be replaced by a default value if it is empty, the expression
“s or ‘foo’” yields the desired value. Because “not” has to invent a
value anyway, it does not bother to return a value of the same type as
its argument, so e.g., “not ‘foo’” yields “False”, not “‘’”.)

确实灵活了,也符合人的第一感觉。但是……nnd,一个判断把类型换了到底是什么鬼啊……

不过,话说回来,用的时候……真香……虽然是今日查的,但是我已经用了N久了

就这样,水这么一贴是因为刚刚从半死不活的coding中换了blog服务器。测试下。