我正在尝试编写一个YAML字典,用于Rails项目的国际化.我有点困惑,因为在一些文件中,我看到双引号中的字符串,而有些没有.需要考虑以下几点:
!
- 非特定标记,而第一个示例的最后两行不使用 - 它们都有效.我的问题是:在YAML中使用不同类型的引号有哪些规则?
可以这么说:
!
单引号,当...?!?根据w3c"表单中的几个复选框可以共享相同的控件名称.因此,例如,复选框允许用户为同一属性选择多个值." 但是,如果这样做,PHP将只采用最后一个值.例如:
<?php
if ($_POST) {
echo "<pre>";
print_R($_POST);
echo "</pre>";
}
?>
<form action="" method = "post">
<input type="checkbox" name="pet" value="dog" />Dog<br />
<input type="checkbox" name="pet" value="Cat" />Cat<br />
<input type="checkbox" name="pet" value="bird" />bird<br />
<input type="checkbox" name="pet" value="iguana" />iguana<br />
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
如果您提交该表单,您将看到只会设置最后一个显示的复选框.浏览器将它们全部发送,但它们会相互覆盖.因此,将相同名称设置为多个复选框可能会导致问题.它总是这样吗?我似乎记得实际上可以将所有值作为数组发送.
我知道你可以在名称的末尾添加一个[]来创建一个值数组:
<?php
if ($_POST) {
echo "<pre>";
print_R($_POST);
echo "</pre>";
}
?>
<form action="" method = "post">
<input type="checkbox" name="pet[]" value="dog" />Dog<br />
<input type="checkbox" name="pet[]" value="Cat" />Cat<br />
<input type="checkbox" name="pet[]" value="bird" …
Run Code Online (Sandbox Code Playgroud) 处理程序logging
类有一个flush() 方法。
而且看代码,logging.FileHandler
调用时并没有传递具体的缓冲模式open()
。因此,当您写入日志文件时,将使用默认块大小对其进行缓冲。
那是对的吗?
这让我感到惊讶,因为当我管理自己的系统时,我习惯于将日志文件作为系统上的实时(或接近实时)视图来观看。对于此用例,需要行缓冲。此外,传统的 syslog() 日志守护进程不会缓冲消息。
我对 Python 2.7 和 3.7 版本感兴趣。
Postgres,mariadb,mysql不使用USER.据推测,正在审查官方图像是否符合最佳实践文档,该文档要求用户尽可能使用.为什么?
这通常被建议,作为将结构体初始化为零值的方法:
struct foo f = {0};
Run Code Online (Sandbox Code Playgroud)
还提到{}
可以在gcc下使用,但这不是标准的C99.
我想知道这是否适用于一个结构,其布局可能会超出我的控制范围.我很担心,因为0
它不是数组或结构的有效初始值设定项.然而,gcc --std=c99
(gcc-8.1.1-1.fc28.x86_64)似乎也接受{0}
了这种情况.
问题 C99是否接受{0}
任何结构的初始化程序?
(或者是后来的C标准?还是相反的,是否有任何理由不依赖于此?是否存在{0}
可能导致错误或警告会阻止其使用的编译器?)
我试过了什么
gcc警告(启用-Wall
)表明这是标准中的某种形式的边缘情况,其中gcc被强制接受0
作为任何类型的struct字段的初始化器,但它会警告它,除非你使用常见的{0}
习惯用法.
struct a { int i; };
struct b { struct a a; struct a a2; };
struct c { int i[1]; int j[1]; };
struct a a = {0}; /* no error */
struct b b = {0}; /* no error */
struct c c = {0}; /* …
Run Code Online (Sandbox Code Playgroud) 为什么在Linux中很多结构使用____cacheline_aligned_in_smp宏?在访问结构时是否有助于提高性能.如果是,那怎么样?
有没有办法让CUPS在尚未完成上一份工作的情况下将作业排队到IPP打印机?
背景:我们有一台XEROX WorkCentre打印机,它有自己的作业队列.每当有人想要打印时,他们必须假脱机,将他们的支付卡插入打印机并在打印机触摸板上选择他们的工作.但是当在中央服务器上使用CUPS时,CUPS仅在最后一个作业完成时假脱机,因此只有首先假脱机的人才能看到并支付他们的工作.
我们需要使用IPP,因为当使用例如JetDirect时,用户名不会被传输,用户无法识别他们的工作.
我正在尝试提高对Xwayland中SIGBUS错误的理解。自2018年2月20日左右以来,使用Fedora Linux的Xwayland 1.19.6-5.fc27.x86_64
Linux内核已被多个Fedora Linux用户所见4.15.3-300.fc27.x86-64
。
遗憾的是,我没有内核“ segfault”日志消息(或SIGBUS等效消息)。Xwayland有一些毫无意义的代码,可以捕获致命信号。但是我可以siginfo
通过调试coredump 看到,这似乎差不多。
我了解当虚拟内存的页面在RAM中不可用并且必须从磁盘读取时会发生“主要页面错误”。我想我对ext4文件系统支持的页面特别感兴趣(例如,不能直接访问块设备)。
因此,当不需要磁盘访问时就是“较小的页面错误”。我认为差异是相当明确的,因为Linux公开了主要和次要页面错误的计数器。
如果内核发送了一个SIGBUS程序,我想知道我是否通常应该认为这将是主要的页面错误。
根据核心转储和反汇编,程序在接收到SIGBUS时正在读取内存,而不是对其进行写入。中的错误地址在siginfo->si_addr
映射的系统可执行文件内,该文件不能由用户写入,并且该地址似乎在当前文件长度的范围内。实际上,在调试coredump时,我已经从内存地址中读取了非常令人信服的值。似乎coredump生成过程阅读此地址没有困难:-(。
我也对排除“无效的地址对齐”情况(BUS_ADRALN)很有信心,因为siginfo->si_code
是2,即BUS_ADRERR,“不存在的物理地址”。同样是因为我使用的是x86,在大多数情况下它允许未对齐的访问,并且陷阱不在任何SSE扩展指令中。
我考虑了内核在处理确定为“次要”的页面错误时通常负责的工作。我想小故障可能无法分配内存,从而引发SIGBUS。但是,我相信我会注意到这样的分配失败:
我有很多免费的交换操作可以将用户页面逐出,并且我没有注意到系统开始交换时通常发生的明显减速。崩溃发生在笔记本电脑从挂起状态变为ram状态后几秒钟,即使以约100MB / s的速度也不足以填充8GB的交换空间。我也没有看到可怕的内存不足(OOM)杀手出现在内核日志中,就像我期望的那样,如果内核未能成功分配页面框架或页面表。
还有其他可能性,一个轻微的页面错误可能会失败并导致SIGBUS?即,当在内核日志中查找错误时,有一些我不会注意到的原因吗?哪些会很快发作?
同样,多个核心转储将其显示为页面错误,这是通过从文件系统上的映射文件读取而触发的。
我真的很想念一个小页面错误的情况。因为这令人恐惧的另一面是,我不明白这种SIGBUS可能是由硬页面错误方面引起的。从几个月前开始,我们中的一些用户有非常相似的错误。我的内核日志中没有IO错误。在正常操作期间,读取指示的文件时没有IO错误。运行rpm --verify --all
或在HDD上运行扩展的SMART测试时,我没有任何错误。不幸的是,我似乎很少有嫌疑犯。在最近的怀疑我有一个内核升级,显然我想排除它;日期并不能完全证明这一点,但是还不能完全排除。日期最近的是今年的微代码更新。这似乎更难确定。
但更一般而言,它可以是对页面的任何首次访问。这是因为似乎通常是按需填充用于内存映射的页表。(这将由页面错误来完成,并且如果文件页面已经在高速缓存中,则只会是次要的页面错误)。
MAP_NONBLOCK(自Linux 2.5.46起)
该标志仅与MAP_POPULATE结合使用才有意义。不要执行预读:仅为RAM中已经存在的页面创建页表条目。从Linux 2.6.23开始,此标志导致MAP_POPULATE不执行任何操作。有一天,combinina?可以重新实现MAP_POPULATE和MAP_NONBLOCK的功能。
评论者要求提供更具体的细节,以澄清错误的地址和说明。初始链接https://bugzilla.redhat.com/show_bug.cgi?id=1557682中有很多节选
故障根据错误链接中的描述而变化。这是最近事例的摘录。
$ gdb 2018-03-21.core
...
Core was generated by `/usr/bin/Xwayland :0 -rootless …
Run Code Online (Sandbox Code Playgroud) 我正在努力改进这个令人讨厌的旧剧本.我找到了一个未定义的变量错误来修复,所以我添加set -u
了捕获任何类似的错误.
由于此代码,我得到"$ 1"的未定义变量错误
if [ -z "$1" ]; then
process "$command"
Run Code Online (Sandbox Code Playgroud)
它只是想知道是否存在争论.(传递空字符串时的行为作为第一个参数不是预期的.如果我们碰巧修复它也不会有问题).
在运行时,检查我们是否有参数的好方法是set -u
什么?
如果我们用"$ @"替换"$ 1",上面的代码将不起作用,因为当有多个参数时,"$ @"的特殊方式被扩展.
我编写了一个艰巨的任务,以使用遍历设置列表with_items
。现在,当我运行ansible时,我的所有设置都会记录下来。它非常冗长,很难看到正在发生的事情。但是,如果我使用禁用所有输出,那么no_log
当它们失败时,我将无法识别特定项目。
如何改善输出-仅显示每个项目的标识符?
示例任务:
- authorized_key:
user: "{{ item.user }}"
key: "{{ item.key }}"
with_items: "{{ ssh_keys }}"
Run Code Online (Sandbox Code Playgroud)
输出示例:
任务[sshkey-alan-sysop:ssh授权密钥] *********************************
OK:[砖] =>(项目= {u'user ':u'alan-系统操作员',u'key':u'ssh-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQDAgRe16yLZa8vbzsrxUpT5MdHoEYYd / awAnEWML4g + YoUvLDKr + zwmu78ze / E1NSipoZejXpggUYRVhh8MOiCX6qpUguBDWZFlvSCE / 7uXWWg7Oht0f1kDS2xU7YiycPIzMN1dmUEFY9AixnN936Dq6nOtEzgBwjo66I1YC / 5jrsQEqF19shx43A4DTFlPUz / PnsqHl2ESrkIk3e8zyidaPN2pRbA5iKzdvPW4E2W2tKw9ll40vqRXzaWIF7v293Ostwi1IPi2erlC777DhjZUhZ1VGXIR7FDAfANzalrMe6c / ZysiXewiUYgMw0I8Dh1LK3QMj9Kuo35S5E0Xj3TB alan-sysop @ alan-laptop'})