最后来个成品图
不会吧,分体式随便安放
var.blank?
可以用来判断是不是空值,可惜这是一个 rails 的方法。
什么应用服务器?
不好意思刚看到 thin.
exif 是个有限集合,可以不用 method_missing.
把需要的属性定义到一个 array 里面,然后 define_method 就好了,这样有一个好处就是想要显示什么属性什么是可控的。
TL;DR: 这个东西还是不要自己计算。 如果是玩玩的话就算了。 如果认真的话还是换 Postgres 上 PostGIS, 这个东西是开源 GIS 数据处理最好的东东,没有之一。
如果先计算用户跟我的距离,再找出小于 1km 的,如果总用户有 100 万,你需要 100 万用户都算一遍,即便是算完了,还需要排序。 如果用坐标的盒子查询,第一不精密,角上的用户已经超过 1km, 第二排序还是要计算距离,第三不够灵活,如果明天需求改了,需要找条距离一条曲线马路一公里以内的用户的时候,又该怎么办呢。 而且,上面的计算极有很大的可能是错误的。
原因如下:
简单来说,如果要画地图,首先要找准一个平面,地球根本不是圆的,也不是椭圆的,是个橡皮泥砸的有点像圆球的这么一坨。最早地图用的水平面,后来发现海拔因为潮汐关系也靠不住,后来用重力加速度,重力加速度为同一常量的作为一个平面。得出的结果是这个
搞清楚形状了,找到地球表面的高度了,但是做成地图还需要一个投影模式。 我们平常看的世界地图是椭圆投影。这个对于形状表示比较好,距离计算跟面积误差很大。赤道周围跟极低周围误差极大。 当然还有别的投影模式,比如把世界地图剥成橘子皮那样的。
除了投影模式,还需要一个 Datum,就是地理坐标系统。说白了就是经纬度。 这个标准就更多了,北美有 NAD 83, WGS 84, 每个系统定义了地球的椭圆投影的椭圆的具体规格。长半径短半径有多长。这个差一点,两点的距离就会差很多。
上面所有的因素加在一起,组成了 Spatial Reference System(SRS 空间参照系统).
你可能会问我说这么多跟计算距离有毛关系。
关系就是,在不同的 SRS 参考坐标系下,相同的经纬度根本不在一个地方。更不要说两个点的距离了。 算出来的距离可能差很远。
所以当你拿到一个坐标,首先要了解是什么 SRS, 楼上说的各种不同地图提供商和用户位置提供商提供的经纬度误差,就是因为用了不同的参考坐标系。国内肯定有自己的 SRS 这些我就不太了解了。 知道了是什么坐标系,才能计算距离或者做其他查询,然后也需要考虑到地球的弧面因素。
PostGIS 提供了以下功能:
如果能换成 PostgresSQL 的话可以用 PostGIS 这个 extension.
If - is used as file, documents will be printed to standard output, disabling link conversion. (Use ./- to print to a file literally named -.)
man wget
-O file
--output-document=file
The documents will not be written to the appropriate files, but all will be concatenated together and written to file. If - is used
as file, documents will be printed to standard output, disabling link conversion. (Use ./- to print to a file literally named -.)
Use of -O is not intended to mean simply "use the name file instead of the one in the URL;" rather, it is analogous to shell
redirection: wget -O file http://foo is intended to work like wget -O - http://foo > file; file will be truncated immediately, and
all downloaded content will be written there.
For this reason, -N (for timestamp-checking) is not supported in combination with -O: since file is always newly created, it will
always have a very new timestamp. A warning will be issued if this combination is used.
Similarly, using -r or -p with -O may not work as you expect: Wget won't just download the first file to file and then download the
rest to their normal names: all downloaded content will be placed in file. This was disabled in version 1.11, but has been reinstated
(with a warning) in 1.11.2, as there are some cases where this behavior can actually have some use.
Note that a combination with -k is only permitted when downloading a single document, as in that case it will just convert all
relative URIs to external ones; -k makes no sense for multiple URIs when they're all being downloaded to a single file; -k can be
used only when the output is a regular file.
<在 tag 前面加个空格,>在 tag 后面加个空格,也能单用,也能<>,
就是 ><看着搞笑点
- if post.deleted?
span.label.label-default>< = post.comment_count.value
试试这样
喜欢服务器上面用 rbenv 的另一个原因是 rbenv 的一个 plugin 叫做 rbenv-vars.
#8 楼 @benzhang 这个跟系统负载也有关系。我测试的时候两个都是崭新创建的 VPS。如果这个运营中的 web server 上面运行就有快有慢了。
我是参照这里拿来测试的: https://romanrm.net/dd-benchmark
#4 楼 @chinacheng 嗯,如果你之前生成 private key 的时候没有设置密码,就不需要这一步。
一般他们的文档都是很不专业的。Google 还是王道。
#2 楼 @chinacheng 服务器多了的话可以将 ssl 终结在 Load Balancer. 客户端到 load balancer 加密传输,load balancer 到服务器明文传输。
稍大一点的程序不一定就复杂,复杂度也有不同,例如广度与深度的不同。 比如同一个数据 model 需要显示成 50 种格式,这种复杂可以用 view 的 decorator 解决。硬要加一个 service layer 并不是特别有意义。
DDD 适用于复杂的业务逻辑,进销存,工作流,生产线自动化,等等,Rails 一开始就是针对另外一种开发的。小型创业项目,而且大部分项目是面向消费者的。所以在这方面有欠缺是正常的。而且如果业务逻辑复杂度到不了那个程度,也没有必要非要硬套 DDD。
homebrew master branch 问题已经解决了
Objective-C 学不进去的人表示非常兴奋。