小编nma*_*mat的帖子

Python字典中的线程安全

我有一个持有字典的班级

class OrderBook:
    orders = {'Restaurant1': None,
              'Restaurant2': None,
              'Restaurant3': None,
              'Restaurant4': None}

    @staticmethod
    def addOrder(restaurant_name, orders):
        OrderBook.orders[restaurant_name] = orders
Run Code Online (Sandbox Code Playgroud)

我正在运行调用该方法的4个线程(每个餐厅一个)OrderBook.addOrder.这是每个线程运行的函数:

def addOrders(restaurant_name):

    #creates orders
    ...

    OrderBook.addOrder(restaurant_name, orders)
Run Code Online (Sandbox Code Playgroud)

这是安全的,还是我必须在打电话前使用锁addOrder

python multithreading dictionary thread-safety

92
推荐指数
3
解决办法
6万
查看次数

Rails点而不是URL中的斜杠

在我的routes.rb我有:

get "projects/:category_id" => "projects#index"
Run Code Online (Sandbox Code Playgroud)

当我写projects_path(1)生成的URL /projects.1而不是/projects/1.你知道为什么会这样吗?这是输出rake routes:

 GET /projects/:category_id(.:format) projects#index
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

如何在Slick的VARCHAR列中使用UUID?

我有一个带有几个表的MySQL 5.7数据库,它们将UUID存储在具有VARCHAR数据类型的列中.我试图将我们的代码库转换为使用Slick 3.1.1,但我遇到了UUID到String转换的问题.这是我的列定义:

def myCol: Rep[UUID] = column[UUID]("myCol", SqlType("VARCHAR"))
Run Code Online (Sandbox Code Playgroud)

当我运行查询时,我得到这样的异常:

Got the exception java.sql.SQLException: Incorrect string value: '\xDA\xFD\xDAuOL...' for column 'myCol' at row 1
Run Code Online (Sandbox Code Playgroud)

根据我的理解,Slick假定UUID应该存储为二进制列类型,所以我尝试使用以下方法隐式转换为String:

implicit val uuidToString = MappedColumnType.base[UUID, String](_.toString, UUID.fromString)
def myCol: Rep[UUID] = column[UUID]("myCol", SqlType("VARCHAR"))(uuidToString)
Run Code Online (Sandbox Code Playgroud)

这适用于插入,但是当我选择myCol结果为空的值时.任何人都知道如何强制Slick使用VARCHAR而不是BINARY(16)进行数据转换?

编辑:

使用隐式此查询不会返回任何结果:

db.run { table.filter(_.myCol === val)).result }
Run Code Online (Sandbox Code Playgroud)

但是这个做了:

db.run { table.result }.map(_.filter(_.myCol == val))
Run Code Online (Sandbox Code Playgroud)

EDIT2:

我有一个带有演示的小项目:https://github.com/nmatpt/slick-uuid-test

mysql scala slick

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

在PHP的exec中使用mktime运行C代码

我有一个奇怪的PHP问题和一个使用当前时间的C脚本.我的程序有点复杂,但问题缩小到这个:

我有这个C代码打印1分钟前的日期,当前日期和从现在开始1分钟的日期:

#include <time.h>
#include <stdio.h>

int main(int argc, char **argv){
  char date[9];
  time_t rawtime;
  struct tm * ptm;
  int i;

  time(&rawtime);
  ptm = gmtime(&rawtime);
  ptm->tm_min--;

  for(i = 0; i < 3; i++){
    rawtime = mktime(ptm);
    ptm = gmtime(&rawtime);
    snprintf(date, 9, "%d %d %d", ptm->tm_mday, ptm->tm_hour, ptm->tm_min);
    printf("%s\n", date);

    ptm->tm_min++;
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我在shell中运行它时,我得到了正确的结果(打印格式是月份,小时,分钟):

$ ./test
17 20 7
17 20 8
17 20 9
Run Code Online (Sandbox Code Playgroud)

但是,当我通过PHP执行它时,我得到了奇怪的结果.这是PHP代码:

<?php
exec("path_to_exec/test", $output);
echo "$output[0]<br/>";
echo "$output[1]<br/>";
echo "$output[2]<br/>";
?>
Run Code Online (Sandbox Code Playgroud)

这是输出:

17 20 …
Run Code Online (Sandbox Code Playgroud)

php c date mktime

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

尝试将Simple Modal示例改编为asp.net datalist中继器

我发现了ericmartin的模态弹出窗口这个很好的例子

但我正在尝试使用ASP.NET转发器生成的图像的数据主义者,而不确定如何使图像动态化.

工作代码很简单,但图像是静态的.它基本上会弹出图像,使调用它的网站变暗.这一切都发生在该网站的javascript和css中.

<div id='container'>
    <div id='content'>
        <div id='basic-modal'>
            <a href='#' class='basic'>Demoz</a>
        </div>
        <div id="basic-modal-content">
              <img src="img/basic/127-2777_IMG.JPG" />
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

但是我的asp.net转发器代码需要以某种方式获取/设置图像值,但在我的javascript中得到"$ get is undefined"错误.

这是我的asp.net代码:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

<script type="text/javascript">
    function ShowFullImg(url) {
        var img = $get("<%=Image1.ClientID %>");
            img.src = url;
            //  $find("Image1").show();
        }
</script> 

<div id='container'>

<div id="basic-modal-content">
<asp:Image ID="Image1" runat="server" /> 
</div>


<ASP:DataList id="repeater1"  runat="server" repeatdirection="Horizontal" RepeatLayout="Table" Repeatcolumns="5"> 
<ItemTemplate> 


<asp:ImageButton ID="ThumbnailImg" ImageUrl='<%# Eval("n1") %>' Height="100" Width="150" BorderStyle="Ridge"   OnClientClick='<%# Eval("n2","ShowFullImg(\"{0}\");return false;") %>'  runat="server" />                          

</ItemTemplate> …
Run Code Online (Sandbox Code Playgroud)

javascript css asp.net jquery modal-dialog

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

Scala Future 错误处理与任一

我正在为 API 编写包装器,我想对应用程序问题进行错误处理。每个请求都返回一个 Future,所以为了做到这一点,我看到 2 个选项:使用 aFuture[Either]或使用异常立即使未来失败。

这是两种情况的片段,response是返回 HTTP 请求的未来:

  def handleRequestEither: Future[Either[String, String]] = {
    response.map {
      case "good_string" => Right("Success")
      case _ => Left("Failed")
    }
  }

  def handleRequest: Future[String] = {
    response.map {
      case "good_string" => "Success"
      case _ => throw new Exception("Failed")
    }
  }
Run Code Online (Sandbox Code Playgroud)

这是在两种情况下获得结果的代码段:

handleRequestEither.onComplete {
  case Success(res) =>
    res match {
      case Right(rightRes) => println(s"Success $res")
      case Left(leftRes) => println(s"Failure $res")
    }
  case Failure(ex) =>
    println(s"Failure $ex")
}

handleRequest.onComplete {
  case …
Run Code Online (Sandbox Code Playgroud)

api error-handling scala exception

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

Python - 确保变量保持正数

我正在寻找一种优雅的方法来确保给定变量保持正值.

我有两个变量保持正浮点数,我根据某些条件递减它们.最后,我想保证我仍然有正数(或最多0).伪代码看起来像这样:

list = [...]

value1 = N
value2 = M

for element in list:
    if ... :
        value1 -= X
    if ... :
        value2 -= Y
Run Code Online (Sandbox Code Playgroud)

有没有比ifs在最后添加两个更优雅的解决方案?

python variables numbers

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

奇怪的 Json.net 异常“输入字符串的格式不正确。”

我有 2 个相当复杂的对象,一个正在解析成功,另一个正在抛出异常。对象之间的唯一区别是 2 个双精度型属性。我将其反序列化为

var item = JsonConvert.DeserializeObject<MyItem>(result.ToString());
Run Code Online (Sandbox Code Playgroud)

其中MyItem包含两行,因此在第一种情况下它们应该为空(项目不包含它们),在第二种情况下应该设置它们(因为它们存在于 json 和反序列化对象中)。

痕迹:

at Newtonsoft.Json.Utilities.ConvertUtils.IntParseFast(Char[] value, Int32 start, Int32 length)
at Newtonsoft.Json.JsonTextReader.ParseNumber()
at Newtonsoft.Json.JsonTextReader.ParseValue()
at Newtonsoft.Json.JsonTextReader.ReadInternal()
at Newtonsoft.Json.JsonReader.ReadAsInt32Internal()
at Newtonsoft.Json.JsonTextReader.ReadAsInt32()
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) …
Run Code Online (Sandbox Code Playgroud)

c# parsing json.net windows-phone-7

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

Scala:列表上的递归求和

def sum(xs: List[Int]): Int = {
  if(xs.isEmpty)
    0
  else
    xs.head + sum(xs.tail)
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释最后一行.

那么中间结果存储在xs.head + sum(xs.tail)中,+之后是否提供了要添加的单个元素?

recursion scala

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