Leegorous

真的免费?

最近挺忙的,都没什么时间写文章,但是却有给 blog 换个 theme 的念头,刚好看到一篇标题是 14 Free WordPress Themes… 于是就点进去看了看(其实这种坑爹的文章,已经上当很多遍了,但还是无意识啊),还看中了两个,再点进去看,哦原来都是要钱,不过方式很不同。 一个是有三种套餐让你选择,免费那个套餐只是个皮,我需要的东西是要钱的。另外一个是说“付你想付的那部分”,这个概念更加虚,但足够把我吓跑了。这个的意思是,你可以自行选择付多少钱,只要是 0+ ,也就是允许你填 0 元,不过要填个电子邮箱。其实电子邮箱也是值钱的。 其它几个都没仔细去研究了,估计是大同小异,免费只是个招徕,其实没有全部意义上的免费。不过,想想这也对,怎么说也是别人的劳动成果,是应该得到尊重的。 就换 theme 这件事情来说,如果只是让你拿到代码,套在自己的 wp 里,这个还不够的,特别是英文排版的拿到这个中文博客里,多多少少需要点调整。而且,时间长了,总会有那么些东西会慢慢的让你不满意,这也是我总想换 theme 的原因。这个需要的其实是个长期的服务,很显然是有成本的。 看中的两个都有提供这种服务,我不选择的原因在于,他们不一定能搞定比如中文排版这种事。其实,我也不算什么高级用户,只是目前这个市场(指国内)都不被看好,选择几乎为零。 为你所选择的付费是很正常的,没有选择才是可悲的。

可维护的代码?

今天被问了一个很有意思的问题:(Lisp 的)代码真的可维护么?(这里的维护,意思比较泛化,包含一般性的代码改动,甚至重写。) 缘起我在微博写道 “Noir 是个好东西”。Noir 是 Clojure 的 web 框架,而 Clojure 是 Lisp 的一种方言。看过《黑客与画家》的人应该知道 Lisp 是多么的光芒万丈,但同时又被很多人所厌恶,真是超典型的矛盾统一体。不过这里不打算讨论这个矛盾。将上面的问题转换一下之后是: 代码的可维护性跟语言有关吗? 我觉得有关,但这只是基于当前现状的。像 Lisp 这么小众的语言,应用到项目当中,技术人员一拨一拨的流动时(这也不算是一个好的现状,不利于自身的积累),如果想一直都能找到合适的人来做,这本来就已经是一个问题。在国内,许多不是技术驱动的公司里,几乎很难碰到会使用小众技术解决问题的(所以如果你遇到了没有这样的氛围却依然坚持不懈的玩各种小众玩意的,千万不能随意放手啊),技术选型的其中一项是团队里或者市面上都流行什么。但如果不存在人口基数的问题,代码的可维护性应该是跟语言没什么关系的。 代码的可维护性跟什么有关系呢? 架构。因为像可维护性,代码演进这些问题是架构设计的时候考虑的。代码书写的风格,代码的组织方式,资源布局,运行机制与策略等等这些都会有影响。除了架构,有洁癖的通常会比无洁癖的产出更容易维护的代码(写得烂不烂的问题是可以通过学习改进的),代码整洁整齐,用法一致也便于维护。 按照我的猜想,应该是可以使用 Noir 并产出可维护的项目的。 回到语言细节上,因为很多人接受不了那一连串的括号,总是第一感觉以为要人肉去数哪些个括号,特别是N多层嵌套的时候,和这个类似的,nodejs 推广过程中也好多好多个声音说 N 层回调嵌套看着头晕。 我有必要再解释这个问题么?如果反过来问,一个语言能给你带来的价值减去其缺点所造成的损失结果是多少?这不代表我承认 Lisp 或者 JavaScript 的缺陷有多大,有多招人讨厌,而是想说,我们能否正确认识其价值,放大其价值。 哪些语言被创造出来最大的幸福是其价值得到显现。当然,价值这东西很难拿出来讨论,自己心里明白就好。…

Continue reading

如果 brew install 撞墙

某强已经无厘头到一定程度了,在进行 brew install pgrep 的时候 ==> Installing proctools ==> Downloading http://downloads.sourceforge.net/project/proctools/proctools/0.4pre1/proctools-0.4pre1.tar.gz curl: (56) Recv failure: Connection reset by peer Error: Download failed: http://downloads.sourceforge.net/project/proctools/proctools/0.4pre1/proctools-0.4pre1.tar.gz … … 翻墙下好之后,放到 ~/Library/Caches/Homebrew/ 就可以继续了。 不过如果多的话还真是挺麻烦的 … … ====== 超级华丽的分割线 2015/7/19 ======…

Continue reading

栅格系统计算器

栅格系统(Grid System)的辅助工具不少,而那些工具多数让人填栏宽,间距,栏数这些。但是我在实际应用栅格系统的时候,是知道页宽并估计 12 栏会比较适合,虽然有公式去计算,都会觉得麻烦。 为什么就没有这么一个工具:输入页宽和分栏数,自动计算出所有可能的情况呢?因为不会有半个像素的情况,精准到像素的话,还是可能有几种情况的,还夹杂一些不实际的情况。那么根据具体效果去选择,会比埋头计算然后看效果要方便得多。 于是做了这个 webapp:Grid System Calculator 参考了 Bootstrap 和 960 Grid System 两种 CSS 实现方案,感觉更加倾向于 Bootstrap 的方案,于是参照其做法,用于生成显示效果。 为了方便 Bootstrap 的用户,以其参数配置方式输出具体参数。也提供了基于 960 Grid System 的 CSS 下载服务链接(引用 grids.heroku.com 的服务)。 这个 栅格系统计算器 采用 MIT…

Continue reading

Ubuntu VPN 连接不能同时访问内外网的问题

也许 VPN 服务器设置的原因,有些 VPN 网络在 Ubuntu 下就使用最简单的配置方式即可使用,但偏偏这个,用最简单的配置,连上之后就只能访问内网资源,不能访问外网资源。奇怪就奇怪在,在 win 下只要勾选了那个“在远程网络上使用默认网关”,就什么问题都没有了。 可能 linux 下也会有类似的关键性按钮,google 了好一阵,按照这篇 在 ubuntu 1004 的 pptp 客户端上如何建立分离的 vpn 隧道。按照文中的内容一步一步做了之后,的确可以访问外网了,但是悲剧的是,内网无法访问了。显然,Use this connection only for resources on its network 并没有起到预期中的效果。 这个现象与 这个问题 中描述的十分类似,虽然,里面没有如何描述最后如何解决。可能跟我最初的想法一样,连 VPN 的时候就不上外网就完事了。但是怎么想都觉得麻烦,而且已经感觉离解决问题不是很远了。从…

Continue reading

Replace [class*=”span”] in LESS

Bootstrap 里的 grid system 里面 (源代码) 有这么一段, [class*="span"] { float: left; margin-left: @gridGutterWidth; } 用 RECESS 去跑会看到提示:Universal selectors should be avoided。这个既可以说是 selector 的问题,也可以说是 RECESS 的问题,但可以在运行的时候加个参数忽略掉。 自己去写扩展时也会写到类似的规则,比如需要兼容某浏览器,如果不这样写,就会需要像 Bootstrap-IE6 那样写

不错的 JavaScript 格式

在重制 在线密码生成器 这个单页工具时,尝试的一种交互方式需要 tooltip (来自 Bootstrap) 作为操作提示的载体,动态修改 tooltip 的内容。于是查阅了其 源代码,虽然没发现有这样的功能支持(后来小改了一行之后就可以了),但是却发现其代码格式有些有趣的地方。 Tooltip.prototype = { constructor: Tooltip , init: function (type, element, options) { var eventIn , eventOut this.type = type // … this.options.selector ? (this._options =…

Continue reading

怀念 Robin Gibb

今日依然忙于改进 Launch theme,没怎么去八卦其它事情。傍晚吃饭看六点半新闻的时候,听到 Bee Gees 的其中一位成员 Robin Gibb 在与癌症长期搏斗之后离世,感叹又失去了这样一位富有音乐才华的人。 非常喜欢的一首歌 Islands in the Stream (2001 Robin Gibb 独唱的版本),曾经单曲重复了不知道有多少遍,

Launch Theme 改进,第二弹

上一轮改进是对一些比较明显的问题,而这一轮则是一些不明显的地方。 基础字体 & 大小 英文以衬线字体显示似乎更加舒服,所以继续使用 PT serif 作为首选的英文字体。 字体大小由原来的 14px/24px 提升为 16px/28px。 标题增大至 30px 之后,就不需要粗体了。 同时伴随周边的字体大了,间距也大了。 代码的字体 & 大小 WP SyntaxHighlighter 插件与 Launch 的样式有些不协调,文字阴影在代码高亮的情况下有点画蛇添足,行距太窄在阅读代码时会产生抗拒感。