Clojure括号问题一则

Author: Date:2016年7月26日 - 22:17 PM

把下面的common lisp代码用Clojure来写

 
(defun qsort (l)
  (cond
    ((null l) nil)
    (t
      (append
        (qsort (list< (car .

more

Monad, 原来如此

Author: Date:2016年7月8日 - 23:39 PM

之前写过一篇关于Monad的文章, Haskell之纯粹, 非纯粹以及Monad, 但是并没有感觉真正理解了Monad, 当然这些思考打下了一些基础, 一些基本的概念, 形式已经了解. 但是对Monad本身感觉还是隔了一层.

这次重温, 结合已有的基础, 得到了新的理解, 自我感觉, 离真相更近了一步.

more

Haskell code 用Clojure实现

Author: Date:2016年7月4日 - 19:03 PM

在看 Haskell - The Craft of Functional Programming 2e. 下面的函数

 
getWord :: String -> String
getWord [] = []
getWord (x:xs)
  | .

more

Java InputStream的重大缺陷之一

Author: Date:2016年4月20日 - 12:31 PM

InputStream 可以用来读取URL, 但是却有一个重大的缺陷: 这个调用很容易挂起, 而且永远不返回, 这个时候唯一的办法往往是重启JVM. 因为默认是没有设置timeout的, 也就是会永远等待, 而有时候服务器会莫名其妙的突然不响应, 其实可能数据以及发送完成了, 可能还缺最后一个数据包, 但是这个数据包很可能再也不会返回了.

这个情况的出现是不可预料和完全随机的, 前一秒钟有问题, 下一秒钟就可以了, 就好像有时候我们打开一个网页会报错, 但是下一秒刷新一下又会正常一样.

more

Clojure中使用正则表达式的两种方法

Author: Date:2016年4月19日 - 16:21 PM

一直以来我都不知道Clojure里面的正则表达式有两种语法, 我一直以为只有一种, 那就是Java的语法, 因为Clojure根本没有自己的正则表达式引擎, 而是完全依赖于host, 如果是JVM就是Java的语法, 如果是Javascript虚拟机, 那就是Javascript的语法.

其实Clojure这里做一个小小的优化, 那就是#语法, 例子:

more

Yandex 跟 Google还是有明显的差距

Author: Date:2016年4月19日 - 9:11 AM

因为用Google很麻烦, 或者有时候根本用不了, 于是有些时候我就会替代性的用一下Yandex, 一开始还没有察觉出什么, 但是用的时间多了之后, 明显感觉到Yandex不能很好的理解我的查询, 返回的结果质量和Google确实有差距. 这个感觉非常明显, Yandex返回的结果的相关程度更低, 找到想要的内容花费的时间更多.

下面是两幅截图, 搜索同样的字符串

more

TokenStream contract violation: reset()/close() call missing, clojure

Author: Date:2016年4月18日 - 19:30 PM

准备将一段Java代码转换为Clojure代码, 是处理关键字高亮的

 
 
    public static void highLightClojure(int id, String text, String field) {
        try {
            Query .

more

PHP preg_match 非贪婪匹配的神秘bug

Author: Date:2016年4月16日 - 15:52 PM

很偶然的发现php的正则表达中有一个神秘的bug, 结果是执行一个简单的表达式匹配耗时超过30秒, 而且似乎只在Windows平台上出现, 同样的表达式, 同样的输入数据, 在Linux上检测不到延迟, 即我们精确到毫秒的时候是检测不出来的, 也就是说正常情况下这个语句应该在1毫秒以内完成, 但是在Windows上面却要耗费30秒.

more

VIM 几个小问题

Author: Date:2016年4月2日 - 19:35 PM

根据几件小事来说说对VIM的感觉.

不支持动态高亮, 即边打字边高亮, 这些功能在Emacs和Sublime里面都是默认的, 因此在VIM里面很不习惯, :set hlsearch是在输入完成按下Enter键之后才会高亮, 而且高亮会一直保持, 除非你下次再搜索, :set incsearch 只会高亮首个匹配.

more

Emacs 内置中文输入法pyim

Author: Date:2016年3月29日 - 21:57 PM

Emacs加win8加中文输入就是灾难, 第一个搜狗输入法, 因为经常死机已经被我给删掉了, 然后是bing输入法, 果然是自家的产品, 通常情况下表现很好, 但是偶尔也会出现失效的情况, 这个时候真是要命, 重点是这个时候不能输入中文, 而且必须重启系统才能恢复正常, 但是我不想重启. 而且我是打死不用微软拼音的.

然后又尝试了谷歌拼音输入法, 结果十分钟阵亡, 而百度, 我连尝试的念头都没有了.

more

用Clojure和Emacs写博客

Author: Date:2016年3月20日 - 23:04 PM

写作的最佳环境还是Emacs编辑器, 网页界面的编辑器无论多么强大, 永远也不可能比得上Emacs. 但是我想更进一步, 完全不考虑web界面, 所有的动作, 发布, 修改, 更新都在Emacs里面完成, 这样的话, Emacs就显得有点不足, 编辑本身才是他的强项, 而其他的任务例如和HTTP, FTP, 文件系统打交道更适合像Clojure这样的脚本语言.

而Clojure的REPL可以完全融合在Emacs里面, 那么整个过程都不需要离开Emacs就可以完成.

more

Python脚本使用urllib3和BeautifulSoup4实现网页抓取和分析

Author: Date:2016年3月20日 - 22:36 PM

好久没有用Python来做网页抓取和分析了, 这次有个客户指定要用Python, 原来的脚本用到urllib2居然都已经下不到了. 唯一可用的是urllib3, 不过Python还是一如既往的方便, 很快就把所有的依赖全部搞定, 代码页非常简单.

首先按照需要用到的依赖, 执行如下命令.

more

Yandex图片搜索格式更改

Author: Date:2016年3月18日 - 16:41 PM

Clojure抓取Yandex图搜索结果的脚本突然失效了, 原因是Yandex所返回的HTML的格式修改了, Yandex修改输出格式相对频繁, Google几乎不怎么变.

原来的格式

more

Emacs以所见即所得的方式插入换行符

Author: Date:2016年3月18日 - 16:30 PM

最近碰到一个很小众的需求, 就是在Emacs中以所见即所得的方式给一个段落填充换行符, 查阅了Emacs自带的各种填充换行符的方式都找不到符合这个要求的. 我需要的是把在某个frame宽度下形成的auto wrap格局变成对应的hard wrap格局.

例如之前是这样

more

PHP UTF8 BOM和session_start

Author: Date:2016年3月18日 - 13:22 PM

PHP的老问题, utf8和BOM, 又让我给碰到了, 已经不记得是多久以前处理过与之有关的问题了.

首先是莫名其妙的session_start问题, 在代码里找了半天根本找不到哪里有内容在session start之前发送出去了.

more

抓取网页常见问题总结

Author:zhang Date:2015年12月7日 - 0:00 AM

有时候我们需要程序化的方式访问网页, 最典型的应用当然是网络爬虫, 但也可以是其他有用的应用. 和通常的用浏览器访问不同, 爬虫会碰到一些意想不到的问题, 一般大型站点基本都有某种反爬虫策略. 不过理论上, 服务器是无法完全区别浏览器和爬虫的, 只要不是恶意的发送大量请求, 基本可以绕过这些限制, 下面是常见的问题总结.

Referer

more

Clojure脚本处理yandex图片搜索和Youtube视频下载地址

Author:zhang Date:2015年11月25日 - 0:00 AM

论搜索能力, Yandex不再Google之下, 有时候比Google的结果要好, 下面的Clojure脚本将会抓取Yandex图片搜索的结果并提取所有图片的图片地址, 来源网址等信息, 这样可以在同一个界面中以原始大小显示所有图片.

more

Magit在Windows下无法stage hunk的问题

Author:zhang Date:2015年11月24日 - 0:00 AM

下面是在Windows上使用Magit碰到的一个问题, 已经解决并在GitHub上提交了issue:https://github.com/magit/magit/issues/2403.

因为文档实在太缺乏了, 不得不去读Magit的elisp代码, 下面是涉及到的代码, 以及插入调试语句的地方.

Magit如何调用外部程序git, 以及所传递的参数

more

如何在Sublime中快速切换主题

Author:zhang Date:2015年10月24日 - 0:00 AM

Sublime中切换颜色主题有两种办法, 一个是在菜单里面选, 一个是编辑Preferences: Settings - User文件的color_scheme属性. 两个都不怎么方便, 用的较多的主题至少有两个一个是夜间的, 一个是白天的, 一个暗的一个亮的. 如果是Emacs就比较好办了, 一般就是写两个ELISP函数, 用的时候M-x这两个函数即可, 下面是我所用的.

more

升级win10后, WIFI间歇性断开

Author:zhang Date:2015年10月1日 - 0:00 AM

Surface pro 2 , WIN10 , wifi, bluetooth, 蓝牙

more

Emacs 添加删除hook和修正文本高亮功能

Author:zhang Date:2015年9月3日 - 0:00 AM

一直是用msearch.el做文本高亮的, 最近发现一个问题, 每次执行复制命令之后, 被复制是文本会被高亮, 虽然复制之后文本已经不是处于选中状态了. 此时如果离开当前的buffer, 例如将文本粘贴到另一个buffer, 则高亮会一直保持着, 此时从另外的buffer返回, 发现这些高亮区域已经对光标移动命令没有反应了, 正常情况是, 当移动光标的时候, 任何高亮的部分应该会被取消.

more

antlr java.lang.NoSuchFieldError 错误分析报告

Author:zhang Date:2015年7月7日 - 0:00 AM

一个平时在Clojure REPL工作的非常正常的函数, 今天突然无法正常工作了, 抛出如下异常.

more

Page 1/18 前一页1234567后一页