小编Mar*_*arc的帖子

CMDeviceMotion userAcceleration颠倒了吗?

我在CMDeviceMotion的userAcceleration字段中看到了一些意外的读数.当我从CMAccelerometerData查看原始加速度计数据时,我看到如果iPhone在桌面上是平的,读数是1G直下(1G在-Z轴),如果我放下iphone(当然在柔软的表面上)那么加速器读数按预期变为零.那一切都很好.当我改为使用CMDeviceMotion类时,当桌面上的iPhone平放时,userAcceleration读数为零.再次这很好.但是当我放下iPhone并读取CMDeviceManager userAcceleration时,userAcceleration值是1G直线上升(+ Z)而不是按预期下降(-Z).看起来userCcceleration读数实际上与设备实际遇到的加速度完全相反.有没有人观察过这个?在尝试整合速度和位置之前,我可以反转(乘以-1)所有userAcceleration值,还是我误解了userAcceleration正在读取的内容?

accelerometer ios core-motion

4
推荐指数
1
解决办法
3344
查看次数

Core Data不保存可转换的NSMutableDictionary

我有两个类:Profile和Config.配置文件包含NSSet的Config对象.Profile和Config都是NSManagedObject子类.

@interface Profile : NSManagedObject

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSSet *configs;

- (void)print;

@end
Run Code Online (Sandbox Code Playgroud)

这是Config类

@interface Config : NSManagedObject

@property (nonatomic, retain) NSString * otherdata;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSMutableDictionary *myDict;
@property (nonatomic, retain) Profile *profile;

- (void)print;

@end
Run Code Online (Sandbox Code Playgroud)

字典myDict有NSString*键和值.现在当我对myDict进行任何更改时,我调用了NSManagedObjectsave方法,并且没有任何错误.只要我不杀死应用程序,一切都按预期运行.

但是当我强制杀死应用程序时(无论是在Xcode中还是通过双击主页按钮并在底部的按钮行中将其删除)然后重新启动应用程序,myDict中的数据将恢复为之前的状态,即新的数据实际上没有保存.它似乎只是在我杀死应用程序之前保存.

myDict在xcdatamodeld文件中列为Transformable.我没有指定任何NSTransformer课程就试过了.我也尝试过指定一个变换器类MyDictTransformer,在Config中我添加了这段代码:

在Config.h中:

@interface MyDictTransformer : NSValueTransformer

@end
Run Code Online (Sandbox Code Playgroud)

在Config.m中:

@implementation MyDictTransformer

+ (Class)transformedValueClass
{
    return [NSMutableDictionary class];
}

+ (BOOL)allowsReverseTransformation
{
    return …
Run Code Online (Sandbox Code Playgroud)

core-data objective-c nsmanagedobjectcontext ios

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

在子进程Popen和通信后关闭所有文件的正确方法

在运行python Twisted应用程序的Ubuntu Linux机器上,可怕的“打开的文件太多”存在一些问题。在程序的许多地方,我们都在使用子进程Popen,如下所示:

Popen('ifconfig ' + iface, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
output = process.stdout.read()
Run Code Online (Sandbox Code Playgroud)

而在其他地方,我们使用子流程进行通信:

process = subprocess.Popen(['/usr/bin/env', 'python', self._get_script_path(script_name)],
                       stdin=subprocess.PIPE,
                       stdout=subprocess.PIPE,
                       close_fds=True)
out, err = process.communicate(data)
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,为了关闭所有打开的文件描述符,我到底需要做什么?Python文档尚不清楚。从我收集的信息(可能是错误的)中,communication()和wait()的确会自行清除所有打开的fds。但是Popen呢?如果我不打电话给我交流或等待,我是否需要在调用Popen之后显式关闭stdin,stdout和stderr?

python subprocess twisted

4
推荐指数
1
解决办法
7863
查看次数

使用@property 装饰器获取方法的源代码 python

假设我有一个 MyClass 类,它有一个使用 @property 装饰器创建的属性,如下所示:

class MyClass(object):
    @property
    def foo(self):
        if whatever:
            return True
        else:
            return False
Run Code Online (Sandbox Code Playgroud)

假设我想使用 python inspect 模块来获取定义属性的源代码。我知道如何为方法 (inspect.getsource) 执行此操作,但我不知道如何为属性对象执行此操作。有人知道怎么做吗?

python introspection inspect

4
推荐指数
1
解决办法
740
查看次数

使用nmap更快地发现主机?

我需要定期从脚本启动后台网络设备发现过程,并且需要相当快.目前,我这样推出NMAP:

nmap -sP 192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)

(我刚刚编写了IP地址,你明白了).无论如何,上面将对该C类网络进行ping扫描.问题是这个命令通常需要30-40秒才能完成.我希望能够更快地做到这一点.

我的目标只是设备/主机发现 - 我只想知道给定网络上的任何机器的IP地址.完成某种扫描后,我可以使用ARP命令获取上行机器的MAC地址.

那么在nmap或任何其他免费工具中有更快的方法吗?我知道fing(这更快)但我无法在不支付巨额许可费的情况下将查找嵌入到商业产品中.因此,如果在nmap或其他免费工具中有更快的方法,那就太棒了.

该工具必须在Ubuntu Linux上的命令行中运行.我对仅在其他操作系统上运行的GUI工具或工具不感兴趣.

linux network-monitoring ping nmap

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

在扭曲中使用pymongo究竟有什么问题?

我有一个扭曲的服务器应用程序,维护与大约1000个客户端的持久连接 每个客户端偶尔会将数据发送到我的扭曲服务器,我希望该服务器将数据存储到MongoDB数据库中.到现在为止还挺好.

但是,pymongo文档说的是"没有好的方法来使用扭曲的pymongo".我不明白为什么不.有人可以解释一下究竟是什么问题以及陷阱是什么?我认为这与pymongo同步有关,但我想做的就是把一些东西塞进数据库.

如果我在一个文件connector.py中声明了一个pymongo.MongoClient实例,然后我将连接器导入到运行我的Twisted工厂和协议的主python文件中,我应该可以在每个实例中使用pymongo.MongoClient用于将数据存储到数据库的协议(连接到每个客户端).

究竟是什么问题呢?显然我有点困惑.

python twisted mongodb pymongo

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

具有持久连接的NioEventLoopGroup的线程数

我想使用Java Netty为来自客户端的大量持久连接创建TCP服务器.换句话说,成像那里有1000个客户端设备,并且所有客户端设备都创建并维护与TCP服务器的持久连接.将存在合理数量的流量(主要是文本行),这些流量在每个持久连接中来回传递.如何确定NioEventLoopGroup的boss和worker组中使用的最佳线程数?

我的理解是,在创建连接时,Netty会创建一个SimpleChannelInboundHandler对象来处理连接.创建连接后,调用处理程序channelActive方法,每次从客户端获取新消息时,都会调用messageReceived方法(或Netty 4.0.24中的channelRead0方法).我的理解是否正确?如果我有长时间运行的代码在messageReceived中运行会发生什么 - 我是否需要在另一个线程(java.util.Thread)中启动此代码?如果我的messageReceived方法阻塞某些内容或需要很长时间才能完成,会发生什么?这会让Netty停滞不前吗?

基本上我需要编写一个TCP套接字服务器,它可以尽快为大量持久连接提供服务.是否有关于NioEventLoopGroup的线程数以及如何使用处理程序内的任何线程的指导?

任何帮助将不胜感激.

java sockets nio tcp netty

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

如何在Netty中使用多个ServerBootstrap对象

我试图使用Netty(4.0.24)在一个应用程序中创建几个服务器(几个ServerBootstraps)(一个主要方法).我看到了这个问题/答案,但它留下了许多未回答的问题: Netty 4.0多端口,每个端口都有差异协议 所以这里是我的问题:上面的答案表明我们需要做的就是创建多个ServerBootstrap对象并将bind()分别创建.但是我看到的单个ServerBootstrap的大多数代码示例都会调用这样的代码:

try {
    b.bind().sync().channel().closeFuture().sync();
}
finally {
    b.shutdown();
}
Run Code Online (Sandbox Code Playgroud)

那么ServerBootstrap b阻塞中的sync()调用结果不是吗?那么我们如何才能为多个ServerBootstraps做到这一点?如果我们不调用sync()会发生什么?同步调用集是否只能通过b.shutdown()正常关闭服务器?如果是这样,有没有办法优雅地关闭多个ServerBootstraps?

另外,我不明白当我们只调用bind()而不调用sync()时会发生什么.服务器是否以某种方式继续运行?我们如何优雅地关闭它?

很显然,我对这一切的运作方式感到很困惑,遗憾的是Netty文档在这方面确实缺乏.任何帮助将不胜感激.

java nio netty

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

django 具有多个数据库和用户外键

假设我的服务器上有一个 django 应用程序,但我希望使用 django.contrib.auth.models 进行身份验证,其中用户和组模型/数据位于另一个数据库中的另一台服务器上。在 Django 中,我的数据库设置将是这样的:

DATABASES = {
    'default': {},
    'auth_db': {
        'NAME'      : 'my_auth_db',
        'ENGINE'    : 'django.db.backends.mysql',
        'USER'      : 'someuser',
        'PASSWORD'  : 'somepassword',
        'HOST'      : 'some.host.com',
        'PORT'      : '3306',
    },
    'myapp': {
        'NAME': 'myapp_db',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'localuser',
        'PASSWORD': 'localpass',
    }
}

DATABASE_ROUTERS = ['pathto.dbrouters.AuthRouter', 'pathto.dbrouters.MyAppRouter']
Run Code Online (Sandbox Code Playgroud)

第一个问题:这是否有效,即它是否允许我使用存储在远程数据库“my_auth_db”中的用户登录到我的 Django 应用程序?

假设上述答案是肯定的,如果在我的本地数据库(应用程序“myapp”)中我的模型具有针对用户的外键,会发生什么情况?换句话说,我的模型 SomeModel 是在 myapp 中定义的,并且应该存在于 myapp_db 中,但它在 my_auth_db 中具有指向用户的外键:

class SomeModel(models.model):
    user = models.ForeignKey(User, unique=False, null=False)
    description = models.CharField(max_length=255, null=True)
    dummy = models.CharField(max_length=32, null=True)
    etc.
Run Code Online (Sandbox Code Playgroud)

第二个问题:这可能吗?或者一个数据库表根本不可能拥有另一个数据库中的表的外键?

如果我真的想完成这项工作,我可以将ForeignKey字段“user”替换为IntegerField“user_id”,然后如果我需要somemodel.user,我会改为获取somemodel.user_id并使用models.User.objects.get(pk =somemodel.user_id),路由器知道在哪里查询用户的 …

python django django-models multiple-databases django-database

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

在 React 中将变量传递给 onClick

我正在使用 React 和(至少现在)使用具有 和 标签的 Material-UI 来开发我的 UI。在 ListItem 内,我想检测对图标的单击。问题是我的列表将有许多列表项,我想将列表项的索引传递到我的点击处理程序中。但我还需要传入点击事件本身。我的代码如下所示:

class SomeList extends React.Component { 

    handleClickDeleteIcon(e) {
        e.stopPropagation();
        console.log('Fired handleClickDeleteIcon()!');
    }

    everywhereClickFunction(e) {
        console.log('Fired everywhereClickFunction()!');
    }

    render() {
        return (
            <List>
              <Subheader inset={true}>Some Files</Subheader>
              <ListItem
                leftAvatar={<Avatar icon={<ActionAssignment />} backgroundColor={blue500} />}
                rightIcon={
                    <div onClick={this.handleClickDeleteIcon}>
                        <DeleteForever />
                    </div>
                }
                primaryText="Vacation itinerary"
                secondaryText="Jan 20, 2014"
                onTouchTap={this.everywhereClickFunction}
                onClick={this.everywhereClickFunction}
              />
              <ListItem
                leftAvatar={<Avatar icon={<ActionAssignment />} backgroundColor={blue500} />}
                rightIcon={
                    <div onClick={this.handleClickDeleteIcon}>
                        <DeleteForever />
                    </div>
                }
                primaryText="Kitchen remodel"
                secondaryText="Jan 10, 2014"
              />
              <ListItem
                leftAvatar={<Avatar icon={<ActionAssignment />} backgroundColor={blue500} />} …
Run Code Online (Sandbox Code Playgroud)

javascript onclick reactjs

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