一个计算机技术爱好者与学习者

0%

前言

该怎么强调调试的重要性呢?我们生病的时候,要去看医生,医生会通过各种仪器对我们进行检查,定位病因,然后给我们治疗。程序也会生病,生病的时候,作为医生(开发者)的我们,就要通过各种办法定位bug,然后修改代码。定位bug并且修改代码的过程,就是调试。

最简单直接的调试办法是摘出需要调试的部分,放入 main.php 中,然后运行脚本:php main.php
前提是调试环境要安装好php,检查方法:php -v

但是,这种方法并不适合项目的调试,因为项目中涉及到很多上下文,模拟起来会比较麻烦。这时候就需要调试工具出场了。

PHP的调试工具有很多,本文记录一下Xdebug的使用方法。配合使用的集成环境为laragon-1.0,IDE为PhpStorm-2016.2.1。

阅读全文 »

前言

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。

内部排序大致分为五种:交换排序、插入排序、选择排序、归并排序和基数排序。其中交换排序包括冒泡排序和快速排序、插入排序包括直接插入排序和希尔排序,选择排序包括简单选择排序和堆排序。

当n较大时,应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序。

快速排序目前是内部排序中最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短。

阅读全文 »

前言

OpenStack的安装是一个难点,非常难。哪怕已经安装过OpenStack,再次安装,也不敢说一定成功。安装过程中某处细微变化,也许就会出现各种奇葩错误。

总的来说,OpenStack大致分为4种安装方式:
1、基于虚拟机的快速体验安装。
这是最简单的方法,把搭建好环境的虚拟机运行起来即可。但是,遗憾的是,在网上没有找到OpenStack的虚拟机镜像。

2、基于DevStack快速脚本安装。
这是OpenStack官方推荐的方式,安装速度较快,基于Folsom版本。但是,安装过程中一言不合就报错,困难重重。

3、使用自动化安装工具。
RDO、Fuel、Puppet、Chef、Salt等,都是OpenStack的自动化安装工具。说是自动化安装工具,实际上安装配置时,也是非常繁琐。

4、手动安装。
这种方式最困难,但是实际生产环境下,基本都需要手动安装。

本文,就探讨一下在VirtualBox中使用DevStack安装OpenStack的步骤。也就是说,我们要自己创建一个OpenStack的虚拟机镜像。

阅读全文 »

云计算

“云”是两个比喻:第一个比喻是互联网,计算资源不在本地,在互联网的另一端(云端)。第二个比喻是群组,天上的云是雨滴的汇聚成群组,云计算中的云是计算资源的群组。

云计算有一个愿景,就是希望把计算像水电一样提供给用户使用。然而用户并不是直接使用电,而是使用电灯电视等;同样,用户并不会直接使用计算资源,而是使用在计算资源上层开发的一些应用。

“云”是分层的:

  • IaaS:Infrastructure-as-a-Service,基础设施即服务。
  • PaaS:Platform-as-a-Service,平台即服务。
  • SaaS:Software-as-a-Service,软件即服务。
阅读全文 »