bash中的典型提示,例如:
PS1="\u@\h:\w\$ "
Run Code Online (Sandbox Code Playgroud)
您可以使用显示后台作业的数量\j,例如:
PS1="\u@\h:\w [\j]\$ "
Run Code Online (Sandbox Code Playgroud)
这是有用的,因为我偶尔会忘记我有一个停止的工作,只有当它从shell手动注销时才会注意到它.
但是,95%的时间,后台作业计数为0并在提示中显示它是多余的.
如何在提示中显示作业计数,但前提是它非零?
我想计算聚合列中所有值的校验和.
换句话说,我想做一些相当于
md5(group_concat(some_column))
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是:
(如果你想知道,你可以确保值的连续符合一致的顺序,但是,不管你信不信,group_concat()接受其中的order by子句,例如group_concat(some_column order by some_column))
MySQL提供非标准的按位聚合函数BIT_AND(),BIT_OR()和BIT_XOR(),我认为这对这个问题很有用.在这种情况下,该列是数字,但我很想知道是否有一种方法可以使用字符串列.
对于此特定应用程序,校验和不必是安全的.
我想使用朴素的贝叶斯将文档分类为相对大量的类.我想确认一篇文章中实体名称的提及是否真的是该实体,这取决于该文章是否与该实体已被正确验证的文章类似.
比如说,我们在一篇文章中找到了"通用汽车"的文字.我们有一组数据,其中包含文章和中提到的正确实体.因此,如果我们在新文章中找到"通用汽车",那么它是否属于先前数据中包含已知正版的那类文章提到"通用汽车"与没有提到该实体的文章类别?
(我不是为每个实体创建一个类,并试图将每个新文章分类到每个可能的类中.我已经有一个启发式方法来查找实体名称的合理提及,我只是想验证有限数量的实体的可信度.实体名称提到该方法已经检测到的每篇文章.)
鉴于潜在的类和文章的数量相当大,天真的贝叶斯相对简单,我想在sql中完成整个过程,但我在评分查询时遇到问题...
这是我到目前为止所拥有的:
CREATE TABLE `each_entity_word` (
`word` varchar(20) NOT NULL,
`entity_id` int(10) unsigned NOT NULL,
`word_count` mediumint(8) unsigned NOT NULL,
PRIMARY KEY (`word`, `entity_id`)
);
CREATE TABLE `each_entity_sum` (
`entity_id` int(10) unsigned NOT NULL DEFAULT '0',
`word_count_sum` int(10) unsigned DEFAULT NULL,
`doc_count` mediumint(8) unsigned NOT NULL,
PRIMARY KEY (`entity_id`)
);
CREATE TABLE `total_entity_word` (
`word` varchar(20) NOT NULL,
`word_count` int(10) unsigned NOT NULL,
PRIMARY KEY (`word`)
);
CREATE TABLE `total_entity_sum` (
`word_count_sum` bigint(20) unsigned NOT NULL,
`doc_count` …Run Code Online (Sandbox Code Playgroud) 你怎么能廉价地双向加密一个32位的int,这样每个数字都映射到那个空间中的其他int并以一种难以预测的方式返回?
当然,并不需要在映射表中预先存储42.9亿个整数.
显然,某些csv输出实现会在最后一行的右侧截断字段分隔符,而在字段为空时仅截断文件中的最后一行.
示例输入csv,字段'c'和'd'可以为空:
a|b|c|d
1|2||
1|2|3|4
3|4||
2|3
Run Code Online (Sandbox Code Playgroud)
在下面的脚本中,我怎么知道我是否在最后一行,所以我知道如何正确处理它?
import csv
reader = csv.reader(open('somefile.csv'), delimiter='|', quotechar=None)
header = reader.next()
for line_num, row in enumerate(reader):
assert len(row) == len(header)
....
Run Code Online (Sandbox Code Playgroud) 在本演示中,苹果如何能够为背景中的照片实现(明显的)高斯模糊效果:
假设您想要估计不公布此信息的站点的用户群的大小.
人们更有可能获得具有不同概率的不同用户名.例如,如果系统上不存在用户名"nick",则可能具有极小的用户群.如果用户名为"starbaby",则可能是一个更大的网站.这似乎是一个简单的贝叶斯问题.
存在的问题是,不同的站点可能具有不同的允许用户名空间.我想,最大的问题是空间等常见字符的合法性.另一个可能会污染先前发布的问题是网站是否会在您想要的网站上显示名称,或者让您自己想出更具创意的名称.
您如何构建跨不同系统的用户名出现频率的训练集?有没有办法使用贝叶斯进行数值估算而不是分类到固定宽度的桶?
math machine-learning probability bayesian collective-intelligence
我经常发现自己正在与过度工程作斗争 - 负责设计软件的人提出了一种过于复杂的架构.
拥有用户永远不会知道的所有深奥功能,并且当你正在做一些所有杂志文章告诉你的东西是最新的,很酷的东西时,这一切都很好,但我们会花钱我们工作时间的一半是在这个纪念碑上我们的聪明,而不是,你知道,我们的用户需要的实际产品和高层管理人员希望在合理或至少有限的时间范围内完成.
当你开始没时间的时候,也就是说,如果你有机会,你可能只需要回到更简单的解决方案.
我们都听过这句话:Keep It Simple,Stupid™.
你如何在你的团队中过度复杂地战斗?
我最近不得不反复使用的一个例子是,当决定进入完全非规范化的数据库设计而不是RDBMS时."因为它更快!" 完全非规范化的数据库确实难以正确,并且仅适用于Flickr或ebay等真正专业的数据问题,而且相对于开发的其他部分而言,开发人员的时间可能非常昂贵.
python脚本如何知道它当前使用的系统内存量?(假设基于unix的操作系统)
我有一个嘈杂的python脚本,我想通过将其stderr输出指向/ dev/null(使用bash BTW)来保持沉默.
像这样:
python -u parse.py 1> /tmp/output3.txt 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
但它很快就会过早退出.嗯.我无法看到追溯因为当然与stderr一起出现了.如果我不指示某个地方的stderr,它会吵闹地运行.
因此,让我们尝试将其重定向到某个地方的文件而不是/ dev/null,并查看它的输出内容:
python -u parse.py 1> /tmp/output3.txt 2> /tmp/foo || tail /tmp/foo
Traceback (most recent call last):
File "parse.py", line 79, in <module>
parseit('pages-articles.xml')
File "parse.py", line 33, in parseit
print >>sys.stderr, "bad page title", page_title
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
因此,正在生成的stderr包含utf8,并且由于某种原因,python在被重定向时拒绝打印非ascii,即使它被定向到/ dev/null(当然python当然不知道).
即使它包含utf8,我如何使python脚本的stderr静音?有没有办法在没有重写这个脚本中的每个打印到stderr?