我目前通过一堆记忆错误的AWK,sed,Bash和一小部分Perl进行文本文件操作.
我已经看到过一些地方,python很适合这种事情.我如何使用Python来替换shell脚本,AWK,sed和朋友?
我偶尔会不小心写git checkout ...
,这让我处于一个独立的头状态.我想知道为什么.这是"点故事":
> git checkout .
# checks out current directory
> git checkout ..
# Checks out parent directory, if in repository.
> git checkout ...
# Puts into detached head state?
> git checkout ....
error: pathspec '....' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud) 我正在编写一个iPhone应用程序,需要保存我的应用程序状态(5K左右).
我主要担心的是数据在升级过程中持续存在.我使用的一些应用程序显然错了,我宁愿不这样做!
我有一些代码,我经常复制一大块内存,通常只需要对它进行非常小的更改.
我已经实现了一个跟踪更改的系统,但我认为如果可能的话,可以告诉操作系统对内存进行"写时复制",并让它只处理那些部分的副本哪个改变了.然而,虽然Linux执行copy-on-write,例如fork()时,我找不到一种控制它并自己动手的方法.
我试图理解reveal.js(http://lab.hakim.se/reveal-js/#/)如何动态调整元素大小.
要查看此内容,请调整页面的高度,并查看元素(在某种程度上)在页面缩小时如何缩小.
但是,使用chrome检查器,我无法看到这种缩小是如何实际发生的,无论是在CSS还是Javascript中.
(我的兴趣来自于想要改进它,如果可能的话,但我很惊讶很难弄清楚它是如何工作的.)
我相信我会发疯,但请考虑以下C代码:
// file1.c
int first;
void f(void)
{ first = 2; }
Run Code Online (Sandbox Code Playgroud)
// file2.c
#include <stdio.h>
int first;
void f();
int main(void)
{
first = 1;
f();
printf("%d", first);
}
Run Code Online (Sandbox Code Playgroud)
这两个文件,由于某种原因将编译和链接在一起,并打印2
.我一直的印象是,除非我标记一个或另一个(但不是两者)的定义first
有extern
,这不会编译,这实际上整点extern
!
当我在Python 3中使用json.loads并捕获任何结果错误时,例如:
try:
data = json.loads(string)
except ValueError as err:
print(err)
Run Code Online (Sandbox Code Playgroud)
我收到了一条有用的消息:
Expecting ',' delimiter: line 12 column 12 (char 271)
Run Code Online (Sandbox Code Playgroud)
我希望能够向用户显示这一点,以及导致问题的确切位置(我正在阅读用户编写的JSON).我该如何走出直线和列?
我可以在err上使用正则表达式,但这感觉是一个坏主意,因为我不知道这个消息是否国际化,并且可能在不同版本的python中发生变化.有没有更好的办法?
对于您喜欢的语言有哪些专家调试提示,您认为每个人都应该使用?
作为一个例子,我将提供我的C++调试提示,它们之间的帮助我摆脱了我遇到的大多数错误,这种常常难以调试的语言.
C++
将编译器的警告级别提高到最大值,然后停止那些发生很多的警告,并且你已经决定不关心(对我来说它是未使用的参数).在警告级别非常高之前,g ++不会警告函数中缺少返回语句(我经常发现的问题).
学习如何打开编译器的调试标准库,并使用它!(-D_GLIBCXX_DEBUG for g ++).这会发现许多错误,还有助于准确显示错误发生的位置.
始终,始终,始终通过一个非常好的内存检查器(如valgrind)运行代码,并修复它产生的所有问题.
http://updates.html5rocks.com/2012/05/requestAnimationFrame-API-now-with-sub-millisecond-precision告诉我最近(Chrome 20)requestAnimationFrame获得了一个新的亚毫秒精度计时器,而且我有更新我的代码以支持它.
环顾周围的各种polyfills,他们似乎都在这个更新之前.它们是否具有某种功能(我不这么认为),或者根本没有最新的可用功能?我应该自己做这个时间(看起来有点浪费).
我们最近开始使用git,当有人提交了一个大的(~1.5GB文件),然后导致git在各种32位操作系统上崩溃时出现了一个令人讨厌的问题.这似乎是一个已知的错误(git mmaps文件到内存中,如果它无法获得足够的空间,它就无法工作),这不会很快得到修复.
简单(对我们而言)的解决方案是让git拒绝任何大于100MB左右的提交,但我无法想办法做到这一点.
编辑:问题来自意外提交大文件,在这种情况下是一个大的程序输出转储.目的是避免意外提交,只是因为如果开发人员意外地提交了一个大文件,然后尝试将其恢复到存储库是一个下午,没有人可以做任何工作,并且必须修复所有本地分支他们有.
c ×2
git ×2
javascript ×2
python ×2
bash ×1
compilation ×1
css ×1
debugging ×1
extern ×1
html ×1
html5 ×1
iphone ×1
json ×1
large-files ×1
linker ×1
linux ×1
objective-c ×1
reveal.js ×1
shell ×1