首页
Calvin's Blog
Cancel

汇编语言基础

我们平常学习的编程语言,如 C, C++, Java, C#,Python等等都是高级语言。我们也都知道,机器只能理解执行0101的代码,那高级语言如何转换为机器语言的? 其实高级语言是通过编译器转换为机器语言的,在编译过程中间会生成一个过渡性的语言,叫汇编语言,高级语言屏蔽了实现的细节,如对内存的操作,而汇编语言是低级语言,是通过指令直接对硬件,如CPU的寄存器和内存进行操作的语言,早期...

在 Ubuntu 上安装 Nginx 并支持 PHP

最近整理了一下博客系统,迁移到了Jekyll模板,发现Apache2服务器不支持中文路径,研究了一番没有找到解决方法,测试了nginx可以默认支持中文路径,遂整理一下,把 Apache2 换成了 Nginx 本文所述的步骤在 Ubuntu 18.04 上测试通过。 安装 Nginx 使用 apt-get 安装 nginx # 更新 APT 源 sudo apt-get updat...

基于 PowerShell 的 Web Server 简单实现

最近项目中有个需求,就是现有很多已经存在的PowerShell脚本,但是命令行的方式不是很方便使用,希望能集成到一个Web界面,简化用户操作难度。 经过简单调研,发现可以使用 HttpListener 创建一个对象在本地侦听在自对应端口,就可以实现一个简单的Web服务器,具体实现如下。 简单实现 先创建一个POC,代码如下,保存到 webserver.ps1 $http = [System...

Bash 踩坑指南

最近项目逐步迁移到AWS平台上,相关的代码管理和自动化部署也由TFS迁移到GitHub+Jenkins方案上,为此写了不少的bash脚本用来自动化部署和测试,也踩了相当多的坑,在此总结一下。 Shell的种类 和Windows平台不一样,在Linux系统下,有多种Shell,所以同样的脚本,不同的解释器执行结果可能是不一样的,下面列举了常见的Shell种类。 sh : sh...

Docker 使用整理

Docker 安装 Windows https://www.docker.com/docker-windows Ubuntu https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#uninstall-old-versions # Uninstall Old Docker sudo apt-get remo...

给 Sublime Text 创建一个 markdeep 插件

本文介绍如何创建一个Sublime Text 3的插件,并用这个插件自动预览markdown文件 markdeep 简介 markdeep 是一个轻巧的markdown解析器,只需要一行代码就可以直接解析本地的markdown文件。 使用方法是将md文件改名为html结尾,如 test.md 改成 test.md.html,并且在文件最后面增加如下代码,双击用浏览器打开即可 &l...

Sublime Text 使用小结

Sublime Text 简介 Sublime Text 是一个轻量、简洁、高效、跨平台的编辑器。 它启动速度快,颜值高,对各类变成语言都有很好的支持。 Sublime Text 使用技巧 竖行选择 首先将光标移到要操作内容的第一行,按住 Shift 键,再按住鼠标右键,往下拖动,就可以出现多个光标。 此时,再输入文字,或者做其他操作,都会在多行同时执行。 可以使用下面文字做测试,如:...

在 Ubuntu 上安装配置 PHP 环境

原有的服务器快到期了,趁活动搞了个阿里云的Ubuntu主机,所以将一些测试的php代码移到这台主机下,下面记录一下在阿里云的Ubuntu上安装php环境的步骤。 系统概况 OS : Ubuntu 18.04 Web服务器 : Apache2 PHP : PHP 7.0 + 数据库 : Mysql 5.6 + 安装 Apache2 & PHP # 更新apt-...

如何在 JavaScript 中使用 Async Await

JavaScript 是一个同步的单线程执行的语言,这意味着,JS代码是从头到挨着顺序执行的,这肯定跟我们大多数多JS开发的人心里的想法不符,因为写JS需要很多异步操作,包括请求网络资源(Web),本地文件资源(NodeJS),甚至异步的逻辑写太多了,以至于出现回调地狱,而JS也提出了Promise, Async Await等方法来避免回调地狱。 复习JavaScript的回调机制 做...

Javascript 对象继承

Javascript 没有直接的对象继承,可以通过原型继承的方式来实现,下面是一种实现方法。 定义父类 将方法写到原型(prototype)上 function Person(name, age) { this.name = name; this.age = age; }; Person.prototype.greeting = function() { console.lo...