阿里天池大赛:最后一公里急速配送

前言最近公司组织了一场大咖秀,有位讲师建议我们没事多参加阿里的天池大赛,说是对提高自己很有帮助。于是想起自己几天前看到的FinanceR专栏的天池最后一公里,便紧随偶像步伐,注册并下载了一份数据,凑个热闹。详情请点击赛题介绍简单分析数据有三种类型的节点。第一类是Site,电商订单发货节点。第二类是Shop,O2O订单发货节点。第三类是Spot,消费者收获节点。电商订单的要求

Git Flow简介

Git Flow是什么?Git Flow是一套基于git的工作流程,这个工作流程围绕着project的发布(release)定义了一个严格的如何建立分支的模型。Git建分支是非常cheap的,我们可以任意建立分支,对任意分支再分支,分支开发完后再合并。比较推荐、多见的做法是特性驱动(Feature Driven)的建立分支法(Feature Branch Workflow)

Swoole 小技巧 –––– Swoole取X-Forwarded-For HTTP 请求头

在真正使用Swoole(模块, 非 swooleFramework)开发过项目后, 你会发现有不少的坑. 笔者碰到的第一个就是swoole_http_request支持不完整. swoole_http_request哪些方面的坑呢?不支持 X-Forwarded-For, 这在 Nginx 场景下很致命, 应用取不到客户端真实 IP 还不允许 NGINX 追加字段.不支持

使用MSQL Sandbo快速部署msql

MySQL Sandbox是一个非常简单快捷部署MySQL技术的一个工具套件,它可以让你在同一台机器上,更加快速的无干扰的去达到你的最终目的,比如,作为软件测试人员只是要测试软件系统的良好性不需要在mysql的安装上纠缠过多,不需要对MySQL数据库有太多的经验;有的时候我们只是对新版本的一些特性感兴趣,尽可能快速结束安装部署,而是重点地去体验它的一些特性;可以使用sand

spark 优化套路

spark整个api上手较为简单,scala表达起来比较顺畅,java根据spark官方文档,理解scala的几个特性即可。spark离线处理优化目的减少无效操作,io cpu的有效利用,直接查优化技巧,不如先搞明白spark处理过程。明白以下再对应代码可以解决很多问题。DAG图对应代码 明白过程stages tasks对应实现层shuff过程,如何减少shuff,必须sh

算法学习之算法思想

一、算法的特征和发展由来算法的英文名称是Algorithm,这个词在1957年之前在Webster's New World Dictionary(《韦氏新世界词典》)中还未出现,只能找到带有它的古代涵义的较老形式的“Algorism”(算术),是指用阿拉伯数字进行算术运算的过程。在中世纪时,珠算家用算盘进行计算,而算术家用算术进行计算。根据经验和发展结论得出,算法应该具有如

两个月之前为 Phodal 新书《自己动手设计物联网》作序,今天终于正式开售了

很高兴能为 Phodal 的新书《自己动手设计物联网》作序,关于作序最经典的故事就是蒋百里和梁启超了。蒋百里写《欧洲文艺复兴史》,梁启超阅后大为赞赏,并评论此书为“极有价值之作,述而有创作精神”。蒋百里便请梁启超为此书作序。梁启超觉得简简单单写几句不够,既然此书写的是欧洲,那我序言就写写中国吧,于是序言写完竟比原书字数还多。这可怎么办,喧宾夺主了,于是把这篇序取名为《清代学

算法学习之数据结构线性表、堆、栈

一、喜欢单挑线性表1.线性表的特性线性表是一个线性结构,它是一个含有n≥0个节点的有限序列。在节点中,有且仅有一个开始节点没有前驱并有一个后继节点,有且仅有一个终端节点没有后继并有一个前驱节点。其他的节点都有且仅有一个前驱和一个后继节点。通常可以把一个线性表表示成一个线性序列:k1,k2,…,kn,其中k1是开始节点,kn是终端节点。1.1 线性结构的特征在编程领域中,线性

详解 ESLint 规则,规范你的代码

因为前几天发现 CSDN上有直接把我文章 复制过去然后标原创的情况,以后会统一在博客头部加入原文链接~本文个人博客原址在很久之前就想通过工具来规范自己的代码风格,减少程序出错的概率,如果看过我的一个前端程序猿的Sublime Text3的自我修养,这篇博客的朋友,肯定知道在当时我使用SublimeLinter-jshint插件来规范风格,但是实际上一直懒癌发作也没去看它的文

fsck修复linu文件损坏

数据一定要备份,最好多机备份,代码一定要ci。背景和损失背景:机房事故,突然关机,硬盘年老失修,造成很多文件不可用。如图面临损失:作为一名靠谱程序员,数据库单机多机备份,程序版本控制这些都是有的【如果没有,一定要加上】;但这次有一个重要影响,就是git中commit之后,没有push的文件全损坏了,损坏了,坏了,了。。。。分析原因op给出的说法是网络波动,造成机房故障,机器

JavaScript 面向对象开发知识总结基础篇

引子:1.JavaScript 中的变量类型和类型检测1.1原始类型1.2引用类型1.3內建类型的实例化1.4函数的字面形式1.5正则表达式的字面形式1.6类型检测1.6.1原始类型的检测1.6.2鉴别引用类型1.6.3鉴别数组1.6.4原始封装类型2.JavaScript 中的函数2.1定义函数的两种方式2.1.1函数声明2.1.2函数表达式2.2JavaScript函数

lingo学习篇

1、整数规划-gin都变成整数,要放在end后max 5x1+8x2stx1+x2@bnd(取值范围)## 3、复杂问题求解Model:Sets: !定义集合;CK/1..10/:d,y; !10个仓库,y和d都是10维的变量,其中y是01变量,d由下面数据给定;KH/1..20/; !20个客户;SS(CK,KH):x,c; !x和c都是

为你的博客添加搜索功能吧!

Search-Spider-Blog提供个人博客文章搜索服务, 只需要配置个人博客地址, 载入博客数据, 开启Server服务, 即可开启文章搜索服务。对blogconfig.json配置文件监控, 修改后服务及时地更新博客数据。本人用的为Hexo Blog, 所以Hexo用户体验更佳代码地址使用说明环境配置after clone && cdnpm i 对 blogconf

接口规范想哪说哪

java服务型RPC框架所选用的远程调用方式有两种风格:用jar包和纯REST方式。 jar包方式的好处是用了对方提供的二方包,API都打在里面了,使用时直接能弹出提示;问题也很明显,随着引用的jar包越来越多,排包工作占了一半时间。REST方式则直接以HTTP协议作为载体传递数据,彻底解耦了与调用方的关系;但这时不能像jar包那样方便的从IDE弹出使用提示了,要先看对方给

几种常用的排序算法

本文讨论两种著名且很有用的排序算法:插入排序,快速排序。插入排序插入排序的思想与打牌起牌类似:每次从牌堆里拿一张牌,插入到已经排好序的牌中。具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,从该元素开始,从后向前扫描表如果前一个元素大于后一个元素,则交换两个元素的位置重复步骤 3,直到前一个元素不大于后一个元素重复步骤 2~4现有一组数组 A =

linu下qt使用第三方库的那些事

关于在linux下使用第三方库,对于新手来说总是折腾的尼玛的痛苦(我就是新手)。所以为了给大家指引怎么正确使用第三方库,本篇特意介绍qt是怎么搭建第三方环境开发的。开发库查看工具:$sudo apt-get install pkg-config很多时候我们并不知道自己电脑有没有这个库,所以我们可以使用这个工具来查看自己有哪些工具,或者哪些工具没有。同时,qmake是对这个工

学习弹性布局flebo

学习 flexbox学习基础语法,可以根据demo里面的代码理解每一个属性和值。CSS3 弹性框(Flexible Box 或 Flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当排布行为的布局方式。相关的术语弹性容器(Flex container):包含着弹性项目的父元素。通过设置 display 属性的值为 flex 或 inline-fl

使用kNN算法实现简单的手写文字识别

0. 介绍kNN,即k-Nearest Neighbor(k近邻算法), 简介可参考KNN的一些总结. 本文是《机器学习实战》一书第二章的例子, 主要利用kNN实现简单的手写文字识别.书中使用Python实现, 本文是使用R语言. 数据集中的图片分辨率为32*32, 并且该数据已经预处理成文本文件, 即类似点阵字体, 使用1代表有文字的像素, 0表示空白.1. kNN算法实

一步步编写avalon组件05:树组件

给人印象中,树组件是非常令人畏惧的一个组件,超级复杂,超级难写。但使用avalon2来做,这却是级其简单的一件事。首先从样式入做,无序列表是天然可用的树结构,几个UL元素套在一起,它们就自然处理好缩进问题。换言之,我们用UL元素作为树的节点,那么树组件内部也需要存在树组件,需要形成递归结构。avalon2的slot机制又是出场的时候了。因此我们的树的结构大概是树子树子树子树

Git学习之路

Git是目前世界上最先进的分布式版本控制系统。Git同时也是Linus改变世界的第二大创举。关于分布式和集中式的区别,可以看一下这篇文章集中式vs分布式一.名词解析1.工作区文件所在的文件夹2.版本库文件夹中含有.git的隐藏文件夹。通过add添加的文件被添加到暂存区,commit提交后,把暂存区的所有内容提交到分支上。二.基本操作1. 用户配置git config --g