小编Unk*_*own的帖子

修复损坏的Git存储库

由于电源问题,我的Git存储库在经过几次硬重启后损坏了,现在我无法修复它(我在最后一次电源故障时暂停了一些文件):

$ git status
fatal: failed to read object 3d18855708b0f127d40c13c679559d7679228b69: Invalid argument
$ git fsck
fatal: failed to read object 24377c609184c192f3f3c1733bac7115c1080758: Invalid argument
$ git branch -a
(...works, lists branches...)
$ git checkout someotherbranch
fatal: failed to read object 3d18855708b0f127d40c13c679559d7679228b69: Invalid argument
$ git log
fatal: failed to read object 3d18855708b0f127d40c13c679559d7679228b69: Invalid argument
$ git log someotherbranch
(...works, shows commits...)
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,我当前的分支已经搞砸了,我似乎无法修复它.我可以尝试修复此问题?

git corruption

42
推荐指数
7
解决办法
8万
查看次数

Mongodb同时聚合(计数)多个字段

我有文件看起来像这样:

{
    "_id" : "someuniqueeventid",
    "event" : "event_type_1",
    "date" : ISODate("2014-01-14T00:00:00Z"),
}
Run Code Online (Sandbox Code Playgroud)

我想按" event" 进行分组,并计算每周每天发生的事件类型的数量.基本上,我希望得到类似的东西:

{
    "_id": "event_type_1",
    "1": "number of event_type_1 for Monday",
    "2": "number of event_type_1 for Tuesday",
    ...
},
{
    "_id": "event_type_2",
    ...
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我坚持:

db.data.aggregate([ {$project: {date_of_week: {$dayOfWeek: "$date"}, event: "$event"}}, 
                    {$group: {_id: "$event", .... } ])
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mongodb mongodb-query aggregation-framework

16
推荐指数
2
解决办法
1万
查看次数

在世界地图上绘制GeoIP数据

我需要一个能够获取一系列IP地址(或地理坐标)并在世界地图上绘制它们的库(最好用Python编写).

我已经找到了这个,但是它将数据输出为.svg文件,它根本无法处理大型数据集.

请注意,我需要一些可以在本地下载和运行的内容,因此没有数据上传到第三方Web服务.

谢谢!

python maps plot geolocation

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

用于任务执行和依赖性处理的Python框架

我需要一个允许我执行以下操作的框架:

  • 允许动态定义任务(我将读取外部配置文件并创建任务/作业;例如,task =生成外部命令)

  • 提供一种指定现有任务依赖关系的方法(例如任务A将在任务B完成后运行)

  • 如果执行顺序允许,则能够在多个进程中并行运行任务(即没有任务相互依赖性)

  • 允许任务依赖于某些外部事件(不知道如何描述这一点,但是一些任务完成并且它们将在一段时间后产生结果,如后台运行的作业;我需要指定一些要依赖的任务这个后台工作完成的活动)

  • 撤消/回滚支持:如果一个任务失败,请尝试撤消以前执行过的所有内容(我不希望在任何框架中实现它,但我想这值得问一下......)

所以,显然,这看起来或多或少像构建系统,但我似乎无法找到允许我动态创建任务的东西,大多数事情我似乎已经在"Makefile"中定义了它们.

有任何想法吗?

python build-automation jobs build-process build

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

机械化将登录表单从http提交到https

我有一个网页,其中包含通过HTTP加载的登录表单,但它通过HTTPS提交数据.

我正在使用python-mechanize登录这个站点,但似乎数据是通过HTTP提交的.

我的代码看起来像这样:

import mechanize
b = mechanize.Browser()
b.open('http://site.com')
form = b.forms().next()  # the login form is unnamed...
print form.action        # prints "https://login.us.site.com"
form['user'] = "guest"
form['pass'] = "guest"
b.form = form
b.submit()
Run Code Online (Sandbox Code Playgroud)

提交表单时,连接是通过HTTP进行的,包含以下内容:

send: 'POST https://login.us.site.com/ HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 180\r\nHost: login.us.site.com\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n'...
Run Code Online (Sandbox Code Playgroud)

任何人都可以确认这一点并最终发布解决方案,以便通过HTTPS提交表单吗?

稍后编辑:

1)我正在使用HTTP代理进行http/https流量(在环境中设置 - Linux机器)
2)我用Wireshark观察了流量,我可以确认流量是通过普通HTTP发送的(我可以看到POST和mechanize的内容不会像webbrowser那样向代理发送相同的请求 - 后者发送CONNECT login.us.site.com:443,而机械化只发送POST https://login.us.site.com) .但是,我不知道数据离开代理时会发生什么; 也许它建立了与目标站点的ssl连接?

python forms https post mechanize

10
推荐指数
1
解决办法
5414
查看次数

apt :: source和stage的puppet问题

我有一个本地Puppet安装,我已经完成了:

# puppet module install puppetlabs/apt  
Preparing to install into /etc/puppet/modules ...            
Downloading from http://forge.puppetlabs.com ...             
Installing -- do not interrupt ...                           
/etc/puppet/modules                                          
??? puppetlabs-apt (v1.1.0)                                  
  ??? puppetlabs-stdlib (v3.2.0)                             
Run Code Online (Sandbox Code Playgroud)

我还有以下nodes.pp要申请的内容:

node default {                                                              
    include stdlib                                                      

    class {'apt':
            always_apt_update => true,
            disable_keys => true,
            stage => 'setup'
    }
    ->
    apt::source { "cassandra":
            location => "http://debian.datastax.com/community",
            release => "stable",
            repos => "main",
            key => "B999A372",
            key_source => "http://debian.datastax.com/debian/repo_key", 
            include_src => false
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试应用它时,我得到:

# puppet apply nodes.pp
err: Could …
Run Code Online (Sandbox Code Playgroud)

deployment puppet

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

Linux安装程序创建者

我正在寻找一种能够为Linux创建"设置"软件包的工具,就像Windows安装创建者那样(NSIS,InstallShield等).我希望它能够向用户(或基于ncurses)呈现图形界面,在那里他可以选择一些选项并安装包.

有这样一个工具的想法吗?我知道自动包装,但这不是我想要的.它主要侧重于正确安装软件,我想要一些专注于创建能够复制文件,编辑,运行脚本等的安装程序.

linux installation installer install

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

关于分配不同价值对象的算法的建议

我有以下问题:

给定N个对象(N <30)的不同值的多个"k"常数,即k,2k,3k,4k,6k,8k,12k,16k,24k和32k,我需要一个将所有项目分配给M的算法玩家(M <= 6),使得每个玩家获得的对象的总价值尽可能均匀(换句话说,我想以最公平的方式将所有对象分发给所有玩家).

编辑:通过最公平的分配我的意思是任何两个玩家获得的对象的价值之间的差异是最小的.另一个类似的情况是:我有N个不同价值的硬币,我需要在M个玩家之间平分它们; 有时他们并没有完全分开,我需要找到下一个最好的分配案例(没有玩家生气,因为另一个人得到太多钱).

我不需要(伪)代码来解决这个问题(此外,这不是一个功课:)),但我会感谢任何想法或链接到可以解决这个问题的算法.

谢谢!

algorithm

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

写入操作后获取errno

我有以下Go代码,它最终将填满磁盘并失败ENOSPC(只是一个概念证明).我如何从err返回的os.Write确定它确实失败因为ENOSPC(所以我需要一种方法来抓取errno写操作)?

package main

import (
    "log"
    "os"
)

func main() {
    fd, _ := os.Create("dump.txt")

    defer fd.Close()

    for {
        buf := make([]byte, 1024)

        _, err := fd.Write(buf)
        if err != nil {
            log.Fatalf("%T %v", err, err)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:更新程序为@FUZxxl建议:

package main

import (
    "log"
    "os"
    "syscall"
)

func main() {
    fd, _ := os.Create("dump.txt")

    defer fd.Close()

    for {
        buf := make([]byte, 1024)

        _, err := fd.Write(buf)
        if err …
Run Code Online (Sandbox Code Playgroud)

linux go

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

帮助解析日志文件(ANTLR3)

我需要一点指导来编写语法来解析游戏永恒之塔的日志文件.我决定使用Antlr3(因为它似乎是一个可以完成工作的工具,我认为学会使用它对我有好处).但是,由于日志文件的结构不完整,我遇到了问题.

我需要解析的日志文件如下所示:

2010.04.27 22:32:22 : You changed the connection status to Online. 
2010.04.27 22:32:22 : You changed the group to the Solo state. 
2010.04.27 22:32:22 : You changed the group to the Solo state. 
2010.04.27 22:32:28 : Legion Message: www.xxxxxxxx.com (forum)



ventrillo: 19x.xxx.xxx.xxx

Port: 3712

Pass: xxxx (blabla) 

 4/27/2010 7:47 PM 
2010.04.27 22:32:28 : You have item(s) left to settle in the sales agency window.
Run Code Online (Sandbox Code Playgroud)

如您所见,大多数行以时间戳开头,但也有例外.我想在Antlr3中做的是编写一个解析器,它只使用以时间戳开头的行,同时静默地丢弃其他行.

这就是我到目前为止所写的内容(我是这些东西的初学者所以请不要笑:D)

grammar Antlr;

options {
  language = Java;
}

logfile: line* EOF;

line : …
Run Code Online (Sandbox Code Playgroud)

parsing antlr text-parsing antlr3

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