问题列表 - 第75549页

HABTM mongoid追随者/追随者

Mongoid在一个habtm上运行.push,它在两个方向上建立了一个habtm关系.虽然删除将#delete一个相关的记录,但没有记录的方法只删除我见过的关系.有没有更好的方法呢?

有没有更好的方法来确保独特性?

has_and_belongs_to_many :following, {class_name: 'User', inverse_of: :followers, inverse_class_name: 'User'}
  has_and_belongs_to_many :followers, {class_name: 'User', inverse_of: :following, inverse_class_name: 'User'}

  def follow!(user)
    self.following.push(user) # this pushes the inverse as well
    self.following_ids.uniq!
    self.save!
    user.follower_ids.uniq!
    user.save!
  end

  def unfollow!(user)
    self.following.delete(user.id)
    self.save!
    user.followers.delete(self.id)
    user.save!
  end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails has-and-belongs-to-many mongoid

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

wxpython:在sizer中的面板中居中文本

在我看来,以下代码应该在窗口的中心显示文本; 也就是说,在内板的中心.然而,它并没有,我想知道为什么不.如果运行代码,您将在框架中间看到一个白色面板,150px乘150px.我根本不希望这个区域的大小发生变化,但是当我开始添加一些文本(txt在代码片段中间取消注释变量)时,面板总是收缩以适应文本.即使指定StaticText与面板匹配的大小也不是解决方案,因为文本不会居中对齐.

import wx

class MyFrame(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)




        self.rootPanel = wx.Panel(self)

        innerPanel = wx.Panel(self.rootPanel,-1, size=(150,150), style=wx.ALIGN_CENTER)
        innerPanel.SetBackgroundColour('WHITE')
        hbox = wx.BoxSizer(wx.HORIZONTAL) 
        vbox = wx.BoxSizer(wx.VERTICAL)

        # I want this line visible in the CENTRE of the inner panel
        #txt = wx.StaticText(innerPanel, id=-1, label="TEXT HERE",style=wx.ALIGN_CENTER, name="")

        hbox.Add(innerPanel, 0, wx.ALL|wx.ALIGN_CENTER)
        vbox.Add(hbox, 1, wx.ALL|wx.ALIGN_CENTER, 5)

        self.rootPanel.SetSizer(vbox)
        vbox.Fit(self)

class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, -1, 'wxBoxSizer.py')
        frame.Show(True)
        frame.Center()
        return True

app = MyApp(0)
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)

python wxpython center panel sizer

3
推荐指数
1
解决办法
6752
查看次数

如何将两个32位寄存器移入一个64位?

假设我想将两个32位寄存器EAX作为低32位字和EDX高32位字放入RAX.我找到了一种方法:

shl   rdx, 32
or    rax, rdx
Run Code Online (Sandbox Code Playgroud)

只有当我们确定从32到61的位RAX为0时,此方法才有效.如果我们不确定,那么我们必须首先清除高32位字,如:

mov   eax, eax      //This instruction should clear the high 32 bit word of RAX
Run Code Online (Sandbox Code Playgroud)

这是最短路吗?

是否有一个asm x86-64指令执行此操作?

x86 assembly x86-64 move

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

Haskell数据结构具有优化的访问方法

我想创建用于访问和修改简单音乐库的数据类型,包括由曲目组成的专辑.有关基本想法,请考虑以下事项:

data MusicCollection = MC { albums :: Seq Album }
data Album = Album { albumTitle :: String, tracks :: Seq Track }
data Track = Track { trackTitle :: String, tempo  :: Tempo }

data Tempo = Unknown | BPM Int
Run Code Online (Sandbox Code Playgroud)

除了节奏,还可能有其他属性,如样式或评级.

上述解决方案让我可以快速访问随机相册.另外,我希望能够比指定速度更快地访问所有曲目.再次,对返回的曲目进行快速随机访问会很不错:

fasterThan :: Int -> MusicCollection -> SomeRandomAccessCollection Track
Run Code Online (Sandbox Code Playgroud)

更新集合中的轨道也不应该太慢.

题:

我不知道是否Map Tempo (Seq Track)最好添加一个MusicCollection,或者是否有可能以某种方式模仿关系数据库.也许有完全不同的解决方案?

我目前不想使用数据库,但了解何时在桌面应用程序中使用它们会很有趣.

haskell

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

我可以使用enum作为ConverterParameter吗?

目前我正在使用整数作为ConverterParameter,并将其转换EnumConverter.我发现它非常难以理解XAML.

我想知道是否有办法Enum在资源部分声明并将其值传递给它ConverterParameter

.net wpf xaml ivalueconverter

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

解析后的小数位错误

我正在尝试从asc文件加载一些XY坐标.它看起来像这样:

-55.988544 9382
-53.395804 9403
-50.804601 9433

然后我将坐标转换为浮点数.但不知何故fe为第一个值我得到"-55988544.0"而不是"-55.988544".

这是代码:

 private void btngettext_Click(object sender, EventArgs e)
    {
        StreamReader objStream = new StreamReader("C:\\...\\.asc");

        firstLine = objStream.ReadLine();

        int i = 0;

        /*Split String on Tab,
         * will separate words*/
        string[] words = firstLine.Split('\t');

        richTextBox1.Text = words[0];

        foreach(string word in words)
        {
            if(word != "")
            {
                Console.WriteLine(word); //the value of the string is "-55.988544" here 
                //value = float.Parse(word); tried both
                value = Convert.ToSingle(word); //here the float value is "-55988544.0"
                Console.WriteLine(value.ToString());// …
Run Code Online (Sandbox Code Playgroud)

c# parsing

3
推荐指数
1
解决办法
854
查看次数

不要在rsync输出中显示目录

有没有人知道是否有rsync选项,因此正在遍历的目录不会显示在stdout上.

我正在同步音乐库,而大量的目录使得很难看到实际发生了哪些文件更改.我已经尝试了-v和-i,但两者都显示了目录.

rsync command-line

25
推荐指数
2
解决办法
7448
查看次数

QA如何测试代码并与mercurial中的稳定分支合并?

我的开发团队刚刚开始使用Mercurial,我们对以下几点感到困惑:

我们是一个php webdev团队.

我们有3个开发人员.我们现在正在做的大部分是一个非常新产品的错误修正.还做了一些新的功能开发.

我们有2个QA人员.必须先测试每个错误修复和功能,然后才能生效.

到目前为止,每个开发人员都有自己的存储库 我们有一个名为WebDev的中央服务器,它有自己的回购.开发人员从WebDev获取,然后进行一些更改(即修复错误),然后推送到Webdev.然后,QA测试人员将测试中央服务器上的代码(因此测试WebDev中的代码),如果有效,他会将该代码推送到我们的生产服务器.

这不能很好地工作,因为......当Developer-1(dev-1)修复bug并推送到WebDev时会发生什么.同时,dev-2修复了一个不同的bug并推送到WebDev.质量检查人员在那里测试代码,并批准第二个错误修复但不是第一个.他如何在没有第一个变速器的情况下将第二个变更集推向生产?我们似乎失去了版本控制系统的所有优点.

我已经阅读了很多关于分支的内容,但我无法弄清楚如何让这对我们有用...我们为每个错误修正和新功能创建一个新的分支,并且只有经过测试后,QA才会合并到WebDev上的默认分支?这是最好的方式,还是我缺少的东西?

谢谢!!

---- ----更新

感谢所有回答到目前为止的人.这是我现在所处的位置......我能想到两个解决方案.

1)dev-1修复了bug-101的bug.他从webdev,合并和本地提交.他把它设置在测试中.QA直接从他的存储库中提取,并在本地进行测试.如果它通过,QA将从webdev - > merge - > push拉到webdev(如果它发生了很大变化,可以再次检查以确保它没问题).所以我们一次只测试一件事,WebDev只包含测试人员在本地测试过的变化,并且总是稳定的.

2)为一切创建分支.dev-1创建分支"bugfix-101"然后推送到webdev而不合并它.QA可以测试分支代码,如果它已获批准,则将其与默认分支合并.我对这个方法有四个问题 - (a)是否可以将开放分支推送到远程存储库?(b)如果QA合并并关闭webdev上的分支,下次我拉,我的本地回购还会关闭并合并分支吗?(c)你如何从分支代码进行测试?当我在浏览器中运行Web应用程序时,我如何从分支测试?(d)是否存在创建如此多命名分支的性能问题(假设其中大部分将快速关闭)?

再次感谢.

mercurial branching-and-merging

9
推荐指数
1
解决办法
1817
查看次数

未定义的静态方法引用

我正在尝试编译此代码并且链接失败并出现以下错误:这是我如何编译它;

g++ logtester.cc -I/home/foo/include -L/home/foo/lib -llog4cxx


/tmp/ccADKreY.o(.text+0x120): In function `main': undefined reference to `FrameworkLogger::getInstance()'
collect2: ld returned 1 exit status    
Run Code Online (Sandbox Code Playgroud)

为什么?我该怎么办呢?

#include <log4cxx/logger.h>
#include <log4cxx/xml/domconfigurator.h>

using namespace log4cxx;
using namespace log4cxx::xml;
using namespace log4cxx::helpers;

class FrameworkLogger
{
    private:
        FrameworkLogger();
        LoggerPtr logger;

    public: 
        static LoggerPtr getInstance();

};
Run Code Online (Sandbox Code Playgroud)

(另一个文件:)

#include "FrameworkLogger.h"
#include <iostream>

LoggerPtr FrameworkLogger::getInstance()
{
    std::cout<<"test";
}
Run Code Online (Sandbox Code Playgroud)

(又一个文件:)

#include "FrameworkLogger.h"
#include <iostream>

using namespace std;

int main(){
//      LoggerPtr logger =
        FrameworkLogger::getInstance();
        std::cout<<"test";
}
Run Code Online (Sandbox Code Playgroud)

c++ compilation

0
推荐指数
1
解决办法
6433
查看次数

在c#中运行时设置类属性会导致Visual Studio崩溃

在处理更大的wp7项目时,我一直遇到这个问题:

每当我在我的代码中设置属性时,它都会崩溃Visual Studio 2010.所以我决定做一个适当的测试来试图找出问题所在.以下代码是一个简短的wp7应用程序示例,以相同的方式具有相同的问题.每当代码尝试设置name属性时,它都会使Visual Studio崩溃.

注意:我没有安装加载项,当我尝试在安全模式下运行它时,我收到错误"此安装不支持项目类型"

任何帮助,将不胜感激

using System;
using System.Collections.Generic;
using System.Windows;
using Microsoft.Phone.Controls;

namespace propertytest
{
    public partial class MainPage : PhoneApplicationPage
    {
        public string name
        {
            get { return name; }
            set
            {
                //crash!
                if (value != name)
                {
                    name = value;
                    hi(name); 
                }
            }
        }
        void hi(string name)
        {
            MessageBox.Show("hi "+name);
        }
        // Constructor
        public MainPage()
        {
            InitializeComponent();

            // Set the data context of the listbox control to the sample data
            DataContext = App.ViewModel;
            this.Loaded += …
Run Code Online (Sandbox Code Playgroud)

c# wpf windows-phone-7

0
推荐指数
1
解决办法
629
查看次数