又弄了一台J1900的电脑

J1900真的是一款非常不错的CPU, TDP功耗10W, X86架构,支持64位,省电且生态完全,这次特地搞了台二手的国光主机放家里来就一直开着。 这电脑是银行淘汰下来的,我只买了个主板和机箱(主板已经包含了J1900 CPU和散热器),自己买个8GB的内存和mSATA硬盘放上去,就用起来了。装了一个ubuntu server,效果棒棒的。

搞了个网络继电器的开发板

我的网络继电器用起来真的挺顺手的,特别是软件方面,现在还抽了一个简单的嵌入式操作系统出来,已经支持针对不同平台仅开发驱动就可以直接使用,所以特地搞了个继电器的开发板,主要用于移植软件到其它平台时开发测试使用。有了这个开发板,只需要买其它硬件平台的开发板就可以做软件测试了,软件差不多了再来做电路板这样效率高很多。 目前已经支持了4款芯片,以太网和wifi都可以了,接下来准备弄一个4G的主控芯片了。

整理了首基督歌曲歌词.

儿子女儿都喜欢听这个歌, 就整理了歌曲, 以便以后带着他们唱. Jesus Loves The Little Children/Jesus Loves Me This I Know/I Have Decided To Follow Jesus/When I Get To Heaven Jesus loves the little children, All the children of the world. Red, and yellow, black, and white, They are precious in his sight Jesus loves the little children of the world. Jesus died for all the children All the children of the world Red, and yellow, black, and white, They are […]

RFID卡存取控制, 笔记

RFID卡每个区分4个块, 前3个块为数据块, 第4个块为控制块, 控制块的结构如下: 密码A(6字节)|存取控制码(4字节)|密码B(6字节)   以下转自: http://blog.sina.com.cn/s/blog_9ed067ad01010i4v.html S50和S70的块分为数据块和控制块,对数据块的操作有“读”、“写”、“加值”、“减值(含传输和存储)”四种,对控制块的操作只有“读”和“写”两种。 S50和S70的每个扇区有两组密码KeyA和KeyB,所谓的“条件”就是针对这两组密码而言,包括“验证密码A可以操作(KeyA)”、“验证密码B可以操作(KeyB)”、“验证密码A或密码B都可以操作(KeyA|B)”、“验证哪个密码都不可以操作(Never)”四种条件。 这些“条件”和“操作”的组合被分成8种情况,正好可以用3位二进制数(C1、C2、C3)来表示。 数据块(每个扇区除区尾块之外的块)的存取控制如下表所示: 控制块(每个扇区的区尾块)的存取控制如下表所示: S50的每个扇区有4个块,这四个块的存取控制是相互独立的,每个块需要3个bit,四个块共使用12个bit。在保存的时候,为了防止控制位出错,同时保存了这12个bit的反码,这样一个区的存储控制位在保存时共占用24bit的空间,正好是3个字节。我们前面说存取控制字有四个字节(区尾块的Byte6~Byte9),实际上只使用的Byte6、Byte7和Byte8,Byte9没有用,用户可以把Byte9作为普通存储空间使用。各块控制位存储格式如下: 由于出厂时数据块控制位的默认值是C1C2C3=000,控制块的默认值是C1C2C3=001,而Byte9一般是69H,所以出厂白卡的控制字通常是FF078069H.

对比摩拜和ofo,我觉得ofo更牛逼

最近给客户做了一个类似摩拜的应用, 采用的智能锁的技术方案与摩拜的类似: 锁带GSM和GPRS及蓝牙, 自动同步位置到服务器, 带太阳能充电, 由服务器控制开锁。 这种方案的成本比较高,每辆自行车的成本要上千元。 另外一种市场上的共享自行车ofo, 使用的是锁是比较简单的密码锁, 内部带有一个gsm的芯片, 可以进行不太精确的gsm定位, 精确的定位可由使用者的app提供。不使用太阳能电池板, 内置一块不需要充电的电池, 由于与服务器的通信数量特别少(或许只需要在开锁和关锁时向服务器提交一下数据即可),所以电池的使用时间可以达到数月甚至一年以上。 两家公司的技术方案相比,其实ofo是更牛逼的,主要包含以下几点: 1. 用户体验: ofo的体验肯定会差一点,因为服务器是通过提供密码,由用户手工输入密码开锁(两种可能,一是采用类似银行口令卡的模式,通过精确的时间来算出当前的密码;或者还有更简单的,就是类似短信验证码的方式, 服务器随机生成一个开锁码, 用户在锁上输入码后,由锁提交到服务器验证, 验证通过后开锁);而摩拜是由服务器控制开锁, 只需要app上操作好即可自动开锁, 看起来更牛; 2. 前期成本: ofo的方案肯定比摩拜低很多, 成本低可以带来更加友好的商业模式(比如你300押金我只要100, 你1元1小时我5毛等等等), 光这一点, 完全可以抵掉用户的软件体验上的不足; 3. 后期运维成本: 可能从直观上看来, ofo的运维成本是比摩拜高很多的, 但实际确不一定。 首先,由于智能锁是运行在恶劣环境下的,所以报废率肯定都是比较高的。摩拜的锁技术含量更高,涉及的芯片和外围设备比较多,出现问题的概率肯定高于ofo的简单锁;而且摩拜换一把锁、一个太阳能电池板的成本也是大大高于ofo的成本; 其次,摩拜因为是服务器控制开锁, 所以锁与服务器是要保持一个长连接状态,而ofo不需要与服务器保持长连接, 当用户输入了密码时、锁成功打开或者锁关上以后,再向服务器发个短连接交互一下状态即可, 如果一辆车不使用, ofo基本可以做到不交互数据,那么给运营商的流量费用,绝对是大大低于摩拜的; 最后是电池,很多人觉得ofo到批量换电池的时候肯定是个大成本, 其实也不一定:ofo就算每一年所有车统一换一次低成本的不可充电电池, 成本也不一定比摩拜换电池的成本高, 在恶劣环境下运行的充电电池,我感觉差不多也就一年左右的寿命。而且如果ofo所有自行车统一换电池, 或许一两个月的工人就全部搞定, 而摩拜,估计得长期养着大量维护人员去给自行车换电池。 所以,从这些方面比起来, 我认为目前ofo其实是更胜一筹的。您觉得呢?

Facebook如何知道你可能认识的人

Facebook经常会向注册用户推荐可能认识的人,而且你会发现他推荐的人还挺对的,而且大多数是自己的同事,这种是怎么做到的呢? 其实实现也挺简单的,虽然我下面说的不一定是他们真正的做法: 1. Facebook向所有用户的注册邮箱发送广告邮件(或者这种推荐邮件),邮件里插入一张图片,图片中包含接收人的帐户信息. 这是常用的统计方法之一,实现方式比如在邮件里插入 <img src=’path/to/static?uid=收件人的uid’> 2. 当你查看这封邮件时,会自动请求这个地址,服务器可以得到你的ip和用户id关联的信息 3. 如果你的同事也注册了facebook,他也会收到广告邮件,如果他也点开来看了一下的话,同样可以搜集到他的uid对应他所在的ip. 如果你们都在公司上班的时候看了广告邮件,你们的ip一般来说就是一样的. 4. 如果同一天内,同一个ip里有不同的用户看了广告邮件,那他们是认识的人的可能性是非常大的.