递归还是迭代?递归可以让很多算法有良好的可读性,但在某些情况下效率却低下.newLISP有很多的迭代构造器和高阶函数,比如flat或者系统自带的XML函数,其内部使用递归.大部分情况下,没有必要自己定义递归算法。.有时,非递归解决方案可以更快、更节省系统资源。.;classicrecursion;slowandresourcehungry(define(fibn)(if(
查找某个时间点范围内改动的文件
weixin_33841722
常常因为磁盘空间不足的原因,须要删除旧文件,因此希望有一个函数,可以查找到某个时间点之前的文件,并删除之。用newLISP来实现的话,须要相似这种功能:(define(location-file-based-on-modified-timedir-pathfrom-secondsto-secondsfile-op)(unless(directory?dir-path)(throw-error(st
查找某个时间点范围内修改的文件
csfreebird
#文件处理
经常由于磁盘空间不足的原因,需要删除旧文件,因此希望有一个函数,能够查找到某个时间点之前的文件,并删除之。用newLISP来实现的话,需要类似这样的功能:(define(location-file-based-on-modified-timedir-pathfrom-secondsto-secondsfile-op)(unless(directory?dir-path)(throw-error(s
windows7 安装Emacs 24
csfreebird
#EmacsonWindows
最近因为需要开发windows上的产品,又回到windows上来,因为要写newlisp脚本,还是emacs用起来比较方便。下面介绍一下安装最新版本的emacs的步骤,1.从http://core.ring.gr.jp/pub/GNU/emacs/windows/下载文件emacs-24.3-bin-i386.zip2.解压后放在自己的用户目录下,比如我的位置:C:\Users\shu6889.C
crontab演出newLISP脚本设置环境变量
weixin_33755554
今天遇到一个问题。执行在终端newLISP文字,一切正常,搬去crontab在将无法正常工作。即使crontab-e命令是在同一个用户执行。还是有问题。因为newLISP脚本使用hive和hadoop。它预计发行环境变量。所以第一次使用newLISPshell执行(env)命令,将当前环境变量记录到文件evn.lsp中。然后在newLISP脚本中载入之。以下是env.lsp文件部分内容:(set'
crontab中运行newLISP脚本的环境变量设置
csfreebird
#系统管理
今天遇到一个问题,在终端里运行newLISP脚本,一切正常,移动到crontab中就不行。即便crontab-e命令运行在同一个用户下,还是有问题。由于newLISP脚本要用到hive和hadoop,估计是环境变量的问题。所以先用newLISPshell运行(env)命令,将当前环境变量记录到文件evn.lsp中。然后在newLISP脚本中加载之。下面是env.lsp文件部分内容:(set'loc
Linux 网络抓包
iteye_9368
调试网络程序时,通常需要抓包分析。Linux下的tcpdump就很好。Ubuntu下默认已经安装。下面先举个实际的例子.比如我有一个C++程序监听本地端口8889,另一个newlisp程序通过TCP和其通信。首先可以检查一下有几个网络接口。root@dean-GA-MA790XT-UD4P:~#tcpdump-D1.eth02.any(Pseudo-devicethatcapturesonalli
3.模块化编码 (newLISP 代码模式 v.10.6.2)
newlisp
程序的构建当你编写的程序越来越大或者多人在同一代码库协作开发时,将代码划分成不同的模块是很有必要的.newLISP中使用context来创建模块,也就是命名空间.命名空间将各个模块之间的词法隔离开.这样各模块可以拥有相同名字的变量而不会发生冲突.通常,每个文件都有一个context来组织模块.可能一个模块文件包含数据库访问代码.;database.lsp;(context'db)(define(u
4. 局部变量 (newLISP 代码模式 v.10.6.2)
newlisp
循环函数中的局部变量所有的循环函数都使用局部变量,比如doargs,dolist,dostring,dotimes,dotree和for.在循环执行期间,每次循环都给变量赋予不同的值.但在离开循环函数后,变量将恢复其原来的值。let,define,和lambda是另一种声明局部变量的方法:用let,letn,local和letex声明局部变量let是一种常见的在代码块中申明局部变量的方法.(def
newlisp quick sort增强
sheismylife
NewLisp
增加一个函数extract作为参数,可以通过extract提取list某个元素的某个属性然后进行比较,而不是假定list中的每个元素都是简单的symbol,并且可以比较。这样就可以允许用在实际工作中。;;@argextractisafunctiontoextractvaluefromobjecttocomparewithkey
(define(quick-sort-exstartendextrac
newlisp实现quick sort
sheismylife
NewLisp
实现的时候要注意,如果将一个list传给函数,在函数内部修改后,不会改变函数外的list。因此采用了变通的方法,将list作为全局变量,函数递归时不传递list为参数。实现代码如下:sort.lsp文件(setqvalues'())
(define(quick-sortstartend)
(if(>=startend)
(begin
;;(println"return")
)
(begin
(l
newLISP运行scp命令并打印进度
sheismylife
scpNewLisp
如果在终端直接运行scp命令,会看到类似的输出scptrain.htmlroot@your-host:/path/of/your/folder
train.html100%149KB149.4KB/s00:00如果用newlisp的exec运行这个命令,得到的结果却是()如何获得上面的输出?train.html100%149KB149.4KB/s00:00首先要获得scp的输出,参考这个:http
newlisp debugger
debugger
写了很多newlsip程序,一直都是用println 来打印,查找问题。
但是随着程序越来越多,debug就变得越来越重要。今天在实现自己的TEA算法时,就需要调试newlips程序。
启动debugger很简单,只需要在newlisp会话中调用:
(trace true)
然后加载自己的lsp文件,调用函数,就可以进行调试了。
不过为了方便,还可以用(d
用newlisp管理windows下的nginx
windows
我写了一个nginx.lsp文件,可以通过传递参数来进行Nginx进程管理。
使用方法
1. 从nginx站点下载windows版本的程序,加压后,将newlisp.lsp文件复制到该目录。
2. 确保windows的system32目录下有newlisp.exe程序。
3. 运行程序, 目前支持5个参数
newlisp nginx.lsp start|stop|moni
Ubuntu 14.04 编译newLISP 10.6.0
ubuntu
1. 确保安装了gcc4.8.2
2. 安装须要的库:
apt-get install libreadline6 libreadline6-dev
3. 下载并解压newLISP源码,这个不多说了,去newlisp.org网站下载。 放到/usr/src文件夹下
wget http://www.newlisp.org/downloads/newlisp-10.6.0.tgz
newlisp 注释生成文档
lisp
最近写了一个newlisp_armory库,用来实现一些newlisp自身不支持的操作。比如跨windows和ubuntu的目录拷贝功能等。
自己用的时候,发现没有API reference文档参考,很不方便。于是学习了如何用注释生成文档。
在Ubuntu环境下,首先要下载newlispdoc程序的源码:http://newlisp.org/syntax.cgi?code/newlispdoc
Visual Studio 2012 编译C++显示cl命令
2012
为了用newlisp来实现VC编译,以便用我的Emacs开发VC程序,而不需要再打开VS 2012, 需要自己实现命令行的编译。我不需要nmake,因为我想直接了解VC编译器,以便今后更好的驾驭它。
首先要获得VC编译的cl命令行,方法是右键点击工程,点击Properties菜单,在打开的对话框中,选择C/C++ General菜单,然后将Supress Startup Banner改为No。
查找某个时间点范围内改动的文件
文件
常常因为磁盘空间不足的原因,须要删除旧文件,因此希望有一个函数,可以查找到某个时间点之前的文件,并删除之。
用newLISP来实现的话,须要相似这种功能:
(define (location-file-based-on-modified-time dir-path from-seconds to-seconds file-op)
(unless (directory? dir-pa
改进的newlisp编译脚本,只需要配置
lisp
前面有一篇Say bye to CMake and Makefile我开始用自己编写的newlisp脚本替代CMake,今天对前面的进行改进。
改进部分是:
1. newlisp armory模块的引入和初始化 部分可以重用
2. 将头文件所在目录,cpp或者cc文件所在目录以及依赖库名称等 作为配置单独抽出来,可以根据不同的项目进行配置
现在看改过后的代码:
rebui
newlisp的lambda表达式
lambda
lambda表达式指的是一个匿名函数,可以将之作为参数传递给map等容器,然后被容器内部调用之。
newlisp的官方文档在这里:http://www.newlisp.org/downloads/manual_frame.html
参考lambda一节,说其和fn相同,fn是其更方便的简写。下面的两个例子分别使用了lambda和fn,效果完全一样。它们都对map中的list做了加法操作。
&
newlsip 检查磁盘分区使用情况
new
主要还是用df -k这个命令,然后将输出结果全部逐行解析,最后调用REST API,发送给服务器保存。
参考代码:
#!/usr/bin/newlisp
(set 'cur-path "/opt/detector")
(load (append cur-path "/config.lsp"))
(define (add-log
Jenkins build失败条件
Jenkins
在Jenkins 项目写了很多剧本。有时候,我发现脚本失败,但Jenkins运行成功。
Jenkins无论是通过退出代码0比量build成功。
因此,newLISP在。您可以使用(exit)对于成功。(exit 1)它表示失败。
这样就须要添加一些脚本的推断,比方:
(unless (HDFS:test-file export-folder)
(begin
(printl
newLISP — 交互式教程
银月光海
这份文档于2006年5月被RickHanson(
[email protected])做了一些修正和更新后被转换成html文档。2008年12月被L.M更新到v.10.0版本.版权所有JohnW.Small2004。你可以到newLISP官方网站 www.newLISP.org 下载和安装这门语言。关于这个教程的任何意见和问题请发邮件到
[email protected]。中文版翻译时,newL
newLISP® 代码模式
银月光海
newLISP® 代码模式Version2012February14thnewLISP v.10.4.0Copyright©2012LutzMueller, www.nuevatec.com.Allrightsreserved.Chinesetranslationscopyright©2012 shortstory黄登(winger) Permissionisgrantedtocopy,distr
使用NewLisp设计Key-Value数据库系统
句龙胤
数据库lispkey-valueNewLisp
Lisp是一个很好的语言,最强大的就是其S-表达式,可以说是Lisp能活到今天的唯一一个原因。其次就是函数为基本类型和后来的闭包。当然Lisp也有很大的缺点,即:一般的设计师难以避免Lisp的缺点。Lisp有很多方言,很多子系列,可以说百花齐放,也可以说是散沙一盘。这就是Lisp的优点之一,同时也是其缺点之一,但是这些缺点主要是用Lisp的人造成的,而之所以会这样,是因为Lisp太容易滥用了(其缺
在NewLisp中实现匿名函数的递归
句龙胤
匿名函数递归lambdalispNewLisp
匿名函数在很多语言中的表现形式大概如下:(lambda (n)
(* (+ n 1) (- n 1)))只有参数列表和函数体,而没有名字。在大部分情况下没问题,但是一旦需要用到递归的话,就有点麻烦了,因为不知道如何去递归的调用一个匿名函数。在学术界中有一些解决这个问题的办法,其中一个就是Y组合子,但是那个太繁琐,而且难以通过宏自动将一个lambda变成可递归形式,没什么好处。根据历史经验,目前
用Hadoop Streaming技术集成newLISP脚本
超人学院
hadoophdfs
本文example6环境和之前的Hadoop1.x不同,是在Hadoop2.x环境下测试。功能和前面的日志处理程序一样。第一个newLISP脚本,起到mapper的作用,在stdin中读取文本数据,将did作为key,value为1,然后将结果输出到stdout第二个newLISP脚本,起到reducer的作用,在stdin中读取,key是dic,values是所有的value,简单对value求
newLISP数据拟合
阿尔萨斯
lisp
有时候需要拟合数据,比如某周五的数据因故无法生成, 可以用下面的算法简单拟合。
计算前两周的周四,周五的环比(邻比), 两个邻比求平均后加1, 乘以 周四的数据,得到周五的数据。
用newLISP实现代码很简单:
参考下面的示例:
#!/usr/bin/newlisp
(define (adjacent-div a b)
(div (sub b a) a))
(define
xml解析
小猪猪08
xml
1、DOM解析的步奏
准备工作:
1.创建DocumentBuilderFactory的对象
2.创建DocumentBuilder对象
3.通过DocumentBuilder对象的parse(String fileName)方法解析xml文件
4.通过Document的getElem
每个开发人员都需要了解的一个SQL技巧
brotherlamp
linuxlinux视频linux教程linux自学linux资料
对于数据过滤而言CHECK约束已经算是相当不错了。然而它仍存在一些缺陷,比如说它们是应用到表上面的,但有的时候你可能希望指定一条约束,而它只在特定条件下才生效。
使用SQL标准的WITH CHECK OPTION子句就能完成这点,至少Oracle和SQL Server都实现了这个功能。下面是实现方式:
CREATE TABLE books (
id &
Quartz——CronTrigger触发器
eksliang
quartzCronTrigger
转载请出自出处:http://eksliang.iteye.com/blog/2208295 一.概述
CronTrigger 能够提供比 SimpleTrigger 更有具体实际意义的调度方案,调度规则基于 Cron 表达式,CronTrigger 支持日历相关的重复时间间隔(比如每月第一个周一执行),而不是简单的周期时间间隔。 二.Cron表达式介绍 1)Cron表达式规则表
Quartz
Informatica基础
18289753290
InformaticaMonitormanagerworkflowDesigner
1.
1)PowerCenter Designer:设计开发环境,定义源及目标数据结构;设计转换规则,生成ETL映射。
2)Workflow Manager:合理地实现复杂的ETL工作流,基于时间,事件的作业调度
3)Workflow Monitor:监控Workflow和Session运行情况,生成日志和报告
4)Repository Manager:
linux下为程序创建启动和关闭的的sh文件,scrapyd为例
酷的飞上天空
scrapy
对于一些未提供service管理的程序 每次启动和关闭都要加上全部路径,想到可以做一个简单的启动和关闭控制的文件
下面以scrapy启动server为例,文件名为run.sh:
#端口号,根据此端口号确定PID
PORT=6800
#启动命令所在目录
HOME='/home/jmscra/scrapy/'
#查询出监听了PORT端口
人--自私与无私
永夜-极光
今天上毛概课,老师提出一个问题--人是自私的还是无私的,根源是什么?
从客观的角度来看,人有自私的行为,也有无私的
Ubuntu安装NS-3 环境脚本
随便小屋
ubuntu
将附件下载下来之后解压,将解压后的文件ns3environment.sh复制到下载目录下(其实放在哪里都可以,就是为了和我下面的命令相统一)。输入命令:
sudo ./ns3environment.sh >>result
这样系统就自动安装ns3的环境,运行的结果在result文件中,如果提示
com
创业的简单感受
aijuans
创业的简单感受
2009年11月9日我进入a公司实习,2012年4月26日,我离开a公司,开始自己的创业之旅。
今天是2012年5月30日,我忽然很想谈谈自己创业一个月的感受。
当初离开边锋时,我就对自己说:“自己选择的路,就是跪着也要把他走完”,我也做好了心理准备,准备迎接一次次的困难。我这次走出来,不管成败
如何经营自己的独立人脉
aoyouzi
如何经营自己的独立人脉
独立人脉不是父母、亲戚的人脉,而是自己主动投入构造的人脉圈。“放长线,钓大鱼”,先行投入才能产生后续产出。 现在几乎做所有的事情都需要人脉。以银行柜员为例,需要拉储户,而其本质就是社会人脉,就是社交!很多人都说,人脉我不行,因为我爸不行、我妈不行、我姨不行、我舅不行……我谁谁谁都不行,怎么能建立人脉?我这里说的人脉,是你的独立人脉。 以一个普通的银行柜员
JSP基础
百合不是茶
jsp注释隐式对象
1,JSP语句的声明
<%! 声明 %> 声明:这个就是提供java代码声明变量、方法等的场所。
表达式 <%= 表达式 %> 这个相当于赋值,可以在页面上显示表达式的结果,
程序代码段/小型指令 <% 程序代码片段 %>
2,JSP的注释
<!-- -->
web.xml之session-config、mime-mapping
bijian1013
javaweb.xmlservletsession-configmime-mapping
session-config
1.定义:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
2.作用:用于定义整个WEB站点session的有效期限,单位是分钟。
mime-mapping
1.定义:
<mime-m
互联网开放平台(1)
Bill_chen
互联网qq新浪微博百度腾讯
现在各互联网公司都推出了自己的开放平台供用户创造自己的应用,互联网的开放技术欣欣向荣,自己总结如下:
1.淘宝开放平台(TOP)
网址:http://open.taobao.com/
依赖淘宝强大的电子商务数据,将淘宝内部业务数据作为API开放出去,同时将外部ISV的应用引入进来。
目前TOP的三条主线:
TOP访问网站:open.taobao.com
ISV后台:my.open.ta
【MongoDB学习笔记九】MongoDB索引
bit1129
mongodb
索引
可以在任意列上建立索引
索引的构造和使用与传统关系型数据库几乎一样,适用于Oracle的索引优化技巧也适用于Mongodb
使用索引可以加快查询,但同时会降低修改,插入等的性能
内嵌文档照样可以建立使用索引
测试数据
var p1 = {
"name":"Jack",
"age&q
JDBC常用API之外的总结
白糖_
jdbc
做JAVA的人玩JDBC肯定已经很熟练了,像DriverManager、Connection、ResultSet、Statement这些基本类大家肯定很常用啦,我不赘述那些诸如注册JDBC驱动、创建连接、获取数据集的API了,在这我介绍一些写框架时常用的API,大家共同学习吧。
ResultSetMetaData获取ResultSet对象的元数据信息
apache VelocityEngine使用记录
bozch
VelocityEngine
VelocityEngine是一个模板引擎,能够基于模板生成指定的文件代码。
使用方法如下:
VelocityEngine engine = new VelocityEngine();// 定义模板引擎
Properties properties = new Properties();// 模板引擎属
编程之美-快速找出故障机器
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
public class TheLostID {
/*编程之美
假设一个机器仅存储一个标号为ID的记录,假设机器总量在10亿以下且ID是小于10亿的整数,假设每份数据保存两个备份,这样就有两个机器存储了同样的数据。
1.假设在某个时间得到一个数据文件ID的列表,是
关于Java中redirect与forward的区别
chenbowen00
javaservlet
在Servlet中两种实现:
forward方式:request.getRequestDispatcher(“/somePage.jsp”).forward(request, response);
redirect方式:response.sendRedirect(“/somePage.jsp”);
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知
[信号与系统]人体最关键的两个信号节点
comsci
系统
如果把人体看做是一个带生物磁场的导体,那么这个导体有两个很重要的节点,第一个在头部,中医的名称叫做 百汇穴, 另外一个节点在腰部,中医的名称叫做 命门
如果要保护自己的脑部磁场不受到外界有害信号的攻击,最简单的
oracle 存储过程执行权限
daizj
oracle存储过程权限执行者调用者
在数据库系统中存储过程是必不可少的利器,存储过程是预先编译好的为实现一个复杂功能的一段Sql语句集合。它的优点我就不多说了,说一下我碰到的问题吧。我在项目开发的过程中需要用存储过程来实现一个功能,其中涉及到判断一张表是否已经建立,没有建立就由存储过程来建立这张表。
CREATE OR REPLACE PROCEDURE TestProc
IS
fla
为mysql数据库建立索引
dengkane
mysql性能索引
前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引所知较少,因此我起了写一篇相关文章的念头。 最普通的情况,是为出现在where子句的字段建一个索引。为方便讲述,我们先建立一个如下的表。
学习C语言常见误区 如何看懂一个程序 如何掌握一个程序以及几个小题目示例
dcj3sjt126com
c算法
如果看懂一个程序,分三步
1、流程
2、每个语句的功能
3、试数
如何学习一些小算法的程序
尝试自己去编程解决它,大部分人都自己无法解决
如果解决不了就看答案
关键是把答案看懂,这个是要花很大的精力,也是我们学习的重点
看懂之后尝试自己去修改程序,并且知道修改之后程序的不同输出结果的含义
照着答案去敲
调试错误
centos6.3安装php5.4报错
dcj3sjt126com
centos6
报错内容如下:
Resolving Dependencies
--> Running transaction check
---> Package php54w.x86_64 0:5.4.38-1.w6 will be installed
--> Processing Dependency: php54w-common(x86-64) = 5.4.38-1.w6 for
JSONP请求
flyer0126
jsonp
使用jsonp不能发起POST请求。
It is not possible to make a JSONP POST request.
JSONP works by creating a <script> tag that executes Javascript from a different domain; it is not pos
Spring Security(03)——核心类简介
234390216
Authentication
核心类简介
目录
1.1 Authentication
1.2 SecurityContextHolder
1.3 AuthenticationManager和AuthenticationProvider
1.3.1 &nb
在CentOS上部署JAVA服务
java--hhf
javajdkcentosJava服务
本文将介绍如何在CentOS上运行Java Web服务,其中将包括如何搭建JAVA运行环境、如何开启端口号、如何使得服务在命令执行窗口关闭后依旧运行
第一步:卸载旧Linux自带的JDK
①查看本机JDK版本
java -version
结果如下
java version "1.6.0"
oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
ldzyz007
oraclemysqlSQL Server
oracle &n
记Protocol Oriented Programming in Swift of WWDC 2015
ningandjin
protocolWWDC 2015Swift2.0
其实最先朋友让我就这个题目写篇文章的时候,我是拒绝的,因为觉得苹果就是在炒冷饭, 把已经流行了数十年的OOP中的“面向接口编程”还拿来讲,看完整个Session之后呢,虽然还是觉得在炒冷饭,但是毕竟还是加了蛋的,有些东西还是值得说说的。
通常谈到面向接口编程,其主要作用是把系统设计和具体实现分离开,让系统的每个部分都可以在不影响别的部分的情况下,改变自身的具体实现。接口的设计就反映了系统
搭建 CentOS 6 服务器(15) - Keepalived、HAProxy、LVS
rensanning
keepalived
(一)Keepalived
(1)安装
# cd /usr/local/src
# wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
# tar zxvf keepalived-1.2.15.tar.gz
# cd keepalived-1.2.15
# ./configure
# make &a
ORACLE数据库SCN和时间的互相转换
tomcat_oracle
oraclesql
SCN(System Change Number 简称 SCN)是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字,可以理解成ORACLE数据库的时间戳,从ORACLE 10G开始,提供了函数可以实现SCN和时间进行相互转换;
用途:在进行数据库的还原和利用数据库的闪回功能时,进行SCN和时间的转换就变的非常必要了;
操作方法: 1、通过dbms_f
Spring MVC 方法注解拦截器
xp9802
spring mvc
应用场景,在方法级别对本次调用进行鉴权,如api接口中有个用户唯一标示accessToken,对于有accessToken的每次请求可以在方法加一个拦截器,获得本次请求的用户,存放到request或者session域。
python中,之前在python flask中可以使用装饰器来对方法进行预处理,进行权限处理
先看一个实例,使用@access_required拦截:
?