PBBReader项目重构模型

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
title PBBReader项目重构模型
center header
PBBReader项目重构模型
endheader

'******* 声明组件模块 component/[组件名] 中括号支持\n换行 *******'

'---- 声明备注:组件线备注可以通过虚线".."连接到其他对象---'



'#####  备注模块 位置:left/right/top/bottom  #####'




'&&&&&& 组件组合模块 支持模块嵌套 &&&&&&&'
'六种组合样式:Node,Rectangle,Folder,Frame,Cloud,Database'
Frame "启动APP"{
    [APPDelegate] as LaunchAPP
}
Folder "注册模块"{
    [欢迎页] -- [密码找回页]
    [欢迎页] -- [忘记密码页]
    [密码找回页] -- [完成注册页]
    [忘记密码页] -- [完成注册页]
}
Frame "功能项"{
    Folder "制作模块"{
        [多媒体选择页] -- [设定权限页]
        [设定权限页] -- [外发分享页]
        [外发分享页] -- [已发送列表页]
    }
    Folder "阅读模块"{
        [已接收页] -- [广告页]
        [广告页] -- [播放视频页]
        [广告页] -- [播放音频页]
        [广告页] -- [浏览PDF页]
    }
    Folder "发现Tab"{
        [发现页] -- [店铺详情页]
    }
    Folder "个人中心Tab"{
        [个人中心] -- [个人设置]
    }
}
Database "sqliteDB" {

    'reader数据库
    Database "PBBReader" {
        Folder "sqlite" {
            [dao]
            [db]
            [model]
        }
    }
    'online数据库
    Database "PBBOnline" {
        [待定]
    }
}

Cloud "http+socket"{
    Cloud "socket"{
        [basesocket]
        [code]
        [other]
        [publiclib]
    }
    
    Cloud "HTTP" {
        [ASIHttp]
    }
}

Node "第三方SDK"{
    [极光推送]
    [ShareSDK]
    [mupdf]
}

Node "公用工具"{
    [CustomIOS7AlertView]
    [timers]
    [Advertising]
}

Node "项目依赖"{
    '[SZMobileSDK] -- LaunchAPP
    [PBBMaker] -- LaunchAPP
    '[PBBMaker] --> [设定权限页]
    [IJKMediaPlayer] -- LaunchAPP
    '[IJKMediaPlayer] --> [播放视频页]
}

Node "资源"{
    folder "IB"{
        [主iPad]
        [Personal]
        [Register]
        [space]
        [WelcomeView]
    }
    
    folder "Images.xcassets"{
        [主iPadImages]
        [PersonalImages]
        [RegisterImages]
        [spaceImages]
        [WelcomeViewImages]
    }
}

'>>>>>>>>>>  关系模块  >>>>>>>>>>'
LaunchAPP -- [欢迎页]
[完成注册页] -- [多媒体选择页]
[完成注册页] -- [已接收页]
[ShareSDK] -left-> [外发分享页]
[Advertising] -right-> [广告页]
IB -right- Images.xcassets
资源 -left-> 功能项
资源 -right-> 注册模块
center footer
boyer制作
endfooter

WKWebView控件和JS脚本传参及交互

WebKit简介

{% github it-boyer WKWebView-JS d03bc0e width = 30% %} 自iOS8 以后,苹果推出了新框架 WebKit,提供了替换 UIWebView 的组件 WKWebView。各种 UIWebView 的性能问题没有了,速度更快了,占用内存少了,体验更好了,下面列举一些其它的优势: 1、在性能、稳定性、功能方面有很大提升(加载速度,内存的提升谁用谁知道) 2、更多的支持 HTML5 的特性 3、官方宣称的高达60fps的滚动刷新率以及内置手势 4、Safari 相同的 JavaScript 引擎 5、将 UIWebViewDelegate 与 UIWebView 拆分成了14类与3个协议,包含该更细节功能的实现。

vim编辑器键盘映射命令map

使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来。 例如使用以下命令,可以通过F5键将单词用花括号括起来:

1
:map <F5> i{e<Esc>a}<Esc>

执行过程:i{将插入字符{,然后使用Esc退回到命令状态;接着用e移到单词结尾,a}增加字符},最后退至命令状态。 在执行以上命令之后,光标定位在一个单词上(例如amount),按下F5键,这时字符就会变成{amount}的形式。

vim编辑器的基本用法

参考

基本操作

基本概念

动作:是指移动光标的操作,你肯定很熟悉 h、j、k 和 l,以及 w 和 b。但其实,/ 也是一个动作。

1
:h navigation 

操作符: 对某个区域文本执行的操作。比如,d、~、gU 和 > 都是操作符。这些操作符既可以在普通模式下使用,也可以在可视模式下使用。

SourceKittenSwift语法自动补齐工具

vim插件工具:Vundle

主题色: |组合键 | Description| 空格 + T + n| 随机切换颜色主题。 SPC T s |使用unite buffer方式切换一个主题

插件

Unite

预定义操作命令 Unite或unite.vim插件可以搜索和显示信息,例如:任意源文件、缓冲区的,最近使用的文件或记录。可以直接运行在Unite窗口中显示的几个预设操作。

在slack上实现实时绘UML图

umlbot源码库

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
title 部署一台heroku机器人\n支持在slack窗口实时绘制uml图
center header
umlbot工具
endheader

[slack] as slack

cloud "heroku服务器"{
[umlbot] as umlbot
[heroku] as hero
umlbot -[#yellow]> hero: 部署机器人
hero -[#green]> umlbot: 原脚本
}

umlbot -[#green]-> slack: 绘制UML
slack -> hero: 输入hook用户数据\nTOKEN
hero --> slack: 机器人URL

'注释模块'
note right of umlbot : github源码库\nhero支持github直接部署
note left of heroku服务器 #white: 运行umlbot机器人\n 从slack获取源数据
note left of slack #red: 配置outgoing hook\n输出:token\n输入:机器人URL(s)

'接口模块'
()"注册" --> hero: 部署前提
()"部署" --> hero: 设置TOKEN

note left of "注册" #green: 需要翻墙\n"Please confirm you're not a robot."
note right of "部署" #red: 设置**TOKEN**位置\n通过readme提供的部署按钮\n来实现设置token

center footer
目前测试并没有实现slack绘制UML的效果
endfooter

PBBReader阅读器解析

支持OS X浏览PDF简单视图

运行scheme: PDFReaderForOSX 即可

支持iOS

pageViewController: pdf翻页效果视图控制器 startingViewController:DataViewController,翻页视图控制器的视图源 modelController:ModelController:NSObject,数据视图数据源的model模型。

Perfect开发天气接口API

Perfect介绍

Perfect提供一系列代表请求和响应的对象组件,并允许在服务器上增加管理句柄用于产生页面内容。 所有对象都是在服务器对象创建后开始工作。服务器对象会被执行配置,随后会根据配置绑定并监听特定端口。一旦出现连接,服务器会读取请求数据,请求数据读取完成后,服务器会将request object请求对象传递给请求过滤器。

搞定2提升工作与生活效率的52项原则

《搞定II》

前言 轻松实现轻松做事

第一部分 理清头绪,发挥创造力

第1章 理清思路,确立新方向
第2章 知道哪些事情自己尚未做,你才会为之心安
第3章 理清承担的任务,可以更好地选择新任务
第4章 要实现未来的目标,首先明确当前的位置
第5章 以有限的可能,去利用无限的机遇
第6章 一心二用带来压力与失败
第7章 有意识地权衡轻重缓急
第8章 完成未竟之事,释放自身能量
第9章 如果你一直想着某件事,很可能是还没有搞定
第10章 只要有空间,创造力就会展现
第11章 渠深流畅
第12章 担忧无益
第13章 你不是你的工作

第二部分 高效关注

第14章 想看得更清楚,请从更高处着眼
第15章 只有身体力行,你才会知道如何去做
第16章 工作足够努力是不可能的
第17章 精力随心思而动
第18章 目标越明确,实现目标的途径越多
第19章 精益求精
第20章 关注重心的变化等于结果的变化
第21章 视角是地球上最贵重的商品
第22章 多加思考
第23章 思考有度
第24章 效率是改善工作的唯一机会
第25章 关注一件事才能“全神贯注”
第26章 未来目标的价值,在于它当前培育的变化

第三部分 建立有效的制约机制

第27章 稳定带来创造力
第28章 形式与功能必须符合效率最高的原则
第29章 优化系统,放飞思想
第30章 反应能力提升生存能力
第31章 系统的强弱取决于最薄弱的环节
第32章 系统的效率与你的感知度成反比
第33章 功能取决于形式
第34章 目标明确才能赢得胜利
第35章 多人负责等于无人负责
第36章 确定原则,而不是监管制度
第37章 利用大脑来思考工作,而不是单纯关注工作
第38章 思考的价值超乎想象
第39章 资源越是有限,规划越有必要

第四部分 放松自我,开始工作

第40章 对自己做的事情承担起责任
第41章 过度控制等于失去控制
第42章 进展越好,状态越好
第43章 相信自己的行动选择,需要多层面的自我管理
第44章 你的力量取决于你的放松能力
第45章 预料之内的意外算不上意外
第46章 目光越长远,进展越顺畅
第47章 放慢速度以提升速度
第48章 你没有时间做任何项目
第49章 坚持做好小事,就能产生重大影响
第50章 亲力亲为才能了解事物
第51章 动中求变更容易
第52章 最伟大的成功源自最惨重的失败

第五部分 注意基本要素

工作流程的5个阶段
处理与组织整理流程图
自然式计划模式
每周回顾指南

后记

致谢

{%pdf /images/搞定2提升工作与生活效率的52项原则.pdf %}

CoreML机器学习初级教程

资源

Core ML开发文档 ML模型资源页面 在Working with Models中包含有几个常用的模型模板,例如用于在图片中检测物体——树、动物、人等等。 Integrating a Core ML Model into Your App

官方Core ML文档示例 App MarsHabitatPricePredictor 模型的输入只是数字,因此代码直接使用生成的 MarsHabitatPricer 方法和属性,而不是将模型包装在 Vision 模型中。每次都改一下参数,很容易看出模型只是一个线性回归: 137 * solarPanels + 653.50 * greenHouses + 5854 * acres