我不完全了解wait和notify(的Object工作),并因此我不得不瘦下来我尝试到下面的代码部分.
Main.java:
import java.util.ArrayList;
class Main
{
public static Main main = null;
public static int numRunners = 4;
public static ArrayList<Runner> runners = null;
public static void main(String[] args)
{
main = new Main();
}
Main()
{
runners = new ArrayList<Runner>(numRunners);
for (int i = 0; i < numRunners; i++)
{
Runner r = new Runner();
runners.add(r);
new Thread(r).start();
}
System.out.println("Runners ready.");
notifyAll();
}
}
Run Code Online (Sandbox Code Playgroud)
Runner.java:
class Runner implements Runnable
{
public void …Run Code Online (Sandbox Code Playgroud) 我希望能够在Tkinter标签上换出图像,但我不知道该怎么做,除了更换小部件本身.
目前,我可以显示如下图像:
import Tkinter as tk
import ImageTk
root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
但是,当用户点击时,比如ENTER键,我想更改图像.
import Tkinter as tk
import ImageTk
root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
def callback(e):
# change image
root.bind("<Return>", callback)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
这可能吗?
根据javascript,这是一个"线程",但代码似乎不适合传统的线程模型.
关于线程的概念,是否可以使这个代码更清晰?
function test() {
alert("Test");
}
// this creates a new "thread," but doesn't make much sense to the untrained eye
setTimeout(test, 0);
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以分支吗?
在我看来,理论上可以使用WebGL进行计算 - 例如计算素数或π或沿着这些线的某些东西.但是,从我看到的很少,着色器本身不是用Javascript编写的,所以我有几个问题:
如果相关,在这种特定情况下,我试图将相当大的数字作为[非常]扩展的compsci项目的一部分.
编辑:
我想在Tkinter中有一个Dropdown Menu,其中包含与此命令关联的快捷键.这可能吗?
我如何在特定字符下添加下划线,以允许Alt-F-S(文件 - >保存)?
向数组添加特定值的最佳方法是什么?有点难以解释,但这应该有所帮助:
<?php
$myarray = array("test", "test2", "test3");
$myarray = array_addstuff($myarray, " ");
var_dump($myarray);
?>
Run Code Online (Sandbox Code Playgroud)
哪个输出:
array(3) {
[0]=>
string(5) " test"
[1]=>
string(6) " test2"
[2]=>
string(6) " test3"
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
function array_addstuff($a, $i) {
foreach ($a as &$e)
$e = $i . $e;
return $a;
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更快的方法,或者这个功能是否是内置的.
好哇!
这段代码工作了一段时间,然后我决定添加一个默认颜色,它停止工作.我收到以下错误:
1 error found:
File: Status.java [line: 20]
Error: Status.java:20: illegal reference to static field from initializer
Run Code Online (Sandbox Code Playgroud)
在编译时使用以下代码.
import java.awt.Color;
enum Status
{
OFF ("Off"),
TRAINING ("Training", new Color(255, 191, 128)),
BEGINNER ("Beginner", new Color(128, 255, 138)),
INTERMEDIATE ("Intermediate", new Color(128, 212, 255)),
ADVANCED ("Advanced", new Color(255, 128, 128));
public final String name;
public final Color color;
public static final Color defaultColor = Color.WHITE;
Status(String name)
{
this(name, defaultColor);
}
Status(String name, Color color)
{
this.name = name;
this.color …Run Code Online (Sandbox Code Playgroud) 我正在构建一个API并尝试在许多上下文中找出身份验证.
API需要为我们创建和部署的客户端应用程序提供服务,并使用密码处理经过身份验证的请求.对每个请求发送密码并不是一个好主意,因此首先点击登录端点并获取会话ID更有意义.有问题的webapp是用AngularJS编写的,应该在localStorage中跟踪它自己的会话,以减轻会话劫持并消除对cookie的依赖以跟踪会话.
webapp需要在每个请求中发送会话标识符,并且当前在请求正文中这样做.这很容易碎片,并与API紧密结合.我宁愿以一种方式通过标题传递所有身份验证信息,最好是 - 而不是遍布请求正文,URL和标题的许多不同字段.
当然,Redis太棒了.会话存储很简单,并自动进行垃圾收集.不幸的是,redis中的会话很难管理:我不能轻易撤销给定用户的所有会话.通过将会话存储在真正的redis-datastructure而不是全局键空间中来添加该功能会删除添加键控TTL的功能.我目前的解决方案是在MongoDB用户集合中存储会话列表,并在会话活动(例如登录/注销)上垃圾收集过期的会话.
会话使用connect-redis模块以redis形式存储,但随着每个请求发送它们都不包含在cookie中.目前,我有一小块中间件,它将会话标识符从请求主体中取出并将其放入一个req.cookies对象中.
var express = require('express');
var RedisStore = require('connect-redis')(require('connect'));
var app = express();
app.use(function(req, res, next) {
req.cookies = {session: req.body.session};
});
app.use(express.session({
store: new RedisStore({
client: redisClient,
prefix: 'session:'
}),
key: 'session',
secret: 'all mine'
});
Run Code Online (Sandbox Code Playgroud)
这种方法很好,除了express.session在表达响应时最终设置cookie,而这不是理想的行为.
如何在Express的上下文中正确设置?
我们的API还应支持第三方应用程序的API密钥,以获得对我们系统的有限和受控访问.我所知道的最常见的机制是将API密钥分发给感兴趣的开发人员,并让开发人员在请求中传递API密钥.这遇到了会话/密码身份验证遇到的相同困境:每个API都要求API密钥位于请求的不同部分,从正文到网址到标头.
虽然我们不打算在初始版本中支持OpenAuth和OpenID等开放式身份验证标准,但我们确实希望创建一个框架,其中添加所述标准非常简单.其中一部分可能是统一授权凭证如何传递给API,如会话/密码和API Key支持的身份验证.
另一个问题是,自定义HTTP Authorization标头是一个好主意,还是自定义标头是一个更好的主意.
为了支持RESTful API的CRUD范例,不在身体中提供身份验证信息是有意义的,因为这会限制所有对POST请求的API请求,而CRUD建议使用各种HTTP方法.
两件事情:
我需要能够有一个n维字段,其中n基于构造函数的输入.但我甚至不确定这是否可行.是吗?
因此,假设我们希望通过"添加到主屏幕"使webapp感觉像本机应用程序.其中一个步骤是禁用默认滚动.容易,对吗?
// window or document
window.addEventListener("touchmove", function(event) {
// no more scrolling
event.preventDefault();
}, false);
Run Code Online (Sandbox Code Playgroud)
这一切都很好,花花公子,直到你加入overflow-scrolling混合.确切地说,在iOS上它将是-webkit-overflow-scrolling: touch.
/* #scrollable happens to be a ul */
#scrollable {
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
Run Code Online (Sandbox Code Playgroud)
通过添加事件预防,容器中的硬件加速滚动不起作用,显然不是预期的效果.
显而易见的解决方案看起来像这样:
// you could do this for multiple elements, of course
var scrollable = document.querySelector("#scrollable");
scrollable.addEventListener("touchmove", function(event) {
// no more bubbling :)
event.stopPropagation();
}, false);
Run Code Online (Sandbox Code Playgroud)
此解决方案引入了一个问题,但是,如果您尝试向左或向右滚动#scrollable,它将恢复为默认滚动侦听器.显然,您应该监控事件以查看touchmove事件是向左还是向右追踪,对吧?不幸的是,在我不完全理解的情况下,不会在容器中垂直滚动时恢复默认滚动侦听器.
怎么办?更糟糕的是,我们理想情况下能够处理click或点击个人事件li(阅读:) touchstart:
var items = scrollable.querySelectorAll("#scrollable li"); …Run Code Online (Sandbox Code Playgroud) java ×3
javascript ×3
python ×2
tkinter ×2
arrays ×1
asynchronous ×1
concurrency ×1
constructor ×1
cookies ×1
css ×1
dom-events ×1
enums ×1
express ×1
final ×1
html5 ×1
ios ×1
node.js ×1
php ×1
python-2.7 ×1
scroll ×1
session ×1
shader ×1
static ×1
webgl ×1