不凡的科技博客

Follow me on GitHub

【转】阿西莫夫《最后的问题》


【wk】果然好东西还是想拿出来分享XD这小说感觉跟c很像 但是那种浩瀚的感觉啊啊……觉得能给写小说的一些不错的参考 另外结局简直。。。。当时我就点了根妈妈片(。不说了

【正文】 我还记得第一次看到阿西莫夫的这个短篇时是怎样一种五雷轰顶的感觉。这是他的所有小说中他最喜欢的一篇,也是我最喜欢的一篇。这样短,情节这样简单,却给人史诗般宏篇巨制之感。它淋漓尽致地表现了阿西莫夫的风格:深刻的主题,冷静的叙述,以及出人意料的结尾。他可以说是科幻界的欧·亨利!

但是我发现这一篇却并不广为人知。网上能找到的大多都是一个台湾的译本,看起来比较别扭,而且忍无可忍的是我找到的阿西莫夫短篇集中竟然都不收录这一篇。所以下定决心自己翻译一下,让更多的人看到。

如果一切都要湮灭,至少我可以贡献一点data……

The Last Question

最后的问题

By Isaac Asimov

阿西莫夫

This is by far my favorite story of all those I have written. ... ...

查看全文

【转】麦肯锡:预计2025年全球将出现的12大颠覆技术


  麦肯锡发布了一项报告,里面研究了技术对未来经济影响程度。研究的对象是一些正在取得飞速发展、具有宽泛影响,且对经济影响显著的技术。相反,那些过于遥远的,仅能影响 1、2 个行业的,以及 2025 年之前不大可能实用化的技术(如混合动力),或者是虽然即将成熟但不够大众化的技术(如私人太空飞行)等则不在考虑范围内。

  以下就是麦肯锡列举的颠覆性技术及其潜在的经济影响程度(含消费者盈余在内,即消费者并未支付的因创新而获得的价值),当然,这种影响评估只是粗略的,不会像 GDP 数字那么具体。

  2025颠覆技术图示

  下图数字更具体一点:

  2025颠覆技术预测

  如上表所示,麦肯锡认为,未来 10 多年最具经济影响性的技术应该是那些已经取得良好进展的技术—如已经在发达国家普及并在新兴国家蓬勃发展的移动互联网;知识工作的自动化,比方说用计算机语音来处理大部分的客户电话;物联网,比方说将传感器嵌入物理实体中用来监控产品在工厂的流动;以及云计算。按照麦肯锡的估算,到 2025 年,这些技术每一个对全球经济的价值贡献均超过 1 万亿美元(即便是预测的下限)。 ... ...

查看全文

【转】EasyMock, PowerMock 一起mock静态方法 static method


在哪下载包就不说了,要下这么几个:

easymock-3.1
easymockclassextension-3.1
powermock-easymock-junit-1.5

创建一个待会儿被mock的类, Job

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    package com.jwu.mock;  
      
    import java.util.Random;  
      
    public class Job {  
      
        public Job(String name) {  
            this.name = name;  
        }  
      
        private String name;  
      
        public String getName() {  
            return name;  
        }  
      
        public static int generateId() {  
            return new Random().nextInt(1000);  
        }  
      
    }  
... ...

查看全文

【转】linux shell 字符串操作(长度,查找,替换,匹配)详解


在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。

###一、判断读取字符串值

表达式含义
${var}变量var的值, 与$var相同
${var-DEFAULT}如果var没有被声明, 那么就以$DEFAULT作为其值 *
${var:-DEFAULT}如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 *
${var=DEFAULT}如果var没有被声明, 那么就以$DEFAULT作为其值 *
${var:=DEFAULT}如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 *
${var+OTHER}如果var声明了, 那么其值就是$OTHER, 否则就为null字符串
${var:+OTHER}如果var被设置了, 那么其值就是$OTHER, 否则就为null字符串
${var?ERR_MSG}如果var没被声明, 那么就打印$ERR_MSG *
${var:?ERR_MSG}如果var没被设置, 那么就打印$ERR_MSG *
${!varprefix*}匹配之前所有以varprefix开头进行声明的变量
${!varprefix@}匹配之前所有以varprefix开头进行声明的变量
... ...

查看全文

【转】jstat的用法


如何判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。

Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。由于JVM内存设置较大,图中百分比变化不太明显 一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。

jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。 执行:cd $JAVA_HOME/bin中执行jstat,注意jstat后一定要跟参数。

语法结构:

Usage: jstat -help|-options
       jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

参数解释:

Options — 选项,我们一般使用 -gcutil 查看gc情况
vmid — VM的进程号,即当前运行的java进程号
interval– 间隔时间,单位为秒或者毫秒
count — 打印次数,如果缺省则打印无数次
... ...

查看全文