对于我目前正在进行的项目,我需要实现对象版本控制.不幸的是,我需要保留每个对象的完整历史记录,因此像Papertrail这样的单个表解决方案很快就会变得无法管理.然而,我喜欢Papertrail的功能,我在一个解决方案中找不到每个模型的单独表格(例如acts_as_versioned).
还有Papertrail没有的一些功能可以奖励:
我目前正在考虑让Papertrail为每个模型使用单独的表格,但是如果有现有的解决方案,我想节省这些努力.
更新: Vestal版本默认使用单个表,但通过为每个模型提供自定义版本类并使用ActiveRecord的"set_table_name"方法,我能够为每个模型创建单独的表.Vestal版本也内置差异支持,但其界面不如Papertrails强大.它也缺乏关联支持.
更新2: 由于papertrail似乎是一个更活跃的项目,我已经分叉了gem并添加了类似于版本的自定义类支持,现在允许为每个模型定义单独的表.我的分支在这里,但我希望它很快就会被拉入主项目库. https://github.com/benzittlau/paper_trail
我在我的复制集中的主服务器上的mongostat中看到以下内容:
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn set repl time
0 414 388 0 1218 444 0 24.2g 51.4g 3g 0 <redacted>:9.6% 0 0|0 0|0 225k 441k 463 mover PRI 03:26:30
0 469 457 0 1352 516 0 24.2g 51.4g 3g 0 <redacted>:10.6% 0 0|0 0|0 258k 498k 463 mover PRI 03:26:31
0 478 482 0 1430 548 0 24.2g 51.4g 3g 0 <redacted>:12.0% 0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用MongoDB配置调试一些性能问题,并且我注意到驻留内存使用率非常低(约占系统内存的25%),尽管偶尔会发生大量故障.鉴于MongoDB依赖于内存,我很惊讶地发现使用率很低.
这是按内存使用情况排序的顶部快照.可以看出,没有其他进程使用重要内存:
top - 21:00:47 up 136 days, 2:45, 1 user, load average: 1.35, 1.51, 0.83
Tasks: 62 total, 1 running, 61 sleeping, 0 stopped, 0 zombie
Cpu(s): 13.7%us, 5.2%sy, 0.0%ni, 77.3%id, 0.3%wa, 0.0%hi, 1.0%si, 2.4%st
Mem: 1692600k total, 1676900k used, 15700k free, 12092k buffers
Swap: 917500k total, 54088k used, 863412k free, 1473148k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2461 mongodb 20 0 29.5g 564m 492m S 22.6 34.2 40947:09 mongod
20306 ubuntu …Run Code Online (Sandbox Code Playgroud) 理论上,自动对焦在移动Safari(http://caniuse.com/#feat=autofocus)中完全不受支持.然而,我们正在看到这种非常奇怪的行为,当一个touchstart事件被绑定时document(无论该函数是否有任何行为),当页面上任何地方发生点击时,第一个输入autofocus变得聚焦并且屏幕键盘显示.
这可以在iOS模拟器中使用iOS 8重现.这是重现问题的最小html和javascript:
<html>
<head>
<script>
document.addEventListener("touchstart", function() {});
</script>
</head>
<body>
<input type="text">
<input type="text" autofocus="autofocus">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这里有一个jsfiddle:http://jsfiddle.net/qd858nob/
只需单击输入外的任何位置,第二个输入将变为自动对焦.理想情况下,我很乐意找到解决此问题的全局解决方案,而无需从所有输入元素中删除自动对焦.
我最近发现 VSCode vim 中有一个扩展的悬停工具提示,可以通过在按住命令键的同时悬停在令牌上来查看。就我而言,我对查看此工具提示中可用的打字稿类型定义特别感兴趣,但在基本悬停工具提示中不可用。
我使用 VSCode Vim 扩展,因此使用 'gh' 无需使用鼠标即可触发这些工具提示,但按住 command+'gh' 不会产生预期效果(它会触发其他命令修饰符热键)。
这是从“gh”加载的工具提示示例:
这是悬停时按住命令的扩展工具提示示例:
mongodb ×2
autofocus ×1
cursor ×1
html5 ×1
ios ×1
javascript ×1
memory ×1
replicaset ×1
versioning ×1
vscodevim ×1