2020年2月14日星期五

只需10分钟!就能用Flask,Docker和Jenkins部署机器学习模型



YTHunder是一个免费增加YOUTUBE观看次数的网站, 使用到现在三年多了,每天10万人同时在线看对方的影片。 而YTHunder可以提供的服务有: YOUTUBE观看次数提升,YOUTUBE订阅增长,YOUTUBE喜欢数上升。赶快注册使用吧。



只需10分钟!就能用Flask,Docker和Jenkins部署机器学习模型

摘要: 一杯茶的功夫部署完成机器学习模型!

在生产环境中部署机器学习模型是数据工程中经常被忽视的领域。网上的大多数教程/博客都侧重于构建、训练和调整机器学习模型。如果它不能用于实际的预测,那么它又有什么用呢? 接下来了解一下有哪些部署选项吧:

评估选项

在生产中部署机器学习模型时,有多种选择。其中一种流行的方法是使用Azure Machine Learning Studio等云服务设计和训练模型,这些服务具有使用拖放工具构建和训练模型的能力。此外,将这些模型作为Web服务发布只需点击几下即可。此类设置的附加优势在于,该部署会随着应用程序使用量的增加而自动扩展。
虽然短时间看起来很方便,但从长远来看,这种设置可能会有问题。当我们想要将应用程序从第三方云平台迁移并将其部署在我们的服务器上时,就有难度了。由于这些工具与其各自的云平台紧密集成,因此这种设置不可移植。此外,随着应用程序的扩展,云计算的成本可能是一个令人望而却步的因素。

如果我们构建自定义REST-API作为机器学习模型的终点,则可以避免这些问题。特别是,本文将使用基于Python的Flask Web框架来为模型构建API,然后将这个flask应用程序整齐地集成到Docker映像中来进行部署。Docker显然适合解决这个问题,因为应用程序的所有依赖项都可以打包在容器中,并且可以通过必要时刻简单地部署更多容器来实现可伸缩性。这种部署架构本质上是可扩展的、成本有效的和便携的。

Docker:Docker是一种开源的容器化技术,允许开发人员将应用程序与依赖库打包在一起,并将其与底层操作系统隔离开来。与VM不同,docker不需要每个应用程序的Guest虚拟机操作系统,因此可以维护轻量级资源管理系统。与容器相比,虚拟机更重量级,因此容器可以相对快速地旋转,同时具有较低的内存占用,这有助于将来我们的应用程序和模型的可伸缩性。

Jenkins:Jenkins可能是最受欢迎的持续集成和持续交付工具,大约拥有1400个插件,可自动构建和部署项目。Jenkins提供了一个在其管道中添加GitHub web-hook的规定,这样每次开发人员将更改推送到GitHub存储库时,它都会自动开始为修改后的模型运行验证测试,并构建docker镜像来进行部署。
ngrok:ngrok是一个免费工具,可将公共URL传送到本地运行的应用程序它会生成一个可以在GitHub web-hook中用于触发推送事件的URL。
Flask:Flask是一个用Python编写的开源Web框架,内置开发服务器和调试器。虽然有许多可以替代Web框架来创建REST API,但Flask的简单性备受青睐。

部署

你可能想知道"我进入了什么样的环状土地?"但我保证接下来的步骤将变得简单实用。到目前为止,我们已经了解了部署体系结构中的不同组件以及每个组件的功能的简要说明。在本节中,将介绍部署模型的详细步骤。

部署过程可以暂时分为四个部分:构建和保存模型、使用REST API公开模型,将模型打包在容器内以及配置持续集成工具。
在继续下一步之前,使用以下命令将GitHub存储库复制到本地计算机。 此存储库包含所有代码文件,可用作部署自定义模型的参考。

git clone git@github.com:EkramulHoque/docker-jenkins-flask-tutorial.git 

注:虽然以上提到的步骤适用于Windows操作系统,但修改这些命令以在Mac或Unix系统上运行应该是很简单的。

训练和保存模型

在本例中,使用来自scikit-learn的鸢尾花数据集来构建我们的机器学习模型。在加载数据集后,提取用于模型训练的特征(x)和目标(y)。为了进行预测,先创建一个名为"labels"的字典,其中包含目标的标签名称,这里将决策树分类器用作模型。你可以在sklearn随意尝试其他分类器 ,通过调用模型上的方法来生成测试数据的预测标签。
我们使用pickle库将模型导出为pickle文件,并将模型保存在磁盘上。从文件加载模型后,我们将样本数据作为模型的输入并预测其目标变量。

#!/usr/bin/env python # coding: utf-8 import pickle from  sklearn import  datasets iris=datasets.load_iris() x=iris.data y=iris.target  #labels for iris dataset labels ={   0: "setosa",   1: "versicolor",   2: "virginica" }  #split the data set from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=.5)  #Using decision tree algorithm from sklearn import tree classifier=tree.DecisionTreeClassifier() classifier.fit(x_train,y_train) predictions=classifier.predict(x_test)  #export the model pickle.dump(classifier, open('model.pkl','wb'))  #load the model and test with a custom input model = pickle.load( open('model.pkl','rb')) x = [[6.7, 3.3, 5.7, 2.1]] predict = model.predict(x) print(labels[predict[0]]) 

构建REST API:

Flask web框架帮助我们创建与模型通信所需的HTTP端点,我们使用pickle.load()方法从磁盘读取保存的模型。

Flask提供了一个route()装饰器,它告诉应用程序哪个URL应该调用相关的函数。它接受2个参数,即"rule"和"options"。 'rule'参数表示绑定到函数的URL,'options'是要转发到Rule对象的参数列表。
在示例中,'/ api'URL绑定到predict()函数。因此,当我们发出POST请求时,它会调用以JSON格式接收特征向量的函数。然后将"特征"向量传递到模型中,该模型对"特征"向量进行预测,然后以JSON格式返回标签。

请注意,Flask类的run()方法是在本地开发服务器上运行应用程序。在这里,将主机传递为'0.0.0.0',以便在docker容器中公开它。你可以在docker配置设置中查看更多相关信息。

 from flask import Flask, request, jsonify import json import pickle import pandas as pd import numpy as np  app = Flask(__name__)  # Load the model model = pickle.load(open('model.pkl','rb')) labels ={   0: "versicolor",      1: "setosa",   2: "virginica" }  @app.route('/api',methods=['POST']) def predict():     # Get the data from the POST request.     data = request.get_json(force=True)     predict = model.predict(data['feature'])     return jsonify(predict[0].tolist())  if __name__ == '__main__': app.run(debug=True,host='0.0.0.0') 

打包

为了允许Docker托管我们的API,我们需要指定一组允许Docker构建映像的指令。这组指令可以保存在Dockerfile中,该文件包含了可在命令行上调用来创建Docker镜像的所有命令。
现在开始创建Dockerfile,先打开文本编辑器并将其另存为"Dockerfile",不带后缀或前缀。

FROM ubuntu:16.04 FROM python:3.6.5 RUN apt-get update -y && \     apt-get install -y python-pip python-dev  # We copy just the requirements.txt first to leverage Docker cache COPY ./requirements.txt /app/requirements.txt  WORKDIR /app  RUN pip install -r requirements.txt  COPY . /app  CMD python /app/model.py && python /app/server.py 

工作目录现包含以下文件:

  • model.py用于训练和构建模型;
  • server.py来管理请求和服务器;
  • Dockerfile包含docker镜像的说明;
  • requirements.txt包含API所需的库;

持续集成

到目前为止,我们已经创建了Flask API,完成了一个Dockerfile并将项目推送到git存储库中。作为先决条件,需要安装这3个应用程序--Docker,Ngrok和Jenkins。本节中的视频将演示之前在架构图中提到的整个过程。

结论

在这篇博客中,我们深入研究了使用Docker,Flask和Jenkins部署机器学习模型的过程。 我们希望对你在生产中部署自己的机器学习模型时有所帮助。可以在此处找到本文中提供的代码的GitHub。



本文作者:【方向】

阅读原文

本文为云栖社区原创内容,未经允许不得转载。

AI换脸朱茵变杨幂!但上次是用在成人电影女星,轰动国外...



YTHunder是一个免费增加YOUTUBE观看次数的网站, 使用到现在三年多了,每天10万人同时在线看对方的影片。 而YTHunder可以提供的服务有: YOUTUBE观看次数提升,YOUTUBE订阅增长,YOUTUBE喜欢数上升。赶快注册使用吧。



AI换脸朱茵变杨幂!但上次是用在成人电影女星,轰动国外...

虽然遭到全网封禁,但人工智能深度换脸技术——deepfakes并没有淡出人们的视野。近日,这项技术还伸向了国内电视剧,这次"中招"的是女明星杨幂。

大家可能都记得杨幂曾出演过《神雕侠侣》里的"郭襄"一角,但你看过她演《射雕英雄传》里的"黄蓉"吗?

杨幂版黄蓉

从上面几张视频截取的动图可以发现,除了脸部五官是杨幂的,发型和服饰是原演员朱茵的扮相。这条视频最初由哔哩哔哩网站上一位用户名为"换脸哥"的博主上传,不过目前这条视频在哔哩哔哩网站已经失效。

这条视频释出后,在网上引发了激烈的争论,"将朱茵的黄蓉换成杨幂的脸"这个话题在微博上的浏览量甚至达到1.2亿次。

有人认为这是对原演员的不尊重,甚至会导致部分流量明星可以不用担心演技问题,疯狂轧戏。只要先用替身完成拍摄,最后再用AI技术进行换脸,省时又省力。还有不少人认为这严重侵犯了隐私和肖像权。

实际上,这并非deepfakes第一次在网上引发争议。在这之前,曾有人用deepfakes将"神奇女侠"盖尔·加朵的脸被贴在了一个成人电影女主的脸上,当时新闻一出在网络上引起了轰动。

deepfakes是如何做到换脸的?

deepfakes背后的技术并非高深难懂,简单来说,它是一个通过机器学习技术搭建的系统:可以让机器学习女明星的面部特征,最后合成到了影片的面部。

deepfakes搭建的系统可以通过谷歌图片搜索、网络图库、Youtube视频等途径获取的素材,利用这些素材通过TensorFlow等多个开源库,训练深度学习网络,经过反复训练后,系统就会自动替换脸部信息。学习样本越多,生成脸谱图的还原度就会越高。

最初,在Reddit网站上,一位用户名为"deepfakes"的网友发布了自己制作的换脸视频,将成人影片的女主角换成了神奇女侠,短时间吸引了大量的人气,广大网友顺理成章地把他的网名作为这项技术的命名。

没过多久,同名算法在GitHub开源,由deepfakes技术制作的视频在网上也越来越多。杰西卡·阿尔芭、艾玛·沃特森等好莱坞明星纷纷被"换脸"。

好莱坞影星纷纷"中招"

除了Reddit上的讨论外,在2018年1月,还有人推出了Windows程序的FakeApp,这大大降低了deepfake的使用门槛,它允许用户很轻松地自制换脸视频,即使你没有任何人工智能方面的知识。

但是由于许多用户将deepfakes技术用于制作虚假视频,例如伪造政治家公开演讲,制作著名女星色情内容等,导致这项技术声名狼藉。

之后,deepfakes便被全网封禁:Reddit讨论版被删除,GitHub开源代码也被清除。成人视频网站上也删掉了用deepfakes算法做的视频。FakeApp的官网目前也已无法使用。

不过,澎湃新闻在网络上搜索deepfakes时,仍在论坛上发现了相关的下载链接和安装教程。

换脸让人脸识别技术也无法识别?

没有人工智能背景的人都能做到换脸,并且能以假乱真,这让部分人担心这项技术会不会被不法分子用与进行诈骗等行为。诸如杨幂出演1994版《射雕英雄传》,川普撞脸希拉里,好莱坞女影星出演成人电影等视频的流出,则让人担心肖像权和个人隐私安全问题。

希拉里撞脸川普

deepfakes制作的视频和图片,一般人如果用肉眼无法识别,那么利用人脸识别技术能否识破呢?

人脸识别公司云从科技技术人员告诉澎湃新闻(www.thepaper.cn),人脸识别技术能否识别deepfakes制作的内容,要看制作的视频和技术应用在什么场景。"因为现在不管是人脸还是人体都是往3D化在走,这种通过屏幕呈现的东西已经可以被活体检测技术检测出来了,不管是目前应用比较广的红外双目,或是正在推的3D结构光与深度摄像头的技术(TOF)。"

对于一项技术来说,本身并没有对错,关键看掌握这项技术的人如何应用。例如,好莱坞的一些数字特效公司就对这项技术非常感兴趣,这种将一位演员的面容"移植"到另外一个身体上的技术,对于他们来说,可以提高后期制作的效率,并且能节约成本。

这次杨幂出演"黄蓉"的视频,除了引发粉丝讨论流量明星再也不用担心演技的话题外,从另一个角度看,其实也给公众提了一个醒。"换脸哥"在自己的主页上也给出了公告:AI换脸是一种新技术,大家对它的认识还不够,希望让更多朋友了解 , 否则将来有人伪造明星负面内容的视频时 , 将会给公众人物带来更大的损失。这些作品没有任何恶意,也并非商业用途,如果认为这些内容有损您的权益,请私信联系,在下一定及时处理。

未来,技术使用门槛会越来越低,公众对于网上流传的视频和图片或许更需要一双"火眼金睛"。



为了帮助大家让学习变得轻松、高效,给大家免费分享一大批资料,让AI越来越普及。在这里给大家推荐一个人工智能Python学习交流群:705673780欢迎大家进群交流讨论,学习交流,共同进步。

当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。

但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以拥有有效资源还是很有必要的。

2020年2月13日星期四

to SEOer:建立 Backlinks 最重要的心态调整



YTHunder是一个免费增加YOUTUBE观看次数的网站, 使用到现在三年多了,每天10万人同时在线看对方的影片。 而YTHunder可以提供的服务有: YOUTUBE观看次数提升,YOUTUBE订阅增长,YOUTUBE喜欢数上升。赶快注册使用吧。



外链,或者叫反向链接——Backlink ——是做 SEO 不可或缺的一部份,而且获得外链是不可缺少的技能。

我们去获得外链的这个行为,国外叫Outreach,就是主动找一些站长,问他们能否提供链结,市面上也有公司是专门提供这类服务。很多人表示很难得到外链,原因通常都是 "他们不回复!"

其实大家有没有想过,他们为什么要回复你?或者为什么他们不愿意给你链接?

 

以下是很多人在外链建设时常犯的错误﹕

  1. 太急于要求链结
  2. 你没有值得被连结的内容
  3. 你的接触策略 (Approach strategy) 很一般,都是批量模板化的
  4. 你自己也没有链接到其他网站

 

不仅是国内,其实外国都会有这个问题。很多人写了文章,然后发一个电邮要求连结。

说实话,我自己的英文网站每天都会收到 2 至 3 封类似的邮件。

但,我 99% 均不会回应,因为那些站长基本都犯了上面的错误。

是我们的语言不够地道吗?还是说邮件换了模板就行了?

其实这些都是表明的,最深层的,是我们要转化外链建设时的心态。

建立外链的心态

你要明白,大部份站长都是非常忙碌的,可能是兼职在做的网站,有自己关注的事,要写好内容,正常都不会特意关注其他有的没的网站。

或者再说得白一点,你对他是没有价值的!

 

我以前帮公司及自己做外链的过程中,首要目标是建立关系,这才是外链的根本。

站与站之间的链接关系,和我们人与人直接的社交关系不是一个道理吗?你对一个异性第一次见面,就说能不能结婚,你说这可行吗?

关系未建立便要求链接肯定不会成功的!

 

另一个经常见到的问题在于 – 你没有值得被链接的内容。

你说有价值的内容创作起来好费劲,好久才能出一篇文章。那你应该在写作中作一个分配,一部份是为你的访客而写,一部份是为站长写的。

为何这样重要呢?

因为很多访客其实没有网站的,他们不能提供任何反向链结给你。反之,若你的内容是针对有网站的人而写,你才有机会得到外链。

那什么内容才是"为站长写呢?"

举个例子,我自己一个关于健康饮食网站,我就研究大量相关网站,例如减肥健身、美容 KOL 的博客等等。我发觉他们大都乐意链接到提供食品详细营养资料的网站。于是我写了详细分析不同谷物营养成分的文章(你不知道我准备了多久),结果一个月获得了超过 10 条外链,DA60以上,邮件回复率有10%。

但我也有持续更新内容给访客看,比如各种健康食谱。

所以我的内容线是分两大条的。食谱给普通访客看,一些有深入研究的文章给有一定专业知识的铁粉和其他站长看。

不妨站在一个站长的角度想一想,什么内容值得被链接?他们会想令自己网站的内容更完整、更专业吧。(公众号:yestupa)

 

为什么外链建设这么难?

另外一大原因就是因为它难以复制!

我经常说,内容很容易被抄袭,事实上我图帕先生的文章内容经常被人一字不改抄到其他网站,也没有声明原文出处,甚至把作者写成了自己。

一个例子就是我之前写的Shareasale商家注册教程,被很多人直接搬走,还在其他社区投稿(这也是为什么最近我的文章都加水印了),排名还要比我靠前。而且,像这些到处搬运内容的人,自己凑够一定的"粉丝"后,就什么开班、开知识星球,割韭菜。

所以你确定你会跟他们学到真正的SEO?

但惟独外链建设的方法难以复制,因为如果你没实操过,你永远不知道会出现什么状况,再者,有谁能复制你跟你男/女朋友之间感情?

 

最后根据上面说的四大问题,逐一击破你的固有心态:

  1. 你要想跟站长建立好关系,可以先从他的小粉丝做起,在社媒、邮件给他打call;
  2. 把最好的内容展示给站长,经验告诉我,如果内容足够好,可以跳过第一条;
  3. 认认真真写请求外链的邮件,建议大家看看一本叫《商务英语写作实例》的书(具体叫啥我也忘了)

 

Peace Out!

2020年2月9日星期日

你还在靠写作赚钱吗?现在vlog也能赚钱了



YTHunder是一个免费增加YOUTUBE观看次数的网站, 使用到现在三年多了,每天10万人同时在线看对方的影片。 而YTHunder可以提供的服务有: YOUTUBE观看次数提升,YOUTUBE订阅增长,YOUTUBE喜欢数上升。赶快注册使用吧。



你还在靠写作赚钱吗?现在vlog也能赚钱了

vlog是什么?相信这是大多数人点开这篇文章的困惑。

图片发自简书App

vlog起源于youtube。2012年,youtube上出现了第一条vlog。截至2018年01月19日,youtube平台上每个小时就会诞生2000条vlog作品。

vlog的全称是video blog,意思是视频博客。通俗来解释,就是以手机或相机等摄影道具拍摄记录自己的日常,制作的短视频(3-10分钟左右不等。),最后上传到网络。来获取关注度。

有粉丝就有流量啦。

那么,我们既然可以靠写作来表达思想或者赚钱,将文字变成视频有何不可?并且这也将是以后的一个大趋势——短视频的天下。

遗憾的是现在大部分的国人关于vlog还不是很了解,但是有玩B站(bilibili)的人就知道,B站就是国内的youtube,PC端vlog发布的地方。

那么在B站发布vlog是如何赚钱的呢?

钱的来源有三,一可以是观众的打赏就是投币或充电;二可以是达到了某个指标就可以加入B站的激励计划,靠视频点击量赚钱;三可以是成为大的up主,就会有广告商主动上门,签订广告费。

拍摄工具很简单,手机和自拍杆就行,对于有条件或者讲究的人可以用相机和三角支架来进行优质得拍摄。

拍摄内容,一、日常生活的琐事,关键是有看点。像欧阳娜娜就是记录她的留学生活和少女日常。二、干货。比如手账的制作过程,学习方法,好物的安利。三、真实、真诚。B站有一个17岁的少年,素颜出镜,对着镜头,侃侃而谈他的职高学校。可以看出,只要真诚就算不是什么名牌大学的学生或者是明星,也能获得众人的关注。四、搞笑段子。最出名的要数papi酱了,对于我来说就算一下午刷她的视频都不觉得腻歪。

拍摄好的视频需要后期的处理,将内容浓缩成短视频。作为刚开始的小白,建议手机上一般的视频剪辑软件就可以了。

一开始制作的时候不要太追求完美主义,先做出来再说,根据观众的反馈或者自己的学习慢慢做调整。这样更容易上手。

然而,网上也有些言论说,vlog是不可复制的。我觉得这是坐井观天。在B站搜一些内容,都会出来差不多的vlog,并且点击量也不差。

当然,B站也是一群爱好者的集聚地。

阿里巴巴资深技术专家无相:我们能从 InteliJ IDEA 中学到什么?



YTHunder是一个免费增加YOUTUBE观看次数的网站, 使用到现在三年多了,每天10万人同时在线看对方的影片。 而YTHunder可以提供的服务有: YOUTUBE观看次数提升,YOUTUBE订阅增长,YOUTUBE喜欢数上升。赶快注册使用吧。



阿里巴巴资深技术专家无相:我们能从 InteliJ IDEA 中学到什么?

本文来源于阿里巴巴资深技术专家无相在内网的分享,阿里巴巴中间件受权发布。

最近因为工作的关系,要将 Eclipse 的插件升级为 IDEA 插件。升级过程中,对 IDEA 插件做了些学习和研究,希望通过本文,对"为什么收费的 InteliJ IDEA 会比免费的 Eclipse有着更好的用户口碑"这一现象,提供些个人的思考。

通过这篇文章,您将了解到心流与人体工效的重要性,并使自己变得更强大,文章将从以下几点展开:

  • InteliJ IDEA 当前的市场情况与表现;
  • IntelliJ IDEA 成功的原因;
  • IntelliJ IDEA 在 IDE 设计器领域胜出的两个关键点;
  • IntelliJ IDEA 对现实工作的启示;
  • 充分利用 IntelliJ IDEA 插件,使自己变得更强大;

InteliJ IDEA 的市场情况与表现是如何?

2012年开始,IntelliJ IDEA 便迅速崛起,到了2016年,就占领了开发者市场的 46% 分额。直至2018的最新结果:IntelliJ IDEA 的市场份额增长到了 55.4%,显然赢得了18年 Java 领域的 IDE 王者之战,甚至还有重构的大师 Martin Fowler 在他著名的blog上,对 IntelliJ IDEA 赞誉有加。而且根据 IDEA 的产品满意度调查,其满意度竟高达 98%。

从外国学者角度,分析 IntelliJ IDEA 为何成功

很多国外学者也研究了 IDEA,它的成功之处归结起来有以下两点:

1. 产品功能上的成功:

  • 代码的智能提示: IDEA 自主开发语言解释器,做了深度的静态分析,让编程更加智能与高效,这是一项杀手级的特色功能;
  • 没有保存按钮:每一个你想使用功能,都有快捷键;
  • 性能非常好,用户的体验及其流畅;
  • IDEA 不仅对核心插件进行维护, 还提供了优秀的工具集,给予用户一致的UX范式体验;

2. 营销策略上的成功:

  • 以产品为核心和根本,以 "更好用" 的设计理念和原则打败了很多竞争者;
  • IDEA 没有销售团队,但是霸气的营销口号体现了其内容营销的核心逻辑:"Try it. Test it. If you feel its better, use it" ,没有多余的营销,真正做到用产品说话;

相信大部分程序员,对 IDEA 的特性已经非常熟悉了。 接下来,我们将分析其真正强大的原因。

在 IDE 设计器领域里,IntelliJ IDEA 为何能胜出?

IDEA 的风靡与崛起,在于它遵从了两个关键的设计哲学:

1. 不打断心流

Every aspect of IntelliJ IDEA is designed with ergonomics in mind. IntelliJ IDEA is built around the idea that every minute a developer spends in the flow is a good minute, and things that break developers out of flow are bad things. Every design and implementation decision considers the possibility of interrupting developer's flow and seeks to eliminate or minimize it.

(这句话美得我不想翻译。)

"Creative Flow" or just "Flow" is a state of mind where you feel evenly attuned, and focused on the task at hand.

创造心流是一种思考状态,是你感觉平和或专注于手头的任务的时刻,通俗的理解就是当你沉浸一件事时,有一种忘记时间与空间的感觉。心流会让你处于你最佳的意识状态,McKinsey 在2010年的研究表明,当你处于心流状态,你的工作效率比非心流状态下的工作效率提高 500%。

通过这种设计理念的学习,不禁畅想:如果越来越多的阿里产品,像IntelliJ IDEA的的产品体验一样,让人处于心流,高效完成任务,整体的生产效率将会成倍提升。

2. 人体工效学

IntelliJ IDEA 宣称用人体工效学来设计IDEA, 即 "The capable and ergonomic IDE for JVM"。

我们简要地科普一下人体工效学:这是一门专注研究人体舒适,通过产品设计减少疲劳、不舒适的科学。在家居设计和人体工程学上,都会重点考虑这种设计理念,让人们在使用时感受到更舒适、更高效率与更少的压力。

接下来例举两个人体工效学的经典例子:

1. 客服耳机

如果没有佩戴式耳机的出现,客服同学估计会疯掉。

1. 一撕得的包装箱

一撕得的包装纸质量、胶水质量、人体工效学的拉链式设计,这三种要素在纸箱界都是业界第一。

人体工效学对软件设计的提示:

  • 统一的UX风格设计;
  • 将复杂任务变成简单任务;
  • 将长任务分解成短任务;
  • 因为人类的有记忆力的限制,所以要适当提供提醒,提供关键的辅助给用户,让他们完全沉浸在核心工作中,不被打断。

(更多提示,可以看参加文献的第5篇文章。)

如果想体验一下人体工程学的设计,IDEA的快捷键与无保存按钮,你立刻就会明白。

对我们现实工作有哪些启示?

经过团队的讨论,我们认为 IDEA 的增长飞轮在于:优秀的设计理念,卓越的产品体验,InteliJ IDEA 开放的社区,免费与专业收费并行的商业模式。IDEA 不断更新迭代的路径就是用更好的产品体验,吸引到更多的用户,用户贡献了更多的利润,用来吸收更多的优秀人才,一起开发更好的产品。这给予我们现实工作的指导意义,产品要回归至以人为中心的设计理念:

  • 心流的提示:罗列出用户的任务,让用户尽可能处于心流状态,消灭导致任务低效的因素;
  • 人体工效学提示:我们在设计产品时,要充分考虑用户使用产品的场景,这是一个一体化的设计,就像星环产品设计。写代码只是软件研发的一环,需求创意提出、需求研发上线、业务商业分析这些整体环节都要考虑,让用户舒适地完成任务;
  • 智能提示:采用人工智能来提升任务的完成效率。IntelliJ IDEA的智能代码提示,是一个经典的案例;

最后:我个人会将心流与人体工效学的设计思想,融入至技术产品设计过程中,期待我们团队的实践篇。

小编推荐两款创造心流的 IDE 插件:

1. 热替换利器:JRebel

一款热部署插件,帮助开发者在项目处于运行状态下任意修改 Java 文件并动态反馈到运行的项目中。点击了解更多

2. 开发测试必备部署神器:Cloud Toolkit

帮助开发者更高效地开发、测试、诊断并部署应用,利用此插件,能够方便地将本地应用一键部署到任意机器(了解更多:体验链接)。

参考文献

  1. https://www.javaworld.com/article/3114167/development-tools/choosing-your-java-ide.html
  2. https://www.youtube.com/watch?v=Eyy9ddRgMX8
  3. http://catalyticcolor.com/scientific-research-about-flow/
  4. https://en.wikipedia.org/wiki/Flow_(psychology)
  5. http://ergo.human.cornell.edu/ahtutorials/interface.html

本文作者:无相,阿里巴巴资深技术专家,多年担任汇金平台的架构师,是阿里tbbpm工作流引擎的作者。曾在阿里云负责过云产品 0 至 1 的商业化,最近几年在负责阿里的店铺&详情等系统的中台建设。目前,新零售业务平台正在招聘优质架构师,欢迎投简历到 wuxiang#alibaba-inc.com 邮箱。



本文作者:中间件小哥

阅读原文

本文为云栖社区原创内容,未经允许不得转载。

2020年2月6日星期四

怎么上YouTube?-匿名用户的回答:因为国内的网是上不了Youtube的,现在只剩下两种办法了。第一种是直接出...



YTHunder是一个免费增加YOUTUBE观看次数的网站, 使用到现在三年多了,每天10万人同时在线看对方的影片。 而YTHunder可以提供的服务有: YOUTUBE观看次数提升,YOUTUBE订阅增长,YOUTUBE喜欢数上升。赶快注册使用吧。



怎么上YouTube?-匿名用户的回答:因为国内的网是上不了Youtube的,现在只剩下两种办法了。第一种是直接出... 怎么上YouTube?
匿名用户的回答

因为国内的网是上不了Youtube的,现在只剩下两种办法了。

第一种是直接出国,在国外你随便连个WIFI就可以上Youtube了,非常方便。

第二种是在国内借助软件上Youtube,稍微麻烦一点儿,具体的方法可以参照这个教程。


另外不非得用Youtube的APP上Youtube,可以直接用浏览器上Youtube,希望你能学会!

2020年2月3日星期一

阿里巴巴资深技术专家无相:我们能从 InteliJ IDEA 中学到什么?



YTHunder是一个免费增加YOUTUBE观看次数的网站, 使用到现在三年多了,每天10万人同时在线看对方的影片。 而YTHunder可以提供的服务有: YOUTUBE观看次数提升,YOUTUBE订阅增长,YOUTUBE喜欢数上升。赶快注册使用吧。



阿里巴巴资深技术专家无相:我们能从 InteliJ IDEA 中学到什么?

本文来源于阿里巴巴资深技术专家无相在内网的分享,阿里巴巴中间件受权发布。

最近因为工作的关系,要将 Eclipse 的插件升级为 IDEA 插件。升级过程中,对 IDEA 插件做了些学习和研究,希望通过本文,对"为什么收费的 InteliJ IDEA 会比免费的 Eclipse有着更好的用户口碑"这一现象,提供些个人的思考。

通过这篇文章,您将了解到心流与人体工效的重要性,并使自己变得更强大,文章将从以下几点展开:

  • InteliJ IDEA 当前的市场情况与表现;
  • IntelliJ IDEA 成功的原因;
  • IntelliJ IDEA 在 IDE 设计器领域胜出的两个关键点;
  • IntelliJ IDEA 对现实工作的启示;
  • 充分利用 IntelliJ IDEA 插件,使自己变得更强大;

InteliJ IDEA 的市场情况与表现是如何?

2012年开始,IntelliJ IDEA 便迅速崛起,到了2016年,就占领了开发者市场的 46% 分额。直至2018的最新结果:IntelliJ IDEA 的市场份额增长到了 55.4%,显然赢得了18年 Java 领域的 IDE 王者之战,甚至还有重构的大师 Martin Fowler 在他著名的blog上,对 IntelliJ IDEA 赞誉有加。而且根据 IDEA 的产品满意度调查,其满意度竟高达 98%。

从外国学者角度,分析 IntelliJ IDEA 为何成功

很多国外学者也研究了 IDEA,它的成功之处归结起来有以下两点:

1. 产品功能上的成功:

  • 代码的智能提示: IDEA 自主开发语言解释器,做了深度的静态分析,让编程更加智能与高效,这是一项杀手级的特色功能;
  • 没有保存按钮:每一个你想使用功能,都有快捷键;
  • 性能非常好,用户的体验及其流畅;
  • IDEA 不仅对核心插件进行维护, 还提供了优秀的工具集,给予用户一致的UX范式体验;

2. 营销策略上的成功:

  • 以产品为核心和根本,以 "更好用" 的设计理念和原则打败了很多竞争者;
  • IDEA 没有销售团队,但是霸气的营销口号体现了其内容营销的核心逻辑:"Try it. Test it. If you feel its better, use it" ,没有多余的营销,真正做到用产品说话;

相信大部分程序员,对 IDEA 的特性已经非常熟悉了。 接下来,我们将分析其真正强大的原因。

在 IDE 设计器领域里,IntelliJ IDEA 为何能胜出?

IDEA 的风靡与崛起,在于它遵从了两个关键的设计哲学:

1. 不打断心流

Every aspect of IntelliJ IDEA is designed with ergonomics in mind. IntelliJ IDEA is built around the idea that every minute a developer spends in the flow is a good minute, and things that break developers out of flow are bad things. Every design and implementation decision considers the possibility of interrupting developer's flow and seeks to eliminate or minimize it.

(这句话美得我不想翻译。)

"Creative Flow" or just "Flow" is a state of mind where you feel evenly attuned, and focused on the task at hand.

创造心流是一种思考状态,是你感觉平和或专注于手头的任务的时刻,通俗的理解就是当你沉浸一件事时,有一种忘记时间与空间的感觉。心流会让你处于你最佳的意识状态,McKinsey 在2010年的研究表明,当你处于心流状态,你的工作效率比非心流状态下的工作效率提高 500%。

通过这种设计理念的学习,不禁畅想:如果越来越多的阿里产品,像IntelliJ IDEA的的产品体验一样,让人处于心流,高效完成任务,整体的生产效率将会成倍提升。

2. 人体工效学

IntelliJ IDEA 宣称用人体工效学来设计IDEA, 即 "The capable and ergonomic IDE for JVM"。

我们简要地科普一下人体工效学:这是一门专注研究人体舒适,通过产品设计减少疲劳、不舒适的科学。在家居设计和人体工程学上,都会重点考虑这种设计理念,让人们在使用时感受到更舒适、更高效率与更少的压力。

接下来例举两个人体工效学的经典例子:

1. 客服耳机

如果没有佩戴式耳机的出现,客服同学估计会疯掉。

1. 一撕得的包装箱

一撕得的包装纸质量、胶水质量、人体工效学的拉链式设计,这三种要素在纸箱界都是业界第一。

人体工效学对软件设计的提示:

  • 统一的UX风格设计;
  • 将复杂任务变成简单任务;
  • 将长任务分解成短任务;
  • 因为人类的有记忆力的限制,所以要适当提供提醒,提供关键的辅助给用户,让他们完全沉浸在核心工作中,不被打断。

(更多提示,可以看参加文献的第5篇文章。)

如果想体验一下人体工程学的设计,IDEA的快捷键与无保存按钮,你立刻就会明白。

对我们现实工作有哪些启示?

经过团队的讨论,我们认为 IDEA 的增长飞轮在于:优秀的设计理念,卓越的产品体验,InteliJ IDEA 开放的社区,免费与专业收费并行的商业模式。IDEA 不断更新迭代的路径就是用更好的产品体验,吸引到更多的用户,用户贡献了更多的利润,用来吸收更多的优秀人才,一起开发更好的产品。这给予我们现实工作的指导意义,产品要回归至以人为中心的设计理念:

  • 心流的提示:罗列出用户的任务,让用户尽可能处于心流状态,消灭导致任务低效的因素;
  • 人体工效学提示:我们在设计产品时,要充分考虑用户使用产品的场景,这是一个一体化的设计,就像星环产品设计。写代码只是软件研发的一环,需求创意提出、需求研发上线、业务商业分析这些整体环节都要考虑,让用户舒适地完成任务;
  • 智能提示:采用人工智能来提升任务的完成效率。IntelliJ IDEA的智能代码提示,是一个经典的案例;

最后:我个人会将心流与人体工效学的设计思想,融入至技术产品设计过程中,期待我们团队的实践篇。

小编推荐两款创造心流的 IDE 插件:

1. 热替换利器:JRebel

一款热部署插件,帮助开发者在项目处于运行状态下任意修改 Java 文件并动态反馈到运行的项目中。点击了解更多

2. 开发测试必备部署神器:Cloud Toolkit

帮助开发者更高效地开发、测试、诊断并部署应用,利用此插件,能够方便地将本地应用一键部署到任意机器(了解更多:体验链接)。

参考文献

  1. https://www.javaworld.com/article/3114167/development-tools/choosing-your-java-ide.html
  2. https://www.youtube.com/watch?v=Eyy9ddRgMX8
  3. http://catalyticcolor.com/scientific-research-about-flow/
  4. https://en.wikipedia.org/wiki/Flow_(psychology)
  5. http://ergo.human.cornell.edu/ahtutorials/interface.html

本文作者:无相,阿里巴巴资深技术专家,多年担任汇金平台的架构师,是阿里tbbpm工作流引擎的作者。曾在阿里云负责过云产品 0 至 1 的商业化,最近几年在负责阿里的店铺&详情等系统的中台建设。目前,新零售业务平台正在招聘优质架构师,欢迎投简历到 wuxiang#alibaba-inc.com 邮箱。



本文作者:中间件小哥

阅读原文

本文为云栖社区原创内容,未经允许不得转载。