小编Mik*_*one的帖子

如何在Mac OS X上发现*logical*核心的数量?

从命令行中,您如何判断运行Mac OS X时机器上有多少个核心?在Linux上,我使用:

x=$(awk '/^processor/ {++n} END {print n+1}' /proc/cpuinfo)
Run Code Online (Sandbox Code Playgroud)

它并不完美,但它很接近.这是为了获取make,这就是为什么它给出比实际数字高1的结果.我知道上面的代码可以用Perl编写,也可以用grep,wc和cut编写,但我认为上面的内容在简洁性和可读性之间是一个很好的权衡.

非常晚编辑:只是为了澄清:我问有多少逻辑核可用,因为这与我想要make产生多少个同时工作相对应.jkp的答案,由Chris Lloyd进一步完善,正是我所需要的.因人而异.

macos makefile

368
推荐指数
11
解决办法
19万
查看次数

Django - 如何指定验证失败的字段?

我有这个模型,我在管理页面中显示:

class Dog(models.Model):
    bark_volume = models.DecimalField(...
    unladen_speed = models.DecimalField(...

    def clean(self):
        if self.bark_volume < 5:
            raise ValidationError("must be louder!")
Run Code Online (Sandbox Code Playgroud)

如您所见,我对模型进行了验证.但我想要发生的是管理页面显示bark_volume字段旁边的错误,而不是像现在这样的一般错误.有没有办法指定验证失败的哪个字段?

非常感谢提前.

django django-models django-admin

51
推荐指数
6
解决办法
2万
查看次数

处理JSON中的500个错误(jQuery)

这个JSON请求:

$.ajax({
    url:jSONurl+'?orderID='+thisOrderID+'&variationID='+thisVariationID+'&quantity='+thisQuantity+'&callback=?',
    async: false,
    type: 'POST',
    dataType: 'json',
    success: function(data) {
        if (data.response == 'success'){
            //show the tick. allow the booking to go through
            $('#loadingSML'+thisVariationID).hide();
            $('#tick'+thisVariationID).show();
        }else{
            //show the cross. Do not allow the booking to be made
            $('#loadingSML'+thisVariationID).hide();
            $('#cross'+thisVariationID).hide();
            $('#unableToReserveError').slideDown();
            //disable the form
            $('#OrderForm_OrderForm input').attr('disabled','disabled');
        }
    },
    error: function(data){
        alert('error');
    }
})
Run Code Online (Sandbox Code Playgroud)

在某些情况下,将以以下形式带回500错误:

jQuery17205593111887289146_1338951277057({"message":"Availability exhausted","status":500});
Run Code Online (Sandbox Code Playgroud)

然而,这对我来说仍然有用,我需要能够正确处理这个问题.

但由于某种原因,当返回此500错误时,我的错误函数未被调用,我只是在firebug中出现"NetworkError:500 Internal Server Error"错误.

我怎么处理这个?

ajax jquery json

21
推荐指数
4
解决办法
3万
查看次数

如何使用任意参数作为模板参数的指针?

这是我在过去几天一直在研究的语义优化问题,我被困住了.我的真实程序运行在RTOS(特别是FreeRTOS)上,我需要生成任务(这是简单的,非终止版本的线程).C API接受void (*)(void*)任务的入口点和void*参数.非常标准的票价.

我为一个任务编写了一个包装类,而不是做一个老式的实现,比如有一个必须被最终任务类覆盖的虚方法,我宁愿让C++生成必要的参数存储通过可变参数模板和函数实现对象和粘合功能.

我已经用lambdas做了这个,std::function并且std::bind已经,但它们似乎实现了一些膨胀,即通过不解析函数目标直到运行时.基本上与虚拟方法相同的机制将使用.如果可能的话,我正试图减少所有开销.与硬编码实现相比,每个实例的膨胀大约为200字节.(这是在ARM Cortex-M3上,总闪存为128K,我们只剩下大约500个字节.)我在该主题上发现的所有SO问题同样推迟了函数的解析直到运行时.

这个想法是为了代码:

  1. 将可变参数的衰减版本存储在堆上分配的对象中(这是一种简化;可以使用分配器),并将其作为void*参数传递,
  2. 将生成的调用岛函数作为入口点,使用签名void(void*),使用存储的参数调用目标函数,以及
  3. (这是我无法弄清楚的部分)让编译器从目标函数的签名中推导出参数列表的类型,遵循不要重复自己的原则.
  4. 请注意,函数指针及其参数类型在编译时是已知的并且已解析,并且传递给函数的实际参数值在运行时才会知道(因为它们包括对象指针和运行时配置选项等).

在下面的例子中,我必须实例化的任务,一个Task<void (*)(int), bar, int> task_bar(100);我宁愿写Task<bar> task_bar(100);Task task_bar<bar>(100);并有编译器弄清楚(或者以某种方式告诉它在库)的可变参数必须符合指定函数的参数列表.

"明显的"答案是某种模板签名,template<typename... Args, void (*Function)(Args...)>但不用说,这不会编译.这种情况也不Function是第一个论点.

我不确定这是否可能,所以我在这里要求看看你们想出的是什么.为了简化问题,我省略了以对象方法而不是静态函数为目标的变体代码.

以下是具有代表性的测试用例.我用gcc 4.7.3和-std=gnu++11旗帜构建它.

#include <utility>
#include <iostream>
using namespace std;

void foo() { cout << "foo()\n"; }
void bar(int val) { cout << "bar(" << …
Run Code Online (Sandbox Code Playgroud)

c++ callback variadic-functions variadic-templates c++11

11
推荐指数
1
解决办法
1948
查看次数

线程中的C或C++ HTTP守护进程?

我正在使用FreeRTOS开始新的嵌入式系统设计.我的最后一个使用了eCos,它有一个非常轻量级的内置HTTP服务器,特别是因为我没有文件系统.简而言之,它的工作方式是每个页面都是类似CGI的C函数,在HTTP守护程序需要时调用它.具体来说,您可以编写以下形式的函数:

int MyWebPage(FILE* resp, const char* page, const char* params, void* uData);
Run Code Online (Sandbox Code Playgroud)

pageurl的页面部分在哪里,params是任何表单参数(只支持GET,而不是POST,这会阻止文件上传,从而使闪存变得很麻烦),uData是一个在你注册函数时设置的令牌,因此,您可以使用相同的函数为多个URL或具有不同数据的范围提供服务,并且resp是您将HTTP响应(标题和所有)写入的文件句柄.

然后你注册了这个函数:

CYG_HTTPD_TABLE_ENTRY(www_myPage, "/", MyWebPage, 0);
Run Code Online (Sandbox Code Playgroud)

其中CYG_HTTPD_TABLE_ENTRY是第一个参数是变量名的宏,第二个是页面URL(*允许使用通配符;因此page传递给它MyWebPage()),第三个是函数指针,最后一个是uData值.

这是一个简单的例子:

int HelloWorldPage(FILE* resp, const char*, const char* params, void*)
{
    fprintf("Content-Type: text/html;\n\n");
    fprintf("<html><head><title>Hello World!</title></head>\n");
    fprintf("<body>\n");
    fprintf("<h1>Hello, World!</h1>\n");
    fprintf("<p>You passed in: %s</p>\n", params);
    fprintf("</body></html>\n");
}
CYG_HTTPD_TABLE_ENTRY(www_hello, "/", HelloWorldPage, 0);
Run Code Online (Sandbox Code Playgroud)

(实际上,params将通过一个函数来传递HTML魔术字符,并且我会使用另外几个函数来分割参数并从中<ul>删除它,但为了清晰起见,我将其留下了.)

服务器本身只是作为一个任务(即线程)运行,只要它的优先级低于关键任务,就不会妨碍它.

毋庸置疑,这对于测试和调试来说非常宝贵.(嵌入式工作的一个问题是你通常不能将XTerm作为日志使用.)因此,当Supreme Programmer反复指责我没有工作的东西(我认为阻力最小的路径)时,我可以把网页并显示他向我发送了错误的参数.在集成中节省了大量的调试时间.

无论如何...我想知道,有这样的东西作为一个独立的图书馆吗? 我可以链接的东西,注册我的回调,产生一个线程,并让它做魔术?或者我需要自己动手?我更喜欢C++,但也可以使用C库.

编辑:由于我正在给它一个赏金,我需要澄清该库需要在开源许可下.

c++ http

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

嵌入式领域是否有专业

我开始学习嵌入式及其两种主要语言(c和c ++).但我开始意识到,尽管学习要求很简单,但嵌入式本身就是一个整体世界.一旦你处理了真实的项目,你就会开始意识到你需要学习更多关于你正在使用的设备中使用的硬件的"东西".这个问题很少涉及我目前正在处理的纯软件项目.

是否可以将此字段分段为子字段?我认为那些在该领域有经验的人可能已经注意到某些类型的项目与其他类型不同,这导致他们可能想出他们自己的类别.例如,当你遇到一个项目时,你可能会认为它是"在你的领域之外"?那会发生在你身上吗?如果是这样,您会将您的子字段或您遇到的其他子字段称为什么?

c c++ embedded

6
推荐指数
2
解决办法
810
查看次数

获取RAM系统大小

我想知道如何通过C++获取RAM的大小(在Windows 7上).

c++ windows ram windows-7

6
推荐指数
4
解决办法
2万
查看次数

开源客户端基于JavaScript的2D数据绘图?

我想知道是否有任何2D图形绘制库使用JavaScript在客户端运行?基本的想法是你可以在浏览器中绘制一个图表,用户可以更改X和Y标度和限制,放大和缩小等内容,而无需不断地从服务器重新加载网页.数据本身将通过AJAX获取,wget如果用户想要使用重型工具,这将允许用户直接从服务器获取数据.类似于matplotlibPython 的2D部分.

这是我很久以前看过的,然后才决定开发一些只在服务器端生成SVG的代码(使用内置的eCos Web服务器)更快,但现在我一直在阅读关于像Prototype和jQuery这样的东西,我想知道是否已经有人已经完成了这项工作.

javascript ajax plot

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

snprintf的逆

C或C++中是否有任何函数可以执行snprintf的反转,这样就可以了

 char buffer[256]
 snprintf( buffer, 256, "Number:%i", 10);

 // Buffer now contains "Number:10"

 int i;
 inverse_snprintf(buffer,"Number:%i", &i);

 // i now contains 10
Run Code Online (Sandbox Code Playgroud)

我自己可以编写一个满足这个要求的函数,但标准库中是否已有一个?

c c++

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

如何在C++中为缓冲区分配更多内存?

我有指针str:

char* str = new char[10];
Run Code Online (Sandbox Code Playgroud)

我使用内存块str指向来存储数据.

如何为指向的缓冲区分配更多字节,str而不是丢失存储在缓冲区中的旧数据?

c++ memory memory-management

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