dataLayer.push()在尝试实现和理解 Google 标签管理器和 Google Analytics 的使用时,我想知道为什么在某些地方谈论,而在其他地方gtag()用于类似的操作。尽管结果并不完全相同,但它们似乎服务于相同的目的。
gtag()定义为:
function gtag(){dataLayer.push(arguments)};
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用 gtag 时的代码,我会得到一个包装参数对象。所以我明白这是有区别的,但这有关系吗?它们应该用于不同的目的吗?
> dataLayer = []
> dataLayer.push({'event','login'})
[{'event','login'}]
> dataLayer = []
> gtag({'event','login'})
[Arguments({'event','login'})]
Run Code Online (Sandbox Code Playgroud)
什么时候应该使用其中之一,或者我可以决定只使用其中之一?
我想用我自己定制的id生成器替换我在postgresql数据库中用于id的一些序列.生成器将生成一个随机数,最后带有一个checkdigit.所以这:
SELECT nextval('customers')
Run Code Online (Sandbox Code Playgroud)
会被这样的东西取代:
SELECT get_new_rand_id('customer')
Run Code Online (Sandbox Code Playgroud)
然后该函数将返回一个数值,例如:[1-9][0-9]{9}最后一个数字是校验和.
我担心的是:
注1:我不想使用uuid,因为它要与客户沟通,10个数字比36个字符uuid更容易沟通.
注意2:该函数很少被调用,SELECT get_new_rand_id()但会在id-column上被指定为默认值而不是nextval().
编辑:好的,下面的讨论很好!以下是对原因的一些解释:
那么为什么我会用这种方式过度复杂呢?purpouse是隐藏客户的主键.
我给每个新客户一个唯一的customerId(在db中生成序列号).由于我与客户沟通该号码,我的竞争对手监控我的业务是一项相当简单的任务(还有其他数字,例如发票nr和订单nr具有相同的属性).正是这种监控我想更加努力(注意:并非不可能,但更难).
为什么是校验位?
在有任何关于隐藏序列号的讨论之前我添加了一个checkdigit到ordernr,因为在制作中的某些点有klumbsy手指,我的想法是这将是一个很好的做法,以保持在未来.
在阅读完讨论后,我当然可以看到我的方法不是解决问题的最佳方法,但我对如何解决它没有其他好处,所以请在这里帮助我.
当我在提示中添加颜色时浏览历史记录时,我在提示后收到垃圾.
我尝试了postgres doc中提出的颜色提示命令:
\set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%# '
Run Code Online (Sandbox Code Playgroud)
我也尝试了很多其他的提示示例,我发现谷歌,但结果相同.
所以在设置提示后我有一个黄色提示符如下:
ulf@mydb=#
Run Code Online (Sandbox Code Playgroud)
然后我运行查询:
ulf@mydb=# select * from country;
Run Code Online (Sandbox Code Playgroud)
然后我浏览历史↑↑↓.这会给我带来更多的选择线,但我得到:
ulf@mydb=# \set PROMPT1 'select * from country;
Run Code Online (Sandbox Code Playgroud)
注意\set...之前的select是最初的promt-setting中的残余.
如果我将\set PROMPT1-command 放入,我也会得到类似的结果.pslqrc
我在xterm和gnome-terminal中得到了相同的结果.我的bash-prompt以类似的方式着色,但我对该提示没有任何问题.
我做错了什么?
字符串文字串联中的以下两个变体(带或不带加号):
join首选?码:
>>> # variant 1. Plus
>>> 'A'+'B'
'AB'
>>> # variant 2. Just a blank space
>>> 'A' 'B'
'AB'
>>> # They seems to be both equal
>>> 'A'+'B' == 'A' 'B'
True
Run Code Online (Sandbox Code Playgroud) 如果您有两个单独的项目以某种方式连接.如何引用其他项目的来源?
要引用您自己项目的源,请使用:
source:some/file
Run Code Online (Sandbox Code Playgroud)
但是因为我想在另一个项目中引用代码,我的想法是我可以这样写:
other_project:source:some/file
Run Code Online (Sandbox Code Playgroud)
有谁知道这是否可能以某种方式?我已经阅读了http://www.redmine.org/wiki/redmine/RedmineTextFormatting#Redmine-links,但没有发现任何线索.
说我有这个文本文件(lorem.txt):
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna
aliqua.
Run Code Online (Sandbox Code Playgroud)
如果使用,grep现在可以轻松找到包含eiusmod以下内容的行:
$ grep eiusmod lorem.txt
adipiscing elit, sed do eiusmod tempor
Run Code Online (Sandbox Code Playgroud)
通过使用类似的上下文切换,-C我什至可以得到围绕比赛的内容:
$ grep -C1 eiusmod lorem.txt
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna
Run Code Online (Sandbox Code Playgroud)
很好 但是,如果我只想在同一行上看到一些最接近比赛的字符怎么办?没有完整的行。所以这样的行为:
$ grep --char-context=3 eiusmod lorem.txt
do eiusmod te
$ grep -n --char-context=5 dol lorem.txt
1:psum …Run Code Online (Sandbox Code Playgroud) 我在 ubuntu 14.04 上使用了awesome有一段时间了。中定义的默认布局rc.lua是:
layouts =
{
awful.layout.suit.floating,
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier
}
Run Code Online (Sandbox Code Playgroud)
我很难理解这个问题!其中一些我设法理解(我认为)只是通过测试它们,但不是全部。
我试图找到一些描述它的文档,但没有成功。是否有一些文档可以让我阅读它们及其背后的概念?它们何时以及如何适用于不同的任务。
我知道它是个人的,但是如果有关于这些事情的某种信息,那么我认为很棒的社区将从中受益匪浅!
我有以下示例代码:
class A(object):
def __init__(self, id):
self.myid = id
def foo(self, x):
print 'foo', self.myid*x
class B(A):
def __init__(self, id):
self.myid = id
self.mybid = id*2
def bar(self, x):
print 'bar', self.myid, self.mybid, x
Run Code Online (Sandbox Code Playgroud)
使用时,可以生成以下内容:
>>> a = A(2)
>>> a.foo(10)
foo 20
>>>
>>> b = B(3)
>>> b.foo(10)
foo 30
>>> b.bar(12)
bar 3 6 12
Run Code Online (Sandbox Code Playgroud)
现在让我说我有更多的子类class C(A):和class D(A):.我也知道id总是适合B,C或D,但同时也不会在2中.
现在我想调用A(23)并获得正确子类的对象.像这样的东西:
Run Code Online (Sandbox Code Playgroud)>>> type(A(2)) <class '__main__.B'> >>> type(A(22)) <class '__main__.D'> >>> type(A(31)) <class '__main__.C'> >>> type(A(12)) …
我目前正在处理备份,而不是备份完整的磁盘,对我来说只是备份系统配置会更有效率。因此,对于 perl 部分,我希望有一种方法可以列出已安装的模块,然后在需要时重新安装这些模块。
我阅读了如何获取已安装 CPAN 模块的列表?关于如何获取列表以及阅读时perldoc -l install我发现了这一点:
您还可以使用“cpan”的“-a”开关来创建一个“CPAN.pm”理解的自动捆绑文件,并可以用来重新安装每个模块:
Run Code Online (Sandbox Code Playgroud)$ cpan -a
所以我运行cpan -a,输出的最后两行是:
Wrote bundle file
/home/ulf/.cpan/Bundle/Snapshot_2017_11_30_01.pm
Run Code Online (Sandbox Code Playgroud)
并且是该文件存在,但我怎么用它来“重新安装每个模块”另一台主机上?
我是systemd的新手,但由于它是我新安装的 Ubuntu 16.04 上的默认设置,并且似乎是所有 *nix 系统上现在的事实上的标准,我想我可以尝试一下。
但我正在努力处理我的应用程序的输出。
有时,我的应用程序或使用的某些库会在 stdout 或 stderr 上发出输出。这不是我的本意,也并非总是可以避免的。因此,为了跟踪正在发生的事情,我希望这些消息出现在日记中。
例如,如果我的服务文件中有以下内容,则不会将任何内容写入日志:
ExecStart=/usr/bin/python -c "print 'Hello';"
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我在代码中包含异常,则初始Hello和异常都会写入日志:
ExecStart=/usr/bin/python -c "print 'Hello';raise Exception('Oh noooo...');"
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能让正常的标准输出消息显示在日志中?
我使用的是 systemd 229 版本。