在我用mercurial进行的每次提交后,我可以在哪里放置代码?具体来说,我想在项目根目录中的.hg文件夹中维护一个名为latest的文件 - 该文件将保存最新提交的修订号和哈希码.在同一个主题上,我怎样才能获得python中的那些?
# get mercurial version hash
ver = ?
# get mercurial revision number
rev = ?
# is there a shortcut to this folder through mercurial?
f = open('/path/to/.hg/latest', 'w')
f.write('ver=%s\nrev=%d' % ( str(ver), int(rev) ) )
f.close
Run Code Online (Sandbox Code Playgroud)
编辑:我能够用钩子(在.hg/hgrc中)完成上述操作:
[hooks]
precommit= echo node=`hg tip --template {node}` > tip && echo rev=`hg tip --template {rev}` >> tip && hg add tip
Run Code Online (Sandbox Code Playgroud)
带有提示信息的文件已成功创建,但我还想将其添加到当前提交中hg add tip,这是mercurial进程卡在等待挂起提交显然持有的锁的位置.有没有办法解决它,以便在/ pre commit期间创建的文件被添加到它?谢谢.
所以我试图选择C++,为此我决定使用模板编写一个通用的Group类,它将Type和size作为模板参数:
在group.h中:
#ifndef __GROUP_H
#define __GROUP_H
#define MAX_SIZE 10
/**********************************************************
* Define a Group class that handles a collection of members
* of some Type
**********************************************************/
template <class Type, int max>
class Group {
private:
std::string name;
int count, size;
Type * members[max];
public:
Group();
Group(const std::string & _name);
~Group();
// display instance info
virtual void show();
// add member
void add_member(Type &);
// list memebers
void list();
// name setter/getter
void set_name(const std::string &);
const std::string & get_name();
}; …Run Code Online (Sandbox Code Playgroud) 我开始使用非常棒的FabricJS框架,并注意到对象定位与CSS约定有点不同.CSS将定位枢轴放置在左上角的位置,FabricJS将其放置在对象的中心:
@------------
| |
| |
| |
| |
| |
-------------
Run Code Online (Sandbox Code Playgroud)
-------------
| |
| |
| @ |
| |
| |
-------------
Run Code Online (Sandbox Code Playgroud)
有没有办法控制这个设置?谢谢.
这是项目路线图中的退出项目.所以它将在未来发生,但目前尚未得到支持.
我正在使用active_model_serializersgem来控制序列化数据,并看到一些奇怪的行为.我的代码看起来像这样:
class User
include Mongoid::Document
field :first_name, :type => String
field :last_name, :type => String
def full_name
first_name + " " + last_name
end
end
class UserSerializer < ActiveModel::Serializer
attributes :id, :first_name, :last_name, :full_name
end
Run Code Online (Sandbox Code Playgroud)
class UsersController < ApplicationController
respond_to :json, :html
def index
@users = User.all
respond_with @users
end
end
Run Code Online (Sandbox Code Playgroud)
...
<script type="text/javascript">
$(function(){
// using a backbone collection to manage data
App.users = new App.Collections.Users(<%= @users.to_json.html_sage %>);
});
</script>
Run Code Online (Sandbox Code Playgroud)
现在,当我渲染视图时,我看到full_name我的数据中缺少属性(通过模型中的方法生成):
{ …Run Code Online (Sandbox Code Playgroud) 我一直在使用Zsh作为Bash的替代品.有一件事情不再适用,那就是为mercurial完成分支和未提交的文件名.
如果以前(bash)我有以下hg跟踪文件夹:
repo/
.hg/
file1.txt
file2.txt <-- modified
Run Code Online (Sandbox Code Playgroud)
然后在Bash中执行此操作:
% hg commit -m "changed file2.txt" <TAB>
Run Code Online (Sandbox Code Playgroud)
自动完成file2.txt.
同样设有分公司-假设我有default,dev和crazy分支机构,猛砸知道如何完成分支名称:
% hg update cr<TAB>
Run Code Online (Sandbox Code Playgroud)
完成了分支名称crazy.
基本上我要问的是如何恢复这个功能 - 哪个文件处理等等.
我正在研究一些Go的并发模式.我看着使用goroutine和输入/输出通道实现后台工作程序,并注意到当我将新作业发送到接收通道(基本上将新作业排入队列)时,我必须在goroutine中执行它,否则调度会搞乱.含义:
for _, jobData := range(dataSet) {
input <- jobData
}
Run Code Online (Sandbox Code Playgroud)
go func() {
for _, jobData := range(dataSet) {
input <- jobData
}
}()
Run Code Online (Sandbox Code Playgroud)
对于更具体的东西,我玩了一些无意义的代码(这里是去游乐场):
package main
import (
"log"
"runtime"
)
func doWork(data int) (result int) {
// ... some 'heavy' computation
result = data * data
return
}
// do the processing of the input and return
// results on the output channel
func Worker(input, output chan int) {
for data := range …Run Code Online (Sandbox Code Playgroud) 我想通过装饰器和路径参数的组合将元数据标签添加到Jinja模板:
@meta_tags(foo='bar', ping='pong')
@app.route('/some-route/<slug>')
def action(slug):
return render_template('action.html')
Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<title>Foo</title>
{{ meta_tags }}
<!--
should render:
<meta name="slug" content="[actual-slug]" />
<meta name="foo" content="bar" />
<meta name="ping" content="pong" />
-->
</head>
...
Run Code Online (Sandbox Code Playgroud)
目标:
kwargs元素渲染到自己的元标记中.我意识到实现这一点的一种方法涉及注册@app.context_processor,但后来我也想要阻止并使用动态slug部分并创建一个自定义jinja标记,它将呈现<meta>html部分.
什么是惯用的Flask解决方法?谢谢.
我试图通过提供一个继承的公共基础模型来概括我的一些模型,其中包含一些相互的named_scope声明和一个激活搜索的过滤器方法,以便在控制器端进行更简单的查询.这在我在控制台中运行时似乎有效,但在控制器中失败:
# in the base model
class GenericModel < ActiveRecord::Base
named_scope :by_name, lambda { |name|
( name.blank? ) ? {} : { :conditions => [ "#{self.table_name}.name like ?", "%#{name}%" ] }
}
def filter(params)
res = []
res = self.by_name( (params[:name] or '') ) if params[:name]
return res
end
end
class MyModel < GenericModel
set_table_name 'my_models'
end
# works in in console!
>> params = { :name => 'jimmy' }
>> MyModel.filter(params)
=> [ <#MyModel ...>, ... ]
nil
# …Run Code Online (Sandbox Code Playgroud) 这就是我的意思 -
说我在整个文件中都有这些
ActiveRecord::Base.connection.execute("select * from table1").each_hash do ..
ActiveRecord::Base.connection.execute("select * from table2").each_hash do ..
ActiveRecord::Base.connection.execute("select * from table3").each_hash do ..
client.query("select * from table1").each_hash do ..
client.query("select * from table2").each_hash do ..
client.query("select * from table3").each_hash do ..
Run Code Online (Sandbox Code Playgroud)
我想只替换ActiveRecord的each_hash调用each(:as => :hash),所以我得到:
ActiveRecord::Base.connection.execute("select * from table1").each(:as => :hash) do ..
ActiveRecord::Base.connection.execute("select * from table2").each(:as => :hash) do ..
ActiveRecord::Base.connection.execute("select * from table3").each(:as => :hash) do ..
Run Code Online (Sandbox Code Playgroud)
并使client.query行不受影响.
我知道我可以使用宏,但是如何使用vim的搜索/替换呢?我想过用这个:
%s/\.execute(.*).each_hash/ ...something... /g
Run Code Online (Sandbox Code Playgroud)
问题是,如何通过搜索和替换保留实际查询(什么来......哪些......是)?
我想要一个小的文件传递给我使用的运行作业GenericOptionsParser的-files标志:
$ hadoop jar MyJob.jar -conf /path/to/cluster-conf.xml -files /path/to/local-file.csv data/input data/output
Run Code Online (Sandbox Code Playgroud)
这应该将作业发送到我的集群并附加local-file.csv以在需要时可用于Mapper/Reducer.当我在伪分布式模式下运行它时,它工作得很好,但是当我在集群上启动作业时,似乎无法找到该文件.我正在使用mapper的setup方法读取文件,如下所示:
public static class TheMapper extends Mapper<LongWritable, Text, Text, Text> {
@Override
public void setup(Context context) throws IOException, InterruptedException {
URI[] uriList = DistributedCache.getCacheFiles( context.getConfiguration() );
CsvReader csv = new CsvReader(uriList[0].getPath());
// work with csv file..
}
// ..
}
Run Code Online (Sandbox Code Playgroud)
当作业运行时,我得到以下异常:
java.io.FileNotFoundException: File /hdfs/tmp/mapred/staging/hduser/.staging/job_201205112311_011/files/local-file.csv does not exist.
at com.csvreader.CsvReader.<init>(Unknown Source)
at com.csvreader.CsvReader.<init>(Unknown Source)
at com.csvreader.CsvReader.<init>(Unknown Source)
at MyJob$TheMapper.setup(MyJob.java:167)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
...
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?谢谢.
我正在脚本中加载节点库,并且在加载依赖于该库的一些自定义之后立即:
var somelib = require('somelib');
// some customizations made to
// somelib's methods
require('./somelib.custom');
somelib.SomeObject = ...
^
ReferenceError: somelib is not defined
Run Code Online (Sandbox Code Playgroud)
我不断收到异常,因为加载是异步完成的,并且第二次require发生在第一个正确命名空间之前。解决这个问题的好方法是什么?谢谢。
我正在尝试使用fabric.js节点包(基于包站点中的文章构建)从json数据创建PNG图像。这是通过使用最初在客户端上生成的JSON数据加载服务器端结构画布,然后写入文件流来完成的:
var path = require('path');
var fs = require('fs');
var fabric = require('fabric').fabric;
require('./fabric.custom');
var canvas = fabric.createCanvasForNode(400, 400);
var outfile = fs.createWriteStream("image.png");
var filepath = "/path/to/file.json";
fs.readFile(filepath, 'utf8', function(err, json) {
canvas.loadFromJSON(json, function() {
var stream = canvas.createPNGStream();
stream.on('data', function(chunk) {
outfile.write(chunk);
});
});
});
Run Code Online (Sandbox Code Playgroud)
“ fabric.custom”文件包含多个自定义织物画布对象,这些对象将覆盖某些织物原型默认值。它们在客户端上运行良好,并且需要正确渲染画布。看起来像这样:
fabric.TextBox …Run Code Online (Sandbox Code Playgroud) 我正在尝试从需要使用go登录用户/密码的网站上抓取数据.使用python这很简单requests:
import requests
session = requests.Session()
session.post("https://site.com/login", data={ 'username': 'user', 'password': '123456' })
# access URL that requires authentication
resp = session.get('https://site.com/restricted/url')
Run Code Online (Sandbox Code Playgroud)
用golang完成同样事情的简单方法是什么?谢谢.
我正在尝试从如下所示的 html 页面中提取文本内容:
<div class="content">
<div class="section">
Lorem <a href="..." class="link">ipsum</a>
dolor <a href="..." class="link">sit</a> amet,
consectetur <a href="..." class="link">adipiscing</a> elit
</div>
<div class="section">
sed do <a href="..." class="link">eiusmod</a> tempor
incididunt <a href="..." class="link">ut</a> labore
et <a href="..." class="link">dolore</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我只想提取文本部分:
Lorem ipsum dolor amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
Run Code Online (Sandbox Code Playgroud)
我的 XPath (2.0) 表达式是//*[contains(@class, 'section')]. 当我使用 评估它时javax.xml.xpath.XPathExpression,我只检索链接之外的文本:
Lorem dolor amet, consectetur elit, sed do tempor incididunt labore et …Run Code Online (Sandbox Code Playgroud) go ×2
mercurial ×2
activerecord ×1
automation ×1
c++ ×1
canvas ×1
concurrency ×1
conventions ×1
decorator ×1
fabricjs ×1
flask ×1
g++ ×1
goroutine ×1
hadoop ×1
html ×1
inheritance ×1
java ×1
jinja2 ×1
json ×1
mapreduce ×1
mongoid ×1
named-scope ×1
node.js ×1
positioning ×1
python ×1
replace ×1
require ×1
ruby ×1
templates ×1
vim ×1
xpath ×1
zsh ×1