精华内容
下载资源
问答
  • 作为商家啊,接到了第一反应,自然而然就会想到打单发货和物流方面的问题,毕竟这很大程度上会影响客户的体验 今天我们来说一下打单发货的一些小技巧 在说订单技巧之前呢我们先提一下客服,因为在打单发货之前我们...

    作为商家啊,接到单了第一反应,自然而然就会想到打单发货和物流方面的问题,毕竟这很大程度上会影响客户的体验

    今天我们来说一下打单发货的一些小技巧

    在说订单技巧之前呢我们先提一下客服,因为在打单发货之前我们的客服肯定是要做好记录以及处理订单,这也是很重要的一步。那么要是客服处理订单总出错怎么办呢?客服备好三大记录本:问题记录本、服务统计本、交接记录本问题记录本:客服可以再工作中将遇到的问题或者想法记录下来,并且可以交给负责人每周汇总处理

    在这里插入图片描述

    服务统计本:在工作中要学会记录,记录自己服务的客户数量,成交的客户数量计算转化率,学会做事,学会思考,才会有进步。交接记录本:白晚班交接时,登记好移交客户的情况,哪些事情是要赶紧处理的,哪些是潜在客户是需要去联系。

    1、每销售完一笔订单,都要到交易订单里面备注一下。

    2、成交后:付款成功第一时间制作出订单确认表,然客户确认订单详情,尽量避免退换货,客户确认无误之后,负责打单的客服立刻打印快递单并填写快递单号。

    3、完成的交易有备注事项的务必记得备注。

    好的接下来进入正题了,打单发货小技巧:

    1、打单发货速度慢,效率低:

    做拼多多店铺的,自然是离不开各种大大小小的促销活动,活动引入大量流量和订单,此时发货就遇到难题了。手动输入快递单号?好麻烦,又容易出错,还需要不断校对,既费时又费力,大大降低工作效率。

    2.我有很多家店铺,一家一家打实在是太麻烦了

    有些卖家手头有多家店铺,订单数不尽相同,如果每个店铺都开通电子面单,不仅管理比较麻烦,成本上也不划算。

    如今,借助小帮软件机器人,它可代替商家处理日常业务中繁琐重复的批量化操作,实现批量导出订单物流信息、快速处理订单,批量采集买家联系方式等,助力拼多多商家在电商大战中脱颖而出。

    在这里插入图片描述

    小帮软件机器人应用于拼多多两个场景:

    从拼多多后台里,自动批量采集订单详情中的物流信息,并导出为Excel表格进行跟踪,直观可见,免除手动一个个打开订单详情,发现异常物流。

    从拼多多后台里,自动批量采集订单列表中买家信息,联系方式等,用于后续维护。

    ……

    在这里插入图片描述
    信息化时代,数字劳动力的运用已经相当普遍。在信息化依赖度尤其高的电商领域更是如此,想从同行中脱颖而出,想轻松解放放手,想把宝贵的时间放到做更有价值的事情上去,何不试试用软件机器人来辅助工作呢?电商同行们告别重复电脑操作,可以先从订单批量导出、一键复制粘贴开始。

    展开全文
  • 3D打印切片软件Cura及CuraEngine原理分析

    千次阅读 多人点赞 2015-10-21 13:23:14
    通过Cura及CuraEngine详细分析介绍3D打印切片的原理年。初开始进入3D打印行业,受命以Cura为基础,研发自主的3D打印切片软件Pango。

    引言

            年初开始进入3D打印行业,受命以Cura为基础,研发一款自主的3D打印切片软件。

            自主研发要取其长处,补其不足,首先自然是要搞清楚Cura到底做了什么,读Cura的代码是必需的。我一向都觉得比起自己写代码来,读别人的代码是一个漫又而痛苦的过程,读者的思想与写者总有偏差,往往又无法验证自己的猜想是否正确,只叹人脑不是电脑,无法把眼前的代码从头到尾执行一遍。不知道各位资深程序会有什么办法,我的办法是“翻译”,看着别人写的代码,加上自己的理解之后,按自己的喜好重新写出来,看一段翻译一段,等全部翻译完成,理论上作者的思路也明白了,同时还有了一份功能一模一样的代码,自己的理解是否正确,也可以通过执行“翻译”出来的代码验证。

            计划总是美好的,中间的工程确总是充满变数,之间的曲折折叠不说。经过若干次推倒重写,勉强算是有了一份自己的切片软件,又经过了半年的推敲摸索以及打印经验积累,一个还算另自己满意的切片软件最终诞生。起名Pango,先观大略。

            Pango的介绍和说明先按下不表,以会有机会另外发文详述。
            在Pango的开发过程中,我对于Cura的理解也日益深入。时至今日,我也有了信心可以把我的这些经验、理解和心得分享出来,供大家参详一二,若能对后来的Cura研究者有所助益,那是再好不过。

     

    Cura的架构

            Cura是一个python语言实现,使用wxpython图形界面框架的3D打印切片界面软件,说它是界面软件是因为Cura本身并不会进行实际的切片操作。实际的切片工作是由另外一个C++语言实现的CuraEngine命令行软件来具体负责的,用户在Cura提供的界面上的绝大多数操作如加载模型、平稳旋转缩放、参数设置等最终会转换成并执行一条CuraEngine命令;CuraEngine把输入的STL、DAE或OBJ模型文件切片输出成gcode字符串返回给Cura;Cura再把gcode在3D界面上可视化成路径展现给用户。

            我主要参考的代码是CuraEngine,本文主要篇幅也会放在CuraEngine上。而Pango的界面代码就主要靠我自己发挥了。

            Cura和CuraEngine都可以Github上找到,地址:

            https://github.com/daid/Cura

            https://github.com/Ultimaker/CuraEngine

            我所参考的版本是15.04,15.06之后Cura和CuraEngine都有较大的改动,但核心思想没变。所以本文分析的代码也到15.04为止。

            言归正传,下面我们将开始一步一步揭开CuraEngine把一个模型文件转换成为gcode的过程。

    切片流程概述

            从总体上讲,CuraEngine的切片分为五个步骤:


    步骤一:模型载入

            有一点3D编程经验的人都知道,计算机中的3D模型大多是以三角形面组合成的表面所包裹的空间来表示的。三角形作为3D模型的基本单元,有结构简单,通用性强,可组合成任意面的特点;空间坐标中只要三个点就可以表示一个唯一的三角形,两点只能表示一条直线,而再多的直线也无法组成一个平面;空间中的任意三个不共线的点都可以组成一个三角形,而四个点所组成的四边形就必需要求四点共面;任意的表面都可以拆解成三角形,一个四边形可以拆解成两个三角形,但一个三角形确没有办法用四边形组合而成。计算机所擅长的事情就是把简单的事情不断重复,而三角形正是因为这些特性,成为了计算机3D世界的基石。

            CuraEngine内部也是用三角形组合来表示模型的,不过同样一个三角形组合,确有无穷多种数据结构来进行存储,CuraEngine切片的第一步,就是从外部读入模型数据,转换成以CuraEngine内部的数据结构所表示的三角形组合。

            有了三角形组合还不够,CuraEngine在载入模型阶段还要对三角形进行关联。两个三角形共有一条边的,就可以判断它们为相邻三角形,一个三角形有三条边,所以最多可以有三个相邻三角形,一般而言,如果模型是封闭的,那它的每一个三角形都会有三个相邻三角形。

            有了三角形的相邻关系,就可以大幅提高下一个步骤分层过程的处理速度。Cura之所以成为当前市场切片速度最快的软件,这是其中最显著的优化之一。

            模型载入更详细的过程会另文分析,敬请期待。

    步骤二:分层

            如果把模型放在XY平面上,Z轴对应的就是模型高度。我们把XY平面抬高一定高度再与模型的表面相交,就可以得到模型在这个高度上层切片。所谓的分层就是每隔一定高度就用一个XY平面去和模型相交作层切片,全部切完后就可以得到模型在每一个高度上的轮廓线。就像是切土豆片一样,把一个圆的或不圆异或不管什么奇形怪状的土豆用菜刀一刀一刀切开,最后就能得到一盘薄如纸片的土豆片,当然那还得你的刀功要足够好才行。

            分层本质上就是一个把3D模型转化为一系列2D平面的过程,自此之后的所有操作就都是在2D图形的基础上进行了。

            在前面模型载入阶段我说到了CuraEngine埋了一个三角形关联的伏笔,作用是什么,现在就可以揭晓了。我们知道,两个平面相交,得到的是一条直线,一个平面和一个三角形相交,就得到一条线段。当然也有可能什么也得不到,平台平行啦,三角形的三个点都在平面的同一面之类,这些我们可以不管,我们现在只关心和平面有交集的那些三角形即可。我们把一个平面和所有的三角形都相交了一遍,得到了许许多多的线段,但我们需要的是2D图形,三角形是2D图形,四边形,任意多边形都是2D图形,但线段不是。所以我们就要把这些线段试着连成一个多边形,那么问题来了,要把这些线段连起来,只能两个两个地去试,看看它们是不是共端点了,粗算一下,每一层都是平方级的复杂度,再算上层数,那就是三次方级了。但现在,我们知道了三角形的关联关系,两个关联的三角形,如果都与一个平面相交,那它们的交线一定也是关联的,这一下,每一条线段只需要判断三它与它相邻三角形,看看与这个平面有没有交线即可,一下子就把问题的复杂度降了一个次元。速度自然可以有质的提升。

            分层更详细的过程会另文分析,敬请期待。

    步骤三:划分组件

            经过分层之后,我们得到了一叠2D平面图形。接下来需要做的事情就是对每一层的平面图形进行跑马圈地,标记出哪里是外墻、内墙、填充、上下表面、支撑等等。

             3D打印在每一层是以组件单位,所谓组件指的就是每一层2D平面图形里可以连通的区域,比如左图就可以拆分为黄绿蓝三个组件。而打印的顺序就每打印完一个组件,接着会挑选一个离上一个组件最近的组件作为下一个进行打印,如此循环直至一层的组件全部打印完成;接着会Z轴上升,重复上述步骤打印下一层的所有组件。

            至于每一个组件怎么打印,就和我们手工画画一样,先打边线再对边线内部填充。边线可以打印多层,最外层的边线称为外墙,其它的统称为内墙,CuraEngine之所以要对内外墙进行区分,是为了可以为它们定制不同的打印参数:外墙会被人观察到,所以可以采用低速以提高表面质量,内墙只是起增加强度的作用,可以稍稍加快打印速度以节省时间。这些都可以在Cura界面的高级选项里进行配置。

            有一点值得注意的是,也是我半年打印的经验,由于FDM挤出装置的特性所至,挤出机的挤出通过影响的只是加热腔里的熔丝压力,间接决定了喷头的挤出速度,而加热腔本身对于压力就有一个缓冲作用,所以挤出速度的突变并不会使得喷头的挤出速度立即跟着变化,而是有一个延迟,这一点在远端送丝的机器上更为明显。而恰恰我们公司的主打产品F3CL就是远端送丝,在Pango中考虑到这个问题,并加上了特殊处理,事实证明的确对打印质量有一定的提升。具体办法是什么,我先卖个关子,会Pango的专文里进行讲解。

            内外墙标记完之后就是填充和上下表面的标记了,填充有一个填充率,0%填充率就是无填充,100%就是打成一个密实的平面,所以上下表面就是填充率为100%的填充。中间的填充率自然介于两者之间,就像一张渔网,填充率越高网眼越细。

            软件会先把内墙里面的部分统统标记成填充,之后再进一步判断其中有哪些部分要转换成为上下表面。至于是哪些部分,在设置里会有一个上下表面层数的设置,它代表了模型的上下与空气接触的表面有几层,这里就会用到这个参数,CuraEngine会把当前层上下n层(上下表面层数)取出来与当前层进行比较,凡是当前层有而上下n层没有的部分就会被划归到表皮。而原来的填充区域在割除被划到表皮的部分后剩下的部分就是最终的填充区域。

            CuraEngine在处理过程中大量用到了2D图形运算操作,有关2D图形的运算,有很多人研究,也被做成许多成熟的库可以调用。CuraEngine的作者拿来主义,选取了一个他认为比较好用的库,叫ClipperLib的库直接内嵌到软件之中,ClipperLib所使用的2D图形算法也很著名,叫Vatti's clipping algorithm,很复杂,我也没有完全搞懂,有兴趣的读者要是搞懂了可以多多交流。ClipperLib的网址是:http://www.angusj.com/delphi/clipper.php

            这里我先简单介绍一下CuraEngine所用到的几种2D图形的运算,都是由ClipperLib实现的:交、并、差、偏移。与集合操作类似先看图:

     

    图形相交

            二元图形操作,最终结果为两个图形共同包含的区域。记作:A * B

    图形相并

            二元图形操作,最终结果为两个图形其中的一个或两者所包含的区域。记作:A + B

    图形相减

            二元图形操作,最终结果为属于前者但不属于后者的区域。记作:A - B

    图形偏移(外扩)

            一元图形操作,最终结果为图形区域的边界向外扩展指定的距离。

    图形偏移(内缩)

            一元图形操作,最终结果为图形区域的边界向内收缩指定的距离。内缩与外扩互为逆运算。

            这些就是CuraEngine所用到的2D图形操作,运算不多,确可以做许许多多的事情,比如上面所说的上下表面计算,就可以用数学公式来表示:

    表面(i) = [填充(i) - 层(i + n)] + [填充(i) - 层(i - n)]

    填充(i) = 填充(i) - 表面(i)

            其中,i为当前层号,n为上下表面层数(可以不一样)。多简单,数学就是这么任性!

            同样的,组件里面内外墙,填充怎么划分,只用一个内缩运算就可以搞定:

    外墙 = 组件.offset(-线宽)

    内墙1 = 组件.offset(-线宽 * 2)

    ...

    内墙n = 组件.offset(-线宽 * (n + 1))

    填充 = 组件.offset(-线宽 * (n + 2))

            如果模型无需支撑,那组件划分到这里就可以收工。否则,接下就是计算支撑的时间了。

            我用CuraEngine半年下来觉得它最大的不足就是在支撑上,这也是我在Pango投入最大精力要改进的地方,这里就先简单介绍一下CuraEngine所用的支撑算法。

            CuraEngine首先把整个打印空间在XY平台上划分成为50um*50um的网格,每个网格的中心点再延Z轴向上作一条直线,这条直线可能会与组成3D模型的三角形相交,三角形与直线的交点以及这个三角形的倾斜度会被记录到网格里面。

            现在每个网格里会记录下一串被称为支撑点的列表,每个支撑点包含一个高度和一个倾斜度信息。接下来会对每个网格的支撑点列表按照高度从低到高排序。根据这些信息就可以判断模型上任意一个点是否需要支撑了,怎么判断,我们看图说话:

     
     让我们从底面开始延着一条网格中心往上走,起始我们是在模型外部,当遇到第一个支撑点的时候,就从模型外部进行了模型内部,我们称这个支撑点为进点。

    继续向上,遇到了第二个支撑点,从模型内部又退到了模型外部,我们称这个支撑点为出点。

    接着向上,我们可以发现,进点与出点总是交替出现的。

    利用这个规律,对于模型上任何一个点,我们只要找到这个点所对应的网格,再找到这个网格里在这个点以上最近的一个支撑点,我们就可以得到两个信息:这个点之上是否有模型悬空;这个点上面的悬空点的面的倾斜度是多少。

    Cura界面的专家设置里面有支撑角度的设置,如果一个点处于模型悬空部分以下,并且悬空点倾斜度大于支撑角度,那这个点就是需要支撑的。所一个平台上所有的需要支撑的点连接起来围成的2D图形就是支撑区域。

           CuraEngine所使用的支撑算法比较粗糙,但胜在速度很快。先不说网格化后失去了精度,通过倾斜角度来判断,模型下方一旦倾斜角发生了突变,像左图这种从负45

    度一下突变成正45度,倾斜角判断无能为力,除非把它改大到60度,这样的话,整个模型都会被过度支撑。这样矫枉过正,既不科学,也浪费材料和打印时间,还会对模型表面质量带来不好的影响。

           科学的支撑算法应该是找到模型局部最低点进行支撑,最低点以上不一定需要支撑。因为FDM材料本身的粘性,使得材料的走线可以有一部分悬空而不坍塌,这个效果被称为Overhang,只要上层材料的悬空距离小于一定的值,它就不需要支撑,这个距离以我的经验应该在1/4到1/2线宽之间。我在Pango中就基于这个思路重新实现了支撑的算法,结果虽然

    速度不如Cura的支撑算法那么快,但效果非常好,该撑的地方撑,不该撑的地方也不会多此一举。

           Pango的支撑算法我会在以后专文介绍。顺带一说,CuraEngine在下半年做了很大的改动,其中之一就是抛弃了之前的支撑算法,而新的算法也和我上面所讲的思想异曲同工。我要声明的是Pango的支撑算法和CuraEngine谁也没有抄谁,我的算法是自己拍脑袋想出来的。算是英雄所见略同吧。

            支撑范围确定之后,也和组件一样,可以有外墙、内墙、填充、表面。依样画葫芦即可。CuraEngine对于支撑,只会生成外墙和填充,Pango更多。

            组件和支撑就是CuraEngine在这一步所生成的结果,这一步可以说是整个切片过程的核心,更详细的过程会另文分析,敬请期待。

    步骤四:路径生成

            地圈好了,就该在里面种菜了。这一步路径生成就要开始规划喷头在不同的组件中怎么运动。路径按大类来分,有轮廓和填充两种。

            轮廓很简单,沿着2D图形的边线走一圈即可。前一步所生成的外墙、内墙都属于轮廓,可以直接把它们的图形以设置里的线宽转换为轮廓路径。

            填充稍微要复杂一些,2D图形指定的只是填充的边界,而生成的路径则是在边界的范围内的条纹或网格结构,就像窗帘或者渔网,如左图。这两种就最基本的结构,当然也许你还可以想出其它花式的填充,比如蜂窝状或者S型,这些在新的Cura或者别的什么切片软件里可能会实现,但我打印下来还是这两种基本结构更让人放心。CuraEngine在专家设置里可以对填充类型进行选择,里面除了条纹和网格外还有一个自动选项,默认就是自动。自动模式会根据当前的填充率进行切换,当填充率小于20%就用条纹填充,否则使用网格填充。因为网格结构虽然更为合理,但它有一个问题,就是交点的地方会打两次。填充率越高,交点越密,对打印质量的影响会越大。我们知道,表面就是100%的填充,如果表面用网格打,不但无法打密实,表面还会坑坑洼洼,所以100%填充只能用条纹打,这就是CuraEngine推荐自动模式的原因。

            至于填充率,就反映在线与线的间距上。100%填充率间距为0;0%填充率间距无限大,一根线条也不会有。

            每个组件独立的路径生成好了,还要确定打印的先后顺序。顺序先好了可以少走弯路,打印速度和质量都会有提升。路径的顺序以先近后远为基本原则:每打印完一条路径,当前位置是上一条路径的终点;在当前层里剩下还没打印的路径中挑选一条起点离当前位置最近的一条路径开打。路径的起点可以是路径中的任意一个点,程序会自行判断。而路径的终点有两种可能:对于直线,图形只有两个点,终点就是除起点之外的那个点;对于轮廓,终点就是起点,因为轮廓是一个封闭图形,从它的起点开始沿任意方向走一圈,最后还会回到起点。CuraEngine对路径选择做了一个估值,除了考虑到先近后远外,还顺便参考了下一个点相对于当前点的方向,它的物理意义就是减少喷头转弯。赛车在直道上开得一定比弯道快,不是么。

            路径的顺序也确定了,还有一个问题需要考虑:如果前后两条路径首尾相连,那直接走就是了,但大多数情况并非如此,前一条路径的终点往往和后一条路径起点之间有一段距离。这时候去往下一点的路上要小心了,肯定不能继续挤出材料,否则轻则拉丝,重则模型面目全非。这段路喷头就需要空走,即喷头只移动,不吐丝,那只要把挤出机停下来不转就行了吗?也不行,因为前面分析过,挤出机的速度要传导到喷嘴,有一个延迟,不是你说停它就立即停下来的。这是FDM打印的通病,解决办法就是回抽。所谓回抽,就是在空走之前先让挤出机高速反转一段材料,这样就可以瞬间把加热腔里的材料抽光,再移动过去,中间就不会挤出材料,到了下一个点,在打印之前,先把刚才抽回去的丝再按一样的长度放回来,继续打印。回抽可以很好地解决空走拉丝的问题,但是它很慢,以抽一次0.5秒来算的话,如果打印一个表面,0.4线宽,10厘米的距离至少回抽25下,10几秒钟的时间一层,几百上千层打下来,光回抽所用的时间就是几个小时,是可忍孰不可忍!

           

            CuraEngine给我们提供了解决方案就是Comb,也就是绕路。我们先来看,是不是所有的回抽都是必需的呢?不回抽会拉丝是肯定的,但如果需要空走的路径本来就要打印的,那拉丝又有何妨。按这个思路,就可以给每个组件设定一个边界,只要路径的起点和终点都在这个边界之内的,空走都不回抽。这样可以解决80%的问题,但如果是左图这样的情况就行不通。

            红色是起点,绿色是终点,直接走过去会走出边界的范围。这时我们就要绕一点路,走一条曲线到达我们的目的地。这就是Comb所做的事情,在Cura专家设置里面可以对Comb进行设置,选择开启、关闭还有表面不Comb。Comb可以大幅节省打印时间,但是同一个地方打印多次对模型质量还是会有细微的影响,个中利弊,交给用户自己判断。

            Comb的调整是个细致活,Pango花了相当多的时间来微调Comb功能以求达到更好的效果,过程繁琐,不再赘述。

            至此路径生成完成,更详细的过程另文分析,敬请期待。

    步骤五:gcode生成

            路径都生成好了,还需要翻译对打印机可以实别的gcode代码才行。这一步花样不多,按部就班即可。

            先让打印机做一些准备工作:归零、加热喷头和平台、抬高喷头、挤一小段丝、风扇设置。

            从下到上一层一层打印,每层打印之前先用G0抬高Z坐标到相应位置。

            按照路径,每个点生成一条gcode。其中空走G0;边挤边走用G1,Cura的设置里有丝材的直径、线宽,可以算出走这些距离需要挤出多少材料;G0和G1的速度也都在设置里可以调整。

            若需回抽,用G1生成一条E轴倒退的代码。在下一条G1执行之前,再用G1生成一条相应的E轴前进的代码。

            所有层都打完后让打印机做一些收尾工作:关闭加热、XY归零、电机释放。

            生成gcode的过程中,CuraEngine也会模拟一遍打印过程,用来计算出打印所需要的时间和材料长度,这些也会写在gcode的注释里供用户参考。

            gcode生成不用另文详细分析,但是gcode的说明还是可以专文分析一下,敬请期待。

    待续

             写了这么多,Cura的切片流程也只能讲个大概,也算是个提纲,希望对大家有所帮助。我计划对于上面的第一个步骤再专文分析。除此之外,还有Cura界面部分以及Cura与CuraEngine的通讯也可以讲讲。之后就是我半年创作,自我感觉良好到觉得可以超越Cura的Pango,也是不说不快的。

             未完待续,敬请期待。

    展开全文
  • 但是主要是针对偏财和横财,尤其是业务提成、贸易利润、股票彩票、额外收入等等,固定工资2017年生完小孩无聊接触了约牌冲击麻将这款软件,每天都玩打发时间,后来听客服说做这个推广还有就是,我发现我如果经常在QQ麻将...

    截止到2020年生肖鼠的对应岁数:2020年(0岁),2008年(12岁),1996年(24岁),1984年(36岁),

    回答:属虎人2012龙年生肖运程偏财大运,注定今年的财运非常旺。但是主要是针对偏财和横财,尤其是业务提成、贸易利润、股票彩票、额外收入等等,固定工资

    2017年生完小孩无聊接触了约牌冲击麻将这款软件,每天都玩打发时间,后来听客服说做这个推广

    还有就是,我发现我如果经常在QQ麻将里输钱的时候,就换到现实中和朋友打,经常狂赢,呵呵。所以我觉得,那句古话“赌场失意,情场得意”不是没

    首页 娱乐休闲 星座/运势 周易测算61年牛2019运势如?周易测算61年牛2019运势如何 北海道的冬天不适合说再见啊 类似问题 换一换

    负责的人今年打麻将的运势,我觉得主要跟你自己打牌的技术和你的打牌的运气有关系。

    回答:属龙人2017年事业运势如何 2017年对于属龙人来说,是利名利官的年份,身为管理阶层的人士,将迎来一个大展宏图的好年份,打工者今年亦有机会

    白羊座3月运程 整体运:☆☆ 你的外在表现似乎总与心中真正的想法有着一段差距,或许你不是有意造成如此的矛盾,但事情一旦到了必须

    当然十二生肖打麻将也是有方位吉凶之说的。 属鼠 座位凶方:忌座南(未山)向北、忌座南(午)向北; 座位吉方:座东向西、座北向南、座西

    白羊座运势01月15日星期六 整体:★★★★☆ 爱情:★★★★☆ 事业:★★★☆☆ 财运:★★★★★ 今日运势短评: 人与人的

    回答:天秤座运势 今日概述工作上,小人往往来自最亲的人,你一定要多多注意才行,可能问题出在自己身上;感情上,家人之间会有一些小矛盾,需要时间调节;

    白羊座今日运势有效日期:2016年11月09日当天 米色幸运颜色 6 幸运数字处女座速配星座工作上,应该放宽心态,凡事顺其自然就不会太差,同时记得做

    白羊座明日运势 有效期限:2015-07-27 健康指数:83% 商谈指数:82% 幸运颜色:银色 幸运数字:9 速配星座:处女座 整体运势 今天恋爱

    白羊座近期总体运势 2013年的白羊座在各个领域都很活跃。天王星与木星的相互协调令你在生活中与周围人的交往增多,并且在交往中的角色

    2013年6月30日 白羊座总运: ★★★☆☆爱情: ★★★☆☆财运: ★★☆☆☆工作: ★★★☆ 贵人星座: 巨蟹座幸运数字: 6 吉时吉色:

    对于白羊座来说,他们有太多的不确定因素,他们很容易不自信,所以更加的喜欢看运势来为自己加油打气。也

    白羊座今日运势有效日期:2014年9月15日当天综合指数:78%爱情指数:80%工作指数:59%财运指数:78%健康指数:80

    白羊座今日运势 有效日期:2015年4月14日当天 综合指数:65%爱情指数:70%工作指数:73%财运指数:60%健康指数:71%幸运颜色:紫罗兰幸运

    回答: 34张 白羊座 占星学 更多义项 语音播报,能听的百科!  立即收听 白羊座(Aries),黄道十二星座之第一宫,位于双鱼座之东,

    爱情 进入11月份,白羊座在爱情上并不是特别理想,尽管在月中的时候可能遇到让自己心动的人儿,但是总是会因为行动不够迅速而错过。有

    白羊座2018年运势完整版详解 今年,白羊座将会感受到节节高声的爽快。一直以来,白羊座的运势都不太好,不管做什么都会遭到大大小小的

    首先,每一个星座的运势可能每天都是不一样的,所以在这里只介绍白羊座在2019年的整体运势。 在2019年

    白羊座运势01月15日星期六 整体:★★★★☆ 爱情:★★★★☆ 事业:★★★☆☆ 财运:★★★★★ 今日运势短评: 人与人的

    十二星座都是什么达人】 双子座(孤僻达人) 天秤座(单身达人) 金牛座(花心达人) 天蝎座(恋爱达人) 射手座(完美达人) 水瓶座(倒霉

    白羊座明日运势 有效期限:2015-07-27 健康指数:83% 商谈指数:82% 幸运颜色:银色 幸运数字:9 速配星座:处女座 整体运势 今天恋爱

    2017年属狗的人运程 属狗的人出生年份:1946、1958、1970、1982、1994、2006 2017属狗人全年运势预测综述: 生肖属狗的人,2017年

    今天打麻将,请问坐什么方向运气最好?:什么年代了,什么方位不重要,靠这些迷信的想法你就完了,有工具辅助才是王道?

    如:近期烦躁者,与老公打骂者,刚刚辞职者,都代表自己的运势处于低弱状态,不宜打麻将。很多人相信“情

    空闲时候打麻将是消遣时光的好方法,有时候打麻将运气会很差,这个时候,我们到底该如何做呢?今天就教大家打麻将

    展开全文
  • 昨天看到一个大新闻:拼多多在20日凌晨出现漏洞,用户可以领100元无门槛优惠券。一夜之间,被黑产、羊毛党和闻讯而来的吃瓜群众薅了个底朝天,直到第二天上午9点才将优惠券下架。网上传言这一波损失超过200亿,但拼...

    昨天看到一个大新闻:拼多多在20日凌晨出现漏洞,用户可以领100元无门槛优惠券。一夜之间,被黑产、羊毛党和闻讯而来的吃瓜群众薅了个底朝天,直到第二天上午9点才将优惠券下架。网上传言这一波损失超过200亿,但拼多多官方很快回应:漏洞确有此事,但损失没这么多,不到千万,已报警,正在追回

    拼多多本来就是家争议颇大的公司,这次事件更是引发舆论热议。据说,这个优惠券本不能正常访问,而是有做黑产(利用互联网不正当牟利)的人挖到了一个漏洞,使得能从某个二维码入口领取到这个券,并把这个券散发出去。你别以为这是想劫富济贫,他们只是想拉足够的炮灰垫背,同时自己迅速将这个券兑换成话费、Q币等,以此获利。这事情从法律角度来说算得上“不当得利”,就算涉事账面金额真的有200亿,大部分也是可以追回的。所以,没吃到瓜的群众别懊悔,反倒是真占了便宜的,得考虑考虑了。

    话说回来,可能有人要问了,怎么黑产就能弄出一个不存在的优惠券?我不了解具体漏洞细节,但从目前的信息来看,这个券在系统里肯定确实存在,有可能是内部测试或者某些特定条件下可以领。然而估计程序上并没有做更多的领取条件限制,只是隐藏了访问这个券的公开入口。就好比是有人在银行的某个保险柜里放了一笔钱,但没有上锁,觉得别人不知道这里藏了钱就没事。后来有人发现了,就把保险柜的位置告诉了所有人,那么每个人都可以过来拿钱。

    讲道理,我没上锁也不代表你就能随便拿。但从一个开发者的角度来看,不做必要的权限验证、规则判断,以及特殊情况下的异常处理,仅仅通过隐藏公开入口来限制领取,这是极为低级的失误。让人忍不住想吐槽:拼多多那么有钱,招来的程序员咋这么不专业?而且为什么凌晨爆发的问题,到上午9点才封上,下架个优惠券也这么难吗?

    不过吐槽归吐槽,不可否认的是,软件的 bug、缺陷、漏洞,这是永远不可能杜绝的。被人们看到的漏洞往往很低级,但考虑到软件产品的复杂度,以及开发进度、需求变更等客观情况,漏洞也并不是想象中那么容易避免。就在半个月前,知名民宿平台 Airbnb 就爆出过类似的大 bug:当你支付房费的时候,如果切换货币,价格并没有跟着变。你可以拿2000越南盾支付原价2000欧元的民宿。在计算机史上,类似的问题数不胜数,举几个知名例子:

    • 1994年,英特尔的奔腾CPU芯片被曝出缺陷:会在精度要求很高的数学计算上出现问题,比如 (4195835/3145727)*3145727-4195835 这样的结果计算出来不为 0。最后英特尔为此付出 4 亿多美元更换芯片。就在大约一年前,英特尔的另一个芯片漏洞也波及了市面上绝大多数的电脑、手机和云服务器,这个我去年有文章科普过:关于这波IntelCPU漏洞,我见过最形象易懂的解释
    • 1999年,美国航天局的火星极地登陆器在着陆时失联。后经调查认定,故障原因很可能是一个决定关闭推进器的数据位设置逻辑有误
    • 1991年海湾战争中,美国的爱国者导弹防御系统失效,未能成功拦截导弹致28名美军士兵被炸死。原因经分析后,是因为系统时钟数据精度不够,存在微小误差,长时间运行后误差积累放大,在拦截过程中可能引起数百米的偏差。
    • 千年虫问题:上世纪早期的软件开发者为了节省空间,使用两位数记录年份。然而到2000年时,一些软件仍在使用,使得99年之后变成00年,引发异常。有人估计全球为此花费的相关费用有数亿美元

    由此看来,程序员还真是一个高危职业,一不小心就可能造成巨大损失。如果你没有生产过严重的 bug,可能是你运气真的好,但更可能是你代码写得还不够多。对此我自己也是不少血泪教训。那面对难以避免的 bug,开发者应该怎么办呢?我的建议:

    1、重视软件测试

    正因为漏洞的普遍存在,以及可能带来的潜在损失,所以软件测试是即为必要的。除了需要有专门的测试人员把关,每个合格的开发者也应该是一个合格的测试者,正如有句话说的:一个优秀的程序员就是那种即使是过单行道都要往两边看的人(Doug Linder)。对于自己写出的代码,你自己是最了解的人。在开发早期就做好单元测试,可以大大提升程序的稳定性,降低后期测试的成本。当你写的每个函数都通过单元测试,成为一个功能模块时,再进行集成测试;最后对整个完成的产品进行系统测试

    企业更是应当重视软件测试的必要性,如果只追求功能快速迭代,拼命赶进度,最后有可能得不偿失。因为 bug 或操作失误导致企业破产的例子也不鲜见。

    测试的方式一般分为黑盒测试白盒测试。上面说的开发者自测一般是白盒测试,即你对代码的实现逻辑是已知的。白盒测试在选取测试用例时,讲究对代码逻辑的覆盖,即你选用的测试数据要能保证让每一行代码每一个条件都被执行到,尤其是一些边界条件。而黑盒测试是指不考虑代码逻辑,仅关注程序的功能和输入输出。软件发布测试版让用户使用,就属于一种黑盒测试。在黑盒测试时,讲究对等价类的覆盖,通俗地讲就是覆盖到所有可能发生的情况,包括正常的和不正常的,同样要注意边界。

    我们码上行动有个期中项目,就是对教程中“猜数字”游戏的扩展,增加多次游戏的功能。看似简单的功能,实现起来不难,但几乎大部分同学提交的代码都会存在一定的缺陷。这就是由于编程新手缺乏测试的意识和方法,一般只会按照自己的设想输入,发现结果对了就认为大功告成。其实不然,你得考虑用户如果猜的数字超过范围怎么办?输入了小数怎么办?输入空白怎么办?输入了字符怎么办?……

    那测试做到什么程度才到位?我觉得知乎上有人分享的一个笑话很到位:

    一个测试工程师走进一家酒吧,要了一杯啤酒
    一个测试工程师走进一家酒吧,要了一杯咖啡
    一个测试工程师走进一家酒吧,要了0.7杯啤酒
    一个测试工程师走进一家酒吧,要了-1杯啤酒
    一个测试工程师走进一家酒吧,要了2^32杯啤酒
    一个测试工程师走进一家酒吧,要了一杯洗脚水
    一个测试工程师走进一家酒吧,要了一杯蜥蜴
    一个测试工程师走进一家酒吧,要了一份asdfQwer@24dg!&*(@
    一个测试工程师走进一家酒吧,什么也没要
    一个测试工程师走进一家酒吧,又走出去又从窗户进来又从后门出去从下水道钻进来
    一个测试工程师走进一家酒吧,又走出去又进来又出去又进来又出去,最后在外面把老板打了一顿
    一个测试工程师走进一
    一个测试工程师走进一家酒吧,要了一杯烫烫烫的锟斤拷
    一个测试工程师走进一家酒吧,要了NaN杯Null
    1T测试工程师冲进一家酒吧,要了500T啤酒咖啡洗脚水野猫狼牙棒奶茶
    1T测试工程师把酒吧拆了
    一个测试工程师化装成老板走进一家酒吧,要了500杯啤酒并且不付钱
    一万个测试工程师在酒吧门外呼啸而过
    一个测试工程师走进一家酒吧,要了一杯啤酒';DROP TABLE 酒吧
    测试工程师们满意地离开了酒吧。然后一名顾客点了一份炒饭,酒吧炸了

    via 知乎 @今日飞雪
    zhihu.com/question/2003

    更多关于测试的知识,欢迎大家找本《软件测试》相关书籍看一看,这个真的很有必要。

    2、相信墨菲定律

    墨菲定律:如果你担心某种情况发生,那么它就更有可能发生。

    测试做得再好,也只能是减小 bug 的概率。作为一个开发者,你还是要认清现实,做好最坏的打算。

    • 如果你要上线新功能,那很可能导致宕机
    • 如果你要更新数据库,那很可能会丢失数据
    • 如果你没有检查备份,那很可能它就恢复不了
    • 如果你搞一个促销活动,那很可能会被羊毛党撸死
    • 如果系统出现了漏洞,那很可能是在半夜
    • ……

    但真当你意识到这些绝望的时候,反倒可以提前做好应急预案,将损失限制在最小。如果拼多多在设置出100元无门槛券的时候就相当虎视眈眈的黑产羊毛党,可能事情就不会这样。不过也许现在就是他们的应急预案也说不定呢:控制损失的同时还赚了一大波曝光。世事难料啊!

    换个角度,能造成巨大损失也是一种幸运。相比之下,你的产品挂了两天都没人发现,域名过期了都没人跟你抢,那才叫悲惨。所以最后,希望各位有朝一日都能参与影响巨大的项目,但要有安全意识,千万别捅出大篓子

    ════

    其他文章及回答:

    如何自学Python | 新手引导 | 精选Python问答 | Python单词表 | 人工智能 | 爬虫 | 我用Python | requests | 计算机视觉 | 字符播放器 | 一图学Python

    欢迎搜索及关注公众号:Crossin的编程教室

    展开全文
  • 流氓软件

    万次阅读 2006-07-01 11:38:00
    流氓软件 --我的一张大字报作者: kinglon(gamelife2@21cn.com,kinglon@cnns.net) (以后自己可以利用搜索引擎找到本文)关键字:Terminator Lab,卡巴威尔,流氓软件,清除,专杀 (以后自己可以利用搜索引擎找到本文)...
  • 兼职
  • 2021年主流CAD批量打印软件功能对比

    千次阅读 2018-09-08 11:33:57
    用最原始的方法打印,浪费的时间都够画图的时间,关键很多时候,打印完成发现有错误,又要重新打印,次数多了,连图纸哪个打印了,多了,缺少了都搞不清楚了,非常让人头痛。那么,有没有一款软件,能够帮我批量...
  • 不过拼多多平台服务器经常不太稳定,大家时常会碰见拼多多后台不开,账号登录不了等情况,今天小编就为大家介绍解决办法。拼多多登录不上是什么原因 怎么解决拼多多登录失败   一、拼多多后台不开怎么办  1...
  • 商品标准类目接口 ... ... 2、获取接口秘钥apikey 登录个人中心 - 系统设置 - 接口管理 找到接秘钥apikey,apikey 接口秘钥是调用接口的唯一凭证,请妥善保管! ...// +---------------------------------------------------...
  • 下文提到的所有工具都可以在这里下载:拼多多砍价神器Python教程所需软件 大家可以点下小站,给个支持~谢谢啦~ /1 前语/ 嘿,各位小伙伴们晚上好呀,今日小编又给我们带来干货内容啦,今日带来的是,怎么主动登录...
  • 如果大家觉得这个方法好用的话,不妨多多收藏噢,下面附上一个笑话,笑不笑由你,   笑话的名字叫《酒桶》   某人上周买了一坛好酒放在小院走廊上。第二天,他发现少了五分之一,便在酒桶上贴了 “ 不许偷酒 ” 四...
  • 2017嵌入式软件行业现状及概述

    万次阅读 多人点赞 2017-11-05 16:41:38
    本文章介绍了截止2017年为止的嵌入式软件行业现状,包括就业方向,行业产品类型,待遇等等。另外还简单概述了下嵌入式软件所需的知识技能以及未来可能的技能发展走向。本文章远不如专业的行业报告一般精准、专业,...
  • 今日看点✦拼多多Q3营收142.098亿元,实现上市以来首次季度盈利✦ 小霸王声明并未破产:破产方系合作企业与小霸王品牌无关✦ 三星推出旗下首款5nm芯片Exynos 1080,viv...
  • 多多的商业模式

    2020-10-07 14:40:19
    当今市面上存在一家神奇的公司.2015年正式上线.2016年月成交额破1000万,用户量突破1亿.2017年近1个月长期霸占苹果应用商店购物类榜首.2018年登陆纳斯达克上市.你猜的没错它就是拼多多.如今当下的市场环境早已被...
  • 从 拼多多 到 抖音

    千次阅读 2019-05-22 16:34:28
    原本看起来,传统电商似乎没有机会了,但后来的唯品会,现在的拼多多,似乎把这个市场撕开了一个口子。 原因是上述的传统电商的描述,更偏向于针对标准品,比如大电,3C,图书,超市生活用品等,都有明确的品牌,...
  • 我们经常能在网上看到一些让人哭笑不得的“买家秀”,尤其是上“拼多多买家秀”标签后就能引来更多的关注。这些买家秀从电子产品到服饰到水果食品甚至到鞭炮,应有尽有,都号称是“...
  • 我在拼多多这三年(转载)

    千次阅读 多人点赞 2021-01-15 08:17:14
    首发于浙江大学cc98论坛和个人博客,如果转载请联系cc98官方或者联系本人,字数1w+,阅读时间约为10分钟,从一个底层员工的视角,记录一下拼多多这家公司三年以来的整体变化,本文不涉及技术机密,只讨论行政制度、...
  • 华军软件园——身边的流氓软件

    万次阅读 2017-09-08 10:18:07
    如果你没遇到过流氓软件,你一定没用或很少用电脑、智能手机、PAD,话说得可能绝对了一些,但我想表达的不是你的使用问题,而是想说明流氓软件是如果地常见以及让人深深地厌恶。 以下两段是从百度百科摘取对流氓软件...
  • 1. 软件测试定义 首先要明确测试的定义,所谓测试,就是以检验产品是否满足需求为目标。 而软件测试,自然是为了发现软件(产品)的缺陷而运行软件(产品) 比较标准的软件测试的定义是:在规定的条件下对程序进行操作,以...
  • 我们从营销-商品交易-支付-仓储物流这条常规的电子商务链来看拼多多。(1)商品我国制造业有几个特点:1、工业门类最齐全,产能最大2、呈现区域集群生产,比如江浙、广东福建地...
  • 几年前我们经朋友介绍来到广州白云区一个... 我们做了很多个平台 主要做 淘宝 拼多多 楚楚街(淘大大) 蘑菇街 这几个平台。 由于我们把服装利润设置的不是很高也不是很低,旺季时几个平台加起来平均每天能出100...
  • 刚开始创业时想,自己将控制系统的底层,例如数据库访问层,权限管理等... 进入轨道后,2-3 个月就开发出一个小软件,第一年可以有3-5个小成果,第二年还可以多几个成果,这样不出几年,应该手上会有很多很多可销售
  • 软件测试工程师工作总结

    万次阅读 多人点赞 2018-04-18 21:02:05
     因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知...
  • 缺陷报告【软件测试】

    千次阅读 2019-03-12 17:40:40
    软件缺陷一、软件缺陷定义二、常见的软件缺陷三、软件缺陷产生原因四、软件缺陷的生命周期五、软件缺陷报告应包含的内容六、缺陷报告模板七、企业案例分析案例1缺陷描述案例2缺陷标题提炼 Author:lucky多多 转载...
  • 开源GIS软件初探

    千次阅读 2015-05-26 10:15:29
    谈到GIS软件,首先让我们想到的便是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.1,其发展可谓风生水起。MapInfo软件也不错,可是给人的感觉是渐渐被淘汰了似的,周围使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,245
精华内容 8,098
关键字:

多多打单软件