非正式地,我们大多数人都知道存在"二进制"文件(目标文件,图像,电影,可执行文件,专有文档格式等)和"文本"文件(源代码,XML文件,HTML文件,电子邮件等).
通常,您需要知道文件的内容才能对其执行任何有用的操作,并且如果编码是"二进制"或"文本",则形成该视点,这并不重要.当然,文件只存储数据字节,因此它们都是"二进制",而"文本"并不意味着什么,而不知道编码.然而,谈论'二进制'和'文本'文件仍然很有用,但为了避免冒犯任何具有这种不精确定义的人,我将继续使用'恐慌'报价.
但是,有各种工具可以处理各种文件,实际上,您希望根据文件是"文本"还是"二进制"来执行不同的操作.这方面的一个例子是在控制台上输出数据的任何工具.简单的"文本"看起来很好,很有用.'二进制'数据会扰乱您的终端,并且通常无法查看.GNU grep在确定是否应该输出匹配到控制台时至少使用这种区别.
那么,问题是,如何判断文件是"文本"还是"二进制"?而且要进一步限制,你如何在类似Linux的文件系统上讲述?我不知道任何文件系统元数据指示文件的"类型",所以通过检查文件的内容,我如何判断它是"文本"还是"二进制"?为简单起见,我们将"text"限制为可在用户控制台上打印的字符.特别是你会如何实现这个?(我认为这是暗示在这个网站上,但我想一般来说,指向现有的代码,这应该是有用的,我应该指定),我不是真的在我可以使用的现有程序之后做什么这个.
我正在尝试从Haskell源代码创建一个共享库.
我试过按照这里的说明:http://weblog.haskell.cz/pivnik/building-a-shared-library-in-haskell/但我没有运气.
当我使用Haskell 64位(2011.4.0.0中的ghc 7.0.4)编译时,我收到以下错误:
ld: pointer in read-only segment not allowed in slidable image, used in
___gmpn_modexact_1c_odd
Run Code Online (Sandbox Code Playgroud)
作为替代方案,我也尝试了32位版本,并根据我用来链接获取错误的确切标志,例如:
Library not loaded: /usr/local/lib/ghc-7.0.4/base-4.3.1.0/libHSbase-4.3.1.0-ghc7.0.4.dylib
Run Code Online (Sandbox Code Playgroud)
通过将-lHSrts添加到链接器行,我确实设法得到了更多.这让我成功地链接和加载库,但我无法使用dlsym找到函数名称(或者手动使用nm | grep)
任何提示将不胜感激,一个示例生成文件,或成功构建(和使用)OS X上的共享库的构建行将不胜感激.我对Haskell很新,并且不知道我是否应该继续敲打我的脑袋,假设问题出现在我的最后,或者出于各种原因我不应该期望这在OS X上工作.
我尝试过的所有组合的git repo都可以在这里找到:https://github.com/bennoleslie/haskell-shared-example我确实设法为32位ghc工作,但不是64位.
这个问题最初是在询问"你在软件开发组织中使用什么KPI".不幸的是,似乎KPI是一个四个字母的单词,并且直接的假设是KPI总是被误用(也许它们是?).
所以,我希望能够改进这个问题,以实现我最初认为KPI有用的基本目标.假设您有一些流程来说明您(或您的组织)如何开发软件.其次假设您(或您的团队)希望在开发和交付软件方面做得更好.最后,假设改进的方法之一是改进您的过程.
鉴于这一切,您如何知道您的流程改进是否产生了积极影响?如果这些是KPI或[SMART目标](http://en.wikipedia.org/wiki/SMART_ ( project_management),请提供您认为有效的KPI/SMART目标的个人或团体.如果是其他一些机制请解释它是什么.最后,我想,如果你不认为改进过程是有用的,我想你也可以解释一下.
我认为有用的改进领域是:质量,发布的及时性,生产力,灵活性.如果个人或开发团队的其他方面,那么知道这将是有趣的.
澄清笔记:
问题不在于如何最好地适应或改变一个过程,或者一个好的过程改进过程(无论是Kaizen,回顾等).它也不是关于根本原因分析或用于确定应该改进过程的哪些具体方面的其他方法.
使用措施来确定是否已实现过程改进,不应与正在进行的过程改进相混淆.(这是一件好事,但这不是问题所在!)
这个过程可能是任何事情; scrum,敏捷,极端,瀑布,ad-hoc.这个问题不是关于哪种过程最适合某些类型的软件开发,而是关于如何随着时间推移改进该过程.
显然,具体指标将取决于所涉及的过程以及试图改进的感知问题.这个问题的目的只是为了获得所用指标的例子,这显然会跨越许多不同的流程和改进领域.
度量不需要的东西,用所有的时间,例如,可以只使用它,而如果测试过程改变的作品.(例如,在任何时候进行测量和跟踪都可能过于昂贵 - 时间或金钱明智 - 因此您只需跟踪它就会调整过程).
如果实施不当,使用度量可能会对开发人员游戏系统或其他方面产生不利影响.假设实施流程变更的人员已意识到此问题并已采取有效措施来缓解此问题.
所有软件组织都不同,它们如何适应公司,因此公司内部会有不同的特定事物,但我认为产品质量,生产力,灵活性和发布的及时性适用于大多数(如果不是所有)组织.(根据具体的组织,明显不同的重点.)
这个问题与源代码行无关!特别是,我对测量程序员的工作效率不感兴趣,特别是在SLOC或固定的错误数量或任何其他天真的测量方面.我对团队或个人衡量他们改进的更高层次方式感兴趣.我对使用单个KPI来衡量任何人的表现并不感兴趣.我有兴趣使用一系列KPI来衡量和改进我的团队的软件开发过程.
我知道关于KPI被滥用和无效的恐怖故事(你不需要非常努力地找到它们),但我无法相信没有人试图不断改进他们的流程,所以必须有一些关键绩效指标的好例子.
我知道应用于各个软件程序员的简单度量的缺点.我真的希望得到人们认为有用的KPI或替代策略的例子,而不是我不应该使用KPI的所有原因.
我最感兴趣的是与大型公司内的开发组织相关的流程和性能,而不是整个软件开发公司.例如,软件公司应该确保产品具有适合市场的功能,但通常是产品管理的角色,而不是工程.是的,关于工程师应该参与产品管理的原因和程度,还有一个完整的其他讨论,但这是一个单独的讨论.
在Postgres中将布尔字段从JSONB对象转换为普通bool类型的最佳方法是什么?
例如,我有一个JSON对象{"foo": true},我可以在Postgresql中使用它.例如:select ('{"foo": true}'::jsonb);它给了我一些类型JSONB.
现在我想将foo字段提取为布尔值.如果我做:
select ('{"foo": true}'::jsonb)->'foo';
Run Code Online (Sandbox Code Playgroud)
我得到了JSONB类型的东西.
但是,我无法将JSONB强制转换为布尔值.如果不是我做的:
select ('{"foo": true}'::jsonb)->>'foo';
Run Code Online (Sandbox Code Playgroud)
我会找回类型字符串的东西.从那我可以转换为布尔值.(例如:)
select (('{"foo": true}'::jsonb)->>'foo')::bool;
Run Code Online (Sandbox Code Playgroud)
但是从内部表示到字符串,然后再回到另一个内部表示,这似乎有点蠢.
有没有直接去布尔?
我目前最好的工作似乎是:
select (('{"foo": true}'::jsonb)->'foo') = 'true'::jsonb;
Run Code Online (Sandbox Code Playgroud)
但这似乎有点不对劲.
reactjs isMountedAPI 的文档提到:
您可以使用此方法来保护对
setState()或的 异步调用forceUpdate().
我的主要问题是何时应该通过电话来setState()保护isMounted()?
在最初的AJAX教程http://facebook.github.io/react/tips/initial-ajax.html的setState在XHR回调使用使用isMounted()后卫,但这个要求?
第二个问题是,如果需要,为什么会这样呢?看起来检查本身非常简单,并且可以内联到setState()没有任何显着的性能损失,但API使用的大量简化.
ascii ×1
binaryfiles ×1
file-format ×1
ghc ×1
haskell ×1
json ×1
kpi ×1
macos ×1
postgresql ×1
reactjs ×1
unix ×1