问题列表 - 第3650页

为什么Ruby有Rails而Python没有中心框架?

这是一个(n)历史问题,而不是语言之间的比较问题:

这篇2005年的文章谈到了缺乏单一的Python中心框架.对于Ruby,这个框架显然是Rails.从历史上看,为什么这样做会发生在Ruby而不是Python?(或者它确实发生了,那个框架是Django?)

此外,假设性问题:如果Python有一个好的框架,它会更受欢迎吗?如果没有中央框架,Ruby会不那么受欢迎吗?

[请避免讨论Ruby或Python是否更好,这是太开放无法回答.]

编辑:虽然我认为这是显而易见的,但我并不是说Ruby不存在其他框架,而是说流行程度最大的是Rails.另外,我应该提一下,我并不是说Python的框架不如Rails好(或比Rails好).每个框架都有其优点和缺点,但Rails似乎正如Ben Blank在下面的评论中所说的那样,在人气方面超过了Ruby.在Python方面没有这方面的例子.为什么?这就是问题所在.

ruby python history frameworks ruby-on-rails

8
推荐指数
6
解决办法
3617
查看次数

如何拦截特殊(alt/ctrl)按键?

如何在python中捕获ALT+ KCTRL+ ALT+ 等组合键?Hcurses

python curses

8
推荐指数
1
解决办法
4551
查看次数

PyQt:让小部件在QDialog中自动调整大小

当对话框本身调整大小时,我很难在自动调整QDialog中获取小部件.

在以下程序中,如果您调整主窗口的大小,textarea会自动调整大小.但是,在调整对话框大小时,对话框中的textarea保持相同的大小.

有没有办法让对话框中的textarea自动调整大小?我尝试过使用setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)对话框本身和内部的两个小部件,但这似乎没有任何效果.

我在openSuSE 10.2上使用Qt版本3.3.7和PyQt版本3.5.5-29,如果这是相关的.

import sys
from qt import *

# The numbers 1 to 1000 as a string.
NUMBERS = ("%d " * 1000) % (tuple(range(1,1001)))

# Add a textarea containing the numbers 1 to 1000 to the given
# QWidget.
def addTextArea(parent, size):
    textbox = QTextEdit(parent)
    textbox.setReadOnly(True)
    textbox.setMinimumSize(QSize(size, size*0.75))
    textbox.setText(NUMBERS)


class TestDialog(QDialog):
    def __init__(self,parent=None):
        QDialog.__init__(self,parent)
        self.setCaption("Dialog")
        everything = QVBox(self)

        addTextArea(everything, 400)
        everything.resize(everything.sizeHint())


class TestMainWindow(QMainWindow):
    def __init__(self,parent=None):
        QMainWindow.__init__(self,parent)
        self.setCaption("Main Window")
        everything = QVBox(self)

        addTextArea(everything, 800) …
Run Code Online (Sandbox Code Playgroud)

python qt pyqt qdialog

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

模拟WCF服务的简便方法?

我有一个使用WCF服务的应用程序.现在我想将单元测试添加到应用程序中.

在某些情况下,我需要模拟WCF服务,因为从服务中获取所需的行为有时很困难(例如,服务抛出特殊异常).

我可以添加另一个接口到wcf客户端,但这看起来有点傻,因为客户端调用已经在使用接口.

有一种简单的方法来模拟WCF服务吗?比创建另一个接口层并重定向其中的每个WCF调用更容易?

编辑:大多数答案似乎不太了解WCF服务使用,所以一些澄清:
要使用ViewModel的WCF服务,我必须管理这样的连接:

ChannelFactory<IMyWcfService> channelFactory = new ChannelFactory<IMyWcfService>("");
IMyWcfService proxy = channelFactory.CreateChannel();
proxy.CallMyStuff();
proxy.Close();
Run Code Online (Sandbox Code Playgroud)

我不能只将代理的ViewModel传递给WCF,因为需要为每个事务打开和关闭连接.因此,使用RhinoMock/NMock不起作用,因为它们需要一个ViewModel来获取代理作为参数,如果您使用WCF,则不能这样做.

.net wcf unit-testing mocking

9
推荐指数
1
解决办法
9271
查看次数

如何在GWT页面中显示java applet?

我可能在这里遗漏了一些简单的东西,但我在其他地方找不到答案.我只是想在我的GWT代码中显示一个applet.

操作系统:Windows XP Java:JDK 1.6.0_10其他:GWT,GWT-Ext 2.0.5

这是applet(显然简化了测试):

package foo.applet;

import javax.swing.JApplet;
import java.awt.Graphics;

public class HelloApplet extends JApplet 
{
    public void paint(Graphics g) 
    {
        g.drawRect(0, 0, 
                   getSize().width - 1,
                   getSize().height - 1);
        g.drawString("Hello world!", 5, 15);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是调用它的代码:


package foo.applet;

import com.google.gwt.user.client.ui.HTML;
import com.gwtext.client.widgets.Panel;


public class AppletPanel extends Panel 
{
Run Code Online (Sandbox Code Playgroud)
public AppletPanel()
{
    HTML applet = new HTML();
    applet.setHTML("<applet name=\"HelloApplet\" code=\"HelloApplet.class\" width=\"300\" height=\"300\"" );
    this.add(applet);
}
Run Code Online (Sandbox Code Playgroud)

}

当我以托管模式启动应用程序时,jvm崩溃(与Sun提交事件1425130).

当我尝试编译GWT代码以在浏览器中运行时,我得到:

        [ERROR] Errors in 'file:/C:/<blah>/applet/HelloApplet.java'
           [ERROR] Line 3: The import javax.swing …
Run Code Online (Sandbox Code Playgroud)

java gwt applet gwt-ext

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

需要将整个postgreSQL数据库加载到RAM中

如何将我的整个PostgreSql数据库放入RAM以便更快地访问?我有8GB内存,我想为数据库专用2 GB.我已经阅读了有关共享缓冲区设置的信息,但它只是缓存了数据库中访问最多的片段.我需要一个解决方案,将整个数据库放入RAM中,任何读操作都会从RAM DB中进行,任何写操作都会首先写入RAM DB,然后写入硬盘驱动器上的DB.(有些像默认的fsync =在postgresql配置设置中使用共享缓冲区).

postgresql performance ram

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

如何将现有Java应用程序转换为SYS V服务(守护程序)

我有一个Java应用程序,我开始使用它

java -jar myapp.jar

要停止它我使用CTRL + C.

现在我需要将该应用程序转换为我可以开始的东西:

/etc/init.d/myapp start

我可以停下来:

/etc/init.d/myapp停止

问题是关于保存过程的PID,我想我在某处看到了这样做的一个方法,我不记得在哪里,我无法找到它.

我看到有一个名为Java Server Wrapper的项目,但我寻找一些不限制内存使用的免费软件.我认为这项工作可以在一个bash脚本中完成.

java service daemon sysv

8
推荐指数
2
解决办法
5828
查看次数

Oracle REPLACE()函数不处理回车和换行

我们有一个带有varchar2(100)列的表,偶尔包含回车符和换行符.我们想要删除SQL查询中的那些字符.我们正在使用:

REPLACE( col_name, CHR(10) ) 
Run Code Online (Sandbox Code Playgroud)

具有没有效果,然而替换"CHR(10)"的更常规的"字母"字符证明REPLACE功能工作否则.我们也发现了

REPLACE( col_name, CHR(10), '_' ) 
Run Code Online (Sandbox Code Playgroud)

找到换行符的位置,但在其后插入下划线,而不是替换它.

在Oracle8i上运行.升级不是一种选择.

sql oracle

21
推荐指数
4
解决办法
15万
查看次数

在不使用全局变量的情况下从其他函数访问变量

我从各种各样的地方听说全局变量本质上是讨厌和邪恶的,但是当做一些非面向对象的Javascript时,我看不出如何避免它们.假设我有一个使用随机数和东西使用复杂算法生成数字的函数,但我需要在其他函数中继续使用该特定数字,这是一个回调或其他函数,因此不能成为同一函数的一部分.

如果最初生成的数字是局部变量,那么就无法访问它.如果函数是对象方法,我可以将数字作为属性,但它们不是,并且看起来有点过于复杂,以改变整个程序结构来执行此操作.全局变量真的如此糟糕吗?

javascript global-variables

65
推荐指数
5
解决办法
21万
查看次数

自动构建ID

我们正在寻找一种在构建中自动包含某种构建ID的方法.这需要是可移植的(VC++,Linux和Mac上的g ++)和自动.VC++是最重要的,因为在其他环境中我们使用自定义Python构建脚本,所以我可以做任何我想做的事情.

我们使用SVN,所以我们正在考虑使用svnversion的输出将修订写入标题并包含它.这有问题:如果我们把文件放在SVN中,它每次都会显示为修改,但它会是一个多余的提交,从某种意义上说会产生一个增加修订的无限循环.如果我们不将文件放在SVN中并仅将其创建为预构建步骤,则源将不完整,因为它们需要预构建步骤或Makefile来生成该文件.

我们也可以使用,__DATE__但我们不能保证在__DATE__修改其他文件的情况下编译使用的文件(即将其写入日志文件) - 除非我们"触摸"它,但是我们会导致项目总是过时的.我们可以将它作为预构建步骤触摸,因此只有在项目的其余部分已过时才会触及它,因此不会导致虚假编译,但如果VC++ 在预构建步骤之前计算依赖关系,则不会工作(文件__DATE__不会被编译)

任何有趣的想法?

c++ svn visual-studio visual-c++

6
推荐指数
1
解决办法
1947
查看次数