“com.docker.vmnted” was not opened because it contains malware 问题解决

好久没有在Mac下用Docker,今天用docker的出现如下提示框:
“com.docker.vmnted” was not opened because it contains malware. This action did not harm your Mac.

关掉没有用,会反复出现。 把机器重启,重装docker都没用, 在网上查了半天,发现没一个网页记录了完整的解决方法,我这里记录下自己是怎么解决的。

  1. 先要完整的卸载Docker。
    • 可参见Docker给的卸载文档, 但文档里说的也有问题, 比如文档里说通过在命令行执行 /Applications/Docker.app/Contents/MacOS/uninstall 来卸载,但在我机器上执行这个命令会死在那里,一直不动。 最后没办法,只好手动从Application文件夹里把Docker卸载了
    • 然后按文档执行下面命令
      rm -rf ~/Library/Group\ Containers/group.com.docker
      rm -rf ~/.docker
    • 最关键是删除下面两个文件
      sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd
      sudo rm -f /Library/PrivilegedHelperTools/com.docker.socket
  2. 然后重新安装Docker Desktop for Mac
  3. 但安装完别着急运行,先执行下面的命令:
    sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/PrivilegedHelperTools/
  4. 按照以上步骤,你应该能顺利解决 Docker 启动问题。如果还有问题,可以尝试重启电脑后再运行 Docker。

保障计算机安全的责任应该由用户来承担么?

现在用的操作系统是Vista, 经常会弹出对话框,要求审批是否给予一些应用程序以管理员权限。 为了安全还安装了一个防火墙和杀毒软件,经常会弹出对话框要求确认是否允许一些程序运行,允许程序访问互联网,允许程序存取关键目录和文件。 这些需要审核的对话框有时弹出的太频繁,让人不胜其烦,只能看都不看直接点允许。 这些对话框有时提示的信息太晦涩,看不明白啥意思,拿不准是该批准还是拒绝。 对我这个IT技术人员还如此困难,对非IT专业人员的使用难度可想而知。

当计算机安全的挑战越来越大时,微软和杀毒软件厂商们把大量判断的责任推给用户们,这样一旦出了问题可以推卸责任,说是用户的选择错误,而不是软件问题。 难道计算机安全的责任只能由最终用户来承担么? 最终用户能承担好这个责任么?

用iphone写blog

前几天才知道iphone上有与wordpress同名的免费应用程序,可以用来在iphone上写blog。这一篇就是用iphone写的,下面的图就是软件的截屏。软件功能不错,但iphone输入的不方便,让写blog的过程变得很痛苦,尤其是修改时重新定位光标特别艰难,还有不支持copy&paste让人抓狂,键盘的构思虽然巧妙,但还是常常按错键。比起前一个treo 600全键盘输入带来的流畅感,简直是天地之别。

虽然输入不便,但还是很喜欢iphone。刚才朋友短信过来自己女儿满周岁照片的网上相册地址,点短信中的链接就直接跳到picasa网上相册,显示效果非常完美。一张张翻看小天使的照片,仿佛手中的iphone真的成了相册,看得非常惬意。

平常最常用的还有stanza电子书软件,结合网上图书馆室,iphone又成了让人爱不释手的书。

平常跑步锻炼就用trackthing,统计跑的距离和速度,还不够好,不过magico已经答应要做个更好的iphone跑步软件给我,条件是将来拿了马拉松冠军奖金要分他一半。

写上面这点文字已经用去了一个多小时,iphone看来还是不适和作为日常的blog书写工具,但用来发一些以图片为主的blog(如突发新闻事件播报),应该还是可以大有作为的。

更新:被magico鄙视了,修改时定位光标原来一点都不难:对着想定位光标的文字,按1秒钟以上,出来一个放大镜,然后稍微移动手指,看着光标在放大镜里跟着动,很容易就能定位了。

用下载来上载

从大约两个月前,用家里的电信小区宽带FTP上载到美国服务器速度就奇慢,一般速度只有2K-4K字节每秒,而且不稳定,经常断。 上传45M的文件,有时要上传一整天。 用VPN登陆到美国服务器则更糟糕,往往是开头挺快,30K-40K,传了几兆后就跌到1K-2K。 下载都很正常,用FTP下载美国服务器上的同一个文件,单线程能到20K的速度,多开几个能到100K。下载国内的就更快了,用快车最快能到500K。

今天上载又是特别艰难。凌晨3点用Cuteftp pro开始上载后就去睡了,本以为醒了后就上载完了,起来一看才20%多。不着急,等着吧。到中午已经到了97%,正乐着呢,没想到又突然跳回1%开始上传!抓狂!

即将气得要砸了电脑的时候,突发奇想,用终端登录到美国的服务器,然后在自己的台式机上启动apache,从美国服务器用wget下载自己台式机上的文件,速度好多了,一直保持在15K。后来不满足,在网上找了个linux下的多线程下载myget,但是无论开启多少个线程速度也是15K的样子,唯一的亮点是能断点续传。只好死了多线程的心,一直等到wget下载完,45M用了半个多小时,谢天谢地中间没断。

大家有啥更好的办法赶紧教教我。

 

另:这个上载速度慢的问题,怀疑和GFW有关,不过现在还没啥证据。

网站流量分析行业的薪资水平

前一阵webanalyticsdemystified.com做了一个网站流量分析行业工资水平的调查,调查结果昨天发布了。调查主要是在美国,调查出的平均年薪是$86,883(美元,税前,下同)。低于$50,000的是18%, 还有10%是高于$150,000。 有5年以上经验的,平均年薪是$102,544。 从2005年2月3日到2007年9月27日,发布在indeed.com上要求具有网站流量分析技能的招聘广告已经有了近275%的增长 (在51job.com则一个都没搜索到)。

调查报告在 Web Analytics Salaries 2007: Insights and Observations (PDF 格式)

调查的数据可以在 Web Analytics Salary Data 查询。

等合适的时候也做做国内的网站流量分析行业的薪资水平调查。

如何用Google Analytics跟踪出站点击

有时候我们需要知道用户是点击了站点中哪个外部链接离开了你的站点。比如当你的购买链接是指向第三方的收费代理,这时候就很有必要知道有多少用户是点击了购买链接离开了你的站点. 单靠平常的在线统计日志分析(Log Analysis)是不能跟踪的,因为很多时候外部站点不允许你插入统计代码,更不会给你看日志文件。这时候就需要我们动手加点东西来实现对出站点击的跟踪。

以前追踪出站点击的方法主要就是不直接链接到外部站点,而是链接到一个本地文件上,把用户的出站点击经这个文件中转一下。这样通过日志分析(Log Analysis)统计中转文件的访问,或直接由这个中转文件把统计结果写入数据库, 以此来实现对出站点击的跟踪。

那么用Google Analytics如何跟踪出站点击呢?有人要说可以在中转文件中插入Google Analytics的代码,实际上有个更简单的办法。 在普通网页统计插入的Google Analytics代码中,最后要调用不带参数的urchinTracker() 函数。其实这个函数是可以带参数的。查看http://www.google-analytics.com/urchin.js这个文件,你会发现这个参数名是page,再向下多看看你就很容易发现,这个page参数就是统计页面的url。 利用这个函数就可以实现对出站点击的追踪了,将每个出站链接加入如下代码:

<a href=”http://www.waibu.com” onClick=”javascript:urchinTracker(/outgoing/1);”>链接</a>

这个链接中给出的参数’/outgoing/1‘ 是可以根据自己需要定制的,并不是站点中必须要有的文件。urchinTracker 这个函数你只要给他什么参数他就统计什么,实际是否存在并不关心。 加入这段代码后,一旦用户点击,Google Analytics就会记录为一个对’/outgoing/1‘的访问。这样你只用每天看Top Content(最常见内容)报表中’/outgoing/1‘ 的访问数字就能知道点击这个外部链接的访问有多少了。 你还可以把’/outgoing/1‘ 定义为一个目标(Goal),在Google Analytics对目标的转化率Conversion Rate(转化率),Goal Path(目标访问路径)等进行分析。

注:

1.这种跟踪方法在不支持或禁止javascript的客户端是无效的
2.这种跟踪方法的前提是你必须在网页中安了Google Analytics统计代码

在线统计 vs 日志分析 ( Page Tagging vs Log Analysis )

网站流量分析(Web Analytics)的工具分为两大类, 一类是以Google Analytics为代表的在线统计系统, 英文称Page tagging。国内的武林榜,51yes,国外的Hitbox, Nielsen NetRatings, OneStat 都属于此类。这一类的重要特点是,分析时需要在里页面嵌入代码,这也是Page Tagging这个词的由来。 另一类就是日志分析,英文称Log Analysis, 特指web服务器的日志分析就是Web Log AnalysisNihuo Web Log Analyzer, awstats, analog 都属此类,这一类的特点是不用在页面嵌入代码,而是靠分析web 服务器产生的日志来生成统计报表。

经常有人问起这两种方法哪个更好,解释次数多了,自己都烦了,现在在这里统一回答一下。涉及到两类产品的比较时,就分别以Google Analytics( http://www.google.com/analytics/ )和Nihuo Web Log Analyzer( http://www.loganalyzer.net/ )为例了。

网站流量分析机制的差异

在线网站流量统计(Page tagging)的实现机制

Google Analytics需要在所有需要统计的页面中插入如下的Java Script统计代码,只有插入了代码的页面才能被统计,


这段Java script做的工作如下:

  • 判断用户是不是第一次访问这个网站。它是通过cookie来判断, 如果特定Cookie不存在它就会认为是新用户,它会种一个用户标识的cookie,并在cookie中记录下用户第一次访问时的Refrrer,即来源网站。 如果是从搜索引擎过来的,它还会分离出用户搜索用的关键词并记录下来
  • 判断用户是不是新的访问(New Visit),并获取当前浏览的页面URL,标题,Referrer(来源网址),客户端信息(如屏幕分辨率,语言,flash版本,是否支持java )
  • 创建一个image对象,调用http://www.google-analytics.com/__utm.gif,把上面所有的信息作为图像文件的参数传回去。这个图像文件其实就是1个像素的gif文件,而且这个像素还是透明的,在页面中是看不到的。

其他的在线统计系统与Google Analytic有些细微的差别, 比如Nielsen NetRatings要求嵌入的javascript代码中还包含有如下代码:

这确保了在javascript被禁止的客户端,用户的访问也能被统计。当然,这种情况下能统计的信息很有限了。关于这些在线系统实现方法上的一些细微差别做过专门研究,说起来就很长了,哪天有时间会单独写个文章讲这个话题。

日志分析(Web Log Analysis)的实现机制

Web服务器在工作时会把所有用户发过来的请求和相应情况记录在文件里,这个文件就是日志文件。下面就是从http://www.loganalyzer.net/log-analysis-tutorial/log-file-sample-explain.html 找到的一行日志:

111.111.111.111 – – [08/Oct/2007:11:17:55 -0400] “GET /support.html HTTP/1.1” 200 10801 “http://www.google.com/search?q=log+analyzer&ie=utf-8&oe=utf-8 &aq=t&rls=org.mozilla:en-US:official&client=firefox-a” “Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7”

在这一行里包含了客户端IP(111.111.111.111),时间([08/Oct/2007:11:17:55 -0400] ),请求方法(Get),请求文件(/support.html ),HTTP协议版本(HTTP/1.1),返回状态码(200,表示成功),文件大小(10801 ),Referrer信息(”http://www.google.com/search?q=log+analyzer&ie=utf-8&oe=utf-8 &aq=t&rls=org.mozilla:en-US:official&client=firefox-a”),Agent信息”Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7″)。具体如何详细解读日志会另文阐述,在这里只是展示一下日志中都包含什么信息。

Nihuo Web Log Analyzer就是靠读入日志文件在本地进行统计计算而得出最终报表的。在大部分Web日志文件中,都是靠IP来判断访问者。Nihuo Web Log Analyzer也可以通过Cookie识别用户,但需要在日志中首先输出Cookie信息。

在线统计日志分析的优缺点比较

上面费比较多的笔墨说两者的实现机制,就是为了大家能更好理解这一段,因为两种方法的优缺点都是由他们的实现机制决定的。

在线网站流量统计(Page tagging)的优点

  • 通过Cookie识别访问者,比依靠IP识别要更准确。因为通过IP识别用户在遇到很多用户通过代理服务器(比如网吧)时就会不准确。而且当用户过几天后再访问时,通过Cookie能很好的识别这是已经来过的用户。而日志分析以IP识别用户时,因为用户每次上网拨号可能会被动态分配不同的IP,就会比较难准确判断返回用户。
  • 能通过javascript搜集到一些通过日志不能搜集到的客户端信息,屏幕分辨率,语言,flash版本,是否支持java 等
  • 使用方便,只要在所有页面插入了统计代码,以后每次直接看报表即可
  • 可以做第三方统计, 比如你在blogspot.com开了一个blog,而blogspot是不可能把他们的web日志提供给你的,这时候没有别的选择,只能是用在线统计系统。

在线网站流量统计(Page tagging)的缺点

  • 当客户端禁止Javascript或禁止Cookie时,都会影响统计结果,要么是完全统计不到,要么是出现错误的统计
  • 存在一定误差,因为在线统计是通过javascript把客户端信息搜集起来再传回服务器实现统计,有时因为网络的延迟,会出现没有统计到的情况。而且和页面的载入速度也有关系,把代码加在页面代码顶部或尾部统计结果都是会有差异的。
  • 不能统计用户对图像,视频,音频等文件的访问,因为这些文件不能插入统计代码
  • 不能统计带宽信息
  • 统计信息被第三方掌握,有安全上的危险

日志分析(Web Log Analysis)的优点

  • 没有网络延迟的问题,统计准确
  • 可以统计网络蜘蛛(spider ,bot)的访问,这对于做SEO比较重要
  • 能够统计非页面文件,如图像,flash文件等等
  • 客户端禁止了Javascript和Cookie也不影响统计的结果
  • 能够采用丰富的过滤器(Filter)进行数据挖掘(Data mining),可以从多角度分析网站流量和用户的访问行为。一些在线统计也支持Filter, 比如Google Analytics,但是一旦应用过滤器最终数据就被改变,原始数据是找不回来的。
  • 可以多域名的日志放在一起分析,在线统计系统对用户的标识是基于Cookie的,而Cookie是不能跨域名的,在这方面日志分析有天然的优势。
  • 安全,分析数据是由你自己掌握的

日志分析(Web Log Analysis)的缺点

  • 使用比较麻烦,每次要分析日志,而且有的还要配置web服务器以输出合适的日志。
  • 用IP追踪用户不如Cookie准确。 不过这个问题可以通过在Web服务器上添加插件或模块来解决。Apache需要添加mod_usertrack模块,并在日志中输出cookie信息。IIS可以装ISAPI的插件(自己用VC6写了一个,可以从http://www.doyj.com/downloads/cookiefilter.dll 下载,不过这个当时只是写来测试的,出了什么问题可别怪我 )。也可通过javascript,php,asp等语言给客户端种植cookie,这讲起来就长了,大家可以google相关资料看看。
  • 搜集的客户端信息不如Page Tagging丰富,象flash版本,是否安装java之类从日志是看不出来的
  • 日志的存储管理也是挺头痛的事,尤其是当每天都产生几十G日志的时候。

经常有人问这两种方式哪个更好,应该选择哪种,这让我很难回答。 因为这两种方式都各有所长各有所短,只用一种方法很难准确完整的了解网站流量的的全貌,我自己做分析时两种工具都使用的,两个报告互相参考着看,也推荐大家采用这个方式。

注:这篇文章借鉴了一些 http://www.kichus.in/2006/09/23/log-file-analysis-page-tagging/ 的内容