Posts Tagged "Python"

使用Python开发iOS程序

对,你没有看错,就是使用Python开发iOS程序! 我们见过使用JS、Lua、Ruby开发iOS程序的,但是基本没有见过使用Python开发iOS程序(软件)的,这是为什么?关于这个问题,我后面会回答。 那么,怎么用Python开发iOS程序呢?其实我们最主要解决的就是下面几件事情: 在iOS App中安装Python解释器。 搭建Python和objc通信的桥梁。 如何配置工程并开发。 如果不使用UIKit这些,那么就要使用OpenGL ES这些了,这种方式,主要是用于开发游戏的,我们这里不涉及这些。 当然,以下所有内容都是在一台已经安装了Xcode的Mac上进行的。 在iOS App中安装Python解释器 Python-iOS-support pybee开源了一个可以嵌入到iOS工程中的Python编译脚本,具体位置在这: https://github.com/pybee/Python-iOS-support 默认是使用Python 3.4.2,编译x86_64、i386、ARMv7、ARMv7s、ARM64共5个版本,然后打成一个臃肿包,可选framework或者.a。…

开发NB-App中使用的脚本们

在开发NB-App的过程中,为了方便,写了一些小脚本,这里一一列举一下。 脚本地址:https://github.com/Forkong/app-scripts jsonserver脚本 在后端开发人员只给出接口但并未开发完全的时候,这个脚本会充当返回静态json的角色。 基于web.py框架实现,web.py是天才Aaron Swartz开发的一款小型web框架,对于我们来说,入门简单,功能够用。 中文抽离脚本 - 多语言功能 NB-App在2.0版本时期开始支持英文,主要原因是我们的App是给途牛的供应商使用的,而从统计工具上可以看出,我们现在的供应商已经遍及亚洲、欧洲、非洲、北美洲、南美洲、大洋洲,30+的国家和地区,英文版本的支持还是很有需求的。 但是前期在开发过程中并没有料到这种需求,所以并没有留口,中文内容并未抽离,所以我们写了一个抽离脚本。 抽离脚本比较简单,这就不贴出来了。 excel->strings脚本 在产品翻译好我们要求的词条之后,产品会把这些汇总在excel上,类似于下面: 而我们想要的是这样的: 这种工作如果人工来的话,…

MongoDB数据空洞解决方法

本文链接:http://ifujun.com/mongodbshu-ju-kong-dong-jie-jue-fang-fa/ 背景 某一段时间,来了点兴趣,看了点Mongodb的书,所以写下了这篇博客,也算是一点总结吧。 很多时候,我们项目上线时间比较久了,我们积累了一些无用的数据,而由于MongoDB顺序写的原因,在我们删除部分无用数据后,它的storageSize和fileSize并不会变小,这就造成了大量的数据空洞。 这些数据空洞除了占用磁盘之外,也会加载到内存中,这会降低内存效率。 所以这个时候,我们一般要对这些数据空洞进行处理,一般有下面几种处理方式。 一种是使用MongoDB自带的compact命令: db.collectionName.runCommand(“compact”) 这种方式是collection级别的压缩,只能去除collection内的碎片,但是MongoDB的数据分配是DB级别的,效果并不一定多好,其次呢,这个压缩是线上压缩,肯定会影响服务的,磁盘IO会比较高,这么干容易出事。 还有一种方式,也就是我们下面要详细说明的方式,过程大概类似于下面: 先预热从库 提升从库为主库,原主库降为从库 移除原主库的DB数据,直接remove掉 重新同步 完成后,预热,然后将此库提升为主库,…

infer install

infer是facebook开源的一个代码纠错工具。 infer可以智能纠错Android、iOS、java工程等,目前支持Mac和Linux系统。 infer的安装可以选择下载压缩文件,然后直接安装,操作如下,这里以发文时的最新版0.1.1版本为例。 目前infer已经更新,请大家去github上下载最新版本 直接安装 下载压缩文件 Mac OS X: https://github.com/facebook/infer/releases/download/v0.1.1/infer-osx-v0.1.1.tar.xz Linux: https://github.com/facebook/infer/releases/download/v0.1.1/infer-linux64-v0.1.1.tar.xz 安装infer…

Python Web项目部署到SAE遇到的问题及解决

本地调试无误,部署SAE之后发生如下问题 无法保存session 原因:SAE禁止IO写操作,代码目录是不能写入,这样做的原因是,SAE是分布的,每次可能到不同的服务器上面,并且SAE的代码目录空间是有限的,不允许这样操作。 解决:使用数据库保存session 在数据库中创建sessions表: create table sessions ( session_id char(128) UNIQUE NOT NULL, atime timestamp NOT NULL default current_timestamp, data text); 之后将 store = web.session.DiskStore('sessions') 修改为 store = web.session.DBStore(db, 'sessions') 无法保存图片(文件) 原因:同上…

iOS批量编译输出渠道包

iOS批量编译输出渠道包 背景 最近朋友公司的app渠道变多了,每个渠道包基本没有太多差异,只要更换一下图片和渠道号就行。 如果手动打的话,实在太繁琐了,所以,我就帮他写了个Python脚本 (主要是我Python比较水,找机会练手) 工程目录结构 工程目录结构主要类似于下面: . ├── ArcTest │   ├── ArcTest │   ├── ArcTest.xcodeproj │   ├── ArcTestTests │   └── build ├── IPA │   └── PP ├── MultiChannels │   ├── 91 │   ├── AppStore │   ├── HAIMA │   ├── HULU │   ├── KuaiYong │   ├── PP…