Pulpcode

捕获,搅碎,拼接,吞咽

0%

起因

今天写了一篇博客,然后更新到github上就不展示了,整个页面的框架还在,但是就是文章不展示,在经过一番折腾之后,我终于又让自己的博客回复正常了,这里分享下我是如何解决的。

先说明环境,我使用的是hexo的next主题,而且我是眼睁睁的看着,我发布文章之后,旧的页面是好的,一刷新是坏的,我想到了是不是自己发布坏了,但是我在本地启动hexo server没有任何问题,然后我又试着hexo clean后发布,依旧没什么用。

我看了下自己主页的源码,发现了一个问题,就是

1
<link rel="stylesheet" type="text/css" href="/vendors/fancybox/source/jquery.fancybox.css?v=2.1.5"/>

这条连接点不进去了,出现了github page 404的页面,然后我去自己的github看了一下,这个路径有的。

阅读全文 »

最近我在从python的开发转向java,打算在转移技术栈的时候,通过比较python与java,去更深刻的理解动态语言与静态语言的优势与劣势,从而在工作中有效的搭配。所以接下来很长一段时间,我都会坚持写一些关于java和python两者比较的博客,当然刚入门java,自然写的东西就比较“弱智”了,但这一步早晚都要走的,先勇于接受吧。。

我一开始在想,如何入手java,从什么语言基础或者是设计模式,我觉得都不是好的方式,毕竟已经对这些比较熟了。静态语言本来也没有什么奇技淫巧,就算有也百八十年用不到,框架的话也不用急着去看,因为用着用着该会的也就会了。一堆不知道怎么用的规则更没必要记了,再加上自己也想让自己的水平提升一个台阶,所以我想要不就从java并行程序设计开始吧。

这篇博客我要写一些关于Future对象的东西。

java中的Future

你在一开始学习java多线程的时候,书上都会告诉你一个简单的例子,就是先创建一个任务,这个任务对象继承一个Runnable接口,并且实现了其中的run方法。

1
2
3
4
5
6
7
public class Task implements Runnable{

@Override
public void run(){
System.out.println("Hello,World");
}
}

然后你就可以用线程来执行此任务,比如直接提交给一个Thread的构造函数。

1
2
Thread t = new Thread(new Task());
t.start();

或者直接扔给执行器(Executor)。

1
2
ExecutorService exec = Executors.newCachedThreadPool();
exec.submit(new Task());
阅读全文 »

我一直理解,这个世界有两种人反应快。一种是想问题比较简单的人,另一种是试图把问题简单化的人。能够在脑海中建立有效的问题模型,对于快速思考很有帮助。这篇博客将教你如何理解递归。

从反证法说起

在高中的时候,一开始不理解“反证法”,因为我一直“担心”这样一件事,就是要证明“A是苹果。”,我就算假设A是香蕉,然后证明了A不是香蕉,A不是桃子,但是我并没有证明A就是苹果啊,后来我才明白,我的理解是有误的。

反证法的意思是指,如果我要证明“A是苹果”,那我先要假设A不是苹果,然后去论证这个假设是错误的,然后A就一定是了。其关键点就在于这是一个谓词,非真既假,相当于告诉你集合中只有两个元素0和1,如果不是0,那就自然是1了。

之所以讲这样一个例子,是因为我想说我一开始总担心反证法不能正确证明,是因为我没有理解反证法是一个“谓词模型”。同样的,我原来也担心过,递归这东西为啥能求出结果,等我弄懂了之后,我就再也没对此怀疑过。

阅读全文 »

最近在读一本叫《失控》的书,里面提到了这样一种观点,一个有“智慧”的复杂的系统,并不是像我们想象的那样,有一个核心主控,控制着所有逻辑的运行。而是由一些在简单不过的小系统,聚合成的分布式系统。也就是会说这些看似在简单不过的小系统,在达到一定数量后,相互运作并相互影响,“进化”成了一个复杂的,富有智慧的系统,而这就是所谓的失控。

本书提到了粒子群算法中的蚁群算法,我在大学的时候选修过的一门课上学到过这个算法,所以这里打算复习一下这个算法。

阅读全文 »

北京最近下了好几次雨,几乎都是到了深夜还在下。这几次雨对我的影响而言,除了降低温度让我不得不买换季的衣服外,就是让我夜里能快速入睡。
我一直觉得这是一件很神奇的事情,下雨本来是一件很吵的事情,但是却能让你快速入睡,而过于安静有时候你反而睡不着。

Bootstrap

其实如果晚上睡不着的时候,我还会用手机播放下雨声的mp3(文艺青年装起逼来自己都怕)。这声音简直比什么“请大家跟着我的声音放松。”这样的音乐更有效。简直可以跟英语老师的课同登“入眠音乐”的榜首。

然后那天我发了一条朋友圈,就是说自己最喜欢在雨声中睡觉,没想到有很多人点赞,我发现很多人都有这种感觉。

我带着疑问去,知乎,果壳等网站寻找答案。有几个说法来解释这一现象。

阅读全文 »

火枪在一开始是中国宋朝就发明了,但是这东西制造的成本太高,所以没啥关键性变革。后来欧洲有了工业革命,导致生产火枪的成本降低,他们便开始量产。其实火枪这东西一开始的杀伤力,射程和精准度比弓箭差远了。但是这种东西还能被接受的原因就是,与训练出一个弓箭手相比,训练一个火枪手的成本低多了。

看来我们无时无刻在玩这种“降低成本”的把戏,这也是我最近在阅读和思考中体会到的。

阅读全文 »

最近在新机器上发布代码的时候发现了一个bug。但是我的老机器从来没有报错,查了以后才发现代码中引用了一个已经被我从git项目中移除的旧包。旧机器不报错是因为在发布的时候远程主机上这个文件并没有被删除,新机器报错是因为git中早已经没这个文件了。

实际上在发布工具有一个配置选项可以选择是否删除发布项中不存在的文件,但是如果你勾选此项,发布工具还是会警告提示你,是否确定勾选此项,因为这样可能会让服务出错。比如就我们那个服务而言,项目所在的文件夹中,还有由另一个服务负责定时更新的一些配置,所以如果你删除了git项目中不存在的文件,那么这些配置项也就都没了。

“软件设计,都是只做加法,不做减法。”,我认为这其实是编程中常见的设计思路,本文就来举例考据一下。要注意的是本文讨论的是编程技术底层实现的思路,与交互功能设计的那一套“做减法”的思想不矛盾也无关。

阅读全文 »