我正在导入一个模块,在某些情况下会引发以下错误:RuntimeError:pyparted需要root访问权限
我知道我可以在导入之前检查root访问权限,但我想知道如何通过try/except语句捕获这种特殊类型的错误以供将来参考.有没有办法区分这个RuntimeError和其他可能引发的错误?
我在一些DDD企业应用程序中看到的一件事是,使用与域实体相同的接口,以及属性和功能的一对一映射.实际上,域对象总是通过它的一对一接口使用,并且所有域实体都具有这种风格的一对一接口.
例如:
域对象帐户:
public class Account : IAccount
{
public string Name {get;set;}
//...some more fields that are also in IAccount
public decimal Balance {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
它是匹配的界面
public interface IAccount
{
string Name {get;set;}
//... all the fields in Account
decimal Balance {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
但最近我越来越相信这实际上是一种反模式.
我是由开源社区的一些架构师运行的,他们说这是基于设计错误或缺陷,在设计链的某个地方.
所以我告诉我的同事他们应该退出为Domain对象创建接口.因为它们没有任何意义,所以每当更新域实体时都必须更新接口.
首先声称这些接口提供了"解耦",但我反驳说,因为接口与域实体有一对一的关系,它们实际上并没有提供任何解耦,接口的改变意味着改变域实体,反之亦然.
下一个主张是我们需要接口用于测试目的.我的反击是Rhino-mocks提供了具体类的模拟和存根.但是他们声称Rhino-mocks在具体课程方面遇到了麻烦.我不知道我是否购买,即使rhino-mocks在具体类中遇到问题,也不一定意味着我们应该使用域实体的接口.
所以我很好奇:
为什么你的域实体有一对一的接口?
为什么不?
为什么这是一个好的或坏的做法?
谢谢阅读!
编辑:我应该注意,我一直使用接口,我相信如果它被要求我将使用一个接口.但我特别指的是具有一对一接口的域实体.
我需要一个字符编码问题的帮助,我想一劳永逸地排序.以下是我从XML提要中提取的一些内容的示例,插入到我的数据库然后拔出.
你看不到,很多特殊的html字符被破坏/破坏.
我怎么能一劳永逸地阻止这个呢?我如何能够支持所有类型的角色等?
我已经尝试过我能找到的每一段编码,它有时会纠正它,但其他一些都被破坏了.
这是C#/.NET 2.0.
所以我有一个包含XML文件未来内容的字符串.它包含来自图像文件的元数据和二进制数据.一旦我将字符串中的数据写入文件系统,我想以某种方式确定XML文件的大小.
我尝试过以下内容并且都不起作用:
Console.Out.WriteLine("Size: " + data.Length/1024 + "KB");
Run Code Online (Sandbox Code Playgroud)
和
Console.Out.WriteLine("Size: " + (data.Length * sizeof(char))/1024 + "KB");
Run Code Online (Sandbox Code Playgroud)
两者都不起作用(生成的文件的实际大小与这些方法中的任何一个返回的大小不同).我显然在这里遗漏了一些东西.任何帮助,将不胜感激.
XML序列化:
// doc is an XMLDocument that I've built previously
StringWriter sw = new StringWriter();
doc.Save(sw);
string XMLAsString = sw.ToString();
Run Code Online (Sandbox Code Playgroud)
写入文件系统(XMLAsString作为变量命名数据传递给此函数):
Random rnd = new Random(DateTime.Now.Millisecond);
FileStream fs = File.Open(@"C:\testout" + rnd.Next(1000).ToString() + ".txt", FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
app.Diagnostics.Write("Size of XML: " + (data.Length * sizeof(char))/1024 + "KB");
sw.Write(data);
sw.Close();
fs.Close();
Run Code Online (Sandbox Code Playgroud)
谢谢
所以,我认为代码可能解释了我想要做的比我言语更好,所以这里是:
import abc
class foo(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def bar(self):
pass
class bar_for_foo_mixin(object):
def bar(self):
print "This should satisfy the abstract method requirement"
class myfoo(foo, bar_for_foo_mixin):
def __init__(self):
print "myfoo __init__ called"
self.bar()
obj = myfoo()
Run Code Online (Sandbox Code Playgroud)
结果:
TypeError: Can't instantiate abstract class myfoo with abstract methods bar
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用mixin类来满足abstract/interface类的要求.我错过了什么?
我正在配置我的新项目的管理站点,我有点怀疑我该怎么做,在通过管理站点添加数据时点击"保存",一切都转换为大写...
编辑:好的我知道.upper属性,我做了一个视图,我知道怎么做,但我想知道管理站点上的字段配置是否有任何可用的属性:P
考虑这种情况.我有我自己的网站,我为我的标识使用,但我用第三方OpenID提供商(在我的雅虎),如所描述这里,登录上依赖方(RP)等网站计算器和sourceforge上.
这似乎是明智之举:
题
RP如何运作?我的理解是它应该使用我 提供的标识符,并仅使用提供程序(yahoo)进行身份验证(而不是用于标识).那是对的吗?最近发生了什么变化?为了清楚起见,我的意思是我的身份应该是
http://www.mysite.com/myPreferredUrl
并不是
https://me.yahoo.com/myYahooId(这是我的网站"重定向"认证,如上述网站所述)
边注
我也问这个问题,因为现在似乎有些事情被打破了(几个月前它们还可以).如果我尝试登录stackoverflow,我写了mysite.com网址,我正确地"重定向"到我登录的雅虎网站,它询问我是否要"继续使用stackoverflow",我说是的,它"重定向",在stackoverflow网站上,我看到"这是我们以前从未见过的OpenID",它显示了我的雅虎ID,我实际上已经被锁定了!
这是一个错误,还是我错过了什么?
PS:如果你想知道我是怎么写这个问题的,那是因为在我使用的众多机器之一上,浏览器仍然有一个有效的cookie ....
编辑:Andrew Arnott在下面的回答提出了一种解决我的问题的方法(即切换到另一个提供商).但我仍然对一些细节感兴趣:从OpenID 1.1到2.0的变化是什么,关于授权?为什么在规范中选择让提供商"打破"授权?你解释得越多,接受答案的机会就越大.
我需要创建一个与某些Windows应用程序交互的站点.目前这是通过直接调用完成的,所以我希望这些在网络服务器上运行.这意味着该站点必须在基于Windows的系统上运行.
我最近一直在做一些红宝石,我非常热衷于在网站上使用rails,但同时也看到了很多令人沮丧的帖子.
我应该更喜欢使用ASP.NET(MVC)用于Windows系统还是rails足够稳定来处理这个问题?
我遇到了tinyMCE(WYSIWYG编辑器)的问题.我实际上是在像DIV这样的HTML元素中添加textarea,它当前具有样式属性"display:none".
当我将DIV显示样式更改为可见时,tinyMCE编辑器显示为已禁用.
重要说明:导致问题的设置是"auto_resize"选项.这是我打开/关闭的唯一选项,使tinyMCE编辑器进入编辑或只读模式.
这是我的代码:
tinyMCE.init({
mode: "specific_textareas",
editor_selector: /(RichTextArea)/,
theme: "advanced",
auto_reset_designmode: true,
auto_resize:true,
theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,fontselect,fontsizeselect,|,forecolor,backcolor,|,bullist,numlist,|,justifyleft,justifycenter,justifyright,justifyfull",
theme_advanced_buttons2: "",
theme_advanced_buttons3: "",
theme_advanced_buttons4: "",
theme_advanced_more_colors: 0,
theme_advanced_toolbar_location: "external",
theme_advanced_toolbar_align: "left"
});
Run Code Online (Sandbox Code Playgroud)
...
<a href="#" onclick='document.getElementById("myHiddenDiv").style.display = "block"; return false;'>Show WYSIWYG</a><br/>
<div id="myHiddenDiv" style="display:none">
<!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
<textarea class="RichTextArea" id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
<p>This is the first paragraph.</p>
<p>This is the second paragraph.</p>
<p>This is the third paragraph.</p>
</textarea>
</div> …Run Code Online (Sandbox Code Playgroud) 我有以下情况:我在ajax updatepanel中有一个文本框.无论用户在文本框中输入什么,我都必须显示一条消息(不同的消息取决于用户输入的数据).
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:TextBox ID="txtMyTexbox" runat="server" Width="500px" OnTextChanged="txtMyTexbox_TextChanged" AutoPostBack="true"></asp:TextBox>
<br />
<asp:Label ID="lblMessage" runat="server" CssClass="errorMessage" Visible="false">Hello World</asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="txtMyTexbox" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
在服务器端,我在页面加载时写了以下内容
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(txtMyTexbox);
Run Code Online (Sandbox Code Playgroud)
和这样的方法
protected void txtMyTexbox_TextChanged(object sender, EventArgs e)
{
if (.....)
{
lblMessage.Visible = false;
}
else
{
lblMessage.Visible = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我现在的问题是:当用户键入文本框时,它不会导致OnTextChanged事件.
我错过了什么吗?