我运行Ubuntu 10.10.我只是想调试一个简单的脚本.在花了半天时间试图弄清楚如何做到这一点后,我放弃了.我该怎么办?
我ruby-dev
从Ubuntu存储库安装
我运行sudo gem install ruby-debug
和sudo gem install ruby-debug-ide
我尝试了几种不同的方法来完成这项工作.我尝试require 'ruby-debug'
然后debugger
在代码中设置某个地方.但是Ruby找不到ruby-debug
.
我尝试设置vim-ruby-debugger
,这将需要很长时间才能执行:Rdebugger myScript.rb
,并允许我设置断点,但似乎没有办法使用该调试器执行我的代码.
我尝试使用NetBeans,每次设置项目并单击任何内容时,它都会崩溃.
所以,亲爱的社区:必须有一种方法来调试Ruby.不是Rails.没有什么花哨.只是一些CLI脚本.请帮助我,否则我将失去理智.
编辑: gem exec dir不在我的路径中.所以,至少rdebug现在似乎有效.
在我的论文中,我有一个词汇表,解释了我使用的一些缩写.我把它放在桌子上让它看起来更好.但是,LaTeX不会在页面末尾打破行.
我知道我可以在表格中的任何一点强制换行,但它是一个很长的表(很多工作!)和手动换行使文本看起来锯齿状和丑陋.有没有一种很好的方法可以有一个漂亮的词汇表或在表中自动制作LaTeX断行?
......如果LaTeX不经常做这些事情我会非常喜欢它.就这样,我不断在感情和愤怒之间切换......
我正在使用Python和Numpy开发音频算法.现在我想通过在C中实现它的一部分来加速该算法.在过去,我使用cython完成了这个.现在我想用新的cffi做同样的事情.
出于测试目的,我写了一个简单的C函数:
void copy(float *in, float *out, int len) {
for (int i=0; i<len; i++) {
out[i] = in[i];
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想创建两个numpy数组,并由这个函数处理.我想出了一种方法:
import numpy as np
from cffi import FFI
ffi = FFI()
ffi.cdef("void copy(float *in, float *out, int len);")
C = ffi.dlopen("/path/to/copy.dll")
float_in = ffi.new("float[16]")
float_out = ffi.new("float[16]")
arr_in = 42*np.ones(16, dtype=np.float32)
float_in[0:16] = arr_in[0:16]
C.copy(float_in, float_out, 16)
arr_out = np.frombuffer(ffi.buffer(float_out, 16*4), dtype=np.float32)
Run Code Online (Sandbox Code Playgroud)
但是,我想改进这段代码:
ffi.buffer
非常方便快速转换为C数组的内容到Numpy数组.是否有一种等效方法可以快速将numpy数组转换为C数组而无需复制单个元素?float_in[0:16] = arr_in[0:16]
是一种访问数据的便捷方式.相反,arr_out[0:16] = float_out[0:16] …
我想使用Windows命令行编译一个简单的hello-world风格的程序.
cl file_name.c
Run Code Online (Sandbox Code Playgroud)
很容易.现在我想在64位中做同样的事情.我该怎么办?
我按照以下方式编写了一个函数:
void myFunc(myStruct *&out) {
out = new myStruct;
out->field1 = 1;
out->field2 = 2;
}
Run Code Online (Sandbox Code Playgroud)
现在在一个调用函数中,我可能会写这样的东西:
myStruct *data;
myFunc(data);
Run Code Online (Sandbox Code Playgroud)
这将填补所有领域data
.如果我省略&
声明中的' ',这将无效.(或者更确切地说,它只能在函数本地工作,但不会改变调用者中的任何内容)
有人可以向我解释这*&
实际上是做什么的吗?它看起来很奇怪,我只是无法理解它.
在我作为程序员的短暂时间内,我在许多平台上使用了许多开发环境.最值得注意的是,Eclipse/Linux,XCode/OSX,CLI /编辑器/ Linux,VisualDSP/Blackfin/Windows和MSVC/Windows.(我用了几个月)
几乎所有这些都有很好的功能.但不知何故,我在MSVC中找不到任何东西.话又说回来,所以很多人似乎真的很喜欢它,所以我可能失去了一些东西.所以请告诉我:Visual Studio的优点是什么?
我喜欢的事:
我不喜欢的事情
老实说,这并不意味着咆哮.当然我是一个Mac头并且有点偏向地狱,但我必须在工作中使用MSVC,所以我真的很想喜欢它.
我有一个MVC应用程序.该模型具有一个结构属性NSSize
.这是可写的:
- (void)setSize:(NSSize)aSize;
Run Code Online (Sandbox Code Playgroud)
视图NSSize
使用键值编码设置它.但是,你不能对结构进行键值编码,所以我把它包装在一个NSValue
像这样的对象中:
[theView setValue:[NSValue valueWithSize:mySize]
forKey:@"theModel.size"];
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该不起作用,因为访问器需要一个结构而不是一个结构NSValue
.但它完美无缺.奇妙的.
这怎么可能?
我有两个文件想要一起玩.但是,应省略第一个文件的最后一行和最后一个文件的第一行.
我确信这可以在UNIX shell(或者更确切地说,Cygwin)中完成.但是怎么样?
所以我有这个巨大的树,基本上是一个大的开关/案例,带有字符串键和一个公共对象上的不同函数调用,具体取决于键和一个元数据.
每个条目基本上都是这样的
} else if ( strcmp(key, "key_string") == 0) {
((class_name*)object)->do_something();
} else if ( ...
Run Code Online (Sandbox Code Playgroud)
哪里do_something
可以有不同的调用,所以我不能只使用函数指针.此外,某些键需要将对象强制转换为子类.
现在,如果我用更高级别的语言编写代码,我会使用lambdas字典来简化这一过程.
在我看来,我可以使用宏来简化这类
case_call("key_string", class_name, do_something());
case_call( /* ... */ )
Run Code Online (Sandbox Code Playgroud)
哪个case_call
是将此代码扩展到第一个代码段的宏.
然而,我非常关注这是否会被视为好风格.我的意思是,它会减少打字工作并改善代码的干燥度,但它确实似乎在某种程度上滥用了宏系统.
你会走那条路,还是整理出整条路?你这样做的原因是什么?
编辑
一些澄清:
此代码用作简化脚本API之间的粘合层,该API作为简单的键值属性访问C++ API的几个不同方面.这些属性在C++中以不同的方式实现:有些具有getter/setter方法,有些是在特殊结构中设置的.脚本操作引用C++对象转换为公共基类.但是,某些操作仅适用于某些子类,必须进行转换.
接下来,我可能会更改实际的C++ API,但目前,它必须被视为不可更改.此外,这必须在嵌入式编译器上工作,因此(遗憾的是)boost或C++ 11不可用.
我有一个需要相当长时间的任务,应该在后台运行.根据文档,这可以使用NSOperationQueue
.但是,我不想保留类的全局副本,NSOperationQueue
因为我实际上只将它用于那个任务.因此,我只是将其设置为自动释放,并希望在任务完成之前不会释放它.有用.
像这样:
NSInvocationOperation *theTask = [NSInvocationOperation alloc];
theTask = [theTask initWithTarget:self
selector:@selector(doTask:)
object:nil];
NSOperationQueue *operationQueue = [[NSOperationQueue new] autorelease];
[operationQueue addOperation:theTask];
[theTask release];
Run Code Online (Sandbox Code Playgroud)
不过,我有点担心.这保证有效吗?或者可能operationQueue
会在某个时候取消分配并接受theTask
它?
c ×2
c++ ×2
objective-c ×2
64-bit ×1
arrays ×1
autorelease ×1
bash ×1
cocoa ×1
coding-style ×1
command-line ×1
concurrency ×1
debugging ×1
eclipse ×1
latex ×1
line ×1
macros ×1
numpy ×1
pointers ×1
python ×1
python-cffi ×1
reference ×1
ruby ×1
struct ×1
text-files ×1
xcode ×1