命名规则

命名规则类似Java,Javascript的通用的命名规则可以参考此处。下文提到的小Small Camel是指首字母小写Camel命名规则;Big Camel首字母大写Camel命名规则。

类型 规则
命名空间 全小写,子空间使用英文点号‘.’分隔
Big Camel
类方法 Small Camel(不含命名空间)
常量 全大写,下划线分隔词
局部变量 Small Camel
全局变量 Small Camel,首词为小写g
全局函数 Small Camel
文件 1.       文件中包含0个或多个类则使用命名空间作为文件名2.       文件中为单一类则使用类全名(含命名空间)作为文件名

3.       源码中仍有不符合上述命名规范的文件,它们多为占位文件,

a)       占位文件是AdService编译后会生成的同名文件,通常只有一句,下图中的‘ads.trunk.js’就是一个占位文件。

b)       exp.js用于实现为小流量平台的流量切换;

c)       app.js用于流量交换详细页面;

d)       sdk.ios.js是iOS平台加载的Native接口文件;

e)       另外一些不符合规范的文件是各种JS库文件

5.6 时序

MySQL内置函数uuid和uuid_short简析

有同学问到MySQL的uuid这个函数。简要介绍一下。
用法
简单看到,这个值,每次执行都是不同的。
生成规则
第1 2 3 段是与时间有关的。
  www.2cto.com  
time_low、time_mid、time_high_and_version转成16进制后分别对应第1 2 3段。这个时间是从1582-10-15 00:00:00.00到当前时间的100ns值。(实际上系统只能取到精确us,再乘以10)。所以你短时间连续执行的话,比较可能只有第一个值在改, 实际上1 2 3都可能会改变。
第4段是你启动这个MySQL后第一次执行select uuid()时的随机数,每次重启会改变。
第5段是mac值转过来的,同一个机器多实例的一般相同。如果mac值获取不到,则是一个随机值。
所以这个值可以认为是每次执行都不相同。并且不同实例之间也只有极微小概率重复。
Uuid_short
         与uuid返回固定长度字符串不同, uuid_short的返回值是一个unsigned long long类型。MySQL启动后第一次执行的值是通过server_id << 56 + server_start_time << 24来初始化。server_start_time单位是秒。 之后每次执行都加1。
         由于每次加1都会加全局mutex锁,因此多线程安全,可以当作sequence来用,只是初始值有点大。
Sequence
         MySQL没有Oracle那样的sequence,在不是很精确的情况下,可以考虑上面提到的uuid_short。有一些不足:  www.2cto.com
1、初始值太大,无法重设
2、存在一个问题是每次重启后第一次执行的值不是重启前的那个值+1
3、而且如果重启在1s内完成,可能出现不单调递增(虽然这个可能性微乎其微)。
         要满足上面的需求,可以考虑用udf实现。

关于全局唯一ID生成方法

唯一ID生成的主要目的是:为一个分布式系统的数据object产生一个唯一的标识。
一般对于唯一ID生成的要求主要这么几点:
  • 毫秒级的快速响应
  • 可用性强
  • prefix有连续性方便DB顺序存储
  • 体积小,8字节为佳
目前看到过的唯一ID生成方法主要有以下几种:
UUID:
优:java自带,好用。
劣:占用空间大
Snowflake: timestamp + work number + seq number
优:可用性强,速度快
劣:需要引入zookeeper 和独立的snowflake专用服务器
Flikr:基于int/bigint的自增
优:开发成本低
劣:如果需要高性能,需要专门一套MySQL集群只用于生成自增ID。可用性也不强
Instagram:41b ts + 13b shard id + 10b increment seq
优: 开发成本低
劣: 基于postgreSQL的存储过程,较为偏门

The package does not contain an Info.plist

Q:  Xcode displays an “The package does not contain an Info.plist” message when validating or submitting my app. How do I fix it?

A: Note

If you are getting this message while submitting a hosted In-App Purchase product, see I am unable to upload my hosted content to iTunes Connect with Xcode 6 for details on how to resolve it.

You may be getting this message for one or more of the following reasons:

  • Your app’s Info.plist file does not contain a CFBundlePackageType (Bundle OS Type code) key, which specifies the type of bundle being created. Add this key to your Info.plist, then set it to APPL to resolve your issue as shown in Figure 1. See CFBundlePackageType for more information.
Figure 1  Setting CFBundlePackageType to APPL

iOS 最新版 CocoaPods 的安装流程

iOS 最新版 CocoaPods 的安装流程
1.移除现有Ruby默认源
$gem sources --remove https://rubygems.org/
2.使用新的源
$gem sources -a https://ruby.taobao.org/
3.验证新源是否替换成功
$gem sources -l
4.安装CocoaPods
(1) $sudo gem install cocoapods 备注:苹果系统升级 OS X EL Capitan 后改为$sudo gem install -n /usr/local/bin cocoapods
(2) $pod setup
5.更新gem
$sudo gem update --system
6. 新建工程,并在终端用cd指令到文件夹内
$pod search 第三方
7.新建文件 vim “Podfile”,
$vim Podfile
写入以下内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq  可保存退出)
platform:ios, '6.0'   
pod 'AFNetworking', '~> 2.3.1'    <-------第三方
8.导入第三方库
$pod install
9.退出终端
以下是我用以前的安装流程安装时出现的一些错误
终端  cocoapods 下载bug调试:
错误1:
Error fetching http://ruby.taobao.org/:
bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
解决方案:把安装流程中 $gem sources -a http://ruby.taobao.org/   ---改为---->$gem sources -a https://ruby.taobao.org/
错误2:
ERROR:  While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解决方案:苹果系统升级OS X EL Capitan后会出现的插件错误,将安装流程 4.安装CocoaPods 的 (1)sudo gem install cocoapods ——>改为sudo gem install -n /usr/local/bin cocoapods
错误3:
[!] Unable to satisfy the following requirements: - `AVOSCloud (~> 3.1.6.3)` required by `Podfile`
Specs satisfying the `AVOSCloud (~> 3.1.6.3)` dependency were found, but they required a higher minimum deployment target.
解决方案:安装流程:Podfile文件 中   platform:ios, ‘6.0’  后边的 6.0 是平台版本号 ,一定要加上

iOS cookbook NSLabel 下划线、中划线

  //显示下划线

        //中划线

//        NSDictionary *attribtDic = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]};

        //下划线

        NSDictionary *attribtDic = @{NSUnderlineStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]};

        NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString:oldStr attributes:attribtDic];

        oldPriceLabel.attributedText = attribtStr;

自体血液疗法与传统血液净化大不相同

810a19d8bc3eb1356115d50da31ea8d3fc1f44b1

早在3000年前人们就试图通过“洗血”的方式来达到增强体质、驱除疾病的目的。直到1861年,一位叫做格拉哈姆的科学家和他的团队共同发现血液透析的原理, 并于1945年由科尔夫医生成功将这项技术应用于急性肾衰竭患者。此后“血液净化技术”在现代医学治疗中得到了迅猛的发展。而“血液疗法”也随着该技术的发展慢慢被应用于临床治疗。

关于激素疗法的真相

innkirtlar_hormon_280206

关于激素替代疗法,其实他还有一个洋气的名字,叫HRT。,这是一种利用激素来实现治疗目的的手段。然而提起激素,我们不必过度恐慌,因为咱们的人体本身就是一个大的激素生产基地。我们的内分泌腺时时刻刻在分泌各种维持人体正常功能的激素,比如,甲状腺素,雌激素,胰岛素等等。这些激素不仅可以为我们正常的生理活动提供能量,通过促进细胞分裂分化保证我们体内器官的功能正常,同时,更影响着我们神经系统的功能,确保了我们机体与外在环境的平衡。

Linux系统常用命令

1,文件内查找字符串

从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name “*.log” | xargs grep “ERROR”
例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行
find . -name “*.in” | xargs grep “thermcontact”

MySql支持Emoji表情,iOS等设备显示Emoji表情,需要 MySQL 数据库建议都提前采用 utf8mb4 字符集。

utf8mb4和utf8到底有什么区别呢?原来以往的mysql的utf8一个字符最多3字节,而utf8mb4则扩展到一个字符最多能有4字节,所以能支持更多的字符集。

解决方案:将Mysql的编码从utf8转换成utf8mb4。

需要 >= MySQL 5.5.3版本、从库也必须是5.5的了、低版本不支持这个字符集、复制报错

停止MySQL Server服务

修改 my.cnf或者mysql.ini

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=’SET NAMES utf8mb4′

重启 MySQL Server、检查字符集

mysql> SHOW VARIABLES WHERE Variable_name LIKE ‘character\_set\_%’ OR Variable_name LIKE ‘collation%';

150406062777081

 

修改数据库字符集:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

 

修改表的字符集:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

修改字段的字符集:

ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

如果只是某个字段需要 只需要修改那个字段的字符集就可以了

另外服务器连接数据库 Connector/J的连接参数中,不要加characterEncoding参数。 不加这个参数时,默认值就时autodetect。