mac os 的仪表盘有啥用

2017-02-15 15:43:29 zoubf 阅读数 3820

Grafana 详细介绍

Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器。Grafana 是开源的,功能齐全的度量仪表盘和图形编辑器,支持 Graphite,InfluxDB 和 OpenTSDB

Grafana 主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源;Graphite 和 InfluxDB 查询编辑器等等。

Graphite 指标编辑器

  • Graphite 指标表达解析器

  • 功能齐全的查询功能

  • 快速添加和编辑函数和参数

  • 模板化查询

  • See it in action

图形化

  • 快速渲染,甚至是较大的时间跨度

  • 点击和拖拽缩放

  • 多个 Y 轴 

  • 条形,折线,点 

  • 智能 Y 轴格式化

  • 系列切换和颜色选择 

  • Legend values 和格式化选项

  • 网格阈值,轴标签

  • Annotations

仪表盘

  • 创建,编辑,保存和搜索仪表盘

  • 修改列宽和行高

  • 拖拽面板重新编排

  • 使用 InfluxDB 或者 Elasticsearch 作为仪表盘存储

  • 导入和导出仪表盘(JSON 文件)

  • 从 Graphite 导入仪表盘

  • 模板

  • Scripted dashboards

  • Dashboard playlists

  • 时间范围控制

Grafana是什么?一个类似Kibana的东西,也是对后端的数据进行实时展示,那么Grafana和Kibana有什么区别?在我看来区别不大,不过在大家的日常使用中Kibana是跟着Logstash、ElasticSearch等组件一起使用做日志展示、索引、分析的,造成了一种假象就是Kibana就只有这种用法了,Kibana也可以接入其他数据源的,不过大家最长用的还是展示日志,Grafana是什么呢?该项目你可能没听过,也比较年轻,他一般是和一些时间序列数据库进行配合来展示数据的,例如:Graphite、OpenTSDB、InfluxDB等。下面看看官方是怎么解释Grafana的:

  • grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。
  • grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。
  • grafana有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。

下面我们就练练手,先安装:

    grafana官方已经有打包好的deb和rpm包以及编译好的二进制包,同时grafana还支持Mac OS X、windows等等,下载页面在:download

    作为第一次尝试,我们选择编译好的二进制包:grafana-2.1.3.linux-x64.tar.gz,后面熟练后可选择deb或者rpm。二进制包解压后,进入其中的conf目录,里面有一个defaults.ini文件,在grafana的conf目录下,把defaults.ini配置文件重命名为custom.ini。进入grafana的bin目录下,有一个grafana-server二进制文件,直接执行./grafana-server web即可启动应用程序。更详细的安装在这里:here

grafana和LDAP集成:

    可惜我们这公司竟没有使用AD/LDAP的习惯,在这里看过程:here

批量安装配置:

    grafana支持puppet、ansible、docker、chef等安装,感觉没啥用就不介绍了

grafana后端数据源配置:

    grafana主要是支持一些时间序列数据库,我们调研的是influxdb,所以就以influxdb为例了,界面上点点就配置好了,主要过程看这里:here


grafana的配置文件:

    grafana后端的配置文件可以是多个以.ini结尾的配置文件,主要从三个配置文件读取配置:默认是$WORKING_DIR/conf/defaults.ini,其次用户配置是$WORKING_DIR/conf/custom.ini,用户配置则可以在命令行启动grafana时通过--config参数重新指定配置文件来覆盖。如果你是以deb或者rpm安装的,则默认的配置文件是/etc/grafana/grafana.ini,这个文件是在init.d的启动脚本中通过--config参数指定的。    

    所有在配置文件中的配置都可以通过环境变量来覆盖,使用的语法如下:GF_<SectionName>_<KeyName>,例如:

[security]
admin_user = admin

[auth.google]
client_secret = 0ldS3cretKey
    如果使用环境变量,则是如下: 

export GF_SECURITY_ADMIN_USER=true
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey
下面具体看看每个配置段的配置:

app_mode:应用名称,默认是production

[path]
data:一个grafana用来存储sqlite3、临时文件、回话的地址路径
logs:grafana存储logs的路径

[server]
http_addr:监听的ip地址,,默认是0.0.0.0
http_port:监听的端口,默认是3000
protocol:http或者https,,默认是http
domain:这个设置是root_url的一部分,当你通过浏览器访问grafana时的公开的domian名称,默认是localhost
enforce_domain:如果主机的header不匹配domian,则跳转到一个正确的domain上,默认是false
root_url:这是一个web上访问grafana的全路径url,默认是%(protocol)s://%(domain)s:%(http_port)s/
router_logging:是否记录web请求日志,默认是false
cert_file:如果使用https则需要设置
cert_key:如果使用https则需要设置

[database]
grafana默认需要使用数据库存储用户和dashboard信息,默认使用sqlite3来存储,你也可以换成其他数据库
type:可以是mysql、postgres、sqlite3,默认是sqlite3
path:只是sqlite3需要,定义sqlite3的存储路径
host:只是mysql、postgres需要,默认是127.0.0.1:3306
name:grafana的数据库名称,默认是grafana
user:连接数据库的用户
password:数据库用户的密码
ssl_mode:只是postgres使用


[security]
admin_user:grafana默认的admin用户,默认是admin
admin_password:grafana admin的默认密码,默认是admin
login_remember_days:多少天内保持登录状态
secret_key:保持登录状态的签名
disable_gravatar:


[users]
allow_sign_up:是否允许普通用户登录,如果设置为false,则禁止用户登录,默认是true,则admin可以创建用户,并登录grafana
allow_org_create:如果设置为false,则禁止用户创建新组织,默认是true
auto_assign_org:当设置为true的时候,会自动的把新增用户增加到id为1的组织中,当设置为false的时候,新建用户的时候会新增一个组织
auto_assign_org_role:新建用户附加的规则,默认是Viewer,还可以是Admin、Editor


[auth.anonymous]
enabled:设置为true,则开启允许匿名访问,默认是false
org_name:为匿名用户设置组织名称
org_role:为匿名用户设置的访问规则,默认是Viewer


[auth.github]
针对github项目的,很明显,呵呵
enabled = false
allow_sign_up = false
client_id = some_id
client_secret = some_secret
scopes = user:email
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
team_ids =
allowed_domains =
allowed_organizations =


[auth.google]
针对google app的,呵呵
enabled = false
allow_sign_up = false
client_id = some_client_id
client_secret = some_client_secret
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
auth_url = https://accounts.google.com/o/oauth2/auth
token_url = https://accounts.google.com/o/oauth2/token
api_url = https://www.googleapis.com/oauth2/v1/userinfo
allowed_domains =


[auth.basic]
enabled:当设置为true,则http api开启基本认证


[auth.ldap]
enabled:设置为true则开启LDAP认证,默认是false
config_file:如果开启LDAP,指定LDAP的配置文件/etc/grafana/ldap.toml


[auth.proxy]
允许你在一个HTTP反向代理上进行认证设置
enabled:默认是false
header_name:默认是X-WEBAUTH-USER
header_property:默认是个名称username
auto_sign_up:默认是true。开启自动注册,如果用户在grafana DB中不存在

[analytics]
reporting_enabled:如果设置为true,则会发送匿名使用分析到stats.grafana.org,主要用于跟踪允许实例、版本、dashboard、错误统计。默认是true
google_analytics_ua_id:使用GA进行分析,填写你的GA ID即可


[dashboards.json]
如果你有一个系统自动产生json格式的dashboard,则可以开启这个特性试试
enabled:默认是false
path:一个全路径用来包含你的json dashboard,默认是/var/lib/grafana/dashboards


[session]
provider:默认是file,值还可以是memory、mysql、postgres
provider_config:这个值的配置由provider的设置来确定,如果provider是file,则是data/xxxx路径类型,如果provider是mysql,则是user:password@tcp(127.0.0.1:3306)/database_name,如果provider是postgres,则是user=a password=b host=localhost port=5432 dbname=c sslmode=disable
cookie_name:grafana的cookie名称
cookie_secure:如果设置为true,则grafana依赖https,默认是false
session_life_time:session过期时间,默认是86400秒,24小时


以下是官方文档没有,配置文件中有的
[smtp]
enabled = false
host = localhost:25
user =
password =
cert_file =
key_file =
skip_verify = false
from_address = admin@grafana.localhost

[emails]
welcome_email_on_sign_up = false
templates_pattern = emails/*.html


[log]
mode:可以是console、file,默认是console、file,也可以设置多个,用逗号隔开
buffer_len:channel的buffer长度,默认是10000
level:可以是"Trace", "Debug", "Info", "Warn", "Error", "Critical",默认是info

[log.console]
level:设置级别

[log.file]
level:设置级别
log_rotate:是否开启自动轮转
max_lines:单个日志文件的最大行数,默认是1000000
max_lines_shift:单个日志文件的最大大小,默认是28,表示256MB
daily_rotate:每天是否进行日志轮转,默认是true
max_days:日志过期时间,默认是7,7天后删除
启动grafana:

./grafana-server -config="/opt/grafana-2.1.3/conf/custom.ini"
 


    下面的就是初始化过程了,会有大片的输出,再次重启grafana的时候则不会进行初始化:


下面访问grafana看看:

2018-08-07 11:08:00 weixin_30662109 阅读数 8

1、为什么学习Python?


 

2、通过什么途径学习的Python?


 

3、Python和Java、PHP、C、C#、C++等其他语言的对比?

C,它是现代编程语言的基础,在现代应用中使用不多。现在最主要的应用就是单片机,比如遥控器,仪表盘之类,直接操纵硬件,所以C语言至今仍不可取代。

PHP是用来做网站的,其实从技术角度,属于第一代的后端技术(植入式脚本技术),现在最新的后端技术,已经发展到第三代了(MVC架构),因此从技术上讲,PHP早该过时了,但由于市场需求的存在,所以它依然是做网站后台的主流之一。。就类似于WindowsXP一样,技术上太淘汰了,但市场却依然是主流,普及度依然很高。缺点一大堆,但又个最主要的优势,就是简单。。。MVC虽好,但学习难度远比PHP要高的多。php是世界上最好的语言xd

C++是面向对象的C语言,由于偏底层,所以性能非常高,仅次于C语言,主要用在一个要求高性能的领域。。。这个不好说,因为实际需求上,用处挺杂的,而且也确实不太好学。。因为它把C语言面向过程的那套东西,和JAVA面向对象的那些东西,堆砌到了一起。。也就同时把两种完全不同的思想揉在了一起。。个人的理解是,它就像周星驰电影里的那个“要你命3000”,把苍蝇拍,杀虫剂,手枪,手榴弹,灭鼠灵,用一根麻绳串在一起。。。杀虫可以,灭鼠可以,杀人也可以,堪称无所不能。。。但用起来,真是麻烦死了。。所以对于很多人来说,认可它的地位,承认它的功能,但敬而远之。
 

JAVA是今天真正意义上的大道正宗,名门正派。。。。丐帮有降龙十八掌,华山派有独孤九剑。。但你却很难说出,少林派有什么武功特别强。。而它又是公认的名门正宗。。。这其实就已经说明问题了,JAVA没有什么特别强的方面,但每个方面都不弱。。整体平均值,便非常高。。JAVA还有一个比较突出的优势,就是它是安卓系统的官方开发语言。。既然说到了少林,就不得不提一下武当。。。那就是微软的官方语言C#。。。.C#和JAVA相比,其实80%都是一样的。。几乎等于学一门,会两门,C#比JAVA稍微简单一些,IDE也好一些,其实比JAVA更适合新手,但由于之前不能跨平台,所以流行度比JAVA低,但确是游戏开发行业的第一大语言。。JAVA与C#基本可以看成一门语言的两种方言。。英式英语和美式英语的差别一样。。说到底还是半斤八两。。。一个是传统应用和安卓系统的第一大语言,一个是WINDOWS系统和游戏开发的第一大语言。。而且学一门会两门,你还要求啥?
 
Python也是个很有历史的语言,诞生时间和JAVA,C#差不多,但今天却依然非常时髦。。因为它的语法,简洁,优雅,风骚到了极致。。像写信一样写代码。。而又无所不能,JAVA和C#能做到的,Python几乎一样都不少。。。简单易学,尤其受到初学者喜爱。。但Python更像一把双刃剑,优点特别突出,缺点也特别明显,就是特别慢。。。一般认为,Python比JAVA慢25倍到50倍。。还有一门语言叫Ruby,和Python相似,也是语法特别简洁。。但比Python更慢,用途也不如Python。。。基本可以看作华山,丐帮,在某些情况下,可以胜过少林武当。。但整体上比较,还是要差一截。。但即便如此,它的前景也是非常好的。。由于语法简单,更容易被机器解析,所以在人工智能领域非常有前途。比如那个下围棋的Alpha Go,以及中国的北斗卫星定位系统。。都有大量的Python代码在里面。

4、简述解释型和编译型编程语言?
编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
 
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!python是一门解释型语言
5、Python解释器种类以及特点?
Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的种Python解释器:
CPython:
当 从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫 CPython,在命名行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器。
IPython:
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的
PyPy:
PyPy是另一个Python解释器,它的目标是执行速度,PyPy采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度。

 

6、位和字节的关系?

位(bit),数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位,是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。

 

 

7、b、B、KB、MB、GB 的关系?

 

1 B = 8b (8个bit/ 位) 一个字节(byte)等于8位(bit)
1 kB = 1024 B (kB - kilobajt)
1 MB = 1024 kB (MB - megabajt)
1 GB = 1024 MB (GB - gigabajt) 

 

 

8、请至少列举5个 PEP8 规范(越多越好)。

 

1 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。
2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。
3类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。
4 不要在一句import中多个库,比如import os, sys不推荐。
5 避免不必要的空格。

 

 

9、通过代码实现如下转换:

二进制转换成十进制:v = “0b1111011”

>>> int('0b1111011',2)
123

十进制转换成二进制:v = 18

>>> bin(18)
'0b10010'

八进制转换成十进制:v = “011”

>>> int('011',8)
9

十进制转换成八进制:v = 30

>>> oct(30)
'0o36'

十六进制转换成十进制:v = “0x12”

>>> int('0x12',16)
18

十进制转换成十六进制:v = 87

>>> hex(87)
'0x57'
 

10、请编写一个函数实现将IP地址转换成一个整数。
如 10.3.9.12 转换规则为:
10 00001010
3 00000011
9 00001001
12 00001100
再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?

def ip(value):
    res = value.split('.')
    s=''
    for i in res:
        i = (bin(int(i)).strip('0b'))
        if len(i) != 8:
            i = i.zfill(8)
            s+=i
    return int(s,2)

 

11、python递归的最大层数?

python默认递归最大的层数是998 不过这个值是可以通过sys.setrecursionlimit(1000)来设置

12、求结果:

v1 = 1or3 

1

v2 = 1and3  =====> 3

v3 = 0and2and1  =======> 0

v4 = 0and2or1========>0 and 2 or1

v5 = 0and2or1or4

1

v6 = 0orFlase and1

False 

 

13、ascii、unicode、utf-8、gbk 区别?

ASCII码使用一个字节编码,所以它的范围基本是只有英文字母、数字和一些特殊符号 ,只有256个字符。
在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。在基本多文种平面(英文为 Basic Multilingual Plane,简写 BMP。它又简称为“零号平面”, plane 0)里的所有字符,要用四位十六进制数(例如U+4AE0,共支持六万多个字符);在零号平面以外的字符则需要使用五位或六位十六进制数了。旧版的Unicode标准使用相近的标记方法,但却有些微的差异:在Unicode 3.0里使用“U-”然后紧接着八位数,而“U+”则必须随后紧接着四位数。
Unicode能够表示全世界所有的字节
GBK是只用来编码汉字的,GBK全称《汉字内码扩展规范》,使用双字节编码。
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
 

14、字节码和机器码的区别?

通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码。
字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。
 

15、三元运算规则以及应用场景?

三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值
格式:[on_true] if [expression] else [on_false]
res = 值1 if 条件 else 值2

 

 

16、列举 Python2和Python3的区别?

(1)Print

在 Python 2 中, print 被视为一个语句而不是一个函数,这是一个典型的容易弄混的地方,因为在 Python 中的许多操作都需要括号内的参数来执行。如果在 Python 2 中你想要你的控制台输出 ”hellow word”,你应该写下这样的 print 语句:

print "hellow word"

在使用 Python 3 时,print()会被显式地视为一个函数,因此要输出上面相同的字符串,你可以使用这种非常简单且易于使用的函数语法

print("hellow word")

这种改变使得 Python 的语法更加一致,并且在不同的 print 函数之间进行切换更加容易。就方便性而言,print()语法也与 Python 2.7 向后兼容,因此您的 Python 3 print()函数可以在任一版本中运行。

(2)整数的除法

在 Python 2 中,您键入的任何不带小数的数字,将被视为整数的编程类型。虽然乍看起来这似乎是一个简单的处理编程类型的方法,但有时候当你试图除以整数以期望获得一个带小数位的答案(称为浮点数),如:

5 / 2 = 2.5

然而,在 Python 2 中,整数是强类型的,并且不会变成带小数位的浮点数,即使这样做具有直观上的意义。

当除法/符号的任一侧的两个数字是整数时,Python 2进行底除法,使得对于商x,返回的数字是小于或等于x的最大整数。这意味着当你写下 5 / 2 来对这两个数字相除时,Python 2.7 将返回最大的小于或等于 2.5 的整数,在这种情形下:

a = 5 / 2print a#a=2
  1.  
    a = 5 / 2
  2.  
    print a
  3.  
    #a=2

为解决这个问题,你可以在 5.0 / 2.0 中添加小数位,以得到预期的答案 2.5。

在 Python 3 中,整数除法变得更直观,如

  1.  
    a = 5 / 2
  2.  
    print(a)
  3.  
    #a=2.5

你也可以使用 5.0 / 2.0 返回 2.5,但是如果你想做底层划分,你应该使用 “//” 这样的 Python 3 语法,像这样:

  1.  
    b = 5 // 2
  2.  
    print(b)
  3.  
    #b=2

 

在 Python 3 中的这种修改使得整数除法更为直观,并且它的特点是不能向后兼容 Python 2.7。

(3)支持 Unicode

当编程语言处理字符串类型时,也就是一个字符序列,它们可以用几种不同的方式来做,以便计算机将数字转换为字母和其他符号。

Python 2 默认使用 ASCII 字母表,因此当您输入“Hello word!”时, Python 2 将以 ASCII 格式处理字符串。被限定为在多种扩展形式上的数百个字符,用ASCII 进行字符编码并不是一种非常灵活的方法,特别是使用非英语字符时。

要使用更通用和更强大的Unicode字符编码,这种编码支持超过128,000个跨越现今和历史的脚本和符号集的字符,你必须输入

u“Hello,word!” #前缀 u 代表 Unicode。

Python 3 默认使用 Unicode,这节省了程序员多余的开发时间,并且您可以轻松地在程序中直接键入和显示更多的字符。因为 Unicode 支持更强大的语言字符多样性以及 emoji 的显示,所以将它作为默认字符编码来使用,能确保全球的移动设备在您的开发项目中都能得到支持。

(4)后续发展

Python 3 和 Python 2 之间的最大区别不是语法上的,而是事实上 Python 2.7 将在 2020 年失去后续的支持,Python 3 将继续开发更多的功能和修复更多的错误。

最近的发展包括格式化的字符串,类创建的简单定制,和用一种更干净的句法方式来处理矩阵乘法。

Python 3 的后续开发意味着,开发人员可以对问题被及时解决抱有信心,并且随着时间的推移更多的功能将被添加进来,程序也会变得更加有效。

 

17、用一行代码实现数值交换:a = 1 b = 2

a,b = b,a

18、Python3和Python2中 int 和 long的区别?

int(符号整数):通常被称为是整数或整数,没有小数点的正或负整数

long(长整数):无限大小的整数,这样写整数和一个大写或小写的L。

 

19、xrange和range的区别?

1.range和xrange都是在循环中使用,输出结果一样。

2.range返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object)。

3.xrange则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少,因而性能非常好。

注意:Python 3.x已经去掉xrange,全部用range代替。

 

20、文件操作时:xreadlines和readlines的区别?

二者使用时相同,但返回类型不同,xreadlines返回的是一个生成器,readlines返回的是list

 

21、列举布尔值为False的常见值?

0 , [ ] , " , ( ) , { } 

 

22、字符串、列表、元组、字典每个常用的5个方法?

字符串:

  1.  
    words = ‘today is a wonderfulday‘
  2.  
    print(words.strip(‘today‘))#如果strip方法指定一个值的话,那么会去掉这两个值
  3.  
    print(words.count(‘a‘))#统计字符串出现的次数
  4.  
    print(words.index(‘is‘))#找下标
  5.  
    print(words.index(‘z‘))#找下标如果元素不找不到的话,会报错
  6.  
    print(words.find(‘z‘))#找下标,如果元素找不到的话,返回-1

列表:

  1.  
    sample_list = [‘a‘,1,(‘a‘,‘b‘)] #创建列表
  2.  
    sample_list = [‘a‘,‘b‘,0,1,3] # Python 列表操作
  3.  
    value_start = sample_list[0] #得到列表中的某一个值
  4.  
    end_value = sample_list[-1] #得到列表中的某一个值
  5.  
    del sample_list[0] #删除列表的第一个值
  6.  
    sample_list[0:0] = [‘sample value‘] #在列表中插入一个值

元祖:

  1.  
    #元组也是一个list,他和list的区别是元组的元素无法修改
  2.  
    tuple1 = (2,3,4,5,6,4,7)
  3.  
    print(type(tuple1))
  4.  
    print(tuple1[:7])
  5.  
    print(tuple1[:5:-1])

字典

  1.  
    dict = {‘ob1‘:‘computer‘, ‘ob2‘:‘mouse‘, ‘ob3‘:‘printer‘}
  2.  
    #每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。键是唯一的,字典只认最后一个赋的键值。
  3.  
     
  4.  
    D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
  5.  
    D.has_key(key) #有该键返回TRUE,否则FALSE
  6.  
    D.keys() #返回字典键的列表
  7.  
    D.values()
  8.  
    D.items()

 

23、lambda表达式格式以及应用场景?

lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。

lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数。如下所示:

  1.  
    # 需求:将列表中的元素按照绝对值大小进行升序排列
  2.  
    list1 = [3,5,-4,-1,0,-2,-6]
  3.  
    print(sorted(list1, key=lambda x: abs(x))) #[0, -1, -2, 3, -4, 5, -6]

24、pass的作用?

1、空语句 

2、保证格式完整

3、占位语句

 

25、*arg和**kwarg作用

所以从以上的示例可以看到*arg和**kwarg的作用为:

1、函数调用里的*arg和**kwarg:

(1)*arg:元组或列表“出现”
         **kwarg:字典“出没”

(2)分割参数

2、函数定义时传的*arg /**kwarg:

(1)接收参数

26、is和==的区别

==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等

is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。

 

27、简述Python的深浅拷贝以及应用场景?

字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层。所以对于只有一层的数据集合来说深浅拷贝的意义是一样的,比如字符串,数字,还有仅仅一层的字典、列表、元祖等.

应用场景:比如在CMDB系统中,我们定义了一个报警模版call给所有的服务器使用,此时有一批特殊应用的服务器需要不通的报警参数,我们既不想单独新建模版来一个一个添加报警参数,又不想修改默认模版而影响其他机器的报警阈值。此时我们就需要用深拷贝来完成。

 

28、Python垃圾回收机制?

Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation collection)以空间换取时间来进一步提高垃圾回收的效率。

 

29、Python的可变类型和不可变类型?

可变:列表、字典

对于可变类型,无论创建多少个可变类型,只要值相同,都不指向同个内存地址(除非进行复制操作,那么他们将会指向同一个地址)。

不可变:数字、字符串、元祖  

对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收)。

 

30、求结果:


  1.  
    v = dict.fromkeys([ 'k1', 'k2'],[])
  2.  
    v[‘k1’]. append( 666)
  3.  
    print(v)
  4.  
    v[‘k1’] = 777
  5.  
    print(v)
  6.  
     

结果为:

<<<{'k1': [666], 'k2': [666]}

31、求结果

 

def  num():
    return [lambda x:i*x for i in range(4)]
 
print([ m(2) for m in num()])
结果为:

[6, 6, 6, 6]

 

32、列举常见的内置函数?

 

1、abs()    此函数返回数字的绝对值。

a = 5
b = -10
print(abs(a))  #输出3
print(abs(b))  #输出5

2、all()     此函数用于判断给定的可迭代参数 iterable 中的所有元素是否都不为 0、都不为False 或者iterable都 为空,如果是返回 True,否则返回 False。

 
print(all(['a', 'b', 'c', 'd']))  # True
print(all(['a', 'b', '', 'd']))   # False
print(all([0, 1,2, 3]))          # False
print(all(('a', 'b', '', 'd')))   # False
print(all((0, 1,2, 3)))          # False
print(all([]))  # True
print(all(()))  # True
 

3、any()     函数用于判断给定的可迭代参数 iterable 是否全部为空对象,如果都为空、都为0、或者都为false,则返回 False,如果不都为空、不都为0、不都为false,则返回 True。

 
print(any(['a', 'b', 'c', 'd']))  # True
print(any(['a', 'b', '', 'd']))   # True
print(any([0, 1,2, 3]))          # True
print(any(('a', 'b', '', 'd')))   # True
print(any((0, 1,2, 3)))          # True
print(any([]))  # False
print(any(()))  # False
 

4、bin()     返回一个整数 int 或者长整数 long int 的二进制表示。

print(bin(10))  #0b1010
print(bin(20))  #0b10100

5、bool()    函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。

                     传入布尔类型时,按原值返回

                     参数如果缺省,则返回False

                     传入字符串时,空字符串返回False,否则返回True

                     传入数值时,0值返回False,否则返回True

                     传入元组、列表、字典等对象时,元素个数为空返回False,否则返回True.

 
print(bool())  #False
print(bool(True))  #True
print(bool(""))  #False
print(bool("123"))  #True
print(bool(0))  #False
print(bool(1))  #True
print(bool([])) #False  若元祖和字典为空时 也为False ,不为空 则为True
 

6、chr()     用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。(只能输入数字)

print(chr(65))   #A
print(chr(97))   #a
print(chr(100))  #d

7、cmp(x,y)     函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。(python3已经删除了)

8、compile()     函数将一个字符串编译为字节代码。语法:compile(source, filename, mode[, flags[, dont_inherit]])

import re
pattern=re.compile('[a-zA-Z]')
result=pattern.findall('as3SiOPdj#@23awe')
print(result)

9、complex(real,imag)     函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。

print(complex(1, 2))  #(1 + 2j)
print(complex(1))  #(1 + 0j)
print(complex("3")) #(3+0j)

10、dict()     函数用于创建一个字典。

print(dict(a='a',b='b')) #{'b': 'b', 'a': 'a'}

11、dir()     函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

12、python divmod()    函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

13、enumerate()    函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

14、eval()    函数用来执行一个字符串表达式,并返回表达式的值。

15、execfile()    函数可以用来执行一个文件。

16、float()    函数用于将整数和字符串转换成浮点数。

17、frozenset()    返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

18、getattr()    函数用于返回一个对象属性值。

19、hash()    用于获取取一个对象(字符串或者数值等)的哈希值。

20、help()    函数用于查看函数或模块用途的详细说明。

21、hex()    函数用于将10进制整数转换成16进制整数。

22、id()    函数用于获取对象的内存地址。

23、input()    输入函数

24、int()    函数用于将一个字符串会数字转换为整型。

25、isinstance()    函数来判断一个对象是否是一个已知的类型,类似 type()。

    isinstance() 与 type() 区别:                  

                   type() 不会认为子类是一种父类类型,不考虑继承关系。

                   isinstance() 会认为子类是一种父类类型,考虑继承关系。

                   如果要判断两个类型是否相同推荐使用 isinstance()。

26、len()    方法返回对象(字符、列表、元组等)长度或项目个数。

27、list()    方法用于将元组转换为列表。

28、locals()    函数会以字典类型返回当前位置的全部局部变量。

29、long()    函数将数字或字符串转换为一个长整型。

30、max()    方法返回给定参数的最大值,参数可以为序列。

31、memoryview()    函数返回给定参数的内存查看对象(Momory view)。

32、min()    方法返回给定参数的最小值,参数可以为序列。

33、oct()    函数将一个整数转换成8进制字符串。

34、open()    函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。

35、ord()    函数与chr()函数相反,输入字符返回数字

36、pow()    方法返回 xy(x的y次方) 的值。函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z

37、print()    输出函数

38、range()    函数可创建一个整数列表,一般用在 for 循环中。

39、reload()    用于重新载入之前载入的模块。

40、everse()    函数用于反向列表中元素。

41、round()    方法返回浮点数x的四舍五入值。

42、set()    函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

43、str()    函数将对象转化字符串

44、sum()    方法对系列进行求和计算。

45、tuple()   元组 tuple() 函数将列表转换为元组。

46、type()   返回对象类型。

47、unichr()    该函数和chr()函数功能基本一样, 只不过是返回 unicode 的字符。

48、vars()    函数返回对象object的属性和属性值的字典对象。

49、xrange()    函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器。

50、__import__()    函数用于动态加载类和函数 。如果一个模块经常变化就可以使用 __import__() 来动态载入。

 

 

33、filter、map、reduce的作用?

 

map() 会根据提供的函数对指定序列做映射。 
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表

  1.  
    In [11]: for i in map(lambda x:x*x,[1,2,3,4]):
  2.  
    ...: print(i)
  3.  
    ...:
  4.  
    1
  5.  
    4
  6.  
    9
  7.  
    16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。 
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

  1.  
    In [12]: def is_odd(n):
  2.  
    ...: return n % 2 == 1
  3.  
     
  4.  
    In [15]: for i in filter(is_odd,[1,2,3]):
  5.  
    ...: print(i)
  6.  
    ...:
  7.  
    1
  8.  
    3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

reduce() 函数会对参数序列中元素进行累积。 
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数

  1.  
     
  2.  
    In [19]: from functools import reduce
  3.  
     
  4.  
    In [20]: def add(x,y):
  5.  
    ...: return x+y
  6.  
    ...: reduce(add,range(1,101))
  7.  
    ...:
  8.  
    Out[20]: 5050

 

 

34、一行代码实现9*9乘法表

print ('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))

 

35、如何安装第三方模块?以及用过哪些第三方模块?

在Python中,安装第三方模块,是通过setuptools这个工具完成的。Python有两个封装了setuptools的包管理工具:easy_install和pip。目前官方推荐使用pip 
如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。 
如果你正在使用Windows,确保安装时勾选了pip和Add python.exe to Path。 
在命令提示符窗口下尝试运行pip,如果Windows提示未找到命令,可以重新运行安装程序添加pip。 
现在,让我们来安装一个第三方库——bs4 
pip install bs4 
用过的第三方模块 bs4/pymysql/redis/lxml/tkinter/urllib/requests等

 

36、至少列举8个常用模块都有那些?

Django Flask Scrapy Tkinter Pygame numpy pillow-python pymysql pip

 

37、re的match和search区别?

match只找字符串的开始位置,而search是全盘查找

 

38、什么是正则的贪婪匹配?

1、贪婪匹配 
总是尝试匹配尽可能多的字符 
2、非贪婪匹配 
是尝试匹配尽可能少的字符

 

39、求结果: a. [ i % 2 for i in range(10) ] b. ( i % 2 for i in range(10) )

 

[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

<generator object <genexpr> at 0x000000000552E938>

40、求结果: a. 1 or 2 b. 1 and 2 c. 1 < (2==2) d. 1 < 2 == 2

or 2 ===>1and 2===>21 < (2==2) =====>False1<2==2 ======>True

41、def func(a,b=[]) 这种写法有什么坑?

def func(a,b=[]):
    b.append(a)
    print(b)
func(1)
func(1)
func(1)
func(1)

 

输出:

 

  [1]
  [1, 1]
  [1, 1, 1]
  [1, 1, 1, 1]

函数的第二个默认参数是一个list,当第一次执行的时候实例化了一个list,第二次执行还是用第一次执行的时候实例化的地址存储,所以三次执行的结果就是 [1, 1, 1] ,想每次执行只输出[1] ,默认参数应该设置为None。

42、如何实现 “1,2,3” 变成 [‘1’,’2’,’3’] ?

a = '1,2,3'
listA= a.split(',')
print(listA) 

43、如何实现[‘1’,’2’,’3’]变成[1,2,3] ?

a= ['1', '2', '3']
b=[int(i) for i in a]
print(b)

44、比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的区别?

a = [1,2,3] 和 b = [(1),(2),(3) ] 都是列表 b = [(1,),(2,),(3,) ] 是列表里面套元组

 

45、如何用一行代码生成[1,4,9,16,25,36,49,64,81,100] ?

 

a= [i*i for i in range(1,11)]
print(a)

46、一行代码实现删除列表中重复的值 ?

 

a = [1,2,3,4,5,1,2,3,4,5]
b=set(a)
print(b)

 

 

47、如何在函数中设置一个全局变量 ?

 

def a():
    global b
    b=123

a()
print(b)

 

 

48、logging模块的作用?以及应用场景?

可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息; 
print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;

 

49、请用代码简答实现stack 。

 

class Stack(object):
    def __init__(self):
        self.stack = []

    def push(self, value):    # 进栈
        self.stack.append(value)

    def pop(self):  #出栈
        if self.stack:
            self.stack.pop()
        else:
            raise LookupError('stack is empty!')

    def is_empty(self): # 如果栈为空
        return bool(self.stack)

    def top(self): 
        #取出目前stack中最新的元素
        return self.stack[-1]

 

50、常用字符串格式化哪几种?

tuple形式

print 'hello %s and %s' % ('df', 'another df')

 

 

字典形式

可以和json文件相互转换,所以,当配置文件使用字符串设置的时候,就显得相当方便。

print 'hello %(first)s and %(second)s' % {'first': 'df', 'second': 'another df'}

format形式

print 'hello {first} and {second}'.format(first='df', second='another df')

51、简述 生成器、迭代器、可迭代对象 以及应用场景?

 

52、用Python实现一个二分查找的函数。

 

53、谈谈你对闭包的理解?

 

54、os和sys模块的作用?

sys模块主要是用于提供对python解释器相关的操作 
OS模块是Python标准库中的一个用于访问操作系统功能的模块,使用OS模块中提供的接口,可以实现跨平台访问

55、如何生成一个随机数?

56、如何使用python删除一个文件?

57、谈谈你对面向对象的理解?

58、Python面向对象中的继承有什么特点?

59、面向对象深度优先和广度优先是什么?

60、面向对象中super的作用?

61、是否使用过functools中的函数?其作用是什么?

62、列举面向对象中带爽下划线的特殊方法,如:__new__、__init__

63、如何判断是函数还是方法?

64、静态方法和类方法区别?

65、列举面向对象中的特殊成员以及应用场景

66、1、2、3、4、5 能组成多少个互不相同且无重复的三位数

67、什么是反射?以及应用场景?

68、metaclass作用?以及应用场景?

69、用尽量多的方法实现单例模式。

70、装饰器的写法以及应用场景。

71、异常处理写法以及如何主动跑出异常(应用场景)

72、什么是面向对象的mro

73、isinstance作用以及应用场景?

转载于:https://www.cnblogs.com/alexzhang92/p/9435820.html

2016-06-06 13:07:54 u011610340 阅读数 11430

Mac 教程:告别 Dashboard,教你禁用 OS X 下的仪表盘教程

OS X Yosemite 发布之后,整个 OS X 界面都变得扁平 —— 而总有个「奇葩」不但没啥用,还出现在 Mission Control 中。这个奇葩应用叫 Dashboard(仪表盘),居然还在使用拟物设计,满满违和感,摆放小插件时让强迫症患者悲痛欲绝,怎能不使人恨之入骨?

关于仪表盘

仪表盘,曾经一度是 OS X 的亮点之处,给前几代的 OS X 用户提供了很多便利,利用小插件(Widgets)来管理日常简单工作,非常方便。在多桌面管理界面(Mission Control)也能看见它的面孔。

然而如今的 OS X 有了更多其他的功能,更快的程序启动速度,完全不需要这个 Dashboard 来完成任务了,反而成了一种累赘。显然,仪表盘已经被苹果抛弃了,没有原来那样的实际用途,就连 UI 也和 Yosemite 的扁平界面违和不以。那作为用户也得表示表示,高冷地把它禁用掉,省着碍眼。


禁用仪表盘

不过,似乎 OS X 并没有提供卸载 Dashboard 的功能,好在有着「终端」能够满足 Power User 的各种需求。通过 Spotlight 搜索「终端」或「Terminal」,进入并复制以下命令粘贴到终端中,并敲击「return」回车键。

defaults write com.apple.dashboard mcx-disabled -boolean YES && killall Dock


Dock 栏会消失并重新浮现,现在用触控板向右滑动,发现仪表盘的确消失了。启动 Mission Control,也只能看到几个桌面,而不见仪表盘的踪影。成功,击掌!总算告别了历史遗留问题。


重新开启仪表盘的解决方案

不过,禁用了仪表盘可能是诸位一时兴起做出的事情。大家都说,失去的才是最还念的,万一第二天早上醒来,打开电脑发现仪表盘没了,即使你在禁用仪表盘之前从来没有用过仪表盘,也说不准会对它极其想念。为了避免各位丧心病狂地乐极生悲,笔者也必须给你们留条活路,重新启用仪表盘也只需要一串代码。

defaults write com.apple.dashboard mcx-disabled -boolean NO && killall Dock


同样,复制到终端中,是不是熟悉的面孔又回来了?笔者注:如果在重新启用后感到头晕眼花各种不适,请遵循医嘱再读一遍本文上面一章节「禁用仪表盘」。

2015-06-12 17:09:47 u010828718 阅读数 1353

http://www.open-open.com/lib/view/open1387098154281.html

GitHub 上大概600个开源 iOS 项目的分类和介绍,对于你挑选和使用开源项目应该有帮助

 sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错~

 BlocksKit 将Block风格带入UIKit和Founcation

 cocoa-helpers 一些Cocoa的扩展 2年前的工程

 CoconutKit 一系列扩展和一些自定组件

 STUtils 一系列扩展包

 PSFoundation 一系列扩展 和功能增强

 ConciseKit 一系列宏定义 挺有意思

 DTFoundation 又一系列扩展。。。

 BBBootstrap 一些常见功能的扩展库

 cooliris-toolkit cooliris出品的基础工具库,从GoogleCode clone过来

 BaseKit 一套基础工具库

 NSObject-Utility-Categories 如题

 NSArray-Utilities 如题

 aqtoolkit 一些常用的东西

 DLIntrospection 一些NSObject的扩展

 NSDate-Extensions 如题日期

 ALActionBlocks 在UIControl上添加的Block事件

 jrswizzle 主要是swizzling

 moriarty 一些还算有用的功能

 QSUtilities 一些基础库 (Instagram有用到)

 libextobjc 一堆oc的扩展

 PrettyTimestamp 友好时间的扩展

 ios-jail-break-detector 检测是否越狱 有上线

 crackify 检测App是否被破解

 NSBundle-OBCodeSigningInfo 检查当前签名、Sandbox状态 MacOSX

 UIView-AnimatedProperty 为UIView添加动画效果的property,有用到swizzle

 Block-KVO Block风格的KVO~

 MTDates 一些Data的category

 CocoaSecurity 常见的哈希、加密解密算法

 sskeychain 访问keychain 支持iOS Mac

 ABContactHelper 访问联系人

 UISS 用JSON的风格设置UIKit样式

 Underscore.m 仿JS的underscore.js来写的,用于访问和处理数据

 TICoreDataSync 在不同设备间对CoreData进行同步 (iPhone iPad Mac)

 SoloComponents-iOS 几个轻量的组件,没什么用,2年没更新

 MAObjCRuntime 将运行时包装成ObjC

 Objective-C-Generics 通过宏定义勉强实现的范型

 TBMacros 一些常用的宏定义

 NSString-Ruby 为Ruby程序员带来的字符串相关功能

 ObjectiveRecord CoreData包装的活动记录 有RoR风格的API

 FastImageCache 滑动时快速显示图片的库,Path开发

 mediaextract 纯C的一些常用媒体文件的解析读取

 objection 一个估计是java ee写多了的人搞的。。注解依赖注入xx工厂之类的

 Typhoon IoC容器啊~~

 HTKit 一票乱七八糟的东西

 StringScore 模糊匹配字符串 查找某两个字符串的相似程度

 RegexKitLite 正则表达式库 (从SF.net mirror过来)

 FormatterKit 一个NSString的格式化工具

 TMCache 一个内存Cache

 EGOCache EGOImage里面的 Cache功能

 HJCache 一个缓存网络内容等的Cache

 RNCryptor 加密解密相关 貌似更上流, note:去看一下他博客

 ssziparchive zip压缩 zip解压~

 ZipKit 一个ZipKit 从bitbucket Mirror过来

 ZipKit 如同ZipKit 改为ARC了

 zipzap Zip文件处理 底层为libz

 MTMigration 版本升时执行一次

 MTControl jQuery风格touch事件绑定

 storage 快速、线程安全的I/O存储操作

 CHCSVParser CVS文件解析

 YLMoment 日期的解析,格式化等,支持多语言

 CMUnistrokeGestureRecognizer 各种奇怪的手势检测

 EKAlgorithms.git 常见算法的ObjC实现,包括排序、查找、数组、字符串、常用数据结构..

 three20 一个曾经用得广泛的庞大的iOS开发框架 已不再维护

 nimbus three20替代品 又一个庞大的框架

 BeeFramework 一个基于MVC的框架, 比较大..

 OmniGroup 一套很庞大的库(OmniGroup) 支持Mac和iOS 更新迅速

 ReactiveCocoa 一套响应式编程的框架(Functional Reactive Programming) 支持Mac

 WebViewJavascriptBridge WebView和Cocoa之间的事件传递

 OCUDL 自定义literals 有点意思~~

 Kiwi 一个Behavior驱动编程框架? (BDD)?

 Mantle 一个Model层, 替代CoreData 可以生成Model对象~ Github官方出品..

 MagicalRecord CoreData的包装 简化代码

 fmdb SQLite的封装

 KZPropertyMapper 一个Model的封装,类JSON

 BlockInjection 为某个方法注入一个Block 类似AOP

 NSObject-ObjectMap JSON和XML包装到Object

 Ejecta 通过OpenGL OpenAL来实现 WebCanvas JS等,很庞大~

 FCModel 为SQL程序员包装一下CoreData

 iOS-System-Services 获取各种设备信息 包括硬件、网络、内存、进程等等

 MKStoreKit iAP用的库

 CargoBay 一个包装iAP StoreKit的库

 RMStore 很轻量的iAP包装

 QuincyKit 处理crach信息的库 只有上架应用才能用 支持Mac

 OpenUDID 系统UDID替代方案

 UIDevice-with-UniqueIdentifier-for-iOS-5 另一个UUID解决方案 但iOS7不能用了

 uidevice-extension 一系列UIDevice的扩展 有PrivateAPI 最新的工程在cookbook-code里

 InAppSettingsKit 包装了设置、URLScheme、Mail、Icon等东西

 DTWebArchive 允许访问剪贴板中的WebArchive格式富文本

 routable-ios inApp的URL定义 在App内打开自定义URL (解耦)

 JLRoutes 复杂的URL Scheme解析和路由

 Emoji 访问Emoji图片的功能

 PDKeychainBindingsController 以类似UserDefault的方式访问Keychain

 CoreTextWrapper 一个CoreText库的包装

 Slash 对AttributeString的封装

 iHasApp 检测某个App是否安装,集成了常见的URL Scheme

 AFNetworking 很棒的HTTP网络通信库

 asi-http-request 一个HTTP库 同样很知名 性能好,稳定 但已不再维护

 MKNetworkKit 一个HTTP库 支持Mac 同样也不错

 STHTTPRequest 一个非常简单的http库,包装了NSURLConnection

 RestKit 一个HTTP库 用来与RESTful的服务进行交互

 AFIncrementalStore 用CoreData和AFNetworking 将HTTP数据持久化

 CocoaAsyncSocket TCP/UDP包装库 支持Mac 很棒

 Reachability 判断设备网络情况 和苹果的很像 用ARC、GCD

 SDReachability 判断设备网络情况 和苹果的很像,更友好?

 socket.IO-objc 支持HTTP 长轮询 socket.io

 DTBonjour Bonjour和Wifi

 XMPPFramework XMPP客户端的库~ 支持Mac

 CocoaHTTPServer 一个轻量的HTTP Server 支持Mac

 SocketRocket WebSocket客户端~

 MailCore IMAP SMTP邮件协议

 JSONKit 性能非常好 (只比Apple原生的差一点)

 json-framework SBJson 曾经用得很广泛的JSON 性能差

 TouchJSON 又一个JSON库

 yajl-objc 一个JSON库 可以支持流解析 支持Mac

 JSONModel 一个构建JSON Model的工具和库

 MWFeedParser Feed/Atom解析

 RSSKit RSS Atom解析

 ElementParser 提供Html和XML的解析

 hpple 提供Html/XML解析

 Objective-C-HMTL-Parser 一个很简单的HTML解析 包装了下libxml

 RaptureXML 一个简单的XML解析器 包装了libxml

 KissXML 解析XML的库 包装了libxml

 TBXML 快速解析xml的库

 xmldocument 又一个解析XML的库

 XMLDictionary 蛮好用的一个XML转NSDictionary的类~

 XML-to-NSDictionary XML转NSDictionary

 MMMarkdown 一个渲染Markdown到HTML的小引擎

 Ashton 在NSAttrbuteString和Html之间转换

 XMLParser XML解析成json~

 EGOImageLoading 下载使用网络图片的库

 SDWebImage 异步加载网络图片 (UIImage Category)

 TCBlobDownload 下载大文件/ 断点续传

 GroundControl 一个通过远程plist改变配置的库

 appirater 提醒用户稍后到AppStore给你评分的功能

 iRate 类似appirater 提醒用户稍后到AppStore评分 支持Mac

 ShareKit 分享到国外的一些社交网站 的功能 用的的人挺多

 Harpy 新版本更新提醒

 iVersion 新版本更新提醒 功能提示

 DataKit 以类似CoreData的Model 来获取网络资源

 SDURLCache URL缓存

 objective-git libgit的包装 挺庞大

 nsrails RoR风格的网络交互API

 facebook-ios-sdk Facebook的SDK

 MGTwitterEngine 一套Twtter库

 Twitter-OAuth-iPhone Twitter的OAuth功能

 Foursquare-API-v2 Foursquare的库

 objectiveflickr Flicker API

 octokit.objc Github的API

 ParcelKit Dropbox封装CoreData

 cocoalibspotify spotify官方SDK

 GDFileManagerKit 访问 dropbox GDrive之类的云存储

 iOSSystemSoundsLibrary 列出和播放iOS系统声音~

 novocaine 一个声音库 录音放音 页面上有CoreAudio的教程链接

 TheAmazingAudioEngine 一个声音库 包装了CoreAudio

 AudioStreamer 音频流播放库 支持Mac

 SimpleAudioEngine 一个简单的播放声音的库

 DOUAudioStreamer 豆瓣的音频流播放

 audiograph 一个AU的教程 & 示例工程~

 NVDSP 一个iOS上的DSP处理

 Blip-Synth 一个Blip声音合成器

 PGMidi 一个Midi库

 sc_listener 检测系统声音等级的库

 ObjectAL-for-iPhone 一个OpenAL的包装库 比较好用

 SoundBankPlayer 一个仿SoundFout的库 但更简单

 Finch 对底层的OpenAL包装

 SoundManager 很简单的Sound播放管理

 OrigamiEngine 音乐播放引擎 支持 flac, cue, mp3, m4a, m3u

 libpd 一个用PD来创造音乐的库? 纯C

 pd-for-ios 同libpd

 RCTMidiLib 一个Pad连接Midi设备通信的包装

 octave 一个免费的音效库 包括48个UI音效

 RBDMuteSwitch 在iOS5上检测是否静音

 sfArkLib 转换sfArk和sf2的库 很简单

 sfArkXTm 简单解压sfArk的一个cpp

 unsfark 和上面sfArkXTm一样,是老一点的纯C版本

 MuseScore 一个跨平台的音乐软件~ not iOS

 OpenSFZ 一个SF2的处理库(Github上有详细说明) An Open SFZ player & SF2 based on SFZero

 alsaplayer 一个Linux下PCM库 有sf2 midi等处理过程

 cocos2d-iphone 2D游戏引擎 (SpriteKit后来居上了..)

 cocos2d-iphone-extensions cocos2d的扩展

 smooth-drawing cocos2d中画出平滑的曲线

 tiny-wings 仿TinyWings的Demo 用Cocos2D

 Tiny-Wings-Remake-on-Android 如题.

 tweejump 是小鸟就跳100层 Game

 wizardwar 一个很完整的2D小游戏,支持对战,已在AppStore上架

 Sparrow-Framework 开源游戏引擎 2D 1.0版

 Sparrow-Framework 开源游戏引擎 2D 2.0版

 GPUImage 基于GPU的实时图像视频处理

 XBImageFilters 一个GPU实时处理的库 类似GPUImage

 CeedGL 一个OpenGL的包装 用起来更方便

 rend-ios 一个OpenGL的轻量包装 接近UIKit

 GLView 在UIView的包装 方便使用OpenGL

 sift-gpu-iphone 一个包装GL用的,不知道干毛的

 ShaderManager 如题 一个Manager 管理创建Shader

 GLImageProcessing 演示如何用GPU处理图片

 FRD3DBarChart 用OpenGL绘制的3D柱形图

 EarthView 显示3D地形图 用OpenGL

 CoreAR 一个挺有意思的AR

 VRToolKit 一个虚拟现实的库

 NYXImagesKit 一套图像处理的库 加在UIImage上

 ios-image-filters UIImage扩展 类似PS的功能 用CoreImage

 vImageCategory UIImage扩展 简单的一些处理

 MGImageUtilities 几个简单的图片处理 UIImage

 UIImageAdjust 一些UIImage的扩展 如亮度 模糊等

 CKImageAdditions 一些UIImage的不错功能~

 UIImage-BlurredFrame 仅模糊图片中的一块区域~

 LBBlurredImage UIImage扩展 可以模糊 不知道性能如何

 FilterKit 为拍照添加滤镜 基于GPUImage

 TCam 用CIFIlter实现的类似Instagram的类

 CLImageEditor 一个功能齐全的图像处理(滤镜/曲线/裁减/旋转/等等~)

 PKCoreTechniques CA和CG的特性演示

 UIImage-Categories UIImage的一些扩展

 uiimage-dsp UIImage模糊的一些方法

 UIImage-Sprite-Additions UIImage取Sprite~

 iOS-Scratch-n-See 类似结冰玻璃用手画开的效果~

 OBGradientView 一个渐变色的CALayer 比系统的好用些

 ANImageBitmapRep 一些Bitmap处理的方法

 KGNoise 产生带噪音的Image 支持Mac

 KGNoiseColorTester 上面KGNoise的演示

 SQRiskCursor 一个用CA和UIControl自定义控件的例子

 AmazeKit 据说是为PNG加速 或自己画 主要为控件提升性能的

 UIImage-PDF 如题 UIImage来显示PDF

 JMNoise 给UIView添加Noise噪音的

 SWSnapshotStackView 图片加上Stack外框

 RMShapedImageView 一个UIImageView的子类 能忽略透明地方的点击

 MOOMaskedIconView 一个通过Mask显示Icon的库 只要一个Mask 可以生成很多风格的Icon 类似Tabbar

 FTAssetRenderer 运行时的图像Mask生成?

 wolfpack 图像处理库CI CG

 DSGraphicsKit 支持图片常见处理 视图控制3D等

 uiimage-from-animated-gif 显示gif

 cam 一个AVFoundation的封装、照相等功能

 Filtrr 几个Filter 速度也不行

 ZXingObjC ZXing 二维码/条形码处理

 uicolor-utilities UIColor扩展和色板

 color 一系列UIColor扩展

 ColorUtils 一个UIColor扩展

 ColorConverter RGB和HSL转换

 InfColorPicker 一个色彩选择器

 RSColorPicker 一个不错的色彩选择器 有放大镜

 colorpicker 一个很强大的ColorPicker 包装了挺多东西

 ColorPicker 功能很棒的一个取色

 ILColorPicker 一个还算标准的ColorPicker

 NPColorPicker 一个HSV三角取色器

 KZColorPicker 又一个HSV圆盘取色器

 Color-Picker-for-iOS 一个简单的单色Picker 有一个滑块

 LEColorPicker 一个ColorPicker可以取到图片的主色调等

 UIColor-converter 一些UIColor的工具~~

 SUColor 提供2K多的日本色

 Colours-for-iOS 提供不少常用色 和几个方法

 ColorArt 类似iTunes的 取一幅图画的主要背景颜色等 (这是个Mac功能)

 iOS7Colors iOS7的几种常用颜色

 iOSPlot 画饼图/折线图的库 用CA

 PNChart 扁平风格的折线图/柱形图

 TEAChart 扁平风格的饼图/柱形图

 ios-linechart 简单好用的饼图/折线图

 JYRadarChart 雷达图(螂蛛网图), 风格多样

 Core-Animation-Pie-Chart 用CA画饼图 示例

 MSSimpleGauge 扇形仪表盘

 FBDigitalFont LED液晶效果荧光字体,用CG实现

 FBGlowLabel LED液晶效果荧光字体,UILabel

 ADGraphView 一个CG绘画库 股票曲线演示

 SVGKit 一个用CA来呈现SVG图片的库

 Smooth-Line-View 用QuartZ画出平滑的曲线

 Smooth-Line-View 用上面的库搭建的比较完整的画板功能 有取色器等

 SignatureDemo 一个QuartZ 触摸画平滑曲线的Demo~~~

 DynamicGraphView 动态折线图

 XYPieChart 饼图~有动画

 Animated-Paths 动画画出文字和图形的轮廓~

 CA360 一套完整的CA动画Demo

 Core-Animation-Fun-House 一套CA动画展示Demo

 Core-Animation-Demos 一套CA动画Demo

 EnterTheMatrix CA动画演示Demo

 ftutils 一套CA的Util库 有一些常用动画

 Dazzle 用CA实现的各种有趣的粒子效果

 AGGeometryKit CA和3D效果等

 RBBAnimation 基于block的CA动画

 NSBKeyframeAnimation 那些jQuery带的动画速率曲线

 CAAnimation-EasingEquations 一些CA没有的动画曲线

 UIView-EasingFunctions UIView的动画曲线~~

 PhysicsAnimation 物理动画,用Chipmunk实现的重力效果等

 DPMeterView 有重力感应的2D图形动画(例如瓶子的水) 貌似挺有意思~~

 Parallax iOS7的景深背景动画效果 一般..

 MTAnimation 25种动画曲线~~~

 SKBounceAnimation 弹跳的动画曲线

 BCGenieEffect 果冻吸入的效果 和Mac里最小化的效果一样~~很棒~

 iCarousel 一套类似CoverFlow的空间,非常棒,可选多样式,可用于Mac

 OpenFlow 类似CoverFlow的效果 挺老的工程 支持Mac

 PaperFold-for-iOS 一套类似报纸展开的仿3D效果 用CA实现

 MPFoldTransition 那个能左右上下Cube/Paper翻页的效果 挺棒

 iOS-Flip-Transform 一个Flip翻页效果 支持上下左右翻页 会变暗

 AFKPageFlipper 一个Flip翻页效果 可能性能不够好 也不会变暗

 DoorwayTransition 一个OpenDoor的动画

 Flipboard-3D-Transform-Effect-Example 如题Flip效果 没测试

 PaperFoldMenuController 一个Map折纸动画效果 一般

 XYOrigami Map折纸动画~

 PaperStack 用OpenGL实现的类似iBook的效果 但是一般

 GCRetractableSectionController 让TableView能按Group展开合起

 HMGLTransitions 一个OpenGL的视图切换 跑不起来? 很久没更新

 EPGLTransitionView 一个OpenGL的视图 包括iBook效果 折纸翻页效果 散落效果

 leaves 一套有些类似iBook的效果但只有横向翻页 被用在看书的地方

 GC3DFlipTransitionStyleSegue 用GL实现的iBook 一般

 KNSemiModalViewController 一个推出ModalView的动画 后面的会缩小上移

 letterpressexplosion UIView的撕碎爆炸效果 (CA实现)

 FancySegue 几个GL实现的动画 虽然不怎么好

 CoreImageTransition 用CI实现的一些动画过渡 过雾~

 LTransitionImageView 一个Image的过渡效果

 STScratchView 刮奖的效果

 XBPageCurl GL实现的翻页效果~

 ADTransitionController 很多有趣的导航视图切换动画

 VCTransitionsLibrary iOS7下,一些自定义转场动画~ 挺棒

 JazzHands IFTTT简介的动画框架,是个关键帧动画框架哟~

 MBProgressHUD 一个HUD 用得很广泛 无阴影 全屏模态

 MBProgressHUD 和MBHUD一样 但有更新 添加了BLock iOS6

 ATMHud 很棒的HUD 有阴影和动画~

 SVProgressHUD 一个HUD 样式类似MB_HUD 有一些进度等

 HTProgressHUD 又一个HUD

 ETActivityIndicatorView Windows Phone 7风格风火轮

 JMSlider 一个很小清新的Slider 用CA画的

 iOS-Custom-Controls 按住可以出Pop的UISlider

 MTZTiltReflectionSlider 一个模仿iOS6 Music的Slider

 ASRangeSlider 一个两段式的Slider

 DCFineTuneSlider 可以拖动外部 和显示左右箭头的Slider

 ARAnnotatedSlider KVO教学 一个在Slider上面显示小Poper的~

 LARSBar 显示声音dB的Slider

 EDStarRating 打星评级 Slider控件

 OBSlider 模拟iPhone音乐进度的表现

 TLTiltSlider 仿iOS6 音量Slider,有金属光泽动画

 RETrimControl 类似iOS6录像裁减的控制条

 KOAProgressBar 自定义ProgressBar

 DDProgressView 平面风格的Progress进度条

 WNProgressView 一些有趣风格的ProgressView

 YLProgressBar 一些不错样式的ProgessBar

 DACircularProgress 圆环形进度条

 MRProgress 圆环进度条,iOS7风格,iOS7 Only

 MDRadialProgress 圆环进度条,多种风格 iOS6+

 ViewDeck 左右侧滑控件

MSDynamicsDrawerViewController iOS7 动态弹性和景深的侧滑~

 ECSlidingViewController 一个很简单的侧滑控件

 JASidePanels 一套不错样式的侧滑控件

 PSStackedView 一套侧滑且带Stack的控件,类似Twitter iPad

 PKRevealController 一个侧滑控件

 JTRevealSidebarDemo 一个类似FB侧滑的Demo

 PPRevealSideViewController 又一个类似FB的侧滑控件

 CLCascade 类似Twitter iPad版的侧滑控件

 SlideViewController 侧滑菜单 类似FB的界面

 MMDrawerController 一个侧滑控件

 MFSideMenu Facebook风格侧滑

 SWRevealViewController Facebook风格侧滑

 DDMenuController 又是一个Facebook风格侧滑

 REFrostedViewController 一个iOS7风格的毛玻璃侧滑菜单

 RNFrostedSidebar 一个由侧面划出的半透明菜单(小圆片),不错的交互效果

 PopoverView CA实现的Popover 可用于iPhone,样式清新

 WYPopoverController 高可定制Popover 样式不错,很棒

 CMPopTipView 把PopView带入的iPhone

 FPPopover 一个PopOver 支持iPhone

 WEPopover 一个仿Popover API库 支持iPhone

 UAModalPanel 一个类似PopView控件 可以比较多的自定义 Demo样式较乱

 ColorPopover 一个用WEPopover写的单色选择

 MultiRowCalloutAnnotationView 在Map里面弹出带表格的Pop

 QBPopupMenu 类似iOS文字上的Pop 可以自定义~

 kxmenu 一个PopView,动作还可以

 RNGridMenu 一个Pop菜单,有背景模糊,效果不错~

 GIKPopoverBackgroundView 为PopOver提供无缝背景 很棒

 AwesomeMenu Path的扇形弹出按钮效果(CA)

 QuadCurveMenu 上面AwesomeMenu的fork 类似Path的菜单

 MGTileMenu 弹出按钮菜单 在四周成方形 效果不错

 ADPopupView 在UIVIew上弹出自己画的界面 挺丑 但可以看看实现

 KLExpandingSelect 四叶草风格弹出菜单~

 StackMenu Mac的Stack弹出菜单

 MSPullToRefreshController 一个不错的上下拉刷新的控件 里面是彩虹

 EGOTableViewPullRefresh 下拉刷新,很早的一个控件了2年没更新了

 PullToRefresh 下拉刷新

 SVPullToRefresh 下拉刷新 扩展了UIScrollView 很方便简单

 HybridRefreshGestureRecognizer 一个类似似TweetBot的下拉刷新样式

 sspulltorefresh 下拉刷新

 JDStatusBarNotification 状态栏控件,支持iOS6、7

 MTStatusBarOverlay 状态栏的控件,但很久没更新了

 KGStatusBar 状态栏控件,提醒

 AQGridView 类似TableView但有横向分类,就像Android Launcher

 GMGridView 又一个GridView 很不错,自带横纵排序编辑等功能

 KKGridView 又一个GridView 已经Deperacted 直接用系统的就好

 A3GridTableView 又一个GridView 貌似支持类似图标样的上栏

 LIExposeController 一个类似GridView的东西

 BlockAlertsAnd-ActionSheets 一个Block支持的Alert控件 支持自定义 不错~

 PXAlertView 一个用来替代系统的Alert,高可定制,有iOS7风格

 MBAlertView 一个简洁的AlertView,和HUD

 MJPopupViewController 用不同左右动画弹出AlertView

 MZFormSheetController 一个不错的弹出Alert Controller

 WCAlertView 一些不错的自定义AlertView

 GRAlertView 用CA画的带颜色的AlertView

 SBTableAlert 一个AlertView 可以带表格 可以用苹果风格

 URBAlertView 自定义AlertView 还有各种动画

 SIAlertView 一个样子不错的自定义AlertView

 MBMenuController 一个自定义AlertSheetVC

 JLActionSheet 另一个自定义AlertSheet

 ASDepthModal 实现简单的3维景深的模态视图 提供背景模糊

 RNBlurModalView 将后方视图模糊

 LMAlertView iOS7 可自定义内容的AlertView

 SDCAlertView iOS7 可自定义内容的AlertView

 SVSegmentedControl 一个分段选择控件 类似Mac10.7测试版中的UI 很棒~

 URBSegmentedControl 一个灵活的分段控件 可以上下

 MCSegmentedControl 一个系统分段的子类 可以自定义颜色

 AKSegmentedControl 完全自定义的分段控件 风格不错

 HMSegmentedControl Chrome风格的Tabbar分段

 SDSegmentedControl 一个离散并且凹陷效果的分段

 PPiFlatSegmentedControl 扁平风格的Segment (包含iOS7样式)

 DCRoundSwitch 仿UISwicher 可以自定义 很棒

 TTSwitch 一个可以完全自定义的UISwich~~

 KLSwitch iOS7风格的Switch 高仿

 MBSwitch iOS7风格的Switch 效果多

 SevenSwitch iOS7风格的Switch 效果很多~

 CoolButtons 用CA画的带Glow的button 仿照系统

 MAConfirmButton 一个类似AppStore下载的按钮 可以动画颜色大小等

 FTWButton 一个UIControl实例的Button 可以看到如何自定义控件 有不错的动画效果

 gradientbuttons 一个带有不同风格的Button~ 用CA绘制

 DCActionButtonsController 一个PopOver的里面带各种画出的按钮

 BPBarButtonItem 一个BarItem的不错的on the fly 生成

 BButton 一种自定义Button 样式类似Twitter的Bootstrap 用CA画的

 OBShapedButton 用CA绘制的特殊形状button,可以检测path touch

 UIGlossyButton 一些用CA画的带高光的奇怪Button...

 LRSlidingTableViewCell 一个简单的左右滑动Cell 类似Twitter

 TISwipeableTableView UITable的左右滑动 类似Twitter

 TDBadgedCell 在TableCell右侧添加badge 有不同风格

 UITableViewZoomController 类似Google+的 滑动Table缩放显示内部图片

 UITableViewTricks TableView的扇形样式

 iPhoneMK 几个简单的自己实现的View和Cell,提供某些常见功能

 EasyTableView 一个支持左右的TableView 不错~

 ZKRevealingTableViewCell 一个简单的可以左右滑动的TableCell

 ADLivelyTableView 非常棒的TableCell显示动画~~~

 MHLazyTableImages 一个简单的Table加载网络图片 从Apple的例子中改的

 MHPagingScrollView 一个可以Page的ScrollView 但可以看到左右的预览 类似WP7

 KLScrollSelect 一个竖屏滚动的选择瀑布流

 RNRippleTableView Cell梳子抖动~ 挺有创意

 RETableViewManager 数据驱动的Table 由数据画出Table内容

 ios-SDNestedTable 二级菜单的Table

 SWTableViewCell 类似iOS7邮件中的Cell,左右滑动出现多个功能键

 TSUIKit 复杂数据表格、tab展示的UI控件,适合复杂数据展示

 EKNotifView 很简单的下方Notif实现

 MKInfoPanelDemo 一个从上方滑下的Notif控件 类似TwieetBot

 TSMessages 在导航栏显示一个下拉Notif 效果不错

 YRDropdownView 类似Tweetbot警告的下伸控件

 NoticeView 类似Tweetbot的下伸控件

 AJNotificationView 效果很不错的上部Notif提示

 MarqueeLabel UILabel跑马灯效果

 ICTextView 文本查找,支持正则,关键词高亮

 CoreTextHyperlinkView 用CoreText画的 可以带Link的Text

 EGOTextView UITextField替代品 支持富文本编辑

 iOS-Rich-Text-Editor 富文本编辑

 MTAnimatedLabel 类似滑动解锁的闪动Label

 TextGlowDemo 一个给Label发出Glow光亮的Demo

 FXLabel 很多不错的Label特效

 AUIAnimatedText 一个UILabel子类 可以简单动画 颜色大小字体

 RTLabel 简单的富文本Label 可以用Html样式

 TTTAttributedLabel 一个Label控件 支持富文本属性

 MDHTMLLabel 一个富文本Label控件,可以支持链接和点击事件

 DTCoreText CoreText的包装,可以输入HTML~~

 OHAttributedLabel 支持NSAttributedString的UILabel控件

 ARLabel 自动字体大小

 LEffectLabel 渐变动画颜色的Label,类似滑动解锁

 BBCyclingLabel 在Label发生改变时,有动画效果

 HTAutocompleteTextField TextField带自动补全

 JVFloatLabeledTextField 带有能浮动的占位符的 文本框

 CMHTMLView 用HTML展示富文本,但能有Native类似的体验

 APExtendedPageController 类似Chrome左右滑动切换视图的控件

 MBSpacialViewController 2D上下左右导航的奇怪视图

 MSMatrixController 又一个 2D上下左右导航的奇怪视图..

 MHTabBarController 一个类似Android的上方Tabbar

 FSVerticalTabBarController 在左侧的Tabbar

 AKTabBarController 自定义Tabbar 样式类似AppStore

 MGSplitViewController 类似系统的UISplitVC 但有更多功能

 PSTCollectionView 类似系统的UIColloectionView 为了支持iOS4.3

 JMTabView 一个TabView 用CA画的,类似 Mac系统的单选控件

MWFSlideNavigationViewController 一个能左右上下滑动的简单导航栏

 UIScrollSlidingPages 一个和Chrome类似的左右滑动Pager

 FlipBoardNavigationController 类似网易客户端/Flipboard手机 左右滑动的Nav

 BCTabBarController Twitter类似的Tabbar 2年前的工程

 CKSideBarController 类似Twitter iPad的左侧Tabbar

 DVSlideViewController 类似Safari的滑动切换

 HGPageScrollView 类似Safari浏览的分页控件、

 HSImageSidebarView 一个类似Keynote的侧边栏

 RNSwipeViewController 滑动界面显示另一个界面 类似下拉状态栏查看天气

 RESideMenu iOS7风格侧滑

 KLNoteViewController 一个类似Evernote旧版的Stack界面 绿色的

 REComposeViewController 一个类似系统Twitter分享界面~

 DETweetComposeViewController 一个iOS4实现的 类似iOS5的twitter分享

 JTGestureBasedTableViewDemo 一个类似Clear的Demo

 Opaque 一个Clear的Demo

 MCSwipeTableViewCell 类似Mailbox的控件 和Clear差不多

 CHTCollectionViewWaterfallLayout 瀑布流控件

 PSCollectionView 类似瀑布流式的控件

 IIIThumbFlow 瀑布流控件

 WaterflowView 瀑布流的View 看样子Star挺多

 KNPathTableViewController 在Table右侧显示类似Path的时间 很简单~

 GSBookShelf 一个类似iBook书柜的实现

 M6ParallaxController 类似Path封面的效果

 ZGParallelView 类似Path的封面效果 貌似不错

 TimeScroller 类似Path右侧的时间小滑块

 chatheads Facebook 一个一直最上方的头像 点击可以显示Table

 MBSliderView 滑动解锁

 DKLiveBlur 雅虎天气风格的动态模糊

 ios-realtimeblur iOS7 模糊效果

 GHSidebarNav 新版Facebook 侧滑等UI

LXReorderableCollectionViewFlowLayout iBook中 拖动图书的功能

 MDCParallaxView 景深效果 就像Path的封面那样

 SMPageControl 一个仿UIPageControl的API类 可以自定义小点点~

 REActivityViewController 开的ActivityView实现

 DCControls 不错的扇形滑动控件 平面风格

 BSKeyboardControls 与键盘相关的控制 控制 上一项下一项

 OCMapView 一个MapKit标注聚合用的东西~

 NJKWebViewProgress 显示WebView加载进度

 REMenu 一个导航栏下拉菜单 不错~

 action-sheet-blocks 为ActionSSheet提供block方法

 ADClusterMapView Map的地标Cluster 应该不错~

 TPKeyboardAvoiding 一个UIView的 在有键盘时上移

 calloutview 实现了私有的UICalloutView 类似地图中的弹出控件

 SVPulsingAnnotationView 一个自定义MapLocator 动画控件

 OWActivityViewController 一个类似系统的分享控件

 SYEmojiPopover 显示一个Emoji选择de PopOVer

 fingertips 在屏幕上显示触摸点 只支持iPad2和iPhone4s以上

 ASTouchVisualizer 为屏幕触摸添加指示 可用于屏幕录制

 openspringboard 仿SpringBoard的东西

 HMLauncherView 仿SpringBoard的东西

 CQMFloatingController 一个浮动的VC 类似Popover(没有箭头) 可以用在横屏iPhone等

 WSCoachMarksView 为某个控件加上蒙板 类似Spotlight

 KLHorizontalSelect 横向扫动选择

 iOS-StyledPageControl 自定义PageControl,多种样式

 iOS-blur iOS7的模糊效果 iOS7Only

 FXBlurView iOS7的模糊效果 可以用在iOS5以上

 MYBlurIntroductionView 带有模糊背景效果的 Intro

 Masonry AutoLayout框架

 KeepLayout AutoLayout框架 貌似比较好用

 MLPAccessoryBadge 一些自定义badge~

 JSBadgeView 数字角标 Badge

 MSCellAccessory Cell右侧的小箭头~

 ios-fontawesome 一套用字体实现的Icon

 WTGlyphFontSet 另一套用字体实现的Icon

 DAKeyboardControl 键盘滑动消逝,就像系统内置的短信界面

 JWFolders iOS6以下的文件夹展开效果

 OCCalendar Popover样式的日期选择器

 IBAForms Form构建。2年前的工程了..

 ActionSheetPicker 一个PopOver里面是Picker

MSCollectionViewCalendarLayout 日历事件样式 iOS6以上

 MosaicUI WP7磁片风格View 自适应大小

 MosaicLayout WP7磁片风格Layout UICollectionView

 iPhone-IntroductionTutorial 用于创建启动引导界面的...

 US2FormValidator 一套Table表单验证提示

 AURosetteView 玫瑰花瓣似的展开菜单

 EAIntroView App启动的介绍界面

 InformaticToolbar 下边栏显示提示和动作

 PAPasscode 类似系统的输入密码界面

 KKPasscodeLock 又一个类似系统输入密码界面

 PTShowcaseViewController 能显示音视频等一堆格式文件的控件

 Reader 一套显示PDF的库 支持大文件、加密文件 有iBook样式的界面 性能很好

 FastPdfKit 一套PDF库 性能据说很好 也有界面

 Kal 一套日历控件 高仿iOS默认

 objc-TimesSquare 一套日历控件 类似iOS默认 貌似清新一些

 ABCalendarPicker 高仿iOS默认日历的DatePicker~

 MWPhotoBrowser 一套图片浏览控件 高仿iOS默认 支持网络图片

 PTImageAlbumViewController 图片浏览控件 仿iOS默认

 FGallery-iPhone 图片浏览器

 AGImagePickerController 选取图片 支持多选

 ELCImagePickerController 一个仿系统的ImagePicker 但支持多选

 PhotoViewer 一个图片浏览的控件

 KTPhotoBrowser 图片浏览控件 3年没更新了

 DLCImagePickerController 一个用GPUImage实现的 ImagePicker功能,支持拍照和特效

 route-me 一套自定义MapView 高仿系统 但支持不同的数据源

 GrowingTextView 一个高仿短信发送的输入框

 PHFComposeBarView 高仿短信发送输入框

 MessagesTableViewController 高仿短信界面,可定制

 AcaniChat 仿短信App 挺老了

 UIBubbleTableView iOS短信的泡泡界面,可以支持图片

 ODRefreshControl 一个高仿iOS6下拉刷新的控件

 ssmessagesviewcontroller 和系统类似的发短信界面 挺粗糙 当然现在系统已经提供了

 SVWebViewController 一个简易的浏览器功能控件

 TSMiniWebBrowser 一个简易的内置浏览器

 TITokenField 一个高仿Mail和短信 选择联系人的控件

 DAAppsViewController 一个仿AppStore的列表界面 输入appId集合

 WUEmoticonsKeyboard 输入表情的自定义键盘

 CKCalendar 一个朴实的日历

 LBYouTubeView 显示Youtube视频..国内无用

 tapkulibrary 一套比较大的自定义控件库 包括不错的HUD,进度条,日历,CoverFlow等

 FlatUIKit 一套完整的扁平风格的UI (Flat)

 Weibo 一套仿iOS7的控件

 UI7Kit 一套iOS7风格的控件,可以在iOS5、6上用

 PrettyKit 一套系统UI的子类 有着平滑渐变和阴影效果

 nui 一套加在UIKit上的Category,允许用类CSS代码来控制样式

 QuickDialog 一套自定义控件库,用来快速建造基于Table的设置

 MGBoxKit 一套UIView的扩展和子类(Table Grid..) 有不错的类CSS的功能 有些好用的代码

 MGBox MGBox的旧版 应该去看v2

 iOS-boilerplate 一些常见功能实现的例子:HUD Table滑动,打开URL用WebView等 挺老的工程

 idev-recipes iDevRecipes博客的代码,演示了如何自定义一些控件,代码比较老..

 AePubReader 一个阅读epub的

 Brushes 绘画的App,超棒,Appstore上架应用

 Inkpad 一个完整的矢量绘图App,很棒,已上架

 modizer !!!超强大的App 可以读取和演奏各种mod音乐 midi合成 解压 下载 自带庞大音乐库~ 已上架

 kxmovie 一个ffmpeg的播放器 ~~~ 需要先构建ffmpeg

 ioctocat 一个Github客户端

 cheddar-ios 一个日程管理的App 应该比较知名

 AppSales-Mobile 基于iTunes Connect来查看App销售状况

 canabalt-ios 一个跑步的小游戏~

 baker 一套HTML5构建的ebook库 貌似挺强大

 iPhoneTracker 一个挺老的App 2年前

 Off-the-Record-iOS 一个实时聊天的功能 支持一些XMPP协议

 kokuban 一个iPad小画板 3年前

 glpaint 从Appled的GLPaint改的

 OpenGLMilkyWay 银河~~ 很棒 有教材

 iphone-app OSChina 开源中国 ..竟然挪到git.oschina.net去了。。

 BeeFancy 一个仿Fancy的客户端 基于BeeFranework

 ruby-china-for-ios RubyChina官方客户端

 ruby-china-ios 和上面一样?

 wh-app-ios 白宫官方App

 CastleHassle 一个Cocos2D的物理小游戏 貌似内容挺丰富~

 DocSets-for-iOS iOS显示DocSets 可以下载iOS官方Doc~

 newsyc 一个newsyc.me的客户端 (iPhone hacker News)

 News-YC---iPhone hackerNews的客户端

 Upcoming 一个设计很棒的日程安排

 Anypic 一个像Instagram那样的图片分享社区App

 ClassicMap 旧版iOS地图

 ntlniph Twitter客户端 古老的工程了

 lastfm-iphone Last.fm官方客户端

 ThatInbox Ink出的邮件客户端

 ThatCloud Ink出的云端文件管理

 ThatPDF Ink出的PDF编辑

 ThatPhoto Ink出的图片编辑

 xctool iOS工程构建和测试工具,用于替代系统的xcodebuild (CI)

 PonyDebugger 一套Debugger工具,可以在电脑浏览器上远程调试iOS程序~查看试图层次、网络等

 NSLogger 一套Log工具,可以在电脑上通过client实时查看NSLog,甚至是图片和二进制文件 支持Android

 KIF 一套用Private API做的调试库,可以以用户的方式测试(touch in xxx)

 gh-unit 一套ObjC的测试框架

 DCIntrospect 一套iOS调试工具,在iOS界面里显示信息

 CocoaLumberjack 一套类似Log4j的东西,可提供企业级的Log~~~~

 Frank 自动化测试工具?

 superdb 一个Debuger工具 用命令行调试。。

 iOS-Hierarchy-Viewer 一个调试iOS界面的工具 通过浏览器访问~~ 值得瞅瞅~~

 hierarchydetective 一个3D显示iOS视图层级的调试工具

 CATransform3D-Test 调试CATransform3D矩阵的工具~

 LLDB-QuickLook 在调试时用命令行调用QuickLook来显示图片、UIView等

 iConsole 在App内显示调试信息、执行调试命令

 Nocilla 一个模拟HTTP响应的调试库

 dyci-main 一个可以在调试时动态添加代码的工具 需要改动Xcode

 GestureLab 调试和把玩GestureRecognizor的

 cedar BDD风格单元测试

 iOS-UI-Assets iOS5.1中,系统控件和App的图片资源Dump 嗯..iOS7后就没用了

 iOS-Artwork-Extractor 导出iOS系统App及控件的图片资源 只支持到iOS5

 DB5 通过plist构建界面的小东西

 HockeyKit 一套iOS的 Ad-Hoc升级框架.包含PHP服务端

 Briefs 一套类似原型制作工具

 OpenTLD 视频跟踪检测 貌似挺高深

 SimFinger 一些Fake系统图标的App 还有一些设备外框的图片、触摸点图片可以用

 scifihifi-iphone 已经弃用的旧代码 新工程去看github页面

 iphonearkit 4年前的代码 增强现实 (AR)

 TouchDB-iOS 一个嵌入式的CouchDB实现

 iOS-Runtime-Headers 从运行时Dump出来的公有/私有 Framework头 通过这个可以进行不同版本的对比

 objectiveresource RoR相关的东西

 GRMustache Mustache模板?

 titanium_modules Titanium 的常用模块

 fontdiao 类似FontAwesome的东西,包含了一些国内网站logo

 iphone-3.0-cookbook- 随书代码

 iOS-5-Cookbook 随书代码~

 iOS-6-Cookbook


 iOS-6-Advanced-Cookbook


 iOS7-day-by-day iOS7-day-by-day 博客的代码

 iOS7-Sampler iOS7的一些新功能演示~

 MyProjects 一些http:/ /mysparks.info上面的代码

 Xcode-Snippets 一些Xcode代码片段

 gitx 一个git的图形客户端

 Chameleon 把UIKit克隆到Mac里

 Induction 一个Mac上的数据库客户端 支持Mysql Postgre Nosql Redis等

 twui 一个Mac的自定义控件库,有类似iOS的Table和Tab,CA实现

 CocoaPods 一个Ruby程序,用来管理Cocoa库依赖

 kod Mac上的代码编辑,Chrome风格,小巧快速

 slate Mac上窗口管理

 nu 一个包装,用nu语言来写东西?

 appledoc 用来生成Apple格式的文档和网页

 macgap 包装以可以用类似js的写法来调用函数

 Quicksilver 这个..Mac上知名的快速启动

 mogenerator 生成CoreData的Code

 nv Note程序

 iTerm2 知名终端~

 Sparkle 一个软件升级用的Framework

 PostgresApp PostgresSQL客户端

 terminal-notifier 通过终端发送Notification

 ShiftIt 管理桌面窗口 状态栏插件

 textmate 这个不用说了。。~~~

 textmate-missingdrawer Textmate插件 一个侧边栏

 AckMate Textmate插件 运行ack?

 clicktoflash Webkit插件 屏蔽Flash

 MongoHub-Mac MongoDB的客户端

 CocosBuilder 用于cocos2d的JS绑定 GUI设计

 Rebel 一些AppKit的扩展

 Textual 轻量的IRC客户端

 vico 一个开发用文本编辑器

 pomodoro 一个时间管理的App

 visor Terminal的插件

 GoAgentX 这个不用说了....

 Pixen 像素画 的工具

 DataKit 不知道什么好想是与数据和网络连接的?

 Color-Picker-Pro 取色器 状态栏插件

 SNRHUDKit Mac版的HUD

 ConnectionKit FTP和WebDAV

 OpenEmu 各种游戏机模拟器

 Hacky 一个完整的Hacker News客户端~~

 WWDCDownloader 下载WWDC用,Xcode5 only

 XVim Xcode的插件 支持绑定VIM快捷键

 QuickCast 一个录屏分享的App

 zephyros 窗口管理 for hackers

 shuttle SSH快捷方式 菜单栏插件

 qlstephen 系统QuickLook的插件,查看无扩展名的文本文件

 INAppStoreWindow Mac AppStore风格的NSWindow

 spectacle 窗口管理 不用鼠标

 limechat IRC客户端

 LiveReload Web开发

 selfcontrol 自控。。禁止上网一段时间

 Popup 在状态栏弹出的Popup

 MPlayerX 一个MPlayerX的测试分支

 QuickCursor 快速启动编辑

 Sonora 一个小巧的 挺棒的音乐播放器

 SafariOmnibar 一个Sarari插件

 HexFiend 16进制编辑器

 Xcode5-Plugin-Template Xcode5插件的开发模板

 cocoapods-xcode-plugin cocoapod 插件

 KFCocoaPodsPlugin cocoapod 插件, 方便编辑Podfile,显示构建日志

 VVDocumenter-Xcode Xcode的插件 写注释时自动提醒JavaDoc风格

 ColorSense-for-Xcode Xcode的插件 支持动态调整UIColor

 KSImageNamed-Xcode Xcode的插件 支持显示工程里的UIImage

 Lin Xcode的插件 显示NSLocalizedString的对应字符串

 nib2objc 把xib和nib翻译成m 包括命令、GUI、Service

 iOS-Framework 编译iOS的Framework的通用模板

 Alcatraz 管理和发现插件~~

 UIEffectDesignerView 原生iOS/Mac粒子效果设计

 SCStringsUtility 开发工具 制作多语言

 APNS-Pusher 通过APNS发推送~

 cooliris-toolkit Cooliris出品基础工具包,Github有Clone

 core-plot 强大的2D数据绘图库

 j2objc 神奇的东西,将Java翻译成ObjC~ Google出品

 theunarchiver 解压,支持Zip, Tar, Gzip, Bzip2, 7-Zip, Rar, LhA, StuffIt等

 macfuse 创建OSX的文件系统~

 google-toolbox-for-mac 著名的Google工具箱

 leveldb Google大神开发的KV存储,高性能,低内存

 RegexKitLite 著名的ObjC 正则表达式

 zipachive 用得很广泛的ObjC zip文件压缩解压 (github上有几个mirror)
2017-03-18 16:25:20 HanyChild 阅读数 371

在 OS X Yosemite 发布之后,整个 OS X 界面都变得扁平 —— 而总有个「奇葩」不但没啥用,还出现在 Mission Control 中。这个奇葩应用叫 Dashboard(仪表盘),居然还在使用拟物设计,满满违和感,摆放小插件时让强迫症患者悲痛欲绝,怎能不使人恨之入骨?

关于仪表盘

仪表盘,曾经一度是 OS X 的亮点之处,给前几代的 OS X 用户提供了很多便利,利用小插件(Widgets)来管理日常简单工作,非常方便。在多桌面管理界面(Mission Control)也能看见它的面孔。

然而如今的 OS X 有了更多其他的功能,更快的程序启动速度,完全不需要这个 Dashboard 来完成任务了,反而成了一种累赘。显然,仪表盘已经被苹果抛弃了,没有原来那样的实际用途,就连 UI 也和 Yosemite 的扁平界面违和不以。那作为用户也得表示表示,高冷地把它禁用掉,省着碍眼。

禁用仪表盘

不过,似乎 OS X 并没有提供卸载 Dashboard 的功能,好在有着「终端」能够满足 Power User 的各种需求。通过 Spotlight 搜索「终端」或「Terminal」,进入并复制以下命令粘贴到终端中,并敲击「return」回车键。

defaults write com.apple.dashboard mcx-disabled -boolean YES && killall Dock

Dock 栏会消失并重新浮现,现在用触控板向右滑动,发现仪表盘的确消失了。启动 Mission Control,也只能看到几个桌面,而不见仪表盘的踪影。成功,击掌!总算告别了历史遗留问题。

重新开启仪表盘的解决方案

不过,禁用了仪表盘可能是诸位一时兴起做出的事情。大家都说,失去的才是最还念的,万一第二天早上醒来,打开电脑发现仪表盘没了,即使你在禁用仪表盘之前从来没有用过仪表盘,也说不准会对它极其想念。为了避免各位丧心病狂地乐极生悲,笔者也必须给你们留条活路,重新启用仪表盘也只需要一串代码。

defaults write com.apple.dashboard mcx-disabled -boolean NO && killall Dock

同样,复制到终端中,是不是熟悉的面孔又回来了?笔者注:如果在重新启用后感到头晕眼花各种不适,请遵循医嘱再读一遍本文上面一章节「禁用仪表盘」。

面试题总结

阅读数 291