技术文章

VC基于单文档OpenGL框架

纵然是瞬间 提交于 2021-02-19 11:44:58
本文是在VC6.0的环境下,运用MFC实现的OpenGL最基本框架,需要简单了解MFC编程(会在VC6.0里创建MFC单文档应用程序就行),甚至不必了解OpenGL的知识。以下是具体的步骤。 1 、创建 MFC 单文档应用程序 2 、添加 lib Project->Setting->Link 添加 " *.lib " opengl32.lib glu32.lib glut32.lib glaux.lib 以上的 lib文件需要存在于 VC6.0安装好的目录下的 lib文件夹底下,例如: C:\Program Files\Microsoft Visual Studio\VC98\Lib 如果一些lib文件没有,可以去网上搜下,自己下载。 3 、在 stdafx.h 中添加 OpenGL 头文件 // OpenGL Headers #include <gl\gl.h> // OpenGL32库的头文件 #include <gl\glu.h> // GLu32库的头文件 #include <gl\glut.h> // OpenGL实用库的头文件 #include <gl\glaux.h> // GLaux库的头文件 以上的头文件需要存在于 VC6.0安装好的目录下的 Include下的 GL文件夹下,例如: C:\Program Files\Microsoft Visual Studio

C#基本语法(高级参数的使用)

◇◆丶佛笑我妖孽 提交于 2021-02-19 11:44:29
C#中有三个高级参数,分别是out,ref,params out参数 out,用于在方法中返回多余值。(可以理解为让一个方法返回不同的类型值) 我们通过例子来理解例子的功能:用一个方法,判断用户是否登陆成功(布尔类型),同时提示用户是否登陆成功(字符串类型) 使用: protected void MyLoginButton_Click(object sender, EventArgs e) { // 判断是否登陆成功 string userCode = ""; string userName = ((ASPxTextBox)Login1.FindControl("UserName")).Text;// 获得 前台空间的用户名值 string password = ((ASPxTextBox)Login1.FindControl("Password")).Text; // 获得 密码栏的值 // bool rememberMe = ((CheckBox)Login1.FindControl("RememeberMe")).Checked; // bool rememberMe = ((CheckBox)Login1.FindControl("RememberMe")).Checked; User userService = new User(); if (!userService

初步认识pug

烈酒焚心 提交于 2021-02-19 11:44:10
一、初步认识pug 1.所谓的pug就是我们之前说的jade,也就是一种通过缩进的方式来编写代码的过程,在编译的过程中,我们不需要考虑标签是否闭合的问题。此外,用这种编译方式,加快了我们写代码的速度,也为代码复用提供了便捷。 2.在学习pug基础语法之前,首先要了解pug的命令行的使用,例如: doctype html html head title aaa body 在文件里面写上述程序,然后以xxx.pug的格式保存,再再终端命令输入 pug xxx.pug,按下回车键,我们在回到之前的项目编译器,就会发现在编译器内出现了与xxx同名的xxx.html文件,点开之后会发现html 基础格式已经打印出来了。但是这里有一个问题,基础格式的排版并不像我们平时书写的格式,这里就需要我们在将pug格式转化为HTML的时候输入命令 pug -P xxx.pug;就可以得到我们想要的格式了。为了实时自动更新出现我们修改后的代码样式,我们还可以这样输入终端命令:pug -P -w xxx.pug;不想继续更新,快捷键为:ctrl+c. 3.路径设置 如果并不希望在当前目录下输入编译后的HTML文件,而是有自定义目录的需求,则需要设置-o参数 如下设置,index.html将输入到a目录下面,如果a目录不存在,则会新建a目录: pug index.pug -o a 4.批量编译:

神经网络-全连接层(1)

Deadly 提交于 2021-02-19 11:43:29
接下来聊一聊现在大热的神经网络。最近这几年深度学习发展十分迅速,感觉已经占据了整个机器学习的“半壁江山”。各大会议也是被深度学习占据,引领了一波潮流。深度学习中目前最火热的两大类是卷积神经网络(CNN)和递归神经网络(RNN),就从这两个模型开始聊起。 当然,这两个模型所涉及到概念内容实在太多,要写的东西也比较多,所以为了能把事情讲得更清楚,这里从一些基本概念聊起,大神们不要觉得无聊啊…… 今天扯的是全连接层,也是神经网络中的重要组成部分。关于神经网络是怎么发明出来的这里就不说了。全连接层一般由两个部分组成,为了后面的公式能够更加清楚的表述,以下的变量名中 上标表示所在的层,下标表示一个向量或矩阵内的行列号: 线性部分:主要做线性转换,输入用X表示,输出用Z表示 非线性部分:那当然是做非线性变换了,输入用线性部分的输出Z表示,输出用X表示。 线性部分 线性部分做了什么事情呢?简单来说就是对输入数据做不同角度的分析,得出该角度下对整体输入数据的判断。 这么说有点抽象,举一个实际点的例子,就拿CNN的入门case——MNIST举例。MNIST的例子在此不多说了,它是一个手写数字的识别项目,输入是一张28*28的二值图,输出是0-9这是个数字,这里假设我们采用完全全连接的模型,那么我们的输入就是28*28=784个像素点。数据显示到屏幕上大概是这个样子: 对于我们来说

全连接层和激活层

时间秒杀一切 提交于 2021-02-19 11:42:52
1. 全连接层 经过前面若干次卷积 + 激励 + 池化后,终于来到了输出层,模型会将学到的一个高质量的特征图片全连接层。其实在全连接层之前,如果神经元数目过大,学习能力强,有可能出现过拟合。因此,可以引入 dropout 操作,来随机删除神经网络中的部分神经元,来解决此问题。还可以进行局部归一化、数据增强等操作,来增加鲁棒性。 当来到了全连接层之后,可以理解为一个简单的多分类神经网络(如: BP 神经网络),通过 softmax 函数得到最终的输出。整个模型训练完毕。 两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。也就是跟传统的神经网络神经元的连接方式是一样的: 全连接层( fully connected layers , FC )在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。 全连接的核心操作就是矩阵向量乘积: y=W*x 本质就是由一个特征空间线性变换到另一个特征空间。目标空间的任一维——也就是隐层的一个 cell ——都认为会受到源空间的每一维的影响。不考虑严谨,可以说,目标向量是源向量的加权和。 2.激活函数 所谓激活函数( Activation Function ),就是在 人工神经网络 的神经元上运行的 函数

Postman----登录接口返回的reponse中token值传递给其他接口的一个简单接口测试示例

百般思念 提交于 2021-02-19 11:42:25
注:   在进行接口测试时,我们都需要使用登录,并且其他的接口都要在登录后进行,那么必不可少的会使用到将登录接口的reponse返回结果中的某些参数值需要进行返回,并传递给其他接口,这样才可以进行登录后的接口操作。如下已我在项目中的实战操作为示例,以此来讲解在postman中,如何将reponse的结果值进行返回,并且传递给其他接口作为headers的参数进行测试。 概览测试步骤:   (1)录制login接口,并进行相关headers和body参数的填写;   (2)查看login接口运行是否成功,如成功查看reponse中的自己想要的参数值是否已包含;   (3)Tests中进行语句的编写,获取login的reponse中相关值,通过console查看获取值是否正确;   (4)添加全局变量,将所需的值加入到全局变量中,首次给入默认值;   (5)非登录接口的其他接口的headers中传递值,写法{{xxx}},执行查看是否成功。 具体示例的操作步骤如下: 1、在右侧的collection中,新建一个文件夹,并且在此文件夹中创建login接口。headers和body中的参数是测试一个接口必不可少的,因此此处填写的是我们项目中的login时所需的一些参数,根据自己项目的实际情况可进行填写。   注意点:login时的接口,无需任何的参数传递

java nio详解

蹲街弑〆低调 提交于 2021-02-19 11:41:58
NIO简介 NIO是一种同步非阻塞的I/O模型,在Java 1.4 中引入了NIO框架,对应 java.nio 包,提供了 Channel , Selector,Buffer等抽象。 NIO中的N可以理解为Non-blocking,不单纯是New。它支持面向缓冲的,基于通道的I/O操作方法。 NIO提供了与传统BIO模型中的 Socket 和 ServerSocket 相对应的 SocketChannel 和 ServerSocketChannel 两种不同的套接字通道实现,两种通道都支持阻塞和非阻塞两种模式。阻塞模式使用就像传统中的支持一样,比较简单,但是性能和可靠性都不好;非阻塞模式正好与之相反。对于低负载、低并发的应用程序,可以使用同步阻塞I/O来提升开发速率和更好的维护性;对于高负载、高并发的(网络)应用,应使用 NIO 的非阻塞模式来开发。 NIO的特性/NIO与IO区别 如果是在面试中回答这个问题,我觉得首先肯定要从 NIO 流是非阻塞 IO 而 IO 流是阻塞 IO 说起。然后,可以从 NIO 的3个核心组件/特性为 NIO 带来的一些改进来分析。如果,你把这些都回答上了我觉得你对于 NIO 就有了更为深入一点的认识,面试官问到你这个问题,你也能很轻松的回答上来了。 1、Non-blocking IO(非阻塞IO) IO流是阻塞的,NIO流是不阻塞的。 Java

HP大中华区总裁孙振耀退休十五天后九大感言

百般思念 提交于 2021-02-19 11:41:03
原文网址链接: http://club.tcjl.com.cn/?p=3861 一、关于工作与生活   我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽,最后大多跳到民企,比方说,唐骏。外企员工的成功很大程度上是公司的成功,并非个人的成功,西门子的确比国美大,但并不代表西门子中国经理比国美的老板强,甚至可以说差得很远。而进外企的人往往并不能很早理解这一点,把自己的成功90%归功于自己的能力,实际上,外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了问题来了,当这些经理人40多岁了,他们的薪资要求变得很高,而他们的才能其实又不是那么出众,作为外企公司的老板,你会怎么选择?有的是只要不高薪水的,要出位的精明强干精力冲沛的年轻人,有的是,为什么还要用你?   从上面这个例子,其实可以看到我们的工作轨迹,二三十岁的时候,生活的压力还比较小,身体还比较好,上面的父母身体还好,下面又没有孩子,不用还房贷,也没有孩子要上大学,当个外企小白领还是很光鲜的,挣得不多也够花了。但是人终归要结婚生子,终归会老,到了40岁,父母老了,要看病要吃药,要有人看护,自己要还房贷,要过基本体面的生活,要养小孩……那个时候需要挣多少钱才够花才重要。所以

一次完整http请求过程

旧城冷巷雨未停 提交于 2021-02-19 11:40:22
1)建立TCP连接(之前需要完成DNS的解析) 在HTTP工作开始之前,客户单首先通过网络与服务器建立连接,该连接是通过TCP来完成的, 该协议与IP协议共同构建Internet,即著名的 TCP/IP协议族,因此Internet又被称为TCP/IP网络,HTTP是比TCP更高层次的应用层析协议,根据规则,只有低层协议建立后,才能进行高层协议的连接,一次你,首先要建立TCP连接,一般TCP连接的端口号80; 2)客户端向服务器端发送请求命令 一旦建立TCP连接,客户端就会向服务器发送请求命令,例如 GET/SAMPLE/hello.jsp HTTP/1.1 请求方法+请求URI+HTTP协议版本 3)客户端发送请求头信息 客户端发送请命令之后,还要以头信息单点心事先服务器发一些别的额信息,之后客户端发送一空白行来通知服务器,它已经结束了盖头信息的发送; 4)服务器端应答 客户端向服务器发出请求后,服务器回应客户端的额响应,例如 HTTP/1.1 200 ok 协议的版本号+响应状态码+回复信息 5)服务器返回响应头信息 正如客户端会随同请求发送关于自身的信息一样,服务器也随同响应向用户发送关于他自己的数据及被请求的文档。 6)服务器向客户端发送数据 服务器向客户端发型头信息后,它好UI发送一个空白行来表示偷袭新的发送到此结束,接着,它以Content

php后端跨域处理

岁酱吖の 提交于 2021-02-19 11:39:47
本文通过设置Access-Control-Allow-Origin来实现跨域。本文重点是说在处理的 请写 Access-Control-Allow-Credentials:true 这个true必须是字符串形式,否则被解析为1 例如: 客户端的域名是zhibo.nandakaoyanapp .com , 而请求的域名是 www.nandakaoyanapp .com 。 如果直接使用ajax访问,会有以下错误: XMLHttpRequest cannot load https:// www.nandakaoyanapp .com . No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin ' https:// www.nandakaoyanapp .com ' is therefore not allowed access. 1、允许单个域名访问 指定某域名( http://www.nandakaoyanapp.com )跨域访问,则只需在 www.nandakaoyanapp .com 文件头部添加如下代码: header('Access-Control-Allow-Origin: zhibo.nandakaoyanapp.com '); 2、允许多个域名访问