最有用的NLogconfiguration

使用NLoglogging最好或最有用的configuration是什么? (这些可以简单或复杂,只要它们有用。) 我想到了一些例子,例如自动滚动日志文件到特定大小,更改布局(日志消息),是否有exception,发生错误时升级日志级别等。 这里有一些链接: NLog演示 源代码中的示例

用64位代替32位循环计数variables引入了疯狂的性能偏差

我正在寻找最快的方式来popcount大量的数据。 我遇到了一个非常奇怪的结果:将循环variables从unsigned更改为uint64_t使得我的PC上的性能下降了50%。 基准 #include <iostream> #include <chrono> #include <x86intrin.h> int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr << "usage: array_size in MB" << endl; return -1; } uint64_t size = atol(argv[1])<<20; uint64_t* buffer = new uint64_t[size/8]; char* charbuffer = reinterpret_cast<char*>(buffer); for (unsigned i=0; i<size; ++i) charbuffer[i] = rand()%256; […]

data.table vs dplyr:一个人可以做些什么,另一个不行或者做得不好?

概观 我对data.table比较熟悉,与data.table不太dplyr 。 我已经读过一些dplyr小插曲和例子,到目前为止,我的结论是: data.table和dplyr在速度上是可比较的,除非有很多(即> 10-100K)的组,在其他一些情况下(见下面的基准) dplyr有更多可访问的语法 dplyr抽象(或将)潜在的数据库交互 有一些次要的function差异(请参阅下面的“示例/用法”) 在我看来2.不会承受太多的重量,因为我对data.table相当熟悉,但我明白,对于新用户来说这将是一个很大的因素。 我想避免一个关于哪一个更直观的论点,因为从已经熟悉data.table的人的angular度来看,这与我提出的具体问题是无关的。 我也想避免讨论“更直观”如何导致更快的分析(当然,但是,不是我最感兴趣的是这里)。 题 我想知道的是: 是否有分析任务比熟悉软件包的人更容易使用一个或另一个软件包进行编码(即,所需的击键与所需的深奥级别的组合,其中每一个都是好事)。 是否有分析任务在一个包中比另一个更有效地执行(即超过2倍)。 最近的一个问题使我想到了这个问题 ,因为直到那时,我不认为dplyr会提供比dplyr更多的东西。 这里是dplyr解决scheme(数据在Q末尾): dat %.% group_by(name, job) %.% filter(job != "Boss" | year == min(year)) %.% mutate(cumu_job2 = cumsum(job2)) 这比我在data.table解决scheme上的尝试要好得多。 也就是说,良好的data.table解决scheme也是相当不错的(感谢Jean-Robert,Arun,并且在这里我注意到我偏爱最严格的最佳解决scheme): setDT(dat)[, .SD[job != "Boss" | year == min(year)][, cumjob := cumsum(job2)], by=list(id, job) ] 后者的语法可能看起来很深奥,但是如果你习惯data.table (即不使用一些更深奥的技巧),它实际上是非常简单的。 理想情况下,我想看到的是一些很好的例子, dplyr或data.table方式更加简洁或者performance更好。 […]

Eclipse的隐藏function

好吧,这可能是一个蹩脚的问题,但每个人都用这些不同的东西。 什么是这个IDE最好的时间储存器。 汤姆

Vim和Ctags提示和技巧

我刚刚用我的Vim(或者说gVim)安装了Ctags (用于帮助C ++开发),并且希望find你喜欢的命令,macros,快捷方式以及随之而来的提示。 分享你最好的武器。 还有哪些Vim附加组件可以推荐用于Vim开发的C ++? 编辑还有什么其他的附加组件可以和Ctags一起使用? EDIT2你使用哪个版本的gVim标签? 这有什么不同吗? EDIT3如何提高大型和小型项目的编程经验?

操作系统开发入门有哪些资源?

有一件事我一直想做的是开发我自己的操作系统(不一定像Linux或Windows那样的花哨,但是比我已经做的一个简单的引导装载程序更好)。 我很难find资源/指南,通过编写一个简单的“Hello World”操作系统。 我知道很多人可能会推荐我看看Linux或BSD; 但是像这样的系统的代码库(可能)是如此之大,我不知道从哪里开始。 有什么build议么? 更新:为了让那些通过Google登陆这个post的人更容易一些操作系统开发资源: 编写自己的操作系统 (感谢Adam) Linux从零开始 (谢谢John) SharpOS(C#操作系统) (感谢lomaxx) Minix3和Minix2 (感谢Mike) 操作系统开发维基和论坛 (谢谢史蒂夫) BonaFide (感谢史蒂夫) 麸 (谢谢史蒂夫) 滚动自己的玩具UNIX克隆操作系统 (感谢史蒂夫) Broken Thorn OS开发系列 其他资源: 我find了一个名为MikeOS的好资源,“MikeOS是一个学习工具,可以演示简单的操作系统是如何工作的,它使用16位实模式访问BIOS,所以它不需要复杂的驱动程序” 更新11/14/08 我在Freebyte的指南中发现了一些资源…免费和非免费的操作系统 ,链接到工具包,如OSKit和ExOS库。 这些对于开始操作系统开发看起来非常有用。 更新2/23/09 里卡东京在这个问题上推荐nanoos 。 Nanoos是用C ++编写的操作系统。 更新3/9/09 Dinah为有抱负的操作系统开发人员提供了一些有用的Stack Overflow讨论: 创build自定义操作系统的路障讨论了在开发OS和OS开发时可能遇到的缺陷,这是一个更为一般的讨论。 更新7/9/09 LB提供了Pintos项目的链接, Pintos项目是为学习操作系统开发的学生devise的教育操作系统。 更新7/27/09(仍然强劲!) 我偶然发现了来自伯克利的在线操作系统课程 ,有23个讲座。 TomOS是MikeOS的一个分支,包括一点内存pipe理器和鼠标支持。 作为MikeOS,它被devise成一个教育项目。 它是用NASM汇编写的。 2009年8月4日更新 我find了幻灯片和其他材料 ,以及上面列出的在线伯克利讲座。 更新8/23/09 所有问题在stackoverflow上标记为osdev […]

如何决定何时使用Node.js?

我是这种东西的新手,但最近我听到很多关于Node.js的好处。 考虑到我一般喜欢使用jQuery和JavaScript,我不禁想知道如何决定何时使用Node.js。 我想到的Web应用程序就像Bitly一样 – 需要一些内容,将其归档。 从过去几天所做的所有功课中,我获得了以下信息。 Node.js的 是一个命令行工具,可以作为一个普通的Web服务器运行,让一个运行JavaScript程序 利用伟大的V8 JavaScript引擎 当你需要在同一时间做几件事情是非常好的 是基于事件的,所以所有精彩的Ajax类的东西都可以在服务器端完成 让我们在浏览器和后端之间共享代码 让我们与MySQL交谈 我遇到的一些来源是: 潜入Node.js – 介绍和安装 了解NodeJS 通过示例节点 ( Archive.is ) 让我们做一个Web应用程序:NodePad 考虑到Node.js几乎可以在Amazon的EC2实例上直接运行,我想了解什么types的问题需要Node.js而不是像PHP , Python和Ruby那样的强大国王。 我明白,这实际上取决于对语言的专业知识,但是我的问题更多地归结为以下几个方面:什么时候使用特定的框架,哪种types的问题特别适合?

用长时间运行的任务结果反复更新JLabel

我正在编写一个不断ping服务器的程序。 我写了代码来检查一次,然后把这个ping放在一个JLabel并把它放在一个名为setPing()的方法中。 这是我的代码 private void formWindowOpened(java.awt.event.WindowEvent evt) { setPing(); } 这工作,但只做了一次,所以我做了: private void formWindowOpened(java.awt.event.WindowEvent evt) { for(;;){ setPing(); } } 但这并不是第一次。 我没有把setPing方法,因为它太长,所以这里是: public String setPing(){ Runtime runtime = Runtime.getRuntime(); try{ Process process = runtime.exec("ping lol.garena.com"); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) […]

如果闹钟时间已经过去,android可以防止即时触发闹钟服务

报警pipe理器的参考说 如果所述的触发时间在过去,则会立即触发警报。 我在申请中遇到了这个问题。 这是我的报警pipe理员代码: Intent myIntent = new Intent(getActivity(), DinnerAlarmReceiver.class); pendingDinnerIntent = PendingIntent.getBroadcast(getActivity(), 0, myIntent, 0); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); calendar.set(Calendar.MINUTE, minute); alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingDinnerIntent); 有没有解决这个问题的方法? – – -编辑 – – – 我已经写了一些代码来估计闹钟的设置时间是否在当前时间之前。 以上是具有相应变化的部分: Calendar calendar = Calendar.getInstance(); long currentTime = calendar.getTimeInMillis(); calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); calendar.set(Calendar.MINUTE, minute); long setTime = calendar.getTimeInMillis(); Timestamp setTimestamp = […]

内嵌块框不适合他们的容器

不知道我做错了什么,我认为通过添加边框,它将整齐地适合这4个盒子。 http://jsfiddle.net/jzhang172/x3ftdx6n/ .ok{ width:300px; background:red; height:100px; box-sizing:border-box; } .box{ display:inline-block; box-sizing:border-box; width:25%; border:2px solid blue; height:100%; } <div class="ok"> <div class="box">1</div> <div class="box">2</div> <div class="box">3</div> <div class="box">4</div> </div>