小编Dem*_*emi的帖子

长期存在的错误编程假设

我正在研究初级(也许是高级)软件工程师的常见错误和不良假设.

你最久以来最终纠正的假设是什么?

例如,我误解了整数的大小不是标准,而是取决于语言和目标.国家有点尴尬,但确实如此.

坦率地说; 你有什么坚定的信念,大致你维持这个假设多久了?它可以是关于编程,编程语言或计算机科学的算法,语言,编程概念,测试或其他任何内容.

methodology

281
推荐指数
90
解决办法
3万
查看次数

Python:Inflate和Deflate实现

我正在与服务器连接,该服务器要求发送给它的数据使用Deflate算法(Huffman编码+ LZ77)进行压缩,并且还发送我需要的数据以进行Inflate.

我知道Python包含Zlib,并且Zlib中的C库支持对InflateDeflate的调用,但这些显然不是由Python Zlib模块提供的.它提供压缩解压,但是当我拨打电话,如下列:

result_data = zlib.decompress( base64_decoded_compressed_string )
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error -3 while decompressing data: incorrect header check
Run Code Online (Sandbox Code Playgroud)

Gzip并没有更好; 在打电话时如:

result_data = gzip.GzipFile( fileobj = StringIO.StringIO( base64_decoded_compressed_string ) ).read()
Run Code Online (Sandbox Code Playgroud)

我收到错误:

IOError: Not a gzipped file
Run Code Online (Sandbox Code Playgroud)

这是有道理的数据是平减文件不是真正的Gzip压缩文件.

现在我知道有一个Deflate实现可用(Pyflate),但我不知道Inflate的实现.

似乎有几个选择:

  1. 在Python中查找InflateDeflate的现有实现(理想)
  2. 将我自己的Python扩展编写到包含InflateDeflate的zlib c库中
  3. 调用可以从命令行执行的其他内容(例如Ruby脚本,因为zlib中的Inflate/Deflate调用完全包含在Ruby中)

我正在寻求解决方案,但缺乏解决方案,我将感谢见解,建设性意见和想法.

附加信息:为了我需要的目的,放松(和编码)字符串的结果应该与下面的C#代码片段给出相同的结果,其中输入参数是与要压缩的数据相对应的UTF字节数组:

public static …
Run Code Online (Sandbox Code Playgroud)

c# python compression zlib

52
推荐指数
2
解决办法
4万
查看次数

在Mac上读取和写入USB(HID)中断端点

我正在尝试与一个相当具体的USB设备进行通信,并开发Windows和Mac代码.

该设备是带有HID接口(3级)的USB设备,带有两个端点,一个中断输入和一个中断输出.设备的性质使得只有在从主机请求数据时才从输入端点上的设备发送数据:主机向其发送设备在其输入中断端点上响应的数据.将数据传输到设备(写入)要简单得多......

Windows的代码非常简单:我获得了设备的句柄,然后调用ReadFile或WriteFile.显然,大部分底层异步行为都被抽象出来了.它似乎工作正常.

然而,在Mac上,它有点粘.我尝试了很多东西,没有一个已经完全成功,但这里有两件似乎最有希望的东西......

1.)尝试通过IOUSBInterfaceInterface访问设备(作为USB),遍历端点以确定输入和输出端点,并(希望)使用ReadPipe和WritePipe进行通信.不幸的是,我无法打开界面,返回值(kIOReturnExclusiveAccess)注意到某些东西已经让设备独占打开.我已经尝试使用IOUSBinterfaceInterface183,因此我可以调用USBInterfaceOpenSeize,但这会导致相同的返回错误值.

---更新
7/30/2010 --- 显然,Apple IOUSBHIDDriver会早期与设备匹配,这可能会阻止打开IOUSBInterfaceInterface.从一些挖掘中可以看出,防止IOUSBHIDDriver匹配的常见方法是编写具有更高探测分数的无代码kext(内核扩展).这将提前匹配,阻止IOUSBHIDDriver打开设备,理论上应该允许我打开接口并直接写入和读取端点.这没关系,但我更希望不必在用户机器上安装额外的东西.如果有人知道一个可靠的选择,我会感谢这些信息.

2.)将设备作为IOHIDDeviceInterface122(或更高版本)打开.为了读取,我设置了一个异步端口,事件源和回调方法,在数据就绪时调用 - 当数据从输入中断端点上的设备发送时.但是,要写入数据 - 设备需要 - 来初始化响应我找不到办法.我很难过.setReport通常写入控制端点,而且我需要一个不期望任何直接响应,没有阻塞的写入.

我在网上看了看并尝试过很多东西,但没有一个能给我带来成功.有什么建议?我不能使用很多Apple HIDManager代码,因为其中大部分是10.5+,我的应用程序也必须在10.4上运行.

c++ macos usb hid kernel-extension

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

用于在Cocoa中从Mac捕获音频并保存到文件的代码示例?

我应该在一个小型应用程序上工作,该应用程序从Mac的音频队列中捕获音频,并需要以合理的音频格式将其保存到磁盘.

有没有人可以分享一些不错的示例代码(Cocoa/Objective-C)?

我特别需要捕获传递给内置输出设备的音频以便记录它.任何见解?到目前为止,答案很有帮助,但没有帮助我理解如何捕获输出到输出的数据,与输入源无关.

audio macos cocoa objective-c

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

Ruby DSL(域特定语言)存储库,示例

我正在寻找Ruby DSLs(领域特定语言)的优秀示例.您知道哪些存储库,项目值得一读?它为什么(或者是它们)是很好的例子?

我对经过深思熟虑和设计的更复杂的例子特别感兴趣.

ruby dsl

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

如何使用修改过的标头进行HTTP GET?

使用修改后的头文件在Ruby中发出HTTP GET请求的最佳方法是什么?

我希望从日志文件的末尾获取一系列字节,并且一直在使用以下代码,但是服务器正在回放一个响应,说"它是服务器无法理解的请求"(服务器是阿帕奇).

require 'net/http'
require 'uri'

#with @address, @port, @path all defined elsewhere

httpcall = Net::HTTP.new(@address, @port)

headers = {
  'Range' => 'bytes=1000-'
}

resp, data = httpcall.get2(@path, headers)
Run Code Online (Sandbox Code Playgroud)
  1. 有没有更好的方法在Ruby中定义标头?
  2. 有谁知道为什么这会对Apache失败?如果我在浏览器中访问,http://[address]:[port]/[path]我会得到我正在寻找的数据而没有问题.

ruby http http-headers

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

如何在PHP中安全地执行与金钱相关的计算?

我正在研究一些报告输出脚本,需要对一些货币值进行一些基本的计算.

我知道浮点运算的局限性,但输入值都是十进制格式,所以如果我使用算术运算符,PHP会将它们转换为浮点数.

那么处理这些数字的最佳方法是什么?我应该使用BCMath吗?是否有类似于.NET中的Decimal的东西?或者如果我强制转换为int,使用算术运算符是否安全?

php finance

12
推荐指数
2
解决办法
4974
查看次数

以编程方式录制发送到内置输出,Mac OS X的声音

我有一个难题:

我需要找到一种方法来捕获正在通过管道连接到Mac OS X上的内置输出的原始音频数据.核心音频,HAL等.

我可以"聆听"内置输出和麦克风,但这些都不能提供正确的数据流 - 来自扬声器/内置输出的确切流(来自所有输入源的所有组合数据) .

欢迎任何建议,并表示赞赏.

audio macos cocoa stream core-audio

9
推荐指数
1
解决办法
4606
查看次数

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