进京难,难于。。。

昨晚开车进京,实际上是下午三点从衡水上大广高速,计划在固安下高速好好吃个饭,然后再排队过检查站,按照计划六点多到了固安,吃饭,八点重新出发,走国道106的检查站。

路上在讨论过了检查站要不要再去走左堤路,一路无红灯,车很少,比开高速还要舒服,关键是时间只差十来分钟。

排了将近两个小时以后,我们通过了检查站,前方的一辆京牌面包车被拦车检查,我们并未被要求停车。

然后我们掉头去左堤路,天啊,左堤路封路了,还不是一般的封,用铁皮糊上了。(我们用的是腾讯导航,后来发现高德导航上面几天前就标记为封路了。)

我们要重新排两个小时的队。

沿106一直往往南开,重新走到开始的地方掉头。排队。

右边车道走得快一些,借着比大货车起步更快的优势,我们并到右侧车道。借着上一次的经验,最右侧的公交车道过了晚上九点应该是可以走了,在公交车道借到迅速穿插到了河北检查站的位置。

右侧的检查口很慢,几乎不动,左侧是大货车和京牌车口,但标识很不明显,只有走到跟前才能看见,我们回到左边车道,通过。

第二次排队时长四十五分钟。

在北京如何实现开车自由

目前手上有一辆电动车,一辆租来的油车,都是5座两厢,电动每天上班开,单位停车免费,油车出远门开,但主要的问题是家里六口人,都上车就超载。

改善的方案是把油车换成7座MPV或者6座房车,以后等地铁通了不用开车上班的话,把电动车也换成6座或者7座的。

最近北京抓了一批“假结婚”过户油牌的,罪名是买卖国家机关公文罪,但是说实话这个罪名太生硬了,结婚双方自愿,都是真实合法的。

如果是说标的是车牌,双方有偿转让,但政府又承认车牌本身的独立性,这是互相矛盾的,看后面法院怎么判吧。

如何要回当当的退货运费

在当当网买了一套书,打算作为送给朋友的礼物,下单时说是第二天送到,结果第三天才发货,订单上又没有取消的按钮,打电话追踪快递,说第三天下午才到北京,自取都来不及,于是等到到了货再退货,没想到当当7天无理由退货是需要自付运费的。

在当当申请退货退款的时候,当当显示会退给我500,我之前实付的金额是450,我就以为多出的这50是运费补偿,虽然快递费花了56,觉得还是能够接受。没想到等了好几天收到退款是450,另外50是已经过期的一个优惠券。

生气的很,找客服申诉,客服斩钉截铁的说不退运费。

然后我就找当当的投诉渠道,发现还真找不到。再就去找12315投诉,让填哪个工商局,我按当当注册地选了天津滨海,投诉完截图给老婆看,才发现里面日期因为着急都写乱了。12315的投诉只能撤销,不能修改,fk。

没办法,就写了简单过程,扔到有当当的人的微信群里,结果武大发行的校友群有人接单了,直接把情况转给了客服总监。过了没多久,就接到了宿迁的电话,答应会退我运费,我把我的反馈说完,但对方只想解决我的投诉,对我反馈的当当的问题并不关心。

后来,校友表示也想搜集证据改进客服,我就将我的总结告诉了他。

(1)承诺到货时间如果不能保证就不要说的那么坚定,可以提示一个时间范围。

(2)订单给用户一个拦截的渠道,如果因为物流是合作的不能拦截,也应该明确提示用户如果无理由退货需要自付运费,不补偿。

(3)申请退款时明确告知会退多少现金,而不是把优惠券金额混在里面,何况这个优惠券金额跟当时买书的折扣也对不上。(反馈说pc上有,小程序没有提示)。

(4)在网上搜了一下大家总结说对付当当最好的办法就是拒收,校友也认同,但这真的不是一个好办法。

虽然最后我的投诉解决了,但这样的渠道解决问题真的不好,如果不是这个行业,找不到这么多校友,那问题连沟通的渠道都没有。

当当网首页有一个意见反馈,但设置的问题太没价值了,这都什么年代了,还把问题集中在首页打开速度上,不如简单一个留言板,重要的是要有合理的回复,投诉一定要转到高级职员那里去处理,不要让普通客服来响应。

为什么不应该庆祝gitee比github更快

有搞开发的同事庆幸gitee速度很快,但也有同事提醒github打包下载代码更快。

找有用的新的项目肯定还是github优先,当github被限速越来越严重的时候,获取好项目的机会就越来越低,何况,自己的网连阿里云都会很慢,这样的办公条件有什么好庆幸的呢?

尽管我也不怎么在github上贡献代码,至少还点个真实的star,我不想在一个充斥者虚假的商业开源代码的gitee上浪费太多时间。

前后端分离的微信开放平台网站应用实现微信登录的本地调试

前面那一篇说了基于laravel+vue的实现方式和不要踩的坑,这一篇记录一下如何实现本地调试和线上部署。

当然,线上就按上一篇就好了,在vue-wxlogin里面配置appid(微信开放平台里面的网站应用的appid,需要先申请),laravel里需要配置appid和secret。

现在主要说一下如何在本地调试。vue-wxlogin显示二维码的时候需要appid和回调地址一致,如果把线上域名反向隧道到本地,那么线上就用不了,如果用本地的hosts来解析,那么就无法同时访问线上的版本。所以比较好的办法是专门申请一个测试用的网站应用,比如portal.local.futuremeng.sincebirth.spac,通过vi /etc/hosts添加127.0.0.1 portal.local.futuremeng.sincebirth.spac来将这个域名解析到本地环境。

然后在本地的nginx中添加一个站点,配置文件如下:

server {
     listen 80;
     server_name portal.local.futuremeng.sincebirth.spac;
     charset utf8;
     location / {
        proxy_pass http://192.168.2.180:6060/;
        add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'self'; style-src 'self' 'unsafe-inline';";
        proxy_set_header Host            $host;
        proxy_set_header X-Real-IP       $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }
}

其中,IP换成你自己的电脑的IP,如果是docker跑的nginx,需要指定为本机的局域网IP,也就是docker的宿主机IP,否则,如果设置成127.0.0.1是访问不到后面在vscode中建立的服务的。

最后打开vscode,打开vue项目,设置一下devServer的port,我用6060是为了同时npm run serve起多个前端项目,而这一个专用这个端口,以便nginx这里能够保持可用。

从商业成品房车到DIY自改房车

房车按价位和使用率来看,绝对是有钱有闲阶层的小众产品,但随着对房车改装技术的不断了解,除了商业成品房车,还有很多车友在用箱式车直接改装。

当然,国内在法规方面有很多限制,让自改房车有了很多障碍,但依然挡不住用面包车之类的轻改车友,到验车的时候再改回去就行了,但这对想拿轻客改B型车的来说,风险太大了。

所以目前如果想自己改,一个是不能买一般的二手车,而是要买一手的旅居车底盘或者二手房车来改,二是改完要去某个改装厂买一个公告。相当于两个公告要买,这是政策上的成本。

剩下的就可以自己发挥了,当然,改装也要符合规范,国外很多车友自改都是采用实木结构,材料简单,工艺也容易把控,国内的商业成品房车虽然可以定制,但基本上还是采用现成套件为主,布局方面选择空间很小。

如果拿活动范围来说,事实上,像台湾那样拿得力卡这样的车来改是比较实用的。不过放在北京,就还要在上面两个公告上多加一个北京车牌和底盘北京公告,算下来一共四道政策成本。

相比起改造和买底盘的费用,这些政策成本加起来就太高了,几乎达到1:1的比例。

如何看待滨湖国际业主们的投诉维权

衡水滨湖国际业主们拉了一个业主群,集体通过各种官方渠道投诉维权,希望开发商好好盖房,一通投诉之后,开发商被罚款10万元,以目前的环境,这点罚款顶多是象征性的警告,背后也不排除还有别的资金去搞定这件事情,算算账,这些开销都是要业主们来付出的,如果拿不到新的钱,恐怕就是在盖楼的时候省出来。这也是一种悖论。就像有业主说的,如果真的罚十几个亿,还有钱盖房子吗?

所以有两个问题需要注意,一个是开发商不要跑路,一个是开发商要好好盖楼。但这些本来都是谁应该做的?又应该是谁去监督谁做好?这是一笔烂账。

搞到今天,业主们连应该投诉谁都没搞清楚,当然,也搞不清楚。

十年前离开武汉的时候,我跟关照过自己的老社长说,生逢乱世,当作好人。能否做好人不好说,尽量吧,上面这种事情其实很无奈,随波逐流而已。

前后端分离的微信开放平台网站应用实现微信登录

先说下项目结构:前端vue,后端laravel。

其中前端用vue-wxlogin这个组件来显示微信登录的二维码。

这个组件中的appid填写微信开放平台中的网站应用的appid,redirect_uri填写微信开放平台中的网站应用登记的授权回调域。

这个授权回调域可以和网站应用的应用官网相同,也可以不同。

只要appid和redirect_uri与网站应用中的一致,二维码就可以显示。

为了调试方便,我在本地调试时把网站应用登记的授权回调域临时修改为另一个域名(该域名做了反向隧道,不知道是否必要)。

当二维码能正常显示时说明前端没有问题了。微信扫码确认后前端页面会跳转到redirect_uri(网址赋值需要用encodeURIComponent来编码一下,否则path可能会出错,比如hash模式时path跑到问号后面去了),跳转后的url会带上code参数。

接下来我们需要用这个code来换取openid和access_token。那么这就涉及到redirect_uri应该用前端域名还是后端域名呢?

我设置的是前端域名,也就是前端的login页显示二维码,然后扫码后跳转到weixin页,读取code并向后端接口发起获取openid的请求。这样,一则前端跳转时是本域跳转,不用重新加载页面,二则,也比较符合前后端分离的模式设计。

后端在code获取openid和access_token这里,我陷入了极大的困惑。后端我引入的是overtrue/laravel-wechat,其中有open_platform的接口,我以为可以像公众号和小程序的接口那样直接调用,比如

$this->app->handleAuthorize($input['code']);

就可以搞定了,但就在这一个方法上,我浪费了一个下午的时间。

具体不展开说了,可以参考https://blog.csdn.net/qq_39859060/article/details/83512563,但其实就算有这篇文章,我还是没搞清楚到底怎么回事,这个component_verify_ticket到底有什么用呢?

最后,是按https://learnku.com/laravel/t/36118#reply164754里面提到的第一种方法实现的。简单的一个file_get_contents就搞定了。

$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . config('wechat.open_platform.default.app_id') .
            "&secret=" . config('wechat.open_platform.default.secret') . "&code=" . $input['code'] . "&grant_type=authorization_code";
 $jsonResult = file_get_contents($url);
 $data = json_decode($jsonResult, true);

再次吐槽微信难道从上到下都是跟张小龙一样的狗屎脑子吗?起名字和写文档都一样乱。

关于“行动者联盟2020公益盛典评选”我想说的

武汉大学北京校友会,今年很火的一个名字,确实,很多杰出校友动员了很多社会资源参与了上半年的抗疫行动,但实际上,这里面遗憾很多,首先,这不是一个常规的专业公益组织,当然,这个瘟疫也不是一个常规的公共卫生事件,当我仍然一厢情愿的希望有一个专业组织来带头,可惜,这不是过去,也不是看得见的未来。我不知道今冬明春假如重来,武汉大学北京校友会是否还要像上次那样乱撞。

题目中那个评选正在火热进行,校友们也在积极拉票,但从票数来看,参与的人很有限,老百姓其实并不关心,也可能已经没有余力关心,自己的生计如何维持可能是更加重要的命题。

再想想,武汉到底有多少灭门,到底有多少误伤,都是一笔糊涂帐,这个盛典来得就更加不人道了。

武汉大学早早地就配合上面搞了抗疫成就展览,这个盛典只是这场虚伪的狂欢的延续。

我不知道哪个是真的,但我相信我知道哪个是假的。

以前的博客

以前的博客很多评论,写博客没有评论就是纯粹为了发泄了,现在就是这样。

有了所谓新媒体之后,交流就越来越少,越来越浅,人们更多的为了一句话根本解释不清的简单论断而争论。坐在咖啡馆或者茶馆里面对面的深谈也越来越成为一种奢侈。

我的博客最近的一条评论来自台湾,这让我感到很幸福。

另一种类似的体验是我在gmail收到来自周老师的来信的时候,这是我些年来收到的唯一一个私人的来信。尽管有些观点我并不赞同,有些内容也不是我关心的,

昨天在校友育儿群里提议组织一个育儿市集,在北京选四个公园,每个月的四个周轮流在这些公园举办育儿市集,为的是增加一下孩子们的公共活动空间,否则到公园里玩,也是各跑各的,跟陌生人没有交流。这让我感到孤独,我担心这种孤独已经延伸到孩子身上了。