有搞开发的同事庆幸gitee速度很快,但也有同事提醒github打包下载代码更快。
找有用的新的项目肯定还是github优先,当github被限速越来越严重的时候,获取好项目的机会就越来越低,何况,自己的网连阿里云都会很慢,这样的办公条件有什么好庆幸的呢?
尽管我也不怎么在github上贡献代码,至少还点个真实的star,我不想在一个充斥者虚假的商业开源代码的gitee上浪费太多时间。
收获爱
有搞开发的同事庆幸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这里能够保持可用。
房车按价位和使用率来看,绝对是有钱有闲阶层的小众产品,但随着对房车改装技术的不断了解,除了商业成品房车,还有很多车友在用箱式车直接改装。
当然,国内在法规方面有很多限制,让自改房车有了很多障碍,但依然挡不住用面包车之类的轻改车友,到验车的时候再改回去就行了,但这对想拿轻客改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);
再次吐槽微信难道从上到下都是跟张小龙一样的狗屎脑子吗?起名字和写文档都一样乱。
武汉大学北京校友会,今年很火的一个名字,确实,很多杰出校友动员了很多社会资源参与了上半年的抗疫行动,但实际上,这里面遗憾很多,首先,这不是一个常规的专业公益组织,当然,这个瘟疫也不是一个常规的公共卫生事件,当我仍然一厢情愿的希望有一个专业组织来带头,可惜,这不是过去,也不是看得见的未来。我不知道今冬明春假如重来,武汉大学北京校友会是否还要像上次那样乱撞。
题目中那个评选正在火热进行,校友们也在积极拉票,但从票数来看,参与的人很有限,老百姓其实并不关心,也可能已经没有余力关心,自己的生计如何维持可能是更加重要的命题。
再想想,武汉到底有多少灭门,到底有多少误伤,都是一笔糊涂帐,这个盛典来得就更加不人道了。
武汉大学早早地就配合上面搞了抗疫成就展览,这个盛典只是这场虚伪的狂欢的延续。
我不知道哪个是真的,但我相信我知道哪个是假的。
以前的博客很多评论,写博客没有评论就是纯粹为了发泄了,现在就是这样。
有了所谓新媒体之后,交流就越来越少,越来越浅,人们更多的为了一句话根本解释不清的简单论断而争论。坐在咖啡馆或者茶馆里面对面的深谈也越来越成为一种奢侈。
我的博客最近的一条评论来自台湾,这让我感到很幸福。
另一种类似的体验是我在gmail收到来自周老师的来信的时候,这是我些年来收到的唯一一个私人的来信。尽管有些观点我并不赞同,有些内容也不是我关心的,
昨天在校友育儿群里提议组织一个育儿市集,在北京选四个公园,每个月的四个周轮流在这些公园举办育儿市集,为的是增加一下孩子们的公共活动空间,否则到公园里玩,也是各跑各的,跟陌生人没有交流。这让我感到孤独,我担心这种孤独已经延伸到孩子身上了。
基于4G全网通信技术的车载WIFI热点OBD设备
通过OBD接口采集汽车ECU相关数据同时集成GPS定位,并通过4G网络将数据上传服务器,提供车载WIFI、车辆体检、车辆轨迹、精确的行程报告、油耗分析、驾驶行为分析等功能的智能汽车车载终端。
(1)即插即用、安装方便简单、支持远程升级、串口升级等各种升级方式。
(2)工业级模块,适合长期连续工作,抗干扰能力强。
(3)支持TDD-LTE和FDD-LTE,移动联通电信全网通,支持车载WIFI高速上网,同时最多接入10个终端设备上网。
(4)自动识别,支持车辆诊断协议,实时了解车辆的当前工作状态。
(5)内置GPS可以实现精准定位车辆具体位置。
(6)内置3D加速度传感器。
(7)设备自动转弯补偿、高速补偿,保证轨迹平滑顺畅。
(8)大容量FALSH存储,盲区数据自动补传。
(9)点火熄火报告,熄火自动休眠,低功耗。
(10)精准里程分析、油耗分析,不仅提供单次行程的里程油耗分析,还提供超速、高速、中速、低速、怠速的里程油耗分析。
(11)驾驶行为分析:设备提供急加速、急减速、急加油、急转弯、长时间怠速、超速、疲劳驾驶等的实时提醒,可以准备的分析出超速/高速行驶的时间、里程比例,车主行驶的时间和里程等。
(12)支持车辆体检、汽车发动机故障、保养提醒、节气门清理、电瓶亏电、超速、疲劳、冷却液温度高等10多种报警。
以上来自网络。
OBD最初是为了安全驾驶而出现的,随着环保要求越来越高,也成为环保检查的一种手段。但是看到其中的联网,还是有些恐怖的,车联网将GPS定位数据及车况数据实时上传。这是上行链路,同时,也可以基于这个通道完成下行控制。之前传播过一轮的远程控制汽车的零点其实不是未来,而是现实。
一个被破解了的汽车可能随时出现被控的“意外车祸”。技术上貌似不用太复杂,伪造一个基站就行了,之前的2G、4G基站伪装技术已经很成熟,现在的5G基站也不是什么太难的事情,貌似协议本身的漏洞依然存在。
其实,只要这个OBD像飞机的黑匣子一样只要收集了数据并且加上防篡改装置,就可以在查缉时通过有线连接获取或者即时开启无线链路来获取数据,没有必要一定实时上传。而且,真的故意躲避的,自然有办法屏蔽联网信号,造成上传故障,这个逻辑仍然是只管好人,不管坏人。但是让好人大大的增加了暴露的风险。
这些装置已经广泛的植入各种机动车辆,对于重型工业或者商用车辆还好,但装在旅居车或者家庭用的新能源汽车上,总觉的对个人隐私侵犯过多。不知道当时这政策出台的时候是如何通过的。
参考:
5.1 国六重型车远程排放监管要求
2018 年 8 月发布的《重型柴油车污染物排放限值及测量方法(中国第六阶
段)》(GB 17691-2018)标准中规定,从 6a 阶段开始,车辆应装备符合附录 Q
要求的远程排放管理车载终端,鼓励车辆按本标准附录 Q 要求进行数据发送。
从 6b 阶段开始,生产企业应保证车辆在全寿命期内,按本标准附录 Q 要求进行
数据发送,由生态环境主管部门和生产企业进行接收。
5.2 营运车辆在线监控标准
2011 年,交通运输部要求营运车辆必须与全国道路货运车辆公共监管与服
7
务平台进行联网,对运营车辆运行位置和时间进行监控,编制并实施了《道路运
输车辆卫星定位系统》系列标准。该系列标准对营运车辆上报位置信息所需要的
车载终端、车载终端与平台的通讯协议、平台间通讯协议及平台功能进行了规范。
5.3 电动汽车在线监控标准
GB/T 32960《电动汽车远程服务于管理系统》标准于 2017 年正式实施。标
准包含三个部分:总则、车载终端和通讯协议及数据格式。总则(GB/T 32960.1)
定义了系统的术语和定义、总体结构和一般要求。车载终端(GB/T 32960.2)规
定了电动汽车远程服务于管理系统车载终端的技术要求和试验方法。通讯协议及
数据格式(GB/T 32960.3)规定了通讯中的协议结构、通讯连接、数据包结构与
定义及数据单元格式与定义。
来源:
http://www.mee.gov.cn/xxgk2018/xxgk/xxgk06/202004/W020200423368282417631.pdf
加了一个房车群,群主给大家算算房车的价钱,房车分底盘和上装两个部分。底盘就是汽车厂家提供的某个客车或者货车底盘,包括发动机、驾驶舱、整个车架。上装就是在底盘的可背负的基础上做装修。
B型车是在底盘的车厢内部做改造,C型车还要另外做一个车厢外壳,这个外壳一般会用保温性能更好地三明治夹板。
所以总的来说,房车的价钱分为两个部分,底盘的价格和上装的价格。底盘一般几万到几十万不等。上装可以参照厨房精装修的标准计算,当然,房车厂不会这么引导,但实际上就是装修施工费用加上设备材料费用。厨房十来平米,房车也是十来个平米。
目前房车市场还不是很透明,像房山的房车世界里面都是卖的利润比较高的C型房车,B型车因为车厢都有了,只能做内装修,看起来工价更透明,利润有限。
如果从折旧的角度算,底盘的折旧基本上就可以参考一般二手车的折旧率,上装跟二手房的装修一样,装得再好,也不值多少钱,折旧率高的很。假如底盘按每年10%到15%算折旧,上装就要按30%~50%算折旧了。所以市场上四五十万的两年二手房车差不多可以五折拿到。
没法用了,只能作为临时的测试浏览器使用。