计算机技术点

1、Docker ai  大数据 分布式 事务 高并发系统 

2、区块链

3、自然语言处理、图像识别、语音识别

4、原子计数atomic

5、ClassLoader

6、分布式缓存Redis;

7、消息系统 activeMq rocketMq zeromq

8、rpm : hfs Dubbo dubbox

9、定时任务:quartz

10、多线程,并发、线程间通讯、exchange

11、分布式计算, hadoop

12、spring boot 注解,Spring cloud 

13、zookeeper

14、NLP

15、python

16、幂等问题

17、memcache

18、mongodb base

19、canal otter datax

20、ThreadLocal 实现原理

21、kafka消息存储机制不了

22、mycat

23、mysql引擎

24、jvm

25、css bfs

26、微服务的restful。

27、netty

28、机器学习框架:sklearn

29、STS

30、Solr 、Shiro、SpringDataJPA 

31、RDMA ps-lite MXNet 基于内存计算的并⾏行处理系统研究与开发。

浏览器身份的User-Agent演变

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36

Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)

故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心(National Center for Supercomputing Applications,简称NCSA)开发,并于1993年发布的一款浏览器。它自称“NCSA_Mosaic/2.0(Windows 3.1)”,Mosaic可以同时展示文字和图片,从此浏览器变得有趣多了。

继续阅读浏览器身份的User-Agent演变

Iaas/Paas/Saas的区别

本文以做饭吃饭这件事情为例,浅显易懂地讲述了Iaas、Paas与Saas的区别。

最近云计算“Saas”概念很火,老板找到你。老板:小汪啊,最近人家说互联网进了下半场,要做产业互联网,做saas服务,我们这也算saas服务了吧,也算是站上了行业风口吧?你擦了擦头上的汗。小汪:老板,要不我给您解释解释saas和他的兄弟们是啥意思吧。老板:速速道来。

继续阅读Iaas/Paas/Saas的区别

PHP+MYSQL实现全文检索

如何使用PHP实现全文检索功能?
很多人可能马上可以想出几种方案,比如:文件检索法、采用SQL的like语句等方法,但这些方法效率都相当的低。
这里介绍一种比较高效的PHP全文检索实现方法,这就是采用MYSQL的FULLTEXT字段类型。但是MYSQL的FULLTEXT字段对中文的支持不是很好,本文也一并介绍如何通过PHP+MYSQL实现中文全文检索功能。
首先需要用到一个PHP中文分词扩展模块——SCWS,关于这个模块的安装和使用大家可以到www.ftphp.com/scws去查找相关内容(如有问题请留言)。
然后再看看mysql的fulltext字段类型的相关信息:
MySQL3.23.23之后的版本开始支持全文索引和搜索。全文索引在 MySQL 中是一个 FULLTEXT 类型索引。
FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上创建。对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 创建索引,这将是非常快的。将数据装载到一个已经有 FULLTEXT 索引的表中,将是非常慢的。

MYSQL全文搜索通过 MATCH() 函数完成。
下面举一简单例子:
1、新建数据表:
CREATE TABLE fulltext_sample(copy TEXT,FULLTEXT(copy)) TYPE=MyISAM;
这里的copy就是一个fulltext类型的字段,如果建表的时候没有添加全文检索字段,也可以通过alert来添加,如:
ALTER TABLE fulltext_sample ADD FULLTEXT(copy)
2、插入数据:
INSERT INTO fulltext_sample VALUES
(‘It appears good from here’),
(‘The here and the past’),
(‘Why are we hear’),
(‘An all-out alert’),
(‘All you need is love’),
(‘A good alert’);
3、数据检索:
SELECT * FROM fulltext_sample WHERE MATCH(copy) AGAINST(‘love’);
上面就是mysql的全文检索功能,注意:在全文索引上进行搜索是不区分大小写的。

下面再看如何实现中文全文检索。
fulltext字段是以词语为单位,词语之间需要用空格隔开,而汉语的句子中各个词语之间并不会用空格隔开,因此我们需要对中文进行分词,这也就是为什么上面需要强词用到中文分词扩展模块。
但是尽管对中文进行分词,MYSQL还是不能通过MATCH来实现中文的全文检索,这需要通过一定的方法来进行转换,一个比较简单实用的方法是采用下面这个函数(当然还有更好的),它将中文进行了urlencode转换。
function q_encode($str)
{
 $data = array_filter(explode(” “,$str));
 $data = array_flip(array_flip($data));
 foreach ($data as $ss) {
  if (strlen($ss)>1 ) 
   $data_code .= str_replace(“%”,””,urlencode($ss)) . ” “;
 }
 $data_code = trim($data_code);
 return $data_code;
}
将转换过后的内容保存至事先定义好的fulltext字段。同样,在查询的时候也需要将查询的关键词进行同样方法的转换。

浅谈Docker隔离性和安全性

相信很多开发者都默认Docker这样的容器是一种沙盒(sandbox)应用,也就是说他们可以用root权限在Docker中运行随便什么应用,而Docker有安全机制能保护宿主系统。比如,有些人觉得Docker容器里面的进程跟虚拟机里面的进程一样安全;还有的人随便找个源就下载没有验证过的Docker镜像,看都不看内容就在宿主机器上尝试、学习和研究;还有一些提供PaaS服务的公司竟然允许用户向多租户系统中提交自己定制的Docker镜像。请注意,上述行为均是不安全的。
继续阅读浅谈Docker隔离性和安全性

新企业初始化

declare @blue varchar(40);
declare @uid decimal(10,0);
declare @eid int;
declare cur_blue cursor for select EID,DeviceType+’$’+Bluetooth from [EnterpriseBluetooth];
open cur_blue
fetch next from cur_blue into @eid,@blue;
WHILE @@FETCH_STATUS = 0
BEGIN
declare cur_user cursor for select U_ID from [UserEx] where BluetoothAddr like ‘%’+@blue+’%’;
open cur_user
fetch next from cur_user into @uid;
WHILE @@FETCH_STATUS = 0
BEGIN
update [User] set Enterprise_ID=@eid where ID=@uid and (Enterprise_ID is null or Enterprise_ID =0);
fetch next from cur_user into @uid;
END
close cur_user
deallocate cur_user
fetch next from cur_blue into @eid,@blue;
END
close cur_blue
deallocate cur_blue