我试图在play 2 scala教程中给出表单模板助手的说明.我陷入了"编写自己的字段构造函数"一节.它给出了一个示例模板(不说该文件的名称应该是什么):
@(elements: helper.FieldElements)
<div class="@if(elements.hasErrors) {error}">
<label for="@elements.id">@elements.label</label>
<div class="input">
@elements.input
<span class="errors">@elements.errors.mkString(", ")</span>
<span class="help">@elements.infos.mkString(", ")</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
然后它显示了这段代码:
object MyHelpers {
implicit val myFields = FieldConstructor(myFieldConstructorTemplate.f)
}
Run Code Online (Sandbox Code Playgroud)
我很困惑这应该与模板有什么关系.(例如,模板文件应该被称为myFieldConstructorTemplate.scala.html吗?)我尝试了一些没有运气的变化.
我是scala和Play的新手,但我也知道play 2和它的docs是新的,所以我不确定我错过了什么非常明显的东西.
谢谢!
我正在使用curl调用Java ReST API来检索URL.然后,Java使用我的S3凭据生成用于S3上载的预签名URL,并在ReST回复中返回该URL.Curl获取URL并使用它上传到S3,但S3返回403"我们计算的请求签名与您提供的签名不匹配.请检查您的密钥和签名方法."
这是我用来生成预签名URL的代码:
public class S3Util {
static final AmazonS3 s3 = new AmazonS3Client( new AWSCredentials() {
@Override
public String getAWSAccessKeyId() {
return "XXXXXXX";
}
@Override
public String getAWSSecretKey() {
return "XXXXXXXXXXXXXX";
}
});
static final String BUCKET = "XXXXXXXXXXXXXXXXXXXXXXXXXXX";
static public URL getMediaChunkURL( MediaChunk mc, HttpMethod method ) {
String key = ...
//way in the future (for testing)...
Date expiration = new Date( System.currentTimeMillis() + CalendarUtil.ONE_MINUTE_IN_MILLISECONDS*60*1000 );
GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(BUCKET, key, method);
req.setExpiration(expiration);
req.addRequestParameter("Content-Type", "application/octet-stream"); …Run Code Online (Sandbox Code Playgroud) 我正在使用Hibernate,并且有一个名为"User"的持久化类.由于这是一个关键字,我用不同的名称标记了@Entity属性(我已经看过,例如,这个问题: 在postgresql hibernate中无法使用名为"user"的表)
但是,我仍然遇到麻烦,因为这个类扩展了另一个,看起来hibernate仍然试图使用"user"作为列名并搞砸了:
@Entity( name = "XonamiUser" )
public class User extends PropertyContainer {
...
Run Code Online (Sandbox Code Playgroud)
和
@MappedSuperclass
public abstract class PropertyContainer implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected long key;
/** tags */
@ElementCollection
protected Set<String> tags;
@ElementCollection
protected Set<String> searchList;
...
Run Code Online (Sandbox Code Playgroud)
我扩展PropertyContainer的其他类似乎工作正常.
这是hibernate中的一个错误吗?有没有办法解决这个重构的问题?谢谢!
以下是我看到的错误(略微清理):
WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42601
ERROR org.hibernate.util.JDBCExceptionReporter - Batch entry 0 insert into user_search_list (user, search_list) values ('1', 'bjorn') was aborted. Call getNextException to see the cause.
WARN org.hibernate.util.JDBCExceptionReporter …Run Code Online (Sandbox Code Playgroud) 我有兴趣在iOS中使用AVCaptureSession录制媒体,同时使用AVPlayer播放媒体(具体来说,我正在播放音频和录制视频,但我不确定这是否重要).
问题是,当我稍后将结果媒体重新播放时,它们会不同步.是否可以通过确保同时开始播放和录制,或通过发现它们之间的偏移来同步它们?我可能需要同步大约10毫秒.假设我总能捕获音频(因为用户可能使用耳机)是不合理的,因此通过分析原始和录制的音频进行同步不是一种选择.
这个问题表明,可以同时结束播放和录制并从那里确定最终偏移的初始偏移,但我不清楚如何让它们同时结束.我有两种情况:1)音频播放耗尽,2),用户点击"停止录制"按钮.
这个问题建议启动,然后应用一个固定的,但可能依赖于设备的延迟,这显然是一个黑客,但如果它对音频足够好,显然值得考虑视频.
我可以使用另一个媒体层来执行所需的同步吗?
相关:这个问题没有答案.
我试图计算"角色".也就是说,如果一个字符串包含一个可打印的"字形"或"组合字符"(或者某人通常会认为是一个字符),我希望它计数为1.例如,字符串"Hello,世界",应该计数11,因为有11个字符,一个人会看到这个并说有11个字形.
utf8.RuneCountInString()在大多数情况下运行良好,包括ascii,重音符,亚洲字符甚至表情符号.但是,据我所知,符文对应于代码点,而不是字符.当我尝试使用基本的表情符号时它可以工作,但是当我使用具有不同肤色的表情符号时,我得到了错误的计数:https://play.golang.org/p/aFIGsB6MsO
从我在这里和这里读到 的内容应该可行,但我似乎仍然没有得到正确的结果(它过度计数):
func CountCharactersInString(str string) int {
var ia norm.Iter
ia.InitString(norm.NFC, str)
nc := 0
for !ia.Done() {
nc = nc + 1
ia.Next()
}
return nc
}
Run Code Online (Sandbox Code Playgroud)
这也不起作用:
func GraphemeCountInString(str string) int {
re := regexp.MustCompile("\\PM\\pM*|.")
return len(re.FindAllString(str, -1))
}
Run Code Online (Sandbox Code Playgroud)
我在Objective C中寻找类似的东西:
+ (NSInteger)countCharactersInString:(NSString *) string {
// --- Calculate the number of characters enterd by user and update character count label
NSInteger count = 0;
NSUInteger index = 0; …Run Code Online (Sandbox Code Playgroud) 我正在尝试将过滤器应用于在iOS上使用AVFoundation创建的视频合成(过滤器可能是,例如,模糊,像素化,棕褐色等).我需要实时应用效果并能够将复合视频渲染到磁盘,但我很高兴从一个或另一个开始.
不幸的是,我似乎无法想出这个.这是我能做的:
其他应用程序这样做(我认为),所以我认为我错过了一些明显的东西.
注意:我已经研究过GPUImage,我很乐意使用它,但它对电影,尤其是带有音频的电影效果不佳.参见例如:
我正在使用带有 go 语言的 revel 框架。最近,当我运行以下代码时:
import (
...
"net/url"
...
)
revel.INFO.Println(url.QueryEscape("http://hello.com"))
Run Code Online (Sandbox Code Playgroud)
我得到
INFO 2014/07/09 14:58:34 user.go:39: http%A(MISSING)%F(MISSING)%F(MISSING)hello.com
Run Code Online (Sandbox Code Playgroud)
当我期望得到更像的东西时
INFO 2014/07/09 14:58:34 user.go:39: http%3A%2F%2Fhello.com
Run Code Online (Sandbox Code Playgroud)
为什么在输出中%3A被替换了%A(MISSING),我该如何解决?
我看到的唯一可能产生字符串“(MISSING)”的代码在fmt包中,但从查看net/url源代码包,我看不出这是怎么发生的。我是否可能以某种方式访问了一个旧的(坏了?)go 库的版本?我的设置可能还有其他问题吗?
相关:编码/解码 URL
相关Go源码:http : //golang.org/src/pkg/net/url/url.go?s=14330 : 14361#L553
我的服务器正在生成签名上传到 S3 的信息。当我将该信息传递到 iOS 时,它适用于小文件。有时它也适用于较大的,但经常会超时。我目前正在通过 WIFI 在 iOS 7 上进行测试。对于大约 35 MB 的文件,它通常会在大约 60% 后超时,但有时它会完成,有时会更快超时。
我的服务器生成以下信息,我将其作为表单部分传递给我的 POST。(我也尝试过将其作为参数,结果类似):
以及一个 URL。
这是我生成上传的代码:
AFHTTPRequestOperation *op = [manager POST:url
parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
if( throttle )
[formData throttleBandwidthWithPacketSize:kAFUploadStream3GSuggestedPacketSize delay:kAFUploadStream3GSuggestedDelay];
for( id key in parameters ) {
NSString *val = parameters[key];
[formData appendPartWithFormData:[val dataUsingEncoding:NSUTF8StringEncoding] name:key];
}
NSError *error;
if( ![formData appendPartWithFileURL:videoUrl name:@"file" fileName:@"movie.mov" mimeType:@"video/quicktime" error:&error] ) {
// handle the error
}
} success:^(AFHTTPRequestOperation *operation, id responseObject) …Run Code Online (Sandbox Code Playgroud) 我正在制作一个需要同时使用socket io和共享内存的消息服务.无论输入来自何处,例程都是相同的,唯一的区别是本地消息将通过套接字通过共享内存和非本地消息传递.这两个事件都必须取消阻止相同的pselect调用.在这一点上,我认为最好的选择可能是在将消息写入共享内存时发送信号并使用它来中断pselect调用,但我不确定如何做到这一点,或者即使它是最佳路由.
我不习惯使用信号.什么是实现这一目标的最佳方法?