Java Web高性能开发(三)

今日要闻:

Clarifai:可识别视频中物体

最近几年,得益于深度学习技术的发展,谷歌Facebook等企业的研究人员在图形识别软件领域取得了重大突破。现在,一家名为Clarifai的创业公司则提供了一项新服务,利用深度学习技术来理解视频内容。

深度学习需要借助一个模拟“神经元”的网络来处理数据,并且利用实例数据对其进行训练。Clarifai的技术源自纽约大学的研究,该公司2013年在一项著名的图片内容识别软件竞赛中取得前五名。

 

今日英文:

SQLXML 类型(Sql:2003)

需要导入xdb.jarxmlparserv2.jar

设置 oracle.jdbc.getObjectReturnsXMLType=false 让getObject 返回java.sql.SQLXML类型

    否则返回 oracle.xdb.XMLType 类型(10g以前)

import java.sql.*;
import java.util.Properties;
import oracle.jdbc.pool.OracleDataSource;
 
public class SQLXMLTest
 {
 
  public static void main(String[] args) 
  {
  
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;
  PreparedStatement ps = null;
  
  String xml = "<?xml version=\"1.0\"?>\n" +
    "<oldjoke>\n" +
    "<burns>Say <quote>goodnight</quote>, Gracie.</burns>\n" +
    "<allen><quote>Goodnight, Gracie.</quote></allen>\n" +
    "<applause/>\n" +
    "</oldjoke>";
 
  try
  {
 
     OracleDataSource ods = new OracleDataSource();
     ods.setURL("jdbc:oracle:thin:@//localhost:1521/orcl");
     ods.setUser("scott");
     ods.setPassword("tiger");
     conn = ods.getConnection();
 
     ps = conn.prepareStatement("insert into x values (?, ?)");
     ps.setString(1, "string to string");
     SQLXML x = conn.createSQLXML();//初始化
     x.setString(xml);//赋值
     ps.setSQLXML(2, x);//绑定,不可以set空的Sqlxml
     ps.execute();
     x.free();//释放
     stmt = conn.createStatement();
     rs = stmt.executeQuery("select * from x");
     while (rs.next()) 
     {
 
       System.out.println(rs.getString(1) + "\n" + rs.getSQLXML(2).getString());//取出为String
     }
 
     rs.close();
     ps.close();    
  }
 
  catch (SQLException e){e.printStackTrace ();}
 
  }
}

 

技术区:

Java Web高性能开发(三)优化实战

1.JS模块化技术提出按需加载,也就是当用户触发该功能的时候,那个功能才真正的被加载。

但模块如果是懒加载的,粒度不能太小,也就是模块不能太小。

根据网站的规模、团队的规模、自己对模块化技术的掌握程度来选择是否使用模块化技术。当你的团队预计或者已经发展到一个很大的规模,需要多人维护和开发自己的模块,那么模块化是个不错的选择。如果你的网站发展壮大到功能之间经常互相影响,大量可重用模块无组织,那么模块化就是一个最好的解决方案。当然,这一切都要取决于你是否可以 hold 住模块化技术

2.HTML 的渲染和加载顺序是从上往下,必须等到这个 JavaScript 下载完毕才会渲染后续的部分。

主功能,需要及时反馈,如页面点击监听等 ,应放在头部

辅功能,不着急加载,如 SNS 分享按钮,流量统计,后台任务等 可以放在尾部
功能代码按类型归类到不同的 JavaScript 文件,比如应该放头部和应该放尾部的代码,最好不要合并在一起。

3.CSS Sprite:网页框架显示之后,许多背景部分迟迟没有显示出来,包括头部,模块头部背景,小图片,过一会就出现用 CSS Sprite 的背景一次性显示出来,形成所说的背景延迟现象。

如何让 CSS 的图片在网页框架显示前就被加载,就变为了一个难题。

可以在网页的顶部,添加隐藏的<img>图像标签,来加载 CSS 图片,CSS 链接在<img>图像标签后面,也就是网页会等到图片加载完后加载 CSS,CSS 再请求图片。发现如果图片已经被加载过,就不会再加载,而是直接渲染页面,这就达到了 CSS 图片优先于 CSS 文件和网页内容加载的目的。

4.传统的懒加载策略,当用户匀速一直下拉网页时,网页图片的加载时常有卡顿现象,原因是促发的多个图片批量下载导致的; 对网页上下移动的控制要求很高,在频繁的上下移动、快速移动后,图片有时无法加载;

所有的 img 标签,定义为:<img src=“wait.png” oriSrc=“真实图片地址”>,然后在网页 onload 事件后,设置 2 秒的定时器:

setTimeout(function(){var im = $(“img[src=‘wait.png’]”); im.attr(“src”, im.attr(“oriSrc”)); }, 2000);

代码和原理很简单,先让图片都显示等待,由于同一张图片被多次引用是不会被重复加载的,所以这样没问题。然后在网页加载 2 秒后显示所有的图片。

网页框架被快速的显示,由于图片来自淘宝,加载也很快。同时,提示性的等待图片加载,主动的将响应信息反馈给用户,也是一种用户体验的提升,总体来说已经达到了理想中的效果。

5.适当时候提示下,来掩盖问题

为每个非_target 的超链接或者表单的点击,添加点击事件处理,处理逻辑也很简单,就是设置 3 秒超时,显示等待对话框。如果在 3 秒内页面发生跳转,那么这个等待对话框就不会出现,否则会弹出提示用户等待,从而及时的将响应反馈给用户,减少用户空白等待时间。

优化的目的,就是不要让用户一直得不到响应,避免空白等待,让用户体验越来越好。

 

非技术:

黑客马拉松是程序员的“美国偶像”,非常受欢迎。参与黑客马拉松的,除了热衷钻研技术的软件工程师,还有来自风投公司的团队。黑客马拉松一般长达几十个小时,参赛者累了或坐或卧,现场休息。“黑客马拉松”逐渐成为插件开发的主要形式:一群高手云集一堂,在几十个小时内拿出作品,择优而录。

“黑客马拉松”就像程序员版的《美国偶像》,极其火爆。有了更加易用的软件编写工具,加上各公司乐于让第三方分享他们的数据

黑客马拉松不是突然冒出来的,它们源自编码潮流。电影《社交网络》有一幕很出名:马克·扎克伯格在哈佛一间宿舍里举行了10分钟的编码比赛,赢家成了他第一位实习生。

财富500强公司希望借黑客马拉松来宣传自己,AT&T、微软、诺基亚,甚至甚至是联合利华这样的巨头都主办过黑客马拉松和插件大赛。办一场 100人参加的比赛,只需投入5000美元——考虑到如果某位参赛者做出一鸣惊人的插件、被公司推到市场上带来的回报,这笔投资堪称微不足道。

风险投资者也把黑客马拉松视为寻找人才和投资目标的理想场所。投资者特别喜欢黑客马拉松,并会循例派下级员工混迹其中的原因:这里可以发现人才。“过去大家习惯于在技术大会上包下一个活动室。现在的潮流是,如果你想找工程师,就去黑客马拉松。”

风险投资人不是唯一在黑客马拉松转悠的人。独立的技术猎头尤其积极,他们的理由也很充分:一位软件工程师的起薪可以高达10万美元,而猎头可以拿到他头一年工资20%的佣金。

Keyani 说,“黑客马拉松”上有一个很关键的原则:不能做自己的日常工作,这是因为活动的主要目的是激发新点子。每次活动都会出现四五项新想法,并且使用在网站上面,有些主意甚至改变了公司的方向。比如,公司内部一直不愿意构建的聊天客户端。“编码胜过了争论”,Keyani 说,“你可以为一件事情争上两天,或者你可以在一小时内做好,然后证明你的观点”。

黑客马拉松”的核心理念是,以不同的方式思考你以前没有机会专注的主意。Kayani 说,许多公司都有”思考周“的观点,在一周内进行头脑风暴活动。那不一定是在深夜,”如果一个公司雇佣了合格的员工,相信他们能有好主意,就应该给予他们空闲时间和自由度,让他们在公司需要探索的方面,想出一些了不起的东西”。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。