我一直在开发一种新语言的编译器.我认为能够在语法感知环境中展示它的开发是很好的.该语言有很多自定义关键字,其结构与Java或C/C++等常用语言有很大不同.
如何为Eclipse开发自定义语法highligher?我已经看到一些插件的引用,但文档不够彻底,不足以满足我的初学者的需求.
我的语言有语法/ RE,以及相关关键字列表.
我有一个我正在渲染的图像:
glDrawPixels(image->width, image->height, GL_BGR, GL_UNSIGNED_BYTE, image->imageData);
Run Code Online (Sandbox Code Playgroud)
无论如何我可以用灰度绘制它(而不是先将它加载到纹理中)?我不在乎是否只将蓝色组件用于灰度值而不是L2范数或其他东西,我只需要一个快速而肮脏的输出.
GL_LUMINANCE会很棒,除了它不适用于3通道图像.
@timday:
我希望在这篇文章中,我可以得到人们对JSF页面和支持bean之间接口的最佳实践的看法.
我永远无法解决的一件事是我的支持豆的结构.此外,我从未找到关于这个主题的好文章.
什么属性属于哪个支持bean?何时适合向给定bean添加更多属性,而不是创建新bean并将属性添加到其中?对于简单的应用程序,考虑到将一个bean注入另一个bean所涉及的复杂性,为整个页面只有一个支持bean是否有意义?支持bean是否应该包含任何实际的业务逻辑,还是应该严格包含数据?
随意回答这些问题以及可能出现的任何其他问题.
至于减少JSF页面和支持bean之间的耦合,我从不允许JSF页面访问任何支持bean属性的属性.例如,我从不允许以下内容:
<h:outputText value="#{myBean.anObject.anObjectProperty}" />
Run Code Online (Sandbox Code Playgroud)
我总是需要这样的东西:
<h:outputText value="#{myBean.theObjectProperty}" />
Run Code Online (Sandbox Code Playgroud)
支持bean值为:
public String getTheObjectProperty()
{
return anObject.getAnObjectProperty();
}
Run Code Online (Sandbox Code Playgroud)
当我循环遍历集合时,我使用包装类来避免向下钻取到数据表中的对象.
一般来说,这种方法对我来说是"正确的".它避免了视图和数据之间的任何耦合.如果我错了,请纠正我.
这可能有点反模式,但C#类的属性是否可以接受多个值?
例如,假设我有一个Public int属性,我总是希望它返回一个int,但我希望能够通过分配十进制,整数或其他一些数据类型来设置属性.所以我的问题是,属性是否可以接受多个值?
了解rails缓存如何工作的人可以真正帮助我.这是代码,嵌套在Rails :: Initializer.run块中:
config.after_initialize do
SomeClass.const_set 'SOME_CONST', 'SOME_VAL'
end
Run Code Online (Sandbox Code Playgroud)
现在,如果我跑步script/server
并提出请求,一切都很花花公子.但是,在对我的Rails应用程序的第二个请求中,所有人都会因为一个单一化的常量错误而下地狱.在生产模式中,我可以成功地发出第二个请求,这意味着常量仍然存在.
我通过将上面的内容更改为:
config.after_initialize do
require 'some_class' # in RAILS_ROOT/lib/some_class.rb
SomeClass.const_set 'SOME_CONST', 'SOME_VAL'
end
Run Code Online (Sandbox Code Playgroud)
但现在这意味着每当我对some_class.rb进行更改时,我都必须重新启动服务器.有没有办法在环境文件中设置常量并让它们在开发模式下正常工作?为什么常量存在于第一个请求中,而不是以下请求?
更新:由于仅在启动Rails应用程序时读取environment.rb并且我希望在每个请求上重新加载我的lib文件和模型,因此我被迫将常量移动到some_class.rb文件中,如下所示:
if Rails.env.development?
const_set 'SOME_CONST', 'SOME_DEVELOPMENT_VAL'
end
Run Code Online (Sandbox Code Playgroud)
在environment/production.rb中,我有旧的const_set代码.
更新:使用config.to_prepare的更好方法详述如下.
我正在使用Microsoft WPF数据网格.我注意到WPF datagrid DataGridTemplateColumn有一个奇怪的行为.当您在网格中使用templateColumn并且当您从上一列中进行选项卡时,模板列包含一些控件时,焦点不会自动赋予模板列中声明的第一个元素.最初设置在模板列的边框上,当我们选择agin时,焦点将转到第一列.此问题的任何解决方法.当我关闭时,如何设置焦点以转到datagrid的模板列中的第一个元素.
我在页面中有一个特别大的表单.验证表单并且字段无效时,我想将窗口滚动到该控件.调用控件的Focus()似乎不会这样做.我找到了一个JavaScript解决方法来将窗口滚动到控件,但是ASP.NET内置了什么?
我非常尊重Mono和CSLA。我想在非Microsoft操作系统上使用CSLA。我接受一个事实,即Mono始终落后于Microsoft两步,但是Mono支持足够的.Net框架来促进各种有趣的应用程序。我还意识到,Mono不支持WPF等3.0.Net的许多新增功能(尽管在一定程度上要使Moonlight正常运行)。对于我当前的需求,WPF的支持并不重要,WCF也不重要。我衷心感谢Rocky在CSLA中实现并继续维护的所有繁琐的数据绑定支持。对于许多应用程序来说,这是CSLA显着增加价值的地方。我意识到CSLA为表带来了许多其他功能,但是对我来说,数据绑定非常重要。我怀疑Mono下CSLA的主要兼容性问题集中在Mono没有实现所有.Net数据绑定细微差别(尤其是DataGrid)和序列化格式差异方面。我对如何解决这些感知到的问题有一些想法,但是我很想听到已经走这条路的任何人的来信。
编辑:对于它的价值,我很早前确实在CSLA论坛上发布了这个确切的问题。CSLA社区和Rocky可以迅速回答问题。但是,这个问题从未得到任何答案。我相信原因很简单:Rocky长期以来一直只专注于MS技术。我不会为此而责备他。Rocky对CSLA进行了大量投资。他是仁慈的独裁者。我很感谢他使CSLA开源。我怀疑他有足够的问题跟上Microsoft世界每两年一次主要API变更的步伐。Linux / Mac OS可能不在他的视野内。无论如何,目前可能不应该如此。大多数Linux或Mac OS用户甚至从未听说过CSLA。
您始终可以分叉源代码,对其进行剥离,增强等,以使其与Mono一起使用。如果这样做,您将不会拥有CSLA社区(至少目前是这样)。因此,我放弃了这一努力。
更新: 似乎洛基现在对Mono感兴趣。查看CSLA路线图。
我没有意识到svn delete
会删除我的本地副本,我只想将它从存储库中删除.现在我的所有文件都消失了,它们也不在垃圾箱里.有什么方法可以恢复它们吗?
我应该澄清一下,这些文件从未进入存储库.我试图摆脱存储库中的一些旧垃圾,以便我可以检查这些.
我在ext3文件系统上运行Ubuntu.虽然没关系....我设法重做我在大约2小时内删除的内容.
最近我一直在我的iPhone上玩一款名为Scramble的游戏.有些人可能认为这个游戏是Boggle.基本上,当游戏开始时你得到一个像这样的字母矩阵:
F X I E
A M L O
E W B X
A S T U
Run Code Online (Sandbox Code Playgroud)
游戏的目标是尽可能多地找到可以通过将字母链接在一起形成的单词.你可以从任何字母开始,并且它周围的所有字母都是公平的游戏,然后一旦你继续下一个字母,围绕那个字母的所有字母都是合理的游戏,除了以前使用的任何字母.因此在上面的网格,例如,我能想出的话LOB
,TUX
,SEA
,FAME
,等词必须至少有3个字符,并且不超过N×N个字符以上,这将是本场比赛16,但可以在一些实现改变.虽然这个游戏很有趣且令人上瘾,但我显然不是很擅长它而且我想通过制作一个可以给我最好的单词的程序来作弊(单词越长,得分就越多).
样本博格http://www.boggled.org/sample.gif
遗憾的是,我不熟悉算法或效率等等.我第一次尝试使用字典,如这一个(〜2.3MB),并确实试图以配合字典条目组合线性搜索.这需要很长时间才能找到可能的单词,而且由于每轮只有2分钟,所以根本就不够.
我很想知道Stackoverflowers是否可以提供更有效的解决方案.我主要是在寻找使用Big 3 Ps的解决方案:Python,PHP和Perl,尽管Java或C++也很酷,因为速度至关重要.
当前的解决方案:
BOUNTY:
我正在为这个问题增加一笔赏金,作为我向所有投入他们计划的人表示感谢的方式.不幸的是,我只能向你们中的一个人提供接受的答案,所以我将测量7天后谁拥有最快的晃动解算器,并奖励获胜者赏金.
赏金奖励.感谢所有参与的人.