问题列表 - 第48099页

在JavaScript中"抛出新警告"?

目前我正在通过错误处理扩展我的JavaScript项目.该throw声明在这里发挥了重要作用:

throw new Error("text"); // Error: text
Run Code Online (Sandbox Code Playgroud)

但是,我还可以发出警告吗?我尝试了以下无济于事:

throw new Warning("text"); // Warning is not defined
Run Code Online (Sandbox Code Playgroud)

错误使Chrome的开发人员工具显示红叉,但如何让它显示警告图标(黄色感叹号)?

javascript error-handling throw

44
推荐指数
5
解决办法
3万
查看次数

Grails vs. JAX-RS for RESTful API/MVC App

我知道标题可能看起来像苹果和橘子,但听我说... :)

我正在构建MVC应用程序的体系结构,并考虑将什么用于控制器/服务的核心.该堆栈还将用作RESTful API,与UI同样重要.

我正在缩小我的堆栈,用Grails或JAX-RS构建(此时我已经排除了其他选项,并且对扩展此列表并不感兴趣).无论哪种方式,我都将使用Groovy,我的模型和视图几乎不会受到这种选择的影响,因此可以进一步平衡两者之间的一些差异.以下是我一直在思考的优点/缺点,并且想知道是否有人有任何其他意见或警告经验.

Grails的

  • 我不打算使用大量内置的Grails功能(GSP/SiteMesh,Hibernate,几乎所有插件),所以我担心Grails可能对我的目的来说有点沉重
  • 我担心我对处理REST API的能力没有足够的控制权,因为它非常以视图为中心
  • 我已经看到插件质量的不一致到我不确定我认为它们是'专业'的地步
  • 我喜欢惯例 - 配置和编辑 - 刷新,如果我使用JAX-RS,我可能想要连接类似的东西
  • 我喜欢的一切它简化Grails的命令行,但我担心它可能会用我的方式,因为我不使用尽可能多的堆栈得到
  • 我喜欢脚手架,但由于我没有使用Hibernate或GSP/SiteMesh,它可能无法很好地融合

JAX-RS

  • JAX-RS是为REST而设计的.这将使我的RESTful API真正实现,因为我完全控制
  • Groovy是Grails闪耀的重要组成部分,所以即使在JAX-RS中我也会从中受益
  • 我喜欢JAX-RS不会自动引入其他一些东西,所以我可以更好地控制哪些组件进/出
  • 不幸的是,因为它不会引入任何其他我最终需要的东西需要更多的工作,而Grails可能有一个插件
  • 将错过grails命令行和脚手架; 也许Maven可以填补一些空白

看起来每个用于创建动作和路由的功能非常相似(尽管实现样式不同).事实上还有其他SO问题希望触及这一点,所以我不太关心.

rest model-view-controller grails groovy jax-rs

9
推荐指数
1
解决办法
2762
查看次数

重新生成大拇指时的回形针问题

我正在尝试重新制作所有拇指.我不确定为什么说密钥不存在.我正确配置了AWS-S3并且运行良好(我可以上传图片而没有任何问题.)

>> Attachment.all.each {|x|x.attachment.reprocess!}
AWS::S3::NoSuchKey: The specified key does not exist.
    /app/d999782b-a789-4763-ac86-e8c65fa781eb/home/.bundle/gems/ruby/1.8/gems/aws-s3-    0.6.2/lib/aws/s3/error.rb:38:in `raise'
/app/d999782b-a789-4763-ac86-e8c65fa781eb/home/.bundle/gems/ruby/1.8/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:72:in `request'
/app/d999782b-a789-4763-ac86-e8c65fa781eb/home/.bundle/gems/ruby/1.8/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:88:in `get'
/app/d999782b-a789-4763-ac86-e8c65fa781eb/home/.bundle/gems/ruby/1.8/gems/aws-s3-0.6.2/lib/aws/s3/object.rb:134:in `value'
Run Code Online (Sandbox Code Playgroud)

当我尝试对单个对象做同样的事情似乎做得很好时,所以问题似乎与使用集合生成有关.

>> Attachment.last.attachment.reprocess!
=> true
Run Code Online (Sandbox Code Playgroud)

更新:我很确定这与上传的文件如.htm相关,这些文件应该是有效的图像文件.知道如何跳过它们吗?

ruby ruby-on-rails ruby-on-rails-3

4
推荐指数
2
解决办法
3483
查看次数

将指针传递给汇编函数

我对汇编编程很新.我正在使用x86平台和GCC(Linux).

我有一个函数,我想从C调用:

myfunc ( unsigned char * s1, unsigned char * s2, int someint );
Run Code Online (Sandbox Code Playgroud)

该函数将获取s1和s2存储器位置并进行比较,然后递增和比较等,进行一些处理.这有点像memcmp,但我做得更多.

我的问题:如果我将指针传递给汇编函数?然后我怎么说"给我存储在这个内存地址的值"?

这是我到目前为止所拥有的:

要从堆栈中获取第一个函数arg("s1"),我这样做(someaddress是一个32位整数,我正在使用一个32位处理器):

movl  8(%esp), %ecx
movl  %ecx, someaddress
Run Code Online (Sandbox Code Playgroud)

如果我把somevar%eax(或%ebx等等),然后printf的它%p,我看到它的地址和无符号的字符指针"的地址,s1"我通过这都是一样的.但我怀疑我实际做的是获取内存地址,将其转换为整数,然后将该整数放入某个地址.

例如,如果我这样做:

movl  pos1, %eax
movl  pos2, %ebx
cmp   (%eax),(%ebx)
Run Code Online (Sandbox Code Playgroud)

我得到"错误:'cmp'的内存引用太多了".我不完全确定这意味着什么,除了"你搞砸了";-)

所以...

  • 如何传入指针并将其作为指针保存?
  • 如何在程序集中使用所述指针的值?(例如,*ptr在C中)

我想查看LEA操作数吗?

我正在使用Richard Blum的"专业装配编程"作为我的向导,但Blum似乎并没有涵盖这种情况.

更新

非常感谢您的学习回应!

不幸的是,我仍然无法解除引用.

这是一个简化的例子.汇编函数接受指针并应该回显它.相反,我得到:

first_ptr points to 81 (should be 81) <-- from C program
the value is -1543299247 <-- printf called from within assembler
the …
Run Code Online (Sandbox Code Playgroud)

assembly

10
推荐指数
1
解决办法
1万
查看次数

使用Selenium模仿将文件拖到上传元素上

我有一个网页,当你点击一个按钮时打开一个div.此div允许您将文件从桌面拖到其区域; 然后该文件上传到服务器.我正在使用Selenium的Ruby实现.

通过在Firefox中使用JavaScript调试器,我可以看到一个名为"drop"的事件正被传递给某些JavaScript代码"handleFileDrop(event)".我假设如果我要创建一个模拟事件并以某种方式触发它我可以触发此代码.

如果发现一篇有趣的文章似乎指向了一个充满希望的方向,但我仍然没有把它全部搞清楚.我可以使用Selenium的get_eval方法将JavaScript传递给页面.使用this.browserbot调用方法可以获得我需要的元素.

所以:

  1. 如何构建需要成为模拟放置事件一部分的文件对象?
  2. 如何触发掉落事件,使其被拾取,好像我在div中删除了一个文件?

javascript ruby selenium

20
推荐指数
2
解决办法
1万
查看次数

检查Makefile中的gcc版本?

我想使用一些旧的gcc版本中没有的gcc警告开关(例如-Wtype-limits).

是否有一种简单的方法来检查gcc版本,如果使用最近的gcc,只添加那些额外的选项?

portability gcc makefile version compiler-warnings

43
推荐指数
4
解决办法
4万
查看次数

如何在git中交互式地取消特定的大块头?

在git中,如果我的索引中存在来自同一文件的几个帅哥,我怎么能以交互方式取消其中一个呢?

是否可以替换整个文件,然后重新暂存我想要保留的数据,或者手动撤消对工作副本的更改,然后以交互方式添加这些撤消的更改?

git staging

96
推荐指数
1
解决办法
1万
查看次数

验证时的DTD信息和相关错误(XSD架构) - 是否可以忽略它们?

所以我有大量的XML文件.多年来,他们造成了麻烦,因为写这些人的人手工完成,所以错误自然而然地发生了.我们现在应该验证它们并在尝试使用这些XML文件时提供有关错误的反馈.

我正在使用SAX解析器并获取错误列表.

以下是我的代码

  BookValidationErrorHandler errorHandler = new BookValidationErrorHandler();

        SAXParserFactory factory = SAXParserFactory.newInstance();
        factory.setValidating(true);
        factory.setNamespaceAware(true);

        SchemaFactory schemaFactory = 
            SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");

        factory.setSchema(schemaFactory.newSchema(
            new Source[] {new StreamSource("test.xsd")}));


        javax.xml.parsers.SAXParser parser = factory.newSAXParser();
        org.xml.sax.XMLReader reader = parser.getXMLReader();

        reader.setErrorHandler(errorHandler);
        reader.parse(new InputSource("bad.xml"));
Run Code Online (Sandbox Code Playgroud)

前几个错误始终是:

行号:2:文档无效:未找到语法.行号:2:文档根元素"信用",必须与DOCTYPE根"null"匹配.

我们不可能去编辑需要检查的数千个XML文件.

有什么我可以轻松添加到源的前面以防止这种情况吗?有没有办法告诉解析器忽略这些与DTD相关的错误?甚至不确定语法是什么意思.我有点理解第二个意味着什么.

xml schema xsd saxparser saxparseexception

2
推荐指数
1
解决办法
2711
查看次数

C++相当于Python的traceback库

我需要一些调试库/工具来追溯打印到stdout的堆栈信息.

Python的traceback库就是一个例子.

什么是C++相当于Python的追溯库?

c++ python traceback

8
推荐指数
1
解决办法
1750
查看次数

惯用效率高的Haskell追加?

List和cons运算符(:)在Haskell中非常常见.缺点是我们的朋友.但有时我想添加到列表的末尾.

xs `append` x = xs ++ [x]
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这不是实施它的有效方式.

我在Haskell中写了Pascal的三角形,但我不得不使用++ [x]反成语:

ptri = [1] : mkptri ptri
mkptri (row:rows) = newRow : mkptri rows
    where newRow = zipWith (+) row (0:row) ++ [1]
Run Code Online (Sandbox Code Playgroud)

imho,这是一个可爱的可读Pascal的三角形和所有,但反成语让我烦恼.有人可以向我解释(并且,理想情况下,指向一个很好的教程)关于您想要有效追加到最后的情况下的惯用数据结构吗?我希望这个数据结构及其方法具有近似列表般的美感.或者,或者,向我解释为什么这种反成语对于这种情况实际上并不坏(如果你认为是这种情况).


[编辑]我最喜欢的答案是Data.Sequence,它确实具有"近似列表般的美丽".不确定我对操作所要求的严格程度.随时欢迎进一步的建议和不同的想法.

import Data.Sequence ((|>), (<|), zipWith, singleton)
import Prelude hiding (zipWith)

ptri = singleton 1 : mkptri ptri

mkptri (seq:seqs) = newRow : mkptri seqs
    where newRow = zipWith (+) seq (0 <| seq) |> 1 …
Run Code Online (Sandbox Code Playgroud)

performance haskell linked-list append idiomatic

34
推荐指数
6
解决办法
1万
查看次数