英文原文:   在过去的两到三年的时间内,我一直在一个中等规模的项目中使用 MongoDB。  但因为各种技术上的原因,到了和 MongoDB 说再见的时候了,我的原因有以下几点:  社会化组件:10gen 和 MongoDB 试图让构建一个大型的可伸缩系统变得很简单,但实际上并不如此。在过去,构建大型的可伸缩性系统是非常复杂的,需要专业的知识和经验。尽管很多人觉得构建这样一个系统很酷。有一点很清楚的是,如果你正在构建一个小型或者中型的系统,那么使用 MongoDB 将会是徒劳的,因为性能不佳的问题以及收效甚微。很多人不愿意深入去了解和挖掘 SQL 数据库本身的功能和性能,轻易的作出了使用一些非 SQL 数据库系统的决定,这样的做法是不明智的,而且充满危险。我这样说可能太苛刻,不符合多样性,但却非常现实。  MongoDB 目前更多的是市场营销和炒作,10gen 主要的目标是为了告诉全世界说 MongoDB 是如何的酷,原因很清楚:10gen 正试图发挥在数据库这一市场上与其他产品进行竞争,以便能更好的说服投资人支付更多的钱来帮助其发展,这当然是 10gen 合法的目标,但其技术的基础却是摇摇欲坠的。

  信号就是通知某个进程发了某个事件,也称为软件中断。信号提供了一种处理异步事件的方法。信号通常是异步发生的,进程预先不知道信号准确发生的时刻。后端程序(daemon)往往需要提供7*24不间断的服务,因此,编程 daemon 程序时对信号的正确处理尤为重要。  下面和大家分享编写 daemon 程序时信号处理的注意事项,内容都来自 Internet,只是进行了整理和总结。关于信号的基础只是请参考 APUE。  SIGHUP 1 和终端的连接断开,发送该信号给控制进程。通常用此信号来通知 daemon 重新读取配置文件(因为 daemon 不会有控制终端,通常不会收到该信号)。SIGINT 2 用户中断(Ctrl + C)。SIGABRT 6 调用 abort 函数产生(通常是自杀)。SIGKILL 9 可以杀死任意进程,不能被捕获或忽略(俗称酒杀)。SIGSEGV 11 无效的内存引用(segmentation fault)。SIGPIPE 13 对于 socket fd,当一个进程向某个已经收到 RST 的 fd 执行写操作时,内核会向该进程发送该信号。SIGTERM 15 kill 命令发送的默认终止信号。SIGCHLD 17 进程终止时向其父进程发送的信号。SIGPROF 27 使用 gprof 工具测试时会收到该信号。    可以通过 signal 或者 sigaction 函数来设置信号处理函数,但 signal 函数太过古老,因此推荐使用 sigaction。理由如下:  1. sigaction 可以提供更多接收到信号的信息。  2. 调用完信号处理函数后重新设置处理函数不会对 sigaction 有影响,因为 sigaction 默认是不会去重置处理函数的,同时在执行处理函数会屏蔽掉该信号,也不会有竞争。  3. signal 函数在某些系统中会默认重启被中断的系统调用,而 sigaction 默认不会这样做。  4. signal 函数在多线程环境中的行为是未定义的,必须使用 sigaction 函数。    使用了系统调用的函数都有可能被信号中断,立刻返回的函数(不需要等待I/O操作的完成或 sleep)不会被中断,而需要等待的函数(等待网络传输,管道的读或者 sleep)将会被中断,比如 select, read, connect。  在 daemon 程序中,恰当地处理被中断的系统调用是非常重要的。如果 read, write 等传输数据的函数被中断,必须处理这种情况并恢复数据的传输。有两种被中断的场景:  1. 当没有数据传输时就被中断,函数返回-1,这时可以通过判断 errno 的值来识别这种错误,如果 errno == EINTR,则表示函数在没有任何数据传输的情况下就被中断,这时可以通过同样的参数来再次调用该数据。  2. 另一种情况是数据传输已经在进行,但在没有完成之前被中断;这种情况下函数不会返回错误,而是返回一个小于期望大小的值,同时 errno 也不会有错误设置,想识别这种情况只能捕获导致中断的信号。在中断之后恢复数据传输时一定记得部分数据已经被传输,必须从正确的偏移再次发起传输。  不要通过 sigaction 函数设置 SA_RESTART 来处理被中断的系统调用。  多线程程序的信号处理和单线程程序有很大的区别。根据 POSIX 规范,一个多线程的程序只有一个进程和一个 pid,哪个线程会被中断并处理到达的信号呢?有两种情况:不要在信号处理函数中使用锁。    signalfd 是一个在 linux kernel 2.6.22 提供的系统调用,功能是使用一个 fd 来接收信号。这样就可以同步地处理信号,也不需要设置处理函数。可以 man signalfd 查看示例程序。首先必须使用 sigprocmask 来屏蔽要使用 signalfd 来处理的信号,然后调用 signalfd 创建一个 fd 用来读取到达的信号。当被屏蔽的信号到达时,程序将不会被中断,也不会有处理函数被调用。信号会在 fd 中排队。signalfd 创建的 fd 可以和其他 fd 一样:可以放在 select, poll, epoll 中;可以设置为非阻塞;可以为不同的信号创建不同的 fd;在 fork 之后该 fd 也不会关闭掉,子进程同样可以读懂发送给父进程的信号。signalfd 非常适合在主循环中执行 epoll 处理大量连接的单进程网络服务程序中使用,信号的处理可以和其他 fd 一样加到 epoll 中。由于程序不会被中断,可以选择合适的时机才去处理信号。

  今天要介绍的是全世界最小的 iPhone 充电器 JuiceBuddy。它虽然很小,但工作起来可不输给其他的 iPhone 充电器。JuiceBuddy 配备了一个折叠式的插脚,可直接插入插座。而隐藏在顶盖上的是 iOS 设备所使用的标准基座接口,方便用户连接到 iPhone 或 iPod Touch。   JuiceBuddy 售价为 25 美元,一共有红,白,黑,银四种颜色可供选择。它还有一个钥匙环扣,以及一个标准的 USB2 端口,允许你收取其他设备。

  北京时间 6 月 7 日消息,据,社交出版商、在线免费电子书制作分享社区 Wattpad 今天宣布完成B轮融资,此次融资金额为 1730 万美元。此次融资活动由风投公司 Khosla Ventures 领投,其他投资者还包括雅虎联合创始人杨致远(Jerry Yang)以及投资公司 Union Square。  虽然 Wattpad 不像 Pinterest 一样能够常常占据媒体的头条位置,但值得注意的是,该公司自 2006 年成立以来一直保持稳步增长。目前该网站拥有 800 万注册会员,这些会员每月在 Wattpad 上花费超过 17 亿分钟的时间,这一数字远大于 Pinterest。Wattpad 的用户每个月为网站提供超过 5 万个新故事,而 Wattpad 又免费为用户提供内容及出版工具,让他们将内容制作成电子书进行分享。  “这一轮投资将主要被用在产品质量提升方面,比如产品的设计、工程质量以及产品管理等。”Wattpad 创始人兼 CEO Allen Lau 在接受采访时表示,“因为我们的业务在逐渐扩大,增长速度也在加快,所以我们需要在维持方面投入大量的精力,比如保证服务器正常运行。这一轮投资将帮助我们雇佣更多的工程师、设计师以及产品管理人员,这样我们才有足够的力量去更新我们的产品,使之跟得上公司的发展步伐。”  Lau 表示 Wattpad 希望将焦点放在移动服务上,Wattpad 认为自己应该是一个“移动优先”的公司,并且已经推出自己的社交创作工具。“移动领域将成为我们关注的焦点之一,我们一直都是一个社区、一个社交网络,”Lau 指出,“我们现在已经是全球最大的社交网络之一,但我们还需要提升我们的产品质量及服务,这样用户可以更容易参与进来,更容易获得其他创建的内容。”  Wattpad 去年九月曾获得一轮投资,投资者是 Union Square,虽然那一轮投资仍有部分资金还在银行中,但业务增长和用户数量的增长使 Wattpad 必须寻找新的投资。  Wattpad 的能力在于其拥有能够改变整个出版行业的能力,这种能力在于其不仅能够通过电子书和内容将用户联系在一起,而且用户还能够参与到彼此的电子书创建过程中。用户能够发布自己创建的电子书,然后获得其他用户的反馈来决定书中故事的走向。  Wattpad 的创新能力是显而易见的,但不明显的是如何利用这样的能力提升收入。Lau 认为重点还是在于社交方面的发展,公司目前已经有自己的商业发展计划。Lau 以 Facebook 为例指出当公司拥有广泛的用户基础之后,盈利模式才能够容易获得成功。但他并没有透露公司具体的商业计划细节。  投资者们似乎并不担心 Wattpad 在商业方面的潜力,毕竟 Wattpad 现在用户数量非常可观。

  数天前,苹果曾上诉请求美国法院禁售 HTC 旗下的 One 强机。为了还以颜色,HTC 日前求助谷歌的专利库,也向美法院提起上诉,控告苹果产品侵犯专利。不过不幸的是,法官拒绝承认专利有效性。  负责此案的法官 Thomas Pender 宣布,。也就是说,HTC 之前从谷歌那里临时借来的“诉讼利器”完全用不上了。  早在去年时,谷歌就曾表示会在 HTC 与苹果的专利战中,无论如何都要帮 HTC,随后也向 HTC 移交了部分专利。但是目前法官要求 HTC 将专利物归原主。  不过即使如此,苹果也未必就能获胜。有媒体称,接下来谷歌很可能会直接介入到 HTC 与苹果的专利战中去。由于已经收购了摩托罗拉,谷歌在某种意义上已经具备了手机制造资质,完全可以使用这 5 项重要的手机生产专利来对抗苹果。

分类:威尼斯人线上娱乐网址

时间:2016-10-03 02:05:10