Month: October 2018

Linux 开发的五大必备工具, Linux容器, 版本控制, 文本编辑, IDE, 文本比较

Linux 已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在 Linux 的帮助下,技术的变革速度超出了人们的想象,Linux 开发的速度也以指数规模增长。因此,越来越多的开发者也不断地加入开源和学习 Linux 开发地潮流当中。在这个过程之中,合适的工具是必不可少的,可喜的是,随着 Linux 的发展,大量适用于 Linux 的开发工具也不断成熟。甚至可以说,这样的工具已经多得有点惊人。 为了选择更合适自己的开发工具,缩小选择范围是很必要的。但是这篇文章并不会要求你必须使用某个工具,而只是缩小到五个工具类别,然后对每个类别提供一个例子。然而,对于大多数类别,都会有不止一种选择。下面我们来看一下。 容器 放眼于现实,现在已经是容器的时代了。容器既及其容易部署,又可以方便地构建开发环境。如果你针对的是特定的平台的开发,将开发流程所需要的各种工具都创建到容器映像中是一种很好的方法,只要使用这一个容器映像,就能够快速启动大量运行所需服务的实例。 一个使用容器的最佳范例是使用 Docker ,使用容器(或 Docker)有这些好处: 开发环境保持一致 部署后即可运行 易于跨平台部署 Docker 映像适用于多种开发环境和语言 部署单个容器或容器集群都并不繁琐 通过 Docker Hub ,几乎可以找到适用于任何平台、任何开发环境、任何服务器、任何服务的映像,几乎可以满足任何一种需求。使用 Docker Hub 中的映像,就相当于免除了搭建开发环境的步骤,可以直接开始开发应用程序、服务器、API 或服务。 Docker 在所有 Linux 平台上都很容易安装,例如可以通过终端输入以下命令在 Ubuntu 上安装 Docker: sudo… Read More

MySQL: 永远不要在MySQL中使用“utf8”, MySQL中的utf8mb4和utf8

  最近我遇到了一个 bug,我试着通过 Rails 在以“utf8”编码的 MariaDB 中保存一个 UTF-8 字符串,然后出现了一个离奇的错误: Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1 我用的是 UTF-8 编码的客户端,服务器也是 UTF-8 编码的,数据库也是,就连要保存的这个字符串“ <…”也是合法的 UTF-8。 问题的症结在于,MySQL 的“utf8”实际上不是真正的 UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。 MySQL 一直没有修复这个 bug,他们在 2010 年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。 当然,他们并没有对新的字符集广而告之(可能是因为这个 bug… Read More

PHP: 模拟 POST 提交表单, Sending POST data without form, send a POST request with PHP

  方法有很多种,比如用 AJAX: $.post('/foo.php', { key1: 'value1', key2: 'value2' }, function(result) { alert('successfully posted key1=value1&key2=value2 to foo.php'); }); 又比如用CURL: function httpPost($url, $data) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl);

JavaScript: 文本替换, 替换全部, 正则替换文本, How to replace all occurrences of a string in JavaScript?

一次 replace只能替换一个,例如: var str = 'test test test test' console.log(str.replace('test', 'tester')) 通过正则可以一下替换全部: someString = 'the cat looks like a cat'; anotherString = someString.replace(/cat/g, 'dog'); // anotherString now contains "the dog looks like a dog"     更多参考:http://www.tizag.com/javascriptT/javascript-string-replace.php   本文:JavaScript: 文本替换,… Read More

手动升级phpMyAdmin, How to Manually Upgrade phpMyAdmin

  首先要去下载最新版本: phpMyAdmin download page 1. Backup phpMyAdmin 备份当前phpmyadmin # 备份 sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak # 创建新的文件夹 sudo mkdir /usr/share/phpmyadmin/ # 进入这个文件夹 cd /usr/share/phpmyadmin/   2. Download and Extract phpMyAdmin 下载并解压 下载需要的版本: phpMyAdmin download page # 我们用4.8.3版本测试 sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.8.3/phpMyAdmin-4.8.3-all-languages.tar.gz… Read More

PHP操作远程mongodb数据库, MongoDB PHP Library, php connects with remote MongoDB

MongoDB PHP Library 项目地址:https://github.com/mongodb/mongo-php-library 官网手册:https://docs.mongodb.com/php-library/master/tutorial/crud/ php driver for mongodb : 安装mongodb的php驱动:Ubuntu: 安装MongoDB, Install MongoDB With Apache2, PHP 7.2 Support On Ubuntu 16.04 / 17.10 / 18.04 官网可视化工具:https://www.mongodb.com/download-center?initial=true&from=dcv2#community Installation 安装库 composer require mongodb/mongodb 不知道composer是啥的同学,可以移步到:PHP: Composer 依赖管理 Composer Cheat Sheet for developers… Read More

shell文件无法用sh执行, sh无法执行数组, `Syntax error: “(” unexpected` when creating an array

Ubuntu bash functions..syntax error: “(” or “}” unexpected 如果用 sh 不执行一个shell文件,可以尝试使用 bash 执行 # 不通过 sh init.sh # 尝试 bash init.sh 如果bash可行,那么为了使sh也可以使用,你需要修改默认的dash方式,如下图: dpkg-reconfigure dash 如图,设置为 NO 即可,这样的话,取消了 sh 作为默认的 dash,那么,当你使用 sh 命令的时候,其实就是执行了 bash 命令。       拓展: Linux 中的… Read More