网络论坛
基于ubuntu搭建Discuz论坛
准备 LAMP 环境LAMP 是 Linux、Apache、MySQL 和 PHP 的缩写,是 Discuz 论坛系统依赖的基础运行环境。我们先来准备 LAMP 环境:安装 Apache2ubuntu 需要安装 Apache2 ,使用 apt-get 安装 Apache2:sudo apt-get install apache2 -y安装好后,您可以通过访问实验室IP地址 http://123.207.9.240 查看到 apache 界面,说明 apache2 安装成功。安装 PHP 组件apt-get 里有 php7.0 ,所以我们可以直接安装 php7.0 :sudo apt-get install php7.0 -y安装 php 相关组件:sudo apt-get install libapache2-mod-php7.0重启 Apache 服务:sudo /etc/init.d/apache2 restart安装 PHP 组件apt-get 里有 php7.0 ,所以我们可以直接安装 php7.0 :sudo apt-get install php7.0 -y安装 php 相关组件:sudo apt-get install libapache2-mod-php7.0重启 Apache 服务:sudo /etc/init.d/apache2 restart安装 PHP 组件apt-get 里有 php7.0 ,所以我们可以直接安装 php7.0 :sudo apt-get install php7.0 -y安装 php 相关组件:sudo apt-get install libapache2-mod-php7.0重启 Apache 服务:sudo /etc/init.d/apache2 restart安装 MySQL 服务安装 MySQL 服务,安装 MySQL 过程中,控制台会提示您输入 MySQL 的密码,您需要输入两次密码,并记住您输入的密码,后续安装步骤需要用到。sudo apt-get install mysql-server -y注意 密码需要输入两次安装 php MySQL 相关组件:sudo apt-get install php7.0-mysql重启 MySQL 服务sudo service mysql restart安装 phpmyadmin使用 apt-get 安装 phpmyadmin,安装过程中,您需要根据提示选择 apache2 ,再根据提示输入数据库名称和 phpmyadmin 密码。sudo apt-get install phpmyadmin -y按照提示操作设置数据库名称和phpmyadmin密码安装并配置 Discuz安装 Discuz我们需要下载一个Discuz 压缩包:wget 'http://download.comsenz.com/DiscuzX/3.3/Discuz_X3.3_SC_UTF8.zip'为了将压缩包解压,需要安装一个 unzip :sudo apt-get install unzip下载完成后,解压这个压缩包sudo unzip Discuz_X3.3_SC_UTF8.zip解压完后,就能在 upload 文件夹里看到discuz的源码了配置 Discuz由于 PHP 默认访问 /var/www/html/ 文件夹,所以我们需要把 upload 文件夹里的文件都复制到 /var/www/html/ 文件夹sudo mv upload/* /var/www/html/将目录切换到 php 访问的文件夹下,cd /var/www/html/修改一下 config、data、uc_server/data/、uc_client/data/cache 目录权限:sudo chmod -R 777 config/ data/ uc_server/data/ uc_client/data/cache/将 apache 指定到 index.htmlsudo mv /var/www/html/index.html /var/www/html/index~.html重启 Apache 服务:sudo /etc/init.d/apache2 restart准备域名和证书域名注册如果您还没有域名,可以在LIKE.TG上选购,过程可以参考下面的视频。https://v.qq.com/x/page/p05077pwelw.html域名解析域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为:123.207.9.240在LIKE.TG购买的域名,可以到控制台添加解析记录,过程可参考下面的视频:https://v.qq.com/x/page/t0507ps9kxo.html域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 ,如:ping www.yourdomain.com如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。本实验取自LIKE.TG实验室,是手工照着实验室内容做的如今部分源可能存在过期问题,可以在云+问答中补充
论坛附件批量下载说明
论坛附件批量下载说明 作者:matrix 被围观: 4,087 次 发布时间:2013-01-26 分类:兼容并蓄 | 无评论 » 这是一个创建于 3504 天前的主题,其中的信息可能已经有所发展或是发生改变。 使用工具是Internet Download Manager下载地址:http://dl.vmall.com/c0290lb6m6
http://yfdisk.com/file/hhtjim/b44bb173/首先自然是下载,然后点Keygen.exe注册一下,在打开IDMan.exe启动主程序,之后是一些傻瓜式设置,随便设置就可以了,接下来就进行设置,点“下载”,点“选项” 出现了配置界面,大家自己喜欢改改“保存位置”,这主要是改一个地方,下载进度对话框,改为隐藏,如下 不然,同时下载很多,会弹出一大堆下载窗口。设置好后,打开IE,在网页上点右键,应该会出现“使用IDM下载所有链接”没有就再进设置看看集成好IE没,再关闭IE,再打开看看,这样,准备工作就做好了,接下来下载就可以了。 打开一个主题,看到一堆附件,这时就点“使用IDM下载所有链接”,这时在右下选上“隐藏HTML文件”和"全选",等一等,一定要等它把所有文件都验证完,你就会看到自己要找的文件了。点“确定“就会出现再点"开始队列"下载就OK啦!by:http://www.taisha.org/bbs/viewthread.php?tid=820611
论坛
Discuz!是一个用PHP编写的论坛框架,像六维以及我们学校少年班学院的格物致知论坛都是搭建在Discuz!上面的,看论坛页面左下角,都写着”Powered by Discuz!xxx”,其中xxx表示Discuz!的版本号.因为我们实验室师兄用内网搭建了个服务器管理的论坛,而且我之前也尝试过搭建wordpress博客(详细过程可以看我这篇博客)而且成功了(其实没什么技术含量….),估计这个过程也差不多,所以我就想试试Discuz!能否搞定.但我们学校有规定,不能用freeshell搭建网络论坛的,所以我就在我电脑上试着搞搞Discuz!玩玩.
整个过程大概分为两部分,第一部分就是搭建LAMP整个框架,第二部分就是在LAMP基础上配置Discuz!.其实LAMP框架是最核心的东西,有了这个框架,其实我们完全不用什么wordpress和Discuz!,只要你可以写后端的PHP程序和前端的HTML,CSS,JS这些代码,完全可以自己写网站或论坛等.而wordpress,Discuz!给了不会或者写不好代码的人一个简易的搭博客和搭论坛的方式,大大简化了步骤,缩短了开发时间.搭建LAMP的过程我已经在搭wordpress的博客里面写了,也可以访问debian的wiki.下面我着重陈述配置Discuz!的部分.1.下载Discuz!压缩文件:下载地址为:http://www.discuz.net/thread-3570835-1-1.html.有简体和繁体的GBK和UTF8版本,可以根据自己需要下载相应版本.2.将下载的Discuz!压缩文件解压:代码语言:javascript复制unzip /path/to/Discuz_XXX_XX_XXX.zip其中/path/to/要改为到压缩包的路径,Discuz_XXX_XX_XXX.zip要改为你下载的压缩包的名字.3.将解压后的upload文件夹复制到apache2的默认网页目录(/var/www/)下的forum下:代码语言:javascript复制mkdir /var/www/forum
cp -R upload /var/www/forum4.修改forum目录下的子目录的访问权限:代码语言:javascript复制cd /var/www/forum
sudo chmod -R 777 config data uc_client uc_server经过简单的几步操作,我们就可以开始Discuz!的配置了.5.Discuz!数据库配置:在浏览器中输入http://localhost/forum,就会出现Discuz!的配置页面:然后我们一步一步来安装.a.首先在这个页面选择我同意按钮,就会到1.开始安装页面:b.如果之前修改了forum子目录的权限的话,这一步是没问题的.如果有问题,请检查你的chmod那个命令执行了没有.没问题的话,按页面底部的下一步按钮,就到2.设置运行环境页面:这一步选择默认即可.下一步就到了3.安装数据库页面了:这一步就是配置数据库,设置管理员信息.要注意的是管理员密码是必须填的,也是管理员登录这个论坛的passwd.填好之后下一步,就到了4.安装数据库:可以看到,这一步就是执行上一步表中所填的内容,即在MySQL数据库中创建数据库,创建表格,执行初始化操作等等.安装完成后就到了这个页面:看到右下角一行小字:”您的论坛已安装完成,点此访问”了吗?,点击这个按钮,就可以看到你的论坛了!下面是我发了一个帖子的页面:至此,Discuz!搭建就完成了.
社交网络之图论实战
社交网络之图论实战0.前言1.准备工作2.学习方法3.社交网络实战4.问题处理5.作者的话0.前言又到了新的一周,今天来学点新的知识,这节学的知识还是非常重要,那就是属于社交网络方向以及知识图谱方向以及我们研究生的一门课---《图论》!本节将从我的学习方式到英文文档如何学习以及如何处理问题,以及如何去研究社交网络及图论等角度来分析!
下面一起来学习新知识吧,记得打开你的python哦,哈哈,就是一篇python实战篇!1.准备工作本节以python-igraph来学习社交网络与图论相关知识!【两个网站】那么我们一起来安装一下,这里引入两个网站。第一:(whl)包安装网站:https://www.lfd.uci.edu/~gohlke/pythonlibs/第一:igraph API官网:http://igraph.org/python/doc/tutorial/tutorial.html#structural-properties-of-graphs【安装包】在第一个网站搜索Python-igraph,然后找到相应的版本下载即可。最后pip install xxx.whl即可完成安装!2.学习方法【学习方法】之前有人在交流群或者私下问我学习的方式,那么我现在告诉各位我的学习方法之一就是阅读官网API,我看了一下这个官网API,很详细,虽然是英文的,但是对于英文我们总不能躲避,而是顺其意,码其码!在阅读中,我们可以学到一些API术语,以及相关操作的表达,这些在平时开发中学不到,但是却对于平时开发的异常处理十分重要!比如写了一个bug,报了个错,有些API中会把这些作为警告表示出来,你看到了,也就学会了,在出现这些问题的时候,直接查问题即可,而不是盲目的不知所措,虽然说搜索很重要,但比搜索更重要的是你的思路,也就是先导!【正确阅读】这里贴出一张图,我们看到这个API,会发现上面是描述,下面是代码。我的学习方式是对比法,就是将上述英文与代码对比来实战!先看一下代码如果能看懂,则直接简化上述的文字,略读即可!如果碰到十分重要的代码,则从文字中提取信息对比代码来看!实在不行,谷歌或者其他的翻译手段进行翻译!【什么值得读】有些API非常建议读,比如这个,但是并不是所有的API具有可读性,像那种排版很差,解释性不强的,直接略过即可!API分类明确,详细阐述的,可读!3.社交网络实战导包代码语言:javascript复制from igraph import *
版本代码语言:javascript复制igraph.__version__
'0.7.1'创建图代码语言:javascript复制# 创建图
g=Graph()
g
输出:代码语言:javascript复制<igraph.Graph at 0x21d1237a138>
另一种打印代码语言:javascript复制print(g)
输出:代码语言:javascript复制IGRAPH U--- 0 0 --
添加三个节点代码语言:javascript复制# 添加三个节点
g.add_vertices(3)
打印代码语言:javascript复制print(g)
输出:代码语言:javascript复制IGRAPH U--- 3 0 --
添加两条边代码语言:javascript复制#添加两条边
g.add_edges([(1,2),(0,1)])
添加三个节点代码语言:javascript复制# 生成3个节点,2条边
print(g)
输出:代码语言:javascript复制IGRAPH U--- 3 2 --
+ edges:
1--2 0--1
再添加三个节点代码语言:javascript复制# 再添加三个节点
g.add_vertices(3)
print(g)
输出:代码语言:javascript复制IGRAPH U--- 6 2 --
+ edges:
1--2 0--1
添加更多关系代码语言:javascript复制# 添加更多关系
g.add_edges([(2,3),(3,4),(4,5),(5,3)])
6个节点,6条边的无向图代码语言:javascript复制# 6个节点,6条边的无向图
print(g)
输出:代码语言:javascript复制IGRAPH U--- 6 6 --
+ edges:
1--2 0--1 2--3 3--4 4--5 3--5
获取边id代码语言:javascript复制g.get_eid(1,2)
输出:代码语言:javascript复制0
同理获取边id代码语言:javascript复制g.get_eid(0,1)
输出:代码语言:javascript复制1
获取边列表代码语言:javascript复制g.get_edgelist()
输出:代码语言:javascript复制[(1, 2), (0, 1), (2, 3), (3, 4), (4, 5), (3, 5)]
获取图的顶点与边代码语言:javascript复制summary(g)
输出:代码语言:javascript复制IGRAPH U--- 6 6 --
树生成边与顶点代码语言:javascript复制# 生成127个顶点,126条边,2代表每个顶点两个孩子
g2=Graph.Tree(127,2)
print(g2)
输出:代码语言:javascript复制IGRAPH U--- 127 126 --
+ edges:
0--1 0--2 1--3 1--4 2--5 2--6 3--7 3--8 4--9 4--10 5--11 5--12 6--13 6--14
7--15 7--16 8--17 8--18 9--19 9--20 10--21 10--22 11--23 11--24 12--25 12--26
...
...
...
随机生成图代码语言:javascript复制#随机生成图
g = Graph.GRG(100, 0.2)
print(g)
输出:代码语言:javascript复制IGRAPH U--- 100 597 --
+ attr: x (v), y (v)
+ edges:
0 -- 3 5 6 9 11
1 -- 3 8 10 16
2 -- 5 6 13
...
...
检查两图是否同构代码语言:javascript复制#检查两图是否同构
#g.isomorphic(g2)
生成一个完整无向图代码语言:javascript复制g = Graph([(0,1), (0,2), (2,3), (3,4), (4,2), (2,5), (5,0), (6,3), (5,6)])
print(g)
输出:代码语言:javascript复制IGRAPH U--- 7 9 --
+ edges:
0 -- 1 2 5 2 -- 0 3 4 5 4 -- 2 3 6 -- 3 5
1 -- 0 3 -- 2 4 6 5 -- 0 2 6
查看顶点代码语言:javascript复制g.vs
输出:代码语言:javascript复制<igraph.VertexSeq at 0x21d123a08b8>
顶点属性定义代码语言:javascript复制g.vs["name"] = ["Alice", "Bob", "Claire", "Dennis", "Esther", "Frank", "George"]
print(g)
输出:代码语言:javascript复制IGRAPH UN-- 7 9 --
+ attr: name (v)
+ edges (vertex names):
Alice -- Bob, Claire, Frank Esther -- Claire, Dennis
Bob -- Alice Frank -- Alice, Claire, George
Claire -- Alice, Dennis, Esther, Frank George -- Dennis, Frank
Dennis -- Claire, Esther, George
另一属性定义:代码语言:javascript复制g.vs["age"] = [25, 31, 18, 47, 22, 23, 50]
print(g)
输出:代码语言:javascript复制IGRAPH UN-- 7 9 --
+ attr: age (v), name (v)
+ edges (vertex names):
Alice -- Bob, Claire, Frank Esther -- Claire, Dennis
Bob -- Alice Frank -- Alice, Claire, George
Claire -- Alice, Dennis, Esther, Frank George -- Dennis, Frank
Dennis -- Claire, Esther, George
另一属性定义代码语言:javascript复制g.vs["gender"] = ["f", "m", "f", "m", "f", "m", "m"]
print(g)
输出:代码语言:javascript复制IGRAPH UN-- 7 9 --
+ attr: age (v), gender (v), name (v)
+ edges (vertex names):
Alice -- Bob, Claire, Frank Esther -- Claire, Dennis
Bob -- Alice Frank -- Alice, Claire, George
Claire -- Alice, Dennis, Esther, Frank George -- Dennis, Frank
Dennis -- Claire, Esther, George
边属性定义代码语言:javascript复制g.es["is_formal"] = [False, False, True, True, True, False, True, False, False]
print(g)
输出:代码语言:javascript复制IGRAPH UN-- 7 9 --
+ attr: age (v), gender (v), name (v), is_formal (e)
+ edges (vertex names):
Alice -- Bob, Claire, Frank Esther -- Claire, Dennis
Bob -- Alice Frank -- Alice, Claire, George
Claire -- Alice, Dennis, Esther, Frank George -- Dennis, Frank
Dennis -- Claire, Esther, George
边属性获取代码语言:javascript复制g.es[0]
输出:代码语言:javascript复制igraph.Edge(<igraph.Graph object at 0x0000021D1237A408>, 0, {'is_formal': False})
属性获取代码语言:javascript复制g.es[0].attributes()
输出:代码语言:javascript复制{'is_formal': False}
属性深入获取代码语言:javascript复制g.es[0]["is_formal"]
输出:代码语言:javascript复制False
修改属性值代码语言:javascript复制g.es[0]["is_formal"]=True
g.es[0].attributes()
输出:代码语言:javascript复制{'is_formal': True}
顶点属性获取代码语言:javascript复制g.vs[0]
输出:igraph.Vertex(<igraph.Graph object at 0x0000021D1237A408>, 0, {'name': 'Alice', 'age': 25, 'gender': 'f'})
g.vs[0].attributes()
输出:{'age': 25, 'gender': 'f', 'name': 'Alice'}
g.vs[0]['age']=0
g.vs[0].attributes()
输出:{'age': 0, 'gender': 'f', 'name': 'Alice'}
g.vs[0]['age']=25
g.vs[0].attributes()
输出:{'age': 25, 'gender': 'f', 'name': 'Alice'}
添加新顶点属性代码语言:javascript复制g.vs[3]["foo"]="bar"
g.vs["foo"]
输出:代码语言:javascript复制[None, None, None, 'bar', None, None, None]
删除顶点属性代码语言:javascript复制del g.vs["foo"]
验证是否存在代码语言:javascript复制g.vs["foo"]
输出:代码语言:javascript复制---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-151-a2e2f8e7cb08> in <module>()
----> 1 g.vs["foo"]
KeyError: 'Attribute does not exist'
顶点度代码语言:javascript复制g.degree()
输出:代码语言:javascript复制[3, 1, 4, 3, 2, 3, 2]
入度与出度代码语言:javascript复制# mode instead type
g.degree(mode="in")
输出:[3, 1, 4, 3, 2, 3, 2]
g.degree(mode="out")
输出:[3, 1, 4, 3, 2, 3, 2]
获取度代码语言:javascript复制g.degree([2,3,4])
输出:代码语言:javascript复制[4, 3, 2]
边缘中介代码语言:javascript复制# 边缘中介
g.edge_betweenness()
输出:代码语言:javascript复制[6.0, 6.0, 4.0, 2.0, 4.0, 3.0, 4.0, 3.0, 4.0]
获取最大边缘中介边代码语言:javascript复制[g.es[idx].tuple for idx, eb in enumerate(ebs) if eb == max_eb]
输出:代码语言:javascript复制[(0, 1), (0, 2)]
顶点度代码语言:javascript复制g.vs.degree()
输出:代码语言:javascript复制[3, 1, 4, 3, 2, 3, 2]
查询代码语言:javascript复制#查询
g.vs.select(_degree = g.maxdegree())["name"]
输出:['Claire']
布局绘图下面两个等价代码语言:javascript复制layout = g.layout_kamada_kawai()
layout = g.layout("kamada_kawai")
完整绘图代码语言:javascript复制layout = g.layout("kk")
plot(g, layout = layout)
输出:绘图配置代码语言:javascript复制g.vs["label"] = g.vs["name"]
color_dict = {"m": "green", "f": "pink"}
g.vs["color"] = [color_dict[gender] for gender in g.vs["gender"]]
plot(g, layout = layout, bbox = (300, 300), margin = 30)
输出:自定义绘图代码语言:javascript复制visual_style = {}
visual_style["vertex_size"] = 20
visual_style["vertex_color"] = [color_dict[gender] for gender in g.vs["gender"]]
visual_style["vertex_label"] = g.vs["name"]
visual_style["edge_width"] = [1 + 2 * int(is_formal) for is_formal in g.es["is_formal"]]
visual_style["layout"] = layout
visual_style["bbox"] = (300, 300)
visual_style["margin"] = 20
plot(g, **visual_style)
输出:绘图存储代码语言:javascript复制plot(g, "social_network.png", **visual_style)
输出:4.问题处理在plot时报错!解决办法:首先安装cairo,在我上面写到的whl中查找这个包,然后安装,安装后按照下面图片找到包的位置,在官网给出的地址处下载下面第三点的相关dll文件,并放置包位置即可!(下面给出地址)http://igraph.org/python/doc/tutorial/install.html#installing-igraph
语音社交新时代:语音社交APP源码需要解决的难点问题
随着游戏、动漫等的火热,以及AI、5G技术的发展,以音视频、游戏为主导的多场景社交产品逐渐成为热点。网易巨头“声波”的入局,意味着传统的社交应用正在向多场景社交应用转型,多场景社交将为平台商业变现提供更多可能,或将成为下一增长点。作为多人语音连麦系统,语音社交APP源码在开发时,有以下几个需要重点关注的问题:1、连麦机制:互动连麦的选取主要是一对一和多人连麦两种,无论哪种方式,目前市面上都有完整的连麦SDK,可以根据产品定位进行选取。抢麦、跳麦、麦位排序、抱麦、上麦、下麦等是典型场景,复杂的麦位逻辑需要详细设计,否则影响会产品体验。2、前处理:在很多多人连麦聊天场景下,语音内容的前处理技术极为关键。主要是针对聊天室内回声和噪音的处理,尽可能给用户提供无损音质下的互动聊天体验。3音效处理:在很多语音社交APP中,变声功能是经常会用到的,在陌生人交友场景中变声功能增加了匿名聊天的趣味性,但是这种变声音效的处理对技术要求较高。4、房间音乐:背景音乐是语音直播社交系统开发的重要内容,不同于视频直播平台,可以存在直播画面,对于语音聊天系统来说,在单纯的语音世界里,声音每时每刻都是重要的,房间的背景音乐能够让用户的听觉持续受到刺激,增加互动娱乐性。5、高并发:应用高峰一般会出现在午休时刻、晚上或者周末,音视频通话发起、接听数会瞬间爆发增长,如果音视频架构不能支持海量并发,那么通话发起或者接听不成功、丢包、卡顿、延时等现象出现几率极高;6、卡顿:通常是由丢包引起,涉及到音视频编解码性能质量,以及端到端的传输链路设计都会对卡顿造成影响;7、时延:通话延时大于150ms时,就会影响通话质量通话连续性影响,当最大时延大于400ms,基本听不到对方讲话;8、音质:噪声、回声、听不清、无声等音质问题,特别影响用户体验,提高音质,适配机型、适配音频编解码、调优性能等工作需要重视。语音社交作为社交形式当中极为重要的一环,相信会有越来越多的企业和产品来不断的展现其多元化的属性,并进入到语音社交的时代。
Python社交网络——NetworkX入门
特性NetworkX是一个Python包,用于创建、操作和研究复杂网络的结构和功能。用于图、有向图和多重图的数据结构许多标准图数据算法网络结构和分析措施用于生成经典图、随机图和合成网络的生成器节点可以是“任何东西”(例如,文本、图像、XML记录)边可以容纳任意数据(例如,权重,时间序列)无向图
Python代码语言:javascript复制import networkx as nx
import matplotlib.pyplot as plt
# 无向图网络
G1 = nx.Graph()
G1.add_edge('A', 'B')
G1.add_edge('A', 'C')
G1.add_edge('A', 'D')
G1.add_edge('A', 'E')
G1.add_edge('B', 'C')
G1.add_edge('B', 'D')
G1.add_edge('B', 'E')
G1.add_edge('F', 'C')
nx.spring_layout(G1)
nx.draw_networkx(G1)
plt.show()
print('全部节点为:', G1.nodes())
print('全部边为:', G1.edges())
print('全部边数量:', G1.number_of_edges())有向图
Python代码语言:javascript复制# 有向图网络
G2 = nx.DiGraph()
G2.add_edge('A', 'B')
G2.add_edge('A', 'D')
G2.add_edge('C', 'A')
G2.add_edge('D', 'E')
nx.spring_layout(G2)
nx.draw_networkx(G2)
plt.show()加权图
Python代码语言:javascript复制# 加权图网络
G3 = nx.Graph()
G3.add_edge('A', 'B', weight=25)
G3.add_edge('A', 'C', weight=8)
G3.add_edge('A', 'D', weight=11)
G3.add_edge('A', 'E', weight=1)
G3.add_edge('B', 'C', weight=4)
G3.add_edge('B', 'D', weight=7)
G3.add_edge('B', 'E', weight=1)
G3.add_edge('E', 'C', weight=1)
nx.spring_layout(G3)
nx.draw_networkx(G3)
plt.show()某一点到其他点的BFS图代码语言:javascript复制T = nx.bfs_tree(G3, 'A')
nx.draw_networkx(T)
plt.show()自带的Cycle图
Python代码语言:javascript复制G4 = nx.cycle_graph(50)
pos = nx.spring_layout(G4, iterations=200)
nx.draw(G4, pos, node_color=range(50), node_size=500, font_weight='bold', with_labels=True)
plt.show()其他属性
Python代码语言:javascript复制print('G1中A的度数:', nx.degree(G1, 'A'))
print('G1中A的局部聚类系数:', nx.clustering(G1, 'A'))
print('G1中两个点的最短路径:', nx.shortest_path(G1, 'A', 'F'))
print('G3中两个点的最短路径长度:', nx.shortest_path_length(G3, 'D', 'E'))
print('G1的节点离心度:', nx.eccentricity(G1))实例
Python代码语言:javascript复制# 导入带权图
G = nx.Graph()
G.add_edges_from([('a', 'b', {'weight': 0.6}),
('a', 'c', {'weight': 0.2}),
('a', 'd', {'weight': 0.1}),
('c', 'e', {'weight': 0.7})])
# 对不同权重进行处理,取得相应权重的点集列表,比如weight>0.5的点集列表为[('a', 'b'), ('c', 'e')]
elarge = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] > 0.5]
esmall = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] <= 0.5]
node1 = ['a', 'b']
node2 = ['c', 'd', 'e']
edge = {(u, v): d['weight'] for (u, v, d) in G.edges(data=True) if d['weight'] > 0.5} # 加权处理
# 必须设定一个统一的布局,保证下面分步绘制的图的统一性,而且分步绘制时pos是一个必须参数
pos = nx.spring_layout(G)
# 分步绘制完整的图
# (1)绘制点,必须参数(G,pos),还可以指定点集(列表或optional)(默认全点集),形状,大小,透明度,等
nx.draw_networkx_nodes(G, pos=pos, nodelist=node1) # > 0.5
nx.draw_networkx_nodes(G, pos=pos, nodelist=node2, node_shape='*', node_color='r', node_size=700)
# (2)绘制边,必须参数(G,pos, 还可以指定边集(边的元组集合(列表))(默认全边集),形状,大小,透明度,等
nx.draw_networkx_edges(G, pos=pos, edgelist=elarge)
nx.draw_networkx_edges(G, pos=pos, edgelist=esmall, edge_color='b', style='dashed', width=3)
# (3)绘制部分节点的标签,必须参数(G,pos),还可以指定点集(字典(值)或optional)(默认全点集),形状,大小,透明度,等
nx.draw_networkx_labels(G, pos=pos, labels={'a': 'a', 'b':'b', 'c': 'c', 'd': 'd', 'e': 'e'}, font_size=18, font_color='b', font_family='sans-serif')
# (4)绘制边的标签,必须参数(G,pos),还可以指定边集(字典:键是边的元组,值是边的某个属性值)(默认全边集),形状,大小,透明度,等
# 根据字典,通过键给边添加值的标签,{('a', 'b'): 0.6, ('c', 'e'): 0.7}
nx.draw_networkx_edge_labels(G, pos=pos, edge_labels=edge, font_size=7, font_color='black', font_family='sans-serif')
# 显示
plt.axis('off')
plt.show()实例来自:https://www.cnblogs.com/yu-liang/p/9117643.html所有代码
Python代码语言:javascript复制import networkx as nx
import matplotlib.pyplot as plt
# 无向图网络
G1 = nx.Graph()
G1.add_edge('A', 'B')
G1.add_edge('A', 'C')
G1.add_edge('A', 'D')
G1.add_edge('A', 'E')
G1.add_edge('B', 'C')
G1.add_edge('B', 'D')
G1.add_edge('B', 'E')
G1.add_edge('F', 'C')
nx.spring_layout(G1)
nx.draw_networkx(G1)
plt.show()
print('全部节点为:', G1.nodes())
print('全部边为:', G1.edges())
print('全部边数量:', G1.number_of_edges())
# 有向图网络
G2 = nx.DiGraph()
G2.add_edge('A', 'B')
G2.add_edge('A', 'D')
G2.add_edge('C', 'A')
G2.add_edge('D', 'E')
nx.spring_layout(G2)
nx.draw_networkx(G2)
plt.show()
# 加权图网络
G3 = nx.Graph()
G3.add_edge('A', 'B', weight=25)
G3.add_edge('A', 'C', weight=8)
G3.add_edge('A', 'D', weight=11)
G3.add_edge('A', 'E', weight=1)
G3.add_edge('B', 'C', weight=4)
G3.add_edge('B', 'D', weight=7)
G3.add_edge('B', 'E', weight=1)
G3.add_edge('E', 'C', weight=1)
nx.spring_layout(G3)
nx.draw_networkx(G3)
plt.show()
# 某一点到其他点的BFS图
T = nx.bfs_tree(G3, 'A')
nx.draw_networkx(T)
plt.show()
# 自带的Cycle图
G4 = nx.cycle_graph(50)
pos = nx.spring_layout(G4, iterations=200)
nx.draw(G4, pos, node_color=range(50), node_size=500, font_weight='bold', with_labels=True)
plt.show()
print('G1中A的度数:', nx.degree(G1, 'A'))
print('G1中A的局部聚类系数:', nx.clustering(G1, 'A'))
print('G1中两个点的最短路径:', nx.shortest_path(G1, 'A', 'F'))
print('G3中两个点的最短路径长度:', nx.shortest_path_length(G3, 'D', 'E'))
print('G1的节点离心度:', nx.eccentricity(G1))
# 导入带权图
G = nx.Graph()
G.add_edges_from([('a', 'b', {'weight': 0.6}),
('a', 'c', {'weight': 0.2}),
('a', 'd', {'weight': 0.1}),
('c', 'e', {'weight': 0.7})])
# 对不同权重进行处理,取得相应权重的点集列表,比如weight>0.5的点集列表为[('a', 'b'), ('c', 'e')]
elarge = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] > 0.5]
esmall = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] <= 0.5]
node1 = ['a', 'b']
node2 = ['c', 'd', 'e']
edge = {(u, v): d['weight'] for (u, v, d) in G.edges(data=True) if d['weight'] > 0.5} # 加权处理
# 必须设定一个统一的布局,保证下面分步绘制的图的统一性,而且分步绘制时pos是一个必须参数
pos = nx.spring_layout(G)
# 分步绘制完整的图
# (1)绘制点,必须参数(G,pos),还可以指定点集(列表或optional)(默认全点集),形状,大小,透明度,等
nx.draw_networkx_nodes(G, pos=pos, nodelist=node1) # > 0.5
nx.draw_networkx_nodes(G, pos=pos, nodelist=node2, node_shape='*', node_color='r', node_size=700)
# (2)绘制边,必须参数(G,pos, 还可以指定边集(边的元组集合(列表))(默认全边集),形状,大小,透明度,等
nx.draw_networkx_edges(G, pos=pos, edgelist=elarge)
nx.draw_networkx_edges(G, pos=pos, edgelist=esmall, edge_color='b', style='dashed', width=3)
# (3)绘制部分节点的标签,必须参数(G,pos),还可以指定点集(字典(值)或optional)(默认全点集),形状,大小,透明度,等
nx.draw_networkx_labels(G, pos=pos, labels={'a': 'a', 'b':'b', 'c': 'c', 'd': 'd', 'e': 'e'}, font_size=18, font_color='b', font_family='sans-serif')
# (4)绘制边的标签,必须参数(G,pos),还可以指定边集(字典:键是边的元组,值是边的某个属性值)(默认全边集),形状,大小,透明度,等
# 根据字典,通过键给边添加值的标签,{('a', 'b'): 0.6, ('c', 'e'): 0.7}
nx.draw_networkx_edge_labels(G, pos=pos, edge_labels=edge, font_size=7, font_color='black', font_family='sans-serif')
# 显示
plt.axis('off')
plt.show()
HostLoc论坛自动签到脚本
记录一下省的下回找不到.代码语言:javascript复制<?php
$lines = file(dirname(__FILE__).'/list.txt');
foreach($lines as $line){
list($username, $password) = explode('#', $line);
$username = trim($username);
$password = trim($password);
if(empty($username) || empty($password)){
continue;
}
$suburl = "https://www.hostloc.com/member.php?mod=loggingaction=login";
$loginInfo = array(
"fastloginfield" => "username",
"username" => $username,
"password" => $password,
"quickforward" => "yes",
"handlekey" => "ls",
"loginsubmit" => true
);
echo "login($username) ... ";
$login = curl_post($suburl,$loginInfo);
if(strpos($login, $username) !== FALSE){
preg_match("/>用户组: (.*?)<\/a>/", $login, $preg);
$group = $preg[1];
echo "Success!($group)\n";
}else{
echo "Failed!\n\n";
continue;
}
extract(get_jf());
echo "Credit: $credit; Money: $money\n";
echo "Visting user space ";
for($i=0;$i<20;$i++){
$uid = mt_rand(10000,20000);
curl_get('https://www.hostloc.com/space-uid-'.$uid.'.html');
sleep(1);
echo ".";
}
echo " done!\n";
extract(get_jf());
echo "Credit: $credit; Money: $money\n\n";
}
function get_jf(){
$data = array();
$html = curl_get("https://www.hostloc.com/home.php?mod=spacecpac=creditop=base");
preg_match("/积分: (\d+)<\/a>/", $html, $preg);
if(!empty($preg[1])){
$data['credit'] = $preg[1];
}else{
$data['credit'] = 0;
}
preg_match("/金钱: <\/em>(\d+)/", $html, $preg);
if(!empty($preg[1])){
$data['money'] = $preg[1];
}else{
$data['money'] = 0;
}
return $data;
}
function curl_post($url, $post_data){
$ch = curl_init ();
curl_setopt($ch, CURLOPT_POST , 1);
curl_setopt($ch, CURLOPT_HEADER , 0);
curl_setopt($ch, CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_COOKIEJAR , '/tmp/hostloc.cookie');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.rand_ip()));
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible;Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)');
curl_setopt($ch, CURLOPT_POSTFIELDS , $post_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_TIMEOUT,6000);
curl_setopt($ch, CURLOPT_REFERER, 'https://www.hostloc.com/');
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function curl_get($url){
$ch = curl_init ();
curl_setopt($ch, CURLOPT_HEADER , 0);
curl_setopt($ch, CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/hostloc.cookie');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.rand_ip()));
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible;Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,6000);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function rand_ip(){
return rand(1,255).'.'.rand(1,255).'.'.rand(1,255).'.'.rand(1,255);
}另存为 loc.php新建一个 list.txt格式为:代码语言:javascript复制账号#密码
账号#密码....
腾讯内部搜索平台部在第四届全国社会媒体处理大会SMP2015做特邀报告
中国中文信息学会社会媒体处理专业委员会
2015年11月16-17日,为期两天的第四届全国社会媒体处理大会(SMP 2015)在广州市华南理工大学成功召开,包括清华大学、北京大学、哈尔滨工业大学、复旦大学、中科院、社科院等等。大会专注于以社会媒体处理为主题的科学研究与工程开发,为传播社会媒体处理最新的学术研究与技术展示提供广泛交流的平台,旨在构建社会媒体处理领域的产学研生态圈,成为中国乃至世界社会媒体处理的风向标。
大会现场
本次大会由中国中文信息学会社会媒体处理专委会主办,华南理工大学软件学院承办。本次大会得到了国内外研究人员和业界人员的广泛关注,共有来自全国各地的400多位学者,包括清华大学、北京大学、哈尔滨工业大学、复旦大学、中科院、社科院等等。同时,本次会议也得到了国内外多家知名企业赞助,包括钻石赞助单位,腾讯、拓尔思、海量、国双,金牌赞助单位创新建怡,银牌赞助单位科大讯飞、久邦数码、百度、网智天元,以及铜牌赞助单位数据堂、知微等公司。
16日上午,在华南理工大学励吾科技大楼国际会议厅举行了开幕仪式,由大会程序委员会主席王振宇教授主持,华南理工大学常务副校长彭新一致大会开幕辞。在大会开幕式上,社会媒体处理专委会主任刘挺教授介绍了社会媒体处理专委会一年来的各项工作,大会程序委员会主席黄萱菁教授介绍了SMP 2015的组织、宣传等工作。同时,中国中文信息学会理事长、社会媒体处理专委会指导委员会主任李生教授致辞,充分肯定了社会媒体处理专委会的相关工作,并提出了许多建设性意见指导专委会的未来发展。同时参加大会开幕式的还有中国中文信息学会孙乐秘书长、杨尔弘副秘书长,以及华南理工大学宣传部部长王丹平等。
华南理工大学软件学院院长王振宇教授主持开幕式
华南理工大学常务副校长彭新一教授致开幕辞
社会媒体处理专委会主任刘挺教授在开幕式上致辞
SMP 2015 程序委员会主席黄萱菁教授在大会开幕式上致辞
中国中文信息学会理事长李生教授在大会开幕式上致辞
本次大会共举办11场特邀报告,邀请了数十位国内外知名的社会媒体处理领域专家,围绕大数据人才培养、社交网络中的用户情感分析、新闻关注度的大数据分析、社交网络中谣言识别方法、社会化媒体营销与整合品牌传播等主题作了报告,充分体现了社会媒体处理大会的特色,即领域交叉、文理交叉、产学研交叉。多种跨界交叉,为与会者开阔了研究视野、激发了科研灵感、拓宽了学术思路。
中国香港中文大学金国庆教授做特邀报告
中国香港城市大学祝建华教授做大会特邀报告
腾讯公司内部搜索平台部策略平台中心副总监杨巍做大会特邀报告
拓尔思高级副总裁林春雨做大会特邀报告
海量产品副总裁陈凯做大会特邀报告
中国香港中文大学梁浩锋教授做大会特邀报告
国双科技首席技术官刘激扬做大会特邀报告
哈尔滨工业大学刘挺教授做大会特邀报告
新加坡国立大学柯滨教授做大会特邀报告
中山大学梁玉成教授做大会特邀报告
华南理工大学段淳林教授做大会特邀报告
同时,大会收到来自包括清华大学、哈尔滨工业大学、复旦大学、大连理工等数十所高校及研究机构的论文投稿,共计105篇,在三个分会场分六组进行报告。大会评选出优秀论文两篇,全部英文论文由Springer出版,并有多篇论文推荐至《ACMTransactions on Intelligent Systems and Technology》、《ScienceChina》、《中国科学》、《中文信息学报》和《计算机工程与科学》等期刊。
会议PPT将在SMP专委会网站上发布:
http://www.cips-smp.org
此外,大会设立两个专题论坛就社会媒体处理当下的研究热点展开讨论,分别为情感分析论坛和计算社会科学论坛。包括秦兵教授、冯仕政教授等十余位专家分享了近期科研成果,并对未来的研究趋势进行了大胆预测。两个专题论坛吸引了大量学者,特别是在读博士参与讨论,观点交锋异彩纷呈,奇思妙想层出不穷,很多青年学者表示收获颇丰。
计算社会科学讨论组嘉宾
情感分析讨论组现场互动
11月17日下午,第四届全国社会媒体处理大会举行闭幕仪式,由程序委员会主席黄萱菁教授主持。闭幕式上,华南理工大学软件学院院长王振宇教授宣布了优秀论文的获奖名单,并由中国中文信息学会理事长李生教授为获得最佳论文的作者颁奖,由专委会主任刘挺教授为获得最佳论文提名奖的作者颁奖。
同时,大会程序委员会主席黄萱菁教授在这一环节同与会者分享约3TB规模的社交媒体大数据,为相关学者研究社会媒体处理相关问题提供了重要的研究资源。
最后,由社会媒体处理专委会秘书长唐杰老师为大会进行总结,江西师范大学王明文教授介绍“第五届全国社会媒体处理大会”将于2016年10月在江西举行。至此,本次全国社会媒体处理大会成功闭幕!
社会媒体处理专委会秘书长唐杰教授进行会议总结
第五届全国社会媒体处理大会程序主席王明文教授介绍SMP 2016筹备情况
有关全国社会媒体处理大会(包括前三届会议)更详细信息请点击原文链接中社会媒体处理专委会网站。
当社交成为突破口,社交电商到底还能火多久?
文/孟永辉当移动互联网时代的落幕所导致的流量和平台红利丧失殆尽的时候,社交电商为我们展示的是一种完全不同的景象。通过社交电商,我们看到了本来并不属于这个寒冬的热度,拼多多的火爆让我们看到了电商本身依然蕴藏着的巨大的发展潜能。人们逐渐认识到,只要能够找到激活电商的方式和方法,那个曾经为我们带来诸多想象的电商时代依然可以重新焕发生机与活力。当社交电商被巨头和资本不断加持的时候,我们看到的是越来越多的人开始加入到社交电商的战役里。然而,社交电商依然延续移动互联网时代的平台模式和流量思维的做法有让我们为它捏了一把汗,在这个新零售逐渐成为发展主流的大背景下,盲目地固守互联网时代的发展模式无疑面临着很大的挑战。从本质上来看,所谓的社交电商其实依然是以流量为对象的发展模式,当以社交为主要纽带的流量获取完成,一场以社交电商为主要代表的发展模式或许将会真正告一段落。那么,这场以社交为主要阵线的电商发展新阶段将会以怎样的方式发展,它的未来将会走向何方呢?社交电商:一场以社交之名的电商新进化当流量的红利不再,人们便开始寻找新的电商发展新方式,以缓解流量红利退却带来的发展危机。然而,习惯了互联网式的发展模式的人们依然在寻找新的流量获取新方式,渠道下沉、社群营销等诸多新的流量运营手段就是在这样的大背景下诞生的。社交电商同样是人们在为电商寻找新的发展破局点的过程当中出现的,从本质上来看,所谓的社交电商是一场以社交之名的电商新进化。以社交为纽带,电商正在开启新一轮去中间化。众所周知,电商之所以能够提升人们的购物效率,主要是因为它建立了一个平台,通过去中间化的方式提升了B端和C端的对接效率的问题。随着人们的消费习惯逐渐从线下转移到线上,仅仅只是借助平台的去中间化已经无法再度提升效率,于是,人们开始寻找新的去中间化的方式。以社交为纽带,通过人与人之间的链接来将商品和人之间的流程和环节再度去除的做法,最终让社交成为驱动电商发展的全新动力。拼多多基于微信社交关系链条的崛起为我们展示了社交电商背后所蕴藏着的巨大魅力。通过社交的纽带,我们在电商已经走入落幕的时候,找到的重新激发它的生机与活力的方式和方法。从本质上来看,通过社交的方式将渠道进一步下沉至一线的C端用户,无疑是在借助社交的手段推动电商行业的进一步的去中间化。在传统电商模式优势日渐衰落的大背景下,以社交为主要方式的再度去中间化无疑将会把电商红利再度得到释放,或许这也是为什么会有如此多的平台不断加持社交电商的主要原因所在。社交之下,电商正在开启一次全新的流量获取。尽管流量的红利已然已经落幕,但是,以流量为主导的发展模式并没有真正退出历史舞台,电商领域同样如此。当通过传统的流量获取方式不再奏效的时候,人们便开始寻找新的流量获取方式。通过社交的强强关系链,电商正在开始一个全新的流量获取时代。社交本身的强关联性让由它获取到的流量相对较为精准,这不仅能够为电商平台节省下来一大笔的营销推广成本,而且可以让转化率变得很高。对于流量活性和转化率不断降低的电商平台来讲,通过社交的方式来继续获得流量无疑是新的时代背景下一次全新的进化。或许,这能够解释为什么人们总是会选择社交作为切入点来进行创业。因此,当所谓的流量红利烟消云散的时候,以人与人之间的基本关系为主要链条的社交,将会在未来的行业发展过程当中扮演着越来越重要的作用。无疑,当社交开始显现自身的魔力,一场全新的流量获取方式正在徐徐拉开序幕。以社交为切入点,电商正在开始一场去平台化的全新革命。我们都知道,互联网式的发展模式所带来的一个直接结果就是形成了一个又一个的电商平台。随着各大平台的各自为战,平台本身所承担的成本越来越多。如何通过能量的下放来减少平台的运营成本和压力,成为未来一段时间电商发展的重点。以社交为主要切入点,我们可以让小b承担起平台的某些功能和作用,通过将互联网时代的一些红利分配给小b来激活他们的活力,从而让他们可以承担起原本需要大型平台承担的功能和作用。通过社交的释放和衔接,我们可以让电商开始一次全新的去平台化的革命。通过这场全新的革命,我们将会重新建构传统B端和C端的关系,进而让电商的发展进入到一个全新阶段。通过社交的方式,未来电商平台的作用将会进一步弱化。我们看到的将会是以社交为主要节点的商品销售的方式,未来大型的电商平台将不再直接面对C端用户,而是直接将自己的用户看成是B端用户,通过大型平台对于小b的不断赋能,从而找到一个全新的电商发展的突破口。当下社交电商的火爆从某种逻辑上来看,其实是一场电商全新进化的开始。通过流量的获取、进一步的去平台化和去中间化,电商行业的发展开始进入到发展的深水区。随着未来社交电商在这三大方向上的能力的不断释放,我们将会看到一个社交电商发展的全新时代的来临。当巨头和资本都在聚焦在社交电商的时候,社交电商或许将会开始新的进化,从而延续电商的升级与活力。各方势力轮番角逐,社交电商到底还能火多久?无论是传统的电商平台还是资本投资机构都在将社交电商看成是一个全新的发展热土,我们可以从爱库存、好衣库、环球捕手为代表的社交电商平台不断获得融资,正是当下市场状态的直接证明,而腾讯、京东、淘宝为代表的传统电商巨头不断加入到社交电商的阵营里,则是让社交电商火爆无比。当社交电商不断走向风口的时候,未来的它到底还可以火多久呢?社交电商的流量活性决定着它到底可以走多远。以资本和巨头为代表的各方力量不断加入到社交电商的大战当中,其中一个最为主要的原因在于社交电商本身的流量活性非常高。从某种意义上来讲,社交电商的流量活性直接决定着它究竟可以走多远。如果我们能够持续用社交的方式来不断激发社交端口流量的活性,那么,社交电商的生命周期将会不断得到延长。那些真正能够用社交的方式不断激活流量活性的大型的电商平台(大S)将会成为未来决胜社交电商时代的关键所在,如何对小b进行深度赋能,如何激发小b的生机与活力,如何以工具、技术等方式来对小b进行赋能,成为能否激活流量的关键所在。只有通过不同的技术、方式和方法来不断激活流量活性,社交电商才会不断延续以流量为主导的发展模式。当社交电商的流量活性不再活跃之时,便是社交电商行将就木之时。只有不断地用各种方式来激活社交端口的流量活性,才能不断延长社交电商的生命周期。社交电商仅是开始,绝非仅仅只是终点。很多人看到社交电商仅仅只是将它看成是电商模式的延续,其实,他们仅仅只是看到的表面。社交电商仅仅只是一个非常原始的开始,当社交电商不断发展成熟之后,它将会衍生出更多的类型,因此,社交电商绝不仅仅只是终点。我们看到很多的社交电商平台在积累了早期的发展力量之后,开始朝着新零售、新技术、新模式等方向发展。因此,所谓的社交电商仅仅只是一个开始,未来,随着社交电商的不断进化和演进,我们将会看到社交电商更多的发展可能性,当前我们看到的社交新零售仅仅只是诸多发展方向当中的一个。决定未来社交电商到底可以走多久的是未来我们可以找到多少种的发展新方式,多少种的衍生新概念,多少次的创新新发展。只有不断将社交电商的发展与新的模式、新的技术和新的手段结合,我们才能不断延长社交电商的生命周期。当电商时代的发展红利开始落幕之际,人们便开始寻找新的发展方式。然而,对于电商发展逻辑的约定俗成最终让他们始终跳不出以流量为主导的发展模式,于是,社交电商便开始出现。以阿里、腾讯、京东为代表的互联网巨头以及投资机构都在开始将社交电商看成是新的发展热土,一场以社交为主要标签的电商全新进化由此开启。
discourse论坛搭建教程
本文发布于433天前,最后更新于134天前,其中的信息可能有所发展或是发生改变。1. 前言discourse是一个优秀的论坛平台,功能、插件都很丰富。官方网址:Discourse is the place to build civilized communities | Discourse – Civilized Discussion项目地址:discourse/discourse: A platform for community discussion. Free, open, simple. (github.com)安装教程:discourse/docs/INSTALL.md at main · discourse/discourse (github.com)2. 准备对于这个项目,夜梦推荐最低配置为:2 核 CPU,2GB 内存,30GB+SSD 硬盘。如果内存不足,可以添加适当的 SWAP,具体操作可以看夜梦的这篇文章:手动添加 SWAP。服务器系统推荐使用 Ubuntu22.04。此项目必须使用邮箱进行发件,你可以使用ZOHO海外版本,绑定你自己的域名,然后创建域名邮箱。在开始部署之前,你需要安装 docker。具体安装见:【docker】在服务器上安装 docker/docker-compose3. 关于准备的提示3.1 官方提示官方给出的唯一支持的安装方式是docker安装, The only officially supported installs of Discourse are Docker based. You must have SSH access to a 64-bit Linux server with Docker support. We regret that we cannot support any other methods of installation including cpanel, plesk, webmin, etc.
基础安装: Beginner Docker install guide大型/多服务安装: Advanced Docker install guide夜梦这里仅演示基础安装的过程。3.2 域名准备discourse不可以使用IP进行访问,所以你必须使用一个域名。夜梦这里使用namesilo上面注册的域名进行演示。namesilo:Cheap Domain Names Web Hosting Starting at $0.99! | NameSilo结账时使用优惠码yemeng即可减免一美元费用。推荐使用二级域名进行解析,比如:discourse.yemengstar.top。3.3邮箱准备 ⚠️ Email is CRITICAL for account creation and notifications in Discourse. If you do not properly configure email before bootstrapping YOU WILL HAVE A BROKEN SITE!
对邮箱的要求比较苛刻,建议大家阅读官方文档:官方文档:https://meta.discourse.org/t/troubleshooting-email-on-a-new-discourse-install/16326夜梦这里使用的是:zoho国际版本ZOHO提供的设置如下:代码语言:javascript复制用户名和密码即为你注册zoho的用户名和密码。
Zoho Mail 的 SMTP 配置设置 - SSL
外发邮件服务器设置:(个人用户,电子邮件地址格式为 [email protected]):
外发邮件服务器名称:smtp.zoho.com
端口:465
安全类型:SSL
需要验证:是。
外发邮件服务器设置:(机构用户,基于域的电子邮件地址格式为 [email protected]):
外发邮件服务器名称:smtppro.zoho.com
端口:465(使用 SSL)或
端口:587(使用 TLS)
需要验证:是
此电子邮件地址应与已提供身份验证详细信息的帐户的电子邮件地址/电子邮件别名一致。
Zoho Mail 的 SMTP 配置设置 - TLS
外发邮件服务器名称:smtp.zoho.com
端口:587
安全类型:TLS
需要验证:是。此电子邮件地址应与已提供身份验证详细信息的帐户的电子邮件地址/电子邮件别名一致。
如果您启用了双重身份验证,则可能需要提供应用特定的密码才能在其他设备上设置帐户。4. 部署4.1 安装discourse克隆项目到本地:代码语言:javascript复制git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
chmod 700 containers4.2 编辑配置文件启动配置工具:代码语言:javascript复制./discourse-setup耐心等待安装,然后按照要求依次填入信息:代码语言:javascript复制Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [[email protected],[email protected]]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [[email protected]]:
SMTP password? [pa$$word]:
Let's Encrypt account email? (ENTER to skip) [[email protected]]:
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]:填写完成后,等待长时间完成即可!如果你需要修改配置文件,请再次运行./discourse-setup,或者编辑/containers/app.yml文件。编辑完成后,重新启动:./launcher rebuild app5.进入discourse访问先前准备的域名,开始设置。登录后界面
元宇宙标准论坛成立
”编者按:元宇宙标准论坛致力于协调技术标准,提升技术的互通与兼容性。文 / Ant6月21日,元宇宙标准论坛(Metaverse Standards Forum)发布了创始会员(见下图),包括Adobe、阿里巴巴达摩院,EPIC,华为,宜家,Meta,微软,Nvidia,高通,索尼互动娱乐,Unite,W3C等企业和标准组织。图:元宇宙标准论坛创始会员(图片来自 https://metaverse-standards.org/)元宇宙标准论坛由Khronos发起,“这不是一个推广元宇宙概念的论坛,而是一个协调、协商元宇宙技术标准的平台。(元宇宙相关的)互通性、互兼容性以及验证互通性等都有大量的工作,需要业界各个公司做贡献”,Khronos中国/亚洲区域副总裁傅世雄表示,“任何在行业里有兴趣的公司都欢迎加入”。目前,加入元宇宙标准论坛是免费的。不过,苹果并未加入元宇宙标准论坛。Tip:微信后台回复“元宇宙”,下载元宇宙标准论坛官方PPT。参考:https://metaverse-standards.org/news/press-releases/leading-standards-organizations-and-companies-unite-to-drive-open-metaverse-interoperability/扫描图中二维码或点击阅读原文了解大会更多信息喜欢我们的内容就点个“在看”吧!
社交关系+大数据=?
有个不太靠谱的命题:如何让赵本山和迈克尔乔丹搭上关系?其实很简单,通过分析两个人的社交圈子,兴趣爱好等,最终可以找出一条线路能让他们两个人认识,这就是隐藏其中的大数据魅力之一点点……随着互联网的冲击,UGC(用户产生内容)不断发展,社交网络已经不断普及并深入人心,用户可以随时随地在网络上分享内容,由此产生了海量的用户数据。这些数据并不是我们想象中的那样冷冰冰、枯燥的数据,而是更加活生生、有趣的数据;这些数据不同于以往单纯的数字,它们声色结合、图文并茂。比如,Facebook用户每天共享的东西超过40亿,Twitter每天处理的数据量超过3.4亿;而每分钟Tumblr博客作者会发布2.7万个新帖子,Instagram用户会共享3600张新照片……随着Facebook、Twitter、LinkedIn、微信等社交媒体的流行,对社交关系的数据挖掘成为近几年的一个技术热点。玩的核心是消费者洞察在一般商业前提下,社交大数据挖掘的目的,是投其消费者所好。
不可否认,一个正在改变我们的生活、工作和思维方式的新浪潮正悄悄来到我们身边,这或许就是大数据(Big Data)导致的一个还不可名状的时代。当下,社交大数据正在对企业,甚至于一些行业带来深刻的变革。下面,让我们来细数一下吧!首先,与传统的营销方式相比,利用大数据营销,从前期的曝光,中期的转化,到后期的购买行为都是可监测的。效果可评估是大数据带来的最实质性影响。其次,在社交环节,越来越多消费者通过社交媒体反馈自己对企业产品、品牌形象的看法,这个过程会产生许多有价值信息,甚至包括一些潜在的市场需求。对一个企业来说,这些信息不仅可能使他们调整原有产品,甚至催生新的商业模式。消费者洞察,是大数据的核心价值。第三,大数据对某些行业来讲,意义更加不同。比如电影行业,金融行业,大数据能够起到预估性、前瞻性作用,企业可以据此建立一些模型对消费者行为进行分析。同时,这又是一个移动盛行的时代,与传统互联网相比,移动互联网时代更加强调“社交”和“互动”。人们随时随地可以和朋友问候交流、分享资讯,只要带上手机,整个社交圈也就装在口袋里。交互性增强带来的效果是,不但产品可以为用户带来效用,用户反过来也能为产品导入流量。一个网友如果在微博上发文夸赞一家餐厅,经由他的社交圈的转发和扩散,就将为这家餐厅带来更多的访客。这个特征,也为移动互联网时代的商业创新指出了一个方向,那就是基于用户身份的信息交互和社交应用。当下,所有行业都在积极拥抱移动互联浪潮,当然金融业也无法作壁上观。唯有移动起来的金融,才具备在下一个周期继续参与竞争的生命力。这其中,应用社交化的趋势和大数据,将对金融行业带来更多新的机遇,并将使金融行业逐步移动化、社交化,产生新的具有移动互联网特点的金融模式。这种金融模式将具有成本低廉、便捷的特点,能够使人们不受时间和地点的限制享受金融服务。总之,进入大数据时代,金融行业的客户信息、交易信息、资产信息、信用信息等数据经过有效采集和整理分析,将会成为具有价值的数据信息。内部数据结合外部数据将形成具有重要价值的数据资产,可以有效帮助金融企业进行精准营销,降低运营费用,提高欺诈管理水平,提高信用风险管理水评,为决策提供有效支持,同时帮助金融企业了解客户需求,开发出符合客户需要,具有创新精神的新产品。未来社交关系与大数据还将在互联网贷款、购买保险、证券投资等发挥极大作用。金融和数据拥有天然的数据化基因,因为金融本身就是信息和数据,做金融的本质就是做信用。大数据技术提供的有据可查的信用数据,为构建互联网金融信用体系提供了保障。什么时候隐私可以成为伪命题?社交大数据掘金路上,隐私问题忡忡。当然,深度的社交大数据挖掘中最敏感的问题仍然是用户隐私的问题。社交网站从一诞生起就与这个问题相伴相生,随着大数据时代的到来,隐私问题显得越发重要。在未来掘金社交数据的道路上,一方面要为用户提供更加精准便捷的良好服务,另一方面也要注重对用户隐私的保护。只有符合用户需求和用户安全的商业利益,才能成为可持续的商业利益。
可见,移动互联网、社交网络、云计算、大数据等新技术的不断涌现,加剧了互联网与金融业在客户管理、风险控制、渠道建设、商业模式、战略等层面广泛的融合和创新,不难想象,在不久的将来,真正能带来改变的互联网金融一定是由深谙互联网思维,立足小额信用贷款服务,涉及海量用户,注重数据资产,耐心长远的公司所推动的。只有这样,才是符合大数据的趋势,才能拥有长期的核心竞争力。但不可否认,无论选择与社交网络进行品牌联合,还是借助丰富而强大的数据系统实现精准定向,亦或求同存异定制产品打通,社交关系与大数据的结合,不仅搅动了金融业,而且演变为整个商业社会乃至人情社会的制高点工具问题,即将催生真正的互联网与金融领导者。END版权声明:转载文章均来自公开网络,仅供学习使用,不会用于任何商业用途,如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜,联系邮箱:[email protected]。转载大数据公众号文章请注明原文链接和作者,否则产生的任何版权纠纷与大数据无关。
2021年全球企业家论坛暨区块链高峰论坛
2021第六届杭州全球企业家论坛暨区块链高峰论坛在今日火热开幕。来自政府、高校、研究机构、企业等各领域的相关人士、专家云集现场,超5000人次参与,各行业近100家500强级别企业、上市企业出席或分享,影响力空前。而区块链技术作为近年来万众瞩目的高新技术,以其为主要分享讨论的区块链高峰论坛,更是吸引了各界的关注。本次峰会由浙江省中小企业协会主办,中国建设银行杭州分行、杭州复杂美科技有限公司承办,浙江省区块链技术应用协会作为支持单位,以“区块链,助实体,共富裕”为会议宗旨,关注区块链技术的产业应用,邀请区块链技术应用企业及案例进行现场分享,以切实案例展现区块链技术对实体产业的降本增效、助力提升能力,让科技赋能产业,切实践行“共同富裕”伟大目标。大咖云集,带来区块链前沿思潮本次区块链峰会作为高规格、高影响力的一场行业盛会,各位到场的重量级嘉宾更是阐述分享了自己对区块链技术及未来发展的独到见解。大会伊始,中国建设银行浙江省分行兼杭州分行行长叶进开场致辞。叶行长针对本次区块链峰会解读了产业政策及发展规划。(中国建设银行浙江省分行兼杭州分行行长叶进开场致辞)随后,全国社会保障基金理事会原副理事长王忠民;上海交大区块链研究中心主任李颉;浙江省中小企业协会秘书长蔡章生;浙江省现代产业规划院院长孟友军;浙江省中小企业协会区块链专委会秘书长吴思进;美的集团区块链负责人夏劲松;西湖区茶叶首席专家、研究员商建农等先后发表了主题演讲,阐述了金融、制造业、现代农业等领域区块链技术的先进案例与最新进展,将实业与区块链技术结合的创新应用思维,带给在场的广大企业家,这为区块链技术未来在各领域开展落地赋能播撒下创新的种子。
多项重磅协议签署,为区块链创新蓄力据悉,本次峰会现场签署的多项重磅合作协议,尤为引人瞩目。中国建设银行杭州分行联合国家网络计算机网络与应急技术处理协调中心与浙江省中小企业协会、浙江省区块链技术应用协会等多家机构,在全球企业家论坛暨区块链高峰论坛现场,签署合作框架协议。力求在各方优势互补、互利多赢的基础上,探索在贸易金融、风控管理、跨境金融等领域的区块链应用,以技术创新催生新发展动能,建立政务、银行、协会企业的区块链大生态,为浙江省共同富裕实现高质量发展提供支撑保障。(国家计算机网络应急技术处理协调中心浙江分中心、中国建设银行股份有限公司杭州分行,浙江省中小企业协会、浙江省区块链技术应用协会签署合作框架协议)此后上海交大苏州人工智能研究院与浙江省中小企业协会、杭州复杂美科技有限公司强强联合,共同成立区块链联合实验室。标志着以上海交大为代表的高等院校、浙江省中小企业协会为代表的协会组织、杭州复杂美为代表的国内头部区块链科技创新企业等展开强强联合,链接产、学、研与企业创新应用市场,整体提升长三角及周边区域的区块链创新能力,让高校、协会和科技创新企业联合攻关,为实体企业服务赋能。上海交大区块链研究中心主任、日本工程院院士、国家特聘专家李颉,浙江省中小企业协会常务副会长兼秘书长蔡章生在场,为区块链联合实验室的成立进行见证。
区块链联合实验室的设立浙江经济与管理研究会、浙江省现代产业规划院院长孟友军,杭州复杂美科技有限公司创始人兼CEO吴思进签署共建浙赣边际(衢饶)智慧示范区战略合作协议,协议将关注浙赣边际(衢饶)智慧示范区内区块链应用场景的探索,加强案例落地能力,用区块链技术助力共同富裕示范区。(浙江经济与管理研究会与杭州复杂美科技有限公司签署共建浙赣边际(衢饶)智慧示范区战略合作协议)黑科技集体亮相,区块链走进生活本次峰会除了大咖云集外,现场的各类区块链应用成果发布更是惊喜满满。在大会现场,复杂美创始人吴思进首次向大家展示了基于区块链技术的多中心化社交软件——谈信。谈信通过去中心化区块链地址进行好友关系的绑定,好友关系一旦生成,好友通讯录加密上链存储,好友关系永远在线。同时,谈信还遵循软件开源共享精神,拥有服务器独立部署、聊天信息加密等特色功能。(复杂美创始人吴思进在现场向所有参会者发出了“数字商品消费券”大红包)同时,吴思进还使用谈信,现场演示了基于区块链发布的商品数字消费券红包。用户可进行消费券红包的发布和接收,还可实现消费券的实时领取、核销、兑换。新颖的“区块链消费券红包”引起了参会观众的极大热情。大量参会观众现场使用“消费券红包”兑换了茶叶、小家电等各类实物商品,以及外卖优惠券,更有幸运观众抽取到了大闸蟹礼盒,现场气氛火爆。基于区块链技术的商品消费券红包,让物物交换更便捷,让商品交换更贴近贸易本质。而在峰会现场及展区,两台自动售货机同样吸引了大家的目光,根据现场工作人员介绍,这两台自动售卖机,采用了区块链技术,消费者通过扫描机器上的二维码,下单、购买等行为可获得积分等形式激励,实现消费者、制造商、零售网点的共治协作,商业模式更清晰。从区块链多中心化社交到“数字商品消费券红包”,从自动售卖机去中心化电商直播,在各级政府的高度关注和促进下,区块链技术通过几年的发展,已从美好畅想到逐步落地,真正走进了人们的日常生活。本次峰会围绕中国强大的新消费市场与高新技术为基础的新兴产业体系为背景,展开多方位对话、对接、交流和务实合作,创造大批项目与资本对接,促进大批企业成长、企业壮大,促进经济高质量发展格局下的共同富裕。
校园论坛设计(Java)
校园论坛设计(Java)0、写在前面1、项目介绍2、项目背景3、项目功能介绍3.1 总体设计图3.2 帖子模块3.3 学习模块3.4 个人信息模块3.5 数据报表模块3.6 校园周边模块3.7 用户管理模块3.8 登录注册模块4、数据库总体设计0、写在前面Windows版本:Windows10JDK版本:Java8MySQL版本:MySQL5.7Tomcat版本:Tomcat9.0IDE:IntelliJ IDEA Ultimate2020.2.31、项目介绍本项目基于BootStrap + Jsp + Servlet + MySQL+ Tomcat的开发模式和Maven构建工具进行FosuForum(校园论坛)的制作。2、项目背景校园论坛是一种比较好的交流平台,可以方便人们进行即时在线交流,发表各种信息,实现网络资源的共享。而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好地利用网络资源。3、项目功能介绍3.1 总体设计图项目总体设计如下图所示: 一共设计有6大功能模块,分别是注册登录模块、帖子模块、学习模块、个人信息模块、校园周边模块、用户管理模块。3.2 帖子模块该模块设计包括以下几点:用户浏览所有普通帖子用户查看特定帖子的详细信息用户发布帖子用户回复帖子用户删除帖子如下图所示:该模块也设计了「分页」和「模糊查询」的功能3.3 学习模块该模块设计包括以下几点:用户浏览所有学习专帖用户查看特定帖子的详细信息用户发布学习专帖用户回复学习专帖用户删除学习专帖如下图所示:3.4 个人信息模块该模块设计包括以下几点:用户查看个人信息用户修改个人信息如下图所示:3.6 数据报表模块该模块设计包括以下几点:用户发帖统计用户回帖统计用户学习专区发帖统计用户学习专区回帖统计管理员统计发帖Top5用户管理员统计学习专区发帖Top5用户
如下图所示:3.5 校园周边模块该模块设计包括以下几点:高德地图API的引入北门交通信息展示东南门交通信息展示中门交通信息展示如下图所示:3.6 用户管理模块该模块设计包括以下几点:管理员查看所有用户管理员查看用户发贴情况管理员删除用户发帖管理员注销用户 如下图所示:3.7 登录注册模块登录:对密码进行了MD5加密,账号或密码有误均有提示功能注册:账号注册判重、账号和联系电话以及电子邮件格式判断、验证码判断4、数据库总体设计数据库一共设置有5张表,分别是用户表、普通帖子表、普通回帖表、学习表、学习回帖表。ER图如下:项目代码GitHub介绍篇结束
用JAVA的DEA算法衡量社交媒体页面的流行度
Measuring the Social Media Popularity of Pages with DEA in JAVA原文作者:Vasilis Vryniotis原文地址:http://blog.datumbox.com/measuring-the-social-media-popularity-of-pages-with-dea-in-java/译者微博:@从流域到海域译者博客:blog.csdn.net/solo95用JAVA的DEA算法衡量社交媒体页面的流行度在前面的文章中,我们讨论了数据包络分析(Data Envelopment Analysis)技术,我们已经看到它如何被用作一个有效的非参数排序算法。在这篇博文中,我们将开发出一个JAVA数据包络分析的实例,我们将用它来评估网络上的网页和文章的社交媒体流行度。该代码是开源的(在GPL v3 license下),您可以从Github免费下载。更新:Datumbox机器学习框架现在是开源的,可以免费下载。查看包com.datumbox.framework.algorithms.dea以查看Java中Data Envelopment Analysis的实现。数据包络分析在JAVA中的实现代码是用JAVA编写的,可以直接从Github下载。它是根据GPLv3许可的,所以可以随意使用它,修改它,或者再分发。该代码实现了数据包络分析(Data Envelopment Analysis)算法,使用lp_solve库来解决线性规划问题,并使用Web搜索引擎优化分析(Web SEO Analytics )索引提取的数据,以构建基于Facebook,Google Plus和推特上分享的一个混合的社交媒体页面流行度矩阵。在前面的文章中介绍了算法的所有理论部分,在源代码中可以找到关于其实现的详细的javadoc注释。(原博文之后数据包络分析(Data Envelopment Analysis)算法及其实现全部简称了DEA,请读者注意,译者注。)下面我们提供一个关于其架构实现的高级别描述:1. lp_solve 5.5 library为了解决各种线性规划问题,我们使用一个名为lp\_solve的开源库。某些特定的lib是用ANSI C编写的,并使用JAVA包装来调用库方法。因此,在运行代码之前,您必须在您的系统上安装lp_solve。该库的二进制文件在[Linux和Windows都可以使用,您可以在lp_solve文档中阅读更多有关安装的信息。在尝试运行JAVA代码之前,请确保您的系统上安装了(相关的)特定库。有关安装和配置库的任何问题,请参阅lp_solve文档。2.DataEnvelopmentAnalysis Class这是DEA算法的主要实现类。它实现了一个名为estimateEfficiency()的公共方法,它获取记录的Map并返回它们的DEA得分。3. DeaRecord ObjectDeaRecord是一个特殊的对象,用于存储我们记录的数据。由于DEA需要分离输入和输出,因此DeaRecord对象将以DEA可以处理的方式分别存储我们的数据。4. SocialMediaPopularity ClassSocialMediaPopularity是一个应用程序,它使用DEA来评估社交媒体网络上Facebook的like,Google的 +1和twitter的Tweets的网页流行度。它实现了两个受保护的方法:calculatePopularity()和estimatePercentiles()以及两个公共方法loadFile()和getPopularity()。calculatePopularity()使用DEA实现根据社交媒体计数来估计页面的得分数。estimatedPercentiles()方法获取DEA分数并将其转换为百分位数。总的来说,百分比比DEA分数更容易解释; 因此当我们说一个网页的流行分数是70%时,这意味着该网页比70%的其他网页更受欢迎。为了能够估计一个特定页面的流行度,我们必须有一个包含其他页面的社交媒体数据的数据集。这是有原因的,因为需要预测哪个网页是受欢迎的,哪些不是,您必须能够将其与网络上的其他页面进行比较。为此,我们使用来自以txt格式提供的Web SEO分析索引的小型的匿名样本。您可以通过从网页上的更多页面提取社交媒体计数来构建自己的数据库。(社交媒体计数,比如点赞数、转发数、评论数)loadFile()方法用于加载DEA的上述统计信息,getPopularity()方法是一种易于使用的方法,可以获取Facebook的like,Google的+1和一个页面的Tweets数量,并以此评估其在社交媒体上的流行度。如何使用数据包络分析的JAVA实现在DataEnvelopmentAnalysisExample类中,我提供了2个不同的关于如何使用代码的例子。第一个例子直接使用DEA方法来根据它们的输出(ISSUES,RECEIPTS,REQS)和输入(STOCK,WAGES)来评估组织单位的效率。这个例子来自DEAzone.com的一篇文章。代码语言:txt复制Map<String, DeaRecord> records = new LinkedHashMap<>();
records.put("Depot1", new DeaRecord(new double[]{40.0,55.0,30.0}, new double[]{3.0,5.0}));
//...adding more records here...
DataEnvelopmentAnalysis dea = new DataEnvelopmentAnalysis();
Map<String, Double> results = dea.estimateEfficiency(records);
System.out.println((new TreeMap<>(results)).toString());第二个示例使用我们的社交媒体流行度应用程序,通过使用来自社交媒体的数据来评估页面的流行度,例如Facebook的like,Google的+1和Tweets。所有的社交媒体计数都被标记为输出,我们传递给DEA一个空的输入向量。代码语言:txt复制SocialMediaPopularity rank = new SocialMediaPopularity();
rank.loadFile(DataEnvelopmentAnalysisExample.class.getResource("/datasets/socialcounts.txt"));
Double popularity = rank.getPopularity(135, 337, 9079); //Facebook likes, Google +1s, Tweets
System.out.println("Page Social Media Popularity: "+popularity.toString());必要的扩展(上面)所提供的代码只是DEA如何被用作排名算法的一个例子。为了改进其实现,需要进行下面的扩展:1.加速(算法的)实现特定的DEA算法实现会评估数据库中所有记录的DEA得分。由于我们需要解决如同数据库中记录数量那样多的线性规划问题,这使得实现变得缓慢。如果我们不需要计算所有记录的分数,那么我们可以显著地加快执行速度。因此,该算法的小扩展可以使我们更好地控制哪些记录应该被解决掉,哪些只能被用作约束。2.扩大社交媒体统计数据库(这篇文章所)提供的社交媒体统计数据库由来自Web SEO Analytics索引的1111个样本组成。为了能够估计更准确的流行(度)分数,需要更大的样本。您可以通过统计来自网络上更多页面的社交媒体计数来创建自己的数据库。3.添加更多的社交媒体网络该实现使用Facebook的喜欢,Google的+1和推文的数量来评估文章的受欢迎程度。不过,来自其他社交媒体网络的指标可以很容易地被考虑在内。您只需要从您感兴趣的网络中构建一个社交媒体数据库,然后扩展SocialMediaPopularity类来处理它们。关于实施的最终意见为了能够扩展(算法的)实现,您必须对Data Envelopment Analysis的工作原理有一个很好的理解。这在前面的文章中已经介绍过了,所以在继续进行任何更改之前,请确保您阅读了之前的教程。此外,为了使用JAVA代码,您必须在您的系统中安装lp\_solve库(参见上文)。如果你在一个有趣的项目中使用这个实现,那么就给我们一条线索,我们将在我们的博客上展示你的项目。另外,如果你喜欢这篇文章,请花点时间在Twitter或Facebook分享。
python爬虫抓取富贵论坛
本人是个爬虫小萌新,看了网上教程学着做爬虫爬取富贵论坛www.fgba.net,如果有什么问题请大佬们反馈,谢谢。以下是用lxml来爬取的。from lxml import etree
def getHTMLText(url):
kv = {
'cookie': 'ssids=1581214855718752; sfroms=JIAOYIMALL001; historyScanGame=%5B%225667%22%2Cnull%5D; session=1581214855718753-7; showFixGuideDialog=true'
, 'user-agent': 'Mozilla/5.0'}
r = requests.get(url, headers=kv)
r.raise_for_status()
r.encoding = 'utf-8' return r.text
def shixian(url):
htmls = etree.HTML(url)
mc = htmls.xpath(
'//div[@class="wrap"]/div[@class="mod-con sel-content "]/div[@class="bd"]/ul[@class="list-con specialList"]/li[@name="goodsItem"]/span[@class="name"]/span[@class="is-account"]/a/text()')
price = htmls.xpath(
'//div[@class="wrap"]/div[@class="mod-con sel-content "]/div[@class="bd"]/ul[@class="list-con specialList"]/li[@name="goodsItem"]/span[@class="price"]')
count = 0
tplt = "{:4}\t{:12}\t{:20}"
print(tplt.format("富贵论坛")) for i in range(len(mc)):
count = count + 1
print(tplt.format(count, price[i].text, mc[i], chr(12288)))if __name__ == '__main__':
url='https://www.fgba.net/'
lists=[]
url=url+'-n'+'1'+'.html'
html=getHTMLText(url)
shixian(html)
BBS论坛(二十三)
23.添加板块(1)apps/models代码语言:javascript复制class BoardModel(db.Model):
__tablename__ = 'board'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(20), nullable=False)
create_time = db.Column(db.DateTime, default=datetime.now)(2)manage.py代码语言:javascript复制from apps.models import BoardModel生成数据库表代码语言:javascript复制python manage.py db migrate
python manage.py db upgrade(3)cms/forms.py代码语言:javascript复制class AddBoardsForm(BaseForm):
name=StringField(validators=[InputRequired(message='请输入版块名称'),Length(2,15,message='长度应在2-15个字符之间')])
class UpdateBoardForm(AddBoardsForm):
board_id=IntegerField(validators=[InputRequired(message='请输入版块名称')])(4)cms/views.py代码语言:javascript复制@bp.route('/boards/')
@login_required
@permission_required(CMSPermission.BOARDER)
def boards():
board_models=BoardModel.query.all()
context={
'boards':board_models
}
return render_template('cms/cms_boards.html',**context)
@bp.route('/aboards/',methods=['POST'])
@login_required
@permission_required(CMSPermission.BOARDER)
def aboards():
form=AddBoardsForm(request.form)
if form.validate():
name=form.name.data
board=BoardModel(name=name)
db.session.add(board)
db.session.commit()
return restful.success()
else:
return restful.params_error(message=form.get_error())
@bp.route('/uboards/',methods=['POST'])
@login_required
@permission_required(CMSPermission.BOARDER)
def uboards():
form=UpdateBoardForm(request.form)
if form.validate():
board_id=form.board_id.data
name=form.name.data
board=BoardModel.query.get(board_id)
if board:
board.name=name
db.session.commit()
return restful.success()
else:
return restful.params_error(message='没有这个版块')
else:
return restful.params_error(message=form.get_error())
@bp.route('/dboards/',methods=['POST'])
@login_required
@permission_required(CMSPermission.BOARDER)
def dboards():
board_id=request.form.get('board_id')
if not board_id:
return restful.params_error(message='请传入版块ID')
board=BoardModel.query.get(board_id)
if board:
db.session.delete(board)
db.session.commit()
return restful.success()
else:
return restful.params_error(message='没有这个版块')(5)cms/js/boards.js代码语言:javascript复制$(function () {
$('#add_board_btn').on('click', function () {
event.preventDefault();
zlalert.alertOneInput({
'title':'添加板块',
'text': '请输入板块名称',
'placeholder': '版块名称',
'confirmCallback': function (inputValue) {
zlajax.post({
'url': '/cms/aboards/',
'data': {
'name': inputValue
},
'success': function (data) {
if (data['code'] == 200) {
window.location.reload();
} else {
zlalert.alertInfo(data['message']);
}
}
});
}
})
});
});(6)cms/cms_boards.html代码语言:javascript复制{% extends 'cms/cms_base.html' %}
{% from'common/_macros.html' import static %}
{% block title %}
板块管理
{% endblock %}
{% block head %}
<script src="{{ static('cms/js/boards.js') }}"></script>
{% endblock %}
{% block page_title %}
{{ self.title() }}
{% endblock %}
{% block main_content %}
<div class="top-box">
<button class="btn btn-warning" id="add_board_btn" style="float: right">添加新版块</button>
</div>
<table class="table table-bordered">
<thead>
<tr>
<th>版块名称</th>
<th>帖子数量</th>
<th>创建时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for board in boards %}
<tr data-name="{{ board.name }}" data-id="{{ board.id }}">
<td>{{ board.name }}</td>
<td>0</td>
<td>{{ board.create_time }}</td>
<td>
<button class="btn btn-default edit-board-btn">编辑</button>
<button class="btn btn-danger delete-board-btn">删除</button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
特斯拉工程师当UP主评测自动驾驶,结果被公司开除
机器之心报道
编辑:蛋酱、泽南古有大猛子升级印总,今有 John Bernal 喜提 N+1。特斯拉全自动驾驶系统 FSD 的付费 beta 测试与使用者们一直保持着若即若离的关系:通常这些人都是铁杆粉丝,深信科技改变生活,愿意炫耀新辅助驾驶系统的功能,并包容新技术暂时的不足。但有时这免费的宣传会让公司感觉有点过度:一些 YouTube 上的视频,准确显示了特斯拉的软件是何时以及如何出错的。当分享这些内容的人本身就是特斯拉员工时,事情就变得更加复杂了。特斯拉前工程师 John Bernal 在他的 YouTube 频道「AI Addict」上评测了该公司著名的 FSD Beta 软件。后来,他说他上个月在发布视频后被公司解雇了。Bernal 的投稿在视频网站上有时能获得几十万的播放量,在这段位于圣何塞的驾驶测评视频中,他的特斯拉在 FSD Beta 的指挥下撞上了道路护柱:Bernal 说,在他被解雇之前,他的经理口头表示,他「违反了特斯拉的政策」,并且他的 YouTube 频道存在「利益冲突」,尽管他的书面离职通知没有说明离职原因。从特斯拉工程师到新人 UP 主John Bernal 于 2020 年 8 月在加州圣马特奥的办公室开始为马斯克的特斯拉公司工作,担任数据标注专家。根据他与 CNBC 分享的记录,他在担任高级驾驶辅助系统测试操作员后于今年 2 月的第二周被解雇。工作之外,Bernal 也是一个汽车爱好者,他在开始工作后不久就下单购买了一辆长续航版的 2021 年款 Model 3,在 2020 年 12 月 26 日提车。作为公司员工,特斯拉提供了买车时免费加装 FSD 系统的福利(当时价值 8000 美元),同时作为交换,员工必须同意授予公司收集内部和外部车辆数据的权利。出于对「辅助驾驶挽救生命」的兴趣,2021 年 2 月,John Bernal 在 YouTube 上开设了 AI Addict 频道,开始不断展示特斯拉 FSD Beta 系统的能力。AI Addict 频道,最近已不止是评测特斯拉:https://www.youtube.com/c/AIAddict
和大多数半路出家的 UP 主一样,AI Addict 视频并没有太复杂的剪辑和特效,都是 Bernal 和自己朋友开着他的特斯拉在硅谷开车,使用的是最新发布的 FSD Beta 软件公测版本。2021 年 3 月发布的一段视频,让 AI Addict 这个新帐号火出圈了。当时他们在使用 FSD Beta 8.2,状况频出。比如,经常要矫正偏离的方向盘:在视频的第 11 分 58 秒处,特斯拉 FSD Beta 系统开始驶入十字路口,而此时 Bernal 的 Model 3 正前方有一辆车正在穿过,他险些撞到另一辆车。
这个视频获得了约 25 万次观看,并在推特等社交媒体上广泛传播。John Bernal 当然不是唯一一个发视频说特斯拉 FSD 的人,在社交网络上这样的频道还有很多。解雇后,自己 Model 3 的 FSD 权限也被禁了Bernal 表示,在视频发布后,「Autopilot 团队的一位经理试图劝阻我未来不要再发布任何涉及 FSD Beta 的负面或批评内容。他们与我举行了视频会议,但从未以书面形式提出任何内容。」他补充指出,自己的 YouTube 频道始终是保持透明的,无论是对他在特斯拉的上级还是对公众,他并不知道特斯拉有任何公司政策,禁止员工在个人时间驾驶自己的汽车并发布汽车技术评论。而且他也从未披露过特斯拉尚未向公众发布的任何内容。「我展示的 FSD Beta 版本是最终用户的消费产品,」他说。在特斯拉针对员工的社交媒体政策中,并不存在「禁止公开批评公司的产品」这一条,该公司是「依靠员工的常识和良好判断力从事负责任的社交媒体活动」。政策列出了包括 Facebook、Twitter、Instagram、Reddit、Snapchat、LinkedIn、微信和个人博客在内的社交网络,但没有特别提到 YouTube。Bernal 说,在被解雇后,他自有的那辆特斯拉 Model 3 上对 FSD Beta 软件的访问权限也被撤销,只剩下保证安全功能的正式版。今天的特斯拉,还没有实现完全自动驾驶。Bernal 分享了一张他的 Model 3 屏幕照片,FSD beta 已被暂停使用。图源:AI Addict。
特斯拉没有立即回应关于 Bernal 情况的置评请求。作为目前知名度最高的自动驾驶系统,特斯拉的「全自动驾驶」FSD 可谓业内领先,其在现有量产车硬件条件下率先实现了「城市街道上的自动驾驶」,它可以让汽车在复杂的城市环境中导航,而无需驾驶员控制方向盘。若想使用这种技术,车主必须首先购买 「完全自动驾驶能力」选装包,在美国需预付 12000 美元或每月 199 美元(中国是 64000 元),然后获得并保持较高的驾驶员安全评分,该评分由监控驾驶习惯的特斯拉软件决定。特斯拉表示,约有 60,000 名注册用户在公共道路上测试 FSD Beta,为其提供宝贵的数据来改进软件。该公司表示,自 FSD Beta 推出以来,涉及 FSD Beta 的事故或伤害为零(尽管涉及特斯拉的常规驾驶员辅助软件时候发生过一些死亡事件)。特斯拉此前要求选择加入 FSD Beta 的客户签署保密协议,该协议告知签署方:「有很多人希望特斯拉失败;不要让他们错误地描述你的反馈和媒体帖子。」特斯拉 CEO 马斯克后来表示,该公司「可能」不需要保密协议了,因为人们总是倾向于忽略它们。事实的确如此,许多 FSD Beta 测试人员都在 YouTube 上发布了对 FSD Beta 的评论,各种测评栏目层出不穷:几个月前,当 AI Addict 在 YouTube 视频中首次透露他是特斯拉员工时,很多人都对他在网上分享 FSD 视频时承认这一事实感到惊讶。如果苹果员工在 YouTube 上分享有关公司产品的负面消息,很可能会遭遇类似的事情。在被解雇后以及被撤销 FSD Beta 访问权后,Bernal 打算继续维护自己的 Youtube 频道,不过现在他需要借朋友的车来测试 FSD Beta。他还表示,自己仍然关心特斯拉、车辆安全以及发现和修复错误。昨天,AI Addict 上传了新一期 FSD Beta 的测评视频,并在视频开始处解释了自己「为什么不再为特斯拉工作」,获得了很多支持的声音:有意思的是,在借来的特斯拉上测评时,FSD Beta 依旧「不小心」闯了红灯:
在最近的 Beta 10.11 版本中,特斯拉对 FSD 进行了一些重要改进。马斯克在推特上建议,如果没有发现重大错误,新版本软件可能会推广到安全评分为 95 及以上的司机。另外,加拿大车主大约一周前已开始获得驾驶员安全评分,特斯拉预计将很快会开始向更多国家的司机开启公测权限。参考内容:https://www.cnbc.com/2022/03/15/tesla-fired-employee-who-posted-fsd-beta-videos-as-ai-addict-on-youtube.html?utm_term=Autofeedutm_medium=Socialutm_content=Mainutm_source=Twitter#Echobox=1647431524时在中春,阳和方起——机器之心「AI科技年会」机器之心AI科技年会将于3月23日在线上举办,本次活动分为三场论坛:「人工智能论坛」直播间:http://live.bilibili.com/3519835「AI x Science 论坛」直播间:http://live.bilibili.com/24531944「首席智行官大会」直播间:https://live.bilibili.com/24532108人工智能论坛关注高性能计算、联邦学习、系统机器学习、强化学习、CV与NLP发展、RISC-V等。AI x Science论坛关注AI与蛋白质、生物计算、数学、物理、化学、新材料和神经科学等领域的交叉研究进展。首席智行官大会关注智能汽车、汽车机器人、无人驾驶商业化、车规级芯片和无人物流等。点击阅读原文,查看全部日程。欢迎大家加入本次年会交流群,就感兴趣的话题进行讨论和交流:关注下方服务号-点击菜单即可扫码入群。©THE END转载请联系本公众号获得授权投稿或寻求报道:[email protected]
多媒体编程
多媒体和图形编程这个属于在客户端生成图片,可以减少服务器的压力脚本化图片web页面使用img元素,嵌入图片。img元素可以通过控制src属性来操控img。一个栗子,鼠标经过的时候,改变图片当鼠标经过的时候,会触发两个事件,分别是onmouseover以及onmouseout两个html如下代码语言:txt复制<!doctype html>
<html>
<head>
<title>这是一个模拟图片翻转的dome</title>
</head>
<body>
<img src="images/help.gif">
</body>
</html>js如下代码语言:txt复制// 获取元素
let img = document.getElementsByTagName("img")[0]
// 绑定事件
img.addEventListener(onmouseover, () => {
this.src="./images/help_rollover.gif";
})
img.addEventListener(onmouseout, () => {
this.src="./images/help.gif";
})
img.addEventListener(onclick, () => {
this.src="./images/help_onlick.gif";
})由于要实现图片翻转,需要较高的响应度,此时需要进行缓存,new一个Image对象创建一个HTMLImageElement对象实例文档 https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLImageElement/Image即创建一个对象用来暂时储存图片。代码语言:txt复制let myImage = new Image(10, 200); // 设置缓存的图片大小
myImage.src="./picture.jpg"; // 设置缓存的图片位置
document.body.appendChild(myImage) // 添加一个子节点
// 等价于
let img = "<img width=100 height=200 src=./picture.jpg>"
document.body.appendChild(img);使用的是Image()类,创建对象其中图片的懒加载可以使用Image类,先缓存图片,等待用户滑到的时候,然后触发事件,将src进行替换。脚本化音频和视频h5中引用了两个变迁audio和video两个标签https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/audiohttps://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/video即使用上方两个标签,可以实现简单的视频和音频的插入代码语言:txt复制<audio src="background_music.mp3"/>
<video src="news.mov" width=320 height=240/>使用上方的两个标签实现简单的视频和音频的插入由于标准的执行问题,所以使用source标签实现兼容文档 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/source下方是一个兼容的实现代码语言:txt复制<video id="news" width=640 height=480 controls preload>
<!-- Firefor chrome 支持的web格式 -->
<source src="news.mp4" type="video/webm">
<!-- IE和Safair支持的h。264格式 -->
<source src="news.mp4" type="video/mp4">
<!-- flash插件用做后备方案 -->
<object width=640 height=480 type="application/x-hockwave-flash" data="flash_movie_player.swf">
<!-- 这里的参数配置flash视频播放器 --->
<!-- 文本用做后备内容 --->
<div>播放器不支持</div>
</object>
</video>Audio构造函数Audio()构造函数类似Image()函数例如代码语言:txt复制new Audio("./chime.wav").play(); // 载入并播放声音效果这是音频的api,视频没有这个api类型选择和加载使用的是canPlayType进行的原型为 HTMLMediaElement.canPlayType()能播放返回一个真值,不能播放返回一个假值代码语言:txt复制let a = new Audio();
if (a.canPlayType("audio/wav")) {
a.src="./soundeffect.wav";
a.play(); // 进行播放
}文档 https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLMediaElement/canPlayType控制播放控制媒体播放使用的是play()和pause()方法用来控制和暂停媒体的播放代码语言:txt复制// 文档载入完成后,开始播放背景音乐
window.addEventListener("load", () => {
document.getElementById("music").play();
}, false);通过设置urrentTime属性进行定点播放,volume表示播放音量playbackRate表示播放的速度如果元素拥有controls属性,会在播放器上显示控件,让用户进行控制播放。controls表示在浏览器中是否显示控件true为显示,false为隐藏,查询媒体状态他们有一些只读的属性,描述当前的状态。播放器暂停,pause属性值为true播放器跳转到一个新的播放点,seeking的值为true如果完全播放完成,ended为trueduration媒体时长initialTime表示媒体的开始时间等等还有很多,用的时候现查吧,过一遍,大致知道有这些属性即可媒体相关事件会有媒体的相关事件,必须使用addEventListener()方法注册在audio和video元素上,当被请求的时候触发,当被加载的时候触发等等。下面是svg
云AI技术+媒体,让媒体价值升级延伸
导读:由人民日报社联合中共深圳市委、深圳市人民政府、招商局集团共同主办的“构建全媒体传播格局——2018媒体融合发展论坛” 于2018年9月9 - 10日在深圳举行。在技术分论坛“智能媒体-媒体融合的未来之路”的对话环节,来自LIKE.TG的资深技术专家熊普江参与了《人工智能传媒应用实践》的讨论分享,以下为其现场发言观点内容的整理。技术分论坛对话现场主持人叶龙:我们都知道,人工智能是一个面向具体应用的一个学科门类,而在座的各位专家所在的商汤、科大讯飞、百度、腾讯目前关于人工智能的研究都已经开展的风风火火。那么请问各位专家,在面向传媒或者说媒体这种具体应用时,各位所在的平台都针对这块做了哪些方面的探索?嘉宾熊普江:对于人工智能的研究与发展,离不开大数据、算力、AI人才(建机器学习模型)及应用场景,这些方面腾讯都具有明显的优势。拿媒体的应用场景来讲,腾讯有腾讯新闻、快报、微信看一看、QQ看点等,因此AI结合媒体的应用,腾讯至少已有四个方面的突出进展: 1、自动智能生成合规文章。在体育赛事,股票市场行情,证券公告等“有明确规则与边界”的场景上,我们已大量应用了AI来自动智能生成发布合规文章。2、内容合规的智能审核。移动互联网时代下,媒体信息产出效率极高,形式多样,传播快速,通过AI技术实现鉴黄、暴恐等信息审核,在保障信息安全的同时大大提升审核的效率。3、个性化推荐。每个人的兴趣爱好都有差异,媒体的个性化推荐会越来越重要,目前我们在腾讯新闻、天天快报等产品上都有很好地应用针对个性差异的AI智能内容推荐。4、实时翻译。我们有多个人工智能团队(微信语音研究团队、AI平台团队、MIG翻译君等)在实时多语言翻译方面成绩突出,今年4月,2018博鳌亚洲论坛上亮相的”腾讯同传AI翻译技术”就是一例。嘉宾熊普江发言分享主持人叶龙:从媒体业态的发展来看,目前传统媒体面临着迫切的转型需求,而新媒体在发展过程中也避免不了要去借鉴传统媒体在采、编、发方面的经验。请问各位专家,这种转型和借鉴的过程中存在的主要问题是什么?人工智能在这些问题的解决过程中又将发挥怎么样的作用?嘉宾熊普江:媒体数字转型与发展,除了媒体从业者的观念改变之外,我觉得还是要聚焦挖掘AI在媒体上的应用价值。个人认为,目前AI在各行各业的发展与应用尚处于初期阶段,这个时期我们媒体从业人员结合思考与探讨AI的价值非常重要,可以说,我们今天的论坛非常有意义。AI的价值应更多地表现在服务于人,比如解决人们日常生活工作中那些重复的劳动、容易犯错、效率低下的工作以及受劳累、情绪影响的工作。AI技术的研究也主要是让机器看得见、听得到、理解得好。结合媒体来看,AI技术的应用还大有可为,比如:从社会责任的角度,腾讯正在探索通过AI技术帮助有行为障碍的人士更好地接收媒体信息,让盲人同样方便快捷地获取最新的媒体资讯,将媒体资讯转化为手语,方便使得有听力障碍的人等等。从媒体信息的正面引导来看,腾讯正在通过AI技术更全方位地鉴别垃圾、谣言等有害内容,防止信息的误导。另外,针对媒体信息内容,在隐私的保护、原创内容版权保护等方面,腾讯也在大力推进AI技术的应用。主持人叶龙:由于时间关系,请各位专家以一句话,展望一下人工智能在传媒领域的应用前景。嘉宾熊普江:我之前提到的这些AI在媒体上的应用技术能力,都已通过LIKE.TG对所有用户开放,助力媒体行业连接智能未来。因此,我的一句话结束语就是:云AI技术+媒体,让媒体的价值升级并无限延伸。
地下组织如何利用被盗身份和deepfakes
近年来,越来越多的深度造假(deepfake)攻击正在显著重塑组织、金融机构、名人、政治人物甚至普通人的威胁格局。与此同时,deepfake的使用也将商业电子邮件泄露(BEC)和身份验证绕过等攻击提升到了新的水平。这些攻击成功的前提和原因包括:所有的技术支柱都已到位。Deepfake生成的源代码是公开的,任何人都可以使用。
公开的图片数量足以让攻击者利用deepfake技术制造出数百万个假身份。
犯罪集团是此类技术的早期采用者,并定期研究使用deepfake技术来提高现有洗钱和货币化计划的有效性。
研究发现deepfake在新的攻击场景中实现的趋势,比如在社会工程攻击中,deepfake是一个关键的技术驱动器。接下来,让我们来看看近年来这一新兴趋势是如何发展和演变的。Deepfake促销骗局中的被盗身份在新闻和社交媒体网站上,名人的图片被用于可疑的搜索引擎优化(SEO)活动已经是司空见惯的事情。通常,这些广告在某种程度上与所选名人的专业度有关,它们是专门被设计用来引诱用户,让他们选择图片下的链接。例如,图1显示了2022年9月13日德国新闻网站N-TV广告的截图。我们看到,广告的主角是知名人士,他们可能并不知道自己的图像正在被滥用。如果用户选择了这些广告,就会出现一个汽车广告页面(如图右侧所示)。选择类似的广告会转到另一个促销页面(见图2)。图1:N-TV页面上的广告截图(左),以及用户选择该广告时出现的汽车广告(右)
图2:用户选择类似广告后打开的促销页面多年来,不择手段的广告服务商一直在不同的盈利计划中使用这类媒体内容。然而,最近我们看到了这些广告的有趣发展,以及支持这些活动的技术变化。最近,一些数字媒体和SEO货币化组织一直在使用公开分享的媒体内容来创建名人的deepfake模型。这些组织在未经名人和有影响力者同意的情况下就使用他们的形象,将deepfake的内容分发给不同的宣传活动。图3就突出显示了这样一个示例。Meta网站上出现了网络安全专家克里斯·西斯特伦克(Chris Sistrunk)的宣传活动。但值得注意的是,他既不是广告中出现的产品的代言人,也没有说广告视频中的任何内容。图3:Meta广告活动中出现的网络安全专家Chris Sistrunk的deepfake视频除了新闻和社交媒体网站外,在合法和流行的移动应用程序中也存在类似的广告,这些广告不仅会使用静态图像,甚至还使用埃隆·马斯克(Elon Musk)的deepfake视频来宣传“金融投资机会”。图4:Duolingo广告中Elon Musk的deepfake视频当用户选择广告时,它会引导他们进入一个页面,翻译过来是“投资机会;投资250欧元,收益1000欧元。”Deepfake的下一个升级是能够在冒充名人的同时进行视频通话。Deepfake服务的话题在地下论坛上相当流行。在这些讨论组中,我们看到许多用户都将网上银行和数字金融验证作为目标。对这些服务感兴趣的犯罪分子很可能已经拥有了受害者身份文件的副本,但他们还需要受害者的视频流来窃取或创建账户。这些账户日后可能被用于洗钱或非法金融交易等恶意活动。地下市场的deepfake使用验证工具和技术的地下犯罪攻击经历了显著的演变。例如,我们看到帐户验证服务已经存在很长一段时间了。然而,随着电子商务的发展,并且使用现代技术和在线聊天系统进行身份验证,犯罪分子也在发展他们的技术,并开发了绕过这些验证方案的新方法。
在2020年和2021年初,我们已经看到一些地下论坛用户正在寻找“deepfake专家”来进行加密货币和个人账户交易。图5:地下论坛用户正在寻找deepfake专家来帮助他们进行视频人脸交换事实上,一些用于deepfake制作的工具已经在网上提供了一段时间了,比如在GitHub上。我们还看到,用于deepfake和deepfake检测的工具在地下论坛上也引起了人们的关注。图6:deepfake和deepfake检测工具最近,一篇关于加密货币交易网站币安(Binance)一名通信高管的deepfake新闻报道被发布。该虚假新闻被用来欺骗Zoom电话中的加密货币项目代表。如图7所示,其中显示了来自图6中同一个地下线程的对话,讨论了如何使用deepfake绕过币安验证。自2021年以来,用户一直在试图找到破解币安面对面识别的方法。图7:来自一个地下论坛的图片,讨论deepfake和币安身份验证过程在工具方面,也有易于使用的机器人,使创建deepfake视频的过程变得更加容易。一个例子是Telegram机器人RoundDFbot。图8:Telegram机器人制作deepfake视频这些deepfake视频已经被用来给公众人物制造麻烦。名人、高级政府官员、知名企业人物以及其他在网上有许多高分辨率图像和视频的人最容易成为攻击目标。我们看到,利用他们的面孔和声音的社会工程骗局已经激增。考虑到这些工具和现有的deepfake技术,我们可以预计会看到更多旨在通过伪造语音和视频操纵受害者的攻击和骗局。
Deepfake如何影响现有的攻击、骗局和盈利计划犯罪分子可以利用deepfake来进行当前的恶意活动,我们已经看到了第一波此类攻击。下面列出了现有的攻击和我们在不久的将来可能会遇到的攻击:
Messenger骗局:多年来,冒充理财经理打电话询问转账事宜一直是一种流行的骗局,现在犯罪分子可以在视频通话中使用deepfake技术。例如,他们可以冒充某人,联系他们的朋友和家人,要求转账或简单地为手机余额充值。
BEC:即使没有deepfake,这种攻击也已经相当成功。现在,攻击者可以在电话中使用虚假视频,冒充高管或商业伙伴,并要求转账。
开户:犯罪分子可以利用deepfakes绕过身份验证服务,在银行和金融机构,甚至是政府机构,用偷来的身份文件副本,代他人创建账户。这些犯罪分子可以利用受害者的身份,绕过通常通过视频通话完成的验证过程。这些账户以后可能被用于洗钱和其他恶意活动。
劫持账户:犯罪分子可以通过视频通话控制需要识别身份的账户。他们可以劫持一个金融账户,然后提取或转移资金。一些金融机构要求在线视频验证在网上银行应用程序中启用某些功能。显然,这种验证也可能成为deepfake攻击的目标。勒索:利用deepfake视频,恶意行为者可以制造更强大的勒索和其他与勒索相关的攻击。他们甚至可以植入利用deepfake技术制造的假证据。
虚假情报活动:Deepfake视频还可以制造更有效的虚假信息活动,并可用于操纵公众舆论。某些攻击,如拉高出货(pump-and-dump)计划,依赖于来自知名人士的消息。现在,这些信息可以使用deepfake技术来创建。这些计划肯定会产生财务、政治甚至声誉方面的影响。
技术支持诈骗:Deepfake行为者可以使用假身份对毫无戒心的用户进行社交工程,让他们分享支付凭证或获取IT资产。
社会工程攻击:恶意行为者可以使用deepfake来操纵被模仿者的朋友、家人或同事。
劫持物联网(IoT)设备:使用语音或人脸识别的设备,如亚马逊的Alexa和许多其他智能手机品牌,将会出现在deepfake罪犯的目标名单上。
安全建议我们已经看到了第一波使用deepfake的犯罪和恶意活动。但是,由于以下问题,未来很可能会出现更严重的攻击:
社交媒体上曝光的内容足以为数百万人创造deepfake模型。每个国家、城市、村庄或特定社会群体的人都将自己的社交媒体暴露在世界面前。
所有的技术支柱都已到位。攻击实施不需要大量投资,攻击不仅可以由国家和公司发起,也可以由个人和小型犯罪组织发起。
威胁行为者已经可以模仿和窃取政客、C级高管和名人的身份。这可以显著提高某些攻击的成功率,如金融计划、短期虚假信息宣传、公众舆论操纵和敲诈勒索。
普通人的身份可以从公开曝光的媒体中被窃取或重塑。网络犯罪分子可以从被冒充的受害者那里窃取信息,或者利用他们的身份进行恶意活动。
Deepfake模型的修改可能会导致从未存在过的人的身份大量涌现。这些身份可用于不同的欺诈计划。这种迹象已经在野被发现。
那么,个人和组织可以做些什么来应对和减轻deepfake攻击的影响?对于普通用户,以及使用生物特征模式进行验证和身份验证的组织,我们有一些建议。其中一些验证方法也可以自动化并广泛部署。多因素身份验证方法应该是敏感或关键帐户的任何身份验证的标准方法。
组织应该通过三个基本因素对用户进行身份验证:用户拥有的东西,用户知道的东西,以及用户的身份。
通过相关样本进行人员意识培训,以及KYC(know-your- customer)原则对金融机构来说是必要的。Deepfake技术并不完美,组织的员工应该注意某些危险信号。
社交媒体用户应尽量减少高质量的个人形象曝光。
在验证敏感账户(例如银行或公司档案)时,用户应优先使用较少暴露于公众的生物特征识别模式,如虹膜和指纹。
要在更大范围内解决这一问题,就需要重大的政策改变。这些政策应解决当前和以前暴露的生物识别数据的使用问题。他们还必须考虑到目前网络犯罪活动的状况,并为未来做好准备。原文链接:https://www.trendmicro.com/en_us/research/22/i/how-underground-groups-use-stolen-identities-and-deepfakes.html
论坛
Discuz!全称:Crossday Discuz! Board,是一套免费使用的社区论坛软件系统,由北京康盛新创科技有限责任公司推出,目前最新版本是Discuz! X3.4。自面世以来,Discuz!已拥有18年以上的应用历史和数百万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。Discuz!的基础架构采用世界上最流行的web编程组合PHP+MySQL实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案,无论在稳定性、负载能力、安全保障等方面都居于国内外同类产品领先地位。在本教程中,我们将以Centos 6.5系统的64位服务器为例,教你如何安装设置Discuz!,构建属于你的论坛。如果你还没有服务器,你可以在这里免费领取一台LIKE.TG服务器,当然作为土豪的你肯定也可以参考文档自己花钱购买一台。下面我们开始论坛搭建的过程:安装LAMP集成环境LAMP是Linux+Apache+MySql+PHP的简称,安装LAMP的步骤比较冗长,有兴趣的同学可以参考LIKE.TG提供的实验手册自己动手搭建,本文不再向描述。这里,我们提供一种更为快速便捷的安装方案,通过LIKE.TG云市场中的PHP全能运行环境镜像来进行搭建。首先,我们进入LIKE.TG官网的服务器控制台,选择需要安装LAMP集成环境的云服务器进行重装。然后,在重装的界面选择“服务市场->全能环境->PHP全能运行环境”镜像,输入自定义的服务器密码,点击“开始”进行系统重装。等待系统重装成功,我们即完成了LAMP集成环境的安装。连接服务器首先检查你的服务器安全组设置,确保其开放SSH使用的22和HTTP访问使用80端口以及我们上传文件的21端口。然后我们通过SSH软件登录服务器,如果你本地电脑是Windows情况下可以使用putty等软件,Linux及MacOS请使用终端进行连接。我这里以MobaXterm的终端软件为例,点击左上角的Session按钮,选择以SSH方式连接,在Remote host输入你的服务器的公网IP地址,Specify username输入你的用户名,如果你的服务器是Ubuntu系统,请输入ubuntu如果是CentOS系统则输入root。这里我们是CentOS系统,所以我们输入root。点击OK后,输入你设置的密码(默认不显示),即可连接到你的服务器,你会看到类似下面的页面。这样,你就进到你的服务器的页面了。查看数据库及FTP服务器的账户密码进入服务器后,镜像已经帮你搭建好了 Discuz!所需的环境,你只需要查看密码即可使用这个服务器。首先我们输入ls命令查看当前目录文件,然就我们会发现一个名为default.pass的文件,使用cat default.pass命令展示当前生成的密码。代码语言:txt复制ls
cat default.pass你会看到类似下面的输出代码语言:txt复制[root@VM_0_7_centos ~]# ls
README.txt anaconda-ks.cfg default.pass install.log install.log.syslog
[root@VM_0_7_centos ~]# cat default.pass
+----------------------------------------------------------------------
| YJCOM [ EASY CLOUD EASY WEBSITE]
+----------------------------------------------------------------------
| Copyright (c) 2015 http://yjcom.com All rights reserved.
+----------------------------------------------------------------------
MySQL root password: gOeuPMkjSbVn
MySQL database name: ZjI4meIu
MySQL user: ZjI4meIu
MySQL password: dk0KknIIXfn8
FTP account: www
FTP password: SvlLQX5nYEq5
[root@VM_0_7_centos ~]#部署Discuz!获取到FTP及数据库密码后,我们就可以部署Discuz!论坛了,首先,我们需要下载Discuz!的安装包。下载Discuz!从 2018 年 1 月 1 日起Discuz!只在官方 Git 发布,所以我们打开Discuz!的官方git,然后点击右边的克隆下载。下载完成后,我们就需要上传啦!上传Discuz!上传前我们需要用软件链接到FTP服务器才行,通过我们上一步获取的FTP账户www及密码SvlLQX5nYEq5使用ftp软件登录FTP服务器,这里我们依然以MobaXterm为例,点击左上角的Session按钮,选择以FTP方式连接,在Remote host输入你的服务器的公网IP地址,Username输入你的用户名,这里我们获取到的是www,输入www,点击OK后,输入你设置的密码,即可连接到你的服务器,你会看到类似下面的页面。接下来我们将下载的Discuz!文件解压出来,然后双击解压出来的upload文件夹,将所有文件全部上传到FTP服务器。上传完成后你就可以打开http://你的IP/install/访问安装页面啦!安装Discuz!访问http://你的IP/install/页面,会看到系统提示你可以进一步安装你的博客了。点击我同意后,系统可能会提示你不稳文件权限不对,那么我们要赋予这些目录写入权限才行。我们需要在你的www目录下执行chmod命令赋予这几个文件可写入的权限,使用下面的命令。代码语言:txt复制cd /yjdata/www/www
chmod -R 777 uc_client/
chmod -R 777 uc_server/
chmod -R 777 data/
chmod -R 777 config/执行完后,刷新页面,这下你的Discuz!就可以继续安装了,我们点击下一步。接下来,需要选择安装类型,我们并非升级,所以选择全新安装 Discuz! X (含 UCenter Server)。然后继续点击下一步,这里需要我们输入数据库的信息,由于我们使用的本地自建的数据库,所以我们使用上面得到的数据库账户及密码。代码语言:txt复制MySQL root password: gOeuPMkjSbVn
MySQL database name: ZjI4meIu
MySQL user: ZjI4meIu
MySQL password: dk0KknIIXfn8请按照图中填写,数据库服务器、数据库名、数据库用户名、数据表前缀保持默认,我们只需要修改数据库密码,系统信箱Email即可。数据库密码为上面的gOeuPMkjSbVn,系统信箱为你的邮箱服务器的信箱(可保持默认),管理员账户请自行填写(可保持默认),管理员密码填你记的住的密码。管理员Email为你自己的邮箱。填写完成后我们点击下一步。接下来系统会提示正在安装。等待十几秒,会提示安装成功,这样,你的Discuz!就部署完成了,赶快登陆到后台去进行相关设置吧!然后,我们登陆论坛后台http://你的IP地址/admin.php就可以对站点进行设置了。总结现在,你已经成功将Discuz! X3.4部署在你的LIKE.TG服务器上,怎么样,学会了吗?如果你是在生产环境使用本Discuz! X3.4,那么非常不推荐使用本地MySQL数据库,你可以尝试购买LIKE.TG云关系型数据库,云关系型数据库是一种高度可用的托管服务,提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案,可将您从耗时的Discuz!数据库管理任务中解放出来,让您有更多时间专注于您的应用和业务。
流媒体传输协议浅析(二)UDP媒体传输
一、引言既然UDP天然适合流媒体场景,为什么还存在TCP的流媒体协议?UDP的实时性,低延迟,又支持组播,确实适合音视频场景,但由于UDP是不稳定不可靠传输技术,直接用它来传输音视频,在实际网络中拥塞,丢包等情况会导致大量的音视频丢包,甚至视频和音频关键帧丢失导致客户端无法解码。如果将UDP用在流媒体传输中,需要自己完成很多可靠性工作。即TCP中做的可靠性工作,都需要在UDP上层根据业务情况适当实现(注意不是照搬,是适当实现,允许少了丢包,增强可靠性)。 流媒体基本框架二、UDP可靠性开发工作根据笔者实际工作经验,UDP应用在流媒体传输场景可能要做以下工作: 1)乱序重排UDP由于面向是无连接的,各个包的路由路径不一样,收到包,不一定保序,发送端在应用层要加入序列号,接收端要根据接收数据的应用层序列号就行重排。典型的RTP协议的序列号就可以用来排序2)丢包重传(ARQ)由于网络拥塞,或者带宽不足,或者网络设备故障,或者无线信号衰减,或者系统socketbuffer 溢出等都可能导致丢包。大量的丢包必然导致视频卡顿,甚至参考关键帧丢失而无法解码,故在应用层再次请求发送端重传。重传技术中RTO(重传超时时间)非常关键,RTO太大,导致重传太慢,RTO太小,导致正常报还没有到,就触发无效重传,通常是根据RTT(一个连接的往返时间)探测,预估RTO的值, 3)前向纠错(FEC)由于重传可能也会带来网络拥塞,加剧网络丢包,所以重传次数是有限的。甚至如果能够FEC纠错的话,优先采用纠错。但前向纠错能力是有限的,多个连续丢包是无法纠错的。通常FEC和丢包重传结合使用。 4)拥塞控制如果网络拥塞,如不加以拥塞控制,网络拥塞会更加剧烈,甚至传输瘫痪。tcp有拥塞窗口技术来实现拥塞控制,UDP媒体传输通常根据根据网络状态(基于丢包率,或延时),或者接收buffer,进行降帧率,降低码率,甚至自动降低分辨率,减少数据传输,进而减少网络拥塞。 5)流量控制 在TCP传输中有TCP的滑动窗口保证网络流量。UDP传输完全是尽力传输。在适当时候,发送端同样要根据实际情况做码率控制。常见做法根据音视频时间戳控发送速度,根据流媒体的码率控制发送速度等。以上开发工作根据业务场景实现,乱序重排和丢包重传是常规做法的。更进一步做法是引入FEC,拥塞控制,流量控制,多手段结合,增强系统的弱网适应性。三、总结由于网络环境的复杂和多变,以上工作需要大量的人力和技术投入。所以传统流媒体技术对延迟要求不高或者可以接收一定的延迟直接采用TCP承载(如http族流媒体,RTMP等),一方面可以节省人力和技术投入 二方面可以直接服用传统的tcp技术(如web服务技术)。实际应用tcp 在带宽足够,网络状态良好的环境体验良好,但在弱网环境体验就非常糟糕。由于tcp传输的严谨性,协议栈参数有限可调的局限性,延迟和拥塞几乎导致视频通话中断或音视频卡顿频繁,后面将进一步针对UDP可靠性传输做进一步总结。
FPGA开源网站和论坛
FPGA开源网站和论坛FPGA开源网站和论坛
1.1.1 25个FPGA开源网站1.OPENCORES.ORG网站地址::http://www.opencores.org图1‑31 OPENCORES.ORG网站截图这里提供非常多,非常好的FPGA内核。进入后,选择project或者由http//www.opencores.org/browse.cgi/by_category进入。网站介绍:OpenCoresis a loose collection of people who are interested in developing hardware, witha similar ethos to the free software movement. Currently the emphasis is ondigital modules called 'cores', since FPGAs have reduced the incremental costof a core to approximately zero. Activity is centered around the opencores website This websiteis a community portal for professionals, amateurs, and enthusiasts interestedin the field of digital design engineering. The site gives users open access toview, download, reuse, and share gateware designs. OpenCores specializes onbundles of structured files forming self-confined units, most commonly known asIntellectual Properties (IP) “cores”, coded in Hardware Description Language(HDL).网站地址:http://www.opencores.org 2. FPGAsare fun网站地址:http://www.fpga4fun.com/ 图1‑32 FPGAs arefun网站截图提供了大量的关于FPGA应用的文章,项目实际例子。强烈推荐官方介绍:You can find information pages, aswell as FPGA projects to build with an FPGA board.The FPGA projects use a languagecalled Verilog, which you need to learn to be able to understand the projects.But with the examples shown here and the online resources otherwise available,it's not too hard.网站地址:http://www.fpga4fun.com/ 3. OpenCollector网站地址:http://opencollector.org/summary.php收集了大量的开源硬件及内核。它的分类非常清晰,不多说。强烈推荐网站地址:http://opencollector.org/summary.php - 外文4. Intel、Xilinx官网网站地址:网站地址:5. FPGA和CPLD可编程逻辑器件 - 莱迪思半导体公司网站地址:http://www.latticesemi.com.cn/ - 中文6. Altera中文主页 强烈推荐网站地址:http://www.altera.com.cn/ - 中文7. 强烈推荐FPGA学习。网站地址:http://www.epanorama.net/links/fpga.html - 外文图1‑33 epanorama网站截图10. 可编程逻辑器件 - Programable Logic Device一个专门的关于可编程逻辑器件 -Programable Logic Device ( FPGA CPLD )的网站,里面的资料比较全。里面有几个非常好的栏目:参考设计、应用文章、设计进阶。这里的BBS论坛人气也比较旺网站地址:http://www.pld.com.cn/bbs/index.asp - 中文11.Andraka Consulting Group Home包含了大量的算法比如FFT,FIR以及它们的DSP与FPGA实现等等。网站地址:http://www.andraka.com/toc.htm - 中文12. www.fpga-faq.org收集了大量的FPGA问题,对一些概论性的东西作了很好的解说。初学者必去。网站地址:http://www.fpga-faq.org/ - 外文图1‑34 fpga-faq网站截图13. ViaDev-page提供许多非常新的开发项目,而且提供详细的有关资料。包括如下内容:ultrasonic sensor-based radarSimple Power supplyPIC-based alarm clockNissan Maxima Consult InterfaceMfr. libraries for ProtelSony IRCS remote control FPGA IP coretesting proj.Cheap logic analyzer, PIC basedPIC-based IDECustom Protel librariesSobel edge detector FPGA IP Core - EEprojectTrivial high-voltage programmer forPICFPGA-based MAC and PHYFTDI USB - RS 232 converterMP3 Server front-end for linuxserver, PIC based文档下载:http://via.dynalias.org/hw/ 网站地址:http://via.dynalias.org/ - 外文14. DesignAnd ReuseThe Web'sSystem-On-Chip Design Resource - IP, Core, System-On-Chip.图1‑35us.design-reuse网站截图网站地址:http://www.us.design-reuse.com/ - 外文15.FPGAworld大量的资料下载,推荐,需要注册。图1‑36 fpgaworld网站截图网站地址:http://www.fpgaworld.com/ - 外文16.SOCcentralSOCcentralbrings you the latest news about SOC/ASIC/FPGA design, EDA tools and designmethodologies, intellectual property (IP), and design reuse. You'll also findthe abstracts (and links) to more than 1600 relevant magazine and newspaperarticles, tutorials, whitepapers, and application notes available on line, aswell as the most comprehensive directory of EDA/design service/IP providersavailable anywhere on the Internet.网站地址:http://www.soccentral.com/ - 外文17.EDACafe, the Leading EDA Portal图1‑37 edacafe网站截图网站地址:http://www.edacafe.com/ - 外文18. FPGAand Programmable Logic Journal图1‑38 FPGA andProgrammable Logic Journal网站截图主要介绍MCU+ALTERA。网站地址:http://www.fpgajournal.com/ - 外文19. NIOS μClinuxProject图1‑39 NIOS μClinuxProject网站截图在NIOS处理器上移植uclinux,提供详细文档,电路。网站地址:http://www.enseirb.fr/~kadionik/embedded/uclinux/nios-uclinux.html20. FPGACPU News收集了大量的关于FPGA,CPU的新闻,可以了解它们的发展动态。可惜很久很久没有更新了。图1‑40 FPGA CPU News网站截图网站地址: http://www.fpgacpu.org/ - 中文21.FPGA-based Logic Analyzer利用FPGA来进行逻辑分析,有上位机器VC的源代码实现,非常优秀,它不是利用MFC实现,我下载并且编译通过,有硬件电路图,PCB图,有PC104与并口接口。但是我没有找到VHDL代码。一个非常有用的实际性工程。可以图1‑41 FPGA-basedLogic Analyzer网站截图网站地址:http://www.eebit.com/ - 外文22. FPGA开发板网尽管是买fpga开发板的,但也有小许资料下载。图1‑42 FPGA开发板网网站截图网站地址: http://www.fpgadev.com/ 23. AcceleraSystems InitiativeAcceleraSystems Initiative是一个独立的非营利组织,致力于创建、支持、促进和推进全球电子行业使用的系统级设计、建模和验证标准。 一个收集了非常多的关于HDL标准的网站。图1‑43 AcceleraSystems Initiative网站截图网站地址:http://www.eda.org/ OR https://www.accellera.org/24. 中国集成电路(CIC)设计平台开发网里面有些不错的关于FPGA的资料,可以看看。图1‑44中国集成电路(CIC)设计平台开发网网站截图网站地址:https://www.cicmag.com/index.html25.DFC DESIGNFPGA开源硬件,开源项目。图1‑45 DFC DESIGN网站截图网站地址:http://www.dfcdesign.cz/en1.1.2 国内最大最专业最活跃的前十大FPGA论坛社区网站精选第一名网站地址:hifpga.com准确地说这是一个FPGA论坛,更是一个FPGA的问答社区,整个社区非常活跃,它鼓励人们更快更准确地提问和回答问题,避免FPGA技术论坛中常见的无意义的顶帖和COPY式回帖。整个论坛的主题都是FPGA相关的,是一个专注于FPGA的论坛。这个论坛中大都是一些具体的解决FPGA相关问题的办法,也会有一些FPGA相关的技术细节文章进行分享,当然还有XILINX、ALTERA、LATTICE、MICROSEMIC等FPGA器件的维基(wiki),对了这个论坛还有一个优点就是可以在手机端进行浏览的问答,整站界面做了移动自适应匹配。图1‑46 hifpga.com网站截图注意:本网站还有状态机工具,可以根据代码生成状态转移图。第二名网站地址:http://bbs.elecfans.com/zhuti_fpga_1.htmlelecfans论坛的FPGA模块还是比较活跃的,有各种FPGA工具使用问题的一些讨论。图1‑47 elecfans网站截图第三名网站地址:http://bbs.eetop.cn/forum-68-1.html这个论坛主要是偏向IC设计的,由于FPGA在IC设计中往往属于前端设计,因此其前端设计板块有一些FPGA的相关讨论,里面有一些非常不错的分享,但是论坛这两年活跃度有点低。图1‑48 eetop网站截图注意:论坛内经常有些下载或者阅读文档类的小任务可以获取积分和一些小礼物。第四名网站地址:http://bbs.21ic.com/icfilter-typeid-119-83.html21IC是一个很老的电子社区了,FPGA在这个网站是一个子板块,由于网站本身是单片机起家,里面更多的聊的是一些比较低端的FPGA或者CPLD相关器件,这两年气氛也不是很活跃。图1‑49 21IC网站截图第五名网站地址:http://blog.chinaaet.com/fpga电子技术应用期刊的网站,准确地讲它不算一个论坛,里面有一个不错的FPGA博客版块,有比较多的FPGA相关文章,大部分文章是有干货的,当然也有一些夹杂不少的培训班的广告。图1‑50 chinaaet网站截图注意:特权同学的博客还是很经典的。第六名网站地址:http://www.eda365.com/forum-50-1.html这是一个讨论PCB技术起家的论坛,FPGA在里面是一个版块,整个版块的活跃度比较高,提问比较基础。图1‑51 eda365网站截图注意:电子设计工程师应该会比较了解这个论坛。第七名网站地址:www.heijin.org/ 这是黑金开发板的论坛,如果你买了他们家的板子可以去这个论坛提问看看或者去下载黑金开发板的基础资料。图1‑52 heijin网站截图第八名网站地址:www.fpgaw.com/ 这是一个培训机构的FPGA论坛,有一些基础的FPGA学习资料,传说中的至芯科技。图1‑53 fpgaw网站截图第九名网站地址:http://www.openhw.org/这个论坛有不少的FPGA开源项目,很多很有意思,可以学到不少东西。图1‑54 openhw网站截图第十名网站地址:http://forums.xilinx.com/这是Xilinx的官方讨论区,论坛本身是英语的,但是有一些人在里面用中文提问也得到了答复。图1‑55forums.xilinx网站截图第十一名网站地址:http://www.osrc.cn/用过ZYNQ开发板的人应该都知道这家公司,是一个专注ZYNQ开发的论坛,论坛内的资料(开放部分)都可以不用注册就可以下载,但是也仅仅是下载资料,论坛几乎没人维持,提问也没人回答,只能去他家的qq群里去问群主。图1‑56 osrc网站截图第十二名网站地址:http://www.iopenhec.com没有FPGA开发板怎么开发?这个网站可以给你答案,创新性的做成FPGA云,可以在云端进行FPGA开发和实验,网站的创始人也会经常出一些公开课供大家学习。图1‑57 iopenhec网站截图
黑客瞄准韩国智库、2021年社交媒体网络钓鱼攻击猛增|11月12日全球网络安全热点
安全资讯报告勒索软件团伙使用“无情”的策略,以获得更大的回报根据欧洲执法机构欧洲刑警组织的数据,仅在2019年至2020年之间,赎金支付的数量就增加了300%。网络犯罪分子以供应链、关键基础设施、医院等为目标的几起重大事件表明,成功的勒索软件攻击具有多么大的破坏性。为了获得解密加密文件和服务器所需的解密密钥,许多成为勒索软件攻击受害者的组织将支付赎金,这可能会花费数百万美元的比特币或其他加密货币。网络犯罪分子并没有尝试大规模分发勒索软件并希望某些攻击能够成功,而是选择较少数量的目标,而是根据他们最有可能支付赎金来选择这些目标。报告称:“大规模分发勒索软件的攻击似乎正在减少,犯罪分子正在转向针对私营公司、医疗保健和教育部门、关键基础设施和政府机构的勒索。”这一转变表明,勒索软件运营商会根据财务能力来选择目标,以满足更高的赎金要求,以及目标受害者需要尽快恢复运营。随着犯罪分子在网络中花费更多时间研究目标并提升其特权,以进一步破坏基础设施并获取更多数据,勒索软件攻击变得更加复杂。如果不支付赎金,网络犯罪分子将窃取数据并威胁要发布数据。这些双重勒索攻击对不希望公开敏感信息的组织十分有效。如果受害者不支付赎金,一些勒索软件攻击已经开始威胁受害者,通过DDoS攻击进一步破坏。欧洲刑警组织表示:“肇事者的作案手法越来越无情和有条不紊。许多最臭名昭著的勒索软件附属程序对其受害者进行DDoS攻击,以迫使他们遵守勒索要求。新闻来源:https://www.zdnet.com/article/ransomware-gangs-are-now-using-ruthless-tactics-as-they-aim-for-bigger-payouts/网络钓鱼攻击比2020年增长31.5%,社交媒体攻击继续攀升根据PhishLabs的一份报告,网络钓鱼仍然是不良行为者的主要攻击媒介,在2020年增长了31.5%。值得注意的是,2021年9月的攻击次数是前一年的两倍多。网络钓鱼和社交媒体攻击的惊人增长,2021年社交媒体攻击猛增:自1月以来,每个目标的社交媒体攻击平均数量稳步攀升,今年迄今增长了82%。在第三季度,企业用户报告的凭据盗窃网络钓鱼攻击中有51.6%以Office365登录为目标。新闻来源:https://www.helpnetsecurity.com/2021/11/11/phishing-attacks-grow-2020/黑客通过博客文章瞄准韩国智库在自2021年6月开始追踪的一项新活动中,高级持续威胁(APT)组织一直试图在受害机器上植入监视和基于盗窃的恶意软件。来自Cisco Talos的研究人员表示,Kimsuky APT,也被称为Thallium或Black Banshee,是这波攻击的罪魁祸首,其中恶意的Blogspot内容被用来引诱“韩国智囊团,他们的研究重点是政治与朝鲜、中国、俄罗斯和美国有关的外交和军事话题。”具体来说,地缘政治和航空航天组织似乎在APT的关注范围内。Kimsuky至少自2012年以来一直活跃。AhnLab表示,电子邮件中附带的表格、调查问卷和研究文件过去曾被用作网络钓鱼诱饵,而在Talos检测到的活动中,恶意Microsoft Office文档仍然是主要的攻击媒介。通常,恶意VBA宏包含在文档中,一旦触发,将从Blogspot下载有效负载。这些博客文章基于Gold Dragon/Brave Prince恶意软件系列提供了三种类型的恶意内容:初始信标、文件窃取程序和植入部署脚本——后者旨在感染端点并启动进一步的恶意软件组件,包括键盘记录器、信息窃取器和用于网站登录凭据盗窃的文件注入器模块。Kimsuky威胁参与者将扫描他们特别感兴趣的文件。这包括与朝鲜、无核化、美国、中国和俄罗斯之间的关系以及火箭设计、航空燃料研究、流体力学和材料科学相关的内容。研究人员说:“Kimsuky是一个积极主动的威胁行为者,目标是韩国的许多实体。该组织一直在不懈地创建新的感染链,以向受害者提供不同类型的恶意软件。此类有针对性的攻击可能导致受限研究的泄露、未经授权的间谍访问,甚至对目标组织的破坏性攻击。”新闻来源:https://www.zdnet.com/article/north-korean-hackers-target-the-souths-think-tanks-through-blog-posts/Google Play上的“智能电视遥控器”是恶意软件本周,Google Play商店中的两个Android应用程序被发现包含恶意软件。这些应用程序被称为“智能电视遥控器”和“万圣节着色”,前者已被下载至少1,000次。智能电视远程应用程序包“Joker”恶意软件,这些应用程序被Joker恶意软件感染了木马。Google Play Protect在安装应用程序时会对其进行检查。还会定期扫描您的设备。如果发现潜在有害应用程序,会向用户发送通知,禁用该应用程序,直到卸载。安装了这些应用程序的用户应立即卸载应用程序,清理他们的智能手机,并检查是否有任何未经授权的订阅或从他们的帐户发起的计费活动。新闻来源:https://www.bleepingcomputer.com/news/security/careful-smart-tv-remote-android-app-on-google-play-is-malwareWindows 10 App Installer在BazarLoader恶意软件攻击中被滥用TrickBot团伙运营商现在正在滥用Windows 10应用安装程序,将他们的BazarLoader恶意软件部署到成为高度针对性垃圾邮件活动受害者的目标系统上。BazarLoader(又名BazarBackdoor、BazaLoader、BEERBOT、KEGTAP和Team9Backdoor)是一种隐蔽的后门木马,通常用于破坏高价值目标的网络并将对受损资产的访问权出售给其他网络犯罪分子。它被用于提供额外的有效载荷,例如Cobalt Strike信标,可帮助威胁行为者访问受害者的网络并最终部署危险的恶意软件,包括但不限于Ryuk勒索软件。钓鱼网站上的“预览PDF”按钮不是指向PDF文档,而是打开一个带有ms-appinstaller:前缀的URL。单击该按钮时,浏览器将首先显示警告,询问受害者是否允许该站点打开App Installer。大多数人在看到adobeview.*时可能会忽略它。单击警告对话框中的“打开”将启动Microsoft的应用程序安装程序,以伪造的Adobe PDF组件的形式在受害者设备上部署恶意软件。在受感染设备上部署后,BazarLoader将开始收集系统信息(例如,硬盘、处理器、主板、RAM、本地网络上具有面向公众的IP地址的活动主机)。新闻来源:https://www.bleepingcomputer.com/news/security/windows-10-app-installer-abused-in-bazarloader-malware-attacks/安全漏洞威胁Magniber勒索软件团伙利用Internet Explorer漏洞进行攻击Magniber勒索软件团伙现在正在使用两个Internet Explorer漏洞和恶意广告来感染用户并加密他们的设备。这两个Internet Explorer漏洞被跟踪为CVE-2021-26411和CVE-2021-40444,两者的CVSSv3严重性评分均为8.8。第一个CVE-2021-26411已于2021年3月修复,是通过查看特制网站触发的内存损坏漏洞。第二个漏洞CVE-2021-40444是由打开恶意文档触发的IE渲染引擎中的远程代码执行。在微软于2021年9月修复之前,攻击者曾利用CVE-2021-40444作为零日漏洞。Magniber团伙以利用漏洞破坏系统和部署勒索软件而闻名。8月,有人观察到Magniber利用“PrintNightmare”漏洞破坏Windows服务器,由于它们对打印的影响,微软需要一段时间来解决。最新的Magniber活动侧重于使用推送漏洞利用工具包的恶意广告来利用Internet Explorer漏洞,腾讯安全研究人员确认了“新鲜”有效载荷。Magniber于2017年开始作为Cerber勒索软件的继承者,最初仅感染来自韩国的用户。该组织随后扩大了目标范围,并开始感染中国(包括台湾和香港)、新加坡和马来西亚的系统。Magniber勒索软件一直处于非常活跃的开发阶段,其有效载荷已被完全重写了3次。目前,它仍然未破解,因此没有解密器可以帮助恢复病毒加密的文件。新闻来源:https://www.bleepingcomputer.com/news/security/magniber-ransomware-gang-now-exploits-internet-explorer-flaws-in-attacks/新的Golang恶意软件(BotenaGo),针对数百万路由器和物联网设备利用了30多个漏洞ATT AlienLabs™发现了用开源编程语言Golang编写的新恶意软件。它部署了30多个漏洞利用程序,有可能针对数百万个路由器和物联网设备。根据Intezer最近的一篇文章,Go编程语言在过去几年中在恶意软件作者中的受欢迎程度急剧增加。该网站表明,在野外发现的用Go编写的恶意软件代码增加了2,000%。其日益流行的一些原因与为不同系统编译相同代码的容易性有关,这使攻击者更容易在多个操作系统上传播恶意软件。BotenaGo目前的反病毒(AV)检测率较低。一些杀毒软件使用Go作为Mirai恶意软件检测这些新的恶意软件变种——有效载荷链接看起来确实相似。Alien Labs发现的新恶意软件变种与Mirai恶意软件的攻击功能不同,新变种只会寻找易受攻击的系统来传播其负载。新闻来源:https://cybersecurity.att.com/blogs/labs-research/att-alien-labs-finds-new-golang-malwarebotenago-targeting-millions-of-routers-and-iot-devices-with-more-than-30-exploits