小编Tob*_*oby的帖子

为什么 Scalaz(和 Cats)到处都使用大写的变量

对于(缩减)示例,

class SemigroupOps[F] (val self: F)(val F: Semigroup[F]) extends Ops[F] {
  def |+|(other: => F): F = F.append(self, other)
}
Run Code Online (Sandbox Code Playgroud)

F在这种情况下是一个变量,所以我希望f在类似 Java 的库中看到它。

为什么 Scalaz 使用大写约定?这是一个haskell约定吗?

为什么?

为了获得额外的功绩,其背后的动机是什么?到目前为止,它比帮助更令人困惑,但我知道我错过了约定背后的原因。

scala scalaz scala-cats

6
推荐指数
0
解决办法
189
查看次数

如何以编程方式关闭fs2.StreamApp?

扩展StreamApp要求您提供定义stream。它有一个requestShutdown参数。

def stream(args: List[String], requestShutdown: F[Unit]): Stream[F, ExitCode]

我为此提供了实现,并理解args了作为命令行参数传入的实现。但是,我不确定是什么提供了该requestShutdown参数以及我可以使用它做什么。

具体来说,我想在Stream[IO, ExitCode]启动Http4s服务器(永久阻止)的上调用正常关机。

看起来Signal是必需的,必须设置吗?我试图“了解”的基础流如下所示:

for {
   scheduler <- Scheduler[IO](corePoolSize = 1)
   exitCode  <- BlazeBuilder[IO]
                    .bindHttp(port, "0.0.0.0")
                    .mountService(services(scheduler), "/")
                    .serve
    } yield exitCode
Run Code Online (Sandbox Code Playgroud)

我的streamdef在这里,并且StreamAppSpec来自fs2项目中有一些内容,StreamAppSpec但是我无法弄清楚如何适应它。

scala http4s fs2

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

如何获取SWT Tray或TrayItem位置

有关如何使用SWT获取系统托盘(托盘)或项目(TrayItem)的位置的任何想法?从显示器获取界限只会给我整个屏幕的界限.即

item.getDisplay().getBounds();
Run Code Online (Sandbox Code Playgroud)

会在我的Windows机器上给我(0,0,1024,1024).

我还想知道系统托盘位置(左,右,顶部,底部)是否可以猜测给定位置.这就是所以我可以在系统托盘附近弹出一条消息.

这是这篇文章的重复,但我想提供一个赏金(并控制我认为是正确的答案).

java eclipse swt jface eclipse-rcp

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

ConcurrentHashMap putIfAbsent:当跟随get()调用时的原子性

我想讨论一个特定的用途,我有一个并发映射来感知检查我的逻辑......

如果我使用ConcurrentHashMap,我可以做熟悉的

private final ConcurrentHashMap<K, V> map = new ConcurrentHashMap<K, V>();

public V getExampleOne(K key) {
    map.putIfAbsent(key, new Object());
    return map.get(key);
}
Run Code Online (Sandbox Code Playgroud)

但我意识到,竞争条件存在,由此,如果我在的地图中删除的项目putIfAbsentget,上述方法将返回的东西集合中不再存在.这可能会或可能不会很好,但我们假设对于我的用例,它不行.

我真正喜欢的是让整个事物成为原子.所以,

public V getExampleTwo(K key) {
    return map.putIfAbsent(key, new Object());
}
Run Code Online (Sandbox Code Playgroud)

但随着这扩大到

if (!map.containsKey(key))
   return map.put(key, value);     [1]
return map.get(key);
Run Code Online (Sandbox Code Playgroud)

null对于第一次使用,第[1]行将返回(即,map.put将返回先前使用的值null).

我不能让它在这个实例中返回null

这让我有类似的东西;

public V getExampleThree(K key) {
    Object object = new Object();
    V value = locks.putIfAbsent(key, object);
    if (value == null)
        return object; …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading concurrenthashmap

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

Apache HTTP中的代理链接

有点混淆这里实际可能的东西.

Java Apache HTTP Client(4.x)链代理可以吗?关于如何提示?

我发现文档表明它可以,但源代码有点复杂,我发现至少有一个类(DefaultRequestDirector)抛出异常;

    throw new HttpException("Proxy chains are not supported.")
Run Code Online (Sandbox Code Playgroud)

使用单个代理配置客户端是直接的

    httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
Run Code Online (Sandbox Code Playgroud)

但对我来说,如何设置代理链并不明显.如果我按照上面文档中的提示操作,请执行以下操作.

    httpClient.setRoutePlanner(new HttpRoutePlanner() {
        @Override
        public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context) throws HttpException {
            return new HttpRoute(target, null, new HttpHost[]{proxy, new HttpHost("localhost", 8081)}, "https".equalsIgnoreCase(target.getSchemeName()), TunnelType.TUNNELLED, LayerType.PLAIN);
        }
    });
Run Code Online (Sandbox Code Playgroud)

但这会导致上述异常;

org.apache.http.client.ClientProtocolException
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:822)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
    at Main.main(Main.java:70)
Caused by: org.apache.http.HttpException: Proxy chains are not supported.
    at org.apache.http.impl.client.DefaultRequestDirector.createTunnelToProxy(DefaultRequestDirector.java:957)
    at org.apache.http.impl.client.DefaultRequestDirector.establishRoute(DefaultRequestDirector.java:764)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:579)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
    ... 8 …
Run Code Online (Sandbox Code Playgroud)

java apache-httpcomponents

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

调试Octopress/Jekyll中的液体标签

任何想法如何看到液体标签实际失败的地方?

为了更清楚,我在使用插件时遇到了一些麻烦,我在预览网站时看到的只是

Liquid Error: can’t convert Array into String
Run Code Online (Sandbox Code Playgroud)

在我的网站上.如何获得更多调试信息?谢谢

liquid jekyll octopress

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

Flyway中的DDL + DML(推荐方法)

我们目前正在运行Flyway来处理.sql文件中捆绑在一起的DDL和DML更改.

我们要单独处理它们(例如,as .ddl.dml)并将DDL作为所有者架构运行,并将DML作为用户运行.

像这样运行Flyway的推荐方法是什么?这是Flyway的典型场景吗?

我们已经考虑过运行两个Flyway实例(每个实例一个),但我们想象我们可能希望能够交错DDL和DML.

java oracle flyway

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

Chartjs 2扩展大量数据点

我正在尝试使用24小时数据(每30秒收集一次)绘制折线图。我不知道从文档如何使其能够很好地扩展。

文档说:

建立刻度时,它将根据秤的大小自动计算最舒适的单位。

但是我无法使折线图“舒适地”缩放。我不确定这是什么意思,但是我得到的数据点太多,无法很好地渲染。所以我想我正在寻找一种删除数据点的方法(使用chartjs,而不是手动滚动)。

在此处输入图片说明

我正在用我的选项做这样的事情;

const options = {
  spanGaps: false,
  scales: {
    xAxes: [{
      type: 'time',
      time: {
        displayFormats: {
          quarter: 'HH:mm'
        }
      }
    }]
  }
};
Run Code Online (Sandbox Code Playgroud)

任何指针在哪里看?

chart.js react-chartjs

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

在Ocotopress隐藏旁边

有人知道如何删除或隐藏Ocotopress网站中某些页面的旁白面板吗?

如何将默认设置为扩展(即显示在底部而不是右侧)

css jekyll

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

UILabel字体剪辑iOS

我正在加载字体并将其设置在这样的标签上

UIFont *font = [UIFont fontWithName:@"MyMonoFont" size:150.0];
label.font = font;
label.text = "TOBY"
Run Code Online (Sandbox Code Playgroud)

但是,它似乎会剪切或隐藏文本的底部(如下所示).它适用于我尝试的另一种字体.两种字体都是TTF,并且根据Mac的Font Book应用程序中的"验证"操作"有效".

在此输入图像描述

有一些限制(它的自动布局),但正如我所说,anther字体似乎应对好.

谢谢你的任何提示.

编辑:有点更新; 更新标签框架大小没有区别(如果我有自动布局).我想保持自动布局,但怀疑它的框架发生冲突/调整大小.我想知道是否有一种方式可以让他们玩得很好.

fonts uilabel ios

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