MySQL install

MySQL install debian install MySQL server sudo apt-get install MySQL-server 一、下载MySQL安装包 安装包名称: MySQL-5.6.12-win32.zip 下载地址: http://dev.MySQL.com/downloads/MySQL/ 二、安装MySQL 2.1 修改配置文件my.ini 将MySQL-5.6.12-win32.zip解压拷贝到F:\ 修改F:\MySQL-5.6.12-win32.zip目录下的配置文件my.ini如下: [client] port = 3306 [MySQL] [MySQLd] bind-address = 0.0.0.0 basedir=D:/apps/MySQL-5.6.23-winx64 datadir=D:/apps/MySQL-5.6.23-winx64/data max_connections=200 character-set-server=utf8 port=3306 try to start MySQL with console MySQLd -console 2.2 安装MySQL为windows系统服务 以管理员身份(Run as administrator)启动cmd,切换到目录F:/MySQL-5.6.12-win32/bin MySQLd.exe -install 如果以普通用户执行该命令会提示Install/Remove of the Service Denied! 三、启动MySQL服务 3.1 启动MySQL服务 以管理员身份启动cmd,切换到目录F:/MySQL-5.6.12-win32/bin 启动MySQL服务: net start MySQL 四、执行命令 4.1 登录MySQL MySQL -u root -p ...

2015-04-04 · 1 min · 84 words · -

度、分、秒与角度的换算方法

度、分、秒与角度的换算方法 http://iask.sina.com.cn/b/15281411.html 如把:30°54′36″换算成角度 30°=30 54′=54/60=0.9 36″=36/3600=0.01 结果:=30+0.9+0.01=30.91° 反过来,把30.91°换算成度、分、秒 30=30° 0.91=0.9160=54.6′(取整数)=54′ 取上式的小数部分 0.6=0.660=36″ 结果:30°54′36″

2015-03-26 · 1 min · 13 words · -

Error, defect,fault, failure and mistake

Error, defect,fault, failure and mistake http://www.geekinterview.com/question_details/33503 Error/bug/defect/mistake-> are human intraction which produce an incorrect result. Fault-> Fault is a stage of software which is caused by an error/bug/defect/mistake. Failure-> It is a deviation of software from its expected delivery or service. For eg. you are driving a car and you are on road while on driving now there is two way on the road left-> mumbai right-> delhi now you have to go to delhi it means you have to turn the stearing to the right, but by mistake you turn the stearing to the left, from that position that is called as “Error” because human intraction is there. and now Fault is there till you will not reach the mumbai, but when you reach mumbai that is a final stage which is called “Failure” becoz you had to reach delhi but now you are in Mumbai.

2015-03-24 · 1 min · 147 words · -

table bench and desk

table bench and desk ~A table is an article of furniture supported by one or more vertical legs and having a flat horizontal surface. ~A bench is a long seat, differing from a stool in its greater length. ~A desk is a table, frame, or case, usually with sloping top, but often with flat top, for the use writers and readers. It often has a drawer or repository underneath. Note on “bench” - it can also refer to something used as a table, with the similarity being that it is long. Eg. workbench. ...

2015-03-24 · 1 min · 129 words · -

数据库模型设计——关系的实现

数据库模型设计 - 关系的实现 在实体关系模型中,我们知道有三种关系: 一对一、一对多、多 http://www.cnblogs.com/studyzy/p/3309782.html 数据库模型设计——关系的实现对多。这只是概念上的关系,但是在真实的关系数据库中,我们只有外键,并没有这三种关系,那么我们就来说一说在关系数据库管理系统中,怎么实现这三种关系。 一对多 这里先讲解一对多,因为这个关系最简单。一对多和多对一是一回事,所以就不再提多对一这个词。一对多的概念是一个对象A会对应多个对象B,而从B的角度看,一个对象B只会对于一个对象A。比如说班级和学生就是一对多关系。一个班级对应多个学生,一个学生只会对于一个班级。 一对多的关系之所以说简单,是因为RDBMS的外键其实就是表示一对多关系。对于一对多关系,我们只需要在"多"的这个表中建立"一"的外键关联即可,而"一"这边的表不需要做任何修改。比如前面说到的班级学生关系。班级表不变,学生表增加班级Id作为外键。 多对多 多对多的关系在数据库设计时比一对一要常见,所以这里先说说多对多。多对多是一个对象A对应多个对象B,从B角度看,一个对象B也会对应多个对象A。比如说学生和课程的关系就是多对多关系。一个学生会学习多门课程,一门课程会有多个学生来选修。 在RDBMS中,必须使用中间表来表示多对多的关系。中间表我们可以分成两种,一种是纯粹表示关系的中间表,一种是表示中间实体的中间表。 纯粹表示关系的中间表很简单,只需要两列: AID 和 BID,AID 以外键关联到 A 表的主键,BID 以外键关联到 B 表的主键,然后这两个列组成联合主键。 这个中间表纯粹是表示多对多关系而存在, 在业务上不会有对应的实体与之对应。比如前面提到的学生和课程的关系,如果我们只需要知道哪些学生上哪些课,哪些课有哪些学生选, 不需要有更多的信息的情况下,我们就可以建立"学生课程"中间表,里面只有学生ID和课程ID两个字段。 中间实体是在纯粹的中间关系表的基础上,加上了更多的属性,从而形成了一个新的实体。比如前面提到的学生和课程的关系,如果我们需要记录学生选课的时间、学生选择这门课程后的考试成绩,那么我们就像建立一个"选课"实体,该实体具有如下属性: 选课 ID,主键 学生ID,与学生表做外键关联 课程ID,与课程表做外键关联 选课时间,DateTime类型 考试成绩,记录选修该课程后考试的最终成绩 这就是一个中间实体,已经完全脱离了普通的多对多关系中间表,而变成一个实体的形式的存在,所以按照前面博客中讲到的主键设计的原则, 我们可以单独建立一个选课ID的列作为数据库的主键,该主键本身并没有业务含义。 一对一 一对一概念上是说一个对象A最多对应一个对象B,从B角度看,也是一个对象B最多对应一个对象A。比如说班主任 (教师) 和班级的关系,一个班主任最多管理一个班级,一个班级也最多只有一个班主任。 一对一的关系在数据库设计中,是使用的最少的关系,因为一般来说,如果两个实体是一对多关系,那么我们也可以把这两个实体合并成一个实体。但是在设计中,我们仍然会遇到两个完全不同的实体,之间存在一对一关系。 一对一的RDBMS实现是在其中的一个表上建立外键指向另一个表,同时在该外键列上建立唯一约束。比如前面说到的班主任和班级关系,我们可以在班级表建立班主任字段,然后再在该字段建立唯一约束。因为每个班都会有班主任,所以班主任字段是不允许为空的。一个教师可以当某个班的班主任,也可以不当任和班的班主任,同时也不可能在班级表的班主任字段上出现两次,所以最多就当一个班的班主任,所以该设计满足需求。 那么我们可不可以反过来,在教师表中建立所管理的班级Id字段,指向班级表,并建立唯一约束呢?除了不满足"每个班必然有一个班主任"这个业务约束外,其他都没有问题。所以如果对于一对一的情况,如果那边必须要求持有另一边,则就在哪边增加外键字段;如果没有要求必须持有一个另一类实体的话,就哪边添加外键列都行。 外键与索引 外键是一种约束,与索引的概念不一样,只是大多数情况下,我们建立外键时,都会在外键列上建立对应的索引。外键的存在会在每一次数据插入、修改时进行约束检查,如果不满足外键约束,则禁止数据的插入或修改,这必然带来一个问题,就是在数据量特别大的情况下,每一次约束检查必然导致性能的下降。索引其实也有类似的问题,索引如果建多了,那么在插入删除修改数据时也要去维护对应的索引,所以索引的存在也会导致数据操作变慢。 不过外键与索引的优点不同,外键只是保证数据的一致性,并不能给系统性能带来任何好处,所以由于外键导致的插入数据变慢会随着数据量的增长而越来越严重。而索引的目的是为了检索数据更快,维护数据时导致的索引数据的变更,对性能的影响不会像外键那样随着数据量增长而变得严重 (当然大数量时的索引树维护会比小数据量的索引树维护更麻烦,但至少不是像外键那样) 。 出于性能的考虑,如果我们的系统完全由我们开发的程序使用,而不需要提供数据库给其他应用系统写入数据,而且对性能要求较高,那么我们可以考虑在生产环境中不使用外键,只需要建立能够提高性能的索引。由于整个数据库的操作都是由我们开发的程序来完成的,所以我们程序可以在开发过程中做好各方面的一致性检查,保证操作的数据是满足外键约束的,而不需要真正的存在这样一个外键约束。怎么做到这一点呢,首先,我们在建立数据库时有多个脚本,包括创建表、创建初始化数据、创建索引、创建外键等,我们在开发和测试环境中,都把这些脚本运行了,以使开发测试环境中的数据库是完整的,经过大量测试保证应用程序能够维护数据之间的约束的情况下,那么我们在生产时,并不需要运行创建外键这个脚本文件,只需要创建表、初始化数据、创建索引等即可。 【出自博客园深蓝居,转载请注明作者出处】

2015-03-23 · 1 min · 49 words · -

数据库 关系表

数据库 关系表 http://www.itokit.com/2012/0512/73913.html 关联映射: 一对多/多对一存在最普遍的映射关系,简单来讲就如球员与球队的关系;一对多: 从球队角度来说一个球队拥有多个球员 即为一对多多对一: 从球员角度来说多个球员属于一个球队 即为多对一数据表间一对多关系如下图: 关联映射: 一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。图示如下: 一对一外键关联: 前言: 多对多关系至少需要3个表,我们把一个表叫做主表,一个叫做关系表,另外一个叫做字典表或者副表 (字典表是纪录比较少,而且基本稳定的,例如: 版块名称;副表是内容比较多,内容变化的,例如) 。 按照数据库的增删查改操作,多对多关系的查找都可以用inner join或者 select * from 主表 where id in (select 主表id from 关系表) 1,角色任命型 特点: 关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键,有一个表是字典类型的表。 界面特点: 显示主表,用checkbox或多选select设置多选关系。 例如: 任命版主 (用户表-关系表-版块名称表) ,角色权限控制等,用户是5个版块版主,只要关系表5行纪录就可以确立,关系表的两个外键具有联合主键性质。 增加关系: 如果没有组合纪录,insert之。 删除关系: 如果有组合纪录,删除之。 2,集合分组型 特点: 同角色任命型类似,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键。区别是主副表都不是字典表,可能都很大不固定。 界面特点: 显示主表,用搜索代替简单的checkbox或多选select,或者一条一条的添加。 例如: 歌曲专集 (专集表-关系表-歌曲表) 。手机分组 (分组表-关系表-手机表) 。用户圈子 (圈子表-关系表-用户表) 。文章标签 (文章表-关系表-标签表) 增加关系: 同版主任命型。 删除关系: 同版主任命型。 3,明细帐型 特点: 关系表可以有重复纪录,关系表一般有时间字段,有主键,可能还有文字型的字段用来说明每次发生关系的原因 (消费) 。 界面特点: 显示关系表,用radio或下拉设置单选关系。 例如: 现金消费明细帐或订单 (用户表-订单表-消费原因表) ,用户可能多次在同一事情上重复消费。积分变化纪录也属于这类。 ...

2015-03-23 · 1 min · 156 words · -

sqlite 数据库字典

sqlite 数据库字典 http://blog.itpub.net/133735/viewspace-757028/ http://www.th7.cn/Article/sj/ms/201001/374550.html

2015-03-06 · 1 min · 4 words · -

user_tables num_rows

user_tables num_rows 高水位线应该是最高值而不可能是低于700万的值 根据英文资料: but it’s base on your table analysis strategy,may be not accurate select ‘analyze table ‘||S.TABLE_NAME||’ compute statistics;’ from user_tables s; 翻译如下: 但是它是基于你的表分析策略,由于时间的关系,可能已经不准确了。 如果你要准确,可以 select ‘analyze table ‘||S.TABLE_NAME||’ compute statistics;’ from user_tables s; 后的所有脚本,再运行统计行数。 也就是USER_TABLES中存储的是上一次分析之后的值,而不是准确值.

2015-03-06 · 1 min · 38 words · -

part component

part component http://www.hscode.net/article/glxyx/1caa8dfa-f324-46cf-af72-a3dd675e7488

2015-03-05 · 1 min · 3 words · -

数据库主键设计

数据库主键设计 surrogate key (单主键), composite primary keys (联合主键) https://www.zhihu.com/question/265739203 https://stackoverflow.com/questions/2667988/why-single-primary-key-is-better-than-composite-keys 如果使用 b-tree 索引形式,有序 id 比无序 id 好,如果是 hash 索引,两个差别不大。主要原因是索引在磁盘上存储的形式, 常用的 b-tree 索引如果 id 是连续的,那么数据存储在相邻的磁盘上,如果查询和写入操作的 id 连续,那么减少随机读写硬盘的几率,提升读写效率。 作者:郭麒 链接:https://www.zhihu.com/question/43500172/answer/95876101 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 以默认的 innodb 存储引擎为例:做为主键时,uuid和自增相比较,自增更适合。原因:1 uuid是无序的, 插入数据时,页的位置会发生变化,页分裂,速度慢。 2 uuid占的空间大,并且innodb中,别的索引还都要包含主键的值,那么每个索引的空间也都会增大,占的空间大,需要读数据时一般会认为需要的io次数多。 作者:河南-老宋 链接:https://www.zhihu.com/question/43500172/answer/113356943 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 innodb 中的主键是聚簇索引,会把相邻主键的数据安放在相邻的物理存储上。如果主键不是自增,而是随机的,那么频繁的插入会使 innodb 频繁地移动磁盘块,而影响写入性能。 作者:Java编程宇宙 链接:https://www.zhihu.com/question/43500172/answer/2285446787 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 因为 uuid 相对顺序的自增 id 来说是毫无规律可言的,新行的值不一定要比之前的主键的值要大,所以innodb无法做到总是把新行插入到索引的最后,而是需要为新行寻找新的合适的位置从而来分配新的空间。这个过程需要做很多额外的操作,数据的毫无顺序会导致数据分布散乱,将会导致以下的问题:1)写入的目标页很可能已经刷新到磁盘上并且从缓存上移除,或者还没有被加载到缓存中,innodb在插入之前不得不先找到并从磁盘读取目标页到内存中,这将导致大量的随机IO2)因为写入是乱序的,innodb不得不频繁的做页分裂操作,以便为新的行分配空间,页分裂导致移动大量的数据,一次插入最少需要修改三个页以上3)由于频繁的页分裂,页会变得稀疏并被不规则的填充,最终会导致数据会有碎片在把随机值 (uuid和雪花id)载入到聚簇索引(innodb默认的索引类型)以后,有时候会需要做一次OPTIMEIZE TABLE来重建表并优化页的填充,这将又需要一定的时间消耗。结论:使用innodb应该尽可能的按主键的自增顺序插入,并且尽可能使用单调的增加的聚簇键的值来插入新行2.3 使用自增 id 的缺点那么使用自增的id就完全没有坏处了吗?并不是,自增id也会存在以下几点问题:1)别人一旦爬取你的数据库,就可以根据数据库的自增id获取到你的业务增长信息,很容易分析出你的经营情况2)对于高并发的负载,innodb在按主键进行插入的时候会造成明显的锁争用,主键的上界会成为争抢的热点,因为所有的插入都发生在这里,并发插入会导致间隙锁竞争3)Auto_Increment锁机制会造成自增锁的抢夺, 有一定的性能损失 附:Auto_increment的锁争抢问题,如果要改善需要调优innodb_autoinc_lock_mode 的配置 https://www.zhihu.com/question/43500172 http://www.cnblogs.com/tintown/archive/2005/03/02/111459.html 数据库主键设计之思考 在我们的数据库设计中,不可逃避的就是数据库表的主键,可能有很多朋友没有深入思考过,主键的设计对整个数据库的设计影响很大,因此我们不得不要重视起来。 主键的必要性: 有些朋友可能不提倡数据库表必须要主键,但在我的思考中,觉得每个表都应该具有主键,不管是单主键还是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦。 主键的无意义性: 我强调主键不应该具有实际的意义,这可能对于一些朋友来说不太认同,比如订单表吧,会有"订单编号"字段,而这个字段呢在业务实际中本身就是应该具有唯一性,具有唯一标识记录的功能,但我是不推荐采用订单编号字段作为主键的,因为具有实际意义的字段,具有"意义更改"的可能性,比如订单编号在刚开始的时候我们一切顺利,后来客户说"订单可以作废,并重新生成订单,而且订单号要保持原订单号一致",这样原来的主键就面临危险了。因此,具有唯一性的实际字段也代表可以作为主键。因此,我推荐是新设一个字段专门用为主键,此主键本身在业务逻辑上不体现,不具有实际意义。而这种主键在一定程序增加了复杂度,所以要视实际系统的规模大小而定,对于小项目,以后扩展不会很大的话,也查允许用实际唯一的字段作主键的。 ...

2015-03-04 · 3 min · 443 words · -

JPA criteria 查询,更新,删除

JPA criteria 查询,更新,删除 http://my.oschina.net/zhaoqian/blog/133500 http://www.thoughts-on-java.org/2013/10/criteria-updatedelete-easy-way-to.html

2015-02-22 · 1 min · 5 words · -

SonarQube

SonarQube SonarQube (曾用名Sonar (声纳) [1]) 是一个开源的代码质量管理系统。 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 提供重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在Bug、注释和软件设计报告 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测 sonarQube能带来什么? Developers’ Seven Deadly Sins 1.糟糕的复杂度分布 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试 2.重复 显然程序中包含大量复制粘贴的代码是质量低下的 sonar可以展示源码中重复严重的地方 3.缺乏单元测试 sonar可以很方便地统计并展示单元测试覆盖率 4.没有代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写 5.没有足够的或者过多的注释 没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷 6.潜在的bug sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug 7.糟糕的设计 (原文Spaghetti Design,意大利面式设计) 通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系 可以检测自定义的架构规则 通过sonar可以管理第三方的jar包 可以利用LCOM4检测单个任务规则的应用情况 检测耦合 关于Spaghetti Design: http://docs.codehaus.org/display/SONAR/Spaghetti+Design 通过sonar可以有效检测以上在程序开发过程中的七大问题 SonarQube安装 预置条件 1.已安装JAVA环境 2.已安装有MySQL数据库 软件下载地址: http://www.sonarqube.org/downloads/ 下载SonarQube与SonarQube Runner 中文补丁包下载: http://docs.codehaus.org/display/SONAR/Chinese+Pack 1.数据库配置 MySQL> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; MySQL> CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’; MySQL> GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’; ...

2015-02-12 · 2 min · 330 words · -

Javascript异步编程

Javascript异步编程 http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 一、回调函数 二、事件监听 三、发布/订阅 四、Promises对象

2015-02-11 · 1 min · 6 words · -

设置MySQL允许外网访问

设置MySQL允许外网访问 1.修改配置文件 sudo vim /etc/MySQL/my.cnf 把bind-address参数的值改成你的内/外网IP或0.0.0.0,或者直接注释掉这行. 解决MySQL不允许从远程访问的方法 解决方法: 1。改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入MySQL后,更改 “MySQL” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%" MySQL -u root -pvmwareMySQL>use MySQL; MySQL>update user set host = ‘%’ where user = ‘root’; MySQL>select host, user from user; MySQL>FLUSH PRIVILEGES 使修改生效.就可以了

2015-02-10 · 1 min · 38 words · -

free command

free command free命令可以查看系统内存的使用情况,-m 参数表示按照兆字节展示。最后两列分别表示用于IO缓存的内存数, 和用于文件系统页缓存的内存数。需要注意的是, 第二行-/+ buffers/cache,看上去缓存占用了大量内存空间。 这是Linux系统的内存使用策略,尽可能的利用内存,如果应用程序需要内存,这部分内存会立即被回收并分配给应用程序。因此,这部分内存一般也被当成是可用内存。 如果可用内存非常少,系统可能会动用交换区 (如果配置了的话) ,这样会增加IO开销 (可以在iostat命令中提现) ,降低系统性能。 free -h free -m total used free shared buff/cache available Mem: 8.7Gi 4.6Gi 437Mi 1.0Mi 3.8Gi 3.9Gi Swap: 0B 0B 0B Mem:表示物理内存统计。 total:表示物理内存总量( total = used + free + buff/cache )。 used:total - free - buff/cache, 表示总计分配给缓存 (包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。 free:未被分配的内存。 shared:共享内存。Memory used (mostly) by tmpfs (Shmem in /proc/meminfo) buffers:kernel buffers, 系统分配但未被使用的buffers数量。 cached:page cache and slabs, 系统分配但未被使用的cache数量。 available: 启动新的应用程序时可以使用的内存, buffers/cache:表示物理内存的缓存统计。 used2:也就是第一行中的used – buffers - cached也是实际使用的内存总量。 // used2为第二行 free2 = buffers1 + cached1 + free1 // free2为第二行,buffers1等为第一行 free2:未被使用的buffers与cache和未被分配的内存之和,这就是系统当前实际可用内存。 Swap:表示硬盘上交换分区的使用情况。

2015-02-10 · 1 min · 91 words · -

SEM

SEM SEM是Search Engine Marketing的缩写,中文意思是搜索引擎营销。SEM是一种新的网络营销形式。SEM所做的就是全面而有效的利用搜索引擎来进行网络营销和推广。 从狭义角度来讲,SEM就是在搜索平台上投放广告;而SEO则是通过优化目标网站,从而对搜索引擎更加友好。 但从广义角度来说,SEM包含SEO。SEO是SEM的一部分,是搜索引擎营销的其中一个环节。 SEM的四种服务方式: 竞价排名、点击付费、关键词广告、SEO。 竞价排名,顾名思义就是网站付费后才能被搜索引擎收录,付费越高者排名越靠前;竞价排名服务,是由客户为自己的网页购买关键字排名,按点击计费的一种服务。客户可以通过调整每次点击付费价格,控制自己在特定关键字搜索结果中的排名;并可以通过设定不同的关键词捕捉到不同类型的的目标访问者。 而在国内最流行的点击付费搜索引擎有百度,雅虎和Google。值得一提的是即使是做了PPC (Pay Per Click,按照点击收费) 付费广告和竞价排名,最好也应该对网站进行搜索引擎优化设计,并将网站登录到各大免费的搜索引擎中。 购买关键词广告,即在搜索结果页面显示广告内容,实现高级定位投放,用户可以根据需要更换关键词,相当于在不同页面轮换投放广告; 搜索引擎优化 (SEO) ,就是通过对网站优化设计,使得网站在搜索结果中靠前。 搜索引擎优化(SEO)又包括网站内容优化、关键词优化、外部链接优化、内部链接优化、代码优化、图片优化、搜索引擎登录等. PPC ( Pay Per call,按照有效通话收费 ) ,比如: “TMTW来电付费”,就是根据有效电话的数量进行收费。购买竞价广告也被称做PPC 国内搜索引擎营销公司 (SEM) 有SEM工具的 二、无SEM工具的 有工具的: adsage 工具: AFS 特点: 节省人工 国双 SEM 特点: 很炫,也节省人工 分析工具: WebDissector 特点: 小型GA 博雅立方 工具: CubeSearch 特点: 节省人工 无工具的: 紫博蓝 品众互动 中企动力 亿玛 赛美特 网迈 http://www.zhihu.com/question/20307058

2015-02-10 · 1 min · 58 words · -

java rss lib 评测

java rss lib 评测 http://blog.csdn.net/zhaozexin/article/details/282333 前两天上新浪,看到新浪 RSS 频道开通,不容易啊,等了这么久。 我的目标是做一个简单的portlet,每次读取新浪的RSS站点显示最新的新闻条目。 花了一个下午,去sourceforge和google 上搜索 opensource 的 java rss lib,还真有不少 (顺便提一下,sourceforget的搜索真的很烂) 。简单过滤以后,觉得以下三个类库比较有搞头。Rome 、rssutils和rsslib4j。具体的评测如下: 一. Rome Rome 是 java.net 上的一个开源项目,现在的版本是0.5。为什么叫Rome呢,按它的介绍上的说法,有个"条条大路通罗马"的意思,有些RSS的意味。Rome可能是 sun 公司从自己某个子项目中抽离出来的,package和类的命名就象j2sdk一样感觉规范。功能上支持RSS的所有版本及 Atom 0.3(Atom是和RSS类似的一种内容聚合的方式)。Rome 本身是提供API和功能实现,其下独立出一个 rome-fetcher 项目,专门用来读取RSS内容。正和我意啊。 参照 fetcher 上的范例,解析 RSS 相当简单,代码片断如下: FeedFetcher fetcher = new HttpURLFeedFetcher(); SyndFeed feed = fetcher.retrieveFeed(feedUrl); System.out.println(feedUrl + " has a title: " + new String(feed.getTitle().getBytes(“iso8859-1”), “utf-8”) + " and contains " + feed.getEntries().size() + " entries."); for (Iterator iter = feed.getEntries().iterator(); iter.hasNext(); ) { ...

2015-02-09 · 2 min · 332 words · -

jsdom

jsdom jsdom 是一个纯粹由 JavaScript 实现的一系列 Web 标准,特别是 WHATWG 组织制定的 DOM 和 HTML 标准,用于在 Node.js 中使用。 大体上来说,该项目的目标是模拟足够的 Web 浏览器子集,以便用于测试和挖掘真实世界的 Web 应用程序。 import {JSDOM} from "jsdom" test('infoQ test', () => { const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`); console.log("foo test:", dom.window.document.querySelector("p").textContent); // "Hello world" }); 作者:0D0A 链接:https://juejin.cn/post/7151065517569081380 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2015-02-09 · 1 min · 47 words · -

mac os terminal, Creating New Users

‘mac os terminal, Creating New Users’ http://www.maclife.com/article/columns/terminal_101_creating_new_users Every Monday, we’ll show you how to do something new and simple with Apple’s built-in command line application. You don’t need any fancy software, or a knowledge of coding to do any of these. All you need is a keyboard to type ’em out! Adding users through the GUI in OS X is an easy process, but sometimes, you may just need to quickly create an SSH user, or a user that is allowed to SFTP or FTP into the system. You can easily create a stripped-down account in OS X using the dscl command, and we’ll show you how in this week’s Terminal 101. Continue reading to learn all about creating new users through the Terminal. ...

2015-02-06 · 2 min · 383 words · -

RPC, Message Queue, MQ

RPC, Message Queue, MQ http://oldratlee.com/post/2013-02-01/synchronous-rpc-vs-asynchronous-message RPC 和 MQ 的区别 系统结构 RPC系统结构: Consumer 调用的 Provider 提供的服务。 +———-+—–+———-+ | Consumer | <=> | Provider | +—-+—–+—–+———-+ Message Queue 系统结构: Sender 发送消息给 Queue; Receiver 从 Queue 拿到消息来处理。 +——–+—–+——-+—–+———-+ | Sender | <=> | Queue | <=> | Receiver | +——–+—–+——-+—–+———-+ 功能特点 在架构上, RPC 和 Message 的差异点是, Message 有一个中间结点 Message Queue, 可以存储消息。 消息的特点 Message Queue 缓存请求压力, 然后逐渐释放出来, 消费者可以按照自己的节奏处理数据。 Message Queue 引入一个新的结点, 系统的可靠性会受 Message Queue 的影响。 Message Queue 是异步单向的消息。发送消息设计成是不需要等待消息处理的完成。 所以对于有同步返回需求, 用 Message Queue 则变得麻烦了。 ...

2015-02-06 · 1 min · 163 words · -