安装nodejs


sudo apt-get install nodejs

sudo apt-get install npm

全局安装包


sudo npm i -g cnpm

查看全局安装的包


npm list -g --depth 0

全局卸载包


sudo npm uninstall -g cnpm

清理缓存


npm cache clean -f

默认镜像太慢换淘宝镜像


npm config set registry https://registry.npm.taobao.org

现在我常使用cnpm包

检查配置是否成功


npm config get registry
📅 2019-03-12

想达到本文效果,需使用wepy框架。不了解wepy?转https://tencent.github.io/wepy/index.html

什么是async/await?

在最新的ES7(ES2017)中提出的前端异步特性:async、await。

async顾名思义是“异步”的意思,async用于声明一个函数是异步的。而await从字面意思上是“等待”的意思,就是用于等待异步完成。也就是我们平常所说的异步等待。不过需注意await只能在async函数中使用

为什么需要async/await?

在async/await之前,我们有三种方式写异步代码

1. 嵌套回调

其中思想就是,a函数执行完了得到的结果后在执行b。

形如


wx.getSetting({

      success(res) {

        console.log(res.authSetting['scope.userLocation']);

        if (!res.authSetting['scope.userLocation']) {

          wx.authorize({

            scope: 'scope.userLocation',

            fail(res) {

              Toast('无法获取位置,采用默认排序');

            }

          });

        } else {

          wx.getLocation({

            type: 'wgs84',

            success(res) {

              _this.setData({ location: res });

              console.log('您的位置信息:', res);

            },

            fail() {

              Toast('无法获取位置,采用默认排序');

            }

          });

        }

      }

    });

上面的代码你不用看,就会感觉。这啥东西?乱七八糟的。这就是嵌套回调。很不巧,原生微信小程序开发就是这样的。

2. 以Promise为主的链式回调

所谓Promise,简单来说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。形如


var p1 = new Promise((resolve, reject) => {

 setTimeout(resolve, 1000, 'done');

 })

p1.then(data=>{

 console.log(data); // done

})

如果你的函数够多的话,那么就会一直then()下去。

📅 2019-03-06
我决定三天不上微信

好好学习

每天花大把时间在微信上,但其实有没有什么重要的事情。仔细统计了一下,如果我一天不看微信,每天至少可以多出1-3h。每次都高估了自己被世界需要的可能性。没看手机时,以为全世界都在找我,看手机时发现没人关注我。

预备,晚上

今晚会不会有人发现我不在了?一想到要坚持三天就感觉有点困难。

第一天

正常

第二天

由于不可抗力,该计划被迫终止。

📅 2019-02-18
毕业设计思路篇(一)之交通图的构建

2019-01-13 10-50-54屏幕截图.png

1. 导入道路地图

道路地图来自网络数据,已预处理为xml格式。


<?xml version='1.0' encoding='UTF-8'?>

<Roads>

  <road m_ID="71283896--1" len="620.98">

    <from lon="113.9205606" lat="22.9317667" id="848388981"/>

    <to lon="113.9260573" lat="22.9341232" id="2522072722"/>

  </road>

  <road m_ID="553852656--2" len="322.34">

    <from lon="113.9529339" lat="22.9448978" id="5345735265"/>

    <to lon="113.9516926" lat="22.9475618" id="5345735267"/>

  </road>

</Roads>

解析:一个road节点代表一条道路,len代表道路抽象长度,from,to子节点分别表示道路两端端点。

2. 解析道路数据

a. 构建交通图

赋值道路端点.


/**

*  路口类,记录着该路口的点坐标,以及其相连的方向道路节点组

 *               |           |

 *               |     |     |

 *               |  1     2  |

 *               |     |     |

 *        --------           --------

 *           3                  5

 *        - - - -            - - - -

 *           4                  6

 *        --------           --------

 *               |     |     |

 *               |  7     8  |

 *               |     |     |

 *               |           |

 *    如上图(1,2), (3,4), (5,6), (7,8)在同一个方向,我将其称为四组方向道路节点Node.

 *    其中,Node.inRoadID=1, Node.outRoadID=2;

 *         Node.inRoadID=4, Node.outRoadID=3;

 *         ...

 *         根据车辆靠右行原则以此类推.

*/

class CrossRoad {

public:

    CrossRoad(float fLon,float fLat) : m_fLat(fLat),m_fLon(fLon){};

    /**

     * 重载运算符 (==) 判断两个路口是否为同一个

     */

    bool operator==(CrossRoad &crossRoad);

    /**

     * 添加道路节点ID

     * @param in 入度

     * @param out 出度

     * @param atan2 该点与方向道路的atan2值

     */

    void addNode(int in,int out,double atan2);

public:

    //唯一标示符

    int m_nID;

    //经纬度的定义

    float m_fLon, m_fLat;

    vector<Node> JunctionRoad;

    //该路口的交通灯

    TrafficLight m_CTrafficLight_Light;

};

CrossRoad A,B

📅 2019-02-17

generateVehicle(Map_Graph);

1. 随机车辆总数

  • 此处未随机,待完善

std::random_device rd;

std::mt19937 mt(rd());

2. 遍历车辆,为车辆设立起点和路线

a. 在道路向量中随机选一条路径

-[ ] 此处未随机,待完善


auto route = v_Route[3];

b. 以该路径的首序列为起点


Vehicle car(n_VehicleNum, route, 0, 0, route.front());

G.m_Road_v[route.front()].m_queVehicle.push_back(car);
📅 2019-02-17

layout: post

title: 推荐一个(神器级)服务器软件

tags:

  • 服务器软件推荐

  • 宝塔linux面板

  • 服务器管理工具

categories:

  • 软件推荐

abbrlink: f4f7

date: 2017-12-15 18:41:56


简单好用的 Linux/Windows 面板

前言:首先要说的是,它在我看来就是一件神器!

何为神器? 那就是以后遇到必装 ,而且在没有遇到更神的神器之前,将会一直使用下去。

如果你是新手:使用它:你可以不再为配置ftp,apache,mysql,ssl,等操作而发愁了,因为,所有的操作,在此神器的帮助下,都可以在你的点点戳戳之间实现,不得不拍案叫绝!

如果你是大佬:使用它,你可以不用自己配环境,找配置文件,对着黑框框,一对一下午了(当然如果对黑框框有特殊情怀的除外)

它的名字叫——“宝塔”

它是什么

它是一个,服务器面板控制端软件

它能干什么

它可以让你把一些基本的服务器操作转移到网站上的可视化操作,例如站点管理,服务管理,子网站管理,端口管理,服务器监控等

我们该如何使用它

咳咳,这是我想说的重点,接下来我将使用它傻瓜式的搭建一个支持https,支持ftp的站点。

使用环境: 服务器提供商-腾讯云

服务器系统: Centos 6.6(64位纯净版)

操作客户端:win 10企业版(1709)

SSH连接软件:MobaXterm Personal Edition(也是一大神器)

日期时间:2017年12月15日

1.ssh连接服务器

连接服务器

2.安装宝塔软件


yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

仅支持32位系统

安装成功后是这样的

宝塔Linux面板安装成功

在这儿它说

控制面板链接为:http://119.28.73.46:8888

用户: admin

📅 2019-02-16

title: codeigniter | codeigniter的一些笔记

tags: codeigniter

categories: 笔记

abbrlink: 15d8

date: 2018-04-02 13:15:42

thumbnail:


codeigniter 部署坑

session 文件路径问题

解决方法

在application/config/config.php 中最后一行, 加入


$config['sess_save_path'] =BASEPATH.'../'.'session_file';

原因

未设置ssesion文件路径,会默认使用php.ini的文件路径,可能会出现无路径访问权限的问题

baseurl 修改

要记得修改baseurl的值,以免出现访问不成功的情况


$config['base_url'] = 'https://www.farminbackyard.com';

pasue;

📅 2019-02-16

layout: post

title: Deepin下Clion的相关问题

tags:

  • C++

categories:

  • 笔记

abbrlink: dd6c

date: 2018-09-10 08:33:30


此文记录Deepin下Clion的相关问题

toolchain不完整


sudo apt-get install build-essential

待续

📅 2019-02-16

继上次被坑后,由于未做笔记, 没想的我再次败在这个坑上, 自我感觉我还将使用bootstraap-table一段时间, 所以为了避免下次再被这个坑坑一个下午的时间. 我决定将它记录下来.

首先, 前端table插件有很多, 但是由于它是我接触的第一个,所以可能会用它一定的时间.

我采用的是, data-url,数据与视图分离的格式.

坑:

  1. 在operation的formatter和events的设定时, 切记不要设置data-field的值,否则会出现events显示不了的情况 .
  1. 在引入js拓展时,注意后面的js不能与其冲突,导致改变引入顺序
📅 2019-02-16
毕业设计汇总篇

2019-02-12 12-19-50屏幕截图.png

思路篇

思路篇主要记录程序流程思路

毕业设计思路篇(一)之道路数据的抽象

毕业设计思路篇(二)之交通灯的初始化

毕业设计思路篇(三)之预加载车辆路线

毕业设计思路篇(四)之生成车辆

毕业设计思路篇(五)之交通流量模拟

番外篇

番外篇主要记录非主要流程(即并非每次运行都会执行的模块,比如预处理等)。每个模块可单独修改或维护,而不影响主流程。

毕业设计番外篇(一)之车辆路径的构建

📅 2019-02-12