- 博客(273)
- 资源 (13)
- 收藏
- 关注
原创 数据结构与算法二:时间/空间复杂度(complexity)
从架构的角度来看,可扩展性是指更改 app 的难易程度。从数据库的角度来看,可伸缩性是指在数据库中保存或检索数据所需的时间快慢程度。对于算法,可扩展性是指随着输入大小的增加,算法在执行时间和内存使用方面的表现情况。当处理少量数据时,不好的算法(时间、空间代价昂贵)可能仍然让人感觉执行速度很快。然而,随着数据量的增加,昂贵的算法将会变得很糟糕。只是它会变得多糟糕呢?如何量化这个糟糕程度是我们需要了解的一项重要技能。对于少量数据,由于现代硬件的速度,即使是最昂贵的算法也可能看起来执行速度很快。然而,随着数据的增
2022-06-29 20:17:43
1054
原创 数据结构与算法一:开篇
《Data Structures & Algorithms in Swift》 翻译工作正式开始了!今天是对这本书翻译的第一天,不要着急,接下来会慢慢把这本书翻译完,并发布在这一系列文章。欢迎大家多多关注、支持。因为花费了大量时间和精力,为了产出更好的服务,后面的部分章节选择性收费,望理解。想了解更多信息,可以关注一下我的个人技术公众号 – 「北之星」。为何要学习数据结构与算法?数据结构研究的是效率。假如给我们特定数量的数据,存储它或者操作它,以实现特定目标的最佳方式是什么呢?程序员们要经常使用各种集合类型
2022-06-29 20:16:33
721
原创 设计模式与软件原则 (一):SOLID 原则
设计模式与软件原则(Design Patterns and Software Principles)Gang of Four 在其书《设计模式:可重用面向对象软件的要素》(Elements of Reusable Object-Oriented Software)中,将设计模式大致分为三种类型:Creational - 处理实体创建,例如 Singleton 和 Factory 设计模式。Structural 结构 - 确定实现实体之间关系的简单方法。例如适配器设计模式。Behavioural 行
2022-02-19 20:12:00
276
原创 可拖拽 Bottom Sheet View Controller
当我们想弹出一个预览视图,bottom sheet modal view controller 非常实用。在 iOS 中,长按拖拽手势可以让 controller 上滑或者向下消失。实现原理是,通过监听拖拽事件,动态改变 view 之间的 auto layout 约束,并加上少许动画。下面看源码:第一个页面 ViewController.swift:import UIKitclass ViewController: UIViewController { // Defined.
2022-01-03 16:20:25
1751
原创 itextpdf convert html string to Pdf
一、导入依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</artifactId> <version>4.0.0</version> </dependency> <!-- 中文字体-->
2021-11-04 15:43:14
237
原创 Filter 记录日志(Get Post 参数)
一、拦截器介绍拦截器(Interceptor)介绍拦截器(Interceptor)同 Filter 过滤器一样,它俩都是面向切面编程——AOP 的具体实现(AOP切面编程只是一种编程思想而已)。你可以使用 Interceptor 来执行某些任务,例如在 Controller 处理请求之前编写日志,添加或更新配置……在 Spring 中,当请求发送到 Controller 时,在被 Controller 处理之前,它必须经过 Interceptors(0或多个)。Spring Interceptor
2021-10-28 19:05:40
1654
原创 JavaScript 导出 HTML 到 PDF
首先说明,最佳方案是方式一。方式二也可以实现,但是有点麻烦,兼容性还不见得好。方式三,英文环境下挺好的,但不兼容中文。方式一:html2pdf使用 html2pdf.js 这个类库。具体使用方法可参考官方说明。项目地址:html2pdf源码下载地址:https://github.com/iJoeychang/convert_html_to_pdf_pro 方式二:jsPDF libraryjsPDF library 这种方式也可以实现导出 pdf,但是没有第一种方式好。使用方式引入类库
2021-07-14 14:37:04
652
原创 iOS网络请求(Networking)及处理 Json
我们知道,空格不是 URL 中的有效字符, 除此,还有许多其它特殊字符也不是,例如 < 或 > 符号。因此对特殊字符必须进行转义,即 URL 编码。例如,我们可以将空格编码为 + 号或字符序列 %20。幸运的是,String 类现在已经可以进行这种编码了。 因此,我们只需添加一些代码就可以完成 URL 转码:func iTunesURL(searchText: String) -> URL {let encodedText = searchText.addingPercentEnc
2021-06-23 09:25:09
570
原创 iOS HUD (Heads Up Display) 旋转框
一、隐藏软键盘在 viewDidLoad() 添加 gestureRecognizer// Hide keyboardlet gestureRecognizer = UITapGestureRecognizer( target: self, action: #selector(hideKeyboard))gestureRecognizer.cancelsTouchesInView = falsetableView.addGestureRecognizer(gestureRecognize
2021-05-21 15:25:37
592
2
原创 editormd 上传图片问题解决
一、下载源码首先在 editormd 官方下载源码:删除 test、examples、docs 无用文件夹,重命名文件夹如下:二、移入源码到项目这里,我把 plugins 文件夹单独拎出来了。根据需要调整文件位置,只要 js css 文件在浏览器链接中可以访问到就行。在 IDEA 中右键 editormd、plugins 两个文件夹 ,Marked directory as Exclusion,这样两个文件夹下的文件就可以在浏览器访问了。三、thymeleaf 页面引用test.htm
2021-05-11 14:39:07
1763
2
原创 Swift 中的变量、常量、类型
a good building needs a good foundation变量、常量、类型变量是存储特定类型值的临时容器:var count: Intvar shouldRemind: Boolvar text: Stringvar list: [ChecklistItem]Double,与 Float 相似,但精度更高。比如可以使用 Doubles 来存储经纬度。Character,字符。String 就是字符的集合。UInt,Int 变体。U 代表无符号,表示数据类.
2021-05-01 16:31:16
288
原创 Checklists app demo 详解
本教程包含内容:Model-View-Controller 工作原理大标题(large titles)展示Segue 类型介绍代理(delegate)模式讲解可选类型 Optionals 讲解Weak 弱引用讲解沙盒机制讲解Codable 协议Plist files 序列化讲解UserDefaults 讲解Functional Programming 讲解本地通知 (local notifications) 讲解类方法 vs 实例方法讲解本教程 demo 下载地址本 dem
2021-04-26 21:10:42
285
原创 转换十六进制 color 为 UIColor
将格式为#symbol 的十六进制(eg. #ffe700ff )颜色转换为 UIColor,可以这样写,代码如下:extension UIColor { public convenience init?(hex: String) { let r, g, b, a: CGFloat if hex.hasPrefix("#") { let start = hex.index(hex.startIndex, offsetBy: 1)
2021-04-20 11:20:10
204
原创 Vue 页签 按钮
最终效果:源码:<template> <div> <div class="flex"> <div v-for="(item, index) in btns1" :key="index" @click="changeActive(item, index)"> <div class="btn1" :class="item.active? 'active1':''">{{item.name}}</div> &l
2021-04-01 14:28:49
274
翻译 SVG Assets in Xcode for Single Scale Images
Xcode 12 在 iOS,macOS 和 iPadOS 中引入了对可缩放矢量图形(SVG)图像的支持。在 Xcode 12 之前,我们只能通过 PDF assets 来使用 single scale resources 。这样无需使用@1x,@2x 和 @3x 后缀为每个比例生成单独的图像,因此可以节省我们的适配时间,还可以避免潜在的错误,例如意外生成大小为 @1x 的 @3x 资源。什么是 SVG(Scalable Vector Graphic)?可伸缩矢量图形,也称为 SVG,定义了可扩展标记
2021-01-21 14:16:37
443
翻译 Unused images and resources clean up in Xcode
由于项目中的迭代更新,可能会存在未使用的图像。因此,了解如何清理Xcode assets 非常有用。这里介绍一些可用于清理项目的工具:FengNiaoLSUnusedResources许多工具(例如Slender)曾经可以完成这项工作,但 Slender 已不再维护了。我们来看看现在可以使用的。Cleaning up unused images using FengNiaoFengNiao 是使用 Swift 编写的开源的命令行工具。可在Github上找到踏。我们可以通过 cloning 存
2021-01-21 14:15:57
238
原创 iOS zoom in zoom out 放大缩小图片
首先,在 viewDidLoad 添加设置:scrollView.delegate = selfscrollView.minimumZoomScale = 1.0scrollView.maximumZoomScale = 10.0实现方法一: override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() updateMinZoomScaleForSize(view.bounds.siz
2021-01-21 14:14:37
5992
2
原创 Swift 自定义 tableViewCell
创建类 CustomTableViewCell:import UIKitclass CustomTableViewCell: UITableViewCell { lazy var backView: UIView = { let view = UIView(frame: CGRect(x: 0, y:0, width: self.frame.width, height: 50)) return view }() lazy var se
2021-01-21 14:13:42
806
1
原创 docker 安装 nexus3
一、MacOS 安装 docker使用 Homebrew 来安装 Dockerbrew cask install docker二、docker 安装 nexus3查找 nexus3 镜像docker search nexus3控制台打印:拉取 nexus3 镜像docker pull docker.io/sonatype/nexus3控制台打印:查看镜像docker images控制台打印:changyou@Mac ~ % docker imagesREPOSITOR
2020-11-27 14:48:50
404
原创 MVC 简单示例:BMI-Calculator
项目结构这是一个小 demo,根据用户的体重和身高,计算出他们的身体质量指数(BMI,Body Mass Index),并给出健康建议:多饮食、少饮食、继续保持现状。ModelsBMI.swift 定义 BMI 基本属性import UIKitstruct BMI { let value: Float let advice: String let co...
2020-01-21 11:23:38
1348
原创 AutoLayout Stack View 实践笔记
水平方向,五个按钮为一组,设置属性如下:Alignment: Fill, Distribution: Fill Equally, Spacing: 1将 Label 和第1步中的所有5个水平 Stack view 放入一个垂直 Stack view 中-堆栈属性为:Alignment: Fill, Distribution: Fill Equally, Spacing: 1...
2020-01-13 19:13:14
1071
原创 How to make an app
去年,Apple 宣布它们为开发者支付了265亿美元,而且这个数字仍以每年30%的速度增长。虽然这些钱大部分流入到像 Clash of Clans、Clash Royale 这样的大公司,但是仍然有大量独立开发者成功的案例。像 7 minute workout app 就是一个很好的例子。Stuart Hall 是一位独立开发者,他开发了 7 minute workout app 这款健身软件...
2020-01-04 15:58:34
1215
原创 idea gitlab 分支 pull、push 实践笔记
idea 功能太强大了,可惜自己使用时间还不久,它的很多功能还不会用。最近开始使用它自带插件进行 gitlab 源码管理,感觉极大的提升了开发效率。之前一直使用 SourceTree for Mac 进行 Java 代码管理,因为总是在不同分支进行切换,就把不同分支代码放进了不同的文件夹。SourceTree 体验不太好,一旦拉取代码有冲突,解决起来不是很方便。开发多个 jar 包,又需要不...
2019-12-14 15:58:36
2530
原创 视频播放 demo
GTVideoPlayer 源码:GTVideoPlayer.h#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN/** 播放器 */@interface GTVideoPlayer : NSObject/** 全局播放器单例 */ (...
2019-11-23 14:01:49
1791
原创 位图排序
所谓位图,就是用一个位(bit)来标记某个元素对应的值,而键就是该元素。才用位为单位的来存储数据,可以大大节省存储空间。 位图通过使用位数组来表示某些元素是否存在,可进行数组的快速查找、判重、删除。 下面来看一个排序的示例。假设要对 0~7 中的 5 个元素(4,2,5,3,1)进行排序,我们采用位图的方法来实现快速排序: 因为要表示 8 个数,所以只需要 8 位,由于 8 位等于 1 字节
2018-02-03 21:37:41
622
原创 当机遇来敲门
最近遇到一个自己梦寐求之的机遇,可惜可能我没能很好的抓得住,自己多少有点难过,但很快就心情坦然了,凡事都要平常心。这时,我真有感觉到 “书到用时方恨少”,看来还是要加大力度努力学习了。接下来这一年,自己需要好好规划下要学习的内容,不能再眉毛胡子一把抓那样没有重点了,不然总是不成系统,这也想学,那也想学,到最后,这也没学好,那也没学精,结果会很惨的。曾国藩都说,“吴子序尝教我云,‘用功譬如掘井
2018-01-20 14:50:49
492
翻译 Core Text Tutorial for iOS : Making a Magazine App 翻译
原文:https://www.raywenderlich.com/153591/core-text-tutorial-ios-making-magazine-appCore Text 是一个底层文本引擎,当与 Core Graphics/ Quartz 框架一起使用时,它可以对布局和格式进行细粒度的控制。在 iOS 7 时候,Apple 发布了 TextKit 类库,它可以存储、列出和显示带有各种排
2017-12-07 20:02:35
516
原创 部署 ShowDoc 到自己的服务器
一、部署到自己的服务器环境要求PHP5.3以上版本、php-mbstring模块、php-pdo模块、mysql数据库克隆或者下载代码:https://github.com/star7th/showdoc导入数据库下载代码后,将根目录的showdoc.sql文件导入mysql数据库。(注意,需要创建本地 mysql 数据库,并将 showdoc.sql 脚本导入到数据库)修改配置文件进入Ap
2017-10-31 14:54:19
12585
1
翻译 Firebase 教程: iOS 实时聊天
原文:https://www.raywenderlich.com/140836/firebase-tutorial-real-time-chat-2貌似市场上的主流 app 都有聊天功能,所以,我们的 app 也应当添加聊天功能啦。然而,开发一个聊天工具是一个令人畏惧的工作。除了要有专门用于聊天的本地 UIKit 控件,我们还需要一个服务器来协调用户之间的消息和对话。幸运的是,有一些不错的框架可以帮
2017-10-25 10:25:03
2503
翻译 Firebase Tutorial: Getting Started 教程翻译
备注: 本教程已由 Attila Hegedüs 更新适配 iOS 10 和 Swift 3,原教程由David East 创作。 原文:https://www.raywenderlich.com/139322/firebase-tutorial-getting-started-2 翻译:JoeyChang 转载请标明出处原文:http://www.jianshu.com/p
2017-09-12 09:38:33
1170
原创 LoadRunner 压力测试
一、LoadRunner 安装1.复制一下地址,然后打开迅雷,新建,选择一个磁盘大的空间,显示4.02G 的ISO文件http://www.genilogix.com/downloads/loadrunner/loadrunner-11.isohttp://h30302.www3.hp.com/prdownloads/Software_HP_LoadRunner_11.00_Sim_Chines
2017-06-13 16:01:11
958
原创 Git 笔记
一、时光机穿梭1. 版本回退git status命令可以让我们时刻掌握仓库当前的状态。git diff顾名思义就是查看difference。提交修改和提交新文件是一样的两步,第一步是git add,第二步git commit。每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继
2017-05-31 10:28:12
400
原创 石榴花开
窗外的石榴花开了,阳光下,开得正艳。又是一年石榴花开,石榴花,很漂亮,花红似火。它的盛开,也预示着盛夏的到来。我对石榴花有种特殊的感觉,说不上喜欢,也说不上讨厌,可能更多的是一种回忆和怀念。多年前,在我家那块儿有十几亩之多的田地里,父亲种下了三行石榴树。石榴树不大,每行有一百来棵,三行石榴树,把那块儿地分割出了或大或小的四份儿。在我十几岁的时候,每年此时我会在那里度过很多时光。现在正是小麦收割的季节
2017-05-31 10:27:35
812
原创 《摔跤吧,爸爸》观后感
昨晚和三个同事一起去看了这部电影。本来想周末在网上下载了视频再看的,昨晚临下班,有个同事问要不要一起去看电影,我问看哪个,他说《摔跤吧,爸爸》,我随即说去。我是冲着阿米尔汗去的。电影一波三折,可谓感人得很。当影片中女主角获胜时电影播放慢镜头,我旁边的同事说,“我激动得都想吼出来了…”那个时候,我也很激动,我想应该有很多人会哭的。第一次看阿米尔汗的电影还是在我大一时候。记得那时候精神状态不佳。一次课堂
2017-05-31 10:27:08
974
原创 新办公室
今天是在新办公室办工的第一天,感触颇多。 想想在春秋就要三年半了。三年多的时间,说快很快,快到自己觉得过得颓废,时间消失了,自己却很不满意自己取得的进步或者说成绩;说慢也慢,毕竟是三年多,人的一辈子能有多少个三年多呢? 昨晚搬家整理东西的时候,翻看放在桌子上面很久很久的几本薄笔记,纸张旧旧的都变了颜色,里面随便记录的是自己以前开发时所画的逻辑,字体大多潦草,看着那些字,让我很是不满意自己的字体,
2017-05-31 10:26:13
627
原创 好习惯要坚持
刚吃过晚饭,手写了一小篇日记,没有多少字,用英文写的。 离开学校后,算来已经再也没有写过英文短文了,有点手生,有点不够自然,很多词,很多句子,组织得很生涩。只是在一边借着词典一边想的努力下,最后竟然比开始想象的写得多。算是个不错的开头吧。 自天气开始转暖后,我早上起来得比冬天里早了一个多小时。这个宝贵的时间,我用来学英语了。早上起来洗漱后,自己就坐在电脑旁毕恭毕敬开始看raywenderlich
2017-05-31 10:25:44
488
原创 iOS线程学习笔记
文字源自对以下文章的摘抄: 1. threading-programming-guide笔记一 2. threading-programming-guide笔记二 3. threading-programming-guide笔记三 4. threading-programming-guide笔记四感谢原作者。 这里摘抄,只为学习目的,以便日后再复习。一、OS X和iOS中提供的不那么底层的
2017-05-31 10:25:06
525
原创 登黄山记
为期两天的黄山行至此结束,此刻我正坐在黄山站的大门前东边第一棵大树下,刚在路南边的某家餐馆点了两个菜一瓶啤酒一碗面,都没有吃完,感觉很是浪费,自责中拖着一瘸一拐的两腿艰难的来到了火车站旁。两天,近六万步,感觉双腿已非我双腿。大腿,小腿,脚掌,脚跟,都在隐隐作痛。虽然这样,回顾这两天,感觉还是蛮值得的。读万卷书,行万里路,要么心灵在路上,要么身体在路上。有些地方,我的个性签名就是,读书,写字,周游天下
2017-05-31 10:24:28
1321
MyTextKitNotepad
2014-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人