Hegwin.Me

溯洄从之,道阻且长。溯游从之,宛在水中央。

Ruby中目录和文件操作的几种方式

Different methods in Ruby to manipulate directories and files

创建目录: 方法一:利用 Dir.mkdir 可以创建一个目录,并且其有一个可选参数用来标记目录的权限。 如我要在 /Users/hegwin/Workspace 目录下创建一个 `ruby` 子目录,那么可以这么操作: Dir.mkdir('/Users/hegwin/Workspace/ruby') 正常创建后,Dir.mkdir 会返回整数 0。 这个方法和Li...

读《未来简史》以及摘抄

Excerpt from Home Deus A Brier Histroy of Tomorrow

今天终于读完了《未来简史》这本书。说来也很巧,我并非在书店看到这本书,而是我有中国联通的积分要过期了,我得用积分换点什么,无意中换了这本书的电子版。 虽说是随意用积分换的一本书,读来却觉得深受启发,里面有很多经典的案例。我在小时候读过关于大脑和心理的书,后来也曾在Coursera也学过神经科学的一些课程,然而这本书却可以结合历史和社会发展去审视人类的未来,有很多新奇的见解,对我而言,它...

Rails 应用的内存优化

Improve Memory for Your Rails App

我今天在郑州参加了为期两天的 Ruby Summit China 2018;Summit 在郑州“大玉米”举行。我没想到在郑州这样一个互联网公司密度不是那么高的城市,可以举办这样规模的互联网大会(Ruby Summit只是其中一个分会场)。更令人惊喜的是,Ruby语言之父松本行弘(Matz)也有来参加做开场演讲。于是乎,我专程从上海来到郑州参加这个Summit——也算是程序员界的追星行为了。...

小女孩总会长大的 - 《月亮和六便士》《飘》摘抄

Soft Girl Gone Determined - Excerpt from Moon and Sixpense and Gone with The Wind

为了提升自己的英语水平,我通过阅读英文小说来实现这个目标。我最近读了毛姆的《月亮和六便士》,还有玛格丽特·米切尔的《飘》。结果就是,我虽然感受到了它们的用词精美,表达精妙,但我实际上没学会多少英文表达,倒是情绪跟着小说的情节起起伏伏。尤其是角色的成长和转变,都让我十分揪心。我在这分享一下里面的片段——关于小女孩突然长大的描述。 《月亮和六便士》的男主角 Strickland 突然放弃稳...

成人心肺复苏(CPR)学习笔记

Notes of CPR from a First Aid Training

我在上周末参加了一个为期两天的急救培训。我本就对救治伤患和给予帮助还是挺有兴趣的,在《魔兽世界》里我玩的就是一个治疗职业——牧师。 急救培训讲的内容其实很多,包括一般的烧烫伤、割伤、窒息的处理,但对我来说更重要的是成人心肺复苏和AED的使用。我在这篇文章里介绍下我学到的关于CPR的知识。 促使我参加这个培训的一个原因是我在最近一次半程马拉松的经历。上个月我参加了今年的上海半程马拉...

Ruby 2.5 允许在do/end代码块中使用rescue

Ruby 2.5 allows rescue/ensure inside do/end blocks

本文介绍Ruby2.5的一个新特性:在以前的Ruby版本中,如果你需要用的rescue来捕获和处理异常,你必须要把可能抛出异常的代码放在 begin end 块中,而在Ruby 2.5中,普通的 do end 块中你也可以直接使用 rescue 和 ensure 等异常处理的关键字了。注意这个功能不是向下兼容的,如果使用2.4则会遇到错误。

三种推理方式:演绎,归纳和溯因

Deduction vs. Induction vs. Abduction - Different Ways to Reason and Draw Conclusions

我这段时间在看《福尔摩斯》系列的小说。无论是《血字的研究》还是《四签名》,其中都会有一章的标题叫做“演绎学”(The Science of Deduction)。这引起了我的好奇——究竟什么是演绎推理?我们知道还有其他的推理模式,比如归纳推理、溯因推理(诱导推理),它们究竟有什么不同? 逻辑推理,简而言之,就是从一些观察和事实中得出结论。逻辑推理的方式可以分为三种:演绎、归纳和溯因(诱...

谷歌开发者大会2017心得:PWA 渐进式网页应用

Takeaways from Google Developer Days 2017: PWA Progressive Web App

这是Google Developer Days 2017 Take Ways系列的第二篇。在今年的GDG上,渐进式网页应用(PWA,Progressive Web App)是一个反复被提起的技术,我至少参与两次主题是 PWA 的演讲。 PWA所要解决的主要问题是能让 Web App 有着接近 Native App 的效率。另外,在人们不太乐意下载新App的情况下,PWA 给开发者的应用...

谷歌开发者大会2017心得:Firebase 和 Serverless

Takeaways from Google Developer Days 2017: Firebase and Serverless

今天是谷歌开发者大会(GDG, Google Developer Days)在上海举办的第一天。由于GDG是在工作日举办,因此还不得不向公司告了假才能来参加。这届的GDG有非常多让人兴奋的议题。我打算写几篇文章介绍我在 GDG 2017 的收获(如果我偷懒了,可能也只有这一篇)。 这一篇文章的主题是 Firebase 和 Serverless。 在此之前,我对 Firebase ...

Rails优化SQL可能用到的工具

Tools to Help to Improve SQL in Rails

你是否遇到过遇到 Rails app 在渲染页面很慢的情况? 你是否想找到造成它“慢”的原因?性能瓶颈究竟在哪里?是它执行 SQL 查询数据慢(可能是N+1,或者是没有合适的索引),还是其他的原因,比如view太大? 进行性能优化一直是一个典型的“难定位”问题;目前我个人是用到了以下几个工具去找出问题到底在哪里: 1. New Relic 老牌的性能检测工具,与Rails集成之后...