- glsl着色器学习 (十二)平移
superTiger_y
着色器学习
平移和旋转、缩放是一样的,替换成平移矩阵即可;//创建一个单位矩阵consttranslateYMatrix=mat4.create();//沿着Y轴向下平移1个单位mat4.fromTranslation(translateYMatrix,[0,-1,0]);//设置矩阵gl.uniformMatrix4fv(matrixUniformLocation,false,translateYMatri
- glsl着色器学习(二)
superTiger_y
着色器学习
书接上文,第一篇文章已经将顶点着色器和片段着色器的内容编写好了,这篇文章就创建着色器并编译创建顶点着色器对象constvertexShader=gl.createShader(gl.VERTEEX_SHADER);gl.shaderSource(vertexShader,vsGLSL);gl.compileShader(vertexShader);if(!gl.getShaderParameter
- OpenGL ES: 纹理采样 texture sample
liuhongyi0104
opengl
严正声明:作者:psklf出处:https://www.cnblogs.com/psklf/p/5762308.html欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任!Sampler(GLSL)Sampler通常是在Fragmentshader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的。一个sampler
- 对于着色器语言 opengl 和 direct3d 有区别吗?
插件开发
Windows着色器3d
OpenGL和Direct3D是两种不同的图形API(应用程序接口),它们都支持着色器编程,但在语法、结构和一些功能细节上存在差异。OpenGL着色器语言:OpenGL使用GLSL(OpenGLShadingLanguage)作为其着色器编程语言。GLSL可以在顶点、片段、几何以及其他类型的着色器中编写程序来定义图形渲染的各个阶段的行为。GLSL在跨平台兼容性方面表现优秀,适用于多种操作系统和硬件
- Ubuntu20.04 编译ogre
黑不溜秋的
三维引擎专栏ogre游戏引擎
一:编译Ogresudoapt-yinstalllibgles2-mesa-devlibvulkan-devsudoapt-yinstallglslang-devsudoapt-yinstalllibsdl2-devlibxt-devlibxaw7-devdoxygensudoapt-yinstallmercurialwgethttps://codeload.github.com/OGRECave
- 08-OpenGL ES 分屏滤镜
SPIREJ
分屏滤镜分析分屏滤镜.jpg分屏滤镜-分2屏分屏滤镜-分2屏.jpg分屏滤镜-分4屏分屏滤镜-分4屏.jpg案例-分屏滤镜导图案例分屏滤镜.jpeg源码链接https://github.com/SPIREJ/OpenGLES_GLSL效果图效果图.gif
- Python之OpenGL笔记(19):正弦波叠加为方波的GLSL实现
大龙10
一、目的1、正弦波叠加为方波的GLSL实现;二、程序运行结果三、正弦波合成方波的处理1、傅里叶函数分解方波公式: f(y)=4/PI*(sinx+sin3x/3+sin5x/5+...);2、实际程序里面公式为: f(y)=sinx+sin3x/3+sin5x/5+...3、键盘控制 加入了正弦波合成方波的处理,使用箭头键移动正弦波,使用上下箭头进行振幅调整,使用+,-号来调整正弦波叠加的次
- 关于creator材质和shader区别
我爬到树上等花开
什么是Shader?Shader是一种给显卡GPU执行的程序,是一种绘制算法,显卡的渲染流水线加载Shader代码后,就能够在绘制的时候执行Shader的代码。Cocos有自己的一个Shader的结构,Shader的开发语言cocos使用的是GLSL编程语言。什么是材质?材质是一种配置文件,选好一个Shader,并指定好这个Shader所需要的参数;cocos物体是如何绘制的?以Sprite组件为
- 15.1 OpenGL可编程片段处理:片段着色器变量
乘风之羽
OpenGL图形渲染
片段着色器变量FragmentShaderVariables在OpenGL着色语言(GLSL)中,片段着色器(FragmentShader)具有以下功能和访问权限:访问当前程序对象的uniforms:片段着色器可以读取当前关联的程序对象中的uniform变量。这些全局变量用于传递不随顶点变化的数据,如光照参数、变换矩阵等,其存储限制及操作方法在第7.6节中有详细描述。使用纹理采样器:片段着色器能够
- 关于在VS中设置支持查看GLSL语言代码
jenny_paofu
c++
关于在VS中设置支持查看GLSL语言代码背景当我们在vs中编写shader的glsl语言时,会发现有些关键字并没有标识出来,这时候我们可以在扩展中下载GLSL相关扩展包。内容步骤在vs上方工具栏中,找到扩展(X)=====》扩展找到GLSL语言扩展,点击下载出现下面页面稍等片刻后,将弹出“VSIXInstaller”插件安装程序,点击修改然后等待过程中出现以下界面下载完成后出现页面,会提示重启vs
- UnityShader——02三大主流编程语言
Aubyn11
UnityShaderunity
三大主流编程语言ShaderLanguageShaderlanguage的发展方向是设计出在便携性方面可以与C++/JAVA相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“利用图形硬件的并行性,提高算法的效率”Shaderlanguage目前主要有3种语言,基于OpenGL的OpenGLShadingLanguage,简称GLSL,基于DirectX的HighLevelShadingLan
- 第十四节—GLSL语法
L_Ares
本文为L_Ares个人写作,如需转载请表明原文出处。GLSL语法和C语言的相似,但是GLSL中是没有指针的。另外,GLSL一般情况下都是没有语法提示的,所以最好不要写复杂的GLSL语言,除非你有业务需求,不然的话,很容易写错,而且找错也是很难的事情。一、变量和变量类型1.整型:int。代表至少包含16位的有符号的整数。可以是8进制,10进制,16进制。uint。无符号整型。例如:uintuValu
- 【OpenGL】--- 使用Qt与OpenGL绘制纹理贴图的正方形
Anshn
OpenGL计算机视觉图形渲染
OpenGL是一款强大的图形渲染库,而Qt则提供了一套方便的工具集,使得在Qt应用程序中集成OpenGL变得相对简单。本文将介绍如何使用Qt和OpenGL,通过单独的顶点着色器和片段着色器文件,绘制一个带有纹理贴图的正方形。我们将分步讲解,确保你能轻松理解每个步骤。1.准备工作在创建一个QtWidgets应用程序项目后,首先在项目的根目录下创建两个文件,分别命名为vertexshader.glsl
- 11.1 OpenGL可编程顶点处理:顶点着色器
乘风之羽
OpenGL图形渲染
顶点着色器VertexShaders顶点属性(VertexAttributes)在图形编程中,尤其是在OpenGL等图形API中,顶点属性(VertexAttributes)是图形管线处理过程中用于描述每个顶点特征的数据。这些数据通过绘制命令从应用程序传递给图形处理器,并与顶点着色器中的命名属性变量绑定。属性绑定:顶点着色器可以通过location限定符(在GLSL源码中)或SPIR-V着色器的L
- OpenGL ES 入门之旅 -- GLSL光照计算
Henry_Jeannie
冯氏光照模型首先,在现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是我们有限的计算能力所无法模拟的。因此OpenGL的光照使用的是简化的模型,对现实的情况进行近似,这样处理起来会更容易一些。这些光照模型都是基于我们对光的物理特性的理解。其中一个模型被称为冯氏光照模型(PhongLightingModel)。冯氏光照模型的主要结构由3个元素组成:环境(Ambient)光照、漫反射(Diff
- 【深圳大学计算机图形学】期末大作业 虚拟场景建模
归忆_AC
计算机图形学深圳大学计算机图形学opengl期末大作业虚拟场景建模
目录实验内容实验要求实验过程Bug解决实验结论实验代码期末大作业——main.cpp期末大作业——Camera.cpp期末大作业——MeshPainter.cpp期末大作业——TriMesh.cpp期末大作业——fshader.glsl期末大作业——fshader_1.glsl期末大作业——vshader.glsl实验内容在屏幕上显示一个包含多个虚拟物体的虚拟场景,并且响应一定的用户交互操作。如以
- VScode配置glsl环境
混元太极马保国
GLSLvscodeidevisualstudiocodeglsl
目录1、插件安装2、代码补全配置3、环境测试1、插件安装点击扩展安装图中三个插件2、代码补全配置GLSLlint插件不附带着色器文件验证器,因此必须自己下载并在VSCode中设置路径。1、点击链接:Releases·KhronosGroup/glslang·GitHub2、下载对应系统的安装文件,我的为windows系统所以下载了红圈的文件。3、解压到喜欢的位置4、打开bin目录复制glslang
- GLSL ES 1.0
SauronKing
#WebGLwebgl
GLSLES概述写在前面程序是大小写敏感的每一个语句都应该以英文分号结束一个shader必须包含一个main函数,该函数不接受任何参数,并且返回voidvoidmain(){}数据值类型GLSL支持三种数据类型:整型浮点型:必须包含小数点,不然会被认为是浮点型,比如1表示整形,1.0才表示浮点型布尔类型GLSL是强类型语言,这意味着:将浮点数赋值给一个整型变量是不对的,同理,将一个整数赋值给浮点数
- OpenGL统一变量 Uniform Variables
乘风之羽
OpenGL图形渲染
OpenGL统一变量UniformVariables在OpenGL着色器编程中,uniform变量是一种特殊的全局变量,它们的作用是在图形渲染管线的不同阶段(如顶点着色器、片段着色器等)共享常量数据。uniform变量的值由CPU端的应用程序设置,并且在整个渲染调用过程中保持不变,这意味着所有在这个渲染批次中的顶点或片段都将使用同一组uniform变量的值。特性与用途:声明与类型:在GLSL(Op
- 跟着cherno手搓游戏引擎【21】shaderLibrary(shader管理类)
larito
游戏引擎
前置:ytpch.h:#pragmaonce#include#include#include#include#include#include#include#include#include#include#include#ifdefYT_PLATFORM_WINDOWS#include#endif//YT_PLATFORM_WINDOWS创建glsl文件:Texture.glsl:#typever
- iOS图像处理----OpenGL ES之灰色滤镜
码农--xc
图像处理OpenGLOpenGLES滤镜
目录1、设置图层2、设置图形上下文3、设置渲染缓冲区(renderBuffer)4、设置帧缓冲区(frameBuffer)5、编译、链接着色器(shader)6、设置VBO(VertexBufferObjects)7、设置纹理8、渲染不采用GLKBaseEffect,使用编译链接自定义着色器(shader)。用简单的glsl语言来实现顶点、片元着色器,并图形进行简单的变换。思路:1、设置图层2、设
- cesium polyline 自定义材质图片运动线
阿卡坤
giscesiumjs前端javascript
cesiumpolyline自定义图片运动线捣鼓了一下cesium的自定义Material,使用glsl实现自定义材质的polyline,视角缩放图片也不会变形,并支持材质沿线运动。下面逐步讲一下怎么实现的,同时也是对cesium自定义Material的写法有个初步认识。一、新建自定义Material我们参考cesium源码中的任意一个MaterialProperty比如PolylineOutli
- OpenGL从入门到放弃 #04 Shader
MisakiMel
上节我们学习了如何实现简单的顶点着色器和片段着色器,其中涉及到了着色器之间简单的输入输出和编写着色器源码的专用语言GLSL。但上节终究学的只是皮毛,这节将深入研究着色器,然后实现一个着色器类的封装。GLSL GLSL是编写着色器的一种专为图形计算量身定制的语言,它里面包含一些针对向量和矩阵操作的特性。可以先看看一个着色器典型的规范:#versionversion_numberintypein
- OpenGL 入门(三)— Shader(着色器)
iukam
OpenGL开发之路着色器c++OpenGL开发语言vscode
文章目录前言GLSL数据类型输入与输出顶点着色器片段着色器Uniform多个属性着色器类模板创建着色器程序创建Shader脚本使用模板和Shader脚本文件前言着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信。它们之间唯一的沟通只有通过输入和输
- (自用)learnOpenGL-高级OpenGL-高级数据、高级glsl
NatsuKiiiiii
算法
高级数据这一节中,我们将讨论一些更有意思的缓冲函数,以及我们该如何使用纹理对象来储存大量的数据(纹理的部分还没有完成)。先来回顾一下之前有关的缓冲内存,OpenGL中的缓冲只是一个管理特定内存块的对象,没有其它更多的功能了。在我们将它绑定到一个缓冲目标(BufferTarget)时,我们才赋予了其意义。当我们绑定一个缓冲到GL_ARRAY_BUFFER时,它就是一个顶点数组缓冲,但我们也可以很容易
- GLSL绘制金字塔--纹理和颜色的混合
黑眼豆豆_
首先,我们看效果,如图所示,我们在屏幕上展示一个金子塔形状,同时通过设置定时器让它进行旋转。屏幕录制2020-08-05下午2.20.48.gif前言之前的文章我们已经用GLSL绘制了一张图片,其实针对GLSL来说,前面的准备工作的都是类似的,而最主要的区别在于绘制工作和着色器(Shader)代码的绘制。如果大家有兴趣,可以看看之前写的GLSL应用--显示图形。准备工作定义一些属性#import#
- obj模型显示--Apple的学习笔记
applecai
昨天做的牛牛是平面的,今天改成立体的了,renderpass描述符中添加了,并且在pipeline绑定了深度测试,结果不正确,后来想起来需要创建深度缓冲区,其实就是一个深度图像,因为imageobj需要和他对比,然后就可以实现立体中的背面遮挡。我之前的博客中glsl入门--Apple的学习笔记已经学习过这块理论。作业cow.png
- OpenGL系列之十七:实现人脸贴纸
itfitness
目录效果展示相关文章OpenGL系列之一:OpenGL第一个程序OpenGL系列之二:绘制三角形OpenGL系列之三:三角形顶点增加颜色OpenGL系列之四:绘制四边形OpenGL系列之五:绘制点和线OpenGL系列之六:绘制立方体OpenGL系列之七:纹理贴图OpenGL系列之八:立方体纹理贴图OpenGL系列之九:glsl着色器语言OpenGL系列之十:VAO、VBO、EBO的应用OpenGL
- iOS 使用GLSL实现旋转金字塔
东旭39
索引顶点绘制一个金字塔需要5个面,4个侧边三角形和底部两个三角形。如果使用glDrawArray绘制金字塔,需要6个三角形,共18个顶点。这次使用索引绘图/*参数列表:mode:要呈现的画图的模型GL_POINTSGL_LINESGL_LINE_LOOPGL_LINE_STRIPGL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIANGLE_FANcount:绘图个数type:类
- vulkan中的texture(VkImage、VkImageView、VkSampler、VkDeviceMemory)
宗浩多捞
Vulkanc++游戏引擎
在Vulkan中,以下是这几个概念的简要说明以及它们之间的关系:Texture2D:纹理在vulkanAPI中并没有一个结构体来表示,它是着色器语言中(比如GLSL)的一种概念。在着色器中,sampler2D类型的变量表示一个二维纹理。VkImage:它是Vulkan中表示图像的对象,负责存储图像的元数据(metadata),但不存储像素的具体值,比如宽度、高度、格式等。类似于VkBuffer对象
- jQuery 键盘事件keydown ,keypress ,keyup介绍
107x
jsjquerykeydownkeypresskeyup
本文章总结了下些关于jQuery 键盘事件keydown ,keypress ,keyup介绍,有需要了解的朋友可参考。
一、首先需要知道的是: 1、keydown() keydown事件会在键盘按下时触发. 2、keyup() 代码如下 复制代码
$('input').keyup(funciton(){  
- AngularJS中的Promise
bijian1013
JavaScriptAngularJSPromise
一.Promise
Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性。其核心是,promise是一个带有then()函数的对象。
为了展示它的优点,下面来看一个例子,其中需要获取用户当前的配置文件:
var cu
- c++ 用数组实现栈类
CrazyMizzz
数据结构C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T, int SIZE = 50>
class Stack{
private:
T list[SIZE];//数组存放栈的元素
int top;//栈顶位置
public:
Stack(
- java和c语言的雷同
麦田的设计者
java递归scaner
软件启动时的初始化代码,加载用户信息2015年5月27号
从头学java二
1、语言的三种基本结构:顺序、选择、循环。废话不多说,需要指出一下几点:
a、return语句的功能除了作为函数返回值以外,还起到结束本函数的功能,return后的语句
不会再继续执行。
b、for循环相比于whi
- LINUX环境并发服务器的三种实现模型
被触发
linux
服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。
1 循环服务器与并发服务器模型
在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。
目前最常用的服务器模型有:
·循环服务器:服务器在同一时刻只能响应一个客户端的请求
·并发服务器:服
- Oracle数据库查询指令
肆无忌惮_
oracle数据库
20140920
单表查询
-- 查询************************************************************************************************************
-- 使用scott用户登录
-- 查看emp表
desc emp
- ext右下角浮动窗口
知了ing
JavaScriptext
第一种
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/
- 浅谈REDIS数据库的键值设计
矮蛋蛋
redis
http://www.cnblogs.com/aidandan/
原文地址:http://www.hoterran.info/redis_kv_design
丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。
- maven编译可执行jar包
alleni123
maven
http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven
<build>
<plugins>
<plugin>
<artifactId>maven-asse
- 人力资源在现代企业中的作用
百合不是茶
HR 企业管理
//人力资源在在企业中的作用人力资源为什么会存在,人力资源究竟是干什么的 人力资源管理是对管理模式一次大的创新,人力资源兴起的原因有以下点: 工业时代的国际化竞争,现代市场的风险管控等等。所以人力资源 在现代经济竞争中的优势明显的存在,人力资源在集团类公司中存在着 明显的优势(鸿海集团),有一次笔者亲自去体验过红海集团的招聘,只 知道人力资源是管理企业招聘的 当时我被招聘上了,当时给我们培训 的人
- Linux自启动设置详解
bijian1013
linux
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。
阅读之前建议先看一下附图。
本文中假设inittab中设置的init tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc
- Spring Aop Schema实现
bijian1013
javaspringAOP
本例使用的是Spring2.5
1.Aop配置文件spring-aop.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmln
- 【Gson七】Gson预定义类型适配器
bit1129
gson
Gson提供了丰富的预定义类型适配器,在对象和JSON串之间进行序列化和反序列化时,指定对象和字符串之间的转换方式,
DateTypeAdapter
public final class DateTypeAdapter extends TypeAdapter<Date> {
public static final TypeAdapterFacto
- 【Spark八十八】Spark Streaming累加器操作(updateStateByKey)
bit1129
update
在实时计算的实际应用中,有时除了需要关心一个时间间隔内的数据,有时还可能会对整个实时计算的所有时间间隔内产生的相关数据进行统计。
比如: 对Nginx的access.log实时监控请求404时,有时除了需要统计某个时间间隔内出现的次数,有时还需要统计一整天出现了多少次404,也就是说404监控横跨多个时间间隔。
Spark Streaming的解决方案是累加器,工作原理是,定义
- linux系统下通过shell脚本快速找到哪个进程在写文件
ronin47
一个文件正在被进程写 我想查看这个进程 文件一直在增大 找不到谁在写 使用lsof也没找到
这个问题挺有普遍性的,解决方法应该很多,这里我给大家提个比较直观的方法。
linux下每个文件都会在某个块设备上存放,当然也都有相应的inode, 那么透过vfs.write我们就可以知道谁在不停的写入特定的设备上的inode。
幸运的是systemtap的安装包里带了inodewatch.stp,位
- java-两种方法求第一个最长的可重复子串
bylijinnan
java算法
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class MaxPrefix {
public static void main(String[] args) {
String str="abbdabcdabcx";
- Netty源码学习-ServerBootstrap启动及事件处理过程
bylijinnan
javanetty
Netty是采用了Reactor模式的多线程版本,建议先看下面这篇文章了解一下Reactor模式:
http://bylijinnan.iteye.com/blog/1992325
Netty的启动及事件处理的流程,基本上是按照上面这篇文章来走的
文章里面提到的操作,每一步都能在Netty里面找到对应的代码
其中Reactor里面的Acceptor就对应Netty的ServerBo
- servelt filter listener 的生命周期
cngolon
filterlistenerservelt生命周期
1. servlet 当第一次请求一个servlet资源时,servlet容器创建这个servlet实例,并调用他的 init(ServletConfig config)做一些初始化的工作,然后调用它的service方法处理请求。当第二次请求这个servlet资源时,servlet容器就不在创建实例,而是直接调用它的service方法处理请求,也就是说
- jmpopups获取input元素值
ctrain
JavaScript
jmpopups 获取弹出层form表单
首先,我有一个div,里面包含了一个表单,默认是隐藏的,使用jmpopups时,会弹出这个隐藏的div,其实jmpopups是将我们的代码生成一份拷贝。
当我直接获取这个form表单中的文本框时,使用方法:$('#form input[name=test1]').val();这样是获取不到的。
我们必须到jmpopups生成的代码中去查找这个值,$(
- vi查找替换命令详解
daizj
linux正则表达式替换查找vim
一、查找
查找命令
/pattern<Enter> :向下查找pattern匹配字符串
?pattern<Enter>:向上查找pattern匹配字符串
使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找
N:按照反方向查找
字符串匹配
pattern是需要匹配的字符串,例如:
1: /abc<En
- 对网站中的js,css文件进行打包
dcj3sjt126com
PHP打包
一,为什么要用smarty进行打包
apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。
为什么要进行打包呢,主要目的是为了合理的管理自己的代码 。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的J
- php Yii: 出现undefined offset 或者 undefined index解决方案
dcj3sjt126com
undefined
在开发Yii 时,在程序中定义了如下方式:
if($this->menuoption[2] === 'test'),那么在运行程序时会报:undefined offset:2,这样的错误主要是由于php.ini 里的错误等级太高了,在windows下错误等级
- linux 文件格式(1) sed工具
eksliang
linuxlinux sed工具sed工具linux sed详解
转载请出自出处:
http://eksliang.iteye.com/blog/2106082
简介
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾
- Android应用程序获取系统权限
gqdy365
android
引用
如何使Android应用程序获取系统权限
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点
- HoverTree开发日志之验证码
hvt
.netC#asp.nethovertreewebform
HoverTree是一个ASP.NET的开源CMS,目前包含文章系统,图库和留言板功能。代码完全开放,文章内容页生成了静态的HTM页面,留言板提供留言审核功能,文章可以发布HTML源代码,图片上传同时生成高品质缩略图。推出之后得到许多网友的支持,再此表示感谢!留言板不断收到许多有益留言,但同时也有不少广告,因此决定在提交留言页面增加验证码功能。ASP.NET验证码在网上找,如果不是很多,就是特别多
- JSON API:用 JSON 构建 API 的标准指南中文版
justjavac
json
译文地址:https://github.com/justjavac/json-api-zh_CN
如果你和你的团队曾经争论过使用什么方式构建合理 JSON 响应格式, 那么 JSON API 就是你的 anti-bikeshedding 武器。
通过遵循共同的约定,可以提高开发效率,利用更普遍的工具,可以是你更加专注于开发重点:你的程序。
基于 JSON API 的客户端还能够充分利用缓存,
- 数据结构随记_2
lx.asymmetric
数据结构笔记
第三章 栈与队列
一.简答题
1. 在一个循环队列中,队首指针指向队首元素的 前一个 位置。
2.在具有n个单元的循环队列中,队满时共有 n-1 个元素。
3. 向栈中压入元素的操作是先 移动栈顶指针&n
- Linux下的监控工具dstat
网络接口
linux
1) 工具说明dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是,
- C 语言初级入门--二维数组和指针
1140566087
二维数组c/c++指针
/*
二维数组的定义和二维数组元素的引用
二维数组的定义:
当数组中的每个元素带有两个下标时,称这样的数组为二维数组;
(逻辑上把数组看成一个具有行和列的表格或一个矩阵);
语法:
类型名 数组名[常量表达式1][常量表达式2]
二维数组的引用:
引用二维数组元素时必须带有两个下标,引用形式如下:
例如:
int a[3][4]; 引用:
- 10点睛Spring4.1-Application Event
wiselyman
application
10.1 Application Event
Spring使用Application Event给bean之间的消息通讯提供了手段
应按照如下部分实现bean之间的消息通讯
继承ApplicationEvent类实现自己的事件
实现继承ApplicationListener接口实现监听事件
使用ApplicationContext发布消息