我正在尝试在我的机器上运行Dart应用程序,最终部署在Google App Engine上.我按照本页上的说明进行操作
https://www.dartlang.org/cloud/
区别在于我已经运行了本地docker守护程序,我想使用它,并且不想真正使用VirtualBox.说明假设您正在使用boot2docker,它坚持使用VirtualBox来安装VirtualBox VM并在此上运行docker守护程序.每次我试着跑
gcloud preview app run app.yaml
Run Code Online (Sandbox Code Playgroud)
我明白了
google.appengine.tools.docker.containers.DockerDaemonConnectionError:
Couldn't connect to the docker daemon because the required environment
variables were not set. Please check the environment variables
DOCKER_HOST, DOCKER_CERT_PATH and DOCKER_TLS_VERIFY are set correctly.
If you are using boot2docker, make sure you have run "$(boot2docker shellinit)
Run Code Online (Sandbox Code Playgroud)
我从我所读到的内容中感觉到,您不必使用boot2docker,并使用本地docker守护程序实例.问题是我找不到有关如何执行此操作的任何说明.我希望有人能为我解答这个问题.此外,我给出的错误消息对我没有帮助,因为任何谷歌搜索我一直给我相同的使用答案,boot2docker.
我正在尝试使用javascript绑定将一个简单的开罗绘图绘制到一个混乱的窗口.我的问题是,除了命名略有不同的函数的一半,无论我尝试什么,都没有显示开罗绘图.我使用了python的一个例子,它可以工作,并将它移植到javascript.我也在使用内省来获取Clutter模块实例.我也在使用gjs版本0.7.14.谁能告诉我出了什么问题.
下面是我正在使用的示例代码.
const cairo = imports.cairo;
const clutter = imports.gi.Clutter;
function on_button_press_event (stage, event) {
clutter.main_quit();
}
function draw(cairo_tex) {
var context = cairo_tex.create();
context.scale(200, 200);
context.setLineWidth(0.1);
var colour2 = new clutter.Color();
colour2.from_string('#dd000088');
clutter.cairo_set_source_color(context, colour2);
context.translate(0.5, 0.5);
context.arc(0, 0, 0.4, 0, Math.PI * 2);
context.stroke();
}
function main () {
clutter.init(0, null);
var stage = new clutter.Stage();
var colour = new clutter.Color();
colour.from_string("#ffccccff");
stage.set_color(colour);
stage.set_size(400, 300);
stage.connect('button-press-event', on_button_press_event);
stage.connect('destroy', clutter.main_quit);
var cairo_tex = new clutter.CairoTexture.new(200, 200);
cairo_tex.set_position((stage.get_width() - 200) / …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Gnome 3(Gnome Shell)下监听MediaKey事件.我找到的所有示例都指的是使用DBus连接到org.gnome.SettingsDaemon.MediaKeys.我的平台上似乎不存在此服务.
我试图通过GObject-Introspection使用Python来做到这一点.例子说做这样的事情
from gi.reposiotry import Gio
connection = Gio.bus_get_sync(Gio.BusType.SESSION, None)
proxy = Gio.DBusProxy.new_sync(connection, 0, None, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/MediaKeys', 'org.gnome.SettingsDaemon.MediaKeys', None)
Run Code Online (Sandbox Code Playgroud)
毫不奇怪,这失败了.我错过了提供此服务的安装,还是我必须以另一种方式执行此操作?
这适用于媒体键侦听器,无论哪个窗口具有焦点,它都会侦听键事件.它适用于甚至没有自己的GUI的应用程序,并且是桌面范围的.这就是我尝试使用Mediakeys DBus服务的原因,但却发现我的桌面缺少它.
我应该清楚,MediaKeys服务不存在.我不能事件连接到服务并创建代理,因为它不存在.我想知道的是,我是否错过了安装,或者是否在Gnome 3更新中删除了此服务?如果删除了,那么我如何在这个新环境中监听媒体密钥?我正在运行Gnome 3.8.2.
对不起应该首先提到这一点.有一天,我会完善我的问题: - }.我正在运行Gentoo.
在我对Polymer Dart 1.0.0的探索中,我发现了事件和观察者方法,我被迫使用这种模式
@reflectable
void someEvent([_, __]) {
...
}
Run Code Online (Sandbox Code Playgroud)
或者以观察者的方法
@Observe('someField')
void someFieldChanged([_, __]) {
...
}
Run Code Online (Sandbox Code Playgroud)
我理解方括号的用途,可选参数,我也理解如果你不关心传递的参数,你可以用下划线表示这个参数.令我惊讶的是我看到的例子使用双下划线__作为方括号之间的第二个符号.当我再次尝试仅使用一个下划线时,我得到一个重复的形式参数错误.你不关心的第二个参数是否与第一个不同?按照这个逻辑,如果我包含第三个,是否意味着它必须是一个三重下划线___?
谢谢.
在Polymer中,您可以创建霓虹灯动画,就像它们已经构建的"淡入动画"一样.您可以像这样实现Polymer.NeonAnimationBehavior
<script>
Polymer({
is: 'fade-in-animation',
behaviors: [
Polymer.NeonAnimationBehavior
],
configure: function(config) {
var node = config.node;
this._effect = new KeyframeEffect(node, [
{'opacity': '0'},
{'opacity': '1'}
], this.timingFromConfig(config));
return this._effect;
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
我可以创建类似的东西,只提供configure函数,它返回一个KeyframeEffect.我尝试在Polymer Dart 1.0中复制它
@HtmlImport('diagonal-left.html')
library wellington.elements.animation.diagonal_left;
import 'dart:html';
import 'package:web_components/web_components.dart';
import 'package:polymer/polymer.dart';
import 'package:polymer_elements/neon_animation_behavior.dart';
@CustomElement('diagonal-left')
class DiagonalLeft extends PolymerElement with NeonAnimationBehavior {
KeyframeEffect _effect;
configure(config) {
var node = config.node;
if (config.transformOrigin) {
setPrefixedProperty(node, 'transformOrigin', config.transformOrigin);
} else {
setPrefixedProperty(node, 'transformOrigin', '0 75%');
}
_effect = new KeyframeEffect(node, …Run Code Online (Sandbox Code Playgroud) 我创建了一个WebComponent,我为它创建了一个构造函数.运行时,似乎没有调用此构造函数,尽管其余组件可以工作,但它们必须在我的自定义构造函数之外创建.这是我正在谈论的一个例子.
<element name="x-navigation" constructor="Navigation" extends="div">
<template>
<div>{{items}}</div>
</template>
<script type="application/dart">
import 'package:web_ui/web_ui.dart';
class Navigation extends WebComponent {
List<String> items = new List<String>();
Navigation() {
items.add("Hello");
}
}
</script>
<element>
Run Code Online (Sandbox Code Playgroud)
如果我包含这个组件,输出将是一个空列表,就像我创建的构造函数没有被调用一样.至少应该有"Hello"字符串输出,但事实并非如此.构造函数是否以这种方式被忽略,或者我错过了什么?
我一直在尝试使用像dns_get_record($ domain)这样的函数来检查域的有效性.问题是,如果它不是一个有效的域,它会将它附加到我所在的站点IP的域前面.我不能依赖任何gethostbyname,dns_get_record等函数,因为它们不能像我期望的那样工作.
如果域不存在,我希望这些函数中的任何一个都返回失败的结果.不是.我注意到使用'ping'命令执行与PHP函数相同的操作,但'host'命令按预期工作.
我编写了一个C程序来使用gethostbyname,它按预期工作.与python'socket.gethostbyname'相同.它们都在使用无效域进行查找时失败.
PHP函数发生了什么?为什么他们的行为不像我期望的那样,并且在无效的域名上失败?
在域名为example.com的主机上使用以下内容时,请提供以下内容.
dns_get_record('something')
Array
(
[0] => Array
(
[host] => somthing.example.com
[type] => A
[ip] => some ip address
[class] => IN
[ttl] => 600
)
)
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.如果有错误,感谢您的错误链接
更新:
正如@Barmar正确指出的那样,这是DNS记录的设置方式.我我家的电脑,其上有PHP中发现,该功能的gethostbyname()和朋友的工作完全符合预期.
这就引出了一个问题,即当您设置DNS以启用通配符时,如何可靠地检查域是否有效.我发现的唯一方法是使用命令行通行费并从PHP调用它们.我不喜欢这个选项,但它是我目前唯一获得的选项,幸运的是它并不是一个经常被称为操作的操作.
我已经知道我必须使用@reflectable的一些地方
@property String get name Band =>_nameBand;
@reflectable void set nameBand(val) {
_nameBand = val;
notifyPath('nameBand', _nameBand;
}
Run Code Online (Sandbox Code Playgroud)
对于由点击元素触发的事件.
<paper-button on-click="clicked"></paper-button>
Run Code Online (Sandbox Code Playgroud)
在元素类定义中,您可以在其中定义要在on-click事件上调用的事件处理程序方法.
...
@reflectable
void clicked([_, __]) {
...
}
Run Code Online (Sandbox Code Playgroud)
如果没有@reflectable注释,只要单击纸张按钮,Polymer就无法找到您想要使用的setter或方法.为什么需要@reflectable,因为它的目的是什么?
我意识到我似乎在回答我自己的问题,但我希望得到一些澄清.谢谢.
在阅读此维基页面后,在Polymer Dart 1.0.0上,并阅读目前Polymer Dart默认使用shady dom的事实(不是这对我来说是一个惊喜),你可以将其更改为使用shadow dom.如果使用阴影dom,我的一些最新元素将无效.我想知道你如何检测你是否在运行时使用阴影或阴暗的dom?
dart ×6
dart-polymer ×4
boot2docker ×1
cairo ×1
clutter ×1
dart-webui ×1
docker ×1
gcloud ×1
gentoo ×1
gnome-shell ×1
javascript ×1
php ×1
polymer ×1
python ×1