协同编纂是不是一个伪命题

数字出版这个领域不是很大,但一直都有很多听上去很高深的项目名字,比如这个协同编纂。

从实际看到的协同编纂系统来说,体验好,很实用的并不是很多。一方面是由于做好这个工具并不容易,另一方面更重要的原因是使用者不会协同。

就拿现在已经普遍替代了svn的git来说,也没有多少团队真正理解它的设计思维,微博上有位同学说得好,国外大学里一个基础课就是要教怎么使用git,怎么用git交作业,咱们的it培训班也教,但主要是为了刷星,便于就业,用的是作弊的手段,还有些团队被爆出来以无贡献的方式狂刷某些核心代码。

协同的前提是团队成员知道并且愿意真心贡献自己的思考和价值,要有责任感和荣誉感。这种前提不是靠kpi激励出来的。

现在很多打着开源名义的产品,是拿着真正的开源代码,附加上一些协作的功能,增加使用成本,把简单地事情变复杂。以产品原型的工具为例,一个Pencil已经可以很好的表达产品的意图了,那些看上去很美的原型工具,无非是共享了一些UI素材,是不是好的产品设计已经不是他们的重点了。

做好一个产品设计需要迭代,写好一本书也要迭代,稿子不改几十遍不好看。自己与自己协同,留下自己的想法,不断推进,也许是一个更重要的体验。

某司的UE设计规范

接了一个活儿,甲方的领导真像领导,忙得要死,我们作为转包承接商佩服的要死。

好不容易要到了资源帐号,先连vpn,这方面比较正规的,但是vpn只给了win10版本的客户端,得装一个虚拟机来跑win10,但是我们的UI也是用的mac,所以想了想是否可以找到F5的mac客户端呢,官网不给下载,但是某外国高校的网站上提供了一个下载地址。于是去留学下载回来,还真的能用,甚至比win10版还要好,因为win10版默认设置的vpn服务地址是另一家的,每次都要重新设置。

vpn这一关过了,打开ue的站点,乍一看,项目还挺多,得发给UI好好学一下,不然,不遵循规范到时候设计出来了返工可就麻烦。等等,仔细一瞅,这不是饿了么吗?谁这么牛掰,又拿了一套开源卖给他们啊。

ID6发布了,稀疏的信息,刷来刷去

继续挖掘7座纯电动汽车,上汽大众的ID.6 X发布了价格,跟比亚迪唐EV比起来性价比还不错。继续等一汽大众的ID.6 Crozz。

随着价格发布,网上的车评视频才慢慢多起来,当然,从上海车展亮相,到价格发布,其实这期间有效的信息很少,厂家也学会了统一口径。

车评自媒体们也没有太好的办法,拿着一张图或者一个表,就得德比德比一大段。这是人为造成的信息稀疏,反过来说,这种稀疏的信息未必能挖掘出多少有效的信息,因为本来就没有多少有效的信息。

单纯说稀疏应该指的是自然形成的信息所呈现的稀疏。

尽管对卖车的来说,车是一个商品,但对买家来说,车是未来好几年的生活的一部分,一定程度上决定了生活方式。

市场监督总局不差钱的推送短信

【市场监督总局】我局已将电子商标文件发送至商标网上服务系统,你已10天未登录该系统,请尽快登录商标网上服务系统查看及下载电子商标文件。

这条短信我每隔10天就能收到一条,这事儿早就不归我管了,我想这是不知道哪个公司给市场监督总局做的系统维护,短信推送每天定时执行一次,将10天没有登录的统一放到推送清单中。但却完全没有考虑推送上限的问题。而这个短信模板也一直没有改过,不知道是涉及哪条商标业务,也不知道是哪个帐号。

老婆最近在考PMP证书,我想市场监督总局的信息中心,或者为其服务的公司想必也应该有这个证,可惜,这么简单的短信推送策略都懒得去优化。

php生产环境搭建

更新系统 yum update

Uninstall old versions

 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Set up the repository


Install the yum-utils package (which provides the yum-config-manager utility) and set up the stable repository.

 sudo yum install -y yum-utils
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Install Docker Engin

Install the latest version of Docker Engine and containerd, or go to the next step to install a specific version:

sudo yum install docker-ce docker-ce-cli containerd.io

设置自动启动

systemctl enable docker

启动docker

systemctl start docker

查看docker状态

systemctl status docker

安装docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

上面命令行中可以将版本号替换为最新的版本。docker官网的链接用的是github的,缺德某些地方把这个域名污染了,所以需要换成上面这个地址。

sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

查看docker compose的版本

docker-compose —version
yum install git
cd /
git clone https://github.com/yeszao/dnmp.git

cd /dnmp
docker-compose up -d

电动汽车厂商倒闭了怎么办?

之前买过一个CAT110的智能插座,可以把家里的煤气报警器和烟雾报警器连接起来,通过app收到报警信息,也可以远程控制插座本身的继电器。

有一段时间,插座不能用了,连不上网,实际上是连不上服务器,找了半天,问到厂家,说正在迁移服务,又等了一阵子,试试好了,说明迁移成功,可是,如何迁移失败或者厂家倒闭了呢。至少这个智能插座是废了,传感器是通用的,还可以连到其他的智能网关上。

基于云的东西,如果厂家不把云上的东西让你自己部署一个私服,你就没办法摆脱它,我的智能门锁也是一样,虽然分发钥匙是app和门锁通过蓝牙连接同步数据,但是生成密码是要先登录app的,登录就要连服务器,如果门锁厂家没了,app无法登录,自然也就无法跟门锁通讯,而厂家也很难好心到在倒闭前把app释放一个不需要登录的版本出来。

如此分析,智能家居还需要私有化的方案才能放心使用,除非对买的东西有足够的信心,或者钱不多,上当了也无所谓。

但如果是电动汽车厂商挂了呢,花了多少万买的电动汽车里面有很大一笔钱是买所谓的智能功能,那个智能车机的运营方要是废了,谁能提供第三方车机?不好说,即使能提供改装,验车未必能过。

我觉得这类的应用至少应该像wordpress或者mastodon这样,除了提供saas服务,还应该提供私有化部署的方案。

或许我更愿意接受一个开源电动汽车,至少一部分功能应该分离出来,用开源来实现,而不是把所有东西都寄托(绑定)在一个厂商那里。

Laravel中Socialite和easywechat如何选用

Socialite主要针对登录,涵盖了微信的接口,但是不包括微信其他的接口,如支付等。而easywechat是针对微信的全场景方案。

所以在项目中,用easywechat来解决微信方面的需求,在users表之外,创建一个weixins表,来存储微信用户绑定到信息,如果有需要再用socialites表来存储非微信的用户绑定。

在各个平台的接口中,微信的接口是比较变态难调试的,尤其是支付接口,这里再次抱怨一下。

电动汽车,有最好的买家,却没有最好的产品

最近特斯拉在上海车展大放异彩,真心关注电动汽车的和看热闹的显现出很不一样的态度,这依然是信息不透明造成的问题,如果不是钱不够,估计都要买特斯拉了,而之所以有那么多特黑,多半是“打特办”旗下。

先不说是否真的有打特办,只说争议解决机制,就不太正常,有问题就解决问题,该怎么调查怎么调查,而一线媒体出来带节奏,这就不是科学办事,当然,真心买车的考虑的还是自己的钱包和怎么买一辆自己放心的车。

长安CS55的等等群里,大家把新能源车研究得很透彻了,这是除了水木社区之外唯一一个严肃讨论新能源话题的地方。

只是,大家研究的再好,造车的还是该怎么折腾怎么折腾。如今造成分成了两派,一派是真造车,一派是拿造车当幌子玩资本运作。

对我自己来说,研究新能源的这轮基本上要高一段落了,首先对换车的需求还没那么迫切,钱包也还需要继续填充,同时,可以继续等一等下一代产品,等一百度电池量产了,差不多就可以换了。

使用https://www.github.com/yeszao/dnmp搭建php8.0.3环境

基本的安装步骤请看官方文档,这里仅就php8说一下。之前7及以下版本直接按指示操作即可,没有遇到问题,如果遇到github等网络不通的情况,等一等再试,或者想办法出个国。

需要php8的,打开.env将php7下的版本号直接改为8.0.3,或者复制php7的配置新建一个php8。

#
# PHP7
#
# Available PHP_EXTENSIONS:
#
# pdo_mysql,zip,pcntl,mysqli,mbstring,exif,bcmath,calendar,
# sockets,gettext,shmop,sysvmsg,sysvsem,sysvshm,pdo_rebird,
# pdo_dblib,pdo_oci,pdo_odbc,pdo_pgsql,pgsql,oci8,odbc,dba,
# gd,intl,bz2,soap,xsl,xmlrpc,wddx,curl,readline,snmp,pspell,
# recode,tidy,gmp,imap,ldap,imagick,sqlsrv,mcrypt,opcache,
# redis,memcached,xdebug,swoole,pdo_sqlsrv,sodium,yaf,mysql,
# amqp,mongodb,event,rar,ast,yac,yaconf,msgpack,igbinary,
# seaslog,varnish,xhprof,xlswriter
#
# You can let it empty to avoid installing any extensions,
# or install multi plugins as:
# PHP_EXTENSIONS=pdo_mysql,mysqli,gd,curl,opcache
#
#PHP_VERSION=7.4.7
PHP_VERSION=8.0.3
PHP_PHP_CONF_FILE=./services/php/php.ini
PHP_FPM_CONF_FILE=./services/php/php-fpm.conf
PHP_LOG_DIR=./logs/php
PHP_EXTENSIONS=mysql,pdo_mysql,mysqli,mbstring,gd,curl,opcache,redis,xdebug,imap,mcrypt,zip

如上,用docker-compose build php然后docker-compose up php。

这个时候打开php项目,有可能会报could not find driver的错误。那就是mysql的扩展没装好。

可以用下面的办法来安装:

docker exec -it php /bin/sh

install-php-extensions pdo_mysql
同理,也可以安装redis扩展install-php-extensions redis
这时候打开phpinfo看看有没有pdo_mysql和redis。

如果需要在本地打开xdebug,还是用上面的办法install-php-extensions xdebug
这时候,还需要修改一下php.ini,因为xdebug最新是3的版本了,配置项改了。

把原来的xdebug配置改成下面的即可。
[XDebug]
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip
xdebug.remote_host = 192.168.100.100
; xdebug.remote_port = 9000
xdebug.remote_autostart=1
xdebug.remote_log = /var/log/php/xdebug.log


xdebug.mode=debug
xdebug.client_host=192.168.100.100
xdebug.start_with_request=yes
xdebug.log=/var/log/php/xdebug.log
如果用vscode调试的话,在.vscode下面创建launch.json并填入:
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "/www/shang/openexhibitions/api": "${workspaceRoot}"
            }
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9003
        }
    ]
}

注意,端口号是9003,之前xdebug是9000

ASUS RT-AC68U神器启用

新买了一个电视机顶盒mecool KM6,这玩意激活还需要出国留学(这个词是在淘宝上学的),所以在KM6到货之前就在琢磨拿什么来突破了,家里有个老思科的路由器,虽然慢点,但应该还是能用的吧,结果等配置的时候发现,还真是连不上了,于是只好拿笔记本,接上网线上网,然后通过wifi共享网络出来,幸好官方有教程,按照步骤操作下来,成功留学,顺利激活。

KM6跑起腾讯的云视听一点问题没有,反应超快,但是光看一个云视听太可惜了。那就需要长期假设一个出国通道。咨询了华三做SDN的同学,放弃了采用融合网关的方案,那就是准备一个专用的路由器就行了,物理切换网络是最直接有效的。

但是之前配置的这台电脑毕竟不能一直放在家里做留学使用,所以换了一台旧电脑顶上,2010年买的小黑X1,但是很快就发现,KM6跑起来并不爽。考虑再下,下定决心,再投巨资采购一台ASUS RT-AC68U,这个型号在支持设备清单里是次顶配。淘宝下单花了499个软妹币。

到货后,发现专业路由器就是比TPlink的强,配置真复杂,截图就不发了,直接按教程找到系统配置中的升级固件功能,将下载下来的专用升级固件上传上去,重启(留学中介说是会自动重启,我这里被提示要手动重启,所以就断电重启路由器就好了)。

再连上,发现连DHCP的网关都变了,修改地址,重新进入路由器配置界面,靠,发现完全变了,超级复杂的配置界面没有了,只剩下那红色的经典配色,然后输入激活码,然后,然后,就发现已经连接成功。虽然,华硕这超级牛的路由器的其他那些功能暂时用不上了,但这就行了,插电即用。

接下来,打开油管看看,还是有点卡,于是把接入点从联通光猫的百兆口,换到了千兆口下接的TP的千兆口上,速度明显提升,甚至直接从新加坡回国看云视听都不卡顿。