所以,我正在搞乱OSX上的一些插入代码(gcc 4.2.1),我试图让以下内容工作:
当我使用DYLD_INSERT_LIBRARIES = my.dylib调用./login时,它应该覆盖默认的登录实现并使用我的自定义实现.虽然这是一个人为的例子,但它只是为了帮助我理解这一点.
我的来源:
cat libinterposers.c
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include "login.h"
typedef struct interpose_s
{
void *new_func;
void *orig_func;
} interpose_t;
int my_open(const char *, int, mode_t);
int my_close(int);
int my_login();
static const interpose_t interposers[] __attribute__ ((section("__DATA, __interpose"))) =
{
{ (void *)my_open, (void *)open },
{ (void *)my_close, (void *)close },
{ (void *)my_login, (void *)login },
};
int my_login()
{
printf("--> my_login()\n");
return 1;
}
int my_open(const char *path, int flags, mode_t mode) …Run Code Online (Sandbox Code Playgroud) 我只想获得视图左上角的x,y坐标,我该怎么做?谢谢!
SELECT DISTINCT users.id as expert_id, users.firstname, users.lastname
, projects.id as project_id, projects.project_title
, projects.project_budget, projects.created as project_created
FROM USERS
RIGHT JOIN expert_skills ON expert_skills.expert_id = users.id
JOIN project_skills ON project_skills.skill_id = expert_skills.skill_id
JOIN projects ON projects.id = project_skills.project_id
WHERE projects.status = 1
Run Code Online (Sandbox Code Playgroud)
此查询为我提供了与用户相关的不同项目,但我想限制每位专家的项目数.例如,我想要与专家相关的项目,但项目数量最多可达10个.我的查询需要一个限制工具.我怎么能这样做?谢谢
这是一个有点主观的问题,但我想听听这样做的优点/缺点.我管理一个名为Quick and Dirty Feed Parser的开源项目,该项目的目标是尽可能无缝地使用.NET中的RSS和Atom提要.
我在项目开发中很早就遇到的一个问题是我使用的一些提要作为测试用例(即黑客新闻RSS提要)使用了格式不正确的HTTP标头,以及.NET 1.1中的HttpWebRequest类并且只要您在GET请求中收到其中一个标头,就会立即抛出"不安全的标头"异常.
添加此更改是为了阻止在.NET 1.1发布时引发安全问题的分裂响应攻击.
因此我的问题是 - 我可以以编程方式启用"useUnsafeHeader"配置选项,但它在该应用程序的上下文中的所有HttpWebRequests中执行.我有用户抱怨QD Feed Parser无法使用有效的Feed,这个标头问题就是原因.
现在,我的库设置方式使得使用它的开发人员必须自己启用不安全的头解析,尽管他们中的大多数都不知道这是问题而且它为我创建了支持开销.
我可以简单地让Quick and Dirty Feed Parser默认启用不安全的头解析,并强制安全性的用户禁用它,但我不想打开对安全攻击不了解的用户.这里最好的选择是什么?
虽然C++ 0x对C++(类型推断,匿名函数等)有很大的改进,但我不得不说Scala看起来更好.问题是Scala只在JVM上运行,虽然看起来它也可以运行在C#之上.
理想情况下,我想要一种像Scala一样好的语言,但运行"在C++之上 - 使用标准库,轻松链接C/C++目标文件,整个交易.我做了很多基于完善的C/C++库(快速可靠)的数值编程,这不是我可以放弃的东西.
是否有人知道这种语言?
更新:
我正在寻找的功能是:
与C/C++库无缝集成,就像Scala可以访问Java库而无需生成/维护绑定
一个强大的类型系统,具有良好设计的类型推理系统,使我不必编写冗长和冗余类型的注释
功能和OO功能内置于语言中,支持自己的库,而不仅仅依赖于标准的C/C++库.
看起来现在正在进行的很多clang/LLVM工作可能会促进这些方面的工作,但是很高兴发现这样的东西已经在进行中.
我正在为纯功能程序开发虚拟机,我希望能够测试和使用已有的各种Haskell模块.VM在无类型lambda演算中基本上作为输入.我想知道从现代Haskell模块中提取这样一个表示的好方法(例如,使用MPTC,模式保护等).我做了一点研究,似乎没有一个工具可以做到这一点(我会很高兴被误解),这没关系.我正在寻找一种方法.
GHC Core似乎过于注重操作,特别是因为VM所做的一件事就是显着改变评估顺序.是否有任何可访问的中间表示更接近于lambda演算?
这是一个非常简单的想法,在这个pastebin我发布了一些数字.这些代表有向图的节点.输入stdin将是形式,(他们将是数字,我将在这里使用一个例子)
c d
q r
a b
b c
d e
p q
Run Code Online (Sandbox Code Playgroud)
所以x y手段x连接到y(不是反之亦然)
该示例中有2条路径.a->b->c->d->e和p->q->r.
您需要打印该图表中的所有唯一路径.输出应为格式
a->b->c->d->e
p->q->r
Run Code Online (Sandbox Code Playgroud)
笔记
如果您需要更多详细信息,请发表评论.我会按要求修改.
无耻插头
对于那些喜欢Codegolf的人,请在Area51上为自己的网站提交:)(对于那些不喜欢它的人,也请支持它,所以我们会让你不受欢迎...)
有人可以解释覆盖默认属性,甚至在我的插件示例中使用jQuery扩展它们以及闭包函数
$.fn.myObject = function(overwriteProperties) {
var properties = {myproperty1: "defaultvalue"}
// overwrite properties here
function doStuffHere() {
}
return (function() {
return this; // does this part here refer to the object of myDiv
});
}
$('#myDiv').myObject({myPoperty1:"newValue"});
Run Code Online (Sandbox Code Playgroud) 我想弄清楚使用队列的最佳方法是什么.我有一个返回DataTable的进程.反过来,每个DataTable都与之前的DataTable合并.有一个问题,在最终的BulkCopy(OutOfMemory)之前要保留的记录太多.
所以,我已经确定我应该立即处理每个传入的DataTable.考虑一下ConcurrentQueue<T>......但我不知道该WriteQueuedData()方法如何知道将一个表出列并将其写入数据库.
例如:
public class TableTransporter
{
private ConcurrentQueue<DataTable> tableQueue = new ConcurrentQueue<DataTable>();
public TableTransporter()
{
tableQueue.OnItemQueued += new EventHandler(WriteQueuedData); // no events available
}
public void ExtractData()
{
DataTable table;
// perform data extraction
tableQueue.Enqueue(table);
}
private void WriteQueuedData(object sender, EventArgs e)
{
BulkCopy(e.Table);
}
}
Run Code Online (Sandbox Code Playgroud)
我的第一个问题是,除了我实际上没有订阅任何事件的事实,如果我ExtractData()异步调用这将是我需要的全部内容吗?第二,我是否缺少关于ConcurrentQueue<T>函数的方式以及需要某种形式的触发器与排队对象异步工作的东西?
更新
我刚刚派生出一个ConcurrentQueue<T>具有OnItemQueued事件处理程序的类.然后:
new public void Enqueue (DataTable Table)
{
base.Enqueue(Table);
OnTableQueued(new TableQueuedEventArgs(Table));
}
public void OnTableQueued(TableQueuedEventArgs table)
{
EventHandler<TableQueuedEventArgs> handler = TableQueued; …Run Code Online (Sandbox Code Playgroud) c ×2
java ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
c# ×1
c++ ×1
cocoa-touch ×1
code-golf ×1
graph ×1
haskell ×1
interposing ×1
iphone ×1
javascript ×1
jquery ×1
macos ×1
mysql ×1
objective-c ×1
queue ×1
scala ×1
security ×1
sql ×1
vector ×1
wcf ×1