我一直在解析一些日志文件,我发现有些行太长而无法显示在一行上,所以Terminal.app将它们包装到下一行.但是,我一直在寻找一种方法来截断一定数量的字符之后的一行,以便终端不会换行,从而更容易发现模式.
我写了一个小的Perl脚本来做到这一点:
#!/usr/bin/perl
die("need max length\n") unless $#ARGV == 0;
while (<STDIN>)
{
$_ = substr($_, 0, $ARGV[0]);
chomp($_);
print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
但我有一种感觉,这个功能可能内置于其他一些工具(sed?),我只是不知道该用于此任务.
所以我的问题是一个相反的问题:如何在没有编写程序的情况下截断一行stdin?
PHP,我们都知道是非常松散的类型.该语言不要求您为函数参数或类变量指定任何类型的类型.这可能是一个强大的功能.
但有时候,它可以使调试脚本成为一种痛苦的经历.例如,将一种对象传递给需要不同类型对象的方法可能会产生错误消息,抱怨传递的对象不存在某个变量/方法.这些情况大多是烦恼.更糟糕的问题是当您使用错误类的对象初始化一个对象时,并且直到稍后在脚本执行中才会使用"错误对象".在这种情况下,您最终得到的错误要比通过原始参数的时间晚得多.
而不是抱怨我传递的内容没有特定的方法或变量,或者等待很久以后在脚本执行中为我传入的对象使用,我宁愿有一条错误消息,在我指定对象的确切位置错误的类型,抱怨对象的类型不正确或不兼容.
你如何处理代码中的这些情况?你如何检测不兼容的类型?如何在脚本中引入一些类型检查,以便我可以更容易理解错误消息?
另外,如何在Php中考虑继承时如何做到这一切?考虑:
<?php
class InterfaceClass
{
#...
}
class UsesInterfaceClass
{
function SetObject(&$obj)
{
// What do I put here to make sure that $obj either
// is of type InterfaceObject or inherits from it
}
}
?>
Run Code Online (Sandbox Code Playgroud)
然后,此代码的用户使用自己的具体类实现接口:
<?php
class ConcreteClass extends InterfaceClass
{
}
?>
Run Code Online (Sandbox Code Playgroud)
我希望ConcreteClass实例以及所有未来的未知用户定义对象也可以被SetObject接受.如何在检查正确类型时允许这样做?
提出的问题出现在第二年的Comp Science讲座中,同时讨论了在确定性计算设备中生成数字的不可能性.
这是唯一不依赖于非商品级硬件的建议.
随后,没有人会把他们的名声放在最后,无论是支持还是反对.
任何人都愿意支持或反对.如果是这样,如何提及可能的实施?
我作为软件开发人员出现在一个由拥有封闭源软件的大公司主导的专有世界中 - 它没有受到质疑.随着我的职业生涯的发展,互联网变得越来越多,我接触到越来越多的开源软件.
回顾大多数库,我不是在谈论应用程序级代码,而是我们为雇主编写的实用程序,其中很少有直接的竞争优势,甚至更少的内在代表了您认为的知识产权.越来越多的库,框架和实用程序具有开源等价物.现在,我和我一起工作的开发人员在开始实现这样的代码之前首先寻找现有的库是很常见的.
这已经发生了很大变化.许多图书馆可能因缺乏维护而枯萎作为开放源代码,如果他们这样做,我的雇主也不会受到影响.如果他们兴旺或至少吸引了提交,那么这些雇主就会受益 - 这是我现在的雇主所发生的.
现在,看看我们面前的情况,我开始认为,对于我们将要编写的大部分库和框架,我们应该假设它们将成为开源来创建它们.那对于图书馆,公用事业和框架而言,这应该是基本情况,而不是假设它们将被关闭,然后你必须努力使它们开放 - 事实证明,事实上它往往是更多的工作(获得批准,执行评审和清理).
基础案例是开源的,我认为会有好处:
感觉这是一种趋势,至少在图书馆和框架层面 - 在我看来不是在应用程序层面.这是一个多元化的社区,您有什么看法?
我将报告生成为CSV文件.当我尝试在Excel中打开文件时,它会根据单元格的内容对数据类型进行假设,并相应地重新格式化.
例如,如果CSV文件包含
...,005,...
Run Code Online (Sandbox Code Playgroud)
然后Excel将其显示为5.有没有办法覆盖它并显示005?
我宁愿对文件本身做一些事情,这样用户只需双击CSV文件即可打开它.
我使用Excel 2003.
我在教学/帮助学生编程.
我记得当我开始时,以下过程总能帮助我; 它看起来非常直观,我想知道其他人是否有类似的方法.
随着时间和实践,我似乎忘记了从问题描述转到编码解决方案有多难,但是,通过应用这种方法,我设法学习如何编程.
所以对于项目描述如下:
系统必须根据以下规则计算物品的价格(规则的描述......客户,折扣,可用性等等.等等.)
我的第一步是了解问题所在.
然后识别项目,规则变量等.
伪代码类似于:
function getPrice( itemPrice, quantity , clientAge, hourOfDay ) : int
if( hourOfDay > 18 ) then
discount = 5%
if( quantity > 10 ) then
discount = 5%
if( clientAge > 60 or < 18 ) then
discount = 5%
return item_price - discounts...
end
Run Code Online (Sandbox Code Playgroud)
然后将其传递给编程语言..
public class Problem1{
public int getPrice( int itemPrice, int quantity,hourOdDay ) {
int discount = 0;
if( hourOfDay > 10 ) …Run Code Online (Sandbox Code Playgroud) 有没有人建议在哪里可以找到用于小型语料库的档案或日常英语文本集合?我一直在使用古腾堡项目的书籍作为工作原型,并希望融入更多现代语言.一个最近的答案在此间接指出了一个伟大的新闻组电影评论归档,这对我没有发生,而且非常好.对于这个特定的程序,技术usenet档案或编程邮件列表会使结果倾斜并且难以分析,但任何类型的一般博客文本,聊天记录或任何可能对其他人有用的东西都会非常有用.此外,非常感谢部分或可下载的研究语料库,其中没有太多标记,或者用于查找维基百科文章的适当子集或任何其他想法的一些启发式.
(顺便说一句,我是一个很好的公民,没有下载,使用一个故意慢的脚本,对托管这种材料的服务器没有要求,以防你认为道德风险指向我巨大的东西.)
更新:用户S0rin指出维基百科请求不爬行,而是提供此导出工具.Project Gutenberg 在这里指定了一个策略,底线,尽量不要抓取,但是如果你需要:"配置你的机器人在请求之间至少等待2秒."
更新2 维基百科转储是要走的路,这要归功于指出它们的回答者.我最终使用的是英文版本:http://download.wikimedia.org/enwiki/20090306/,西班牙文件大小只有一半.它们是一些清理工作,但非常值得,它们在链接中包含许多有用的数据.
我有一个SQL查询(MS Access),我需要添加两列,其中任何一列都可以为null.例如:
SELECT Column1, Column2, Column3+Column4 AS [Added Values]
FROM Table
Run Code Online (Sandbox Code Playgroud)
其中Column3或Column4可以为null.在这种情况下,我想将null视为零(so 4 + null = 4, null + null = 0).
有关如何实现这一点的任何建议?
偶尔我会遇到一个没有断言的单元测试.我今天早上遇到的特定示例是测试在满足条件时写入日志文件.假设是如果没有抛出错误,则测试通过.
我个人对此没有任何问题,但是编写单元测试似乎有点"代码味道",没有任何关联它的断言.
只是想知道人们对此的看法是什么?
algorithm ×1
assert ×1
corpus ×1
csv ×1
cut ×1
embed ×1
excel ×1
flash ×1
formatting ×1
html ×1
linguistics ×1
ms-access ×1
nlp ×1
oop ×1
open-source ×1
perl ×1
php ×1
process ×1
random ×1
sql ×1
theory ×1
truncate ×1
type-safety ×1
unit-testing ×1