进程和线程之间的技术差异是什么?
我感觉像'过程'这样的词被过度使用,还有硬件和软件线程.如Erlang这样的语言轻量级进程怎么样?是否有明确的理由使用一个术语而不是另一个术语?
有人可以解释Scala,Groovy和Clojure之间的主要区别.我知道这些编译中的每一个都在JVM上运行,但我想在它们之间进行简单的比较.
如何制作以NERDTree开头的节目文件.(期)?
我在项目目录中有一个名为.hgignore的文件.如果我使用NERDTree浏览到该目录,则该文件不会显示在树中.
我在Windows上使用gvim.
我正在为接受用户贡献数据的服务编写REST API.我想保持所有操作完全异步,这包括PUT,POST,DELETE甚至GET请求.我的想法是接收请求,处理它以确保它是一个有效的请求,然后传递HTTP 202接受的响应以及数据最终可用的URL和令牌,以便后续请求可以与处理的数据匹配.如果请求无效,那么我将发送HTTP 400.
然后,客户将负责检查我在将来的某个时间提供的URL,并传递令牌.如果数据可用,我返回正常的200或201,但如果我仍在处理请求,我将发送另一个202,表明处理尚未完成.如果处理数据有错误,我会根据需要发送4xx或5xx状态.
我想这样做的原因是我可以将所有有效请求转储到请求池中,并让工作人员从队列中提取并处理请求,因为它们可用.由于我不知道池的大小或可用的工作人员数量,因此无法确定我能够以足够快的速度获得请求以满足Google App Engine的30秒限制.
我的问题是:我是否通过以这种方式处理请求来歪曲REST?例如,浏览器似乎需要立即响应请求.对于我的HTML页面,我计划使用结构化页面进行响应,然后使用AJAX处理数据请求.
我最感兴趣的是以这种方式使用REST处理数据的任何意见或经验.
我有一个带有列表框的XAML视图:
<control:ListBoxScroll ItemSource="{Binding Path=FooCollection}"
SelectedItem="{Binding SelectedFoo, Mode=TwoWay}"
ScrollSelectedItem="{Binding SelectedFoo}">
<!-- data templates, etc. -->
</control:ListBoxScroll>
Run Code Online (Sandbox Code Playgroud)
所选项目绑定到我视图中的属性.当用户选择列表框中的项目时,视图模型中的SelectedFoo属性会更新.当我在视图模型中设置SelectedFoo属性时,在列表框中选择了正确的项目.
问题是,如果代码中设置的SelectedFoo当前不可见,我需要另外调用ScrollIntoView列表框.由于我的ListBox在视图中,而我的逻辑在我的视图模型中...我找不到方便的方法来做到这一点.所以我扩展了ListBoxScroll:
class ListBoxScroll : ListBox
{
public static readonly DependencyProperty ScrollSelectedItemProperty = DependencyProperty.Register(
"ScrollSelectedItem",
typeof(object),
typeof(ListBoxScroll),
new FrameworkPropertyMetadata(
null,
FrameworkPropertyMetadataOptions.AffectsRender,
new PropertyChangedCallback(onScrollSelectedChanged)));
public object ScrollSelectedItem
{
get { return (object)GetValue(ScrollSelectedItemProperty); }
set { SetValue(ScrollSelectedItemProperty, value); }
}
private static void onScrollSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var listbox = d as ListBoxScroll;
listbox.ScrollIntoView(e.NewValue);
}
}
Run Code Online (Sandbox Code Playgroud)
它基本上公开了一个新的依赖属性ScrollSelectedItem,它绑定到SelectedFoo我的视图模型上的属性.然后我挂钩属性更改依赖属性的回调并将新选择的项目滚动到视图中.
有没有其他人知道在视图模型支持的XAML视图上调用用户控件上的函数的更简单方法?这有点像:
在Mac OS X上,我运行的是Flex Builder(基本上是一个定制的Eclipse).如果我找不到所选文本并将搜索包装到顶部时发现它会发出哔哔声.
可以关掉那个哔哔声吗?我搜索了互联网和首选项窗格无济于事.
我将编写一个国际象棋服务器和一个或多个国际象棋客户端,我想用编程语言独立的方式描述国际象棋的规则(例如基于游戏状态的允许移动,游戏完成时的规则).这有点棘手,因为一些国际象棋规则(例如King Castling,en passent,基于3次或更多次重复动作绘制)不仅基于棋盘布局而且基于移动历史.
我希望格式为:
但我愿意牺牲其中任何一种来获得合适的解决方案.
我的主要问题是:如何构建如此复杂的算法,从数据格式对这种复杂状态进行操作?
后续问题是:您能否以类似的方式提供类似问题的示例,以此作为起点?
编辑:为了回应清晰的要求 - 考虑我将用Python编写的服务器,一个用C#编写的客户端和另一个用Java编写的客户端.我想避免在每个地方指定规则(例如,允许的棋子移动,检查的情况等).我宁愿以语言独立的方式指定这些规则.
我正在写一个快速前端来显示吉他指法.前端是在Flash中,但我想以一些人类可读的格式存储选项卡.有人知道已存在的东西吗?有关如何去做的任何建议?我从阅读一些stackoverflow帖子得到的一个想法是使用严格的ASCII标签格式,如下所示:
e||-1------3--------------0--|----2-------0---
B||--1-----3------------1----|----3-------0---
G||---2----0----------0------|----2-------1---
D||----3---0--------2--------|----0-------2---
A||----3---2------3----------|------------2---
E||----1---3----3------------|------------0---
Run Code Online (Sandbox Code Playgroud)
它有优势.我可以从结构中获得大量信息(多少个字符串,它们的调音,音符的相对位置),但它有点冗长.我猜测'当通过电线发送时,'会很好地压缩掉.
如果有人知道用于描述吉他标签的现有数据格式,我也会看一看.
编辑:
我应该注意到这种格式对我来说是90%,除了我自己以外的任何人都可能看不到.我想要一种简单的方法来编写标签文件,这些文件最终将作为Flash前端的图形显示,我不想编写编辑器前端.
我有一个用户键入的字符串,我想将其保存到用户硬盘上的文件中.你能做到吗?如果是这样,怎么样?
我最近做了很多List<SomeType>- > SomeType[]转换,尤其是当我过滤或扩展数组时.
例如过滤:
// filter the list
var memberList = new List<MemberType>();
foreach (var member in members)
{
if (member.someProperty != sentinalValue)
{
memberList.Add(member);
}
}
// overwrite the old array with a new on dimensioned correctly
members = new MemberType[memberList.Count];
memberList.CopyTo(members);
Run Code Online (Sandbox Code Playgroud)
或延伸:
// create the new member
var newMember = new MemeberType();
// create a new array to hold the extended members
newMembers = new MemberType[members.Length + 1];
// copy over the old members
members.CopyTo(newMembers, …Run Code Online (Sandbox Code Playgroud)