小编zie*_*ony的帖子

使用Runnable在Java中实现回调

我习惯用类似JavaScript或类似Erlang的语言编写代码,在那里我可以轻松地创建回调函数.现在我必须用Java写一些东西.我想出了如何执行这样的回调:

import java.util.*;

class Demo extends Thread{

    private int data;

    public void run(){
        ask_for_data(new Runnable(){
            public void run(){
                on_data();
            }
        });
    }

    public void on_data(){
        System.out.println("Async callback: " + data);
    }

    public void ask_for_data(final Runnable callback){
        System.out.println("2");
        Runnable r = new Runnable(){
            public void run(){
                data = get_data();
                new Thread(callback).start();
            }
        };
        new Thread(r).start();
    }

    public int get_data(){
        try{
            Thread.sleep(1000);
        } catch (Exception e) {};
        return 42;
    }

    public static void main(String[] args) {
        Demo d = new Demo();
        d.start(); …
Run Code Online (Sandbox Code Playgroud)

java asynchronous

20
推荐指数
2
解决办法
5万
查看次数

Postgres 9.1 GRANT不起作用

我尝试授予这样的权限:

zielony=# GRANT ALL PRIVILEGES ON DATABASE baza_tag to strona_user;
GRANT
Run Code Online (Sandbox Code Playgroud)

但没有任何事情发生:

usename   | usesysid | usecreatedb | usesuper | usecatupd | userepl |  passwd  | valuntil | useconfig 
-------------+----------+-------------+----------+-----------+---------+----------+----------+-----------
postgres    |       10 | t           | t        | t         | t       | ******** |          | 
zielony     |    16384 | t           | t        | t         | t       | ******** |          | 
strona_user |    16440 | f           | f        | f         | f       | ******** |          | 
Run Code Online (Sandbox Code Playgroud)

此外,我没有任何通过PHP访问.我错过了什么?

postgresql privileges

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

在Erlang的case语句中有多个匹配?

我有那种代码:

case sth of
    {a, 1} -> doA();
    {a, 2} -> doA();
    {a, 3} -> doB()
end.
Run Code Online (Sandbox Code Playgroud)

有没有办法不重复"doA()"部分?我认为它应该很容易,但我在谷歌找不到答案.

erlang case

9
推荐指数
2
解决办法
5647
查看次数

如何在Elixir中检查struct的字段类型?

比方说我有:

defmodule Operator do

    defstruct operator: nil 

    @type t :: %Operator {
        operator: oper
    }

    @type oper :: logic | arithmetic | nil
    @type logic :: :or | :and
    @type arithmetic :: :add | :mul 

end
Run Code Online (Sandbox Code Playgroud)

然后我可以:

o = %Operator{operator: :and}
Run Code Online (Sandbox Code Playgroud)

它是可能的,以检查是否o.operatorlogic,arithmetic还是nil

elixir typechecking

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

如何改变Yaws appmods文件?

我正在尝试管理Yast appmod.所以:
yaws.conf:

<server localhost>
   port = 8005
   listen = 127.0.0.1
   docroot = /home/ziel/www/CatsScript/src/
   appmods = </, myappmod>
</server> 
Run Code Online (Sandbox Code Playgroud)

来自http://yaws.hyber.org/appmods.yaws myappmod.erl:

-module(myappmod2).
-author('klacke@bluetail.com').

-include("/home/ziel/erlang/yaws/include/yaws_api.hrl").
-compile(export_all).

box(Str) ->
    {'div',[{class,"box"}],
    {pre,[],Str}}.

out(A) ->
     {ehtml,
     [{p,[],
     box(io_lib:format("A#arg.appmoddata = ~p~n"
                       "A#arg.appmod_prepath = ~p~n"
                       "A#arg.querydata = ~p~n",
                       [A#arg.appmoddata,
                        A#arg.appmod_prepath,
                        A#arg.querydata]))}]}.
Run Code Online (Sandbox Code Playgroud)

当我第一次使用它时它起作用了.但后来当我在myappmod.erl中更改了某些内容时,服务器的响应没有任何变化.比我删除myappmod.erl,但它仍然有效.我该怎么做才能做些改变?

erlang yaws

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

Apache Spark应用程序工作流程

您如何组织Spark开发工作流程?

我的方式:

  1. 当地的hadoop /纱线服务.
  2. 本地火花服务.
  3. Intellij在一个屏幕上
  4. 终端与运行sbt控制台
  5. 在我更改Spark应用程序代码后,我切换到终端并运行"package"以编译为jar和"submitSpark"这是运行spark-submit的stb任务
  6. 在sbt控制台等待异常:)

我也尝试使用spark-shell:

  1. 运行shell并加载以前编写的应用程序.
  2. 在shell中写入行
  3. 评估它
  4. 如果它可以很好地复制到IDE
  5. 在少量2,3,4之后,将代码粘贴到IDE,编译spark app并重新开始

有没有办法更快地开发Spark应用程序?

workflow apache-spark

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

在PHP中安装扩展

我正在尝试在Ubuntu 11.10上安装PHP 5.3.6的扩展.
扩展名是:php-protobuf来自https://github.com/allegro/php-protobuf.

首先,我编译它: phpize,./configure,make然后最后sudo make install.我有:

Installing shared extensions: /usr/lib/php5/20090626/

ziel@ziel:/usr/lib/php5/20090626$ ls -la protobuf.so 
-rwxr-xr-x 1 root root 113599 2013-06-13 20:48 protobuf.so
Run Code Online (Sandbox Code Playgroud)

/etc/php5/apache2/php.ini我设置:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir 
extension_dir = "/usr/lib/php5/20090626/"
extension="/usr/lib/php5/20090626/protobuf.so"
Run Code Online (Sandbox Code Playgroud)

但是php -m说没有protobuf加载扩展.

[求助]我做的一切都很好.当我通过apache执行代码时,它工作.我意识到php从控制台需要php.ini包括.

protocol-buffers php-extension

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

Django userAdmin中的用户到组,以及groupAdmin中的group-to-users

是否可以在用户选项卡的管理面板中包含多对多窗口小部件以选择用户所属的组,以及用于组选项卡中的类似多对多窗口小部件以选择应属于该组的用户?

django django-admin

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

Postgres 9.1 SETOF记录的类型

我动态生成了SELECT.我尝试将结果作为SETOF RECORD返回.那样的:

CREATE FUNCTION test(column_name text) RETURNS SETOF RECORD AS $$
DECLARE
   row  RECORD;
BEGIN
   FOR row IN EXECUTE 'SELECT ' || quote_ident(column_name) || ' FROM dates'
LOOP
   RETURN NEXT row;
END LOOP;
RETURN;
END;
$$ LANGUAGE 'plpgsql';
Run Code Online (Sandbox Code Playgroud)

当我尝试:

SELECT * FROM test('column1');
Run Code Online (Sandbox Code Playgroud)

我明白了:

ERROR:  a column definition list is required for functions returning "record"
Run Code Online (Sandbox Code Playgroud)

我知道column1是整数类型:

SELECT * FROM test('column1') f(a int);
Run Code Online (Sandbox Code Playgroud)

结果是正确的,因为我知道这将是Integer类型.

当我尝试:

SELECT * FROM test('column1') f(a varchar);
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ERROR:  wrong record type supplied in RETURN NEXT
DETAIL: …
Run Code Online (Sandbox Code Playgroud)

postgresql types record

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

如何将自定义 SurfaceView 添加到 XML 布局

我尝试在 XML 中使用我自己的 SurfaceView,但无法做到这一点。我得到 NullPointerException。根据互联网,它应该看起来像这样:
活动:

package editor;

import android.app.Activity;
import android.os.Bundle;

import com.example.balls_menu_v1.R;

public class EditorActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.editor);
    EditorView ev = (EditorView) findViewById(R.id.editorView);

}
}
Run Code Online (Sandbox Code Playgroud)

如果我发表评论,findViewById我会得到 NullPointerException。
表面视图:

package editor;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class EditorView extends SurfaceView {

    public EditorView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void onFinishInflate() {
        super.onFinishInflate();
        SurfaceHolder holder = getHolder();
        Canvas …
Run Code Online (Sandbox Code Playgroud)

android surfaceview android-xml

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

ocaml中奇怪的算术精度

可能重复:
JavaScript的数学是否被破坏?

我在OCaml的算术精度方面遇到了奇怪的问题.看:

# 1.1+.2.2;;
 - : float = 3.30000000000000027
Run Code Online (Sandbox Code Playgroud)

它发生在我做的事情:something.1 + something.2.有人可以试试吗?

floating-point ocaml

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