对于我在大学的论文,我正在开发一个编码排行榜系统,用户可以通过临时的docker容器编译/运行不受信任的代码.到目前为止,系统似乎运行良好,但我面临的一个问题是,当提交无限循环的代码时,例如:
while True:
print "infinite loop"
Run Code Online (Sandbox Code Playgroud)
系统变得混乱.问题是当我创建一个新的docker容器时,Python解释器阻止docker杀死子容器,因为数据仍然被打印到STDOUT(永远).这导致docker占用所有可用系统资源的巨大漏洞,直到使用该系统的机器完全冻结(如下所示):

所以我的问题是,是否有更好的方法在docker容器上设置超时而不是我当前的方法实际上会杀死docker容器并使我的系统安全(代码最初是从这里获取的)?
#!/bin/bash
set -e
to=$1
shift
cont=$(docker run --rm "$@")
code=$(timeout "$to" docker wait "$cont" || true)
docker kill $cont &> /dev/null
echo -n 'status: '
if [ -z "$code" ]; then
echo timeout
else
echo exited: $code
fi
echo output:
# pipe to sed simply for pretty nice indentation
docker logs $cont | sed 's/^/\t/'
docker rm $cont &> /dev/null
Run Code Online (Sandbox Code Playgroud)
编辑:我的应用程序中的默认超时(传递给$to变量)是"10s"/ 10秒.
我已经尝试sys.exit()直接添加一个计时器和python源,但这不是一个可行的选项,因为它似乎相当不安全,因为用户可以提交代码以防止它执行,这意味着问题仍然存在.哦被卡在学位论文上的快乐...... :(
我在谷歌Chrome中遇到了一些奇怪的问题.
问题是,每当我点击Google Chrome中的textarea时,它都会立即失去焦点,然后返回上一个输入框.如果按键盘上的Tab键,则不会发生此问题.
这是一个.gif显示我的问题:

我正在使用的代码是有效的HTML:
<div class="inputborder rounded">
<label>Celebrity 1<label>
<div class="newline"></div>
<input type="text"/>
<div class="newline"></div>
<label>Tweet 1<label>
<div class="newline"></div>
<textarea>Y U NO WORK?!</textarea>
<div class="newline"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
除了jQuery库之外,我还没有在页面上使用任何javascript.
我很惊讶为什么会发生这种情况,因为通常Internet Explorer会给我带来这样的问题.
任何人都知道什么是错的?
在我提出这个问题之前,我想指出在StackOverflow上发布了几个 类似的 问题 ,但它们都没有为问题提供准确的解决方案.
我有一个工作流程设置,Grunt将多个css文件组合并缩小为一个文件,用于生产环境.
我面临的问题是,在运行Grunt之后,字体和图像路径会中断,因为它们仍指向现有的相对文件路径.
举个例子:
在static/homepage/startup/common-files/css/icon-font.css我有以下的CSS规则:
@font-face{font-family:Flat-UI-Icons;src:url(../fonts/Startup-Icons.eot);
Run Code Online (Sandbox Code Playgroud)
在我的Gruntfile中,我指定我希望缩小的css文件的输出style.min.css位于static/css/custom/homepage/.这样做的问题是文件路径发生变化,导致无法再找到所有字体和图像依赖关系,并在浏览器中返回404状态.
我做了什么来尝试解决这个问题
我认为有两种方法可以解决这个问题:
style.min.css所在的新目录.这样做的缺点是它可能很快变得混乱并破坏我的项目文件夹结构!有人知道如何解决这个问题吗?我浪费了将近10个小时,我开始放弃了.人们声称已经在Github问题页面修复了这个问题,但是没有人真正说明他们是如何修复它的.
编辑:
我查看了clean-css库源代码,看起来你可以将relativeTo属性传递给minifier对象.我已经弄得一团糟,但我仍然被卡住了.如果我对此有所了解,我会报告回来.
编辑:
好吧,我终于找到了一些解释什么relativeTo(和其他)属性的文档.我仍然坚持我的文件结构应该是什么配置....
relativeTo - path to resolve relative @import rules and URLs
root - path to resolve absolute @import rules and rebase relative URLs
roundingPrecision - rounding precision; defaults to 2; -1 disables rounding
target - path to a folder or …Run Code Online (Sandbox Code Playgroud) 我正在尝试在CodeIgniter框架上运行的网站上设置博客脚本.我希望这样做,而不对我现有网站的代码进行任何重大代码更改.我认为创建一个指向另一个Controller的子域将是最干净的方法.
我设置新Blog控制器的步骤包括:
routes.php文件添加新规则.这是我想出的:
switch ($_SERVER['HTTP_HOST']) {
case 'blog.notedu.mp':
$route['default_controller'] = "blog";
$route['latest'] = "blog/latest";
break;
default:
$route['default_controller'] = "main";
break;
}
Run Code Online (Sandbox Code Playgroud)
这应该指向blog.notedu.mp和blog.notedu.mp/latest我的blog控制器.
现在问题是......
访问blog.notedu.mp或blog.notedu.mp/index.php/blog/latest工作正常,但访问blog.notedu.mp/latest由于某种原因带我到404页面...
我的.htaccess文件看起来像这样(从url中删除index.php的默认值):
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
我的Blog控制器包含以下代码:
class Blog extends CI_Controller {
public function _remap($method){
echo "_remap function called.\n";
echo "The method called was: ".$method;
}
public function index()
{
$this->load->helper('url');
$this->load->helper('../../global/helpers/base'); …Run Code Online (Sandbox Code Playgroud) 我终于完成了将我的一个项目转换为使用Node.JS,但现在我在服务器上运行我的应用程序时出现问题:/问题是如果我关闭我的putty会话节点就停止了.
我已经做了很多关于这个问题的搜索,似乎创建一个upstart脚本并使用该Forever模块是要走的路.
我开始谷歌搜索并创建了这个新贵脚本:
#!upstart
description "Loner NodeJS app launcher"
author "me@me.com"
start on startup
stop on shutdown
script
export HOME="/root"
exec sudo node /home/jjmpsp/server.js >> /home/jjmpsp/server.sys.log 2>&1
end script
Run Code Online (Sandbox Code Playgroud)
然后我start app昨晚在服务器上运行,当我关闭putty会话时服务器仍在运行.都好.
但是,我今天早上来了,发现Node应用已停止,所以我检查了server.sys.log文件,看看发生了什么.似乎该应用程序运行良好,直到它最终遇到此异常:
debug: client authorized
info: handshake authorized fziLHZA3Vo9i55eubvOq
events.js:48
throw arguments[1]; // Unhandled 'error' event
^
Error: Connection lost: The server closed the connection.
at Protocol.end (/home/jjmpsp/node_modules/mysql/lib/protocol/Protocol.js:73:13)
at Socket.onend (stream.js:80:10)
at Socket.emit (events.js:88:20)
at TCP.onread (net.js:348:51)
Run Code Online (Sandbox Code Playgroud)
今天我一直在谷歌搜索更多,并发现Forever实际上会重新启动NodeJS应用程序,如果它意外退出.我尝试安装模块npm install forever但是我得到了这个巨大的错误列表: …
编辑:解决了!
将很快用解决方案更新.
目标:
我想重写Python的UnitTest模块,所以当我调用它时,我在stdout流中得到以下JSON输出.例如:
{
"errors":0,
"failures":1,
"ran":3,
"skipped":0,
"successful":2,
"test_data":[
{
"index":0,
"result":1
},
{
"index":1,
"result":1
},
{
"index":2,
"result":-1
}
]
}
Run Code Online (Sandbox Code Playgroud)
问题:
我已经编写了一些代码来生成这些测试结果,但是我遇到了为test_dataJSON数组的属性编写代码的问题.我已经重写了TestCase,TextTestResult而且TextTestRunner类,但我似乎无法弄清楚如何从得到的结果getTestsReport():
#!/usr/bin/python
import unittest
import sys, os
import json
class dataHolder(object):
x = None
class MyTestRunner(unittest.TextTestRunner):
def _makeResult(self):
obj = MyTestResult(self.stream, self.descriptions, self.verbosity)
dataHolder.x = obj.getTestsReport()
return obj
class MyTestResult(unittest._TextTestResult):
"""
Holder for test result information.
Test results are …Run Code Online (Sandbox Code Playgroud) 我当前项目的一部分涉及通过HTML5的原生视频标签加载外部视频,然后使用Javascript调整它们的大小,使其成为DOM的完整高度和宽度.
我的代码似乎在桌面浏览器上完美运行,但是当我在ipad上加载项目时,视频不会调整大小,因为onloadedmetadata事件永远不会被触发.
这是一个重现问题的小代码示例:
function init() {
var video = document.getElementById('viddy');
video.addEventListener('loadedmetadata', function(e){
var dimensions = [video.videoWidth, video.videoHeight];
alert(dimensions);
});
}
document.addEventListener("DOMContentLoaded", init, false);
<video id="viddy" autoplay>
<source src="http://media.w3.org/2010/05/sintel/trailer.webm" type='video/webm' />
<source src="http://www.w3schools.com/html/movie.mp4" type="video/mp4" />
</video>
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/AUSNu/213/
我甚至尝试使用jQuery编写解决方案,但事件可能触发的可能性很小,但事实并非如此.
$('#viddy').on('loadedmetadata', function() {
alert('test');
});
Run Code Online (Sandbox Code Playgroud)
我甚至通过我的ipad上的safari启用远程调试,但在控制台中仍然没有输出.
这有什么变通方法吗?我无法在网络/文档中找到有关此内容的更多信息.
我正在为我的网站写一个笑脸解析功能.我想要完成的是将某些字符串转换":)"为如下图像:
或者这里是实际的html作为例子:
":)" ===> <img src="images/smilies/smile.png" />
Run Code Online (Sandbox Code Playgroud)
我的函数执行它的意图,但它也解析本机javascript函数名称!我的意思这一点,是如果我键入包含字符串的注释"push","pop"或"some"(有可能是加载其他人)我的函数将解析这些字符串为无效的图片是这样的:

这是一个显示以下内容的html字符串:
<img src="images/smilies/function some() { [native code] }" alt="">
Run Code Online (Sandbox Code Playgroud)
这会导致浏览器控制台中出现404未找到错误.
Failed to load resource: the server responded with a status of 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我在代码中没有做任何不寻常的事情,你可以在这里看到:
function parse_new_comment(commentElem){
$(commentElem).html(parse_comment($(commentElem).text()));
}
function parse_comment(comment){
var formatted_comment = "";
var smilies = new Array();
smilies[":)"] = "smile.png";
smilies[":D"] = "smile-big.png";
smilies[":p"] = "tongue.png";
smilies["[sheep]"] = "sheep.png";
smilies["<3"] = "love.png";
smilies["[love]"] = "love.png";
var words = comment.split(" ");
for …Run Code Online (Sandbox Code Playgroud) 我现在有几千个Twitter关注者,直到现在我一直在关注他们.我现在想用PHP自动化这个过程,因为它可能需要很长时间才能追随所有人.
我找到了一个由亚伯拉罕·威廉姆斯创建的PHP推特库,并开始编写一些代码.
但是,每次运行脚本时,我需要关注的用户数量都是不正确的!这是我编码中的错误,还是这就是Twitter API的工作原理?
这是我的代码:
<?php
require_once 'twitteroauth/twitteroauth.php';
define('CONSUMER_KEY', '');
define('CONSUMER_SECRET', '');
define('ACCESS_TOKEN', '');
define('ACCESS_TOKEN_SECRET', '');
ob_start();
set_time_limit(0);
function autoFollow($action){
//auth with twitter.
$toa = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
//get the last 5000 followers
$followers = $toa->get('followers/ids', array('cursor' => -1));
$followerIds = array();
foreach ($followers->ids as $i => $id) {
$followerIds[] = $id;
}
//get the last 5000 people you've followed
$friends = $toa->get('friends/ids', array('cursor' => -1));
$friendIds = array();
foreach ($friends->ids as $i => $id) {
$friendIds[] = …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的作业创建一个PHP脚本.出于安全原因,我需要脚本来记录IP地址.
出于某种原因,当我运行以下代码时:
echo $_SERVER['REMOTE_ADDR'];
Run Code Online (Sandbox Code Playgroud)
结果是:
::1
Run Code Online (Sandbox Code Playgroud)
我以为localhost ip地址总是像127.0.0.1?
有谁知道发生了什么?这真是让我烦恼,我似乎无法找到问题的解决方案.即使谷歌没有找到任何相关的...
我应该提一下,我正在Windows 7 64位机器上运行XAMPP安装.
提前致谢.
我正在尝试重建现有的消息传递系统,因此它看起来类似于Twitter的DM服务.目前我只向用户显示未读消息,但我想在一个'线程'中显示2个用户之间发送的消息,如下所示:

这是我当前的数据库结构和一些示例数据:http: //sqlfiddle.com/#!2/574e3/1/0
我已经尝试通过分解来逐步构建查询,但我很困惑.这是我采取的步骤列表:
1.获取两个用户之间发送的消息列表
SELECT * FROM uc_user_messages
WHERE uc_user_messages.user_id_1 = 1 OR uc_user_messages.user_id_2 = 1
Run Code Online (Sandbox Code Playgroud)
2.显示两个用户之间"对话"中的最后一条消息
SELECT * FROM uc_user_messages
WHERE uc_user_messages.user_id_1 = 1 OR uc_user_messages.user_id_2 = 1
ORDER BY timestamp DESC
Run Code Online (Sandbox Code Playgroud)
3.通过user_id对会话进行分组(显然,这将是一个用户名,在生产应用程序中有一堆连接).
SELECT * FROM uc_user_messages
WHERE uc_user_messages.user_id_1 = 1 OR uc_user_messages.user_id_2 = 1
GROUP BY uc_user_messages.user_id_1 AND uc_user_messages.user_id_2
ORDER BY timestamp DESC
Run Code Online (Sandbox Code Playgroud)
这就是我被困住的地方......问题是,将显示两个用户之间的对话中发送的第一条消息,而不是最近的消息:http://sqlfiddle.com/#!2/942fb/ 2
我该怎么办?希望我不必进行任何重大的数据库设计更改.任何帮助是极大的赞赏.
干杯,
乔尔
我想在PhoneGap项目中安装BarcodeScanner插件.我已经阅读了存储库中的自述文件,并说它必须与PlugMan一起安装,如下所示:
Install a plugin
----------------
$ plugman install --platform <platform> --project <directory> --plugin <plugin> [--variable NAME=VALUE]
Parameters:
- platform <platform>: One of android, ios, blackberry10, wp7 or wp8
- project <directory>: Path reference to a cordova-generated project of the platform you specify
- plugin <plugin>: One of a path reference to a local copy of a plugin, or a remote https: or git: URL pointing to a cordova plugin (optionally append #branch:subdir) or a plugin ID from http://plugins.cordova.io …Run Code Online (Sandbox Code Playgroud) php ×4
node.js ×3
html ×2
javascript ×2
jquery ×2
python ×2
.htaccess ×1
apache ×1
bash ×1
click ×1
codeigniter ×1
cordova ×1
css ×1
custom-url ×1
docker ×1
focus ×1
forever ×1
function ×1
gruntjs ×1
html5 ×1
html5-video ×1
ios ×1
ip ×1
ip-address ×1
minify ×1
mysql ×1
native ×1
overriding ×1
plugman ×1
python-2.7 ×1
routing ×1
shell ×1
textarea ×1
twitter ×1
ubuntu ×1
unit-testing ×1
unix ×1
upstart ×1
xampp ×1