我想为视频播客做一个简短的介绍.作为一个令人讨厌的Web开发人员,并且还没有访问或了解动画工具,我想我可能会尝试使用各种html5技术进行介绍.问题是,如何将其转换为视频片段,我可以轻松放入iMovie?
如果必须的话,我认为如果我只使用画布,可以通过使用getImageData导出每帧的png来实现.唯一的缺点是我只限于帆布.我希望使用全新的html5/css3/svg技术.我不需要这个功能来为一般的Web使用,只为我自己,所以我很高兴任何需要安装等的东西才能使它工作.
如果必须,我想我可能会使用视频屏幕捕获工具,但我希望有一个完整的开源链.
最后,我希望我将创建一系列png并使用ffmpeg将它们放在一起,我只是希望找到一种以自动化,开源方式实现这一目标的好方法.
更新我只是想澄清一下,我基本上要做的是使用HTML5而不是像flash这样的东西,但我不是想把它提供给互联网上的其他人,我想把它转换为视频,它永远不需要离开我的电脑,这实际上是一台Mac,而不是一台Linux服务器.如果flash可以做到,为什么不用html,对吧?这似乎是人们试图宣称的东西.问题是,我可以使用SWF并将其转换为标准视频,但是如何使用javascript或CSS3动画?显然,屏幕捕获工具可以完成这项工作,但那些通常是低帧速率,并且根据我的知识无法以编程方式运行.
我能想到的最接近的一点就是截图工具不是像webkit2png那样,而不是单个png,每秒需要60个png.在某些时候,我可能会尝试实现这一点,但我想看看是否有其他人有一些好的东西.
示例所以我实际上只是使用内置的iMovie标题卡进行了介绍.这是我想要做的事情的一个很好的例子.使用一点CSS3动画工作实际上应该是相当简单的.我有什么不错,但我想使用自定义图形,更好的字体/布局控制.
我正在寻找类似于Firefox的JSONView或Pretty JSON Chrome扩展的Safari/Webkit插件.有人知道这样的事吗?
我希望找到一个简单的库,它可以采用一系列2维点,并给我一些更大的点来模拟曲线.基本上,我想从JFreeChart获得像这个样本的曲线拟合的效果:
alt text http://www.jfree.org/jfreechart/images/XYSplineRendererDemo1a.png
JFreeChart的问题是代码不提供这种类型的api.我甚至看过源,算法与实际绘图紧密耦合.
这是一个我编写的实例代码的简化示例,所以如果它有点做作,我会道歉.我想要做的是从单个嵌套类型参数中有效地获取两个类型参数.我很确定这是不可能的,但我想我会试一试.
//Not legal java code
public class Foo<C extends Collection<T>> { //where T is another type parameter
private C coll;
public Foo(C coll) {
this.coll = coll;
}
public void add(T elem){
this.coll.add(elem);
}
//UPDATED TO ADD GETTER
/**
* I may need to retrieve the collection again, or pass it
* on to another function that needs the specific C type
*/
public C getColl(){
return coll;
}
}
...
List<String> strings = new ArrayList<String>();
Foo<List<String>> foo = new …
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用neo4j,我理解图形和关系的原理,但是我对某些我想建模的结构有点麻烦.我想在编程语言项目中使用它,并存储已解析的源文件的AST.从那里开始,我计划在节点上添加大量额外的数据和关系,以帮助进行分析和工具,但基本的AST仍然有点困难.
制作树的天真方式是简单地遍历AST并将树中的每个节点复制到neo4j中的节点,使用属性来跟踪令牌数据等,然后使用CHILD关系指向子节点.问题是,当我后来想要遍历树时,我需要能够以原始AST的正确顺序执行它,但是开箱即用我不太确定最好的方法.
我有两个基本的方法,我正在考虑我的头脑.一种是只为每个CHILD关系添加一个索引/序数属性.另一种是与第一个孩子建立FIRST关系,并在每个孩子之间建立NEXT关系以保持这种方式.
对于这些方法中的任何一种,它似乎仍然没有任何开箱即用的东西,我可以用它以正确的顺序遍历它.我想如果我做FIRST/NEXT,我可以得到正确的顺序,只要我强迫neo4j始终首先遍历FIRST并进行深度优先搜索.那会有用吗?有没有更好的办法?这似乎是应该更容易处理的东西.
UPDATE
最终我决定使用我的两个想法.子节点与索引属性具有CHILD关系.第一个孩子也有FIRST_CHILD关系.同级节点具有NEXT_SIBLING关系以提供正确的排序.在那之后,遍历很简单:
//reusable traversal description
final private TraversalDescription AST_TRAVERSAL = Traversal.description()
.depthFirst()
.expand(new OrderedByTypeExpander()
.add(RelType.FIRST_CHILD, Direction.OUTGOING)
.add(RelType.NEXT_SIBLING, Direction.OUTGOING));
Run Code Online (Sandbox Code Playgroud)
然后,当我真的需要走树时,我可以做到
for(Path path : AST_TRAVERSAL.traverse(astRoot)){
//do stuff here
}
Run Code Online (Sandbox Code Playgroud)
对于我的用例,我实际上并没有在创建后修改树结构本身 - 我只是执行分析并添加更多关系和属性,因此这很容易维护.如果我不得不做更多的修改,那可能会有点工作,特别是如果我想在子关系上维护索引号.因此,对于处于类似情况的其他人来说,这可能需要考虑.
如果我确实进入了一些更可变的东西,我可能会尝试Peter Neubauer建议的集合,并且可能只是创建一个指向节点的OrderedTreeNode类并使用List集合为子节点.
我正在为我们的Web应用程序的一小部分评估nodejs,它似乎很适合.我知道这个节点很年轻且移动速度很快,但它似乎终于进入了"准备生产类别".然而,谷歌搜索,我在生产部署上看到的大多数信息都是一年之久,仍然警告节点可能是多么脆弱,并且可能意外地出错,然后是一些重新启动的解决方案.这并不会让我感到害怕,但似乎缺乏关于将节点可靠地放在那里的"正确方法"的官方用语.
我使用Java Amazon SDK与S3一起存储上传的文件.我想保留原始文件名,我把它放在密钥的末尾,但我也使用虚拟目录结构 - 类似于<dirname>/<uuid>/<originalFilename>
.
问题是,当我想使用api生成预先下载的URL以供下载时:
URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
return url.toExternalForm();
Run Code Online (Sandbox Code Playgroud)
sdk url转义整个键,包括斜杠.虽然它仍然有效,但这意味着下载文件的名称包括整个密钥,而不仅仅是最后的原始文件名位.我知道应该可以在不转义斜杠的情况下执行此操作,但我正在尝试避免重写SDK中已有的大量代码.这有一个共同的解决方案吗?我知道我使用了遵循相同模式的Web应用程序,并且没有斜杠转义问题.
所以我遇到了一个错误,因为期望match()方法找到与使用find()完全相同的匹配.通常情况就是如此,但看起来如果非贪婪的模式可以被拉伸到贪婪地接受整个字符串,那么它是允许的.这似乎是Java中的一个错误.我错了吗?我没有在文档中看到任何表明此行为的内容.
Pattern stringPattern = Pattern.compile("'.*?'");
String nonSingleString = "'START'===stageType?'active':''";
Matcher m1 = stringPattern.matcher(nonSingleString);
boolean matchesCompleteString = m1.matches();
System.out.println("Matches complete string? " + matchesCompleteString);
System.out.println("What was the match? " + m1.group()); //group() gets the string that matched
Matcher m2 = stringPattern.matcher(nonSingleString);
boolean foundMatch = m2.find(); //this looks for the next match
System.out.println("Found a match in at least part of the string? " + foundMatch);
System.out.println("What was the match? " + m2.group());
Run Code Online (Sandbox Code Playgroud)
输出
匹配完整的字符串?真正的
是什么比赛?'START'=== stageType?'active':''
在字符串的至少一部分找到匹配项?真正的
是什么比赛?'开始'