写了很多newlsip程序,一直都是用println 来打印,查找问题。但是随着程序越来越多,debug就变得越来越重要。今天在实现自己的TEA算法时,就需要调试newlips程序。启动debugger很简单,只需要在newlisp会话中调用:(trace true)然后加载自己的lsp文件,调用函数,就可以进行调试了。不过为了方便,还可以用(debug call-your-function)。下面举个例子:加入我有一个函数叫做cml-encrypt,用debug来调用它。然后就会看到该函数的代码,并且提示你用s进入函数调试,n不进入当前调用的函数调试,c一直运行。用# ... # 将当前正在
转载 2013-04-06 22:19:00
76阅读
2评论
newLISP提供了一个简单的MapReduce的方式,利用net-eval函数,能够向远程执行这newlisp服务进程的机器发起调用。本文介绍最简单的方法:首先server启动newlisp进程newlisp -l -c -d 4711 &-l 代表记录日志,默认是打印到终端
转载 2019-04-12 14:51:00
66阅读
2评论
HTTP Basic Authentication原来很easy,參考文档:http://zh.wikipedia.org/wiki/HTTP%E5%9F%BA%E6%9C%AC%E8%AE%A4%E8%AF%81将username和password用:分隔,然后用base64编码。最后用HTTP
转载 2018-03-27 17:18:00
178阅读
lambda表达式指的是一个匿名函数,可以将之作为参数传递给map等容器,然后被容器内部调用之。newlisp的官方文档在这里:http://www.newlisp.org/downloads/manual_frame.html参考lambda一节,说其和fn相同,fn是其更方便的简写。下面的两个例子分别使用了lambda和fn,效果完全一样。它们都对map中的list做了加法操作。> (map (lambda (x) (+ x x)) '(1 2 3 4 5))(2 4 6 8 10)> (map (fn (x) (+ x x)) '(1 2 3 4 5))(2
转载 2013-04-04 11:31:00
62阅读
2评论
最近写了一个newlisp_armory库,用来实现一些newlisp自身不支持的操作。比如跨windows和ubuntu的目录拷贝功能等。自己用的时候,发现没有API reference文档参考,很不方便。于是学习了如何用注释生成文档。在Ubuntu环境下,首先要下载newlispdoc程序的源码:http://newlisp.org/syntax.cgi?code/newlispdoc.txt将文件重命名为newlispdoc,添加执行权限,复制到/usr/bin目录下。也可直接从我的github项目中获得:https://github.com/csfreebird/newlisp_arm
转载 2013-06-19 20:00:00
207阅读
思想是通过调用hive -e命令,然后解析返回的结果。以下的hive.lsp文件是一个样例,提供了读取本地hive数据库名称。表名,表结构和依据hive表的创建语句生成相应的MySQL的创建语句。最新代码參考我在gitlab.com上的开源项目:​;; hive.lsp;; @module hive;; @description hive module provides some features
转载 2016-02-02 18:16:00
108阅读
2评论
前面有一篇Say bye to CMake and Makefile我开始用自己编写的newlisp脚本替代CMake,今天对前面的进行改进。改进部分是:1. newlisp armory模块的引入和初始化 部分可以重用2. 将头文件所在目录,cpp或者cc文件所在目录以及依赖库名称等 作为配置单独抽出来,可以根据不同的项目进行配置现在看改过后的代码:rebuild.lsp是主要执行脚本#!/usr/bin/newlisp ;; init(load "/opt/armory_config.lsp")(load "build_config.lsp");;
转载 2013-08-18 21:08:00
146阅读
2评论
今天遇到一个问题。执行在终端newLISP文字,一切正常,搬去crontab在将无法正常工作。即使crontab -e命令是在同一个用户执行。还是有问题。因为newLISP脚本使用hive和hadoop。它预计发行环境变量。所以第一次使用newLISP shell执行(env)命令,将当前环境变量记...
转载 2015-10-10 13:07:00
93阅读
2评论
newlisp exec你可以运行bash命令。但如何返回状态来运行它?特别是,我需要监控hdfs dfs -test 结果返回。经过一番摸索,我发现了一
转载 2015-08-15 12:51:00
82阅读
在写这篇文章之前,xxx已经写过了几篇关于改文件命令主题的文章,想要了解的朋友可以去翻一下之前的文章当初有一个需求,将一个newlisp脚本文件做成windows service,开机自动启动。每隔一段时间,检查一下系统环境,其他的进程是不是还着活,等等。
转载 2013-05-09 20:16:00
45阅读
2评论
newLISP 10.5.3 修复了一些 bug ,为 KMEANS 集群分析器增加了一些函数。newLISP是一个类似Lisp语言的、用于一般用途的脚本语言。它具有 LISP 语言所有的魔力,但更容易学习和使用。 newLISP是友好的,快速和简小的。大部分您需要的功能都将已经内置。下面是一段示例代码:(command-event (fn (s) (local (request) (if (find "?" s) ; is this a query (begin (set 'request (first (parse s...
转载 2013-07-11 17:43:00
51阅读
直接使用的标准模块smtpx.lsp, smtp.
转载 2015-08-07 12:24:00
105阅读
总是报错:root@gitlab:/opt# newlisp newLISP v.10.6.0 64-bit on Linux IPv4/6 UTF-8 libffi, options: newlisp -h > (load "/opt/mysql.lsp") ERR: string expecte
转载 2017-08-06 10:03:00
95阅读
2评论
常常因为磁盘空间不足的原因,须要删除旧文件,因此希望有一个函数,可以查找到某个时间点之前的文件,并删除之。用newLISP来实现的话,须要相似这种功能:(define (location-file-based-on-modified-time dir-path from-seconds to-seconds file-op) (unless (directory? dir-path) (t
sed
转载 2015-05-17 16:43:00
158阅读
2评论
在Jenkins 项目写了很多剧本。有时候,我发现脚本失败,但Jenkins运行成功。Jenkins无论是通过退出代码0比量build成功。因此,newLISP在。您可以使用(exit)对于成功。(exit 1)它表示失败。这样就须要添加一些脚本的推断,比方:(unless (HDFS:test-file export-folder) (begin (println (format "exp
转载 2015-07-18 12:37:00
106阅读
2评论
主要还是用df -k这个命令,然后将输出结果全部逐行解析,最后调用REST API,发送给服务器保存。参考代码:#!/usr/bin/newlisp(set 'cur-path "/opt/detector")(load (append cur-path "/config.lsp"))(define (add-log msg) (println msg) (append-file (append cur-path "/disk.log") (append "\n" (string (now 480)) &q
转载 2013-10-29 21:30:00
165阅读
2评论
为了用newlisp来实现VC编译,以便用我的Emacs开发VC程序,而不需要再打开VS 2012, 需要自己实现命令行的编译。我不需要nmake,因为我想直接了解VC编译器,以便今后更好的驾驭它。首先要获得VC编译的cl命令行,方法是右键点击工程,点击Properties菜单,在打开的对话框中,选择C/C++ General菜单,然后将Supress Startup Banner改为No。重新编译吧,看到最原始的cl命令了。1> Copyright (C) Microsoft Corporation. All rights reserved.1> 1> cl /c /IC:
转载 2013-08-05 20:19:00
218阅读