我团队中的每个开发人员都有自己的本地配置.该配置信息存储在一个文件中,该文件devtargets.rb在我们的rake构建任务中使用.不过,我不希望开发人员破坏对方的devtargets文件.
我的第一个想法是将该文件放在.gitignore列表中,以便它不会被提交给git.
然后我开始想知道:是否可以提交文件,但忽略对文件的更改?所以,我会提交一个默认版本的文件,然后当开发人员在本地机器上更改它时,git会忽略这些更改,当你执行git status或git commit时它不会显示在已更改文件列表中.
那可能吗?这肯定是一个很好的功能......
我有一个已配置并正常工作的现有Hudson项目.
我需要复制项目,以便我可以拥有原始项目然后更改新项目,以便它指向不同的源代码控制.
我不想手动重新创建构建.如何"复制和粘贴"或以其他方式复制现有的构建配置,以便我可以更快地获得新的构建配置并运行?
是否可以让socket.io客户端响应所有事件而不必单独指定每个事件?
例如,像这样的东西(显然现在不起作用):
var socket = io.connect("http://myserver");
socket.on("*", function(){
// listen to any and all events that are emitted from the
// socket.io back-end server, and handle them here.
// is this possible? how can i do this?
});
Run Code Online (Sandbox Code Playgroud)
我希望在客户端socket.io代码接收到任何/所有事件时调用此回调函数.
这可能吗?怎么样?
我正在阅读backbone.js文档,并看到很多代码将属性分配给window对象:
window.something = "whatever";
Run Code Online (Sandbox Code Playgroud)
调用此代码与分配变量和创建全局变量之间的区别是什么,如下所示:
something = "whatever";
Run Code Online (Sandbox Code Playgroud)
我假设有某种范围不同,和/或对象所有权差异(窗口是所有者与否)但我对两者之间的细节感兴趣,为什么我会使用窗口vs不使用它.
我试图了解backbone.js的一部分是如何工作的.应用程序开始后,我必须获取一组模型.我需要等到fetch完成才能呈现每个视图.我不是百分百肯定在这个例子中采取的最佳方法.
var AppRouter = Backbone.Router.extend({
routes: {
"": "home",
"customer/:id": "customer"
},
home: function () {
console.log("Home");
},
customer: function (id) {
if (this.custromers == null)
this.init();
var customer = this.customers.at(2); //This is undefined until fetch is complete. Log always says undefined.
console.log(customer);
},
init: function () {
console.log("init");
this.customers = new CustomerCollection();
this.customers.fetch({
success: function () {
console.log("success");
// I need to be able to render view on success.
}
});
console.log(this.customers);
}
});
Run Code Online (Sandbox Code Playgroud) 我一直在阅读所有与UTF-8相关的问题和博客文章,我在test.rb文件中有以下示例:
# encoding: UTF-8
File.open("test.txt", "w") do |f|
f.write "test © foo"
end
File.open("test.txt", "r") do |f|
puts f.read
end
Run Code Online (Sandbox Code Playgroud)
这很完美.在文件中正确生成©符号,它将©读回我并将其打印在屏幕上.
但是当我在实际项目中使用相同的代码时,我将其写入文件而不是©符号: \u00A9
FWIW:我在对我的代码运行rspec(v1.2.9)测试时得到了这个结果.规范生成一个带有©符号的文件,然后重新读取文件以检查内容.
我目前正在Ruby 1.9.2中运行它,但我还需要支持一直回到Ruby 1.8.6.这是一个使用RubyInstaller.org版本的Ruby的Windows环境.
UPDATE Jade v0.24.0使用!=属性语法修复此问题.option(value!='<%= id %>')
我正在尝试<option>使用jade 构建一个,其中选项的值是UnderscoreJS模板标记:<%= id %>但我无法让它工作,因为jade将我的标记文本转换为<= id >.
这是我的Jade标记:
script(id="my-template", type="text/template")
select(id="type")
<% _.each(deviceTypes, function(type){ %>
option(value='<%= type.id %>') <%= type.name %>
<% }) %>
Run Code Online (Sandbox Code Playgroud)
我希望它能产生这个html:
<script id="my-template" type="text/template">
<select id='type'>
<% _.each(deviceTypes, function(type){ %>
<option value="<%= type.id %>"> <%= type.name %> </option>
<% }) %>
</select>
</script>
Run Code Online (Sandbox Code Playgroud)
但我得到的是这样的:
<script id="my-template" type="text/template">
<select id='type'>
<% _.each(deviceTypes, function(type){ %>
<option value="<%= type.id %>"> <%= type.name %> </option>
<% }) …Run Code Online (Sandbox Code Playgroud) 我正在寻找一些关于如何在客户端JavaScript中处理基本安全需求(例如授权)的良好资源,模式和实践.
我正在建立一个网站,其后端系统运行一个常见的MVC框架.后端将处理所有真正的安全需求:授权和身份验证.前端将使用Backbone.js,jQuery和一些其他库构建,以提供非常丰富的用户体验.
这是我需要处理的一个场景的示例:
我有一个数据网格,顶部有几个按钮.如果选择网格中的某个项目,则会启用某些按钮,以便您可以对所选项目执行该操作.这个功能很容易构建......
现在我需要考虑授权.后端服务器将仅呈现允许用户使用的按钮.此外,后端服务器将在用户尝试执行该操作时检查授权....所以如果未经授权,后端将被覆盖,用户将无法执行他们尝试的操作.
但是JavaScript怎么样?如果我的代码设置了一堆jQuery点击处理程序或启用和禁用按钮的其他事件,我该如何处理不存在的按钮?我只是写了一堆丑陋的if语句来检查按钮的存在吗?或者我是否以一种允许我只根据授权将存在的按钮的JavaScript发送到浏览器的方式来编写JavaScript?要么 ???
现在想象一下树视图可能允许也可能不允许基于授权的拖放功能......以及基于授权可能存在或不存在的添加/编辑表单......以及所有其他复杂的授权需求,很多JavaScript来运行前端的那些部分.
我正在寻找资源,模式和实践来处理这些类型的场景,其中后端处理真正的授权,但前端还需要考虑基于授权的不存在的事情.
javascript security authorization design-patterns backbone.js
我正在尝试构建一个允许用户从NodeJS驱动的网站直接将文件上传到我的Amazon S3存储桶的内置版本.它似乎是唯一的教程,除了实际的亚马逊文档之外都是非常过时的.
我一直在关注本教程,了解基本信息,但同样它已经过时了.它没有方法调用来crypto纠正,因为它试图将原始JavaScript对象传递给update方法,因为它不是字符串或缓冲区而抛出错误.
我也一直在寻找knox npm包的来源.它没有内置的POST支持 - 我完全理解,因为它是浏览器在拥有正确的字段后进行POST.诺克斯似乎有正确的代码签署一个政策,我试图让我的代码基于此工作......但再次无济于事.
以下是我提出的代码.它产生一个base64编码的策略,并创建一个签名......但是当我尝试进行文件上传时,根据亚马逊的说法,它是错误的签名.
var crypto = require("crypto");
var config = require("../../amazonConfig.json");
exports.createS3Policy = function(callback) {
var date = new Date();
var s3Policy = {
"expiration": "2014-12-01T12:00:00.000Z",
"conditions": [
{"acl": "public-read"},
["content-length-range", 0, 2147483648],
{"bucket": "signalleaf"},
["starts-with", "$Cache-Control", ""],
["starts-with", "$Content-Type", ""],
["starts-with", "$Content-Disposition", ""],
["starts-with", "$Content-Encoding", ""],
["starts-with", "$Expires", ""],
["starts-with", "$key", "/myfolder/"],
{"success_action_redirect": "http://example.com/uploadsuccess"},
]
};
var stringPolicy = JSON.stringify(s3Policy).toString("utf-8");
var buffer = Buffer(stringPolicy, …Run Code Online (Sandbox Code Playgroud) javascript cryptography amazon-s3 amazon-web-services node.js
最近我潜入了整个客户端MVC/MVVM设计模式,我特别感兴趣的是backbone.js.
我不完全理解的一件事是当模型不再需要它们时会发生什么.
假设我们有一个拥有用户和产品的应用.我们有用户模型/视图和产品模型/视图
注意:为简单起见,我们不是用户.我们可以只是CRUD用户/产品.
当我进入产品页面时,我假设我们加载模型和对应的视图.
当我们离开页面并进入用户页面时会发生什么.加载了用户模型/视图,但仍然加载了产品.
我们是否保持它们的负载,骨干是否为您处理,或者您是否明确需要结束某些对象.
javascript garbage-collection memory-leaks memory-management backbone.js
javascript ×6
backbone.js ×3
amazon-s3 ×1
asynchronous ×1
attributes ×1
copy-paste ×1
cryptography ×1
events ×1
git ×1
gitignore ×1
html-encode ×1
hudson ×1
jenkins ×1
memory-leaks ×1
node.js ×1
project ×1
pug ×1
ruby ×1
scope ×1
security ×1
socket.io ×1
templates ×1
utf-8 ×1