V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  FrankHB  ›  全部回复第 90 页 / 共 92 页
回复总数  1830
1 ... 82  83  84  85  86  87  88  89  90  91 ... 92  
@dorentus 我看到的LZ说的“统一”修饰的是“处理”,于是理解为有“一致”的规约。所以我给出了我正在使用的整套方案。仔细看你还会注意到,里面已经对不同形式和目的的内容给出例外了,并非都使用UTF-8+BOM。
不过,一开始没特别注意到后来回复的“不想自己的习惯设定和别人差异太大”,那么我得承认这不太符合LZ的要求。不过关于这点我希望能被理解:这里没有谁强调尽量减小差异就是最终目的。
和你看样子理解的一样,加了BOM之后,剩下的东西和BOM不一样了,在这个意义上不“统一”。但这是有意的。上面已经解释过大概,这里再补充一点理由。
类比解释就好像一些媒体文件的封装格式,有效“负载”内容不同于全部文件内容,通常典型地还有附加的元数据。BOM对于文本文件来说就是附加在文件头的元数据。作为持久储存的形式,元数据的存在即在一定意义上表明维护者注意到了文件的完整性及其对内容的限定。而例外则是考虑到使用形式(用于拼接)或者储存之外更主要的目的(作为脚本执行)的实际限制来设定的。
0.禁用AutoCRLF。
1. indent必须使用U+0009,alignment必须使用U+0020,禁止混用表示单一用途。没为什么,这就是这些字符的原意。如果文本编辑器显示会抽风/没法配置,那说明的编辑器太残了。
2. 除了特定的脚本(依赖shebang/Windows批处理)或者准备到处cat的东西,都使用UTF-8+BOM。
UTF-8尽管空间效率不一定就高,但是兼容性良好。如果是其它编码,至少也得用基于UCS的。GBK首先的问题就是没法涵盖某些字符,换GB18030经常又不如UTF-16。UTF-8的另外一个好处是字节序统一,没有纠结LE和BE的必要。
没有BOM的东西充其量只是可能随处中断不完整的byte sequence,是不是就配叫regular file呢,值得怀疑。
3.只要使用的实现支持CR的情况就CR+LF。大多数实用的编辑器同时支持两者,有些支持检查不当的混用。注意有些协议要求CR+LF。而违反CR+LF导致的错误比违反LF通常更容易检查。
Reference: https://bitbucket.org/FrankHB/yslib/wiki/WikiRules.en-US.md
2014-12-21 23:25:03 +08:00
回复了 yourmoonlight 创建的主题 程序员 请问:程序猿能不能戴金链子。。。工作场合合适么?
看你戴哪。
看不见的话就无所谓。
否则,小心飞车党。
2014-12-21 23:05:17 +08:00
回复了 greatdk 创建的主题 随想 关于开源
@abscon 关于Linus反对在具体项目中改用GPLv3,应该有这么两个主要原因:
1.他自己对GPLv3不买账。
2.他主导的项目有数量庞大的贡献者,绝大多数部分的copyright owner都不是他本人。已经使用GPLv2发布的东西自身是不允许随便relicense的,没有事先另行许可他得联络所有把所有要发布的材料相关权利人,他无权更换许可证。只有所有人都同意才行——这在现实中操作难度很大(另一方面,也可以作为拒绝更换许可证的托词,比如mercurial),因此不可行。
后面这点往往是更多项目会遇到的实际问题。对于GPL,解决相对简单,如一开始就使用:GPLv2 “or later”。(副作用是这也让FSF有了更大的控制权,不过对于GPL用户,大多数人恐怕不在乎。)否则,要么使用允许relicense的许可证,要么让每个贡献者事先签订其它附加许可。
2014-12-21 22:55:21 +08:00
回复了 greatdk 创建的主题 随想 关于开源
@twl007 我认为你还是有些误会。要我说的话,推动技术前进的主要动力是会投入资源的用户——没有需求没有投入当然不能指望什么有多少改变了。只是在许多项目里提供主要资源、能主导项目的用户恰巧是商业公司而已。这不表示其他用户就不会投入资源来推动进步。比如说,一些大学和非营利机构都有动机和实力扮演这个角色。

Linus本人对copyleft的意见其实也不算很激进(他还反对GPLv3管得太宽了),大概就是认为市集比大教堂更好而已。而像Linux内核和Git这样的项目,事实证明这样也没多大问题。对GPL的吐槽主要在于这么几点;
1.兼容性。Apache和GPLv2啊,GPLv2和GPLv3啊。
2.FSF过于强大的控制。GPL里自己定义了不少的概念,理解有偏差时还得找FSF,通俗点说FSF在一定意义上有“最终解释权”。如果说“自由”的定义可以因为先入为主而被忍受的话,更多人恐怕不能完全放任对许可证的解释。
3.目的。显然并不是所有人对RMS的观点买账。反对意识形态入侵(讽刺地,恰恰是通过限制他人“自由”行使权利的做法来有效保证)的人大有人在。

至于商业用途其实很正常,例如Rad Hat。认为GPL反对商业这点——也算是个流行误会——才更值得吐槽。事实是,只要被授权者满足了GPL规定的义务,GPL本身并不禁止商业使用。当然,许可证兼容可能是个麻烦事,但这也是另一回事。
2014-12-21 03:13:55 +08:00
回复了 greatdk 创建的主题 随想 关于开源
@twl007 开源经常有不少养家糊口的目的论成分不假,但要说“闭源商业软件才是推动技术前进的动力”显然不符合事实——越是基础的东西往往就越体现这点,比如LLVM。

另外你比LZ搞错了更多的东西。
“能自有拿来代码无条件使用的叫自由软件 跟开源是两个概念 ”——自由软件跟开源的确是两个概念,但自由软件并不是“拿来代码无条件用”。恰恰相反,按被广泛接受的定义,开源软件的外延更大,有些人同时认为自由软件是开源软件的一种(尽管渊源上不能这么说)。而要接受RMS的观点把自由软件独立在开源之外,那么问题更明显:以GPL许可证授权为代表的自由软件通常比其它开源软件的限制明显更大。真正意义上“能拿来无条件用”(注意一般意义的“用”可以理解为包括derivative work)的,看来就只有公有领域作品(或者实质等价的授权如CC0,不过似乎我朝不方便这样做)了。
2014-12-21 03:05:16 +08:00
回复了 greatdk 创建的主题 随想 关于开源
@raincious 请不要正儿八经地误导。
LZ显然是想要“开源”,并且LZ说的“开源”看来就是想和别人说的一样,参与的某些“开源”常见的活动(比如fork),而不是他自己发明了什么新的概念或者就仅仅指把源代码给人看。而且LZ看上去认为自己已经完成了“开源”。于是这里本来也没有什么开源和不开源的中间态,只是因为理解上有偏差,行动上就是没有做到。在这个基础上评论开源未免有些那啥了,所以这点就被人吐槽。
2014-12-21 02:54:02 +08:00
回复了 greatdk 创建的主题 随想 关于开源
@happywowwow 首先澄清一下,之前在此并没有顺着LZ的口径来讲闭源和开源的影响对比,而是要说单论体现“生产力”这个方面而言,哪种形式更容易体现得充分。目的上讲,就是哪种策略更容易完善地满足用户需求。
要说影响力是不是大,我也不认为能一概而论。这是跟领域以及软件自身被利用的形态相关的。
优秀的、影响大的软件当然不一定就是开源的。软件的许多创意往往根本不需要源码来体现,直接可以借鉴(只知道抄或是抄不好另说)。特别地,对于游戏,源码的质量往往就只能决定游戏品质的一小部分。
但是,并不是所有软件的优点都容易被其它开发者吸收或者启发出新的、更好满足用户需求的想法——比如说,性能。你引用的例子在不开源时就不怎么容易让多数/最需要的用户用到更好的东西。
如果实现质量是同等的,那么提供使用源码的自由显然比不得不重复造轮子更加容易实现,对行业来讲长期看也有利于缩减成本;或者,你可以说屈从于垄断的实现对于大部分用户也够用了所以连轮子都不需要重新造——但这毕竟对其余用户不公平,而且事实上也没人能阻止。
至于某个领域的开源或者闭源的软件实现质量是不是一定就高,以及为什么市场没有倾向于开源的实体,那是另外的问题了。
更快……能看看测试代码么。
2014-12-20 04:15:55 +08:00
回复了 greatdk 创建的主题 随想 关于开源
@happywowwow 有些奇怪为什么一个magic number就体现闭源的“生产力”了?“生产力”是集中体现在特定实现的质量上还是被广泛使用以产生影响来得容易些呢?
实际上,被引用的文章里明确说:“QUAKE的开发商ID SOFTWARE 遵守GPL协议,公开了QUAKE-III的原代码,让世人有幸目睹Carmack传奇的3D引擎的原码”……这怎么看都是反面论据吧?假设没有被公开的话,恐怕就没有那么有存在感了。
最后得说一下,这种平方根倒数的实现在许多年以前的主流机器上就不是值得采用的黑科技了。一般而言,SSE更快。
2014-12-20 04:04:31 +08:00
回复了 greatdk 创建的主题 随想 关于开源
LZ没搞清楚外延……直说吧,活该。如果要搞精神胜利或者需要某些其他奇怪的人文情怀,不妨讨教一下著名抠脚皮大汉RMS,然后被科普所谓“自由”和“开源”(公认的正式定义可以分别参照fsf.org和opensource.org)的意义和目的之类,根本就是两回事——从一开始就不是同宗,只是后来被讹传合流罢了。这种业内基础历史常识教育同样适合对这种意识形态争议有大惊小怪/过激反应的某些瞎评论的。
LZ看来还的确欠缺了解其它一些讨论这个话题的必要基础,最主要的就是上面有提到的“开源协议”,正式点的说法是许可证(license)。注意“开源”不等同于把代码公开给别人看。没有明示许可证的repo里的内容实际上一般根本说不上真正意义的“开源”——在几乎所有著作权法/版权法管辖下,默认情况别人没权利把你这些东西当成“开源”的东西用。虽然多少是普法范畴,在这个议题上能彻底无视也算是硬伤了,请自行补课。(GitHub真有不少用户都这样,不过和LZ不同,很多本来压根就没当作正儿八经的开源项目,倒也无伤大雅。)
然后……话说原来闭源还有所谓的圈子么。
麻烦搞清楚,现状就是有不少领域闭源=资源不足+普遍落后,代表例子如M$VC的渣编译器前端。反过来的例子也当然不是没有,但往往离多数人都关心的基础领域相距甚远,所以经常会被“外行”边缘化,有意无意地被无视,这有什么不可理解的?某些洗闭源地的这种哪壶不开提哪壶的态度倒也是另一种活该被喷:本来就谁也没欠谁的,有什么脸“俯视”还是仰视?难道开源或者闭源了代码bug就自动没了?
2014-11-20 19:35:09 +08:00
回复了 catbaron 创建的主题 问与答 C++给数组赋值有什么坑么?
给数组赋值有什么坑?如果按标题字面回答,没有:因为C++的(内建)数组表达式根本就不支持被赋值。
下标从0开始,越界什么的有说了就不多讲了。
要愉快地折腾内建数组,你至少还得知道那么几件事:
为什么不推荐/避免用数组;
所谓的数组本义是指类型;
内建[]的语义;
array-to-pointer conversion;
one past the last element的特殊性;
怎么初始化。
至于看汇编什么的,现阶段请一概无视。我的经验表明对天赋点在正负两个标准差内的人群得到正确的理解没有什么好处。
有事没事临时发明新的语言让谁猜?还不如直接NLP。
2014-10-27 11:24:58 +08:00
回复了 superfree 创建的主题 问与答 火狐突然多了个天猫双 11 的书签
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/
无压力。(不过不想兼容蛋碎的话还是看4L的吧。)
聚四氟乙烯刚开始裂解的产物倒是没怎么毒,更高温度下会释放少量全氟异丁烯——一种公安部登记在册的A级有机剧毒物品……
不管怎么说,正常使用可以无视了。
2014-07-07 19:37:57 +08:00
回复了 haython 创建的主题 Python python 有没有类似 VS 那种可以拖拽界面的 IDE?
@em70 我现在发现观点的差异主要在哪了:你是站在服务商的角度来说的,而我是站在用户的角度上说的。……那不废话么,要是没有任何用户依赖这些服务,服务商自然就嗝屁白搞了,没法套利,所以自然要鼓吹用户尽量利用这些东西,然后他们好赚钱。
问题是注意你选择的材料中两者的主次。
对于用户来说,搜索/内容服务或者其他杂七杂八的东西,这本身就不是一个下载客户端或者即时通信软件的主要功能定位。服务商如何扩展服务立足点首先在于他们自己的需求(有资源,当然应该拿来营销而不是空置——如果真能赢利则应该加大投入),而不尽然就是用户的需求(解决特定的问题,找找看有什么附加值是顺便)。当然,有些用户也乐于选择使用这些附加功能,但显然是次要的,而且这部分用户中有很大一部分其实对自己的需求都没认识明确,被服务商利用罢了。
还有互联网倒罢了,为什么就是“Web”(比如Web界面)?的确这些客户端有使用到Web技术,但这更多是一种偷懒和现实妥协(比如成本)。技术本身并没有限定这样的软件甚至服务本身非跟Web搭边不可。
2014-07-07 19:23:13 +08:00
回复了 haython 创建的主题 Python python 有没有类似 VS 那种可以拖拽界面的 IDE?
@em70 是你不懂吧。早就给你说了P2SP,这都看不出来么。你倒是解释一下,为什么依赖中心存储节点的网络更“互联网”?如果说SaaS……那也不是现在鼓吹的一些典型服务(引用RMS的术语叫SaaSS),因为最终下载还是得到用户控制的节点上。这又和纯P2P或者直接下载有多少本质区别?
2014-07-01 01:51:02 +08:00
回复了 bearzx 创建的主题 程序员 Windows 文件浏览器多标签的解决方案?
QTTabBar qwop汉化版Win2012 R2表现良好,极少数情况会卡住无响应需要杀explorer.exe。倒是配置比较渣的Win7上经常出现这种情况……
Dolphin嘛……还是等explorer能全面下岗了再说吧。依赖太坑,开个标签就跳个“kioslave.exe已停止工作”太不爽了
2014-06-29 18:40:33 +08:00
回复了 gemfeeling 创建的主题 程序员 昔时因 今日意 侃侃微软的 CRT
这年头还在这里折腾个啥呢……
CRT再有什么新版本也无所谓了,反正C标准库接口就那么些常用的,mingw-w64自己打包部署得了,默虽然默认依赖的msvcrt是古董(而且换新的会被spec里libgcc的依赖坑)但是其它一些辅助运行时(比如mingwex)擦屁股还算干净。
反正cl最近几年都是残货,cl的ABI历来奇葩。VC++就算不放置play理所当然也退居二线了。
PS.isprint自己撸一个不费事,但是iswprint这种就算去掉locale-specific也太那啥了……测试用例都没法找全。。。
Wine里的GetStringTypeW什么的完全不明觉厉啊。
http://git.musl-libc.org/cgit/musl/tree/src/ctype/iswprint.c
https://www.sourceware.org/cgi-bin/cvsweb.cgi/src/newlib/libc/ctype/iswprint.c?cvsroot=src
疯了……
1 ... 82  83  84  85  86  87  88  89  90  91 ... 92  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3714 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 00:09 · PVG 08:09 · LAX 17:09 · JFK 20:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.