我们必须使用Unicode类型时是否有规则?
我已经看到大多数欧洲语言(德语,意大利语,英语......)在VARCHAR列中的同一数据库中都很好.
我正在寻找类似的东西:
那么服务器/数据库的整理呢?
我不想像这里建议的一样使用NVARCHAR.varchar 和nvarchar SQL Server数据类型之间的主要性能差异是什么?
我有一个逗号分隔文件"myfile.csv",其中第5列是日期/时间戳.(mm/dd/yyyy hh:mm).我需要列出包含重复日期的所有行(有很多)
我正在通过cygwin为WinXP使用bash shell
$ cut -d, -f 5 myfile.csv | sort | uniq -d
Run Code Online (Sandbox Code Playgroud)
正确返回重复日期的列表
01/01/2005 00:22
01/01/2005 00:37
[snip]
02/29/2009 23:54
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何将这个提供给grep给我所有的行.显然,我不能xargs直接使用,因为输出包含空格.我认为我可以这样做,uniq -z -d但由于某种原因,组合这些标志会导致uniq(显然)没有返回任何内容.
所以,鉴于此
$ cut -d, -f 5 myfile.csv | sort | uniq -d -z | xargs -0 -I {} grep '{}' myfile.csv
Run Code Online (Sandbox Code Playgroud)
不起作用......我该怎么办?
我知道我可以做到这一点perl或其他脚本语言......但我生性倔强坚持认为我应该能够做到这一点在bash使用标准的命令行工具,如sort,uniq,find,grep,cut,等.
教我,哦,打击大师.如何使用典型的cli工具获取所需的行列表?
我的代码生成以下XML:
<person_app>
<person_data>
<person>
...person details here...
</person>
</person_data>
</person_app>
Run Code Online (Sandbox Code Playgroud)
使用XSLT,我解析人员记录如下:
<xsl:template match="/person_app/person_data">
<xsl:for-each select="person">
...generate person HTML...
</xsl:for-each>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
但是,如果我收到零人,我想显示"找不到记录"(或类似的东西).当应用程序返回零记录时,XML类似于以下内容:
<person_app/>
Run Code Online (Sandbox Code Playgroud)
简而言之,当我使用<xsl:for-each />来解析我的Person记录时,如何测试空结果集?我试过以下但没有成功:
<xsl:if test="not(person)">
<div style="font-size:18pt"><xsl:text>No records found</xsl:text></div>
</xsl:if>
Run Code Online (Sandbox Code Playgroud) 我可以理解旧PPC RISC系统的这个要求,甚至是x86-64,但是对于旧的,经过验证的x86?在这种情况下,堆栈只需要在4字节边界上对齐.是的,某些MMX/SSE指令需要16字节对齐,但如果这是被调用者的要求,则应确保对齐正确.为什么要为每个来电者增加这项额外要求?这实际上可能会导致性能下降,因为每个呼叫站点都必须管理此要求.我错过了什么吗?
更新:在对此进行一些调查并与一些内部同事进行一些咨询后,我对此有一些理论:
我对最后一项的问题是,对于依赖于被调用者清理堆栈的调用约定,上述要求实际上 "uglify"了codegen.例如,某些编译器决定为自己的内部使用实现更快的基于寄存器的调用样式(即任何不打算从其他语言或源调用的代码)?这种堆栈对齐可能会通过在寄存器中传递一些参数来抵消一些性能提升.
更新:到目前为止,唯一真正的答案是一致性,但对我来说,答案有点太容易了.我有超过20年的x86架构经验,如果一致性,而不是性能,或其他具体的东西,那么我真的是因为我恭敬地建议开发人员要求它有点天真.他们忽略了近三十年的工具和支持.特别是如果他们期望工具供应商能够快速轻松地为他们的平台调整他们的工具(可能不是......这是 Apple ......),而不必跳过几个看似不必要的箍.
我会在另一天左右给出这个话题,然后关闭它......
我正在为我的程序编写一个插件系统,我无法解决一件事:
class ThingLoader(object):
'''
Loader class
'''
def loadPlugins(self):
'''
Get all the plugins from plugins folder
'''
from diones.thingpad.plugin.IntrospectionHelper import loadClasses
classList=loadClasses('./plugins', IPlugin)#Gets a list of
#plugin classes
self.plugins={}#Dictionary that should be filled with
#touples of objects and theirs states, activated, deactivated.
classList[0](self)#Runs nicelly
foo = classList[1]
print foo#prints <class 'TestPlugin.TestPlugin'>
foo(self)#Raise an exception
Run Code Online (Sandbox Code Playgroud)
测试插件看起来像这样:
import diones.thingpad.plugin.IPlugin as plugin
class TestPlugin(plugin.IPlugin):
'''
classdocs
'''
def __init__(self, loader):
self.name='Test Plugin'
super(TestPlugin, self).__init__(loader)
Run Code Online (Sandbox Code Playgroud)
现在IPlugin看起来像这样:
class IPlugin(object):
'''
classdocs
'''
name=''
def …Run Code Online (Sandbox Code Playgroud) 所以我有两个对象,Invoice和InvoiceLineItem.InvoiceLineItem具有一个名为的属性cost,它是基于其他属性动态创建的.为了帮助我使用KVO /绑定:
+ (NSSet *)keyPathsForValuesAffectingCost {
return [NSSet setWithObjects:@"lineItemType", @"serviceCost", @"hourlyRate", @"timeInSeconds", @"productCost", @"quantityOfProduct", @"mileageCost", @"milesTraveled", nil];
}
Run Code Online (Sandbox Code Playgroud)
这非常有效.当我编辑像serivceCost这样的属性时,表视图中的主要成本更新.
在Invoice对象中,我有一个InvoiceLineItems的NSMutableArray.发票有一个类似的属性叫做totalCost.它是通过迭代订单项来计算的,只要订单项没有标记为已删除(我这样做是为了同步原因),就会增加成本并创建totalCost.
现在我的问题/问题.如何设置Invoice的totalCost,以便在其中一个订单项的费用发生变化时,它可以与KVO /绑定配合使用?
我尝试过设置:
+ (NSSet *)keyPathsForValuesAffectingTotalCost {
return [NSSet setWithObjects:@"lineItems.cost", nil];
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我最终在控制台中出错:[<NSCFArray 0x1499ff40> addObserver:forKeyPath:options:context:] is not supported. Key path: cost
一位同事使用for循环在他编写的一些C#代码中迭代List并留下评论,"没有使用For Each,因为我不确定它是否按顺序迭代.谁知道微软会做什么." 例如,假设我们有一个像这样构建的List:
var someList = new List<string>();
someList.Add("one");
someList.Add("two");
someList.Add("three");
Run Code Online (Sandbox Code Playgroud)
我的同事使用了这样的东西:
for (int i = 0; i < someList.Count; i++)
{
System.Diagnostics.Debug.WriteLine(someList[i]);
}
Run Code Online (Sandbox Code Playgroud)
而不是这个:
foreach (var item in someList)
{
System.Diagnostics.Debug.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)
我猜他担心这些物品可能会以不同于添加到集合中的顺序出现.我认为他有点偏执,但从技术上讲,文档并没有说明集合迭代的顺序.foreach语句是否有可能以最低限度到最高限度之外的任何顺序遍历数组或集合对象?
是的,我的意思是说80位.这不是一个错字......
我对浮点变量的经验总是涉及4字节的倍数,如单音(32位),双音(64位)和长双音(我已经看到它被称为96位或128位).这就是为什么当我遇到一些代码来读取和写入AIFF(音频交换文件格式)文件时遇到80位扩展精度数据类型时我有点困惑:选择了一个扩展精度变量来存储采样音轨的速率.
当我浏览维基百科时,我发现上面的链接以及IEEE 754-1985标准摘要中的80位格式的简要提及(但不在IEEE 754-2008标准摘要中).看来,在某些架构上,"扩展"和"长双"是同义词.
我没有遇到的一件事是使用扩展精度数据类型的特定应用程序(当然,AIFF文件采样率除外).这让我想知道:
我有以下jQuery代码:
$.ajax({
type: "POST",
url: "Services/MyService.asmx/Select",
dataType: "json",
data: "{'data':'test'}",
contentType: "application/json; charset=utf-8",
success: function(msg){
alert(msg);
},
error: function(xhr){ alert(xhr.statusText);}
});
Run Code Online (Sandbox Code Playgroud)
对该方法的调用返回以下内容:
"{"FirstName":"James"}"
Run Code Online (Sandbox Code Playgroud)
当我返回值时,我的警报返回完整的json字符串.如果我尝试做alert(msg.FirstName),我会"未定义".
我已经看到很多使用getJSON()方法的例子; 但是,我还没有看到一种方法将其用于POST动词.任何人都可以指出我在哪里出错了吗?根据jquery文档,返回值应该是相同的dataType(json),所以我不确定我缺少什么.
编辑:我查看了我的服务,它是匹配的示例,我发现方法签名返回一个字符串.我还确认响应类型是application/json.
EDIT2:更新了响应以包含外部引号.我也使用自定义JavaScriptConverter来执行JSON序列化.自定义转换器只获取我的对象属性(在本例中为FirstName)并将其加载到Dictionary集合中,ASP.Net AJAX Extensions v1.0可以轻松地序列化.
编辑3:调查我使用eval()的问题(它导致Expected ";"错误),我注意到json属性名称也用引号括起来.一旦我从属性名称(而不是值)中删除了引号,eval()再次工作.现在调查此问题的服务器端.
我正在使用Visual Studio 2005.它总是希望像这样格式化switch语句:
switch (thing)
{
case A:
stuff;
break;
case B:
things;
break;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让它缩进这样的案例?:
switch (thing)
{
case A:
stuff;
break;
case B:
things;
break;
}
Run Code Online (Sandbox Code Playgroud)