我刚刚完成了一个六小时的调试会话以获得奇怪的UI效果,我发现我最喜欢的框架实现的一个名为"getVisibleRegion"的接口函数禁用了一些UI功能(显然忘了恢复它).
我已经向框架提交了一个错误,但是这让我想到了正确的设计:在什么条件下,对一个名称仅仅意味着计算/获取操作的操作产生任何副作用是合法的?
对于那些对实际细节感兴趣的人:我有一个关于我的插件不断破坏Eclipse代码折叠的错误的报告,以便折叠条消失,无法"展开"或看到折叠代码.我将其追溯到ITextViewer上对getVisibleRegion()的调用,该类型代表源代码查看器.现在,ITextViewer的文档确实声明"实施ITextViewerExtension5的观看者可能被迫改变显示的输入文档的分数,以便履行此合同".然而,实际的实现过于宽松,只是永久禁用投影(折叠),永远不会把它带回来.
有没有办法在Linux,Windows或Mac OS X中获取一堆PDF文件并将其"链接"成一本"小册子",而无需拥有Acrobat,最好不要手动执行此操作?
如果他们的任何实用程序有帮助,我安装了TexShop,MikTex等.
很多C++书籍和教程都解释了如何做到这一点,但我没有看到一个给出令人信服的理由选择这样做.
我很清楚为什么在C中需要函数指针(例如,当使用一些POSIX工具时).但是,由于"this"参数,AFAIK无法向其发送成员函数.但是如果你已经在使用类和对象,为什么不使用像functor这样的面向对象的解决方案?
您将不得不使用此类函数指针的真实示例将不胜感激.
更新:我感谢大家的回答.不过,我不得不说,这些例子中没有一个确实让我相信这是一个从纯OO角度来看的有效机制......
我有一个用Python 2.6编写的大型基础架构,尽管缺乏向后兼容性,我最近还是尝试移植到3.1(比我预期的要平滑得多).
我最终希望将一些Python代码与我们拥有的许多基于Java的代码集成在一起,并且正在考虑尝试使用Jython.但是,从查看Jython教程,所有示例都是2.6语法(例如,print还不是函数).
Jython目前还是在不久的将来会支持Python 3.x语法吗?或者如果我想最终使用Jython,我应该回滚到2.6吗?
在用于格式化调试日志的抽象JDK类Formatter中,formatMessage方法被声明为synchronized。
但是,我无法确定为什么会出现这种情况。
显然,人们可以编写非线程安全的重写版本,但我想知道为什么默认实现不是线程安全的。
我一直在使用subversion(以及之前的CVS)不仅存储源文件,而且以后存储用于我研究的LaTeX文件,最后还存储一些word文件和其他材料.
我喜欢这样一个事实,即我可以使用多台计算机并同步每台计算机的最新内容,同时仍然能够维护备份和项目的某些层次结构.
我确信我不能成为唯一一个这样做的人.
我现在正在考虑将CVS或subversion用作包含许多频繁更改的office文档的家庭计算机的主要备份机制.这是好主意吗?我能想到的主要问题是文件被认为是二进制的,所以服务器会膨胀一点.
但是,我想知道其他我应该注意或注意的事情.
另外,我在哪里可以找到可以自动化签名的脚本的好例子?
我正在寻找一个开发工作,并看到许多列表指出开发人员必须精通多线程.这既出现在Java作业列表中,也出现在UNIX上涉及"系统编程"的C++列表中.
在过去的几年里,我一直在使用Java并使用其各种同步机制.
在90年代后期,我做了很多C++工作,虽然线程很少.然而,在大学里,我们在Solaris上使用了线程.
我的问题是,与Java开发人员相比,C/C++开发人员面临的问题是否存在显着差异,以及解决这些问题的任何技术是否存在根本的不同.Java显然包括一些更好的机制和集合的同步版本等.
如果我想在UNIX上刷新或重新学习线程,那么最好的方法是什么?我应该看哪个图书馆?在c ++中是否有一些关于线程的最新教程?
我正在尝试从运行在Windows上的Python中安装SFTP并按照此处的建议安装Paramiko.不幸的是,它要求Crypto.Util.randpool所以我需要安装Crypto包.我发现Linux的RPMS,但找不到任何东西或Windows的源代码.
Paramiko的自述文件说明:为Win32编译的pycrypto可以从HashTar主页下载:http://nitace.bsd.uchicago.edu:8080/hashtar .
不幸的是,该链接不起作用.也没有从PCrypto的主页给出的链接.
知道怎么克服这个吗?
我在Python中有一个进程ID.我知道我可以用os.kill()杀死它,但是如何检查它是否还活着?有内置功能还是我必须去shell?
我的系统由一个"代理"类组成,它接收"请求"数据包,编组它们并通过网络将它们发送到服务器,服务器解组它们,处理并返回一些"响应数据包".
代理端的"提交"方法应该阻止,直到收到请求的回复(数据包有ID用于标识和引用)或者直到达到超时.
如果我在Java的早期版本中构建这个,我可能会在我的代理中实现一个"待处理消息ID"的集合,我将在其中提交消息,并在相应的id(具有超时)上等待().收到回复后,处理线程会通知()相应的id.
有没有更好的方法来使用现有的库类来实现这一点,可能是在java.util.concurrency中?
如果我使用上述解决方案,在调用wait()之前,处理潜在竞争条件的正确方法是什么?