小编Uri*_*Uri的帖子

是否存在对"获取"或"计算"操作产生副作用的合法情况?

我刚刚完成了一个六小时的调试会话以获得奇怪的UI效果,我发现我最喜欢的框架实现的一个名为"getVisibleRegion"的接口函数禁用了一些UI功能(显然忘了恢复它).

我已经向框架提交了一个错误,但是这让我想到了正确的设计:在什么条件下,对一个名称仅仅意味着计算/获取操作的操作产生任何副作用是合法的?

对于那些对实际细节感兴趣的人:我有一个关于我的插件不断破坏Eclipse代码折叠的错误的报告,以便折叠条消失,无法"展开"或看到折叠代码.我将其追溯到ITextViewer上对getVisibleRegion()的调用,该类型代表源代码查看器.现在,ITextViewer的文档确实声明"实施ITextViewerExtension5的观看者可能被迫改变显示的输入文档的分数,以便履行此合同".然而,实际的实现过于宽松,只是永久禁用投影(折叠),永远不会把它带回来.

oop side-effects

4
推荐指数
1
解决办法
157
查看次数

是否有可能以编程方式"链接"多个PDF文件,最好是从命令行?

有没有办法在Linux,Windows或Mac OS X中获取一堆PDF文件并将其"链接"成一本"小册子",而无需拥有Acrobat,最好不要手动执行此操作?

如果他们的任何实用程序有帮助,我安装了TexShop,MikTex等.

pdf

4
推荐指数
2
解决办法
5493
查看次数

为什么在C++中使用函数指针到成员方法?

很多C++书籍和教程都解释了如何做到这一点,但我没有看到一个给出令人信服的理由选择这样做.

我很清楚为什么在C中需要函数指针(例如,当使用一些POSIX工具时).但是,由于"this"参数,AFAIK无法向其发送成员函数.但是如果你已经在使用类和对象,为什么不使用像functor这样的面向对象的解决方案?

您将不得不使用此类函数指针的真实示例将不胜感激.

更新:我感谢大家的回答.不过,我不得不说,这些例子中没有一个确实让我相信这是一个从纯OO角度来看的有效机制......

c++ function-pointers

4
推荐指数
1
解决办法
1890
查看次数

如果我计划最终使用Jython,我应该将我的Python代码保留在2.x还是迁移到3.x?

我有一个用Python 2.6编写的大型基础架构,尽管缺乏向后兼容性,我最近还是尝试移植到3.1(比我预期的要平滑得多).

我最终希望将一些Python代码与我们拥有的许多基于Java的代码集成在一起,并且正在考虑尝试使用Jython.但是,从查看Jython教程,所有示例都是2.6语法(例如,print还不是函数).

Jython目前还是在不久的将来会支持Python 3.x语法吗?或者如果我想最终使用Jython,我应该回滚到2.6吗?

python jython

4
推荐指数
1
解决办法
227
查看次数

为什么java.util.logging.Formatter中的formatMessage()方法是同步的?

在用于格式化调试日志的抽象JDK类Formatter中,formatMessage方法被声明为synchronized。

但是,我无法确定为什么会出现这种情况。

显然,人们可以编写非线程安全的重写版本,但我想知道为什么默认实现不是线程安全的。

java.util.logging

4
推荐指数
1
解决办法
846
查看次数

使用CVS或Subversion作为office文档的备份框架的提示

我一直在使用subversion(以及之前的CVS)不仅存储源文件,而且以后存储用于我研究的LaTeX文件,最后还存储一些word文件和其他材料.

我喜欢这样一个事实,即我可以使用多台计算机并同步每台计算机的最新内容,同时仍然能够维护备份和项目的某些层次结构.

我确信我不能成为唯一一个这样做的人.

我现在正在考虑将CVS或subversion用作包含许多频繁更改的office文档的家庭计算机的主要备份机制.这是好主意吗?我能想到的主要问题是文件被认为是二进制的,所以服务器会膨胀一点.

但是,我想知道其他我应该注意或注意的事情.

另外,我在哪里可以找到可以自动化签名的脚本的好例子?

svn cvs backup

3
推荐指数
1
解决办法
1499
查看次数

C/C++"系统级程序员"的线程问题是否与Java程序员面临的问题有很大不同?

我正在寻找一个开发工作,并看到许多列表指出开发人员必须精通多线程.这既出现在Java作业列表中,也出现在UNIX上涉及"系统编程"的C++列表中.

在过去的几年里,我一直在使用Java并使用其各种同步机制.

在90年代后期,我做了很多C++工作,虽然线程很少.然而,在大学里,我们在Solaris上使用了线程.

我的问题是,与Java开发人员相比,C/C++开发人员面临的问题是否存在显着差异,以及解决这些问题的任何技术是否存在根本的不同.Java显然包括一些更好的机制和集合的同步版本等.

如果我想在UNIX上刷新或重新学习线程,那么最好的方法是什么?我应该看哪个图书馆?在c ++中是否有一些关于线程的最新教程?

c c++ java jobs multithreading

3
推荐指数
1
解决办法
616
查看次数

在Windows上安装Paramiko时,我在哪里可以找到Python Crypto包?

我正在尝试从运行在Windows上的Python中安装SFTP并按照此处的建议安装Paramiko.不幸的是,它要求Crypto.Util.randpool所以我需要安装Crypto包.我发现Linux的RPMS,但找不到任何东西或Windows的源代码.

Paramiko的自述文件说明:为Win32编译的pycrypto可以从HashTar主页下载:http://nitace.bsd.uchicago.edu:8080/hashtar .

不幸的是,该链接不起作用.也没有从PCrypto的主页给出的链接.

知道怎么克服这个吗?

python paramiko

3
推荐指数
1
解决办法
8809
查看次数

如何在Linux上检查Python中的进程是否存在?

我在Python中有一个进程ID.我知道我可以用os.kill()杀死它,但是如何检查它是否还活着?有内置功能还是我必须去shell?

python process

3
推荐指数
2
解决办法
1万
查看次数

如何使用Java并发原语实现阻塞请求 - 回复?

我的系统由一个"代理"类组成,它接收"请求"数据包,编组它们并通过网络将它们发送到服务器,服务器解组它们,处理并返回一些"响应数据包".

代理端的"提交"方法应该阻止,直到收到请求的回复(数据包有ID用于标识和引用)或者直到达到超时.

如果我在Java的早期版本中构建这个,我可能会在我的代理中实现一个"待处理消息ID"的集合,我将在其中提交消息,并在相应的id(具有超时)上等待().收到回复后,处理线程会通知()相应的id.

有没有更好的方法来使用现有的库类来实现这一点,可能是在java.util.concurrency中?

如果我使用上述解决方案,在调用wait()之前,处理潜在竞争条件的正确方法是什么?

java concurrency multithreading

3
推荐指数
1
解决办法
878
查看次数