小编Mad*_*uja的帖子

渲染具有不同大小的相同图像

我的资产中有大量图像.我想要做的是在OSX的状态栏中渲染图像如下:

let icon = NSImage(named: "statusIcon")
icon?.size = NSSize.init(width: 18, height: 18)

icon?.template = true
statusItem.image = icon
statusItem.menu = statusMenu
Run Code Online (Sandbox Code Playgroud)

并在我打开的一个视图中使用它:

self.dayIcon.image = NSImage(named: "statusIcon")
Run Code Online (Sandbox Code Playgroud)

问题是,一旦我设置状态栏图像,视图中的图像也会发生变化,即颜色和大小(更改为18x18)

我试过用

icon?.cacheMode = NSImageCacheMode.Never
Run Code Online (Sandbox Code Playgroud)

但是没有效果.

这是怎么回事?我可以不使用相同的图像并在不同的地方以不同的方式呈现它.它们都是不同的NSImage例子.

cocoa nsimage swift

9
推荐指数
1
解决办法
528
查看次数

优化Celery以进行第三方HTTP调用

我们正在使用芹菜来进行第三方http呼叫.我们有大约100多个任务,只需调用第三方HTTP API调用.有些任务批量调用API,例如早上4点请求50万个请求,而有些则是连续的API调用流,几乎每秒接收一次或两次请求.

大多数API调用响应时间在500到800毫秒之间.

我们看到芹菜的运送速度非常慢.对于上述大多数任务,最大传送速率约为100/s(最大)至接近1/s(min).我相信这是非常糟糕的,肯定是错的,但我无法弄清楚它是什么.

我们从3台服务器的集群开始,逐步使它成为7台服务器的集群,但没有任何改进.我们尝试了从自动缩放到固定的10,20,50,100个工作者的不同并发设置.没有结果后端,我们的经纪人是RabbitMQ.

由于我们的任务执行时间非常短,大​​多数时间不到一秒,我们还尝试将预取计数限制为不同的值.

--time-limit=1800 --maxtasksperchild=1000 -Ofair -c 64 --config=celeryconfig_production

服务器是64 G RAM,Centos 6.6.

你能告诉我什么可能是错的或者如何解决它?

我们应该选择gevents吗?虽然我对它的含义知之甚少.

python scalability rabbitmq celery

9
推荐指数
1
解决办法
424
查看次数

Spring PUT请求:不支持的媒体类型(代码:415)

我有一个相当模糊的问题,经过几天的调试后我无法弄清楚.问题是我们的PUT REST API之一开始投入Unsupported Media type生产.这是方法的定义:

@RequestMapping(value = "/v1/put/user/profile", method = RequestMethod.PUT)
    public String updateProfile(@RequestBody UserAndroid user, ModelMap model,
            HttpServletRequest request, HttpServletResponse response) {

    }
Run Code Online (Sandbox Code Playgroud)

在PUT请求中,我们只是传递移动号码,如下所示:

{ "mobile": "9999559848"}
Run Code Online (Sandbox Code Playgroud)

这是UserAndroid实体:

https://gist.github.com/madhur/eb0d9d006f4e4da706d7

现在,最令人惊讶的部分.在追踪github提交之后,我们将错误追溯到这个新引入的字段User(不是UserAndroid.它们是不同但相关的)实体(https://gist.github.com/madhur/06bbcfe11c0e751ab4df):

@OneToOne(mappedBy="user", fetch=FetchType.LAZY)
private FullContactDetails fullContactDetails;
Run Code Online (Sandbox Code Playgroud)

如果我们删除此字段,API将开始正常工作.任何人都可以告诉我为什么会发生这种情况?

更新:以下是执行请求时的Spring MVC日志:

https://gist.github.com/madhur/ef357f614b18c6ed42cb

使用Spring 3.2.2.是的,我们在classpath中同时拥有gson-2.2.4.jar和jackson.

24 Mar 2015 20:15:14 > org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter - Opening JPA EntityManager in OpenEntityManagerInViewFilter
 24 Mar 2015 20:15:14 > org.springframework.transaction.support.TransactionSynchronizationManager - Bound value [org.springframework.orm.jpa.EntityManagerHolder@6427300a] for key [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean@47672d99] to thread [http-bio-8080-exec-3]
 24 Mar …
Run Code Online (Sandbox Code Playgroud)

java rest spring spring-mvc

7
推荐指数
1
解决办法
887
查看次数

如何在运行时检测缺少的.NET引用?

我的应用程序包含对外部库(SQL Server管理对象)的引用.显然,如果运行时系统中不存在该库,则只要没有调用使用此库中的类的方法,应用程序仍然可以工作.

问题1:这是指定行为还是CLR加载库的方式(幸运)副作用?

要检测引用是否可访问,我目前使用如下代码:

Function IsLibraryAvailable() As Boolean
    Try
        TestMethod()
    Catch ex As FileNotFoundException
        Return False
    End Try
    Return True
End Function

Sub TestMethod()
    Dim srv As New Smo.Server()  ' Try to create an object in the library
End Sub
Run Code Online (Sandbox Code Playgroud)

它有效,但似乎很难看.注意如果TestMethod的是一个单独的方法,它才能正常运行,否则异常将在抛出开头IsLibraryAvailable(在try-catch之前,即使对象实例化try-catch块内occurrs).

问题2:有更好的选择吗?

特别是,我担心函数内联等优化可能会阻止我的代码工作.

.net reference .net-assembly

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

如何在PreferenceScreen中集成Facebook LoginButton

我想让我的用户能够通过使用简单的设置屏幕连接/断开连接到Facebook PreferenceScreen

如何在此集成此自定义Button类PreferenceScreen. https://developers.facebook.com/docs/reference/android/current/LoginButton/

登录按钮大大简化了会话管理,否则需要手动完成,如果我提供简单Preference和使用onClickListener

android facebook facebook-graph-api

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

Spring:在JUnit Test中测试JSP输出

我们有一个API,它将JSP作为视图返回,例如:

@RequestMapping(value = "/cricket/{matchId}", method = RequestMethod.GET)
    public String getCricketWebView(HttpServletRequest request, @PathVariable("matchId") Integer matchId, ModelMap mv){
        try{

            return "webforms/cricket";

        }catch(Exception e){
            e.printStackTrace();
        }

        return "";
    }
Run Code Online (Sandbox Code Playgroud)

我写了一个单元测试来测试它如下:

@Test
    public void test_cricket()
    {
        try {

            MvcResult result =this.mockMvc.perform(get(BASE + "/cricket/123")
                    .accept(MediaType.TEXT_HTML))
                    .andExpect(status().isOk()).andReturn();

            String json = result.getResponse().getContentAsString();

            System.out.println(json);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
Run Code Online (Sandbox Code Playgroud)

问题是,单元测试只返回字符串webforms/cricket而不是cricket.jsp页面中的实际HTML .我知道这种情况正在发生,因为我正在使用Mock MVC.

但是,有没有办法可以测试实际的HTML?原因是我们使用了一些复杂的JSTL标记,我们在过去已经看到单元测试成功,但实际的JSP页面由于解析失败而返回500错误.

我尝试了以下代码:

   try {
            WebConversation conversation = new WebConversation();
            GetMethodWebRequest request = new GetMethodWebRequest(
                    "http://localhost:8080/cricket/123");
            WebResponse response …
Run Code Online (Sandbox Code Playgroud)

java junit spring unit-testing jstl

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

液体错误:参数数量错误

我正在尝试一个简单的 Jekyll 插件:

class MonthlyArchives < Liquid::Tag

    def initialize(tag_name, text, tokens)
      super
      @text = text
    end

    def render(context)
      "#{@text} #{Time.now}"
    end

end

Liquid::Template.register_tag('monthly_archives1', Jekyll::MonthlyArchives)
Run Code Online (Sandbox Code Playgroud)

当我尝试在页面中运行它时,如下所示:

{% monthly_archives1 %}
Run Code Online (Sandbox Code Playgroud)

我收到 Liquid 错误:参数数量错误(2 代表 0)。有任何想法吗 ?

ruby liquid jekyll

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

使用CodeDomProvider编译到内存时,程序集找不到引用的程序集

我正在尝试使用CodeDomProvider在运行时将一些代码编译到内存中.

我正在编译的代码引用了一个外部程序集,我在编译代码时使用的参数中包含了该代码.

当我编译到内存并尝试对Visual Studio加载项中生成的程序集使用反射时,它会抛出一个异常,说它无法找到引用的程序集.

(例外)
"无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息."

(LoaderException)
"{"无法加载文件或程序集'Dynamo.Jiss.Task,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.系统找不到指定的文件.":"Dynamo.Jiss.Task,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"}"

我尝试使用绝对路径从不同的地方引用程序集.

如果从控制台应用程序运行,完全相同的代码工作正常,如果我不编译到内存,它也可以在加载项中正常工作.
删除对外部程序集的引用以及引用它的代码在编译到内存时也有效,因此异常描述可能是加载引用程序集时出现的问题.

有没有人知道为什么编译内存和引用程序集不能在加载项中工作?

它正在运行的AppDomain中是否存在某些限制或我应该注意哪些内容?(我目前最好的猜测)

它应该在特定文件夹中吗?使用相对路径引用?安全设定?需要签名吗?有任何想法吗?


我想要实现的是一种方法,将具有特定扩展名的文件放在项目中,让addin自动编译它,如果它实现了ITask接口(来自外部程序集),它将调用一个Setup()方法来实现它代码可以在侦听不同事件时挂钩到Visual Studio事件并执行任务/脚本.这样,如果更改了另一个文件,我可以轻松执行文本模板,或者在不同事件(文档保存,构建等)上组合和缩小文件.

这样的事情是否已经存在(为了减轻我的痛苦)?:)

.net add-in codedom compilation .net-assembly

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

作业 - 无法利用缓冲区溢出

我试图学习在Backtrack Linux上利用简单的缓冲区流技术.

这是我的C程序

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
    char buffer[500];
    if(argc==2)
    {

    strcpy(buffer, argv[1]);  //vulnerable function

    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的shellcode,它对应于简单的/bin/ls \ x31\xc0\x83\xec\x01\x88\x04\x24\x68\x6e\x2f\x6c\x73\x66\x68\x62\x69\x83\xec\X01\XC6\X04\X24\X2F\X89\XE6\X50\X56\XB0\X0B\X89\XF3\X89\XE1\X31\XD2\XCD\X80\XB0\X01\X31\XDB\XCD\X80

我使用以下命令在gdb中注入此shellcode

run $(python -c 'print "\x90" * 331 + "\x31\xc0\x83\xec\x01\x88\x04\x24\x68\x6e\x2f\x6c\x73\x66\x68\x62\x69\x83\xec\x01\xc6\x04\x24\x2f\x89\xe6\x50\x56\xb0\x0b\x89\xf3\x89\xe1\x31\xd2\xcd\x80\xb0\x01\x31\xdb\xcd\x80" + "\x0c\xd3\xff\xff"*35')
Run Code Online (Sandbox Code Playgroud)

当我逐步完成应用程序时,它会SIG FAULT在最终ret指令上生成.此时EIP正确设置为0xffffd30c.这个地址是可寻址的,包含一系列的NOP,后跟我的shell代码,如有效负载中所示.

我已经禁用了ASLR sudo echo 0 > /proc/sys/kernel/randomize_va_space

并使用fno-stack-protector选项编译我的二进制文件.

知道SIGSEGV的原因是什么?

c buffer-overflow shellcode

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

不会生成数组 List&lt;ComplexType&gt; 而是 List&lt;Object&gt;

我有一个复杂的模式,我正在为其生成 POJO。但是,我注意到,尽管 type 内部的项目被标记为 type ,但不会生成复杂array类型object。我用非常简单的模式做了一个快速测试

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "javaType": "com.walmart.services.tesseract.service.request.models.inkiru.PaymentHead",
  "properties": {
    "payments": {
      "type": "array",
      "items": [
        {
          "type": "object",
          "properties": {
            "paymentHandle": {
              "type": "string"
            },
            "txndate ": {
              "type": "string"
            },
            "ordernumber": {
              "type": "string"
            },
            "stgOrderNumber": {
              "type": "string"
            }
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这会生成以下 POJO

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "payments"
})
public class PaymentHead {

    @JsonProperty("payments")
    private List<Object> payments = new ArrayList<Object>();

    @JsonProperty("payments")
    public List<Object> getPayments() {
        return …
Run Code Online (Sandbox Code Playgroud)

java jsonschema jsonschema2pojo

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