Monthly Archives: January 2013

© 2013 . All rights reserved.

交互设计师的产出物是什么?

加班中,为换脑子翻翻坟。 要不要长文呢?…… 算了,还是以一些图片代替吧,大部分都是在07~08年间在之前公司建设团队时的产物。 UE Team 内部工作流程(图1),指导性的流程,实际操作中会有偏差,如任务紧急有些环节及review就会被跳过,大体是这样一个流程。 图1 UE Team 外部工作流程(图2),简陋版(复杂版估计看不懂了),表达出大体的意思,各方之间的职责及工作范围。需求方要提供详细的需求文档(request doc),需求有变更需要被记录(change request doc)、接受需求后进入内部流程并交付产出物给开发团队(一堆doc,视觉都需要文档化),开发团队依据设计文档交付版本,QA部依据设计文档进行测试并反馈bug,UE继续跟进,然后无限循环……. -_-’ 图2 产品Workflow文档(图3 只列出流程图的一小角),这玩意除了我和开发其它人都不敢看,伤神!当初画得这么复杂也是有点报复心理 -_-’ 。交互人员请多画画workflow能帮你理清逻辑,但别像下图这样。 图3 产品spec文档(图4),用来杀脑细胞的,为这头发白了不少!下图是老的制作方法,完全手写,后期就与原型一并产出了。详细到界面上每个元素的具体定义及行为描述,Diagram图的编号需要与上面的Workflow内的编号一致,方便开发人员查找!有些同行说没用、没人看,但我的体会是写个一年半载,整体设计能力将提升一个level,workflow文档和spec文档也可以考验一个人的细腻程度,现在的基本功也是那时候练下来的。 图4 Spec文档细分(图5),上面这个是大spec文档,还包含一些其它部分的文档。像之前我们的产品进行设计时是一个通用性的产品,当需要针对不同的客户进行订制化时,又将产生相应的Site Modification文档 。 图5 产品原型(图6),早些年做原型时基本以PPT进行产出,review时方便进行展示,后来也用Axure(算是国内较早一批使用Axure的用户吧),由于前期流程比较扎实,review环节也比较多,我们制作原型时往往会产出高保真原型。另外,我们使用Axure制作原型除了看重它的交互性之外更重要的是它能方便导出spec文档。ps.现在已经较少用到了。 图6 工作资料目录(图7 科技树要完整 ^_^ ),做完一堆工作,产出N份文档,需要有一个逻辑清晰的目录管理,方便以后工作。下图仅列出产品目录,三个层级:产品名称 》 文档分类 》 具体目录。 简单、明了、命名清楚(相关人员只要看到文档名就知道是哪个产品的哪份文档以及版本情况,下面介绍) 图7 文档命名规范(图8),这个是有大用处的东西!交付物从不同的设计人员手中产出,以文档的形式进行存放,并且需要给不同部门、不同人员进行阅览, 命名统一后管理方便、沟通一致。 图8-_- … Continue reading

© 2013 . All rights reserved.

租房结婚,为什么不可以?

“房子”在传统农耕社会的中国,似乎有着一种安居的情结,很多人都觉得既然结婚是终身大事,怎么能没有自己的一套住房? 而其实这种观念现正在被租房结婚挑战,买房结婚真的合算么?租房结婚又何妨?两情若是久长时,又岂在“破房一间”? 如果您的阅读器看不到图片,请订阅 http://feed.luobo8.com/ 即可显示图片。 部分文章附有精彩小视频,如果您的阅读器无法观看视频,请移步原文链接: http://luo.bo/36308/ 本文小编:梁萧 标题: 租房结婚,为什么不可以? 发布时间:2013/02/01, 12:38 萝卜网 Copyright © 2010 – 2012 分享国内外精彩网事。 更多精彩欢迎您订阅 http://feed.luobo8.com/,欢迎网友投稿、推荐文章。 您可能对以下文章感兴趣: 视频:再不早恋别人都结婚了 结婚七年的变化 中国结婚的一般流程 我想结婚 不结婚的10大理由 来自无觅网络的相关文章: 青二变亲爱-置鮎龍太郎×前田愛宣布结婚! (@hexieshe) 结婚就是一场《巨额交配》!!认同吗??? (@fun4hi) 真捉急!没看过这个的千万别结婚! (@fun4hi) 等室友你结婚了,我们其他人一起唱这首歌给你听。。。 (@fun4hi) 关于结婚对象,男人女人都是这幅死德行! (@fun4hi) 无觅 from … Continue reading

© 2013 . All rights reserved.

微软SQLServer官方示例项目部署-数据引擎和分析服务部分

微软SQLServer每个版本都会带有相应的示例项目,从2000时的Foodmart到2005之后的Adventure Works,里面的设计方法和规范都有很多我们值得学习的地方。不仅是做普通的开发,你如果做BI开发那么你会发现这更是一个不错的向导,而且微软SQLServer安装时带的Books OnLine里面的教程就是用这些示例库来”说事儿”,所以配合这些教程,你需要知道如何获得并且部署这些示例库。本文将简单介绍微软的官方示例库以及如何获取和在本机部署这些示例。 可以说,如果你要踏入微软的BI的世界,那么这篇文章里介绍的可能就是你第一个需要去做的。 本文所使用的版本是SQLServer 2012, 前后版本的SQLServer不会有太大差异,可以多少进行一些参考。   SQLServer服务简介 这个不得不写在前面。SQLServer下分几大服务,主要有数据引擎服务,集成服务,分析服务和报表服务,这些服务,在你安装SQLServer的时候会看到。 数据引擎服务是我们通常所说的表,视图和存储过程时提涉及到的服务。 集成服务是折腾数据用的,通常用在把数据从业务库中传递到数据仓库中,中间要通过它来进行清洗和转换等很多工作。 报表服务主要是做报表用,这里不做太多解释。 分析服务以前主要包括多维数据库和数据挖掘两部分,但在2012版中加入了独立的BI语义模型的表模式。 通常我们进行程序的开发,只安装数据引擎服务。其它服务是没有必要安装的,因为他们占硬盘空间不说,运行的时候没一个服务都要占掉一些内存资源。 但这里如果你要学习微软的分析服务的话,那么请务必勾选上”分析服务”。 值得一提的是,2012版的分析服务发生了一个比较大的变化,就是分析服务多了一个类型,就是表模式。 也就是说这两种分析服务的模式不能安装在同一个分析服务实例中,所以为了学习这两部分的内容,安装完默认的分析服务后,可以再运行一次安装程序,安装另外一个分析服务实例,如下图: 在这里选择另外一个实例就可以,然后到分析服务类型选择界面选择”表模式”即可。     示例项目的获取 目前获得示例库的方法是从微软的开源网站Codeplex获得。进入Codeplex.com,首页左面推荐项目的第三个就是SQLServer示例数据库项目的链接。 顺便提一下,在这个网站,第一个被推荐的项目是WBFS,这是一个跟任天堂WII游戏机相关的项目,可以把游戏镜像用这个软件”烧录”到移动硬盘,然后查到WII游戏机上,通过破解软件就可以运行下载的游戏了。第二个项目是虚拟无线路由,比如笔记本通过网线接入的网络,可以通过笔记本的无线网卡广播出来供其它设备使用。 进入到SQLServer示例项目主页,已经是大家习惯的Metro风格。 OLTP跟DW的下载链到的是同一个页面,我们要用到的数据引擎示例合分析服务示例文件都在这个下载页面里:     数据引擎示例的部署 首先下载数据库文件。数据库文件包括业务数据库和数据仓库。实际上,他们都是普通的数据库,只不过一个是为OLTP,一个是为OLAP设计的,他们的使用目的不同,所以一个主要的差别就是数据结构,也就是数据的组织方式不同。 下载图中标注的两个链接。第一个是OLTP库,供业务系统用的,第二个是DW库,也就说数据仓库。 下载完成后,将两个文件放到你电脑里专门存放数据库文件的项目(这是一个好习惯)。然后,在数据引擎服务里将这两个库附加进来。 方法就是右键数据库,点”附加”: 在新出现的界面中,点击”添加”,选择下载的数据库文件所在的位置: 附加完成后,可以在数据库分支下看到已经部署好的OLTP库和DW库。 在微软的示例中,AdventureWorks2012是业务数据库,前段的业务应用操作的就是这个库,包括业务记录的增删查改。 带DW字样的就是微软示例的数据仓库文件。通常这个库的文件主要就是来自前面业务数据库,其间经过了很多数据的转换步骤,比如清洗(过滤脏数据等)和转换(编码统一等)。 以上两个基础数据库部署好之后,就可以部署后面的分析服务示例项目了。     … Continue reading

© 2013 . All rights reserved.

Java实现系统托盘以及菜单国际化,代码中标黄的地方,“是”“否”,这个国际化怎么整呢?

import java.awt.AWTException;import java.awt.MenuItem;import java.awt.PopupMenu;import java.awt.SystemTray;import java.awt.TrayIcon;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.Closeable;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.Properties;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.UIManager;import org.apache.log4j.Logger;import com.huawei.ams5090.nac.util.SystemGlobalCfg; /** * 工具系统托盘展示 *  * @version 1.0 *  */public class SystemTrayFrame extends JFrame{     /**     * 序列码     *      */    private static final long serialVersionUID … Continue reading

© 2013 . All rights reserved.

获取文章中的图片

瀑布流的功能开发完了,感觉还不错,地址是:http://www.656463.com/waterfall,其中也有一些知识点,和大家分享一下。既然是瀑布流,就会涉及到图片,在这里我是获取本站文章中的图片,所以本节就是用jsoup获取文章中的图片   jsoup简单介绍 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 使用jsoup很简单,就是下载jar包,然后就能用里面的API进行解析了 中文地址是:http://www.open-open.com/jsoup/ 下载jsoup地址:http://jsoup.org/download,最新版是jsoup-1.7.2.jar   获取文章图片 获取文章的图片,就是用jsoup在文章内容里解析出文章路径   Java代码  List<String> imgs = JsoupUtil.getImgSrc(article.getContent());    解析工具类   Java代码  /**   * 解释HTML获取图片列表   * @param html HTML内容   * @return 图片列表   */   public static List<String> getImgSrc(String html){       List<String> imgSrcs= new ArrayList<String>();                Document doc = Jsoup.parse(html);       Elements imgs = doc.getElementsByTag(“img”);       for (Element img : imgs) {           String imgSrc = img.attr(“src”);           if(imgSrc!=null && imgSrc.trim().length()>0){               imgSrcs.add(imgSrc);           }       }                return imgSrcs;   }    简单吧,就这样了   本文链接:用jsoup获取文章中的图片-瀑布流系列文章,由领悟书生原创 … Continue reading

© 2013 . All rights reserved.

关于静态事件 static event 的二三事

很多人都知道事件,一般定义一个事件是这样的写法 public event EventHandler OneEvent; 但是如果这样定义的话就需要进行null判断了 于是很多人这样定义事件: public event EventHandler OneEventNeverNull = (o, e) => { };   这样就不需要判断null了。   上面的事件你可以把它认为是实例事件. 我们这里要谈的是静态事件(static event). 静态事件和实例事件的区别是加了个static 关键字,可别小看这个关键字,区别大了。   首先静态事件的定义为: public static event EventHandler OneStaticEvent;   如果想要注册事件的话,那么必须使用类。   在.net 的事件里面,绝大多数是实例事件,但是却存在极少数的静态事件。   关于静态事件StackOverflow 上面有篇文章讨论它 … Continue reading

© 2013 . All rights reserved.

建立基于 Linux 和 MPICH2 的并行计算环境

随着社交网络、移动互联网、物联网等技术的迅速发展,越来越多的数据呈现在我们面前。如何及时充分的对这些大数据进行分析,挖掘其中的商业价值成为各行各业面临的一大挑战。MPICH2 提供了在现有的软硬件架构下对大数据进行并行、分布式处理的一个平台。本文将介绍如何在 Linux 系统下建立基于 MPICH2 的高性能分布式并行计算环境。 from IBM developerWorks 中国 : 文档库 http://www.ibm.com/developerworks/cn/linux/l-cn-mpich2/index.html?ca=drs- Related Posts KVM 虚拟化技术在 AMD 平台上的实现,第 1 部分 Android 操作系统的内存回收机制 LVS+Keepalived实现LVS NAT模式热备配置 修改DNS设置影响SSH登录速度 解决办法 Seafile,面向团队的开源 Dropbox Valve推出《半条命》Linux版 Nginx切割日志目录所有日志的脚本 雅虎发布 YUI 3.8.1,支持 iOS6 CentOS 6.2 下samba 服务的配置 Linux中tty、pty、/dev/ttySn等概念讲解 … Continue reading

© 2013 . All rights reserved.

Java序列化总结

     前一段时间写的关于集合类源码分析的博客中其实一直没有提到两个方法,那就是writeObject和readObject方法。这两个方法涉及到序列化的内容,这篇博文总结遇到过的和序列化相关的内容。      什么是序列化?      序列化是将对象的状态信息转化为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后可以通过存储区中读取或反序列化对象的状态重新创建对象。      为什么要序列化?      有两个最重要的原因促使对序列化的使用:一个原因是将对象的状态保持在存储媒体中,以便可以在以后重新创建精确的副本;另一个原因是通过值将对象从一个应用程序域发送到另一个应用程序域中。例如,在网络中传输的数据都必须要序列化。      Java中的序列化      Java中的序列化机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输或者持久化存储到数据库或文件系统中,然后再需要的时候可以读取字节流中的信息重构一个相同的对象。序列化在Java中有着广泛的应用,RMI、Hessian等技术都是以此为基础的。      下面是一些序列化涉及到的内容的例子。      UserInfo类是下面序列化例子中都要用到的一个保存基本信息的类。 1 public class UserInfo implements Serializable { 2 3 private static final long … Continue reading

© 2013 . All rights reserved.

《算法导论》读书笔记之第13章 红黑树

摘要:   红黑树是一种二叉查找树,但在每个结点上增加了一个存储位表示结点的颜色,可以是RED或者BLACK。通过对任何一条从根到叶子的路径上各个着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。本章主要介绍了红黑树的性质、左右旋转、插入和删除。重点分析了在红黑树中插入和删除元素的过程,分情况进行详细讨论。一棵高度为h的二叉查找树可以实现任何一种基本的动态集合操作,如SEARCH、PREDECESSOR、SUCCESSOR、MIMMUM、MAXMUM、INSERT、DELETE等。当二叉查找树的高度较低时,这些操作执行的比较快,但是当树的高度较高时,这些操作的性能可能不比用链表好。红黑树(red-black tree)是一种平衡的二叉查找树,它能保证在最坏情况下,基本的动态操作集合运行时间为O(lgn)。本章内容有些复杂,看了两天,才大概清楚其插入和删除过程,日后需要经常回顾,争取完全消化掉。红黑树的用途非常广泛,例如STL中的map就是采用红黑树实现的,效率非常之高,有机会可以研究一下STL的源代码。 1、红黑树的性质   红黑树中的每个结点包含五个域:color、key、left、right和parent。如果某结点没有一个子结点或父结点,则该结点相应的指针parent域包含值为NIL(NIL并是是空指针,此处有些迷惑,一会解释)。把NIL视为指向红黑树的外结点(叶子)的指针,而把带关键字的结点视为红黑树的内结点。红黑树结点结构如下所示: 1 #define RED 0 2 #define BLACK 1 3 struct RedBlackTreeNode 4 { 5 T key; 6 struct RedBlackTreeNode * parent; 7 struct RedBlackTreeNode * left; 8 struct RedBlackTreeNode * right; 9 int color;10 }; … Continue reading

© 2013 . All rights reserved.

针对Mysql 使用EF Code First时 TimeStamp/RowVersion 类型 的解决办法

环境: mysql5.5 .Net Connector 6.6.4 EF 4.3.1 模型要求: 很多业务要求并发处理,时间戳是个很好的选择. 代码如下: public class Test { public int ID { get; set; } public string Name { get; set; } public byte[] LastChanged { get; set; } }    问题描述:在LastChanged属性用Data Annotations标记[Timestamp] [Timestamp]public … Continue reading

© 2013 . All rights reserved.

Android开发HTML5应用-总结

在做这个总结之前呢看过一些优秀文章和文档,在此时间过于久远原因,引用了原作者大段的摘抄而没有写明出处 在Android上做HTML5应用用到了Webkit这个浏览器内核,这里具体不讨论Webkit for Android。 HTML5如何在安卓上开发HTML5应用 Android开发HTML5应用实际项目面临的问题1: Android的HTML5应用程序概述 如何适配多分辨率的Android设备? 如何在Android中构建HTML5应用程序? 如何在Android中调试HTML5应用程序? 如何在Android中使用HTML5的本地储存? 如何在Android中使用HTML5的本地数据库? 如何在Android中使用HTML5的地理定位? 如何在Android中构建HTML5离线应用? 如何使用Canvas进行绘图? 上述问题这里提供一个ppt和参考代码 package com.example.androidwebview; import android.os.Bundle;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap; import android.view.KeyEvent;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager; import android.webkit.GeolocationPermissions;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebStorage;import android.webkit.WebView;import android.webkit.WebSettings.RenderPriority;import android.webkit.WebViewClient; public class … Continue reading

© 2013 . All rights reserved.

golang一个例子引出的几个问题

这个例子是从go源码src/pkg/net/rpc/server_test.go截取出来的 func benchmarkEndToEndAsync(dial func() (*Client, error), b *testing.B) { const MaxConcurrentCalls = 100 b.StopTimer() once.Do(startServer) client, err := dial() if err != nil { b.Fatal(“error dialing:”, err) } // Asynchronous calls args := &Args{7, 8} procs := 4 * runtime.GOMAXPROCS(-1) … Continue reading