2018上交计算机保研经验分享

上交计算机外校保研总的来说有三个时间点:

  • 六月初的直博生面试
  • 七月份的夏令营(大概三天左右,直硕和直博在这个时间点都有)
  • 九月份的推免面试(直硕和直博都有)

一般来说这三个时间点,六月份和七月份的面试你只能报名参加一个,若第一次面试没有通过,可以选择再报名九月份的面试。下面说说这三个时间点有什么异同。

六月初的直博生面试

首先最早的是六月初的直博生面试,面试地点在全国分布好几个面试点,很幸运成都也是面试点之一,所以参加六月份的直博生面试只需要在成都面试就好了,不用跑去上海,比较方便。有意愿参加直博生面试的同学,需要注意以下几点:

  • 考虑清楚自己是否真的下决心读博。读博和读硕不一样,并没有一个固定的毕业期限,上交的直博生一般是五年可以正常毕业。如果读博期间坚持不下去放弃了那你只有本科的学历了,所以一定要慎重考虑。应该会有很多人关心会不会延毕的问题,我觉得这个主要看导师吧,一般来说,只要不是你的问题(学习态度之类的),正常毕业不会有太大问题。反正要慎重考虑!
  • 提前联系好导师。这个很重要,一般四月份就可以开始邮件联系导师了,导师的联系方式以及个人主页在计算机系的主页上都有(http://www.cs.sjtu.edu.cn/Faculty.aspx),选好自己未来打算研究的方向,根据方向来挑选心仪的导师。我们可以从导师个人主页了解到导师的方向以及近几年的论文发表情况,如果有打算未来研究某方向的话,面试前看一些相关的论文也是有必要的。
  • 直博生入围面试条件。去年(2017)给的报名条件(看这里http://yjwb.seiee.sjtu.edu.cn/yjwb/info/12554.htm)是排名年级前10%,六级480以上额昨天看了下官网,貌似六级过了就行,480+应该是浙大直博的要求,至于那个排名好像也没有硬性要求,10%那个我也忘了是哪里看的,最好满足吧,在这个条件范围内的都可以试一试。理论上是这样的,如果条件差一些但也很想报的也可以试一试。

    Read More

如何使用迅雷快速下载Genymotion镜像

做安卓开发的同学一定知道Genymotion这一著名的安卓模拟器,可惜下载它的ova镜像实在是太太太太慢了!所以,在这里给大家分享一个用迅雷来下载镜像的好方法。

以最新版的2.12.0为例,首先,我们可以发现,Genymotion下载的镜像会保存在C:/Users/你的用户名/AppData/Local/Genymobile/Genymotion/ova大概是这样子的路径下,你每次选择一个安卓镜像下载的时候都会在这个目录下创建一个临时文件,比如我下载一个安卓5.1.0的镜像,这个目录下的临时文件名字就是genymotion_vbox86p_5.1_180219_000000.ova.partial,可以看到是一个部分下载的文件。

这个时候,我们先取消镜像的下载,然后复制上这个临时文件的名字(除了.partial),加上一个前缀,还是以上面这个为例,那么完整的下载地址就是http://files2.genymotion.com/dists/5.1.0/ova/genymotion_vbox86p_5.1_180219_000000.ova,复制到迅雷中下载,速度非常快!

大概可以发现规律,下载链接的组成:http://files2.genymotion.com/dists/<安卓版本号>/ova/目录下临时文件的名字.ova,下载完成后替换掉ova目录下的临时文件,然后再去Genymotion选择下载这个镜像,就会发现已经下载好啦,进入自动部署的阶段了,就可以用啦~

然后关于Genymotion不能安装arm架构的应用,我们可以使用Genymotion-ARM-Translation进行转换,我这边有适用4.x5.05.1的translation工具包,如果有需要的朋友可以通过github的邮件向我要一份~

Windows10+python27环境安装OSMnx踩坑记录

在Win10下安装OSMnx库异常艰难,虽然官方推荐的是用python3以及conda包管理器,但是我还是想用python2+pip来安装,也不是不行,就是坑有点多,摸索之后总算总结了一个经验出来。

我的环境是python27,先提一句,最好用64位的python,因为到后面运行数据的时候,因为我的数据量比较大,其实也不大,反正用32位的python运行,一旦运存超过2GB就会报Memory Error错误,很是蛋疼。

首先,先去下载这个安装一下,安装OSMnx需要VC 9.0的环境,Download Microsoft Visual C++ Compiler for Python 2.7 from Official Microsoft Download Center

然后,去Unofficial Windows Binaries for Python Extension Packages下载几个whl包,直接安装,因为这几个用pip装不上,会报错…安装包名字为RtreeFionaShapelyGDAL

1
pip install ./path/to/*.whl

直接装就行了。其实Rtree用pip直接在线安装不会报错,但是后面你运行的时候就会发现报错说缺少一个DLL,所以还是手动下载,就没问题了。

然后就安装OSMnx

1
pip install osmnx

就可以顺利安装上OSMnx,因为官方的例子都是在jupyter notebook上运行,所以我们也装一下。

Read More

转载 | 经纬度转平面坐标的算法(米勒投影)

原文出处:经纬度转平面坐标的算法(米勒投影)

地图组件是前端数据可视化非常重要的一个组成部分,根据geoJSON这种通用数据格式来生成地图是比较便捷的做法。不过对于地图坐标转换的算法,还是了解一些比较好,对于设定高阶地图组件会有帮助。这里介绍一下在米勒投影的地图上,如何将经纬度转换为平面坐标的算法,这个算法在生成世界地图的时候比较常见。(维基百科-米勒投影)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// lon 经度,西经为负数
// lat 纬度,南纬是负数
function millerXY (lon, lat){
var L = 6381372 * Math.PI * 2, // 地球周长
W = L, // 平面展开后,x轴等于周长
H = L / 2, // y轴约等于周长一半
mill = 2.3, // 米勒投影中的一个常数,范围大约在正负2.3之间
x = lon * Math.PI / 180, // 将经度从度数转换为弧度
y = lat * Math.PI / 180; // 将纬度从度数转换为弧度
// 这里是米勒投影的转换
y = 1.25 * Math.log( Math.tan( 0.25 * Math.PI + 0.4 * y ) );
// 这里将弧度转为实际距离
x = ( W / 2 ) + ( W / (2 * Math.PI) ) * x;
y = ( H / 2 ) - ( H / ( 2 * mill ) ) * y;
// 转换结果的单位是公里
// 可以根据此结果,算出在某个尺寸的画布上,各个点的坐标
return {
x : x,
y : y
};
}

Read More

转载 | 凸优化 convex optimization

原文出自:压缩感知中的数学知识:凸优化,简单易懂。

这里再推荐一个关于凸优化的综述Convex Optimization Overview,介绍的比较全面。

0 引言

对于任意两点x和y(x,y ∈ Rn),则对于0<=μ<=1,关系μx+(1-μ)y表示x和y连线之间的所有点。把n简化到一维的情况,即x和y就是两个实数。证明如下:

1
2
3
4
5
6
7
假设y>x(即y-x>0),在一维情况下,只要证明x<=μx+(1-μ)y<=y就可以了。
证明:
x-[μx+(1-μ)y]=(1-μ)x-(1-μ)y=(1-[μx+(1-μ)y]<=0(因为1-μ>=0,x-y<0)
所以x<=μx+(1-μ)y
y-[μx+(1-μ)y]=μ(y-x)>=0
所以μx+(1-μ)y<=y
得证!

虽然上面证的只是一维,但在多维时可以分解,比如二维时可以分解成横坐标x和纵坐标y,对于每一个坐标轴都是一维的,综合起来就得到了多维的结果。对应到几何关系上来看,对于0<=μ<=1,关系μx+(1-μ)y表示x和y连线之间的所有点。

1 凸集

明白了上面的基础后,这个定义就简单了:若某集合中的x和y两个点,若x和y连线之间的所有点(即0<=μ<=1,μx+(1-μ)y)仍属于这个集合,则称此集合为凸集。

直观几何表示如下:

左边的是凸集,右边的不是凸集,因为右边的集合中任意两点x和y连线之间的所有点有时不属于这个集合(右图中的连线)。

Read More