钻石墓场

黑夜中会发光

Nov 17, 2020

Numpy, pandas, Python3.9 和 Big Sur

Numpy, pandas, Python3.9 和 Big Sur

Big Sur 发布了. 最近苹果每一次系统发布, 总伴随着奇奇怪怪的 broken feature. 比如Catalina 引进的 APFS 里有个 "双向虫洞" firmlink. 这个 firmlink 本来是用来解决 APFS 分离只读系统卷和 Data 卷之后的程序路径兼容性问题的. 苹果很自信的说 "没有人" 会感受到差别... 好吧, 升级 Catalina 之后我的 autoenv 就没法

Aug 12, 2016

Python 的世界里没有代码块

以前经常写 ruby 和 js, 对于以下的代码非常习惯: item = {id: 1, name: 'Donald Clinton'} attrs = [:id, :name] attr_getters = attrs.map do |attr| lambda do "The #{attr} is #{item[attr]}" end end > attr_

Apr 29, 2016

Automatic Eager Loading for Mongoid

Even in MongoDB, sometimes your models may still have reference relations. Like ActiveRecord, the popular MongoDB ORM, mongoid, provides #includes method to perform eager loads. Problems However, it is a pain to specify

Feb 22, 2016

森的妖精 GraphQL

最(好几个)近(月之前), 在公司前端同学的推荐下接触了GraphQL, 感觉一阵清爽. 如今使用了一段时间, 可以汇报一下使用感受. GraphQL? 物如其名, GraphQL 是一种 Query Language, 由世界上最好语言的领军者 Facebook 公司发明. 它的出现是为了满足服务端向客户端灵活输出数据的需要. Restful API 不行吗? 当然行. Restful 是包括我在内, 各位后端同学都非常熟悉的朋友. 从早年凭感觉写的jsp, asp们, 到后来做的 WebService API, 再到有哲学思想指导的 Restful API.

Mar 19, 2015

Grape自定义参数类型

Grape的params函数是非常方便用于定义API参数的工具. 这次做到一个接口要传入GeoJSON格式的参数. 与世界在接口上直接写了: params do requires :location, type: GeoJSONPoint, desc: "地点" end class GeoJSONPoint attr_accessor :type, :coordinates def initialize(coordinates=[]) @coordinates = coordinates end # always a point def type "Point" end end 不过这样显然是不行的,

Mar 18, 2015

Sorcery + Grape on Rails

最近手头有一个需要快速开发的新Web项目, 于是想了想还是不用sinatra, 直接用RoR来写. 因为需要为手机提供API, 感觉在Rails上面架设sinatra有点自欺欺人的感觉, 于是第一次尝试在Rails上面加一层Grape... 于是问题就来了. Sorcery在Session/Cookies方面的操作完全依赖Rails的API, 以前用sinatra的时候, 基本上没有感觉到什么不适, 这次在Grape上使用Sorcery就爆炸了OTL. Grape::Endpoint.send(:include, Sorcery::Controller)之后就开始各种undefined. 看了看大概都集中在ActionDispatch和ActionController里. 下午大概的做了个hotfix, 可惜因为Grape自用的Cookies和ActionDispatch::Cookies区别实在太大, Grape的remember_me功能在grape上暂时用不了. module API module SorceryAdapter AUTHENTICITY_TOKEN_LENGTH = 32

Mar 17, 2015

不小心是常态....

想着把Blog的backend db从sqlite换到mariadb, 结果不小心把.db文件删掉了... 明明一直在跟服务器打交道, 结果大意地把数据库删了>< 好糟糕otl... 总之钻石墓场就这样了OTL...