小编fak*_*ake的帖子

多态函数的参照透明性

考虑这种实施 on

on f g = curry $ (. bimap g g) $ uncurry f
Run Code Online (Sandbox Code Playgroud)

它是什么类型?GHC会说(b -> b -> c) -> (a -> b) -> a -> a -> c,这是一个很好的猜测。但是它错过了实例on (+) toInteger。让我们尝试修复程序(使用RankNTypesKindSignaturesAllowAmbiguousTypesConstraintKinds):

on :: forall (co :: * -> Constraint) a1 a2 b c . 
      (co a1, co a2) => 
      (b -> b -> c) 
   -> (forall a . co a => a -> b)
   -> a1 -> …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass rank-n-types

7
推荐指数
0
解决办法
89
查看次数

是否可以为LDAP用户建立本地组

我有一个我没有完全权限的LDAP服务器和一个带有LDAP身份验证的ubuntu系统.是否可以将LDAP用户添加到本地组?(我不知道我是否正确地说这个,但我想要的是在组中的LDAP中有一个用户而不编辑实际的数据库)

ldap local

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

用于拉取和构建项目的 Makefile

我正在构建一个需要项目生态系统(linux、qemu、uboot 等)的项目,其中大部分项目都在 git 存储库中。我曾经用脚本管理它们,但我发现自己实现了用 make 完成的更好的东西。所以我决定将我的脚本迁移到 makefile。

问题是我想克隆项目(如果不存在)并拉出(如果存在)。有没有办法做到这一点而不会重复我太多?

git conditional makefile

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

在Haskell中使用分析运行堆栈

我尝试跑步

$ stack build --profile && stack run myexec --rts-options -p
Run Code Online (Sandbox Code Playgroud)

但是我明白了

... 
Registering library for mylibrary-0.1.0.1..
Completed 2 action(s).      
myexec: the flag -p requires the program to be built with -prof
...
Run Code Online (Sandbox Code Playgroud)

我知道我可以跑步

$ .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/myexe/myexe +RTS -p
Run Code Online (Sandbox Code Playgroud)

但是那有什么意义stack run呢?我不想知道cabal的版本和体系结构等(所有这些都发生在makefile中)。

haskell haskell-stack

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

Rust 中 Box<dyn FnOnce(T)> 的协方差

我有一个函数需要一个短暂的对象。我希望我总是能够将一个长寿的对象传递给它。但当我尝试对其进行编码时,出现了一个奇怪的错误:

type F<'arg> = Box<dyn FnOnce(&'arg ())>;
fn contravar<'small, 'large: 'small>(f: F<'small>) -> F<'large> {
    f
}
Run Code Online (Sandbox Code Playgroud)

操场

特别:

error: lifetime may not live long enough
 --> src/lib.rs:3:5
  |
2 | fn contravar<'small, 'large: 'small>(f: F<'small>) -> F<'large> {
  |              ------  ------ lifetime `'large` defined here
  |              |
  |              lifetime `'small` defined here
3 |     f
  |     ^ function was supposed to return data with lifetime `'large` but it is returning data with lifetime `'small`
  |
  = help: consider adding …
Run Code Online (Sandbox Code Playgroud)

contravariance lifetime variance rust

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

使用libusb测试应用程序而不使用真正的硬件

我正在编写的应用程序的一部分使用libusb与设备通信,我很难测试我的代码.是否有一个框架来创建虚假的USB设备或另一种模拟libusb的方法,以便更好地自动化测试,能够在CI上进行测试,重现边缘情况等?

testing libusb

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

用Clang预处理器从C ++文件中剥离注释

我知道gcc预处理程序可以使用-fpreprocessed来仅从文件中删除注释,而其余部分保持不变,但是我该如何对clang做同样的事情?

c++ gcc clang c-preprocessor

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

绘制与Seaborn FacetGrid相关的热图

我试图用热图创建一个单独的图像,分别代表每个标签的数据点特征的相关性.有了seaborn,我可以像这样为单个类创建一个热图

grouped = df.groupby('target')
sns.heatmap(grouped.get_group('Class_1').corr())
Run Code Online (Sandbox Code Playgroud)

我得到这个有意义:

Class_1相关热图

但后来我尝试列出所有标签,如下所示:

g = sns.FacetGrid(df, col='target')
g.map(lambda grp: sns.heatmap(grp.corr()))
Run Code Online (Sandbox Code Playgroud)

可悲的是,我得到的这对我来说毫无意义:

未能尝试绘制所有类

python plot pandas seaborn

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

使用 logger.exe 嗅探系统调用

我有一个应用程序,它使用一些串行端口并运行一些系统调用,例如EscapeCommFunction,我想调试它。基本上我想要strace在 linux 上最接近的。我发现最好的候选者似乎是logger.exe,但我不知道如何使用它。

我试着打电话

logger.exe <application> <arg1> <arg2> <arg3>
Run Code Online (Sandbox Code Playgroud)

并在出现的对话框中尝试了所有对我有意义的组合。结果总是一样的:程序成功完成,即使在我关闭 logger 之后,Logger 窗口上也没有任何输出或任何日志文件被创建。

logging windbg system-calls strace

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

graphviz中框的宽度相等

有没有可能让两个盒子和最宽的盒子一样宽。

digraph G {
        node[shape=box];
        "A long description of a node" -> "short description";
}
Run Code Online (Sandbox Code Playgroud)

将产生:

在此处输入图片说明

但我希望两个盒子的大小对齐。

dot graphviz

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