[转]怎么跟外行人解释频繁更改需求为什么会让程序员烦恼?

你去饭店,坐下来。
“服务员,给我来份宫保鸡丁!”
“好嘞!”
——————这叫原始需求

大厨做到一半。
“服务员,菜里不要放肉。”
“不放肉怎么做啊?”
“不放肉就行了,其它按正常程序做,不就行了,难吗?”
“好的您稍等”
——————中途需求变更
继续阅读“[转]怎么跟外行人解释频繁更改需求为什么会让程序员烦恼?”

[转]教你一个可以击败95%的人的方法


    精通一样东西需要 10000 小时,也就是说大概要 10 年的时间。但是有时候你要掌握的东西太多了,时间不够用怎么办?别担心,击败 95% 的人并不需要你付出太多的时间。我们看看 Leo Polovets 的经验,或者参考这篇如何更快学会任何东西。

10000 小时定律大家应该都听说过,说的是精通一个领域需要的用时。这一定律有几层含义:

  1. 因为所需的时间太长(每天 3 小时需要 10 年),所以人一生只能精通少数几件事情。
  2. 因此时间流逝的速度对每个人都是一样的,所以你不能加快变得精通的进程。如果你精通了某样东西(如销售、变成或产品管理)而竞争对手没有,那你就拥有了巨大的竞争优势。
  3. 因为需要付出太多,许多人感到畏缩早早就选择放弃—或者甚至连试都不敢试。每一位小提琴大师背后,都有一堆几节课就开始放弃的人成全,更多的人甚至连小提琴都未曾拿起。

继续阅读“[转]教你一个可以击败95%的人的方法”

iText生成PDF在PdfTemplate中设置文字加粗,斜体

iText 生成PDF在PdfTemplate中设置文字加粗,斜体

由于PdfTemplate继承于PdfContentByte类,可以使用PdfContentByte方法来进行操作

Document doc = new Document();
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(filepath));
doc.open();
PdfContentByte cb = writer.getDirectContent();

创建template并加到PdfContentByte里,template的状态位置是采用matrix方式来设置

PdfTemplate template = cb.createTemplate(width, height);
cb.addTemplate(template, 1f, 0f, 0f, 1f, 0f, 0f);

继续阅读“iText生成PDF在PdfTemplate中设置文字加粗,斜体”

Git推送文件自动部署到服务器上

git使用的用户和用户组是:git:git
需要给git增加使用root权限且不用密码

编辑 /etc/sudoers
注释掉

#Defaults requiretty

在最后增加

git ALL=(ALL) NOPASSWD: ALL

因为网站是在www用户组下运行,需要git能操作www的文件
把git加入了www用户组中

usermod -a -G www git

继续阅读“Git推送文件自动部署到服务器上”

java html转图片,并设置透明背景

在谷歌上可以找到的java库html2image,直接可将html内容转为image保存起来
http://java-html2image.googlecode.com/files/html2image-0.9.jar
简单的例子如下

import gui.ava.html.image.generator.HtmlImageGenerator;

public class txt2img {

    public static void main(String[] args) throws Exception {
        String text    = args[0];
        String filename    = args[1];

        HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
        imageGenerator.loadHtml(text);
        imageGenerator.getBufferedImage();
        imageGenerator.saveAsImage(filename);
    }
}

不过生成图片后发现,图片背景是白色的,但我只需要内容,要透明的背景。
继续阅读“java html转图片,并设置透明背景”

做好工作的好习惯

网上看到的一些做法,摘录备忘

1,反复确认
      一件很简单的事情,里面包含有许多的节点,要确保所有的节点都正常并且一直正常,才可以完成任务。要有一种能在脑子里“虚拟”整个事情能力,在这个过程中发现一些可能出问题的点。

2,想尽办法

继续阅读“做好工作的好习惯”

关于手机越来越占用时间的思考

  现在使用智能手机的人越来越多,很多人在手机上进行社交,娱乐等活动,甚至工作方面的事情也用手机代替电脑。而各种各样的手机应用提供了丰富的功能,也为人们带来了便捷。
  但是,以打着利用人们碎片时间提供各种资讯,娱乐,社交的应用,却不仅占据了碎片时间,很多人不觉的长时间使用,并形成了习惯。
继续阅读“关于手机越来越占用时间的思考”

java itext添加中文文字和设置文字颜色

java itext添加中文文字和设置文字颜色
下面是示例代码

import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;

import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.BaseColor;


public class Test {
	public static void main(String[] args) {
		Rectangle pSize = new Rectangle(300, 400);
		Document doc = new Document(pSize); //创建文档

		try {
			PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream("testpdf.pdf"));
			doc.open();
			
			BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); //创建文字字体
			BaseFont bfc = BaseFont.createFont("D:/ht.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //创建中文的文字字体,自定义字体文件
			PdfContentByte cb = writer.getDirectContent();
			
			cb.saveState();
			cb.beginText();
			cb.moveText(20, 300); //设置文字的位置
			cb.setFontAndSize(bf, 12); //设置文字的大小
			cb.setColorFill(BaseColor.RED); //设置文字颜色
			cb.showText("this is an English test."); //设置文字内容
			cb.endText();
			cb.restoreState();

			cb.saveState();
			cb.beginText();
			cb.moveText(20, 280);
			cb.setFontAndSize(bfc, 12);
			cb.showText("这是一个中文测试。It can also English."); //中文文字的测试
			cb.endText();
			cb.restoreState();

		} catch (DocumentException | IOException e) {
			e.printStackTrace();
		} finally {
			doc.close();
		}
	}
}

以上