Farlanki

Farlanki

Learn OpenGL第一章学习体会
前言今天是超强台风‘山竹’袭来的日子,我便安心的宅在家,看完了Learn OpenGL的第一章教程。在此写下一点理解。 环境搭建依照教程,我使用了 GLAD + GLFW,参考的是这篇文章.不同的是,我并没有将 GLAD 和 GLFW 库加入到系统的头文件目录中,而是直接拖进了工程.编译时,会出现头文件找不到的错误,这时候需要修改头文件的名称. VBOVBO 的全称是 vertex buffer object,使用 VBO 可以将顶点信息存储在 GPU 上. VBO 的生成方式如下: 1234567unsigned int VBO;//生成一个缓冲区名称glGenBuffers(1, &...
迁移一波博客
之前的个人博客服务提供商貌似处于一种不太稳定的状态,于是博客的迁移也变成了一项必须完成的事项了。为了简单起见,选择了使用coding来托管Hexo博客框架,很方便就完成了博客的迁移。来了深圳已经一年多了,因为工作太忙的缘故,一直没有更新次博客。看到同学的Github和博客经营得有声有色,不安分的心又躁动了起来。希望能重新开始这个博客的更新吧。 = 、=   
Unix下关于套接字的一些细节
socket方法1int socket(int protofamily, int type, int protocol); sockfd是描述符。 socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。 返回值: 套接字描述符 正如可以给fopen的传入不同参数值,以打开不同的文件。创建socket的时候,也可以指定不同的参数创建不同的...
使用Electron和JavaScript构建桌面应用
前言  好久没写博客了。最近我一直在努力扩充自己的词汇量,想起房间里有一个一直闲置的显示器和树莓派,就萌生了将那个显示器作为一个单词的展示窗口的想法。我的打算是开发一个桌面应用。因为该应用需要运行在安装了linux的树莓派上,而我之前并没有学习过linux的GUI编程,所以我选择使用Electron这个跨平台的框架来构建这个桌面应用。 关于ElectronElectron(最初名为Atom Shell)是GitHub开发一个的开源框架。它允许使用Node.js(作为后端)和Chromium(作为前端)完成桌面GUI应用程序的开发。Electron现被已多个开源Web应用程序用于前端与后端...
iOS转场:神奇效果
#前言iOS中可以实现自定义效果的转场动画,iOS 7为我们带来了新的转场动画API。下面将来我们看看具体怎么使用这些新的API实现自定义转场效果,最后本文章会介绍一种类似keynote的神奇效果的转场动画的实现方法。可以用到转场动画的地方一般有以下这几个: 模态view的展示与消失时: 12open func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Swift.Void)? = nil)open func dismiss(animat...
总结一下让动画保持流畅的几个方法
前言动画的流畅性,是让iPhone俘虏广大果粉的心的一个重要的因素.但是我们在开发iOS APP的时候,却会经常遇到各种动画不能流畅表现的情况.下面将会介绍一些能让APP动画重回流畅的方法. CPU和GPU,哪一块才是短板?为了更好的实现动画的优化,我们首先需要了解一段动画在iOS中呈现需要经过哪些步骤. 从苹果在WWDC 2012中展示的可以看出,一段动画从创建到展示需要经过三个主要的过程: 创建动画并且更新动画层级 准备并且提交动画 渲染 在这三个过程中,第一第二个过程是在CPU中被处理的,而第三个过程:渲染,则是由GPU所负责.所以,当我们需要优化动画的流畅性的时候,我们首先需...
漫谈Swift面向协议编程
前言面向对象编程(OOP)自从在很久之前就已经成为了主流,相信每一个软件工程师都曾经或者正在使用着OOP编程.诚然,OOP为我们提供了很多很好的特性,例如封装,多态和继承等,让代码复用率更高,程序的解耦更加容易实现.但是,在随着软件的功能越来越多,需求越来越复杂,OOP的一些缺点已经被暴露了出来. 破立OOP缺点一:结构复杂很明显,OOP已经流行了很长的一段时间.在很多情况下,每当我们要实现一个新的需求,我们总会想到创建一个或几个新的类.这些类或许继承了之前已经存在的类,或者把之前存在的一些类的对象Wrap起来,从而使用它们的功能.然而这样做,很多情况下我们的类会继承到一些我们并用不到的...
iOS逆向工程之微信防撤回
前言购买了《iOS应用逆向工程》这本书后,我只是抱着书本看了几天,但是却缺少实战经验,书本上的内容也已经忘记了差不多.最近我浏览了一些关于iOS逆向工程的技术博客,心里萌生了练练手的想法.所以就选择了微信防撤回这个题目,开始这次逆向工程的一次练手小项目.本篇博客仅作记录之用. 准备在这里先介绍一下iOS逆向工程中用到的一些工具. Mac端 iFunBox : Mac端上的iPhone文件管理工具. Hopper Disassembler : Mac端上的反汇编工具. USBmuxd : Mac端上的端口转发工具. Theos : 越狱开发工具包. class-dump : 用于取得应用的...
AsyncDisplayKit(一)初识
AsyncDisplayKit介绍AsyncDisplayKit的是Facebbook为了解决其App在某些机型上的性能问题而写的一个库。这个库使用ASNode把UIView再进行了封装,最大限度的保留开发者对于使用UIView的习惯。在UIView之上的ASNode是线程安全的,即使在后台线程使用ASNode也毫无问题。这篇文章分析的主要是ASNode的绘制流程。 关于CALayer的绘制时机在分析ASNode的绘制流程之前,我们先来了解一下一些关于CALayer的知识。当一个CALayer需要更新的时候,系统会先将其标记,在下一个更新周期调用其-display()方法对其进行绘制。A...
Strong-Weak Dance
简述在我们使用block的时候,我们会使用__weak关键字来避免循环引用.例如 12345__weak MyViewController *wself = self; self.completionHandler = ^ { //do something in block using wself //do something in block using wself }; 但是这种方法会遇到一个问题,就是当执行block中的操作时,self已经被释放了,这就会导致wself为nil,在某些情况下,这会导致应用崩溃.有人会说,如果我们加入一个判...
avatar
Farlanki
多头一个
FRIENDS
JingWei