emacs中macro的使用
把js的函数改为sql配置文件
把js中散落在代码中的sql集中放到一个配置文件中, 需要修改:
- 把函数改为sql snippet的名字
- 把函数声明改为sql注释
- 调整缩进
- 去除最后的函数返回部分
- done
core.async在前端的应用场景
var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.setAttribute('type', 'text/css');
link.setAttribute('href', '/blog/img/css/main.css');
document.getElementsByTagName('head')[0].appendChild(link);
本文会分为两部分, 第一部分是理论分析和代码, 第二部分是一些例子
前端处理并发编程的方法
进入阅读→爬取wwdc全部视频链接(基本完成)
假期跟进了一下iOS开发的新进展, 主要是swift和spritekit.
当前5.1版本的swift据说可以保证ABI的稳定性, API/语法稳定性依旧不保证, 就是说以前的代码肯定跑不起来, 现在的代码, 以后也不保证能用.
这是一开始没想明白还是故意整大家, 我不清楚, 很佩服苹果的勇气.
进入阅读→java-jar jar包带环境变量(参数)启动
需求
java工程我们可以编译成jar也可以翻译成war,一般地,war包我会丢到tomcat容器里,启动tomcat来访问服务,端口、SSL证书、日志等等,都托给tomcat。
如果打的是jar包,我通常会用nohup启动,比如生产环境的一些db、redis、第三方secret等不会配置到项目里,今天要记录的便是用nohup java -jar 启动jar包时如何加载环境变量配置的问题。
进入阅读→Google Closure Libary的使用
介绍
花点时间在cljs上, 很快就知道cljs的编译({:optimizations :advanced }的时候), 有两步
- cljs->js(JVM完成)
- js->js优化编译(Google Closure)
平面星系模拟
内容
演讲的主旨是c的历史在将在clojure上重演, 从不接受到成为业界标准.
进入阅读→LISP和它的REPL(修改中)
主题
推行Lisp大概是件困难的事情吧, 毕竟62年都过去了, Clojure(最流行的lisp)还在语言排行榜20名以外徘徊.
Lisp有两大谜团, 一是从来不主流但是有旺盛的生命力, 二是有旺盛的生命力但是从来不主流.
进入阅读→core.async使用队列解决异步逻辑的例子
core.async是一个库, 解决了代码块(jvm上可以不在同一个线程里) 异步通讯的问题.
管道或者说队列是非常优秀的解耦工具. 可以用来解决比较复杂的逻辑.
下面是一个例子. 首先是js的一个版本
进入阅读→emacs的字体工具cnfonts
推荐一个好看的字体
JetBrains Mono 是JetBrains专门为程序员出的一套西语字体(不支持中文).
中文支持我用微软雅黑.
进入阅读→goog.object/getValueByKeys和aget更简便的取出#js的值
在clojure中我们经常会取到js类型的返回值,根据以往的经验,我们一般会选择用js->clj进行转换,然后get-in我们想要的值。我以为这个方法是万能的,但事实上并不是,下面让我们看看哪几种情况可以使用转化方法:
class myObject {
constructor(name) {
this.name = name;
}
}
window.myObj = new myObject("hello");
window.myMap = {"key": "value"};
window.myArray = ["Saab", "Volvo", "BMW"];
js map可以用js->clj进行转换
进入阅读→