月度归档:2014年12月

中国境内和跨境电商列表

电商

  1. www.taobao.com 淘宝 马云
  2. www.tmall.com 天猫 马云
  3. www.1688.com 阿里巴巴 马云
  4. www.eachnet.com 易趣网 创始人为 邵亦波谭海音
  5. www.jd.com 京东 刘强东
  6. www.dangdang.com 当当 李国庆
  7. www.youa.com 百度有啊 已经关闭了
  8. z.cn 亚马逊中国 最开始是雷军创办的卓越网 后被Jeff Bezos的Amazon收购,改名亚马逊
  9. www.suning.com 苏宁易购
  10. www.gome.com.cn 国美在线
  11. www.yhd.com 一号店 创始人 于刚
  12. www.coo8.com 库巴网 已经合并到国美在线 创始人 王治全
  13. www.yixun.com 易迅网 创始人 卜广齐
  14. www.vancl.com 凡客诚品 陈年
  15. www.vjia.com 凡客旗下V+ 陈年
  16. www.paipai.com 拍拍 马化腾
  17. www.vip.com 唯品会 沈亚
  18. www.jumei.com www.jumeiglobal.com 聚美优品 创始人 陈欧
  19. www.meilishuo.com 美丽说 徐易容
  20. www.mogujie.com 蘑菇街 陈琪
  21. www.5lux.com 第五大道奢侈品购物网

跨境/外贸电商

  1. www.dhgate.com 敦煌网 创始人 王树彤
  2. www.lightinthebox.com 兰亭集势 郭去疾 Allan Guo
  3. www.aliexpress.com 速卖通 马云
  4. www.milanoo.com 米兰 冯伟
  5. www.dinodirect.com 大龙 冯建辉
  6. www.focalprice.com focalprice 李国亮
  7. www.dx.com dealextreme 陈灵健

在Objc代码中引用Swift Class

最近写了几个Swift的Class,想要在Objc代码中用这几个Class,阅读Apple的《Use Swift with Cocoa and Objective-C》后,发现书中写到,”import the Xcode-generated header file for you swift code into any Objective-C .m file”,这也就是说,Xcode会为swift代码自动生成一个header文件,于是我到工程里找这个文件,居然没有找到。之后,尝试新建几个swift文件,也没有发现有新的h文件生成,这是怎么回事呢。

到stackoverflow上看问答,发现这个http://stackoverflow.com/questions/24062618/swift-to-objective-c-header-not-created-in-xcode-6
里面有一个回答提到:“An actual file in the project is not created ([ProductModuleName]-Swift.h). Cmd + Click on the import either generates it on-the-fly (and in-memory) so you can see how the linkage is done, or opens a file somewhere in some Xcode cache dir, but it’s not in the project dir.

You need to set Defines Module project prop (in target’s Build Settings) to Yes and if your module name has spaces or dashes – use _ in all imports of the [ProductModuleName]-Swift.h file.

You can import it in all .h and .m files where you use swift types or you can import it in the .pch.

So if my Module (project) is named “Test Project”, I would import it like this, in the .pch file of my project (just there):”
我随后在objc的m文件中添加了 #import “module_name-Swift.h”,再进行build,就发现build成功了,而这个module_name-swift.h文件并不存在于工程之中。

用gradle编译包含了nativelib(so文件)的Android工程

2014年7月,我进行了一个跨部门的项目,该项目包含iOS和Android版本,iOS版本很快就弄好了,但是Android版本却在配置管理上让我走了些弯路。

之前,我辅助开发的大多数Android项目都是用Maven管理的,这次却遇到了Gradle工程。
最开始遇到的问题是,我通过homebrew安装了1.12的gradle,结果Idea提示,请使用1.10版本的gradle,我想了想,算了,还是下一个1.10的吧。
接下来,倒是很顺利,编译通过,并且成功在手机和模拟器上运行,可是,恩,adb logcat中居然发现了UnsatisfiedLink!根据我的经验,这显然就是native lib没有打包进去的原因啊。把apk打开看,果然,所有的so文件都没有打包进去。
怎么办呢?到stackoverflow和gradle的网站上去查找,有各种的讨论,最后的解决方法却很简单。
工程中native lib的目录结构是
libs
 |- x86
 |- armeabi
 | – a.so
 | – b.so
最后我把libs/*.so和libs/x86/*.so libs/armeabi/*.so打包到一个叫做native.jar文件中,jar文件内部的目录结构如下
lib   // (注意,lib,不带s)
 |- x86
 |- armeabi
 | – a.so
 | – b.so
然后,把native.jar放到libs目录下。
最后,gradle编译,运行,模拟器和手机上一切正常了

iPhone 6和6 plus的App Icon and Image Resolution Guide

Launch Screen Image

Retina HD 5.5 Landscape : 2208×1242 px

Retina HD 4.7 Portrait: 750×1334 px

Retina HD 5.5 Portrait: 1242×2208 px

Other Image

iPhone 6 plus引入了@3x概念,之前的@2x即points(点数) * 2 =  pixels(像素数)

对应到@3x,即

@3x notation: if 1x = 60px, then 3x = 180px

iPhone 6的屏幕([UIScreen mainScreen])尺寸:

1. 375×667 points, 750×1134 pixels (@2x的效果),如果设置了Retina HD 4.7的Launch Image

2. 320×568 points,  640×1136 pixels (@2x的效果),如果未设置Retina HD 4.7的Launch Image

iPhone 6 Plus的屏幕([UIScreen mainScreen])尺寸:

1. 414×736 points, 1242×2208 pixels(@3x的效果),如果设置了Retina HD 5.5的Launch Image

2. 320×568 points, 960×1704 pixels (@3x的效果),如果未设置Retina HD 5.5的Launch Image

注:6 Plus实际的液晶屏分辨率为1080×1920,而app对应的分辨率是1242×2208,所以会有downscale sampling

此外,在Xcode 6中,Launch Screen也可以是一个xib,可以设置Launch Screen File为一个xib而不是设置一个Launch Image

回顾那些已经消失了,但是我以前常用的搜索引擎

今天,谷哥(Google)是全球搜索引擎的霸主,在中国,百度一枝独秀,360异军突起,凭借so.com打下不少市场份额。然而,回想十多年前,谷哥还是小的创业公司,百度还在纠结是否要转型做独立的搜索,360的周鸿祎还没开始做3721网络实名呢。当年,市场的主流还是门户网站,网易,搜狐,新浪都是笔者常常上的网站,也有不少公司进行了搜索引擎的尝试,他们今天多半已经被世人所忘记。在此,笔者将回顾那些死去的搜索网站。

大概是1998年的时候,我常常用www.goyoyo.com.cn,悠游搜索,现在,这个搜索已经几乎完全被世人所忘记了,大家或许只能从web.archive.org或者图书馆的过刊(如1997年的情报检索《网络中文信息搜索工具——悠游(GoYoYo)》和1998年40期计算机世界周刊的《搜索引擎大战 “悠游”能否胜出?》 )看到她的样子。根据web.archive.org的记录,悠游2003年关闭了。
Altavista是我从接触网络开始就经常使用的另外一个搜索引擎,他被转手几次后,到了雅虎手中,最后,雅虎关闭了Altavista。这似乎又应验了雅虎是xx杀手的规律。
Excite:现在还存在,不过不知道国内还有谁知道呢。
Openfind:当年我曾经用过一下,其实,或许是openfind开创了google的搜索网页风格,即整个页面只有搜索框和按钮。openfind创立于1998年,我用openfind的时候google还没人知道呢。可惜的是,openfind已经转型了,网站还在,搜索早已消失。
最后说一句,2006年李彦宏预言谷歌不到5年就要退出中国(《大众商务》 2006年12期 搜索:明天谁坐庄?),结果2010年就发生了谷歌事件,www.google.cn指向了google.com.hk,谷歌真的退出中国了。

iOS应用的分发渠道

大部分人都知道,苹果的App Store几乎是唯一的应用发布渠道,而android由于开放的特性以及特殊的中国国情,有着众多的分发渠道,如Google Play,豌豆荚,安智市场等众多的应用市场。

然而,随着iOS生态系统的发展,应用的分发渠道也越来越多样化了。

首先,很多读者会想到,其实除了App Store以外,还有一个越狱的市场,Cydia,上面很多的越狱的应用都是要收费的,单价19.99美元的也不在少数。
此外,苹果也允许各大公司内部分发自己的应用,即通过iOS Developer Enterprise Program进行编译、打包和分发,这样就不需要通过App Store也可以分发给成千上万的iOS设备。当然,普通的iOS Developer也可以用Ad Hoc方式进行分发,只不过最多可以安装到100台iOS设备下罢了。
现在市场上还有一个快用助手,号称不用越狱也能装软件,其实原理也不复杂,就是先把正版的应用的ipa包下下来,然后把签名去掉,再用iOS Developer Enterprise Program对ipa重新签名,利用Enterprise Program不限制安装设备的特性实现“不用越狱也能装软件”。法律上,这本身就是一种盗版行为。
还有,随着BYOD(Bring Your Own Device,即自带设备上班)的流行,很多安全厂商都推出了企业的私有App Store的解决方案,例如,笔者的老东家赛门铁克就推出了Symantec App Center,员工安装公司认证的移动应用,这是Mobile Device Management解决方案的一部分。
我们可以看到,iOS应用的分发渠道其实也是不少的,只不过对于广大消费者来说,最为熟悉的还是App Store了。

Intel HAXM导致x86的android emulator模拟器运行在OSX 10.9 mavericks上,mac就死机

2013年12月的时候,当时还用的OS X 10.9,用Mac开发android的时候遇到了一个烦人的问题,装上了HAXM,intel hardware accelerated execution manager以后,一运行android emulator x86,mac就死机了,无论按键盘还是移动鼠标,mac都不反应,只能长按电源键关机再开机。

刚开始还以为是意外,没想到重新启动mac后,再运行一次emulator,我的mac还是死机了。反复几次都如此。
最后,终于找到了
http://software.intel.com/forums/topic/477793
里面提到
 The hotfix is available for download! Please go to http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/ . There is a hotfix for Microsoft Windows* 8.1 and one for OS X 10.9. 
看来,原来是HAXM还不支持太新的操作系统的缘故啊,Windows 8.1和OSX 10.9都是这个原因。
我装上了这个hot fix以后,x86的emulator终于正常了,osx也不会死机了。