首页 文章 精选 留言 我的

精选列表

搜索[沈向洋院士],共10000篇文章
优秀的个人博客,低调大师

如何查看Docker容器环境变量,如何向容器传递环境变量

云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 1 前言 了解Docker容器的运行环境非常重要,我们把应用放在容器里执行,环境变量会直接影响程序的执行效果。所以我们要知道容器内部的环境变量,也要知道如何改变这些环境变量。 2 查看环境变量 2.1 方式一:docker inspect 通过docker inspect命令不仅能查看环境变量,还能查看容器其它相关信息,非常丰富,以Json格式输出。 $ docker inspect centos 截取片段来看看: 可读性还可以,但也不算很高,可以通过grep命令过滤一下: $ docker inspect centos | grep SERVER "SERVER_PORT=80", 或者可以解析一下Json文本: $ docker inspect -f '{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' centos PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 2.2 方式二:doecker exec env 这种方式获取的环境变量就跟我们平时获取linux环境变量是一样的了。只是在容器跑了个env命令而已。如下: $ docker exec centos env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=f8b489603f31 HOME=/root 3 设置环境变量 3.1 方式一:打包设置dockerfile 在通过Dockerfile打包镜像的时候可以配置环境变量: ENV SERVER_PORT 80 ENV APP_NAME pkslow 3.2 方式二:启动设置docker run --env 使用--env和-e是一样效果的,示例如下: $ docker run -itd --name=centos -e SERVER_PORT=80 --env APP_NAME=pkslow centos:7 b3d42726ca6cdddd7ae09d70e720d6db94ff030617c7ba5f58374ec43f8e8d68 $ docker exec centos env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=b3d42726ca6c SERVER_PORT=80 APP_NAME=pkslow HOME=/root 可以使用宿主环境变量,不用再给出值,如下传递宿主的HISTSIZE: $ docker run -itd --name=centos -e SERVER_PORT=80 --env APP_NAME=pkslow -e HISTSIZE centos:7 f8b489603f31779cdae88c77fb446aac80d61f41922a79128d6d26ee6b70a091 $ docker exec centos env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=f8b489603f31 SERVER_PORT=80 APP_NAME=pkslow HISTSIZE=1000000 HOME=/root 3.3 方式三:启动时加载文件docker run --env-file 先把配置信息放在文件env.list里: $ cat env.list VAR1=www VAR2=pkslow.com VAR3=www.pkslow.com 启动容器时传入文件: $ docker run -itd --name=centos --env-file env.list centos:7 1ef776e2ca2e4d3f8cdb816d3a059206fc9381db58d7290ef69301472f9b4186 $ docker exec centos env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=1ef776e2ca2e VAR1=www VAR2=pkslow.com VAR3=www.pkslow.com HOME=/root 如果想把宿主上的所有环境变量都传入到容器里,可以这样操作: $ env > env.list $ docker run -itd --name=centos --env-file env.list centos:7 4 总结 本文介绍了多种查看和设置Docker容器环境的方法,可以根据自己的需求使用。 【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/live 立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK 原文发布时间:2020-08-05本文作者:南瓜慢说本文来自:“掘金”,了解相关信息可以关注“掘金”

优秀的个人博客,低调大师

微软向朝鲜黑客宣战,占领了超过 50 个用于攻击的域

微软方面宣布,其已经成功接管了由朝鲜政府支持的黑客组织先前使用的 50 个 Web 域。这家操作系统制造商表示,此前,这 50 个域被该公司一直追踪的Thallium(也称为APT37)组织用来发起网络攻击。 微软表示,数字犯罪部门(DCU)和微软威胁情报中心(MSTIC)团队已经监视 Thallium数月,跟踪该组织的活动并绘制其基础架构。 12 月 18 日,这家位于雷德蒙德的公司在弗吉尼亚州法院对 Thallium 提起诉讼。圣诞节过后不久,美国当局批准了微软的法院命令,允许这家科技公司夺取朝鲜黑客一直在攻击中使用的 50 多个域。 这些域被用于发送网络钓鱼电子邮件和托管网络钓鱼页面。Thallium 黑客会诱使这些站点上的受害者,窃取其凭据,然后获得对内部网络的访问权限,并从这些内部站点进一步升级攻击。 Thallium发送的网络钓鱼电子邮件之一(图片:微软) 同时,微软表示,除了追踪Thallium 的进攻行动外,它还追踪被感染的主机。 汤姆·伯特(Tom Burt)称:“根据受害者的信息,目标包括政府雇员,智囊团,大学工作人员,致力于世界和平与人权的组织成员以及从事核扩散问题的个人”。并透露,“大多数目标都设在美国以及日本和韩国。” 微软高管表示,在许多此类攻击中,其最终目标是使恶意软件感染受害者,例如两个远程访问木马(RAT)KimJongRAT和BabyShark。 伯特表示:“一旦将恶意软件安装在受害者的计算机上,它就会从其中窃取信息,保持持久存在并等待进一步的指示。” 图片:Palo Alto Networks 微软方面表示,该集团已经更新了其安全产品,以保护客户免受 Thallium 发起的攻击,并建议用户启用两因素身份验证,同时尽快检查安全警报和电子邮件转发规则。 事实上,这并不是微软第一次使用法院命令来阻止外国政府支持的黑客组织的运作。 上一次是在2018年8月,微软针对一家名为 Strontium(APT28,Fancy Bear)的俄罗斯组织采取了 12 次此方法,成功撤下了 84 个域 。它还通过法院命令这一手段扣押了与伊朗有联系的网络间谍组织Phosphorus(APT35)运营的 99 个域。 此外,微软也曾利用法院命令破坏了中国政府支持的黑客组织 Barium 的运营。 参考消息:https://www.zdnet.com/article/microsoft-takes-down-50-domains-operated-by-north-korean-hackers/

优秀的个人博客,低调大师

我从Angular 2转向Vue.js, 也没有选择React

译者按: 通过使用Angular的经历,作者已经完全转为Vue粉了!我们Fundebug目前还是用AngularJS 1,坦白说,学习曲线蛮陡的。 原文: Why we moved from Angular 2 to Vue.js (and why we didn’t choose React) 译者: Fundebug 为了保证可读性,本文采用意译而非直译,并且对源代码进行了大量修改。另外,本文版权归原作者所有,翻译仅用于学习。 在Rever, 我们刚刚发布了使用Vue.js完全重写的网站。经过16周紧张的开发,总共commit了641次。现在回过头来,感慨当时对框架的选择是正确的。 在8个月之前,我们还在用Angular 2做网站开发。更加精确地一点,我们用的是Angular 2 beta 9。坦白的说,这个产品当时是由一家外包公司开发,而我们一直对它的方方面面都不满意。不管是UX/UI,还是架构上,甚至Angular 2本身。 在我继续抱怨之前,我要承认Angular 2 beta 9和Angular 2.0是完全不同的产品,但这也是Angular的一个问题所在。从beta 9到2.0.0,有8个beta版本, 8个RC(release candidate),以及2.0.0本身。也就是说,如果要更新到2.0.0,需要升级17个版本。我们也尝试过从beta 9升级到2.0.0,但是因为太多的依赖都破坏了,导致整个更新非常的复杂。同时,我们开始反问自己选择Angular 2是否正确,因为Angular开发团队已经着手Angular 4了。当我们好不容易完全更新到2.0.0的那一天,又需要考虑如何更新到Angular 4了。太浪费时间,太浪费精力了! 我们曾经不喜欢,现在依然不喜欢的就是Angular 2 默认使用Typescript作为开发语言。我知道Angular 2可以直接使用JavaScript,但是在Angular 2中使用JavaScript几乎等于重写整个项目。我不认为Typescript为开发增加了附加值,甚至更加糟糕了。我发现我们的编码速度反而变慢了。在JavaScript中很简单的事情,比如定义一个对象,如果使用Typescript就会变得复杂。在你决定使用Typescript之前,我强烈建议你读读下面这两篇文章。Typescript并不是每个人的最佳选择。 The Shocking Secret About Static Types Angular 2 vs React: The Ultimate Dance Off 我依然记得使用Angular 1是多么的简单。虽然它也有不少问题,但是和其它框架比起来,真的容易。Angular 2却把Angular的优点丢弃了。对于Angular 2, 我的结论很简单:Angular 1 和 Angular 2就是雷锋和雷峰塔的关系。 所以,你想想我们需要在一个未经过测试的系统上更新17个版本,同时还要实现新的功能,现在的代码本身有着一大堆的bug,代码质量很差,毕竟当时的开发者几乎都不在团队里面了,只有我一个同时要应对很多问题。我为了正确使用Typescript,需要到处去找正确的文档。Angular 2已经开始升级Angular 4,然而我连Angular 2都还没升级成功。太多的负面因素快速累积起来。 因此,我们做出了决定:如果升级花费太多的时间,我们就应该考虑其它方案了。 React:第一个最明显的选择是使用React, 因为每个人都在使用它,如果没有,那么也在讨论它。而且,它有Facebook在后台撑腰,不担心维护问题。但是,React本身不是框架,如果要使用,你需要添加额外的东西。 Vue.js:Vue.js是一个新选手,我之前从未听说过。尽管在我们调研前端框架的时候,它的版本已经更新到2.0了。Vue.js非常有吸引力,不过也觉得有点冒险。 决策流程 我们将所有的指标列了出来: 稳定 有强大的社区或则后台支撑 文档完善或则StackOverflow上的问答丰富 容易学习 和Bootstrap兼容 体积小 最好可以复用代码 编码速度提升 反应速度(reactivity) 组件式的 接下来,我亲自使用React和Vue.js来给出一个评估,而不是通过Google告诉我答案。在此之前,我从来没有用过React和Vue.js。我们他们重写了如下部分: 一些基本的API调用 两个不同页面的不同的布局 和用户交互的部分 登录表单和一些其它的表达 一个Bootstrap 模态框(modal) 仅仅使用了几天,我已经被Vue.js惊讶到,我已经可以完成一个演示Demo给CTO和团队其他成员。我已经很好的理解了Vue.js的基本概念,定义可扩展的架构。最重要的是我非常喜欢使用Vue.js的方式写代码,我可以感觉到明显比React快。 使用React比想象中难,要在Redux和MobX中做出选择并没有只有一个完美整合的方案好,就像Vue.js搭配的Vuex。如果对于一个框架没有使用经验的时候,可以让最开始的决策变得简单。如果你知道这个框架有官方的库,将会更有自信。同时,我觉得Vuex的反应比Redux快,不够也许只是个人感觉。 JSX也是一个问题,因为我们不能重用HTML,不够Vue.js在某种程度上支持我们这么做。 我不喜欢内联模板(inline template), 而React将JSX/HTML和JS混合到一起。我一直坚信将不同的功能部件分开才是正确的做法,混到一起看上去太丑了。 编码速度 使用Vue.js的编码速度远远超过React,因为不需要学习JSX。而且,一个新的开发者加入团队之后,他只需要一个小时的培训就可以上手工作。这一点对我们非常重要。打开一个Vue文件,里面包含了使用HTML和Angular 1相似的标签。一个vue文件还包含样式和JavaScript部分。你只需要学习一点点Vue.js的基础知识就可以理解它们。 文档 为了快速开发,好的文档也很重要。Vue.js的文档简直太赞!指导、示例、问题和API文档都非常清晰。在开发中遇到的问题几乎都可以通过文档找到答案。我们开始担心很多问题都是中文的,结果发现所有的资料都有英文版本。 问问其他人 经过一周的考虑,我认为Vue.js非常不错。可是周边的人都没有用过,无法给出中肯的建议。我得到的唯一一个意见就是“看上去很酷,不过我从来没用过”。React最受大家关注,Angular 2其次。我开始寻找本地是否有使用Vue.js的开发者,结果真的找到了,让我觉得不在孤单。而且我的技术圈子本来就很小,所以没有注意到谁在生产环境使用Vue.js。 移动端 在我们考虑选择Vue.js还是React的时候,同时有考虑到要重写我们的移动端。React Native看上去是一个不错的选择。如果我们真的决定用React Native做移动端,可以复用桌面端和移动端的代码,对决定选择React有很大的加分。不过,我最终决定不考虑这个情况也许不会发生的情况。从我的经验来看,使用Node.js已经让我可以在前端和后端重用非常多的代码。 版权许可 在我写这篇博客的时候,网上有很多关于Facebook将React的版权许可改为BSD+Patent的讨论。根据Facebook的解释,这个版权许可防止他们被专利流氓(patent troll)。虽然这不是影响我们决定的一个主要因素,但是如果你使用React,而React有相关版权问题,你也不想听到。 换个角度,Facebook可以说是React的一个负担,而不是助力。这也是为什么一个独立的基金或组织来维护开源软件项目更好。IBM做了一个很好的示范,当他把Strongloop买下来以后,把Express.js捐给了Node.js基金会。来自社区的压力和IBM的期待,使得软件一直很好的维护下去。Twitter也是一个很好的例子,他们使用MIT协议发行Bootstrap,这样再也没有人会讨论Bootstrap的版权问题。 结论 在我做出最终决定之前,我在网上调研了很久。有一张开发者对现有JavaScript状态的调查吸引了我的注意力。我承认,作者并没有用非常严谨的科学的方法去调研,但是却给我们提供了很多非常有用的信息。如果你想阅读原文,请点击The State Of JavaScript: Front-End Frameworks。 衡量指标 Angular 2 React Vue.js 稳定 是 是 是 有强大的社区 是 是 还不够大 后盾 Google Facebook Laravel和阿里巴巴 文档清晰 是 是 是 容易上手 一般,Typescript难学 还可以 是 可以集成Bootstrap 是 是 是 大小 566K 139K 58.8K 易复用 是 只有CSS 是,HTML和CSS 编码速度 慢 一般 快 反应速度(Reactivity) 还可以 快 快 基于组件 是 是 是 总的来说,在我们的评估中,Vue.js胜出。在StackOverflow有很多问答,官方文档十分清晰,代码体积小,和Bootstrap完美集成,由Laravel和阿里巴巴支撑。虽然社区还不够大,但是已经足够大了。 选择Vue.js是一个正确的选择,虽然我花了不少时间来说服CTO。我很感激他总是提出一些有用的难问题,使我可以保证我的决定是100%正确。如果我的决定真的做错了,将会非常后悔的。我想直到他亲手写了一个组件发现相当的容易才真的完全确信Vue.js的能力的。 我没有说React不好,它拥有那么大的一个社区,我感到非常震撼。它有它的好处,jQuery的社区更大,但没有使它成为一个我们想要使用的好的框架/库。我们想要简单,而Vue.js拥有这一点。如果你还是不确定,可以读一读下面这篇文章:Comparison with Other Frameworks。 关于Fundebug Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了7亿+错误事件,得到了Google、360、金山软件、百姓网等众多知名用户的认可。欢迎免费试用! 版权声明 转载时请注明作者Fundebug以及本文地址:https://blog.fundebug.com/2017/09/20/why-we-moved-from-angular2-to-vue/

优秀的个人博客,低调大师

Docker初体验,向Docker Hub推送第一个Docker镜像

一、注册Docker Hub账号 打开Docker Hub网站,找到注册选项,按照常规注册流程进行注册即可。需要注意的是,有时候可能需要进行人机识别验证,这需要调用Google的验证服务。众所周知Google在国内的情况,需要自己想办法搞定。如果人机验证这一步过不去,那么Docker Hub的账号是无法注册成功的。 二、通过Dockerfile构建镜像 这一步在之前的文章中有所涉及,操作如下: [root@ChatDevOps docker-test]# docker build -f /root/docker-test/Dockerfile -t chatdevops/myapp . Sending build context to Docker daemon 157.4 MB Step 1/7 : FROM python:2.7-slim ---> 46ba956c5967 Step 2/7 : WORKDIR /app ---> Using cache ---> 874ecbc1dfc0 Step 3/7 : ADD . /app ---> Using cache ---> fe2d0e196a64 Step 4/7 : RUN pip install --trusted-host pypi.python.org -r requirements.txt ---> Running in caf394f66822 ... ... 以上命令中,选项-f指定了Dockerfile的路径,选项-t指定了新的镜像的仓库名称及镜像名称,还可以指定镜像的标签。命令末尾的点代表构建新镜像的当前目录,也可以写成完整路径。 [root@ChatDevOps docker-test]# docker build -f /root/docker-test/Dockerfile -t chatdevops/myapp:1.01 /root/docker-test/ 三、登录Docker Hub 我在Docker Hub注册的账号为chatdevops,现在使用该账号进行登录。完整命令如下: [root@ChatDevOps docker-test]# docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username (chatdevops): chatdevops Password: Login Succeeded 四、给新构建的本地镜像打标签 如果本地镜像的仓库名与你新注册的Docker Hub账号名称不一致,就需要使用docker tag进行重新打标签,具体命令格式为: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] 因为我注册的账号与我本地仓库的名称都是chatdevops,所以我在操作过程中省略了tag这一步。但是为了演示这个例子,我再次tag一下。 [root@ChatDevOps docker-test]# docker tag chatdevops/myapp:1.01 chatdevops/myapp:1.02 [root@ChatDevOps docker-test]# docker image ls chatdevops/myapp REPOSITORY TAG IMAGE ID CREATED SIZE chatdevops/myapp 1.01 c4bec2582bf3 47 minutes ago 309 MB chatdevops/myapp 1.02 c4bec2582bf3 47 minutes ago 309 MB chatdevops/myapp latest c4bec2582bf3 47 minutes ago 309 MB 五、将新构建的本地镜像推送到Docker Hub 通过docker push命令可以将一个或多个本地镜像推送到Docker Hub。 [root@ChatDevOps docker-test]# docker push chatdevops/myapp 该命令将镜像myapp的所有标签全部推送到Docker Hub。我们看一下效果:我们可以在其他机器上直接创建容器。例如:我们使用镜像chatdevops/myapp:1.02在10.1.1.12这台机器上创建一个名为test-app的容器。 [root@ChatDevOps ~]# docker run -i -t --name test-app chatdevops/myapp:1.02 Unable to find image 'chatdevops/myapp:1.02' locally Trying to pull repository docker.io/chatdevops/myapp ... 1.02: Pulling from docker.io/chatdevops/myapp 4d0d76e05f3c: Pull complete da828db4a2d5: Pull complete dae8f1abda34: Pull complete 7f80c063ca4d: Pull complete 4ad5318a2b9b: Pull complete 95a59aa8e00b: Pull complete 776fee21eb8e: Pull complete Digest: sha256:4de441303d87d392b36fc1218a1be18e3b2bf5b81c9e88eed8688c402f06a793 Status: Downloaded newer image for docker.io/chatdevops/myapp:1.02 [root@ChatDevOps ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 09fe7a428ecc chatdevops/myapp:1.02 "python app.py" About a minute ago Up About a minute 80/tcp test-app 在运行这个容器的过程中,docker会从Docker Hub拉取镜像chatdevops/myapp:1.02存放于本地,再创建容器。当然也可以先将Docker Hub的镜像拉取到本地再创建容器。 六、总结 通过以上步骤,我们将自己创建的容器上传的Docker Hub的仓库中,无论我们在哪里,只要网络能顺利与Docker Hub互联,我们就可以随时随地运行我们自己构建的镜像创建的容器,非常方便。此处我们使用的是公开的仓库,还可以将我们的镜像共享给其他需要的人呢,非常方便。可以通过关键字搜索一下我刚刚创建的镜像。

优秀的个人博客,低调大师

这就是我向您推荐使用Thunderbird邮件客户端的理由

E-MAIL服务是最古老的互联网服务之一,相信很多人都在使用,只不过频率不同。IM出现后的(及时通信工具)一段时间,E-MAIL的通信不及时性估计让很多人交流会更倾向于IM。但是电子邮件(E-MAIL)仍然是不可或缺的通信手段之一。比如企业之间的沟通往来,网站的注册,订阅新闻的收取等。当你拥有多个邮箱的时候,邮箱管理就显的很有必要了。我估计很多人的首选仍然是outlook或foxmail,而最近我把自己除工作邮箱外的个人邮箱逐步迁移到Thunderbird来管理,发现真是值得拥有。Thunderbird(雷鸟)出自于mozilla基金会,旗下有大名鼎鼎的firefox(火狐)浏览器,感兴趣的读者可以自行搜索相关信息。 公私钥邮件加密 我最初更换该工具的动力之一,是某国外邮箱需要使用公私钥认证模式。在其官方的使用步骤中,就看到了其推荐的Thunderbird。激活邮箱的过程还是步骤很多的。需要安装Kleopatra(Gpg4win)+Thunderbird+(扩展附件Enigmail ),上传公钥。通过在Kleopatra生成邮箱账号的公私钥,由Enigmail进行管理,在撰写邮件的时候选择对邮件进行签名或加密,这样就到达了邮件整体的安全性。 邮件内容层:OPENGPG加密 邮件传送层:SMTP-STARTTLS 值得一提的,该邮箱运营商号称没有WEBMAIL,邮件完全是端-端传输 当然不止是在某个邮箱,任何邮箱其实都可以进行公私钥邮件加密,只不过Thunderbird利用插件内置了这个功能,在1 TO 1的邮件传输中更容易和安全罢了。 如果想让秘钥变的更可识别,可以在秘钥中加载照片,如下图我在我的邮件中加载了我儿子的照片 以上是我利用qq邮箱向我的那个邮箱发送加密&&签名邮件,在客户端收到邮件截图 如果你觉得nothing much的话,那么我们还是看看WEBMAIL的发件箱吧 邮件的内容你是看不到,除非你有我邮箱的私钥。也就是如果我不慎丢失了邮箱账号和密码被人掌握并进入webmail,一样看不到内容。BTW,asc是我QQ邮箱的公钥文件。 关于Gpg4win的内容请参考我之前的博文 这封邮件是对方使用我的公钥加密后,我使用自己的私钥解密后看到的。 自动识别邮箱配置信息 Thunderbird的强大之处在于可以自动识别邮箱提供者的IMAP\POP\SMTP的设置地址,只要你输出正确的邮箱地址和密码就可以从Mozilla ISP数据库找到并帮助你自动设置,如下是我163邮箱的配置 当然如果不是大邮件提供商,可能就会找不到,需要手工添加。查找顺序是通过Moszilla ISP,如果找不到,就听过MX记录来寻找SMTP&&POP3&&IMAP地址。只要邮箱提供商支持SSL/TLS连接方式,就会默认设置为安全的加密连接,而不再需要参考邮箱提供商的配置方法了。简直是小白的福音。 垃圾邮件处理 我们每个人都会受到垃圾邮件。很多邮件要么是AD,要么是诈骗邮件。你可以通过设置来处理这些垃圾邮件,其中有一个自适应垃圾邮件过滤新版foxmail貌似使用的是一个数据库来识别,不可定制。 远程内容自动屏蔽 标准的电子邮件,应该就是文字干干静静的。但是有些电子邮件消息图像或视频会使邮件发送者了解你的一些隐私信息,如地址位置,阅读邮件的时间等。 所以您可以认为,对这些内容的访问行为和电子邮件地址是直接相关联的。这也是垃圾邮件经常包含远程图片的原因(也被成为“网络爬虫”)。 所以thunderbird默认屏蔽消息中的远程内容,保护隐私,我的某封邮件如下: 在阅读邮件中,由于屏蔽了远程内容,造成了邮件整体可视性变差,但是邮件安全隐私性确变的更好了。你在阅读邮件的时候,不会再被发件人收集你的隐私信息了。这对于诈骗邮件的防范、垃圾邮件的投放的防范性,都有了一定的提高。 强大的附加组件 foxmail的插件很少,几乎不能做功能扩展,相比Thunderbird的扩展功能就多很多了。比如:1、邮件延时发送功能这种功能一般需要到WEBMAIL上才有的 2、快速文件夹先利用消息过滤器将同类邮件移动至文件夹,然后利用quickfolder插件可以快速切换到指定目录阅读3、Emoji表情可以添加在邮件中添加有趣的Emoji表情发件箱截图收件箱截图 好吧,我不再讨论和对比一些其他邮箱工具的细节差别功能,这些可能仁者见仁。 以上就是我个人对Thunderbird工具使用的一些心得。 我并没有强调如何安装、汉化和插件扩展这些步骤。如果你不会使用,请参见官方技术支持文档或下面留言

优秀的个人博客,低调大师

向802.11ac技术智能迁移的八大考虑要素

进入2015年,亚太地区连续十年成为全球增长速度最快的区域。IDC的数据显示,亚太地区的自带设备(BYOD)领域在2015年将持续保持强劲增长。无线设备的繁荣景象已经进入了一个新时代,除了智能手机、平板电脑和笔记本电脑,物联网携传感器及智能手表、智能眼镜等可穿戴设备而来,进一步推动了人们对无线网络容量和密度的需求。IDC预测,到2020年底,物联网在全球将包括2120亿件物品。 随着自带设备(BYOD)以及物联网的持续演进,很多设备仅配有一个无线接口而不设置以太网连接或蜂窝连接。Wi-Fi连接已经成为许多用户和越来越多企业的选择。这就需要对企业的网络进行重大升级。 802.11ac是下一代无线,可以为用户和企业提供所需的更高的容量和密度。然而,无线网络的升级并不像过去那样简单,而是需要有一些不同的规划,要将新的要素考虑进去。本文将探讨在进行802.11ac 技术迁移规划时,需要考虑的八大要素。 1) 站点勘测 当更换有线网络或进行无线网络升级时,尤其是进行802.11ac技术迁移时,每个企业都需要对已有的无线网络进行详细的站点勘测。这将会为企业提供一个基准,使企业有效识别网络和信道的死角。此外,为了充分获得802.11ac技术的性能,接入点的设置需要彼此靠近。 2) 平面图 当完成站点勘测之后,企业应该使用诸如Ekahau的站点规划工具,利用建筑物的平面图创建一个详细的位置图以确定接入点的位置。 许多因素可以影响射频,因此,分析可影响的因素就像盖大楼一样重要,比如,需要考虑使用多少混凝土与水泥板、使用多少金属、怎样分配小隔间和开放空间等。 3) 制定接入设备清单 随着越来越多的用户采用创新的方式,将其个人及职场生活越来越多地置于移动设备之上,亚太地区的工作环境正日益快速变化。这种移动设备的转型和使用新模式正迫使企业不再询问他们是否需要移动网络,而是询问他们该如何使用移动网络。在进行802.11ac 迁移之前,每一个企业都应该清楚会有多少设备将接入无线网络。也应着重考虑未来几年的潜在增长。这将帮助企业有效规划无线网络的增长和扩展。 4) 测量用户密度 为了确定一个区域接入点的最佳数量,IT团队也应尽可能的规划出给定区域内雇员或客户密度。例如:礼堂或运动场的用户密度绝对比大厅或办公室的用户密度大。这将会给网络带来极大的影响。此外,用户密度会根据一天内不同的时间发生改变。学校的礼堂会在晚上举办活动,学生和家长会被邀请参加,这将增加用户密度。 5) 审核有线网络 当考虑进行802.11ac 技术迁移时,对有线网络进行审核至关重要。这将帮助企业确保其拥有足够的以太网端口来支持新部署的接入点。事实上,802.11ac接入点也许安装有多个以太网端口来分担日益增长的射频通信流量。除此之外,企业还应该预留交换机端口及电源。企业应该确保一个接入点至少拥有两个以太网端口。同时,企业也应该核对电源需求。 6) 了解应用 由于应用程序对有线和无线网络产生极大的影响,企业应获得运行在网络上的应用程序的完整可视性。这是由期望无缝服务和性能的用户所推动的。了解应用程序的特性能有效帮助企业规划无线网络。一些网络应用例如:VoIP和视频是延迟敏感型,而一些需要更高带宽,例如YouTube, Netflix, Hulu等内容流媒体网站。他们在数据中心内被集中,并通过园区进行发布,或在云中托管,或跨多个地区进行发布。当看到这种情况时,企业还应该考虑上游对下游应用的使用。这也许在一个方向或另一个方向上更多。如同设备一样,企业还应该考虑未来五年内在哪些领域内的应用增长较多,以便为无线网络增长和扩展进行有效规划。 7) 选择有经验的供应商 很多供应商对无线产品都很陌生。因此,对企业来讲,选择一个具有丰富经验的供应商至关重要。他可以帮助企业有效地设计、部署以及优化最复杂的网络。另外,企业还应该确保供应商拥有可以为企业特定的业务需求提供合适服务的全面的支持方案。 8) 进行部署后站点勘测 一旦802.11ac 安装完成,企业应确保进行一个最后的站点勘测以确保必须实现预期及规划的全覆盖。这样,他们可以确保他们为未来的安装或网络的变化有一个已建立的基准。 作者:极进网络中国区技术总监石奇海 来源:51CTO

优秀的个人博客,低调大师

戴尔公司向SAP HANA明确示爱 发布全新系统设计方案

Micahel Dell在最近的发言中给出了戴尔公司的主要精力将放在系统设计层面的说法,但语言毕竟无力。今天戴尔公司正式推出一款设备,专门面向运行有SAP HANA方案的企业客户。 这套戴尔-EMC SAP NANA v4.1认证系统属于对戴尔旗下原有SAP分析数据库平台向外扩展部署系统的更新版本,旨在服务于规模更大的企业客户。产品基于戴尔公司的PowerEdge R930服务器硬件,其曾于今年6月利用英特尔发布的最新至强E7 v4处理器家族进行了一轮升级。 戴尔-EMC还向客户们宣称,这是一台"速度最快的SAP工作负载运行服务器",并表示其基准测试速率可达到每小时33万500次高级导航步骤,SAP Business Warehouse高级混合型类似运算则可达20亿条。 即将于下个月推出的为戴尔-EMC认证系统for SAP HANA Edge,这套平台旨在简化中小型企业客户的数据分析处理流程。根据今年早些时候在SAP公司SAPPHIRE NOW大会上披露的消息,这将是一套运行有SAP HANA Edge版、高级版以及SAP Predictive ANalytics的全面集成化设备。 为了进一步表达对SAP的深厚感情,戴尔-EMC还发布了一套参考架构,旨在帮助各制造商通过对运营数据的分析实现预测性制造--这实际是一类物联网用例。 这套参考架构能够将戴尔-EMC的Edge Gateway设备、来自ifm efector的传感器以及运行有SAP预测维护与服务(简称PdMS)的戴尔-EMC认证系统for SAP HANA加以结合,旨在消除不必要的维护及开发故障早期诊断步骤,从而削减运营成本。 以上最新发布内容似乎预示着戴尔-EMC不仅将继续在硬件与软件层面有所建树,同时亦在逐步转型为一家服务于企业客户的一站式集成化解决方案供应商。 不过需要注意的是,其竞争对手甲骨文之前也曾经选择过同样的发展道路。此类产品的利润率比标准设备更高,戴尔公司也需要这样的入账以弥补630亿美元收购EMC带来的亏空。 原文发布时间为:2016年9月22日 本文作者:刘新萍 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

优秀的个人博客,低调大师

智慧城市定向赛开赛 30个体验点带你"跑"向2050

昨天上午,上海智慧城市定向赛在杨浦区创智天地正式开赛。全市29支队伍近200人参加,共设置了9条线路、30个智慧城市体验点,分布在全市10个区。而本次定向赛最大的亮点是,这30个点位涵盖了上海智慧城市建设各方面的成果。 智慧城市的成果和理念,最先影响的是居民日常社区生活的方方面面。在长征智慧社区体验中心,市民吴先生体验到了“智慧社区”的微服务平台,插入社区居民卡后,可在“社区政务”一栏查看社区热点新闻,下载社区周边商铺的优惠券到店消费,给交通卡充值,还可进行日常生活费用的缴纳。而位于张江科技园区宝山创意园内的“上铺青年共享社区”,包含了智能锁系统、手机充值、智慧水电抄表系统、APP订房服务等功能,从各个方面为居住体验考虑,让年轻人能够把自己的更多精力放在梦想打拼上。 在洛克公园智慧运动场,一场实时直播的篮球赛正在激烈进行。“智慧运动场”在全国100多座城市里为大众竞技体育运动提供直播服务,实时剪辑精彩视频和数据统计,赛后第一时间推送球队集锦和个人集锦,让普通人享受明星球员的待遇。 而坐落于真北路、怒江北路的红星美凯龙商场内的“公元2050/2500未来生活体验馆”,则让体验者一探2050年的生活。“MR互动餐厅”可让分隔两地的家人朋友“面对面”地就餐,未来厨房可以控制联网的家电产品以及家庭能源,并收集家庭成员的健康信息和食品库存情况,进而提出合理适宜的菜单。据悉,2016上海智慧城市体验周自本月1日开幕以来,已举办了包括本次定向赛在内多项精彩活动,接下来还有近40场活动将在全市范围内开展。 本文转自d1net(转载)

优秀的个人博客,低调大师

谷歌年底前将向开发者开发聊天机器人

谷歌周二在旧金山的发布会上表示,开发者很快将可以开发聊天机器人,与谷歌助手和新推出的谷歌设备互动。谷歌助手首席工程师斯科特·哈弗曼(Scott Huffman)表示:“谷歌助手将是我们下一个快速发展的开放生态系统。”开发者将可以通过Actions on Google去开发与谷歌助手互动的聊天机器人,这一工具将于12月初推出。谷歌还将于明年推出一款SDK(软件开发工具包),使非谷歌设备支持谷歌助手。 谷歌在周二的发布会上推出了Daydream虚拟现实设备、Pixel和Pixel XL手机、谷歌WiFi路由器、Chromecast Ultra电视棒,以及与亚马逊Echo智能音箱竞争的Google Home。超过30万人通过YouTube观看了谷歌的发布会。 谷歌助手将可以与Android智能手表、Allo聊天应用、Google Home,以及支持谷歌助手的其他设备通信。 目前,通过谷歌助手,用户可以搜索网页或是安排日程。新的聊天机器人将带来额外功能,例如通过Uber叫车,或是与智能家居设备通信。 谷歌CEO桑达尔·皮查伊(Sundar Pichai)表示,PC、网页和移动设备在过去10年中对计算的发展影响最大。而在未来10年中,人工智能将是计算发展的中心。随着人工智能时代的到来,谷歌助手将成为用户在各类设备上的助手。 皮查伊表示:“我们的目标是为所有用户开发个性化的谷歌。” Actions on Google最初的合作伙伴包括订餐服务OpenTable、健康顾问服务WebMD、面向物联网的IFTTT,以及CNN和CNBC等媒体合作伙伴。 Actions on Google将可以接受两种请求,包括直接操作和会话式操作。 哈弗曼表示:“直接操作适用于家居自动化、媒体请求和通信。例如我可以要求,‘打开客厅灯光’,随后飞利浦Hue智能灯泡就会开启。” 会话式操作的情况相对复杂。“例如我需要通过Uber打车,那么智能助手将可以把Uber引入会话。Uber可以问,‘你想去哪里?’我就可以告知目的地。Uber还可以问,‘你想再打一辆UberX吗?’或许我的回答是‘这次我们需要一辆UberXL’。在你确认叫车之后,Uber可以提示,‘你的司机将在3分钟内到来,车辆是黑色的雪佛兰Suburban。’” 通过API.ai开发的聊天机器人和虚拟助手将可以集成至谷歌助手,不过API.ai并不是开发谷歌助手聊天机器人的唯一方式。哈弗曼表示,已有数千开发者通过API.ai开发了会话式互动系统,这将带来与谷歌助手之间的会话式功能。但谷歌还将支持其他的会话服务开发工具。 上月,即推出聊天应用Allo的前一天,谷歌宣布收购API.ai。已有超过6万开发者使用这一平台训练机器学习,开发聊天机器人和虚拟助手。 本文转自d1net(转载)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册