技术

技术

搜狐API之IP地址查询

因为要做天气预报这件事,发现搜狐好像没有一个实时的判断浏览器所在城市的方法——已有的都是把判断结果放在某定期失效的cookie里,这样可以减少服务器压力。

仔细一想就觉得这玩意其实对资源消耗没有那么大,于是就要求整一个实时的。。。。。然后就觉得该接口也可以给外部开发者调用:http://pv.sohu.com/cityjson

这个接口是给浏览器JS来调用的,缺省返回 gbk 编码的数据;如果你的应用是 UTF-8,加一个参数 http://pv.sohu.com/cityjson?ie=utf-8

目前这个接口只是搜狐在用,所以参数很简单,返回的那个 cid 还很魔幻;如果觉得这个接口确实有帮助,可以把需求发给俺们来继续改进之

未来也许搜狐会提供给互联网开发者更多的接口和服务。

BTW:写这篇blog之前突然想到,中国互联网应该有类似的接口了吧,一查之下果然 QQ 有一个 http://fw.qq.com/ipaddress,但好像不是官方支持,而且它只有 gbk,哇咔咔

被空降了...以及本周一些零星想法

上周三刚刚通过气,本周三,就被 KCN 正式空投到一个50多人的团队里去,然后在黑暗迷茫疑惑惶恐摸索中试探了三天的路...

记得去年第一次听到这个大部门名字的时候,我就暗乐:"媒体产品与媒体技术中心,据某法则说部门名字的长度和其官僚程度成正比,哈哈哈。。。" 看来人心不能太恶毒,这报应来得太快了

====================================

培养接班人是经理工作内容之一,越是高级的经理越应该这么作,应该列入 PM 考核里

搜狐技术人才的1-4级别 Title 是这样:
1级:助理工程师
2级:工程师
3级:高级工程师/助理主管
4级:资深工程师/主管
所谓"主管"已经是往管理路线上靠了,其实就是一线研发经理

如果有技术升迁路线,偶觉得分"工程"和"技术"接下来可以叫:
5级:专家/助理研究员
6级:高级专家/研究员
7级:架构师/高级研究员
8级:高级架构师/资深研究员
9级:大神
如果没有技术升迁路线,技术同志最终肯定会升到一个无法胜任的管理位置上;然后苟且偷生或背着骂声离开。成专家易,当经理难。

当然,高级别技术要能被低级经理,甚至非技术型经理指挥动才成,这个就看其职业精神了

深刻体会到矩阵管理和项目经理的必要性,不过很长时期内都无法这么动,连想都不能想

媒体技术,MT,好悲剧的缩写

频道垂直化/编辑运营化

团队的总体技术参照目标是Yahoo,hoho

总之这个坑好大,爬出来的难度我觉得和登珠峰差不多了;或许没那么难,但也得有7000多米吧。

关于"运营"

"运营"是一个让人迷惑的概念,在我的环境里,每当有人提起这个词,我都要联系一下上下文,才知道指的到底是啥?

1. 网络和系统运营。其实"运维"是一个挺好的缩写了,运行维护,简单明了。说运营也不是不可以,但是前面最好还是加上 Network or System,否则很容易和下面的概念混淆。

2. 产品运营。大多数情况下,我们说运营就是这个意思。所谓“好产品是运营出来的”。类似的句式比如“新闻最终页是印刷出来的”,从印刷到运营,中间隔着好大一个坑,很多人会倒在里面。

3. 业务运营。Chief Operating Officer,最后从 Wikipedia 上摘点东西出来:...development, design, operation, and improvement of the systems that create and deliver the firm's products/services...ensuring that business operations are efficient and effective and that proper management of resources, distribution of goods and services to customers, and analysis of queue systems is done.

好吧,从上面的概念来看,任何系统性的工作都可以称之为"运营"了,不管称呼是什么,科学&发展是真理。

一个Captcha的思路

Captcha——或者很山寨的说——图形验证码,是一个让人又爱又恨的技术。一方面它给正常用户增加了额外的负担,降低可用性;另一方面没有它,你一定迟早碰到 spam 的问题。

我想大家都在致力于提高 Captcha 的可用性,即设计出"人"可以轻松识别,但是对机器(ANN/SVM)却很困难的技术。每当看到Google那样扭曲到变态的图标,正常用户都会感到愤怒。

我以前看到一个比较有意思的方法是,让用户把一副图片旋转成正确的角度:比如一个凳子的图片,人类很轻松就知道应该四脚朝下,椅背方向朝上;但机器恐怕比较难做到这点。

后来有一天我想到一个主意。人类的眼球有一个特性,就是只要切换速度足够快,那么可以感觉到一幅幅静止的图片动起来;甚至类似隔行扫描(A场、B场)那种技术,人类神经可以自动把一幅幅残缺的图片拼凑成整张。电视正是这么干的:

我的想法是借助动态gif,每一帧都有大量噪点(电视这个例子上是每一帧都有50%的噪点?),但噪点位置帧和帧之间都不一致,组合起来后或许能被人类自动忽略,而关注在我们希望展示的内容上。因此还特意研究了一下动态gif的技术(http://www.dup2.org/node/1250)。但最后没有得到一个好结果,就中止研究了。不过有了这样一个结论:一定要让背景(内容)和前景(噪声)同时运动,否则识别难度没有本质提高。

本来这个属于失败的研究,不打算blog的,可是看到了一个新出来的 Captcha 服务:NuCaptcha,也是同时有动态背景和动态前景。那么这个思路可能还是值得分享一下

关于诺基亚的自问自答

Q: 为什么诺基亚要自己建立平台,从设备生产,到操作系统以及云服务,还有商店?
A: 因为这是价值链的最高端,而且诺基亚有足够的实力去完成目标。想想不仅仅是微软,连三星都要搞 bada;诺基亚还没有潦倒到MOT那样只能靠Android翻身的状态。

Q: 为什么是 MeeGo?
A: 我觉得是这样的,苹果主动扩大战火——把它的 iOS 扩展到 iPad,甚至是 iMac 上来,未来说不定还有 iBook。Symbian 或许在电话上足够优秀,但在新领域肯定不靠谱,还是得 Linux。所以先是 N900/Maemo,然后是和英特尔合作搞个也能通吃 x86 的 MeeGo。(惠普收购 WebOS 也许想的是同样的事)

Q: 为什么搞 MeeGo 和 Symbian 两个平台?
A: 何止是两个,还有 S40/S30。和苹果的目标是生产完美手机不同,诺基亚的目标是为所有人生产手机。现在很明显了,N系/MeeGo 定位是 iPhone/iOS 的竞争者;Symbian 面向 global mass market。另外,微软也同时维持 WP7 和 WM6.5

Q: 为什么 N8 仍然在用 ARM11,而不是 Cortex-A8 处理器?
A: 答案见上,Symbian 的定位如此,接下来会有其他更低端的 Symbian^3 设备问世,其对手包括中兴华为最近的千元Android等;N8现在是树立一个样板,以后的机型开发应该都在N8方案的基础上做,好比5800之于S60v5。2009 年就发布的 N900 反而有一颗 A8 的芯,那个才是旗舰机型的模样。

Q: 为什么是 QT?
A: 这是为了简化开发者在两个平台之间移植应用的难度。QT 和 WRT 是诺基亚双平台战略的基石

总之,诺基亚在下一盘很大的棋(Apple/Google/MS都是如此),同时开发Symbian^3,Symbian^4,MeeGo三个系统。祝它好运

最后再转一个从别处看来的FAQ:

- Will the N8 be able to run all the apps and games that are already made for S60 5th?

YES! Symbian^3 is backwards compatible while also having the new native Qt system integrated into the OS. So, essentially you can say the Symbian^3 is a hybrid since it has both the S60/Avkon system AS WELL AS the new Qt system.

- Will the N8 be able to run all the Java apps written for S60 5th J2ME?

YES! It will run just fine, and probably a lot faster than on S60 5th devices.

- Will apps written in Qt for the N8 / Symbian^3 run on future Symbian^4 devices?

YES! That's one of cardinal ideas behind Qt, the aim is to throw out S60/Avkon in Symbian^4.

- Will Qt apps also run on older S60 5th devices?

YES! With an automatic download of the Qt libraries through a smart installer, this will work also. The user shouldn't notice anything.

- Will developers writing Qt apps for the N8 be able to publish them for Maemo/Meego devices?

YES! The Qt SDK supports building the SAME source-code for both platforms. Qt works in exactly the same way across Maemo/Meego, Symbian^3 and Symbian^4. Even games written in Qt and OpenGL ES can be build and hence work on those platforms.

- Will Symbian^4 be able to run old native S60 apps?

No, it will not. That's why Symbian^3 is first - to bridge the app support going from the old systems to the new unified Qt system.

Android 连接SSID隐藏网络以及 LEAP 认证的方法

题目很拗口,其实就是在搜狐怎么连入'sohu-office' wifi

话说 Android 虽然从 1.6 就开始支持 802.1x 认证,但是配置 UI 上却只有很少的几项,如果想要做 LEAP 认证就必须取得 root 权限后修改配置文件。

先说说解题思路,因为 android 连接 wifi 和现代 Linux Desktop 一样,都是 wpa_supplicant,而且版本差异应该不会太大,所以我想拿着 Ubuntu 上的配置到 Android 上就应该能用!不管是任何模式的认证,只要你的 Linux 能接入 wifi,Android 也差不多应该能行。

在 Ubuntu 下是 daemon.log,grep 一下 "Config:" 就能看到 supplicant 的配置了。把 root 后 Android 的配置文件(路径在 /data/misc/wifi/ 下面)用 adb pull 下来,然后加入如下内容

ap_scan=2
network={
    ssid="sohu-office"
    scan_ssid=1
    key_mgmt=IEEE8021X
    auth_alg=LEAP
    eap=LEAP
    identity="qiuyingbo"
    password="yourpasswordhere"
}

push 回去,关闭再重启无线网络,sohu-office 就连上了.

注意这里的 ap_scan=2,是针对隐藏网络的。如果没有这一行配置,貌似很难连接上 sohu-office。如果后来又修改了无线配置,有可能这一行配置会被系统自动删除,切记

㋅㏣

Unicode 威武

推荐:某朋友创业,提供前端技术咨询服务

其自我介绍在这里

额外说一句,lzlhero 我认识有5,6年了,正是当时他的建议和本身的实力,让我体会到建立专业 JavaScript 工程师团队的必要性,以及因此带来的高工作效率。

希望他的咨询业务能发展顺利!

给S60v5增加截屏功能

iPhone 的截屏功能确实很不错,系统内置支持,组合键一按直接搞定。S60 没有这个有点遗憾,毕竟很多时候写文章是需要截图的。不过这一点难不倒程序员,尤其是 PyS60 程序员:

import graphics, time

time.sleep(10)
graphics.screenshot().save("E:\\ScreenShot-" + time.strftime("%Y%m%d%H%M%S") + ".png")

使用很简单,就是从 python script shell 执行脚本后,在10秒之内,把任务切换到截屏窗口就大功告成了。

下面请欣赏偶的 5230:
1. 内置的浏览器基本上带来了桌面级的页面渲染;内核是 webkit 525,比较新;当然体验上比 mobile safari 还是有很大差距

2. 桌面。S60,包括 OVI Store,在外观定制上余地都比 iPhone 强

3. 试图下载 MSN 客户端,作为终端用户内牛满面。虽然OVI Store很烂,但也比这个 UI 强一百倍啊一百倍

如果 Symbian^3 系统还不内置截屏的话,我就考虑把这个脚本包装一下发布到 OVI 了..

搜狐登山队手机调查

这回岗什卡登山,一路上大家都在搜狐微博;我发现掏出来的有好多的E71/E72啊,于是就用心记了一下各位的手机型号,现整理如下:

  1. 三位双枪将
    • 一位是E71 + HTC N1
    • 一位是E71 + iPhone
    • 一位是MOT明 + iPhone
  2. 剩下13名队员里
    • 一位用iPhone
    • 一位用HTC Magic/G2
    • 三个Nokia N系(貌似是2个N95和一个N86)
    • 偶是 Nokia X6
    • 7部E71/E72

16名队员里:13个人用诺基亚,其中9人用E,2个VP以及老板是N;3个人用iPhone;2个人用Android

关于S60v5:要不是我刚淘汰三年前买的E61i,诺基亚的触屏版本可谓全军覆没

推论:搜狐微博的手机客户端,Symbian版本的支持力度绝对不是一般的大,哈