[返回] [最新] [最热门] [最高评价]

Python 3 的环境下如何正确地使用 Fabric

注:标题中「Fabric」指的是 Fabric( http://www.fabfile.org ),一个 Python 社区常用的远程/本地自动化执行工具。

讲 Fabric 之前,先讲讲我的 Python 开发环境。

很久以前,那会还在用 Python 2,Fabric 也是 Python 2 环境下的,当时我基于 Fabric 写一些部署和自动化脚本,很方便,也没有什么问题;

去年,我把
...

图拉鼎 2018-05-21 13:36 | 查看: 164

Swift 下用 lazy 让方法只被调用一次

在写 Swift 的过程中,我们会经常使用 lazy 来延迟一个对象的初始化。今天我发现了一个关于 lazy 的新的用法,也就用 lazy 来达到使「方法」只被调用一次,而不仅限于用在「对象」上。

lazy 常常用在一个对象需要延迟加载、或者初始化它的时候,要求 self 已经初始化成功的情况,比如:

lazy var shareItem: UIBarButtonItem = UIBarBut
...

图拉鼎 2018-05-10 13:22 | 查看: 264

Swift 的 Protocol Composition(协议组合) 的一种用法

最近在项目中用到了 Swift 的 Protocol Composition(协议组合),觉得这真是一个不错的设计,于是来简单的聊一聊我是怎么用它的。

Protocol Composition,中文叫「协议组合」或「协议合成」,简单地来说就是把不同的协议合起来以使目标对象限定在满足全部协议的一种方式。它的用法也蛮简单的,官方文档的这个例子可以很明了地学会怎么使用它:

一个叫 Named 的协议
...

图拉鼎 2018-05-06 20:06 | 查看: 329

关于在 iOS Extension 里使用「不安全的 API」

iOS 的 Extension 相当于一个权限受限的 App,很多 API 是无法使用的。如果你在 Extension 里用了这类 API、或者用了使用了这类 API 的库,那么就会得到这样的警告:

如果你在这个 Extension 里主动调用了相关 API,那么你一定要正视这个警告,并且把相关 API 的调用移除(比如和 UIApplication 相关的),毕竟它们会不工作。

但是如果你像
...

图拉鼎 2018-05-06 15:26 | 查看: 266

使 Visual Studio Code 的打开文件始终在新 Tab

最近会更新一系列和 Visual Studio Code 有关的文章,从小小的自定义设置到开发环境的设计都会涉及。今天这篇是「使打开文件始终在新 Tab」。

在进入这个话题之前,首先我们要了解 Visual Studio Code 有几种打开文件的方式,对我来说,常见的有两种:

从侧边的资源管理器打开;

使用快捷键(CMD+P)搜索文件名再打开。

无论哪种方式,Visual Studio
...

图拉鼎 2018-04-16 10:13 | 查看: 287

Ubuntu SSH 环境下如何自定义 PATH 等变量

今天在设置一台 Server 的时候,又因为一个老问题卡了一下。解决后想:当时要是写了文章就好了…于是为了不发生第三次这样的事情,我写了这篇文章。

这个问题就是 SSH 环境下的 Path 环境变量。在 Server 上,为了使用最新版本的 Python,我是使用 pyenv 在自己的 HOME 安装了一个 Python 3.6.5。pyenv 是用于管理 Python 版本的一个组件,非常好用
...

图拉鼎 2018-04-15 21:33 | 查看: 330

我的 Django + Visual Studio Code 的 Pylint 设置

最近又开始使用起 Visual Studio Code 写 Python/Django 的项目,发现不少地方可以配置,而以前常常忽略了这些,只是简单的安装了相关插件了事。今天先讲讲 Pylint 的相关配置。

使用 Pylint 可以对代码进行最基本的检查,把明显的问题消灭在编写阶段,而不是运行时才看出来。根据《Linting Python in VS Code》,VS Code 已经默认有比较
...

图拉鼎 2018-04-14 21:46 | 查看: 404

实现一个完美的自定义 Share Extension 呈现动画

在 iOS App 里,如果你实现过一个 Share Extension,可能会使用系统自带的 SLComposeServiceViewController 来完成分享动作。不过这个东西自定义性比较差,而且无法汇报错误、展现进度等待,这时会使用自定义 ViewController。

不过在使用自定义 ViewController 时,你又会发现在呈现的动画效果又没有系统的自然,很生硬(参考微信
...

图拉鼎 2018-04-13 15:30 | 查看: 331

实践 Django App Model 和数据库的迁移

良好的重构是项目可持续的一个重要因素。最近开始花时间重构「奇点」的网站部分,其中一个任务就是把 Django 项目的 Model 以及数据库进行迁移和合并,今天实践了一把,很成功,写文章纪录一下。

什么是「App Model 迁移」,简单地说,一个 Django 项目可能存在不同的 App,随着项目的发展,或者早先错误的规划,需要重新调整一下项目结构,比如把 App 们合并起来,把 App B
...

图拉鼎 2018-04-12 13:09 | 查看: 480

加快 Carthage Copy Framework 的速度

在 iOS 项目中,如果你使用 Carthage 来管理第三方库,那么一定知道在编译并运行 App 的时候,会有一个阶段叫:Carthage Copy Frameworks。这个阶段通过跑一个脚本的形式把所有依赖的第三方库都复制到 App 的目录里。

这个阶段通常会花 1~x 秒不等,这取决于你的 App 依赖的第三方库数量。默认情况下,每次你 Build & Run 的时候,都会进行一
...

图拉鼎 2018-04-11 19:06 | 查看: 260

解决「KeychainAccess.framework: bundle format is ambiguous」的问题

为了提升生产力,最近我租来了一台 MacBook Pro MJLT2,于是花了一点点时间重新设置了自己的生产环境。大多数东西都很快设置成功了,但是在构建自己的一个私用 Mac App 的时候却出了问题,Xcode 给的出错信息是:

KeychainAccess.framework: bundle format is ambiguous (could be app or framework)


...

图拉鼎 2018-04-11 13:57 | 查看: 284

一则 Vue 项目的图片 lazyload 解决方案

刚刚花了一点点时间解决了一个 Vue 项目的图片 lazyload 问题,简单记录下解决过程。

先介绍一下这个项目,它是几个月前由两个人做的一个前后端 Web 项目,我当时负责的是后端+部署,并在之后接手了前端维护工作。这个项目是一个面向 Desktop 和 Mobile 的响应式设计的站点,是一个 Card Collection 类的设计,每个 Card 都有图片和文字。

当时前端的制作没有
...

图拉鼎 2018-04-08 16:46 | 查看: 334

...更多...