是否有工具可以自动在一组文件中找到复制和粘贴代码?
我正在考虑为此编写一个脚本,它只会搜索相同的字符串,但是这样的脚本会发现大多数不相关的等式.(如private final static ...).
我有一个套接字服务器,我试图在python 2.5上转移到SSL,但我遇到了pyOpenSSL的障碍.我找不到任何关于使用它的好教程,所以我主要依靠猜测.
以下是我的服务器如何设置套接字:
ctx = SSL.Context(SSL.SSLv23_METHOD)
ctx.use_privatekey_file ("mykey.pem")
ctx.use_certificate_file("mycert.pem")
sock = SSL.Connection(ctx, socket.socket(socket.AF_INET, socket.SOCK_STREAM))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
addr = ('', int(8081))
sock.bind(addr)
sock.listen(5)
Run Code Online (Sandbox Code Playgroud)
以下是它如何接受客户:
sock.setblocking(0)
while True:
if len(select([sock], [], [], 0.25)[0]):
client_sock, client_addr = sock.accept()
client = ClientGen(client_sock)
Run Code Online (Sandbox Code Playgroud)
以下是它从连接的套接字发送/接收的方式:
while True:
(r, w, e) = select.select([sock], [sock], [], 0.25)
if len(r):
bytes = sock.recv(1024)
if len(w):
n_bytes = sock.send(self.message)
Run Code Online (Sandbox Code Playgroud)
它是紧凑的,但你得到了一般的想法.问题是,一旦发送/接收循环开始,它就会在发送或接收任何内容之前立即死亡(我无论如何都可以看到):
Traceback (most recent call last):
File "ClientGen.py", line 50, in networkLoop
n_bytes = sock.send(self.message
WantReadError
Run Code Online (Sandbox Code Playgroud)
手册中对'WantReadError'的描述非常模糊,说它几乎可以来自任何地方.我究竟做错了什么?
如何以编程方式打开DateTimePicker C#控件?我想通过向控件发送密钥来显示Datetime Picker控件中的Calendar.有没有办法可以做到这一点?
我正在翻新一个我已经工作了很多年的大型CMS.产品本身很棒,但是一些组件,例如数据库和翻译类,需要紧急更换 - 部分是自制的,早在2002年,随着时间的推移会变得有点混乱,并且在安全审计中可能会遇到麻烦.
所以,我一直在密切关注一些框架(或者更确切地说,组件库,因为我不打算改变CMS的基本结构),最终还是喜欢Zend Framework.他们提供了一个坚实的MVC模型,但不强迫你进入它,他们提供了很多专业组件,显然已经得到了很多关注(你知道俄语有多个复数,你不能使用它们翻译它们一个简单的($number == 0) or ($number > 1)开关?我没有,但是Zend_Translate可以处理它.只是为了说明图书馆似乎已经建立的彻底程度.)
我现在确实处于不可逆转的状态,开始用Zend制造的系统替换系统的关键组件.我真的没有第二个想法 - 我肯定不想煽动火焰战 - 但在继续之前,我想退一步看看是否有任何反对将一个大系统与Zend紧密联系起来的事情框架.
我喜欢Zend:
我一直在考虑将ZF的功能封装和抽象到自己的类中,以便能够更轻松地切换框架,但我们得出的结论是,这不是一个好主意,因为:
因此,对采埃孚的承诺将是深刻的.因此我的问题:
是否有任何实质性的反对承诺Zend框架?
你是否已经知道Zend Inc.的计划在2011年变得邪恶,并使其成为一个封闭的源库?Zend Inc. 是由吸血鬼经营的吸血鬼经营者想要占领地球吗?(评论中确定Zend实际上是由吸血鬼运行的.)当你将所有项目都转换为代码库时,是否存在概念缺陷?质量代码的外观是否是幻觉?代码看起来不错,但在我的四核工作站下面运行的速度非常慢吗?
接受答案
非常感谢大家的详细反馈.我希望我可以设置一个赏金,并在所有回答者之间平均分配.
在对ZF有利的许多意见中,有一个非常有根据的反对.我认真对待并密切关注替代方案,主要是Yii和Kohana.通过这种比较以及阅读关于ZF和竞争产品的更多观点,我可以看到,与更简约的框架相比,Zend可以在某些领域被视为臃肿.(我也可以看到,这种"膨胀"主要是有充分理由提供最大的灵活性.但是,你是否需要最大的灵活性并处理随之而来的复杂性,或者采用更简单的方法和明确的指导方针的问题是有效的.)
无论如何,我将为手头的项目选择Zend,因为我对框架的主要用途是作为组件库.我不想采用Zend的MVC模型,我只需要高质量的组件来进行国际化,会话处理等等.因为我正在构建可再发行的产品,所以Zend的灵活性(例如支持五种不同的字典格式)受到欢迎.此外,ZF似乎是唯一允许我想要的自由程度的框架(没有强制使用模式,文件结构......),据我所知,没有其他框架提供.
对于我希望在其中使用实际MVC功能的未来项目,并完全服从框架关于应用程序构建,命名,样式和过程的约定,我可能不一定会选择Zend,而是为了更简约像Yii或Kohana这样的框架.
我在学习bash.
我想做一个简单的脚本,当没有给出参数时,会显示一些消息.当我把numers作为参数时,s取决于值,它会做一件事或另一件事.
我还想知道关于bash初学者最好的在线手册的建议
谢谢
是否可以在一个文档中使用多个标题类型?例如:
header("Content-type: image/jpeg");
header('Content-Type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)
将整个页面作为text/html ...返回
header('Content-Type: text/html; charset=utf-8');
header("Content-type: image/jpeg");
Run Code Online (Sandbox Code Playgroud)
将整个页面作为图像返回....如何在同一页面上使用这两种类型的内容?我在顶部使用ob_start(),在开头使用ob_end_flush().
我想知道如何只减去完整路径的一部分:
我得到当前文件夹的完整路径:
$dbc_root = getcwd(); // That will return let's say "/home/USER/public_html/test2"
Run Code Online (Sandbox Code Playgroud)
我只想选择“/public_html/test2”
我该怎么做?谢谢!
我正在尝试向我的应用添加电子邮件功能.我可以让MFMailComposeViewController正确显示并预先填充其主题和正文,但由于某些原因,当用户点击导航栏中的"取消"或"发送"按钮时,应用程序就会挂起.我在第一行插入了一个NSLog()语句mailComposeController"didFinishWithResult:error,它甚至没有将该行打印到控制台.
有没有人知道什么会导致MFMailComposeViewController像这样挂起?
这是标题中的代码:
#import "ManagedObjectEditor.h"
#import <MessageUI/MessageUI.h>
@interface MyManagedObjectEditor : ManagedObjectEditor
<MFMailComposeViewControllerDelegate, UIImagePickerControllerDelegate,
UINavigationControllerDelegate> {
}
- (IBAction)emailObject;
@end
Run Code Online (Sandbox Code Playgroud)
来自实施文件:
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
mailComposer.delegate = self;
[mailComposer setSubject:NSLocalizedString(@"An email from me",
@"An email from me")];
[mailComposer setMessageBody:emailString
isHTML:YES];
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];
}
[error release];
[emailString release];
Run Code Online (Sandbox Code Playgroud)
这是来自回调的代码:
#pragma mark -
#pragma mark Mail Compose Delegate Methods
- (void)mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError *)error {
NSLog(@"in didFinishWithResult:");
switch (result) {
case …Run Code Online (Sandbox Code Playgroud) 我希望能够在vim中运行一个打开git diff的命令,并为diff set中的每个文件添加一个选项卡.
所以,例如,如果我在工作树中更改了文件foo.txt和bar.txt,我运行命令,我会看到vim打开两个选项卡.第一个选项卡将包含我的工作树中的foo.txt和存储库中的foo.txt之间的并排差异,第二个选项卡将包含bar.txt的并排差异.
有人有任何想法吗?