micro-isv

最近看到一本很有趣的书,关于micro-ISV(wikipedia)。告诉你如果要成为一个“个人独立软件商”需要考虑的事情,一直有想法做一点东西出来,但目前做出来的东西按书里边所讲的,都连半成品都没达到。如何把idea变为有益他人的东西,而且有实际产出 – 其实就是一个完整的project。 这是最重要的。尤其是涉及到一些关于版权,市场策划,以及推广的一些专业人员看来很基础的东西,对我们这些做技术的是很有价值的启发。

google library上这本书

什么是Micro-ISV:

Self-funded: This means maybe you max your credit cards and maybe Uncle Jim helps you out, but your business is going to be largely self-funded and way below the radar of venture capitalists looking for the next billion-dollar hit.

Small: This means your company is one person the majority of the time or has maybe a couple of partners. If it’s larger than that, other dynamics such as what you’re using for salaries come into play.

Internet: Although Eric was talking about small, independent software vendors, independent software vendors was a term coined at Microsoft to cover everyone else in the software industry it had not acquired, partnered with, or driven out of business.In actuality, the I in micro-ISV really means Internet, since it’s the Internet that makes micro-ISVs possible, not Microsoft.

悲观的博客

今天读到三表哥的对博客的悲观预测,觉得挺搞笑的。
伴着Web2.0而来的博客其实本质上是一种影响力的回归,让跟多的人可以得到机会来发出自己的影响力,显然这个目的远远大于博客“赚钱”的能力。
但是,偏偏有的人总是摆脱不了那种“主流,主导”的YY情绪,以为自己的博客积聚了人气就是影响力,就想要透过这种影响力去获得某种好处(钱,名气,虚荣心什么的)。如果想不清楚就开始断言了。

细细想来,其实超女就是一种2.0现象,“山寨”也是2.0的一个变种。
博客的盈利模式已经不重要了,只要民众需要他,他自然就不会灭亡。
不能说三表哥外行,也不能说三表哥没有洞察力,毕竟每个人都可以有不一样的想法。因为三表哥并没有从这个角度去考虑博客到底是什么,新浪博客并不是真正的博客。

博客不会给你影响力,他只是给每个人获取影响力的权利,如果不争取,你就得不到;就算是争取到了,你也得不到什么。

其实归根到底是我们对很多东西,比如博客,利益,精英,的定义上或多或少的不同。

==以下是三表哥的断言

我分析,在未来的几年,博客将淡出互联网。

一、人们的新鲜劲儿已经过去了,博客看似是平等地给任何人发表自己言论记录生活的平台,但是精英依旧是精英,草根依旧是草根,它不会让更多人通过这个实现自己的梦想(丫能让人实现个鸡巴梦想啊)。最终仍然会变成草根看精英的结果,它跟传统现实没什么区别,老看别人干什么,自己家里肯定就荒芜了。随着新鲜劲儿一过,博客也就不时髦了,你看最终能扛下来的,还是原来就能写的人。事实告诉我们,写字是个力气活,不是义气活。

–正如上面说到的,如果每个人都是先入为主的想要通过博客去获得利益,往往都是达不到目的的,博客本身并不是要让你成为精英,只是一种发挥某根草的小小影响力,如果每个人都是先入为主的想要通过博客成为精英,并且真的能够成为精英的话,那么,不需要博客你也可以成为精英的。

二、博客找不到盈利模式。博客恰恰是一种违背广告投放规律的载体,广告投放需要的是——物以类聚,人以群分。现在门户社区式的博客,恰恰是跟一个农贸市场一样,什么人什么东西都有,你想打广告,根本不知道都是些什么人在消费,这钱谁还敢投啊。这一状况从一开始中国互联网从业者们的头脑发热,把它从头就堵死了,再撑几年,我估计很多门户网站都会始乱终弃。

–为什么博客搭上了互联网以后,盈利模式就只局限于广告呢?哦,这里说的是门户社区式的博客,都说了这些都不是真正的博客。

三、有关部门对互联网的博客限制越来越严了,而且我认为这还刚刚开始,随着严打力度加大,那些负隅顽抗的博客最终都会成批倒下,也许这么说有点悲观,但如果你看完前两条,你就知道这第三条其实可以不用费太大力气即可事半功倍。

–这个是中国特色的,不过2.0的潮流是无法打压下去的。除非把整个互联网都屏蔽掉,只有“精英”才可以上,草根每天只能在家看sb电视。

PhotoGrabber

从flickr上抓图下来,用downloadr也可以。用了flickr api的java wrapper – flickrj


package util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Iterator;

import javax.xml.parsers.ParserConfigurationException;

import org.xml.sax.SAXException;

import com.aetrion.flickr.Flickr;
import com.aetrion.flickr.FlickrException;
import com.aetrion.flickr.REST;
import com.aetrion.flickr.photos.Photo;
import com.aetrion.flickr.photos.PhotoList;
import com.aetrion.flickr.photos.PhotosInterface;
import com.aetrion.flickr.photos.SearchParameters;

public class PhotoGrabber {
	public static String[] keywords = {"flower","animal","princess","spain","democracy","china","computer","science"
		,"cluster","winnner","soccer","cafe"};
	public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException, FlickrException {
		String apiKey = "Your API Key";
		String secret = "Your Secret";
		Flickr flickr = new Flickr(apiKey,secret,new REST());
		PhotosInterface pi = flickr.getPhotosInterface();
		for(String key:keywords){
			SearchParameters searchParam = new SearchParameters();
			searchParam.setText(key);
			PhotoList result = pi.search(searchParam, 1000, 20);

			System.out.println(result.size());
			Iterator itr = result.iterator();
			while(itr.hasNext()){
				Photo p = (Photo) itr.next();
				URL urlt = new URL(p.getThumbnailUrl());
				URL url = new URL(p.getMediumUrl());
				InputStream is = url.openConnection().getInputStream();
				String fmt = p.getOriginalFormat();
				FileOutputStream fos = new FileOutputStream(new File("H:/tmp/medium/"+p.getId()+"."+fmt),true);
				byte[] buf = new byte[1024];
				int len = 0;
				   while ((len = is.read(buf)) > 0)
				   {
				      fos.write(buf, 0, len);
				   }
				is.close();
				fos.close();

				is = urlt.openConnection().getInputStream();
				fos = new FileOutputStream(new File("H:/tmp/thumb/"+p.getId()+"."+fmt),true);
				   while ((len = is.read(buf)) > 0)
				   {
				      fos.write(buf, 0, len);
				   }
				is.close();
				fos.close();
			}
		}

	}

}