看不懂深度Linux系统的文件管理器图标
为了保持对Linux的熟悉度,MacBookPro一般放在公司,家里(每次用这个词是我觉得最纠结的时候,我现在有家吗?)用的是普通笔记本装了深度Linux。
之所以安装深度,主要的原因应该是支持国产吧。
可能是从Windows延续过来的习惯吧,文件管理器一直是我使用频率最高的软件。但深度一直以来的迭代版本,我就是认不出也记不住它的这个文件管理器图标。比如在最新的15.4.1,它的图标是这样的:
不过图标被点击后应用在启动过程中的交互效果已经做出来了,图标会两边晃,还是有改进的。
文件管理器图标一直和应用商店图标放在一起,仔细看两个图标:一个是档案袋,一个是购物袋。但是如果这些个图标如果需要用户仔细看才能联想和区别出来的话,我觉得设计未免有些失败。
而延伸到这整个一排图标,有些很简洁抽象如终端,有点扁平化的味道,视觉上会自动进行加工处理然后形成视觉记忆;其它大部分呢又很拟物化如文件管理器,只是连色调都不对,怎么能达到让用户视觉快速认知的目的,你见过哪个档案袋是这种蓝色的吗?别跟我说macOS中文件管理器的图标也是蓝色的,所以也要用蓝色。mac的风格逐渐在扁平化,但应用图标仍是拟物化的,即便是终端的图标,主体仍是一个屏幕的效果,在屏幕的左上角有着光标的符号。深度的这个终端图标基本上感觉不到屏幕的存在了。
当然,在众多Linux桌面发行版中,深度一直算是非常用心在做的,只是这些乱七八糟的图标设计难道是要设计师背锅吗?
文章
Linux · Windows · iOS开发 · MacOS
2017-07-29
电脑不识别U盘启动盘了怎么办怎么恢复
现在好多人都直接用U盘当做电脑启动盘。往往由于在使用U盘的过程中,不小心被病毒或自己使用时不规范操作将自己的心爱之物很快出现这样或那样的问题。这篇文章主要解决U盘等可移动存储设备不能识别的问题。
首先我们先看一下数据线是不是完好,最好换一条好的试试。因为下面的方法解决不了这个看似问题而不是问题的问题。因为我就遇见了这样问题。
现在我们看看软件方面的解决方法:
1:将U盘同系统的各个USB接口连接一下,频率在1分钟左右,不能识别就更换其他USB。中间最好是重启电脑后测试;这样判断是不是电脑的USB接口有没有故障;
2:将不同的已确认是好的USB设备(如:USB鼠标、U盘、键盘摄像头等只要是手里有的都可以)插入不能识别的接口中。这样是判断U盘与USB接口有没有故障;
3:重启进入bios。看看USB有没有被禁用。
4:如果上两个方法都是不能识别的话。请将系统设备管理器中的USB驱动重新安装一下主板驱动,注意安装驱动必须要重启电脑。(很多用户或是电脑城装机人员都是不重启的,因驱动问题是直接影响系统蓝屏的主要因素)
5:软故障也排除的话,在看看系统有没有病毒,当然有病毒也不会影响USB不能识别。但是使用杀毒软件检查一下。是最好的。
以上方法都不可以的话,就尝试重装系统吧。再不可以就要换主板或是加一个USB小板。
大多用户在使用U盘时总是即插即用,这样会造成USB接口老化的较快,建议每次使用U盘时候,完全识别后再打开,拔除时使用安全删除。最好加一条数据延长线。如果数据丢失的话,不要着急。下载U盘数据恢复软件。
1、下载并安装得力数据恢复软件。
http://www.delihuifu.com/html/2017/ruanjianxiazai_0623/37.html
2、将您的U盘连接到电脑。
3、运行得力数据恢复软件,出现下面界面。 如果您的U盘已经连接电脑,列表框会显示您的U盘,鼠标左键点击您的U盘,然后点右下角的“开始扫描”。4、软件进入下面界面,正在分析您的U盘,请耐心等待下面的进度条结束。5、扫描结束,下图是分析的结果。 勾选需要的文件,点右下的导出按钮即可导出选中的文件。点"选择目录"按钮,选择导出目录,请选择您的电脑硬盘。6、恢复成功!
Android技术周报_W10
文章
1. 天猫导购页面动态化方案与实践-Tangram
重运营的业务特别是电商业务,往往讲究灵活多变,需要对线上业务做实时调整,此类页面动态化的需求便应运而生。 Tangram就是为了解决这些问题,我们希望这个框架提供一系列基本单元,就像积木块一样,通过快速拼装就能搭建出一个页面或者调整页面的结构。
Tangram 的基础 —— vlayout(Android)目前已经在Github上开源.
2. 阿里聚安全 2016 年报
Android平台约10台设备中就有1台染毒,设备感染率达10%
每天新增近9000个新移动病毒样本,每10秒生成1个
89%的热门应用存在仿冒(金融行业银行类仿冒居多,某银行仿冒应用全部具有短信劫持行为)
18个行业的Top10应用中98%的应用都存在漏洞,但Webview远程执行代码漏洞迅速下降
人机对抗-滑动验证码作为对抗黑产的重要手段
3. Google VR for Android 开发入门
VR了这么久, 别要再看别人做的小视频,小图片了. 是时候自己动手搞个VR app了.
本文介绍了
Google官方的VR demo
全景图(PanoramaActivity)
360 视频4.VR开发demo(源码:https://github.com/uncleleonfan/VRDemo)
4. Jenkins构建Android项目,从安装到使用
团队大了以后, "持续集成/自动构建"变得越来重要. 这时候Jenkins是一个最好的选择. 它是持续构建各种项目的大杀器.
本文详细介绍了Jenkins的
1.安装 2.配置 3.使用
5. 看ASM在代码中的强势插入
有很多种方式实现AOP. 本文通过使用ASM来讲解了在Java和Android中的AOP方法,非常值得大家学习交流~
目标
不影响现有逻辑需要统计耗时的方法头部加上注解支持混淆
方案
方案分两部分,一部分针对JVM,一部分针对Android平台。
6. Android依赖管理与私服搭建
本文介绍了
1.Android引入依赖的多种方式
2.多平台私服搭建 3.创建和依赖自己的代码仓库
7. Android 热修复 Tinker 源码分析之DexDiff / DexPatch
从tinker对dex文件的处理来看,源码大体上可以分为3部分阅读:
在应用中对patch的合并与加载
详细的dex patch,dex diff算法
tinker gradle plugin相关知识
本文主要分析了tinker的"DexDiff / DexPatch". 来一个dex文件结构介绍
8. Android修改 jar 文件的包名
jar 包我们会非常高频率的使用,尤其是用一些其他三方库的时候,往往把 java 代码打包成 jar 文件,方便项目依赖使用。
带来的问题是, 多个jar包容易出现包名冲突. 这时候我们修改 jar 文件的包名是一个比较快速有效的解决办法。 下面介绍如何修改jar文件的包名,需要用到一个小工具,叫做 jarjar.jar
9. 安卓应用角标那些事儿
介绍了怎么在各种平台上展示应用角标.
1.角标开源库-ShortcutBadger 2.机型上的特殊适配(华为/小米/OPPO/VIVO/Sony)
类库/UI
1. BGABadgeView-Android
演示了各种酷炫效果:
微博底部tab显示最新微博条数
微博列表用户头像显示显示右下角vip徽章
微信消息界面用户新消息
微信消息界面订阅号新消息
拖拽删除徽章
2. HTextView
TextView的动画效果组件.效果很赞
3. folding-cell-android
View的三段式折叠效果
4. SwissArmyKnife
SwissArmyKnife 是一款方便调试android UI的工具,可以兼容所有android版本,不需要root权限。可以直接在android手机屏幕上显示当前Activity中所有控件的边界,内外边距大小,每一个控件大小,图片大小,字体颜色,大小,以及自定义信息。同时可以直接在屏幕上取色,另外还提供了直尺,圆角尺等工具,可以直接测量大小。针对android开发者还提供了布局树查看功能,可以直接在手机屏幕查看当前Activity中所有控件层次信息等。最新的版本还提供了view渲染性能和页面渲染性能统计工具。
菜刀说: 在UI联调上的效果还是不错的
宽高选项
开启后会看到控件的宽高,单位可以在功能界面控制
字体大小
5. Android-skin-support
Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验. 只需要两行代码, 就可以实现换肤, 你值得拥有!!!
菜刀说: 最近冒出好些换肤的文章. Android-skin-support有1200+star; 用起来也很方便. 所以mark一下.. 但是我对换肤必须继承SkinCompatActivity的方式耿耿于怀, 要知道每个项目都有自己的BaseActivity啊.
6. materialChipView
菜刀说: 一个简单漂亮的view, 有用的自取
往期周报回顾
Android技术周报_W9 Android技术周报_W8 Android技术周报_W7 Android技术周报_W6 Android技术周报_W3 Android技术周报_W2 Android技术周报_W1 Android技术周报_2016-last
文章
安全 · Java · 持续交付 · vr&ar · Android开发
2017-10-25
阿里技术人的第一节课,都上些什么?
从源码到上线
事情可不简单
什么叫程序?或者说,什么叫软件?这里面好像有歧义。有时候指的是源代码,有时候指的是安装包或者安装光盘,比如“我下载了一个软件” 。有时指的是已经安装好随时可以运行的程序,比如“手机上新装了一个应用” 。还有的时候指的是正在运行中的,正在提供服务的程序,比如一个网站。
这些不同的含义反映了一件事:单纯的源代码,还不能提供服务,不能为用户带来价值。只有源代码被构建打包,并且被部署运行起来,才能为用户带来价值。
那么,如何才能部署运行起来,为用户提供服务呢?这很麻烦吗?——是的,这很麻烦。
想象一下,如果你是一个初创企业的CTO。天上忽然掉馅儿饼,掉下来五个Git库,源代码已经写好,而且一点儿毛病都没有。每个Git库能编译成一个war包。你需要把每个war包部署到100台服务器上,总共需要500台服务器。另外,随着用户的使用,会不断追加新功能,产生新版本,需要更新服务器上的软件版本。
假定你不是在阿里巴巴,假定也没有阿里云,假定你只是有很多钱可以雇到合适的人,你想想一共有多少事情要做?
先要买或者租机房,再买服务器,风火水电都要搞稳妥。更要接好网络,每台机器要装好操作系统的合适版本。不止是操作系统,还有相关基础软件、路由、数据库、监控系统、日志收集系统以及中间件等都是必须的。哦,域名还忘了申请了……
这些搞定之后,才能安装那些war包。这么多台,肯定不能一台一台操作,累死了,得有个批量操作的方法。可这方法怎么弄呢?另外,考虑到将来要更新软件版本,所以这还不是一次能搞定的事情,那更是得批量操作了。更新版本的时候,还有个麻烦事,不能一下子都停机啊,那不就要出事故了。所以得分批来。比如,先更新20%的机器,再更新20%,如此一共五批弄完。
往细节看,其中更新某一台机器,其实都是个挺复杂的过程。首先下载新的war包到这台机器,然后开始替换过程。先得把流量切走,切流量前,还得先把监控报警关上。流量切走了,就可以停止当前war包的运行。然后用新的war包代替旧的war包,启动试试看。如果通过了一些基本的自动检测,说明新war包大体上能运行,于是就开始切流量回来,最后把监控报警恢复。
忒麻烦!!
还好有工具帮忙
怎么办?——用趁手的工具啊!正是为了提高大家的工作效率,让大家能够集中精力在具体业务本身的研发上,阿里巴巴集团多年以来建设了一整套基础设施。
在交付层和运维层,都有大量的基础设施。但这些,大家可能感受不深。对于一个应用来讲,它最关心的事情,基本都是通过Aone暴露出来的。Aone也就是最上层研发层的主要工具。
注:本文提及的阿里内部产品叫Aone,Aone于2017年正式对外开放,更名为云效。
回到前面讨论的场景,把完美的源代码发布上线这个过程,那么大体步骤应该是:
第一步,把运行环境初始化好。这一步目前同学们基本可以在Aone上一站式完成了,就是在Aone上注册一个新应用,然后根据向导指引,把上线任务一项一项配下来。当然还有些内容比如数据库还需要访问其他系统申请配置,将来我们努力做成一站式配置好。
第二步,根据源码构建出压缩包(基本就是把war包压缩一下),然后把压缩包部署到各目标服务器上。这一步,可以在Aone上一键完成。将来更新版本也一样。点一下按钮,所有事情都做完。这就是用Aone的好处。
阿里巴巴相关术语
为了使用Aone,我们得了解一些Aone的关键概念。其实是在阿里巴巴开发时,大家一开始约定俗成的概念,后来固化在Aone上。我们一个一个来看:
应用:Git库里装的是源代码,这是程序的一种形态。那么运行中的程序叫什么呢?在阿里巴巴,我们管它叫“应用”。一般来说,一个Git库,构建生成一个包,产生一个应用,在若干台服务器/虚拟机/容器中运行,在测试、线上环境中运行。一般应用跟Git库是一比一的关系,不过也有各种特殊情况,比如一个Git库里有多个应用。所以,我们确实需要应用这个概念。另外,应用不仅包括了应用主包(通常是war包打成tgz包),也包括了运行所需环境的配置,比如tomcat版本等。
二方包:三方包,指的是来自阿里巴巴外部的,开源或商业的包,比如jar包、rpm包等。而二方包,则是指来自阿里巴巴内部的,通常是其他团队的包。也就是说,一个团队研发出这个二方包,公布出来,供各团队使用。当然,也可能就是供团队自己使用。反正,只要是来自阿里内部的,上传到Nexus或Yum这样的包的仓库的,就都算二方包。
产品/产品线/产品树:应用是从部署运维的角度看运行中的程序。产品是从使用者的角度看运行中的程序。通常产品由一到多个应用组成。产品进而构成产品线,这样一级一级地上去,形成了一棵树,叫产品树。产品树的根节点,就是阿里巴巴。产品树的第一级展开,是各个BU。
变更:在外面的世界,现在变更通常是指线上运行环境的变化,比如更新了软件版本,比如扩容、缩容等运维操作。在阿里巴巴,变更也有这个含义。但是在阿里巴巴,变更还有一个含义,软件研发过程中的含义。通常我们把一条feature分支就对应到一个变更。于是也常管这条feature分支叫变更分支。从这个角度看集成,就是把若干变更攒到一起,通过各种质量检测后,部署上线。
发布:发布,release,这个词常常是指软件版本公布出来供使用。但在阿里巴巴,这个词不仅对应于部署到线上环境,即使是部署到测试环境,也叫发布。换句话说,发布基本上就是部署的代名词。比如每个变更觉得自己OK了,就点一下变更详情页面上的“提交待发布”这个钮,标记一下。然后,在集成测试环境(也就是日常环境)对应的流程阶段的详情页面,就能看见这个变更。再选中它,然后点击“提交发布”这个钮,就与其他变更分支一起合并到发布分支,并部署到测试环境啦。
技术发展趋势
发布部署方面,在阿里巴巴,时下最重要的变革当然是Docker化。
那么这一波浪潮之后,下一波浪潮会是什么呢?有可能是Serverless架构。这方面的文章也很多,大家可以翻翻看。
提高质量的多种方法
刚才我们给的是一个天上掉馅儿饼的例子,忽然间得到了完美的源代码,然后考虑构建并部署上线。现实世界中哪儿有这样的好事儿啊。代码里面肯定有bug。那么,怎么能够有效率地把问题找出来,继而修复好?具体有哪些方法?
按四个象限梳理
为方便梳理,我们划一个横轴,一个纵轴,然后按照得到的四个象限,梳理各种质量保证方法。这里所说的横轴,在最左边,是源代码。在最右边,是运行中的程序。这里所说的纵轴,在最上边,是自动化,在最下边,是人工。
先看左半部分。左下角,人工的对源代码的检测。这主要对应的是代码评审。我们在代码服务这门课上介绍的。此外,安全评审有时也有人工介入。
左上角,自动对源代码的检测。代码规约的自动检查工具,就落在这里。事实上,还有不少工具也落在这里,论品牌,有Sonar、PMD等。论方法,有圈复杂度等。所有这些自动检测,被称之为Staticprogram analysis 或 Static code analysis,静态程序分析/静态代码分析。
这方面,在阿里巴巴有工具支持,对应的是Aone的实验室这个功能。可以通过实验室,接入各种静态程序分析工具和方法。实验室的前身是CISE。现在CISE也仍然是实验室背后的引擎。所以有时候听别人说CISE的时候,你就知道其实指的就是实验室啦。
再来看右半部分。右上角,是自动的对运行中的程序的检测。这也就是常说的自动测试啦。在阿里巴巴,也是主要由Aone的实验室来向大家提供相应服务。这包括单元测试/集成测试;接口测试/Web UI测试;功能测试/性能测试,等等。
右下角,是人工测试。虽说是人工测试,工具也同样可以提供支持,主要是管理测试用例。相应的工具是Aone中的测试用例管理。
测试环境隔离技术
不论是自动测试还是人工测试,只要是需要先把应用部署到测试环境,那就跟测试环境的管理有关系了。测试环境的管理,我们专门讲一讲测试环境隔离技术。
想象一下,你开发了一个feature,也就是一个变更。为了让它比较靠谱再送去集成,你需要对它进行测试。单元测试当然好,但这是不够的。需要尽可能模拟真实环境进行测试。那么问题来了,如何尽可能模拟真实环境?比如,为每个淘系的工程师另搭一个淘宝测试用?这费用咱真花不起……
怎么解决这个问题?阿里巴巴用了一个聪明的方法,测试环境隔离。让大家共享一个测试环境,但又仿佛每个人都是独占它的,互相不干扰。
具体说来,假定搭起一套测试环境,需要1000台机器,分别运行应用ABCDE……。这个环境我们称作日常测试环境。每个应用的版本,我们姑且称之为A0、B0、C0、D0、E0……
现在假定甲这名同学在开发A这个应用的一个变更,在开发过程中,现在产生的应用版本是A1。于是把A1部署到单独一台机器上,并用一些神奇的技术(通过中间件等)与刚才说的日常测试环境连通。于是,在甲这名同学看来,他所面对的系统是A1、B0、C0、D0、E0…… 而且仿佛他独占了这个系统。
类似地,如果乙这名同学为了一个feature,在开发A和B分别拉出变更分支,产生A2、B2。那么A2、B2将分别被部署到单独的机器上,然后它们一起与日常测试环境连通。于是,在乙这名同学看来,他所面对的系统是A2、B2、C0、D0、E0…… 从乙的角度看,他仿佛独占了整个测试系统。甲和乙在测试时,不会互相干扰。
有了这样的解决方案,就同时达到了两个目标:尽量模拟真实的环境;用不高的代价。
关于测试环境隔离技术,这里只是简单介绍下原理。
阿里巴巴相关术语
项目环境:就是前面说的,测试一个feature所需的测试环境。可能对应一个应用上的一个变更,也有可能对应多个应用。项目环境使用了上面讲的测试环境隔离技术,背后接的一整套测试环境,是日常环境。
日常环境:就是集成测试环境。把各个变更攒在一起,然后部署到这里,看是不是能work。
预发环境:这个环境比日常环境更接近真实环境。事实上,从网络隔离的角度,它不是在测试网,而是在生产网。它所连接的数据库,也通常就是线上运行使用的数据库。一般来说,是先在日常环境测试,通过了再到预发环境测一下。
正式环境:正式环境就是生产运行的真实环境,向广大用户提供服务。
流水线
所谓流水线,通俗地讲就是把不同的工作按一定顺序串起来。为什么要串起来呢?
首先,有些工作天生就是有先后顺序的。如果想部署,总得先构建吧。所以构建-部署,就是天然的工作顺序。如果每次都是先点个按钮做构建,等构建结束后再点个按钮做部署,好像有点儿笨,不如点一个按钮,把这两件事按顺序都做了。
其次,为保证质量,我们想往流程里面加规则和卡点。比如,必须通过代码评审和安全评审,才允许合并代码。这些质量保证性的工作,还有可能有不同的顺序和频率。典型的单元测试和静态程序分析应该早做,频繁地做。而整个链路的测试,比较费劲,频率可以相对低些。因此,这些工作也是流水线中的环节,并且可能以不同频率执行。不同频率这个事儿,就是持续交付这个流行词儿中所说的不同stage(阶段)不同频率。
Aone提供了把不同的工作串接的能力,也就是流水线的能力。在分支模式下,每个环境,比如日常、预发、正式,分别对应一条流水线。在Git Flow和自由模式下,你甚至可以把所有工作内容,从代码提交到最后正式发布,做到一个流水线里。看着代码过一道道“关口”,然后发布上线,还是很爽的。
结语
以上,概要地介绍了从源代码到上线的基本的构建部署过程,讲解了各种质量保证方法及其工具支持,讲解了流水线把流程作业连接起来自动运转。这些能力合在一起,就实现了对持续交付的一整套工具支持方案。当然,如果你问DevOps的工具支持方案,我也会说,以上几部分,构成了DevOps的工具支持方案…… 名字是次要的,关键是帮上广大研发同学的忙,高效且稳妥的开发和发布。
这节课只是概要介绍。有需要的童鞋可以使用Aone的对外版本云效,体验一位阿里技术人工作的一天。
原文发布时间为:2018-09-10本文作者:董越本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术”。
文章
运维 · 测试技术 · 数据库 · 开发工具 · git
2018-09-10
阿里技术人的第一节课
扫码或点我直达 免费领
云小妹导读:本期的分享我们邀请到了阿里巴巴研发效能事业部的董越老师,他是阿里巴巴内部培训百年技术课堂的著名讲师,他讲的《百技课程-代码服务》是每一位入职技术童鞋必修的一门课,我们也将这种阿里内训技术首次面向业界公开,希望可以影响更多技术人。这节课分享中提及的阿里技术人使用的产品Aone也于2017年正式上阿里云,以云效的产品名面向业界开发开放。
讲师简介:董越,高级产品专家。在软件研发管理领域钻研十余载,是《未雨绸缪——理解软件配置管理》等书的作者或译者。2014年加入阿里,目前从事阿里巴巴软件研发协同平台(Aone/云效)的产品设计工作。
概述
同学们好。为了让新同学能够比较快速的开始在阿里巴巴研发环境下的开发,我们设计了几门课程。其中,本节课程是百技课程-代码服务的接续课程,介绍源代码写好后,如何发布上线的内容。这包括:从源码到上线、质量检测的多种方法、流水线三个部分。其中每一部分,在本文中都是概要性的介绍,并给出相应的参考文档,作为进一步学习的资料。
学习了这门课程,大家就知道了在阿里写完源代码之后,要做哪些事情,使用什么工具,就能把软件安全发布上线。
从源码到上线,事情可不简单
问大家一个问题,什么叫程序?或者说,什么叫软件?好像这里面有歧义。有时候指的是源代码。有时候指的是安装包或者安装光盘,比如,“我下载了一个软件。” 而有时候指的是已经安装好随时可以运行的程序。比如手机上新装了一个应用。还有的时候指的是正在运行中的,正在提供服务的程序,比如一个网站。
有这些不同的含义,其实反映了一件事情:单纯的源代码,其实还不能提供服务,不能为用户带来价值。只有源代码被构建打包,并且被部署运行起来,才能为用户带来价值。
那么,如何才能部署运行起来,为用户提供服务呢?这很麻烦吗?是的,这很麻烦。
想象一下,你是一个初创企业的CTO。忽然天上掉馅儿饼,掉下来五个Git库,源代码已经写好,而且一点儿毛病没有。每个Git库能编译成一个war包。你需要把每个war包部署到100台服务器上,总共需要500台服务器。哦对了,随着用户使用,会不断追加新功能,产生新版本,需要更新服务器上的软件版本。
假定你不是在阿里巴巴。假定也没有阿里云。假定你只是有很多钱可以雇到合适的人。你想想一共有多少事情要做?
要买服务器。哦不,先要买或者租机房。风火水电要搞稳妥。要接好网络。每台机器要装好操作系统的合适版本。不止是操作系统,还有相关基础软件。还有路由。还有数据库,还有监控系统,还有日志收集系统。中间件也是必须的。哦,域名还忘了申请了……
这些搞定了,才能安装那些war包。这么多台,肯定不能一台一台操作,累死了,得有个批量操作的方法。可这方法怎么弄呢?另外,考虑到将来要更新软件版本,所以这还不是一次搞定的事情。那更是得批量操作了。更新版本的时候,还有个麻烦事,不能一下子都停机啊。那不就事故了。所以得分批来。比如,先更新20%的机器,再更新20%,如此一共五批弄完。
往细节看,其中更新某一台机器,其实都是个挺复杂的过程。首先下载新的war包到这台机器,然后开始替换过程。先得把流量切走吧,切流量前,还得先把监控报警关上。流量切走了,就可以停止当前war包的运行。然后用新的war包代替旧的war包,启动试试看。如果通过了一些基本的自动检测,说明新war包大体上能运行,于是就开始切流量回来,最后把监控报警恢复。忒麻烦!!
还好有工具帮忙
怎么办?用趁手的工具啊。正是为了提高大家的工作效率,让大家能够集中精力在具体业务本身的研发上,阿里巴巴集团多年以来建设了一整套基础设施。
在交付层和运维层,都有大量的基础设施。但这些,大家可能感受不深。因为对于一个应用来讲,它最关心的事情,基本都是通过Aone暴露出来的。Aone也就是最上层研发层的主要工具。
回到前面讨论的场景,把完美的源代码发布上线这个过程,那么大体步骤应该是:
·
第一步,把运行环境初始化好。这一步目前同学们基本可以在Aone上一站式完成了,就是在Aone上注册一个新应用,然后根据向导指引,把上线任务一项一项配下来。当然还有些内容比如数据库还需要访问其他系统申请配置,将来我们努力做成一站式配置好。
· 第二步,根据源码构建出压缩包(基本就是把war包压缩一下),然后把压缩包部署到各目标服务器上。这一步,可以在Aone上一键完成。将来更新版本也一样。点一下按钮,所有事情都做完。这就是用Aone的好处。
阿里巴巴相关术语
为了使用Aone,我们得了解一些Aone的关键概念。其实是在阿里巴巴开发时,大家一开始约定俗成的概念,后来固化在Aone上。我们一个一个来看:
应用:Git库里装的是源代码,这是程序的一种形态。那么运行中的程序叫什么呢?在阿里巴巴,我们管它叫应用。一般来说,一个Git库,构建生成一个包,产生一个应用,在若干台服务器/虚拟机/容器中运行,在测试、线上环境中运行。一般应用跟Git库是一比一的关系不过也有各种特殊情况,比如一个Git库里有多个应用。所以,我们确实需要应用这个概念。另外,应用不仅包括了应用主包(通常是war包打成tgz包),也包括了运行所需环境的配置,比如tomcat版本等。
二方包:三方包,指的是来自阿里巴巴外部的,开源或商业的包,比如jar包、rpm包等。而二方包,则是指来自阿里巴巴内部的,通常是其他团队的包。也就是说,一个团队研发出这个二方包,公布出来,供各团队使用。当然,也可能就是供团队自己使用。反正,只要是来自阿里内部的,上传到Nexus或Yum这样的包的仓库的,就都算二方包。
产品/产品线/产品树:应用是从部署运维的角度看运行中的程序。产品是从使用者的角度看运行中的程序。通常产品由一到多个应用组成。产品进而构成产品线,这样一级一级的上去,形成了一棵树,叫产品树。产品树的根节点,就是阿里巴巴。产品树的第一级展开,是各个BU。
变更:在外面的世界,现在变更通常是指线上运行环境的变化,比如更新了软件版本,比如扩容缩容等运维操作。在阿里巴巴,变更也有这个含义。但是在阿里巴巴,变更还有一个含义,软件研发过程中的含义。通常我们把一条feature分支就对应到一个变更。于是也常管这条feature分支叫变更分支。从这个角度看集成,就是把若干变更攒到一起,通过各种质量检测后,部署上线。
发布:发布,release,这个词常常是指软件版本公布出来供使用。但在阿里巴巴,这个词不仅对应于部署到线上环境,即使是部署到测试环境,也叫发布。换句话说,发布基本上就是部署的代名词。比如每个变更觉得自己OK了,就点一下变更详情页面上的“提交待发布”这个钮,标记一下。然后,在集成测试环境(也就是日常环境)对应的流程阶段的详情页面,就能看见这个变更。再选中它,然后点击“提交发布”这个钮,就与其他变更分支一起合并到发布分支,并部署到测试环境啦。
技术发展趋势
发布部署方面,在阿里巴巴,时下最重要的变革当然是Docker化啦。这方面的文章很多,比如阿里人,请用AliDocker、以及具体指导T4 应用迁移 docker 发布。
那么这一波浪潮之后,下一波浪潮会是什么呢?有可能是Serverless架构。这方面,外面的文章也很多,大家可以翻翻看。
提高质量的多种方法
刚才我们给的是一个天上掉馅儿饼的例子,忽然间得到了完美的源代码,然后考虑构建并部署上线。现实世界中哪儿有这样的好事儿啊。代码里面肯定有bug啊。那么,怎么能够有效率地把问题找出来,修复好?具体有哪些方法?
按四个象限梳理
为方便梳理,我们划一个横轴,一个纵轴,然后按照得到的四个象限,梳理各种质量保证方法。这里所说的横轴,在最左边,是源代码。在最右边,是运行中的程序。这里所说的纵轴,在最上边,是自动化,在最下边,是人工。
先看左半部分。左下角,人工的对源代码的检测。这主要对应的是代码评审。我们在代码服务这门课上介绍的。此外,安全评审有时也有人工介入。
左上角,自动的对源代码的检测。代码规约的自动检查工具,就落在这里。事实上,还有不少工具也落在这里,论品牌,有Sonar、PMD等。论方法,有圈复杂度等。所有这些自动检测,被称之为Static
program analysis 或 Static code analysis,静态程序分析/静态代码分析。
这方面,在阿里巴巴有工具支持,对应的是Aone的实验室这个功能。可以通过实验室,接入各种静态程序分析工具和方法。实验室的前身是CISE。现在CISE也仍然是实验室背后的引擎。所以有时候听别人说CISE的时候,你就知道其实指的就是实验室啦。
再来看右半部分。右上角,是自动的对运行中的程序的检测。这也就是常说的自动测试啦。在阿里巴巴,也是主要由Aone的实验室来向大家提供相应服务。这包括单元测试/集成测试;接口测试/Web UI测试;功能测试/性能测试,等等。
右下角,是人工测试。虽说是人工测试,工具也同样可以提供支持,主要是管理测试用例。相应的工具是Aone中的测试用例管理。
测试环境隔离技术
不论是自动测试还是人工测试,只要是需要先把应用部署到测试环境,那就跟测试环境的管理有关系了。测试环境的管理,我们专门讲一讲测试环境隔离技术。
想象一下,你开发了一个feature,也就是一个变更。为了让它比较靠谱再送去集成,你需要对它进行测试。单元测试当然好,但是是不够的。需要尽可能模拟真实环境进行测试。那么问题来了,如何尽可能模拟真实环境?比如,为每个淘系的工程师另搭一个淘宝测试用?这费用咱真花不起……
怎么解决这个问题?阿里巴巴用了一个聪明的方法,测试环境隔离。让大家共享一个测试环境,但又仿佛每个人都是独占它的,互相不干扰。
具体说来,假定搭起一套测试环境,需要1000台机器,分别运行应用ABCDE……。这个环境我们称作日常测试环境。每个应用的版本呢,我们姑且称之为A0、B0、C0、D0、E0……
现在假定甲这名同学在开发A这个应用的一个变更,在开发过程中,现在产生的应用版本是A1。于是把A1部署到单独一台机器上,并用一些神奇的技术(通过中间件等)与刚才说的日常测试环境连通。于是,在甲这名同学看来,他所面对的系统是A1、B0、C0、D0、E0…… 而且仿佛他独占了这个系统。
类似的,如果乙这名同学为了一个feature,在开发A和B分别拉出变更分支,产生A2、B2。那么A2、B2将分别被部署到单独的机器上,然后它们一起与日常测试环境连通。于是,在乙这名同学看来,他所面对的系统是A2、B2、C0、D0、E0…… 从乙的角度看,他仿佛独占了整个测试系统。甲和乙在测试时,不会互相干扰。
有了这样的解决方案,就同时达到了两个目标:尽量模拟真实的环境;用不高的代价。
关于测试环境隔离技术,这里只是简单介绍下原理。
阿里巴巴相关术语
·
项目环境:就是前面说的,测试一个feature所需的测试环境。可能对应一个应用上的一个变更,也有可能对应多个应用。项目环境使用了上面讲的测试环境隔离技术,背后接的一整套测试环境,是日常环境,详见下面。
日常环境:就是集成测试环境。把各个变更攒在一起,然后部署到这里,看是不是能work。
预发环境:这个环境比日常环境更接近真实环境。事实上,从网络隔离的角度,它不是在测试网,而是在生产网。它所连接的数据库,也通常就是线上运行使用的数据库。一般来说,是先在日常环境测试,通过了再到预发环境测一下。
正 正式环境:正式环境就是生产运行的真实环境,向广大用户提供服务。
流水线:所谓流水线,通俗的讲就是把不同的工作按一定顺序串起来。为什么要串起来呢?
首先,有些工作天生就是有先后顺序的。如果想部署,总得先构建吧。所以构建-部署,就是天然的工作顺序。如果每次都是先点个按钮做构建,等构建结束后再点个按钮做部署,那好像有点儿笨啊,不如点一个按钮,把这两件事按顺序都做了。
其次,为保证质量,我们想往流程里面加规则和卡点。比如,必须通过代码评审和安全评审,才允许合并代码。这些质量保证性的工作,还有可能有不同的顺序和频率。典型的,单元测试和静态程序分析应该早做,频繁的做。而整个链路的测试,比较费劲,频率可以相对低些。因此,这些工作也是流水线中的环节,并且可能以不同频率执行。不同频率这个事儿,就是持续交付这个流行词儿中所说的不同stage(阶段)不同频率。
Aone提供了把不同的工作串接的能力,也就是流水线的能力。在分支模式下,每个环境,比如日常、预发、正式,分别对应一条流水线。在Git Flow和自由模式下,你甚至可以把所有工作内容,从代码提交到最后正式发布,做到一个流水线里。看着代码过一道道“关口”,然后发布上线,还是很爽的。
结语
以上,概要介绍了从源代码到上线的基本的构建部署过程,讲解了各种质量保证方法及其工具支持,讲解了流水线把流程作业连接起来自动运转。这些能力合在一起,就实现了对持续交付的一整套工具支持方案。当然,如果你问DevOps的工具支持方案,我也会说,以上几部分,构成了DevOps的工具支持方案…… 名字是次要的,关键是帮上广大研发同学的忙,高效且稳妥的开发和发布。
这节课只是概要介绍。更多内容,阿里内部的童鞋可参考老A小谈的玩儿转项目环境这场,或文字版开发如何玩转Aone项目环境。
备注:外部的童鞋可以使用Aone的云上版本云效,体验一个阿里技术人工作的一天!
Work like alibaba系列直播内容干货专题页面已经上线,所有围绕代码托管/持续交付/测试管理/项目协作的分享干货均可点此处访问。
文章
测试技术 · 持续交付 · 开发工具 · 数据库 · git
2018-07-06
支持OSS的群晖nas开箱体验(内部冒死流出,42张美图)
第一款支持阿里云OSS群晖NAS
群晖是桌面NAS设备的领军人物,阿里云是云存储龙头老大,两者结合到一起能碰撞出什么样的火花?群晖已经推出支持阿里云存储OSS的设备,通过内部关系,我第一时间拿到两台,一睹为快。当然了,独乐乐不如众乐乐,我从一个普通使用者的视角,给大家分享开机体验。
到手两台(为了测试群晖设备之间的备份同步功能),但本次测试报告关注点是阿里云的数据同群晖数据之间的情况,我就直接使用2盘位的DS716。话不多说,上图。
包装盒和包装纸用料很实诚,打开包装纸精致的外观和磨砂质感的外部都给人一种专业可信赖的第一印象。黑色的色调,硬盘插口,信号指示灯、前1后2共计3个USB接口;两个RJ45的网线接口都非常精致,没有任何毛刺和瑕疵。作为一个定位放置在家庭或者办公室的台式设备,卖相相当不错。
我选用了2块HDD的10TB硬盘,拉出硬盘卡扣,安装非常轻松。插进去会有咔嚓的一声轻响,接入1根网线,上电,开机。
由于我网络环境的特殊性,找到设备还是花了不少时间,后来拿回家搞定。两个要点:1、设备需要正确接入网络,确保被分配到IP;2、你的网络需要有外网访问能力需要能正确的DNS解析地址。
成功配置网络后,有两种方式进入到设备配置。1、直接输入网址:http://find.synology.com;2、安装群晖的设备助手Synology Assistant,可以在群晖的官网下载。
输入网址http://find.synology.com会找到你已经开机的DS716-II。点击联机后进入设置页面
首先需要导入DSM文件,这个应该群晖设备的操作系统文件,需要从synology的下载中心下载,点击连接,会自动定位到你当前设备型号的DSM下载。选择下载pat文件。Btw.群晖的文件下载页面竟然在页面提供MD5值的显示,一看就是专业做下载的呵呵。
下载好的DSM在页面选择导入后,选择立即安装。勾选并确认。等待初始化设备完成,需要几分钟,过程中不要断电。
初始化完成后,需要填写一些基本信息,点击下一步
Quick Connect是用于远程访问的,比如你从internet访问家里的设备,也可以不用设置直接点击跳过。我这里先跳过
OK,看到这个界面就恭喜大家完成基本设置。
迫不及待的点击下File Station
需要按照引导提示,一步一步把设备中的两块磁盘初始化
群晖的设备默认选项是开启Raid功能,格式化还有一定损耗,所以,虽然我是两块10TB的HDD磁盘,初始化后的可用空间只有9.09TB(这个地方等我下次试试4盘位的设备,看看Raid是1+1的模式还是3+1或者5+1)。还是云存储服务商实在,云上的空间都是3份高可用,格式化后的实实在在的空间啊。
硬盘的初始化需要几分钟的时间,设备中也传出轻微的读写的声音。整体设备的噪音控制的非常不错,我在一个安静的房间里面,基本上听不到风扇或者硬盘大的声音,这点对于定位在塔式设备,放置于家庭或者办公室是必备的条件,群晖做的很赞。
完成后,可以创建一个共享文件夹,我选择的名称“ToOSSTest”
群晖NAS提供非常丰富的数据服务,并提供数据保护Riad的机制。本地文件夹同步到设备端,NAS协议支持(NFS/CIFS)等。同时,群晖通过套件中心的模式,提供类似苹果App store的机制,打造自己的生态。而我们今天要重点尝试的阿里云OSS同群晖协作,也是通过套件中心安装Cloud sync来激活。
点击套件中心,输入Cloud sync,点击安装套件。
安装完毕后,点击左上角“显示桌面”,选中安装好的Cloud Sync鼠标右键,选中添加到桌面。
打开Cloud Sync,找到“Alibaba Cloud Object Storage”点击下一步
输入您在阿里云账号对应的Access Key 和Secret Key信息。这里我假定读者都是阿里云用户,ak的获取方式我略过不讲(如果没有,可以在阿里云官网获取)
输入您的AK信息,他会自动带出你当前账号下所有的Bucket信息,您也可以选择新建一个bucket。
配置和云端OSS的同步方式,本地路径选刚才新建的“ToOSSTest”。同步方式我选了“双向”。这个地方我比较好奇,他是怎么实现双向同步数据的一致性保证的,特别是还有一个勾选框“启用高级一致性检测”。如果我同时在本地和云端进行修改,群晖应该有特别的算法,保证两边数据的一致。当然,也可以选择“仅仅下载的时候更改”(以云端文件版本为准)和“仅上传本地更改”(以本地版本为准)的另外两种模式。
值得称赞的是,群晖设备还支持加密和定时任务。有本地加密和云端加密两个勾选框。云端加密应该是调用的OSS的服务器端加密模式。本地加密模式群晖提供用户自定义密码,在加密上传和下载时需要输入。这样,就可以完整的构建出端到端的加密架构了。。
计划任务的交互很赞,你可以方便的设定同步备份到云端OSS的日期,遗憾的是没有支持时段。OSS的下行流量是提供了闲时流量半价的,如果能提供不同时间段的选择。这样在闲时从云端下载数据,那是相当的划算。
点击确认配置设置。会立即同步当前文件夹的数据到云端OSS。我现在的文件夹中是空的 ^_^
再次点击设置,可以配置同步的频率和流控。不填就是不限制带宽。
测试一把,从File Station中选中刚才新建的共享文件夹“ToOSSTest”,上传一些图片,登录阿里云OSS控制台立即可以看到文件已经同步到OSS。
这个地方有个细节详细大家已经发现。群晖的设备如果新增文件,应该使用的文件的创建日期,而同步到OSS后,OSS的文件创建时间使用的是上传成功的日期。从OSS下载这个文件,文件的创建时间也会变为最新的4-15号。这点我觉得群晖做的比较好,保留了原本文件的日期属性,很细节的个小体验体现产品经理的Sense呵呵。
再上传一个400M左右的视频文件
速度还行,我家是54M的路由器+电信100Mbps。当然,家里宽带上行一般只有下行的1/10;而且估计还被电信限流了。
上传视频到设备端成功后,会自动出现一个同步到云端的小Icon。点击Icon会有同步到云端的简单设置。交互体验不错。群晖应该是使用了OSS的分片断点续传的接口,需要等待一段上传的时间。
上传云端OSS成功后,icon会变成这样。
通过OSS控制台查看,文件已经出现在OSS控制台list中。
在Could Sync配置界面,还提供完整的同步日志。日志出现的非常快,感觉不是从OSS服务器端获取的OSS日志,而是群晖设备自己记录的日志。
体验先告一段落,群晖设备本身的交互体验很赞,整合云端OSS的能力也比较全面整体给我非常不错的感受。无论从界面的布局,功能的健壮性,小到一个icon的设计,群辉都给我一种用心做产品,独具匠心的感受。同时,群晖本身自带的图片,视频,文档协助,本地存储能力,加上阿里云上无限的存储空间,企业级的存储服务联手给人非常多的遐想空间。
美中不足的是,目前群晖主要是把阿里云OSS作为云端文件备份,并没有实现存储空间的拓展,如果本地只是缓存,所有数据都存储在云端。这样就极低成本的拥有一个无限扩张的存储空间。;另外,群晖设备目前没有快照的能力,也没有提供版本管理。如果这个能力具备,就能通过群晖这台设备作为本地共享的NAS存储,把其他服务器的备份都通过通过这台同云连接的设备快照到云端。当本地有其他服务器故障后,通过云端的快照快速回复数据。再进一步设想,如果群晖的快照能力能支持云端虚机的镜像,我们就可以通过VPC构建一个混合云的容灾备份环境。本地遇到断电或者灾难事件,可以在云端直接起服务,低成本的实现云端灾备和恢复。
我们畅想下,场景A:初创型的企业需要文档共享和协作。我们可以在办公环境购置一台群晖的设备,并配置阿里云OSS云端存储空间。通过群晖的移动端,阿里云OSS的控制台,客户端,利用阿里云的高速通道或者8线BGP网络,快速的进行文件的下载和分享。
场景B:如果实现了群晖设备端到云端设备的容量拓展。目前最火的在线教育创业者就能通过本地设备写入制作好的视频课程,通过阿里云的网络实现快速的点播授课。海量的视频文件也不用担心本地空间不够或者数据丢失。
场景C:一家有多地分公司的企业,可以在每家分公司配置一台群晖的设备,通过多台设备同阿里云OSS组成VPC网络。方便的在企业内部实行数据的就近上传和下载,同时拥有无限扩容的存储空间。
还有太多太多玩法,大家可以一起来畅想。目前群晖支持阿里云OSS的版本还在内部测试期,已经购买群辉设备的朋友们可以留言给我,我可以提供内部测试版本给大家试用。期待群晖和阿里云存储不断碰撞出火花,把更好的产品推向市场,服务大众。
上一篇分享 初探阿里云存储网关
文章
存储 · 测试技术 · 文件存储 · 数据安全/隐私保护 · 对象存储
2017-04-15
企业OA产品怎么选 看完这篇横评就懂了
几年来初创企业、中小型企业迅速涌现,也意味着企业级服务迎来春天。而这其中,对于OA的市场需求尤为明显。
OA,即办公自动化,是使用频率最高的企业应用系统,不论是大型巨头还是小型初创企业,处理内部的各种流程、人员事务关系等等都依赖于OA软件的帮助。云计算时代,一键部署使用升级的特性让OA软件被更加广泛的应用。
阿里云市场做为国内最知名的软件服务交易交付平台,同样为用户提供了各类OA产品的一键购买部署服务。今天我们挑出了阿里云市场中的四款国内主流OA产品进行试用,从多个方面来考察各家产品的表现,希望最终为大家选择OA产品提供一些参考。
评测产品
产品名称
购买地址
阿里云办公
https://market.aliyun.com/products/56778013/cmdd009720.html
泛微eteams标准版
https://market.aliyun.com/products/56778013/cmgj007203.html
Formtalk企业版
https://market.aliyun.com/products/56778013/cmgj018838.html
Worktile企业版
https://market.aliyun.com/products/56778013/cmfw019801.html
我们将从界面UI设计、主要功能模块表现、多平台支持情况和价格,这几个方面对以上四款OA产品进行体验评测,并为每一环节打分。本次评分采用100分满分制,其中各环节分数构成比为:
界面UI设计占比20%
主要功能模块表现占比50%
多平台支持情况占比10%
价格因素占比20%
以上就是本次评测的评分规则,下面我们就进入评测环节。
界面UI设计
一般来说,传统的企业级应用对UI界面都不太怎么注重,都是以实现功能为主。但是OA产品却不同,作为企业内部事务管理,尤其是流程处理的工具,OA本身就是一种强交互的应用,因此对于交互界面的设计有着特殊的要求。
在这里我们并不要求OA具有消费级应用那样的美观设计,但功能区块和层次结构一定要简洁明确,能够以最少的步骤调用恰当的功能,以及方便管理的区块布置。
阿里云办公是集成在阿里钉钉中的组件,所以在设计上遵从的是钉钉的结构逻辑,功能多开时则是采用的标签页区分,看上去更加直观。整个操作界面采用的是扁平化设计,通过左侧边栏和顶部标签页共同实现功能间的切换。
阿里云办公界面设计
泛微eteams在界面设计上是最接近消费级应用的,拥有最开阔的主视图和导航栏,顶部的导航栏可以明确地区分功能模块,比如聊天、任务、审批和应用扩展。右上角的新建快捷键也将主要的新建项目归纳起来,方便快速创建新项目。同时账户设置入口和软件设置入口也都处于大家习惯的左右上角,不会造成找不到的尴尬。
在各个具体的功能模块中,eteams也采用了扁平化的设计思路,左侧的功能栏以扁平层次呈现,而非一层套一层的嵌套式结构,可以更方便查看功能项。
eteams主界面
Worklite的界面设计理念与eteams基本一样,默认主屏是聊天窗口,这也是企业办公中使用频率最高的功能之一。整个UI的结构以左侧的功能导航条为轴心,采用扁平化结构设计,大功能导航和单个功能中的小功能导航出现在同一个界面中,有着非常明显的层次感。
Worktile的界面
Formtalk的产品设计思路与以上几家均不相同,偏向定制化,除了普通员工使用界面外,管理员还可以“定制”应用配置,为不同的员工职能提供不同的使用界面。当然,这在赋予Formtalk强大的可定制权限的情况下,也给普通用户的使用带来了一定的不便。
Formtalk的UI设计
界面UI设计评分:
产品名称
评分
阿里云办公
90
泛微eteams
80
Formtalk
80
Worktile
90
主要功能模块表现
作为一款OA产品,核心自然是能提供企业普遍需求的功能,比如流程审批、日程管理、客户合同管理、工作报告等等,这些可以说是OA产品的标配。这个部分我们就来看看参测产品在主要功能模块上的表现如何,以下是我们认为当下OA产品应该具备的功能:
产品名称
聊天工具
流程审批
任务管理
客户合同管理
知识库管理
工作报告
阿里云办公
√
√
√
√
√
√
泛微eteams
√
√
√
√
√
√
Formtalk
√
√
√
√
×
√
Worktile
√
√
√
√
√
√
从上表中我们可以看出eteams、Worktile和阿里云办公的功能相对来说是比较完整的,而Formtalk缺失了知识库管理功能,不过对于企业,选择合适自己需求的OA产品要比功能多的有优势。在上述功能之外,eteams提供了更多更细分的功能模块,所以表现还要更胜一筹。
下面我们就各个功能来看看各参测产品的表现。
首先是聊天工具,阿里云办公的聊天功能直接使用的就是钉钉的内置聊天,还有视频会议功能,也有自己的强项。eteams的聊天工具提供了基础的社交功能,支持附件的添加和历史纪录的回访,属于中规中矩。Formtalk可以在聊天时直接调用任务、日程、公告、网盘等其他功能。
Worktile聊天界面
流程审批方面,阿里云办公的后台管理需要跳转至网页进行,但功能也还算完善,满足一般企业的需求。eteams和Formtalk都提供了详细的设计选项,支持管理员根据公司的具体要求设置相应的流程步骤、关联触发等条件,也都提供了现成的在线表单模板库供下载使用,表现都不错。移动端流程设计表现上,Formtalk的观感要好一些。
Formtalk流程审批设置
任务管理方面,eteams和Worklite的功能类似,具有相对标准的任务创建流程,以及个人及公司任务的管理列表,包括评估、进度统计等等,只不过Worklite提供了更加细分的选项。而Formtalk则大不相同,在任务计划中可对任务流程和表单进行设计,为自定义提供了便利,但并没有管理目录,在统筹管理方面可能会存在问题。
客户合同管理方面,阿里云办公集成了一整套爱客CRM系统,分类和功能非常细致。eteams提供了基础的创建与管理功能,包括我的合同管理、待批合同管理以及统计数据等。但Formtalk在这一点上做得更完善,除了将合同进行智能分类,还支持合同的状态跟踪、执行阶段以及回款管理等细分项。
阿里云办公集成的CRM系统
知识库管理方面,阿里云办公的知识库集成在CRM模块中,对多个项目进行了分类管理,比如产品资料、销售资料等等。Formtalk没有提供此项功能,但eteams和Worklite的知识库功能其实也就是个企业网盘,员工们可以将自己的知识积累或者其他资料上传到公共网盘中,至于知识库分类则是人工设置的。
日报管理方面,eteams支持创建和管理统计个人日报,且在创建日报时会自动关联当日的任务和日程,此外还可以查看关注的人的日报。而Formtalk和阿里云办公则在日报方面就更加细化,除了工作日报外,还有生产日报、销售日报、销售进度表表等更细分的项目。
eteams日报系统
总结来看,eteams、Worklite和阿里云办公在各项的表现都比较接近,逻辑也很相似,属于简单上手性的,能够满足基本的日常需求。而Formtalk则比较特殊,部分功能上非常专业,但自定义化也导致学习成本较高,另外缺失知识库功能。
主要功能模块表现评分:
产品名称
评分
阿里云办公
70
泛微eteams
70
Formtalk
70
Worktile
70
多平台支持和价格对比
在这个设备丰富程度大爆发的时代,公司内员工的办公设备也不都是统一的,因此OA产品还需要具备的一个要素就是多平台支持,尤其是在对移动设备的支持。
那么参测的四款产品在平台支持方面做的如何呢?我们主要是考察对Web、PC、Mac、iOS和Android的支持,下面是结果:
产品名称
Web
PC
Mac
iOS
Android
阿里云办公
×
√
√
√
√
泛微eteams
√
√
√
√
√
Formtalk
√
×
×
×
×
Worktile
√
√
√
√
√
可以看出,eteams和Worktile在平台支持方面的表现还是很全面的,目前的主流平台都全面覆盖了。阿里云办公由于是集成在钉钉上的,所以没有提供网页版;而Formtalk是非常特殊的不配置客户端的应用模式,以Web开放平台形式接入平台。
多平台支持评分:
产品名称
评分
阿里云办公
90
泛微eteams
100
Formtalk
60
Worktile
100
最后来看看价格,这可以说是最直观的评判标准了,当然是价格越低越好,那我们就直接上价目表了。当然,以上四款软件都提供免费试用。
产品名称
价格(元/人/年)
评分
阿里云办公
298
100
泛微eteams
998
40
Formtalk
400
80
Worktile
499
70
需要说明的是,阿里云办公的收费是我们经过换算的,因为它的收费模式比较复杂,我们选取了其中价格最高的一种购买模式进行的换算,而具体的价格信息如下:980元/6人/年;2980元/10人/年;4980元/30人/年;8980元/50用户/年;18980元/不限用户/年。
总评与结语
好了,经过一系列环节的评测以及打分,我们到最后也可以将所有的评分总结一下来看看最终成绩如何了。正如开篇我们规定的,每一项评分将以如下规则计入总分:界面UI设计占比20%、主要功能模块表现占比50%、多平台支持情况占比10%、价格因素占比20%。
那么以下就是四款参测产品最后的评分:
产品名称
界面UI设计评分
主要功能模块表现评分
多平台支持评分
价格评分
总评分
阿里云办公
90
70
90
100
82
泛微eteams
80
70
100
40
69
Formtalk
80
70
60
80
73
Worktile
90
70
100
70
77
从上图我们可以看出,这四款产品中最后的分最高的为阿里云办公,也就是我们此次横评的最终胜出者。
需要说明的是,这四款OA产品都有自己特别有优势的项目,同时也有最薄弱的项目,而阿里云办公在各项评比中的得分也并不是特别突出的,但最后的价格实在是过于有冲击力,所以此次结果我们只是从一个整体上选出一个各方面都比较平均,性价比比较高的产品,如果有具体需求还得根据具体情况来选择。
总结:OA产品作为当代企业的必需品,几乎是每个企业或是团队都要面临选择这一关的,因此也希望我们的评测能够给大家提供一些参考。当然,更重要的是我们现在还有了像阿里云市场这样的平台,购买和安装OA产品终于有了一个统一透明的渠道,而不必再到处抓瞎了。
阿里云办公
泛微eteams
致远formtalk云应用平台
Worktile
更多企业应用,请进入云市场企业应用频道:https://market.aliyun.com/enterprise
基于HaaS100搭建云端一体RFID读卡器
1、前言
无线射频识别即射频识别技术(Radio Frequency Identification,RFID)是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对电子标签或射频卡进行读写,从而达到识别目标和数据交换的目的。
RFID技术具有抗干扰性强以及无需人工识别的特点,所以常常被应用在一些需要采集信息的领域上,例如物流,仓储,防伪,身份识别等领域。
接下来我们学习下怎么基于HaaS100 搭建RFID读卡器,读取卡片信息,并且通过阿里云平台将其传到我们的手机上。
2、RFID射频识别系统的工作原理
电子标签进入天线磁场后,若接收到读写器发出的特殊射频信号,就能凭借感应电流所获得的能量发送出存储在芯片中的产品信息(无源标签),或者主动发送某一频率的信号(有源标签),读写器读取信息并解码后,送至中央信息系统进行有关数据处理。
典型的RFID系统主要由应用系统软件,RFID读写器,电子标签3部分构成。
3、RFID读写器介绍
TX522 是一款基于13.56MHz频率的Mifare卡读写模块,可以支持多种类型卡,TX522 Mifare卡读写模块具有天线一体化,识别距离达到80mm。可以通过UART接口跟HaaS100进行通信。
刷卡:
当检测到 RFID卡片靠近的时候;红色指示灯闪烁,并通过串口发送出卡片序列号相关的指令.
指令协议说明
数据通信以一帧为单位进行,格式如下:
数据通信帧结构:
第1字节:起始符;
第2字节:包号,默认:0x00;
第3字节:命令—上位机发送给IC卡读写器;
第4字节:此帧有效数据的长度。从紧接着的第1个字节开始,到倒数第3个字节结束,为有效字节。
第5字节 到 倒数第3字节: 有效数据。
倒数第2字节:校验和;
倒数第1字节:结束符;
刷卡。模块上的指示灯会亮,并且通过串口主动发送卡片序列号给上位机,此时上位机就会接收到卡片序列号的相关指令。
例如指令:20 00 01 08 04 00 00 00 A6 40 FE E4 0E 03。
20:起始符
00:包号
01:命令字节,模块主动输出卡片序列号时,该字节为0x00;其他指令为命令字
08:表示后面8个字节为有效数据位
04 00:表示卡片属性为S50卡
00 00:此2个字节无实际意义。
A6 40 FE E4 :表示卡片序列号。刷不同卡片,此4个字节会变。
0E:校验和。从包号(SEQNR)开始到数据(DATA)的最后一字节异或,然后再取反 得到。
03:帧结束符。
卡片序列号是我们关注的重要信息,我们通过串口读取卡片序列号信息后将其发送给阿里云,云端再将这个信息发送到我们的手机APP上。
4、硬件连接
RFID模块通过UART接口跟HaaS100进行通信。
这个是HaaS100 硬件接口定义:
将电源线,地线,串口RX,串口TX 4根线接到HaaS板子上。
5、接入阿里云IoT平台
请参考基于HaaS 100搭建智能家居应用创建自己的应用。基于HaaS100快速搭建智能家居应用
需要注意的是在功能定义页面添加自定义功能:卡片序列号 CardID
在产品面板页面选择设备ID用于在手机上显示读取到的RFID卡片序列号。
6、HaaS 软件代码
接下来我们开始编写HaaS 上的软件代码,读取串口数据,从中提取出卡片序列号,通过linkkit SDK接口将序列号发送给阿里云IoT平台。
6.1、软件流程图
6.2、HaaS100 串口通信部分
UART串口操作说明:https://help.aliyun.com/document_detail/161062.html?spm=a2c4g.11186623.6.574.73d4c806uT1bKl
具体代码可以参考这个文件:application/example/example_legacy/uart/uart.c
int application_start(int argc, char *argv[])
{
printf("uart sample application started...\n");
uart_dev_t uart_demo;
uart_demo.port = 2;
uart_demo.config.baud_rate = 9600;
uart_demo.config.mode = MODE_TX_RX;
uart_demo.config.flow_control = FLOW_CONTROL_DISABLED;
uart_demo.config.stop_bits = STOP_BITS_1;
uart_demo.config.parity = NO_PARITY;
uart_demo.config.data_width = DATA_WIDTH_8BIT;
ret = hal_uart_init(&uart_demo);
int i;
int ret;
char rev_buf[1];
int rev_length;
while (1) {
ret = hal_uart_recv_II(&uart_demo, rev_buf, sizeof(rev_buf), &rev_length, AOS_WAIT_FOREVER);
if (ret != 0) {
printf("recv data from uart error\r\n");
break;
}
for(i = 0; i < rev_length; i++) {
printf("%02x ", rev_buf[i]&0xff);
}
printf("\r\n");
}
return 0;
}
6.3、往阿里云IoT平台发送数据
我们使用linkkit 组件中的IoT_Linkkit_Report接口将读取的卡片序列号DeviceID发送给阿里云IoT平台。
linkkit_event.c
void user_post_data(uint8_t value)
{
int res = 0;
char property_payload[30] = {0};
HAL_Snprintf(property_payload, sizeof(property_payload), "{\"DeviceID\": %s}", "123987");
res = IOT_Linkkit_Report(EXAMPLE_MASTER_DEVID, ITM_MSG_POST_PROPERTY,
(unsigned char *)property_payload, strlen(property_payload));
}
linkkit_main:
while (1) {
user_post_data();
}
7、端云联调
7.1、下载软件版本
编译,烧写步骤可以参考HaaS100快速开始
7.2、设备配网
通过命令行配网,串口输入如下指令可完成配网:
netmgr -t wifi -c {ssid} {password}
7.3、设备与云智能APP绑定
安装的云智能APP,保证手机更设备连接同一个APP.点击右上角红色标注"+" 按钮,开始设备查找。
约数秒钟后找到设备,如下图,点击完成。
至此绑定完成。
7.4、演示效果图片
当有RFID卡片靠近读卡器时,我们会在手机上看到卡片的序列号。
8、总结
本文档介绍了如何基于HaaS100 搭建RFID读卡器,读取卡片信息,并且通过阿里云物联网平台将数据传到我们的手机上,其中涉及到了HaaS 串口操作和给阿里云IoT发送数据。
RFID模块除了可以读卡上的数据外还可以给卡写入数据,还有更多的功能大家可以一起挖掘和探索。
HaaS100除了串口外还可以通过i2c、spi 等接口链接外面的传感器或者其他设备。
通过本文档介绍的这个流程,大家可以打造更多的应用场景,一起可以行动起来,亲手制作一套属于自己的智能设备吧!
9、开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页
文章
存储 · 传感器 · 移动开发 · 物联网 · 数据处理 · 开发工具 · 开发者 · 智能硬件
2021-02-02
《机器学习实战》学习笔记:K-近邻算法入门及实战|万字长文
本文来自AI新媒体量子位(QbitAI)
在模式识别领域中,K-近邻算法(KNN算法)是一种用于分类和回归的非参数统计方法。
在这篇文章中,作者先详细介绍了K-近邻算法的基础知识,接着在Python 3中演示了约会网站配对实战和sklearn手写数字识别。形象生动,简明易懂。
在文章正式开始前,可能你需要这些信息——
Github代码获取:
https://github.com/Jack-Cherish/Machine-Learning/
Python版本: Python3.x
运行平台: Windows
IDE: Sublime text3
想入门的你还不快来上车。
一. 简单k-近邻算法
本文将从k-邻近算法的思想开始讲起,使用python3一步一步编写代码进行实战训练。并且,我也提供了相应的数据集,对代码进行了详细的注释。除此之外,本文也对sklearn实现k-邻近算法的方法进行了讲解。
实战实例:电影类别分类、约会网站配对效果判定、手写数字识别。
本文出现的所有代码和数据集,均可在我的github上下载,欢迎Follow、Star——
下载地址:
https://github.com/Jack-Cherish/Machine-Learning/tree/master/kNN
1.k-近邻法简介
k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法。
它的工作原理是:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。
输入没有标签的新数据后,将新的数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。
最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
举个简单的例子,我们可以使用k-近邻算法分类一个电影是爱情片还是动作片。
△ 表1.1 每部电影的打斗镜头数、接吻镜头数以及电影类型
表1.1 就是我们已有的数据集合,也就是训练样本集。这个数据集有两个特征,即打斗镜头数和接吻镜头数。除此之外,我们也知道每个电影的所属类型,即分类标签。用肉眼粗略地观察,接吻镜头多的,是爱情片。打斗镜头多的,是动作片。
以我们多年的看片经验,这个分类还算合理。如果现在给我一部电影,你告诉我这个电影打斗镜头数和接吻镜头数。
不告诉我这个电影类型,我可以根据你给我的信息进行判断,这个电影是属于爱情片还是动作片。而k-近邻算法也可以像我们人一样做到这一点,不同的地方在于,我们的经验更”牛逼”,而k-邻近算法是靠已有的数据。
比如,你告诉我这个电影打斗镜头数为2,接吻镜头数为102,我的经验会告诉你这个是爱情片,k-近邻算法也会告诉你这个是爱情片。
你又告诉我另一个电影打斗镜头数为49,接吻镜头数为51,我”邪恶”的经验可能会告诉你,这有可能是个”爱情动作片”,画面太美,我不敢想象。 (如果说,你不知道”爱情动作片”是什么?请评论留言与我联系,我需要你这样像我一样纯洁的朋友。)
但是k-近邻算法不会告诉你这些,因为在它的眼里,电影类型只有爱情片和动作片,它会提取样本集中特征最相似数据(最邻近)的分类标签,得到的结果可能是爱情片,也可能是动作片,但绝不会是”爱情动作片”。当然,这些取决于数据集的大小以及最近邻的判断标准等因素。
2.距离度量
我们已经知道k-近邻算法根据特征比较,然后提取样本集中特征最相似数据(最邻近)的分类标签。那么,如何进行比较呢?比如,我们还是以表1.1为例,怎么判断红色圆点标记的电影所属的类别呢? 如图1.1所示。
△ 图1.1 电影分类
我们可以从散点图大致推断,这个红色圆点标记的电影可能属于动作片,因为距离已知的那两个动作片的圆点更近。k-近邻算法用什么方法进行判断呢?
没错,就是距离度量。这个电影分类的例子有2个特征,也就是在2维实数向量空间,可以使用我们高中学过的两点距离公式计算距离,如图1.2所示。
通过计算,我们可以得到如下结果:
(101,20)->动作片(108,5)的距离约为16.55
(101,20)->动作片(115,8)的距离约为18.44
(101,20)->爱情片(5,89)的距离约为118.22
(101,20)->爱情片(1,101)的距离约为128.69
通过计算可知,红色圆点标记的电影到动作片 (108,5)的距离最近,为16.55。如果算法直接根据这个结果,判断该红色圆点标记的电影为动作片,这个算法就是最近邻算法,而非k-近邻算法。那么k-邻近算法是什么呢?k-近邻算法步骤如下:
计算已知类别数据集中的点与当前点之间的距离;
按照距离递增次序排序;
选取与当前点距离最小的k个点;
确定前k个点所在类别的出现频率;
返回前k个点所出现频率最高的类别作为当前点的预测分类。
比如,现在我这个k值取3,那么在电影例子中,按距离依次排序的三个点分别是动作片(108,5)、动作片(115,8)、爱情片(5,89)。在这三个点中,动作片出现的频率为三分之二,爱情片出现的频率为三分之一,所以该红色圆点标记的电影为动作片。
这个判别过程就是k-近邻算法。
3.Python3代码实现
我们已经知道了k-近邻算法的原理,那么接下来就是使用Python3实现该算法,依然以电影分类为例。
(1)准备数据集
对于表1.1中的数据,我们可以使用numpy直接创建,代码如下:
运行结果,如图1.3所示:
△ 图1.3 运行结果
(2)k-近邻算法
根据两点距离公式,计算距离,选择距离最小的前k个点,并返回分类结果。
运行结果,如图1.4所示:
△ 图1.4 运行结果
可以看到,分类结果根据我们的”经验”,是正确的,尽管这种分类比较耗时,用时1.4s。
到这里,也许有人早已经发现,电影例子中的特征是2维的,这样的距离度量可以用两 点距离公式计算,但是如果是更高维的呢?
对,没错。我们可以用欧氏距离(也称欧几里德度量),如图1.5所示。我们高中所学的两点距离公式就是欧氏距离在二维空间上的公式,也就是欧氏距离的n的值为2的情况。
△ 图1.5 欧氏距离公式
看到这里,有人可能会问:“分类器何种情况下会出错?”或者“答案是否总是正确的?”答案是否定的,分类器并不会得到百分百正确的结果,我们可以使用多种方法检测分类器的正确率。此外分类器的性能也会受到多种因素的影响,如分类器设置和数据集等。
不同的算法在不同数据集上的表现可能完全不同。为了测试分类器的效果,我们可以使用已知答案的数据,当然答案不能告诉分类器,检验分类器给出的结果是否符合预期结果。
通过大量的测试数据,我们可以得到分类器的错误率-分类器给出错误结果的次数除以测试执行的总数。
错误率是常用的评估方法,主要用于评估分类器在某个数据集上的执行效果。完美分类器的错误率为0,最差分类器的错误率是1.0。
同时,我们也不难发现,k-近邻算法没有进行数据的训练,直接使用未知的数据与已知的数据进行比较,得到结果。因此,可以说k-邻近算法不具有显式的学习过程。
二.k-近邻算法实战之约会网站配对效果判定
上一小结学习了简单的k-近邻算法的实现方法,但是这并不是完整的k-近邻算法流程,k-近邻算法的一般流程:
收集数据:可以使用爬虫进行数据的收集,也可以使用第三方提供的免费或收费的数据。一般来讲,数据放在txt文本文件中,按照一定的格式进行存储,便于解析及处理。
准备数据:使用Python解析、预处理数据。
分析数据:可以使用很多方法对数据进行分析,例如使用Matplotlib将数据可视化。
测试算法:计算错误率。
使用算法:错误率在可接受范围内,就可以运行k-近邻算法进行分类。
已经了解了k-近邻算法的一般流程,下面开始进入实战内容。
1.实战背景
海伦女士一直使用在线约会网站寻找适合自己的约会对象。尽管约会网站会推荐不同的任选,但她并不是喜欢每一个人。经过一番总结,她发现自己交往过的人可以进行如下分类:
不喜欢的人
魅力一般的人
极具魅力的人
海伦收集约会数据已经有了一段时间,她把这些数据存放在文本文件datingTestSet.txt中,每个样本数据占据一行,总共有1000行。
datingTestSet.txt数据下载:
https://github.com/Jack-Cherish/Machine-Learning/blob/master/kNN/2.%E6%B5%B7%E4%BC%A6%E7%BA%A6%E4%BC%9A/datingTestSet.txt
海伦收集的样本数据主要包含以下3种特征:
每年获得的飞行常客里程数
玩视频游戏所消耗时间百分比
每周消费的冰淇淋公升数
这里不得不吐槽一句,海伦是个小吃货啊,冰淇淋公斤数都影响自己择偶标准。打开txt文本文件,数据格式如图2.1所示。
△ 图2.1 datingTestSet.txt格式
2.准备数据:数据解析
在将上述特征数据输入到分类器前,必须将待处理的数据的格式改变为分类器可以接收的格式。分类器接收的数据是什么格式的?
从上小结已经知道,要将数据分类两部分,即特征矩阵和对应的分类标签向量。在kNN_test02.py文件中创建名为file2matrix的函数,以此来处理输入格式问题。 将datingTestSet.txt放到与kNN_test02.py相同目录下,编写代码如下:
运行上述代码,得到的数据解析结果如图2.2所示。
△ 图2.2 数据解析结果
可以看到,我们已经顺利导入数据,并对数据进行解析,格式化为分类器需要的数据格式。接着我们需要了解数据的真正含义。可以通过友好、直观的图形化的方式观察数据。
3.分析数据:数据可视化
在kNN_test02.py文件中编写名为showdatas的函数,用来将数据可视化。编写代码如下:
运行上述代码,得到的数据解析结果如图2.2所示。
△ 图2.2 数据解析结果
可以看到,我们已经顺利导入数据,并对数据进行解析,格式化为分类器需要的数据格式。接着我们需要了解数据的真正含义。可以通过友好、直观的图形化的方式观察数据。
3.分析数据:数据可视化
在kNN_test02.py文件中编写名为showdatas的函数,用来将数据可视化。编写代码如下:
运行上述代码,可以看到可视化结果如图2.3所示。
△ 图2.3 数据可视化结果
通过数据可以很直观的发现数据的规律,比如以玩游戏所消耗时间占比与每年获得的飞行常客里程数,只考虑这二维的特征信息,给我的感觉就是海伦喜欢有生活质量的男人。
为什么这么说呢?每年获得的飞行常客里程数表明,海伦喜欢能享受飞行常客奖励计划的男人,但是不能经常坐飞机,疲于奔波,满世界飞。
同时,这个男人也要玩视频游戏,并且占一定时间比例。能到处飞,又能经常玩游戏的男人是什么样的男人?很显然,有生活质量,并且生活悠闲的人。我的分析,仅仅是通过可视化的数据总结的个人看法。我想,每个人的感受应该也是不尽相同。
4.准备数据:数据归一化
表2.1给出了四组样本,如果想要计算样本3和样本4之间的距离,可以使用欧拉公式计算。
△ 表2.1 约会网站样本数据
计算方法如图2.4所示。
△ 图2.4 计算公式
我们很容易发现,上面方程中数字差值最大的属性对计算结果的影响最大,也就是说,每年获取的飞行常客里程数对于计算结果的影响将远远大于表2.1中其他两个特征-玩视频游戏所耗时间占比和每周消费冰淇淋公斤数的影响。
而产生这种现象的唯一原因,仅仅是因为飞行常客里程数远大于其他特征值。但海伦认为这三种特征是同等重要的,因此作为三个等权重的特征之一,飞行常客里程数并不应该如此严重地影响到计算结果。
在处理这种不同取值范围的特征值时,我们通常采用的方法是将数值归一化,如将取值范围处理为0到1或者-1到1之间。下面的公式可以将任意取值范围的特征值转化为0到1区间内的值:
其中min和max分别是数据集中的最小特征值和最大特征值。虽然改变数值取值范围增加了分类器的复杂度,但为了得到准确结果,我们必须这样做。在kNN_test02.py文件中编写名为autoNorm的函数,用该函数自动将数据归一化。代码如下:
运行上述代码,得到结果如图2.4所示。
△ 图2.4 归一化函数运行结果
从图2.4的运行结果可以看到,我们已经顺利将数据归一化了,并且求出了数据的取值范围和数据的最小值,这两个值是在分类的时候需要用到的,直接先求解出来,也算是对数据预处理了。
5.测试算法:验证分类器
机器学习算法一个很重要的工作就是评估算法的正确率,通常我们只提供已有数据的90%作为训练样本来训练分类器,而使用其余的10%数据去测试分类器,检测分类器的正确率。
需要注意的是,10%的测试数据应该是随机选择的,由于海伦提供的数据并没有按照特定目的来排序,所以我么你可以随意选择10%数据而不影响其随机性。
为了测试分类器效果,在kNN_test02.py文件中创建函数datingClassTest,编写代码如下:
运行上述代码,得到结果如图2.5所示。
△ 图2.5 验证分类器结果
从图2.5验证分类器结果中可以看出,错误率是3%,这是一个想当不错的结果。我们可以改变函数datingClassTest内变量hoRatio和分类器k的值,检测错误率是否随着变量值的变化而增加。依赖于分类算法、数据集和程序设置,分类器的输出结果可能有很大的不同。
6.使用算法:构建完整可用系统
我们可以给海伦一个小段程序,通过该程序海伦会在约会网站上找到某个人并输入他的信息。程序会给出她对男方喜欢程度的预测值。
在kNN_test02.py文件中创建函数classifyPerson,代码如下:
在cmd中,运行程序,并输入数据(12,44000,0.5),预测结果是”你可能有些喜欢这个人”,也就是这个人魅力一般。一共有三个档次:讨厌、有些喜欢、非常喜欢,对应着不喜欢的人、魅力一般的人、极具魅力的人。结果如图2.6所示。
△ 图2.6 预测结果
三、k-近邻算法实战之sklearn手写数字识别
1.实战背景
对于需要识别的数字已经使用图形处理软件,处理成具有相同的色彩和大小:宽高是32像素x32像素。尽管采用本文格式存储图像不能有效地利用内存空间,但是为了方便理解,我们将图片转换为文本格式,数字的文本格式如图3.1所示。
△ 图3.1 数字的文本格式
与此同时,这些文本格式存储的数字的文件命名也很有特点,格式为:数字的值_该数字的样本序号,如图3.2所示。
△ 图3.2 文本数字的存储格式
对于这样已经整理好的文本,我们可以直接使用Python处理,进行数字预测。数据集分为训练集和测试集,使用上小结的方法,自己设计k-近邻算法分类器,可以实现分类。数据集和实现
代码下载地址:
https://github.com/Jack-Cherish/Machine-Learning/tree/master/kNN/3.%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB
这里不再讲解自己用Python写的k-邻域分类器的方法,因为这不是本小节的重点。接下来,我们将使用强大的第三方Python科学计算库Sklearn构建手写数字系统。
2.sklearn简介
Scikit learn 也简称sklearn,是机器学习领域当中最知名的python模块之一。sklearn包含了很多机器学习的方式:
Classification 分类
Regression 回归
Clustering 非监督分类
Dimensionality reduction 数据降维
Model Selection 模型选择
Preprocessing 数据与处理
使用sklearn可以很方便地让我们实现一个机器学习算法。一个复杂度算法的实现,使用sklearn可能只需要调用几行API即可。所以学习sklearn,可以有效减少我们特定任务的实现周期。
3.sklearn安装
在安装sklearn之前,需要安装两个库,即numpy+mkl和scipy。不要使用pip3直接进行安装,因为pip3默安装的是numpy,而不是numpy+mkl。
第三方库下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/
这个网站的使用方法,我在之前的文章里有讲过:http://blog.csdn.net/c406495762/article/details/60156205
找到对应python版本的numpy+mkl和scipy,下载安装即可,如图3.3和图3.4所示。
△ 图3.3 numpy+mkl
△ 图3.4 scipy
使用pip3安装好这两个whl文件后,使用如下指令安装sklearn。
4.sklearn实现k-近邻算法简介
官网英文文档:
http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html
sklearn.neighbors模块实现了k-近邻算法,内容如图3.5所示。
△ 图3.5 sklearn.neighbors
我们使用sklearn.neighbors.KNeighborsClassifier就可以是实现上小结,我们实现的k-近邻算法。KNeighborsClassifier函数一共有8个参数,如图3.6所示。
△ 图3.6 KNeighborsClassifier
KNneighborsClassifier参数说明:
n_neighbors:默认为5,就是k-NN的k的值,选取最近的k个点。
weights:默认是uniform,参数可以是uniform、distance,也可以是用户自己定义的函数。uniform是均等的权重,就说所有的邻近点的权重都是相等的。distance是不均等的权重,距离近的点比距离远的点的影响大。用户自定义的函数,接收距离的数组,返回一组维数相同的权重。
algorithm:快速k近邻搜索算法,默认参数为auto,可以理解为算法自己决定合适的搜索算法。除此之外,用户也可以自己指定搜索算法ball_tree、kd_tree、brute方法进行搜索,brute是蛮力搜索,也就是线性扫描,当训练集很大时,计算非常耗时。
kd_tree,构造kd树存储数据以便对其进行快速检索的树形数据结构,kd树也就是数据结构中的二叉树。以中值切分构造的树,每个结点是一个超矩形,在维数小于20时效率高。
ball tree是为了克服kd树高纬失效而发明的,其构造过程是以质心C和半径r分割样本空间,每个节点是一个超球体。
leaf_size:默认是30,这个是构造的kd树和ball树的大小。这个值的设置会影响树构建的速度和搜索速度,同样也影响着存储树所需的内存大小。需要根据问题的性质选择最优的大小。
metric:用于距离度量,默认度量是minkowski,也就是p=2的欧氏距离(欧几里德度量)。
p:距离度量公式。在上小结,我们使用欧氏距离公式进行距离度量。除此之外,还有其他的度量方法,例如曼哈顿距离。这个参数默认为2,也就是默认使用欧式距离公式进行距离度量。也可以设置为1,使用曼哈顿距离公式进行距离度量。
metric_params:距离公式的其他关键参数,这个可以不管,使用默认的None即可。
n_jobs:并行处理设置。默认为1,临近点搜索并行工作数。如果为-1,那么CPU的所有cores都用于并行工作。
KNeighborsClassifier提供了以一些方法供我们使用,如图3.7所示。
△ 图3.5 KNeighborsClassifier的方法
由于篇幅原因,每个函数的怎么用,就不具体讲解了。官方手册已经讲解的很详细了,各位可以查看这个手册进行学习,我们直接讲手写数字识别系统的实现。
5.sklearn小试牛刀
我们知道数字图片是32x32的二进制图像,为了方便计算,我们可以将32x32的二进制图像转换为1x1024的向量。
对于sklearn的KNeighborsClassifier输入可以是矩阵,不用一定转换为向量,不过为了跟自己写的k-近邻算法分类器对应上,这里也做了向量化处理。然后构建kNN分类器,利用分类器做预测。创建kNN_test04.py文件,编写代码如下:
运行上述代码,得到如图3.8所示的结果。
△ 图3.8 sklearn运行结果
上述代码使用的algorithm参数是auto,更改algorithm参数为brute,使用暴力搜索,你会发现,运行时间变长了,变为10s+。更改n_neighbors参数,你会发现,不同的值,检测精度也是不同的。自己可以尝试更改这些参数的设置,加深对其函数的理解。
四、总结
1.kNN算法的优缺点
优点
简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;
可用于数值型数据和离散型数据;
训练时间复杂度为O(n);无数据输入假定;
对异常值不敏感
缺点
计算复杂性高;空间复杂性高;
样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);
一般数值很大的时候不用这个,计算量太大。但是单个样本又不能太少,否则容易发生误分。
最大的缺点是无法给出数据的内在含义。
2.其他
关于algorithm参数kd_tree的原理,可以查看《统计学方法 李航》书中的讲解;
关于距离度量的方法还有切比雪夫距离、马氏距离、巴氏距离等;
下篇文章将讲解决策树,欢迎各位的捧场!
如有问题,请留言。如有错误,还望指正,谢谢!
五.参考说明
本文中提到的电影类别分类、约会网站配对效果判定、手写数字识别实例和数据集,均来自于《机器学习实战》的第二章k-近邻算法。
本文的理论部分,参考自《统计学习方法 李航》的第三章k近邻法以及《机器学习实战》的第二章k-邻近算法。
点击左下角“阅读原文”处,可以进入作者的知乎专栏,可以查看高清完整版代码
还能解锁更多优质文章~
— 完 —
本文作者:崔家华
原文发布时间:2017-08-27
文章
机器学习/深度学习 · 算法 · 数据可视化 · 测试技术 · Python
2018-01-10
卡巴斯基汇总收藏版
卡巴斯基汇总收藏版
作者: 阿迪 发布日期: 2005-8-05 23:38:54 查看数: 157 出自: http://www.rockdigital.net
我花了整整一天一夜时间整理验证的卡巴斯基汇总。包括卡巴斯基各版本2005年10月-2030年无重复、有效的KEY、KEY查看器、卡巴斯基加速文件、卡巴斯基卸载文件、声音修改文件、卡巴斯基帮助文件等。值得网友收藏。下载文件在第6楼!#1 卡巴斯基AVP(反病毒单机版)常见问题及解决办法(安装必看!)在本文你将能得到以下问题的解决本法(这些问题是卡巴斯基新手使用最常见的问题,我经过测试亲身体验并查阅资料整理得来的答案,希望能给大家帮助,如果大家觉得那里不对请指出来,便于大家的交流分享)1、怎样更换新的AVP KEY?2、AVP的默认的那个FTP更新地址太慢了,大家有快一点的吗?3、AVP扩展病毒库升级地址(更改升级地址以后病毒库可以增加约1000个病毒)4、怎样检验AVP KEY的完整性?5、怎样禁用avp的服务6、怎样解决AVP只能查毒不能杀毒的问题?7、用AVP KEY文件验证器查看KEY文件的路径8、怎样取消AVP检测软驱?9、最快最稳定的升级地址10、如何恢复隔离后文件?11、AVP有哪些版本?12、卡巴斯基国内快速升级地址怎么设置?13.如何卸卡巴软件?14.机器本来可以正常使用,安装Kaspersky杀毒软件系统变得非常慢,甚至死机,为什么?(问题最多的一个问题,希望大家安装前看!!)15.可以同时使用几个反病毒软件吗?16.升级中出现“任务执行出现错误”问题解决办法。1、怎样更换新的AVP KEY?>>放在这里:C:/Program Files/Common Files/KAV Shared Files2、AVP的默认的那个FTP更新地址太慢了,大家有快一点的吗?>>更改更新器设置:只使用HTTP更新服务器,删除不必要的FTP更新地址,不要选取使用随机地址更新选项。3、AVP扩展病毒库升级地址(更改升级地址以后病毒库可以增加约1000个病毒)>>升级地址为:http://updates1.kaspersky-labs.com/updates_x/注意:标准库是一般标准的病毒库,对付病毒足够了(建议只使用这个),一般标准数据病毒库已经可以查杀流行的有病毒,扩展库包含了反广告程序、恶作剧程序、色情程序的库,卡巴的官方说扩展病毒是给有经验的网络维护人员使用的,因此一般用户可以不用,如果你用的话,会出现 "not-a-virus"的字样,误删可能会造成一些程序运行的不稳定如果用扩展的升了一下,如何退回呢?选择标准库重新升一下就会回来。4、怎样检验AVP KEY的完整性?>>可以在组件栏点每个组件的关于,看里面有没有这个KEY,有的就有授权,没有就应该无效。5、怎样禁用avp的服务>>打开windows服务项目,禁用KAVsvc 服务。6、怎样解决AVP只能查毒不能杀毒的问题?>>在扫描器里选"启用删除不能清除的存档文件",然后选择"将改变的配置文件保存下来",再点工具栏里的"文件"选"保存成默认设置"。7、用AVP KEY文件验证器查看KEY文件的路径>>在C:/Program Files/Common Files/KAV Shared Files目录中8、怎样取消AVP检测软驱?>>打开扫描器—右击"3.5寸软驱"—选"设置限制"—取消前面的勾。9、最快最稳定的升级地址http://update2.avp.ch/updateshttp://downloads1.kaspersky-labs.com/updates_x/http://www.kaspersky.com.cn/Bases(我的强烈建议)其中第二个地址比正常的病毒库的病毒数目要多出1000条左右,属于扩展病毒库,其实扩展的并不是病毒,而是对一些网络广告、插件、恶作剧程序、色情程序,卡巴的官方说扩展病毒是给有经验的网络维护人员使用的,因此一般用户建议不要用,如果你用的话,会出现 "not-a-virus"的字样,误删可能会造成一些程序运行的不稳定如果用扩展的升了一下,如果你已经选择了,如何退回呢?选择标准库重新升一下就会回来。10、如何恢复隔离后文件?>>隔离后文件要恢复的话,将监控关闭,进入控制中心隔离选项,选择要恢复的文件,提取(也可能叫还原)文件到你指定的一个目录,千万记得选上"破译"选项,这样恢复的文件就可以用了。11、AVP有哪些版本?>>AVP单机产品有三款:Lite、Personal 和 Pro在AVP的产品线中,单机产品有三款,分别是AVP Lite 、AVP Personal、AVP Personal PRO,它们之间最主要的区别在于程序组件的不同,AVP Lite由三个组件构成,分别是Kaspersky Anti-Virus Scanner、Kaspersky Anti-Virus Monitor、Kaspersky Anti-Virus Updater;AVP Personal 拥有更多的组件,如Mail Checker等等;而AVP Personal PRO除了包括AVP Personal所有组件外,还包括它特有的两个组件,分别是Inspector、Office Guard。12、卡巴斯基国内快速升级地址怎么设置?>>对于4.5版的 1) 从AVP控制中心启动更新器。 2) 双击更新任务打开属性设置窗口,或者在更新任务上点击右键选择"属性"进入,或者选中更新任务后点击右边的"属性"图标进入更新器设置窗口。 3) 点击"连接"标签,选择从"INTERNET上更新kaspersky Anti-virus",单击按钮 URL,将显示编辑URL列表对话框。在列表中点右键选择"增加",然后输入国内更新服务器的地地址:http://www.kaspersky.com.cn/Bases (注意B一定要大写),输入完后选中这个URL,点击右键选择上移,把该地址移到第一位,然后点击"确定"按钮即可完成。 4) 取消"随机选择列表中的URL地址开始连接",点击"确定"按钮即可完成。>>对于5.0版 如果自己要修改默认的病毒码更新服务器地址,可以打开注册表,找到:HKEY_LOCAL_MACHINE/SOFTWARE/KasperskyLab/Components/3/URL 然后自己加入或替换其他更新服务器。 13.如何卸卡巴软件?1.安全模式下(或禁用自动启动项)正常卸载;2.安全模式下用卸载工具(不太适用于5。0以上版本和汉化版);3.删除所有目录;4.运行Regedit,删除涉及kaspersky、kav的有关键值(危险动作,应有一定注册表操作经验);5.借助于norton cleansweep。卡巴系列软件一般来说单机版、英文原版容易卸载,防火墙、汉化版、pro版(其他版本不详)较难清理***净(比较复杂),安装或卸载前后要慎重,做好备份.14.机器本来可以正常使用,安装Kaspersky杀毒软件系统变得非常慢,甚至死机,为什么?(问题最多的一个问题,希望大家安装前看!!)>>在安装Kaspersky产品之前,一定要完全卸载其它厂家的反病毒软件产品,正常使用Kaspersky产品了。如果已经发生冲突,在正常的Windows环境下不能反安装任何一个杀毒软件,这时需要进入安装模式下,进行反安装操作。15.可以同时使用几个反病毒软件吗? >>可以先用一个反病毒软件对文件进行扫描,然后使用另一个反病毒软件进行扫描。 但是如果是说的实时监控器,回答绝对不能!同时把两个杀毒软件的实时监控器加载到内存中可能会导致冲突(几乎所有杀毒软件的实时监控都冲突)。这可能会导致某个实时监控器不能正确的判断。所以,不推荐在同一时刻使用两个实时监控。如果你想机器很正常的运行,不会给你添乱子,我就说:绝对不可以!而且没必要。16.升级中出现“任务执行出现错误”问题解决办法。>>Key文件版本正确,没有到期,升级过程可以正常开始,可是升级一会儿系统弹出对话框(见附件中), 这个情况是由于升级的服务器忙,暂时不能连接。你完全可以不理会它,点击“确定”,继续点“·现在更新”。你会看到升级过程继续进行,如果再次出现这个提示,那说明服务器很忙,而且你的网络很差,稍等一会儿再试试。(建议:建议大家在早上进行升级,一般不会出现这种情况,而且速度快!) 也可以更改升级服务器地址:选择比较稳定的服务器进行升级,这个不同版本不太一样,详细请看本文第9条和第12条。
")/n--><iframe marginwidth="0" marginheight="0" src="http://adsence.sogou.com/index.html?pid=pringles&amp;ww=145&amp;dc=2&amp;dir=0&amp;num=3&amp;color=2&amp;charset=gb&amp;sohuurl=http://www.baidu.com/s?tn=sitehao123&amp;cl=3&amp;rn=10&amp;ct=0&amp;lm=0&amp;word=%BF%A8%B0%CD%CB%B9%BB%F9%B7%FE%CE%F1%C6%F7" frameborder="0" width="441" scrolling="no" height="75" twffan="done" bordercolor="#000000"></iframe>
【论坛浏览】 【我来说两句】 【打印】 【大】 【中】 【小】 【关闭】
相关评论
作者: 阿迪发布日期: 2005-8-05 23:39:13
卡巴斯基杀毒软件专业5.020版和工作站5.0177版设置:打开卡巴杀毒专业版或工作站版,会看到“SETTINGS设置”:1》"Configure Real-time Protection"配置实时防护,默认是“Recommended"推荐,如果机子内存为256的朋友就设为"High speed'高速吧,只有在512内存以上才建议用推荐或最高防护等级!!!!! 左下角有下"Manage"管理设置,下面有个'Addintional settings"附加设置,打开后看到有"FILE"“文件”,如果你设的是最大防护,那在"Enable real-time file system protection"“启用实时文件系统防护”,要扫描的对象,就是"All objects"所有对象推荐等级就是"Infectable objcts by format"按格式的可感染对象,高速等级就是"Infectable objects by extension"按扩展名的可感染对象,这里不用改动!第二个就是"EMAIL"电子邮件,在'Scan outgoing""扫描外出的邮件下面,在“MS OUTLOOK mail”和“SMTP mail”邮件打上钩第三和第四是'Macros"宏和"Scripts"脚本,就用默认的!最后是按“OK”确定退出!有一点就是第一次设了,就不要倒回去设,不然就又回到推荐设置了!2》“Configure Scan my computer“'配置扫描我的电脑,打开后会有3个标签,“settings设置,Schedule计划和RUN AS运行为”。我们先设Schedule“计划扫描”,在Schedule task计划任务,Every one day23:00:00经常上网的朋友建议是每天晚上扫描一次,很少上网的电脑就建议2天扫描一次,最好选晚上休息时扫描!。关于Run as‘动行计划’,不建议设密码最后是Settings”设置“,在这个标签下面有个"Configure scan"‘扫描设置”,打开配置扫描,强烈建议设为"Maximun protection'最大扫描等级!其他的就不用改了!3》'Configure Riskware Detection"危险软件检测,在"Detect riskware ,pornware,adware,etc"“检测危险软件,色情软件,广告软件和'Detect hack tools"检测黑客工具”打上勾当然你也可以把你用的黑客工具排除在外:在:TRUSTED"“信任的危险软件列表”下你可以添加想排除的软件!4》"Configure Updater"配置更新器,打开后也是3个标签“settings设置,Schedule计划和RUN AS运行为” 在"Settings'设置标签,在Updates更新来源下,强烈建议在"HTTP-.FTP-server or network for"“HTTP-,FTP-服务器或网络文件夹下输入ftp://ftp.kaspersky.ru, "注:如果用上面的FTP地址升级病毒库是最全的,但是升级速度希望大家可以接受!第一次升级可能要1个多小时,以后就很快可以升级!(因为它还下载一些模块进行更新,这是单机版没有的!)(至2005-2-26 22:00,小生的病毒库为119580,比官方扩展数据库多1000个) 并在"Use Kaspersky Lab's Update Servers if HTTP-,FTP-server or network folder are not accessible”如果HTTP-,FTP-服务器或网络文件夹不可访问时,则使用KASPERSKY实验室的更新服务器“取消前面的勾! 工作站版还有一个升级选项就是‘ADMINISTRATION SERVER”,是能通过服务器上的KIT版网络控制中心和升级服务器版升级的! 在'Schedule"计划标签,'Every one hour"设更新频率为每小时! 关于手动添加KEY的方法: 打开“Support"支持,会看到“License keys'许可KEY,点击打开后会看到有个“ADD”添加,只要找到KEY的硬盘路径就可以了! 至于其他的就不用怎样设置了!关于装卡巴的一些问题和建议: 1》装卡巴杀毒软件前,要把所有杀毒软件卸掉,诺顿请在安全模式下卸!如果装了金山网镖,也要一起卸掉!重新启动后,用优化大师清除一下注册表才可以装卡巴! 在装有金山毒霸的机子,就一定不要装卡巴单机防火墙,否则会重启! 2》装卡巴前,请务必先用系统和网速优化软件优化系统后才装卡巴杀毒软件!!! 推荐以下软件:WINXP总管(顶级推荐)4.90下载:http://www.skycn.com/soft/9890.html 破解补丁下载:http://soft.5icrack.com/Software/catalog29/3559.html(建议只用其中的破解补丁,破解后激活软件,随便输入任何用户名和密码,按激活重启WINXP总管就可以用了! WINDOWS优化大师6.5下载:http://www.skycn.com/soft/2988.html 注册机下载:http://www.997.cn/SoftView/SoftView_14.html(里面有注册方法) 超级兔子魔法设置6.6下载: http://www.skycn.com/soft/2993.html 注册码:(切记要断网注册,优化重启后才可以连网) 用户名1:weste.net(任意) 序列号1:MSCNC-DDJOG-OGQXF-BQSTE-LUVJC 用户名2(用户):www.weste.net (任意) 序列号2(密码):SRMST22128-JPGYVVUIJKTE 超频奇兵3.05(优化网速)下载: http://www.skycn.com/soft/6021.html(先普通超频,再高级超频) IE插件屏蔽免疫 2005 V1.31a(顶级推荐)下载:http://www.skycn.com/soft/21205.html(可以屏蔽3721等和免疫垃圾网站) 3>装卡巴杀毒软件以前,请做好系统备份,建议用GHOST! 4>对于卡巴斯基KEY文件的说明:卡巴KEY文件是不能打开的,只能用专门的KEY查看器才可以打开! 装卡巴杀软件时,会提示要KEY,只要找到KEY的硬盘路径就可以安装了.(当然也要版本对才可以) 5>对于单机上网用户,强烈建议用杀毒专业5.020版+卡巴单机防火墙1.7.130版,其次是杀毒单机5.0227版+卡巴单机防火墙1.7.130版! 对于企业局域网用户,建议用卡巴工作站4.5版,不用装防火墙!卡巴工作站5.0177版只有试用KEY才可以用,所以不推荐!其次是装卡巴杀毒专业5.020版! 对企业服务器,小生个人认为是这样的: 卡巴杀毒服务器4.5版+卡巴单机防火墙1.7.130+卡巴KIT网络控制中心5.0.0.369版!最新卡巴服务器5.040版把所有以前可用的KEY都给封了!这是因为卡巴中国公司想........ 对于校园网用户,由于学校限制FTP下载,所以只能通过下载病毒库到硬盘,通过设置卡巴从本地文件夹升级! 以下为最完全病毒库FTP下载: (1)ftp://ftp.kaspersky.ru/bases/av/avc/i386/先在这里下载最新模块,下完了就先升级!(第一次全面要下载,以后就只要是当前最新日期的下载来升级就可以了!) (2) ftp://ftp.kaspersky.ru/updates_x/最后是下载这里的病毒库!(第一次全面要下载,以后就只要是当前最新日期的下载来升级就可以了!) 具体方法看这里: http://www.donews.net/algol/archive/2005/01/24/254836.aspx 如果你觉得麻烦或不需要最完全的病毒库请看这里: http://www.kaspersky.com.cn/KL-Downloads/AVDatabaseUpdates.htm Kaspersky Administration Kit网络控制中心5.0.0.369官方英文版下载: http://www.kaspersky.com/productupdates?chapter=146274756&downlink=158491786 Kaspersky Administration Kit网络控制中心4.5官方代理中文版下载: http://www.anmai.net/loaddown.htm Kaspersky Anti-Virus for Windows Workstations卡巴斯基WINDOWS平台下工作站5.0177官方英文版下载: http://www.kaspersky.com/productupdates?chapter=146274385&downlink=158365864 Kaspersky Anti-Virus for Windows Workstations卡巴斯基WINDOWS平台下工作站4.5官方代理中文版下载: http://www.anmai.net/loaddown.htm Kaspersky Anti-Virus for Windows Workstations卡巴斯基WINDOWS平台下工作站4.5版KEY文件下载: http://www.hanzify.org/index.php?Go=Show::List&ID=7231 Kaspersky Anti-Virus for Windows File Servers卡巴斯基WINDOWS文件服务器5.040官方英文版下载: http://www.kaspersky.com/productupdates?chapter=146274391&downlink=158365872 Kaspersky Anti-Virus for Windows File Servers卡巴斯基WINDOWS文件服务器4.5官方代理中文版下载: http://www.anmai.net/loaddown.htm Kaspersky Anti-Virus for Windows File Servers卡巴斯基WINDOWS文件服务器4.5版KEY文件下载: http://www.hanzify.org/index.php?Go=Show::List&ID=7176 Kaspersky Anti-Virus Personal Pro卡巴斯基杀毒专业版5.020官方英文版下载: http://www.kaspersky.com/productupdates?chapter=146244102&downlink=159051440 Kaspersky Anti-Virus Personal Pro卡巴斯基杀毒专业版5.020版汉化补丁(含KEY)下载: http://www.hanzify.org/?Go=Show::List&ID=7354 Kaspersky Anti-Virus Personal 卡巴斯基杀毒单机5.0227官方中文版下载: http://www.kaspersky.com.cn/KL-Products5.0.htm Kaspersky Anti-Virus Personal 卡巴斯基杀毒单机5.0227版KEY文件(汉化补下里)下载: http://www.hanzify.org/index.php?Go=Show::List&ID=6536 Kaspersky Anti-Hacker卡巴斯基单机防火墙1.7.130官方英文版下载: http://www.kaspersky.com/productupdates?chapter=146244114&downlink=155678558 Kaspersky Anti-Hacker卡巴斯基单机防火墙1.7.130版汉化补丁+KEY下载: http://www.hanzify.org/index.php?Go=Show::List&ID=6852 6>卸载 Norton 企业版并安裝 Kaspersky 后发生无法打开网页的解决办法: 您可以到 开始 -> 运行 -> 輸入 " cmd " 然后在命令提示符下 輸入 Regsvr32 jscript.dll ( 重建 jscript.dll ) Regsvr32 Vbscript.dll ( 重建 VBscript.dll ) 7>重发5.0227单机版设置文档: 打开卡巴杀毒单机5.0227版,会看到有个“SETTINGS” (1)打开“CONFIGURE REAL-TIME PROTECTIO”配置实时保护,把滑块调到最高“MAXIMUM PROTECTION”,这个是最大防护等级。 对于256内存以下的朋友就设为高速吧! 在这个画面下面,会有个高级设置,打开后,在“阻止攻击”和“使用隐藏模式”打上勾,取消”系统启动时,禁用网络攻击抵御“上面的勾! 局域网用户如果出现不能打印,就要服消卡巴单机版的网络入侵抵御或退出卡巴单机版!!! (2)打开“CONFIGURE ON-DEMAND SCAN”配置扫描,把滑块调到最高“MAXIMUM PROTECTION”,这个是最大扫描等级 (3)打开“CONFIGURE UPDATER”配置更新,在“UPDATE TVPE‘左边方框选”FROM INTERNET ,EXTENDED DATABASES“ 这个是扩展升级数据库! UPDATE FREQUENCY 更新频率设为EVERY HOUR,每小时更新一次! (4)打开SUPPORT(支持),会看到LICENSE KEYS,添加许可KEY,打开后按ADD,就可以手动添加KEY了! 8》关于卡巴插入进程和系统变慢的原因: 最近网上流行一种说法,卡巴把自己的线程插入到其他软件,从而导致系统变慢!(还出现什么瑞星专家说法) 小生也试过查看应用程序进程,都没看到卡巴的进程!(小生的测试环境是:官方VOL版WINXP SP2+卡巴工作站5.0177官方英文版) 至于装了卡巴,系统变慢,小生的个人认为是卡巴杀毒软件是真正做到了全方位监控电脑! 当然你也可以设为高速等级,监控的范围没有那么大,占用内存也没那么大.(小生在用赛扬1.7G+256内存装卡巴工作站版.专业版.单机版,感觉很流畅!就跟装金山毒霸一样快!) 关于网上一些评论,说到卡巴斯基杀毒软件差过很多国产软件,小生是不敢苟同!!! 测试者所用的版本和病毒库都没指明,就给卡巴杀毒软件打分!可笑! 9>关于卡巴单机防火墙1.7.130版设置: 请看这里,有个防火墙设置图: http://www.donews.net/algol/archive/2005/02/04/268069.aspx 汉化后,只要在隐藏模式打上勾就可以了!10》关于卡巴各版本卸载方法: 如果你觉得卡巴不好用或想换其他版本,就要卸载卡巴。 卸载卡巴前,请在任务栏先退出卡巴程序再在“控制面板—添加和删除程序,卸载卡巴!最好不要用那些ROMVEKAV。EXE工具!一定要重启电脑后,清除注册表再装其他杀毒软件
作者: 阿迪发布日期: 2005-8-05 23:40:03
事实上非常简单的问题,在用卡巴之前我就知道改怎么设置它,不会用就该多看看别人的文章,一般安全软件网上都有优化设置方法,除非你机子实在一般,否则用卡巴不见得很卡.我装卡巴后第一件事就是全部扫描一遍,不勾选"不扫描存档文件".以后要杀毒时我只杀C盘,除了勾选"启动时不加载网络攻击防御"外,其他全不勾.因为E,F盘都是其他资料,多为文本.而D盘存的都是软件,只要下了东西,全都用卡巴和ewido扫过,确认无病毒才打开.这样每次只扫C盘,彻底杀毒,且节约了扫描其他盘的时间.卡巴斯基杀毒软件优化设置指南“卡巴斯基杀毒软件”是一款很不错的杀毒软件,无论是国内还是国际上的病毒,它都能从容面对。但是,最近论坛上总有朋友不是抱怨卡巴使系统运行速度变慢,就是抱怨卡巴的杀毒速度无法忍受。其实,只需要通过下面的几个步骤设置一下,就能够提高卡巴的使用效率!先选择“设置”选项卡选择“配置实时监控”在“保护级别”中选择“推荐”在“检测到染毒对象采取的操作”中选择“禁止访问,执行推荐的处理操作” 然后点击“确定”再选择“配置手动扫描”在“保护级别”中选择“推荐”;在“检测到染毒对象采取的操作”中选择“执行推荐的操作”;然后选择“高级设置”在“不扫描存档文件”和“扫描对象时不要询问密码”前打上钩,然后点击“确定”;注:(1)这里的“不扫描存档文件”翻译有误,正确的翻译应该为“不扫描压缩包文件”;(2)之所以选中“不扫描存档文件”的原因是:如果压缩包中真的带有病毒,那么在解压缩的时候卡巴是能够自动将病毒清除的。钩上之后当您手动扫描病毒时,可以略过压缩包文件,从而加快扫描速度。因为卡巴在解压缩查毒时会花费很多时间,而花费那么多时间去扫描压缩包是没有必要的!最后,切换到“保护”选项卡,点击“现在更新”来更新一下您的病毒库吧!注:建议您每天都更新一下病毒库,以便让该杀毒软件保持最佳状态。由于卡巴的新病毒响应速度很快,病毒库几乎每小时更新一次,所以如果您有条件的话,建议您每几小时升级一次病毒库!
作者: 阿迪发布日期: 2005-8-05 23:41:02
装好卡巴单机版,要经过一些设置才能发挥它的威力! 打开卡巴单机版,会看到有个“SETTINGS” 1》打开“CONFIGURE REAL-TIME PROTECTIO”配置实时保护,把滑块调到最高“MAXIMUM PROTECTION”,这个是最大防护等级。 对于机子配置低的朋友就设为高速吧! 在这个画面下面,会有个高级设置,打开后,在“阻止攻击”和“使用隐藏模式”打上勾,取消”系统启动时,禁用网络攻击抵御“上面的勾! 局域网用户如果出现不能打印,就要服消卡巴单机版的网络入侵抵御或退出卡巴单机版!!! 2》打开“CONFIGURE ON-DEMAND SCAN”配置扫描,把滑块调到最高“MAXIMUM PROTECTION”,这个是最大扫描等级 3》打开“CONFIGURE UPDATER”配置更新,在“UPDATE TVPE‘左边方框选”FROM INTERNET ,EXTENDED DATABASES“ 这个是扩展升级数据库! UPDATE FREQUENCY 更新频率设为EVERY HOUR,每小时更新一次! 4>打开SUPPORT(支持),会看到LICENSE KEYS,添加许可KEY,打开后按ADD,就可以手动添加KEY了!
作者: 阿迪发布日期: 2005-8-05 23:43:20
请在装卡巴斯基杀毒软件前卸掉所有的杀毒软件!!!在装卡巴单机版前最好先优化系统,建议用WINDOWS优化大师+超级兔子+WINXP总管+超频奇兵,小生随附还加WIN2KXP网速优化补丁!卡巴斯基杀毒单机版只可以安装在WINDOWS操作系统PER和PRO,不可以装在服务器版的WINDOWS!以下为卡巴斯基单机版的KEY: 卡巴斯基杀毒软件单机版KEY文件名为KAV5.KEY(系统自行添加KEY),可以用2006年11月,但是你装了可能发现只能用到2005年,解决的办法就能到期时,重装电脑了.还有一个办法就是有以前刚装完电脑的GHOST镜像,恢复到以前的镜像就OK!如有最新的KEY,我会发出来给大家!请大家密切关注! 另加一个KEY都可以用于卡巴单机版,可以用到2005-5-7.key,但是功能比KAV5强很多.在我给大家的单机版KEY压缩包里,全是现在可用的KEY,只是日期和功能不同! 现在卡巴斯基杀毒单机5。0227版采用很多优化技术,有三种实时保护等级,这三种保护都可以实时保护电脑,特别是官方中文单机5。0227版还采用了网络入侵抵御,对于刚装好系统的用户是很重要的!所以建议各位单机上网用户和内网用户用官方中文单机5.0227版+卡巴防火墙1.7.130版!!!如果你的机子配置比较高的话,建议把守护等级调到最高(P4+256内存以上);差点就选高速吧(PIII+128内存)以下为官方英文单机版5.0227版下载地址:http://www.kaspersky.com/productupdates?chapter=146244099&downlink=155629340/kav5.0.227_personalen.exe以下为官方中文5.0227版下载地址:http://www.kaspersky.com.cn/KL-Products5.0.htm/kav5.0.227setup.exe(从5.0227版发布开始,卡巴取消了对3721的查杀,但是保持了对百度插件的查杀,这个不能说是个遗憾!卡巴斯基防火墙的KEY 文件名为KEY.key,可以用到2006年12月.以下为官方英文1.7.130版下载地址http://www.kaspersky.com/productupdates?chapter=146244114&downlink=155678558以下为汉化补丁下载地址:http://www.hanzify.org/index.php?Go=Show::List&ID=6852用汉化补丁时,小心装上3721上网助手!!!不赞成用汉化补丁,用熟了卸掉装回纯英文版吧.(如果是局域网用户就不用装卡巴防火墙,也不用装天网之类的,卡巴防火墙不能与金山毒霸6共存,切记!)另外附FLASHGET.65中文版+10000任务+10000线程破解补丁,经卡巴和木马克星查杀,没有任何病毒和木马,请放心使用!最好是用迅雷下载工具!
作者: 阿迪发布日期: 2005-8-05 23:43:50
如果是5.X系列(2k,xp,2k3)的呢,病毒库就在X:/Documents and Settings/All Users/Application Data/Kaspersky Anti-Virus Personal/5.0下,那个Bases就是病毒库,在那里你还可以找到备份,隔离区,和报告文 ...
作者: 阿迪发布日期: 2005-8-05 23:44:19
Kaspersky永久升级方法!!!只需在您的Kaspersky安全产品的更新服务器列表中添加如下url: ftp://security.thusns.org/Kaspersky/updates 即可与Kaspersky官方更新保持同步(不超过三小时)。 对于Kaspersky AntiVirus 5.x版本,将url设置为: http://security.thusns.org 另附:McAfee、NOD32 永久更新方法只需在您的McAfee安全产品的更新服务器列表中添加如下url: http://security.thusns.org/McAfee 即可与McAfee官方更新保持同步(不超过24小时)。 只需在您的NOD32安全产品的更新服务器列表中添加如下url: http://security.thusns.org/nod_upd并指定为默认 即可与NOD32官方更新保持同步(不超过3小时)。下载必有收获
http://www.rockdigital.net/html/200508/35208.html
http://www.mofang.net/software2/Software/Catalog27/524.html
http://www.clzx.net.cn/Soft/ShowSoft.asp?SoftID=507
文章
监控 · 安全 · 网络安全 · Go · Windows
2006-02-06