精华内容
下载资源
问答
  • Joda-Time 简介 让时间处理变得更简单

    千次阅读 2016-05-31 22:13:48
    应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。现在来看看 Joda Time,一个面向 Java™ 平台的易于使用的开源时间/日期库。正如...

    Joda-Time 简介

    既然无法摆脱时间,为何不设法简化时间处理?

    任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。现在来看看 Joda Time,一个面向 Java™ 平台的易于使用的开源时间/日期库。正如您在本文中了解的那样,Joda-Time 轻松化解了处理日期和时间的痛苦和繁琐。

    J Steven Perry, 首席顾问, Makoto Consulting Group, Inc.

    2009 年 12 月 14 日

    • expand内容

    在编写企业应用程序时,我常常需要处理日期。并且在我的最新项目中 — 保险行业 — 纠正日期计算尤其重要。使用 java.util.Calendar 让我有些不安。如果您也曾使用这个类处理过日期/时间值,那么您就知道它使用起来有多麻烦。因此当我接触到 Joda-Time — 面向 Java 应用程序的日期/时间库的替代选择 — 我决定研究一下。其结果是:我很庆幸我这么做了。

    Joda-Time 令时间和日期值变得易于管理、操作和理解。事实上,易于使用是 Joda 的主要设计目标。其他目标包括可扩展性、完整的特性集以及对多种日历系统的支持。并且 Joda 与 JDK 是百分之百可互操作的,因此您无需替换所有 Java 代码,只需要替换执行日期/时间计算的那部分代码。

    Joda 大型项目

    Joda 实际上是涵盖众多用于 Java 语言的替代 API 的大型项目,因此从技术上讲,使用 Joda 和 Joda-Time 名称表示相同的意思是一种误称。但在撰写本文之际,Joda-Time API 目前似乎是唯一处于活跃开发状态下的 Joda API。考虑到 Joda 大型项目的当前状态,我想将 Joda-Time 简称为 Joda 应该没什么问题。

    本文将介绍并展示如何使用它。我将介绍以下主题:

    • 日期/时间替代库简介
    • Joda 的关键概念
    • 创建 Joda-Time 对象
    • 以 Joda 的方式操作时间 style
    • 以 Joda 的方式格式化时间

    您可以 下载 演示这些概念的样例应用程序的源代码。

    Joda 简介

    为什么要使用 Joda?考虑创建一个用时间表示的某个随意的时刻 — 比如,2000 年 1 月 1 日 0 时 0 分。我如何创建一个用时间表示这个瞬间的 JDK 对象?使用 java.util.Date?事实上这是行不通的,因为自 JDK 1.1 之后的每个 Java 版本的 Javadoc 都声明应当使用java.util.CalendarDate 中不赞成使用的构造函数的数量严重限制了您创建此类对象的途径。

    然而,Date 确实有一个构造函数,您可以用来创建用时间表示某个瞬间的对象(除 “现在” 以外)。该方法使用距离 1970 年 1 月 1 日子时格林威治标准时间(也称为 epoch)以来的毫秒数作为一个参数,对时区进行校正。考虑到 Y2K 对软件开发企业的重要性,您可能会认为我已经记住了这个值 — 但是我没有。Date 也不过如此。

    那么 Calendar 又如何呢?我将使用下面的方式创建必需的实例:

    Calendar calendar = Calendar.getInstance();
    calendar.set(2000, Calendar.JANUARY, 1, 0, 0, 0);

    使用 Joda,代码应该类似如下所示:

    DateTime dateTime = new DateTime(2000, 1, 1, 0, 0, 0, 0);

    这一行简单代码没有太大的区别。但是现在我将使问题稍微复杂化。假设我希望在这个日期上加上 90 天并输出结果。使用 JDK,我需要使用清单 1 中的代码:

    清单 1. 以 JDK 的方式向某一个瞬间加上 90 天并输出结果
    Calendar calendar = Calendar.getInstance();
    calendar.set(2000, Calendar.JANUARY, 1, 0, 0, 0);
    SimpleDateFormat sdf =
      new SimpleDateFormat("E MM/dd/yyyy HH:mm:ss.SSS");
    calendar.add(Calendar.DAY_OF_MONTH, 90);
    System.out.println(sdf.format(calendar.getTime()));

    使用 Joda,代码如清单 2 所示:

    清单 2. 以 Joda 的方式向某一个瞬间加上 90 天并输出结果
    DateTime dateTime = new DateTime(2000, 1, 1, 0, 0, 0, 0);
    System.out.println(dateTime.plusDays(90).toString("E MM/dd/yyyy HH:mm:ss.SSS");

    两者之间的差距拉大了(Joda 用了两行代码,JDK 则是 5 行代码)。

    现在假设我希望输出这样一个日期:距离 Y2K 45 天之后的某天在下一个月的当前周的最后一天的日期。坦白地说,我甚至不想使用 Calendar处理这个问题。使用 JDK 实在太痛苦了,即使是简单的日期计算,比如上面这个计算。正是多年前的这样一个时刻,我第一次领略到 Joda-Time 的强大。使用 Joda,用于计算的代码如清单 3 所示:

    清单 3. 改用 Joda
    DateTime dateTime = new DateTime(2000, 1, 1, 0, 0, 0, 0);
    System.out.println(dateTime.plusDays(45).plusMonths(1).dayOfWeek()
      .withMaximumValue().toString("E MM/dd/yyyy HH:mm:ss.SSS");

    清单 3 的输出为:

    Sun 03/19/2000 00:00:00.000

    如果您正在寻找一种易于使用的方式替代 JDK 日期处理,那么您真的应该考虑 Joda。如果不是这样的话,那么继续痛苦地使用 Calendar 完成所有日期计算吧。当您做到这一点后,您完全可以做到使用几把剪刀修建草坪并使用一把旧牙刷清洗您的汽车。

    Joda 和 JDK 互操作性

    JDK Calendar 类缺乏可用性,这一点很快就能体会到,而 Joda 弥补了这一不足。Joda 的设计者还做出了一个决定,我认为这是它取得成功的构建:JDK 互操作性。Joda 的类能够生成(但是,正如您将看到的一样,有时会采用一种比较迂回的方式)java.util.Date 的实例(和Calendar)。这使您能够保留现有的依赖 JDK 的代码,但是又能够使用 Joda 处理复杂的日期/时间计算。

    例如,完成 清单 3 中的计算后。我只需要做出如清单 4 所示的更改就可以返回到 JDK 中:

    清单 4. 将 Joda 计算结果插入到 JDK 对象中
    Calendar calendar = Calendar.getInstance();
    DateTime dateTime = new DateTime(2000, 1, 1, 0, 0, 0, 0);
    System.out.println(dateTime.plusDays(45).plusMonths(1).dayOfWeek()
      .withMaximumValue().toString("E MM/dd/yyyy HH:mm:ss.SSS");
    calendar.setTime(dateTime.toDate());

    就是这么简单。我完成了计算,但是可以继续在 JDK 对象中处理结果。这是 Joda 的一个非常棒的特性。

    Joda 的关键日期/时间概念

    Joda 使用以下概念,它们可以应用到任何日期/时间库:

    • 不可变性(Immutability)
    • 瞬间性(Instant)
    • 局部性(Partial)
    • 年表(Chronology)
    • 时区(Time zone)

    我将针对 Joda 依次讨论每一个概念。

    不可变性

    我在本文讨论的 Joda 类具有不可变性,因此它们的实例无法被修改。(不可变类的一个优点就是它们是线程安全的)。我将向您展示的用于处理日期计算的 API 方法全部返回一个对应 Joda 类的新实例,同时保持原始实例不变。当您通过一个 API 方法操作 Joda 类时,您必须捕捉该方法的返回值,因为您正在处理的实例不能被修改。您可能对这种模式很熟悉;比如,这正是 java.lang.String 的各种操作方法的工作方式。

    瞬间性

    Instant 表示时间上的某个精确的时刻,使用从 epoch 开始计算的毫秒表示。这一定义与 JDK 相同,这就是为什么任何 Joda Instant 子类都可以与 JDK Date 和 Calendar 类兼容的原因。

    更通用一点的定义是:一个瞬间 就是指时间线上只出现一次且唯一的一个时间点,并且这种日期结构只能以一种有意义的方式出现一次。

    局部性

    一个局部时间,正如我将在本文中将其称为局部时间片段一样,它指的是时间的一部分片段。瞬间性指定了与 epoch 相对的时间上的一个精确时刻,与此相反,局部时间片段指的是在时间上可以来回 “移动” 的一个时刻,这样它便可以应用于多个实例。比如,6 月 2 日 可以应用于任意一年的 6 月份(使用 Gregorian 日历)的第二天的任意瞬间。同样,11:06 p.m. 可以应用于任意一年的任意一天,并且每天只能使用一次。即使它们没有指定一个时间上的精确时刻,局部时间片段仍然是有用的。

    我喜欢将局部时间片段看作一个重复周期中的一点,这样的话,如果我正在考虑的日期构建可以以一种有意义的方式出现多次(即重复的),那么它就是一个局部时间。

    年表

    Joda 本质 — 以及其设计核心 — 的关键就是年表(它的含义由一个同名抽象类捕捉)。从根本上讲,年表是一种日历系统 — 一种计算时间的特殊方式 — 并且是一种在其中执行日历算法的框架。受 Joda 支持的年表的例子包括:

    • ISO(默认)
    • Coptic
    • Julian
    • Islamic

    Joda-Time 1.6 支持 8 种年表,每一种都可以作为特定日历系统的计算引擎。

    时区

    时区是值一个相对于英国格林威治的地理位置,用于计算时间。要了解事件发生的精确时间,还必须知道发生此事件的位置。任何严格的时间计算都必须涉及时区(或相对于 GMT),除非在同一个时区内发生了相对时间计算(即时这样时区也很重要,如果事件对于位于另一个时区的各方存在利益关系的话)。

    DateTimeZone 是 Joda 库用于封装位置概念的类。许多日期和时间计算都可以在不涉及时区的情况下完成,但是仍然需要了解DateTimeZone 如何影响 Joda 的操作。默认时间,即从运行代码的机器的系统时钟检索到的时间,在大部分情况下被使用。

    创建 Joda-Time 对象

    现在,我将展示在采用该库时会经常遇到的一些 Joda 类,并展示如何创建这些类的实例。

    可变的 Joda 类

    我并不是可变实用类的粉丝;我只是认为它们的用例并不适合广泛使用。但是如果您认为您的确需要使用可变 Joda 类的话,本节的内容应当会对您的项目有帮助。Readable 和 ReadWritable API 之间的唯一区别在于 ReadWritable 类能够改变封装的日期/时间值,因此我在这里将不再介绍这一点。

    本节中介绍的所有实现都具有若干构造函数,允许您初始化封装的日期/时间。它们可以分为 4 个类别:

    • 使用系统时间。
    • 使用多个字段指定一个瞬间时刻(或局部时间片段),达到这个特定实现所能支持的最细粒度的精确度。
    • 指定一个瞬间时刻(或局部时间片段),以毫秒为单位。
    • 使用另一个对象(例如,java.util.Date,或者是另一个 Joda 对象)。

    我将在第一个类中介绍这些构造函数: DateTime。当您使用其他 Joda 类的相应构造函数时,也可以使用这里介绍的内容。

    重载方法

    如果您创建了一个 DateTime 的实例,并且没有提供Chronology 或 DateTimeZone,Joda 将使用ISOChronology(默认)和 DateTimeZone(来自系统设置)。然而,Joda ReadableInstant 子类的所有构造函数都包含一个超载方法,该方法以一个Chronology 或 DateTimeZone 为参数。本文附带的应用程序的的样例代码展示了如何使用这些超载方法(参见下载)。我在这里不会再详细介绍它们,因为这些方法使用起来非常简单。然而,我建议您试着使用一下这个样例应用程序,看看编写您的应用程序代码有多么简单,这样您就可以随意地在 Joda 的 Chronology 和DateTimeZone 之间切换,同时不会影响到代码的其余部分。

    ReadableInstant

    Joda 通过 ReadableInstant 类实现了瞬间性这一概念。表示时间上的不可变瞬间的 Joda 类都属于这个类的子类。(将这个类命名为 ReadOnlyInstant 可能更好,我认为这才是设计者需要传达的意思)。换句话说,ReadableInstant 表示时间上的某一个不可修改的瞬间)。其中的两个子类分别为 DateTime 和 DateMidnight

    • DateTime:这是最常用的一个类。它以毫秒级的精度封装时间上的某个瞬间时刻。DateTime 始终与 DateTimeZone 相关,如果您不指定它的话,它将被默认设置为运行代码的机器所在的时区。

      可以使用多种方式构建 DateTime 对象。这个构造函数使用系统时间:

      DateTime dateTime = new DateTime();

      一般来讲,我会尽量避免使用系统时钟来初始化应用程序的实际,而是倾向于外部化设置应用程序代码使用的系统时间。样例应用程序执行以下代码:
      DateTime dateTime = SystemFactory.getClock().getDateTime();

      这使得使用不同日期/时间测试我的代码变得更加简单:我不需要修改代码来在应用程序中运行不同的日期场景,因为时间是在 SystemClock实现的内部设置的,而不是在应用程序的内部。(我可以修改系统时间,但是那实在太痛苦了!)

      下面的代码使用一些字段值构建了一个 DateTime 对象:

      DateTime dateTime = new DateTime(
        2000, //year
        1,    // month
        1,    // day
        0,    // hour (midnight is zero)
        0,    // minute
        0,    // second
        0     // milliseconds
      );

      正如您所见,Joda 可以使您精确地控制创建 DateTime 对象的方式,该对象表示时间上的某个特定的瞬间。每一个 Joda 类都有一个与此类似的构造函数,您在此构造函数中指定 Joda 类可以包含的所有字段。您可以用它快速了解特定类在哪一种粒度级别上操作。

      下一个构造函数将指定从 epoch 到某个时刻所经过的毫秒数。它根据 JDK Date 对象的毫秒值创建一个 DateTime 对象,其时间精度用毫秒表示,因为 epoch 与 Joda 是相同的:

      java.util.Date jdkDate = obtainDateSomehow();
      long timeInMillis = jdkDate.getTime();
      DateTime dateTime = new DateTime(timeInMillis);

      并且这个例子与前例类似,唯一不同之处是我在这里将 Date 对象直接传递给构造函数:

      java.util.Date jdkDate = obtainDateSomehow();
      dateTime = new DateTime(jdkDate);

      Joda 支持使用许多其他对象作为构造函数的参数,用于创建 DateTime,如清单 5 所示:

      清单 5. 直接将不同对象传递给 DateTime 的构造函数
      // Use a Calendar
      java.util.Calendar calendar = obtainCalendarSomehow();
      dateTime = new DateTime(calendar);
      // Use another Joda DateTime
      DateTime anotherDateTime = obtainDateTimeSomehow();
      dateTime = new DateTime(anotherDateTime);
      // Use a String (must be formatted properly)
      String timeString = "2006-01-26T13:30:00-06:00";
      dateTime = new DateTime(timeString);
      timeString = "2006-01-26";
      dateTime = new DateTime(timeString);

      注意,如果您准备使用 String(必须经过解析),您必须对其进行精确地格式化。参考 Javadoc,获得有关 Joda 的 ISODateTimeFormat类的更多信息(参见 参考资料)。

    • DateMidnight:这个类封装某个时区(通常为默认时区)在特定年/月/日的午夜时分的时刻。它基本上类似于 DateTime,不同之处在于时间部分总是为与该对象关联的特定 DateTimeZone 时区的午夜时分。

    您将在本文看到的其他类都遵循与 ReadableInstant 类相同的模式(Joda Javadoc 将显示这些内容),因此为了节省篇幅,我将不会在以下小节介绍这些内容。

    ReadablePartial

    应用程序所需处理的日期问题并不全部都与时间上的某个完整时刻有关,因此您可以处理一个局部时刻。例如,有时您比较关心年/月/日,或者一天中的时间,甚至是一周中的某天。Joda 设计者使用 ReadablePartial 接口捕捉这种表示局部时间的概念,这是一个不可变的局部时间片段。用于处理这种时间片段的两个有用类分别为 LocalDate 和 LocalTime

    • LocalDate:该类封装了一个年/月/日的组合。当地理位置(即时区)变得不重要时,使用它存储日期将非常方便。例如,某个特定对象的出生日期 可能为 1999 年 4 月 16 日,但是从技术角度来看,在保存所有业务值的同时不会了解有关此日期的任何其他信息(比如这是一周中的星期几,或者这个人出生地所在的时区)。在这种情况下,应当使用 LocalDate

      样例应用程序使用 SystemClock 来获取被初始化为系统时间的 LocalDate 的实例:

      LocalDate localDate = SystemFactory.getClock().getLocalDate();

      也可以通过显式地提供所含的每个字段的值来创建 LocalDate

      LocalDate localDate = new LocalDate(2009, 9, 6);// September 6, 2009

      LocalDate 替代了在早期 Joda 版本中使用的 YearMonthDay

    • LocalTime:这个类封装一天中的某个时间,当地理位置不重要的情况下,可以使用这个类来只存储一天当中的某个时间。例如,晚上 11:52 可能是一天当中的一个重要时刻(比如,一个 cron 任务将启动,它将备份文件系统的某个部分),但是这个时间并没有特定于某一天,因此我不需要了解有关这一时刻的其他信息。

      样例应用程序使用 SystemClock 获取被初始化为系统时间的 LocalTime 的一个实例:

      LocalTime localTime = SystemFactory.getClock().getLocalTime();

      也可以通过显式地提供所含的每个字段的值来创建 LocalTime

      LocalTime localTime = new LocalTime(13, 30, 26, 0);// 1:30:26PM

    时间跨度

    了解特定的时刻或是某个局部时间片段将非常有用,但是如果能够表达一段时间跨度的话,通常也很有用。Joda 提供了三个类来简化这个过程。您可以选择用于表示不同跨度的类:

    • Duration:这个类表示一个绝对的精确跨度,使用毫秒为单位。这个类提供的方法可以用于通过标准的数学转换(比如 1 分钟 = 60 秒,1 天 = 24 小时),将时间跨度转换为标准单位(比如秒、分和小时)。

      您只在以下情况使用 Duration 的实例:您希望转换一个时间跨度,但是您并不关心这个时间跨度在何时发生,或者使用毫秒处理时间跨度比较方便。

    • Period:这个类表示与 Duration 相同的概念,但是以人们比较熟悉的单位表示,比如年、月、周。

      您可以在以下情况使用 Period:您并不关心这段时期必须在何时发生,或者您更关心检索单个字段的能力,这些字段描述由 Period 封装的时间跨度。

    • Interval:这个类表示一个特定的时间跨度,将使用一个明确的时刻界定这段时间跨度的范围。Interval 为半开 区间,这表示由Interval 封装的时间跨度包括这段时间的起始时刻,但是不包含结束时刻。

      可以在以下情况使用 Interval:需要表示在时间连续区间中以特定的点开始和结束的一段时间跨度。

    以 Joda 的方式处理时间

    现在,您已经了解了如何创建一些非常有用的 Joda 类,我将向您展示如何使用它们执行日期计算。接着您将了解到 Joda 如何轻松地与 JDK 进行互操作。

    日期计算

    如果您只是需要对日期/时间信息使用占位符,那么 JDK 完全可以胜任,但是它在日期/时间计算方面的表现十分糟糕,而这正是 Joda 的长处。我将向您展示一些简单的例子。

    假设在当前的系统日期下,我希望计算上一个月的最后一天。对于这个例子,我并不关心一天中的时间,因为我只需要获得年/月/日,如清单 6 所示:

    清单 6. 使用 Joda 计算日期
    LocalDate now = SystemFactory.getClock().getLocalDate();
    LocalDate lastDayOfPreviousMonth =\
      now.minusMonths(1).dayOfMonth().withMaximumValue();

    您可能对清单 6 中的 dayOfMonth() 调用感兴趣。这在 Joda 中被称为属性(property)。它相当于 Java 对象的属性。属性是根据所表示的常见结构命名的,并且它被用于访问这个结构,用于完成计算目的。属性是实现 Joda 计算威力的关键。您目前所见到的所有 4 个 Joda 类都具有这样的属性。一些例子包括:

    • yearOfCentury
    • dayOfYear
    • monthOfYear
    • dayOfMonth
    • dayOfWeek

    我将详细介绍清单 6 中的示例,以向您展示整个计算过程。首先,我从当前月份减去一个月,得到 “上一个月”。接着,我要求获得dayOfMonth 的最大值,它使我得到这个月的最后一天。注意,这些调用被连接到一起(注意 Joda ReadableInstant 子类是不可变的),这样您只需要捕捉调用链中最后一个方法的结果,从而获得整个计算的结果。

    当计算的中间结果对我不重要时,我经常会使用这种计算模式。(我以相同的方式使用 JDK 的 BigDecimal)。假设您希望获得任何一年中的第 11 月的第一个星期二的日期,而这天必须是在这个月的第一个星期一之后。清单 7 展示了如何完成这个计算:

    清单 7. 计算 11 月中第一个星期一之后的第一个星期二
    LocalDate now = SystemFactory.getClock().getLocalDate();
    LocalDate electionDate = now.monthOfYear()
     .setCopy(11)        // November
     .dayOfMonth()       // Access Day Of Month Property
     .withMinimumValue() // Get its minimum value
     .plusDays(6)        // Add 6 days
     .dayOfWeek()        // Access Day Of Week Property
     .setCopy("Monday")  // Set to Monday (it will round down)
     .plusDays(1);       // Gives us Tuesday

    清单 7 的注释帮助您了解代码如何获得结果。.setCopy("Monday") 是整个计算的关键。不管中间 LocalDate 值是多少,将其 dayOfWeek属性设置为 Monday 总是能够四舍五入,这样的话,在每月的开始再加上 6 天就能够让您得到第一个星期一。再加上一天就得到第一个星期二。Joda 使得执行此类计算变得非常容易。

    下面是其他一些因为使用 Joda 而变得超级简单的计算:

    以下代码计算从现在开始经过两个星期之后的日期:

    DateTime now = SystemFactory.getClock().getDateTime();
    DateTime then = now.plusWeeks(2);

    您可以以这种方式计算从明天起 90 天以后的日期:

    DateTime now = SystemFactory.getClock().getDateTime();
    DateTime tomorrow = now.plusDays(1);
    DateTime then = tomorrow.plusDays(90);

    (是的,我也可以向 now 加 91 天,那又如何呢?)

    下面是计算从现在起 156 秒之后的时间:

    DateTime now = SystemFactory.getClock().getDateTime();
    DateTime then = now.plusSeconds(156);

    下面的代码将计算五年后的第二个月的最后一天:

    DateTime now = SystemFactory.getClock().getDateTime();
    DateTime then = now.minusYears(5) // five years ago
                   .monthOfYear()     // get monthOfYear property
                   .setCopy(2)        // set it to February
                   .dayOfMonth()      // get dayOfMonth property
                   .withMaximumValue();// the last day of the month

    这样的例子实在太多了,我向您已经知道了如何计算。尝试操作一下样例应用程序,亲自体验一下使用 Joda 计算任何日期是多么有趣。

    JDK 互操作性

    我的许多代码都使用了 JDK Date 和 Calendar 类。但是幸亏有 Joda,我可以执行任何必要的日期算法,然后再转换回 JDK 类。这将两者的优点集中到一起。您在本文中看到的所有 Joda 类都可以从 JDK Calendar 或 Date 创建,正如您在 创建 Joda-Time 对象 中看到的那样。出于同样的原因,可以从您所见过的任何 Joda 类创建 JDK Calendar 或 Date

    清单 8 展示了从 Joda ReadableInstant 子类转换为 JDK 类有多么简单:

    清单 8. 从 Joda DateTime 类创建 JDK 类
    DateTime dateTime = SystemFactory.getClock().getDateTime();
    Calendar calendar = dateTime.toCalendar(Locale.getDefault());
    Date date = dateTime.toDate();
    DateMidnight dateMidnight = SystemFactory.getClock()
      .getDateMidnight();
    date = dateMidnight.toDate();

    对于 ReadablePartial 子类,您还需要经过额外一步,如清单 9 所示:

    清单 9. 创建表示 LocalDate 的 Date 对象
    LocalDate localDate = SystemFactory.getClock().getLocalDate();
    Date date = localDate.toDateMidnight().toDate();

    要创建 Date 对象,它表示从清单 9 所示的 SystemClock 中获得的 LocalDate,您必须首先将它转换为一个 DateMidnight 对象,然后只需要将 DateMidnight 对象作为 Date。(当然,产生的 Date 对象将把它自己的时间部分设置为午夜时刻)。

    JDK 互操作性被内置到 Joda API 中,因此您无需全部替换自己的接口,如果它们被绑定到 JDK 的话。比如,您可以使用 Joda 完成复杂的部分,然后使用 JDK 处理接口。

    以 Joda 方式格式化时间

    使用 JDK 格式化日期以实现打印是完全可以的,但是我始终认为它应该更简单一些。这是 Joda 设计者进行了改进的另一个特性。要格式化一个 Joda 对象,调用它的 toString() 方法,并且如果您愿意的话,传递一个标准的 ISO-8601 或一个 JDK 兼容的控制字符串,以告诉 JDK 如何执行格式化。不需要创建单独的 SimpleDateFormat 对象(但是 Joda 的确为那些喜欢自找麻烦的人提供了一个 DateTimeFormatter类)。调用 Joda 对象的 toString() 方法,仅此而已。我将展示一些例子。

    清单 10 使用了 ISODateTimeFormat 的静态方法:

    清单 10. 使用 ISO-8601
    DateTime dateTime = SystemFactory.getClock().getDateTime();
    dateTime.toString(ISODateTimeFormat.basicDateTime());
    dateTime.toString(ISODateTimeFormat.basicDateTimeNoMillis());
    dateTime.toString(ISODateTimeFormat.basicOrdinalDateTime());
    dateTime.toString(ISODateTimeFormat.basicWeekDateTime());

    清单 10 中的四个 toString() 调用分别创建了以下内容:

    20090906T080000.000-0500
    20090906T080000-0500
    2009249T080000.000-0500
    2009W367T080000.000-0500

    您也可以传递与 SimpleDateFormat JDK 兼容的格式字符串,如清单 11 所示:

    清单 11. 传递 SimpleDateFormat 字符串
    DateTime dateTime = SystemFactory.getClock().getDateTime();
    dateTime.toString("MM/dd/yyyy hh:mm:ss.SSSa");
    dateTime.toString("dd-MM-yyyy HH:mm:ss");
    dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa");
    dateTime.toString("MM/dd/yyyy HH:mm ZZZZ");
    dateTime.toString("MM/dd/yyyy HH:mm Z");
    
    09/06/2009 02:30:00.000PM
    06-Sep-2009 14:30:00
    Sunday 06 September, 2009 14:30:00PM
    09/06/2009 14:30 America/Chicago
    09/06/2009 14:30 -0500

    查看 Javadoc 中有关 joda.time.format.DateTimeFormat 的内容,获得与 JDK SimpleDateFormat 兼容的格式字符串的更多信息,并且可以将其传递给 Joda 对象的 toString() 方法。

    结束语

    谈到日期处理,Joda 是一种令人惊奇的高效工具。无论您是计算日期、打印日期,或是解析日期,Joda 都将是工具箱中的便捷工具。在本文中,我首先介绍了 Joda,它可以作为 JDK 日期/时间库的替代选择。然后介绍了一些 Joda 概念,以及如何使用 Joda 执行日期计算和格式化。

    Joda-Time 衍生了一些相关的项目,您可能会发现这些项目很有用。现在出现了一个针对 Grails Web 开发框架的 Joda-Time 插件。joda-time-jpox 项目的目标就是添加一些必需的映射,以使用 DataNucleus 持久化引擎持久化 Joda-Time 对象。并且,一个针对 Google Web Toolkit(也称为 Goda-Time)的 Joda-Time 实现目前正在开发当中,但是在撰写本文之际因为许可问题而被暂停。访问 参考资料 获得更多信息。


    转自:http://www.ibm.com/developerworks/cn/java/j-jodatime.html

    展开全文
  • 为了自己变得更优秀,我喜欢上了这2位B站up主

    万次阅读 多人点赞 2020-04-18 08:05:13
    在我开始写作之前,工作上虽然非常努力,但业余时间基本上就算是虚度了,除了打游戏就是无所事事。这样的日子我对生活充满了怨气,完全丧失前进的自驱力。 但在我坚持写作之后,情况就发生了翻天覆地的变化。以前...

    人生是一件特别奇妙的事儿。

    在我开始写作之前,工作上虽然非常努力,但业余时间基本上就算是虚度了,除了打游戏就是无所事事。这样的日子让我对生活充满了怨气,完全丧失前进的自驱力。

    但在我坚持写作之后,情况就发生了翻天覆地的变化。以前习惯于受人鞭策才能前进,现在完全戒了这个瘾。

    因为认识的人越来越优秀,你根本就不敢停下脚步。偶尔驻足停留一下,就会发现那些人从你身边快速地奔跑过去,然后把你远远甩在身后。

    我本身并不是一个积极上进的人,但是一个不甘落后的人,至少不能成为废材吧。我想你应该也会有我这种感觉:就是那谁谁谁比我优秀,那没办法,但那谁谁谁那么差劲,怎么能突然就比自己优秀了呢?

    怎么破这种局呢?

    你必须要学会改变,积极主动地去改变。并且要学会去拥抱那些超越你的人,学习他们的长处,和他们进行交流,然后做出回应。

    今天还有人微信问我,“二哥,你也在 CSDN 上写作吗?”一看就是对我了解得不够多,我在 CSDN 上注册账号的时间已经超过十年了,另外,我已经分享快 700 篇文章了。

    一开始,我写得特别随意,标题随意,内容随意。虽然阅读量也不错,但基本上没有爆款。上十万阅读量的文章非常少,但我认识的几个年轻人,动辄一篇文章就三四十万的阅读量——我酸了,我觉得自己太保守了。

    必须得改变。于是我开始写一些标题醒目的文章,结果发现阅读量是真的香,不仅帮助了更多的人,影响力也扩大了。极少数在我文章底部留言讽刺我的人,我压根就不想理,因为他们不懂生存的规则:物竞天择,适者生存

    然后,我发现,我在 CSDN 上的阅读量开始快速增长,总排名 65,周排名第 4,阅读量已经 410 万了。

    为什么别人可以,我就不能标题优雅一点呢?

    我的文章有目共睹,质量还是非常高的,并且是能真正帮助读者的,因此配得上拥有更多的浏览量,这是不争的事实。所以,我应该做出改变,首先就从标题做起。

    这还不够!还要从内容做起。

    随着时间的推移,视频这块会占据人们生活中越来越重要的位置,无论是微信推出的视频号,还是 bilibili,都将是未来内容生产者必须去攻占的领地。

    好朋友 ithuangqing(有个视频将近 70 万播放量) 给我推荐两位 up 主,我刷了他们十几个视频后,发现是真的香。

    一位是程序员领域的 CodeSheep(32 万粉丝),一位是学习领域的兔叭咯(188 万粉丝)。

    下图是 CodeSheep 播放量最多的 8 个视频。我每个都看了,真的是能学到东西啊(怪不得羊哥文章末尾会留一个 peace,原来是 B 站的专属名词啊),风格非常轻松愉快,语言表达能力算是程序员中的顶尖水平了。

    不过,非常悲剧的是,由于等级太低,我连留言的权限都没有——太残忍了。

    我还特意找羊哥发了一下这个截图,结果羊哥也表示很无奈,看来只能多去 B 站逛逛了,话说留言权限怎么开通啊,小伙伴们支支招!

    下图是兔叭咯播放量最多的 8 个视频。单从长相上看,真的比宋小宝帅,每次都抱着一个玩偶。话说的真的漂亮,表情包真的到位,视频制作的质量也是高,连恰饭的视频我都觉得舒服。

    我看他们的视频,可不是为了消磨时光,而是学习他们的表达力。那种轻松愉快,和读者面对面交流的感觉是我急需在文字中体现出来的——就仿佛我的形象也能够跃然于纸上,在没有画面帮助的情况下。

    未来我肯定会向视频方向靠拢,目前也在和松哥考虑合作的可能性,希望能够带给大家一些不一样的视频观看体验,轻松幽默的同时,不失对技术极客的追求。

    B 站真的是一个蛮神奇的地方,我曾在上面发表过文章,但阅读量要么为 0 要么为 1,挺打击人的。但我看羊哥的文章阅读量基本上都在 1 万以上,这说明 B 站对待作者是有区别的。我想原因是羊哥因为视频积累了粉丝,所以文章的阅读量自然也就有了保障,而我没有,文章自然就没有阅读量。毕竟 B 站是以视频内容为主的,虽然可以投放文字形式的稿件,但没阅读量是真的。

    我最近要求自己每天看 1 到 2 个视频,发现真的还是有收获的。以前我是挺抵触看视频的,因为觉得会浪费时间,我现在想,是因为看的视频质量不够高,没有带给我想要的知识。其实和看书是一个道理,有些书就很优质,比如说王小波、当年明月,有些书就很垃圾,我就不提名字了。

    你看,我在积极地做出改变,就是希望能够与时俱进。而一旦你做出改变,很多你意想不到的好东西就会映入眼帘。假如你不作出改变的,一直拒绝接纳新事物的话,就会活得像井底的青蛙,看到天空就永远就那么大。

    生活的本质就是这样,你认识一个优秀的人,然后就会遇到第二个;而如果你一直遇到的是和你水平相当的,那么很可能你的水平永远就这么高。

    接下来,请允许我吹个牛逼,认识二哥绝对是一件愉快的事情,并且是值得去做的事情,因为有很多读者反馈跟着二哥变得比以前的自己更优秀了。

    因为我一个生活在三线城市的程序员都能有所成就,你怕什么呢?

    今天就分享这么多,大家如果有其他想要了解的,可以留言或者私信回复我​。

    如果觉得有帮助,希望老铁们来个三连击,给更多的人看到这篇文章

    1、关注我的原创微信公众号「沉默王二」,专注于有趣的 Java 技术和有益的程序人生,保证你看完有所收获。

    2、给二哥点个赞呗,可以让更多的人看到这篇文章,顺便激励下我继续写作,嘻嘻。

    作者info

    【作者】:沉默王二
    【公众号】:沉默王二。欢迎大家关注~
    【作者简介】:毕业于一所不知名的大专院校,却出版了《Web全栈开发进阶之路》一书;这还不算优秀,2015 年成为 CSDN 博客之星,2019 年成为 CSDN 博客之星,2020 年总排名 65,周排名第 4。我就是沉默王二,一枚有趣的程序员,有颜值却靠才华苟且,期待你的关注。

    点赞是对我最大的鼓励
    ↓↓↓↓↓↓

    展开全文
  • 谷歌是否我们变得愚蠢?

    万次阅读 2014-01-21 16:32:22
    卡尔在2008年7-8月号的《大西洋月刊》撰文,以《谷歌是否我们变得愚蠢》为题,痛苦地剖析了自己和互联网一代的大脑退化历程。   The Atlantic Monthly 《大西洋月刊》 JULY/AUGUST 2008 2008年7/8月号 What...

    http://blog.sina.com.cn/s/blog_537d1eea0100cppy.html

    卡尔在2008年7-8月号的《大西洋月刊》撰文,以《谷歌是否让我们变得愚蠢》为题,痛苦地剖析了自己和互联网一代的大脑退化历程。

     

    The Atlantic Monthly  《大西洋月刊》

    JULY/AUGUST 2008   2008年7/8月号

    What the Internet is doing to our brains

    互联网究竟在对我们的大脑做些什么

    Is Google Making Us Stupid?

    谷歌是否让我们变得愚蠢?

    by Nicholas Carr


    "Dave, stop. Stop, will you? Stop, Dave. Will you stop, Dave?” So the supercomputer HAL pleads with the implacable astronaut Dave Bowman in a famous and weirdly poignant scene toward the end of Stanley Kubrick’s 2001: A Space Odyssey. Bowman, having nearly been sent to a deep-space death by the malfunctioning machine, is calmly, coldly disconnecting the memory circuits that control its artificial “brain”. “Dave, my mind is going,” HAL says, forlornly. “I can feel it. I can feel it.”

    “戴夫,别这样,别这样好吗?住手,戴夫。你能不能别这样,戴夫?求你了!” 这个深刻异常的著名场景出现在斯坦利·库布里克的电影《2001:太空奥德赛》的片尾,乃超级电脑HAL恳求无情的宇航员戴夫·鲍曼手下留情,放它一条生路。由于电脑故障,戴夫被送入茫茫的深度外太空,陷入绝境。于是他平静而冷酷地切断控制HAL人工大脑的内存电路。“戴夫,我的思想要没了,”HAL可怜巴巴地说道。“我感觉得到。我感觉得到!”

     

    I can feel it, too. Over the past few years I’ve had an uncomfortable sense that someone, or something, has been tinkering with my brain, remapping the neural circuitry, reprogramming the memory. My mind isn’t going—so far as I can tell—but it’s changing. I’m not thinking the way I used to think. I can feel it most strongly when I’m reading. Immersing myself in a book or a lengthy article used to be easy. My mind would get caught up in the narrative or the turns of the argument, and I’d spend hours strolling through long stretches of prose. That’s rarely the case anymore. Now my concentration often starts to drift after two or three pages. I get fidgety, lose the thread, begin looking for something else to do. I feel as if I’m always dragging my wayward brain back to the text. The deep reading that used to come naturally has become a struggle.

    我也能感觉得到。过去几年来,我老有一种很不舒服的感觉,觉得有什么人,或什么东西,一直在修理我的脑袋,重绘我的‘脑电图’,重写我的‘脑内存’。根据我的判断,我的思想倒没跑掉,但它正在改变,我不再像过去那样来思考了。我读书的时候这种感觉尤其强烈。以前读一本书或一篇长文章根本不费什么劲儿,我的脑子会专注地跟随作者的叙述或议论,我会连续几个小时阅读长篇的散文,可如今我却很少能够这样了。现在,往往读过了两、三页,我的注意力就漂走了,变得烦躁不安,思绪中断,就开始找别的事情来干。我感觉好像自己总是要把漂移的心思给拽回来,专注于文本。以往自然而然的阅读活动,如今则成了一场战斗。

     

    I think I know what’s going on. For more than a decade now, I’ve been spending a lot of time online, searching and surfing and sometimes adding to the great databases of the Internet. The Web has been a godsend to me as a writer. Research that once required days in the stacks or periodical rooms of libraries can now be done in minutes. A few Google searches, some quick clicks on hyperlinks, and I’ve got the telltale fact or pithy quote I was after. Even when I’m not working, I’m as likely as not to be foraging in the Web’s info-thickets’ reading and writing e-mails, scanning headlines and blog posts, watching videos and listening to podcasts, or just tripping from link to link to link. (Unlike footnotes, to which they’re sometimes likened, hyperlinks don’t merely point to related works; they propel you toward them.)

    我想我知道究竟是怎么回事。过去这十多年来,我在网上花了好多时间,在互联网这个庞大的数据库中冲浪,搜寻,有时也会在上面发布些什么。对于我这样的作家,网络就像天赐宝物,过去要在图书馆的书堆或期刊室里花上好几天做的研究,现在几分钟就能搞定。Google几下,鼠标快速地点击几下超链接,我想要的那些很能说明问题的事实与简洁精练的引语就都有了。即便不工作的时候,我也很可能是在网络的信息密林里觅食:阅读和撰写电子邮件,浏览新闻标题和博客,收听收看播客和网络视频,要么就是一个链接一个链接地瞎点瞎转悠。(超链接有时被比作脚注,但跟脚注不同,超链接不只是给你指出相关文献,而是把你驱赶到那些文献。)

     

    For me, as for others, the Net is becoming a universal medium, the conduit for most of the information that flows through my eyes and ears and into my mind. The advantages of having immediate access to such an incredibly rich store of information are many, and they’ve been widely described and duly applauded. “The perfect recall of silicon memory,” Wired’s Clive Thompson has written, “can be an enormous boon to thinking.” But that boon comes at a price. As the media theorist Marshall McLuhan pointed out in the 1960s, media are not just passive channels of information. They supply the stuff of thought, but they also shape the process of thought. And what the Net seems to be doing is chipping away my capacity for concentration and contemplation. My mind now expects to take in information the way the Net distributes it: in a swiftly moving stream of particles. Once I was a scuba diver in the sea of words. Now I zip along the surface like a guy on a Jet Ski.

    对我来说如此,对别人也是如此,网络正在变成一种万有媒介,一种信息管道,经由它,信息通过我的眼睛和耳朵进入我的思想。能够即时访问如此令人难以置信的海量信息存储有诸多的好处,人们已经对此进行了广泛的描述和足够的赞美。《连线》杂志的克里夫·汤普森曾经写道:“硅晶记忆的完美调用对于思维有着莫大的裨益。”但是这种好处是有代价的。正如媒体研究专家马歇尔·麦克卢汉在20世纪60年代所指出的那样,媒体可不仅仅是被动的信息渠道。它们提供思考的原料,但同时也在塑造着思考的过程!网络似乎正在一点点地销蚀我专注与沉思的能力。现如今,我的脑袋就盼着按照网络提供信息的方式来获取信息,即以飞速运动的粒子流的方式。过去我是个语言海洋中的深潜者,现在我好像踩着喷气滑水板,在海面上急速掠过。

     

    I’m not the only one. When I mention my troubles with reading to friends and acquaintances—literary types, most of them—many say they’re having similar experiences. The more they use the Web, the more they have to fight to stay focused on long pieces of writing. Some of the bloggers I follow have also begun mentioning the phenomenon. Scott Karp, who writes a blog about online media, recently confessed that he has stopped reading books altogether. “I was a lit major in college, and used to be [a] voracious book reader,” he wrote. “What happened?” He speculates on the answer: “What if I do all my reading on the web not so much because the way I read has changed, i.e. I’m just seeking convenience, but because the way I THINK has changed?”

    我不是唯一一个遇到此种问题的人。当我向朋友和熟人倾诉我阅读的苦恼(大多数都是文学类书籍),许多人告诉我他们也有相似的经历。上网上的越多,就越需要十分努力才能集中精力于那些长篇的作品。一些博客博主也开始提及这一现象。专门探讨在线媒体的博客博主斯科特·卡普最近承认,他已完全放弃了读书。卡普写道:“这是怎么了?我在大学是主修文学的,曾经是那么个饥渴的大书虫。”他说道:“如果我在网上阅读太多,并不是因为我的阅读方式已经改变,比如说我只是求个方便,而是我的‘思维’方式改变了,那该怎么办呢?”

     

    Bruce Friedman, who blogs regularly about the use of computers in medicine, also has described how the Internet has altered his mental habits. “I now have almost totally lost the ability to read and absorb a longish article on the web or in print,” he wrote earlier this year. A pathologist who has long been on the faculty of the University of Michigan Medical School, Friedman elaborated on his comment in a telephone conversation with me. His thinking, he said, has taken on a “staccato” quality, reflecting the way he quickly scans short passages of text from many sources online. “I can’t read War and Peace anymore,” he admitted. “I’ve lost the ability to do that. Even a blog post of more than three or four paragraphs is too much to absorb. I skim it.”

    长期在密歇根医学院任教的病理学家布鲁斯·弗里德曼(Bruce Friedman)定期在其博客上探讨医学领域中电脑的运用情况。在其博客上,他描述了互联网如何改变了他的思维习惯。他说:“现在我几乎完全丧失了阅读稍长一点的文章的能力,不管是网络版,还是纸质版。”他在电话里十分详尽地告诉我,他的思维呈现出一种“碎读”(staccato)特性,呈现出其上网快速浏览多方短文的方式。“我再也读不了《战争与和平》了。”弗里德曼说,“我已丧失了这种能力。即便是篇幅在三、四段以上的博文,对我来说都太长,难以接收,往往只是快速扫一眼就跑。”

     

    Anecdotes alone don’t prove much. And we still await the long-term neurological and psychological experiments that will provide a definitive picture of how Internet use affects cognition. But a recently published study of online research habits , conducted by scholars from University College London, suggests that we may well be in the midst of a sea change in the way we read and think. As part of the five-year research program, the scholars examined computer logs documenting the behavior of visitors to two popular research sites, one operated by the British Library and one by a U.K. educational consortium, that provide access to journal articles, e-books, and other sources of written information. They found that people using the sites exhibited “a form of skimming activity,” hopping from one source to another and rarely returning to any source they’d already visited. They typically read no more than one or two pages of an article or book before they would “bounce” out to another site. Sometimes they’d save a long article, but there’s no evidence that they ever went back and actually read it. The authors of the study report:

    单凭这些轶事说明不了什么。我们仍需等待长期的神经与心理科学的实验来给我们一个清晰的图景,究竟互联网的使用是如何影响我们的认知的。但是最近发表了一项研究,伦敦大学学院(UCL)的学者耗时五年时间,考察了人们的网络研究习惯。研究表明,我们阅读和思考的方式也许正处在巨变当中。作为这个五年研究项目的一部分,学者们以两个很受欢迎的学术研究网站为对象(一家为大英图书馆,一家为英国教育联盟经营,均提供电子期刊、电子书及其他文字信息的在线阅读),通过电脑中浏览纪录来分析访问者的行为,结果发现,读者的阅读呈现“一掠而过”的方式,从一篇文献跳到另一篇文献,且极少回看已经访问过的文献。他们打开一篇文章或一本书,通常读上一两页,便“蹦”到另一个网站去了。有时他们会把长文章保存下来,但没有证据显示他们日后确曾回头再读。研究报告称:

     

    It is clear that users are not reading online in the traditional sense; indeed there are signs that new forms of “reading” are emerging as users “power browse” horizontally through titles, contents pages and abstracts going for quick wins. It almost seems that they go online to avoid reading in the traditional sense.

    很明显,用户们不是在以传统方式进行在线阅读,相反,一种新‘阅读’方式的迹象已经出现:用户们在标题、内容页和摘要之间进行着一视同仁的‘海量浏览’,以求快速得到结果。这几乎可视为他们上网正是为了回避传统意义上的阅读。

     

    Thanks to the ubiquity of text on the Internet, not to mention the popularity of text-messaging on cell phones, we may well be reading more today than we did in the 1970s or 1980s, when television was our medium of choice. But it’s a different kind of reading, and behind it lies a different kind of thinking—perhaps even a new sense of the self. “We are not only what we read,” says Maryanne Wolf, a developmental psychologist at Tufts University and the author of Proust and the Squid: The Story and Science of the Reading Brain. “We are how we read.” Wolf worries that the style of reading promoted by the Net, a style that puts “efficiency” and “immediacy” above all else, may be weakening our capacity for the kind of deep reading that emerged when an earlier technology, the printing press, made long and complex works of prose commonplace. When we read online, she says, we tend to become “mere decoders of information.” Our ability to interpret text, to make the rich mental connections that form when we read deeply and without distraction, remains largely disengaged.

    互联网上文字无处不在,更别提手机短信风靡,因此我们比20世纪70年代或者80年代的阅读量要多得多,那时电视是我们的首选媒体。但这是一种不同的阅读方式,其背后是一种不同的思维方式,也许还有一种新的自我意识。塔夫茨大学的发展心理学家玛丽安妮·沃尔夫(Maryanne Wolf)说:“我们是什么样的人,不仅看我们读什么样的书,还要看我们怎么读书。”沃尔夫著有《普鲁斯特与鱿鱼:阅读思维的科学与故事》(Proust and the Squid: The Story and Science of the Reading Brain)。她担心,网络助长的这种将“效率”和“直接”置于一切之上的新阅读风格,或会削弱我们进行深入阅读的能力。几百年前的印刷术,催生了我们的这种能力,把阅读长且复杂的作品变成寻常之事。而上网阅读时,我们充其量只是一台“信息解码器”,而我们专注地进行深入阅读时所形成的那种理解文本的能力、那种丰富的精神联想,在很大程度上都丧失掉了。

     

    Reading, explains Wolf, is not an instinctive skill for human beings. It’s not etched into our genes the way speech is. We have to teach our minds how to translate the symbolic characters we see into the language we understand. And the media or other technologies we use in learning and practicing the craft of reading play an important part in shaping the neural circuits inside our brains. Experiments demonstrate that readers of ideograms, such as the Chinese, develop a mental circuitry for reading that is very different from the circuitry found in those of us whose written language employs an alphabet. The variations extend across many regions of the brain, including those that govern such essential cognitive functions as memory and the interpretation of visual and auditory stimuli. We can expect as well that the circuits woven by our use of the Net will be different from those woven by our reading of books and other printed works.

    沃尔夫认为,阅读并非人类本能的技巧,不像说话那样铭刻于我们的基因。我们得训练自己的大脑,让它学会如何将我们所看到的字符转换成我们所理解的语言。我们在学习和实践我们的阅读技能时所利用的媒介和技术对于塑造我们大脑中的神经电路发挥着重要的作用。实验表明,像中文这样的表意文字的读者会形成一种完全不同于我们这样的字母文字读者的神经电路。这种差别延伸到大脑的许多区域,包括那些管辖如记忆、视觉和听觉刺激的解读等十分重要的认知功能的区域。我们同样可以预知,由网络运用所编织的神经网络也会不同于阅读印刷品所编织的神经网络。

     

    Sometime in 1882, Friedrich Nietzsche bought a typewriter—a Malling-Hansen Writing Ball, to be precise. His vision was failing, and keeping his eyes focused on a page had become exhausting and painful, often bringing on crushing headaches. He had been forced to curtail his writing, and he feared that he would soon have to give it up. The typewriter rescued him, at least for a time. Once he had mastered touch-typing, he was able to write with his eyes closed, using only the tips of his fingers. Words could once again flow from his mind to the page.

    1882 年,尼采买了台打字机,确切地说,是一个曼宁—汉森写作球。那时尼采的视力下降很厉害,盯着纸看的时间长了,就感到十分疲劳和痛苦,经常头疼欲裂,被迫减少写作,他担心不久之后就得完全放弃。但打字机救了他,至少有一段时间如此——他学会了盲打,只靠指尖闭着眼睛也能写作了,文字再次从其脑海流淌于纸上。

     

    But the machine had a subtler effect on his work. One of Nietzsche’s friends, a composer, noticed a change in the style of his writing. His already terse prose had become even tighter, more telegraphic. “Perhaps you will through this instrument even take to a new idiom,” the friend wrote in a letter, noting that, in his own work, his “‘thoughts’ in music and language often depend on the quality of pen and paper.”

    然而,新机器也对其作品产生了微妙的影响。他的一个作曲家朋友为此写信给他,指出其写作风格的变化,说他原本已经够简洁的文风变得更为紧凑,更像电报。这位作曲家朋友注意到自己作曲时,音乐思维和语言常常取决于纸笔的特性,他在给尼采的信中写道:“也许新机器的运用还会让您写出新的习语。”

     

    “You are right,” Nietzsche replied, “our writing equipment takes part in the forming of our thoughts.” Under the sway of the machine, writes the German media scholar Friedrich A. Kittler , Nietzsche’s prose “changed from arguments to aphorisms, from thoughts to puns, from rhetoric to telegram style.”

    “您说得对,”尼采在回信中说,“我们的写作工具参与塑造了我们的思想。”德国媒体学者弗里德里希·基特勒认为,在打字机的影响下,尼采的文风“从论辩变成了格言,从思索变成了双关语,从华丽的言辞变成了电报式的风格”。

     

    The human brain is almost infinitely malleable. People used to think that our mental meshwork, the dense connections formed among the 100 billion or so neurons inside our skulls, was largely fixed by the time we reached adulthood. But brain researchers have discovered that that’s not the case. James Olds, a professor of neuroscience who directs the Krasnow Institute for Advanced Study at George Mason University, says that even the adult mind “is very plastic.” Nerve cells routinely break old connections and form new ones. “The brain,” according to Olds, “has the ability to reprogram itself on the fly, altering the way it functions.”

    人类大脑具有无限的可塑性。人们过去一直认为,我们的神经网状结构,我们头盖骨下那数以千亿记的神经元之间的那种紧密联系,在我们成年的时候就已经固定不变了。但是脑科学家发现情况并非如此。乔治·曼森大学克拉斯洛高等研究院的院长神经科学教授詹姆斯·奥兹指出,成人的大脑仍“极具可塑性”。神经细胞通常打破旧有连接建立新的连接。他说:“大脑可以不断改造自己,改变其运转方式。”

    As we use what the sociologist Daniel Bell has called our “intellectual technologies”—the tools that extend our mental rather than our physical capacities—we inevitably begin to take on the qualities of those technologies. The mechanical clock, which came into common use in the 14th century, provides a compelling example. In Technics and Civilization, the historian and cultural critic Lewis Mumford described how the clock “disassociated time from human events and helped create the belief in an independent world of mathematically measurable sequences.” The “abstract framework of divided time” became “the point of reference for both action and thought.”

    在我们运用社会学家丹尼尔·贝尔所称的“智力技术”的时候,即那些扩展我们的思维能力而不是体力的工具,我们不可避免地开始呈现那些技术的特性。十四世纪开始大量使用的机械钟表就是一个明证。在其所著《技术与文明》一书中,历史学家、文化批评家刘易斯·曼福德描绘了钟表是如何“把时间跟人类活动分离出来,帮助人们形成一种观念,即时间是一个由可以进行数学测量的序列构成的独立世界。”这种“抽象的可分割的时间框架”成为了人们“行动和思维的参照点”。

     

    The clock’s methodical ticking helped bring into being the scientific mind and the scientific man. But it also took something away. As the late MIT computer scientist Joseph Weizenbaum  observed in his 1976 book, Computer Power and Human Reason: From Judgment to Calculation, the conception of the world that emerged from the widespread use of timekeeping instruments “remains an impoverished version of the older one, for it rests on a rejection of those direct experiences that formed the basis for, and indeed constituted, the old reality.” In deciding when to eat, to work, to sleep, to rise, we stopped listening to our senses and started obeying the clock.

    钟表规则有序的滴答运行帮助产生了有条理的思维和有条理的人。但是它也带走了某些东西。正如麻省理工学院已故计算机科学家约瑟夫·魏辰堡在其1976年的著作《计算机能力与人类判断力:从判断走向计算》中指出的那样,计时器的大规模使用所产生的人们对于世界的感知“是旧有感知的一个更为贫乏的版本,因为它基于对直接经历的抛弃,而这些直接经历是形成旧有现实世界的基础,或者说就构成了原来的现实世界。”在决定何时吃饭,何时工作,何时睡觉,何时起床时,我们不再听从我们的感觉,而是开始服从于时钟。

     

    The process of adapting to new intellectual technologies is reflected in the changing metaphors we use to explain ourselves to ourselves. When the mechanical clock arrived, people began thinking of their brains as operating “like clockwork.” Today, in the age of software, we have come to think of them as operating “like computers.” But the changes, neuroscience tells us, go much deeper than metaphor. Thanks to our brain’s plasticity, the adaptation occurs also at a biological level.

    我们适应这些智力技术的过程也在我们用来进行自我阐释的那些不断变化的隐喻中得到了体现。机械钟表发明后,人们开始认为他们的大脑是在“像钟表一样”运行,在今天这个软件时代,我们开始认为我们的大脑是在“像电脑一样”运转。但是,神经科学告诉我们,这些变化,远比这些隐喻所表现的要深刻得多。托我们大脑可塑性的福,在生物学层面上,这种适应也在发生。

     

    The Internet promises to have particularly far-reaching effects on cognition. In a paper published in 1936, the British mathematician Alan Turing proved that a digital computer, which at the time existed only as a theoretical machine, could be programmed to perform the function of any other information-processing device. And that’s what we’re seeing today. The Internet, an immeasurably powerful computing system, is subsuming most of our other intellectual technologies. It’s becoming our map and our clock, our printing press and our typewriter, our calculator and our telephone, and our radio and TV.

    互联网必将对于人类认知产生一些独特的深远影响。在其1936年发表的一篇论文中,英国数学家阿兰·图灵证明,电子计算机——尽管当时还只是停留在理论上,将能够被编程来发挥任何信息处理装置能够起到的作用。这就是今天我们所看到的情况。互联网这个难以估量的强大计算系统,正在涵盖我们绝大多数的智力技术。它正成为我们的钟表和地图,我们的印刷厂和打字机,我们的计算器和电话,还有我们的收音机和电视机。

     

    When the Net absorbs a medium, that medium is re-created in the Net’s image. It injects the medium’s content with hyperlinks, blinking ads, and other digital gewgaws, and it surrounds the content with the content of all the other media it has absorbed. A new e-mail message, for instance, may announce its arrival as we’re glancing over the latest headlines at a newspaper’s site. The result is to scatter our attention and diffuse our concentration.

    每当网络吸纳一种媒体,这种媒体就被按照网络的形象重塑。网络在这种媒体的内容中注入大量的超链接、令人生厌的广告以及其他数字化噱头,用它所吸纳的所有其他媒体的内容来包围这个媒体的内容。比如,在我们浏览一家报社网站的最新头条的时候,会有声音响起,提示你收到了新的电子邮件。其结果是我们的注意力被分散。

     

    The Net’s influence doesn’t end at the edges of a computer screen, either. As people’s minds become attuned to the crazy quilt of Internet media, traditional media have to adapt to the audience’s new expectations. Television programs add text crawls and pop-up ads, and magazines and newspapers shorten their articles, introduce capsule summaries, and crowd their pages with easy-to-browse info-snippets. When, in March of this year, The New York Times decided to devote the second and third pages of every edition to article abstracts , its design director, Tom Bodkin, explained that the “shortcuts” would give harried readers a quick “taste” of the day’s news, sparing them the “less efficient” method of actually turning the pages and reading the articles. Old media have little choice but to play by the new-media rules.

    网络的影响远远超出了电脑屏幕的界限。当人们的思维方式适应了互联网媒体百纳被式的呈现方式后,传统媒体也会做出改变,以迎合读者或观众的新期望。电视节目加入了滚动字幕和不断跳出的小广告,报刊则缩短其文章的长度,引入一小块一小块的摘要,在版面上堆砌各种易于浏览的零碎信息。今年3月,《纽约时报》便决定将其第2和第3版改为内容精粹。其版面主管汤姆·博金解释说这些“捷径”可以使忙碌的读者可以快速“品尝”当天的新闻,免去他们“不那么高效”地翻阅版面阅读文章的麻烦。旧媒体别无选择,只有按照新媒体的规则来办。

     

    Never has a communications system played so many roles in our lives—or exerted such broad influence over our thoughts—as the Internet does today. Yet, for all that’s been written about the Net, there’s been little consideration of how, exactly, it’s reprogramming us. The Net’s intellectual ethic remains obscure.

    没有哪种沟通系统能像今天的互联网这样,在我们的生活中发挥如此众多的作用,或者说对我们的思维模式产生了如此广泛的影响。然而,在所有这些关于网络的著述中,很少有人思考互联网究竟是如何在对我们进行重新编程。网络的知识伦理仍然模糊不清。

     

    About the same time that Nietzsche started using his typewriter, an earnest young man named Frederick Winslow Taylor carried a stopwatch into the Midvale Steel plant in Philadelphia and began a historic series of experiments aimed at improving the efficiency of the plant’s machinists. With the approval of Midvale’s owners, he recruited a group of factory hands, set them to work on various metalworking machines, and recorded and timed their every movement as well as the operations of the machines. By breaking down every job into a sequence of small, discrete steps and then testing different ways of performing each one, Taylor created a set of precise instructions—an “algorithm,” we might say today—for how each worker should work. Midvale’s employees grumbled about the strict new regime, claiming that it turned them into little more than automatons, but the factory’s productivity soared.

    就在尼采开始使用打字机的几乎同时,一个叫做弗雷德里克·温斯洛·泰勒的认真的年轻人带着一块秒表来到了费城的米德维尔钢铁厂,开始了一系列具有历史意义的实验,旨在提高钢厂机械工人的工作效率。在征得米德维尔钢厂老板的同意后,他招募了工厂的一批工人,让他们在各种工作台上工作,记录下他们的每一个动作以及耗费的时间,还有机器的运行情况。他随后把每一个工作分解成为一系列的微小步骤,并且测试完成各个步骤的不同方式。由此,泰勒给每个工人制定了精确的工作指南,今天我们可以称之为“算法”。米德维尔的雇员对这种严苛的新体制颇多抱怨,认为这把他们变得跟机器人并无二致,但是工厂的生产力大幅攀升。

     

    More than a hundred years after the invention of the steam engine, the Industrial Revolution had at last found its philosophy and its philosopher. Taylor’s tight industrial choreography—his “system,” as he liked to call it—was embraced by manufacturers throughout the country and, in time, around the world. Seeking maximum speed, maximum efficiency, and maximum output, factory owners used time-and-motion studies to organize their work and configure the jobs of their workers. The goal, as Taylor defined it in his celebrated 1911 treatise, The Principles of Scientific Management, was to identify and adopt, for every job, the “one best method” of work and thereby to effect “the gradual substitution of science for rule of thumb throughout the mechanic arts.” Once his system was applied to all acts of manual labor, Taylor assured his followers, it would bring about a restructuring not only of industry but of society, creating a utopia of perfect efficiency. “In the past the man has been first,” he declared; “in the future the system must be first.”

    这样,在蒸汽机发明一百多年后,工业革命终于迎来了它的哲学理念和哲学家。泰勒的严格工业步骤,或者“机制”——他自己喜欢这么叫——在全国范围内为工厂主们所欣然采纳,并及时推广至全世界。为了追求最快速度、最高效率、最大产量,工厂主们采用时间—动作研究来组织生产、配置工人。正如泰勒在其1911年那篇广为称道的论文《科学管理之原理》中所指出的那样,这样做的目的是要为每一件工作找出并采用“最好的方法”,从而“以科学来逐渐取代机械行业中的那些基于经验的实用方法”。泰勒向其追随者保证,一旦其机制运用于所有手工劳作,将不仅导致产业的重构,还会导致社会的重构,创造出一个完美效率的理想之国。他宣称:“过去人是第一位的,今后机制将是第一位的。”

     

    Taylor’s system is still very much with us; it remains the ethic of industrial manufacturing. And now, thanks to the growing power that computer engineers and software coders wield over our intellectual lives, Taylor’s ethic is beginning to govern the realm of the mind as well. The Internet is a machine designed for the efficient and automated collection, transmission, and manipulation of information, and its legions of programmers are intent on finding the “one best method”—the perfect algorithm—to carry out every mental movement of what we’ve come to describe as “knowledge work.”

    今天,泰勒的机制仍然在大量使用,它仍是工业生产的伦理。现在,托计算机硬件和软件工程师们对于我们智力生活所拥有的巨大本领的福,泰勒的伦理开始主宰我们的大脑领域。互联网就是设计用来进行信息的高效自动收集、传播和操控的机器。其庞大的程序员队伍致力于找到“一个最好的方法”——最好的算法——来实施我们称之为“知识工作”的每一个脑力活动。

     

    Google’s headquarters, in Mountain View, California—the Googleplex—is the Internet’s high church, and the religion practiced inside its walls is Taylorism. Google, says its chief executive, Eric Schmidt, is “a company that’s founded around the science of measurement,” and it is striving to “systematize everything” it does. Drawing on the terabytes of behavioral data it collects through its search engine and other sites, it carries out thousands of experiments a day, according to the Harvard Business Review, and it uses the results to refine the algorithms that increasingly control how people find information and extract meaning from it. What Taylor did for the work of the hand, Google is doing for the work of the mind.

    位于加利福尼亚山景地区的谷歌总部,就是互联网的最高教堂,在其围墙之内所奉行的宗教就是泰勒主义。谷歌首席执行官埃里克·施密特说,该公司是“一家围绕测量科学建立起来的公司”,致力于“将一切系统化”。据《哈佛商业评论》报道,谷歌利用从其搜索引擎和其他网站收集来的数以兆兆(TB)字节的海量行为数据,每天进行数以千计的实验,并将结果用来深化和完善其算法,这些算法越来越控制着人们如何找到信息并从中抽取感兴趣的内容。泰勒所运用于体力劳动的那一套,谷歌正在运用于脑力劳动。

     

    The company has declared that its mission is “to organize the world’s information and make it universally accessible and useful.” It seeks to develop “the perfect search engine,” which it defines as something that “understands exactly what you mean and gives you back exactly what you want.” In Google’s view, information is a kind of commodity, a utilitarian resource that can be mined and processed with industrial efficiency. The more pieces of information we can “access” and the faster we can extract their gist, the more productive we become as thinkers.

    谷歌还宣布,其使命是“将全世界的信息组织起来,使之随处可得,随处可用。”它试图开发“完美的搜索引擎,”即谷歌所说的能够“准确领会你的意图,并精确地回馈给你所要的东西”的搜索引擎。按照谷歌的观点,信息是一种商品,一种可以以工业效率来进行挖掘和处理的实用资源。我们能接触到的信息越多,提取其精髓越快,我们就会成为一个越高产的思想家。问题是,它会使我们越变越蠢吗?

     

    Where does it end? Sergey Brin and Larry Page, the gifted young men who founded Google while pursuing doctoral degrees in computer science at Stanford, speak frequently of their desire to turn their search engine into an artificial intelligence, a HAL-like machine that might be connected directly to our brains. “The ultimate search engine is something as smart as people—or smarter,” Page said in a speech a few years back. “For us, working on search is a way to work on artificial intelligence.” In a 2004 interview with Newsweek, Brin said, “Certainly if you had all the world’s information directly attached to your brain, or an artificial brain that was smarter than your brain, you’d be better off.” Last year, Page told a convention of scientists that Google is “really trying to build artificial intelligence and to do it on a large scale.”

    它最终会走向何处呢?舍奇·布林和拉里·佩奇这两个才华横溢的年轻人,当初是在斯坦福大学计算机科学攻读博士学位的时候创立了谷歌。他们多次谈到想把他们的搜索引擎变成一个人工智能,一个像HAL那样的机器,可以直接连接到大脑。在几年前的一次演讲中,佩奇说道:“最终的搜索引擎是像人一样聪明的东西,或者比人更聪明。对于我们来说,进行搜索的研究就是进行人工智能的研究的一种方式。” 2004年在接受《新闻周刊》采访时,布林说:“如果全世界的信息都连在你大脑,或者一个比你大脑更聪明的人工脑上面,那你的境况就会非常好。”去年,在一次科学家大会上,佩奇说谷歌是“真的试图构建人工智能,并且大规模地构建”。

     

    Such an ambition is a natural one, even an admirable one, for a pair of math whizzes with vast quantities of cash at their disposal and a small army of computer scientists in their employ. A fundamentally scientific enterprise, Google is motivated by a desire to use technology, in Eric Schmidt’s words, “to solve problems that have never been solved before,” and artificial intelligence is the hardest problem out there. Why wouldn’t Brin and Page want to be the ones to crack it?

    对于拥有巨额现金可以支配,雇用着一批计算机科学家的这两个数学奇才来说,有这样的雄心壮志是很自然的,甚至是令人敬佩的。作为一家本质上的科技公司,按埃里克·施密特的话来说,谷歌有着利用技术的动因,“来解决以前从未得到解决的问题”,而人工智能则是尚未解决的最为困难的问题。布林和佩奇怎么会不想当解决这个难题的人呢?

     

    Still, their easy assumption that we’d all “be better off” if our brains were supplemented, or even replaced, by an artificial intelligence is unsettling. It suggests a belief that intelligence is the output of a mechanical process, a series of discrete steps that can be isolated, measured, and optimized. In Google’s world, the world we enter when we go online, there’s little place for the fuzziness of contemplation. Ambiguity is not an opening for insight but a bug to be fixed. The human brain is just an outdated computer that needs a faster processor and a bigger hard drive.

    然而,他们这个如果我们的大脑得到人工智能的补充甚至取代我们就会境况很好的假设却令人不安。它表达出一种观念,即智能是机械过程的产物,是一系列可以孤立、测量和优化的离散步骤。在谷歌的世界里,我们上网时所进入的这个世界,没有任何空间让人们进行模糊的沉思。歧义不是一个通向独到见解的出口,而是一个必须修正的程序错误。人脑只不过是一台落伍的电脑,需要更快的处理器和更大的硬盘。

     

    The idea that our minds should operate as high-speed data-processing machines is not only built into the workings of the Internet, it is the network’s reigning business model as well. The faster we surf across the Web—the more links we click and pages we view—the more opportunities Google and other companies gain to collect information about us and to feed us advertisements. Most of the proprietors of the commercial Internet have a financial stake in collecting the crumbs of data we leave behind as we flit from link to link—the more crumbs, the better. The last thing these companies want is to encourage leisurely reading or slow, concentrated thought. It’s in their economic interest to drive us to distraction.

    这种我们的大脑应当像高速数据处理器那样运行的想法不仅被根植于互联网的运行当中,它也是网络商业活动的主导模式。我们在网上冲浪的速度越快,点击的链接越多,浏览的页面越多,谷歌和其它公司就获得越多的机会来收集我们的信息,提供给我们越多的广告。商业网络的大多数所有者都有着经济利益在里面,来收集我们从一个链接快速跳到另一个链接时留下的点滴信息——我们留下的信息越多对他们越好。这些公司最不愿意做的事情就是鼓励你悠闲缓慢的浏览或者全神贯注的思考。让我们注意力分散符合他们的经济利益。

     

    Maybe I’m just a worrywart. Just as there’s a tendency to glorify technological progress, there’s a countertendency to expect the worst of every new tool or machine. In Plato’s Phaedrus, Socrates bemoaned the development of writing. He feared that, as people came to rely on the written word as a substitute for the knowledge they used to carry inside their heads, they would, in the words of one of the dialogue’s characters, “cease to exercise their memory and become forgetful.” And because they would be able to “receive a quantity of information without proper instruction,” they would “be thought very knowledgeable when they are for the most part quite ignorant.” They would be “filled with the conceit of wisdom instead of real wisdom.” Socrates wasn’t wrong—the new technology did often have the effects he feared—but he was shortsighted. He couldn’t foresee the many ways that writing and reading would serve to spread information, spur fresh ideas, and expand human knowledge (if not wisdom).

    也许我只是杞人忧天。正如人们有着美化技术进步的倾向,人们也有担心每一种新工具或新机器的坏处的另一种相反倾向。在柏拉图的《对话 费德罗篇》中,苏格拉底表达出其对于文字发展的不满,担心当人们开始依赖文字来替代原来储存于脑海中的知识的时候,用对话中另外一个人物的话来说,人们就会“不再运用他们的记忆力,从而变得健忘”。而且由于他们能够“无需指引就可以获得大量信息”,他们就会“在通常实际上十分无知的情况下被认为很有知识”,他们的脑子里就会“塞满虚假的智慧而不是真的智慧”。苏格拉底说的没错——新的技术通常带来它所担忧的后果——但是他过于短视,他没有预见到在很多方面,写作和阅读会传播信息、激发新思想、拓展人类的知识(甚至智慧)。

    The arrival of Gutenberg’s printing press, in the 15th century, set off another round of teeth gnashing. The Italian humanist Hieronimo Squarciafico worried that the easy availability of books would lead to intellectual laziness, making men “less studious” and weakening their minds. Others argued that cheaply printed books and broadsheets would undermine religious authority, demean the work of scholars and scribes, and spread sedition and debauchery. As New York University professor Clay Shirky notes, “Most of the arguments made against the printing press were correct, even prescient.” But, again, the doomsayers were unable to imagine the myriad blessings that the printed word would deliver.

    15世纪古腾堡的印刷厂也曾让人恨得咬牙切齿。意大利人文主义者Hieronimo Squarciafico担心书籍随便可以得到会导致智力懒惰,使人们“不那么用功”,从而削弱人们的脑力。另有一些人则认为,这些花费颇少印刷出来的书籍和大开本报纸会削弱宗教的权威,贬低学者和书吏的工作,散布煽动性和不道德的言论。正如纽约大学教授克雷·谢奇所说:“反对印刷厂的大部分观点都是正确的,甚至是很有先见之明。” 但是,再一次,这些灾难预言者没能想到印刷能够给人们带来的无数福祉。

     

    So, yes, you should be skeptical of my skepticism. Perhaps those who dismiss critics of the Internet as Luddites or nostalgists will be proved correct, and from our hyperactive, data-stoked minds will spring a golden age of intellectual discovery and universal wisdom. Then again, the Net isn’t the alphabet, and although it may replace the printing press, it produces something altogether different. The kind of deep reading that a sequence of printed pages promotes is valuable not just for the knowledge we acquire from the author’s words but for the intellectual vibrations those words set off within our own minds. In the quiet spaces opened up by the sustained, undistracted reading of a book, or by any other act of contemplation, for that matter, we make our own associations, draw our own inferences and analogies, foster our own ideas. Deep reading, as Maryanne Wolf argues, is indistinguishable from deep thinking.

    因此,对,你应该对我的怀疑论调持怀疑态度。也许那些认为互联网的批评者不过是阻碍技术进步的勒德分子或者怀旧主义者的人会被证明是正确的,从我们超级活跃、填饱数据的大脑将会涌现一个知识发现与普遍智慧的黄金时期。然而还有一点,网络不是字母,尽管它也许会取代印刷术,网络产生全然不同的东西。那种一页一页的印刷纸张所带来的深入阅读是很有价值的,不仅仅是因为我们从作者的话语中获取到了知识,而是因为这些话语在我们大脑中所激起的知识共鸣。在持续且不受干扰的阅读一本书籍、或者任何沉思活动所给我们打开的那一片宁静空间中,对于作者所陈之事,我们进行自己的联想,做出自己的类比和推断,形成我们自己的思想。正如玛丽安妮·沃尔夫所说,深入阅读跟深入思考密不可分。

     

    If we lose those quiet spaces, or fill them up with “content,” we will sacrifice something important not only in our selves but in our culture. In a recent essay, the playwright Richard Foreman eloquently described what’s at stake:

    如果我们失去那些宁静的空间,或者用“内容“将它们填满,我们将牺牲掉不仅我们自身还有我们文化中一些非常重要的东西。在最近的一篇文章里,剧作家理查德·福尔曼非常雄辩地刻画了面临的风险:

     

    I come from a tradition of Western culture, in which the ideal (my ideal) was the complex, dense and “cathedral-like” structure of the highly educated and articulate personality—a man or woman who carried inside themselves a personally constructed and unique version of the entire heritage of the West. [But now] I see within us all (myself included) the replacement of complex inner density with a new kind of self—evolving under the pressure of information overload and the technology of the “instantly available.”

    我所受的熏陶是西方文化传统,在这种传统中理想(我的理想)是教育程度非常高的、能说会道的人所构成的十分复杂、浓厚、像教堂一样的结构——男人或者女人,其内心都有一个他/她所构建的整个西方传统的独特版本。[但是现在]我在我们中间(包括我自己)看到我们内心那种复杂的浓厚系统已经被一种新的自我所取代,这种自我在信息过载和立等可得的技术压力下不断演化。

     

    As we are drained of our “inner repertory of dense cultural inheritance,” Foreman concluded, we risk turning into “‘pancake people’—spread wide and thin as we connect with that vast network of information accessed by the mere touch of a button.”

    当我们“内在的浓厚文化传承库藏”被排干后,福尔曼总结道,我们就在冒成为“‘薄饼人’的风险——在我们仅需轻点鼠标按键就跟庞大的信息网络相连的时候铺得太广太薄”。

     

    I’m haunted by that scene in 2001. What makes it so poignant, and so weird, is the computer’s emotional response to the disassembly of its mind: its despair as one circuit after another goes dark, its childlike pleading with the astronaut—“I can feel it. I can feel it. I’m afraid”—and its final reversion to what can only be called a state of innocence. HAL’s outpouring of feeling contrasts with the emotionlessness that characterizes the human figures in the film, who go about their business with an almost robotic efficiency. Their thoughts and actions feel scripted, as if they’re following the steps of an algorithm. In the world of 2001, people have become so machinelike that the most human character turns out to be a machine. That’s the essence of Kubrick’s dark prophecy: as we come to rely on computers to mediate our understanding of the world, it is our own intelligence that flattens into artificial intelligence.

    《2001:太空奥德赛》里的那个场景让我备受煎熬。这场景之所以如此深刻、如此怪异,是那台计算机对其大脑被拆解所做出的情感反应:当一个接一个电路断电时它所表现出来的深深绝望,它在宇航员戴夫面前那孩童般的恳求-——“我能感觉得到!我能感觉得到!我害怕!”——还有它最终回复到只能称为纯真的状态。HAL的情感发泄跟电影里人的那种冷漠无情形成鲜明对照,那些人以机器人般的效率干着手头的活计。他们的思想和行为让人感觉到是在遵循预先设定的指令,好像在按照一个算法的步骤在行事。在2001年的世界,人们已经变得如此像机器,以至于大多数人物结果都成了机器。斯坦利·库布里克黑色预言的实质在于:当我们依赖电脑作为理解世界的媒介时,实际上是我们自己的智能蜕变成了人工智能。

     

    原文链接:http://www.theatlantic.com/doc/200807/google

     

     

    展开全文
  • 电脑卡怎么办,简单步骤电脑变快

    万次阅读 多人点赞 2018-07-23 18:27:10
    电脑用的时间越长就越卡,这是很正常的现象,基本上是每个人都会遇到的,如何用简单的方法自己的电脑变快呢?   第一,在不换硬件的条件下 1 卸载同类型的软件 俗话说一山不容二虎,如果你的电脑上有2款或者...

     

    随着时代的发展,电脑成了生活中必不可少的部分。但是,当你的电脑变慢了,怎么办呢?直接重新安装系统吗?那可能不是明智的选择!电脑用的时间越长就越卡,这是很正常的现象,基本上是每个人都会遇到的,如何用简单的方法让自己的电脑变快呢?

     

    第一,在不换硬件的条件下

    1 卸载同类型的软件

    俗话说一山不容二虎,如果你的电脑上有2款或者是2款以上的同类软件,它们会在后台争着去运行它们的一些插件,当同时运行的时候就会形成一种争斗,从而消耗电脑大量的内存和CPU造成电脑卡顿!像这种最好卸载一款不常用的!

     

    2 清理回收站

    回收站就是我们电脑的垃圾桶,当垃圾桶满了之后,你不去倒就会满出来,电脑也是一样的道理,电脑的回收站满了之后电脑就会变慢,所以清理回收站也是很重要的!右键单击就可以清理了。

     

    电脑卡的原因主要是电脑长期被使用造成缓存和垃圾文件过多导致,所以平时要注意电脑的日常维护,比如经常清理电脑垃圾。

     

    3 对系统盘C盘进行磁盘清理

    对电脑C盘进行磁盘清理,清理之后你会发现电脑又回到刚装完系统的时候啦!(以win7为例,其他系统都是大同小异,只是界面有点不同而已)

     

    步骤如下,首先打开【我的电脑】,在xp以上系统为【计算机】,【右键】系统C盘,点击【属性】。

     

    直接可以看到【磁盘清理】,直接点击,然后系统自动进行磁盘清理,之后会弹出来清理后是否删除文件的对话框,全部打钩,然后确定,弹出对话框是否删除,点击确定,系统自动进入删除文件。然后点击确定关机重启就行啦!你的电脑已经开始飞啦!

     

    4 借助软件清理电脑垃圾

    还有就是,用一些软件来清理电脑的垃圾,像xx管家、xx精灵都是可以的,具体用什么都可以,但是要说明一点的是,在清理文件前,可以先核对一下是哪些文件?比如有没有下载的有用的文件,被误删的。同时软件一般会认为30天,或者多久前的文件是没有,会当成垃圾删除,这时候,就要小心了,自己确认一下,比较保险。

     

    5 看一下系统C盘的剩余空间是多少,一般剩下25%-50%存储空间是较好的,如果少了的话,可以用硬盘分区的工具进行扩展下,不用重装系统!

     

    第二,在换硬件的条件下

    如果你的电脑实在是太卡了,卡的不要不要的啦,如果机器不算太旧的话,可以加个内存条,或者换个固态硬盘(120G足够用了,如果认为不够用的话,可以加一个机械硬盘,价格都不贵的),效果都会有明显的提升。

     

    另外,还有一个原因就是电脑cpu与风扇的导热硅胶没有涂好,导致cpu散入不好,长期出于高速运转的状态,温度一高,速度就不行了,只有在适当的温度才会有好的工作状态,所以散热很重要。

     

    让电脑变快的其他方法:

    1设置虚拟内存(鼠标右键我的电脑-属性-高级-设置-高级-更改-把C盘设置为系统管理大小选择其他盘,设置自定义大小)

    2 清理下机箱内部的尘土

    3 把内存拔出来擦下金属部分

    4 要散热好才可以

    5 配置低也会导致,硬件老化

    6 不要安装过多程序,更不要安在C盘,因为是系统盘

    7 别开过多程序,删除一些没用的程序

     

    经过以上操作,看看你的电脑快了木有?

     

     

    展开全文
  • 我的大学从遇见CSDN和你们开始变得精彩无比!

    万次阅读 多人点赞 2020-03-26 15:56:30
    我的大学开始最初,迷茫、无奈、自责,慢慢的我开始转变,变成自己想要的样子,...从16万+到2万+,我用了四个月的时间,希望自己一直可以坚持下去,也祝福没每一位CSDN的伙伴们可以追求想要的生活,成为想成为的自己。
  • 本插件根据《党政机关公文格式》(GB/T 9704—2012)的格式要求编写,同时也可满足用户特殊需求,旨在公文版更快一点,可广泛用于各类规范文本的排版。本插件可一键设置公文页面版式,一键设置常用文字格式,插入...
  • 如上图,问题是,输出端的波形下降沿和上升沿不可能是垂直的,有个斜率,如何减小这个斜率(就是边沿陡一点),我说把基极对地的电阻加大一点,他说不对,还说我加个东西就行了,想不出来,我想了一下不可能是...
  • 快时间不知道,但比较“标准”的时间是“3个月”。西方学术界有个玩笑,说博士生往往某个问题着手研究3个月之后,就能超过其导师,这玩笑里面还是有点实践+生理+心理道理的 发布于 2010-12-25  ...
  • 问题最近线上有一个服务,运行个几天,就会变得很慢。这里很慢指的是经常对于请求的响应时间很大,又是甚至有二三十秒,导致别人调接口,经常出现超时问题。这里简单介绍些这个问题的定位方法过程以及最后怎么解决的...
  • 你是怎么自律的?

    万次阅读 多人点赞 2019-11-29 07:30:59
    很多小伙伴咨询我, ...别人的时间表,真的就适合你?你真的需要这样吗? 先写结论吧:自律是假相,你要能找到自己的驱动器,而不是自律本身,有些自律,其实是没有任何意义的。记得点赞呀。 目录...
  • 众所周知安卓模拟器的运行速度简直慢得让人想死,更不要说对于我这种用了四年的老
  • Tomcat运行一段时间后访问慢,但是cpu,内存都正常。日志也是发现不了啥.... 问题的原先分析 1.环境配置(cpu,内存,使用工具:nmon工具、visualvm工具、jprofiler工具全部用上监控中) 2.修改info日志,启用...
  • 有哪些程序员受益终生的建议

    万次阅读 多人点赞 2019-10-28 07:11:59
    我大学在广西二本,当时学习很努力,以为学习好就能找得到好工作,我连续三年国家励志奖学金,连续四年学校一等奖学金。 可毕业了,没有实习经历,没有项目经验,没有名校光环,根本找不到工作,去的都是屁大...
  • 快速浮点开方运算

    万次阅读 多人点赞 2017-12-19 10:35:16
    今天,给大家展示一个实例—快速浮点开方运算,大家更加明白地址转换的含义和它们之间的对应关系。1 二分法浮点开方也就是给定一个浮点数x,求x√\sqrt x。这个简单的问题有很多解,我们从最简单最容易想到的二分...
  • 不用化妆就漂亮

    千次阅读 2012-05-28 11:17:50
    不用化妆就漂亮 1 金霉素软膏,是一种眼药,涂在脂肪粒上可以消脂肪粒 2. 白糖,少量白糖加在洗面奶里洗脸,对去黑色痘印非常有效,有磨砂膏的效果 3. 橙子,晚上洗脸后用橙子皮或橙子果泥涂脸上...
  • ConstraintLayout 完全解析 来优化你的布局吧

    万次阅读 多人点赞 2017-09-17 17:06:43
    本文已在我的公众号hongyangAndroid原创首发。 转载请标明出处: ... 本文出自张鸿洋的博客 本文已在我的公众号hongyangAndroid原创首发,...一、概述ConstraintLayout出现有一段时间了,不过一直没有特别去关注,
  • 程序员业余时间修炼指南

    万次阅读 多人点赞 2017-10-17 17:38:38
    GitChat 作者:芋头 本文主要与大家分享我业余时间如何学习多门技术以及开发业余项目的一些心得,分为 初衷、硬技能、软技能、第一生产力、环境、时间几个部分,阅读大概需要 10 分钟。
  • 终于,字节跳动要取消大小周了,我 1.7 万人的票圈都炸了!(原来在字节的票友还真不少) 从一些票友的表述上来看,取消大小周,意味着一年接近 10 万元的收入木了,不得不说,字节的加班费是真的多! 但与此同时...
  • 同时还有一个很好的辅佐作用,对无人驾驶来说,电动车的电控系统比过去有一个很大的提升,也就是说通过计算机电信号来操作转向、刹车和加速等等都变得容易很多,本来油门都是机械式的,油门大小,改成一个电动的...
  • 敏捷开发-快速迭代

    万次阅读 多人点赞 2013-05-04 16:31:27
    我们大都采用的是“瀑布开发模式”,有了问题,就返工,虽然最终的产品会比较齐全完善,但是开发周期太长,开发人员会产生排斥,甚至厌恶的心理。经过YH系统的开发,也且生体会到了这一弊端。 有问题就要去...
  • 从前的日色变得慢 车,马,邮件都慢, 一生只够爱一个人。 现在呢? 时代变了,节奏加快了,人和人之间的差距被拉大了,摸鱼还是努力,在短时间内根本改变不了你的命运。与其把头发熬掉光,与其腰椎盘突出,不如摸...
  • 开始学习使用MoviePy最好的方式是使用IPython Notebook:它可以预览clip变得简单,有自动补全的功能,而且可以显示函数库中不同方法的文档。 我们是不是应该使用moviepy.editor? 这个文档中的大部分例子都会...
  • 时间序列预测,非季节性ARIMA及季节性SARIMA

    万次阅读 多人点赞 2019-03-24 21:55:00
    Python 3中使用ARIMA进行时间序列预测的指南 在本教程中,我们将提供可靠的时间序列预测。我们将首先介绍和讨论自相关,平稳性和季节性的概念,并继续应用最常用的时间序列预测方法之一,称为ARIMA。 介绍 时间...
  • 并查集的时间复杂度 并查集的概念 在计算机科学中,并查集 是一种树形的数据结构,用于处理不交集的合并(union)及查询(find)问题。 并查集 可用于查询 网络 中两个节点的状态, 这里的网络是一个抽象的概...
  • 废掉一个人最隐蔽的方式,是他忙到没时间成长

    千次阅读 多人点赞 2019-08-08 08:48:00
    作者 l 粥左罗来源 l 粥左罗(ID:fangdushe520)转载请联系授权(微信ID:MFshow)大家可能都看过一个观点「废掉一个人最的方式,就是他闲着」。...
  • 快速理解比特币/区块链的原理

    万次阅读 多人点赞 2018-03-31 11:03:38
      区块链技术之所以可以完美Cover比特币面临的各种问题,其解决方案并不是纯技术的,而是采用了一种社会学博弈的激励措施,这些措施形成了一种典型的负反馈效应,最终作恶变得成本高昂。   先看看什么是...
  • 时间序列建模教程

    万次阅读 多人点赞 2018-05-04 10:11:52
    但是随着技术的发展,出现了很多有效的方法,能够我们预测未来。不要担心,本文并不会讨论时间机器,讨论的都是很实用的东西。 本文将要讨论关于预测的方法。有一种预测是跟时间相关的,而这种处理与时间相关数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 302,902
精华内容 121,160
关键字:

如何让时间变得快一点