技术文章

证书(Certificate)与描述文件(Provisioning Profiles)

a 夏天 提交于 2021-02-19 04:54:29
  在使用脚本xcodebuild自动打包的时候,会用到签名证书和描述文件,我在编译的时候搞了好长时间才搞明白,下面介绍如何得到正确配置。   证书:证书是用来给应用程序签名的,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的, 未经修改的。在Xcode Build Setting的Code Signing Identity中,你可以设置用于为代码签名的证书。   .p12:因为直接从Apple下载的证书只有公钥,没有私钥。没办法证明这个证书是你的(没有办法证明你有这个权利)。而从本地钥匙串中导出的.p12文件是包含公钥和私钥的,也就是说可以把证书上描述的权利赋予他人。   描述文件:描述文件里包含了App ID , Certificates (证书), Devices(设备)。 说明生成描述文件需要用到这些信息。我们要打包或者在真机上运行一个应用程序,首先需要证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的等等。然后需要指明它的App ID,并且验证Bundle ID是否与其一致。再次,如果是真机调试,需要确认这台设备能否用来运行程序。而Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件就可以了。而且这个Provisioning

使用SQLiteOpenHelper操控数据库

白昼怎懂夜的黑 提交于 2021-02-19 04:48:44
上次我使用 SQLiteDatabase 来操作数据库,但更常见的是使用SQLiteDatabase来操作SQLite. 一般的用法是创建SQLiteOPenHelper的子类,扩展它的 onCreatea(SQLiteDatabase db) 和 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 方法。 Synchronized SQLiteDatabase getReadableDatabase() -->以读写的方式打开数据库对应的SQLiteDatabase对象。 Synchronized SQLiteDatabase getWritableDatabase() -->以写的方式打开数据库对应的SQLiteDatabase对象。 abstract void onCreate(SQLiteDatabase db) -->第一次创建数据库时,回调该方法。 abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) -->当数据库版本更新时,回调该方法。 Synchronized void close() -->关闭所有打开的数据库。 得到SQLiteDatabase对象后,就

20行代码教你用python给证件照换底色

╄→尐↘猪︶ㄣ 提交于 2021-02-19 04:48:23
1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流。本文只是为了告诉大家:python其实有很多黑科技(牛逼的库),我们既可以用python处理工作中的一些事儿,同时我们也可以利用python做一些有趣的事儿。 2.读取图片并显示 imread():读取图片; imshow():展示图片; waitkey():设置窗口等待,如果不设置,窗口会一闪而过; import cv2 import numpy as np # 读取照片 img=cv2.imread( 'girl.jpg' ) # 显示图像 cv2.imshow( 'img' ,img) # 窗口等待的命令,0表示无限等待 cv2.waitKey( 0 ) 效果如下: 3.图片缩放 resize():图片缩放,其中fx和fy表示缩放比例,0.5表示缩放为以前的 一半。 import cv2 import numpy as np # 读取照片 img=cv2.imread( 'girl.jpg' ) # 图像缩放 img = cv2.resize(img, None ,fx= 0.5 ,fy= 0.5 ) rows,cols,channels = img.shape print(rows,cols,channels) # 显示图像 cv2.imshow( 'img' ,img) # 窗口等待的命令

20行代码教你用python给证件照换底色

ⅰ亾dé卋堺 提交于 2021-02-19 04:48:03
1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流。 2.读取图片并显示 imread():读取图片; imshow():展示图片; waitkey():设置窗口等待,如果不设置,窗口会一闪而过; import cv2 import numpy as np # 读取照片 img=cv2.imread( 'girl.jpg' ) # 显示图像 cv2.imshow( 'img' ,img) # 窗口等待的命令,0表示无限等待 cv2.waitKey( 0 ) 效果如下: 3.图片缩放 resize():图片缩放,其中fx和fy表示缩放比例,0.5表示缩放为以前的 一半。 import cv2 import numpy as np # 读取照片 img=cv2.imread( 'girl.jpg' ) # 图像缩放 img = cv2.resize(img, None ,fx= 0.5 ,fy= 0.5 ) rows,cols,channels = img.shape print(rows,cols,channels) # 显示图像 cv2.imshow( 'img' ,img) # 窗口等待的命令,0表示无限等待 cv2.waitKey( 0 ) 结果如下: 4.将图片转换为灰度图像 三色图片有RGB三个颜色通道,无法进行腐蚀和膨胀的操作

nslookup详解(name server lookup)( 域名查询)

自作多情 提交于 2021-02-19 04:43:04
nslookup详解(name server lookup)( 域名查询) 一、总结 1、 爬虫倒是很方便拿到页面数据: a、网页的页面源码我们可以轻松获得 b、比如cnsd博客,文章的正文内容全部放在<article></article>当中,所以非常好获取,此时我们获取的是html的页面 c、html的数据自带格式,所以直接放到数据库即可,因为数据库里面存的也就是html数据,要显示的话直接把这部分数据放到页面上面来即可 2、 nslookup :(name server lookup)( 域名查询) 二、nslookup详解(name server lookup)( 域名查询) nslookup可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个 DNS服务器 进行解释。在已安装 TCP/IP协议 的电脑上面均可以使用这个命令。主要用来诊断 域名系统 (DNS) 基础结构的信息。Nslookup(name server lookup)( 域名查询 ):是一个用于查询 Internet 域名 信息或诊断DNS 服务器问题的工具. nslookup是 一个程序的名字 ,这个程序让因特网服务器管理员或任何的计算机用户 输入一个主机名(举例来说,“whatis.com.cn”)并发现相应的IP地址 。它也会 相反的名字查找为一个你指定的 IP 住址找出主机名 。 举例

Linux基础命令---nslookup查询域名工具

荒凉一梦 提交于 2021-02-19 04:41:13
nslookup nslookup是一个查询DNS域名的工具,它有交互和非交互两种工作模式。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。 1 、语法 nslookup [-option] [name | -] [server] 2 、进入交互模式之后有如下命令 命令 说明 host 查询host的信息 server domain 改变服务器 exit 退出 set keyword = value 设置指定属性 all,打印所有的属性 domain=name 设置查询的名字 port=value 改变服务器端口 type=value 改变查询的类型 timeout=number 设置等待超时 class={IN | CH | HS | ANY} 3 、实例 1)非交互模式查询 [root@localhost ~]# nslookup www.baidu.com Server: 172.20.10.1 Address: 172.20.10.1#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 111.13.100.91 Name: www.a.shifen.com

幸福感可视化

余生颓废 提交于 2021-02-19 04:34:44
前言 pyecharts 官方文档排版更新,同时也新增了一些例子,小编找了一份数据来练练手,数据来自阿里天池: https://tianchi.aliyun.com/competition/entrance/231702/information 这是阿里天池的一个新人赛,题目是预测分析,但不是我们此次目的,我们需要下载我们需要的数据: happiness_index.xls 为字段说明,取值说明。 happiness_train_arre.csv 为我们的数据。 数据清洗 我们先导入库,查看数据: 查看缺失值,数据信息: 数据清洗,我们没有全部清洗,只选取了几个和常理不太一样的字段,具体清洗字段如下,这是我 jupyter notebook 的目录: 清洗这几个字段的代码: 清洗好后,我们查看一下我们的数据: 可视化 我们现在就可以开始可视化了,由于此次就是练手,我们首先选择了这么几种图表: 饼图 热力地图 折线图 圆环图 柱状图 散点图 箱型图 雷达图 pyecharts 提供了 10 多种主题,我们没有使用默认的主题。 饼图 主题是在第 3 行代码导入库,第 6 行设置主题,下面的图表一样。 热力地图 折线图 折线图,我们加上了标记,最小值,最大值的标记。 圆环图 柱状图 柱状图加上了最小,最大值的水平线。 散点图 箱形图 雷达图 源码获取 关注微信公众号 “

低功耗

六眼飞鱼酱① 提交于 2021-02-19 04:34:22
说到低功耗,首先要建立几个观念。 一、 现实世界中没有绝对的某某某 。 电阻,电容,电感 三大基础元件都不是绝对的。他们互有彼此,只是比例微小而被忽略。 比如:电阻零件内有微量电感微量电容属性。普通情况下直接忽略掉,但在特殊情况下是不能忽略的。 二、 不能完全相信仪器 。 测不准原理。一切测量手段都会影响被测对象。 三、 数学是拿来用的。不要凭感觉办事 。 账越算越明。准确的数据是办事凭据。 低功耗的实现方式很简单,剔除一切电老虎。 从大老虎开始,小老鼠也要一个不留。能省则省,抠门到底。 电路板核心思想在 CPU (MCU,以下直接用CPU,不再兼顾名词问题)。 CPU 工作顺序    上电-》准备一下/干活-》睡觉-》被叫醒-》干活-》睡觉。。。。 睡觉的时候,关闭外围能关闭的所有。能关的全关,能断电的全断电。 睡觉时候的电量别看他小,他是能耗占比最大的。水滴石穿。 计算一下就知道了。 CPU 睡觉,按照业务需求去做,具体情况具体对待。 比如:有条件的CPU把自己的电掐了,外部唤醒信号首先对MCU 供电,MCU 醒来先把电源hold住 然后干活,干完再自杀。 有些外围电路是有低功耗模式的,这个时候就需要计算了。 这个低功耗是多少电流,这个外围电路睡觉时多少时间。 唤醒时间是多少,唤醒过程消耗多少电量。 如果给这个设备直接断电,他的上电初始化时间是多少

Java网络编程之InetAddress浅析

一个人想着一个人 提交于 2021-02-19 04:33:55
Java网络编程之InetAddress浅析 一、InetAddress综述    IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础。InetAddress是Java对IP地址的封装,几乎所有的Java网络相关的类都和它有关系,例如:serversocket,socket,URL,DataGramSocket,DataGRamPacket等。   InetAddress的实例对象包含以数字形式保存的IP地址,同时还可能包含主机名(如果使用主机名来获取InetAddress的实例,或者使用数字来构造,并且启用了反向主机名解析的功能)。InetAddress类提供了将主机名解析为IP地址(或反之)的方法。   InetAddress对域名进行解析是使用本地机器配置或者网络命名服务(如域名系统(Domain Name System,DNS)和网络信息服务(Network Information Service,NIS))来实现。对于DNS来说,本地需要向DNS服务器发送查询的请求,然后服务器根据一系列的操作,返回对应的IP地址,为了提高效率,通常本地会缓存一些主机名与IP地址的映射,这样访问相同的地址,就不需要重复发送DNS请求了。在java.net.InetAddress类同样采用了这种策略。在默认情况下

Bootstrap-Plugin:提示工具(Tooltip)插件

醉酒当歌 提交于 2021-02-19 04:33:30
ylbtech-Bootstrap-Plugin:提示工具(Tooltip)插件 1. 返回顶部 1、 Bootstrap 提示工具(Tooltip)插件 当您想要描述一个链接的时候,提示工具(Tooltip)就显得非常有用。提示工具(Tooltip)插件是受 Jason Frame 写的 jQuery.tipsy 的启发。提示工具(Tooltip)插件做了很多改进,例如不需要依赖图像,而是改用 CSS 实现动画效果,用 data 属性存储标题信息。 如果您想要单独引用该插件的功能,那么您需要引用 tooltip.js 。或者,正如 Bootstrap 插件概览 一章中所提到,您可以引用 bootstrap.js 或压缩版的 bootstrap.min.js 。 用法 提示工具(Tooltip)插件根据需求生成内容和标记,默认情况下是把提示工具(tooltip)放在它们的触发元素后面。您可以有以下两种方式添加提示工具(tooltip): 通过 data 属性 :如需添加一个提示工具(tooltip),只需向一个锚标签添加 data-toggle="tooltip" 即可。锚的 title 即为提示工具(tooltip)的文本。默认情况下,插件把提示工具(tooltip)设置在顶部。 < a href ="#" data-toggle ="tooltip" title =