我正在测试html5 canvas元素,并希望我的画布在显示区域全屏显示.但我发现如果我将画布高度设置为window.innerHeight,滚动条将会显示出来.我试过,发现需要将高度设置为5像素,滚动条将消失,但不幸的是它在画布下方留下了白色边框.如果它是div元素,一切都很好.
我用来测试的代码是:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function load() {
var o = document.getElementById('canvas');
if (o) {
o.width = window.innerWidth;
o.height = window.innerHeight - 5;
}
o = document.getElementById('div');
if (o) {
o.style.width = window.innerWidth + 'px';
o.style.height = window.innerHeight + 'px';
}
}
</script>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
body {
background-color: white;
}
#canvas {
background-color: blue;
}
#div {
background-color: green;
}
</style>
</head>
<body onload="load();">
<canvas id="canvas"></canvas>
<!--div id="div"></div--> …Run Code Online (Sandbox Code Playgroud) 我的应用程序没有iframe工作正常,在Facebook上返回405错误!为什么会这样?
我正在寻找一个允许Haskell程序与Cassandra交互的通用模块.该模块需要保持自己的状态.例如,它将具有连接池和保存新记录时要调用的回调列表.我应该如何构造代码以使该模块能够保持其状态?以下是我一直在考虑的一些方法.我是在正确的轨道上吗?(我是Haskell的新手,仍然在学习功能上最佳的思考方式.)
选项1:
该模块在(StateT的IO)monad中运行,其中s是使用Cassandra模块的整个程序的全局状态.当然,由于Cassandra模块可以被多个程序使用,因此对于Cassandra模块来说,s中的内容的细节应该是不可见的.该模块必须导出一个类型类,允许它从s中提取CassandraState并将新的CassandraState推回到s中.然后,使用该模块的任何程序都必须使其主状态成为此类型类的成员.
选项2:
该模块在(StateT CassandraState IO)monad中运行.每当有人在模块中调用一个动作时,他们就必须从隐藏它的任何地方提取CassandraState,用runState调用动作,然后取出结果状态并再次将其存放(无论在哪里).
选项3:
不要将Cassandra模块的函数放在StateT monad中.相反,让调用者在需要时显式传入CassandraState.选项2的问题在于并非模块中的所有功能都将修改状态.例如,获取连接将修改状态,并要求调用者存储结果状态.但是,保存新记录需要读取状态(以获取回调),但不需要更改状态.选项2不会给调用者任何提示连接更改状态而创建没有.
但是,如果我不再使用StateT monad并且只使用将状态作为参数的函数并返回简单值或简单值和新状态的元组,那么当状态需要保存时,调用者真的很明显.(在我的模块的封面下,我将传入状态并将它们构建到(StateT CassandraState IO)monad中,但是这个细节会被调用者隐藏.所以,对于调用者来说,接口是非常明确的,但在封面下,它只是选项2.)
选项4:
别的什么?
在构建可重用模块时,必须经常出现此问题.有什么标准的解决方法吗?
(顺便说一句,如果有人知道从Haskell与Cassandra进行交互比使用Thrift更好的方式,请告诉我!也许我根本不需要写这个.:-)
作为一种学习经历,我将一些东西从Windows移植到MacOS,并遇到这样的事情:
void SomeClass::someFunction(const char* format, va_list args)
{
int size = _vscprintf(format, args); // length after formatting
std::string s;
s.resize(size);
vsprintf(&s[0]);
...
}
Run Code Online (Sandbox Code Playgroud)
现在,因为_vscprintf是微软特有的,我在Linux上没有发现任何类似的东西,我想我会问这里.
我们还假设此代码位于某个关键路径中,并且不应该有一些额外的堆分配开销等.
在MacOS/Linux上推荐的_vscprintf替代品是什么?
谢谢!
我正在尝试开发一个使用表单身份验证的简单网站,但我不想从头开始构建身份验证框架.ASP.NET MVC提供了一个内置身份验证的优秀示例网站,但我宁愿使用Java技术,以便通过使用开源软件来降低启动成本.Java(任何框架)都具有等价物吗?
我正在生成一些 .csv 文件,我需要将其压缩到一个 Zip 文件中。好的,我有一个框架可以做到这一点,可能一切都会好起来的。
但!正如 TDD 所说,在我进行一些测试后,我只能编写代码!
我的第一个测试听起来很简单,但是我在读取 Zip 文件时遇到了一些问题,有人知道一种计算 zip 文件中文件数量的简单方法吗?
我知道字典的顺序是未定义的,MSDN如此说:
出于枚举的目的,字典中的每个项都被视为表示值及其键的KeyValuePair结构.返回项的顺序未定义.
这很好,但是如果我有两个字典的实例,每个都有相同的内容,那么顺序是否相同?
我猜是这样的,因为据我所知,顺序是由键的哈希决定的,如果两个词典具有相同的键,它们具有相同的哈希值,因此顺序相同...
... 对?
谢谢!
安迪.
Sybase有一种方法可以让应用程序将"上下文"数据(例如应用程序的最终用户名等)传递给数据库连接会话.上下文数据基本上只是一组键值对,它们通过set_appcontext/ get_appcontext存储过程存储/检索.
问题:
其他主要数据库服务器(MSSQL/Oracle/MySQL)是否具有将应用程序上下文传递给类似于Sybase的会话的工具set_appcontext?
细节:
应用程序上下文的一个特定实际用途是当您将具有中间层的应用程序作为非常特定的通用数据库用户连接到数据库时(示例包括用于在Web服务器上运行的Web应用程序后端的"webuser"/"http"或" myappserver"应用服务器的用户".
当发生这种情况时,我们仍然希望数据库会话知道END用户(例如使用app客户端的实际用户)是访问控制还是(与我的兴趣更相关),以便审计/历史触发器能够确定哪个最终用户进行了更改并将最终用户信息记录到审计表中.
请注意,信息是在会话级别设置的,这意味着在该会话中执行的任何插入/更新/删除都能够使用上下文数据,而不会将其传递给每个单独的SQL语句 - 这对于,例如,这非常重要一个触发器.
作为一个非常有用的例子,假设你有一个app服务器代表客户端启动数据库会话,你可以在其中插入/更新/删除5个不同表中的行.您希望为这5个表中的每个表都包含审计表,其中包括"哪个最终用户进行了每次更改"信息.
使用上下文数据,您只需使用触发器从应用程序上下文中检索"最终用户"数据,并将其存储为Audit表记录的一部分.在不使用应用程序上下文的情况下,您需要(1)将"最终用户"列添加到这5个表中的每一个(而不是仅审核表)和(2)将您的应用服务器更改为插入或更新set-set应用程序服务器发出的每个SQL语句中该列的值.哦,如果你要删除一行,这甚至都没有涉及到如何做到这一点.
我已经看到了如何看到一个特定脚本打开的窗口是否仍然打开,但如果没有呢?
我有一个小窗口,有一个单击按钮加载大窗口.当我关闭那个大的时候,我想要一个特别的onUnload或者onBeforeUnload如果小的那个关闭的话就要开火; 如果它仍然打开,那些程序将不会触发.我可能只是一个巨大的脑屁但我无法弄清楚如何检查另一个窗口是否打开.大的不是打开它,所以我不能简单地记录打开它的手柄.
简而言之:如果窗口A打开了窗口B,如果窗口A仍然存在,如何在窗口B中检查?
例:
L1=['cat', 'dog', 'fish', 'bird', 'rabbit', 'horse']
L2=[('cat', 'a', 'b', 'c'), ('cat', 'c', 'd', 'e'), ('cat', 'e', 'f', 'g'), ('fish', 'x', 'y', 'z'), ('dog', 'w', 'x', 'y'), ('dog', 'z', 'y', 'x'), ('horse', '1', '2', '3'), ('monkey', 'a', 'b', 'c'), ('kitten', 'h', 'i', 'j'), ('bird', '4', '5', '6')]
Run Code Online (Sandbox Code Playgroud)
我试图在L2中搜索L1中的字符串,这样如果L1中的字符串出现在L2的任何部分中,则L2中的整个条目"('cat, a, b, c')"将附加到新列表中.我还认为,从L1中删除没有任何字符串部分的条目可能会有效.我试过了:
def searcher(L1, L2):
common = []
for x in L1:
if re.search(x, L2):
common.append(L2)
return common
Run Code Online (Sandbox Code Playgroud)
但那没用.我使用的实际列表要长得多,所以一个高效的代码真的可以帮助我.
谢谢!