小编use*_*468的帖子

使用 AspectJ 实现虫洞模式

我正在寻找使用 AspectJ 实现虫洞模式的示例(如果 Guice AOP 有能力实现这一点,我会感兴趣)。

虫洞本质上允许您沿调用流程传递其他参数,例如:

// say we have
class foo {
   public int m0 int a, int b) {
     return m1(a,b);
   }

   public int m1 int a, int b) {
     return m2(a,b);
   }

   public int m2 int a, int b) {
     return a+b;
   }
}
// and I wanted in a non-invasive manner to pass a third parameter of type
class context {
  String userName;
  long timeCalled;
  String path;
}
// I could use an advise to …
Run Code Online (Sandbox Code Playgroud)

java aop aspectj guice

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

Twitter4j:调用getFollowersIDs时出现不一致的身份验证错误

我使用的是Twitter4j 3.0.3版.

我试图吸引关注者ID并使用OAuth.我已经使用Twitter4j多年,并且对框架有相对丰富的经验.

然而,发生了一些奇怪的事情:我的程序运行正常,然后间歇性地抛出以下堆栈跟踪:

Exception in thread "main" 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
{"request":"\/1.1\/followers\/ids.json?user_id=20801287&cursor=-1&include_entities=1&include_rts=1","error":"Not authorized"}

Relevant discussions can be found on the Internet at:
    http://www.google.co.jp/search?q=92c30ec6 or
    http://www.google.co.jp/search?q=19400604
TwitterException{exceptionCode=[92c30ec6-19400604], statusCode=401, message=null, code=-1, retryAfter=-1, rateLimitStatus=RateLimitStatusJSONImpl{remaining=6, limit=15, resetTimeInSeconds=1362898120, secondsUntilReset=890}, version=3.0.3}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:89)
    at twitter4j.TwitterImpl.get(TwitterImpl.java:1817)
    at twitter4j.TwitterImpl.getFollowersIDs(TwitterImpl.java:400)
Run Code Online (Sandbox Code Playgroud)

它抛出以下行:

IDs ids= twitter.getFollowersIDs(id,cursor);
Run Code Online (Sandbox Code Playgroud)

上面的行执行得很好,然后没有警告失败.

注意:我正在检查速率限制,上次遇到此速率时,由以下行拉出的速率限制JSON对象是(下面):

RateLimitStatus rls=twitter.getRateLimitStatus().get("/followers/ids")

RateLimitStatusJSONImpl{remaining=7, limit=15, resetTimeInSeconds=1362898120, secondsUntilReset=890}
Run Code Online (Sandbox Code Playgroud)

我认为这可能是Twitter的间歇性事情,但现在已经持续了几天.

我从各种机器尝试过它但得到了完全相同的问题. …

twitter twitter4j

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

R中的圆形移位阵列距离n

说我有

a <- c(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

并且我想通过将它在"左"方向上移动距离1来从a导出b

b
# [1] 2 3 1
Run Code Online (Sandbox Code Playgroud)

通过推导我的意思是你:

  1. 将"a"传递给吐出"b"的函数
  2. 你使用某种索引短路就可以做到这一点.
  3. b <- c(2, 3, 1)例如,不是我正在寻找的解决方案

什么是优雅/有效的方法呢?

r

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

为什么函数内的rm不能删除对象?

rel.mem <- function(nm) {
  rm(nm)
}
Run Code Online (Sandbox Code Playgroud)

我定义了上面的函数rel.mem - 接受一个参数并将其传递给rm

> ls()
[1] "rel.mem"
> x<-1:10
> ls()
[1] "rel.mem" "x"      
> rel.mem(x)
> ls()
[1] "rel.mem" "x"    
Run Code Online (Sandbox Code Playgroud)

现在你可以看到我称之为rel.mem x没有被删除 - 我知道这是由于正在尝试rm的环境不正确.

对此有什么好处?

一个好的修复的标准:

  1. 呼叫者不应该通过环境
  2. 被调用者(rel.mem)应该能够通过使用R语言工具(调用栈检查,方面等)来确定环境.
  3. 函数rel.mem的接口应该保持简单 - 白痴证明:调用rel.mem - 然后rel.mem从那里获取它 - 不需要通过环境.

笔记:

  1. 正如许多评论者指出的那样,一个简单的解决办法是通过环境.
  2. 我的意思是一个好的修复[我应该澄清它]是被调用函数(在这种情况下是rel.mem)能够在调用者引用时计算/找出环境,然后从中删除对象合适的环境.
  3. "2"中的推理类型可以通过检查调用堆栈在其他语言中完成 - 例如在Java中我会抛出一个虚拟异常 - 捕获它然后解析调用堆栈.在其他语言中,我仍然可以使用面向方面的技术.问题是可以在R中完成吗?
  4. 正如一位评论者提出可能存在多个具有相同名称的对象,因此"正确"的环境毫无意义 - 正如我在上面所述,在其他语言中,有可能(有时带有一些创造性的诡计)来解释呼叫-stack - 这在R中可能是不可能的
  5. 正如一位评论者所建议的那样,rm(list = nm,envir = parent.frame())将从父环境中删除它.这是正确的 - 但是我正在寻找适用于任意调用深度的东西.

r

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

如何从r中的gzip文件中读取行?

我需要从gzip文件读取小批量的行(一次说100条),该文件是使用gzip压缩的文本文件。我使用小批量,因为每行都非常长。

但是我不能用这样的东西(我认为缓冲区没有更新):

in.con <- gzfile("somefile.txt.gz")
for (i in 1:100000) {
  chunk <- readLines(in.con,n = 100)
  # if you inspect chunk in each loop step, say with a print
  # you will find that chunk updates once or twice and then
  # keeps printing the same data.
}
close(in.con)
Run Code Online (Sandbox Code Playgroud)

我如何完成类似的工作?

笔记:

  1. 对于小文件,这将起作用。
  2. 您将需要一个非常大的文件,并且当您尝试多次读取它时–您会看到chunk变量不会更新
  3. 我认为这是因为基础扫描对gzip文件不可靠
  4. i变量只是为了限制循环-不需要引用i
  5. 一些评论似乎在说该代码不适用于文本文件-我发布的结果显示如下:

in.con <- file("some.file.txt", "r", blocking = FALSE)
while(TRUE) {
  chunk <- readLines(in.con,n = 2)
  if (length(chunk)==0) break;
  print(chunk)
}
close(in.con) …
Run Code Online (Sandbox Code Playgroud)

r

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

开发多屏幕Web界面 - 例如Bloomberg终端

我希望构建一个需要多屏界面的基于Web的应用程序.

为了实现这一点,我正在寻找以下内容:

  1. 任何可能的前端库 - 例如jQuery插件.
  2. 我应该看看任何设计模式.
  3. 任何基于Web的多屏幕界面的成功开源实现.

在此输入图像描述

jquery web-applications jquery-plugins multiscreen

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

如何将具有相同行大小的 data.frame 的列表元素绑定到一个大的 data.frame 中

假设我有一个包含 4 个数据框的列表

l<-list()
l[[1]]<-data.frame(1:10)
l[[2]]<-data.frame(runif(10))
l[[3]]<-data.frame(rnorm(10))
l[[4]]<-data.frame(10:1)
Run Code Online (Sandbox Code Playgroud)

如何将这些绑定到一个 data.frame 中?

当我尝试 cbind 时,我得到:

> cbind(l)
     l     
[1,] List,1
[2,] List,1
[3,] List,1
[4,] List,1
Run Code Online (Sandbox Code Playgroud)

r

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

是否可以将 pipelinev 与 setup.py 一起使用?

正如标题所述——我可以将 setup.py 与 pipelinenv 与 pyenv 一起使用来管理我的环境、版本和依赖项吗?

\n

我有一个带有 setup.py 文件的目录结构形式的 python 包。

\n

我喜欢使用 Pipenv 作为我的项目环境管理器——我使用 pyenv 来管理我的多个 python 版本。

\n

所以我想做的是:

\n
    \n
  1. 使用 pyenv 获取项目特定的 python 版本:pyenv version 3.8.5
  2. \n
  3. 使用 python setup.py install 运行 setupfile -- 假设这个包名为 foobar -- 这会将包安装在 ~/.pyenv/versions/3.8.5/lib/python3.8/foobar 中(真实名称不是 foobar - - 只是用这里来说明这一点)
  4. \n
  5. 现在,当我转到 my_project 并运行 pipelinenv install foobar 时,我得到以下信息:
  6. \n
\n
pipenv install foobar\nInstalling foobar\xe2\x80\xa6\nError:  An error occurred while installing foobar!\nError text:\nERROR: Could not find a version that satisfies the …
Run Code Online (Sandbox Code Playgroud)

python setup.py pyenv pipenv

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

轻松地将跟踪语句添加到LISP方言(例如,不使用do)

当用Java等命令式编程语言编程时,可以方便地添加跟踪语句.例如:

for (int i=0; i<10; i++) {
  // do something
  // do something
  System.out.println("Some trace statement");
  // do something 
}
Run Code Online (Sandbox Code Playgroud)

如何通过Clojure等LISP方言实现这一目标 - 例如说我想在重复之前添加一个跟踪:

(def fact
  (fn [n]
    (loop [cnt n acc 1]
       (if (zero? cnt)
            acc
          ;; say I want to add a trace here
          (recur (dec cnt) (* acc cnt))))))
Run Code Online (Sandbox Code Playgroud)

笔记:

  1. 该方法应该比添加一行简单
  2. 例如,如果我要使用do块 - 我必须重新格式化,请确保我正确地关闭括号

lisp clojure

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

您如何将Gamma分布拟合到R中的数据?

假设我有使用以下方法生成的变量x:

x <- rgamma(100,2,11) + rnorm(100,0,.01) #gamma distr + some gaussian noise

    head(x,20)
 [1] 0.35135058 0.12784251 0.23770365 0.13095612 0.18796901 0.18251968
 [7] 0.20506117 0.25298286 0.11888596 0.07953969 0.09763770 0.28698417
[13] 0.07647302 0.17489578 0.02594517 0.14016041 0.04102864 0.13677059
[19] 0.18963015 0.23626828
Run Code Online (Sandbox Code Playgroud)

我怎样才能适应伽玛分布?

r distribution gamma-distribution

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