小编Mic*_*oka的帖子

为什么Python在默认编码为ASCII时会打印unicode字符?

从Python 2.6 shell:

>>> import sys
>>> print sys.getdefaultencoding()
ascii
>>> print u'\xe9'
é
>>> 
Run Code Online (Sandbox Code Playgroud)

我希望在print语句之后有一些乱码或错误,因为"é"字符不是ASCII的一部分,我没有指定编码.我想我不明白ASCII是默认编码的意思.

编辑

我将编辑移动到了答案部分并按照建议接受了它.

python unicode encoding ascii python-2.x

137
推荐指数
3
解决办法
8万
查看次数

从PHP到Java.有什么建议?

我在PHP中过去3年一直在进行Web应用程序开发.我现在正准备给Java一个机会.我最近一次使用这种语言的时间差不多是在8年前,主要是学术性的.

我对PHP的对象模型(版本5)非常熟悉,我几乎完全用OO编写代码.我现在想传达这种经验并用它来开发Java.

我来自哪里:

  • linux作为桌面和服务器
  • Vim/gVim +插件作为编辑器
  • MySql for db
  • apache httpd
  • 经验丰富的PHP框架,Zend + Doctrine是我最常用的

到目前为止,我已经获得了关于迁移到Java的内容:

  • 我需要一个IDE:IntellijIDEA,NetBeans或Eclipse
  • 我需要选择一个开发框架.一些经常出现的名字:Spring MVC,stripe,wicket.

现在我需要一些有助于使这种过渡更顺畅的见解.但是从人们谈论它的方式来看,Java似乎是一个拥有自己生态系统的全新野兽.听起来好像转移到Ruby或Python实际上会更容易,这很奇怪,因为当我看到它时,Java在概念上似乎最接近PHP,尽管更严格和预编译.

虽然听起来很奇怪,但很少有人公开记录他们对此类举动的体验.我搜索了谷歌,亚马逊和stackoverflow类似的问题,结果留下了欲望.如果我想快速成为Java中的Web开发人员,我就无法相信我需要像新手一样开始.

欢迎任何人回复,但我有点认为,对这两种语言都有一些宝贵经验的人会最充实地讨论这个问题.

  • 什么帮助你快速进入Java?
  • 什么概念在Java中无处不在,而PHP中缺少哪些概念,反之亦然?
  • PHP开发人员使用Java的一些问题.
  • 你觉得过渡完成多久了?

php java

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

蚂蚁能做什么才能做到?

我正在进行PHP开发,我正在考虑使用其中一种.我的机器上安装了PHP和Java.理论上我可以使用这两者中的任何一个.

选择Phing over Ant有什么令人信服的论据?

php ant phing

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

如何在Zend Framework中抛出404异常

我正在尝试使用Zend_Controller_Plugin_ErrorHandler来处理我的错误404个案例.根据文档,插件具有常量,可以用来匹配异常类型并相应地处理它们.例如

switch ($errors->type) {
        case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
        case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
        case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
            // 404 error -- controller or action not found
Run Code Online (Sandbox Code Playgroud)

有谁知道如何专门创建这些类型的例外?

php zend-framework

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

Facebook连接还是OpenID?从开发人员的角度来看

我最近签订合同,开发一个需要Facebook-Connect作为其身份验证机制之一的应用程序.

在我的Facebook-Connect解决方案上工作,我意识到它正在实施单点登录身份验证方案,如果您登录到一个网站,您将登录到所有这些网站.就个人而言,我并不喜欢这种方法,并且发现在尝试通过您(开发人员)可以控制的单个进程来汇集所有身份验证系统时,很难(并非不可能)使用该方法.我还认为它引入了不必要的安全问题(请参阅Internet部署的风险),只是为了略微改善用户体验.

在研究与该技术合作的策略时,我注意到博客圈几乎已经将Facebook-Connect作为认证的圣杯,与其他人的观点相呼应,并强烈要求"OpenID过于复杂".与此同时,我还没有真正看到许多着名的开发人员和安全专家就此事提出旗帜或发表意见.我对OpenID的唯一体验是使用StackOverflow和相关站点.我一开始很难理解它是什么,但是一旦我意识到我可以使用我的google凭据登录,经验证明非常顺利.

我是偏执狂还是错过了每个人都得到的东西?Facebook-Connect真的是OpenID的更好替代品,还是每个人都在喝别人的Kool Aid?


编辑:

在做完这个之后,我确认facebook-connect登录方案不太理想.整个iframe/js/cookie/reload的东西很难看,很容易出问题.将fb登录集成到现有的身份验证系统本身就是一种练习.你必须做出一些妥协.我必须写一篇完整的文章来解释我是如何做到的.

Facebook似乎对我的单点登录有点痴迷.大多数人都不知道facebook为他们自己的网站启用了OpenID,但即使他们实现它的方式也是模仿SSO并使其有点无意义.我认为OpenID应该工作的方式:你去一个新的网站,如果你有一个OpenId帐户,把网址,登录到你的提供商,你就在.你可以继续完成其他信息.

Fb不预先为您提供OpenID登录.相反,您首先必须注册并登录,然后转到帐户设置,在链接帐户下,选择一个OpenID提供商.但是,与了解要点的StackOverflow不同,如果您指示您的提供商记住该设置,则Facebook仅允许您使用您的OpenID登录.为什么?它使它更像SSO.如果你没有检查要求记住的谷歌盒子,OpenID在facebook上不起作用.

除了登录,facebook-connect一般工作,但仍有许多角落要圆.让我拉扯头发并诅咒那个api的一些事情:

  • Facebook文档分散,没有适当简化.在打开它的第一个小时内,您的浏览器中至少会打开10个选项卡.如果/当您偶然发现您认为将来可能有用的有趣主题时,请确保对它们进行正确的书签,不要依赖导航再次找到它们,因为有时候关键文章会深埋.我知道记录api的wiki方法最近让很多项目变得很懒,但很常见,这就是facebook.他们应该有办法聘请团队来提供适当的用户指南.所以,在开始之前,记得要自己拥有一个不错的facebook书签文件夹.
  • api中有很多方法,祝你好运找到如何使用它们的例子,你必须依靠本能.
  • 很多时候,当某些东西不能按你的意愿工作时,没有人知道为什么.访问论坛页面时,会以假设和谣言的形式给出解释.例如,在登录时,为什么有些应用程序在其他应用程序有js模式对话框时会有弹出式登录窗口?是否有可能控制这种行为?没有人确定.有传言说Facebook正在进行一些测试而不让任何人知道.
  • 并非一切都像宣传的那样有效.即你可能会发现自己被鼓励使用某个功能,浪费宝贵的时间学习它,实现它,调试它,然后只有当你把它放在try/catch异常处理程序中时才发现它不适用于facebook-connect.例如feed.publishUserAction.
  • Facebook尝试太难以用户友好.他们浪费宝贵的资源推动自动化api只能工作一半时间(xfbml),而不是鼓励开发人员利用他们辛苦获得的知识,使用大多数时候证明可以工作的基本内容(伪sql + html).例如,我浪费时间尝试使用ajax/xfbml/js的组合从他们的服务器中提取朋友的照片.这将适用于几个请求,然后完全停止工作.然后我决定使用他们的facebook查询语言(fql)直接从他们的数据库中提取数据,并在html中创建我自己的标记.100%工作.如果你是一个真正的开发者,我给你的建议,不要购买facebook试图养活每个人的"一切都很容易"的口头禅,但事实并非如此.除了熟悉您的编程平台的facebook客户端API(PHP,Python,Java等)之外,还可以投资学习使用fql直接从服务器获取的内容以及使用JS Client API在浏览器上可以执行的操作(不是与fbjs混淆).你可能会发现后两个是你需要做的大部分事情.

我确定这个清单并没有就此结束,但从我的头脑中来看它就是这样.

openid facebook

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

是否值得学习GNU Make?

我最近觉得有必要学习构建工具.我正在通过StackOverflow寻找建议,而Gnu Make几乎没有被提及.相反,我看到Ant,Maven,CMake,Scon和其他许多人.然而,当我看到我有时需要编译的小"流氓来源"(如在非回购中)时,他们都需要这些make && make install步骤.

学习是否比学习另一种工具更省钱?

如果是这样,为什么Make仍然如此受欢迎?

automake makefile

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

SQLAlchemy:急切加载多个关系

我想查询这个结构:

A -> B
B -> C
B -> D
Run Code Online (Sandbox Code Playgroud)

使用Load接口执行此操作的语法是什么,文档不是很清楚(http://docs.sqlalchemy.org/en/latest/orm/loading_relationships.html#sqlalchemy.orm.joinedload).我只看到该怎么做:

A -> B
B -> C
C -> D
Run Code Online (Sandbox Code Playgroud)

鉴于查询:

query(A).options(joinedload(A.b).joinedload(B.c))
Run Code Online (Sandbox Code Playgroud)

如何在链中向后移动以指定B(Bd)上的第二个关系?

python sqlalchemy

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

如何在Python中更改None的值?

我目前正在阅读Dive Into Python的第5.8章,Mark Pilgrim说:

Python中没有常量.如果你足够努力,一切都可以改变.这符合Python的核心原则之一:不应该阻止不良行为但不禁止行为.如果你真的想要更改None的值,你可以这样做,但是当你的代码无法调试时,不要来找我.

我在翻译中试过这个

None = "bad"
Run Code Online (Sandbox Code Playgroud)

我得到一个SyntaxError:赋值给None

出于好奇,你怎么改变无?

编辑:

有趣的是:

>>> import __builtin__
>>> __builtin__.None is None
True
>>> None
>>> None = "bad"
  File "<stdin>", line 1
SyntaxError: assignment to None
>>> __builtin__.None = "bad"
  File "<stdin>", line 1
SyntaxError: assignment to None
>>> setattr(__builtin__, "None", "bad")
>>> __builtin__.None
'bad'
>>> None
>>> __builtin__.None is None
False
>>> __builtin__.None = None
  File "<stdin>", line 1
SyntaxError: assignment to None
Run Code Online (Sandbox Code Playgroud)

>>> class Abc:
...     def __init__(self): …
Run Code Online (Sandbox Code Playgroud)

python syntax

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

有人可以在javascript中解释这种行为吗?

在Firefox中测试:

a = [] + 0;
b = 0;

alert(a); // 0
alert(b); // 0

alert(!a); // false
alert(!b); // true
Run Code Online (Sandbox Code Playgroud)

javascript casting

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

Python:itemgetter()返回的函数在类中没有按预期工作

operator.itemgetter()函数的工作原理是这样的:

>>> import operator
>>> getseconditem = operator.itemgetter(1)
>>> ls = ['a', 'b', 'c', 'd']
>>> getseconditem(ls) 
'b'
Run Code Online (Sandbox Code Playgroud)

编辑我已添加此部分以突出不一致

>>> def myitemgetter(item):
...     def g(obj):
...         return obj[item]
...     return g
>>> mygetseconditem = myitemgetter(1)
Run Code Online (Sandbox Code Playgroud)

现在,我有这门课

>>> class Items(object):
...     second = getseconditem
...     mysecond = mygetseconditem
...
...     def __init__(self, *items):
...         self.items = items
...
...     def __getitem__(self, i):
...         return self.items[i]
Run Code Online (Sandbox Code Playgroud)

使用索引访问第二个项目

>>> obj = Items('a', 'b', 'c', 'd')
>>> obj[1] 
>>> 'b'
Run Code Online (Sandbox Code Playgroud)

通过该mysecond …

python

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