Inspirer

文章列表

HTTP 中的幂等操作

在做 web 端开发,常常和各种请求打交道。HTTP 协议中,常见的请求不外乎是 GETPOSTPUTDELETEHEAD。其中,GET、PUT、DELTE、HEAD 都是幂等操作,而 POST 则不是。那么什么是幂等操作?其存在的意义和网站的设计与架构有什么关系呢?

替换 laravel 分页组件默认生成的模板

在使用 Laravel 分页功能时,需要配合使用前端框架 Bootstrap 的分页组件,这两者结合甚为紧密。可是由于我的博客更换为 AmazeUI,而 AmazeUI 分页组件使用的 CSS 类选择器是 .am-pagination 而不是 Bootstrap 的 .pagination

那么如何在不修改框架代码的前提下替换默认的 Laravel Pagination 生成的 html 模板呢?本文将通过利用 Laravel Service Provider (服务提供者)实现该需求。通过了解本文的内容大家也可以实现更多的分页样式。

使用 xunsearch 构建全文搜索功能

很多人希望自己的站点拥有一个强大的搜索功能,用于检索自己站点上的内容,以便于用户访问时快速寻找有用信息。一般的方式是利用 SQL 的 LIKE 语句。但是这样的检索命中率底下且效率不高,其次是程序逻辑实现更为复杂,对于简单的搜索勉强行得通,如果想实现更为高级的效果,就需要使用全文搜索引擎

大家肯定听说过 SphinxElastic searchXunsearch(讯搜) 或者其他全文搜索引擎。由于讯搜天然支持中文分词,也就成为了我的第一选择。本篇博客内容仅针对大致的架设方法讲解,作为国内开发的全文搜索引擎,文档也很清晰,建议有更多需求的去阅读官方网站下的 SDK 文档:xunsearch 官方网站

解决 mount 挂载 windows 共享目录导致出现的内存无法分配问题

原文转载自:http://jlcoady.net/windows/how-to-resolve-mount-error12-cannot-allocate-memory-windows-share 《How to Resolve “mount error(12): Cannot allocate memory” on a Windows Share》

原文的中说的步骤很简单。

  1. Set “HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache” to “1″. 即编辑注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCach 这一项的值,设置为 1

  2. Set “HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size” to “3″. 编辑注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size 这一项的值,设置为 3

  3. Restart the “server” service. 重启名为 Server 的服务即可。

使用 git subtree 集成项目到子目录

本文转载自 http://aoxuis.me/post/2013-08-06-git-subtree

使用场景

例如,在项目 Game 中有一个子目录 AI。Game 和 AI 分别是一个独立的 git 项目,可以分开维护。为了避免直接复制粘贴代码,我们希望 Game 中的 AI 子目录与 AI 的 git 项目关联,有 3 层意思:

  1. AI 子目录使用 AI 的 git 项目来填充,内容保持一致。
  2. 当 AI 的 git 项目代码有更新,可以拉取更新到 Game 项目的 AI 子目录来。
  3. 反过来,当 Game 项目的 AI 子目录有变更,还可以推送这些变更到 AI 的 git 项目。

用 git subtree 可以轻松满足上面的需求。

Windows 与 linux 之间的文件共享

鄙人不喜欢 linux 系统作为开发环境,毕竟 linux 是一个相对反人类的系统。不过 linux 对于生产环境的友好注定了其拥有丰富的库作为各种组件的依赖支持。在开发测试时,需要使用一些仅能跑在 linux 上的库的确让一个长期在 windows 下工作的人感到十分难过,在没有使用 OSX 环境的情况下,我需要一种简单的解决方案。

实际上,建立虚拟机,共享主机与虚拟机之间的文件不失为一种粗糙的解决方案。在 windows 创建、编辑、修改,同时在虚拟机上测试、运行代码。

那么如何建立两者的连接?

PHP 7 开发版本编译安装

不是稳定版,大家看看就好。不过很多新特性已经可以使用。别问我有具体哪些新特性,我也不知道。想要跟进 PHP 开发进度建议到 github 上去,可以看到每个 commit 的情况。:laughing: PHP -github https://github.com/php/php-src

大多数编译过程和之前版本无太大差异,本人也是从网络上找的资料。可能 php 7 有新的编译参数或者其他被废弃的参数,这个需要参考具体文档。不过我在编译期间没有遇到大问题,也没有想要真正测试。因此,本文仅仅是编译安装而不是用于测试。废话不多说了,开始。

访问控制工具 —— iptables

我是一个十分怕麻烦的人。很不幸,学习 linux 真的有时候很麻烦,因为这个系统真的非常不友好,包括这个系统下面的一系列软件和工具,简直不人道。不要试图以高高在上的姿态告诉我命令行是一种人性化的操作模式,这就是放屁。好了,抱怨到此为止。至于为什么要抱怨,原因恰好是今天的主角 —— iptables

我不喜欢 linux 系统的很多工具主要是复杂的命令记忆。iptables 正是如此。不过,也正是这样复杂的工具,提供了无比精细的控制能力。本文作为我个人学习这个工具的笔记,希望能够给同样在学这个的朋友提供一些小小的帮助。

iptables,一个运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的流动与转送。

通常iptables都需要内核层级的模块来配合运作,Xtables是主要在内核层级里面iptables API运作功能的模块。因相关动作上的需要,iptables的操作需要用到超级用户的权限。

—— 摘自维基百科

开启 Nginx 的 Gzip 压缩功能

昨天把博客的服务端由 Apache 换成了 Nginx,发现 Nginx 在某些方面的确更易于使用。至少更为小巧玲珑。同 Apache 类似,两者都内置了 Gzip 模块,通过配置文件直接开启即可,十分方便。本篇文章只是做一个笔记,记录一些东西以便帮助大家。很多内容源自网络,我尽量选取比较详细且有价值的。

开启 Gzip 模块

编辑 Nginx 的配置文件,一般都会看到有这样一个注释了的东西:

# gzip on;

只需要将前面的 # 去掉即可开启 Gzip 模块。当然整个过程显得太简单也不会满足各类人群的要求。我们继续。

笔记

学习笔记,各种杂七杂八的学习笔记。记录着各类小知识,不一定很高大上,但都是给自己提供了帮助的知识。

分类