针对网游虚拟货币的法规终于千呼万唤始出来。虽然没有如预期形成一部法律,只是以部门通知的形式下发到企业,但对于中国这个全球最大的网络游戏消费市场和增长最快的网络游戏产业市场,其意义不言而喻。

  然而《通知》下发后,盛大、网易、九城、巨人、畅游、完美时空等海外上市的网游概念股几乎全线下跌;A股市场中,虽然网游概念股如海虹控股、博瑞传播等由于“涉网不深”,暂时没有受到直接影响,但在网游企业中也引发了恐慌。

  之所以下发这样一部通知,是因为网游虚拟货币市场的混乱已经影响到这个新兴产业的健康发展。在未出台这部通知前,虚拟货币存在的最大问题是:缺乏市场监管,对实体货币体系险些造成冲击。

  此前,网络游戏企业通过发行虚拟货币,进行实体产品购买,甚至被指责引发实体货币的通货膨胀。

  《通知》首次明确了什么是网络游戏虚拟货币,是指用于兑换发行企业所提供的指定范围、指定时间内的网络游戏服务,表现为网络游戏的预付充值卡、预付金额或点数等形式,但不包括游戏活动中获得的游戏道具;此外,首次区别了“网络游戏虚拟货币发行企业”和“网络游戏虚拟货币交易服务企业”,规定同一企业不得同时经营以上两项业务。这两个首次,无疑在虚拟货币和实体经济间筑起了一道防火墙。

  文化部文化市场司副司长庹祖海表示,理解网游虚拟货币定义的核心是,玩家用法定货币购买跟它直接关联的游戏服务,即虚拟货币是一种被购买品。因此,不能用于购买其他实体商品。这样严格地限定虚拟货币适用范围,目的是为了防止虚拟货币实用范围擅自扩大,对法定货币产生影响。而区分虚拟货币发行企业和交易服务企业,目的在于防止两者业务在一起,可能产生滥发虚拟货币和操纵交易的行为。

  此次出台《通知》的另一目的在于对网游市场主体加强管理。

  根据艾瑞咨询统计,2008年中国网络游戏市场规模为207.8亿元,同时为电信业、IT业等带来直接收入478.4亿元。对于如此庞大的网游市场,此前主管部门的监管力度并不强,给网游市场留下许多法律的灰色空白地带。

  《通知》指出,文化行政部门要严格市场准入,即要求从事游戏经营服务活动的主体,应当获得网络文化经营许可证,方可从事经营活动;其次是内容管理,就是经营内容要符合国家相应的法律法规,不得出现违反法律法规的情况,包括对进口的外国游戏的内容审查,以及对国产网游产品进行备案审核;第三,对网络游戏的经营活动,特别是涉及到玩家用户消费行为等经营活动,要加以规范。

  分析人士认为,由于此前监管不到位,有许多企业从事“特殊游戏”以及倒换虚拟货币的灰色职业,成为网游产业链上不断膨胀的“毒瘤”。一旦《通知》对这样的行为明令禁止,特别是“禁止网游产品利用虚拟货币采取抽签、押宝、随机抽取等博彩方式,分配网游道具或虚拟货币”,或将重新解构现有的网游产业链。

  从网游概念股的下跌也可以看出,突然加强的监管对市场参与者造成短暂的冲击,但长远看,能够率先走出“灰色思维”的企业,必然成为监管的受益者。(中国证券报)

Posted on July 3, 2009 11:24 PM | | Comments (0) | TrackBacks (0)

1、Google提交

http://www.google.com/addurl/?hl=zh_CN

2、百度提交

http://www.baidu.com/search/url_submit.html

3、Bing提交

http://cn.bing.com/docs/submit.aspx

4、有道提交

http://tellbot.youdao.com/report

5、新浪爱问提交

http://iask.com/guest/add_url.php

6、中搜(等同于慧聪)提交

http://ads.zhongsou.com/register/page.jsp

7、雅虎中国(等同于易搜)提交

http://search.help.cn.yahoo.com/h4_4.html

8、TOM提交提交

http://search.tom.com/tools/weblog/log.php

9、alltheweb 提交

http://www.alltheweb.com/help/webmaster/submit_site

10、AltaVista 提交

http://www.altavista.com/addurl/default

11、DMOZ提交

http://www.dmoz.org/World/Chinese_Simplified

12、麦布提交

http://www.mybu.net/submit.asp

13、免费收录网址导航提交

http://www.weiduomei.net/login.asp

14、千度搜索提交

http://www.qiandu.com/protocol.asp

15、好站导航提交

http://www.beijixing.com.cn/cgi-bin/add.cgi

16、凯希提交

http://www2d.biglobe.ne.jp/~kinryou/cgi/url.html

17、协通提交

http://www.net2asp.com.cn/search/regform.htm

18、法律网搜索引擎提交

http://www.law-lib.com/lawseek/wzdl.asp

19、孙悟空提交

http://www.sunwukong.cn/add.php

20、极限搜索提交

http://www.2881.com/submit.htm

21、奇搜提交

http://about.qeesoo.com:88/urladd.jsp

22、零搜提交

http://www.0sou.cn/protocol.asp

23、精彩实用网提交

http://www.ok881.com/add.asp

24、114啦提交

http://url.114la.com/

25、hao123提交

http://221.12.147.30/url_submit.php

26、分类目录提交

http://www.at-lib.com/join_0id.html

27、1odp分类目录提交

http://www.1odp.cn/protocol.asp

28、SEEK114分类目录提交

http://www.seek114.com/join_0id.html

29、中文分类目录提交

http://www.all-list.cn/customer_center/submit_website.html

30、中国开放式分类目录提交

http://www.chinadmoz.com.cn/webuser/userlogin.asp?t=4

31、ODP分类目录提交

http://www.lirenhome.com/ODP/wzdl.htm

32、dir114分类目录提交

http://www.dir114.com/User/UserLogin.asp

33、我家有才分类目录提交

http://www.wjyc.com/add.php?cat=

34、第一摘网站目录提交

http://www.dzhai.com/User/UserLogin.asp

35、站长区分类目录提交

http://www.admin7.cn/MuLu/UserPublish.asp?Action=Add

36、esyndicat分类目录提交

http://link.92an.com/suggest-listing.php?id=0

37、35分类目录提交

http://www.35dir.com/Submit.asp

38、酷帝分类目录提交

http://www.coodir.com/accounts/addsite.asp

39、thatG分类目录提交

http://www.thatg.com/suggest-listing.php?id=0

40、GG-AD分类目录提交

http://www.gg-ad.org/accounts/addsite.asp

41、114CB网站目录提交

http://www.114cb.com/Submit.asp

42、金泉网商业目录提交

http://www.dir.jqw.com/

43、网站目录提交

http://www.friendpage.cn/submit.php

44、160网站分类目录提交

http://www.dir160.com/user/login.aspx

45、258商业搜索提交

http://dir.258.com/

46、edcba分类目录提交

http://www.edcba.com/

47、网络营销搜索

http://www.ubestweb.com/plus/heightsearch.php

48、迪优网提交

http://www.duwww.com/login.asp

49、点我吧分类目录提交

http://www.digg58.com/User/UserLogin.asp

50、3322网址之家提交

http://www.3322.com/about/indexed.html

51、奇虎论坛网址提交

http://daohang.qihoo.com/add.html

Posted on July 3, 2009 8:24 PM | | Comments (0) | TrackBacks (0)

Google has released a slight revision of its Google Update software for Windows. The latest version eliminates the need for Update to run constantly in the background — one of several reasons we’ve previously labeled the software “evil” — but stops short of conforming to the best practices of software updating.

Instead of running constantly in the background, consuming resources and creating a potential security vulnerability, Google Update now runs as a scheduled task.

Google Update has also been changed to allow some control over when it runs. The default is for Update to check with Google’s servers once an hour, but if you dig into the Windows Task Scheduler you can change that interval and even disable it altogether. However, according the Google Open Source Blog, tinkering with the update interval might cause Google Update to revert to its always-on status.

“When Google Update determines that the Windows Task Scheduler or Service mechanisms are not working as expected,” says the blog, “we have added in fallback mechanisms that cause Google Update to begin running as a continuous process again.”

So much for user control.

You might wonder what all the fuss is about. After all, what’s wrong with keeping your software up to date? Obviously, there’s nothing wrong with it, but Google’s Update software flies in the face of over 20 years of software best practices — there’s simply no need for desktop software to run update checks continuously, or even once an hour.

It’s not hard to see how Google views Update: it’s a way for it to have the constant update capabilities its web apps enjoy, but on your desktop. The problem is that while we accept that we can’t control the web, we most definitely can (and want to) control what happens on our laptops and PCs.

Or at least we could until Google decided we couldn’t.

The well-established practice of checking for updates when an application launches has been serving the industry — and some of its biggest names, like Adobe and Microsoft — well for for decades.

The latest version of Google Update is a baby-step in the right direction, but we still won’t be using Chrome, Google Earth or anything else that relies of Google Update until Google does the right thing.

The Mac version of Google update remains unchanged.

Posted on July 3, 2009 11:31 AM | | Comments (0) | TrackBacks (0)

根据国外媒体报道,Sun Microsystems公司发布了其高性能跨平台虚拟化软件VirtualBox3.0。3.0拓展了老版本中已有的功能:比如增加了客户系统支持的虚 拟RAM大小,以及在32位或64位宿主上提供的对32位或64位客系统的支持(包括支持在32位宿主机上运行64位客系统)。

该版本中最大的亮点是对多处理器支持(SMP)。VirtualBox3.0支持多虚拟CPU的客系统,每个客系统最大可支持32个。虚拟处理器实 际上是VirtualBox中的一个线程。宿主机上所安装的处理器(或处理器内核)越多,VirtualBox的客系统中进行的并行处理也就越多。这样用 户就可以在客系统上运行复杂的任务。实际上VirtualBox3.0可以支持比宿主机上的CPU更多的虚拟CPU。图1显示了在一台双核Mac机上同时 运行的Windows和Ubuntu客系统,Windows客系统有4个虚拟CPU,而Ubuntu有2个虚拟CPU。

图1 双核Mac运行多虚拟CPU

3.0的另一项重要改进是关于虚拟机管理方面的。其中包括同一网络或数据中心中的虚拟机的部署、启动、停止等等。另外,还需要能够远程登录客系统及其虚拟机镜像。VirtualBox3.0的API和SDK都对这些功能提供了支持。

其它的改进包括:

改进了对Open Virtualization Format的支持

在Windows宿主/客户系统下支持最新的Direct3D

支持OpenGL 2.0。客系统可以利用宿主机的OpenGL 2.0 API。

改进了对USB设备的支持。(CSDN)

Posted on July 3, 2009 10:32 AM | | Comments (0) | TrackBacks (0)

北京时间7月2日消息,美国知名财经杂志《商业周刊》网络版今天刊文指出,美国非盈利机构Mozilla所主持火狐(Firefox)浏览器及其他软件的开发,40%工作其实是由网民身份的外部开发者自愿参与且无偿完成;而Mozilla这种网民外包式的软件开发机制,谷歌和LinkedIn等以盈利为目标的企业却很难复制。

无偿工作

本周二Mozilla正式发布了火狐3.5版,并提供了与之配套的视频播放器。然而该播放器所显示的控制按钮体积过小,对于一些视力较差的网民而言,根本无法正常使用该视频播放器。在这种情况下,今年41岁的外部开发者肯桑德斯(Ken Saunders)主动站了出来,对该播放器的按钮进行了改进,以方便视力较差的网民使用。

像桑德斯这样愿意为Mozilla所开发火狐及其他开源软件贡献自己时间和精力的网民,全球还有很多。虽然Mozilla员工量已由2005年的 15名增至目前250名左右,但在Mozilla所有软件开发过程中,全球网民自愿者仍承担了其中约40%任务。这些网民承担的任务可谓五花八门,从火狐程序代码编写到标识设计,都有这些自愿者的参与。

Mozilla上述软件开发机制,已成为群策群力开发模式的典范。Mozilla火狐业务主管迈克贝尔茨纳(Mike Beltzner)对此表示:我们已为此建立了一种开发机制。我们在对外部开发者进行管理的同时,也让他们放开手脚去进行技术创新。如此一来,这些外部开发者往往能提出非常独到的解决方案。

对于火狐的开发管理,贝尔茨纳称之为幕后管理。贝尔茨纳和他的技术团队通常负责制定火狐开发的大方向,如确定火狐未来开发的版本号等等。随后Mozilla技术人员将与外部开发者就具体问题进行探讨,并确定具体项目的最后期限,然后把不同任务分配给不同外部开发者。

难以复制

除Mozilla外,美国另一家非盈利机构维基百科(Wikipedia)项目能够发展到今天,很大程度上也是依赖网民的自发参与。无论是参与Mozilla的软件开发、维基百科的词条编辑,还是参与Linux操作系统代码的编写,这些参与者都是无偿付出时间和精力。

眼见Mozilla等非盈利机构的网民外包模式取得了成功,一些以盈利为目标的企业也试图效仿这种模式。美国科技业观察人士克莱肖基(Clay Shirky)对此表示:要想成功复制Mozilla开发模式并非易事。但不少以盈利为目标的企业对这种模式很感兴趣,希望用户能够成为其项目参与者。

今年6月,美国商务人士社交网站LinkedIn在其网站上展开了一项调查,调查对象是哪些自称从事翻译工作的LinkedIn用户。LinkedIn让这些用户回答这样的问题:如果让用户参与LinkedIn网站资料的翻译工作,哪些因素将成为他们最愿意参与的动机。

这项调查结果显示,在1.2万名参与调查的LinkedIn用户中,18%表示参与LinkedIn翻译项目纯粹是觉得好玩,50%以上表示是为了提高个人知名度,但大量受调查者反对LinkedIn邀请用户参与翻译项目。美国翻译家协会(American Translators Assn.)甚至向LinkedIn高管层发送了一封抗议信,称LinkedIn此项调查具有误导和制造麻烦之嫌。

对此LinkedIn发言人罗凯(Kay Luo)表示,LinkedIn进行上述调查,并不是希望用户无偿为LinkedIn工作,我们开展这项调查的目的是:想了解一下相应用户的兴趣所在。

谷歌前不久表示,计划在其Chrome浏览器中使用外部艺术家的装饰性图片,但此举遭到了外部艺术家的反对。谷歌拒绝为这些装饰图片付费,并强调这是展示艺术家作品的大好机会。谷歌在一份声明中表示:我们认为,通过类似项目,使艺术家有了在数百万人面前展示他们作品的机会。

Mozilla优势

在发动网民参与软件开发事宜上,Mozilla具有其自身优势,主要原因就是Mozilla本身为一家非盈利机构。尽管如此,Mozilla也从其他企业中借鉴了不少有益经验。美国知名市场研究公司IDC分析师凯文格里奇(Kevin Gerich)对此表示:如果企业能够做好社区管理和开放性工作,对于是否获得报酬事宜,外部开发者其实并不在意。

事实上,火狐3.5版的隐私浏览模式,就是来自外部开发者的贡献。在制定火狐3.5版开发规划时,Mozilla就已提出隐私浏览模式开发计划,但 Mozilla技术人员一直无法解决相应技术问题。随着火狐3.5版发布时间的日益临近,一位外部开发者提出了自己的解决方案。贝尔茨纳称该方案非常完美,并将该技术整合到火狐3.5版当中。

微软IE 8浏览器也提供了隐私浏览功能,但火狐3.5版隐私浏览模式更为先进,如能够向用户提供删除以前所访问特定网站的访问记录等等。业界人士认为,火狐3.5所增加的隐私浏览模式,无疑增加了该浏览器挑战微软IE等竞争对手的实力。

美国市场研究公司Forrester分析师谢里麦克莱什(Sheri McLeish)对此表示:就目前而言,Mozilla有着自身优势。Mozilla是一家非盈利机构,因此能够获得众多外部开发者的支持。美国互联网流量监测机构Net Applications此前发布的数据显示,今年5月期间,火狐全球市场份额为22.5%,高于去年同期的19%。微软IE今年5月相应市场份额为 65.5%,比去年同期下降7%以上。

志同道合

长期关注美国科技产业发展的肖基认为,外部开发者之所以愿意参与Mozilla这样的软件开发项目,主要有三大原因:首先是参与此类项目,可满足发展自己兴趣的需要;其次是可提高自己知名度;再次是可与同行进行交流。

肖基指出,外部开发者也可通过参与其他项目,以实现前两个目的;但互联网全球性、开放性的特征,使这些开发者可在全球范围内迅速找到志同道合者。肖基说:如果你关注一下网络社区,你听到最多的话就是,在那儿,我能找到与我兴趣相投的人。

本文开头提到的外部开发者桑德斯,就经常与全球开发者交流。虽然他身在美国,但他经常与澳大利亚、爱沙尼亚等国的外部开发者进行网上交流。桑德斯说:从某种程度上讲,这些人与我就是同事关系。(腾讯科技)

Posted on July 3, 2009 10:19 AM | | Comments (0) | TrackBacks (0)

Oracle早就有意进军操作系统市场,来完善自己的产品线,其目的是同微软进行竞争。在自主研发还是收购现有Linux操作系统的问题上,Oracle 曾表态将收购一家现有的公司,被业内认为最有价值厂商的Redhat无疑是最佳人选。不过近日,一位接近Oracle的人士向我们解释了Orale为什么不会收购Red hat的原因,根据他所掌握的数据,Oracle公司在Linux操作系统平台下赢得了80%以上的市场份额,而在Windows平台下只有50%的占有率,而且这个比率由于微软SQL Server近期的优秀表现还在继续下降。因此,Oracle当前的首要任务并不是肃清Linux平台上的Red hat,而是要对付微软所造成的威胁,而他们手上现在也已经有了另一张王牌。

显然,短期内Red hat不会降低红帽子企业版的卖身价,至少对Oracle是这样。不过Oracle手中现在握有另一款颇具流行潜质,而且软件品质也颇高的Linux王牌:Ubuntu。

目前Ubuntu唯一的短板就是缺乏企业级大型软件厂商的支持,而Oracle则正好可以填补这一空缺,他们只要把Ubuntu加入自己的认证范围就可以达到这一目的。

有此王牌在手,Oracle当然就不会考虑花费巨资来收购Redhat,相比之下Oracle在Ubuntu上也许不花一分钱就可以与其厂商Cannonical结成合作伙伴关系,而且眼下Ubuntu在企业和个人用户间也已经具备相当的流行度。

如果Oracle要想打败微软,就需要改变自己的产品推广模式,尽量与Windows的模式接近。而要彻底改变自己产品的推广模式,则需要借用Ubuntu的力量。(cnBeta)

Posted on July 2, 2009 12:37 PM | | Comments (0) | TrackBacks (0)

先分折HTML代码,取得SRC地扯,假设本地图片地扯存在,先填冲到HTML当中,,把假设的数据和远程的地扯保存在数据库中, 然后用线程池的方式,去读数据库中地扯下载, 这个只能在JVM起动了,就可以调用下载功能.

Java代码

1. create table CMS_IMAGES
2. (
3. id LONG PRIMARY KEY, --id
4. wsrc varchar2(256),--远程图片地扯
5. lsrc varchar2(256),--本地图片地扯
6. state NUMBER, --此图片的状态 1未处理 2下载中 3下载失败
7. last_modified LONG --上次状态修改时间
8. modified_count number--状态修改次数-缺省为0
9. )
10. 先解释一下, 3下载失败了,等两个小时,重新通线程调用一次,因为有的网站,不能让你老是在他的网站上面下载图片的,只有过些时间再请求一次,就可以下载,实在不能下载的图片,比率很小,
11.
12.
13. /**
14. * 下载图片的后台线程池
15. * @author
16. * @version 1.0
17. */
18.
19.
20. public class ThreadPoolManager {
21. protected static Logger log = LoggerFactory
22. .getLogger(ThreadPoolManager.class);
23.
24. private static ThreadPoolManager tpm = new ThreadPoolManager();
25.
26. // 线程池维护线程的最少数量
27. private final static int CORE_POOL_SIZE = 4;
28.
29. // 线程池维护线程的最大数量
30. private final static int MAX_POOL_SIZE = 10;
31.
32. // 线程池维护线程所允许的空闲时间
33. private final static int KEEP_ALIVE_TIME = 0;
34.
35. // 线程池所使用的缓冲队列大小
36. private final static int WORK_QUEUE_SIZE = 10;
37.
38. // 图片缓冲队列
39. private Queue msgQueue = new LinkedList();
40.
41. // 访问消息缓存的调度线程
42. final Runnable accessBufferThread = new Runnable() {
43. public void run() {
44. // 查看是否有待定请求,如果有,则创建一个新的Thread,并添加到线程池中
45. if (hasMoreAcquire()) {
46. ImageDO image = (ImageDO) msgQueue.poll();
47. Runnable task = new UploadThread(image);
48. threadPool.execute(task);
49. }
50.
51. if (hasImagesInDB()) {
52. try {
53. BeanFactoryService beanFactory = (BeanFactoryService) BizServiceManager
54. .getInstance().getService(
55. BeanFactoryService.SERVICE_NAME);
56. ImageManager imageManager = (ImageManager) beanFactory
57. .getBean("imageManager");
58. List images = imageManager
59. .getImages(ImageDO.STATE_READY);
60. for (int i = 0; i < images.size(); i++) {
61. ImageDO img = images.get(i);
62. img.setState(ImageDO.STATE_RUNNING);
63. img.setModifiedCount(img.getModifiedCount() + 1);
64. img.setLastModified(CalendarUtil.getCurrentDate()
65. .getTime());
66. imageManager.updateImage(img);
67.
68. Runnable task = new UploadThread(img);
69. threadPool.execute(task);
70. }
71.
72. } catch (Exception e) {
73. log.error("获取下载图片队列失败", e);
74. }
75.
76. }
77.
78. }
79. };
80.
81. // 用于被拒绝任务的处理程序
82. final RejectedExecutionHandler handler = new RejectedExecutionHandler() {
83. public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
84. log.error(((UploadThread) r).getImg() + " 放入队列中重新等待执行");
85. msgQueue.offer(((UploadThread) r).getImg());
86. }
87. };
88.
89. // 管理数据库访问的线程池
90. final ThreadPoolExecutor threadPool = new ThreadPoolExecutor(
91. CORE_POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME, TimeUnit.SECONDS,
92. new ArrayBlockingQueue(WORK_QUEUE_SIZE), this.handler);
93.
94. // 调度线程池
95. final ScheduledExecutorService scheduler = Executors
96. .newScheduledThreadPool(1);
97.
98. final ScheduledFuture taskHandler = scheduler.scheduleAtFixedRate(
99. accessBufferThread, 0, 5, TimeUnit.SECONDS);
100.
101. public static ThreadPoolManager newInstance() {
102. return tpm;
103. }
104.
105. private ThreadPoolManager() {
106. }
107.
108. private boolean hasMoreAcquire() {
109. return !msgQueue.isEmpty();
110. }
111.
112. private boolean hasImagesInDB() {
113. boolean result = false;
114. try {
115. BeanFactoryService beanFactory = (BeanFactoryService) BizServiceManager
116. .getInstance().getService(BeanFactoryService.SERVICE_NAME);
117. if (beanFactory == null)
118. return false;
119. ImageManager imageManager = (ImageManager) beanFactory
120. .getBean("imageManager");
121. if (imageManager == null)
122. return false;
123. int imagesCount = imageManager.getImagesCount(ImageDO.STATE_READY);
124. result = (imagesCount != 0);
125. } catch (Exception e) {
126. log.error("获取下载图片队列失败", e);
127. }
128. return result;
129. }
130.
131. public void processImg(ImageDO img) {
132. Runnable task = new UploadThread(img);
133. threadPool.execute(task);
134. }
135.
136.
137. public long getCompleteTasksCount() {
138. return this.threadPool.getCompletedTaskCount();
139. }
140.
141. public long getActiveTasksCount() {
142. return this.threadPool.getActiveCount();
143. }
144.
145. public long getAllTasksCount() {
146. return this.threadPool.getTaskCount();
147. }
148.
149. public long getQuequeCount() {
150. return this.msgQueue.size();
151. }
152.
153. public boolean getRunningStatus() {
154. return !this.threadPool.isShutdown();
155. }
156.
157. public long getScheduledQuequeSize() {
158. return ((ScheduledThreadPoolExecutor)this.scheduler).getQueue().size();
159. }
160.
161. }
162.
163.
164.
165. public class UploadThread implements Runnable {
166. private ImageDO img;
167.
168. protected Logger log = LoggerFactory.getLogger(UploadThread.class);
169.
170. public ImageDO getImg() {
171. return img;
172. }
173.
174. public void setImg(ImageDO img) {
175. this.img = img;
176. }
177.
178. public UploadThread() {
179. super();
180. }
181.
182. public UploadThread(ImageDO img) {
183. this.img = img;
184. }
185.
186. public void run() {
187. BeanFactoryService beanFactory = (BeanFactoryService) BizServiceManager
188. .getInstance().getService(BeanFactoryService.SERVICE_NAME);
189. ImageManager imageManager = (ImageManager) beanFactory
190. .getBean("imageManager");
191. if (UploadUtil.upload(img)) {
192. try {
193. log.error("下載圖片成功:"+ img);
194. imageManager.deleteImageByid(img.getId());
195. } catch (ManagerException e) {
196. log.error("删除图片记录失败:"+ img.getId(), e);
197. }
198. } else {
199. img.setState(ImageDO.STATE_FAIL);
200. try {
201. imageManager.updateImage(img);
202. } catch (ManagerException e) {
203. log.error("设置图片下载状态失败:"+ img.getId(), e);
204. }
205. }
206. }
207.
208. }
209. public class UploadUtil {
210. private static Logger logger = Logger.getLogger(UploadUtil.class);
211. private static FileStorage attachmentFileStorage;
212.
213. private static String imgServer;
214.
215. /**
216. * @param imgServer
217. * the imgServer to set
218. */
219. public void setImgServer(String imgServer) {
220. UploadUtil.imgServer = imgServer;
221. }
222.
223. public static String getUrlPrefix() {
224. return imgServer;
225. }
226.
227. public static boolean upload(ImageDO image) {
228. String url = image.getWsrc();
229. HttpMethod httpMethod = getHttpMethod(url);
230. ByteArrayDataSource ds = new ByteArrayDataSource(httpMethod
231. .getResponseBodyAsStream(), "image/jpeg");
232. ds.setName("upload.jpg");
233. boolean result = attachmentFileStorage.save(ds, image.getLsrc());
234. httpMethod.releaseConnection();
235. return result;
236. } catch (Exception e) {
237. logger.error("upload image fail:" + url, e);
238. }
239. return false;
240. }
241.
242. private static HttpMethod getHttpMethod(String url) throws IOException {
243. HttpMethod httpMethod = new GetMethod(url);
244. httpMethod.setRequestHeader("Cache-Control", "no-cache");
245. httpMethod.setRequestHeader("Accept-Language", "zh-cn");
246. HttpClient clientTemp = new HttpClient(); // HttpClient创建
247. HttpClientParams clientParams = clientTemp.getParams();
248. clientParams.setParameter("http.socket.timeout", 5000); // 5秒socket等待数据
249. clientParams.setParameter("http.connection.timeout", 5000); // 5秒http
250. // connection建立超时
251. clientParams.setParameter("http.connection-manager.timeout", 5000L); // 5秒从http
252. // yahoo相册的图片需要设置Referer头
253. if (url.toLowerCase().indexOf("yahoo") != -1) {
254. httpMethod.addRequestHeader("Referer", "[url=http://forum.taobao.com/]http://forum.taobao.com/[/url]");
255. }
256. // connection
257. // manager获取可用的Http
258. // connection超时
259. clientParams.setParameter("http.method.retry-handler",
260. new DefaultHttpMethodRetryHandler()); // 如果Http出错,三次重试
261. clientTemp.executeMethod(httpMethod);
262. return httpMethod;
263. }
264.
265. public void setAttachmentFileStorage(FileStorage attachmentFileStorage) {
266. UploadUtil.attachmentFileStorage = attachmentFileStorage;
267. }
268.
269. public static void main(String[] args) throws Exception {
270. HttpMethod httpMethod = getHttpMethod("[url=http://cn.photos.yahoo.com/users/47df51c0z8a48b60a/255c/__sr_/dbce.jpg?wa86dTAyD7Rq05sklm3fMQ--&F18]http://cn.photos.yahoo.com/users/47df51c0z8a48b60a/255c/__sr_/dbce.jpg?wa86dTAyD7Rq05sklm3fMQ--&F18[/url]");
271. InputStream inputStream = httpMethod.getResponseBodyAsStream();
272. FileOutputStream os = new FileOutputStream("c:/test.jpg");
273.
274. IOUtils.copy(inputStream, os);
275. os.close();
276.
277. httpMethod.releaseConnection();
278. }
279. }
280.
281.
282. public class HtmlParseUtil {
283. protected static Logger log = LoggerFactory.getLogger(HtmlParseUtil.class);
284.
285. public static String processImg(String imageURL) {
286. if (imageURL.toLowerCase().indexOf("taobao.com") == -1) {
287. BeanFactoryService beanFactory = (BeanFactoryService) BizServiceManager
288. .getInstance().getService(BeanFactoryService.SERVICE_NAME);
289. ImageManager imageManager = (ImageManager) beanFactory
290. .getBean("imageManager");
291. FileStorage fileStorage = (FileStorage) beanFactory
292. .getBean("attachmentFileStorage");
293.
294. // 产生本地扯的图片文件名
295. String localFileName = FileNameGenerater
296. .getLocalFileName("upload.jpg");
297.
298. ImageDO image = new ImageDO();
299. image.setWsrc(imageURL);
300. image.setState(ImageDO.STATE_READY);
301. image.setLsrc(localFileName);
302. image.setLastModified(CalendarUtil.getCurrentDate().getTime());
303.
304. try {
305. imageManager.insertImage(image);
306.
307. log.error("新增图片下载:" + image);
308. ThreadPoolManager tpm = ThreadPoolManager.newInstance();
309. tpm.processImg(image);
310.
311. return UploadUtil.getUrlPrefix() + fileStorage.getNamespace()
312. + "/" + localFileName;
313. } catch (ManagerException e) {
314. log.error("新增图片下载失败:" + imageURL, e);
315. }
316. }
317. return imageURL;
318. }
319.
320. }

Posted on July 1, 2009 4:08 PM | | Comments (0) | TrackBacks (0)

导读:MarketWatch撰文称,整个市场仍然是在收缩之中,只是收缩的幅度并没有人们最初想象得那么糟糕。不过,考虑到科技行业情况发生变化的速度总是非常迅速,这也是他们在投资者眼中具有重大吸引力的原因之一,所谓2010年转折点其实也完全可能在2009年第四季度即告出现。

我当然非常清楚,对这一观点我已经鼓吹了相当的时间,甚至可能使得一些读者感到审美疲劳了,但是归根结底,我们现在的确必须非常认真地看待科技行业,因为这一领域的大多数玩家似乎都已注意到了最糟糕时期已经结束的理念,几乎是突然之间,在一些半导体玩家的引领之下,行业的前景就变得明亮起来。

我们不妨回顾一下过去短短几周之内先后出现在各种商业媒体上的观察报告。所有这些文章,其主题几乎都是相同的。人们都在做出预言,称科技行业的营收已经开始重归之前的上涨趋势了。

麦克-考文(Mike Cowan)是一位著名的半导体市场观察家,观点经常被各种媒体引用。日前,他已经将半导体市场2009年的预期从之前的1821亿美元提升到了1925 亿美元。尽管最新的预期和去年相比仍然必须承认是一种收缩,但是至少收缩的程度已经明显好于之前的预期。

考文还相信,这一市场到2010年就将进入成长阶段。

一些基于四月的数字颇让不少研究者吃了一惊。Future Horizons提供的逐月比较数据显示,今年四月较之三月的增长幅度创下了1955年以来的历史纪录。换言之,三月简直便是一个灾难性的存在。

正如我们许多人都会回忆起来的,半导体行业的确有为数不少的企业高管认为,这一行业实际上三月间已经触底。

EEtimes将一系列来自不同芯片制造商的报告汇集起来,发现几乎所有人都对自己的财测进行了积极的修正。比如Marvell(MRVL)就表示,他们目前预计企业当前财季的销售额将达到6亿美元至6.3亿美元。之前,他们的预期是5.4亿美元至5.8亿美元。第一财季当中,该公司的实际销售额是5.2亿美元。

即便是诺基亚(NOK),他们也相信当前财季会是一个转折点,显示出在一段时期的下滑之后,正常成长态势正在回归。他们近期与英特尔 (186,0.00,0.00%)(I.T(0.74,-0.02,-2.63%)C)展开了合作,信誓旦旦要推出一些新产品,促进智能电话市场的繁荣。

当然,归根结底,整个市场仍然是在收缩之中,只是收缩的幅度并没有人们最初想象得那么糟糕。不过,考虑到科技行业情况发生变化的速度总是非常迅速这也是他们在投资者眼中具有重大吸引力的原因之一所谓2010年转折点其实也完全可能在2009年第四季度即告出现。

很多人之所以认定第四季度就将出现小小的繁荣局面,在相当程度上是因为对于新电视和更好的电脑的需求众所周知都已经被压抑了太长的时间。微软 (MSFT)方面已经明确表示,他们将降低Windows 7的售价,而这必然会触发系统升级的雪崩。这无疑将令所有的电脑生产商从中获益,而且与此同时,威腾(WDC)和希捷(STX)这样的企业也将抓住人们更换硬盘所带来的机遇。

为了因应经济衰退的局面,大多数企业在相当时间之内都一直在拖延升级的脚步。现在,一个巨大而完整的升级换代周期已经呼之欲出。

在过去的历史当中,我们经常会看到一个换代周期在一夜之间突然全线爆发,此种情况之下,我们首先注意到的就是短缺,尤其是记忆体的短缺。这就将为D-RAM的生产者和销售者带来好处。在这方面,我们应该关注的主要是金斯顿、三星和美光(MU)。

事实上,在谈论这一切的时候,我们很容易就可以注意到,这场第四季度完美风暴当中还缺少一个非常重要的角色,那就是游戏行业,目前还没有任何迹象显示将有新的游戏控制台和重量级游戏在前圣诞节周期登场。

当然,这个行业目前仍然面对着不少的变数,其中之一不必说,就是已经近乎硅谷最后的神话的乔布斯(Steve Jobs)。虽然苹果(AAPL)方面是信誓旦旦地保证,他的健康没有什么可担心的,但是归根结底,这至少也是个颇有争议的问题。

不必说,微软的鲍尔默(Steve Ballmer)也没有来抚慰我们的情绪。这位首席执行官不久之前曾经表示,经济已经永远不会真正复原,我们现在必须完全进入重新启动模式。在他看来,所谓未来的改善根本已经成为不可能,我们已经陷在当地,不能自拔。当然,对这样的说法,我们其实多少已经习惯。

其实,听到这样的说法,我很快就想到了鲍尔默的上一次大预言,那是在1989年的时候,他曾经宣称,未来的所有重大的新应用程序都将是基于OS/2。我想,或许我应该翻箱倒柜,找出当年的视频,将其上传到YouTube去。

总而言之,我们当然都希望鲍尔默是再次失算。

(本文作者:John Dvorak)

Posted on July 1, 2009 11:57 AM | | Comments (0) | TrackBacks (0)

  近日有消息称,微软与付费电视集团已达成协议,将为超过100万的法国Xbox 360玩家提供观看Canal Plus频道的电影、高清影视剧和足球比赛的服务。

  据国外媒体报道,目前,微软正试图将其Xbox从核心游戏机转变成家庭娱乐中心。上个月该公司还与英国天空广播公司BSkyB签订了一份类似的协议。

  根据微软与Canal Plus的协议,本周一,Xbox Live的用户便可以进行视频点播,其中包括3000多部电影、电视剧和肥皂剧,另外还包括玩家喜爱的法甲足球联赛。用户还可以通过Xbox Live网络游戏服务技术在游戏中进行视频和语音聊天。目前,Xbox Live在全球有近一千七百万名会员。

  微软和Canal Plus公司联合表示,他们合作的业务将扩展到其他Canal Plus的产品及其他微软平台中。

  从娱乐性及用户广泛性两方面看来,任天堂Wii游戏机是目前市场中最受欢迎的游戏机,微软Xbox则紧随其后。排在第三的索尼PS3也添加了面向更广泛受众群体的娱乐功能及游戏。微软称,计划购买Xbox的用户有三分之一为女性用户,42%的用户是已经有了小孩子的家长们。

  本月初,微软推出了使玩家通过全身的骨骼映射,而无需任何游戏控制器的Xbox 360体感控制装置Project Natal。目前该项目的具体上市时间尚不可知,但其在面世之际就已产生轰动,并引起了整个业界的广泛关注。 (赛迪网)

Posted on July 1, 2009 11:33 AM | | Comments (0) | TrackBacks (0)

NetBeans IDE 6.7 is integrated with Project Kenai, a collaborative environment for developers to host open-source projects. With Kenai and the NetBeans IDE, a team of developers is able to create projects, check out, edit, debug, build, discuss, and commit code, all through one easy-to-use interface!

The release also builds on the success of NetBeans 6.5 with native support for Maven; GlassFish, issue tracker and Hudson integrations; and enhancements to Java, PHP, Ruby, Groovy and C/C++. Highlights of the 6.7 release include support for JavaScript 1.7, Ruby Remote Debugging, and integration of the Java ME SDK 3.0.

Download NetBeans IDE 6.7

Feature Highlights

Connected Developer Tools

* Create Kenai-hosted open source projects directly within the IDE
* Manage your Kenai project and collaborate with like-minded developers
* File issue tracking reports using both Jira and Bugzilla

Kenai Integration

Maven

* Library dependency graph viewer
* Improved code completion for Maven plugin parameters
* Support for Java EE, Web Services creation and consumption
* POM Editor and Navigator enhancements

PHP

* PHPUnit support
* Code coverage and Selenium support
* SQL code completion in the PHP editor

GlassFish

* Glassfish v3 Prelude instance with pre-configured Derby (Java DB) integration
* Code completion support for Glassfish v3 Prelude
* Added Hierarchy to the Tree View in the Services Explorer

Groovy and Grails

* Out-of-the-box support for Grails 1.1
* Code completion
* Disable browser opening on run and configure platforms to use with Grails projects
* Invoke Grails command or custom script from context menu item

Ruby and Rails

* Remote debugging
* Improvements to Ruby constants support
* Run and debug actions for test cases and suites included in context menu
* Support for Shoulda tests

C/C++

* DLight profiling tools for C++ projects (with minimal overhead!)
* Integrated support of popular Qt library and tools
* More refactorings and code generation in the C/C++ editor
* Macro expansion view to analyze preprocessor output

Profiler

* Export profiling data into CSV, HTML and XML file formats
* HeapWalker supports OQL queries to analyze the contents of the heapdump

Debugger

* Debugger options to customize debugging process
* Easy viewing and setup of sources before start of debugging session

Java

* Hudson services integration for Ant and Maven projects
* Generated source roots now displayed in the Projects tab
* Struts library migrated to version 1.3.8

Java ME / Mobility

* Bundled with the Java Platform Micro Edition Software Development Kit 3.0
* Support for the Java Card Platform 3.0
* Full support for SVG Rich Components in the Visual Mobile Designer
* Improvements to the SVG Composer

NetBeans Platform

* Enhancements to Output window, Update Center catalog, and search performance
* Improved toolbar behavior and declarative MIME type resolvers
* Ability to change extension of files

Posted on June 30, 2009 1:03 PM | | Comments (0) | TrackBacks (0)
关于网站
所在时区: UTC+8:00
日志生辰: 2005.06.06
联系邮件: citycn#gmail.com

想要更好的效果,建议您 、采用1024X768分辨率浏览!
Add to Technorati Favorites
BlogCatalog Blog Directory
Technology Blogs
版权声明
Creative Commons License
本站内容遵循 知识共享署名-相同方式共享 3.0 许可协议

如本站内容有侵权或其他有损您利益请与本站联系, 核实后将进行修正或删除;

© CopyRight 2005-2010, wujianrong.com, All Rights Reserved.
最近更新
虚拟货币新规出台 网游告别“灰色”时代
搜索引擎中文网站提交登陆入口
Google Update Now a Scheduled Task, But Still Evil
VirtualBox 3.0发布 增强对多处理器的支持 优化虚拟机管理
商业周刊:Mozilla的网民外包机制
Oracle手中另一张对抗微软的王牌:Ubuntu
使用JAVA实现异步图片下载(转载)
新闻美股评论:科技行业翻身在即
Xbox推更多娱乐服务 玩家将可观看电影及足球
NetBeans IDE 6.7 Released
VirtualBox 3.0.0 Beta 2发布
MySQL v5.1.35 Final发布
WordPress 2.8.1 Beta 2
中国最热门的论坛列表!值得收藏!
未来5年细分行业B2B门户仍将是朝阳产业?
最赚钱十大行业
jQuery 选择器的使用
Ajax Framework
22个开源的PHP框架
机构称互联网产业告别艰难 利润率将持续上升
运营商3G广告投放很疯狂 统计显示已超100亿
吴敬琏:我国服务外包产业潜力很大
LinuxIDC:2009是中国Linux发展关键年
08年中国SaaS市场规模达198.4亿 比07年增长26%
商业周刊:微软帝国穷极思变 捍卫领袖地位
Google正常了
Top 20 Free Classic Magazine WordPress Themes
Google推手机版Adsense服务 助App开发者淘金
中电信将推出软件商店 或利用微软Google平台
IP号打长途存猫腻 重拨IP号加号码不予优惠
Eclipse 3.5 正式版发布
Google发布Web开发者社区 为互联网提速
Microsoft JET Database Engine 错误(Ox80004005)
DedeCMS V5.4 版升级功能或修正功能暂定列表及预告
中国式开放平台调查:第三方开发者与平台交恶战
商业周刊:云计算未必可以省钱
最新开发要闻
实用JavaScript开发工具列表
CSS中文清晰版电子书
6月23日美国科技博客精选
尼尔森:5月网络展示广告市场价值达15亿元
康盛创想发布Discuz!NT 3.0 Beta版本
nopCommerce
中国电信首批3G手机全面上市 巨资发动营销攻势
Subtext 2.1.1 Released
Google收购百万电话号码 或即将推出语音服务
雅虎推自助式显示广告服务对抗Google AdWords
程序员必备Java API和类搜索辅助工具发布
谷歌新闻将维基百科纳入新闻来源
全球科技业并购潮再起 4月份金额达200亿美元
最近评论
[评论] Andy : I always enjoy learning what other people think ab
[评论] 大可山 : 嗯,开放API对报纸等平面媒体的确是个好主意!
[评论] 鸿雁 : 默默地为他们祈祷吧
[评论] lym328 : 客源CRM非常不错-----如有需要可以了解一下! 可以帮助企业轻松获得大量目标客户来源,促使市场
[评论] kevinwu : 作用肯定是有的,Google会首先搜索站点的sitemap.xml文件,增加搜索的频率;国内的用户,
[评论] ss : 其实还真的感觉不到sitemap的作用~
[评论] kevinwu : 谢谢你的关注 :-)
[评论] h51h : 贵博客写得非常的好,界面简洁但内容却十分丰富 <a href="http://sexeden.blo
[评论] snguo : 这里很好 来这里支持下呢?
[评论] redondo : 感谢你分享知识! 这篇文章我转载到我的博客——Redono的日记本。 链接已注明来源。 欢迎光临Re