小编Sht*_*ong的帖子

从一个借用它的循环内部操作一个对象

我在Rust中编写了一些连接到远程服务器的代码,根据该服务器发送的消息,计算一些统计信息或根据这些统计信息执行操作.但这对我来说更像是一个学习项目,而且我遇到了一个问题.

这是我已经减少到最低限度以重现问题的代码:

// Repro code for error[E0502]: cannot borrow `*self` as mutable because `self.server` is also borrowed as immutable

use std::collections::HashMap;

struct ServerReader {
    server: Vec<u32>, // A vec for demo purposes, but please imagine this is a server object
    counters: HashMap<u32, usize>,
}

impl ServerReader {
    fn new() -> ServerReader {
        ServerReader {
            server: vec!(1, 2, 5, 2, 7, 9, 1, 1, 5, 6), // Filling my "server" with some messages
            counters: HashMap::new(),
        }
    }

    fn run(&mut self) { …
Run Code Online (Sandbox Code Playgroud)

rust borrow-checker

22
推荐指数
2
解决办法
2073
查看次数

将自定义数据包含到iOS崩溃转储中

Hello Stack Overflow!

一个简单的问题:是否有可能将自定义错误数据嵌入到我的应用程序在其设备上崩溃时从用户那里获得的自动生成的iOS崩溃转储中?

例如:我的SQlite数据库由于某种原因(例如,数据库文件已损坏)将无法运行.我无法从此错误中恢复,因此我抛出异常,并在异常中嵌入详细的sqlite错误消息.问题是,应用程序的崩溃转储不会包含异常消息,因此要知道应用程序崩溃的条件并不容易.

有没有人知道将事情放入崩溃转储报告的方法?或者您是否有任何其他建议的方式向开发人员报告生产崩溃?

谢谢 !

error-handling crash-dumps ios

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

Sql Server Freetext通过Entity Framework

我有一个使用ASP.NET MVC 3和Entity Framework 4查询Sql Server 2008数据库的现有网站.它包含一个包含大约10个字段的搜索表单,当用户单击提交按钮时,我动态创建一个仅包含指定搜索字段的Entity SQL请求,省略空字段.有用.到现在为止还挺好.

现在,客户端需要其中一个字段的全文搜索行为.我认为这个请求非常复杂,因为(AFAIK):

  • 实体框架本身不支持全文搜索
  • 我想避免存储过程来包装FTS语法,因为到目前为止我只使用"静态"SP,将逻辑保留在.NET代码中.所以我想尽量避免在过程中构建查询.并且每个可能的搜索字段组合创建一个过程不是一种选择.

到目前为止我能想到的解决方案:

  • 将存储过程或用户定义的函数作为seach preadicate放在WHERE子句中(虽然我不确定是否可行)
  • 仅在临时表中获取FTS结果,并​​在该临时表上执行其他过滤器.如果这项技术有很多FTS结果,我担心表现不佳......

用这种方法感觉最好的方法是什么?

.net sql-server full-text-search entity-framework entity-framework-4

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

ASP.NET MVC 5:使用站点模板无限重定向到登录页面

我刚刚开始使用ASP.NET MVC 5(我已经使用了以前的版本)并且我有一个非常奇怪的问题:我使用Visual Studio 2013(完全更新的)ASP.NET模板创建了一个新网站.对于模板选项,我选择了MVC模板,"个人用户帐户"身份验证类型,没有云托管,除了核心MVC库之外没有其他组件.验证选项后,我更新了所有NuGet包.之后我按F5(不打开或修改任何新项目文件).

由于无限重定向循环,浏览器仅打开以显示错误页面:URL显示:

http://localhost:24585/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%252525<snip>
Run Code Online (Sandbox Code Playgroud)

同样,这是使用未经修改的库存MVC模板.我确实检查了登录URL是否在cookie auth选项中定义,看起来很好:

// Configure the sign in cookie
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Account/Login"),
    Provider = new CookieAuthenticationProvider
    {
        // Enables the application to validate the security stamp when the user logs in.
        // This is a security feature which is used when you change a password or add an external login to your account.  
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
            validateInterval: TimeSpan.FromMinutes(30),
            regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
    }
});            
Run Code Online (Sandbox Code Playgroud)

唯一可能破坏默认网站的是全局web.config/machine.config文件中的内容,尽管我通常会避免在我的开发框中弄乱它们.在不更新NuGet包的情况下启动模板并不能解决问题.ASP.NET …

asp.net-mvc asp.net-mvc-5 asp.net-identity-2 asp.net-mvc-5.2

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

将列表参数传递给Jinja2扩展中的Call节点

我现在一直在努力创建一个Jinja2扩展几个小时,似乎我肯定会陷入一个特定点:将列表参数传递给Call节点.我试图从其他一些工作的扩展中获得灵感,但我不明白为什么我的东西在我的参考代码中没有用.

基本上我想要的是在我的模板中有这样的东西:

{% usebundle "common", "treeview" %}

这应该将'common'和'treeview'字符串添加到上下文中的某个列表中.

以下是我的代码的关键部分:

class MyExtension(Extension):
  def __init__(self, environment):
    super(MyExtension, self).__init__(environment)

  def parse(self, parser):
    lineno = parser.stream.next().lineno
    names = []
    while parser.stream.current.type != 'block_end':
      names.append(parser.parse_expression())
      parser.stream.skip_if('comma')

    # At this point, names is a correctly filled array of names
    call = self.call_method('_callback', args=[nodes.List(names)])
    result = nodes.CallBlock([call], [], [], [])
    result.set_lineno(lineno)
    return result

  def _callback(self, names, caller=None):
    # Here names should contain a list of names, but it's either undefined or 
    # a list of Undefined, or …
Run Code Online (Sandbox Code Playgroud)

python jinja2 flask

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

在Visual Studio 2013中全局使用UNIX行结尾

我想知道你们中的任何人是否知道全局(或者可能是逐个项目的?)在我的所有项目文件中使用Unix换行符.

我知道"高级保存选项..."菜单条目,但首先它是一个逐个文件的选项,其次它似乎没有真正起作用(例如,如果我选择Unix结尾并在第二天更改文件,它将在Unix结尾的中间插入Windows行结尾...).高级保存弹出窗口提到了"当前设置"这是默认选择,所以我想知道这是指某个选项吗?

如果股票VS无法正常执行此操作,您是否可能知道有一个插件可以完成这项工作?

谢谢 !

编辑:尝试全局插件后(请参阅Sir.Tiddlesworth的回答),我认为这不是一个可行的解决方案.因此,欢迎逐个项目的建议!

newline visual-studio visual-studio-2013

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

在PHP 5.3.8上使用fileinfo进行Mime类型检测失败

我在使用fileinfo检测简单PNG文件的mime类型时遇到问题,在CentOS服务器上安装了PHP 5.3.8.

问题

基本上,如果我有以下代码:

<?php
$const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
$handle = finfo_open($const, '/usr/share/file/magic.mime');
$result = finfo_file($handle, '/var/vhosts/v4dev/public/Melvin.png');
echo $result;
unset($handle);
?>
Run Code Online (Sandbox Code Playgroud)

如您所见,该文件是PNG图像.已检查文件的头字节并且是正确的.但是此页面输出的结果不正确:

application/octet-stream
Run Code Online (Sandbox Code Playgroud)

我想这是因为无法检测到文件类型,fileinfo返回了默认响应,但我发现无法检查.

我尝试了什么

要检查magic.mime文件的正确性,我使用了文件控制台命令:

file -m /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png
Run Code Online (Sandbox Code Playgroud)

哪个返回了预期的结果:

/var/vhosts/v4dev/public/Melvin.png: image/png
Run Code Online (Sandbox Code Playgroud)

我还尝试了Apache提供的另一个magic.mime文件,但问题仍然存在.

我尝试通过默认的fileinfo位置(使用符号链接和文件的副本),MAGIC环境变量以及通过指定finfo_open调用中的文件路径(如上所述)来指定magic.mime文件.

我试过更新PHP.

......现在我没有选择了.


如果有人能帮助我,我会在太空中发出幸福的浪潮,这样他/她就可以幸福地生活.

干杯

php centos fileinfo

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

在shell脚本中使用空格执行动态创建的命令

我必须编写一个脚本,生成并执行一个包含文件名的可变数量参数的命令.这些文件名可能包含空格,一切都必须正常,有或没有空格.

例如,此生成的命令可能如下所示:

curl --data-urlencode "js_code@/tmp/some folder/data.txt" http://www.someurl.com
Run Code Online (Sandbox Code Playgroud)

如果我使用硬编码命令并执行它,所有运行正常,有空格和没有空格.但是,如果我在字符串变量中创建命令文本,并执行字符串内容,则该命令似乎不会仅使用文件的第一部分来考虑引号:

脚本(简化,假设命令字符串是使用复杂规则创建的):

#!/bin/sh
#prepare
command="curl --data-urlencode \"param_value@/tmp/some folder/data.txt\" www.someurl.com"
#execute
$command
Run Code Online (Sandbox Code Playgroud)

结果 :

$ ./test.sh
Warning: Couldn't read data from file ""param_value@/tmp/some", this makes an
Warning: empty POST.
curl: (6) Couldn't resolve host 'folder'
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的东西,转换引号样式,使用像exec这样的东西,但我无法让它工作.

任何帮助,将不胜感激

谢谢

注意:我应该在Cygwin上添加所有这些测试.关于路径语法可能很重要.

shell

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

由Azure DevOps执行时xUnit测试失败

我正在创建一个非常简单的测试项目,以尝试各种Azure DevOps CI / DI功能。该项目包含一个带有ASP.NET Core网站项目和xUnit单元测试项目的解决方案。单元测试可以在我的本地计算机上正确运行(已使用Visual StudioRunner和进行了测试dotnet test,但是我无法使其与Azure构建一起使用。

Azure中单元测试步骤的输出如下:

##[section]Starting: Test Assemblies
==============================================================================
Task         : Visual Studio Test
Description  : Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2).
Version …
Run Code Online (Sandbox Code Playgroud)

unit-testing xunit azure visual-studio-2017

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

编译器将字符串转换为basic_string <>&

我花了很长时间在其他技术上花了很长时间才回到C++,当调用一些以std :: string作为参数的方法时,我会遇到一些奇怪的行为:

电话的一个例子: LocalNodeConfiguration *LocalNodeConfiguration::ReadFromFile(std::string & path) { // ... throw configuration_file_error(string("Configuration file empty"), path); // ... }

当我编译时,我得到了这个(为了便于阅读,我裁剪了文件名):

/usr/bin/g++    -g -I/home/shtong/Dev/OmegaNoc/build -I/usr/share/include/boost-1.41.0   -o CMakeFiles/OmegaNocInternals.dir/configuration/localNodeConfiguration.cxx.o -c /home/shtong/Dev/OmegaNoc/source/configuration/localNodeConfiguration.cxx
    .../localNodeConfiguration.cxx: In static member function ‘static OmegaNoc::LocalNodeConfiguration* OmegaNoc::LocalNodeConfiguration::ReadFromFile(std::string&)’:
    .../localNodeConfiguration.cxx:72: error: no matching function for call to ‘OmegaNoc::configuration_file_error::configuration_file_error(std::string, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)’
    .../configurationManager.hxx:25: note: candidates are: OmegaNoc::configuration_file_error::configuration_file_error(std::string&, std::string&)
    .../configurationManager.hxx:22: note:                 OmegaNoc::configuration_file_error::configuration_file_error(const OmegaNoc::configuration_file_error&)
Run Code Online (Sandbox Code Playgroud)

据我了解,编译器正在考虑我的路径参数在某个时刻转变为basic_string,因此找不到我想要使用的构造函数重载.但我真的不明白为什么会发生这种转变.

网上的一些搜索建议我使用g ++,但我已经在使用它了.所以任何其他建议将不胜感激:)

谢谢

c++ g++

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