Archive for June, 2010

Web Analytics 浅谈 (3)

关于前端技术.
要想把 DNS lookup 和文件请求数都降下来, 首先要把文件拿到自己的网站上, 甚至和自己的 js 文件合并. 这个地方偶觉得某些人还是太信任大厂了.
是, 他们能把 uptime 优化的很好, 网络方面 BGP 互联的链路也有好多条. 前面都说了有 DNS 和请求数的问题, 所以这一条还是有必要专门提出来的.

偶跑会题玩, 大家不要介意, 看不明白请跳过.
现在 IPv4 的情况实在是太混乱. 省级 ISP 都有 AS 号码了吗? 偶印象中好像不是 100% 都有.
就算有, 那又是谁在管理广播这类的事情呢? 要没人管的话有也没用.
IPv4 还一年多就用完了, IPv6 这方面基础做的还是不错的. 日后 IPv6 时代想做双线 BGP 机房偶想也会比以前容易的多.
电信和网通的距离不就是两个核心 AS 的距离嘛. 他们不想直接相连那就慢.
(更多牢骚请见 ps, 错过会后悔的 :D )

不跑题了. 有些网站加了不只一个统计代码. 甚至不开 js 就不允许访问具体内容页面. 你要只是一个小网站加着玩偶倒不反对.
新浪是一个非常坏的典型. 偶倒要等着看新浪多数页面的 yslow 评分到哪一年才能提到 65 分.
偶就说, 这么大的网站搞优化确实不易, 但需要注意的是, 体验和口碑又值多少钱呢?
别以为你不是 Amazon, 卖的不是具体产品就可以不考虑这些问题.

许多人招聘的时候要求前端不容忍页面上像素的偏差, 偶的看法不一样.
字体, 间距, 像素图这样的东西差 1px 区别挺大, 但分栏上错 1px 偶倒不觉得会有什么问题, 虽然说现在有各种 Grids, 想搞错也难了.

闲话打住. GA 的异步新代码出来有一段时间了, 这个代码的特点是 _gaq.push().
在统计代码加载之前它就是普通的 array (如已加载则保持不变). 加载之后它处理 queue 中的项目, 并接管 _gaq.
测试自己的代码的方法, 就是放马去溜. 嫌慢不出结果的可以自己多模拟模拟.
IE Tester 不错, 但偶好久没用过了. 这方面真前端更有发言权, 偶是个冒牌货. :D

关于数据采集.
IP, 网址, 来路(Referer), User-Agent 什么的就不说了.
访问深度这个概念偶不知道是什么时候提出来的. 这个指标是根据短时记录在 cookies 中的来路和网址做综合的判断得到的. clicki 的代码可以作为参考. 人均 PV 数很容易求, 不提.

国外的分析喜欢用 Visits, 国内则用 IP. 偶更倾向于 IP 的判断, 但如果能够合并跨两个 IP 的 Visit, 偶倒也愿意.
偶认为, 面向用户群的不同是产生统计区别的原因.
面向新用户的网站更倾向 IP. 更注重回头客的网站喜欢用 Visits. 这两种实际上是不矛盾的.

屏幕颜色深度, 分辨率之类的拿了也就拿了. Java 和 Flash 支持的问题偶觉得没有必要占据大量的代码空间. 语言时区还算比较必要.
接入商值得花时间去分析. GA 用的是 Whois 记录. 国内则喜欢用 IP 库, 确实用 IP 库能分析出不少东西来. :D

行为统计是一个热点. 可是你的统计系统是否有能力得到这样的数据?
例如有行为 A 的用户也进行了行为 B. 这类用户特征 C 的比例较平均要高 (特征即来路, 地域等指标).
从商品上做协同推荐偶想很多人都能做. 从这个层面呢?

未完待续 (不过下篇写什么还没想好, 时间跨度也许会长一些).

ps:
偶选择托管商的方法是非常简单而又有效的 (因为偶没钱). 如果能够接触到目标服务器的话可以用直接统计法.
从后台统计分析出访问分布来, 取几个排名靠前的 ISP 网络并在其中取几个间隔较大的 C 段 IP 作为样本.
收集一些 traceroute 数据分析一下 (如果只是直接看的话推荐 mtr, 反正这个怎么搞都可以).
使用 (traceroute) 节点间平均速度 (后一个减前一个) 构建(最小?)生成树. 最后算权重就可以了.
—此时生成树应该包括大量的中间路由器, 目标节点, 用户节点 (不一定要是真实用户, 离用户还有一两跳就可以认为是用户了)
如果你会点统计知识的话可以把方差也考虑上. 这里还有一个权值的问题 (用户分布不均匀).
这种方法只需要一台机器, 不需要找用户去 ping (为什么?). 精确度虽然比 ping 要差一些, 但对于这种用途偶想也够了.

不知道这种方法能省多少钱和乱跑的精力. 这种方法就送到你面前了.

ps2:
当初偶说豆瓣很原始, 鼓动用户去 ping 服务器测速. :D
参见 纯属道听途说的笔记

贴子名字是 “请帮忙ping一下两个地址”.

Tags:
Comments

Web Analytics 浅谈 (2)

关于移动设备.
先插句或许无关的嘴. 不管怎么搞这都是个整体工程. 运维不提供日志的话一切白搭.
移动设备的 SEO 方面可以部分忽略掉(你说为什么?). 但页面的加载速度仍然是非常关键的一个指标. 既然内容仍然是大头, 所以怎么搞都差不多.
闲话完了, 说 uri rewrite.
举个例子好了. 论坛的 uri 里有分页(thread-(ID)-1-(PAGE).html).
这个 page 是用来记录版面列表分页的, 中间的才是帖子内的分页.
那么为什么不能搞 t1234p1.htm 这样的 uri, p1 仅作统计用.
(p1 = position 1, 重写之后变成类似 page.php?t=1234, 以便后端缓存)
如果要考虑(正常页面的) SEO 的问题, 可以用 link rel=canonical 什么的, 这个略过.

刚说完 uri rewrite 问题, 偶说个场景你考虑一下.
如何使用统计在后台模拟 digg 的算法, 然后把数据反馈到前台链接排列中去?
偶给一个提示好了. 如果一个排名为 k 的文章的 CTR (Click-through rate) 在统计上不满足该名次的分布(差 p 个标准差), 那么就把它拿到 k+1 或者 k-1 名上.
这里没有考虑旧文要往下拿和新文往上推的问题, 细节你要自己考虑.
感觉这就和在做广告系统一样, 对吧. :) 事实上统计就应该按照广告的要求来做.

更高级的可以考虑这样的要求, 偶对一篇文章的标题做了修改(注意背景还是移动设备, 没有 Javascript 支持).
修改的生效时间不知道(但可以假设有足够的访问量), 需要你从统计数据中尽力读出这个修改的效果.
(实际上这是没有统计代码参与的变相 AB Test, 你要怎样做?)
而且还涉及另一个问题, 如果你从统计上读到了变化, 却不知道具体做了什么修改, 那又要怎样获取相关信息呢?
话说回来, 运维喜欢定时监控, 而对统计分析这块又有什么启示呢?

未完待续.

ps:
Amazon 能够做到你浏览几页之后就自动给你做相关推荐, 这当然是实时的.
偶当然知道做这种东西成本很高, 考虑到推荐同样也是提高转化率的利器 (就算是推荐了相关率低的商品, 也有一定的收集数据的作用), 你自己可以考虑这种东西是否值得一做.

Tags:
Comments

Web Analytics 浅谈 (1)

这个 Blog 上之前部署过好几种统计代码. 这次就谈谈网站分析这个问题.
这篇文章也是为了填一个去年就挖出来的天坑. 原来的主题是 聊聊网页统计.

另类统计方法.
最需要说明的是, 不依赖 Cookies 也能做分析. (原题是关于 Cookies, 这句就不改了).
CSS :visited 选择器, 甚至可以批量探测用户可能上过的网站. 最近一些浏览器开始对这个选择器下手了, 把这类问题从源头上堵住.
User-agent, 各类 HTTP Headers (Accept, Accept-Language) 都可以做为浏览器指纹(可以参考 Panopticlick).
If-Modified-Since, 这个方法可以用在图片或者 js 上, 具体应该怎样用别问偶. 这个效果也不错. 重点是要后端有条件提供详细日志(一般日志不行). 这绝对是杀手级的, 只是部署与分析难度大了点. :D
phpbb 等一些论坛, sessionid 是挂在链接上的. 当然这相当于 cookies 了.
(不过是把数据存在了服务器上, 由服务器控制记录的时间.)
Yahoo 系(日本?)的网站在链接设计上下了不少功夫, 分析和应用连在一起无法分离.
(delicious 也是这样的, 但 javascript 的启用情况也会影响分析的方式. 关闭 js 使用的是 uri 方法, 开启 js 使用的是 js + 图片分析.)

关于数据存储.
网站有名气了就树大招风, 连 cookies 的过期时间都有人管. 当然偶觉得这个问题不是很重要.
重要的就一个 unique userid, 在数据库里把一切都对应起来好了.
如果有能力的话可以把上面提到的一些分析方法在应用中实现.
偶是觉得 http headers 用一些办法计算指纹是挺容易的. 就看你愿不愿意实现之.

不愿意在分析技术上投钱就罢了. 连最起码的全日志存储都做不到, 就等于… 人家把钱给你了, 你收下一部分然后把另一部分扔了. 也许这个比喻还是不够恰当 :)
有些人就纠缠在 Visit, PV, unique visitors 什么的概念上. 所有的日志都在手里, 爱怎么定义怎么定义.
偶承认跨日访问是个难题, 那为什么不能做从本日来的 visitor 总共贡献了多少 PV(这个可以跨日)? 收集几天数据自己就能得到一个大致的 PV 推算关系.
总是想着 0 点出上一天的报表, 是这个问题的来源之一.
都说 Realtime 是趋势, Twitter 什么的都是实时的, 统计为什么不是?

time on site. 这个问题需要说明确吗? mousetracking 都能做.
如果考虑服务器负载问题, 那就用存储法, 在访问下一个页面的时候把上一个页面的情况传回去如何?
这个统计不准确的问题, 应该是有很多方法解决的. 就看你愿不愿意做了.

未完待续.

Tags:
Comments

年经文: Firefox Extension List

两年一度的年经文, 应该不算太频繁.

2008 年版:
没事的请忽略: My Firefox Add-ons/Bookmarklets

和前年不同的, sidebar.htm 离开了首页的位置, 新首页是 about:blank.
sidebar 的截图是这样的, 当时应该是贴出来过, 可是不知道文章跑哪里去了. 重贴一次.
sidebar
下拉菜单里是网站列表, 类似 hao123. 用 window.open 打开之. 也就是两次鼠标操作.

Bookmarklets 退出了舞台, 也许只是因为屏幕小了, 放不开这么多东西.

不用 Chrome 的原因是字体. 偶无法把 Chrome 的字体调成自己想要的样式
(wqy bitmapfont, 还是因为 windows 点阵宋体看习惯了)

Adblock Plus 1.2
使用了 Adblock Filterset Generator (beta), Chinalist, Fanboy’s list.
小声说: 偶最喜欢的规则是 … china.nikkeibp.co.jp###coverDiv
话说回来, 用裸奔 CSS 方法 (No Style) 也可以考虑.

Add to Search Bar 2.0 [DISABLED]
只用了一次.

BetterPrivacy 1.47.4
主要用来挡 Flash Storage, 这是非常有必要的. 常开隐私模式的同学一定要用它.

CHM Reader 0.2.3
也许是备不时之需吧.

DownloadHelper 4.7.3
下 Youtube 上的视频.

Firebug 1.5.4 [DISABLED]
最近不搞前端啦. 关闭之. 虽说留着它好像查看广告 DOM 会更快一些.

gui:config 1.0 [DISABLED]
就图个方便, 只用了一次.

Google Redesigned 0.4.5
谁知道怎么样启用 GDocs 支持? 好像应该不难的样子.
不过偶不用 Google Docs 就是了, 当时一朝被蛇咬了, 屏蔽了偶 G Docs 的使用权.
作为回报, 偶是 Zoho 产品使用者.

HttpFox 0.8.7
常用品. 推荐. 可能会干扰 HTTPS 网站, 这个要注意.

Multiproxy Switch 1.32
虽说一般 pac 就够了, 可是还是用一下吧.

Nightly Tester Tools 2.0.3
解决插件不兼容问题.

No Referrer ( Misspelled Referer ) 0.100601.10
重点推荐. 偶用的规则主要和搜索引擎有关(写在左半边). 例如:
(.*)google\.com/search\?(.*)
也许就差用 (.*)(\?|\&)(p|q|kw|wd)=(.*) 了.
关于 p, kw 什么的自己总结一下或者抄一下统计里的代码就会更全一些.
然后再屏蔽几个 GR 啦, twitter 啦(加上几个 mobile client). 偶觉得基本就做的差不多了.

NoScript 1.9.9.80
曾经考虑用过 RequestPolicy. 不过想到现在用各种技术的网站那么多, 就算了吧. :D

Page Speed 1.7.1 [DISABLED]
偶已经知道什么样的网站比较快了. 请求少, 文件小就快. 这是非常简单的道理.

RefControl 0.8.13 [DISABLED]
主要用来躲开某些网站的图片外链限制 (可惜不太上这类网站, 所以暂时关掉了).
不过, 真有这种需求的同学可以试试 Mason.

Tamper Data 11.0.1 [DISABLED]
平时不用.

User Agent Switcher 0.7.2 [DISABLED]
偶确实应该换一个 user-agent, 可是这个插件不好使.

wmlbrowser 0.7.20
看看 wap 网页. 真正想看的话还是用 opera 或者 ucweb for iphone.

ps:
有人认为 GreaseMonkey, Stylish, userChrome.js 是三大神器. 不过偶没这些需求哪. 那还是列在这里备用吧.

ps2:
Resurrect Pages 功能不错. 不过一般偶只用 Google Cache 和 Archive.org.

ps3:
这套东西如何? 凑合先用着吧. Firefox 最大的问题还是启动速度哪. :D

ps4:
问题答案: profile 目录下…
dG91Y2ggZ29vZ2xlcmVkZXNpZ25lZGtleS5yZGYgI3NlZSBhbHNvIEdvb2dsZVJlZGVzaWduZWRTdGFydHVwLmpzLgo=

Tags:
Comments

Windows 与安全

最近听说 Google 要弃用 Windows 了, 那就谈谈这个事. 别说 Googler 怎么样.
有些东西别人不愿意把它说明白. 偶就光从偶知道的几个方面讲.

杀毒/安全软件.
王江民前些日子才逝世, 若不是这个新闻偶早就忘记了 KV 系列的存在. 在此做个记录.
360 与金山两边的嘴仗不起任何作用, 偶就把这个当笑话看.
要是有人因此明白国产杀毒软件都不能用的话, 这当然是个好事.

偶就说, 技术再好也要看主人.
检测率做到 100% 不难, 如果把某些不喜欢的东西加上去, 检测率要还是 100% 的话那就别用了.
主人说杀什么就杀什么, 这不就和 “让咬几口咬几口” 是一个道理了?

基于以上原因推荐免费的 Avast 和小红伞, 收费的就自己选吧.
(不过话说回来, 小红伞截获国产病毒的能力还是有些弱)
防火墙方面要求低的就用内置的, 要求高些的 ZoneAlarm(ZA) 或者 Comodo.
推荐对程序网络访问行为做一定的控制. 长城之内还有黄金甲, 你头破血流的时候有人在默默无闻给你做着笔记呢.

驱动程序.
个人推荐 Everest & Driver Genius (不是国产那个!).
如果你实在懒的话, 国产的驱动精灵比驱动人生要好使.
驱动精灵带的系统文件是签过名的, 不过还是用下载驱动并手动安装的方式比较靠谱.
当然, 你要装个 Linux 就不用偶在这唠叨半天了. :D

安全评估.
M$ 买下 Winternals 是件大好事. Sysinternals 中的许多工具很不错. 就让 Process Monitor 排第一吧.
syscheck (by wangsea, 下载地址自己找)
Security Task Manager
ThreatFire
Wireshark (网络方面没它那是不行的)
Wine (它和评估有什么关系? 偶以前写过的, 愿意翻的就去翻)

说到安全评估的问题, 就想到一句话, “好奇心害死猫”.
当然这里不是害死什么动物. 是说好奇引入某些软件, 如果整体安全不过关的话会出一些问题.
有些功能很好看很好听, 比如钓鱼网站过滤, DNS 预缓存什么的, 这些东西…

应用软件.
把前面说过的”杀什么”改成”怎么做”, 这就是国产流行软件的真实写照.
刚才说了技术再好也要看主人, 所以说软件能不能用, 你要仔细想一想.

没有升级功能的软件好说, 评估完成就可以用了.
有升级功能, 再考虑 DNS / SSL 劫持的可能性, 你自己也可以得到一个答案.
某些工具提供的给软件升级的功能是挺好, 不过一看到把原版 Firefox 升级为中国版, 你要不要倒吸一口冷气?

关于虚拟机.
把 Windows 装到虚拟机里那当然是好事.
沙盒, 权限什么的, 如果你不知道实际原理, 再加上有那么多不明的系统文件, 驱动程序, 所以还是算了吧. Windows 和 Linux 这方面就是两回事.

加密系统.
Windows 好像没有什么选择可言, Truecrypt.
一说加密就要考虑擦除, CCleaner 不错, 不过需要手动设置一下擦除次数, 还有一个也行, 这里不点名了.

系统设置.
许多精简版 XP 关闭了系统文件保护, 关闭了自动更新 (这是大忌).
有些人还在用 FAT32 文件系统.

Windows 想安全?
这个事情相当简单, 打狗要看主人. 重装系统的时候看住了别放了就行.
驱动程序到官方下载, 软件尽量找国外替代品, 防火墙杀毒软件前面都已经说过了.

就这样结束吧.

ps:
Vayn 说: 昨天(2010.4.3)有人对我说节日快乐,我楞了一下,是愚人节吗?回头想了下才发现不是。春节是节吗,清明节是节吗?

Tags:
Comments