2017年11月

【原创】极夜KM910智能遥控系统体验

很有幸成为极夜KM910智能遥控系统的体验用户,11月25日发的货,在昨天的时候,就已经有极友收到货了,而我还在焦急的等待。直到今天上午上班的时候,收到短信,让到公司楼下车库的菜鸟驿站取件,我就知道是等待的东西到了,这快递还是很给力的,从南京到大连用了3天的时间。
这次活动送出的是第二代遥控系统,第一代遥控系统我没使用过,与第一代相比有哪些改进,我这里也无法给出。
快递.jpg
图1 拿到快递后赶紧来一张

拿到公司之后,迫不急待的打开包装,虽然外面只是一个快递袋子装的,但是里面还用的气泡袋子包了一层,能够保护主机不被伤害。
保护袋.jpg
图2 内部的保护袋

打开保护袋,可以看到一个非常精致的小盒子,简约大气、端庄文雅。盒子有一点点的压痕,没关系,瑕不掩瑜。
盒子.jpg
图3 精美的包装盒

盒子-2.jpg
图4 精美的包装盒
盒子的背面,是产品的相关参数和公司联系方式等基本信息。我们看到的产品参数如下:

品名:智能遥控系统KM910
按键数量:63键  重量:130g
触摸板:多点触控
传输及控制:2.4G RF 无线射频技术
传感器:3轴陀螺仪+3轴加速计

盒子-3.jpg
图5 盒子背面的基本信息

打开盒子,可以看到里面有:主机1个,接收器1个,USB线1条,说明书2份(中、英文各1份)。
内-1.jpg
图6 开盖有奖

遥控器拿在手里,很有份量,可能是有电池的缘故。
主机-1.jpg
图7 主机

主机.jpg
图8 主机

可以看到,接收器比较大,如果能做的如无线键鼠那样小巧就更好了,如果可以支持蓝牙和无线双模,那就更加完美。
接收器.jpg
图9 接收器

打开包装袋,拿出主机,可以看到做工不错,按键手感舒适。不知遥控器的代工是哪个厂家,但从做工上看,是对得起129元的零售价的。
主机-2.jpg
图10 主机主操作区

主机特写-1.jpg
图11 主机主操作区细节

主机特写-2.jpg
图12 主机主操作区细节

主机特写-3.jpg
图13 主机主操作区细节

主机背面是键盘和触控板,在这么小的面积下,布局43个键,打字是很不方便的,有打算用这个进行文字录入的,可以打消这个念头了。打字的时候,必定需要双手分别握住两端,用大拇指在键盘上打字,而右边却上触控板,影响右手的输入操作,而且当使用触控板的时候,也会很不方便。当然,也可以说她本就不是用来打字的,带个键盘只是为了在必要的时候可以应下急。这个说法当然没问题,但是既然已经带这功能了,为什么不能设计的更合理一些呢?
主机-3.jpg
图14 主机背面键盘区域

主机-5.jpg
图15 主机背面键盘区域

主机特写-4.jpg
图16 主机背面键盘特写

主机特写-5.jpg
图17 主机背面触控板

因为没人给拍照,下面就只能给出单手持键盘,看下效果吧,体会一下。
单手持.jpg
图18 手持键盘

再看下两侧,左上是遥控器的开关,右下是microUSB接口,说明书中并没有说这个接口是做什么用的,我的理解是只能用来充电,是否能编程还需要验证。
主机特写-6.jpg
图19 左上的主机开关

主机特写-7.jpg
图20 右下的USB充电接口

下面,我们来看一下电池。在主机正面的下方,可以把面板打开,就能看到里面的电池了。打开之后可以看到,主机使用的是BL-5B电池,但是选用的是300mAh的,阿里巴巴上批发价格大概在2元以下,续航能力待验证。
电池-1.jpg
图21 电池

从英文说明书上看,图片上没有印有极夜的Logo,感觉让,这个遥控器应该并不是极夜自行设计的,而是购买的工厂的现成的方案,之后贴的牌子。
说明书.jpg
图22 中、英文说明书

以上主要说了下外观方面,后面说下操作体验。
要遥控电脑,首要的当然是操作方便,而极夜的这款智能遥控器带的飞鼠功能,确实是方便了很多。
飞鼠.mp4
视频1 飞鼠操作

如果是晚上使用的话,背光灯是少不了的,而她提供了7种颜色的灯光可以选择。
背光灯.mp4
视频2 背光灯选择

我尝试输入了几个文字,本来是要输入“极夜智能遥控系统KM910”,但是在输入第一个字“极”的时候,发现“S”键失灵(因为我使用的是五笔,极的五笔码是SE),无法完成这个任务,可能是因为我的运气不好吧,希望类似情况不要太多。另外一个问题是,按键非常容易连击,比如输入“遥控”(五笔码ERRP),会输入成“ERRR”。
另外,发现少了Ctrl键,而且不支持编程,在需要使用Ctrl键的时候,也无法使用其他键来代替。如果能支持“www”键或“@/com”键切换为Ctrl键的话,会更好一些。

就今天体验到的这些,总结一下:

优点:
功能丰富;做工不错;性价比比较高。
缺点:
键盘布局不合理;缺少Ctrl键;电池容量小;质量把关不严。
希望改进:
支持双模,接收器可以做的更小一点;键盘重新布局,使适合手持录入。

第一次写评测,毫无头绪,想到哪写到哪,还望多包涵。

时间不早了,已经到半夜时间了,其他更多的体验我后续再补充。

2017年11月29日更新:
关于坏了个按键的问题,已经联系他们了,给换个键盘,这几天我给快递过去,换完键盘之后再继续写。

Mongodb Driver for C#/.Net的增删改查

我之前在《.Net Core系列教程(三)——使用Mongodb》中,说过在.Net Core下,怎样使用Mongodb数据库,这篇文章就作为它的延伸,来说下在.Net中,怎样使用Mongodb Driver来进行最常用的增、删、改、查操作。当然,我这个的环境是在.Net Core下,在其他版本的.Net环境下,相差不大。我这实例中使用的驱动是2.4.0版的,而现在最新版本是2.4.4。
闲言少叙,还是撸代码吧。
先按《.Net Core系列教程(三)——使用Mongodb》文章中的方法,设置好数据库的相关配置,之后取得数据库:

    var db = client.GetDatabase("database");

这个代码可以按照自己的实际需求来写,比如这样:

    var db = client.GetDatabase(MongoUrl.Create(settings.Value.MongodbConnection).DatabaseName);

取得一个collection,这里以news表为例,Models.News是News的实例类:

    var collection = db.GetCollection<Models.News>("news");

我们再准备一下具体要操作的数据:

    var request=new Models.News(){title:"新闻测试",body:"这里是新闻测试的内容",author:"张三","status":True};

这些前提准备好了之后,再开始具体的数据库操作了

1.增加操作:

    collection.InsertOne(request);

2.修改操作:

    var query = new BsonDocument("_id", new ObjectId(id));
    var dict = new Dictionary<string, object> {
        { "title",request.title},
        { "body",request.body},
        { "author",request.author},
        { "status",request.status}
    };
    var data = new BsonDocument(dict);
    collection.UpdateOne(query, new BsonDocument("$set", data));

3.查询操作:

    //查列表
    int page=1;  //当前页号
    int pagesize=50;  //每页50条记录
    BsonDocument query = new BsonDocument(){"author":"张三","status":True};
    int total = Convert.ToInt32(collection.Count(query));  //数据总记录数
    var list = collection.Find(query).Sort(new BsonDocument("_id", -1)).Limit(pagesize).Skip((page-1)*pagesize).ToList();  //带分页查询,按_id倒序排序
    
    //查单条
    BsonDocument query = new BsonDocument("_id", _id);
    var data = collection.Find(query).FirstOrDefault();

4.删除操作:

    ObjectId _id = new ObjectId(id);
    collection.DeleteOne(new BsonDocument("_id", _id));

以上只是其中几个比较简单的用法,其实还有很多实现方法,比如异步方法、插入多条等等,其他的等有时间再整理吧。

【转】jetbrains全家桶授权服务器

授权服务器打包成Docker镜像,目前的话整个镜像是87M左右。全部在一个RUN中构建,减少了docker镜像的layer。

服务使用

网址
http://idea.jinfeijie.cn

使用方法

使用方法是非常简单的。只需要的License Server 处填写http://idea.jinfeijie.cn,如下图。
006tKfTcly1fl3kzogwhfj309g08c75e.jpg

速度测试结果

原本是想使用百度的云加速的,但是明明备案的域名却显示未备案。所以就直接用upyun进行CDN加速了。日后会加入七牛的加速。
看一波全国的测速。
006tKfTcly1fl3l0cq9ghj30fr0btgp7.jpg
授权后的效果
006tKfTcly1fl3l0p0673j30fr09wanv.jpg

个人部署

如果不喜欢我的网址,觉得自己搭建一个会更加好,可以使用docker镜像进行构建。

部署服务

  1. 通过Dockerfile文件部署服务
    本地构建 docker build -f Dockerfile -t idea ./

本地部署 docker run -d -e PORT=8888 -e USER=jinfeijie.cn -p 8888:8888 --restart=always --name=idea idea

  1. 通过远程dockerhub部署服务
    获取远程镜像 docker pull mrjin/idea:latest

本地部署镜像 docker run -d -e PORT=8888 -e USER=jinfeijie.cn -p 8888:8888 --restart=always --name=idea mrjin/idea:latest

docker参数

环境变量默认值备注
PORT8888内部端口号
USERjinfeijie.cn授权用户

Nginx 反向代理

server
{
        listen 80;
        #listen [::]:80;
        server_name idea.jinfeijie.cn;
        root  /home/wwwroot/idea.jinfeijie.cn;
    location / {
        proxy_pass http://127.0.0.1:8888;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    error_log /dev/null; #error_log end
    access_log  /home/wwwlogs/idea.jinfeijie.cn.log;
}

原文:https://jinfeijie.cn/post-328.html
感谢原作者的贡献,如果手头宽裕的话,还请支持正版。

老徐洗牙记

老徐一直自认为自己的牙齿是最棒的,虽然长的能难看了点,但是还是很结实的。直到有一天,发现自己左边的牙齿不敢吃东西了,而且有难以去除的口臭,哪怕天天刷牙、用牙线、嚼木糖醇也济于事,这两个问题一直困扰着老徐。看来是要解决这两个问题了,老徐做出了一个艰难的决定——去洗牙!
为什么说这是一个艰难的决定呢?因为在老徐的眼里,不不,是在老徐的心里,对弄牙是恐惧的,一提到弄牙,想到的就是电钻、钳子、锤子等比较暴力的工具,太吓人了有没有?在老徐做了要洗牙的决定之后,也是一直没有开始行动,因为对洗牙的恐惧,加深了拖延的程度。
直到今天,嗯,是今天上午,老徐出发了,向着口腔诊所出发。诊所离老徐家很近,和口腔诊所的老板倒不能说熟,但也是认识,因为老徐的小姨子和老婆都去弄过牙。
到了之后,里面还是挺忙的,在外面候诊区等了一会儿,才有了空台,进去了之后,因为是第一次洗牙,心中难免比较忐忑,不安的问医生洗牙的时候会不会疼。开始洗了,大部分时候都不疼,有时候都没有什么感觉,只是过程中需要一直张着嘴巴,会比较累,中间的时候,会有疼的时候,但是不是太多,出了些血,也不是太多,比平时的牙龈出血能多一点。在洗的过程中,老徐甚至会想,如果中途我不想洗了,会怎样。
不是太好,左边的牙不能吃东西,是左上第二颗牙有个洞,这个洞还是给堵上吧,免的以后给我整出现什么妖蛾子来。大概一个小时左右,牙洗完了,准备要堵洞了,需要把洞里面的脏东西清理出来,清理到最后感觉有些疼。而且清理的过程中,发现在旁边也就是第三颗牙上也有个洞,一咬牙一跺脚(大雾,当时不能咬牙也不能跺脚)两个都堵了,来都已经来了,都上案子上了还怕这点事?
整个过程很顺利,一次性完成了第一次洗牙和修牙堵洞这两件事。
是的,这个老徐就是我,虽然堵牙并不怎么疼,没法和拔牙相比,但是整个过程真的是很难熬,经历过一次之后,真的不想再经历了。好好爱护自己的牙齿吧。
最后,附上一个关于怎样保护牙齿的节目:春妮的周末时光 :爱牙日的聚会 郑渊洁丁鹏月亮

IIS服务器域名证书续订

我们知道,在Windows的IIS服务器上,使用域名证书开启HTTPS并不是非常方便,在IIS 7.5及之前的版本上,添加HTTPS站点时,并不能指定主机头(即域名),需要加完之后,到IIS的配置文件中去修改配置,增加了一定的难度;而且如果之后相关的配置有变动,也可能会影响到之前的HTTPS站点,有很多坑。而域名证书到期,需要换证书的话,如果之前添加过很多个HTTPS站点,都会受到影响,需要一个一个的站点重新选择证书,重新修改IIS的配置文件,是一个让人头疼的操作。
那如果是域名证书到期了,有没有什么办法可以简化我们的操作呢?答案是有的,那就是使用证书续订操作。
证书续订,需要的证书格式是cer的,我们以从阿里云上申请的通配符域名证书为例来说一下。从阿里云后台下载下来的域名证书格式,有pem和pfx格式的,唯独没有cer格式的,需要自己转换一下。下面先说下格式转换吧:
pem转cer,需要使用openssl,另外需要key文件。一共需要进行3次转换操作,才能转成cer格式:
1.先从pem转到p12,之后需要设置密码:

OpenSSL> pkcs12 -export -out a.p12 -in 1.pem -inkey 1.key
Loading 'screen' into random state - done
Enter Export Password:
Verifying - Enter Export Password:

2.从p12转为crt格式,输入第1步设置的密码:

OpenSSL> pkcs12 -in a.p12 -out b.crt -nokeys -clcerts
Enter Import Password:
MAC verified OK

3.最后一步,从crt转为cer:

OpenSSL> x509 -inform pem -in b.crt -outform der -out c.cer
OpenSSL>

pem2cer.png
使用OpenSSL进行证书格式转换

格式转完之后,把生成的cer文件上传到服务器,随便找个地方放着。打开IIS管理器,选中IIS管理器的网站根,在右侧功能区,打开IIS下的“服务器证书”
1.png
打开服务器证书

选中要续订的证书,之后点击右侧栏的“续订”
2.png
选择续订

打开“续订现有证书”对话框,选择最后一项:“完成证书续订申请”
3.png
完成证书续订申请

选择我们转换为cer的新证书
4.png
选择证书

点击“完成”按钮,完成续订申请
5.png
完成

之后就已经完成了,我们随便打开一个https网站,查看下证书详情,会发现过期日期已经是最新的了。

Windows版OpenSSL下载:点击下载OpenSSL

分类

最新文章

最近回复

归档

标签云

C# .net core asp.net 情感 SQL mongodb sql server EasyUI linux 身份验证 typecho .net sql注入 安全 kms 激活 MVC https IIS 高并发 IE 坑爹 服务器 mysql Combobox Datagrid 口语 数据抓取 远程下载

其它