我之前使用过play2和java.它感觉有点像样板文件,特别是如果你使用带有java的akka.但这不是框架的错.
昨天我读了"Scala for the greatient",我真的很喜欢这种语言.
现在我查看了两个框架Lift 2.5和Play 2.0.3.我认为电梯有更高的学习曲线,我不能只用电梯做一些事情.这不适合我.从我看到的,Lift有一个非常漂亮和干净的设计.
但对我来说,很难说主要的区别是什么.我认为这两个框架都很棒.
Views First方法不允许您在模板中进行编码,而是必须在代码段中进行编码.我非常喜欢这个,因为它看起来更有条理.它还允许您使用普通的html编辑器. (我的经验不多,这只是我的第一印象)
为了安全起见,我认为这不是框架的工作.
无国籍/有状态:很难说主要区别在哪里.我只知道如果你使用网络套接字,播放也有一个状态.
按F5后,两个框架都可以编译.我非常喜欢这个功能.
两个框架都在使用sbt
Lift附带授权,但我认为有一个play2 scala插件可以做同样的事情
Lift有一个用于mongoDB的ORM映射器.因为我想使用noSQL,这对我来说看起来更干净.(再次没有多少经验) 编辑在play2中有一个用于scala mongodb的ORM映射器https://github.com/leon/play-salat
Async - Play 2使用Akka.不知道电梯使用什么,但他们也有类似的东西.
通过CSRF支持提升船舶.Play2有一个CSRF模块,但这为你的代码增加了一个样板.
无状态身份验证似乎存在一些安全漏洞.两个框架都具有状态身份验证.(play2有状态/无状态,举起状态)
我是否更愿意在CPU或GPU上计算矩阵?
假设我有以下矩阵P * V * M,我应该在CPU上计算它们以便我可以将最终矩阵发送到GPU(GLSL),还是应该将这三个矩阵分别发送到GPU以便GLSL可以计算最终矩阵?
我的意思是在这种情况下,GLSL必须为每个顶点计算MVP矩阵,因此在CPU上预先计算它可能更快.
但是,让我们说GLSL只需要计算一次MVP矩阵,GPU会比CPU更快地计算出最终矩阵吗?
我们正在收集有关不同系统的信息.目前我们正在寻找存储解决方案.对于大文件,我们会有大量的传出流量.
我想将s3与谷歌云存储进行比较.
谷歌云存储在90TB时的成本约为0.08美元/ GB.S3约为0.06美元.但是谷歌云存储已经有了一个cdn,这比使用cloudfront的亚马逊s3更便宜.
现在我读到某个地方,google cloud stroage比非常大的文件的s3慢得多.这是真的 ?
我找不到任何信息.
如果我有大量的传出流量和大文件,我还有哪些替代方案?
编辑:
基准测试:
http://blog.zencoder.com/2012/07/23/first-look-at-google-compute-engine-for-video-transcoding/
我想知道在C++ 11/14中是否有可能在编译时实际读取文件.例如,以下代码只有在能够成功读取文件的情况下才会编译.
constexpr std::string shader_source = load("~/foo.glsl");
Run Code Online (Sandbox Code Playgroud)
你认为这可能吗?
我知道在构建应用程序时我可以使用一些自定义工具执行此操作.
我目前正在使用play2框架.
我有几个类正在抛出exceptions但是play2s全局onError处理程序使用throwable而不是异常.
例如,我的一个班级正在抛出一个NoSessionException.如果它是一个可抛物体,我可以检查NoSessionException吗?
目前我正在阅读cryengine游戏代码.这是巨大的,没有很好的记录.如果我可以从项目文件创建UML图表,那将是非常好的.
我已经找到了一些从c ++代码生成UML图的工具,问题是cryengine项目非常庞大,需要花费大量时间才能完成.
你认为这有可能吗?
我的普通矩阵有些麻烦.
vs.glsl
#version 440
in vec3 vPosition;
in vec3 vNormal;
out vec4 eyeCordFs;
out vec4 eyeNormalFs;
uniform mat4 model;
uniform mat4 view;
uniform mat4 proj;
void main()
{
mat4 modelView = view * model;
mat4 normalMatrix = view * transpose(inverse(model));
vec4 eyeNorm = normalize(normalMatrix * vec4(vNormal, 0.0));
vec4 eyeCord= modelView * vec4(vPosition, 1.0);
eyeCordFs = eyeCord;
eyeNormalFs = eyeNorm;
gl_Position = proj * modelView * vec4( vPosition,1.0);
}
Run Code Online (Sandbox Code Playgroud)
fs.glsl
#version 440
in vec4 eyeCordFs;
in vec4 eyeNormalFs;
out vec3 outputColor; …Run Code Online (Sandbox Code Playgroud) glBufferStorage为当前绑定到目标的缓冲区对象创建一个新的不可变数据存储.数据存储的大小由大小指定.如果初始数据可用,则其地址可以以数据形式提供.否则,要创建未初始化的数据存储,数据应为NULL.
不可改变意味着我不能改变它吗?但随后"未初始化的数据"将毫无意义.
但它并非真正不可变,因为我们可以指定 GL_DYNAMIC_STORAGE_BIT?
那么glBufferStorage和glBufferData有什么区别?
我有问题顶级使用sbteclipse
我做了什么:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")name:="foo"
Run Code Online (Sandbox Code Playgroud)version := "1.0" scalaVersion := "2.9.2" libraryDependencies += "net.java.dev.jna" % "jna" % "3.4.0"
sbt eclipse但我总是得到以下错误
[error] Not a valid command: eclipse (similar: help, alias)
[error] Not a valid project ID: eclipse
[error] Expected ':'
[error] Not a valid key: eclipse (similar: deliver, licenses, clean)
[error] eclipse
[error] ^
Run Code Online (Sandbox Code Playgroud)
ps:我正在使用Windows.我也在使用sbt 0.12
在我的机器上,我有两个队列系列,一个支持所有内容,另一个支持转移.
支持所有内容的队列系列的queueCount为16.
现在规范说明了
提交给不同队列的命令缓冲区可以相互并行地执行,甚至可以不按顺序执行
这是否意味着我应该尝试使用所有可用的队列以获得最佳性能?