h2

ASP.NET MVC Model绑定的简单应用

孤街浪徒 提交于 2020-03-24 09:04:55
3 月,跳不动了?>>> Model绑定是 MVC 框架根据 HTTP 请求数据创建 .NET 对象的一个过程。 一、简单类型 1、单一值 获取值 二、多个值 获取值 三、数组 获取值 二、复杂类型 一、简单类型与数组组合 获取值 二、简单类型与集合 localhost:1234/ModelBinder?name=emrys&age=25&friends[0].name=lilei&friends[0].age=22&friends[1].name=hanmeimei&friends[1].age=25 获取值 来源: oschina 链接: https://my.oschina.net/u/4325154/blog/3209885

环境与成本如何抉择?电动车电池回收再利用小科普

百般思念 提交于 2020-03-24 09:01:38
3 月,跳不动了?>>> 老化的电动车电池 雷锋网新智驾按:彭博社此前曾发布报告称,到 2040 年全球电动车保有量将飙升至 5.59 亿台。不过,电动车不是永动机,它的电池也有老化的一天,而且谁也不想让电池中的那些有害物质伤害我们的环境。 因此,政策制定者和研究人员已经开始考虑如何处理那些电动车上寿终正寝的电池了,而回收再利用就是选项之一。 近日,卡耐基梅隆大学的研究人员在《自然》杂志子刊《Nature Sustainability》上发表了一篇论文,论述了车用电池回收再利用的污染与经济成本。 论文中提到了三种类型的正极材料(电池中的阴极):氧化镍锰钴(NMC)、氧化镍钴铝(NCA)和磷酸铁(LFP)。前两种正极材料一般用在乘用车里,而 LFP 则是电动巴士的最爱(比亚迪的电动大巴就用了 LFP 电池)。 鉴于电池包装对再利用方法的选择非常重要,论文还对圆柱电池(特斯拉用的电芯类型)和软包电池进行了对比。 研究人员还对再利用方法进行了对比,其中包括火法冶金再利用(将电池中有价值的部分暴露在高温下,随后将这些金属当做合金回收),湿法冶金再利用(从电池中滤出有价值的金属,随后从溶液中分离出所需的金属)和“直接正极再利用”(电池正极保留原样,但添加新的锂,使电池恢复原有性能)。 为了避免再利用过程中对环境造成污染,研究人员还对多种电池化学原料进行了生命周期分析,他们估算了污染

架构设计方法

帅比萌擦擦* 提交于 2020-03-24 08:59:43
3 月,跳不动了?>>> 摘要: 原创出处 https://juejin.im/post/5b2c6669e51d4558c91ba776 「陈彩华」欢迎转载,保留摘要,谢谢! 1. 基本概念和目的 2. 架构设计复杂度来源 2.1 高性能 2.2 高可用 2.3 可扩展性 2.4 低成本、安全、规模 3. 架构设计三原则 3.1 合适原则 3.2 简单原则 3.3 演化原则 4. 架构设计的流程 1. 基本概念和目的 架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出实际业务实际情况的复杂点,然后有有 针对性地解决问题 ,即: 有的放矢,而不是贪大求全 。 在实际情况中,不一定每个系统都要做架构设计,需要结合实际情况。有时候最简单的设计开发效率反而是最高的,架构设计毕竟要投入时间和人力,这部分投入如果用来尽早编码,项目也许会更快。 2. 架构设计复杂度来源 2.1 高性能 2.2 高可用 2.3 可扩展性 2.4 低成本、安全、规模 3. 架构设计三原则 3.1 合适原则 GFS为何在Google诞生,而不是在Microsoft诞生,其中Google有那么庞大的数据是一个主要因素,而不是因为Google的工程师比Microsoft的工程师更加聪明。 真正优秀的架构都是企业 在当前人力、条件

Oracle 12c ADG备库执行sql报错ORA-22303、ORA-16000、ORA-06508、ORA-06512

淺唱寂寞╮ 提交于 2020-03-24 08:59:28
3 月,跳不动了?>>> 一、背景介绍 某客户数据库备库执行sql失败,数据库环境:主库(12.2.0.1 RAC),备库(12.2.0.1 单机)RAC到单机搭建了ADG,数据是从12.1.0.2通过erp导入的,报错信息:ORA-22303、ORA-16000、ORA-06508、ORA-06512,具体报错内容见下文。 二、问题描述 1、执行SQL&报错 2020-03-03 15:34:32.830 [job-81740957] INFO SingleTableSplitUtil - split pk [sql=SELECT * FROM ( SELECT xxx FROM xxx.xxx SAMPLE (0.1) WHERE (xxx IS NOT NULL) ORDER BY DBMS_RANDOM.VALUE) WHERE ROWNUM <= 15 ORDER by xxx ASC] is running... 2020-03-03 15:34:32.969 [job-81740957] ERROR JobContainer - Exception when job run com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-07], Description:

二、Spark性能优化:资源调优篇

懵懂的女人 提交于 2020-03-24 08:46:16
3 月,跳不动了?>>> 在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪种情况,都会导致Spark作业的运行效率低下,甚至根本无法运行。因此我们必须对Spark作业的资源使用原理有一个清晰的认识,并知道在Spark作业运行过程中,有哪些资源参数是可以设置的,以及如何设置合适的参数值。 1、Spark作业基本运行原理 详细原理见上图。我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程。根据你使用的部署模式(deploy-mode)不同,Driver进程可能在本地启动,也可能在集群中某个工作节点上启动。Driver进程本身会根据我们设置的参数,占有一定数量的内存和CPU core。而Driver进程要做的第一件事情,就是向集群管理器(可以是Spark Standalone集群,也可以是其他的资源管理集群,美团•大众点评使用的是YARN作为资源管理集群)申请运行Spark作业需要使用的资源

Introduction to Support Vector Machines

耗尽温柔 提交于 2020-03-24 08:28:26
3 月,跳不动了?>>> Goal In this tutorial you will learn how to: Use the OpenCV functions cv::ml::SVM::train to build a classifier based on SVMs and cv::ml::SVM::predict to test its performance. What is a SVM? A Support Vector Machine (SVM) is a discriminative classifier formally defined by a separating hyperplane. In other words, given labeled training data ( supervised learning ), the algorithm outputs an optimal hyperplane which categorizes new examples. In which sense is the hyperplane obtained optimal? Let's consider the following simple problem: For a linearly separable set of 2D-points which

运维利器万能的 strace

十年热恋 提交于 2020-03-24 07:33:41
3 月,跳不动了?>>> strace是什么? 按照strace官网的描述, strace是一个可用于诊断、调试和教学的 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 strace底层使用内核的ptrace特性来实现其功能。 在运维的日常工作中,故障处理和问题诊断是个主要的内容,也是必备的技能。strace作为一种动态跟踪工具,能够帮助运维高效地定位进程和服务故障。它像是一个侦探,通过系统调用的蛛丝马迹,告诉你异常的真相。 strace能做什么? 运维工程师都是实践派的人,我们还是先来个例子吧。 我们从别的机器copy了个叫做some_server的软件包过来,开发说直接启动就行,啥都不用改。可是尝试启动时却报错,根本起不来! 启动命令: 1 . / some _ server . . / conf / some_server . conf 输出: 1 2 FATAL : InitLogFile failed iRet : - 1 ! Init error : - 1655 为什么起不来呢?从日志看,似乎是初始化日志文件失败,真相到底怎样呢?我们用strace来看看。 1 strace - tt - f . / some _ server . . / conf / some_server . conf 输出:

Django-rest-framework(七)swagger使用

戏子无情 提交于 2020-03-24 07:18:43
3 月,跳不动了?>>> 在我们接口开发完之后,需要交付给别人对接,在没有使用swagger的时候,我们需要单独编写一份api接口文档,由postman之类的工具进行请求得到返回的结果。而有了swagger之后,可以通过提取接口代码中的注释来生成文档,并且可以直接在浏览器中调用,获取返回结果。先看下效果 安装 pip install django-rest-swagger setting.py 文件中添加 INSTALLED_APPS = [ ... 'rest_framework_swagger', ... ] 配置 在settings.py中可以添加修改swagger相关的配置 SWAGGER_SETTINGS = { # 这里可以用获取到的token来登录 'SECURITY_DEFINITIONS': { 'api_key':{ 'type': 'apiKey', 'in':'query', # token位置在url中 'name':'token' # 验权的字段 } }, 'USE_SESSION_AUTH': False, 'JSON_EDITOR': False, # False,用户可以自己编辑格式,不用按照serializers中的数据添加。True,会有多个输入框,输入serializer对应的字段的值 } urls.py 中添加一下代码 from rest

Django-rest-framework(三)view and viewsets使用

非 Y 不嫁゛ 提交于 2020-03-24 07:18:27
3 月,跳不动了?>>> DRF 中有多种view和viewsets,我整理了一下,如下图所示,接下来,我们分别了解下view,viewsets。 APIView 所有的view,viewsets都是继承APIView,而APIView是继承的django的django.views.generic.View, 然后增加了一些通用的操作,和重载了 as_view , dispatch , options , http_method_not_allowed 方法来适应DRF相关的配置和后续的使用。 在直接使用APIView的时候,就和使用django View一样,分发规则也是一样,GET请求分发到了get方法,POST请求分发到post方法, 所以路由的注册方式也一样。所以在这里不做演示了。 GenericAPIView 通用view的基础视图,其他的基础view都是继承了这个view,我们可以来看看源码里面实现了那些个方法 # 为了简化,我删掉了注释和具体的实现, class GenericAPIView(views.APIView): queryset = None # 这些会在mixins中用到 serializer_class = None lookup_field = 'pk' lookup_url_kwarg = None pagination_class = api

基于canvas的游戏制作

♀尐吖头ヾ 提交于 2020-03-24 00:32:37
3 月,跳不动了?>>> 使用canvas画布设计游戏 一、目录 1、Canvas介绍 2、案例 二、canvas介绍 什么是Canvas元素 HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法,可以创建丰富的图形引用。 创建Canvas元素 <canvas id="canvas" width="宽度" height="高度" style="border: 2px solid #000;background: #fff;"></canvas> 三、案例实操 1、人物拼图游戏 运行结果: 代码: 难度选择: <form> <label>低</label> <input type="range" id="scale" value="4" min="3" max="5" step="1"> <label>高</label> </form> 创建画布: <canvas id="puzzle" width="480px" height="480px"></canvas> 链接js: <script src="slinding.js"></script> js代码: 1、调用getContext()方法获取上下文,并画图。 2、创建一个和背景大小一样的画布