小编Jor*_*ans的帖子

在mac os x中添加"隐藏"文件的tar命令,为什么?

我正在编写自己的tar归档程序.一切都在我的应用程序内工作正常(甚至读取用其他工具生成的焦油)但是我无法让我的tar文件与第三方tar​​文件阅读器一起使用.所以我尝试在命令行上构建一个tar文件,用我的代码构建一个tar文件,并比较两者.

但似乎有一个问题:

我有一个名为Test.txt的文本文件,我想添加到我的tar中,所以我在终端中运行以下命令:

tar -c -f x.tar Test.txt
Run Code Online (Sandbox Code Playgroud)

这样做时:

tar -tf x.tar
Run Code Online (Sandbox Code Playgroud)

我得到以下列表:

./._Test.txt
Test.txt
Run Code Online (Sandbox Code Playgroud)

这是在Mac OS X Lion上的终端.

./._Test.txt文件来自哪里?在做ls -a时我没有看到它

在检查tar内容时,它似乎是一些二进制数据,但我不知道它来自何处.

macos terminal tar osx-lion

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

如何让MySQL返回UTF-8?

我正在使用PHPUnit来验证PHP代码的XML输出,但显然我遇到了MySQL返回的字符编码问题.这是我从DOMDocument得到的错误:

Input is not proper UTF-8, indicate encoding!
Bytes: 0xE9 0x20 0x42 0x65
Run Code Online (Sandbox Code Playgroud)

我初始化DOMDocument所以它使用正确的编码:

$domDocument = new DOMDocument('1.0','UTF-8');
Run Code Online (Sandbox Code Playgroud)

当我使用mb_detect_encoding检查saveXML()的输出时,结果是UTF-8.

我还检查了用于创建XML的所有调用,在遇到的所有createCDATASection参数上使用mb_detect_encoding,它们都是UTF-8或ASCII(没有纯文本节点,一切都在CDATA块中).

我认为问题来自于使用'é'字符(ISO 8859-1中的 0xE9 ).将该字符添加到我的XML的行是:

$domDocument->createCDATASection($place->name);
Run Code Online (Sandbox Code Playgroud)

和mb_detect_encoding($ place-> name)给了我UTF-8.

数据($ place-> name)从MySQL数据库中提取.该数据库具有UTF-8字符集.

这是一些示例代码:

$query = sprintf('SELECT name FROM place where id = 1');
$result = mysql_query($query);
$result = mysql_fetch_assoc($result);


// -- Feeding UTF-8 data directly WORKS
$domDocument = new DOMDocument('1.0','UTF-8');
$rootNode = $domDocument->createElement('Response');
$rootNode->appendChild($domDocument->createCDATASection('Café Belga'));
$domDocument->appendChild($rootNode);

$matcher = array('tag' => 'Response');
self::assertTag($matcher, $domDocument->saveXML(), '', …
Run Code Online (Sandbox Code Playgroud)

php xml utf-8 character-encoding

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

如何在Parse Promise链中传递额外数据

在我的Parse Cloude代码中,我需要运行几个连续的查询,每个查询都使用"find()".

例:

var promise = firstQuery.get(objectId).then(function(result1){
            return secondQuery.find();
        }).then(function(result2){
            return thirdQuery.find();
        }).then(function(result3) {

             // here I want to use "result1", "result2" and "result3"
        });
Run Code Online (Sandbox Code Playgroud)

问题是:如何在最后的"then"语句中访问"result1"和"result2",而不将它们分配给父作用域中声明的变量.

为什么我这样问:如果要嵌套一堆你在循环中创建的promises以便它们并行执行,你就不能使用父作用域技巧(想象一下围绕上述语句的for循环,其中所有的promise都是放入一个数组然后使用"Parse.Promise.when"进行评估.它们都会同时开始修改父作用域变量.)

我可以创建某种承诺对象,我可以返回以下内容:

Parse.promise({result:result1,findResult:secondQuery.find()};
Run Code Online (Sandbox Code Playgroud)

所以我可以通过这样做从"result2"参数中获取值

result2.result 
Run Code Online (Sandbox Code Playgroud)

result2.findResult
Run Code Online (Sandbox Code Playgroud)

我希望我能说清楚.这不是很容易解释.

javascript promise parse-platform parse-cloud-code

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

php长时间运行的过程与'at'表现得非常奇怪

首先,我远离Linux专家,所以这可能是问题,但无论如何,问题是:

我按照这里写的内容:http://symcbean.blogspot.com/2010/02/php-and-long-running-processes.html

启动一个长期运行的PHP进程.这在我的Mac上的MAMP配置中完美无瑕.然而,一旦我将它部署到我们的VPS,我得到了一些非常奇怪的结果.

首先,我使用SSH连接进行简单的测试:

echo '/usr/local/php53/bin/php -d memory_limit=512M -q /home/user/www/Update/Update.php;' | at now + 2minutes
Run Code Online (Sandbox Code Playgroud)

结果:

warning: commands will be executed using /bin/sh
job 2300 at 2012-04-29 19:24
Run Code Online (Sandbox Code Playgroud)

事实上,2分钟后执行php脚本.到现在为止还挺好.

接下来我尝试以下方法:

在我的浏览器中我打开:

www.myserver.com/Update/LaunchUpdates.php
Run Code Online (Sandbox Code Playgroud)

这个php脚本包含以下行:

exec("echo '/usr/local/php53/bin/php -d memory_limit=512M -q /home/user/www/Update/Update.php;' | at now + 2minutes");
Run Code Online (Sandbox Code Playgroud)

会发生以下情况:我在-l处检查状态,我看到:

job 2304 at 2012-04-29 19:32
Run Code Online (Sandbox Code Playgroud)

然后我等了2分钟再次跑到-l.我希望看到一个空的结果,但我得到:

job 2305 at 2012-04-29 19:34
Run Code Online (Sandbox Code Playgroud)

2分钟后我得到了

job 2306 at 2012-04-29 19:36
Run Code Online (Sandbox Code Playgroud)

我对那里发生的事情一无所知.PHP脚本没有执行,工作似乎在2分钟后重新安排.这种情况一直持续到我工作为止.

有谁知道可能会发生什么?

更多信息:

cat /etc/*-release
Gentoo Base System version 1.6.14
Run Code Online (Sandbox Code Playgroud)

更多细节.以下是at job安排时的内容:( at -c [ID]) …

php linux gentoo

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

模拟 Postgresql now() 函数进行测试

我有以下堆栈

  • 节点/Express 后端
  • PostgreSQL 10 数据库
  • 摩卡测试
  • 嘲笑的诗乃

我编写了一堆端到端测试来测试我所有的网络服务。问题是其中一些是时间相关的(如“给我最后 X 秒的修改记录”)。

sinon非常擅长模拟 Node 中所有与时间/日期相关的内容,但是modified我的 Postgresql 表中有一个字段填充了触发器:

CREATE FUNCTION update_modified_column()
  RETURNS TRIGGER AS $$
BEGIN
  NEW.modified = now();
  RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
Run Code Online (Sandbox Code Playgroud)

问题当然是sinon无法覆盖该now()功能。

关于如何解决这个问题的任何想法?问题不是在测试开始时设置特定日期,而是提前时间比实时快(在我的一个测试中,我想更改数据库中的某些内容,将“当前时间”提前一天,更改数据库中还有一些东西,并进行网络服务调用以查看结果)。

我自己可以找出一些解决方案,但它们都涉及更改应用程序代码并使其不那么优雅。我认为您的应用程序代码不应受到您想要测试它的影响。

postgresql mocha.js node.js sinon

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

为什么[NSMutableString stringWithString:@""]有效?

就是想:

NSString那里有一个名为的静态方法+stringWithString:.这不会被重新声明/覆盖,NSMutableString因此我们不能假设这将返回NSMutableString.事实上,即使在NSString类中,返回类型也被定义为id,doc指出:

返回值
通过复制字符创建的字符串aString.

在我的知识中,我缺少什么目标C才能理解为什么这会起作用并返回NSMutableString?特别是因为基类NSString不知道我们想要一个可变字符串作为回报.

可以说内部[Class alloc]被调用会生成一个类型的对象NSMutableString,但即使这是纯粹的猜测,因为我们没有源代码,stringWithString:可以在内部做任何想做的事情.

是否所有这些类方法都在子类中重新实现?如果是,为什么不记录这个?

objective-c nsstring nsmutablestring

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

如何在iOS上生成带有"真实"文本内容的PDF?

我想在iOS 6应用程序中生成一个好看的PDF.

我试过了:

  • UIView在上下文中呈现
  • 使用CoreText
  • 使用NSString drawInRect
  • 使用UILabel drawRect

这是一个代码示例:

-(CGContextRef) createPDFContext:(CGRect)inMediaBox path:(NSString *) path
{
    CGContextRef myOutContext = NULL;
    NSURL * url;

    url = [NSURL fileURLWithPath:path];
    if (url != NULL) {
        myOutContext = CGPDFContextCreateWithURL ((__bridge CFURLRef) url,
                                                  &inMediaBox,
                                                  NULL);
    }


    return myOutContext;
}

-(void)savePdf:(NSString *)outputPath
{
    if (!pageViews.count)
        return;

    UIView * first = [pageViews objectAtIndex:0];

    CGContextRef pdfContext = [self createPDFContext:CGRectMake(0, 0, first.frame.size.width, first.frame.size.height) path:outputPath];

    for(UIView * v in pageViews)
    {
        CGContextBeginPage (pdfContext,nil);
        CGAffineTransform transform = CGAffineTransformIdentity;
        transform = CGAffineTransformMakeTranslation(0, …
Run Code Online (Sandbox Code Playgroud)

pdf uikit quartz-2d ios

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

如何正确使用“时间”输入元素?

我有一个 React 组件,它呈现以下 html:

        <input
          type="time"
          step="1"
          value={this.state.time}
          className="form-control"
          placeholder="Time"
          onChange={(ev) => {this.setState({time:ev.target.value})}
        />
Run Code Online (Sandbox Code Playgroud)

这种“有点”有效,但问题是我无法在输入字段中输入两位数。假设我想输入 00:23:00。我从一个如下所示的时间字段开始:

00:00:00

接下来,我用鼠标单击中间的一对零。我按键盘上的“2”。现在它看起来像这样:

00:02:00

然而,当我输入“3”时(无论我执行的速度有多快),发生的情况是我的值如下所示:

00:03:00

虽然我希望它看起来像这样:

00:23:00

如果我删除该value属性,一切都会按预期工作,但在这种情况下,我无法在时间字段中设置起始值,这在编辑现有内容时相当烦人。

我猜想会setState触发组件的重新渲染,使其行为异常。

有想法该怎么解决这个吗?

reactjs

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

SwiftUI fullScreenCover 无动画

如何禁用动画fullScreenCover?我希望视图直接显示,而不是从底部滑入。

谢谢

编辑:似乎问题由于缺乏“调试细节”而被关闭。严重地?

上面的调用默认为动画幻灯片,我只是想知道如何在没有动画的情况下做到这一点。不知道这里需要什么“调试细节”......

xcode ios swift swiftui

6
推荐指数
0
解决办法
445
查看次数

如何使用autolayout将UIScrollView滚动到viewWillAppear的底部,没有可视化动画

这是问题所在:

我在UIScrollView中放了一堆视图.这些子视图的大小和位置由约束定义.这非常有效,滚动效果也很好.到现在为止还挺好.

但是,当我第一次在屏幕上显示viewcontroller时,我希望我的scrollview一直滚动到底部,这就是麻烦开始的地方.为了知道底部的位置,我需要知道子视图中最低元素的位置和大小.也应该很容易(因为我在某处提到了UIView):得到UIView的框架并且瞧.

我想在滚动视图出现在屏幕上之前将其滚动到底部(基本上,在viewWillAppear中),但是仅在viewWillAppear之后和viewDidAppear:之前调用约束.

viewWillAppear中获取UIView框架给了我一个零大小的CGRect.在viewDidAppear中做同样的事情给了我正确的CGRect.但是viewDidAppear对我来说太迟了,因为滚动视图已经在屏幕上,所以你看到内容向上移动.

有没有人有这个很好的解决方案?我尝试将代码放在viewDidLayoutSubviews中,但这也不起作用.

objective-c uiscrollview uiview ios autolayout

5
推荐指数
2
解决办法
1652
查看次数