类别归档:他山之石

他山之石,可以攻玉。

RSS feed of 他山之石

用Node.js时不应该做的7件事

Seven Things You Should Stop Doing with Node.js

Inspired by 5 Things You Should Stop Doing With jQuery by Burke Holland, I decided to open a discussion and highlight seven things you should immediately stop doing with Node.js:

受Burk Hollad的博文《用jQuery时不应该做的5件事》启发,我决定做一个讨论并强调7点用Node.js时不应该做的事情:

  1. Stop using callbacks 不要使用回调
  2. Stop using * for ...

继续阅读

推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)

下面简单列举几种常用的推荐系统评测指标:

1、准确率与召回率(Precision & Recall)

准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。

一般来说,Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。

正确率、召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价指标。不妨看看这些指标的定义先:

    1. 正确率 = 提取出的正确信息条数 /  提取出的信息条数     

    2. 召回率 = 提取出的正确信息条数 /  样本中的信息条数     ...

继续阅读

Python程序员常犯的10个错误

原文链接:http://www.toptal.com/python/top-10-mistakes-that-python-programmers-make

BY MARTIN CHIKILIAN - SENIOR SOFTWARE ENGINEER @ TOPTAL

About Python 关于Python

Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic binding, make it ...

继续阅读

使用插件更换WordPress Admin URL

一般情况下,WordPress生成一个缺省的admin URL http://www.yoursite.com/wp-login.php。由于这个链接众所周知,如果你泄露了密码或者在不止一处使用了同一个密码,未获授权的陌生人很容易就可以访问你的WordPress管理面板,这对你的站点是有害的并且使得你的站点容易被入侵。

管理面板的安全性是WordPress安全性的重要组成部分。为了确保管理面板的安全,我们可以更换缺省URL并创建一个自定义的URL来登录,登出,管理和注册我们的站点。

显然,最佳并且最容易的修改URL的方式是使用插件。在下面,我们只介绍几个最佳的URL自定义管理插件,然后我们以Lockdown WP Admin为例来展示更换WordPress 管理URL的详细步骤。

更换WordPress管理URL的最佳插件

在大多数情况下,使用一个合适的插件是自定义WordPress站点最简单的方式,尤其是对技术知识不多的用户来说。我们也可以使用一个简单的插件很容易地变更缺省的WordPress管理URL。这里是修改URL排名前3的插件,你可以在管理面板中进行试用。

  • Lockdown WP Admin: 这是一个有用的WordPress插件可以对入侵者隐藏管理模块和登录屏幕。如果一个没有登录你的站点的用户想要访问管理面板(/wp-admin/),此插件将URL隐藏并转向一个404页面。此外,它也允许用户直接在WordPress管理模块中添加HTTP认证以及自定义的用户名和密码。
  • HC Custom WP-Admin URL: 这是一个小巧而简单的安全插件,设计用来减少你的站点被入侵的可能性。使用它,你可以根据自定义的选择来更改wp-admin和wp-login.php,使得入侵者无法访问管理模块。
  • Better WP Security:  这是最好的WordPress安全插件之一,并且有数以百万计的下载量。它提供了一个简单而有效的方式来保卫WordPress网站。通过允许用户变更WordPress仪表板的URL,包括登陆,管理等等,此插件让修改管理面板的URL变得十分容易。

使用Lockdown插件变更WordPress的管理URL

选择一款合适的插件以后,我们马上可以开始变更URL。首先,在你的网站安装并激活插件。登陆你的仪表板,选择Plugins -> Add New,然后搜索Lockdown WP Admin,或者你可以从WordPress.org中直接下载并上传。然后,安装插件并激活。

当插件安装成功后,你可以在菜单条中看到Lockdown WP,单机即可打开。然后,你可以开始做定制。选择复选框,你可以隐藏WordPress的管理面板。例如,访问http://yourdomain.com/wp-admin/的未登录用户会看到一个404错误页,而不是跳转到登陆页。

你也可以把WordPress的登录URL换成你喜欢的地址。如果留空,它将被禁用。

另外,你可以配置HTTP认证为禁用HTTP认证,WordPress登录认证,甚至设置私人用户名/密码。最后,保存设置。通过所有这些设置,你可以极大地提高网站的安全性。

Infobright数据仓库技术

Dominik S´ le¸ zak Infobright Inc. 波兰 slezak@infobright.com
Victoria Eastwood Infobright Inc. 加拿大 victoriae@infobright.com

1. 引言

Infobright社区版 (ICE,开源) 与 Infobright 企业版 (IEE,商业许可) 能够对TB数量级的数据执行即席查询[13]。MySQL 可插拔式的存储引擎架构可以帮助用户轻松入门,并提供丰富的数据库功能[19]。基于数据压缩 (参见[11]),列式数据存储 (参见[16]),自适应查询处理 (参见[9]),以及粗糙集理论(参见[22]) 的内部机制为我们的数据仓库应用提供了良好的性能和可伸缩性,既不需要专门的硬件,也不需要高级的调优。

我们方法的关键在于将数据划分为“粗糙行”,每一个粗糙行由64K个原始行组成。我们自动地对粗糙行加上标签,这些标签是与它们数据列值相关的复合信息,通常还包括多列及多表的对应关系。利用这种方式(首先在[27]中被拟定),我们创造出新的信息系统(参见[8]),其对象对应于粗糙行和各种类型粗糙信息的属性。在这种新框架下,数据库操作可以得到有效的支持,并且在粗糙信息不充分时对实际数据的访问也可用。ICE和IEE都基于使用粗糙信息最小化和最优化数据访问的若干算法。

论文的组织结构如下:第2和第3章介绍体系结构和技术的基础知识。第4章展示两个关于粗糙信息结构的例子。第5和第6章描述两个关于核心方法的例子:迭代式的粗糙/精确查询过程和对粗糙信息的无缝式重计算。第7和第8章讨论两个研究项目的例子:关于近似查询的调查和智能数据组织。第9章总结全文。

2. INFOBRIGHT体系结构

Infobright数据仓库软件的ICE与IEE版本都基于同样的体系结构组件。当然,它们在功能上(IEE支持数据的增加/更新/删除操作),以及对操作系统的支持上(ICE同时支持Linux和Windows)有不同之处。IEE商业认购版(在论文中未做讨论)可能在大规模工业应用上更具有优势。另一方面,ICE则提供了一个可供外部开发人员贡献代码的框架。关于ICE与IEE对比的进一步讨论可以参考Infobright论坛。

图1在尽可能高的层次上模拟了我们的体系结构。MySQL管理服务用来做连接池。MyISAM引擎则用来存储诸如表定义、视图和用户权限等目录信息。我们有一套快速批量数据加载的方法。IEE额外地支持更多的MySQL特有的加载机制。我们使用MySQL的查询重写和解析,但是替换了查询优化的主要部分。MySQL优化器作为一个与MySQL存储引擎接口相连的子模块被保留。我们在特殊场合,尤其是在IEE中支持数据的增加/更改/删除操作时使用它。

我们使用“知识网格”这个术语来对第一章中提到过的粗糙信息进行定址。我们对于这个术语的解释不同于其在网格计算或者语义网络[3]中的定义,虽然知识网格作为查询引擎和数据之间的媒介时在某种程度上与它们有一些相似之处。Infobright知识网格中的元素被称为“知识节点”,不要与网格/分布式/并行体系结构[10]相混淆。在本文中,我们只提供了关于知识节点的几个例子。如果想了解关于这个领域的更多细节,可以参照[29]。

ICE 和 IEE的核心组件与MySQL集成

Figure 1 ICE 和 IEE的核心组件与MySQL集成。专用于可插拔存储引擎的标准 MySQL 优化器被整合为更高级的Infobright优化器和执行器的一部分。

图1底部的“数据包”通过对数据执行垂直和横向的分解得到。如第一章中所述,我们将行分组为粗糙行。对于每一个粗糙行,我们分别对每一列进行存储。由此得到的包通过[28]中描述的算法进行分解和管理。现在,数据行只按照粗糙行的形式进行组织。我们在第8章中讨论在未来关于这方面的扩展。

知识网格包含于数据包直接相连的数据包节点。数据包节点提供最基本的统计并能够顺利地对数据包进行访问。它们的用法与一些其他的数据库体系结构[18]部分类似。围绕知识网格额更高级的组件和方法是Infobright所独有的。 ...

继续阅读