我^:static在Clojure core.clj源代码中看到了很多函数的元数据,例如在以下定义中seq?:
(def
^{:arglists '([x])
:doc "Return true if x implements ISeq"
:added "1.0"
:static true}
seq? (fn ^:static seq? [x] (instance? clojure.lang.ISeq x)))
Run Code Online (Sandbox Code Playgroud)
这个元数据究竟做了什么,为什么它在整个过程中频繁使用core.clj?
在Jekyll布局中,有没有办法检测页面是普通页面还是帖子?我想显示帖子标题,但不显示页面标题.像这样:
{% if page.is_post? %}
<h2>{{ page.title }}</h2>
{% endif %}
{{ content }}
Run Code Online (Sandbox Code Playgroud) 假设我有一个非常快速的测试脚本的小项目,我只想将所有内容从最初的提交到当前的提交一分为二.我怎样才能做到这一点?
为了澄清,我不想浪费时间来识别一个好的提交和一个糟糕的提交,所以我正在寻找一种快速的方法来将最新的提交标记为坏,并且初始提交是好的.
我不小心在我的初始提交中放了一些空格- 它显示为红色git diff --color.什么是摆脱现有空白的最佳方法,我怎样才能避免这种情况再次发生?
我不一定在寻找内置的git命令.任何在Ubuntu上免费提供的外部程序也是受欢迎的.
我正面临使用XEP-0198流管理的问题.
基本上,我想在互联网断开连接并且服务器仍然在线存在客户端时,在Android上启用此消息丢弃问题.
为了解决这个问题,我想使用XEP-0198,它使用请求和确认过程.你可以在这里找到更多.
基本上我使用的是sm:3.问题是,当我设置
XMPPConnection.DEBUG_ENABLED=true;
Run Code Online (Sandbox Code Playgroud)
我在日志中得到sm:3,这是asmack的内部,但我无法通过连接找到任何packetListner.
这就是asmack调试打印内容:
<r xmlns='urn:xmpp:sm:3'/><message from='test1@pinmessage.com/Smack' to='test1@pinmessage.com' id='CQUe6-5'><received xmlns='urn:xmpp:receipts' id='CQUe6-4'/></message><r xmlns='urn:xmpp:sm:3'/>
Run Code Online (Sandbox Code Playgroud)
这是我从packetFilter得到的:
<message id="CQUe6-5" to="test1@pinmessage.com" from="test1@pinmessage.com/Smack"><received xmlns='urn:xmpp:receipts' id='CQUe6-4'/></message>
Run Code Online (Sandbox Code Playgroud)
我曾经通过查看聊天安全和yaxim的代码尝试过自定义数据包过滤器,但是我没有得到如何<r xmlns='urn:xmpp:sm:3'/>在我的代码中获得这个,以便我可以将收到的数据包的数量现在返回到服务器,以便服务器可以发送我支持任何丢失的数据包.
我还通过添加以下代码为此配置了提供程序管理器:
addSimplePacketExtension("sm", URN_SM_3);
addSimplePacketExtension("r", URN_SM_3);
addSimplePacketExtension("a", URN_SM_3);
addSimplePacketExtension("enabled", URN_SM_3);
addSimplePacketExtension("resumed", URN_SM_3);
addSimplePacketExtension("failed", URN_SM_3);
private static final String URN_SM_3 = "urn:xmpp:sm:3";
private static void addSimplePacketExtension(final String name, final String namespace) {
Log.e("adding simple packet extension", namespace+"---"+name);
ProviderManager.getInstance().addExtensionProvider(name, namespace,
new PacketExtensionProvider() {
public PacketExtension parseExtension(XmlPullParser parser) throws Exception {
StreamHandlingPacket packet = new StreamHandlingPacket(name, …Run Code Online (Sandbox Code Playgroud) 我知道我能做到:
git diff HEAD^..HEAD
Run Code Online (Sandbox Code Playgroud)
但是有一些易于记忆的简写,例如:
git diff foo N
Run Code Online (Sandbox Code Playgroud)
这里N可以是任意数量的提交从现在得到的累积差异?
如何在仅使用CSS的垂直居中的链接之间创建点?这是可能的,但我无法弄清楚如何做到这一点.
预期:

HTML
<label><a href="#">Like</a></label>
<label><a href="#">Comment</a></label>
<label><a href="#">Share</a></label>
<label><span>1 hour ago</span></label>?
Run Code Online (Sandbox Code Playgroud)
CSS
a{
vertical-align: middle;
}
label:not(:last-child):after{
content: " . ";
}
Run Code Online (Sandbox Code Playgroud)
不工作的例子:http://jsfiddle.net/4ZFMm/
谢谢!
Clojure,有一个declare宏,允许您转发声明函数或变量.这似乎完全一样的功能def:无论(declare x)和(def x)创建#<Unbound Unbound: #'user/x>
何时应该(declare x)使用而不是(def x)?
我正在使用Jekyll构建网站,它编译ERB,SASS和c.到纯HTML和CSS.
在大多数提交之后,我想编译站点并将编译后的版本提交到单独的存储库或分支中,以便可以将其推送到静态服务器.
最好的方法是什么?
我已经有了解决方案,但我希望有人可能会更优雅.
在Clojure中将字符串编码和解码为十六进制是否有惯用的方法?Python的例子:
'Clojure'.encode('hex')
# ? '436c6f6a757265'
'436c6f6a757265'.decode('hex')
# ? 'Clojure'
Run Code Online (Sandbox Code Playgroud)
为了表明我的一些努力:
(defn hexify [s]
(apply str
(map #(format "%02x" (int %)) s)))
(defn unhexify [hex]
(apply str
(map
(fn [[x y]] (char (Integer/parseInt (str x y) 16)))
(partition 2 hex))))
(hexify "Clojure")
;; ? "436c6f6a757265"
(unhexify "436c6f6a757265")
;; ? "Clojure"
Run Code Online (Sandbox Code Playgroud)