自制node.js + npm绿色版

Node.js官网有各平台的安装包下载,不想折腾的可以直接下载安装,下面说下windows平台下如何制作绿色版node,以方便迁移。

  1. 获取node.exe
    下载Windows Binary版本,不要下载Windows Installer版本,直接放到H:\nodejs\
  2. 获取npm(Node Package Manage)
    下载最新zip版本,不要下载tgz版本,下载后解压到H:\nodejs\
  3. 添加环境变量
    • NODE_HOME=H:\nodejs
    • NODE_PATH=%NODE_HOME%\node_modules
    • path增加%NODE_HOME%\

最终得到文件目录结构H:\nodejs\:

.
├── node.exe
├── npm.cmd
└── node_modules
└── npm

markdown简明语法

Markdown是一种极简的『标记语言』,将文本转为HTML,通常为我大码农所用。其不追求大而全,简洁至上,正所谓不求最贵,只求最好!

本文介绍Markdown基本语法,内容很少,一行语法一行示例,学会后可轻松写出高大上的文档,再也不需要各种编辑器去调文章格式。另外,网上有各平台下的Markdown工具可用,也有在线的,我直接使用sublime搞定,Markdown本来就是为了追求简洁,弄个工具岂不多此一举。

强调


星号与下划线都可以,单是斜体,双是粗体,符号可跨行,符号可加空格
**一个人来到田纳西**

__毫无疑问__
*我做的馅饼
是全天下*
_最好吃的_

一个人来到田纳西

毫无疑问
我做的馅饼
是全天下

最好吃的

hexo你的博客

号外号外:计数服务已开放,各种访问量统计仅两行代码:不蒜子,任你发挥的算子。

一直纠结于哪里写博客,曾用过新浪博客,百度空间,JavaEye,LOFTER,OSChina,cnblogs,CSDN,自搭WordPress,都不满意。再后来也弄过Jekyll和Octopress,觉累不爱。

直到多看了一眼hexo,这个逼格极高的程序猿写作方式,我喜欢。就连hexo的发音都像是黑客哦!如果你跟我一样纠结哪里写博,那就来到GitHub吧,让我们一起hexo!H人希绝对不会让你失望,相信很快hexo就会流行起来。

hexo出自台湾大学生tommy351之手,是一个基于Node.js的静态博客程序,其编译上百篇文字只需要几秒。hexo生成的静态网页可以直接放到GitHub Pages,BAE,SAE等平台上。先看看tommy是如何吐槽Octopress的 →_→ Hexo颯爽登場

  • 如果你对默认配置满意,只需几个命令便可秒搭一个hexo。
  • 如果你跟我一样喜欢折腾下,30分钟也足够个性化。
  • 如果你过于喜欢折腾,可以折腾个把星期,尽情的玩。

搭建过程你或许觉得有那么点小繁琐,但一旦搭建完成,写文章是极简单,极舒服的。

只需要几个简单命令,你就可以完成一切。

hexo n #写文章
hexo g #生成
hexo d #部署 # 可与hexo g合并为 hexo d -g

设计模式遇到scala-工厂模式_factory

一旦参与实际项目,无论大小都一定会接触到工厂模式,Scala中如何阐释工厂模式呢。

Vehicle接口:

Vehicle.scala
trait Vehicle {
def drive
}

各种Vehicle实现:

Car.scala/Bus.scala/Truck.scala
class Car extends Vehicle {
override def drive {
printf("car bibi~")
}
}
class Bus extends Vehicle {
override def drive {
printf("bus didi~")
}
}
class Truck extends Vehicle {
override def drive {
printf("truck wowo~")
}
}

设计模式遇到scala-单例模式_singleton

Singleton是最常用的设计模式,其结构非常简单,但是用Java完成一个优美的单例并不是那么容易的事,如多线程下有Double-Checked Lock等问题。在Scala中一切都是那么的自然,object就是singleton!

单例代码:

Singleton.scala
object Singleton {
def say() = print("hello scala")
}

python cubes

Online Analytical Processing Framework for Python

Cubes is a light-weight Python framework and set of tools for development of reporting and analytical applications, Online Analytical Processing (OLAP), multidimensional analysis and browsing of aggregated data.

开源事件总线框架Leb event bus

软件产品的终极目标是松耦合,很多技术的出现都是为解决耦合问题,比如IoC,AOP,观察者模式,面向接口编程,MVC等,事件驱动架构EDA(Event-Driven Architecture)也是。 事件总线(event bus)的本质是观察者模式。其优点有:解耦,依赖反转,反转控制,好莱坞原则;高性能,天生多线程;易维护,随时增加修改;符合自然思维,一件事情发生引发另一件事。

Leb是一个极其轻量级的event bus框架,简单易用,下面的这个HelloWorld基本概括了leb的全部用法,够简单吧。

Say.java
public class Say {
@Observe(hint = "say")
public void sayHello() {
Logs.p("hello leb");
}
@Observe(hint = "say")
public void sayTo(String who) {
Logs.p("hello " + who);
}
@Observe
public void bye() {
Logs.p("bye leb");
}
@Observe(hint = "say")
public void sayTime(Date date) {
Logs.p(Times.format(date));
}
}
Fork me on GitHub