小编ily*_* n.的帖子

网站(Google和/或您)应该如何对待Accept-Language标头?

很长一段时间以来,我一直对谷歌在下面的案例中的行为不满意,并且在意外地注意到80多个其他人都有同样的感觉(并且有20多人赞成谷歌错误报告的想法)我觉得它很有用利用SO在HTTP协议和网络文化方面的智慧.

每次我去不同的国家/地区并google.com从我的笔记本电脑访问或安装新的浏览器时,都会出现此问题.在包括越南在内的许多国家/地区,谷歌会自动重定向到本地化版本(例如google.com.vn),这是我实际上无法阅读的版本,因此我会在拼命尝试查找Google.com的英文链接中进行扫描.

它第一次发生时我很困惑,花了一些时间找出我的请求标题可能出错的地方; 正如我所料,我Accept-Language总是en-US或类似的东西en-US,ru;q=0.5.使用不同IP的进一步测试证实,即使您已登录,它们也会进行IP地理定位.后来我了解到有语言查询?hl=...,但仍然存在.

所以,我的问题是:你认为这是合理的和预期的行为吗,网络文化明智吗?其他网站也这样做吗?如果您要设计一个多语言网站,您会对来自.vnIP但使用en-US语言的人做些什么?

我想有不同的IP地理定位方法:

  • 反对:我认为这是不礼貌的:我明确告诉你我想要什么,给我一些其他的东西有什么好处?

  • :可能是一个人刚安装了默认语言包的浏览器,不知道Accept-*标题,仍然希望看到网站的本地化版本.

  • contra:然而,非技术人员可以通过安装语言包轻松更改接受语言.事实上,如果你去下载Firefox,你很可能会用你想要的语言下载一个,使用符合你意愿的接受语言标题.

请注意,我从1999年开始阅读HTTP 1.1规范,但它们似乎省略了Accept-Language应该考虑多少应该考虑的问题.

我相信这个问题属于SO作为网络应用程序设计问题.而且我还在考虑提交正式的错误报告(如果我说的话,这种行为远非网络标准).

localization http

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

列表的性能(...).insert(...)

我想到了关于计算机架构的以下问题.假设我用Python做

from bisect import bisect
index = bisect(x, a)      # O(log n)  (also, shouldn't it be a standard list function?)
x.insert(index, a)        # O(1) + memcpy()
Run Code Online (Sandbox Code Playgroud)

这需要log n,再加上,如果我理解正确,内存复制操作x[index:].现在我最近读到,瓶颈通常在处理器和内存之间的通信中,因此内存复制可以通过RAM非常快速地完成.这是怎么回事?

python architecture memory list memcpy

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

Python成像替代品

我有python代码,只需要做一些简单的照片:剪裁,调整大小和覆盖水印.我使用了PIL,重新采样/调整大小的结果是可怕的.我使用了imagemagick,界面和命令的设计是将一只猫打包放在一个盒子里,然后反复将它扔到键盘上的一组楼梯上.

我正在寻找一些不是PIL或Imagemagick的东西,我可以使用它来进行简单,高质量的图像转换.就此而言,如果命令行界面良好,它甚至不必具有python绑定.

哦,它需要与平台无关,我们的生产服务器是linux,但我们的一些开发人员在windows上开发.它也不需要安装一堆愚蠢的gui代码来用作库.

python command-line imaging libraries

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

如何将Comparer用于HashSet

由于我在这里问的另一个问题,我想为我的对象使用HashSet

我将创建包含字符串的对象和对其所有者的引用.

public class Synonym
{
   private string name;
   private Stock owner;
   public Stock(string NameSynonym, Stock stock)
   {
       name=NameSynonym;
       owner=stock
   }
   // [+ 'get' for 'name' and 'owner']
}
Run Code Online (Sandbox Code Playgroud)

我知道我需要一个比较器,但以前从未使用它.我应该创建一个单独的类吗?喜欢:

public class SynonymComparer : IComparer<Synonym>
{
   public int Compare(Synonym One, Synonym Two)
   { // Should I test if 'One == null'  or  'Two == null'  ???? 
       return String.Compare(One.Name, Two.Name, true); // Caseinsesitive
   }
Run Code Online (Sandbox Code Playgroud)

}

我更喜欢有一个函数(或嵌套类[可能是单例?],如果需要)作为类同义词的PART而不是另一个(独立)类.这可能吗?

关于用法:因为我之前从未使用过这种东西,我想我必须在类同义词中写一个Find(字符串NameSynonym)函数,但是我应该怎么做呢?

public class SynonymManager
{ 
    private HashSet<SynonymComparer<Synonym>> ListOfSynonyms;

    public SynonymManager()
    {
        ListOfSymnonyms = new HashSet<SynonymComparer<Synonym>>(); …
Run Code Online (Sandbox Code Playgroud)

c# templates dictionary hashset

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

ABAP如何将日期写为长文本?

我需要像ABAP一样拆分ABAP

     20091101 --> "01", "november", "2009"
Run Code Online (Sandbox Code Playgroud)

"01"和"2009"是微不足道的,但我如何获得月份名称(应该本地化)?

有没有这样做的功能?

如果没有这样的功能,也许是一个带有月份名称的表?

sap abap

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

如何学习"ABAP的方式"?

我从未与SAP合作过.我对业务有一个合理的理解,但没有会计背景.如何学习ABAP的例子,同时启发我的"SAP方式"?

它不一定是一个深刻的知识,只是为Python和C#世界的某些人开始,但需要了解SAP世界的运作方式.

(这不是"学习SAP-ABAP"的重复)

sap abap

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

Python 3,是使用sys.stdout.buffer.write()好风格?

在我学习了如何在Python 3.0 web脚本中阅读 unicode文件之后,现在是时候让我学习使用print()unicode了.

我搜索了编写unicode,例如这个问题解释了你不能将unicode字符写入非unicode控制台.但是,就我而言,输出是给Apache的,我相信它能够处理unicode文本.但是,出于某种原因,stdout我的网络脚本是在ascii.

显然,如果我打开一个文件写自己,我会做类似的事情

open(filename, 'w', encoding='utf8')
Run Code Online (Sandbox Code Playgroud)

但由于我得到了一个开放的流,我使用了

sys.stdout.buffer.write(mytext.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

一切似乎都有效.这是否违反某些良好行为规则或有任何意外后果?

unicode cgi python-3.x

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

Python 3不读取新服务器上的unicode文件

我的网页由一个动态导入大量文件的脚本提供服务

try:
    with open (filename, 'r') as f:
        exec(f.read())
except IOError: pass
Run Code Online (Sandbox Code Playgroud)

(实际上,你能建议一个更好的导入文件的方法吗?我确定有一个.)

有时文件包含不同语言的字符串,例如

# contents of language.ru
title = "????????"
Run Code Online (Sandbox Code Playgroud)

这些都保存为UTF-8文件.Python在命令行中运行脚本或从我的MacBook提供页面没有问题:

    OK: [server command line] python3.0 page.py /index.ru
    OK: http://whitebox.local/index.ru

但是当我尝试从我们刚搬到的服务器上提供页面时,它会抛出一个错误:

      157     try:
      158         with open (filename, 'r') as f:
      159             exec(f.read())
      160     except IOError: pass
      161 
      /usr/local/lib/python3.0/io.py in read(self=, n=-1)
      ...
      UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 627: ordinal not in range(128) 

所有文件都是从我的笔记本电脑中复制出来的,而Apache则完美地为它们服务 是什么原因?

更新:我发现默认编码open()是依赖于平台的,所以它utf8在我的笔记本电脑和ascii服务器上.我想知道是否有一个per-program函数在Python 3中设置它(sys.setdefaultencoding在 …

unicode python-3.x

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

混合的.net/sap系统是否有意义?

这可能是一个模糊的问题,但现实生活就像这样.

我们公司正在推出SAP系统.我知道他们现在做Web服务,所以我们可以同时推出.NET的东西,我们知道我们可以用C#做​​什么.

SAP-.NET集成过程中有哪些陷阱?我理解SAP的逻辑与"标准"编程完全不同,但我希望将"业务"部分与"演示"部分分开,用ASP.NET编写.

.net c# sap abap

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

Swift中可继承的@IBInspectable var?

假设@IBInspectable在基@IBDesignable类中创建了一个变量

现在,该属性无法使该属性在派生类中可检查。显然,这是设计使然-您希望能够创建一个派生类,该派生类根据其自身的逻辑设置基本属性,并禁止用户触摸它们。

但是,假设我想使派生类中的相同属性可检查。问题是,@IBInspectable仅与变量定义一起使用,因此似乎已经要求我重新定义变量,即使已经提供了定义(这也是我想念Objective-C的地方:您可以更改类接口而无需触摸提供的实现)知道你在做什么)。

这具有以下缺点:您不能覆盖基本存储的变量,并且需要提供显式的getter和setter。因此,我想到的最干净的代码是:

// derived class
@IBInspectable override var borderWidth: CGFloat {
get {
    return super.borderWidth
}
set {
    super.borderWidth = newValue
}
}

// base class
@IBInspectable var borderWidth: CGFloat {
set {
    layer.borderWidth = newValue
    // this can be a very complicated setter, of course
}
get {
    return layer.borderWidth
    // this can be a very complicated getter, of course
}
}
Run Code Online (Sandbox Code Playgroud)

问题:是否有简化的语法?

(如果没有,并且如果其他人喜欢这个主意,我可能会向苹果的魔术师发出警告。)

xcode swift

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