天作之合:NFC和指纹扫描(写在iPhone6发布之前)

9月9日,也就是下下周,苹果召开发布会,口号是:Wish We Could Say More(真想透露点内幕)。

毫无疑问,这个发布会肯定是留给iPhone6的(传说中还会发布穿戴设备:智能手表)。

iPhone6的谣言中,有一条是:新款iPhone会配有近场通讯功能,也就是NFC。

什么是NFC,NFC是一种标准,当两个设备都支持NFC的时候,两个设备接触一下,就可以连接通讯了。

常见的NFC应用是,两个手机碰一下就把照片传输过去了;手机和音箱碰一下就可以让音箱放歌了;手机和收银机碰一下就可以把账单付了。

听起来很强大的功能,只有一个弱点:就是太不安全了。试想一下,一旦手机被盗,小偷就可以去商店用你的手机刷卡。甚至不用偷你的手机,居心不良的商家完全可以把NFC刷卡机安装在饭桌背面,当你把手机把桌子上一撂,你的钱就被偷了。

从iPhone5到5S,iPhone会配有NFC功能的谣言从未停止过。不管外界对NFC的期盼有多高,苹果始终不为所动,最关键的原因,应该NFC的安全问题。

但这次,却有所不同,因为iPhone有了更安全更方便的守护神:指纹扫描。

iPhone5S推出的指纹扫描,有两个特点。一个是识别速度非常快非常准确,用户用惯了以后,扫描指纹就和(呼吸)滑动解锁一样自然。另一个是安全,以iPhone的地位,推出指纹扫描那一刻,就吸引了无数黑客的攻击,现在一年过去了,虽然号称破解功能不断取得进展,但实际上5S的指纹扫描就是牢不可破,根本原因就是苹果壶底抽薪,费尽苦心地把指纹扫描和其他模块彻底隔离。

如果使用NFC刷卡的时候,需要你顺手扫描一下指纹,那么安全的问题就解决了,而易用性也得到了保证。

天作之合。

(理论上看起来很美,有没有就看下下周了)

 

非典型超级英雄(银河护卫队影评)

提到超级英雄,大家能想到什么。肌肉男,或者肌肉女,有着超能力,平时隐瞒身份,装孙子,关键时间换衣服上场,搞定坏蛋,碰到比较坏的坏蛋,就会想办法寻找英雄的弱点,什么特殊的矿石啦,什么童年心理阴影,绑票老爸老妈女朋友,要不就是想办法给你打药水直接打回原型,个别坏人还喜欢玩bulling的游戏仗着自己有更强超能力欺负弱小。如果超级英雄是个组合,就想办法让他们吵架,吃醋,为了女人大打出手,各个击破,实在不行还是老规矩,大老怪一打n,最后老怪脚底一滑自己摔死英雄赶快补刀。

猜猜银河守护者是哪一种?唔。和最后一种有点接近。但更低级一点。
他们是:男主角是个自大狂加吹牛大王。女主角是个手脚灵便的小偷。三号是个话痨的小浣熊。四号只会说一句话三个单词打架时爱用手指捅你的鼻孔。五号智力约相当于小学生的白痴。
这帮奇葩碰在一起。号称是超级英雄,实际上就是草台班子,内扛,犯傻,互相拆台,逗你笑得满地打滚,他们轻松干掉老怪,影片到此结束,谢谢观赏。
剧情,你说剧情?这片子没有剧情。而且导演也没有假惺惺地搞狗血剧情假装自己在乎。所有剧情都必须为搞笑服务。
就是一群口相声,一会耍宝,一会卖乖。这片子能够让你忘掉剧情。大家听完相声会记得剧情吗?不会。就记得段子了。这片子就是这样。全是段子。段子段子段子。over。
音乐也超赞。一开始男主角就抓了条蜥蜴当麦克风大唱卡拉OK。后面,男主角被一遍一遍电击的时候则大放特放《What a feeling》这首歌笑得我直抽筋。
这片子开启了一个新流派:用群口相声的阵容拯救银河系。(有点像周星驰的《功夫》加入星球大战的元素)。

使用Python自动进行电影分类

目前家庭影院的组合是:小米盒子+NAS(西部数据WD MyBook Live)。

NAS把电影目录共享(SMB)出来,小米盒子负责播放。

最近完美主义的癔症再次发作,觉得这种方式下电影不好分类:按照年份,按照类型,按照评分。

想了好久,终于找到了一个最简单易行的办法,就是对NAS上的电影创建Hard Link(小米盒子不认识Symbolic Link)。

比如年份,/Movie/Year/2012。然后在目录下,通过ln source_file dest_file,建立一个hard link。

这样你要按照年份找片子,就进年份目录。如果想找类型,就进类型目录。再写个shell脚本来批处理建立hard link。

土了点,不如Synology的软件可以抓封面,但将就吧。最后,我的NAS用的是MyBook Live。

要建立hard link,必须先ssh进去才行。在Mac下先mount再ln是不行的,提示”操作不支持“。

既然这个做法是机械性的,再考虑到BT下载的目录很多都是结构性的,所以就写了一个python脚本来帮我做这个任务。

要求是:下载的目录是类似于这样的(第一部分是名称,第二部分是年份,第三部分是附加信息)

Shame.2011.720p.BRRip.XviD.AC3-ASSASSiNS
The Place Beyond the Pines 2012 720p BRRip x264 AC3-JYK

代码如下:

__author__ = ‘yichen1976′

import os
import re

import logging

LOG_FILENAME = ‘./logging_movie_sort.log’
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG, format=”%(asctime)s – %(name)s – %(levelname)s – %(message)s”)
downloadFolders = ['/shares/Public/WWW/TR-Downloads', '/shares/Public/BT-Downloads']
#downloadFolders = ['./test/Downloaded']
destFolder = ‘/shares/Public/All’
#destFolder = ‘./test/Dest’
def sortOutMovie(folder):
print ‘begin to sort out movie:’, folder
subFolders = [file for file in os.listdir(folder) if os.path.isdir(os.path.join(folder, file))];
for subFolder in subFolders:
print ‘processing:’, subFolder
list = re.findall(‘(.+)[\. ]([12]\d{3})[\. ].+’, subFolder)
if list == None or len(list) == 0:
logging.debug(‘folder format invalid: ‘ + subFolder)
continue
movieInfoList = list[0]
if movieInfoList == None or len(movieInfoList) < 2:
logging.debug(‘folder format invalid: ‘ + subFolder)
continue

movieName = movieInfoList[0]
movieYear = movieInfoList[1]

print movieName, movieYear

yearDir = os.path.join(destFolder, ‘Year’, movieYear)
if not os.path.exists(yearDir):
os.makedirs(yearDir)

yearMovieDir = os.path.join(yearDir, movieName)
if not os.path.exists(yearMovieDir):
os.makedirs(yearMovieDir)

subFolderFullPath = os.path.join(folder, subFolder)
movieFiles = [file for file in os.listdir(subFolderFullPath) if file.endswith('.mp4') or file.endswith('.mkv') or file.endswith('.avi')];

# print movieFiles;

for movieFile in movieFiles:
sourceMovieFile = os.path.join(subFolderFullPath, movieFile)
targetLinkFile = os.path.join(yearMovieDir, movieFile)
os.link(sourceMovieFile, targetLinkFile);
# print sourceMovieFile, targetLinkFile

def main():
for folder in downloadFolders:
sortOutMovie(folder)

main()

 

鸡头还是凤尾

鸡头还是凤尾

2010年的笔记:
我有时候也蛮苦恼的。
虽然无论从哪个角度来看,我也算小半个成功人士。有妻有女,有房有车,自力更生,家庭美满。
但有一点我从高中以来一直苦恼我。就是我的能力。
我有很多恶习,其中一个就是好为人师,并乐在其中。某种程度上,我也算半个墨水瓶,但是我始终扮演的是凤尾的角色。
生活在一堆牛人中,到底是好还是不好。
要说鸡首,其实在华为的后期我也享受过这样的生活,所谓温水中泡大的青蛙。反正项目组没啥牛人,自己也可以混个小角色。但代价就是愚蠢加自大。那种生活,也难说是我追求的境界。
生活在一群鸡中,我就是鸡头。生活在一群凤凰中,我就是凤尾。
当我是鸡头的时候,我感觉自己是温水中慢慢被煮熟的青蛙,对自己的不思进取充满了怀疑和困惑。当我是凤尾的时候,我会因为自己的渺小而自惭形秽。而心理分析的特点是,即使你明白它,也不能避免它,并且经常会忘记自己井井有条的分析。
现在我又一次来到了一群凤凰中学习生活。这就是我苦恼的原因。
当然好处就是进步很快。
开始写这个笔记的时候,我以为是我的能力问题。但其实,这是个适应环境的问题,虽然我自己有时候会意识不到这一点。
大体上而言,我不是一个充满自信的人,一般而言,我追求百分之一百的把握,如果没有,我就会缺乏自信。
天生我才必有用。车到山前必有路。
这话题其实还可以扯得更远,比如我的初中高中的对比。初中我是鸡头,高中我是凤尾。一个人很容易迷失自己。
刚进公司的时候,倍感压力。火车站有个公益广告,画的是个小丑,写的是Do not overload youself,别过高要求自己。深感安慰。
更有一次在车站上看到一个布里斯班的移民广告,为了呼吁大家搬到那里去住,广告语赤裸裸地写的是:“你还在工作?这时候在布里斯班我们已经休息了“(具体记不大清楚了)。
澳洲的生活似乎没有想象中那么轻松。这可能和人的性格有关系。无论环境如何改变,我似乎也跳不出这种围城的状态,鸡头和凤尾我似乎做得都不甘心。
农民的出生,总是让我感到生活的压力,这个压力我很早就感受到了
随着对工作的一步一步地适应,我想自己,也会再一次成为鸡头。
每个人的生活理想都是不一样的。我的理想,曾经是做一个牛B的软件,成为bill gates那样的人物,事实上我没有那个天赋。。。从这一点来说,我永远是凤尾。。。而且更糟糕的一点是,我常会觉得自己连凤尾都配不上。
2014年:
现在的状态,再一次达到我有史以来最好的鸡头。
有趣的一点是:当年我觉得在和一群凤凰共舞,现在回头看看,发现这群凤凰也不比我高明多少。
所谓的“五岳 归来不看山,黄山归来不看岳”,以及“山外有山,人外有人”。
不管内心如何犹疑,有一些事实是毋庸置疑的。
第一点,如果当年我留在华为,肯定没有现在这样开心。我会郁郁于几点:技术,氛围,以及自己没有勇气去尝试。尝试的结果另当别论,有成功,有失败,有人努力了一辈子到最后得到一个屁。但对我而言,我至少可以骄傲地说,老子试过了,老子能力不行考不了第一名,但是老子的成绩上升了40名。成功最好,不成功失败了,这点想法对我来说,会是一种安慰。
第二点,我一直不是鸡头,也许永远也做不了鸡头。我对未来依然充满了恐惧,害怕自己老无所依。但现在的我,是最好的我。我一直在进步。如果是凤尾,我这个凤尾要比十年前变得更有本事了。
第三点,我永远只能和自己比,牛人多得就是。去看那些牛人写的书,能够看懂,我就觉得自己在和伟人同行。而每一次进步,或者说进化,都让我从内心为自己感到高兴和自豪:老子终于又熬出头了,原来看起来很难的东西其实也不算太难,过几年我说不定还可以说这些东西太简单了(哈哈)。
我现在梦想着做凤头,凤头不是那么容易做的。而鸡头,其实也没有那么好,因为说到底,当一只鸡其实也很可悲,眼界,胸怀,都小得可怜。等我老了以后也许会满足做个鸡头,有人为了你以前的成绩而尊重你,不用再进步,不用再努力。但我还没有老到那个程度。
人总是会失败的;因为人都会死的吗。所以别害怕失败。失败已经写在你的基因里面了。
“人害怕的时候还能勇敢吗?”
“人唯有害怕的时候才能勇敢。”

苹果的野望:如何征服客厅

苹果的野望:如何征服客厅
这周,苹果宣布引入iOS和OSX的系统扩展功能。第三方开发者可以给iOS和OSX开发系统扩展,比如说照片编辑功能。
关于这个功能,最有意思的地方是,它的工作方式。第三方开发的扩展,是沙盒模式的,它无法访问其他App的数据,甚至无法访问父App的数据。而它能够获得的数据,也是极其有限,被限制得死死的。通过这种方式,保证了系统安全性,也保护了用户的隐私。
苹果同时宣布,AirPlay功能(把视频串联到AppleTV机顶盒),不再需要WIFI,而是通过蓝牙直接连接。直连,意味着速度更快,反应更灵敏。特别是对办公室或者学校来说,这一功能会很有用,因为这些地方常常有严格的安全要求。而当探亲访友时也很有用,你就可以把iPhone的视频直接串流到朋友家的Apple TV上了(不再需要连上朋友家的无线网络)。
游戏手柄的API也得到了改进。新的API,允许你把一台设备上的输入,直接传输到另一台设备上。这意味着,你可以使用iPhone当作手柄,控制iPad或Mac上的游戏。
最后,苹果还宣布了新的3D游戏开发引擎Metal,强大的3D性能,可以开发出更华丽的游戏。
所有这些:系统扩展,直连AirPlay,手柄API,3D开发引擎,四样东西合起来,我们看到了苹果的惊人的野心:颠覆游戏主机产业。
不用多久,我们就可以看到新款的AppleTV机顶盒。新的机顶盒将成为你的客厅数字枢纽。当你打开iPhone开始玩游戏,你可以激活新的AirPlay系统扩展,紧接着,你的iPhone变成了一个手柄,游戏会直接在AppleTV机顶盒上运行,并显示在电视机的大屏幕上。
下面是我自己的一些想法:

我曾经是一个游戏主机玩家,但我的XBOX 360已经尘封数年了。游戏主机很好玩很有意思,我依然热爱游戏(还没有老到对游戏失去兴趣),依然觉得在GTA里里面开开飞车,或者在使命召唤里面杀杀僵尸,很刺激,也很有意思。但我也不再年轻,不再能够一玩三四个小时,把整个周末全部消磨在电视机面前。通常我只有可怜的十分钟时间,经常急着出门的时候在多人游戏中忍痛认输(没有稳定的网络了)。
iPad/iPhone上的游戏成为我的主流,就因为它短小精悍,随时可以玩一玩。也因为移动设备上的游戏更便宜更容易获取。一张主机游戏,必须去店里购买,至少也得二三十刀,新游戏更是要八九十刀。移动设备上的游戏,一般都只要一两刀,免费的更是大把,几分钟就可以下载完开始玩。
和AppStore相比,主机游戏的销售方式还处于石器时代。
当然了,iPad/iPhone上的游戏无法替代那些真正的核心游戏。虽然我在iPad/iPhone上玩游戏的时间要比其他方式多得多,但有时候,我依然会玩一把星际或者Diablo3,甚至有时候还会考虑是不是把XBOX开起来玩一下GTA4。但不要紧,就和XBOX和Wii争夺的观众不同一样,苹果的休闲游戏的受众完全不同。
剩下的问题是,是不是有必要把iPad映射到大屏幕上。对于BoomBeach之类的策略类或者种田类游戏,完全没有必要。但对于动作类游戏,其实还是有点意思的,比如说3D射击类游戏,比如说赛车类游戏,不得不说,如果可以在大屏幕上玩,的确要比在小屏幕上过瘾得多。
最后一个问题是操作的问题。在触摸屏上玩游戏,用户可以看到手指点触到什么位置了。问题是,映射到大电视以后,这个点触的操作就会变得相当困难,特别是你眼睛看着电视进行盲点的时候。这个问题,我觉得有一类游戏(非常依赖正确点击)会彻底死菜,另一类游戏(依赖于拖动,点击只是辅助或者点击位置不重要)则完全不受影响。对于后者,苹果可能会通过在屏幕上添加虚拟手指(一个圆圈)来提供视觉上的指示,也可能根本就不做什么,而是直接要求开发者自己考虑适配这种盲打的场景。
提到让开发者自己适配大屏幕,我们还可以期待另一件事:多人同屏合作。每个人一个iPhone作为遥控器,在大屏幕上同屏竞技,一起砍杀,一起飙车。
虽然iPhone可以充当遥控器,对于没有iPhone的用户,也可以直接买一个手柄。
别忘了2013年底苹果买下了微软Kinect的幕后功臣,以色列的一家公司:Prime Sense。。这意味着苹果在Apple TV内集成类似于Kinect那样的体感游戏已经毫无问题(人才和专利都到手了)。
如果你有玩过Wii或者Kinect上的体感游戏,你知道这意味着什么了:全家老少会在电视机前跟着星战角色狂舞,或者挥舞球拍对战网球,或者坐着皮划艇在热带丛林的激流里穿越。
喔,别忘了,苹果还有Siri。连微软的XBOX都支持语音控制的现在,苹果对Apple TV加入语音控制,简直是迟到了好多年的感觉。喔,别忘了摩托罗拉的Moto X,世界上第一款24*7监听用户声音输入的手机,既然苹果已经有M7记录运动数据,那么加入一个类似的协处理器给AppleTV,让用户随时可以通过语音或者手势来唤醒AppleTV会很难么?
既然有了摄像头,顺便支持一下自家的HomeKit,做一个远程监控的功能,应该也不难吧。就算苹果不做,第三方开发者会想不到这个需求吗?
AppleTV的几个成功的基因:
  • 比起PS4/XBOX one,AppleTV的售价只有他们的五分之一。
  • 游戏的售价低于主机游戏的十分之一甚至免费。
  • 八百万注册开发者组成的强大阵容(谁都知道苹果AppStore好赚钱,AppleTV专属游戏无疑会成为新的掘金圣地)
  • 体感游戏/Siri/语音控制/协处理器随时待命/远程监控/HomeKit。
如果苹果能够在保持住低价的情况下,做到以上的功能,有理由不买吗?
Page 1 of 27412345678910...203040...Last »