理解Optional
Swift可以再类型后面加一个?来将变量声明为optional(随意的)。如果不是Optional的变量,那么它就必须有值,而没有值发话,我们使用Optional并且将它设置为nil来表示没有值。
1 | var num:Int? |
Optional Value就像一个盒子,盒子可能装着实际的值,可能声明都没装。
1 | var num:Int?=3 // 声明一个Int的Optianal,并将其设为3 |
使用场景
1 | foo?.somemethod() |
Swift可以再类型后面加一个?来将变量声明为optional(随意的)。如果不是Optional的变量,那么它就必须有值,而没有值发话,我们使用Optional并且将它设置为nil来表示没有值。
1 | var num:Int? |
Optional Value就像一个盒子,盒子可能装着实际的值,可能声明都没装。
1 | var num:Int?=3 // 声明一个Int的Optianal,并将其设为3 |
使用场景
1 | foo?.somemethod() |
数据持久化的方法有:
1 | // weite.js |
注意:
1 | // read.js |
设置环境变量
windows:
1 | SET SOMETHING='12345678' |
UNIX:
1 | var something = process.env.SOMETHING |
可以再node中访问process.env.SOMETHING
MongoDB是面向文档的数据库,它不遵照将关系数据连接在一起的关系模型,它可执行关系数据库的大多数功能并且旨在提供高度的可用性和可扩展性。
CRUD指Create、Read、Update、Delete
可以到MongoDB官网获得对应平台的安装文件。
MongoDB有很多GUI支持,OSX可以使用MongoHub;Windows,可以使用Monogo VUE,它是功能受限的免费版,同事需要.NET Framework支持;Linux上可以使用JMongoBrowser,它是基于Java客户端,需要Java运行环境。
Mongoose是Node.js中一个功能齐备的第三方模块,用于处理MongoDB。将Mongoose模块加入到项目中,并在package.json文件中将其作为依赖模块包含进来:
1 | { |
运行npm install
并在应用程序文件中请求它var mongoose = require('mongoose');
之后连接并使用它mongoose.connect('mongodb://localhost/your_database');.
MongoDB中,没有关系数据库中表的概念,M哦你goDB围绕着文档的思想来组织数据。
通过Mongoose模块在MongoDB中定义一个文档:通过Mongoose提供的Schema接口定义,然后声明属性。Mongoose可声明的类型如下:
1 | var Schema = mongoose.Schema, |
在views/layout.jade包含如下内容
1 | html |
1 | public class Bimp { |
1 | public class BitmapCache { |
1 | public class AlbumHelper { |
相册选取layout
1 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
1 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
1 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |

除了揭幕战,今天又真真的熬完了整整一场比赛的直播。开赛前就冥冥感觉,这场不一般,当然我不是马后炮的证明我猜到了大胜,赛前我的预想只是净胜2球,德意志已经超过我的想象。其实比,大胜更让我欣喜的是,米洛进球了。那一刻,真的想流泪,即使段暄还在感叹节奏的突变,与接二连三的进球,人们视乎忘了,这个德国人破纪录了。
没有欢呼,没有庆贺,没有空翻,一切平平淡淡。就像克洛泽一样,一个平凡的不能再平凡的球员,没错,在很多定义上他都算不上球星。他不张扬,个性内敛和谦逊,小时候优良的家境和艺术教育的烘托使得他跟一般的球员在性格上可以被归属为文艺派。
克洛泽从未在联赛中大杀四方,也没有在世界杯上君临天下,他总是在适当的时候,出现在适当的位置,做了适当的事情。这就是德国人的冷静、铁血、严谨,这是与生俱来的天性。他不是足球天才,23岁的时候甚至还是业余球球,这个岁数的梅西已经功成名就。
不是每个人都能成为字母罗、内马尔或者梅西,但每个人都可以成为克洛泽————或者说,成为这个时空中、这番命运下那个最好的自己。

02年世界杯的时候,那个时候我还懵懵懂懂,决赛日,我和老爸在电视前,我穿着我新买不久的巴西队服,看着除了巴西队不怎么熟悉的面孔,为罗纳尔多的进球欢呼雀跃,但是那场比赛,却让我喜欢上了,卡恩和金发碧眼的克洛泽,甚至我自己都不知道缘由。
06年,金色轰炸机克林斯曼职教德国,那届的德国打的真是漂亮,不知道那一届诞生了多少德国脑残粉。点球救主的莱曼,小猪施魏因斯泰格,已经屈居二线的卡恩,大着石膏扔界外球的拉姆,还有些青涩的波多尔斯基,还有巴拉克,还有克洛泽。那一届德国踢得那么好,那么漂亮,还是输给了亚平宁骑士,防守至上的意大利。至今,我还记恨那支冠军,马特拉齐的咒骂,齐祖的惨淡谢幕与大力神杯擦肩而过,更可恨的是他们淘汰了德国,那支最美的德国。
10年,德国新人辈出,诺伊尔、厄齐尔、巴阿滕、还有神奇小子穆勒。可惜巴拉克,赛前的伤退,让这个德国人永远的告别了世界杯。我这届德国一如既往的强,可惜既生瑜何生亮,如日中天的西班牙在那个时空,仿佛不可战胜。
02年,我们输给了天赋异禀的巴西,06年,我们输给了沉稳的意大利,10年,我们输给了不可战胜的西班牙。14年,我们离冠军只差一场胜利,加油,德意志。

1 | node |
1 | <!-- 发送消息 --> |
1 | public class Column { |
1 | public class SQLiteTable { |
1 | public abstract class BaseDataHelper { |
1 | ALTER TABLE {tableName} ADD COLUMN COLNew {type}; |
2.Delete column,Rename column
sqlite3不允许指直接delete,rename只能进行以下操作
1 | create table temp(id integer PRIMARY KEY,code varchar(255)); |
3.Rename table
1 | alter table foo rename to bar |
4.Copy data from one sqlite file to another
1 | attach 'database2file' as db2; |
5.导出sql
1 | sqlite3. data.db |
6.导入
1 | sqlite3 mydb.db |
7.释放空间
1 | vacuum |

DrawerLayout类在Support Library里,有android-support-v4.jar这个包即可
1 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
访问资源的命名机制,存放资源的主机名,资源自身的名字,由路径表示Android的Uri由以下三部分组成:”content://“、数据的路径、标示ID(可选)
如:
1 | UriMathcer matcher = new UriMatcher(UriMatcher.NO_MATCH); |
第二步注册需要的Ur:
1 | matcher.addURI("com.zoe.blog","people",PEOPLE); |
第三部,与已经注册的Uri进行匹配:
1 | Uri uri = Uri.parse("content://" + "com.zoe.blog" + "/people"); |
match方法匹配后会返回一个匹配码Code,即在使用注册方法addURI时传入的第三个参数。
UriMatcher.NO_MATCH表示不匹配任何路径的返回码# 号为通配符*号为任意字符1 | Uri uri = Uri.parse("content://com.zoe.demo/people"); |