自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello World

学海无涯

  • 博客(82)
  • 资源 (12)
  • 收藏
  • 关注

原创 常见直播传输协议

与HLS类似,DASH将视频分割成小的片段,并通过HTTP进行传输。不同的是,DASH支持更多的编码格式和自定义选项,同时也支持多个码率和分辨率的选择,以适应不同的网络条件和设备。媒体捕获:WebRTC通过浏览器的媒体设备API,如getUserMedia,获取音视频输入设备(摄像头、麦克风)的数据。码率和分辨率自适应:DASH支持多个码率和分辨率的选择,可以根据网络和设备的情况自动调整视频质量。不支持实时性应用:HLS由于传输的特性,适用于非实时性的应用,不适合需要低延迟的直播场景。

2023-07-03 19:44:30 1662

原创 直播技术原理学习路径

直播学习路径

2023-06-13 23:01:49 844

原创 Open AI官方Chat GPT最佳提示词Prompt优化策略

原文链接:https://platform.openai.com/docs/guides/gpt-best-practices。

2023-06-08 15:22:06 2097

原创 SwiftDate类型处理与优化

在处理日期和时间时,我们应注意性能问题,尤其是在需要进行频繁的日期格式转换时。虽然提供了一种方便的方式来处理日期和时间,但是其实例化过程可能会成为性能瓶颈。我们可以通过重用实例以及使用来提高性能。最后,值得注意的是,我们应该根据具体的应用场景来选择日期格式,并进行适当的性能测试,以确保所做的优化确实改善了我们的代码的性能。希望本文能对你在Swift中处理日期和时间时有所帮助。如果你有任何问题或者建议,欢迎在评论中提出。

2023-05-20 19:13:36 911

原创 iOS中获取MCC和MNC的方法及iOS 16中CTCarrier被弃用的替代方案

本文主要介绍在iOS开发中如何获取移动国家代码(MCC)和移动网络代码(MNC),并探讨了在iOS 16中CTCarrier被弃用后的替代方案。我们将首先介绍使用公共API的获取方法,然后讨论使用私有API的替代方案。

2023-05-09 11:57:27 7062 10

原创 探索一种通过iMessage群发消息的可能

iMessage是苹果公司的一款即时通讯软件,它可以在iPhone、iPad、Mac和Apple Watch等苹果设备上使用。iMessage可以通过Wi-Fi或蜂窝网络发送文本、图片、视频、语音消息和表情等多种类型的消息。iMessage还支持发送短信和彩信,与普通短信和彩信相比,iMessage消息可以更快速、更安全地传输,同时还可以实现端到端加密,保护用户的隐私。iMessage还可以创建群组聊天和发送位置等功能,方便用户与朋友、家人和同事之间进行沟通和协作。

2023-05-02 21:57:22 1909

原创 如何创建高效的Prompt和ChatGPT等大语言模型AI对话

Prompt是一种用于指导大型语言模型生成自然语言文本的文本片段。在使用大型语言模型时,我们需要提供一个Prompt,以指导模型产生符合我们期望的文本结果。Prompt可以是一个单词、一句话、一段话或一个完整的篇章。举个例子,如果我们要让大型语言模型生成一篇电影评论,我们可以用如下的Prompt:“这是一篇关于电影《泰坦尼克号》的评论。在这个Prompt中,我们告诉了模型我们要生成一篇关于《泰坦尼克号》的电影评论。然后,我们可以继续提供更多的信息,以指导模型生成更准确的文本结果。

2023-04-01 09:36:04 9586 2

原创 GPT-4 免费体验方法

New Bing Chat的回答是基于最新的算法和技术,它可以帮助您快速找到您需要的信息。如果您想推荐New Bing Chat给其他人使用,那么我建议你告诉他们New Bing Chat可以帮助他们解决各种问题,并且提供了许多有用的功能。Cursor 编辑器集成了 GPT-4 接口,可以自动生成各种语言的代码,从前端到后端,从纯软到软硬结合,甚至汇编或HSL。New Bing集成了GPT-4,并且是免费使用的。速度非常快,除了可以生成代码,还可以和Chat GPT一样进行聊天。

2023-03-25 09:30:24 10855 7

原创 WebAuthn 认证原理

WebAuthn 是一个由 W3C 制定的网络标准,它的目的是让用户可以使用公钥加密的方式来验证网络应用程序和服务。WebAuthn 是 FIDO2 项目的核心组成部分,FIDO2 项目是由 FIDO 联盟和 W3C 共同指导的。WebAuthn 的原理是,当用户注册或登录一个网站时,网站会向用户的浏览器发送一个挑战(challenge),浏览器会将这个挑战传递给用户的验证器(authenticator),验证器是一个可以执行密码学运算的抽象功能模型,它可以是软件或硬件实现。

2023-03-24 00:13:24 787

原创 AppleScript实现Mac iMessage自动发送消息

【代码】AppleScript实现Mac iMessage自动发送消息。

2023-03-22 16:46:35 2121

原创 体验不了ChatGPT?来试试POE桌面版!

最早在App Store推出,目前Poe App还没有推出针对Android用户的版本,但今天poe.com推出了桌面版,Android用户也可以通过桌面浏览器使用ChatGPT。Poe的ChatGPT模型比OpenAI的ChatGPT模型小,因为开发团队考虑到训练模型需要的计算资源以及使用者的手机或电脑的存储空间。因此,Poe的ChatGPT回应速度也会比OpenAI的ChatGPT更快。Sage被定位为聊天机器人,而Dragonfly则是一种可以执行更复杂任务的人工智能助手,可以研究和分析数据。

2023-03-09 10:45:47 64588 21

原创 CoreData数据库探索

Core Data 是苹果公司提供的一个对象-关系映射框架(Object-Relational Mapping,ORM),用于管理应用程序的数据模型。Core Data 提供了一个抽象层,使开发人员能够使用面向对象的方式访问和操作数据,而不需要直接与底层的数据库交互。Core Data 适用于管理复杂的数据模型,包括继承、关联和多对多关系。

2023-03-04 16:22:24 963

原创 Swift GCD(Grand Central Dispatch)探索

在串行队列中,任务必须一个接一个地执行,因此这种队列适用于需要顺序执行任务的场景,比如在某个任务完成后执行另一个任务。并发队列可以同时执行多个任务,但是任务的执行顺序并不一定按照添加到队列中的顺序,而是取决于系统资源的可用性和任务的优先级。同步执行是在当前线程中执行任务,异步执行是在后台线程中执行任务,而栅栏执行可以在任务执行前和执行后插入其他任务。中执行的任务都将在主线程上执行,如果在主线程中执行较耗时的任务,可能会导致 UI 卡顿,因此需要将这些任务放在后台线程中执行。

2023-02-28 22:59:31 622

原创 Chat GPT模型GPT-3学习

什么是Chat GPTGPT 全称Generative Pre-trained Transformer,是一种预训练语言模型,旨在通过学习大量语料来生成合理的文本。它是由 OpenAI 公司开发的,目前已经有多个版本,如 GPT-2 和 GPT-3。Chat GPT 是 GPT 的一个应用,旨在构建聊天机器人。它可以读入训练数据中的大量文本,并学习语言模式和语法,然后根据这些学到的知识生成新的文本,以回答用户的问题。Chat GPT 因其高效的语言生成能力和人类般的语言表达方式,在聊天机器人领域具有广

2023-02-17 09:06:29 5845 1

原创 SQLite WAL 机制探索

Checkpoint 是 SQLite 数据库中一个重要的机制,它用于将 WAL(Write-Ahead Logging)文件中的数据同步到数据库文件中。在 SQLite 数据库的 WAL 模式下,所有的写入操作都会首先写入到 WAL 文件中,然后再更新数据库文件。因此,在 WAL 模式下,WAL 文件中的数据和数据库文件中的数据是不一致的。Checkpoint 机制的作用就是将 WAL 文件中的数据同步到数据库文件中,以保证数据的一致性。

2023-02-16 11:24:51 1912

原创 iOS 奔溃EXC_BAD_ACCESS(KERN_INVALID_ADDRESS)分析

EXC_BAD_ACCESS (KERN_INVALID_ADDRESS)是一种常见的iOS应用程序崩溃错误

2023-02-13 18:51:00 6378

原创 Swift高效开发Tips

利用可选链式调用解决可选值问题,避免使用 if let 或者 guard let。利用泛型代码复用和简化代码。运用高阶函数,例如 map、filter 和 reduce 等,以简化数据处理。使用结构体代替类,当数据结构不需要继承或者是多态时,结构体会更加高效。使用 Enum 枚举类型来表示状态或者选项。利用协议来设计抽象层,将代码组织得更加清晰。利用 Xcode 的自动代码完成和快捷键加速开发效率。使用 Playground 进行快速原型开发和代码片段测试。使用 Source Contro

2023-02-12 15:58:45 3046

原创 iOS中如何高效使用Core Data

高效使用Core Data技巧:正确地设计模型:确保模型是合理的,符合领域的要求,以及避免冗余的数据。合理的使用NSFetchedResultsController:NSFetchedResultsController可以帮助你高效地管理数据,减少内存使用,以及提高效率。正确地使用预取请求:使用预取请求可以避免在大量数据请求中的频繁的磁盘访问,提高效率。避免频繁的保存:在需要的时候一次性保存所有的更改,而不是频繁的保存,避免对性能的影响。使用高效的数据类型:选择合适的数据类型,

2023-02-12 09:35:09 558

原创 Swift如何保证线程安全

Swift可以通过以下几种方式来保证线程安全使用互斥锁(Mutex):使用互斥锁可以防止多个线程同时访问共享数据,保证线程安全。使用OSAtomic操作:OSAtomic操作可以在多线程环境中安全地执行原子操作。使用DispatchQueue:DispatchQueue可以使用GCD技术实现线程安全。您可以使用DispatchQueue.sync和DispatchQueue.async方法在指定队列中执行任务,以保证线程安全。使用NSLock和NSCondition:NSLock和N

2023-02-12 09:21:32 1385

原创 Swift依赖注入之Swinject探索

介绍Swinject 是一个 Swift 语言的依赖注入框架。它通过简单易用的 API 和简洁的语法,帮助开发者实现依赖注入的解耦。Swinject 是一个轻量级的框架,不依赖任何其他第三方库,可以方便地集成到你的项目中。Swinject 的核心功能是容器(Container),容器是管理依赖关系的中心。开发者可以在容器中注册组件,并通过容器解决组件的依赖关系。Swinject 提供了丰富的 API,可以帮助开发者灵活地管理依赖关系。使用 Swinject,开发者可以更容易地实现依赖注入,解决组件之间

2023-02-11 15:50:39 1117

原创 Swift如何使用依赖注入进行解藕

Swift 中可以使用依赖注入(Dependency Injection)来解耦组件之间的依赖关系。依赖注入是一种设计模式,指的是在运行时,将一个组件所依赖的其他组件通过构造函数或者属性注入的方式传递给该组件。例如,有两个组件 A 和 B,A 依赖于 B。可以在 A 的构造函数中添加一个 B 的实例,并将该实例传递给 A,那么 A 就不再依赖于 B 的具体实现,而是依赖于 B 的接口。protocol BProtocol { func doSomething()}class B: BPro

2023-02-11 15:31:57 822

原创 iOS组件化原理探索

定义组件化是指将一个大型软件系统按照功能分解成若干个独立的、可复用的小组件,每个组件都有自己的生命周期、状态、以及与其他组件的交互方式。优点提高开发效率:组件可以复用,提高代码的重复利用率,节约开发时间。提高代码可读性:组件的独立性使得代码结构更加清晰,提高代码的可读性。提高代码可维护性:组件的独立性使得代码更加容易维护。提高代码的安全性:组件的隔离性使得代码更加安全。应用场景通常用于大型软件系统的开发,如操作系统、游戏引擎等。组件构件iOS 组件的设计和实现:需要考虑组件的职责

2023-02-11 15:21:39 2410

原创 Swift中依赖注入探索

⚡️什么是依赖注入依赖注入(Dependency Injection)是一种软件开发技术,它可以让程序中的组件之间保持松散耦合,从而实现组件的可重用性。依赖注入的工作原理是,程序中的组件将自己的依赖注入到容器中,容器会根据组件的依赖,自动提供所需的服务,从而实现组件的可重用性。⚡️依赖注入的有点依赖注入的优点主要有以下几点:保持松散耦合:依赖注入可以让程序中的组件之间保持松散耦合,从而提高组件的可重用性。提高可测试性:依赖注入可以让程序中的组件之间保持松散耦合,从而提高组件的可测试性。

2023-02-10 09:33:58 457

原创 Swfit Copy On Write 原理解析

Swift 中的 Copy On Write (COW) 技术是一种内存优化技术,其原理是在需要修改数据时才进行拷贝,以避免不必要的内存消耗。COW 的实现主要依赖于 Swift 中的结构体和类的特性。对于结构体而言,它是值类型,每次赋值都会使用新的内存地址;而类则是引用类型,每次赋值只是改变了指向内存地址的指针。

2023-02-09 20:35:55 760

原创 Swfit获取系统开机时间BootTime

Swift 获取系统开机时间

2022-09-03 11:07:27 573

原创 Xcode 10.0/Xcode 10.1 打包上传App Store,iOS 9系列设备用户下载app出现随机Crash解决方法

现象:Xcode 10.0/ Xcode 10.1 Workspace setting的Build system 设置为default build system 打包,上传到Test flight 测试阶段,使用iOS 9 系统手机下载测试,不会crash使用在Test flight 测试 iOS 9不会crash 的包提交App Store审核,审核通过后 用户iOS9系列设备从App S...

2018-12-15 14:23:47 1869

原创 iOS审核被拒:PLA 2.3 Please remove all references to pre-release versions of Apple software and hardware

2018年10月18日 上午7:39发件人 Apple0. 10.0 Before You Submit: Program License AgreementPLA 2.3Your app or its metadata contains references to a pre-release version of Apple software or hardware. Apps with...

2018-10-18 11:19:53 530

原创 iPhone XR/XS/XS Max 适配,最全iPhone尺寸

iPhone 比较 https://www.apple.com/iphone/compare/

2018-09-18 18:40:24 30618

原创 iOS Autolayout 之 Masonry 布局

MasonryMasonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装NSAutoLayout, 简洁明了并具有高可读性 而且同时支持 iOS 和 Max OS X。使用Masonry能够使用简单的语法进行Autolayout布局Masonry常用属性与NSLayoutAttrubute的对照表如下 Masonry NSAutoLayout 说...

2018-04-03 17:45:26 571

原创 【Chrome插件】使用FE助手-百度WEB前端助手

WEB前端助手(FeHelper)FeHelper,Chrome浏览器插件,包含一些前端实用的工具,欢迎安装使用! 个人最喜欢的工具之一,从jso格式化到字符串编解码,从代码优化到页面取色,几乎包含了所有你想用的功能。墙裂推荐!!!!FeHelper–弹出菜单插件入口,点击ICON,插件相关的所有功能都会在这里列出来,在popup中选择所需使用的功能即可使用代码美化

2017-12-21 16:29:18 5341

原创 【sublime】 json 格式化

Json格式化一直使用的是百度FE web前端助手 平时使用sublime来编辑json文件,发现了sublime一个很好用的json格式化工具扩展。安装方法: 打开 sublime -> command + shift + p -> Install package 搜索 Pretty JSON,安装使用方法: 格式化快捷键 command + ctrl + j

2017-12-21 14:16:00 2190

原创 CGAffineTransform 进行仿射变换

CGAffineTransform已知某个形状的点集合,需要在某个坐标系下面(view、layer)绘图,绘图之后需要对这个形状进行缩放(放大、缩小)、平移、旋转操作,这时就需要用到CGAffineTransform来进行仿射变换。CGAffineTransform 原理根据学过的矩阵变换知识,对于三维坐标系下的一个坐标点(x,y,z),可以使用一个三维矩阵来进行变化来任意操作(x,y,z)。 类

2017-12-07 13:09:24 1670

原创 【Swift】结构体和类

Swift中结构体和类有很多共同点 - 定义属性用于存储值 - 定义方法用于提供功能 - 定义下标操作使得可以通过下标语法来访问实例所包含的值 - 定义构造器用于生成初始化值 - 通过扩展以增加默认实现的功能 - 实现协议以提供某种标准功能与结构体相比,类还有如下的附加功能:- 继承允许一个类继承另一个类的特征- 类型转换允许在运行时检查和解释一个类实例的类型- 析构器允许一个类实例释

2017-12-04 19:00:14 297

原创 网络编程基础

七层模型七层模型(OSI,Open System Interconnection参考模型),是参考是国际标准化组织制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层抽象的模型,不仅包括一系列抽象的术语和概念,也包括具体的协议。 经典的描述如下:物理层(Physical Layer):建立、维护、断开物理连接。 数据链路层 (Link):逻辑连接、进行硬件地址寻址、差错校验等。 网络层

2017-11-18 09:54:36 282

原创 Siri 语音识别 Speech

在 2016 年的 WWDC 上,Apple 介绍了一个十分有用的语音识别 API,那就是 Speech 框架。Speech 框架能够帮助你快速的集成语音输入的功能到APP。 2016 年的 WWDC Speech 框架视频下面介绍一下简单的集成过程。 1 获取APP 授权信息 - 麦克风的使用 NSMicrophoneUsageDescription - 语音的识别 NSSpeech

2017-10-13 16:01:32 2103

原创 WKWebView 遇到的坑

wkwebView 设置Cookies使用WKWebView configoration 设置cookie 有时候可能不成功。 使用如下方法设置cookie会偶现设置不了的问题。NSString *cookie = [NSString stringWithFormat:@"document.cookie = 'session_id=%@'; document.cookie = 'CLIENT=Ap

2017-10-13 15:29:32 1358

原创 Charles 最新版(Charles 4.1.4 ) 破解注册

网上找的 Charles 4.1.4 最新版注册破解Charles 4.1.4 下载Charles v4.1.4 并安装 云盘下载: Mac OS X |Windows 64 bit |Windows 32 bit 官网下载: 前往官网下载 安装后先打开Charles一次(Windows版可以忽略此步骤) 下载破解文件 charles.jar 替换掉原文件夹里的charles.ja

2017-09-29 11:59:23 1875

原创 WKWebView 使用HTML 播放本地视频

有时候需要使用WKWebView 来播放视频-(instancetype)init { self = [super init]; if (self) { self.backgroundColor = [UIColor clearColor]; self.opaque = NO; NSURL *baseURL = [NSURL fileUR

2017-09-28 21:39:48 2954

原创 iOS 添加点击震动效果

Objective-C#import <AudioToolbox/AudioToolbox.h> ... AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);Swiftimport AudioToolbox.AudioServicesAudioServicesPlaySystemSound(kSystemSoundID_Vibrate)

2017-09-28 16:13:33 6387

原创 Dispatch Queue API 详解

Dispatch Queue“开发者要做的只是定义想要执行的任务,并追加到适当的Dispatch Queque中”,用代码表述如下: dispatch_async(queue, ^{ /* * 想要执行的任务Code */ });Dispatch Queue在上述代码 就是执行处理等待的队列,开发者可通过下面的代码创建想要执行的队列。

2017-09-14 17:04:02 2445

R语言编程艺术

R语言编程艺术

2017-07-10

HTTP协议(RFC2616)中文版

HTTP协议(RFC2616)中文版

2017-07-10

Dash 3.13 Mac 完美破解版

dash for mac 3.1.3 破解版 去除8秒广告 API 调试工具, 支持130种API特性.API文档浏览器和代码片段的管理工具 Mac平台的API文档浏览器和代码片段的管理工具,可以帮助你储存的代码片段,以及即时搜索和浏览文档几乎任何API文档 Dash is an API Documentation Browser and Code Snippet Manager. Dash stores snippets of code and instantly searches offline documentation sets for 130+ APIs (for a full list, see below). You can even generate your own docsets or request docsets to be included.

2015-12-02

quartz2D绘图代码(绘制曲线2)

Quartz 2D提供了CGContextAddCurveToPoint()和CGContextAddQuadCurveToPoint()两个函数向CGContextRef的当前路径上添加曲线,前者用于添加贝塞尔曲线,后者用于添加二次曲线。

2015-04-08

Quartz2D绘图代码(绘制曲线)

Quartz 2D提供了CGContextAddCurveToPoint()和CGContextAddQuadCurveToPoint()两个函数向CGContextRef的当前路径上添加曲线,前者用于添加贝塞尔曲线,后者用于添加二次曲线。

2015-04-08

quartz2D绘图代码(使用路径)

正如前面提到的,Quartz 2D只提供了绘制矩形、椭圆的函数,并没有直接提供绘制圆角矩形、三角形等几何图形的函数。为了绘制更复杂的图形,必须启用路径。

2015-04-08

Quartz2D绘图代码(阴影设置)

void CGContextSetShadow(CGContextRef context, CGSize offset, CGFloat blur):该函数设置阴影在X、Y方向上的偏移,并设置阴影的模糊程度。该函数的offset包含两个CGFloat值,第1个CGFloat值控制阴影在X方向的偏移,如果该值为正,则向右偏移,否则向左偏移;第2个CGFloat值控制阴影在Y方向的偏移,如果该值为正,则向下偏移,否则向上偏移。最后一个blur参数控制阴影的模糊程度,如果blur参数为1,表明阴影几乎不模糊,blur参数越大,阴影越模糊。

2015-04-08

Quartz2D绘图代码(绘制文本)

CGContextRef为绘制文字提供了如下函数。 CGAffineTransform CGContextGetTextMatrix(CGContextRef c):获取当前对文本执行变换的变换矩阵。 CGPoint CGContextGetTextPosition(CGContextRef c):获取该CGContextRef中当前绘制文本的位置。

2015-04-08

Quartz2D绘图代码(点线模式)

使用Quartz 2D绘制线段或边框时,默认总是使用实线。如果希望使用点线进行绘制,可调用CGContextRef的CGContextSetLineDash(CGContextRef c,CGFloat phase, const CGFloat lengths[],size_t count)函数进行设置,该函数的第3个参数是点线模式的关键

2015-04-08

NEURON Programming Tutorial

This tutorial is divided into 5 parts (A - E) and will take you, step by step, through the process of creating a complex simulation. In part A we start with the basics: how to create a single compartment neuron model with Hodgkin-Huxley conductances, how to run the simulator and how to display the simulation results. In part B we move into the more advanced topics of building multi-compartmental neurons and using different types of graphs to display the results. In part C we will replicate neurons using templates and connect these neurons together. In part D we will add new membrane mechanisms to the simulator and incorporate them in our neurons. Finally, in part E we will look at ways of saving data from the simulations and methods for increasing simulation speed.

2014-05-24

The Neuron Book

英文版NeuronBook.NEURON is an extensible nerve modelling and simulation program. It allows you to create complex nerve models by connecting multiple one-dimensional sections together to form arbitrary neuron morphologies, and allows you to insert multiple membrane properties into these sections (including channels, synapses, and ionic concentrations). The interface was designed to present the neural modeller with an intuitive environment and hide the details of the numerical methods used in the simulation.

2014-05-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除