Cocoa框架梳理笔记
想要做好iOS的应用开发,深入的理解Cocoa框架是十分重要的。 今天做一下自上而下梳理,这样在开发的时候会更清晰,遇到问题也可以更容易的找到方向。
OS X架构中的Cocoa
iOS架构中的Cocoa
Cocoa
Mac OS X上五大API之一 Cocoa, Carbon, POSIX, X11, Java
想要做好iOS的应用开发,深入的理解Cocoa框架是十分重要的。 今天做一下自上而下梳理,这样在开发的时候会更清晰,遇到问题也可以更容易的找到方向。
OS X架构中的Cocoa
iOS架构中的Cocoa
Mac OS X上五大API之一 Cocoa, Carbon, POSIX, X11, Java
字符串替换
字符串截取
length(): 单位是字节,utf8编码下,一个汉字三个字节,一个数字或字母一个字节。gbk编码下,一个汉字两个字节,一个数字或字母一个字节。 char_length():单位为字符,不管汉字还是数字或者是字母都算是一个字符。
SELECT substring(poetry,1,length(poetry)-1) FROM `bless_lot`
SELECT substring(poetry,1,char_length(poetry)-1) FROM `bless_lot`
带有中文的截取应该使用 charlength,因为substring切的时候按照字符位数切
数据去重
DELETE FROM table_copy
WHERE key IN (
SELECT t.key FROM (
SELECT key FROM table_copy GROUP BY key having count(*) >1
) t
)
AND id NOT IN(
SELECT t.id FROM (
SELECT id FROM table_copy GROUP BY key having count(*) >1
) t
)
在CentOS下可以通过shell脚本执行定时任务 在macos下 有类似的功能 使用crontab
crontab的格式:
f1 f2 f3 f4 f5 program
# 分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-6) 程序
# 其中如果要执行 每x分钟 则使用 */x
# 如果使用* 表示任意次数
* * * * * curl https://test.com
# 表示每分钟都会使用curl打开 test.com
说来有点惭愧用了1年多的git至今还没有创建过分支,主要都是把git当成一个线上同步来用。 细想起来是因为我很难集中精力细看git的说明文档,另一方面很多网上的文章说的比较晦涩抽象,很难简明扼要的吸收要点。 但是git这些强大的功能到底作用是什么? 如何和实际工作联系,怎么样简单快速的get到这些功能的意义和使用方式呢? 今天就好好get一下。
“这个文件夹,被我征用了,我要用它来做我的代码版本控制,其他工作就交给git你了。”
初始化仓库 初始化之后,git就会在这里生根发芽。
“快帮我建一个和sth一样的仓库,放到folder文件夹就行了。(嗯,仓库我还没建,你看着办)”
拉取的时候可以通过 sparse clone 实现对指定文件夹的拉取
这样做通常是为了只下载核心的代码,不希望文件过多过于臃肿。
后来发现另一个更重要的,特别是在一个项目刚开始克隆别人的项目时,使用 --depth 参数来设置拉取深度更有效。
需要注意的是,可能和版本有关 也可能git语法就是这样。 --depth 需要写在 add,clone之后 不能写在语句结尾,否则是无效的。
网上对于挂载磁盘方式很多,有命令行的也有一键挂载的sh
这里做一个比较有条理的总结
查看当前磁盘情况
fdisk -l
# 这时会显示系统所支持的硬盘 每个硬盘有一个盘符 如 /dev/vda
挂载磁盘到对应目录( 相当于为磁盘访问创建一个快捷方式 )
mount /dev/vda /mydisk
# 挂载 盘符名称 快捷方式名称
# 如果挂载错误 可以卸载
umount /dev/vda/ /mydisk
如果过程中需要对盘符进行格式化
mke2fs ext4 /dev/vda
# 格式化 格式 盘符
在无意间漫游网上的文章时,看到一个指出对JavaScript误解的部分提到了这个关于JavaScript私有对象的问题。
在该文章中指出,在对象内部使用 var 创建的变量属于私有变量、这个是外部无法访问的。 在这里var的变量我们换一种说法就是局部变量。事实上不能算是真正的私有属性。
我们知道在面向对象编程中,一个类的属性、方法如果能够被其他类访问调用,那么这个是public 公开属性、方法。 但是他有一个隐式条件就是,他也能被类自身其他的方法访问。类的private 私有属性、方法虽然不能被外部属性访问,但是他是需要满足被同一个父类下的其他方法访问的。
而局部变量是方法内部创建的,他只能在当前方法的生命周期内被调用,如果一个JavaScript对象中包含了多个方法,在方法内部var创建的属性和方法,是不能被其他任何方法、包括同一个类的其他子方法调用。
在想清楚解决方案、做好全部备份、逐个相关文件关系查验之前,尽量不要做任何文件的写入、覆盖操作。
记一段辛酸但好歹不用跳天台的数据库恢复笔记
能写一个自动备份脚本,为什么要偷几十秒的懒呢?
主要也是参考下面链接最终成功恢复。 这篇文章的步骤稍微有点多。有些是恢复不必要的,这里做一下自己的整理。
数据库目录配置错误时,MySQL是不能正常启动的,报错可能与此无关。 比如说,找不到 user_table这样的报错,都可能是目录配置错误。
1、Windows和Linux下均可用改host的方式 Linux的方法为: 先查询github域名的公网地址 结果为: 151.101.72.249 github.global.ssl.fastly.net 192.30.253.112 github.com 将两地址加入到/etc/hosts文本中 重启网络组件: sudo /etc/init.d/networking restart 查看修改的结果: cat /etc/hosts
1-2kbs 到 200-500kbs
在多数现代浏览器中我们都可能会遇到图片跨域被阻止的问题,一般来说跨域问题主要出现在前后端分离,云架构的web系统中。 在两年前的时候通过网上的搜索勉强应付了问题,但是每次使用或多或少还会有需要解决的小问题。这次弄清楚了之后发现之前网上大多数也都是一知半解,并没有解决核心问题,所以导致了瞎试,碰运气的方式来处理。
首先html2canvas跨域问题的原因 我们希望将html渲染为canvas 进而渲染为图像,这就需要将html中的资源加载到临时的canvas中,而这个时候,如果资源和当前页面不同源,就会被canvas认为有污染拒绝加载。这是出于浏览器出于安全的角度做的一个设定。
在这个时候,我们需要做的其实比较简单,在所有因为跨域被拒绝的资源从服务端返回一个header
Access-Control-Allow-Origin: https://aaa.bbb.com
Access-Control-Allow-Methods: POST, GET, PUT, DELETE
诸如网上的一些都是,不需要的:
Access-Control-Expose-Headers:
Access-Control-Allow-Credentials: true
正则表达式的重要性不言而喻,平时写的时候都是拼拼凑凑感觉还是不太好,趁着今天做一个梳理,要让正则的用法深入血液才好。
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
创建一个正则表达式节
你可以使用以下两种方法之一构建一个正则表达式:
使用一个正则表达式字面量,其由包含在斜杠之间的模式组成,如下所示:
var re = /ab+c/;
使用正则表达式字面量为正则表达式提供了脚本加载后的编译。当正则表达式保持不变时,使用此方法可获得更好的性能。
或者调用RegExp对象的构造函数,如下所示:
var re = new RegExp("ab+c");
使用构造函数为正则表达式提供了运行时的编译。使用构造函数的方式,当你知道正则表达式的模式将会改变,或者你不知道模式,并且从其他来源获取它,如用户输入。
最近正在做appsite框架传统网站架构的拓展、其中不免有SEO的部分。 在网上做了一点功课,meta中的 description比较关键,keywords据说已经不再受搜索引擎的关照了,不过这种事情现在不能盲目相信,既然做一个网站那么还是应该要照顾好关键词。但是没必要付出过高的人力成本,所以我这里想到的还是使用分词扩展来自动生成关键词。 这样做的好处是,无论搜索引擎是否在意关键词,我们有和内容相关度很高的关键词,这不会对我们带来损失。 基于程序算法生成的关键词,不需要我们花费人力成本,包括可以在后台控制是否开启该功能。
我这里选用的是对php支持比较好的 SCWS分词扩展。 如果分词的目的是更多的语义化分析、情感分析等,那还是应该考虑一下其他的分词库,不过基本上没有php支持。
进入正题
因为最近的一个需求涉及到SEO 所以考虑用php写一套前台,这样可以根据url自动输出完整的页面,这里比较重要的是url rewrite 因为直接使用参数来访问页面一是不具备结构性,不方便基于文件夹管理php的前台页面,二是搜索引擎搜索方面也不友好。 所以要为后台添加一套自适应的rewrite。
以下是为一个SEO网站设计的结构
domain / home
/page | /class
/action
?querys
其URL示例为: https://domain/user/detail/12345/... https://domain/goods/list/... 经过重写转化为: https://domain/?abstract=user&functionality=detail&id=12345... https://domain/?abstract=goods&functionality=list...
今天和罗什孵化器的石总聊项目,我们提到了为了保证一些数据的真实性,需要引入区块链技术,这样我们可以避免像58同城这样的虚假信息漫布的问题。 我们聊了很多除了区块链以外的机制补充,还是很有成果的,但是对于区块链技术的实际实施,我考虑了一下,还是应该使用内部数据库来解决。
主要原因有:
搭建一个互联平台、提供的服务远远大于分布式记账的需要,我们也不是一个单纯的金融平台、我们有大量的数据并不敏感,而且是需要反复维护的,如果完全基于区块链来构建平台,是一种因噎废食的方式,既浪费空间,也会导致系统的容错率极低。
一个正式的互联网服务平台、需求是多种多样的,我们不能将所有信息全部都放到一个公开的信息链条上、最典型的就是用户的隐私数据,而且也没有这样的必要。如果完全基于区块链构建平台,那么就会导致我们本不需要额外做的隐私问题,需要再投入各种技巧来规避,而且是不能从根本上解决的。 用户隐私泄露、服务器风险增加等问题都不好处理。
下面介绍一下,内区块链的可信度方案以及具体实现方式
引入服务端入口(管理后台接口)
初始化管理后台 Manager对象
引入页面文件
系统用户的默认权限设置
90000 超级管理员 80000 管理员
40000 网站编辑 30000 创作者 10000 普通用户
最近回复