小编Iva*_*van的帖子

C++ 11 std :: forward_as_tuple和std :: forward

std::forward当我将它们用作参数时,我应该使用我的函数参数std::forward_as_tuple吗?

template<class ... List>
void fn(List&& ... list){
   // do I need this forward?
   call_fn( forward_as_tuple( forward<List>(list)... ) );  
}
Run Code Online (Sandbox Code Playgroud)

我知道它们将被存储为右值引用,但还有什么我应该考虑的吗?

c++ templates tuples perfect-forwarding c++11

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

如何对用于存储日志的Azure表进行分区

我们最近更新了我们的日志记录以使用Azure表存储,由于它在行和分区查询时非常适合于此目的而具有低成本和高性能.

我们正在尝试遵循为Azure表存储设计可扩展分区策略文档中给出的准则.由于我们正在为此表格进行大量插入(并且希望随着我们的扩展而增加数量),我们需要确保不会达到我们的限制,从而导致日志丢失.我们的设计结构如下:

  • 我们在每个环境(DEV,TEST,PROD)上都有一个Azure存储帐户.

  • 我们每个产品都有一张桌子.

  • 我们对Row Key使用TicksReversed + GUID,这样我们就可以在特定时间内以高性能查询结果块.

  • 我们最初选择使用Logger对表进行分区,对于我们来说,这是产品的广泛领域,如API,应用程序,性能和缓存.然而,由于分区数量较少,我们担心这导致所谓的"热"分区,其中在给定时间段内在一个分区上执行了许多插入.所以我们改为上下文分区(对我们来说,类名或API资源).

然而,在实践中我们发现这不太理想,因为当我们一目了然地查看我们的日志时,我们希望它们按时间顺序出现.我们最终会得到按上下文分组的结果块,如果我们想按时间排序,我们必须得到所有分区.

我们有一些想法

  • 使用时间块(比如1小时)分区键按时间排序(导致热分区1小时)

  • 使用一些随机的GUID进行分区键尝试分发日志(我们无法快速查询Context等功能).

由于这是Azure表存储的常见应用程序,因此必须有某种标准过程. 分区用于存储日志的Azure表的最佳做法是什么?

解决方案约束

  • 使用便宜的Azure存储(表存储似乎是显而易见的选择)

  • 快速,可扩展的写入

  • 丢失日志的可能性很小(即,超过Azure表存储中每秒2000个实体的分区写入速率).

  • 阅读按日期排序,最近一次.

  • 如果可能的话,对可能对查询有用的东西进行分区(例如产品区域).

logging partitioning azure azure-table-storage

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

node.js中的gm转换问题

我正在将图像从jpg转换为png,但它正在给出错误.下面是代码和错误.

gm('E:/image1.jpg').write('E:/image2.png', function(err){
        if (err){
            console.log(err);
        } else{console.log('image converted.')}
    })
Run Code Online (Sandbox Code Playgroud)

错误是:

[Error: Could not execute GraphicsMagick/ImageMagick: gm "convert" "E:/image1.jpg" "E:/image2.png" this most likely means the gm/convert binaries can't be found]
Run Code Online (Sandbox Code Playgroud)

我需要npm graphicsmagick和imagemagick吗?

javascript imagemagick node.js graphicsmagick

8
推荐指数
4
解决办法
9883
查看次数

有时无法使用spark打开本机连接

我正在使用Spark 1.4版和Cassandra 2.18运行Spark工作.我从主人那里telnet,它适用于cassandra机器.有时工作运行正常,有时我得到以下异常.为什么有时会发生这种情况?

"线程中的异常"main"org.apache.spark.SparkException:作业因阶段失败而中止:阶段0.0中的任务0失败4次,最近失败:阶段0.0中丢失任务0.3(TID 7,172.28.0.162): java.io.IOException:无法在{172.28.0.164}打开与Cassandra的本机连接:9042 at com.datastax.spark.connector.cql.CassandraConnector $ .com $ datastax $ spark $ connector $ cql $ CassandraConnector $$ createSession( CassandraConnector.scala:155)"

它有时也会给我这个例外以及上面的例外:

引起:com.datastax.driver.core.exceptions.NoHostAvailableException:所有尝试查询的主机都失败了(尝试:/172.28.0.164:9042(com.datastax.driver.core.TransportException:[/ 172.28.0.164: 9042]连接已关闭))

cassandra apache-spark

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

MongoDB $ geoIntersects没有在多边形中找到一条完全包含的行,而是找到另一条

我有一个MongoDB数据库,其中有一个名为的集合fooCollection.该集合中包含文档,其中包含边界多边形的地理空间数据.我在我的应用程序中使用C#MongoDB驱动程序.我注意到它没有查找具有某些空间查询的文档,尽管它适用于大多数文档.我删除了除了一个违规文档之外的集合,我试图通过直接执行查询来找到它.

我的文档看起来像这样:

{
"_id" : UUID("12345678-62d9-4024-86dc-123456789012"),
"polygon" : {
    "type" : "Polygon",
    "coordinates" : [ [ 
            [ 18.414846, -33.9699577 ], 
            [ 18.414846, -26.0991189 ], 
            [ 31.0330578, -26.0991189 ], 
            [ 31.0330578, -33.9699577 ], 
            [ 18.414846, -33.9699577 ]
    ] ]
},
"foo": "bar"
}
Run Code Online (Sandbox Code Playgroud)

我在该集合上也有这个索引:

[
    1,
    {
       "polygon" : "2dsphere"
    },
    "polygon_2dsphere",
    "data.fooCollection",
    3
]
Run Code Online (Sandbox Code Playgroud)

以下查询正确返回此文档:

db.getCollection('fooCollection').find( { 
    "polygon": { 
        $geoIntersects: { 
            $geometry: { 
                type: "LineString", 
                coordinates: [[24.7698287, -28.7353533],[28.0423, -26.19793]]
}}}})
Run Code Online (Sandbox Code Playgroud)

但是,此查询不会:

db.getCollection('fooCollection').find( { 
    "polygon": { 
        $geoIntersects: { 
            $geometry: …
Run Code Online (Sandbox Code Playgroud)

c# geospatial mongodb geojson mongodb-query

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

如何获得重定向响应

假设我将www.abc.com放入浏览器,浏览器会自动重定向到www.xyz.com.我需要从服务器端获取该重定向URL.也就是说,如果www.abc.com返回重定向网址www.xyz.com,我该如何从原始网址(www.abc.com)请求此重定向网址(www.xyz.com)?

c# asp.net

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

检测异常是否为损坏状态异常

我有一些调用Rotativa的代码,它调用了wkhtml2pdf.我怀疑从行为中我看到wkhtml2pdf.exe导致损坏的状态异常(CSE)被抛出.我想抓住并记录CSE,如果抛出,我可以追踪它发生的位置.

当我在调试器中让应用程序一夜之间运行时,当我回来时VS已关闭.有时它已重新启动,有时不会.怀疑内存腐败我开始研究并偶然发现CSE处理.

我正在做这样的事情:

[HandleProcessCorruptedStateExceptions]
void DoStuff()
{
     try
     {
          DOThatThingThatMakesTheDebuggerHaltAndShutDown();
     }
     catch(Exception ex)
     {
            //how do I detect that it's a CSE in here, so I can log it especially blatantly
     }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法检测例外是否是General Catch中的CSE?

我看到一个kludge,他们有2个一般的例外条款.内部的不处理CSE并设置标志.如果在没有旗帜的情况下调用外部,那么它就是CSE,但我希望能有更清洁的东西.我想做的是记录这个糟糕的状态,然后将它传递给应用程序以正常冒泡.

当我查看事件日志中导致VS2013失败的错误时,我得到了这个:

应用程序:devenv.exe Framework版本:v4.0.30319描述:由于未处理的异常,进程已终止.异常信息:异常代码0000005,异常地址4DA44C1F堆栈:在Microsoft.VisualStudio.Debugger.Clr.NativeDkmClrModuleInstance.ProcF4BC786AEBAC294EE9C4C0BB1B0F56A7(IntPtr的,IntPtr的为ByRef)在Microsoft.VisualStudio.Debugger.Clr.DkmClrModuleInstance.GetMetaDataImport()在Microsoft.IntelliTrace.Concord Microsoft.IntelliTrace.Concord.Integration.CpdeNotifyPointServiceAdapter.InstallBreakpoint中的.MetadataHelper..ctor(Microsoft.VisualStudio.Debugger.Clr.DkmClrModuleInstance)(Microsoft.VisualStudio.Debugger.Clr.DkmClrModuleInstance,Microsoft.VisualStudio.Debugger.Interop.Internal.NP_INSTALL_REQUEST )
在Microsoft.IntelliTrace.Concord.Integration.CpdeNotifyPointServiceAdapter.BindToModule(Microsoft.VisualStudio.Debugger.Clr.DkmClrModuleInstance)在Microsoft.IntelliTrace.Concord.IntelliTraceProcessState.AlertModuleLoad(Microsoft.VisualStudio.Debugger.DkmModuleInstance)在Microsoft.IntelliTrace.Concord. NotifyPoints.NotifyPointManager.OnModuleInstanceLoad(Microsoft.VisualStudio.Deb Microsoft.VisualStudio.Debugger.EntryPoint.IDkmModuleInstanceLoadNotification_OnModuleInstanceLoad(IntPtr,IntPtr,IntPtr,IntPtr)中的ugger.DkmModuleInstance,Microsoft.VisualStudio.Debugger.DkmWorkList,Microsoft.VisualStudio.Debugger.DkmEventDescriptorS)

接下来是这样的:

错误应用程序名称:devenv.exe,版本:12.0.30501.0,时间戳:0x5361f453错误模块名称:vsdebugeng.impl.DLL,版本:12.0.30501.0,时间戳:0x5361f482异常代码:0xc0000005错误偏移量:0x00094c1f错误进程ID: 0x1c9c错误应用程序启动时间:0x01cfe7cc0cf50465错误应用程序路径:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe错误模块路径:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\Packages\Debugger\vsdebugeng.impl.DLL报告ID:097b17c6-5438-11e4-8409-001f2904053c

c# exception corrupted-state-exception visual-studio-2013

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

量角器等待isElementPresent并单击等待元素失败

我的end2end测试有问题.有时他们通过没有任何问题,但三分之二的时间他们失败.我使用以下代码的量角器:

 describe('Admin dashboard delete Exports', function () {
        it('create export', function () {
            browser.get(e2GUrl + '/admin/studies');
            ptor.wait(function() {
                return ptor.isElementPresent(by.id('export'));
            }, 5000, 'wait for study list page to be loaded.');
            element(by.id('export')).click();
         });
Run Code Online (Sandbox Code Playgroud)

HTML(请注意,此元素是可见的,并且不会被ng-if或ng-show隐藏):

 <ul>
    <li data-ng-repeat="study in studies">
       <div data-ng-controller="ExportController" class="btn-group">
          <a id="export" class="btn btn-small dropdown-toggle" data-toggle="dropdown" href="#">
             <i class="fw-icon fw-icon-cloud-download"></i>Export
                <span class="caret"></span>
           </a>
           <ul class="dropdown-menu export-list">
                <li class="excel"><a data-ng-click="excel(study.Code)">Export to Excel</a>
                </li>
           </ul>
       </div>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我收到错误:

E2E:管理仪表板删除导出创建导出消息:NoSuchElementError:找不到使用定位器找到的元素:By.id("export")

angularjs protractor e2e-testing

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

参考像素是什么意思?

“参考像素”是什么意思,它和“硬件像素”有什么区别?是“CSS 像素”还是另一回事?参考像素如何增强智能手机上的网页浏览量?

css pixel retina-display

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

如何在Ionic软键盘插件中添加Next按钮

我们正在使用Ionic框架开发android应用程序.

当我们点击输入文本框时,我们需要显示下一个按钮而不是返回按钮.在原生Android API中,我们可以选择显示下一个按钮.但在Ionic框架工作中,我们没有显示下一个按钮的选项.

如果选择输入文本框字段,如何在软键盘中添加下一个按钮?

android hybrid-mobile-app ionic-framework ionic

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