分类:开放代码

google map vpi第三个版本后,载入速度快了很多,部分调用代码也有所改变。示例里面,有多个marker的示例,但却没有给出配套的infowindow的代码,参考了一下其他网友的写法后,得到以下可运行的代码。

var map;
var infowindow = null;
function initMap() {
map = new google.maps.Map(document.getElementById(‘map’), {
zoom: 2,
center: {lat: 20, lng: 0}
});
setMarkers(map,sites);
infowindow = new google.maps.InfoWindow({
content: “loading…”
});
}

var sites = [
[‘site1′, 22, 114,’img/star.png’,’info content1′],
[‘site2′, 32, 114,’img/flag.png’,’info content2′],
[‘site3′, 42, 114,’img/flag.png’,’info content2′],
];

function setMarkers(map,markers) {
for (var i = 0; i < markers.length; i++) {
var sites = markers[i];
var marker = new google.maps.Marker({
position: {lat: sites[1], lng: sites[2]},
map: map,
icon: sites[3],
title: sites[0],
html:sites[4]
});
google.maps.event.addListener(marker, “click”, function () {
infowindow.setContent(this.html);
infowindow.open(map, this);
});
}
}

注:

1、请在同目录下的img文件夹,添加star.png和flag.png两个图像文件;

2、参考:http://you.arenot.me/2010/06/29/google-maps-api-v3-0-multiple-markers-multiple-infowindows/

Bootstrap3优先移动设备,相关页面元素,如div等在页面缩小后,会变成列堆叠,自然就产生了哪些元素显示在前面,哪些元素显示在后面的问题。

问题依旧来自于做图书馆的网站,在某浏览具体内容的页面中,页面二八开,左边是分类导航之类的东西,右边是内容,当用户通过移动设备访问时,理所当然的是希望看到内容,而不是分类导航,那么该怎么样使得在手持设备上,内容可以先于分类导航显示呢?

======残忍的分割线======

当然,可以以一种残忍的做法,使用“hidden-xs”之类的属性隐藏左边的分类导航。

======结束残忍的分割线=====

草草google了一下,尚无明确的页面,于是看官网,有提到“通过使用.col-md-push-* 和 .col-md-pull-*就可以很容易的改变列的顺序”,下面还有个简单的例子,咋一看不是很明白,于是测试了下,最终确定了用法,确实可以解决碰到的问题。

简单来说,col-??-push-*和col-??-pull-*,主要起改变元素在大屏幕页面上的显示位置的作用,对于手持设备的小屏幕显示(也就是堆叠的列的顺序或者说位置),会严格按照html代码的先后顺序显示,那么我们自然就知道用法了:在html里面,把要先显示的内容写在前面,后显示的内容写在后面,然后用push和pull对它们在大屏幕上的左右位置进行调整,例子如下:

<div class=’col-12 col-sm-9 col-sm-push-3′>//这个div占了9个栅格,先写,让它在手持设备上可以先显示,然后用push往右推3个栅格,让它在大屏幕显示在右边。

<div class=’col-6 col-sm-3 col-sm-pull-9′> //这个div占了3个栅格,后写,让它在手持设备上后显示,然后用ull往左拉9个栅格,让它在大屏幕显示在左边。

就这么简单。

找了好长一段时间,原文请参考以下地址:

java 实现繁简字体转换(笨方法):http://www.javaeye.com/topic/261542?page=1

javabean:gb2big.java

// Created on 2009-4-13

package util;
public class gb2big
{
String shortChar = “万与丑专业丛东丝….”; //这里输出不完,请从网上的javascript找到完整字库
String longChar = “萬與醜專業叢東絲….”;

public String gb2big(String str)
{
String outputStirng = “”;
for (int i = 0; i < str.length(); i++)
{
if(shortChar.indexOf(str.charAt(i)) != -1)
{
outputStirng += longChar.charAt(shortChar.indexOf(str.charAt(i)));
}
else
{
outputStirng += str.charAt(i);
}
}
return outputStirng;
}
}

测试页面:test.jsp

test

tomcat和resin有些许不同,简单的记录一下,高手请随便飘过……

一、配置:

1、拷贝连接mysql的jar包mysql-connector-java-3.1.10-bin.jar到tomcat安装目录下的common/lib/目录下。

2、打开tomcat安装目录下的conf目录,分别修改server.xml、web.xml和context.xml文件:

2.1、在server.xml中,找到,在其前面加入:

2.2、在web.xml中,在最后之前,加入:

DB Connection
jdbc/mysql
javax.sql.DataSource
Container

2.3、在context.xml(当然也有可能是在conf/Catalina/localhost/下的虚拟目录配置文件)中,找到,在其后面加入:

即可完成配置。

二、简单的连接javabean(放在classes/myPool文件夹下,命名为mysqlpool.java):

/*
* Created on 2009-4-10
* yuanxinz@gmail.com
*/
package myPool;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class mysqlpool {

private javax.sql.DataSource pool;

public mysqlpool()
{
try
{
InitialContext ctx=new InitialContext();
pool=(DataSource)ctx.lookup(“java:comp/env/jdbc/mysql”);
}
catch(Exception e)
{
System.err.println(“Exception error:”+e.getMessage());
}
}

/**
* @return
*/
public javax.sql.DataSource getPool() {
return pool;
}
}

三、测试jsp:

test

在优雅的jquery框架下,很快地实现了将我馆的和厦大馆的随书光盘整合到innovative系统的opac中,接下来会加快电子期刊、电子图书及网络资源的整合。

效果页面:

随书光盘整合效果页面

Continue reading →

和厦大图书馆共通随书光盘有无,通过json来实现数据传递。

json样例(肖同学提供,严重感谢~):

({
   ”title”:”Title is here”,
   ”url”:”Url is here”
})

jquery处理样例:

$.getJSON(“http://url&callback=?”, {isbn:12345678900},function(data){
alert(“title:”+data.title);
alert(“url:”+data.url);
});

需要注意的是上面回调的参数用callback,而不是jsoncallback。

jQuery是一个更为好用的javascript框架,偶已经决定将其应用到实践中。对于跨域,jQuery可以通过getJSON()方法,以HTTP GET 请求的方式载入 JSON 数据,从而提供了较prototype更简便的解决方案。

在 jQuery 1.2 中,您可以通过使用JSONP(JSON with Padding,或者JSON with callbacks) 形式的回调函数来加载其他网域的JSON数据,如 “myurl?callback=?”。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。(ps:此行以后的代码将在这个回调函数执行前执行)

jQuery.getJSON(url,[data],[callback])

参数

url (String) : 发送请求地址。

data (Map) : (可选) 待发送 Key/value 参数。

callback (Function) : (可选) 载入成功时回调函数。

示例

从 Flickr JSONP API 载入 4 张最新的关于猫的图片。

HTML 代码:

jQuery 代码:

$.getJSON(“http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?”,
function(data){
$.each(data.items, function(i,item){
$(““).attr(“src”, item.media.m).appendTo(“#images”);
if ( i == 3 ) return false;
});
});

——————————————————————————–

从 test.js 载入 JSON 数据并显示 JSON 数据中一个 name 字段数据。

jQuery 代码:

$.getJSON(“test.js”, function(json){
alert(“JSON Data: ” + json.users[3].name);
});

——————————————————————————–

从 test.js 载入 JSON 数据,附加参数,显示 JSON 数据中一个 name 字段数据。

jQuery 代码:

$.getJSON(“test.js”, { name: “John”, time: “2pm” }, function(json){
alert(“JSON Data: ” + json.users[3].name);
});

本文数据及样例来自:http://jquery-api-zh-cn.googlecode.com/svn/trunk/index.html

参加过“数字图书馆高级研讨班”的朋友们,肯定对林夏老师的信息可视化课程印象深刻。一般来说,信息可视化的程序,都是采用桌面程序来实现。这是因为桌面程序有丰富的API支持,实现起来比较容易。但是,相对于web,桌面程序不利于使用和传播,因此,如何在web中轻松实现信息的可视化,曾经是个棘手的问题。Java Applet、flash、SVG、ActiveX、JFreeChart、Silverlight等等技术,都给出了解决方案,但要求的技术成本有点高的。其实,使用简单的javascript,一样可以满足我们在web中实现信息可视化的大部分需求,只是因为相关标准不完善(例如canvas标签很长时间得不到承认和支持),一直以来不受重视。不过,随着web2.0的兴起,javascript成为宠儿,许多javascript框架出现之后,使用javascript在web中实现信息可视化方面,迅速成为焦点。

采用javascript来做这一事情的好处是显而易见的,所以,大部分javascript框架都实现了丰富的绘图接口,并且有更多的第三方插件基于基本的javascript框架,对相关功能进行封装,以便于我们更好的应用。本文中介绍的Flot插件就是其中的佼佼者。

Flot是基于jQuery的、纯脚本的、开源的插件,由丹麦的iola工作室开发,它的官方站点在http://code.google.com/p/flot/,上面有例子和源码下载。

接下来,如下图所示,我们使用Flot来实现一个简单的例子,将每个月和每天的入馆人数用一条曲线图展示出来(马上下载本例子的源码)。

进馆人数统计,Flot生成的曲线图进馆人数统计,flot生成的曲线图

Continue reading →

一、编写脚本内容,并命名为backupdata,置于根目录:

#!/bin/sh
#备份文件名
backupfile=”`date +”%Y%m%d”`.tar”
export backupfile
#删除旧备份
rm /backup/*.tar
#进入待备份数据目录
cd /u/data/
#打包data文件夹下的database目录
tar cvf /backup/$backupfile database
#将ftp相关信息输出到netrc,使用netrc实现ftp自动上传
#ftp用户名:backup,密码backup
echo “default login backup password backup”>/.netrc
#初始化,macro define initial
echo “macdef init”>>/.netrc
#文件的传输方式设为二进制
echo “bin”>>/.netrc
#ftp服务器路径,backup文件夹
echo “cd backup”>>/.netrc
#本地路径
echo “lcd /backup”>>/.netrc
#上传
echo “put $backupfile”>>/.netrc
#完成后断开连接
echo “bye”>>/.netrc
#输出空白行,说明macdef定义结束
echo “”>>/.netrc
#设置.netrc文件权限,仅能被本用户访问
chmod 600 /.netrc
#执行命令,访问ftp
/usr/bin/ftp 192.168.0.10

Continue reading →

本文旨在提供可运行的例子,相关的知识点,参见以下链接:

源码运行之前,请先下载以下两个文件,并与domainA.html放在同一目录中:

源码:

Continue reading →