xcTorres Blog

除了自己的无知,我什么都不懂

斯诺克学习笔记🎱

不知不觉接触斯诺克已经有半年了,也跟着老师上课学了5节入门课,越来越发现这项运动的魅力,是一项聚准度,技术,心态为一体的运动,成为我新的一大爱好。在此希望自己能够继续坚持,不急于求成,能够在一周1到2练的有限时间提高效率精进技术,少走弯路。 自己瞎琢磨不如多学习,多总结,网上b站,抖音,Youtube台球视频五花八门,发现最靠谱的还是baton老师等的视频,所以我这里也还是按照他的视频来学...

Guitar

记得大学开始时就开始自学吉他,但已经五年没怎么碰过吉他了。现在已经下定决心,重新拾起吉他,从音乐中找到部分内心的平静和幸福感。但吉他的练习也是一个枯燥耗时的过程,一定要制定合理的计划才能有所成效,遂写此篇博客制定计划。 周末两天,每天应该有1-2小时的时间进行练习,而周中应该可以每天抽出半小时练习。这次的目标主要还是指弹吉他,指弹学好了弹唱就是分分钟的事。 左手练习 爬格子 htt...

Reflection After Interview

It has been 3 years working in Singapore since I graduated. During the period in Shopee, I learned a lot not only the coding skills but also the understanding of projects. Since Shopee has decided ...

Know Yourself

最近因为一些事,焦虑与不安的感觉挥之不去,开始反思自己的性格,也相当于一种自救吧。在朋友家玩的时候,大家一起做了个MBTI测试,测出来自己的性格是ESTJ,虽然说一个人的性格不能单凭一个测试就完全表现出来,但对于我而言,感觉这个性格的描述还是蛮准的。 关于这个性格的优点大概是: 性格开朗,自信,能够侃侃而谈,表达自己的观点,直爽,希望自己能够控制住局面,做事喜欢按照秩序规矩来,做事踏实认真...

Cython Pointer Memory Leak

Recently I’m working on a project which needs to retrieve the edit operations of two strings. The latency requirement should be very low, so I use C++ and Cython to improve the efficiency. The repo...

Contraction Hierarchies算法

当谈论到两点之间的路径规划算法,我们首先想到的是Dijkstra算法,为了提升效率又改进出现了Bidirectional Dijkstra算法。但对于国家,大陆级别的道路网规模,查询效率还是太慢,甚至超过2s,很难达到ms级的响应。而本文将介绍的Contraction Hierarchies算法即是在原始Graph先进行预处理,提前先算好一些点与点之间的最短路径距离(Shortcuts),简...

长短时记忆网络LSTM

算法 相比RNN只有一个传递状态$h^t$,LSTM有两个传输状态,一个$C^t$(cell state),和一个$h^t$(hidden state)。RNN中的$h^t$对于LSTM中的$C^t$) 其中对于传递下去的$C^t$改变得很慢,通常输出的$C^t$是上一个状态传过来的$C^{t-1}$加上一些数值,这也是LSTM相比RNN为什么能缓解梯度消失和梯度爆炸的原因。而$h^t$则...

条件随机场CRF

网上关于条件随机场的优秀博客已经有很多,在这里就不详细介绍算法所有推导了,关于公式推导可阅读刘建平老师的博客或者直接看李航老师的《统计学习方法》,本博客主要是提炼一部分非公式的内容,并附上示例代码。 算法介绍 马尔科夫随机场 首先马尔科夫随机场本身是一个概率无向图。但其还满足如下性质。 1)成对马尔科夫性(pairwise Markov property) 2)局部马尔科夫性(loc...

How to run Java function in pySpark

For data analyst and data scientist, we are more likely to use pySpark to analyze the data instead of scala Spark. But sometimes we may use some third party package written in Java. So this post wi...

Dijkstra 算法

Dijkstra算法是图算法中,寻找两个节点最短路径的算法。在路网做路径规划中,也常常用到该算法的变种。 基本思想 通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。 此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶点(以及该顶点到起点s的距离)。 初始时,S中只有起点s;...

GIS in Python

In the daily work, we often use python to do the data analysis job. Currently, there are more and more spatial python packages, which makes it also very easy for us to do the GIS analysis. In the b...

Spark Cheat Sheet

Since I was a postgraduate in college, I have been using Spark cluster for 4 years. Especially when I work, I feel the super power of Spark. It is very easy for us to handle the big data. Right now...

Git 命令

git是程序员日常生活中常用的工具。本人按照平时使用的经验,认为git学习的内容分为两类。一是日常的一些基本用法,网上已经有很多不错的tutorial,如本文最后参考中的链接,本文将记录一些使用频率更高的命令。二是在生产环境中应该一个项目应该有哪些分支来进行管理,从而确保线上项目正常安全运行。 基本用法 1)修改和提交 在将所更改的文件添加到暂存区之前,可以根据如下命令确认有哪些被更新的...

Bellman ford算法

Bellman-Ford算法同样也是解决单源最短路径问题,从Dijkstra算法的证明不难看出其是一种贪心算法。,因为其有一个大前提-所有边为非负边。所以Dijkstra算法无法解决负权边的问题,而Bellman-Ford可以做到。Bellman-Ford基本思想如下: 步骤: 初始化:将除源点外的所有顶点的最短距离估计值 dist[v] ← +∞, dist[s] ←0; 迭代...

2021新年

Summary 不知不觉,2020年都过完了。这一年因为疫情的影响,没有什么旅行和活动,主要的精力都聚焦在提升自己的工作能力和培养良好的习惯。能够持续性地学习专业、工作相关的知识,有规律的健身,持续性的撰写博客,英语有了比较明显的进步,这四点感觉是自己整个2020年最大的财富~ Flag 回顾2020,2019写的新年展望博客有很多未完成的愿望,感觉很重要的一个原因是因为根本没有量化。今年...

C++ (01) Makefile文件编写规范

在编译C++工程的时候,最常见的就是make编译,以及cmake编译。一直以来也没有专门学习过make以及cmake的规则,但是最近研究一个C++源码,代码是09年写的,需要调整makefile或者cmake文件,所以借此机会好好学习一下make和cmake。 Makefile 假如现在有hello_world.h头文件以及hello_world.cpp源文件如下 hello_wor...

C++ (02) 智能指针

因为目前用的地图引擎是用C++写的,现在也要适当的回顾一下C++语言了。 智能指针 在智能指针出现之前,C++ create一个对象用的new返回的是一个指针对象,即使这个函数已经结束了,C++也不会主动帮忙回收该内存。所以得用代码每次手动delete释放内存。但有了智能指针之后,C++就像Java一样,不需要自己手动回收内存了了。所以只要写的是C++11之后的代码,所有指针当然还是要习惯...

C++ (00) include 头文件与source源文件

在编写C++程序文件的时候,我们会定义头文件在.h / .hpp / .hxx, 源文件.cpp / .cxx / .cc,那他们的区别是什么呢?这也是我长期以来的一个疑问。在查阅资料之后有了一定的了解。 首先得回顾一下一个C程序或者C++程序从代码到能运行需要进行的几个步骤。如下是一个简单的hello world命令,而gcc在将其编译成可执行代码时,需要进行四个步骤, 预处理 ->...

Python的协程与异步

预备知识 线程与进程 一个进程中是允许多个线程存在的,且进程与进程之间拥有完全独立的内存空间与数据。而同一进程内部的线程与线程中,虽都拥有独立的寄存器和栈空间,但他们可以共享代码,数据空间。也正因为这样的一个结构,使得线程之间的通信要比进程之间的通信要容易得多。 并发与并行 我们一般写的同步代码,就如同图中的Sequential(顺序执行),一个任务(蓝色圆圈为一个任务)完成了,才会...

How to use custom packages in spark cluster

Sometimes when we use Spark to do the data analysis job, we want to use our own python package. We know the Spark cluster has the driver node and executor nodes. Usually driver is our own server s...

PostGIS

Overview From OSM data introduction, we are more familiar with the original OSM data. But if we want to apply it to more scenarios, it is necessary to manage the map data in database. Besides all ...

Python Web

背景 由于机器学习,深度学习,数据分析,数据挖掘的兴起,且因为Python脚本语言上手极快,使得Python这门语言非常火热🔥。但其应用场景多在运维,爬虫,以及机器学习数据挖掘方面。现在本人的职位是算法工程师,更希望注重于机器学习深度学习算法的效果及实现,但在项目中不免要给算法做稳定的网络微服务。所以在工作过程中,算法的逻辑和稳定性和后台的稳定性有时候得一把抓。Java的确是一门不错的语言,...

word2vec

当刚开始学习自然语言处理深度学习课程的时候,第一步就是向量化,即如何把一篇文章,一个句子转换成数据输入。而文章段落句子都是由词语单词构成的,如果能把这些最小单元结构向量化,句子自然就可以作为输入了。 One Hot表达 最简单的方式就是One-Hot独热编码表达。用词向量来表示词并不是word2vec的首创,在很久之前就出现了。最早的词向量是很冗长的,它使用是词向量维度大小为整个词汇表的大...

匈牙利算法介绍

背景 因为入职不久,最近在接手一个外卖的分配问题,即在一个区域同时产生多个订单,且该区域有多个骑手,在只考虑一个骑手只能接一单的情况下,订单与骑手之间到底应该如何分配。在第一版解决方案中我们使用的是匈牙利算法,目前还在测试当中,还没有上线,希望其能有不错的效果。写此博客,专门为了好好了解其基本原理,而不是只会按部就班用现成的库,而根本不懂其原理。 匈牙利算法原理 在了解匈牙利算法之前,首先...

2020新年

不知不觉,到了写2020年博客的时候了。随着年龄的增大,越发感觉时光的流逝。与好友欣赏完好听的交响乐,看完美丽的烟花🎇,给我这个单身狗的凄凉上增添了许多喜悦之情哈哈。 2019年,对我来说也是奇妙的一年。上半年忙着做项目,搞毕设,兢兢业业忙到毕业~下半年只身前往新加坡,在这个陌生的国度打拼,开启自己新的篇章。第一次领工资,第一次独立完成项目,第一次出差…的确整个2019收获很多,但2019...

2019冲鸭

不知不觉,2019年就这么到来了。回顾2018,经历了很多,就不回顾了,就让这一些经历和收获深藏心中。更希望2019能有更美好的未来,还是要立一些Flag的吧哈哈。 吉他 吉他,哎吉他这件事真的很尴尬啊。上半年是真的没时间学习了,不晓得以后有没有机会坚持下来。希望工作了之后,适应新生活之后,还是报个班,系统的学习。自己学总感觉有点瞎胡闹。还能把乐理好好学学。 健身 希望自己的腿能恢复如初...

找工作流水账

基本情况 楼主普通九八五本硕,硕士地理信息系统方向。不是其他帖子里那些手拿BAT offer求比较的大牛,也算运气好找到了份工作。之前没有任何机器学习深度学习相关经验,去年年底打算找互联网算法工作,从零基础准备算法到找工作近一年,体会到个中辛酸和残酷。现在秋招差不多也结束了,便在这根据今年的找到工作经历记个流水账,供以后找工作的同学参考,也给自己近一年找工作的经历总个结,画个句号。 建议...