我从一个人那里继承了一些代码,他们最喜欢的时间是将每一行缩短到绝对最小值(有时只是为了让它看起来很酷).他的代码很难理解,但我设法理解(并重写)其中的大部分内容.
现在我偶然发现了一段代码,无论我怎么努力,我都无法理解.
my @heads = grep {s/\.txt$//} OSA::Fast::IO::Ls->ls($SysKey,'fo','osr/tiparlo',qr{^\d+\.txt$}) || ();
my @selected_heads = ();
for my $i (0..1) {
$selected_heads[$i] = int rand scalar @heads;
for my $j (0..@heads-1) {
last if (!grep $j eq $_, @selected_heads[0..$i-1]);
$selected_heads[$i] = ($selected_heads[$i] + 1) % @heads; #WTF?
}
my $head_nr = sprintf "%04d", $i;
OSA::Fast::IO::Cp->cp($SysKey,'',"osr/tiparlo/$heads[$selected_heads[$i]].txt","$recdir/heads/$head_nr.txt");
OSA::Fast::IO::Cp->cp($SysKey,'',"osr/tiparlo/$heads[$selected_heads[$i]].cache","$recdir/heads/$head_nr.cache");
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,这应该是某种随机函数,但我从未见过更复杂的方法来实现随机性.或者我的假设是错误的?至少,这就是这段代码应该做的事情.选择2个随机文件并复制它们.
===注意===
OSA框架是我们自己的框架.它们以UNIX对应方式命名,并进行一些基本测试,以便应用程序不需要为此烦恼.
我想我可能crypt()在Windows下发现了PHP的功能错误.
但是:我认识到这可能是我的错.数以百万计的PHP使用PHP并且成千上万; 我的代码被数十使用并由我工作.(这个论点最好用Coding Horror来解释.)
所以我在寻求帮助:告诉我我的错.我一直试图找几天,没有运气.
我正在使用Apache 2.2.14(Win32)和PHP 5.3.2的Windows服务器安装.我的开发盒运行Windows XP Professional; 'production'服务器(这是一个Intranet设置)运行Windows Storage Server 2003.两者都会出现问题.
我没有看到任何php.ini相关内容crypt(),但很乐意回答有关我的配置的问题.
我的PHP应用程序中的几个脚本偶尔会挂起:页面位于'等待本地主机'并且永远不会完成.这些脚本中的每一个都用于crypt在将用户密码存储在数据库中之前对其进行哈希处理,或者在登录页面的情况下,在将输入的密码与存储在数据库中的版本进行比较之前对其进行哈希处理.
由于登录页面最简单,我专注于测试.我反复登录,发现它可能会挂起10次中的4次.
作为实验,我更改了登录页面以使用纯文本密码并将数据库中的密码更改为纯文本版本.页面停止了.
我看到PHP的最新版本列出了这个错误修正:
修正了错误#51059(当给出无效盐时,地址崩溃).
所以我使用官方示例中给出的相同的盐创建了一个非常简单的测试脚本,如下所示:
$foo = crypt('rasmuslerdorf','r1');
echo $foo;
Run Code Online (Sandbox Code Playgroud)
如果我像疯了一样重装它,这个页面也会挂起.我只看到它挂在Chrome中,但无论浏览器如何,对Apache的影响都是一样的.
当这些页面挂起时,Apache的服务器状态页面(我在这里解释,关于不同的问题)增加了正在处理的请求数量并减少了空闲工作者的数量.正在处理的请求几乎都具有"发送回复"状态,但有时他们会显示"阅读请求"或"保持活跃(阅读)".
最终,Apache可能会崩溃.如果是这样,Windows崩溃报告如下所示:
szAppName: httpd.exe
szAppVer: 2.2.14.0
szModName: php5ts.dll
szModVer: 5.3.1.0 // OK, this report was before I upgraded to PHP 5.3.2,
// but that didn't …Run Code Online (Sandbox Code Playgroud) 我有一个装满数十亿以下物品的STL容器
pair<SomeClass*, SomeClass*>
Run Code Online (Sandbox Code Playgroud)
我需要以下形式的一些功能
/*returns items sorted biggest first */
bool sortPredicate (pair<SomeClass*, SomeClass*>two, pair<SomeClass*, SomeClass*> one)
{
return ???;
}
Run Code Online (Sandbox Code Playgroud)
有没有一些技巧可以用来快速比较指针对?
编辑1:澄清
最后,我只想对指针对列表进行排序,使所有重复项彼此相邻.假设SomeClass中没有明确的方法可用于此目的 - 我只有指针对,我想找到所有相同的对(并行).我认为有一种方法可以解决这个问题,但如果你能想到更好的并行方法,请告诉我.
编辑2:澄清
修复了我的代码(排序谓词的参数是错误的 - 它们应该是对的).
假设有一句话:
On March 1, he was born.
Run Code Online (Sandbox Code Playgroud)
把它改成
He was born on March 1.
Run Code Online (Sandbox Code Playgroud)
没有打破句子的意义,它仍然有效.以任何其他方式改组单词会对无效句子产生怪异.所以基本上,我说的是句子的一部分,它使信息更具体,但删除它们并不会破坏整个句子.是否有任何NLP库可以识别这些部件?
我们需要从 C# .Net 代码将 2000 条记录插入 SQL DB。为此,有什么方法可以一次插入所有 2000 条记录,而不是对每条记录执行 INSERT 查询。另外,这样做会对性能产生什么影响?
我需要编写一个简单的脚本,用另一个文件的内容替换配置文件中的文本块.
让我们假设有以下简化文件:
server.xml
<?xml version='1.0' encoding='UTF-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="80" protocol="HTTP/1.1"/>
<Engine name="Catalina" defaultHost="localhost">
<!-- BEGIN realm -->
<sometags/>
<sometags/>
<!-- END realm -->
<Host name="localhost" appBase="webapps"/>
</Engine>
</Service>
</Server>
Run Code Online (Sandbox Code Playgroud)
realm.xml
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
Run Code Online (Sandbox Code Playgroud)
我想运行一个脚本并realm.xml替换<!-- BEGIN realm -->和<!-- END realm -->行之间的内容.如果realm.xml更改,则每当脚本再次运行时,它将使用新内容再次替换行realm.xml.这是为了/etc/init.d/tomcat在多个安装的服务启动时运行,在这些安装上领域将是不同的.
我不太确定我怎么能用awk或简单地做到这一点sed.
我正在开发一个使用jQuery的项目,我对Mootools更熟悉.
我先从我的代码开始.
var customNamespace = {
status: 'closed',
popup: $('#popup'),
showPopup: function() {
// ...
}
}
$(document).ready(function(){
console.log($('#popup'));
console.log(customNamespace.popup);
console.log($(customNamespace.popup));
$('#popup').fadeIn('slow');
(customNamespace.popup).fadeIn('slow');
$(customNamespace.popup).fadeIn('slow');
});
Run Code Online (Sandbox Code Playgroud)
我的目标是每次我想用#popup div做一些事情时都没有jQuery遍历DOM,所以我想把它保存到一个变量中以便在整个脚本中使用它.
当页面加载时,控制台会按照我的预期打印出对象3次,所以我认为对于每种方法,fadeIn都可以正常工作.但事实并非如此
$('#popup').fadeIn('slow');
Run Code Online (Sandbox Code Playgroud)
实际上在div中淡出.
即使我删除了我的命名空间哈希,只是将对象保存到全局变量,然后执行
var globalVariable = $('#popup');
.
.
.
globalVariable.fadeIn('slow');
Run Code Online (Sandbox Code Playgroud)
也没有像我想的那样工作.jQuery可以做我想做的事情吗?
从vb.net调用存储过程时,如果连接字符串中未指定超时,则会有默认的SQL超时时间吗?我不确定CommandTimeout连接字符串中是否有指定但是我正在浏览所有可能性.
示例如果在30秒(或更多)之后没有结果抛出:
`System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.`
Run Code Online (Sandbox Code Playgroud)
SQL事件探查器说,当程序超时时,脚本会在30秒内运行并结束.
该脚本在SQL Server中自行运行大约1分45秒.
我正在尝试使用存储在std :: list中的数据元素来构建一个字符串,我希望逗号只放在元素之间(即,如果元素是列表中的{A,B,C,D},结果字符串应该是"A B C D".
此代码不起作用:
typedef std::list< shared_ptr<EventDataItem> > DataItemList;
// ...
std::string Compose(DataItemList& dilList)
{
std::stringstream ssDataSegment;
for(iterItems = dilList.begin();
iterItems != dilList.end();
iterItems++)
{
// Lookahead in list to see if next element is end
if((iterItems + 1) == dilList.end())
{
ssDataSegment << (*iterItems)->ToString();
}
else
{
ssDataSegment << (*iterItems)->ToString() << ",";
}
}
return ssDataSegment.str();
}
Run Code Online (Sandbox Code Playgroud)
如何使用迭代器获取std :: list中的"the-next-item"?我希望它是一个链表,为什么我不能进入下一个项目?
我有跟随UL和LI的html页面,我尝试为每个LI分配宽度但是看不到cay成功
<html>
<head>
<style type="text/css">
ul
{
overflow-x:hidden;
white-space:nowrap;
height: 1em;
width: 100%;
}
li
{
display:inline;
padding-right:10px;
}
</style>
</head>
<body>
<ul>
<li style="width:100px">abcdefghijklmonpqrstuvwxyz</li>
<li>abcdefghijklmonpqrstuvwxyz</li>
<li>abcdefghijklmonpqrstuvwxyz</li>
<li>abcdefghijklmonpqrstuvwxyz</li>
<li>abcdefghijklmonpqrstuvwxyz</li>
<li>abcdefghijklmonpqrstuvwxyz</li>
<li>abcdefghijklmonpqrstuvwxyz</li>
</ul>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
因为我的每个LI都有不同的宽度.
谢谢