小编Ale*_*eev的帖子

libgreen发生了什么?

据我所知,libgreen不再是Rust标准库的一部分.另外,我找不到一个单独的libgreen包.有一些替代方案 - coroutine,它现在不提供实际的绿色线程,而green-rs,它已被破坏.我是否理解现在在Rust中没有轻量级的Go-like进程?

coroutine rust

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

Sublime Text 3:如何在无干扰模式下显示行号和书签?

使用"视图"菜单(Alt + V)或"Ctr + Shift + P"可以轻松地在无破坏模式下显示/隐藏选项卡或小地图.是否可以对行号和书签箭头执行相同的操作?

或者可能以全屏模式居中整个文本?它会产生同样的效果.

sublimetext sublimetext3

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

使用Auto Scaling管理Amazon EC2中应用程序的代码更改的最佳方法

我在AWS中使用Auto Scaling在Load balancer后面运行了多个实例.

现在,如果我必须将一些代码更改推送到这些实例以及由于自动扩展策略而可能启动的任何新实例,那么最好的方法是什么?

我所知道的是唯一的方法,来创建一个新的AMI与最新的代码,修改使用这个新的AMI,然后终止现有的情况下,自动缩放政策.但这可能涉及更长的停机时间,我不确定整个过程是否可以自动化.

任何指向这个方向的人都将受到高度赞赏.

scalability amazon-ec2 amazon-web-services autoscaling amazon-ami

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

是否有"慢"的Future.traverse版本?

我发现为一个用户请求构建大量期货通常是一种不好的做法.这些期货可以填补执行上下文,这将影响其他请求.这不太可能是你真正想要的.保持期货数量很小很简单 - 仅在for-comprehensions中创建新期货,使用flatMap等.但有时可能需要为每个Seq项目创建Future.使用Future.sequence或Future.traverse导致上述问题.所以我最终得到了这个解决方案,它不会同时为每个收集项创建Futures:

  def ftraverse[A, B](xs: Seq[A])(f: A => Future[B])(implicit ec: ExecutionContext): Future[Seq[B]] = {
    if(xs.isEmpty) Future successful Seq.empty[B]
    else f(xs.head) flatMap { fh => ftraverse(xs.tail)(f) map (r => fh +: r) }
  }
Run Code Online (Sandbox Code Playgroud)

我想知道,也许我正在发明一个轮子,实际上这样的功能已经存在于Scala的标准库中?另外我想知道,你遇到过描述的问题,你是如何解决的?也许,如果这是Futures的一个众所周知的问题,我应该在Future.scala中创建一个pull请求,这样这个函数(或者它的更通用版本)会包含在标准库中吗?

UPD:更一般的版本,有限的并行性:

  def ftraverse[A, B](xs: Seq[A], chunkSize: Int, maxChunks: Int)(f: A => Future[B])(implicit ec: ExecutionContext): Future[Seq[B]] = {
    val xss = xs.grouped(chunkSize).toList
    val chunks = xss.take(maxChunks-1) :+ xss.drop(maxChunks-1).flatten
    Future.sequence{ chunks.map(chunk => ftraverse(chunk)(f) ) } map { _.flatten }
  } 
Run Code Online (Sandbox Code Playgroud)

scala future

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

Kotlin的微型Web框架

我想开发一个非常简单的Web应用程序.对于Kotlin来说,是否有类似于Python世界的Flask?

我知道有一些例如Kara框架,但它看起来已经废弃了.

kotlin

10
推荐指数
2
解决办法
4438
查看次数

Buf.subbuf在Perl 6中的奇怪行为

今天我安装了Rakudo Star 2012.07并尝试​​编写一个简单的Perl 6脚本:

#!/usr/bin/env perl6

use v6;
use LWP::Simple;

my $html = LWP::Simple.get('http://perl6.org');
say $html;
Run Code Online (Sandbox Code Playgroud)

由于以下错误,它无法正常工作:

No such method 'get_string' for invocant of type 'String'
  in method decode at src/gen/CORE.setting:6766
  in method parse_response at lib/LWP/Simple.pm:244
  in method make_request at lib/LWP/Simple.pm:199
  in method request_shell at lib/LWP/Simple.pm:63
  in method get at lib/LWP/Simple.pm:28
Run Code Online (Sandbox Code Playgroud)

第244行的LWP ::简单代码是:

my @header_lines = $resp.subbuf(
    0, $header_end_pos
).decode('ascii').split(/\r\n/);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,以下代码是可以的:

> Buf.new(1,2,3,4,5).decode('ascii')
Run Code Online (Sandbox Code Playgroud)

而这一次失败了:

> Buf.new(1,2,3,4,5).subbuf(0,3).decode('ascii')
Method 'get_string' not found for invocant of class 'String'
Run Code Online (Sandbox Code Playgroud)

你能解释一下,为什么会这样?据我所知,在两种情况下都调用Buf.decode方法:

> Buf.new(1,2,3,4,5).subbuf(0,3).isa('Buf')
True
> …
Run Code Online (Sandbox Code Playgroud)

rakudo perl6 rakudo-star raku

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

什么是C++中的标准延迟/终结器实现?

这里这里defer解释了Golang风格的一般概念.

我想知道,STL(C++ 11,C++ 14,...)或者Boost或者其他一些库是否包含这样一个类的实现?所以我可以在不重新实现每个新项目的情况下使用它.

c++ boost stl raii go

7
推荐指数
3
解决办法
2334
查看次数

Kotlin:如何从范围中返回一些价值?

在Scala中我可以这样写:

val something = {
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2
}
Run Code Online (Sandbox Code Playgroud)

据我所知,在Kotlin做同样的事情的最佳方法是:

val something = {
  val temp1 = ...
  val temp2 = ...
  temp1 + temp2
}()
Run Code Online (Sandbox Code Playgroud)

实际上它是一个类型为Unit - > Int的lambda,它会被立即调用.我想知道这个代码能以某种方式改进吗?也许有一个内置函数,它允许我写val something = block {...}或类似的东西?

kotlin

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

Python 3和GTK3:跨平台任务栏图标

这是可能的,以创建使用AppIndicator3菜单托盘图标。但是这种解决方案不是便携式的。例如,它在FreeBSD上不起作用,因为该系统上没有libappindicator3。我怀疑这样的代码在Windows和MacOS上也不起作用。

如果没有AppIndicator3,该如何做才能使代码在所有(或几乎所有)系统上都能工作?

python gtk python-3.x gtk3

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

PostgreSQL:基本 pglogical 配置的困难

我发现官方 pglogical 文档非常混乱。不清楚的东西太多了。也许之前配置过 pglogical 的人可以解释如何设置基本的逻辑复制。

有两个 PostgreSQL 9.5 实例 - 10.128.0.8 (archlinux1) 和 10.128.0.9 (archlinux2)。扩展已安装,CREATE EXTENSION 成功。每个实例上都有一张表:

create table test (k text primary key, v text);
Run Code Online (Sandbox Code Playgroud)

我想将它从 archlinux1 复制到 archlinux2。

根据文档,我应该创建一个提供者节点:

SELECT pglogical.create_node(
    node_name := 'provider1',
    dsn := 'host=providerhost port=5432 dbname=db'
);
Run Code Online (Sandbox Code Playgroud)

它应该在master上执行吗?providerhost 应该是 127.0.0.1 还是 10.128.0.8?仅允许从本地主机(根据文档)进行当前复制 - 是否应该更改?我最好的猜测 - 它应该像这样在 master 上执行:

SELECT pglogical.create_node(
    node_name := 'provider1',
    dsn := 'host=127.0.0.1 port=5432 dbname=eax'
);
 create_node 
-------------
  2976894835
(1 row)
Run Code Online (Sandbox Code Playgroud)

下一个:

SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);
Run Code Online (Sandbox Code Playgroud)

它应该在 master、replica 上还是在两者上执行?我最好的猜测 - 仅在主人身上: …

postgresql replication

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