我的资产中有大量图像.我想要做的是在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例子.
我们正在使用芹菜来进行第三方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吗?虽然我对它的含义知之甚少.
我有一个相当模糊的问题,经过几天的调试后我无法弄清楚.问题是我们的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) 我的应用程序包含对外部库(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:有更好的选择吗?
特别是,我担心函数内联等优化可能会阻止我的代码工作.
我想让我的用户能够通过使用简单的设置屏幕连接/断开连接到Facebook PreferenceScreen
如何在此集成此自定义Button类PreferenceScreen.
https://developers.facebook.com/docs/reference/android/current/LoginButton/
登录按钮大大简化了会话管理,否则需要手动完成,如果我提供简单Preference和使用onClickListener
我们有一个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) 我正在尝试一个简单的 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)。有任何想法吗 ?
我正在尝试使用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事件并执行任务/脚本.这样,如果更改了另一个文件,我可以轻松执行文本模板,或者在不同事件(文档保存,构建等)上组合和缩小文件.
这样的事情是否已经存在(为了减轻我的痛苦)?:)
我试图学习在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的原因是什么?
我有一个复杂的模式,我正在为其生成 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)