我想知道是否应该在我的服务器和客户端之间添加SSL层.我没有处理任何机密数据,但是为了获得智能,有人可能想要破解传输的可能性非常小(顺便说一句,这是游戏).现在,与小型网站相比,要处理的数据量相当可观,虽然增加的安全性可能很好,但最有可能的黑客是用户自己,所以我觉得SSL会浪费时间,但是想听听其他经历.
谢谢
我需要创建一个新的文件句柄,以便对该句柄的任何写操作立即写入磁盘.
额外信息:句柄将是子进程的继承STDOUT,因此我需要该进程的任何输出立即写入磁盘.
研究CreateFile文档时,FILE_FLAG_WRITE_THROUGH标志看起来就像我需要的那样:
写操作不会通过任何中间缓存,它们将直接进入磁盘.
我写了一个非常基本的测试程序,好吧,它没有用.我在CreateFile上使用了标志,然后WriteFile(myHandle,...)在长循环中使用,在大约15秒内写入大约100MB的数据.(我添加了一些Sleep()).
然后,我建立了一个专业的监控环境,包括在资源管理器中持续点击"F5".结果:文件保持在0kB,然后在测试程序结束时跳转到100MB.
我尝试的下一件事是在每次写入后手动刷新文件FlushFileBuffers(myHandle).这使得观察到的文件大小变得美观和稳定,正如预期的那样.
我的问题是,那么,不应该FILE_FLAG_WRITE_THROUGH这样做没有手动刷新文件?我错过了什么吗?在"真实世界"程序中,我无法刷新文件,因为我无法控制正在使用它的子进程.
还有一个FILE_FLAG_NO_BUFFERING标志,我不能出于同样的原因使用 - 不能控制使用句柄的进程,因此我不能手动对齐此标志所需的写入.
编辑:我已经专门制作了一个单独的项目,用于观察文件大小的变化.它使用.NET FileSystemWatcher类.我也写了更少的数据 - 总共大约100kB.
这是输出.查看时间戳中的秒数.
'内置无缓冲区'版本:
25.11.2008 7:03:22 PM: 10230 bytes added.
25.11.2008 7:03:31 PM: 10240 bytes added.
25.11.2008 7:03:31 PM: 10240 bytes added.
25.11.2008 7:03:31 PM: 10240 bytes added.
25.11.2008 7:03:31 PM: 10200 bytes added.
25.11.2008 7:03:42 PM: 10240 bytes added.
25.11.2008 7:03:42 PM: 10240 bytes added.
25.11.2008 7:03:42 PM: 10240 …Run Code Online (Sandbox Code Playgroud) 我可以通过在值上附加L来创建文字长度; 为什么我不能以某种类似的方式创建文字短或字节?为什么我需要使用带有强制转换的int文字?
如果答案是"因为C中没有短文字",那么为什么C中没有短文字?
这实际上并没有以任何有意义的方式影响我的生活; 写(短)0而不是0S或其他东西很容易.但这种不一致让我很好奇; 这是你晚上睡觉时困扰你的事情之一.有人在某个时候做出了一个设计决定,可以为某些原始类型输入文字,但不能为所有原始类型输入文字.为什么?
这些变量中的每一个都具有整数值.但是这种语法由于某种原因无效:
<xsl:when test="$nextAnswerListItemPos < $nextQuestionStemPos" >
Run Code Online (Sandbox Code Playgroud) 在PHP中是否有一些"朋友"或"内部"?如果没有,是否有任何模式可以实现这种行为?
编辑: 对不起,但标准的Php不是我想要的.我正在寻找一些类似于指挥官所做的事情.
我的课程在后端进行C风格的系统调用,杂耍开始变得很麻烦.我在对象A中有函数,它将对象B作为参数接受,并且必须调用对象B中的方法作为参数传递.最终用户可以在B中调用该方法,系统将崩溃.
这可能是以另一种方式提出的.然而,我并没有在飞行中这样做.偶尔,我们会在包含em破折号,粗体,斜体文本和块引号的word文件中获取内容.有没有一个很好的工具将其转换为干净的HTML代码.
否则人们采取其他方法.
我的目标是创建一组对象,每个对象都有一个唯一的标识符.如果已存在具有该标识符的对象,我想使用现有对象.否则我想创建一个新的.我试图不使用Singleton这个词,因为我知道这是一个肮脏的词......
我可以使用工厂方法:
// A map of existing nodes, for getInstance.
private static Map<String, MyClass> directory = new HashMap<String, MyClass>();
public static MyClass getInstance(String name) {
MyClass node = directory.get(name);
if(node == null) {
node == new MyClass(name);
}
return node;
}
Run Code Online (Sandbox Code Playgroud)
或者同样,我可以有一个单独的MyClassFactory方法.
但我原本打算将MyClass子类化:
public class MySubClass extends MyClass;
Run Code Online (Sandbox Code Playgroud)
如果我不再做,并调用MySubClass.getInstance():
MyClass subclassObj = MySubClass.getInstance("new name");
Run Code Online (Sandbox Code Playgroud)
...然后subclassObj将是一个普通的MyClass,而不是MySubClass.
然而,在每个子类中重写getInstance()似乎很容易.
我缺少一个简洁的解决方案吗?
这是问题的通用版本.更具体,因为回答者要求他们.
该程序用于生成表示软件片段的节点之间的依赖关系的有向图.子类包括Java程序,Web服务,存储的SQL过程,消息驱动的触发器等.
因此,该网络中的每个类都是"is-a"元素,并且具有导航和修改与其他节点的依赖关系的方法.子类之间的区别在于populate()用于从适当的源设置对象的方法的实现.
假设名为'login.java'的节点知道它对'checkpasswd.sqlpl'有依赖性:
this.addDependency( NodeFactory.getInstance("checkpasswd.sqlpl"));
Run Code Online (Sandbox Code Playgroud)
问题是checkpasswd.sqlpl对象此时可能已存在,也可能尚未存在.
用于ienumerable的linq扩展方法非常方便......但是如果你想要做的就是对枚举中的每个项应用一些计算而不返回任何内容,那就没有用了.所以我想知道我是否只是错过了正确的方法,或者它是否真的不存在,因为我宁愿使用内置版本,如果它可用......但我还没找到一个:-)
我可以发誓在某处有一个.ForEach方法,但我还没有找到它.与此同时,我确实编写了自己的版本,以防它对其他人有用:
using System.Collections;
using System.Collections.Generic;
public delegate void Function<T>(T item);
public delegate void Function(object item);
public static class EnumerableExtensions
{
public static void For(this IEnumerable enumerable, Function func)
{
foreach (object item in enumerable)
{
func(item);
}
}
public static void For<T>(this IEnumerable<T> enumerable, Function<T> func)
{
foreach (T item in enumerable)
{
func(item);
}
}
}
Run Code Online (Sandbox Code Playgroud)
用法是:
myEnumerable.For<MyClass>(delegate(MyClass item) { item.Count++; });
我有几十台 Linux 机器在运行cron,我想将 crontab 放在某种版本控制系统中。对于源代码控制,我使用 Mercurial ( hg),所以这是理想的,但是如果有其他更适合此任务的系统,我会考虑使用它。
一个特定于我的情况的方面是所有 crontab 都属于一个普通用户(不是一个真实的人,而是一个占位符“服务”登录名)。我希望修订历史包含每个更改的实际作者,而不是实际运行 cron 作业的特殊帐户。
几个月前我写了一个Windows服务,它将使用_vti_bin/lists.asmx函数GetListItemChanges ping一个Sharepoint列表.几周前,当我的公司将Sharepoint实例升级到SP1时,它工作正常.
现在,只要我的服务尝试访问Sharepoint,我就会收到401.1身份验证错误:
错误:
您无权查看此页面
您无权使用您提供的凭据查看此目录或页面.
请尝试以下操作:如果您认为应该能够查看此目录或页面,请与网站管理员联系.
HTTP错误401.1 - 未经授权:由于凭据无效,访问被拒绝.
Internet信息服务(IIS)
我已经检查过,我在网站上的权限没有改变.这是我在其中调用列表的代码:
Lists listsService = new Lists();
listsService.Credentials = new NetworkCredential("UserName", "Password", "domain");
Result = listsService.GetListItemChanges("List name", null, dTime.ToString(), null);
Run Code Online (Sandbox Code Playgroud)
我还注意到,我们的服务器场可能已禁用基本身份验证.我不相信我正在使用它,但我可能弄错了.