小编Ian*_*Ian的帖子

自动化gsutil命令

我正在尝试自动化一些gsutils命令,但很难看到保存身份验证文件的位置以及如何重用(如果发生这种情况).

我在bash中经历了gcloud init进程...

curl https://sdk.cloud.google.com | bash
gcloud init
Run Code Online (Sandbox Code Playgroud)

当我跑步时,一切运作良好

  'gsutil ls'
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试自动化该过程,因此这可以在新服务器上添加到其上的crontab(而不是每次都创建新的配置).

我看到提到设置env变量GOOGLE_APPLICATION_CREDENTIALS,所以我将我的凭据从Web登录复制到文件并尝试了,例如尝试作为其他用户进行测试

export GOOGLE_APPLICATION_CREDENTIALS=/home/user/.gsutil/mycreds
Run Code Online (Sandbox Code Playgroud)

然后gsutil ls,但失败了.

所以我假设我的整个凭证有点不对劲.我假设有一个文件位于最初由gcloud创建,我可以使用,但我无法在任何地方看到它?

我已经看过这里的答案,但现在似乎没有更新,正如最后的评论.

编辑:我已经按照Zacharys的步骤,gcloud auth activate-service-account --key-file = myfilelocation

然而,随着'gsutil ls',我现在得到..

You are attempting to perform an operation that requires a project id, with none configured. Please re-run gsutil config and make sure to follow the instructions for finding and entering your default project id.
Run Code Online (Sandbox Code Playgroud)

所以我的下一个问题是,它在哪里寻找项目ID?如果我运行gsutil配置,它似乎创建了一组新的auth,然后创建另一个错误,所以已删除它.

google-cloud-storage gcloud

7
推荐指数
1
解决办法
4442
查看次数

SVGPathData chrome 48

在chrome 48中已删除:SVGPathElement.pathSegList

此页面W3C编辑器的草案2016年1月19日显示了一种访问段列表的新方法 https://svgwg.org/specs/paths/#InterfaceSVGPathData

但是,如何使用呢?(在SVGPathElement中,方法“ getPathData”不存在

javascript svg google-chrome

6
推荐指数
1
解决办法
1200
查看次数

Flutter 检测屏幕是否关闭

我目前正在编写一个应用程序,并记录一些信息(例如 GPS),即使屏幕关闭(即其屏幕在睡眠模式下超时)。

setState()经常执行更新小部件。

但是,如果屏幕处于睡眠/不活动状态,我不确定是否需要调用setState()或某些其他 cpu 密集型操作,并且通过不调用它可能会更好地节省电池?

所以,我想知道是否有任何方法可以检测屏幕是否关闭,从而不调用 setState..

例如在伪代码中

if( checkScreenIsOn() ) { setState((){...})}
Run Code Online (Sandbox Code Playgroud)

我不确定当屏幕关闭时是否会触发某些事件。另外,如果像 GPS 这样的东西,我想在屏幕关闭时正常记录(我当前正在使用侦听器),但不更新显示。GPS 是否会进入不同的模式,如果是这样,有什么方法可以阻止这种情况吗?

flutter

5
推荐指数
1
解决办法
8097
查看次数

Streambuilder 未收到某些快照数据

我只是在测试来自 GPS 的一些流。我可以直接插入 gps 流,但我想暂时将其分开。所以我可以将 StreamBuilder 与我自己创建的流一起使用。

这一切似乎都在起作用,但 Streambuilder 似乎“错过”了某些快照,这让我感到困惑。难道不应该保证从流中接收所有数据(如果它不是广播)?还是我错误地使用了流?

如果您查看添加/接收的数据,我可以看到计数 5 和 7 都已添加,但从未收到。如果我只是在没有 StreamBuilder 的情况下“听”数据,所有数据似乎都会出现。

流生成器代码:

Widget build(BuildContext context) {

    final ApplicationBloc bloc = BlocProvider.of<ApplicationBloc>(context);

    return StreamBuilder<Map<String, dynamic>>(
        stream: bloc.gps.stream,
        builder: (BuildContext context, AsyncSnapshot<Map<String, dynamic>> snapshot){
          if( snapshot.hasData ) {
            print("Receiving ${snapshot.data['count']}");
            return Text("${snapshot.data['timestamp']}\n${snapshot.data['latitude']},${snapshot.data['longitude']}\n",
              style: Theme.of(context).textTheme.display1,);
          } else {
            return Text('waiting for GPS...', style: Theme.of(context).textTheme.display1,);
          }
        }
    );

  }
Run Code Online (Sandbox Code Playgroud)

添加到流代码:

var locationOptions = LocationOptions(accuracy: LocationAccuracy.bestForNavigation, distanceFilter: 0, timeInterval: 1, forceAndroidLocationManager: false);

    final Geolocator geoLocator = new Geolocator();
    geoLocator.getPositionStream( …
Run Code Online (Sandbox Code Playgroud)

dart flutter

5
推荐指数
1
解决办法
1152
查看次数

CPAN将模块安装到perl5而不是site_perl

我正在尝试将一些cpan模块临时安装到自定义文件夹(/ tmp/perl)中.所以我修改了构建安装基础...

o conf mbuildpl_arg "--install_base /tmp/perl"
o conf makepl_arg "INSTALL_BASE=/tmp/perl"
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,模块现在安装到该目录.我还设置了PERL5LIB

  PERL5LIB=/tmp/perl/lib/5.14.2/:/tmp/perl/lib/site_perl/:/opt/perl/lib/5.14.2/:/opt/perl/lib/site_perl/:
Run Code Online (Sandbox Code Playgroud)

注意,这只是暂时的,在虚拟服务器上将被销毁.

我注意到,之前它会将模块安装到buildpath/lib/5.14.2或buildpath/lib/site_perl中

但是现在,它将模块安装到buildpath/lib/perl5中

我的理解是核心perl模块最终在buildpath/lib/5.14.2中,而非核心模块最终在buildpath/lib/site_perl中.

由于这是安装到buildpath/lib/perl5,什么决定安装到perl5目录而不是5.14.2或site_perl?

perl cpan

4
推荐指数
1
解决办法
1291
查看次数

从jsonp fetch promise获取json

我刚刚开始使用react-native,我正在以文档为基础做经典示例...

fetch('https://facebook.github.io/react-native/movies.json')
  .then((response) => response.json())
  .then((responseJson) => {
    return responseJson.movies;
  })
  .catch((error) => {
    console.error(error);
  });
Run Code Online (Sandbox Code Playgroud)

在这个例子中,这一切都适用于正确的json.

但是,在我的特定情况下,唯一可用的api响应是JSONP而不是JSON.没有基本的JSON可用.所以我收到关于"("的错误.

所以代替JSON就好了

{"id": "1", "movies" : [ { "id" : "123" } ] }
Run Code Online (Sandbox Code Playgroud)

我收到JSONP之类的

?( {"id": "1", "movies" : [ { "id" : "123" } ] });
Run Code Online (Sandbox Code Playgroud)

但是,我不确定我可以做些什么来通过fetch promises获取JSON?如何使用我自己的函数操作响应,还是有更自然的方式?

所以在第一个然后()我不确定我能做些什么来摆脱json(我已经尝试过对响应进行操作,但这似乎只是看看了这个承诺,所以我不确定反应是如何获取的正在运作这个).

javascript json jsonp promise react-native

4
推荐指数
1
解决办法
1万
查看次数

当 ExpansionTile 在 Flutter 中折叠时,ExpansionTile 内的 TextFormField 会丢失数据

这是我的代码,我创建了一个ExpansionTile并且它有一个 child TextFormField

import 'package:flutter/material.dart';

class OrderCreatePage extends StatefulWidget {
  @override
  _OrderCreatePageState createState() => _OrderCreatePageState();
}

class _OrderCreatePageState extends State<OrderCreatePage> {
  String _userID;
  TextEditingController _controllerl;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: new Text("Create"),
      ),
      body: ExpansionTile(
        title: Text("Create"),
        children: <Widget>[
          TextFormField(
            decoration: InputDecoration(
              labelText: "User ID",
              icon: Icon(Icons.face),
            ),
            validator: (val) {},
            controller: _controllerl,
            onSaved: (val) => _userID = val,
          )
        ],
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

每当我在 中输入内容TextFormField并折叠 时ExpansionTile, …

dart flutter

4
推荐指数
1
解决办法
2443
查看次数

拉斐尔变换动画不表现

我在拉斐尔(和Snap.svg,也做同样的事情)做了一个动画变换.

如果我对基本元素应用旋转,它会像我期望的那样正常旋转.但是,如果我已经应用了先前的变换(即使它的t0,0或r0),该元素似乎缩小并备份,就好像它总是必须适合其先前的边界框或其他东西.

这是一个小例子

var r1 = s.rect(0,0,100,100,20,20).attr({ fill: "red", opacity: "0.8", stroke: "black", strokeWidth: "2" }); 
r1.transform('t0,0'); // any transform leads to shrink on rotate...
r1.animate({ transform: 'r90,50,50' }, 2000);


var r2 = s.rect(150,0,100,100,20,20).attr({ fill: "blue", opacity: "0.8", stroke: "black", strokeWidth: "2" });
r2.animate({ transform: 'r90,200,50' }, 2000);
Run Code Online (Sandbox Code Playgroud)

在动画变换中是否有一些明显的东西,我发现了什么?

svg transformation raphael snap.svg

3
推荐指数
1
解决办法
1338
查看次数

从已停止的实例中分离磁盘

有没有办法让Google控制台从已停止的实例中分离磁盘?(如果它有任何区别,它的SSD会持续存在)

我已经通过Console创建了一个实例,对它进行了一些配置,然后停止了它.我在测试时在f1-micro机器上完成了这个.

我希望在更高规格的实例上进行一些进一步的测试,并期望能够改变它(假设它处于停止状态).

但是,我看不到任何选项,因为它表示磁盘仍然附加到已停止的实例.

有没有办法在新实例上分离和使用现有磁盘,还是每次都要删除实例?理想情况下,我希望通过控制台执行此操作,但gcloud命令可能没问题.

或者最好是拍摄快照,然后从那个或其他东西开始一个新实例?

google-cloud-storage google-compute-engine

3
推荐指数
2
解决办法
3497
查看次数

在initState或类构造函数中定义小部件而不是构建?

我看到的大多数示例和流行智慧都使用了类中Widget的典型模板,其中所有其他小部件都是在build方法中创建的(我认为这可以提供清晰的代码,但将其放在一边).

但是,如果引用的窗口小部件不会进一步更改,则仍会在每次构建调用时重新创建它.在一个initState或类构造函数中分配它并稍后引用它是否有任何实际问题?

琐碎的例子

// this partial from inside the build() method currently
Container(
  padding: const EdgeInsets.only(bottom: 8.0),
    child: Text(
      'Oeschinen Lake Campground',
       style: TextStyle(
       fontWeight: FontWeight.bold,
    ),
  ),
 ),
Run Code Online (Sandbox Code Playgroud)

// Now inside initState or class Constructor
myText = Text(
      'Oeschinen Lake Campground',
       style: TextStyle(
       fontWeight: FontWeight.bold,
    ),
 );

...
// Still inside build method (in fact this could also go inside the constructor ?)
Container( 
  padding: const EdgeInsets.only(bottom: 8.0),
  child: myText
)
Run Code Online (Sandbox Code Playgroud)

这仅适用于不基于状态引用的代码.

这样做是否有除设计/美学之外的任何缺点?虽然这个例子很简单,但我一直认为,当应用程序变得更加复杂时,可能会有一些性能/电池/顶空空间的好处,而不必继续重建非基于状态的小部件(我也知道我认为这个小工具更进一步树上可能仍然每次都要求一个新对象.然而,我是新手扑动/飞镖,所以对我没有正确考虑的一些问题保持警惕,或从根本上误解了某些方面.

flutter

3
推荐指数
2
解决办法
533
查看次数

Perl IO :: Socket :: INET6 :: sockaddr_in6重新定义了错误

我们在/ usr/share中有一个自定义perl安装(5.10.1),我试图在这里安装一个'cpan -i'安装GeoIP2

在这之后,它似乎安装了许多我无法跟踪的依赖项,因为我一直在收到错误

Subroutine IO::Socket::INET6::sockaddr_in6 redefined at /usr/share/perl5/Exporter.pm line 67
Run Code Online (Sandbox Code Playgroud)

在我们运行的大多数使用"use"命令的脚本上.我一直试图确定哪个模块最终称之为,但尚未成功.

经过一些研究,一个建议是评论以下几行

/usr/share/perl5/IO/Socket/INET6.pm # (version 2.56, think latest is 2.72)


###commented out the following
###use Socket6 (
###    qw(AI_PASSIVE inet_ntop inet_pton getaddrinfo
###    sockaddr_in6 unpack_sockaddr_in6_all pack_sockaddr_in6_all)
###);
Run Code Online (Sandbox Code Playgroud)

这已经阻止错误出现在各种脚本上.有谁知道这样做是否安全(即以后是否会引起更多问题),是否有更好的方法(即可以更新该模块,我猜这会导致问题并打破其他东西?).什么是正确更新模块的最佳方法?

perl cpan

2
推荐指数
1
解决办法
3485
查看次数

将变量添加到 Dart 扩展方法或数据类型?

我正在将一些 JS 代码转换为 Dart。JS 代码向数组添加一些属性。

将“start”属性添加到数组的示例。

var a = [1,2,3,4];
a.start = 3;
Run Code Online (Sandbox Code Playgroud)

由于此类代码很多,并且我试图尽可能与原始 JS 代码保持一致,因此我试图在 Dart 中找到类似的解决方案。

我查看了类型的扩展,例如以下内容,但不确定它们是否适用于变量并且仅适用于方法?

extension JSList<T> on List<T> { 
  int _start;
  int get start => _start;
  void set start(x) => _start = x;
}
Run Code Online (Sandbox Code Playgroud)

但我似乎遇到了各种错误,比如

Error: Extensions can't declare instance fields

看看文档,我不确定我正在尝试的内容是否被允许。

那么有没有办法将一些自定义字段/变量/属性添加到现有的列表数据类型中?或者还有其他类似的建议吗?

dart

1
推荐指数
1
解决办法
2199
查看次数