blogjava-凯发k8网页登录

blogjava-凯发k8网页登录http://www.blogjava.net/rain1102/
化学结构搜索,化学信息学,生物信息学,实验室信息学等 。
以高科技的生物、化学信息技术实现生命科学领域中专业数据的计算和管理、提高研发能力、增强在科研和成本效率方面的国际竞争力,为生物、化学、医药和学术机构提供一流的凯发天生赢家一触即发官网的解决方案和技术咨询。

子曰:危邦不入,乱邦不居。天下有道则见,无道则隐。
zh-cnsat, 08 apr 2023 23:37:41 gmtsat, 08 apr 2023 23:37:41 gmt60几家基于html5的化学结构式编辑器截图http://www.blogjava.net/rain1102/archive/2014/11/06/419617.html周锐周锐thu, 06 nov 2014 13:10:00 gmthttp://www.blogjava.net/rain1102/archive/2014/11/06/419617.htmlhttp://www.blogjava.net/rain1102/comments/419617.htmlhttp://www.blogjava.net/rain1102/archive/2014/11/06/419617.html#feedback1http://www.blogjava.net/rain1102/comments/commentrss/419617.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/419617.html
2. chemwriter,这个看起来也不错。(商业)

3. chemaxon公司的marvin4js,个人从非专业角度感觉用起来比较麻烦。(商业)


4. 比较出名的jme的兄弟jsme,免费,好用,功能弱了点而已。个人比较喜欢。(免费)

5. gga的ketcher,免费,使用有点马马虎虎。(免费)





周锐 2014-11-06 21:10
]]>
化学试剂电商平台http://www.blogjava.net/rain1102/archive/2014/11/03/419451.html周锐周锐mon, 03 nov 2014 07:35:00 gmthttp://www.blogjava.net/rain1102/archive/2014/11/03/419451.htmlhttp://www.blogjava.net/rain1102/comments/419451.htmlhttp://www.blogjava.net/rain1102/archive/2014/11/03/419451.html#feedback1http://www.blogjava.net/rain1102/comments/commentrss/419451.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/419451.html
有没有人关注这个行业的痛根呢?到时是什么,如何解决。

周锐 2014-11-03 15:35
]]>
pacs-与his的融合关系图http://www.blogjava.net/rain1102/archive/2012/02/04/369377.html周锐周锐sat, 04 feb 2012 08:26:00 gmthttp://www.blogjava.net/rain1102/archive/2012/02/04/369377.htmlhttp://www.blogjava.net/rain1102/comments/369377.htmlhttp://www.blogjava.net/rain1102/archive/2012/02/04/369377.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/369377.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/369377.html

周锐 2012-02-04 16:26
]]>
手术麻醉系统工作流程图http://www.blogjava.net/rain1102/archive/2012/02/04/369376.html周锐周锐sat, 04 feb 2012 08:20:00 gmthttp://www.blogjava.net/rain1102/archive/2012/02/04/369376.htmlhttp://www.blogjava.net/rain1102/comments/369376.htmlhttp://www.blogjava.net/rain1102/archive/2012/02/04/369376.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/369376.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/369376.html

周锐 2012-02-04 16:20
]]>
门诊医生工作站流程图http://www.blogjava.net/rain1102/archive/2012/02/04/369372.html周锐周锐sat, 04 feb 2012 07:46:00 gmthttp://www.blogjava.net/rain1102/archive/2012/02/04/369372.htmlhttp://www.blogjava.net/rain1102/comments/369372.htmlhttp://www.blogjava.net/rain1102/archive/2012/02/04/369372.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/369372.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/369372.html

周锐 2012-02-04 15:46
]]>
国家卫生信息化的五大任务http://www.blogjava.net/rain1102/archive/2012/02/02/369266.html周锐周锐thu, 02 feb 2012 13:50:00 gmthttp://www.blogjava.net/rain1102/archive/2012/02/02/369266.htmlhttp://www.blogjava.net/rain1102/comments/369266.htmlhttp://www.blogjava.net/rain1102/archive/2012/02/02/369266.html#feedback1http://www.blogjava.net/rain1102/comments/commentrss/369266.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/369266.html
1,以电子病历为核心的数字化医院
2,以电子健康档案为核心的数字化社区和乡镇卫生
3,以信息共享为中心的区域数据中心、全国通用的“医疗卡”和各级政府管理平台
4,以人为本的公众医疗卫生服务平台
5,以国家卫生数字化为目标的技术标准规范、法规政策和运行机制


周锐 2012-02-02 21:50
]]>
医技科室http://www.blogjava.net/rain1102/archive/2012/02/02/369260.html周锐周锐thu, 02 feb 2012 11:39:00 gmthttp://www.blogjava.net/rain1102/archive/2012/02/02/369260.htmlhttp://www.blogjava.net/rain1102/comments/369260.htmlhttp://www.blogjava.net/rain1102/archive/2012/02/02/369260.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/369260.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/369260.html  医技科室旧称辅助诊疗科室,是指运用专门的诊疗技术和设备,协同临床科诊断和治疗疾病的医疗技术科室。因为不设病床,不收病人,也称为非临床科室。按工作性质和任务,可分为以诊断为主的或以治疗为主的科室,还有以供应为主的科室。按系统的观点来看,医技科室是医院系统中的凯发k8网页登录的技术支持系统,因此,是医院的重要组成部分。
  医技科室有以下特点:
  ⑴一切工作围绕临床,面向全院,为各临床医疗科服务。医技科室虽自成体系,构成医院的一部分,但其业务工作主要是为各临床医疗科提供诊疗依据,或配合治疗,直接或间接为门诊、急诊和住院病人提供技术服务,同时也为全院的科研和教学服务。临床各科对医技科室,特别是对拥用先进的现代化诊疗设备的医技科室有较强的依赖性。医技科室技术水平的高低、工作质量的优劣、检查报告结果是否准确及时,直接影响对疾病的诊断和治疗,同时还影响着全院医疗、科研和教学工作的效果。每一个具体的检查项目,都关系到某一临床科的诊疗质量。可见,医技科室在医院医疗工作中起着举足轻重的作用。
  ⑵医技科室的专业性强,具有相对独立性。各医技科室有自己的专业分工,并有自己的工作特点和规律。即使同一科室,不同的仪器设备安装在不同的单独房间里,从操作到出报告都是独立完成,具有工作的独立性。这要求技术人员必须具备较强的业务技术能力和责任感,具有认真负责、一丝不苟的工作作风。
  ⑶借助专用仪器设备和专门技术开展业务工作,为病人诊断治疗提供客观依据。医技科室的工作手段主要是各种仪器设备,工作水平在很大程序上取决于仪器设备的先进程序和更新周期的长短,同时也取决于医技科室技术人员专业技术水平和知识更新的快慢。在科学技术迅猛发展的今天,这一特点显得尤为突出。
  ⑷医技各科室拥有诊疗仪器设备多、更新周期短、要求条件高。医技科室的仪器设备是医院现代化的物质基础和重要标志。随着现代化科学技术的发展,医疗设备更新换代越来越快,几年就更新一代或几代。每个科室、每个专业都拥有多种不同功能的仪器设备,同一专业同一功能的仪器设备,往往规格型号不一,操作各异。设备操作自动化、遥控化和电子计算机化,构成了医技科室形体各异的特点。而且每一台仪器设备都要求有特定的环境、建筑和保养设备,有相应的专门技术人员操作和维修管理。
  医技科室,包括药剂科、检验科、放射科、物理诊断科、核医学科、理疗科、手术室、供应室、营养治疗科、血库、医疗器械管理科。

周锐 2012-02-02 19:39
]]>
健康档案基本活动目录http://www.blogjava.net/rain1102/archive/2011/11/08/363243.html周锐周锐tue, 08 nov 2011 14:45:00 gmthttp://www.blogjava.net/rain1102/archive/2011/11/08/363243.htmlhttp://www.blogjava.net/rain1102/comments/363243.htmlhttp://www.blogjava.net/rain1102/archive/2011/11/08/363243.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/363243.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/363243.html

周锐 2011-11-08 22:45
]]>
健康档案基本业务域目录http://www.blogjava.net/rain1102/archive/2011/11/08/363239.html周锐周锐tue, 08 nov 2011 14:09:00 gmthttp://www.blogjava.net/rain1102/archive/2011/11/08/363239.htmlhttp://www.blogjava.net/rain1102/comments/363239.htmlhttp://www.blogjava.net/rain1102/archive/2011/11/08/363239.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/363239.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/363239.html

周锐 2011-11-08 22:09
]]>
卫生服务实体机构与角色的关系构建http://www.blogjava.net/rain1102/archive/2011/11/08/363235.html周锐周锐tue, 08 nov 2011 13:43:00 gmthttp://www.blogjava.net/rain1102/archive/2011/11/08/363235.htmlhttp://www.blogjava.net/rain1102/comments/363235.htmlhttp://www.blogjava.net/rain1102/archive/2011/11/08/363235.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/363235.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/363235.html



周锐 2011-11-08 21:43
]]>
医疗卫生服务实体机构目录http://www.blogjava.net/rain1102/archive/2011/11/08/363229.html周锐周锐tue, 08 nov 2011 13:12:00 gmthttp://www.blogjava.net/rain1102/archive/2011/11/08/363229.htmlhttp://www.blogjava.net/rain1102/comments/363229.htmlhttp://www.blogjava.net/rain1102/archive/2011/11/08/363229.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/363229.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/363229.html居民个人和医疗卫生服务机构

不同用户对基于健康档案的区域卫生信息平台需求有不同的关注点,具体如下:
居民个人:主要关注的是如何能获得可及的、优质的卫生服务;获取连续的健康信息、全程的健康管理等方面。
基层卫生服务机构:主要关注的是如何更好提供基本医疗、基本公共卫生与管理等基本服务。
专业卫生服务机构:主要关注的是如何保证服务质量、提高服务效率,如何加强疾病管理、卫生管理、应急管理、健康教育等方面,如何有利于针对性的服务的开展、健康管理的系统化等方面。
卫生行政管理机构:主要关注的是如何提高区域资源共享水平、强化绩效考核、提高监督管理能力、化解疾病风险等方面。
其它相关机构:主要指公安、民政、人口和计划生育服务等相关机构。


周锐 2011-11-08 21:12
]]>
程序员、设计师、项目经理之间的战争http://www.blogjava.net/rain1102/archive/2011/08/11/356300.html周锐周锐thu, 11 aug 2011 06:47:00 gmthttp://www.blogjava.net/rain1102/archive/2011/08/11/356300.htmlhttp://www.blogjava.net/rain1102/comments/356300.htmlhttp://www.blogjava.net/rain1102/archive/2011/08/11/356300.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/356300.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/356300.html

周锐 2011-08-11 14:47
]]>
我来自天朝-百度翻译-i come from chinahttp://www.blogjava.net/rain1102/archive/2011/08/01/355504.html周锐周锐mon, 01 aug 2011 09:12:00 gmthttp://www.blogjava.net/rain1102/archive/2011/08/01/355504.htmlhttp://www.blogjava.net/rain1102/comments/355504.htmlhttp://www.blogjava.net/rain1102/archive/2011/08/01/355504.html#feedback1http://www.blogjava.net/rain1102/comments/commentrss/355504.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/355504.html


周锐 2011-08-01 17:12
]]>
利用jpg图片生成高质量的缩略图http://www.blogjava.net/rain1102/archive/2011/07/26/355029.html周锐周锐tue, 26 jul 2011 01:49:00 gmthttp://www.blogjava.net/rain1102/archive/2011/07/26/355029.htmlhttp://www.blogjava.net/rain1102/comments/355029.htmlhttp://www.blogjava.net/rain1102/archive/2011/07/26/355029.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/355029.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/355029.html如果给出缩略图的宽度和高度,那么就会根据给出的宽度和高度生产缩略图,如果只给出宽度或者高度值,那么就会根据比例生成缩略图。
package com.founder.common.utils;

import java.awt.image.bufferedimage;
import java.io.file;
import javax.imageio.imageio;

//生成等比例高质量缩略图
public class thumbnailutil {
 private static int width;
 private static int height;
 private static int scalewidth;
 static double support = (double) 3.0;
 static double pi = (double) 3.14159265358978;
 static double[] contrib;
 static double[] normcontrib;
 static double[] tmpcontrib;
 static int startcontrib, stopcontrib;
 static int ndots;
 static int nhalfdots;

 public static void saveimage(string fromfilestr, string savetofilestr, int formatwidth, int formatheight) throws exception {
  file savefile = new file(savetofilestr);
  file fromfile = new file(fromfilestr);
  saveimage(fromfile, savefile, formatwidth, formatheight);
 }
 
 public static void saveimage(file fromfile  , file savefile, int formatwidth, int formatheight) throws exception {
  bufferedimage srcimage;
  srcimage = javax.imageio.imageio.read(fromfile); // construct image
  int imagewidth = srcimage.getwidth(null);
  int imageheight = srcimage.getheight(null);
  int changetowidth = 0;
  int changetoheight = 0;
  if (formatwidth > 0 && formatheight > 0) {
   changetowidth = formatwidth;
   changetoheight = formatheight;
  } else {
   if (imagewidth > 0 && imageheight > 0) {
    if (imagewidth / imageheight >= formatwidth / formatheight) {
     if (imagewidth > formatwidth) {
      changetowidth = formatwidth;
      changetoheight = (imageheight * formatwidth) / imagewidth;
     } else {
      changetowidth = imagewidth;
      changetoheight = imageheight;
     }
    } else {
     if (imageheight > formatheight) {
      changetoheight = formatheight;
      changetowidth = (imagewidth * formatheight) / imageheight;
     } else {
      changetowidth = imagewidth;
      changetoheight = imageheight;
     }
    }
   }
  }
  
  srcimage = imagezoomout(srcimage, changetowidth, changetoheight);
  imageio.write(srcimage, "jpeg", savefile);
 }

 public static bufferedimage imagezoomout(bufferedimage srcbufferimage, int w, int h) {
  width = srcbufferimage.getwidth();
  height = srcbufferimage.getheight();
  scalewidth = w;

  if (determineresultsize(w, h) == 1) {
   return srcbufferimage;
  }
  calcontrib();
  bufferedimage pbout = horizontalfiltering(srcbufferimage, w);
  bufferedimage pbfinalout = verticalfiltering(pbout, h);
  return pbfinalout;
 }

 /**
  * 决定图像尺寸
  */
 private static int determineresultsize(int w, int h) {
  double scaleh, scalev;
  scaleh = (double) w / (double) width;
  scalev = (double) h / (double) height;
  // 需要判断一下scaleh,scalev,不做放大操作
  if (scaleh >= 1.0 && scalev >= 1.0) {
   return 1;
  }
  return 0;

 }

 private static double lanczos(int i, int inwidth, int outwidth, double support) {
  double x;

  x = (double) i * (double) outwidth / (double) inwidth;

  return math.sin(x * pi) / (x * pi) * math.sin(x * pi / support)
    / (x * pi / support);

 }

 private static void calcontrib() {
  nhalfdots = (int) ((double) width * support / (double) scalewidth);
  ndots = nhalfdots * 2 1;
  try {
   contrib = new double[ndots];
   normcontrib = new double[ndots];
   tmpcontrib = new double[ndots];
  } catch (exception e) {
   system.out.println("init contrib,normcontrib,tmpcontrib" e);
  }

  int center = nhalfdots;
  contrib[center] = 1.0;

  double weight = 0.0;
  int i = 0;
  for (i = 1; i <= center; i ) {
   contrib[center i] = lanczos(i, width, scalewidth, support);
   weight = contrib[center i];
  }

  for (i = center - 1; i >= 0; i--) {
   contrib[i] = contrib[center * 2 - i];
  }

  weight = weight * 2 1.0;

  for (i = 0; i <= center; i ) {
   normcontrib[i] = contrib[i] / weight;
  }

  for (i = center 1; i < ndots; i ) {
   normcontrib[i] = normcontrib[center * 2 - i];
  }
 }

 // 处理边缘
 private static void caltempcontrib(int start, int stop) {
  double weight = 0;

  int i = 0;
  for (i = start; i <= stop; i ) {
   weight = contrib[i];
  }

  for (i = start; i <= stop; i ) {
   tmpcontrib[i] = contrib[i] / weight;
  }

 }

 private static int getredvalue(int rgbvalue) {
  int temp = rgbvalue & 0x00ff0000;
  return temp >> 16;
 }

 private static int getgreenvalue(int rgbvalue) {
  int temp = rgbvalue & 0x0000ff00;
  return temp >> 8;
 }

 private static int getbluevalue(int rgbvalue) {
  return rgbvalue & 0x000000ff;
 }

 private static int comrgb(int redvalue, int greenvalue, int bluevalue) {

  return (redvalue << 16) (greenvalue << 8) bluevalue;
 }

 // 行水平滤波
 private static int horizontalfilter(bufferedimage bufimg, int startx, int stopx,
   int start, int stop, int y, double[] pcontrib) {
  double valuered = 0.0;
  double valuegreen = 0.0;
  double valueblue = 0.0;
  int valuergb = 0;
  int i, j;

  for (i = startx, j = start; i <= stopx; i , j ) {
   valuergb = bufimg.getrgb(i, y);

   valuered = getredvalue(valuergb) * pcontrib[j];
   valuegreen = getgreenvalue(valuergb) * pcontrib[j];
   valueblue = getbluevalue(valuergb) * pcontrib[j];
  }

  valuergb = comrgb(clip((int) valuered), clip((int) valuegreen),
    clip((int) valueblue));
  return valuergb;

 }

 // 图片水平滤波
 private static bufferedimage horizontalfiltering(bufferedimage bufimage, int ioutw) {
  int dwinw = bufimage.getwidth();
  int dwinh = bufimage.getheight();
  int value = 0;
  bufferedimage pbout = new bufferedimage(ioutw, dwinh,
    bufferedimage.type_int_rgb);

  for (int x = 0; x < ioutw; x ) {

   int startx;
   int start;
   int x = (int) (((double) x) * ((double) dwinw) / ((double) ioutw) 0.5);
   int y = 0;

   startx = x - nhalfdots;
   if (startx < 0) {
    startx = 0;
    start = nhalfdots - x;
   } else {
    start = 0;
   }

   int stop;
   int stopx = x nhalfdots;
   if (stopx > (dwinw - 1)) {
    stopx = dwinw - 1;
    stop = nhalfdots (dwinw - 1 - x);
   } else {
    stop = nhalfdots * 2;
   }

   if (start > 0 || stop < ndots - 1) {
    caltempcontrib(start, stop);
    for (y = 0; y < dwinh; y ) {
     value = horizontalfilter(bufimage, startx, stopx, start,
       stop, y, tmpcontrib);
     pbout.setrgb(x, y, value);
    }
   } else {
    for (y = 0; y < dwinh; y ) {
     value = horizontalfilter(bufimage, startx, stopx, start,
       stop, y, normcontrib);
     pbout.setrgb(x, y, value);
    }
   }
  }

  return pbout;

 }

 private static int verticalfilter(bufferedimage pbinimage, int starty, int stopy,
   int start, int stop, int x, double[] pcontrib) {
  double valuered = 0.0;
  double valuegreen = 0.0;
  double valueblue = 0.0;
  int valuergb = 0;
  int i, j;

  for (i = starty, j = start; i <= stopy; i , j ) {
   valuergb = pbinimage.getrgb(x, i);

   valuered = getredvalue(valuergb) * pcontrib[j];
   valuegreen = getgreenvalue(valuergb) * pcontrib[j];
   valueblue = getbluevalue(valuergb) * pcontrib[j];
  }

  valuergb = comrgb(clip((int) valuered), clip((int) valuegreen), clip((int) valueblue));
  
  return valuergb;

 }

 private static bufferedimage verticalfiltering(bufferedimage pbimage, int iouth) {
  int iw = pbimage.getwidth();
  int ih = pbimage.getheight();
  int value = 0;
  bufferedimage pbout = new bufferedimage(iw, iouth,
    bufferedimage.type_int_rgb);

  for (int y = 0; y < iouth; y ) {

   int starty;
   int start;
   int y = (int) (((double) y) * ((double) ih) / ((double) iouth) 0.5);

   starty = y - nhalfdots;
   if (starty < 0) {
    starty = 0;
    start = nhalfdots - y;
   } else {
    start = 0;
   }

   int stop;
   int stopy = y nhalfdots;
   if (stopy > (int) (ih - 1)) {
    stopy = ih - 1;
    stop = nhalfdots (ih - 1 - y);
   } else {
    stop = nhalfdots * 2;
   }

   if (start > 0 || stop < ndots - 1) {
    caltempcontrib(start, stop);
    for (int x = 0; x < iw; x ) {
     value = verticalfilter(pbimage, starty, stopy, start, stop,
       x, tmpcontrib);
     pbout.setrgb(x, y, value);
    }
   } else {
    for (int x = 0; x < iw; x ) {
     value = verticalfilter(pbimage, starty, stopy, start, stop,
       x, normcontrib);
     pbout.setrgb(x, y, value);
    }
   }

  }

  return pbout;

 }

 static int clip(int x) {
  if (x < 0)
   return 0;
  if (x > 255)
   return 255;
  return x;
 }
}



周锐 2011-07-26 09:49
]]>
小强与小明-正在疯传的伟大的故事http://www.blogjava.net/rain1102/archive/2011/07/05/353746.html周锐周锐tue, 05 jul 2011 13:28:00 gmthttp://www.blogjava.net/rain1102/archive/2011/07/05/353746.htmlhttp://www.blogjava.net/rain1102/comments/353746.htmlhttp://www.blogjava.net/rain1102/archive/2011/07/05/353746.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/353746.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/353746.html    小强与小明——正在疯传的伟大的故事

1.小强每天在村里晃悠,爹妈看着发愁,心想这孩子将来怎么办呀;小明每日都苦读诗书,父母喜在心里,村里人都认定他必有出息。
2.那年,小强和小明都是十九岁。小强跟着村里的外出打工,来到了高速公路的工地,保底工资三千块;小明考上了一所重点大学,读的是道路与桥梁专业,学费每年五千多。
3.那年,小强和小明都是二十三岁。小强的爹妈给他说个巧媳妇,是邻村的,特别贤惠;小明在大学里谈了个女朋友,是邻校的,很有文化。
4.那年,小强和小明都是二十四岁。小强在老家结了婚,把媳妇带到工地上,来给他洗衣做饭,恩爱有加;小明终于大学毕业,找了施工单位工作,跟女友分居两地,朝思暮想。
5.小强每天很快乐,下了班就没事,吃了饭和媳妇散散步,晚上便和工友打麻将看电视;小明每天很忙碌,白天跑遍工地,晚上还做资料画图纸,好久不见的女友跟他分手了。
6.那年,小强和小明都是二十八岁。小强攒下了二十万,已是两个娃娃的爹,心想着回家盖栋漂亮的楼房;小明过了中级职称,还是单身一个人过,心想着再干几年就是高级了。
7.小强在农村老家盖了两层小楼,装修很漂亮,剩的钱买了一群猪仔,让媳妇回家种地养猪;小明在城里贷款买了一套新房,按揭三千多,父母给介绍了新女朋友,在城里上班很少见面。
8. 那年,小强和小明都是三十一岁。小强媳妇从老家打电话来说:小强,现在家里有房有存款,咱喂喂猪,种种地,很幸福了,家里不能没有男人,你快回来吧;小明媳妇从城里打电话来说:小明,小孩的借读费要十五万呢,家里没有存款了,你看能不能找公司借点。
9.小强听了媳妇的话,离开了工地,回老家跟老婆一起养猪,照顾父母小孩;小明听了妻子的话,更努力工作,去了偏远又艰苦的工地,很难回家一次。
10.那年,小强和小明都是三十五岁。猪肉价格疯涨,小强的一大圈猪成了宝贝,一年赚了十几万;通货膨胀严重,小明的公司很难接到项目,很多人都待岗了。
11.那年,小强和小明都是五十岁了。小强已是三个孙子的爷爷,天天晒着太阳抽着旱烟在村里转悠;小明已是高级路桥工程师,天天顶着太阳皱着眉头在工地检查。
12.那年,小强和小明都是六十岁了。小强过六十大寿,老伴说:一家团圆多好呀,家里的事就让娃们操心吧,外面有啥好玩的地方咱出去转转;小明退休摆酒席,领导说:回家歇着没意思,返聘回单位做技术顾问吧,工地上有什么问题您给指导指导。
13.小强病了一场,小强拉着老伴的手说:我活了快七十岁了,有儿有孙的,知足了;小明病了一场,小明抚着妻子的手说:我在外工作几十年,让你受苦了,对不起。
14.……由于长期体力劳动,吃的是自家种的菜、养的猪,小强身体一直很硬朗,慢慢就恢复了。由于长期熬夜加班、小明喝酒应酬、工地食堂饭菜也很差,身上落下很多毛病,很快就去世了。
15.八十岁的小强蹲在村头抽着旱烟袋,看着远远的山;远远的山上有一片公墓,小明已在那里静静睡去;小强在鞋底磕磕烟灰,拄着拐杖站起身,望了望那片公墓,自言自语地说:唉,都是一辈子呀……
谨以此向工作在大城市,付出了青春、爱情、亲情甚至生命的人。
人的一生很短暂,希望大家给自己多一些时间,给家人多一些关爱



周锐 2011-07-05 21:28
]]>
化合物相似性-指纹(fingerprint)http://www.blogjava.net/rain1102/archive/2011/06/30/353435.html周锐周锐thu, 30 jun 2011 06:13:00 gmthttp://www.blogjava.net/rain1102/archive/2011/06/30/353435.htmlhttp://www.blogjava.net/rain1102/comments/353435.htmlhttp://www.blogjava.net/rain1102/archive/2011/06/30/353435.html#feedback1http://www.blogjava.net/rain1102/comments/commentrss/353435.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/353435.html化合物相似性,有时候也会说分子相似性,是指两个分子或者化合物在结构上的相似程度,而相似化合物一般在化学反应上的效果类似,以及在生物活性(biological activity)上面也会有同样的作用。
在计算化合物相似性的过程中,使用的是分子指纹(molecular fingerprint)来进行比较。比较两个化合物分子指纹时,最常用的是杰卡德系数(tanimoto(or jaccard) coefficient )t来度量其相似程度。若两个化学结构的指纹的t>0.85,一般就视为相似的。
以相似性为基础可以进行虚拟筛选(virtual screening),是一种ligand-based的虚拟筛选,为了要在上百万中化合物数据库中进行高效的相似性筛选,通过使用指纹比对效率最为高效。

周锐 2011-06-30 14:13
]]>
28条提高关键字排名的seo优化方法【转载】http://www.blogjava.net/rain1102/archive/2011/06/29/353366.html周锐周锐wed, 29 jun 2011 07:44:00 gmthttp://www.blogjava.net/rain1102/archive/2011/06/29/353366.htmlhttp://www.blogjava.net/rain1102/comments/353366.htmlhttp://www.blogjava.net/rain1102/archive/2011/06/29/353366.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/353366.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/353366.html

关键词位置、密度、处理

1.url中出现关键词(英文)
2.网页标题中出现关键词(1-3个)
3.关键词标签中出现关键词(1-3个)
4.描述标签中出现关键词(主关键词重复2次)
5.内容中自然出现关键词
6.内容第一段和最后一段出现关键词
7.h1,h2标签中出现关键词
8.导出链接锚文本中包含关键词
9.图片的文件名包含关键词
10.alt属性中出现关键词
11.关键词密度6-8%
12.对关键词加粗或斜体

内容质量、更新频率、相关性

1.原创的内容最佳,切忌被多次转载的内容
2.内容独立性,与其他页面至少30%互异
3.1000-2000字,合理分段
4.有规律更新,最好是每天
5.内容围绕页面关键词展开,与整站主题相关
6.具有评论功能,评论中出现关键词

导入链接和锚文本

1.高pr值站点的导入链接
2.内容相关页面的导入链接
3.导入链接锚文本中包含页面关键词
4.锚文本存在于网页内容中
5.锚文本周围出现相关关键词
6.导入链接存在3个月以上
7.导入链接所在页面的导出链接少于100个
8.导入链接来自不同ip地址
9.导入链接自然增加
10.锚文本多样化(如,seo和seo十万个为什么)
原文地址:



周锐 2011-06-29 15:44
]]>
存储bitset到mysql中--相似度搜索http://www.blogjava.net/rain1102/archive/2011/06/29/353331.html周锐周锐wed, 29 jun 2011 02:20:00 gmthttp://www.blogjava.net/rain1102/archive/2011/06/29/353331.htmlhttp://www.blogjava.net/rain1102/comments/353331.htmlhttp://www.blogjava.net/rain1102/archive/2011/06/29/353331.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/353331.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/353331.htmlfingerprint是一个二进制数据,cdk中使用bitset来存储该信息,如果要每次比对都去生成bitset,那也太耗时间了,所以我们需要存储
fingerprint信息到数据库中,比较的时候,直接读取,而mysql不支持存储bitset数据,网站找了一下,有人想到把
bitset转换成blob信息进行存储,然后取的时候再转换回来,不愧是个好的方法。下面来看看代码实现:

/*
 * 凯发天生赢家一触即发官网 copyright (c) 2010-2020 founder ltd. all rights reserved.
 *
 * this software is the confidential and proprietary information of
 * founder. you shall not disclose such confidential information
 * and shall use it only in accordance with the terms of the agreements
 * you entered into with founder.
 *
 */
package com.founder.mysql;
import java.sql.blob;
import java.sql.connection;
import java.sql.sqlexception;
import java.util.bitset;
public class mysqlutil {
public static blob bitsettoblob(bitset mybitset, connection con) throws sqlexception {
   byte[] bytearray = tobytearray(mybitset);
   blob blob = con.createblob();
   blob.setbytes(1, bytearray);
   return blob;
}
private static byte[] tobytearray(bitset bits) {
   byte[] bytes = new byte[bits.length()/8 1];
   for (int i=0; i
       if (bits.get(i)) {
           bytes[bytes.length-i/8-1] |= 1<<(i%8);
       }
   }
   return bytes;
}
public static bitset blobtobitset(blob blob) throws sqlexception {
   byte[] bytes = blob.getbytes(1, (int)blob.length());
   bitset bitset = frombytearray(bytes);
   return bitset;
}
private static bitset frombytearray(byte[] bytes) {
   bitset bits = new bitset(1024);  
   for (int i=0; i
       if ((bytes[bytes.length-i/8-1]&(1<<(i%8))) > 0) {
           bits.set(i);
       }
   }
   return bits;
}
}

通过以上代码,我们就可以把fingerprint的值计算出来,然后存储到mysql数据库中了。
进行相似度搜索的时候,值需要取出已经存储的值进行比对就可以了。
float coefficient = tanimoto.calculate(query, mysqlutil.blobtobitset(results.getblob("bits")));
笔者测试了187586条结构数据,大概需要12秒左右,基本满足一般需求。


周锐 2011-06-29 10:20
]]>improved smiles substructure searching-提高子结构搜索速度http://www.blogjava.net/rain1102/archive/2011/06/27/353100.html周锐周锐mon, 27 jun 2011 13:50:00 gmthttp://www.blogjava.net/rain1102/archive/2011/06/27/353100.htmlhttp://www.blogjava.net/rain1102/comments/353100.htmlhttp://www.blogjava.net/rain1102/archive/2011/06/27/353100.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/353100.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/353100.htmldaylight上面有一篇文章,讲解如何提高子结构搜索速度:
其大概意思就是先通过fingerprint进行筛选,这样可以快速的筛选掉一部分数据,对于复杂结构更有效;另外就是根据原子个数或者特殊原子个数进行比较,如果查询结构包含三个“n”原子,那么所要查询出的结构所含有“n”的个数必须大于等于3,这样对于包含一些特殊元素的效果是特别的好;还有就是根据分子的一些性质进行筛选过滤,比如芳香性等;最后再进行匹配,这样一来对于复杂结构以及含特殊元素的查询速度会提高很多。
      最后文章中还给出测试数据,从中可以看出,速度一般提高了三倍左右:
      
name smiles correct fp triage before after latest
propane ccc 65337 66352 42411 42.59 17.99 14.34
selenium [se] 246 995 225 0.80 0.83 0.52
benzene c1ccccc1 79426 79486 50893 72.69 27.56 20.29
methane c 118519 118524 118511 61.29 5.47 4.25
amido nc=o 25695 26975 14702 18.89 9.84 8.16
methylbenzene cc1ccccc1 54529 56869 20490 54.76 35.58 25.90
carboxy oc=o 33009 34369 17809 23.86 12.48 10.24
chlorine cl 19424 23318 19424 11.23 1.38 1.12
cyclopropane c1cc1 863 4358 484 8.24 7.78 5.02
biphenyl c1ccccc1c2ccccc2 2967 5142 146 21.94 21.65 11.44
dopamine nccc1ccc(o)c(o)c1 829 913 23 1.85 2.09 1.47
sulfisoxazole 7 8 3 0.50 0.88 0.51
betacarotene 2 16 1 0.48 0.68 0.58
nitrofurantoin 0 0 0 0.42 0.58 0.52



周锐 2011-06-27 21:50
]]>在sqlplus中执行用java编写的oracle存储过程[转载]http://www.blogjava.net/rain1102/archive/2011/06/22/352799.html周锐周锐wed, 22 jun 2011 04:38:00 gmthttp://www.blogjava.net/rain1102/archive/2011/06/22/352799.htmlhttp://www.blogjava.net/rain1102/comments/352799.htmlhttp://www.blogjava.net/rain1102/archive/2011/06/22/352799.html#feedback0http://www.blogjava.net/rain1102/comments/commentrss/352799.htmlhttp://www.blogjava.net/rain1102/services/trackbacks/352799.html

首先在pl/sql中分别执行:

create or replace and compile java source named testjava1 as 
public class testjava1 

  public static void test() 
  { 
   system.out.println("hello"); 
  } 
}


create or replace procedure testjava1 as language java name 'testjava1.test()';

---------------------------------------------------------------------------------------------------------

在sqlplus中

c:\windows\system32>sqlplus nc5520110105/nc5520110105@192.168.10.87

sql*plus: release 11.2.0.1.0 production on fri apr 1 14:06:02 2011

凯发天生赢家一触即发官网 copyright (c) 1982, 2010, oracle.  all rights reserved.


connected to:
oracle database 10g enterprise edition release 10.2.0.1.0 - 64bit production
with the partitioning, olap and data mining options

sql> set serveroutput on;
sql> show serveroutput;
serveroutput on size unlimited format word_wrapped
sql> call dbms_java.set_output(2000);

call completed.

sql>
sql> show serveroutput;
serveroutput on size unlimited format word_wrapped
sql> exec testjava1();
hello

pl/sql procedure successfully completed.

sql>

---------------------------------------------------------------------------------------------------------

再看一个例子:

在pl/sql中执行:

--用java编写oracle存储过程。
create or replace and compile java source named test as
public class mytest
{
    public static void myproc(int a,int b,int[] ret){
       ret[0]=a b;
    }
    public static int myfunc(int a,int b){
       return a b;
    }
}

--创建存储过程
create or replace procedure myproc(a in number, b in number, ret out number) as
language java name 'mytest.myproc(int,int,int[])';
--创建函数
create or replace function myfunc(a in number, b in number) return number is
language java name 'mytest.myfunc(int,int) return int';

然后在sqlplus中测试存储过程——

sql> set serveroutput on
sql> declare a integer;
  2  begin
  3  myproc(1, 2, a);
  4  dbms_output.put_line(a);
  5  end;
  6  /
3

pl/sql procedure successfully completed.

 

sql> select myfunc(1,2) from dual;

myfunc(1,2)
-----------
          3

sql>



周锐 2011-06-22 12:38
]]>
网站地图