小编oal*_*ers的帖子

XCode4和核心数据:如何启用SQL调试

我正在开发一个通用的iOS应用程序,我想在调试时看到日志中的原始SQL.这篇博客文章中有一些关于如何为iOS Core Data开发启用原始SQL日志记录的信息.给出的示例适用于XCode 3,我不清楚如何在XCode 4中启用它.

我尝试了"产品" - >"编辑方案",并将" -com.apple.CoreData.SQLDebug 1 " 添加到"启动时传递的参数",但我仍然没有在日志中看到任何输出.不确定我是在寻找错误的地方还是仅仅错误地传递了参数.

sql core-data ios xcode4

101
推荐指数
3
解决办法
4万
查看次数

使用vim重新注释注释块

我正在清理别人的代码并使用vim.我想重新发表评论,以便他们的格式一致.

例如:

    # one two three four five six seven
    # eight nine
    # ten eleven twelve thirteen fourteen
    # fifteen sixteen seventeen 
    # eighteen
    # nineteen
Run Code Online (Sandbox Code Playgroud)

会成为:

    # one two three four five six seven eight nine ten eleven 
    # twelve thirteen fourteen fifteen sixteen seventeen
    # eighteen nineteen
Run Code Online (Sandbox Code Playgroud)

因此,一个可以轻松取消注释代码的工作流,重新生成段落,然后在保留缩进的情况下重新注释代码.如果有一个现有的插件可以做到这一点,那就太好了.

vim comments editor reflow

38
推荐指数
1
解决办法
6029
查看次数

如何让Ansible检查只在剧本中运行一次?

为了防止使用过时的剧本,我想确保在Ansible被允许修改服务器上的任何内容之前我有一个git checkout的更新副本.

这就是我试图这样做的方式.此操作位于所有剧本包含的文件中:

- name: Ensure local git repository is up-to-date
  local_action: git pull
  register: command_result
  failed_when: "'Updating' in command_result.stdout"
Run Code Online (Sandbox Code Playgroud)

问题是这个命令对Ansible连接的每个节点运行一次,而不是每个playbook运行一次.我怎么能避免这种情况?

git ansible

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

为什么在调用foo()||时,wantarray在标量上下文中返回 死?

我花了很多时间来调试我追溯到的问题wantarray().我把它提炼到这个测试用例.(忽略$!在这种情况下没有任何有用信息的事实).我想知道的是为什么wantarray不认为它在第二个例子中的LIST上下文中被调用:

#!/usr/bin/env perl

use strict;
use warnings;
use Test::More;

{
    my ( $one, $two ) = foo();
    is( $one, 'a', 'just foo' );
    is( $two, 'b', 'just foo' );
}

{
    my ( $one, $two ) = foo() || die $!;
    is( $one, 'a', '|| die' );
    is( $two, 'b', '|| die' );
}


done_testing();

sub foo {
    return wantarray ? ( 'a', 'b' ) : 'bar';
}
Run Code Online (Sandbox Code Playgroud)

该测试的输出是:

$ prove -v wantarray.pl
wantarray.pl …
Run Code Online (Sandbox Code Playgroud)

perl list

11
推荐指数
2
解决办法
281
查看次数

为什么我不能使用systemd停止我的Mojo应用程序?

我可以通过systemd没有任何问题启动我的Mojo应用程序,但我无法以相同的方式停止或重新启动它.我主要从http://mojolicious.org/perldoc/Mojolicious/Guides/Cookbook#Pre-forking上的Mojo文档中挖取了我的配置:

[Unit]
Description=ldsquiz.org
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=30
ExecStart=/home/sites/www.ldsquiz.org/checkout/bin/carton-exec app.pl prefork -m production -l http://*:5103
KillMode=process
User=ldsquiz
Group=ldsquiz
SyslogIdentifier=ldsquiz-org

[Install]
WantedBy=multi-user.target 
Run Code Online (Sandbox Code Playgroud)

如果我通过sudo service ldsquiz-org stopsyslog说停止它,Jan 13 16:37:48 web-hosting systemd[1]: Stopped ldsquiz.org.但进程仍在运行.

一个restartvia systemd看起来像我期望的那样,因为关闭失败后,listen套接字仍在使用中:

Jan 13 16:39:13 web-hosting systemd[1]: Stopped ldsquiz.org.
Jan 13 16:39:13 web-hosting systemd[1]: Started ldsquiz.org.
Jan 13 16:39:14 web-hosting ldsquiz-org[20353]: Can't create listen socket: Address already in use at 
/home/sites/www.ldsquiz.org/checkout/local/lib/perl5/Mojo/IOLoop.pm line 126.
Jan 13 16:39:14 web-hosting systemd[1]: …
Run Code Online (Sandbox Code Playgroud)

perl mojolicious systemd

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

Mojolicious和Moose一起玩得好吗?

我正在开发一个Mojo应用程序,我希望能够使用一些Moose角色来让我的生活更轻松.

在CPAN上,我看到MojoX :: Moose :: Controller,它具有非常简单的内部结构.我没有看到使用Moose和Mojo的其他内容.我应该注意的任何潜在问题还是一帆风顺?

perl moose mojolicious

9
推荐指数
2
解决办法
1014
查看次数

是否可以在不读取请求的整个主体的情况下在Plack :: Middleware中强制执行最大上载大小?

我刚刚将一个PageKit(mod_perl)应用程序转换为Plack.这意味着我现在需要一些方法来强制执行Apache2 :: Reques 先前已经处理过的POST_MAX/MAX_BODY .最简单的方法可能只是将nginx放在应用程序前面,但是应用程序已经位于HAProxy后面,我不知道如何使用HAProxy执行此操作.

那么,我的问题是我如何在不首先阅读整个请求的情况下在Plack :: Middleware中强制执行最大体型

具体来说,我关注文件上传.通过检查大小普拉克::支持::上传为时已晚,因为整个身体会一直在这一点上阅读.该应用程序将通过Starman部署,所以psgix.streaming应该是true.

perl plack http-request psgi

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

如何使用DBIx :: Class增加列?

我正在尝试将一些原始DBI调用转换为DBIx :: Class.我偶尔遇到类似的事情:

UPDATE 'foo' SET bar = bar + 1 WHERE ...
Run Code Online (Sandbox Code Playgroud)

有没有办法让DBIx :: Class完全执行这种查询?我不想做类似的事情:

$row->update({ bar => $row->bar() + 1 });
Run Code Online (Sandbox Code Playgroud)

因为如果多个进程试图做同样的事情,就会出现竞争状况.

我可以通过在数据库级别进行某种锁定来解决这个问题,但这对我来说比使用原始查询更糟糕.基本上我只是想知道是否有一种干净的方式使用DBIC来执行此操作,或者我是否应该继续在此处继续使用原始DBI调用.

sql perl dbix-class

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

如何检测是否在eval中运行Perl代码?

我有一个使用@INC钩子的模块,并试图安装丢失的模块,因为它们是used.我不希望这种行为在内部触发eval.我目前的尝试是:

return
    if ( ( $caller[3] && $caller[3] =~ m{eval} )
    || ( $caller[1] && $caller[1] =~ m{eval} ) );
Run Code Online (Sandbox Code Playgroud)

这是我在一些实验中用调用堆栈的结果,但它没有捕获所有内容,例如HTTP :: Tinyish中的代码:

sub configure_backend {
    my($self, $backend) = @_;
    unless (exists $configured{$backend}) {
        $configured{$backend} =
          eval { require_module($backend); $backend->configure };
    }
    $configured{$backend};
}

sub require_module {
    local $_ = shift;
    s!::!/!g;
    require "$_.pm";
}
Run Code Online (Sandbox Code Playgroud)

也许我只需要遍历调用堆栈的每个级别,直到我达到eval或超出级别.有没有更好或更简单的方法来判断代码是否在eval没有遍历调用堆栈的情况下被包装?


在这个问题上验尸:

  • 正如多张海报所暗示的那样,这基本上是一个坏主意
  • $^S从技术上讲,这是一种正确的方法,但它不会让你知道你是否在一个eval被称为堆栈中更高的地方 …

perl

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

为什么plenv install-cpanm安装到错误的位置?

我的plenv设置发生了一些古怪的事情,我没有理解它.

plenv install-cpanm
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100  297k  100  297k    0     0  1571k      0 --:--:-- --:--:-- --:--:-- 1567k
!
! Can't write to /Library/Perl/5.18 and /usr/local/bin: Installing modules to /Users/olaf/perl5
! To turn off this warning, you have to do one of the following:
!   - run me as a root or with --sudo option (to install to /Library/Perl/5.18 and /usr/local/bin)
!   - Configure local::lib …
Run Code Online (Sandbox Code Playgroud)

perl cpanm plenv

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

标签 统计

perl ×7

mojolicious ×2

sql ×2

ansible ×1

comments ×1

core-data ×1

cpanm ×1

dbix-class ×1

editor ×1

git ×1

http-request ×1

ios ×1

list ×1

moose ×1

plack ×1

plenv ×1

psgi ×1

reflow ×1

systemd ×1

vim ×1

xcode4 ×1