紫风乱写

除了他眼前的屏幕,这个人什么也没看见。
被周围的电脑簇拥着,他只知道他所创造的现实,但又意识到那是虚幻。
他已经超越了技术。也超越了机器。
posts - 62, comments - 93, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2008年3月11日

有这么一种神器,英文叫做reference card, 中文我不知道叫什么,就作用来说,可以叫做快捷键一页纸,可以打印出来,放在案头,然后可以随时查阅。百度不容易找到,用谷歌的话可以使用reference card作为关键字查找。

下面是几个例子
Eclipse 4.6: https://github.com/pellaton/eclipse-cheatsheet/raw/master/eclipse4.6/eclipse-shortcuts-4.6.0.pdf
Intellij IDEA: https://resources.jetbrains.com/assets/products/intellij-idea/IntelliJIDEA_ReferenceCard.pdf
Emacs: https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf
Org-Mode: https://www.gnu.org/software/emacs/refcards/pdf/orgcard.pdf

posted @ 2016-06-05 14:08 Justfly Shi 阅读(518) | 评论 (0)编辑 收藏

     摘要: Emacs Tutorial中提到的快捷键以及自己找的一些快捷键  阅读全文

posted @ 2016-06-02 02:16 Justfly Shi 阅读(333) | 评论 (0)编辑 收藏

修改内容:

posted @ 2015-12-05 21:28 Justfly Shi 阅读(1948) | 评论 (0)编辑 收藏


修改内容:

  • 添加BeanQuery.nested()方法,调用该方法后,具有同样前缀的属性或者别名会被放到一个Map中返回,详情请看Allow format result into a map
  • BeanQuery.selectBean方法标为@deprecated,并添加同一样功能的方法,命名为BeanQuery.select

posted @ 2015-12-05 20:48 Justfly Shi 阅读(2830) | 评论 (0)编辑 收藏

     摘要: 在我看来,干活有两种方式:

1. 没想清楚了,贸贸然开干,然后各处救火各种解决问题
2. 想清楚了再开干,无惊无险,安然做完

本文讲讲如何在设计中系统的思考以避免内存溢出,并给出一个例子讲解。  阅读全文

posted @ 2015-06-08 19:13 Justfly Shi 阅读(3967) | 评论 (4)编辑 收藏

5月初的时候,我发了一个帖子说要开始讲单元测试,但是20多天过去了,为什么没有更新呢?
原因就是我在做视频公开课,发现光文字表现的话比较费劲,所以我决定录制视频,做成公开课。

第一个录制的是JUnit技术,课程地址:http://edu.csdn.net/course/detail/908 欢迎大家观后留言探讨哦。

posted @ 2015-05-26 22:25 Justfly Shi 阅读(1628) | 评论 (4)编辑 收藏

     摘要: 从04年开始,我就开始在项目实践中使用单元测试。十几年来,参与的项目基本上都或多或少的使用了单元测试,多的能有100%覆盖率的要求,少的也要覆盖主要代码,发现这个实践在提高软件质量和开发速度上还是很有好处的。在和朋友同事的交流中,发现有很多项目没有使用单元测试,也有很多程序员不会写单元测试,但是大家对这个都很有兴趣。所以我想把自己掌握的关于单元测试的技能(架构、设计和技术)和实施策略分享一下。  阅读全文

posted @ 2015-05-05 00:33 Justfly Shi 阅读(6036) | 评论 (4)编辑 收藏

代码地址:https://github.com/Jimmy-Shi/bean-query/tree/bean-query-1.1.1

修改内容:
  • 简化用户自定义转换
例子:
List<String> bookNames=select(new DefaultSelector<String>() {
      @Override
      public String select(Object item) {
        return ((Book)item).getName();
      }
    }).executeFrom(bookCollection);

在Maven项目中引用:
<dependency>
  <groupId>cn.jimmyshi</groupId>
  <artifactId>bean-query</artifactId>
  <version>1.1.1</version>
</dependency>

posted @ 2014-11-23 00:02 Justfly Shi 阅读(1233) | 评论 (2)编辑 收藏

Bean Query是一个开源的Java工具包,它复用Apache Commons BeanUtilsApache Commons CollectionsJava Hamcrest 来简化对Bean(集合)的排序,过滤和转换。

项目地址:

https://github.com/Jimmy-Shi/bean-query

http://git.oschina.net/jimmyshi/bean-query

修改内容:

  • 支持用户自定义排序
  • 支持用户自定义转换
  • 支持对一个对象进行转换和过滤
  • 提供了完整的使用说明文档

在Maven项目中引用:

<dependency>
  <groupId>cn.jimmyshi</groupId>
  <artifactId>bean-query</artifactId>
  <version>1.1.0</version>
</dependency>

posted @ 2014-11-21 22:58 Justfly Shi 阅读(8425) | 评论 (2)编辑 收藏

修改内容:
在Maven项目中引用
<dependency>
  <groupId>cn.jimmyshi</groupId>
  <artifactId>bean-query</artifactId>
  <version>1.0.1</version>
</dependency>

posted @ 2014-11-03 21:56 Justfly Shi 阅读(5545) | 评论 (3)编辑 收藏

BeanQuery 是一个把对象转换为Map的Java工具库。支持选择Bean中的一些属性,对结果进行排序和按照条件查询。不仅仅可以作用于顶层对象,也可以作用于子对象。更多详细的介绍可以看我的博文: http://www.blogjava.net/justfly/archive/2014/10/26/419067.html

我刚刚发布了版本1.0.0. 现在已经在Sonatype OSS库上了,2个小时后将会被同步到Maven中央库上。

Sonatype OSS 库下载地址: https://oss.sonatype.org/content/groups/public/cn/jimmyshi/bean-query/1.0.0/

Github上的代码: https://github.com/Jimmy-Shi/bean-query/tree/bean-query-1.0.0

在Maven项目中引用

<dependency>
  <groupId>cn.jimmyshi</groupId>
  <artifactId>bean-query</artifactId>
  <version>1.0.0</version>
</dependency>

posted @ 2014-10-29 02:24 Justfly Shi 阅读(4461) | 评论 (0)编辑 收藏

     摘要: BeanQuery 是一个把对象转换为Map的Java工具库。支持选择Bean中的一些属性,对结果进行排序和按照条件查询。不仅仅可以作用于顶层对象,也可以作用于子对象。

BeanQuery的使用非常简单也很直接  阅读全文

posted @ 2014-10-26 23:33 Justfly Shi 阅读(5503) | 评论 (6)编辑 收藏

     摘要: 作为一个程序员,我们的日常工作之一就是看Log,从Log中发现自己所需要的信息,以及对Log做一些简单的分析和统计。本文分享了我所使用的工具和方法。  阅读全文

posted @ 2014-09-17 23:00 Justfly Shi 阅读(2792) | 评论 (6)编辑 收藏

     摘要: 本文介绍了在代码中应该在什么时候需要Log什么信息;使用何种级别的Log;如何Log异常信息;Log中的一些要点。另外也分析了静态Logger变量和对象Logger变量的优劣。  阅读全文

posted @ 2014-08-13 23:32 Justfly Shi 阅读(25918) | 评论 (7)编辑 收藏

     摘要: 作为《Java程序员修炼之道》博文的第一个主题Logging,我计划中按照如下三篇来写: 1. Logback的简单介绍和配置 2. 在Java代码中如何使用SLF4J来写日志以及写日志的要点 3. 作为一个程序员,在日常工作中如何分析和挖掘Log。 这个是第一篇,简单介绍一下Logback的配置,适用于开始配置和开始入门,适用于一般情况下的使用。  阅读全文

posted @ 2014-08-10 02:46 Justfly Shi 阅读(19780) | 评论 (1)编辑 收藏

     摘要: 后来我意识到,我不能只抱怨,作为一个写了10多年代码,带过项目、做过业务最终还是写代码, 有车有房有妻有娃的四有不太牛逼的程序员,我有责任帮助刚入行的、入行时间不短的,还没车没房的Java程序员们掌握一些基础的东西。
如果你掌握了这些基础的东西的话,而且英语口语还凑合的话,欢迎来找我帮你内部推荐工作,估计一万多的月薪是不成问题的,至于30、40万的年薪应该也是有机会的。  阅读全文

posted @ 2014-08-03 01:18 Justfly Shi 阅读(5163) | 评论 (13)编辑 收藏

Sorry every body, I am so busy that I can not finish this article on time. I will try to finish this article after I have got a job. You can compare the 2 xml files in the attached zip file to get some idea.

There are 2 files in the zip file:
1. google.xml: The original google search plugin
2. google-oracle.xml: The search plugin that only search the oracle.com web site.

Usage
1. Put the google-oracle.xml in your personal firefox searchplugin folder. In windows firefox version 4 it is {FIREFOX_HOME}\distribution\searchplugins
2. Restart the firefox. Done

Click here to download the search plugins

posted @ 2011-04-18 00:13 Justfly Shi 阅读(1910) | 评论 (6)编辑 收藏

If after upgrading your eclipse STS plugin from 2.5.2 to 2.6.0, your grails projects can not be build, and when building it, it always warning that "Errors running builder 'Java Builder' on projec". That might be caused by the old 1.6 groovy compiler.  The solution is to edit the file "eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info" and find the line for org.codehaus.groovy_1.6 and remove it. And then restart the eclipse. you can find that it should be fixed.

Reference: http://docs.codehaus.org/display/GROOVY/Compiler+Switching+within+Groovy-Eclipse

posted @ 2011-03-30 22:24 Justfly Shi 阅读(1508) | 评论 (0)编辑 收藏

     摘要: 第一章 新的机会 第二章 对抗卡布福斯 第三章 “硅谷” 第四章 CD-ROM工厂 优质管理的四大要素 l 选择正确的人 l 为他们分配正确的工作 l 保持他们的积极性 l 帮助团队凝聚起来并保持团队的凝聚力 (其他的一切都只是“文案”) 安全和变化 l 除非感到安全,否则人...  阅读全文

posted @ 2011-03-26 23:56 Justfly Shi 阅读(337) | 评论 (0)编辑 收藏

上周去一家大型网络公司的内部系统开发部门面试,该部门主要是为公司的各个部门开发工作中所需要用到的系统,比如财务,人事的一些小系统。面临着:资源少,任务多,体现不出部门价值等问题。面试出来后想了几点,发给他们了,另外也分享出来,希望对从事类似工作的同学们有用。
1. 统一简洁的页面风格和CSS
因为是内部系统,所以页面不需要太华丽和复杂的界面,所需要的是简单易用。因为是都是sohu的内部系统,所以可以有统一的页面风格。
统一页面风格带来以下这些好处:
a. 只需要采用一套CSS,而不需要在每个项目都进行CSS的开发
b. 能减少页面设计的时间,页面布局,功能区域设置能全部都统一起来
c. 减低用户对于新系统的学习曲线
因为是内部系统,客户端与服务器之间的连接速度能保证。因此可以采用简洁的页面风格。
简洁的页面能带来以下好处:
a. 减少页面的开发难度,不用在一个页面中堆积过非必要的数据。
b. 方便任务分配
 
2. 在做需求的时候同时完成静态页面的设计
这条的好处是做页面设计的时候能进一步理解用户的需求,也能同时从解决方案的角度来考虑问题,从用户的角度来说,针对模型进行思考能进一步的引导他的需求。
具体的做法就是
a. 在一边谈需求一边用纸画出大概的页面模型和用户沟通,初步形成页面功能的设计
b. 谈完需求之后尽快使用统一的CSS做出静态的页面。用页面跳转代替表单提交。
c. 用静态页面组成的模型和用户进行初步沟通,在沟通过程中,如果时间不多的话在纸面上进行修改再沟通,如果时间多的话,快速的修改静态页面,争取尽可能多的把重点页面和用户达成一致。
根据沟通结果把可以开始做的部分安排开发人员开始做,还不能确定的和客户约好时间再进行下一次沟通。
 
3. 逐步建立可复用的代码库(功能组件)
这一点说起来容易,做起来需要一定的额外代价,是一个部门内部的积累。前提是第一条建议能够比较好的实施。这里的代码库(功能组件)大到一个功能模块(连接LDAP),小到一个页面控件(多层次部门选择下拉列表)。具体做法是
a. 在项目开发中有意识的把可通用的组件单独放到一个包里
b. 项目结束后,花1到2天的时间整理成可复用的代码
c. 整理完之后再对相关技术人员进行培训(这个很重要,有通用代码而别人不知道=没有通用代码)
d. 在以后的项目中,在复用的过程中进行完善
e. 尽量减少复制粘贴再修改
 
4. 收集客户部门使用系统后的效果,其结果可用于对上对外和对内
客户部门应该会有这样的数据,因为他们需要这些东西来说明他们上新系统的效果。本部门可以用这些数据来说明自己的贡献以获取公司的认同甚至可以去争取更多的资源
IT或者运维部门应该会有bug数量的和分布的统计数据,如果没有的话自己可以收集到达本部门的bug数量和分布的数据,通过这些可以在以后的工作中有意识的避免这些bug
通过这些数据可以在以后的需求分析过程中为客户部门提供更容易使用的系统

posted @ 2011-03-02 11:36 Justfly Shi 阅读(879) | 评论 (0)编辑 收藏

     摘要: 软件开发团队和测试团队之间的关系是复杂而有趣的,双方有共同目标,又互相竞争。双方的共同目标在于减少软件交付之后缺陷的严重程度和数量。双方的利益竞争在于测试人员尽可能的发现软件开发团队交付的软件产品的缺陷。在这种情况下,减少无谓的内耗,共同保证共同目标的实现,才可能实现双方的共赢。但是在很多时候,软件开发团队和测试人员之间总存在着一种紧张的关系,并因此无谓的添加了到达共同目标的困难。

在我经历过的一些开发过程中,多次因为与测试人员之间的颇为愉快的合作,实现了双赢和共赢。总结出来几点,抛砖引玉:
1. 保持良好的心态,提高对开发人员与测试人员之间关系的认识
2. 对于客户想法的理解,开发团队与测试团队需要达成一致并且保持同步。
3. 互相帮助,共同提高  阅读全文

posted @ 2010-10-24 05:07 Justfly Shi 阅读(1805) | 评论 (0)编辑 收藏

1. test if the command notify-send is installed
notify-send "Hello"
If the command is not found, install the required package following the tips
2. vi notify.sh and input the below content into it.
#!/bin/bash
DISPLAY=:0.0 /usr/bin/notify-send -30000 "<b>Take a Break!</b>"
3. chmod +x notify.sh
4. crontab -e
5. add the below content as a new line in the opened file. and then save it
*/45 * * * * /home/jimmy/notify.sh
6. Done!

posted @ 2010-09-28 15:49 Justfly Shi 阅读(358) | 评论 (0)编辑 收藏

It is only available for one session.
using the below command before you run your query
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
For more information, refer to the page http://www.oracle.com/technology/products/database/sql_developer/howtos/howto_policy_date_formats.html

posted @ 2010-08-11 16:45 Justfly Shi 阅读(358) | 评论 (0)编辑 收藏

In Ubuntu, key F10 is used to open the first item of the menu bar, but If you use Emacs key binding in eclipse, F10 is used as the redo key. So you need to do the below change.

Run gconf-editor, browse to /desktop/gnome/interface then scroll down to menubar_accel and delete the F10 value.

From http://www.h4ck3r.net/2010/04/07/debugging-step-over-f10-eclipse-ubuntu/

posted @ 2010-07-22 23:35 Justfly Shi 阅读(326) | 评论 (0)编辑 收藏

install jdk via Synaptic package manager, the name of it is sun-java6-jdk
download the eclipse install file for Linux

1.Extract the eclipse download and move to opt.

tar xzf wtp-all-in-one-sdk-1.0-linux-gtk.tar.gz
sudo mv eclipse /opt/eclipse
cd /opt
sudo chmod -R +r eclipse
sudo chmod +x `sudo find eclipse -type d`

2. Then create an eclipse executable in your path
sudo touch /usr/bin/eclipse
sudo chmod 755 /usr/bin/eclipse
sudo vi /usr/bin/eclipse

With this contents
#!/bin/sh
export ECLIPSE_HOME="/opt/eclipse"
export GDK_NATIVE_WINDOWS=1

$ECLIPSE_HOME/eclipse $*

3 Then create a gnome menu item
sudo vi /usr/share/applications/eclipse.desktop

With this contents
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse IDE
Exec=eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true


4 You now have a working eclipse. But run this command first to initialize the set up
. /opt/eclipse/eclipse -clean

Then from here on you can run from the menu item applications/programming/eclipse

posted @ 2010-07-22 23:27 Justfly Shi 阅读(331) | 评论 (0)编辑 收藏

查找包含某字符串的所有文件
grep -F 'aaa' -R ./

如何指定输出文件的某几行
想输出多行用:
sed -n '1,np' file
跳着输出用";"
sed -n '1p;4p;7p;9p' file

posted @ 2010-07-22 23:25 Justfly Shi 阅读(266) | 评论 (0)编辑 收藏

open System->Administration->Language support
1. Install/Remove languages->check 'Chinese(Simplified)
2. Keyboard input method system->ibus
open System->Preferences->IBus Preferences->Input method->add "Chinese Pinyin"->move it to the top

posted @ 2010-07-22 23:23 Justfly Shi 阅读(413) | 评论 (0)编辑 收藏

http://www.linuxsir.org/bbs/thread362467.html
下面的这个已经不再维护了。上面的这个好使。
http://www.linuxsir.org/bbs/thread320802.html

posted @ 2010-07-22 23:23 Justfly Shi 阅读(552) | 评论 (2)编辑 收藏

create or edit file /etc/hal/fdi/policy/mouse-wheel.fdi, change its content to below
<?xml version="1.0" encoding="UTF-8"?>
<match key="info.product" string="TPPS/2 IBM TrackPoint">
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.ZAxsisMapping" type="string">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>


then run the below command

sudo rm /var/cache/hald/fdi-cache
sudo /etc/init.d/hal restart
sudo /etc/init.d/gdm restart

posted @ 2010-07-22 23:21 Justfly Shi 阅读(381) | 评论 (0)编辑 收藏

当Eclipse无法找到类,无法正确导入类的时候,有的时候是因为index出错,删除下面这个目录
.metadata\.plugins\org.eclipse.jdt.core

posted @ 2010-06-29 15:21 Justfly Shi 阅读(624) | 评论 (0)编辑 收藏

使用如下Name Space可以让Xml工具对POM元素进行验证
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation
="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
</project>
几个相当不错的Maven Repository
<repositories>
        
<repository>
          
<id>maven2-repository.dev.java.net</id>
          
<name>Java.net Repository for Maven</name>
          
<url>http://download.java.net/maven/2/</url>
          
<layout>default</layout>
        
</repository>
        
<repository>
          
<id>jboss.repository</id>
          
<name>JBoss Repository</name>
          
<url>http://repository.jboss.com/maven2/</url>
        
</repository>
        
<repository>
        
<id>maven.search</id>
        
<name>Maven Search Org</name>
        
<url>http://www.mvnsearch.org/maven2</url>
        
</repository>
      
</repositories>

posted @ 2008-03-11 22:18 Justfly Shi 阅读(1150) | 评论 (0)编辑 收藏