小编kdb*_*man的帖子

在Amazon Linux上安装node-postgres时出错.缺少pg_config.h文件

这个错误在Windows机器上似乎很常见,但我的Amazon Linux EC2实例在我执行时抛出此错误npm install pg:

../src/binding.cc:1:23: fatal error: pg_config.h: No such file or directory
 #include <pg_config.h>
                       ^
compilation terminated.
make: *** [Release/obj.target/binding/src/binding.o] Error 1
make: Leaving directory `/home/ec2-user/macros/test/stateHash/node_modules/pg/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:807:12)
gyp ERR! System Linux 3.4.82-69.112.amzn1.x86_64
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/ec2-user/macros/test/stateHash/node_modules/pg
gyp ERR! node …
Run Code Online (Sandbox Code Playgroud)

linux postgresql amazon-ec2 node.js node-postgres

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

键入安全通用Java观察器编译时错误

要求

我正在尝试写一对Observer/ Observable类.我想参数化,Observer以便可以进行类型安全更新调用.想象一下这个版本:

class View implements Observer<Model> {
    @Override
    public void update(Model model) { render(model); }  // no casting:)
}
Run Code Online (Sandbox Code Playgroud)

而不是需要强制转换的版本:

class View implements Observer {
    @Override
    public void update(Object model) { render((Model) model); }  // casting:(
}
Run Code Online (Sandbox Code Playgroud)

尝试

这是我到目前为止所拥有的.我的Observer界面:

public interface Observer<T extends Observable> {
    public void update(T observable);
}
Run Code Online (Sandbox Code Playgroud)

和我的Observable抽象类:

import java.util.List;

public abstract class Observable {
    private List<Observer<? extends Observable>> observers;

    public Observable() {
        System.out.println(this.getClass());
    }

    public void …
Run Code Online (Sandbox Code Playgroud)

java generics design-patterns type-safety observer-pattern

6
推荐指数
2
解决办法
3723
查看次数

重写Equals():调用base.Equals()时是否为空冗余比较?

覆盖该Equals()方法时,MSDN建议:

class Point: Object {
   protected int x, y;

   public Point(int X, int Y) {
      this.x = X;
      this.y = Y;
   }

   public override bool Equals(Object obj) {

      //Check for null and compare run-time types.
      if (obj == null || GetType() != obj.GetType()) return false;

      Point p = (Point)obj;

      return (x == p.x) && (y == p.y);
   }
}
Run Code Online (Sandbox Code Playgroud)

但是如果我们知道子类直接继承自的Object,那么下面是等价的吗?请注意!base.Equals()电话:

class Point: Object {
   protected int x, y;

   public Point(int …
Run Code Online (Sandbox Code Playgroud)

c# inheritance equality

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

如何将 NUnit 的 EqualTo().Within() 约束与自定义数据类型一起使用?

我喜欢 NUnit 基于约束的 API。我经常使用这样的浮点比较:

double d = foo.SomeComputedProperty;

Assert.That(d, Is.EqualTo(42.0).Within(0.001));
Run Code Online (Sandbox Code Playgroud)

很有可读性!

但是,如果我有一个自定义类,其相等性取决于浮点比较:

class Coord
{
  Coord(double radius, double radians)
  {
    this.Radius = radius;
    this.Radians = radians;
  }

  double Radius { get; }
  double Radians { get; }

  public override bool Equals(Object obj)
  {
    Coord c = obj as Coord;
    if (obj == null || c == null) return false;

    return c.Radians == this.Radians && c.Radius == this.Radius;
  }
}
Run Code Online (Sandbox Code Playgroud)

我想像这样编写我的测试:

Coord reference = new Coord(1.0, 3.14);

// test another Coord …
Run Code Online (Sandbox Code Playgroud)

c# floating-point nunit assertions

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

回收者视图中的项目重叠

当用户滚动时,我的回收器视图中的项目重叠。注意底部的重叠文本:

在此处输入图片说明

这是生成此视图的代码:

        ArrayList<Bitmap> drawables = mBitmaps;
        RecyclerView recyclerView = new RecyclerView(ctx);
        LinearLayoutManager llm = new LinearLayoutManager(ctx);
        recyclerView.setLayoutManager(llm);
        RecyclerView.Adapter adapter = new MyRecyclerAdapter(contentList, uriList, drawables);
        recyclerView.setAdapter(adapter);
        ((ViewGroup) rootView).addView(recyclerView);
Run Code Online (Sandbox Code Playgroud)
  • mBitmaps 是一组图像
  • contentList 是一个字符串列表
  • uriList 是另一个字符串列表

这是MyRecyclerAdapter类的代码:

public class MyRecyclerAdapter extends RecyclerView.Adapter<MyViewHolder> {

    ArrayList<String> mContentList, mUriList;
    ArrayList<Bitmap> mBitmaps;
    MyRecyclerAdapter(ArrayList<String> contentList, ArrayList<String> uriList, ArrayList<Bitmap> drawables){
        mContentList = contentList;
        mUriList = uriList;
        mBitmaps = drawables;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        final Context ctx = parent.getContext();
        CardView.LayoutParams params = new …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

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

当用户尝试单击使用Form.ShowDialog()创建的模式对话框时,会引发事件吗?

TL; DR

.ShowDialog()打开模式对话框并且用户单击原始表单时,对话框的标题栏闪烁。是否可以通过Windows.FormsAPI或其他任何方式访问该事件?


细节

这是带有父窗体和对话框窗口的标准C#6 Windows Forms项目。父表单只有一个按钮可以打开对话框:

using System;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        using (var dialog = new Dialog())
        {
            Console.WriteLine("Dialog starting.");

            dialog.ShowDialog(this);

            Console.WriteLine("Dialog done.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Dialog由创建.ShowDialog(this)同样简单,与OK按钮和取消按钮:

using System;
using System.Windows.Forms;

public partial class Dialog : Form
{
    public Dialog()
    {
        InitializeComponent();
    }

    private void btnOK_Click(object sender, EventArgs e)
    {
        Close();
    }

    private …
Run Code Online (Sandbox Code Playgroud)

c# events modal-dialog winforms

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

JSDoc文件可以动态生成方法吗?

这是一个构造函数A,它给出了实例2的方法:printThingprintBall.我使用JSDoc来记录这样的方法:

var A = function () {

    /**
     * Prints 'Thing'
     * @param {Number} N - The number of times to print.
     */
    this.printThing = function (N) {
        var i = 0;
        while (i < N) {
            console.log('Thing');
            i++
        }
    };

    /**
     * Prints 'Ball'
     * @param {Number} N - The number of times to print.
     */
    this.printBall = function (N) {
        var i = 0;
        while (i < N) {
            console.log('Ball'); …
Run Code Online (Sandbox Code Playgroud)

javascript jsdoc

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

如何使用 SPARQL 1.1 的 VALUES 获得类似交集的行为?

使用 SPARQL 1.1 的value,以下查询返回以EinsteinKnuth作为主语的所有谓词(及其标签)。

PREFIX dbp: <http://dbpedia.org/resource/>

SELECT DISTINCT ?sub ?outpred ?label
{
  VALUES ?sub { dbp:Albert_Einstein dbp:Donald_Knuth }
  ?sub ?outpred [] .
  ?outpred <http://www.w3.org/2000/01/rdf-schema#label> ?label .
}
Run Code Online (Sandbox Code Playgroud)

SPARQL 结果

是否可以使用此功能来公开谓词的交集而不是并集?或者我误解了价值观的用途?

编辑:澄清

举一个简化的例子,假设有以下三元组:

<Einstein>  <influenced>    <John>
<Einstein>  <influenced>    <Knuth>
<Einstein>  <born>          <Mars>
<Einstein>  <died>          <Los Angeles>
<Knuth>     <influenced>    <Kirby>
<Knuth>     <born>          <Mars>
<Knuth>     <wrote>         <TAOCP>
<Knuth>     <drove>         <Truck>
Run Code Online (Sandbox Code Playgroud)

我得到的“联合”是附加到任一主题的所有唯一谓词(为了清楚起见,以行分隔):

|  ?sub    |  ?pred     |
-------------------------
<Einstein> …
Run Code Online (Sandbox Code Playgroud)

rdf semantic-web sparql dbpedia linked-data

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

如何查看.NET IServiceProvider可以提供的所有服务?

这是有关.NET的一般问题

我得到了IServiceProvider接口的实例,但是关于从中可以得到什么的信息很少。我如何找到它可能提供的所有服务的清单?

.net c#

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

在Ruby(1.9.3)中,为什么nil响应比较运算符,`<=>`?

对我来说,与其他任何东西(甚至是另一个null类型)进行比较的null类型是未定义的操作.如果我错了,请纠正我.

根据这个假设,以下内容对我有意义:

nil.is_a? Comparable
 => false

nil.respond_to? :<=
 => false

nil.respond_to? :<
 => false

nil.respond_to? :>=
 => false

nil.respond_to? :>
 => false
Run Code Online (Sandbox Code Playgroud)

但是,nil 确实响应"宇宙飞船"比较运算符:

nil.respond_to? :<=>
 => true
Run Code Online (Sandbox Code Playgroud)

我无法想象比较nil甚至有意义的情况,更不用说实际了.为什么nil会有这种行为?

ruby null comparable

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