小编Ber*_*rdo的帖子

Redis IOException:"使用ServiceStack C#客户端强制关闭远程主机的现有连接"

我们有以下设置:

Redis的在Ubuntu Linux 12.04LTE 2.6以下设置一个RackspaceCloud 8GB的实例:

daemonize yes
pidfile /var/run/redis_6379.pid

port 6379

timeout 300

loglevel notice
logfile /var/log/redis_6379.log

databases 16

save 900 1
save 300 10
save 60 10000

rdbcompression yes
dbfilename dump.rdb
dir /var/redis/6379

requirepass PASSWORD

maxclients 10000

maxmemory 7gb
maxmemory-policy allkeys-lru
maxmemory-samples 3

appendonly no

slowlog-log-slower-than 10000
slowlog-max-len 128

activerehashing yes
Run Code Online (Sandbox Code Playgroud)

我们的App服务器托管在RackSpace托管中并通过公共IP连接到Redis(以避免必须设置RackSpace Connect,这是一个皇家PITA),我们通过要求Redis连接的密码来提供一些安全性.我手动将unix文件描述符限制增加到10240,最多10k连接应该提供足够的空间.从上面的设置文件中可以看出,我将内存使用量限制为7GB,以便留下一些RAM空间.

我们使用ServiceStack C#Redis驱动程序.我们使用以下web.config设置:

<RedisConfig suffix="">
  <Primary password="PASSWORD" host="HOST" port="6379"  maxReadPoolSize="50" maxWritePoolSize="50"/>
</RedisConfig>  
Run Code Online (Sandbox Code Playgroud)

我们有一个PooledRedisClientManager单例,每个AppPool创建一次,如下所示:

private static PooledRedisClientManager _clientManager;
public static PooledRedisClientManager ClientManager
{
    get
    {
        if (_clientManager …
Run Code Online (Sandbox Code Playgroud)

.net c# iis redis servicestack

18
推荐指数
1
解决办法
7010
查看次数

RequireJS/AMD模块中的JavaScript代码覆盖率

简短而看似愚蠢的问题,因为这么简单,你会想到无处不在:有没有人在RequireJS前端项目(非NodeJS)中使用任何类型的代码覆盖?

这似乎是一个愚蠢的问题,因为JS世界中TDD方法的普及以及AMD开发的接管.

我已经尝试了一百万种方法,但都缺乏.我的项目是一个带有Jasmine单元测试的Backbone项目:

1)带有Coverage插件的JSTD.JSTD无法正确加载和检测AMD模块.如果我在单个js文件上运行JSTD(由RequireJS优化器组合),那么代码覆盖率可以很好地工作,除了收集覆盖范围并在ENTIRE文件上定义度量标准.太棒了,这没用,因为它包括第三方库,因为我无法针对单个单元来帮助测试开发.哎呀.

2)JSCoverage - 总失败,不喜欢AMD模块.

3)特定于Chrome和Firebug的"现场"指导员 - 失败,不喜欢AMD模块.

我尝试的每一种方法似乎都需要大量的定制工作.那么也许我需要从头开始自定义解决方案?

如何使用以下方法:将RequireJS优化器扩展为仪器代码并创建覆盖范围.它将是内存中的检测,可以使用require.config({instrument:true})标志启用.每次需要加载模块时,它会自动对其进行检测并将其放置在模块库中.覆盖率统计信息收集在全局require对象下的对象中,并且可以从任何地方访问,例如,在Jasmine测试运行之后.

输入?

javascript unit-testing code-coverage requirejs js-amd

8
推荐指数
1
解决办法
3831
查看次数

Jasmine + JSTestDriver +覆盖范围+ RequireJS

哇,真是一团糟.这就是场景.

  • 骨干驱动的JS应用程序.
  • RequireJS for AMD功能,初始化如下:

    <script data-main="js/main" src="js/require.js" type="text/javascript"></script>
    
    Run Code Online (Sandbox Code Playgroud)

    然后在main.js里面输入以下配置代码:

    require.config(
    {
        paths:
        {
            ... : ...
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)

    每个Backbone View/Model/Router都是一个"define(...)"模块,并且"require("theOneRouter",...)"在main.js中被调用一次.

  • r.js用作Uglify/Closure的优化器.一个'编译'的main.js是在./release子文件夹中创建的,我在.net框架中动态选择.

  • 花了很长时间才能让Backbone + Require.JS工作,但现在效果很好!

  • 然后在上面拍打Jasmine也需要一些定制工作,但它工作得很好.我必须从我的SpecRunner.html加载require.js,使用require的define(...)调用将每个测试模块定义为AMD,并且通过调用require的require(...)调用一次实例化并运行Jasmine在SpecRunner.html中:

    require(
    [
    //"test/specs/testSpec1",
    "test/specs/views"
    ],
    function ()
    {
        jasmine.getEnv().updateInterval = 1000;
        var reporter = new jasmine.TrivialReporter();
        jasmine.getEnv().addReporter(reporter);
        ....
        ....
    });
    
    Run Code Online (Sandbox Code Playgroud)

    这也太棒了.测试加载和运行,没有问题.要求照顾一切.

现在,我希望像JSTestDriver这样的框架充当我的跑步者.我选择了JSTD,因为它简单,能够在远程浏览器上进行测试,支持代码覆盖,但仍然可以提供其他建议.

JSTestDriver本身工作正常,我唯一的问题是一起运行JSTD + Jasmine + ReuireJS组合.最大的问题是,如果我在配置文件中告诉JSTD关于Jasmine/Require测试模块以加载它,我会收到以下错误:

http://requirejs.org/docs/errors.html#mismatch

如果我使用r.js将我的所有代码优化为一个main.js,则该组合可以工作,包括Coverage,但覆盖范围是在一个巨大的文件上收集的,很难分析.更不用说设备50k行代码的js文件并通过JSTD运行它需要很长时间.

我试图创建一个加载我所有的茉莉花测试模块和代码模块的固定样js文件,但我的回头率上面的"不匹配"的错误,而且,如果我不告诉JSTD有关每个模块独立(通过加载一个html/js fixture执行实际加载)他们不会获得代码覆盖率的检测.

有没有人得到这个特定的组合工作?也许我要求太多了......

javascript js-test-driver requirejs backbone.js jasmine

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

WebGL:尽管使用相同的代码,但一切都很模糊

刚开始使用WebGL,尝试绘制一些基本线,甚至不是多边形.我找到了一些例子,在本地复制粘贴它们并用Firefox运行它们看起来很好:清晰明确的边缘.然后,我创建自己的项目,重构(坏!)samle代码,使用RequireJS加载等,样本仍然有效,但现在我的边/点/线都是BLURRY.就像一些不好的抗锯齿设置搞乱了一切.我尝试了所有的东西,起初我的代码看起来有些不同(虽然在功能上相同,恕我直言),然后我重构了更多,使它看起来几乎与样本相同,我仍然看到模糊的线条.

我究竟做错了什么?

示例代码:http://jsfiddle.net/6QCNR/ 示例代码的实时工作版:http: //dl.dropbox.com/u/17612367/OpenGL%20to%20WebGL/figure%202.16%20-%20dot%20plot /index.html

我的版本:http: //bernardofanti.azurewebsites.net/

我的重构代码:

main.js(通过index.html中的data-main属性加载):

define(
[
    "libs/domReady",
    "webglengine",
    "libs/text!../shaders/fragmentShader.glsl",
    "libs/text!../shaders/vertexShader.glsl"
],
function(domReady, GLEngine, fragmentShaderCode, vertexShaderCode)
{
    domReady(function()
    {
        GLEngine.init("graphCanvas");
        GLEngine.initShaders(fragmentShaderCode, vertexShaderCode);

        var geometry = (function()
        {
            var res = [];
            var a = document.getElementById("graphCanvas").width / 4.0;
            var b = document.getElementById("graphCanvas").height / 2.0;

            for (var x = 0; x < 4.0; x += 0.005)
            {
                var y = Math.exp(-x) * Math.cos(2 * Math.PI * x);
                res.push(x * a, …
Run Code Online (Sandbox Code Playgroud)

javascript webgl

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

木偶布局切换策略

我有以下情况:

app.js: Singleton Marionette.Application(),我定义了一个导航,一个页脚和一个主要区域.在初始化程序中,我构造了Marionette.Contoller并将它们附加到应用程序的this.controller对象以供以后控制.我可能不会在这里构建所有的控制器,只是那些我想要急切加载的控制器.有些人稍后会加入Lazy.我还在这里实例化一个Backbone.Router,并传入对我的app对象的引用:

var theApp = new TP.Application();

theApp.addRegions(
{
    navRegion: "#navigation",
    mainRegion: "#main",
    footerRegoin: "#footer"
});

theApp.addInitializer(function()
{
    // Set up controllers container and eagerly load all the required Controllers.
    this.controllers = {};

    this.controllers.navigationController = new NavigationController({ app: this });
    this.controllers.loginController = new LoginController({ app: this });
    this.controllers.calendarController = new CalendarController({ app: this });

    this.router = new Router({ app: this });
});
Run Code Online (Sandbox Code Playgroud)

**Controller.js:这是一个通用控制器,用于处理视图和模型的实例化和事件.每个Controller都拥有自己的Marionette.Layout,填入App.mainRegion.每个Controller绑定到布局的"show"事件,以使用自定义视图填充布局的区域.每个Controller都提供一个getLayout()接口,用于返回控制器的关联布局.

Marionette.Controller.extend(
{
    getLayout: function() { return this.layout; },
    initialize: function()
    {
        this.views.myView = …
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js marionette

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

依赖注入与托管依赖关系与全局对象的关系

我正在使用Javascript + BackboneJS(一个MVC框架)+ RequireJS框架,但这个问题有些OO泛型.

首先让我解释一下,在Backbone中,您的视图是传统视图和控制器的混合,您的HTML模板是传统的MVC视图

我对此已经讨厌了一段时间,我不确定正确/务实的方法应该是什么.

我有一个User对象,其中包含许多代码所依赖的用户首选项(如单元系统,语言选择,其他任何东西).

我的一些视图在不使用模板的情况下完成大部分工作(通过使用第三方库,例如Mapping和Graphing libs),因此它们依赖于User对象来处理单位转换.我目前正在使用RequireJS来管理这种依赖,而不会过多地破坏封装.

我的一些视图本身很少工作,只将模型数据传递给我的模板引擎/模板,它们完成工作并且DO依赖于User对象,对于单位转换等事情也是如此.将此依赖项传递到模板的唯一方法是将其注入模型,并将模型传递到模板引擎中.

我的问题是,如何最好地处理这种广泛需要的依赖? - 创建一个可在任何地方访问的应用范围的参考/全局对象?(YUK) - 使用RequireJS托管依赖项,即使它通常仅建议使用托管依赖项加载类/对象定义而不是具体对象. - 或者,只使用依赖注入,并手动将该依赖项传递到需要它的所有内容中?

javascript oop model-view-controller requirejs backbone.js

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