小编abl*_*lmf的帖子

Haskell中的"类"和OO语言中的"抽象类"有什么区别?

乍一看,两种"阶级"之间存在明显的区别.但是,我相信有更多的相似之处:

  • 两者都有不同类型的构造函数.
  • 两者都定义了一组可以应用于特定类型数据的操作,换句话说,它们都定义了一个接口.

我可以看到Haskell中的"class"更简洁,而且效率也更高.但是,我感觉理论上,"阶级"和"抽象阶级"是相同的.

你怎么看?

haskell programming-languages functional-programming typeclass

5
推荐指数
1
解决办法
473
查看次数

不能再用pip了

当我尝试使用pip时,我遇到了这个错误:

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 9, in <module>
    load_entry_point('pip==1.0.2', 'console_scripts', 'pip')()
  File "/usr/local/lib/python2.6/dist-packages/distribute-0.6.21-py2.6.egg/pkg_resources.py", line 337, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.6/dist-packages/distribute-0.6.21-py2.6.egg/pkg_resources.py", line 2281, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.6/dist-packages/distribute-0.6.21-py2.6.egg/pkg_resources.py", line 1996, in load
    raise ImportError("%r has no %r attribute" % (entry,attr))
ImportError: <module 'pip' from '/usr/lib/pymodules/python2.6/pip/__init__.pyc'> has no 'main' attribute
Run Code Online (Sandbox Code Playgroud)

显然,我对破坏了pip的系统做了一些改变.但我不知道它是什么.什么可能导致上述例外?

编辑:

我能猜到的是,今天早上,我创建了一个virtualenv,通过运行安装自己编写的包:

python setup.py安装

在那种环境中.

顺便说一句,我确实尝试通过运行get-pip.py来重新安装pip,但是没有用

python pip

5
推荐指数
1
解决办法
7895
查看次数

如何在org.apache.ftpserver中允许匿名登录?

我写了一些像这样的代码来启动我的应用程序中嵌入的ftp服务器.它基于apache ftpserver

我发现匿名用户无法登录.客户端保持530.

我是否为ftp添加了配置文件?我找不到任何API来创建要添加到UserManger的用户.

private void start_ftp() throws FtpException {
    FtpServerFactory serverFactory = new FtpServerFactory();

    ListenerFactory factory = new ListenerFactory();

    // set the port of the listener
    factory.setPort(DEF_FTP_PORT);

    // replace the default listener
    serverFactory.addListener("default", factory.createListener());

    Ftplet fl = new MyFtplet();

    Map<String, Ftplet> map_ftplest = new LinkedHashMap<String, Ftplet>();
    map_ftplest.put("default", fl);

    serverFactory.setFtplets(map_ftplest);

    UserManagerFactory u_factory = new PropertiesUserManagerFactory();
    UserManager u_manager = u_factory.createUserManager();
    //u_manager.
    Boolean b = u_manager.doesExist("anonymous");

    serverFactory.setUserManager(u_manager);

    // start the server
    server = serverFactory.createServer();

    server.start();
}
Run Code Online (Sandbox Code Playgroud)

java ftp

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

什么是优秀的软件架构?

我知道我的问题太难以回答,但让我给你一些背景资料.

去年我作为一名软件经理找到了一份新工作,我认为可以做得很好.我在许多不同的编程领域经验丰富,如GUI,Web,RIA,网络应用程序.我是一个很好的问题解决者.一般来说,我知道如何以干净的方式组织代码.而且我总是努力工作.

但是差不多一年之后,我不得不承认我的老板对我的工作非常不满.最重要的原因是他认为我的产品软件解决方案不够先进.我想我已经精心分解了系统,并且我为每个组件选择了最流行的平台,并且大多数代码都很健壮且干净.

但我的老板不这么认为.他真的觉得我们可以做得更好.他想要的不仅仅是好的,而是优秀的.具有几乎终极可扩展性的东西,看起来非常容易扩展,有些东西有一些很棒的概念和想法.

这是我从未遇到过的挑战.我不知道如何向我的老板展示当前系统是否足够好.我告诉他"我们使用xxx,yyy",但他不知道它们是什么.我发现他的UML来解释我们所做的一切,但他是C的超级乐趣,是怀疑论者对OO和UML.

那么你有没有见过一些你感觉很棒,非常好并且很容易扩展的软件架构师?我想我真的需要看一些优秀的软件架构意味着什么的例子.

说实话,我真的怀疑是否值得尝试建立一个架构来为一些尚不存在的要求做准备,但我必须让我的老板很高兴继续我的工作.

architecture

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

如何配置Apache FtpServer?

我在 Apache FtpServer 的文档中发现了这个非常简单的描述:

与 Spring 框架集成

Apache FtpServer 使用 Spring Framework 来实现配置。这也意味着我们获得了与常规 Spring XML 配置完全集成的额外好处。例如,您可以在 Spring 配置中的任何位置嵌入“服务器”元素,并且在类路径上使用 FtpServer,Spring 将为您连接服务器。

没有别的关于:

  1. 我应该把这个配置文件放在哪里?
  2. 文件名应该是什么?
  3. 应用程序如何找到该文件?

我是否学习过 Spring 的 Configure Framework 以了解所有相关信息?

ftp spring

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

当我尝试为所有 python 库构建标记文件时,ctags 永远不会停止

我曾经使用 ctags 通过以下命令为所有已安装的 python 库生成标签文件:

C:\Windows\System32>ctags -R -f d:\home\vimfiles\python.ctags d:\Python26
Run Code Online (Sandbox Code Playgroud)

但今天早上,在我升级到 Python 2.6.7 后,该命令仅生成以下输出,并且从未完成其工作。标签文件的大小一旦达到约 11MB 就不再改变。

ctags: Warning: ignoring null tag in d:\Python26\Lib\copy.py
ctags: Warning: ignoring null tag in d:\Python26\Lib\pickle.py
ctags: Warning: ignoring null tag in d:\Python26\Lib\site-packages\django\contrib\admin\sites.py
Run Code Online (Sandbox Code Playgroud)

什么可能会导致这个问题?

python ctags

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

如何从网页运行可执行文件?

我的意思是,当用户点击网页上的按钮时,将执行已经安装在他的计算机上的程序.我还需要将一些命令行参数传递给程序.


我们有2个程序,一个是Web应用程序,另一个是桌面程序.我们想找到一种简单的方法来集成2.这就是我们需要从网页执行桌面程序的原因.

javascript

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

你什么时候使用第三方代码?

您通常如何解决编程问题,例如,当您必须解析ini文件时?

如果这是我的任务,我会:

  1. 首先检查我的武器库中是否已有适合它的武器.我的意思是检查我熟悉的库,如Glib,APR或标准C API.

  2. 如果我找不到合适的东西,我会检查是否存在一个开源库来解决这个问题.我会看到它的API的质量,如果它有悠久的历史,人们怎么说,并自己测试它.

  3. 如果我一无所获,那么我将自己实施.但是,这种情况非常罕见.

通过这种方式,我相信我可以更专注于业务,专注于我们组织的独特之处.


但是,我通常看到一种完全不同的方法.

  1. 只相信C/C++标准库.
  2. 除非完全不可能,否则实施其他任何事情.

例如,当我问我的同事时,他如何解析ini文件,她说,"只是逐个字符".似乎他从未认为这个问题可能已由其他人解决.

他认为:我们正在撰写商业产品,稳定性是最重要的.所以我们应该尽可能少地依赖第三方库.学习新API还需要时间.


有时,我觉得这只是个人选择取决于一个人的性格.当有不同方法的人做自己的工作时,这是可以的.但是当他们必须合作时,必须妥协.

你怎么看待这件事?你如何解析.ini文件?

c

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

为什么Python允许比较可调用数和数字?

我上周用python写了一个作业,这里是一个代码片段

def departTime():
    '''
    Calculate the time to depart a packet.
    '''
    if(random.random < 0.8):
        t = random.expovariate(1.0 / 2.5)
    else:
        t = random.expovariate(1.0 / 10.5)
    return t
Run Code Online (Sandbox Code Playgroud)

你能看到问题吗?我将random.random与0.8进行比较,后者应该是random.random().

当然这是因为我的粗心,但我不明白.在我看来,这种比较应该在任何编程语言中至少引用一个警告.

那么为什么python会忽略它并返回False?

python

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

函数参数,其值既不是由调用者传入也不是默认值

我有一个这样的装饰:

def region_required(view_func):
    def new_view(request, ctx = {}, *args, **kw):
        import pdb; pdb.set_trace()
        ctx['regions'] = Region.objects.all()
        return view_func(request, context=ctx, *args, **kw)
    return new_view
Run Code Online (Sandbox Code Playgroud)

我用它来装饰视图功能.

今天我注意到一些非常奇怪的东西,ctx(context)参数有时会有属于最后一个HTTP请求的数据.然后我把它缩小到这个装饰器,发现不知何故ctx在它应该是{}时有价值.

所以我设置了一个断点,并向上升级,然后我发现它的调用者根本没有传递任何东西.

参数如何具有既不被调用者传递也不传递默认值的值?

python django

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