在当 TA 时候,要给本科生改 program 作业,批量下载的文件名又长又臭,如下:
1 | -rw-r--r-- 1 mac staff 4.0K Mar 27 13:36 Program 1_and7697_attempt_2018-03-22-16-56-45_and7697_p1.s |
所以就想把他们重命名一下,变成只有 xxx1111.s
的形式。查找了一些 Linux 下批量重命名的方法,总结如下:
在当 TA 时候,要给本科生改 program 作业,批量下载的文件名又长又臭,如下:
1 | -rw-r--r-- 1 mac staff 4.0K Mar 27 13:36 Program 1_and7697_attempt_2018-03-22-16-56-45_and7697_p1.s |
所以就想把他们重命名一下,变成只有 xxx1111.s
的形式。查找了一些 Linux 下批量重命名的方法,总结如下:
首先使用 mmap 映射文件到内存中,然后返回该文件对应的 memory 首地址。 char* data。
然后对该 char* 类型 构造一个 ifstream(不复制 data 内容到 ifstream 中)。
代码如下:
首先将 geojson 数据导入到 MongoDB 中,具体操作参考如下。
需要使用两条命令:
1 | jq --compact-output ".features" input.geojson > output.geojson |
通过上述命令,我导入了 nyu yellow taxi 的 json 数据。该 json 数据是经过后期处理的,格式如下:
1 | { |
在 GIS 系统里,我们可能会遇到如下的场景,给定一个坐标点,计算其到哪条边最近。而生活中对应的实例是:根据你的 GPS 位置信号,找到离你最近的一条公路是哪个。
在 google s2 的库中,提供了如下类,用来进行该类型的空间索引:S2ClosestEdgeQuery
。
首先我们将已有的 geospatial objects 存到一个 index 中,也就是对这些 objects 建立了一个空间索引,我们暂且称这个索引为 index
。
之后我们给定一个查询目标,Target
,从 index
里面查找到在 Target
周围,符合我们要求的 spatial objects,这就是 query 以后返回的 results
。
下面看一段简单的查询代码,给定 Target 点,找到距离它最近的边是哪些:
This blog is written on Aug. 25, 2009, it discusses how to use cell phone GPS signal to identify crowded road in the U.S.
If you use Google Maps for mobile with GPS enabled on your phone, that’s exactly what you can do. When you choose to enable Google Maps with My Location, your phone sends anonymous bits of data back to Google describing how fast you’re moving. When we combine your speed with the speed of other phones on the road, across thousands of phones moving around a city at any given time, we can get a pretty good picture of live traffic conditions. We continuously combine this data and send it back to you for free in the Google Maps
traffic layers
.
The more users participant in this process, the more precise the report is. And this system was online to cover all U.S. highways and arterials in that week.
当发起一个 query 请求时,当有多个约束条件,就会形成一个 query plan,本质上是怎么样去组织 pipeline 的 stage,使得 query 更有效率。
比如有下面的一个 query 请求:
1 | // 找出 zip code 大于 50000,并且`cuisine` field 包含 `Sushi`的 documents `stars` 降序排序 |
那么我们应该怎样组织 query 过程呢?是先找到 documents 然后排序,还是先排序,然后再找 document?
使用什么样的 query plan 是跟我们建立的 index 相关的。使用不同的 index,则会得到不同的 query plan。
比如当index分别为如下两个时候:
1 | {address.zipcode: 1, cuisine: 1} |