照片添加GPS信息

在玩Ingress之后的很长一段时间内,我觉得如果照片没有地理位置信息是一种缺失,而去年买的 Nikon 单反没有GPS模块,Nikon提供的GPS模块需要单独购买价格不便宜并且携带不方便,于是我找到一种既便宜又简洁的方式可以给照片添加上GPS信息。

需要借助的工具:

具体原理是:按照时间顺序,将手机记录的GPS信息写入相机拍摄的照片中。

具体步骤:

  1. 调校相机时间和手机时间保持一致
  2. 使用My Tracks应用记录GPS信息,保证在使用单反拍照前后一直在记录。所以最好的办法是出门前打开My Tracks,回家关闭记录。
  3. 回到家,导出照片,安装GeoSetter软件,将My Tracks记录的文件导出为gpx文件
  4. 打开GeoSetter,全选所有照片,在菜单中找到和GPS文件同步,快捷键Ctrl+G,找到Android手机中Export出的gpx文件,同步。
  5. Ctrl+S,保存。

之后GPS信息就被写到照片文件中了。


2014-10-02 DSLR , GPS , Nikon , 摄影

记账App选择

很久之前产生记账的需求,所以当时试用了市场上很大一批的记账软件和App,我的需求无非有几样:

  • 多平台同步,至少Web,Android平台有产品
  • 记账方便,随时随地能够使用
  • 界面简洁美观,能方便查看使用记录,和历史统计信息
  • 方便导出

在使用了近半年之后,我终于稳定的在使用一款叫做“随手记”的记账软件了。而事实上我看到很多Google+的好友在使用类Excel工具记账,我也曾经使用过一段时间的Excel,却没有坚持下来。使用这样一类工具时,我总感觉不是很方便,虽然也可以使用Dropbox或者其他工具同步到手机上,再使用Office打开编辑,但是终究多了些步骤。

过去一段时间我试用过的应用有:

随手记的开发人员是中国人,所以使用习惯还是挺符合国人的。当然对于基本的记账功能,随手记和 Expense Manager 都是有的。只是最后归结到细节的功能上,Expense Manager只有Android端,虽然UI符合Holo风格,界面简洁明了,但是细节的功能太少,不值得玩味,并且不支持同步,虽然Expense Manager能够导出到Excel,但还是将流程复杂了。 而随手记,有几个功能确实非常实用:

  • 丰富的分类,和子分类
  • 记账模板
  • 周期自动记账

虽然一开始我觉得随手记的分类太过复杂,记一笔账还得找好一会儿分类,但是用过一段时间之后发现其实这样对于以后查看使用是很有帮助的,并且分类和子分类都可以自定义,非常方便。而记账模板则是可以自定义一套模板,之后记录相同的账目可以套用一套模板。对于一些经常记录的分类,比如早午晚餐,周期性的购物都可以使用一套模板。另外周期自动记账就是可以将每月固定的支持,收入自动记录账目。

想要了解更多Expense Manager可以到电脑玩物

另外一些记账软件


2014-09-09 Android , Web , Android app , app

电影版本中的缩写是什么意思

在网络下载资源时经常遇到一些整齐划一的命名,于是产生了这样的疑惑。

CAM(枪版)

CAM通常是用数码摄像机从电影院盗录。有时会使用小三角架,但大多数时候不可能使用,所以摄像机会抖动。因此我们看到画面通常偏暗人物常常会失真,下方的 字幕时常会出现倾斜。 由于声音是从摄像机自带的话筒录制,所以经常会录到观众的笑声等声音。因为这些因素,图象和声音质量通常都很差。

TS(准枪版)

TS是TELESYNC的缩写。TS与CAM版的标准是相同的。但它使用的是外置音源(一般是影院座椅上为听力不好的人设的耳机孔)这个音源不能保证是好的音源,因为受到很多背景噪音的干扰。TS是在空的影院或是用专业摄像机在投影室录制,所以图象质量可能比CAM好。但画面的起伏很大。论坛上常出现的有一般TS版和经过修复清晰TS版

TC(胶片版)

TC是TELECINE的缩写。TC使用电视电影机从胶片直接数字拷贝。画面质量还不错,但亮度不足,有些昏暗。很多时候制作TC使用的音源来自TS,因此音质很差,但画面质量远好过TS。如果不是太讲究的话TC版还是不错的选择。

DVDSCR(预售版)

SCR是SCREENER的缩写。DVDSCR预览版的或者是测试版的DVD,非正式出版的版本。从预览版 DVD 中获取,通过mpeg-4技术进行高质量压缩的视频格式。能比DVDRip早发布,但画质稍差。(经常有一些不在黑边里在屏幕下方滚动的消息,包含版权和反盗版电话号码 ,会影响观看。)如果没有严格的划分它的画质应与TC版差不多。

R5(俄罗斯5区版)

俄罗斯5区版的DVD,因为配音为俄语,所以需要去寻找英语音轨,R5版本就是一种合成版本(俄5区DVD视频+通过其它渠道获得的英语音轨),R5版本的画质一般都不错,音频部分由于音轨的来源不同,效果有好有差。

这里的 R=Region 美国电影协会划分的DVD区域码有:

  • 第一区:美国、加拿大; 第二区:日本、欧洲、埃及、南非、中东;
  • 第三区:中国台湾、中国香港特别行政区、南韩、东南亚;
  • 第四区:澳洲、新西兰、中南美洲、南太平洋岛屿;
  • 第五区:俄罗斯、蒙古、印度、中亚、东欧、北韩、北非、西北亚一带等;
  • 第六区:中国(除台、港地区)

HD RIP(高清版)

HDRip 是HDTVRip(高清电视资源压缩)的缩写,是用DivX/XviD/x264等MPEG4压缩技术对HDTV的视频图像进行高质量压缩,然后将视频、音频部分封装成一个.avi或.mkv文件,最后再加上外挂的字幕文件而形成的视频格式。画面清晰度更高。

BD(蓝光版)

BD是Blue Disk的简称,翻译成中文是“蓝光影碟”的意思。就是从蓝光影碟转录的视频和音频,画面清晰度很高。

DVD,HDVD,DVD5,DVD9

DVD的英文全名是Digital Video Disk,即数字视频光盘或数字影盘,它利用MPEG2的压缩技术来储存影像。

HDVD(压缩碟或者经济版DVD)

HDVD俗称压缩碟或者经济版DVD,介质通常为DVD-5(容量4.7G)也有DVD-9的(容量8.5G),采用MPEG-1或MPEG-2编码,由于码流较低,所以每张盘可容纳长达7个小时的视频节目,画质水平略高于或等同于VCD。用于看连续剧最省钱。

VHSRip

VHSRip是从零售版VHS录象带转制,主要是滑冰/体育内容的发布。

TVRip

从电视(最好是从数码有线电视/卫星电视捕捉)转制的电视剧,或接收由卫星提前几天向电视网传送的预播节目(不包含加密但有时有雪花)。有些节目,比如WWF RAW IS WAR包含多余的部分;”DARK MATCHES”和CAMERA/COMMENTARY测试被包含在TVRip里。PDTV是从PCI数码电视卡捕捉,通常效果最好;破解组织倾向于使用SVCD来发布。VCD/SVCD/DivX/XviD rips也都被用于发布TVRip。

WORKPRINT (WP)

WORKPRITN (WP)是从未完成的电影拷贝转制而成,可能会缺失镜头和音乐。质量可能从最好到很差。有些WP可能和最终版本相差很远。(MEN IN BLACK的WP丢失了所有的外星人,代之以演员);另一些则包括多余的镜头(Jay and Silent Bob). WPs可以作为有了好质量的最终版本后的附加收藏。

DivX Re-Enc

DivXRe-Enc是从原始VCD发布用DivX编码成的小一些的文件。通常可在文件共享网络找到。它们通常以 Film.Name.Group(1of2)等形式命名。常见的发布组织有SMR和TND。这些版本通常不值得下载,除非你不清楚某部电影,只想要200MB的版本。一般应避免。

Watermarks

很多从Asian Silvers/PDVD (参看下面)来的电影带有制作人的标记。通常是一个字母,名字缩写或图标,位于屏幕一角。最有名的是”Z”,”A”和”Globe”。

Asian Silvers / PDVD

Asian Silvers / PDVD是亚洲盗版商发行影片的,通常被一些发布组织购买来当做他们自己的发布。Silvers很便宜,在很多国家都很容易找到。发布Silvers很容易,所以现在有很多发布,主要是由一些小的组织发布;这些组织通常发布几个RELEASE后就不见了。PDVD和Silver一样,不过是压在DVD上。 PDVD通常有外挂字幕,质量也比Silver好。PDVD象普通的DVD一样转制,但通常用VCD的格式发布Scene Tags发布文件的标志。

PROPER

根据发布规则,最先发布Telesync (TS)的组织赢得(TS发布的)比赛。但是,如果这个发布版本质量很差,同时另一组织有另一TS版本(或质量更好的同一片源),那么标记PROPER被加到目录上以避免重复。PROPER是一个最主观的标记,很多人会争论是否PROPER比原始发布版本好。很多发布组织只不过因为输掉了发布比赛而发布 PROPER。发布PROPER的原因因该总是包含在NFO文件里。

SUBBED

对于VCD发布而言,SUBBED通常表示字幕被压进了电影。它们通常是马来语/中文/泰文等,有时有两种语言。它们可能占据了很大一部分屏幕。SVCD支持外挂字幕,所以DVDRip用外挂字幕发布。这些信息可以在NFO文件中找到。

UNSUBBED

当一部电影曾经发布过有字幕的SUBBED版本,没字幕的UNSUBBED版本也可能发布。

LIMITED

LIMITED电影指该电影只在有限的电影院放映,通常少于250家。通常较小的电影(比如艺术电影)的发行是LIMETED。

INTERNAL

INTERNAL发布有几个原因。经典的DVD组织有很多.INTERNAL.发布版本,这样不会引起混淆。同时,低质量的发布会加以 INTERNAL标记,这样不会降低发布组织的声誉,或由于已经发布的数量。

INTERNAL发布可以正常的在组织的会员网站上获取,但没有其他网站管理员的要求它们不可以被交换到其他网站。一些TERNAL发布仍然流到IRC/NEWSGROUP,这通常取决于电影及其流行度。今年早些时候,人们把 CENTROPY做为INTERNAL。这表示发布组织只向其会员和网站管理员发布。这和其通常意思不同。

STV

STV表示电影从未在电影院放映过就被发布,因此很多望网站不允许STV。

ASPECT RATIO TAGS

ws表示宽银幕,FS表示全屏幕。

RECODE

RECODE是以前已经发布过的版本,通常用TMPGenc编码过滤以去除字幕,纠正颜色等。虽然它们看起来好一些,但通常不认为这是好的行为因为发布组织应该去找他们自己的片源。

REPACK

如果发布组织发布了一个坏的版本,他们会发布REPACK来解决这些问题。

NUKED

一个发布可能因为多种原因被NUKE掉。有些网站会因为违犯他们的规则而NUKE发布(比如不允许发布TS版本)。但如果发布的版本有很大的问题(如20分钟没有声音,CD2是错误的电影或游戏),那么所有的网站都会NUKE这个发布。在这些网站上交换NUKED版本的人会失掉他们的信誉。但NUKED发布仍然可以通过P2P/USENET传播,所以应该总是首先找到其被NUKE的原因以防万一。如果发布组织发觉他们的发布有问题,他们可以要求NUKE。


2014-09-03 Movie , Knowledge

国内各大音乐网站使用感受

最近几天在电脑上听歌,不由自主的在键盘上敲出了 http://music.163.com ,而在不久之前还是用 xiami.com 听歌呢,所以禁不住思考起来.

最初

最早用电脑听歌还是应该用的酷狗,酷我,多米之类的电脑端软件,那个时候经常是将歌曲下载到自己电脑上,伴随着清脆的一声”Hello kugou”,才开始听歌之旅的. 那个时候听的歌曲还往往是知道名字,知道歌手,很有针对性的去听的.那个时候的播放列表还往往是本地的自己的列表,如果换一台电脑那些列表还不一定能够同步过去.虽然后来酷狗,酷我都做了同步播放列表的功能,但是那时候的体验和感受都留在了那个时候.

后来

在大学的时候,渐渐的发现自己的播放曲库就那么几首歌,全部循环播放还是那么几首歌,所以萌生了寻找自己喜欢听的歌曲的想法,如果能有一个平台能够提供不间断播放的歌曲,能根据自己喜欢的歌曲推荐同样类似的歌曲,后来我找到了douban.fm这样一个平台,虽然我不知道豆瓣这个电台什么时候发布的,但它确实伴我走了多一段时间,也让我找到了很多喜欢的歌曲,我记得那时候听得最多的轻音乐电台,让我找到”班得瑞”这一系列的轻音乐.

再后来

可是用了一段时间的豆瓣FM就会发现出现了些问题,一是豆瓣FM不允许下载歌曲,虽然我的加心歌曲很多了,却一首也不允许我离线的播放.一旦离开了互联网,我就往往又回到了那几首歌的时候.这个时候如果在豆瓣FM找到了喜欢的歌再用酷狗,酷我,多米,百度之类的下载,也略显麻烦,况且如果喜欢的歌曲多了,还得一首一首的找并下载,这个过程太麻烦.二是我渐渐的发现有些我喜欢的歌从来不会在豆瓣FM中出现,并且豆瓣FM还经常出现某些人翻唱的歌曲.那个时候我就意识到是不是豆瓣FM的曲库并不是很完整,如果它本身的曲库就不是很完整,如何能推荐到那些缺失的好歌?

转到虾米

再后来就是转到了虾米,虽然知道虾米的曲库也并不是很全,但是至少感觉比豆瓣的要全一些,并且虾米至少还是一直是做音乐的嘛. 豆瓣转到虾米之后很长一段时间都是在用虾米电台在听歌,当然一些听歌习惯也留在了虾米.但后来移动大潮来临,那个时候虾米Android客户端还一直不错,至少在酷狗,酷我,百度等等客户端中还是值得一看和一用的.可是那个时候虾米的封闭就体现出来了.虾米因为下载需要类似积分的东西,所以在Android客户端中下载的音乐只有通过虾米客户端才能播放,虾米并不是直接以mp3保存的歌曲.那个时候还是并不是很在意这个问题,可是突然有一天我意识到,如果有一天虾米”倒闭”或者怎么样了呢?(⊙o⊙)… 那个时候开始我渐渐的将一些喜欢的歌曲下载到本地,那些歌曲列表也不怎么去贡献,只维护着自己喜欢的歌曲列表. 然后渐渐地将自己的听歌之路转到本地,那个时候还曾经找好用的PC音乐管理软件很长一段时间.

转到网易云音乐

可是突然有一天网易发布了它自己的音乐播放网站和Android客户端,不愧是网易不鸣则已一鸣惊人,网易云音乐发布的时候就称自己跨平台,当然后来才慢慢发布了PC端和Mac端的软件,但是那个时候的Android应用一发布,我眼前就一亮,继承了网易新闻的操控性,美观性,并且功能强大.并且当时网易云音乐一发布曲库就很全面,我也不知道网易从哪里搞了这么多版权,总是他就是做到了. 于是开始试用最初还是觉得网易云音乐用来下载音乐很方便,成了Android手机上的音乐下载器,可是后来真的用了起来.有一天,我发现能导入虾米歌曲列表,能导入豆瓣FM加心歌曲,果断全部导入,自此以后虾米都很少打开了.

于是就出现了文章最前面出现的一幕.到现在总结下虾米和网易,虾米有一些小细节我很喜欢,但是已经不能抵挡我使用网易的大势了.不过那些小细节总结一下总还是可以提醒一下网易:

  1. 虾米能够记录所有听歌的记录,无论是哪里使用虾米,WEB页面试听还是,在电台听的,还是在Android客户端听得,所有的记录都能在历史记录中看到.并且有一点和Last.fm相似的就是能统计出哪些歌手的歌播放了多少次,哪些歌曲播放了多少次,对于我这种没有特别钟爱谁的听众很有帮助,自动统计出了对谁谁谁的歌特别偏爱.
  2. 虾米电台是我觉得做得最好的电台了.各种各样的电台都有,如果喜欢一个歌星可以只听这个歌星的歌曲,而如果最近只喜欢轻音乐,可以只听轻音乐.
  3. 虾米能够将音乐生成嵌入式代码,在网页上共享,这点网易没有.像下面这样,

</embed>

总结

经过这一些系列的回忆,对于一个互联网产品,我总结出几点:

WEB化

在网络渐渐发展到可以流畅在WEB页面听歌的时候,类似酷狗,酷我这样的播放软件便会走下坡路.虽然我不知道酷狗,酷我之类现在活得是否还好,但至少让我这样的用户离开了.如果能够在网页上直接能够听歌,为何还要下个客户端呢?WEB是互联网的大潮.如果没有抓住这个大潮,可能就要吃亏了吧.虽然现在好像酷狗和酷我都已经可以在线播放了,可是我也已经不用了.没有什么特别理由,就是不好了吧.再其次酷狗,酷我根本没有我的播放习惯,随意就可以抛弃,换另外一个平台.这也就是我要谈的第二点—-账号系统.

账号系统

所有的音乐库应该跟随者用户,用户登陆账号即可获取到所有的歌曲库.这一点网易就很聪明,在网易刚刚发布PC客户端的时候,如果用户不登陆就不能使用.用户可以收藏喜欢的歌曲,新建歌曲列表,分享歌曲列表,这样网易就能学习用户的习惯,推送更多用户喜欢的歌曲.

跨平台

跨平台其实和第二点账号系统一样,账号应该跟随着用户走,对于一个产品应该是用户走到哪里,只要有个账户就能够轻易的获取到用户的所有资料,爱好,习惯.那当然,我用微软的Windows还好,还是用Google的Android,还是Apple的Mac,只要有用户在就要提供给用户获取自己产品的入口,当然网易WEB播放器是我见过的最好的.无论是从设计还是到操作性,都给人很亲切的感受.

UGC用户贡献内容

当然虾米和网易都可以由用户生成音乐列表,而最近看到新闻说豆瓣FM也支持用户贡献音乐列表了.UGC是WEB2.0的特征,虾米雇再多的虾小编生成的内容也不会有用户多.所以干脆直接把内容编辑交给用户得了.当然现在发现好歌的途径又多了一点,不仅可以听自己喜欢的电台,还能关注兴趣相投的好友,看他分享的音乐列表.这些列表里是用户整理好的好听歌曲,去循环播放去啦.

当然如果你没有使用过网易云音乐,那么就请你试试吧:http://music.163.com/,如果你觉得我的歌曲品味和你的相似,也同样欢迎你提供更好的音乐.


2014-07-20 Music , Knowledge

毕设相关

##Word目录自动生成 如果想要目录自动生成,就必须事先对文章标题进行格式化,我使用的方式是在大纲视图中对章节标题进行一级二级三级格式化。另外的方法是通过格式中标题去给每一个标题添加样式。网上的教程太多了,我就做一个备忘吧,以后说不定在其他论文中也要生成目录。在格式化标题之后,导航窗口基本上就能显示一个简单的目录了,此时再自动生成目录一般不会出现太大的问题。

##Word页眉页脚 有些页需要重新从1页开始编号,则要在该页之前插入分节符。如需生成第1页 共XX页这种格式的页码,最好不要手工输入总共的页码,因为可能需要修改论文内容,而如果手工修改可能最后不会自动更新,会造成很大的问题。最好是在文档部件->域->编号里面插入总页数。

##MP4转gif 项目因为在Android手机上,需要录制视频展示,Android(API level 19) 开发工具中提供了录制视频的方法:

adb shell screenrecord /sdcard/demo.mp4

在PC下连接手机,运行以上命令即可录制手机屏幕,视频格式为MP4,存放在手机SD卡,默认录制时间180s. 该命令还有其他一些参数,运行:

adb shell screenrecord --help

可以查看所有参数。几个可能会使用到的参数是:

  • --time-limit 10 录制时长
  • --size 1280*720 录制分辨率大小
  • --bit-rate 6000000 比特率

官方文档: http://developer.android.com/tools/help/adb.html#screenrecord 中文参考: http://blog.csdn.net/wirelessqa/article/details/22725581

录制完视频之后面临的一个问题是,怎么转成gif供PPT或者演示使用。最初想到的方法是使用Photoshop,也找到了一些方法能够将MP4视频转成Web使用gif,但是因为Photoshop将视频每一帧都保存,消耗内存太大,之后适当的调整了几次效果都不是很好,生成的文件也比较大。所以后来就直接使用了迅雷看看的gif生成了,不过缺点很明显,分辨率被调到很小,图像变得不清晰了。


2014-05-31 skills

Jekyll modify

Jekyll修改

##Rakefile修改

增加中文拼音支持 参考:

##自动隐藏Bootstrap导航条 开源项目 Github

##404页面

参考:

http://yizeng.me/2013/05/26/create-a-custom-jekyll-404-page/


2014-05-25 jekyll , rankfile

Visual Assist And Eclipse使用doxygen注释

##修改Visual Assist中的方法注释样式

Visual Assist生成的方法注释又长又丑有木有?那就简单修改一下吧~

  • 如下面的两张图所示,打开在Visual Assist的选项卡,按图中标示顺序打开Refactor Document Method脚本,就可以按照自己喜欢的风格修改了~不同版本的Visual Assist中设置的路径可能不一样,总之都在Suggestions选项卡下。
  • 可用的宏可以点左上角最后一个图标查看,意思看名字就能推断出来了~
  • 是不是还想来个快捷键什么的,在想要注释的函数定义上方敲 /** 回车就行

visual assist 1

visual assist 2

###Eclipse中使用doxygen注释C++方法 修改一下选项就可以了~然后在要注释的方法的上一行输入 /** 按回车即可. enter image description here

参考: http://cherishlc.iteye.com/blog/1777034


2014-04-25 doxygen , Visual Studio , Eclipse

CPU知识

###步进 所谓步进:同一处理器型号随着时间推移,会有一些小的改进,厂商把这些小的改进通过新的步进来体现。 (通过汉语意思理解:就是与之前相比进了一小步,针对同一型号) 酷睿 i3/i5全线将从C2步进转换到K0,预计在品质等诸多方面比上一个步进要更加出色。 现在知道了吧,不用去关注它,只要知道是处理器在架构或者其他方面提高了就行。 步进更多的知识详见百度百科,里面讲到了用CPU-z识别当前使用的CPU的步进信息,如何通过编码知道步进信息。

###CPU各版本信息 ####ES 测试版CPU,发给制造商用于各类测试的版本,因为不是免费提供,intel无法回收CPU,测试结束以后部分CPU会流入市场,该类CPU如要购买最好先搜一下看看ES版是否存在一些BUG

####QS 最后一个版本的ES,一般用工具检测,固件烧录的也是ES,用于区分正式版

####BGA、PGA

BGA和PGA是intel的两种封装类型,BGA没有阵脚,直接焊在主板上,PGA带有阵脚,可以插在socket插座上使用,一些JS把BGA的CPU拆掉私自焊针脚来销售,稳定性极差,价格要低很多,温度要高一些,BGA和PGA无法用软件区分,只能拆开自己检查

引用:低电压板,L,SP,SU开头的型号,基本都是bga的 引用:http://www.xj123.info/1717.html

###CPU后面跟随的数字 I3 后面有四个数字 拿I3 3220为例, 第一个3就是第三代,所以2100就是第二代,530(三个数字)就是第一代 第二个2就是规格,一般取比第一个数字小1的数字,比如第一个是4,后面就是3,如果小于3,那就是进一步降低主频或删减缓存的缩水货。 第三个2就是等级,档次,越高越好。 最后一个0只是加上去为了英语发音好读。

I5也是一样,比如I5 3570K 第一个数字3代表第三代,第二个数字固定为5,小于5的就是精简过规格的产品,第三个是等级。

另外关于第二个数字还有一个小秘密,一般3以下都是I3(也有双核I5,很少),3-5是I5,6-9是I7。 引用:http://zhidao.baidu.com/question/573950249.html


2014-03-13

Android SDK环境变量配置

Android SDK就是Google提供的Android开发工具包,之前请先配置好JDK

###Android SDK下载地址

  • Google搜索Android SDK
  • 或者https://developer.android.com/sdk/index.html

###配置Android SDK环境变量

  1. 下载Android SDK,点击安装,直接默认路径即可! 下载地址:https://developer.android.com/sdk/index.html

  2. 默认路径安装后,安装完成,开始配置环境变量。

  3. 打开计算机属性——高级系统设置——环境变量(如上文)

  4. 新建一个环境变量,变量名:ANDROID_HOME,变量值:D:\Android\android-sdk(以你安装目录为准,确认里面有tools和add-ons等多个文件夹),点击确认。

  5. 在用户变量PATH后面加上变量值;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;点击确认即可

  6. Android SDK配置完成,接下来验证配置是否成功。

  7. 点击运行——输入cmd——回车——输入adb——回车,如果出现一堆英文,即表示配置成功,输入Android,启动Android SDK Manager。

###目录tools和platform-tools的区别

Android sdk目录里,有一些文件夹:

  • tools:该目录存放大量的Android开发,调试工具,该目录下存放大量Android开发工具,例如SDK Manager、androidavd、emulator、ddms等等。
  • platforms-tools:该文件夹存放Android平台和相关工具,存放Android不同平台的相关工具;随着SDK更新版本,这里的工具会有相应更新变化,但是一般都是向后兼容。最常用的是Android Debug Bridge(adb)工具
  • add-ons:该目录存放额外的附件软件。刚解压时该目录为空。
  • platforms:该目录存放不同版本的Android版本。刚解压时该目录为空。
  • SDK Manager.exe:该程序就是Andriod SDK管理器。
  • AVD Manager.exe:该程序就是Andoid虚拟设备。
  • docs:该文件夹存放了Android SDK开发文件和API文档等
  • samples:该文件夹存放不同的Android平台和示例程序。

参考:http://blog.csdn.net/rflyee/article/details/8973529


2014-03-04 Android , JDK

Blogger 主题中Widget使用

Blogger 的主题和插件有自带的一套语法,下面就是 Blogger 主题中关于 Widget 的使用说明。

Widget Tags for Layouts

标签是用来创建最基本的widget的,描述在 [Page Element Tags for Layouts](http://help.blogger.com/bin/answer.py?answer=46888) 中.而这篇是描述在widget标签中具体可以设置哪些东西的,例如你可以在widget中放置什么. 第一件事就是放置一个闭合的标签,像这样: `<b:widget [...attributes...] />` 展开之后是这样的: `<b:widget [...attributes...]>

`

接下来谈论一下可以在widget中放置什么

Includes

Widget的内容包含在”includable” section中,像这样:

<b:includable id='main' var='thiswidget'>
    [insert whatever content you want here]
</b:includable>

includable的属性有:

  • id:(必须)唯一标识符,由字母和数字组成
  • var:(可选)标识符,由字母数字组成,用来引用section中的data.(具体请见下面说的data section)

每一个widget必须有一个具有id='main'的 includable 。通常这个widget的大部分内容都包含在这个includable中.

如果你有很多具有不同id属性的includable,他们不会自动的显示出来.但是如果你有一个includable带有id='new'的属性,那么在main includable中通过<b:include name='new' />就能够引用,并显示出来.

b:include标签的属性如下:

  • name:(必须)标识符由字母和和数字组成,它必须是在同一个widget中已经存在的b:includable的id
  • data:(可选)An expression or peice of data to pass on to the includable section. This will become the value of the var attribute in the includable.

简单例子同来讲解b:includableb:include的用法.Loops和data会在后面讲述,这里主要要理解’main’ section是如何包含 ‘post’ section的.main包含了一个includable,传递了一个data叫做’i’,included section引用做’p’,使用p访问title.

<b:includable id='main'>
   <b:loop var='i' values='posts'>
      <b:include name='post' data='i'/>
   </b:loop>
</b:includable>

<b:includable id='post' var='p'>
   Title: <data:p.title/>
</b:includable>

下面这段的意思就是说如果你想重复使用代码,可以将代码放到includable中,然后用include引用.就不翻译了. Includes are most useful if you have a section of code that you want to repeat multiple times in different places. You can just write the code once, put it inside a b:includable, then use b:include wherever you want it to appear. If you don’t need to do that, then you can just stick with the single main includable and not worry about the rest. (Note that the main includable is included automically – is unnecessary.)

Data

data:标签大概是最为重要的一个标签了,因为它是获取一切事实数据的途径,一些例子如下:

<data:title/>

or

<data:photo.url/>

这个例子非常简单,他能够在几乎所有的widget中起作用,因为大多数widget有title.上面的例子就是打印出widget的title.第二个例子是一个较为复杂的变量,获取photo的url.

有很多data你能够通过data:标签来获取,查阅 comprehensive list 查询需要的data,一些data只能在特定的widget中使用.

Loops

b:loop 标签让你重复使用section中内容.通常用在打印给定的一系列post,或者每一条留言,或者每一个label,等等.通常用法,像这样:

<b:loop var='identifier' values='set-of-data'>
   [repeated content goes here]
</b:loop>
  • identifier 可以选用任何名字,用来代表list中每一个item.可以简单的设定为”i”.
  • set-of-data 可以是在 data tags article中定义的任何一系列data

例如,在blog post widget中, posts是一个list,下面的代码是遍历每一个post,打印出每一个的标题title

<b:loop var='i' values='data:posts'>
   <h2><data:i.title/></h2>
</b:loop>

注意,”i”是每一个post,在循环中使用i获取每一个post的title

if / Else

if/else像很多编程语言一样,条件判断,这里是选择哪些显示和哪些不显示.通常如下:

<b:if cond='condition'> 
   [content to display if condition is true]
<b:else/>
   [content to display if condition is false]
</b:if>

b:else tag是可省略的. 而</b:if>是不可省略的. 如果没有else子句,那么只有满足if条件才会执行if子句中代码,不然什么都不执行

条件语句中你可以放置任何结果是true或者false的语句,有一些data本身就表示true/false,像post中allowComments.其他data,你可以用来比较得到结果.一些例子:

<b:if cond='data:post.showBacklinks'> True if the current post is set to show backlinks.
<b:if cond='data:blog.pageType == "item"'> True if the current page is an item page (post page).
<b:if cond='data:displayname != "Fred"'> True if this is not Fred's display name.
<b:if cond='data:post.numComments > 1'> True if the current post has more than one comment.

翻译自:Blogger Help Widget Tags for Layouts


2014-02-04 Google , Blogger , Knowledge

Google+

最近文章

  • 将 MySQL 升级到 5.7 这些天折腾 Django 的时候用到了 MySQL,然而本地和VPS 上使用的版本不一致,本地使用了 5.7 版本,而 VPS 上使用了 5.5 的老版本,在数据迁移的时候遇到了 5.5 版本下不支持 DATETIME(6) 这样的数据类型。 DATETIME(6) 用来保存精确到微秒的时间。
  • Docker 入门 Docker 是一个能够把开发环境的应用程序自动部署到容器的开源引擎。该引擎的目标是提供一个轻量、快速的环境,能够运行开发者的程序,并方便高效地将程序从开发者的笔记本部署到测试环境,然后再部署到生产环境。 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
  • 使用 nethogs 查看每个进程流量 在 Linux 上查看系统流量有很多命令,平时一直使用 iftop 来查看单块网卡或者系统整体的流量,iftop 可以查看 TCP 链接的流量情况,分析出流量连往的 IP 地址。但是 iftop 无法做到查看系统中单个进程的网络流量情况。所以 Google 一下之后发现了 nethogs 。
  • 使用 supervisor 管理进程 Supervisor (http://supervisord.org) 是一个用 Python 开发的进程管理工具(client/server),可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
  • MySQL 数据类型 了解并熟悉 MySQL 中的数据类型,对建表和数据库优化都非常重要。 MySQL 实现了 SQL 定义的类型,也响应的增加乐意 tiny, small, big 的类型。 MySQL 的数据类型主要分成三个部分: Numeric Type 数值型 Date and Time Type 日期和时间 String Type 字符型