jjzjj

linux - 你将如何在 Linux 上构建 "pixel perfect"GUI?

我想构建一个GUI,其中每个像素都在我的控制之下(即不使用GTK+等提供的标准小部件)。Renoise是我想要制作的一个很好的例子。下降到Xlib或XCB级别是最好的方法,还是可以使用GTK+(甚至可能是PyGTK)等更高级别的框架来实现?我应该去开罗看图纸吗?如果可能的话,我想使用Python或Ruby,但C也很好。 最佳答案 与Clutter工具包(或其他一些Canvas小部件/工具包),您可以构建这样的界面。我不建议进入Xlib/XCB或DrawingArea级别,因为它需要实现Canvas中已经存在的许多通用功能。

php - 你将如何编写一个反剽窃网站?

首先,请注意,我对这样的东西如何工作很感兴趣,并且不打算为客户端等构建它,因为我确信可能已经有开源实现。在上传的文本中检测抄袭的算法是如何工作的?它是否使用正则表达式将所有单词发送到索引,去除已知单词,如“the”、“a”等,然后查看不同文章中有多少单词相同?他们是否有神奇数量的相同单词将其标记为可能重复?它是否使用levenshtein()?我选择的语言是PHP。更新我正在考虑不在全局范围内检查抄袭,而是在一个类(class)的30篇上传的论文中发表更多言论。如果学生聚在一起完成一项严格的单人作业。这是一个声称这样做的在线网站:http://www.plagiarism.org/

python - 你将如何在 python 的数组中对这三个区域进行分组/聚类?

所以你有一个数组123607080100220230250为了更好地理解:你将如何在python(v2.6)中对数组中的三个区域进行分组/聚类,所以在这种情况下你会得到三个包含的数组[123][607080100][220230250]背景:y轴是频率,x轴是数字。这些数字是由它们的频率表示的十个最高振幅。我想从中创建三个离散数字以进行模式识别。可能有更多点,但所有点都按相对较大的频率差异分组,如您在本例中看到的大约50和大约0之间以及大约100和大约220之间。请注意,什么是大的,什么是小的变化,但是与组/集群的元素之间的差异相比,集群之间的差异仍然显着。

python - 你将如何在 Python 中压缩未知数量的列表?

假设我有以下列表:assignment=['Title','Project1','Project2','Project3']grades=[['Jim',45,50,55],\['Joe',55,50,45],\['Pat',55,60,65]]我可以使用以下代码压缩列表:zip(assignment,grades[0],grades[1],grades[2])如果成绩列表包含未知数量的项目,我将如何使用zip功能来压缩这个? 最佳答案 您可以使用*到unpack位置参数列表:zip(assignment,*grades)

c++ - 你将如何实现一个基本的事件循环?

如果您使用过gui工具包,您就会知道在一切完成后应该执行一个事件循环/主循环,这将使应用程序保持活跃并响应不同的事件。例如,对于Qt,您可以在main()中执行此操作:intmain(){QApplicationapp(argc,argv);//initcodereturnapp.exec();}在本例中,app.exec()是应用程序的主循环。实现这种循环的明显方法是:voidexec(){while(1){process_events();//createathreadforeachnewevent(possibly?)}}但这会将CPU限制为100%,并且实际上毫无用处。现在,我

Python:你将如何保存一个简单的设置/配置文件?

我不在乎它是JSON、pickle、YAML还是其他。我见过的所有其他实现都不向前兼容,所以如果我有一个配置文件,在代码中添加一个新键,然后加载该配置文件,它就会崩溃。有什么简单的方法吗? 最佳答案 python中的配置文件根据所需的文件格式,有几种方法可以做到这一点。ConfigParser[.ini格式]我会使用标准configparser除非有令人信服的理由使用不同的格式。像这样写一个文件:#python2.x#fromConfigParserimportSafeConfigParser#config=SafeConfigPa

python - 你将如何从字符串列表中创建一个逗号分隔的字符串?

从一个序列中连接字符串的首选方法是什么,以便在每两个连续对之间添加一个逗号。也就是说,例如,如何将['a','b','c']映射到'a,b,c'?(情况['s']和[]应该映射到's'和'',分别。)我通常最终会使用类似''.join(map(lambdax:x+',',l))[:-1]之类的东西,但也觉得有些不满意。 最佳答案 my_list=['a','b','c','d']my_string=','.join(my_list)'a,b,c,d'如果列表包含整数,这将不起作用如果列表包含非字符串类型(例如整数、float、boo

ruby - 你将如何在 ruby​​ 中实现这个习惯用法?

作为Java出身的Ruby新手,我想知道是否有使用ruby​​执行此操作的简单方法。new_values=foo(bar)ifnew_valuesifarrarr 最佳答案 假设“arr”是数组或nil,我会使用:arr||=[]arr如果您在循环或类似的循环中执行此操作,则可能有更多惯用的方法来执行此操作。例如,如果您正在迭代一个列表,将每个值传递给foo(),并构建一个结果数组,您可以只使用:arr=bars.map{|bar|foo(bar)} 关于ruby-你将如何在ruby​​

ruby - 在Ruby中,如果你将一个函数赋值给一个变量,为什么它会自动运行?

使用下面的代码:variable=puts"helloworld".upcase为什么Ruby会自动将Helloworld大写,而不先调用变量?我知道您正在将函数设置为变量,如果调用该变量,它将返回返回值(在本例中为nil),但为什么Ruby运行方法puts"helloworld"。upcase几乎未经许可(没有调用它,只是分配给一个变量)? 最佳答案 您没有将函数分配给变量。这是一样的variable=(puts("helloworld".upcase))需要执行puts将返回值赋值给变量variable(笑)这是一种将方法分配给

go - 你将如何在 Go 中设置和清除单个位?

在Golang中,如何设置和清除整数的各个位?例如,行为如下的函数:clearBit(129,7)//returns1setBit(1,7)//returns129 最佳答案 这是一个设置位的函数。首先,将数字1移动整数中指定的空格数(因此变为0010、0100等)。然后将其与原始输入进行或。这不会影响其他位,但将始终将目标位设置为1。//Setsthebitatposintheintegern.funcsetBit(nint,posuint)int{n|=(1这是一个清除一点的函数。首先将数字1移动整数中指定的空格数(因此它变为0