javascript作用域链 2014-03-31

1.什么是javascript的作用域链:

由于js变量都是对象的属性,而该对象有可能是其他对象的属性,同时所有对象都是windows对象的属性,所以这些对象的关系可以看做是一条链,链头是变量所处得对象,链尾就是windows对象

(待续)

mysql查询性能优化笔记(一) 2014-03-26

首先需要说明的是:mysql的优化分为3个层面的优化,它们分别是:数据库架构(schema),索引优化和查询优化,这3种优化相辅相成,但是正如博客标题所示,这里只讨论查询优化。

首先在查询优化的时候,我们需要先抛出这样两个结论(一切的优化都在这两个层面上去考虑): 1. 查明我们的web后端语言是不是获取了超过需求的数据(访问了过多的行和列) 2. 查明mysql服务器是否分析了超过需求的行

抛出结论后我们再详细解释为什么是这个结论:

针对第一条结论我们又可以细分为下面几点:

1) 提取超过需求的列 select * from fundNav; select * from fundNav limit 10;

2) 多表连接(Multitable Join)时提取所有列 Mysql-> select * FROM sina.actor -> INNER JOIN sina.film_actor USING(actor_id) -> INNER JOIN sina.film USING(film_id) -> WHERE sina.film.title = ‘xianyou’;

搭建比较高效的mail服务(二) 2014-03-02

上一篇博客中,我搭建了sendmail服务用来支撑我这篇博客中要讲的mail服务

之所以要搭建sendmail,是因为php内部函数其实调用的底层就是sendmail,它通过popen方式将发送命令通过shell的方式交给sendmail执行,如果你对php源码对mail函数的处理感兴趣,可以在github 上面去阅读,当然你有源码的话,可以在 ext/standard/mail.c 中查看,我这里截图说明重点部分,只是说明原理

mail在php中的实现

好了,既然mail在底层调用sendmail执行,那么这里有个坑不得不说,事实上php只是popen去调用shell,然后返回给用户是否调用成功,但是他无法像socket一样,建立可靠的通信能够回传执行结果,所以也就是说你在php代码中不可轻易的相信mail返回true就是一定成功发邮件,这里还得靠sendmail

(待续)

ubuntu 搭建mail服务(一) 2014-02-12

由于用php发EMAIL需要sendmail , 就找一下GOOGLE大神帮忙了,但弄了一个晚上, 还好, 最好可以了….步骤如下:

1, 安装 sudo apt-get install sendmail

2,Sendmail默认只会为本机用户发送邮件,要它可以对internet发的话, 先打开Sendmail的配置宏文件/etc/mail/sendmail.mc。找到Port=smtp, Addr=127.0.0.1’)dnl 改成 Port=smtp, Addr=0.0.0.0’)dnl , 保存

[root@localhost ~]#cd /etc/mail
[root@localhost ~]#mv sendmail.cf sendmail.org ;备份原来的Sendmail配置文件
[root@localhost ~]#m4 sendmail.mc > sendmail.cf ;生成新的Sendmail配置文件

3, 测试: echo “test mail ok” | mail -s “test mail ok” xxxxxxxxx@qq.com 时 , 出错:

程序 ‘mail’ 已包含在下列软件包中:

  • heirloom-mailx

    • mailutils

请尝试:sudo apt-get install <选定的软件包>

如何抓取很长的网页到微博 2013-12-03

其实你们没有发现 sina微博的图片服务做的很优秀,动辄M级大小的图片都可以轻而易举的刷出来 可能有很多人都拿weibo作为图床 恩 的确不错

那么下面我的微博是为你遇到下面的这件事情儿写的:

一个网页纯文字性质的东西太多,本来我就想把它保存成txt放在手机慢慢看 或者把它存在evernote中 但是这个想法很快的被天煞的配图给磨灭了 什么?有人说大不了不要 不要不行 就是不行 因为配图很有说服力 嘿嘿

好的,上面的事情我们可以换个角度,既然上面说了,weibo的图床很给力,我们干嘛不舍弃点流量放在weibo上啊 对于我这种weibo重度用户 随时上weibo是必须的

好了 想法有了 所以我就写个小demo 教会大家

在做这件事情的时候你必须具备如下动手能力:

1.你使用的是chrome

2.你知道怎么装plugin 也就是插件

3.动手能力

废话一堆了 不能墨迹了 速度上配图和文字(下面的教程以抓取知乎为图片为例 具有典型性):

port_selfupdate_failure 2013-11-20

昨晚准备了一晚上的新环境问题,全部夭折在port selfupdate上,先是提示需要更新,port selfupdate 后发现,一直停留在更新界面上,忘了 -v 参数

今晚回来继续更新,却提示 Fix “macports checking for Tcl configuration… configure: error: Can’t find Tcl configuration definitions” when selfupdating Macports in Mac OS X 10.9 Mavericks 如此的错误,然后 -v 之后发现,提示如下:

macports checking for Tcl configuration... configure: error: Can't find Tcl configuration definitions

好吧,看样子是xcode问题,于是如下:

sudo xcode-select --install
sudo xcodebuild -license

然后继续更新

sudo port -v selfupdate

网速好的情况下,2分钟搞定

debug and test apache rewrite 2013-08-26

How to use mac port 2013-08-19

1.port是不是常说的端口?

这里的port是 macports 的简称,所以也就和port端口没有了关系

2.啥是port?

不做官方的说明,就一句话:ubuntu之于apt-get,就如同mac之于port,所以很多人发现port都来自于这样的问题搜索:mac上有木有像unbuntu上面的apt-get一样或者类似的软件,不做官方的文字性介绍

但是还是得介绍一个网址:

macPorts’s website

3.如何安装?

移步官网,这是个习惯问题,官网有的,就不去二手市场,牺牲点可能性的速度都不是问题,好吧,这是我的一个洁癖或者强迫症

点击上面的链接,经过等待到蛋疼的时间后,网页终于加载进来了,右上角有个 download 链接,强烈建议大家看网上教程的时候多少看看文章发布时间,加入我今天写的download链接在右上角,结果今晚网站改版了,你别在那里骂娘

看完上面的废话后来一句简洁的:下载 dmg 文件,下一步下一步的走完(piece by piece)

rewriting for restful 2013-07-01

先看看两个URL的样子:

a: http://www.demo.com/index.php/view/23

b: http://www.demo.com/index.php?action=view&showid=23

c: http://www.demo.com/view/23

我们可以看出来第一种是用pathinfo的方式,第二种使用普通uri的方式,第三种则使用restful的方式

如果你是一个有洁癖的人,看到某个网站上面是b类似的uri,你会接受不了

那么说说C怎么去实现它

这里就说apache和nginx

其余的web服务器我们暂且不说

好的首先我贴出apache 隐藏 index.php的重写规则:

php基础篇3--详细整理php字符串处理 2013-05-20

php字符串处理

这篇博客主要是对字符串处理做一个归类

在程序中我们处理字符串常常也就是做这些操作:查到一个子串的位置,提取子字符,替换字符串,求字符长度,比较字符函数,分割成数组字符,去除空格等,所以下面逐一列举

查找一个子串的位置

strpos($str, search, [int])

<?php
$string = "this is a strings";
echo strstr($string, "str")."<br/>";
echo strpos($string, "str");

output:
strings
10

变种函数