我正在学习pf安装在Macbook(OS X Mountain Lion)上的数据包过滤器.
我无法理解的一件事是锚点,或者更具体地说,关于锚点的某些特征.你可以用以下形式编写锚点anchor "foo/*".请注意锚名称末尾的星号.我的问题是:这是做什么的?
这就是文档(http://www.openbsd.org/faq/pf/anchors.html)关于这个主题的内容:
由于锚可以嵌套,因此可以指定评估指定锚中的所有子锚:
Run Code Online (Sandbox Code Playgroud)anchor "spam/*"此语法会导致评估附加到垃圾邮件锚点的每个锚点中的每个规则.子锚将按字母顺序进行评估,但不会递归递归.始终相对于定义它们的锚点来评估锚点.
当我读到这个时,它意味着这个锚定义被spam按字母顺序替换为所有子锚.所以,如果spam/foo1和spam/foo2会存在,anchor "spam/*"将被替换anchor "spam/foo1"和anchor "spam/foo2".spam锚点内的其他规则将被忽略.但是看看默认的OS X配置我一定是错的:
$ pfctl -sr
scrub-anchor "com.apple/*" all fragment reassemble
anchor "com.apple/*" all
$ pfctl -a com.apple -sr
anchor "100.InternetSharing/*" all
anchor "200.AirDrop/*" all
anchor "250.ApplicationFirewall/*" all
anchor "300.NetworkLinkConditioner/*" all
Run Code Online (Sandbox Code Playgroud)
所以,根据我的理解,输出pfctl -sr也可以是:
$ pfctl -sr
scrub-anchor "com.apple/*" all fragment reassemble
anchor "100.InternetSharing/*" all
anchor …Run Code Online (Sandbox Code Playgroud) 我正在考虑使用任意Java对象的哈希函数来进行练习.天真的方法是为每个属性调用hashCode() - 函数,添加这些哈希值,然后将总和模数加上最大哈希值,或类似的东西.但是,这意味着,只要打开属性,哈希值就会改变,因此如果要将对象存储在哈希表中,则不能使用此方法.对象的哈希码应表示其身份.但是,我如何将此抽象标识表示为整数值?也许通过使用对象地址(假设,Java在运行时不会在内存中移动对象),但在Java中是否有办法获取对象地址?
你会如何实现这样的哈希函数?
提前致谢.
我正在开发一个项目,客户必须能够通过WebSockets与服务器进行通信.由于我们开发的应用程序对用户输入具有高响应性,因此我们决定让WebWorker通过网络进行所有通信,以便慢速连接不会中断GUI.到目前为止工作正常.
现在我们考虑了如果网络速度慢并且要发送的消息量很高的必要优化.由于大多数这些消息只是为了同步其他一些客户端用户界面,我们可以在必要时删除其中一些消息.但要做到这一点,我们需要有可能在遇到拥堵时检测情况.
我们提出了一个队列的想法:每个要发送的消息都被推送到一个队列中,而WebWorker除了永久地迭代队列并发送它在那里找到的所有消息之外别无其他.如果队列中存在一定数量的元素(即发送的消息太慢),我们以后可以让工作者采取不同的行为.这个想法简单明了,然而,实现似乎并非如此.
var ws;
var queue = new Array();
function processMessageQueue() {
while(true)
if(queue.length > 0) ws.send(queue.shift());
}
self.addEventListener('message', function(e) {
var msg = e.data;
switch(msg.type) {
case 'SEND':
queue.push(JSON.stringify(msg));
break;
case 'CREATE_WS':
ws = new WebSocket(msg.wsurl);
ws.onmessage = function(e) {
self.postMessage(JSON.parse(e.data));
}
processMessageQueue();
}
}, false);
Run Code Online (Sandbox Code Playgroud)
如您所见,工作人员在收到消息后立即创建WebSocket.然后它执行函数processMessageQueue(),它是通过WebSocket发送数据永久清空队列的循环.现在,我的问题是似乎没有可能将消息推入队列.当"SEND"类型的消息到达但是工作人员无法处理任何事件时,就会发生这种情况.因此它可以循环队列或推送消息,而不是两者.
我需要的是以某种方式推送此队列上的数据的方法.如果这不容易实现,我想知道是否有人可以想出另一种方法来找出邮件何时到达更快然后发送.任何提示?
提前致谢!
我正在尝试在WebWorker中实现一个有效的WebSocket连接.这应该很简单,如果我使用Chrome作为b rowser.但是,由于这个实验应该进一步成为一个生产的一部分,我需要它来处理所有伟大的浏览器,即Firefox.
我的问题是我无法使用Firefox.起初,Firefox无法创建WebWorker.这是一个Bug,并在版本9中修复.但现在看来它无法在Worker中创建WebSocket.
我尝试了以下代码行:
var ws = new WebSocket(url);
Run Code Online (Sandbox Code Playgroud)
失败的是:
WebSocket is not defined
Run Code Online (Sandbox Code Playgroud)
那么,根据这个它应该工作.但它既不在WebWorker中,也不在此上下文之外.我试过年纪大了
var ws = new MozWebSocket(url);
Run Code Online (Sandbox Code Playgroud)
这似乎在WebWorker之外工作,但我得到了与上面相同的错误.
现在,问题是什么?我知道WebSockets在某些旧版本中默认禁用,但版本9应支持与Chrome类似的功能(至少这是他们所说的).我做错了什么?
我使用Ubuntu 11.10并没有测试其他浏览器.
提前致谢!
我想用一些JavaScript/jQuery来推动我的Django项目.从一开始我就知道,组织.js文件的哪种方式是最佳的.
对于加载一个大文件包括比加载许多小文件更少的开销,并且因为它在我认为制作一个全局.js文件的代码中看起来更干净,并且包含base.html(每个模板从中继承).但是,结果是,JavaScript会尝试分配所有事件的结构,即使事件应该绑定到的元素不在当前文档中.有了所有jQuery选择器,那么它们就必须完成他们的工作,这些工作效率不会太高.从早期的Web开发经验中我知道可以做类似的事情if(location.href == '/some/url/') { (JavaScript code) ... }.在这种情况下,这对我来说似乎不切实际,因为对于更改URL,我必须更改URLconf和.js文件(同时使用reverse()和{%url%}来防止其他地方).我想这里不可能使用命名的URL吗?
有没有人知道如何组织JavaScript一方面没有每个模板的文件,也没有不必要的杀死性能?
我试图理解哈希表中的开放寻址,但有一个问题在我的文献中没有得到解答.它涉及如果使用二次探测则删除这种哈希表中的元素.然后将被移除的元素替换为哨兵元素.然后get()操作知道它必须更进一步,add()方法将覆盖它找到的第一个sentinel.但是,如果我想添加一个元素,该元素具有已经在哈希表中但在探测路径中的哨兵后面的键,会发生什么?add()方法将覆盖sentinel,而不是使用表中已有的相同键覆盖实例的值.然后我们在哈希表中有多个具有相同键的元素.我认为这是一个问题,因为它花费了内存,并且因为从哈希表中删除元素只会删除它们中的第一个,因此仍然可以在表中找到该元素(即它不被删除).
因此,在替换sentinel元素之前,似乎有必要在整个探测路径中搜索要插入的元素的键.我忽略了什么吗?这个问题在实践中是如何处理的?
我正在寻找一个框架/库,使我能够在HTML5-Canvas上执行多个任务.
我需要的是在绘制对象后访问对象的机制,以便可以将它们更改并解析为XML.此外,我需要能够使用光标拖放某些对象.
我已经尝试了几个框架,但没有一个框架可以将onDrag-Listeners分配给对象(仅限于画布).有可能手工实现这种行为,但由于我不得不在画布上处理多个对象,因此这种行为变得复杂.此外,性能是一个重要的标准,因此如果我可以使用优化的库函数而不是我自己的悲惨代码,那将是一件好事.我知道SVG是另一种选择,所以请不要试图用这种方式推动我.我需要用画布来比较两者的表现.
所以我认为,我正在寻找的是一个框架,让我将监听器分配给画布对象.动画技能并不重要,因为所有内容都集中在鼠标的用户输入上.
有谁知道这样的框架/库符合我的需求并可以分享一些经验?我很高兴不被迫在那里测试HTML5-Canvas的所有框架和库.
提前致谢.
编辑:有一件事我忘了提到:除了几何对象,我还需要能够绘制路径(即涂鸦)并解析它们.虽然没有必要为他们提供处理程序,但如果我不必在库外部实现这一点,我会很高兴.
我目前正在开发一个需要一些服务器 - 客户端通信的项目.我们计划在服务器端使用Websockets和Java服务器(Jetty).因此,发送的消息必须使用Java从服务器解释,并使用客户端的JavaScript解释.
现在我们正在考虑一个协议以及消息应该具有哪些结构.我们已经有一个使用XML消息的参考实现.但由于JSON旨在与JavaScript一起使用,我们也在考虑使用JSON-Strings的可能性.
消息将包含由XML字符串和处理此数据所需的一些元信息组成的数据(即将其存储在数据库中,重定向到其他客户端......).如果消息(解析和创建)的处理在服务器和客户端都很容易和快速,那将是很重要的,因为应用程序应具有实时速度.
由于我们没有时间测试这两种技术,我会对基于个人经验或技术方面的一些建议感到高兴.其中一种技术比另一种更有用还是其中一种有任何缺点?
提前致谢.
这个问题更多的是数学方面.我给出了一个十六进制的4字节UID列表和相应的2字节代码列表 - 让我们称它们为哈希值.
它看起来像这样:
7D04E214 --> 4A49
7D048DC3 --> A0E7
7D04DB2E --> 4191
...
Run Code Online (Sandbox Code Playgroud)
我有50个这样的元组,所以我想如果我找到一个算法来计算所有UID的正确哈希值,我可以肯定这是正确的.
这是我的问题:我真的不知道如何开始.我不是数学家,对这类问题没有经验.我怀疑某种按位算法.看起来它可能是CRC16,但我已经伪造了.我不认为这是任何流行的算法.我也认为(或者更希望)算法并不太复杂.
我知道找到从某个输入计算某个输出的函数的一般问题是不可判定的.但假设算法很简单,我有什么可能性?有没有可以帮助我的工具?是否有任何阅读建议您编写我自己的工具?我正在考虑某种蛮力,但我该如何以系统的方式做到这一点?
提前致谢!
更新:由于我的问题有些不清楚:我真的需要找到一个用于从UID创建哈希的算法 - 或者至少一个算法对所有可能的UID都行为相同(即4个) -Byte数字).由于有人指出存在无限多个可能的函数,我想我必须找到最简单的函数并针对更多的UID值进行测试.正如我所说,我实际上假设算法很简单,并且没有充满模糊的键.如果我错了,我注定要失败.但如果没有,也许我有机会进行反复试验.
我尝试通过JavaScript(或JQuery)在列表项目符号上分配onclick-event,或者更换为替换它们的图像.我现在如何在list-item也可点击时获得这项工作,但这不是我需要的.列表项本身应该得到doubleclick-event.
假设我们有这个清单:
<ul id="allUsers" class="userselect">
<li id="group1" class="group">Group 1</li>
<li id="user1-1" class="user">User 1.1</li>
<li id="user1-2" class="user">User 1.2</li>
<li id="group2" class="group">Group 2</li>
<li id="user2-1" class="user">User 2.1</li>
...
</ul>
Run Code Online (Sandbox Code Playgroud)
双击一个user-list-element,该用户应该添加到另一个列表中.这没有问题.但现在我想在列表项目符号上添加单击事件以展开和折叠组,即在单击时隐藏和显示每个组的用户.
在我的项目中使用JQuery似乎没有列表项目符号的选择器.所以我在list-item文本之前尝试了背景图像和-images,但是无法分配我的click事件.此外,即使我得到其中一个解决方案,我希望它更好,如果可点击列表项目符号位于双击区域之下,因为如果在同一元素上分配和双击两者,则会导致问题.
有人有想法吗?提前致谢.
我正在尝试编写一个简单的文件上传器,可以根据需要调整图像大小并将其复制到服务器的文件系统中.如果我直接传递文件但是我也希望能够通过GET参数传递URL,那么这是有效的.而且某种方式,imagecopyresampled似乎与URL失败了.
这是我的代码:
if(isset($_FILES["file"]))
$fn = $_FILES['file']['tmp_name'];
else
$fn = urldecode($_GET['url']);
$fileMD5 = md5_file($fn);
$target = $basedir . $fileMD5 . ".png";
list($width, $height, $imgtype) = getimagesize($fn);
if ($imgtype == IMAGETYPE_PNG)
$img = imagecreatefrompng($fn);
else if ($imgtype == IMAGETYPE_JPEG)
$img = imagecreatefromjpeg($fn);
else if ($imgtype == IMAGETYPE_GIF)
$img = imagecreatefromgif($fn);
else if ($imgtype == IMAGETYPE_BMP)
$img = imagecreatefromwbmp($fn);
else {
echo "unsupported file format";
return;
}
// image resize
if($width > $maxwidth && $width >= $height) {
$newwidth = $maxwidth;
$newheight = …Run Code Online (Sandbox Code Playgroud) 我是德国开发人员,为德国人编写Web应用程序,这意味着我无论如何都不能依赖纯ASCII编码.至少必须支持像ä,ö,ü,ß这样的字符.
幸运的是,Django默认将ByteStrings视为utf-8编码(如文档中所述).所以它应该工作,如果我将# -*- coding: utf-8 -*-行添加到每个.py文件的开头并设置编辑器编码,不应该吗?好吧,它大部分时间都在......
但是当涉及到URL时,我似乎错过了一些东西.或者也许这不会对URL做任何事情,但直到现在我还没有注意到任何其他编码错误行为.我记得有两种情况作为例子:
URL模式url(r'^([a-z0-9äöüß_\-]+)/$', views.view_page)无法识别包含ä,ö,ü,ß的网址.这些字符被简单地忽略了.
以下代码的视图函数抛出异常:
def do_redirect(request, id):
return redirect('/page/{0}'.format(id))
Run Code Online (Sandbox Code Playgroud)
从URL中捕获id参数,如第一个示例中的那个.如果我修复了URL模式(通过将其指定为unicode字符串)而不是访问/ä/,我得到了Exception
UnicodeEncodeError at /ä/
'ascii' codec can't encode character u'\xe4' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
但是,为视图函数尝试以下代码:
def do_redirect(request, id):
return redirect('/page/' + id)
Run Code Online (Sandbox Code Playgroud)
一切都很好.这让我相信实际问题不在于Django,而是源自Python,将ByteStrings视为ASCII.我对编码没那么多,但第二个例子中的问题显然是String对象的format()方法.所以,在第一个例子中,由于Python处理正则表达式的方式,它可能会失败(虽然我不知道Django是否使用了re模块或其他东西).
到目前为止,我的解决方法只是在u发生此类错误时为字符串添加前缀.这是一个糟糕的解决方案,因为我可能很容易忽略一些东西 我尝试将每个Python字符串标记为unicode,但这会导致其他异常并且非常难看.
有没有人确切地知道,问题是什么以及如何以愉快的方式解决它(即当代码变大时不会让你的头爆炸的方式)?
提前致谢!
编辑:我的正则表达式,我发现,为什么u需要.将字符串指定为Raw String(r)使其被解释为ASCII.离开r之后使正则表达式工作没有u但是引入了一些带有反斜杠的头痛.