Forrest Lam

不会弹吉他的厨师不是一个合格的iOS开发者

defer in C++/Objc

在OC和C++中玩一下defer

写过swift的同学应该都知道defer这个关键字,可以让我们在函数return之前执行指定的代码,这对于有多个提前return而忘记释放资源的函数来说,简直不要太方便了,然而对于swift的前辈Objective-C或C++来说,苹果并没有帮我们定义,因此本文总结一下如何在C++和Objective-C中实现defer。 defer的作用正如导语所言,defer关键字可以帮我们在函数返回之......

std::function与std::bind使用总结

C++11下函数指针的继承者

C++中函数指针的用途非常广泛,例如回调函数,接口类的设计等,但函数指针始终不太灵活,它只能指向全局或静态函数,对于类成员函数、lambda表达式或其他可调用对象就无能为力了,因此,C++11推出了std::function与std::bind这两件大杀器。 std::function vs 函数指针C++函数指针相信大家用的很多了,用法最广泛的应该就是先定义函数指针的类型,然后在声明一个函......

初见C++11智能指针

智能指针真的太好用了吧

C++指针的内存管理相信是大部分C++入门程序员的梦魇,受到Boost的启发,C++11标准推出了智能指针,让我们从指针的内存管理中释放出来,几乎消灭所有new和delete。既然智能指针如此强大,今天我们来一窥智能指针的原理以及在多线程操作中需要注意的细节。 智能指针的由来在远古时代,C++发明了指针这把双刃剑,既可以让程序员精确地控制堆上每一块内存,也让程序更容易发生crash,大大增加......

当JavaScriptCore遇上多线程

JSCore也并非那么完美

JavaScriptCore是苹果在开源的WebKit中的一部分,官方文档中说它是线程安全的,然而是否我们就可以完全依赖它了呢,我们在涉及多线程操作JavaScript时还需要哪些地方? JSContext与JSVirtualMachineJSContext是native代码执行JS代码的上下文,native可以向JSContext中注入方法和属性以供JS调用,相当于在JS的window对象......

一文看懂CNN的卷积与转置卷积

来自iOS开发者对深度学习的仰望

转置卷积层(Transpose Convolution Layer)又称反卷积层或分数卷积层,在最近提出的卷积神经网络中越来越常见了,特别是在对抗生成神经网络(GAN)中,生成器网络中上采样部分就出现了转置卷积层,用于恢复减少的维数。那么,转置卷积层和正卷积层的关系和区别是什么呢,转置卷积层实现过程又是什么样的呢,笔者根据最近的预研项目总结出本文。 卷积层和全连接层在CNN提出之前,我们所提......

打造第一个自训练模型的Core ML应用

苹果爸爸的新玩具

Core ML是iOS11的新特性,赋予iOS App更多AI的能力,例如垃圾短信识别、Siri、人脸识别、场景识别等等,过去集成在iOS系统的AI能力终于通过Core ML开放给第三方开发者了。随后苹果在今年WWDC发布了Create ML,这个苹果自家人工智能模型训练平台,苹果人工智能生态系统正逐渐形成,今天我们就借着一个简单的Core ML应用简单窥探一下。 介绍Core ML 是iO......

以太坊DApp系列(二)---从入门到出家

这次我们玩真的

以太坊自2013年V神提出后,被无数人赋予美好的愿景,甚至被称为区块链2.0,其代币发行量更是达到了全球第二,仅次于比特币,而其带来的智能合约概念颠覆了人们对区块链的理解,让区块链不仅仅是个账本,更像一个操作系统,赋予了每个节点“智能”。经过差不多半年来断断续续的学习、理解和沉淀,笔者今天想揭开以太坊DApp神秘的面纱,看看以太坊是猴还是猿。 DApp介绍DApp(decentralized......

以太坊DApp开发初探

炒币这么火,咱们来玩玩里面的技术吧

关于“以太猫”的流行,相信不少人都有所耳闻,甚至入手养过几只。从游戏性来说,其本质就是一个简单的收集交换类游戏,然鹅,是区块链赋予了它魅力,让用户每一只猫永远不会消失、不被篡改,更重要的是可以炒(滑稽脸),于是今天借此机会一探以太坊应用DApp的开发过程以及开发中遇到的坑。 以太坊DApp介绍以太坊是一个区块链公有链平台,和比特币类似,以太坊也有其代币–以太币,可在挖矿、交易中获得,然而,说......