我正在使用一个开源库,他们定义了一个类,如下所示:
class Provider(object):
""" Defines for each of the supported providers """
DUMMY = 0
EC2 = 1
EC2_EU = 2
RACKSPACE = 3
SLICEHOST = 4
GOGRID = 5
VPSNET = 6
LINODE = 7
VCLOUD = 8
RIMUHOSTING = 9
Run Code Online (Sandbox Code Playgroud)
我需要获取属性(DUMMY,EC2等)并将它们转换为元组的排序列表,看起来像这样:
[(0, 'DUMMY'), (1, 'EC2'), ...]
Run Code Online (Sandbox Code Playgroud)
我想对属性本身的名称进行排序.我想出了一些解决这个问题的方法,包括以下似乎是处理这个问题的低效方法:
import operator
from libcloud.types import Provider
PROVIDER_CHOICES = [(v,k) for k, v in vars(Provider).items()
if not k.startswith('__')]
PROVIDER_CHOICES = sorted(PROVIDER_CHOICES, key=operator.itemgetter(1))
Run Code Online (Sandbox Code Playgroud)
它有效,但似乎不优雅,并且可能有更好的方式.我也看到了通过这样做构建列表的方式中的缺陷if not k.startswith('__')- 主要是如果开源库将方法添加到Provider类的话?
只是寻找一些可能更有效的意见和其他技术.
我有这个代码:
def addcar
@car = Car.new(params[:car])
render :action => 'list'
end
<% @allcars.each do |cell| %>
<p>
<%= link_to cell.to_s, :controller => 'car', :action => 'addcar', :car => cell.to_s %>
</p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
undefined方法`stringify_keys!' 为"本田":字符串
我不明白有什么问题:car.
使用C++.
pthread_t threads[STORAGE]; // 0-99
...
void run()
Error>>> int status = pthread_create(&threads[0], NULL, updateMessages, (void *) NULL);
if (status != 0)
{
printf("pthread_create returned error code %d\n", status);
exit(-1);
}
Run Code Online (Sandbox Code Playgroud)
...
void ClientHandler::updateMessages(void *)
{
string reqUpdate = "91"; // Request for update
string recvMSG;
while (true)
{
sleep(5);
sending(sock,reqUpdate); // send
recvMSG = receiving(sock); // receive
QString output(recvMSG);
emit signal_chat(output, 0); // Print message to text box
}
}
Run Code Online (Sandbox Code Playgroud)
...
编译错误:
TCPClient.cpp:109: error: argument of type ‘void (ClientHandler::)(void*)’ …
在Windows 7 Home Premium上使用VS 2008/2010和SQL Server 2008开发ASP.NET和WPF应用程序是否有任何限制?
我知道你可以在Home Premium上运行IIS 7.5.我在家庭高级版和VS/SQL Server上用谷歌搜索和Binged,但找不到多少.它看起来不像Home Premium,域加入,xp模式等缺少的功能......不应该阻止在VS/SQL Server中运行和开发.
更新
我确实发现了IIS 7.5的一个限制,它适用于我认为的所有Windows 7版本.您无法创建自己的自签名SSL证书,指定机器名称以外的名称.你坚持使用你的机器名称并不是什么大不了的事,但这是对以前版本的改变.
更新II
您无法在Home Premium上进行远程调试.msvsmon根本不会运行.我甚至不能让它本地进行远程调试.
我想知道是否有可能从下面的语法中获得匹配正则表达式生成的MatchData.
object DateParser extends JavaTokenParsers {
....
val dateLiteral = """(\d{4}[-/])?(\d\d[-/])?(\d\d)""".r ^^ {
... get MatchData
}
}
Run Code Online (Sandbox Code Playgroud)
一个选项当然是在块内再次执行匹配,但由于RegexParser已经执行了匹配,我希望它将MatchData传递给块,或者存储它?
当我从eclipse在手机上运行我的应用程序时,它总是在调试中运行.这种情况最近才开始发生.我想我必须无意中改变偏好或某些东西,但无法解决问题.有谁知道如何将其切换回来,以便我可以在没有调试的情况下运行?
提前致谢
TAO
最近我正在探索NoSQL数据库.我需要一个关于如何以最佳和有效的方式为给定问题存储数据的建议.我现在以MongoDB为目标.但是它应该与CouchDB相同.
假设我们有这三种型号:
Story:
id
title
User:
id
name
Vote:
id
story_id
user_id
Run Code Online (Sandbox Code Playgroud)
我希望能够向数据库询问这些问题:
我在使用关系数据库时正在进行简单连接.问题是,我应该如何存储这些对象的数据,以便最有效.
例如,如果我将投票对象存储为故事的子集合,则不容易获得信息 - "用户投票的内容".
我需要在Java中的一些long,int和short中找到最高阶1.例如,如果我有一个看起来像的char 00110101,我需要一个返回2的方法(最高阶1的索引).
现在,我知道您可以使用for循环执行此操作,如:
for(int i=0; i<8; i++)
if((x & 1<<i) != 0) return i;
return -1;
Run Code Online (Sandbox Code Playgroud)
但这比我想做的慢.我知道现代CPU有指令在芯片上执行此操作,所以我想知道如何调用它而不是有一个显式循环.
编辑:如果你可以返回原语中所有的索引,就可以获得奖励积分.
谢谢.